Sabtu, 08 April 2017

OPERATOR DALAM PROGRAM C++

        Operator merupakan simbol yang biasa dilibatkan dalam pembuatan program untuk melakukan suatu operasi ataupun manipulasi. Pada operator c++ ada yang tergolong sebagai operator binary (yaitu operator yang dikenakan untuk dua buah nilai (operand), dan ada yang tergolong sebagai operator unary (operator yang dikenakan untuk satu buah nilai (operand). Contoh :
 
Binary >> a + b
Unary >> - c

Operator Aritmatika

Adalah operator yang digunakan untuk melakukan perhitungan matematika. Pada materi sebelumnya kita telah mengenal pengertian dari Variabel, maka sekarang coba kita asumsikan bahwa variabel a = 30 dan b = 10, maka hasil implementasi dari Operator Aritmatika adalah sebagai berikut :

Operator
Keterangan
Contoh
+
Penjumlahan
a + b hasilnya 40
-
Pengurangan
a – b hasilnya 20
*
Perkalian
a * b hasilnya 300
/
Pembagian
a / b hasilnya 3
%
Sisa Pembagian
a % b hasilnya 0
Contoh program :
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*penggunaan operator aritmatika
*/

void main() { 
clrscr(); 
int a = 30; 
int b = 10; 
cout << "a + b = "; 
cout << a + b << endl; 
cout << "a - b = "; 
cout << a - b; 
cout << "a x b = "; 
out << a * b; 
cout << "a / b = "; 
cout << a / b; 
cout << "a % b = "; 
cout << a % b; 
getch(); 
}

Contoh berikutnya adalah penggunaan operator untuk memperoleh nilai diskirminan dari persamaan berikut : d = b2 – 4ac. Maka, untuk mengimplementasikan contoh diatas ke dalam pemrograman C++ adalah:

d = b * b - 4 * a * c

Contoh program :
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Menyelesaiakan persamaan diskriminan
*/

void main() { 
clrscr(); 
int a, b, c, d; a = 5; 
b = 600; 
c = 5; 
d = b * b - 4 * a * c; 
cout << " d = " << d << '\n'; 
getch(); 
}

Hasil eksekusi :
 
d = 32220

Dalam C++ operator aritmatika memiliki kedudukan prioritas tertinggi atau terendah, hal tersebut ditentukan oleh cara penulisan atau penempatannya,

1. Kedudukan prioritas secara penulisan tercantum sebagaimana dalam tabel.
Operator
Prioritas
++ -- (khusus yang berkedudukan sebagai awalan)
Tertinggi
-  (Unary Minus)
* / %
+ -
Terendah

2. Kedudukan prioritas tertinggi secara penempatan ditentukan oleh posisi yang PALING KIRI dari baris program.

Jadi jika operator memiliki kedudukan prioritas yang sama (secara penulisan) maka hal tersebut dapat ditentukan lagi prioritas utamanya secara penempatan.

Sebagai contoh perhatikan persamaan berikut ini :

x = ( 2 + 3) * 2 

Secara logika matematika biasa kita sudah dapat menentukan berapa nilai dari x, yaitu 10, sebab 2 + 3 dikerjakan terlebih dahulu dan hasilnya baru dikalikan dengan 2, namun perlu agan-agan sekalian ketahui bahwa hal tersebut sangatlah berbeda jika kita implementasikan kedalam pemrograman C++, lebih jelasnya perhatikan contoh program dibawah ini :
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Penggunaan kurung() untuk mengatur prioritas
*Pembuktian prioritas suatu operator
*/
 
void main() { 
clrscr() 
int x ; 
x = 2 + 3 * 2 ; 
cout << " x = " << x << '\n'; 
x = (2 + 3) * 2 ; 
cout << " x = " << x << '\n'; 
getch(); 
}

Hasil eksekusi :
 
8 
12


Operator Penaikan dan Penurunan

Operator penaikan adalah operator yang digunakan untuk menaikan nilai variabel sebesar 1,
Operator penurunan adalah operator yang digunakan untuk menurunkan nilai variabel sebesar 1.
Contoh :
x = x + 1 ;
y = y - 1 ;

Bisa ditulis menjadi :
++ x ; -- y ;
atau :
x ++ ; y -- ;

Menentukan Prioritas Operator Penaikan dan Penurunan

Sekarang kita akan mencoba untuk menentukan prioritas dari operator penaikan dan penurunan, lalu bagaimanakah efek yang ditimbulkan dari hasil percobaan ini? selengkapnya silakan perhatikan contoh program di bawah ini :
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Penggunaan operator penaikan di belakang variabel 
*/

void main() { 
int r = 10; 
int s; s = 10 + r++ ; 
cout << "r = " << r << '\n' ; 
cout << "s = " << s << '\n' ; 
getch(); 
}

Hasil eksekusi :
r = 11 
s = 20
Penjelasan :
Pada contoh diatas s diisi dengan penjumlahan nilai 10 dan r. Dengan demikian s akan bernilai 20. setelah s diisi dengan 20, nilai r baru dinaikan karena operator ++ ditulis dibelakang r. Disebut post-increment yang artinya dinaikkan dibelakang setelah penjumlahan antara r dan 10 dilaksanakan. Contoh lagi:
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Penggunaan operator penaikan di depan variabel
*/

void main() { 
int r = 10; 
int s; 
s = 10 + ++r ; 
cout << "r = " << r << '\n' ; 
cout << "s = " << s << '\n' ; 
getch(); 
}

Hasil eksekusi :
 
r = 11 
s = 20
Penjelasan :
Pada contoh ini, nilai r mula-mula dinaikan terlebih dahulu karena operator ++ ditempatkan didepan r. Disebut pre-increment kemudian nilainnya dijumlahkan dengan 10 dan diberikan ke s. Dengan demikian s bernilai 21 dan r sama dengan 11.

Operator Penugasan

Operator Penugasan adalah operator yang digunakan untuk memberikan nilai ke dalam variabel tertentu. Asumsikan variabel a bernilai 50 dan variabel b bernilai 30,lalu perhatikan tabel berikut:
Operator
Keterangan
Contoh
=
Memberikan nilai dari operand sisi kanan untuk sisi kiri
c = a + b
hasilnya c diberi nilai 80
c = a = b
Hasilnya c,a,b bernilai 30
+=
Menambahkan operand kiri dengan operand kanan dan menugaskan hasilnya untuk operand kiri
c += a
sama dengan
c = c + a
-=
Mengurangi operand kanan dari operand kiri dan menugaskan hasilnya untuk operand kiri
c -= a
sama dengan
c = c - a
*=
Mengalikan operand kanan dengan operand kiri dan menugaskan hasilnya untuk operand kiri
c *= a
sama dengan
c = c * a
/=
Membagi operand kiri dengan operand kanan dan menugaskan hasil untuk operand kiri
c /= a
sama dengan
c = c / a
%=
Menghitung sisa pembagian menggunakan dua operand dan memberikan hasilnya ke operand kiri
c %= a
sama dengan
c = c %  a

Contoh program :
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Penggunaan operator penugasan
*/
 
void main() { 
int a = 50; 
int b = 30; 
int c = a + b; 
cout << "Nilai c adalah : " << c; c = a = b; 
cout << "Nilai c sekarang : " << c; 
cout << "Nilai a sekarang : " << a; 
c += a; 
cout << "Nilai c sekarang : " << c;
c *= a; 
cout << "Nilai c sekarang : " << c; 
c -= a; 
cout << "Nilai c sekarang : " << c; 
c /= a; 
cout << "Nilai c sekarang : " << c; 
c %= a; 
cout << "Nilai c sekarang : " << c; 
getch(); 
}

Operator Kondisi

Operator Kondisi merupakan penyederhanaan dari bentuk if..else yang setiap blok dari if dan else hanya terdiri dari satu statement/perintah.

Bentuk umum:
(ekspresi) ? (jika benar) : (jika salah);
Contoh Program:
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Penggunaan operator kondisi untuk memperoleh 
*bilangan terkecil diantara dua buah bilangan 
*/
 
void main() { 
int bil1, bil2, minim; 
bil1 = 53; 
bil2 = 6;
minim = (bil1 < bil2) ? bil1 : bil2; 
cout << " Bilangan terkecil = " << minim << '\n'; 
getch(); 
}

Hasil Eksekusi:
 
Bilangan terkecil = 6

Operator Relasi / Perbandingan

Operator Relasi digunakan untuk menguji hubungan antara nilai dan atau variabel. Operator ini digunakan dalam suatu statement bersyarat yang selalu menghasilkan nilai true atau false.

Jenis-jenis operator relasi bisa dilihat dalam tabel berikut:
Operator
Keterangan
==
Sama dengan (bukan penugasan)
!=
Tidak sama dengan
Lebih dari
Kurang dari
>=
Lebih dari atau sama dengan
<=
Kurang dari atau sama dengan

Contoh program :
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Penggunaan operator relasi
*/

void main() { 
int nilai; 
nilai = 3 > 2 ; // hasil ungkapan : benar 
cout << "Nilai = " << nilai << endl; 
nilai = 2 > 3 ; // hasil ungkapan : salah
cout << "Nilai = " << nilai << endl; 
getch(); 
}

Hasil eksekusi:
 
Nilai = 1 
Nilai = 0

Operator Logika

Operator Logika digunakan untuk membandingkan dua nilai variabel atau lebih. Hasil dari operasi ini adalah nilai boolean true atau false. Asumsikan variabel a bernilai true, b bernilai false dan c bernilai true, lalu perhatikan tabel berikut:
Operator
Keterangan
Contoh
&&
Jika semua operand bernilai benar (TRUE) maka kondisi bernilai benar.
a && b hasilnya false
a && c hasilnya true
||
Jika salah satu dari operand bernilai benar (TRUE) maka kondisi bernilai benar.
a || b hasilnya true
a || c hasilnya true
!
Digunakan untuk membalik kondisi. Jika kondisi benar (TRUE) maka akan berubah menjadi salah (FALSE), begitu pula sebaliknya
!a hasilnya false
!b hasilnya true
!( b && a ) hasilnya true


Contoh Program:
#include <iostream.h> 
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Penggunaan operator logika
*/

void main() { 
bool a = true; 
bool b = false; 
bool c = true; 
cout<< "(a && b) : " << (a && b);
cout<< "\n (a && c) : " << (a && c); 
cout<< "\n (a && b && c) : " << (a && b && c); 
cout<< "\n (a || b) : " << (a || b); 
cout<< "\n (a || c) : " << (a || c); 
cout<< "\n (a || b || c) : " << (a || b || c); 
cout<< "\n !a : " << !a; 
cout<< "\n !b : " << !b; 
cout<< "\n !(b && a) : " << !(b && a); 
getch(); 
}

Hasil eksekusi :
 
(a && b) : 0
(a && c) : 1
(a && b && c) : 0
(a || b) : 1
(a || c) : 1
(a || b || c) : 1
!a : 0
!b : 1
!(b && a) : 1

JENIS TIPE DATA PADA PROGRAM C++

Komputer bisa diartikan sebagai alat untuk menghitung. Untuk melakukan proses perhitungan tersebut, maka dibutuhkan data yang akan diproses. Tipe data ada beberapa jenis yaitu :

  •        Tipe data karakter
  •        Tipe data bilangan bulat.
  •        Tipe data bilangan pecahan.
Jika kita membutuhkan suatu tipe data yang baru yang tidak terdapat pada tipe data standar, maka kita dapat membuat tipe data baru dengan menggunakan perintah struct. Perintah struct akan dijelaskan pada bab selanjutnya.
Setiap tipe data mempunyai jangkauan nilai yang berbeda.


1.   Tipe data karakter
Untuk tipe data karakter kita gunakan perintah char.
Contoh
char karakter;
char kar1,kar2,kar3;
char kar4=’A’;
char kar5=65;

Tipe data ini mempunyai jangkauan dari 0 sampai 255 atau karakter ASCII ke 0 sampai karakter ASCII 255. Tipe data karakter bisa ditampilkan sebagai suatu karakter atau sebagai suatu bilangan. Hal ini tergantung dari bagaimana penulisannya apakah dianggap sebagai karakter atau sebagai bilangan.
Untuk menuliskan isi dari data bertipe char adalah dengan menggunakan printf dengan format penulisannya menggunakan tanda %c kalau ingin ditampilkan sebagai suatu karakter atau dengan %i jika ingin ditampilkan sebagai suatu angka.
Pemberian nilai kepada suatu karakter digunakan perintah sebagai berikut :
karakter=’A’;
Atau
karakter=65;
Kedua cara tersebut menghasilkan suatu efek yang sama yaitu memberikan nilai 65 atau karakter A ke variabel karakter. Kalau pengisian variable ingin menggunakan karakter maka karakter yang akan dimasukan harus diapit dengan tanda apostrof.
Untuk melihat nilai yang ada dalam suatu variable yang bertipe char gunakan perintah berikut :

printf(“Karakter dilihat dalam bentuk karakter = %c.\n”,karakter);
printf(“Karakter dilihat dalam bentuk angka = %d.\n”,karakter);

Contoh program
//Program Ke-2 Nama File : Lat2.CPP #include <stdio.h>
#include <conio.h>
main()
{
char k1,k2;
k1=’A’;
k2=k1;
printf(“Nilai variable K1 adalah %c\n”,k1);
printf(“Nilai variable K2 dalam bentuk angka = %d\n”,k2);
getch();
return 0;
}
Hasil dari eksekusi program adalah :

Nilai variable K1 adalah A
Nilai variable K2 dalam bentuk angka = 65

Keterangan program Lat2.CPP
Perintah “char k1,k2;” pada baris 6 berarti program memesan 2 buah tempat di memori untuk menyimpan data bertipe karakter dengan nama k1 dan k2.
Perintah “k1=’A’;” pada baris 7 adalah perintah untuk memasukan nilai karakter A kapital ke dalam variable k1 sehingga untuk baris berikutnya k1 berisi karakter A kapital atau angka 65.
Perintah “k2=k1;” pada baris 8 berarti bahwa nilai k2 diisi dari nilai k1 sehingga isi k2 sama dengan isi variable di k1.
Perintah printf pada baris 9 berarti perintah penulisan ke layar sesuai dengan format “Nilai variable k1 adalah %c\n”. Karakter %c tidak dicetak sebagai %c tetapi akan diganti dari variable yang sesuai dengan urutannya yaitu k1 dalam bentuk karakter. Perintah printf pada baris 10 cara kerjanya sama dengan perintah printf pada baris 9 bedanya hanya tanda %d berasal ditulis berdasarkan isi variable k2 yang dicetak dalam bentuk angka bukan karakter. Tanda %d digunakan untuk format pencetakan data dalam bentuk bilangan bulat.
Perintah getch() digunakan untuk menunggu sampai pengguna menekan sembarang karaker.
Perintah return digunakan untuk memberikan nilai kembalian dari fungsi main().

2.   Tipe data bilangan bulat
Ada beberapa tipe data standar yang digunakan untuk data bilangan bulat.
Tipe Data
Memori
Format
Jangkauan Nilai
int 2 byte
%d/%i
-32.768 s/d 32.767
unsigned int 2 byte
%u
0 s/d 65.535
char 1 byte
%d/%i
-128 s/d 127
unsigned char 1 byte
%u
0 s/d 255
unsigned long 4 byte
%lu
0 s/d 4.294.967.295
long 4 byte
%ld/%li
-2.147.483.648 s/d 2.147.483.647
Tipe-tipe data yang ada dalam table tersebut khusus untuk data yang nilai bilangannya bulat. Cara pendeklarasian tipe data ini sama seperti pendeklarasian lainnya, yaitu :

int a;
unsigned int b;
char c;
long d;

Contoh Program :
#include <stdio.h> #include <conio.h>
main()
{
int a=1000,b=64000;
unsigned int c=64000;
printf(“Nilai yang telah dimasukan\na: %i dan b: %i\n”,a,b);
printf(“Nilai yang telah dimasukan : %u\n”,c);
getch();
return 0;
}
Perintah di atas akan menampilkan hasil seperti di bawah ini :
a: 1000 dan b: -1536 Nilai yang telah dimasukan : 64000


3.   Tipe data bilangan pecahan
Tipe data untuk bilangan pecahan terdiri dari beberapa jenis yaitu :
Tipe Data
Memori
Format
Jangkauan Nilai
float 4 byte
%f
3.4*(10^-38) – 3.4*(10^+38
double 8 byte
%f
1.7*(10^-308) – 1.7*(10^+308)
long double 10 byte
%lf
3.4*(10^-4932) – 1.1*(10^+4932)
Contoh Program
#include <stdio.h> #include <conio.h>
main()
{
float  a=1234567890123456789;
double d=1234567890123456789;
printf(“Nilai a adalah : %30.20f\n”,a);
printf(“Nilai d adalah : %30.20f\n”,d);
getch();
return 0;
}
Hasil eksekusi program dapat dilihat di bawah ini :
Nilai a adalah :         1234567939550609410.00 Nilai d adalah :         1234567890123456770.00

4.   Tipe data string
Dalam pemrograman C, untuk variabel yang menampung data string tidak ada perintah khusus, karena dalam bahasa C, string adalah sebuah array karakter atau sebuah pointer ke sebuah variabel char.
Cara pendeklarasian adalah :

char nama[50];
char *alamat;

Contoh program :
#include <stdio.h> #include <conio.h>
main()
{
char nama[50]; //deklarasi dengan cara array
char *alamat; //deklarasi dengan cara pointer
printf(“Nama : “);scanf(“%s”,nama);
printf(“Alamat : “);gets(alamat);
printf(“Data yang telah dimasukan adalah : \n”);
printf(“Nama : %s\nAlamat : %s\n”,nama,alamat);
getch();
return 0;
}

Catatan Pemilihan tipe data harus hati-hati. Pertimbangkan jangkauan yang dimiliki oleh tipe data yang dipilih. Kesalahan dalam memilih tipe data akan menimbulkan suatu hasil yang tidak diperkirakan. Contoh :
int a=32000;
int b=769;
int c;
c=a+b;
printf(“%i + %i = %i\n”,a,b,c);

Jika program tersebut dijalankan, maka akan menghasilkan output seperti berikut :

32000 + 769 = -32767

Hal tersebut terjadi karena jangkuan nilai c sudah melebihi jangkauan nilai untuk sebuah tipe data int. Bila suatu variable telah melebihi jangkauan nilainya maka nilai variable tersebut akan berputar menjadi nilai minimalnya dan jika nilainya kurang dari minimal jangkauan nilainya maka variable tersebut akan terisi oleh bilangan maksimal tipe tersebut.

Nilai yang diharapkan
32767
32768
32769
Nilai pada variable C
32767
-32768
-32767




Operator-Operator Perhitungan
Untuk melakukan perhitungan-perhitungan data, maka diperlukan operator-operator perhitungannya. Operator-operator yang paling umum dipakai dalam pemrograman dengan bahasa C adalah :
Operator
Contoh
Arti
+
c=a+b Variable c diisi dari isi variable a ditambah isi variable b
c=a-b Variable c diisi dari isi variable a dikurangi isi variable b
*
c=a*b Variable c diisi dari isi variable a dikali dengan isi variable b
/
c=a/b Variable c diisi dari isi variable a dibagi oleh isi variable b
++
a++ Isi variable a ditambah 1. Perintah ini sama dengan a=a+1 atau a+=1
b– Isi variable a dikurang. Perintah ini sama dengan a=a-1 atau a-=1
%
c=a % b Variable c diisi dari sisa pembagian variable a dibagi variable b
+=
c+=a Variable c ditambah dengan isi variable a. Sama dengan c=c+a
/=
c/=a Variable c dibagi dengan isi variable a. Sama dengan c=c/a
-=
c-=a Variable c dikurangi dengan isi variable a. Sama dengan c=c-a
*=
c*=a Variable c dikali dengan isi variable a. Sama dengan c=c*a
%=
c%=a Variable c diisi dari sisa pembagian c dibagi isi variable a. Sama dengan c=c%a

Contoh program :
#include <stdio.h> #include <conio.h>
main()
{
int x=20, y=8, z;
clrscr();
printf(“X = %d dan Y = %d\n”,x,y);
printf(“X / Y = %d\n”,x/y);
printf(“X %% Y = %d\n”, x % y);
x+=2;
printf(“Nilai X sekarang : %i\n”,x);
x++;
printf(“Nilai X setelah X++ : %i\n”,x);
printf(“Nilai Y : %d\n”,y++);
printf(“Nilai Y setelahnya : %d\n”,y);
z=++x;
printf(“Nilai Z : %d\n”,z);
getch();
return 0;
}

Program di atas akan menampilkan hasil seperti berikut :
X = 20 dan Y = 8 X / Y = 2
X % Y = 4
Nilai X sekarang : 22
Nilai X setelah X++ : 23
Nilai Y : 8
Nilai Y setelahnya : 9
Nilai Z : 24

Opr.
Istilah
Keterangan
I++ Post increment Nilai I dikeluarkan dulu, kemudian I ditambah 1
++I Pre increment Nilai I ditambah 1 dulu, kemudian nilainya dikeluarkan
I– Post decrement Nilai I dikeluarkan dulu, kemudian I dikurangi 1
–I Pre decrement Nilai I dikurangi 1 dulu, kemudian nilainya dikeluarkan

MENGENAL JENIS-JENIS VARIABEL DALAM PROGRAM C++

Ruang lingkup variabel sangat menentukan keberadaan suatu variabel tertentu dalam fungsi, karena ada variabel yang hanya dikenal di suatu fungsi dan tidak dikenal pada fungsi lain. Namun ada juga variabel yang dapat diakses oleh semua fungsi.

Variabel Otomatis
Adalah variabel yang didefinisikan di dalam suatu fungsi dan berlaku sebagai variabel lokal bagi fungsi tersebut, artinya variabel tersebut hanya dikenal di dalam fungsi tempat variable tersebut di definisikan. Sifat variabel otomatis adalah :
  • Variabel akan diciptakan saat variabel dipanggil dan variabel akan hilang saat fungsi berakhir
  • Variabel hanya dikenal di dalam fungsi yang mendefinisikannya.
  • Inisialisasi oleh pemrogram akan dikerjakan setiap kali fungsi dipanggil, contoh :

View
Variabel Otomatis
Variabel Otomatis







 
















Program
#include <iostream.h>
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Variabel Otomatis
*/

void coba(); // prototipe fungsi atau pendeklarasian fungsi
void main()
{
 cout<<"copyright 2014 www.gatewan.com"<<endl<<endl;
 int x = 22;      //salah satu contoh variabel lokal pada fungsi main()
 double y =2.22;
 clrscr();
        cout<<"copyright 2014 www.gatewan.com"<<endl<<endl;
 cout<<"Pada fungsi main() : x = " << x << " y = " << y << endl;
 coba();    // memanggil fungsi alpha yang telah didefinisikan bagian bawah fungsi main()
 cout<<"Pada fungsi main() : x = " << x << " y = " << y << endl;
 getch();
}


void coba() //definisi fungsi alpha
{
 int x = 20; //variabel lokal pada fungsi coba()
 double y = 3.14;
 cout<<"Pada fungsi coba() : x = " << x << " y = " << y << endl;
}


Variabel Eksternal
Variabel eksternal adalah variabel yang didefinisikan di luar fungsi manapun, Variabel ini dikenal juga dengan istilah variabel global, sebab variabel ini dikenal oleh semua fungsi, contoh;


View
Variabel Eksternal
Variabel Eksternal





















Program :
#include <iostream.h>
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Variabel External
*/

int nilai = 50;  // Variabel eksternal
void tambah();   // prototipe fungsi
void main()
{
 clrscr();
 cout <<"www.gatewan.com -> "<<nilai << endl;
 tambah();
 cout <<"www.gatewan.com -> "<<nilai << endl;
 tambah();
 cout <<"www.gatewan.com -> "<<nilai << endl;
 getch();
}

void tambah()  // Definisi fungsi
{
 nilai ++ ; // variabel eksternal dinaikkan
}

Atau bisa juga seperti ini,
   
 Program :
#include <iostream.h>
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Variabel External dengan Keyword Extern
*/

int nilai = 50;  // Variabel eksternal
void tambah();   // prototipe fungsi
void main()
{
 clrscr();
 cout <<"www.gatewan.com -> "<<nilai << endl;
 tambah();
 cout <<"www.gatewan.com -> "<<nilai << endl;
 tambah();
 cout <<"www.gatewan.com -> "<<nilai << endl;
 getch();
}

void tambah()  // Definisi fungsi
{
 extern nilai;  //kata kunci extern ini menunjukan bahwa variabel dapat di akses secara global di dalam program
 nilai ++ ;  // variabel eksternal dinaikkan
}
 

Variabel Statis
Variabel eksternal maupun otomatis dapat berkedudukan sebagai variabel statis. Suatu variabel statis memiliki sifat seperti ini :
* Jika variabel lokal berdiri sebagai variabel statis, maka :
  • Variabel hanya dapat diakses di dalam fungsi yang mendefinisikannya
  • Variabel tidak hilang saat eksekusi fungsi berakhir
  • Inisialisasi oleh pemrogram akan dilakukan sekali saja selama program dijalankan.

* Jika variabel eksternal dijadikan sebagai variabel statis, maka variabel ini dapat diakses oleh semua file yang didefinisikan pada file yang sama dengan variabel eksternal tersebut.


Contoh :
Variabel Statis
Variabel Statis





















Program :
#include <iostream.h>
#include <conio.h>

/**
*gatewan.com
*Wawan Beneran
*Variabel Statis
*/

void saya_ingat();  //Prototipe fungsi atau pendeklarasian fungsi
void main()
{
 int mana = 50;
 clrscr();
 saya_ingat();
 saya_ingat();
 saya_ingat();
 cout<<"main() : mana = "<<mana<<endl;
getch();
}

//Pada fungsi di bawah ini, mana didefinisikan sebagai variabel statis

void saya_ingat()
{
 static int mana = 77;  //variabel statis
 mana++;     //naikkan sebesar 1
 cout<<"gatewan_ingat() : mana = " <<mana<<endl;

CONTOH KESALAHAN PADA PROGRAM C++ DAN PENANGANANNYA

  Contoh-cpntoh pesan yang akan dimunculkan ketika terjadi kesalahan pada program diantaranya adalah sebagai berikut:

1.Declaration syntax error
Penyebab                    : terdapat symbol yang kurang
Cara mengatasi          : tambahkan { (kurung kurawal) setelah syntax main()
2.Statement missing 
Penyebab                    : terdapat symbol yang kurang
Cara mengatasi          : tambahkan tanda << setelah cout
3. Unable to open include file ‘cnio.h’
Penyebab                  : kesalahan penulisan headerfile
Cara mengatasi          : headerfile cnio.h diganti conio.h
4. Ambiguous operators need parentheses
Penyebab                    : kurang tanda < setelah cout
Cara mengatasi          : tambahkan tanda < setelah cout
5.Expected
Penyebab                    : salah meletakkan syntax
Cara mengatasi          : pindahkan syntax system(“color 4,8”) dibawah main
     
6.Unknown preprocessor directive: ‘defie’
Penyebab                     : salah penulisan pada konstanta
Cara penyelesaian      : ganti sintax defie dengan define
7.Incorrect use of default
Penyebab                    : kurang titik dua pada syntax default
Cara megatasi           : tambahkan titik dua pada default
8. Lvalue requied
Penyebab                    : kurang tanda samadengan pada sarat
Cara mengatasi          : tambah tanda sama dengan pada sarat

Program Terstruktur

  Metode yang mengorganisasikan dan membuat kode-kode program supaya mudah untuk dimengerti,mudah untuk dites,dan dimodifikasi.
Ciri-Ciri pemograman terstruktur:


  • menggunakan pendekatan dari ats kebawah(top down).
  • bagi program kedalam modul-modul logika yang sejenis.
  • menggunakan subprogram untuk proses-proses sejenis yang sering digunakan .
  •  menggunakan pengkodean terstruktur.
  • buat dokumentasi yang akuran dan berarti.
Tujuan pemograman terstruktur:
  • meningkatkan kehandalan program.
  • memudahkan pembacaan dan penelusuran program.
  • menyerderhanakan program sehingga tidak rumit.
Metode pemograman terstruktur


 Sejarah dan pengenalan bahasa program C++
Berbicara mengenai C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972, dan sekitar satu dekade setelahnya diciptakanlah C++, oleh Bjarne Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “ a better C “. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berasal dari operator increment pada bahasa C. Keistimewaan yang sangat berari dari C++ ini adalah karena bahasa ini mendukung Pemrograman Berorientasi Objek ( OOP / Object Oriented Programming).
Program C++ dapat ditulis dengan menggunakan berbagai editor teks, seperti EDIT (milik DOS), WordStar, SideKick, ataupun menggunakan editor bawaan dari kompiler. Program C++ biasa ditulis dengan nama ektensi .CPP (dari kata C Plus Plus). Agar program bisa dijalankan (dieksekusi), program harus dikompilasi terlebih dahulu dengan menggunakan kompiler C++.
Borland C++ dan Turbo C++ adalah contoh media editor sekaligus sebagai Compiler.




Memasukkan data dan menampilkan data/informasi merupakan tindakan yang sering dilakukan dalam pemrograman. Penampilan data/informasi biasanya ditujukan ke piranti layar (monitor), sedangkan pemasukan data biasanya dilakukan melalui keyboard.
MENAMPILKAN DATA/INFORMASI KE LAYAR

Untuk keperluan penampilan data/informasi, Turbo C menyediakan sejumlah fungsi, diantaranya adalah PRINTF ( ), PUTS ( ) dan PUTCHAR ( )

PRINTF ( )
Merupakan fungsi yang paling umum digunakan dalam menampilkan data. Berbagai jenis data dapat ditampilkan ke layar dengan fungsi ini.
Bentuk penulisan : printf(“string kontrol”, argumen1, argumen2, …);
- String kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta penentu format seperti %d, %f. Penentu format dipakai untuk memberi tahu kompiler mengenai jenis data yang akan ditampilkan
- Argumen adalah data yang akan ditampilkan ke layar. Argumen ini dapatr berupa variabel, konstanta atau ungkapan

PUTS ( )
Fungsi ini digunakan khusus untuk menampilkan data string ke layar. Sifat fungsi ini, string yang ditampilkan secara otomatis akan diakhiri dengan \n (pindah baris). Dibandingkan dengan printf(), perintah ini mempunyai kode mesin yang lebih pendek.
PUTCHAR ( )
Digunakan khusus untuk menampilkan sebuah karakter ke layar. Penampilan karakter tidak diakhiri dengan perpindahan baris, misalnya :
putchar(‘A’); sama dengan printf(“%c”, A);
MEMASUKKAN DATA DARI KEYBOARD
Data dapat dimasukkan lewat keyboard saat eksekusi berlangsung. Fungsi yang digunakan diantaranya adalah : scanf ( ), getch ( ), dan getche ( ) .

SCANF ( )
Merupakan fungsi yang dapat digunakan untuk memasukkan berbagai jenis data. Bentuk scanf ( ) sesungguhnya menyerupai fungsi printf ( ) yang melibatkan penentu format. Bentuk penulisan : scanf(“string kontrol”, daftar argumen);
Hal-hal yang perlu diperhatikan dalam pemakaian scanf yaitu :
1. scanf memberi pergantian baris secara otomatis, artinya Anda tidak perlu memberi \n untuk berpindah ke baris berikutnya.
2. scanf memakai penentu format, tetapi tidak memerlukan penentu lebar field. Contoh yang salah : scanf(“10.2f”,&gaji);
3. Variabel yang dipakai di dalam scanf harus didahului dengan operator alamat (&).

MEMASUKKAN BEBERAPA DATA SECARA BERSAMA-SAMA
Data dapat dimasukkan secara bersama-sama dalam satu baris. Setiap data dipisahkan oleh sebuah karakter. Karakter-karakter yang dapat bertindak sebagai pemisah data adalah :
- Koma (‘)
- Garis hubung (-)
- Titik dua (:)
- Spasi

GETCH ( ) dan GETCHE ( )
Dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan enter. Fungsi getch() merupakan singkatan dari get character artinya baca karakter tetapi isian data yang dimasukkan tidak akan ditampilkan di layar.
Nama fungsi getche() sebenarnya adalah singkatan dari get character and echo, artinya baca karakter lalu tampilkan di layar. Jadi setelah mengetikkan sebuah huruf, huruf tersebut akan ditampilkan di layar tanpa menekan enter.
Catatan :
- Program yang menggunakan printf(), putchar(), scanf() dan puts() mengandung baris yang berisi #include
- Program yang melibatkan getche() atau getch() mengandung baris yang berisi #include

FUNGSI-FUNGSI NUMERIK
Turbo C mempunyai kurang lebih 450 fungsi dan makro yang dapat dipanggil dari program yang telah dibuat. Fungsi-fungsi tersebut meliputi berbagai hal, misalnya :
- Proses Input Output tingkat tinggi dan tingkat rendah
- Manipulasi string dan file
- Alokasi memori
- Kontrol Proses
- Konversi data
- Perhitungan matematik


Fungsi-fungsi tersebut ada di dalam file library-nya (Cx.LIB, Mathx.LIB dan Graphics.LIB). Huruf x diganti dengan model memori yang dipakai.
Fungsi-fungsi tersebut disimpan di dalam file header (*.H). Fungsi tersebut dapat digabungkan ke dalam program dengan menyertakan file header yang mengandung fungsi atau rutin yang dipakai.
FUNGSI SQRT
Fungsi : Menghitung akar positif dari sebuah bilangan bulat
Include : #include
FUNGSI POW
Fungsi : Menghitung xy
Include : #include
FUNGSI TAN
Fungsi : Menghitung nilai tangent dari sebuah sudut
Include : #include
Fungsi tan menghitung nilai tangent dari sudut x. Sudut x dalam satuan radian. Jika sudut x yang diberikan dekat dengan phi/2 atau –phi/2, hasilnya adalah 0.
FUNGSI DIV
Fungsi : Membagi dua bilangan bulat, memberikan hasil bagi dan sisanya
Include : #include
FUNGSI CEIL
Fungsi : Membulatkan ke atas
Include : #include
FUNGSI FLOOR
Fungsi : Membulatkan ke bawah
Include : #include
Fungsi floor menghasilkan bilangan bulat terbesar yang tidak lebih dari x
FUNGSI EXP
Fungsi : Menghitung ex
Include : #include
FUNGSI MAX
Fungsi : Memberikan bilangan yang lebih besar dari 2 bilangan yang diberikan
Include : #include
FUNGSI MIN
Fungsi : Memberikan bilangan yang lebih kecil dari 2 bilangan yang diberikan
Include : #include
VARIABLE
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan (assignment statement), yang mempunyai sintaks sebagai berikut :
variable = ekspresi ;
Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :
  1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda.
  2. Tidak boleh mengandung spasi.
  3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb.
  4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilai, budi, dsb.
Contoh penamaan variable yang salah : %nilai_mahasiswa, 80mahasiswa, rata-rata, ada spasi, penting!, dsb
DEKLARASI
Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program. Identifier dapat berupa variable, konstanta dan fungsi.
  • DEKLARASI VARIABEL
Bentuk umum:
Nama_tipe nama_variabel ;
Contoh :
    • int x; // Deklarasi x bertipe integer
    • char y, huruf, nim[10]; // Deklarasi variable bertipe char
    • float nilai; // Deklarasi variable bertipe float
    • double beta; // Deklarasi variable bertipe double
    • int array[5][4]; // Deklarasi array bertipe integer
Contoh program:
# include <iostream.h>
void main ()
{
int n;
n=66;      // sama juga jika ditulis int n=66;
cout << n << endl;   // n sebagai variabel
cout << ’n’ << endl  // endl sebagai karakter
cin.get();
}
Output Program :
66
n
  • DEKLARASI KONSTANTA
  1. Menggunakan keyword const
Contoh : const float PI = 3.14152965;
Berbeda dengan variable, konstanta bernama tidak dapat diubah jika telah diinisialisasi
2.  Menggunakan #define
Contoh : #define PI 3.14152965
Keuntungan menggunakan #define apabila dibandingkan dengan const adalah kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama kali mencari symbol #define (oleh sebab itu mengapa # dikatakan prepocessor directive) dan mengganti semua Phi dengan nilai 3.14152965.
Contoh :
# include <iostream.h>
void main ()
{
const float phi = 3.14;
float jari_jari, luas, keliling;
jari_jari = 7.0;
luas = 0.5*phi*jari+jari*jari_jari;
keliling = 2*phi*jari_jari;
cout << ”Luas lingkaran = ” << luas << endl;
cout << ”Keliling lingkaran = ” << keliling << endl;
cin.get();
}
OPERATOR
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi
Contoh :
Penjumlahan, pengurangan, pembagian dan lain-lain.
Operator mempunyai sifat:
Unary
Sifat unary pada operator hanya melibatkan sebuah operand pada suatu operasi aritmatik. Contoh : -5
Binary
Sifat binary pada operator melibatkan dua buah operand pada suatu operasi aritmatik. Contoh : 4 + 8
Ternary
Sifat tenary pada operator melibatkan tiga buah operand pada suatu operasi aritmatik. Contoh : (10 % 3) + 4 + 2
Operator untuk operasi aritmatika yang tergolong sebagai binary adalah:
OPERATOR KETERANGAN CONTOH
* Perkalian (Multiply)           4 * 5
/ Pembagian (Divide)            8 / 2
% Sisa Bagi (Modulus)          5 % 2
+ Penjumlahan (Add)           7 + 2
– Pengurangan (Substract)  6 – 2
OPERATOR KETERANGAN CONTOH
+ Tanda Plus          +4
– Tanda Minus        -6
Operator penugasan (Assignment operator) dalam bahasa C++ berupa tanda sama dengan (“=”).
Contoh :
nilai = 80; A = x * y;
Penjelasan :
variable “nilai” diisi dengan 80 dan
variable “A” diisi dengan hasil perkalian antara x dan y.
Hierarki Operator Aritmatika
Di dalam suatu akspresi arotmatika dapat kita jumpai beberapa operator aritmatika yang berbeda secara bersamaan. Urutan operator aritmatika adalah sebagai berikut:
* atau / Tingkatkan operator sama, penggunaannya tergantung letak,
yang di depan didahulukan
% Sisa Pembagian
+ atau – Tingkatkan operator sama, penggunaannya tergantung letak,
yang di depan didahulukan
Contoh:
A = 8 + 2 * 3 / 6
Langkah perhitungannya :
A = 8 + 6/6 dimana 6/6 = 1 A = 8 + 1
A = 9
Tingkatan operator ini dapat diabaikan dengan penggunaan tanda kurung ( dan )
Contoh:
A = (8 + 2) * 3 / 6
Langkah perhitungannya :
A = 10 * 3/6 dimana 8 + 2 = 10
A = 30 / 6 A = 5
Operator Increment & Decrement
Pada pemrograman C++, menyediakan operator penambah dan pengurang (Increment & Decrement).
++ Penambahan (Increment)
— Pengurangan (Decrement)
A = A + 1 atau A = A – 1; dapat disederhanakan menjadi A + = 1 atau A – = 1 Dan dapat disederhanakan menjadi A++ atau A–
Notasi ++ atau — dapat diletakkan di depan atau di belakang variabel. Contoh: A– atau –A atau ++ A atau A++
Kedua bentuk penulisan di atas mempunyai arti yang berbeda:
Jika diletakkan di depan variabel. Maka proses penambahan atau pengurangan akan dilakukan sesaat sebelum atau langsung pada saat menjumpai ekspresi ini sehingga nilai variabel tadi akan langsung berubah
begitu ekspresi ini di temukan.
Jika diletakkan di belakang variabel. Maka proses penambahan atau pengurangan akan dilakukan setelah ekspresi ini di jumpai atau nilai variabel akan tetap pada saat ekspresi ini ditemukan.
Operasi Relasi (Perbandingan)
Operator relasi ini digunakan untuk membandingkan dua buah nilai. Hasil dari perbandingan operator ini menghasilkan nilai numeric 1 (True) atau 0 (False).
== Sama dengan (bukan pemberi nilai)
!= Tidak sama dengan
> Lebih dari
= Lebih dari sama dengan
<= Kurang dari sama dengan
Operator Logika
Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan
menjadi sebuah ungkapan berkondisi.
&& Operator Logika AND m && n
|| Operator Logika OR m || n
! Operator Logika NOT !m
Operator Bitwise
Operator Bitwise digunakan untuk memanipulasi data dalam bentuk bit
<> Bitwise Shift Right
& Bitwise AND
^ Bitwise XOR
| Bitwise OR
~ Bitwise NOT