Minggu, 30 Desember 2012

C++


Sejarah C++
Tahun  1978,  Brian  W.  Kerninghan  &  Dennis  M.  Ritchie  dari  AT  &  T  Laboratories mengembangkan  bahasa  B  menjadi  bahasa  C.  Bahasa  B  yang  diciptakan  oleh  Ken  Thompson sebenarnya  merupakan  pengembangan  dari  bahasa  BCPL  (  Basic  Combined  Programming Language ) yang diciptakan oleh Martin Richard.
Sejak  tahun  1980,  bahasa  C  banyak  digunakan  pemrogram  di  Eropa  yang  sebelumnya menggunakan  bahasa  B  dan  BCPL.  Dalam  perkembangannya,  bahasa  C  menjadi  bahasa  paling populer diantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN.
Tahun  1989,  dunia  pemrograman  C  mengalami  peristiwa  penting 
dengan  dikeluarkannya standar  bahasa  C  oleh  American  National  Standards  Institute  (ANSI).  Bahasa  C  yang diciptakan Kerninghan & Ritchie kemudian dikenal dengan nama ANSI C.
Mulai  awal  tahun  1980,  Bjarne  Stroustrup  dari  AT  &  T  Bell  Laboratories  mulai mengembangkan  bahasa  C.  Pada  tahun  1985,  lahirlah  secara  resmi  bahasa  baru  hasil pengembangan  C yang dikenal dengan nama  C++. Sebenarnya  bahasa C++ mengalami  dua tahap evolusi. C++  yang pertama,  dirilis oleh AT&T  Laboratories,  dinamakan  cfront.  C++ versi  kuno ini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C.
Pada  evolusi  selanjutnya,  Borland  International  Inc.  mengembangkan  kompiler  C++  menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi  ini,  mulai  tahun  1990  C++  menjadi  bahasa  berorientasi  obyek  yang  digunakan  oleh sebagian besar pemrogram professional.
Struktur Bahasa C++
Contoh  1  :         Hasil  :
// my first program in C++      Hello World!  
#include
int main ()
{
  cout << “Hello World!”;
  return 0;
}
Sisi  kiri  merupakan  source  code,  yang  dapat  diberi  nama  hiworld.cpp  dan  sisi  kanan  adalahhasilnya setelah di-kompile dan di-eksekusi.
Program  diatas  merupakan  salah  satu  program  paling  sederhana  dalam  C++,  tetapi  dalam program  tersebut  mengandung  komponen  dasar  yang  selalu  ada  pada  setiap  pemrograman C++. Jika dilihat satu persatu  :
// my first program in C++
Baris ini adalah komentar. semua baris  yang  diawali dengan dua  garis  miring (//) akan dianggap  sebagai  komentar  dan  tidak  akan  berpengaruh  terhadap  program.  Dapat digunakan  oleh  programmer  untuk  menyertakan  penjelasan  singkat  atau  observasi yang terkait dengan program tersebut.
#include
Kalimat  yang  diawali  dengan  tanda  (#)  adalah  are  preprocessor  directive.  Bukan merupakan baris kode yang dieksekusi, tetapi indikasi untuk kompiler. Dalam kasus ini kalimat    #include    memberitahukan  preprocessor  kompiler  untuk menyertakan  header  file  standard  iostream.  File  spesifik  ini  juga  termasuk  library deklarasi standard I/O pada C++ dan  file ini disertakan karena fungsi -fungsinya akan digunakan nanti dalam program.
int main ()
Baris  ini  mencocokan    pada  awal  dari  deklarasi  fungsi  main.  fungsi  main  merupakan titik  awal  dimana  seluruh  program  C++  akan  mulai  dieksekusi.  Diletakan  diawal, ditengah  atau  diakhir  program,  isi  dari  fungsi  main  akan  selalu  dieksekusi  pertama kali. Pada dasarnya, seluruh program C++ memiliki fungsi  main.
main  diikuti  oleh  sepasang  tanda  kurung  ()  karena  merupakan  fungsi.  pada  C++,
semua  fungsi  diikuti  oleh  sepasang  tanda  kurung  ()  dimana,  dapat  berisi  argumen didalamnya.  Isi  dari  fungsi  main  selanjutnya  akan  mengikuti,berupa deklarasi formal dan dituliskan diantara kurung kurawal  ({}), seperti dalam contoh.
cout << “Hello World”;
Intruksi  ini  merupakan  hal  yang  paling  penting  dalam  program  contoh.  cout merupakan  standard  output  stream  dalam  C++  (biasanya  monitor).  cout dideklarasikan dalam   header file  iostream.h, sehingga  agar  dapat digunakan maka file ini harus disertakan.   Perhatikan  setiap  kalimat  diakhiri  dengan  tanda  semicolon  (;).  Karakter  ini menandakan  akhir  dari  instruksi  dan  harus  disertakan  pada  setiap  akhir  instruksi pada program C++ manapun.
return 0;
Intruksi  return  menyebabkan  fungsi  main()  berakhir  dan  mengembalikan  kode yang mengikuti  instruksi  tersebut, dalam  kasus  ini  0.  Ini  merupakan  cara  yang paling sering digunakan untuk mengakhiri program. Tidak  semua  baris  pada  program  ini  melakukan  aksi.  Ada  baris  yang  hanya  berisi  komentar (diawali  //),  baris  yang  berisi  instruksi  untuk  preprocessor  kompiler  (Yang  diawali #),kemudian  baris  yang  merupakan  inisialisasi  sebuah  fungsi  (dalam  kasus  ini,  fungsi  main) dan  baris  yang  berisi instruksi (seperti,   cout  <<),  baris yang  terakhir ini disertakan dalam blok yang dibatasi oleh kurung kurawal ({}) dari fungsi  main.
Struktur program dapat dituliskan dalam bentuk yang lain agar lebih mudah dibaca, contoh :
 int main ()
{
  cout << ” Hello World “;
  return 0;
}
Atau dapat juga dituliskan  :
 int main () { cout << ” Hello World “; return 0; } 
Dalam satu baris dan  memiliki  arti yang  sama  dengan program-program  sebelumnya. pada C++
pembatas antar instruksi ditandai dengan  semicolon (;) pada setiap akhir instruksi.
Contoh  2  :           Hasil  :
 // my second program in C++      Hello  World!  I’m  a  C++ program
 #include
int main ()
{
  cout << “Hello World! “;
  cout << “I’m a C++ program”; 
  return 0;
}
Komentar
Komentar  adalah bagian dari program yang  diabaikan  oleh kompiler.  Tidak melaksanakan  aksi apapun.  Mereka  berguna  untuk  memungkinkan  para  programmer  untuk  memasukan  catatan atau deskripsi tambahan  mengenai program tersebut.  C++ memiliki dua cara untuk menuliskan komentar :
 //  Komentar baris
/*  Komentar Blok   */ 
Komentar  baris,  akan mengabaikan apapun mulai dari  tanda  (//) sampai  akhir dari  baris  yang sama. Komentar Blok, akan mengabaikan apapun yang berada diantara tanda /* dan */
Variabel, tipe data, konstanta Untuk dapat  menulis program yang dapat  membantu menjalankan tugas-tugas kita, kita harus mengenal  konsep  dari   variabel.  Sebagai ilustrasi, ingat 2  buah  angka, angka  pertama  adalah 5 dan angka kedua  adalah  2. Selanjutnya  tambahkan 1  pada  angka pertama kemudian  hasilnya dikurangi angka kedua (dimana hasil akhirnya adalah 4). Seluruh proses ini dapat diekspresikan dalam C++ dengan serangkaian instruksi sbb   :
a = 5;
b = 2;
a = a + 1;
result = a – b;
Jelas  ini  merupakan  satu  contoh  yang  sangat  sederhana  karena  kita  hanya  menggunakan  2 nilai  integer  yang  kecil,  tetapi  komputer  dapat  menyimpan  jutaan  angka  dalam  waktu  yang bersamaan dan dapat melakukan operasi matematika yang rumit. Karena itu, kita  dapat  mendefinisikan  variable  sebagai bagian dari memory untuk  menyimpan nilai  yang  telah  ditentukan.  Setiap  variable  memerlukan  identifier  yang  dapat membedakannya  dari  variable  yang  lain,  sebagai  contoh  dari  kode  diatas  identifier variabelnya  adalah  a, b  dan  result, tetapi kita  dapat  membuat  nama  untuk  variabel  selama masih merupakan identifier yang benar.
Identifiers
Identifier  adalah  untaian  satu  atau lebih  huruf,  angka,  atau  garis  bawah  (  _  ).  Panjang  dari identifier,  tidak  terbatas,  walaupun  untuk  beberapa  kompiler  hanya  32  karakter  pertama saja  yang  dibaca  sebagai  identifier  (sisanya  diabaikan).  Identifier  harus  selalu  diawali dengan huruf atau garis bawah ( _ ). Ketentuan  lainnya  yang  harus  diperhatikan  dalam  menentukan  identifier  adalah  tidak  boleh menggunakan key word dari bahasa C++. Diawah ini adalah key word dalam C++  :
capture1
Capture2
Sebagai tambahan,  represetasi  alternatif  dari  operator,  tidak  dapat  digunakan  sebagai identifier. Contoh  :
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq 
catatan:  Bahasa  C++  adalah  bahasa  yang    “case  sensitive”,  ini  berarti  identifier  yang dituliskan  dengan  huruf  kapital  akan  dianggap  berbeda  dengan  identifier  yang  sama  tetapi dituliskan dengan huruf kecil, sabagai contoh  :  variabel  RESULT  tidak  sama  dengan  variable result ataupun variabel Result.
Tipe Data
Tipe data yang ada pada C++, berikut nilai kisaran yang dapat direpresentasikan     :
Capture3
Capture4
Capture5
Deklarasi variabel
Untuk  menggunakan  variabel  pada  C++,  kita  harus  mendeklarasikan  tipe  data  yang  akan digunakan. Sintaks penulisan deklarasi  variabel  adalah  dengan menuliskan tipe  data  yang  akan digunakan diikuti dengan identifier yang benar, contoh  :
int a;
float mynumber;
Jika  akan  menggunakan  tipe  data  yang  sama  untuk  beberapa  identifier  maka  dapata dituliskan dengan menggunakan tanda koma, contoh   :
int a, b, c;
Tipe  data  integer  (char,  short,  long  dan  in t)  dapat  berupa  signed  atau  unsigned tergantung  dari  kisaran  nilai  yang  akan  direpresentasikan.  Dilakukan  dengan  menyertaka keyword signed atau unsigned sebelum tipe data, contoh   :
unsigned short NumberOfSons;
signed int MyAccountBalance;
Jika tidak dituliskan, maka akan dianggap sebagai signed.
Contoh  3 :
Hasil : 4
// operating with variables  
#include
int main ()
{
// declaring variables:
int a, b;
int result;
// process:
a = 5;
b = 2;
a = a + 1;
result = a – b;
Inisialisasi Variabel
Ketika  mendeklarasikan  variabel  local,  kita  dapat  memberikan  nilai  tertentu.  Sintaks penulisan sbb  :
type identifier = initial_value ; 
Misalkan  kita akan  mendeklarasikan variabel  int  dengan nama a  yang bernilai  0,  maka  dapat dituliskan  :
int a = 0;
Atau dengan cara lainnya, yaitu menyertakan nilai yang akan diberikan dalam tanda ():
 type identifier (initial_value) ; 
Contoh  :
int a (0);
Lingkup Variabel
Pada  C++,  kita  dapat  mendeklarasikan  variable  dibagian  mana  saja  dari  program,  bahkan diantara 2 kalimat perintah.
Capture
variabel  Global  dapat digunakan  untuk  setiap bagian  dari  program, maupun  fungsi,  walaupun dideklarasikan  diakhir program. Lingkup  dari  variable local  terbatas.  Hanya berlaku  dimana  variable tersebut  dideklarasikan. Jika  dideklarasikan  diawal fungsi  (seperti  dalam main)  maka  lingkup  dari variable  tersebut  adalah untuk  seluruh  fungsi main. Seperti contoh diatas, jika  terdapat fungsi lain  yang ditambahkan pada  main(),   maka variable local  yang dideklarasikan dalam  main tidak  dapat  digunakan  pada fungsi lainnya dan sebaliknya. Pada C++, lingkup variable local ditandai dengan blok dimana variable tersebut dideklarasikan ( blok tersebut adalah sekumpulan instruksi dalam kurung kurawal {} ). Jika dideklarasikan dalam fungsi tersebut, maka akan berlaku sebagai variable dalam fungsi tersebut, jika dideklarasikan dalam sebuah perulangan, maka hanya berlaku dalam perulangan tersebut, dan seterusnya.
Konstanta : Literals.
Konstanta  adalah  ekspresi  dengan  nilai  yang  tetap.  Terbagi  dalam  Nilai  Integer,    Nilai Floating-Point, Karakter and String.
Nilai Integer
Merupakan  nilai  konstanta  numerik  yang  meng-identifikasikan  nilai  integer  decimal.  Karena merupakan  nilai  numeric,  maka  tidak  memerlukan  tanda  kutip  (“)  maupun  karakter  khusus lainnya.  Contoh  :
1776
707
-273
C++ memungkinkan kita untuk  mempergunakan nilai oktal (base 8) dan heksadesimal  (base  16). Jika  menggunakan  octal  maka  harus  diawali  dengan  karakter  0  (karakter  nol),  dan  untuk heksadesimal diawali dengan karakter  0x (nol, x). Contoh  :
75         // decimal
0113       // octal
0x4b       // hexadecimal
Dari contoh diatas, seluruhnya merepresentasikan nilai yang sama : 75.
Nilai Floating Point 
Merepresentasikan  nilai  desimal  dan/atau  eksponen,  termasuk  titik  desimal  dan  karakter  e (Yang  merepresentasikan  “dikali  10  pangkat  n”  ,  dimana  n  merupakan  nilai  integer)  atau keduanya. Contoh  :
3.14159    // 3.14159
6.02e23    // 6.02 x 1023
1.6e-19    // 1.6 x 10-19
3.0  // 3.0
Karakter dan String
Merupakan konstanta non-numerik, Contoh  :
‘z’
‘p’
“Hello world”
“How do you do?”
Untuk  karakter  tunggal  dituliskan  diantara  kutip  tunggal  (‘)  dan  untuk  untaian  beberapa karakter, dituliskan diantara kutip ganda (“).
Konstanta karakter dan string memiliki beberapa hal khusus, seperti escape codes.
Capture.PNG2
 \n  newline
\r  carriage return
\t  tabulation
\v  vertical tabulation
\b  backspace
\f  page feed
\a  alert (beep)
\‘  single quotes (‘)
\“  double quotes (“)
\?  question (?)
\\  inverted slash (\)
Contoh  :
‘\n’
‘\t’
“Left \t Right”
“one\ntwo\nthree”
Sebagai  tambahan,  kita  dapat  menuliskan  karakter  apapun  dengan  menuliskan    yang  diikuti dengan  kode  ASCII,  mengekspresikan  sebagai  octal  (contoh,   \23  atau  \40)  maupun heksadesimal (contoh, \x20 atau \x4A).
Konstanta Define (#define)
Kita  dapat  mendefinisikan  sendiri  nama  untuk  konstanta  yang  akan  kita  pergunakan,  dengan menggunakan preprocessor directive #define. Dengan format   :
#define identifier value 
Contoh  :
#define PI 3.14159265
#define NEWLINE ‘\n’
#define WIDTH 100
Setelah didefinisikan seperti diatas,  maka  kita dapat  menggunakannya  pada  seluruh program yang kita buat, contoh  :
circle = 2 * PI * r;
cout << NEWLINE;
Pada  dasarnya,  yang  dilakukan oleh kompiler  ketika  membaca  #define  adalah menggantikan literal  yang ada  (d alam  contoh,  PI,  NEWLINE atau WIDTH) dengan  nilai yang  telah  ditetapkan  (3.14159265,  ‘\n’  dan  100).  #define  bukan  merupakan  instruksi,  oleh  sebab  itu  tidak diakhiri dengan tanda semicolon (;).
Deklarasi Konstanta (const)
Dengan  prefix  const  kita  dapat  mendeklarasikan  konstanta  dengan  tipe  yang  spesifik seperti yang kita inginkan. contoh  :
const int width = 100;
const char tab = ‘\t’;
const zip = 12440;
Jika tipe data tidak disebutkan, maka kompiler akan meng-asumsikan sebagai int.
Operator
Operator-operator  yang  disediakan  C++  berupa  keyword  atau  karakter  khusus.  Operator-operator ini cukup penting untuk diketahui karena merupakan salah satu dasar bahasa C++.
Assignation (=). 
Operator assignation digunakan untuk memberikan nilai ke suatu variable.
a = 5;
Memberikan  nilai  integer  5  ke  variabel  a.  Sisi  kiri  dari  operator  disebut  lvalue  (left  value) dan  sisi  kanan  disebut  rvalue  (right  value).  lvalue  harus  selalu  berupa  variabeldan  sisi  kanan dapat berupa  konstanta, variabel, hasil dari suatu operasi atau kombinasi dari semuanya.
Contoh  :
int a, b;    // a:?  b:?
a = 10;      // a:10 b:?
b = 4;       // a:10 b:4
a = b;       // a:4 b:4
b = 7;       // a:4 b:7
Hasil dari contoh diatas, a bernilai 4 dan b bernilai 7 .
Contoh  :
a = 2 + (b = 5);
equivalen dengan  :
b = 5;
a = 2 + b;
Arithmetic operators ( +, -, *, /, % )
+  addition
-  subtraction
*  multiplication
/  division
% module
Compound assignation operators 
(+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
contoh
value += increase; equivalen dengan value = value + increase;
a -= 5; equivalen dengan a = a – 5;
a /= b; equivalen dengan a = a / b;
price *= units + 1; equivalen dengan price = price * (units + 1);
Increase (++) and decrease (–).
Contoh  :
a++;
a+=1;
a=a+1;
Contoh diatas adalah equivalen  secara fungsional. Nilai a dikurangi 1. Operator  Increase  dan  Decrease  dapat  digunakan  sebagai  prefix  atau  suffix.  Dengan  kata lain  dapat  dituliskan  sebelum  identifier  variabel  (++a)  atau  sesudahnya  (a++).  operator increase yang digunakan sebagai prefix (++a), Perbedaannya terlihat pada tabel dibawah ini :
Capture.PNG3
Pada  contoh  1,  B  ditambahkan  sebelum  nilainya  diberikan  ke  A.  Sedangkan  contoh  2, Nilai  B diberikan terlebih dahulu ke A dan  B ditambahkan kemudian.
Relational operators ( ==, !=, >, <, >=, <= )
Untuk  mengevaluasi  antara  2  ekspresi,  dapat  digunakan  operator  Relasional.  Hasil  dari operator  ini  adalah  nilai  bool  yaitu  hanya  berupa    true  atau  false,  atau  dapat  juga  dalam nilai  int,  0  untuk  mereprensentasikan  “false”  dan  1  untuk  merepresentasikan  “true”.
Operator-operator relasional  pada C++ :
== Equal
!= Different
>  Greater than
<  Less than
>= Greater or equal than
<= Less or equal than
Contoh  :
 (7 == 5) would return false.
(5 > 4)  would return true.
(3 != 2) would return true.
(6 >= 6) would return true.
(5 < 5)  would return false.
Contoh, misalkan  a=2, b=3 dan c=6  :
 (a == 5)  would return false.
(a*b >= c)  would return true since (2*3 >= 6) is it.
(b+4 > a*c)  would return false since (3+4 > 2*6) is it.
((b=2) == a)  would return true.
Logic operators ( !, &&, || ).
Operator  !  equivalen  dengan  operasi  boolean  NOT,  hanya  mempunyai  1  operand,  berguna untuk membalikkan nilai dari operand yang bersangkutan. Contoh
 !(5 == 5)  returns false because the expression at its right (5 == 5) would be true.
!(6 <= 4)  returns true because (6 <= 4) would be false.
!true  returns false.
!false  returns true.
operator Logika  &&  dan ||  digunakan  untuk  mengevaluasi 2  ekspresi dan  menghasilkan 1 nilai
akhir. mempunyai arti yang sama dengan operator logika Boolean  AND dan OR. Contoh  :
Capture.PNG4
Contoh  :
 ( (5 == 5) && (3 > 6) ) returns false ( true && false ).
( (5 == 5) || (3 > 6)) returns true ( true || false ).

Conditional operator ( ? ).
operator  kondisional  mengevaluasi  ekspresi  dan  memberikan  hasil  tergantung  dari  hasil
evaluasi (true atau false). Sintaks   :

condition ? result1 : result2
Jika kondisi true maka akan menghasilkan result1, jika tidak akan menghasilkan result2.
 7==5 ? 4 : 3    returns 3 since 7 is not equal to 5.
7==5+2 ? 4 : 3   returns 4 since 7 is equal to 5+2.
5>3 ? a : b    returns a, since 5 is greater than 3.
a>b ? a : b    returns the greater one, a or b.
Bitwise Operators ( &, |, ^, ~, <<, >> ).
Operator  Bitwise  memodifikasi  variabel  menurut  bit  yang  merepresentasikan  nilai  yang
disimpan, atau dengan kata lain dalam representasi  binary.
op  asm  Description
&  AND  Logical AND
|  OR  Logical OR
^  XOR Logical exclusive OR
~  NOT  Complement to one (bit inversion)
<< SHL  Shift Left
>> SHR  Shift Right
Capture.PNG5
Explicit type casting operators
Type casting operators memungkinkan untuk mengkonversikan tipe data yang sudah diberikan
ke tipe data yang lain. Ada beberapa cara yang dapat dilakukan dalam C++, yang paling popular
yaitu tipe baru dituliskan dalam  tanda kurung () contoh:
int i;
float f = 3.14;
i = (int) f;
Contoh  diatas,  mengkonversikan  nilai  3.14  menjadi  nilai  integer  (3).  Type  casting  operator
yang digunakan  (int). Cara lainnya   :
i = int ( f );
Prioritas pada operator
Contoh  :
a = 5 + 7 % 2
Jawaban  dari  contoh  diatas  adalah  6.  Dibawah  ini  adalah  prioritas  operator  dari  tinggi  ke
rendah  :
Capture.PNG6
 Capture.PNG7
 Komunikasi melalui console
Console  merupakan  interface  dasar pada computers, biasanya berupa  keyboard dan monitor. Keyboard  merupakan  alat  input  standar  dan  monitor  adalah  alat  output  standar.  Dalam library  iostream  C++ ,  standard operasi input dan output untuk pemrograman didukung oleh  2 data  streams:  cin  untuk  input  dan  cout  untuk  output.  Juga,  cerr  dan  clog  sebagai tambahan  untuk  output  streams  yang  di  desain  khusus  untuk  menampilkan  error  messages. Dapat diarahkan langsung ke standard output maupun ke log file. Biasanya  cout  (standard  output  stream)  ditujukan  untuk  monitor  dan  cin  (standard  input stream)  ditujukan  untuk  keyboard.  Dengan  menggunakan  dua  streams  ini,  maka  kita  dapat berinteraksi  dengan  user  dengan  menampilkan  messages  pada  monitor  dan  menerima  input dari keyboard.
Output (cout)
Penggunaan  cout  stream  dhubungkan  dengan  operator  overloaded    <<  (Sepasang  tanda “less than”).  Contoh  :
cout << “Output sentence”; // prints Output sentence on screen
cout << 120;               // prints number 120 on screen
cout << x;                 // prints the content of
variable x on screen
Operator << dikenal sebagai insertion operator, dimana berfungsi untuk menginput data yang
mengikutinya.  Jika  berupa  string,  maka  harus  diapit  dengan  kutip  ganda  (“),  sehingga
membedakannya dari variable. Contoh  :
cout << “Hello”;      // prints Hello on screen
cout << Hello;        // prints the content of Hello
variable on screen
Operator insertion (<<) dapat digunakan lebih dari 1 kali dalam kalimat yang  sama, Contoh  :
cout << “Hello, ” << “I am ” << “a C++ sentence”;
Contoh  diatas  akan  menampilkan    Hello,  I  am  a  C++  sentence   pada  layar  monitor.
Manfaat  dari  pengulangan  penggunaan  operator  insertion  (<<)  adalah  untuk  menampilkan
kombinasi dari satu  variabel dan konstanta atau lebih, contoh     :
cout << “Hello, I am ” << age << ” years old and my zipcode
is ” << zipcode;
Misalkan variable age = 24 dan  variable zipcode = 90064 maka output yang dihasilkan :
Hello, I am 24 years old and my zipcode is 90064
Contoh  :
cout << “First sentence.\n “;
cout << “Second sentence.\nThird sentence.”;
Output :
First sentence.
Second sentence.
Third sentence.
Selain  dengan  karakter  new-line,  dapat  juga  menggunakan  manipulator  endl,  contoh
:
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
cout << “First sentence.” << endl;
cout << “Second sentence.” << endl;
Output :
First sentence.
Second sentence.


Input (cin).
Menangani  standard  input  pada  C++  dengan  menambahkan  overloaded  operator  extraction
(>>)  pada  cin  stream.  Harus  diikuti  bengan  variable  yang  akan  menyimpan  data.  Contoh
:
int age;
cin >> age;
Contoh  diatas  mendeklarasikan  variabel  age  dengan  tipe  int  dan  menunggu  input  dari  cin
(keyborad) untuk disimpan di variabel age.
cin akan memproses input dari keyboard sekali saja dan tombol ENTER harus ditekan.
Contoh  :

// i/o example
#include
int main ()
{
int i;
cout << “Please enter an integer value: “;
cin >> i;
cout << “The value you entered is ” << i;
cout << ” and its double is ” << i*2 << “.\n”;
return 0;
}
Output :
Please enter an integer value: 702
The value you entered is 702 and its double is 1404.
cin juga dapat digunakan untuk lebih dari satu input  : 
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
cin >> a >> b;
Equivalen dengan  :
cin >> a;
cin >> b;
Dalam  hal  ini  data  yang  di  input  harus  2,  satu  untuk  variabel a  dan  lainnya  untuk  variabel  b
yang penulisannya dipisahkan dengan :  spasi, tabular atau newline.
Struktur Kontrol
Sebuah  program biasanya  tidak  terbatas  hanya  pada  intruksi  yang  terurut saja,  tetapi  juga
memungkinkan  terjadinya  percabangan,  perulangan  dan  pengambilan  keputusan.  Untuk
mengatasi  kebutuhan  itu  C++  menyediakan  struktur  kontrol  yang  dapat  menangani  hal-hal
tersebut.
Untuk  membahas  hal  tersebut  diatas,  akan  ditemui  istilah  block  of  instructions.  Blok
instruksi  adalah  sekumpulan  instruksi  yang  dibatasi  dengan  tanda  semicolon  (;)  tetapi
dikelompokan d alam satu blok yang dibatasi dengan  kurung kurawal {  }.
Struktur Kondisional : if and else
Digunakan  untuk  mengeksekusi  sebuah  atau  satu  blok  instruksi  jika  kondisi  terpenuhi,
sintaks:

 if (condition) statement
condition merupakan ekspresi yang dievaluasi.  Jika kondisi bernilai  true, maka statement
akan  dijalankan.  Jika  false,  maka  statement  akan  diabaikan  dan  program  menjalankan
instruksi selanjutnya.
Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:
if (x == 100)
cout << “x is 100″;
Jika  ada  lebih  dari  satu  instruksi  yang  akan  dijalankan  maka  harus  dibuat  dalam  blok
instruksi dengan menggunakan tanda kurung kurawal { }:
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
if (x == 100)
{
cout << “x is “;
cout << x;
}
Dapat  juga  menggunakan  keyword  else,  jika  kondisi  tidak  terpenuhi.  Penulisannya
digabungkan dengan if :

if (condition) statement1 else statement2
Contoh  :
if (x == 100)
cout << “x is 100″;
else
cout << “x is not 100″;
Akan tercetak x is 100 jika nilai x adalah 100, jika tidak akan tercetak x is not 100.
Contoh  :
if (x > 0)
cout << “x is positive”;
else if (x < 0)
cout << “x is negative”;
else
cout << “x is 0″;
Struktur perulangan (loops)
Loops merupakan perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.
The while loop.
Sintaks :

 while (expression) statement
Fungsi dari statement diatas adalah mengulang  statement jika expression bernilai true.
Contoh  :
 // custom countdown using while
#include
int main ()
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
{
int n;
cout << “Enter the starting number > “;
cin >> n;
while (n>0) {
cout << n << “, “;
–n;
}
cout << “FIRE!”;
return 0;
}
Output :
Enter the starting number > 8
8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Algoritma program dimulai dari main :
1. User meng-input nilai untuk  n. 
2. Instrukti while mengevaluasi apakah (n>0). Ada dua kemungkinan  :
true: meng-eksekusi statement (step 3,) 
false: melompati statement. lanjut ke  step 5..
3.Mengeksekusi statement :  cout << n << “, “;
–n;
(Menampilkan n di layar dan  mengurangi n dengan 1).
4. Akhir dari blok. kembali ke step 2. 
5. lanjut menuju program setelah blok. Cetak  : FIRE!  dan program berakhir.
The do-while loop.
Format:

 do statement while (condition);
Secara  fungsional,  hampir  sama  dengan  while  loop,  hanya  saja  condition  dalam  do-while
dievaluasi  setelah  eksekusi  statement  ,  dengan  kata  lain,  sedikitnya  satu  kali  eksekusi
statement walaupun kondisi tidak terpenuhi. Contoh  :
// number echoer
#include
int main ()
{
unsigned long n;
do {
cout << “Enter number (0 to end): “;
cin >> n;
cout << “You entered: ” << n << “\n”;
} while (n != 0);
return 0;
}
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
Output :
Enter number (0 to end): 12345
You entered: 12345
Enter number (0 to end): 160277
You entered: 160277
Enter number (0 to end): 0
You entered: 0
The for loop.
Format :

 for (initialization; condition; increase) statement;
Fungsinya  akan  mengulang  statement  jika  condition  bernilai  benar.  Sama  seperti  while
loop.,  hanya  saja  for  memungkinkan  untuk  memberikan  instruksi  in iti alization  dan
intruksi increase, sehingga dapat menampilkan loop dengan counter.
Algoritma perulangan for  :
1.  initialization,  digunakan  untuk  memberikan  nilai  awal  untuk  variable  counter.
Dieksekusi hanya sekali.
2.  condition,  Dievaluasi,  jika  bernilai  true  maka  loop  berlanjut,  sebaliknya  loop
berhenti dan statement diabaikan
3.  statement,   dieksekusi, bisa berupa instruksi tunggal  maupun blok instruksi (dalam
tanda  { } ).
4.   increase, dieksekusi kemudian algoritma kembali ke step 2.
Contoh  :
 // countdown using a for loop
#include
int main ()
{
for (int n=10; n>0; n–) {
cout << n << “, “;
}
cout << “FIRE!”;
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Initialization  dan  increase  bersifat    optional.  Sehingga  dapat  dituliskan  :  for
(;n<10 atau="atau" b="b" dan="dan" for="for" increase="increase" initialization="initialization" n="n" nbsp="nbsp" tanpa="tanpa" untuk="untuk">
for  dengan  increase tetapi tanpa  initialization.  Dengan operator  koma  (,)  kita  dapat
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
mendeklarasikan  lebih  dari  satu  instruksi  pada  bagian  manapun  termasuk  dalam  loop  for,
contoh  :
for ( n=0, i=100 ; n!=i ; n++, i– )
{
// whatever here…
}
Loop diatas akan meng-eksekusi sebanyak 50 kali :
nilai  awal  n  =  0   dan  i  =  100,  dengan  kondisi  (n!=i)  (yaitu  n  tidak  sama  dengan  i).
Karena  n  mengalami  penambahan  1  dan  i  mengalami  pengurangan  1,  maka  kondisi  loop  akan
salah setelah loop yang ke-50, yaitu ketika n dan i bernilai 50.
Kontrol Percabangan (Bifurcation) dan Lompatan (jumps)
Instruksi break 
Dengan  menggunakan  instruksi  break,  program  akan  keluar  dari  loop  walaupun  kondisi  untuk
berakhirnya  loop  belum  terpenuhi.  Dapat  digunakan  untuk  mengakhiri  infinite  loop,  atau
untuk menyebabkan loop selesai sebelum saatnya, contoh   :
 // break loop example
#include
int main ()
{
int n;
for (n=10; n>0; n–) {
cout << n << “, “;
if (n==3)
{
cout << “countdown aborted!”;
break;
}
}
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, countdown aborted!
Instruksi continue 
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
Instruksi  continue  menyebabkan  program  akan  melewati  instruksi  selanjutnya  hingga  akhir
blok  dalam  loop.  Atau  dengan  kata  lain  langsung  melompat  ke  iterasi  selanjutny.  Contoh
berikut akan melewati angka 5 dalam hitungan mundur :
 // break loop example
#include
int main ()
{
for (int n=10; n>0; n–) {
if (n==5) continue;
cout << n << “, “;
}
cout << “FIRE!”;
return 0;
}
Output :
10, 9, 8, 7, 6, 4, 3, 2, 1, FIRE!
Instruksi goto 
Menyebabkan  lompatan  dalam  program.  Tujuan  dari  lompatan  diidentifikasikan  dengan  label,
yang berisikan argumen-argumen. penulisan label diikuti dengan tanda colon (:).  Contoh  :
 // goto loop example
#include
int main ()
{
int n=10;
loop:
cout << n << “, “;
n–;
if (n>0) goto loop;
cout << “FIRE!”;
return 0;
}
Output :
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, FIRE!
Struktur Seleksi : switch.
Instruksi  switch digunakan  untuk membandingkan  beberapa nilai konstan  yang mungkin untuk
sebuah ekspresi, hampir sama dengan if dan else if. Bentuk umumnya  :


Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga


 switch (expression) {
  case constant1:
    block of instructions 1
    break;
  case constant2:
    block of instructions 2
    break;
  .
  .
  .
  default:
    default block of instructions
  }

switch  meng-evaluasi expression  dan  memeriksa  apakah  equivalen dengan constant1,  jika
ya,  maka  akan  meng-eksekusi  block  of  instructions 1  sampai  terbaca  keyword  break,
kemudian program akan lompat ke akhir dari stuktur selektif switch.
Jika  expression tidak  sama  dengan  constant1, maka akan  diperiksa  apakah  expression
equivalen  dengan  constant2.  jika  ya,  maka  akan  dieksekusi  bl ock  of  in structions  2
sampai terbaca break. Begitu seterusnya, jika  tidak ada satupun konstanta yang sesuai  maka
akan mengeksekusi default:
contoh  :
switch example
switch (x) {
case 1:
cout << “x is 1″;
break;
case 2:
cout << “x is 2″;
break;
default:
cout << “value of x
unknown”;
}
if-else equivalent
if (x == 1) {
cout << “x is 1″;
}
else if (x == 2) {
cout << “x is 2″;
}
else {
cout << “value of x unknown”;
}
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
Praktikum Teknologi Informasi dan Komunikasi UIN Sunan  Kalijaga
source : http://christynurulf.wordpress.com/2012/12/25/c/

Tidak ada komentar:

Posting Komentar