modul include all topics

68
Bahan Ajar & Modul Praktikum Pemrograman Komputer (Computer Programming) Disusun Oleh: Program Studi Teknik Informatika Politeknik Negeri Jakarta 2013

Upload: tias-syawala-putra

Post on 16-Apr-2016

41 views

Category:

Documents


4 download

DESCRIPTION

c++

TRANSCRIPT

Page 1: Modul Include All Topics

Bahan Ajar & Modul Praktikum 

Pemrograman Komputer (Computer Programming) 

 

 

 

Disusun Oleh: 

 

 

 

 

 

 

 

 

 

 

 

 

Program Studi Teknik Informatika 

Politeknik Negeri Jakarta 

2013 

Page 2: Modul Include All Topics

 

 

Daftar Isi 

Table of Contents Daftar Isi .............................................................................................................................. 1 

MODUL 1‐ OPERATOR DAN STATEMENT ............................................................................ 3 

1.  Operator di dalam C++ ............................................................................................ 3 

1.1 Operator Aritmetika .............................................................................................. 3 

1.2  Operator relasional ......................................................................................... 3 

1.3  Operator Logika .............................................................................................. 3 

1.4  Operator Bitwise ............................................................................................. 4 

1.5  Operator Increment / Decrement ................................................................... 5 

1.6  Operator Penugasan ....................................................................................... 6 

1.7  Operator Kondisi ............................................................................................. 7 

1.8       Operator Comma ............................................................................................. 7 

1.9  Operator Sizeof ............................................................................................... 8 

1.10  Tingkatan Operator ......................................................................................... 8 

2.  Statement pada C++ ................................................................................................ 9 

2. 1  Statement If ........................................................................................................ 9 

2. 2  Statement Switch .............................................................................................. 10 

2. 3  Statement while ................................................................................................ 10 

2. 4  Statement do .................................................................................................... 10 

2. 5  Statement for .................................................................................................... 10 

2. 6  Statement Continue .......................................................................................... 10 

2. 7  Statement break ............................................................................................... 12 

2. 8  Statement goto ................................................................................................. 13 

2. 9  Statement return .............................................................................................. 13 

Page 3: Modul Include All Topics

 

Modul 2 – Pointer & References ....................................................................................... 15 

Modul 3 ‐ Manipulator ...................................................................................................... 24 

Manipulator dalam C++ ................................................................................................ 24 

Format penggunaan manipulator pada program C++ .................................................. 24 

Modul 5‐Fungsi Input C++ ................................................................................................. 31 

Modul 6–Tipe Data Bentukan Lainnya .............................................................................. 34 

Modul 7‐Preprosesor & File Header ................................................................................. 42 

MODUL 8 – CLASS ............................................................................................................. 47 

Modul 9‐Inheritance ......................................................................................................... 55 

Modul 11 – Linked List (1) ................................................................................................. 64 

Modul 12‐Exception Handling                             68 

Modul 13‐Operasi File                         75 

 

Page 4: Modul Include All Topics

 

 

MODUL 1‐ OPERATOR DAN STATEMENT 

 

1. Operator di dalam C++ 

1.1 Operator Aritmetika 

Operator  Nama  Contoh 

+  Penambahan (addition)  12 + 4.9 

‐  Pengurangan (subtraction)  3.98 – 4 

*  Perkalian (multiplication)  2 * 3.4 

/  Pembagian (division)  9 / 2.0 

%  Sisa hasil bagi (reminder  13 % 3 

 

Semua  operator  dapat  mengoperasikan  bilangan  bentuk  integerdan  ril  (real) 

kecuali untuk operator sisa hasil bagi. 

1.2 Operator relasional 

Operator ini digunakan untuk membandingkan nilai numerik. Operator relasional 

harus mengevaluasi terhadap angka. Karakter merupakan operand yang valid 

apabila dituliskan dalam nilai numerik. 

Operator  Nama  Contoh 

==  Kesamaan/ sama dengan  5 == 5 

!=  Tidak sama dengan  5 != 5 

<  Kurang dari  5 < 5.5 

<=  Kurang dari sama dengan  5 <= 5 

>  Lebih besar dari  5 > 5.5 

>=  Lebih besar sama dengan  6.3 >= 5 

 

1.3 Operator Logika 

Operator ini digunakan untuk mengkombinasikan ekspresi logika. 

Operator  Nama  Contoh 

!  Negasi  ! (5 == 5) 

Page 5: Modul Include All Topics

 

&&  Logika AND  5 < 6 && 6 < 6 

||  Logika OR  5 < 6 || 6 < 5 

 

1.4 Operator Bitwise 

Operator ini digunakan untuk operasi bit. 

Operator  Nama  Contoh 

~  Negasi bitwise  ~  ‘\011’ 

&  AND bitwise  ‘\011’ & ‘\027’ 

|  OR bitwise  ‘\011’ | ‘\027’ 

^  Exclusive Or bitwise  ‘\011’ ^ ‘\027’ 

<<  Geser kiri bit  ‘\011’ << 2 

>>  Geser kanan bit  ‘\011’ >> 2 

 

Ilustrasi 

Contoh  Nilai oktal  Bit 

X  011  0  0  0 0  1 0  0  1 

Y  027  0  0  0 1  0 1  1  1 

~X  366  1  1  1 1  0 1  1  0 

X & Y  001  0  0  0 0  0 0  0  1 

X | Y  037  0  0  0 1  1 1  1  1 

X ^ Y  036  0  0  0 1  1 1  1  0 

X << 2  044  0  0  1 0  0 1  0  0 

X >> 2  002  0  0  0 0  0 0  1  0 

 

Contoh Listing Program : 

Page 6: Modul Include All Topics

 1.5 Operator Increment / Decrement 

Operator ini terbagi menjadi  auto increment (++) dan auto decrement (‐‐). 

Berfungsi untuk menambahkan atau mengurangi 1 nilai dari variabel numerik.  

Operator  Nama  Contoh 

++  Auto increment (prefix)  ++k  +  10 

++  Auto increment (postfix)  k++ +  0 

‐‐  Auto decrement (prefix)  ‐‐k + 10 

‐‐  Auto decrement (postfix)  k‐‐ +10 

 

Kedua operator bisa digunakan dalam bentuk prefix atau postfix. Perbedaannya 

adalah dalam bentuk prefix, operator diaplikasikan pertama kali dam hasil  lalu 

digunakan  dalam  ekpresi.  Bentuk  postfix,  ekspresi  dievaluasi  pertama  kali  lalu 

operator diaplikasikan. 

 

Page 7: Modul Include All Topics

 1.6 Operator Penugasan  

Operator ini digunakan untuk menyimpan nilai pada lokasi memori.  

Operator  Contoh  Ekuivalen terhadap 

=  n = 25   

+=  n += 25  n = n + 25 

‐=  n  ‐= 25  n = n ‐ 25 

*=  n * = 25  n = n * 25 

/=  n /= 25  n = n / 25 

%=  n %= 25  n = n % 25 

&=  n &= 0xF2F2  n = n & 0xF2F2 

|=  n |= 0xF2F2  n = n | 0xF2F2 

^=  n  ^= 0xF2F2  n = n ^ 0xF2F2 

<<=  n <<= 4  n = n  << 4 

>>=  n >>= 4  n = n >> 4 

 

Operand  yang  berada  sebelah  kiri merupakan  sebuah  nilai,  dan  operan  yang 

berada pada sebelah kanan adalah ekspresi arbritary (acak). Lalu akan dievaluasi 

 

Page 8: Modul Include All Topics

dan  hasilnya  akan  disimpan  pada  lokasi  yang  didenotasikan  oleh  nilai  sebelah 

kiri. 

1.7 Operator Kondisi  

Bentuk umum dari operator ini adalah sbb: 

operand1 ? operand2 : operand3 

Pertama yang akan dievaluasi adalah operand1, dievaluasi sebagai kondisi logika. 

Jika hasilnya nonzero maka operand2 akan dievaluasi dan hasil evaluasi adalah 

hasil final. Atau, operand3 dievaluasi dan nilainya adalah hasil final. 

Contoh:  

Int m = 1, n = 2; 

Int min = (m < n ? m : n);   // hasilnya min=1 

 1.8 Operator Comma  

Berbagai  ekspresi  dapat  dikombinasikan  dalam  satu  ekspresi  menggunakan 

operator  comma.  Operator  comma  mengambil  dua  operand.  Pertama  kali 

mengevaluasi  operand  bagian  kiri  lalu  operand  bagian  kanan,  dan 

mengembalikan nilai sebagai hasil akhir.  

Contoh: 

int m, n, min; 

int mCount = 0, nCount = 0; 

min = (m< n ? mCount++, m : nCount++, n);  7 

 

Page 9: Modul Include All Topics

 

Jika m  lebih kecil dari n, mCount++ dievaluasi dan nilai dari m disimpan dalam 

min. Tetapi jika nCount++ dievaluasi dan nilai dari n disimpan dalam min. 

1.9 Operator Sizeof 

Operator ini digunakan untuk menghitung ukuran dari berbagai tipe dan item 

data. Menggunakan operand tunggal. 

Contoh: 

#include <iostream> 

Int main ( ) {  

cout << “char size = “ << sizeof(char) << “ bytes\n”; 

cout << “HELLO size = “ << sizeof (“HELLO”) << “ bytes\n”; } 

 

 

1.10 Tingkatan Operator  

Operator‐operator yang digunakan oleh C++ memiliki  tingkatan  tertentu dalam 

penggunaannya  jika  dilakukan  bersama.  Berikut  adalah  level  tingkatan  dari 

operator‐operator pada C++. 

 

Page 10: Modul Include All Topics

 Tugas Di Kelas (Menggunakan operator kondisi): 

1. Susun  program  untuk  menginput  3  buah  bilangan  (anggap  ketiga  buah 

bilangan tersebut nilainya tidak sama satu dengan lainnya). Kemudian cetak 

salah satu bilangan yang terkecil. 

a) Menggunakan logical Operator AND dan OR. 

b) Tidak boleh menggunakan logical Operator AND dan OR 

2. Susun program untuk menginput 3 buah bilangan  (anggap  ketiga bilangan 

tersebut  nilainya  tidak  sama  satu  dengan  lainnya).  Kemudian  cetak  salah 

satu  bilangan  tersebut  urut mulai  bilangan  yang  nilainya  terbesar  sampai 

nilai terkecil. 

a) Menggunakan logical Operator AND dan OR. 

b) Tidak boleh menggunakan logical Operator AND dan OR 

======================= Akhir Modul Operator=================== 

2. Statement pada C++ 

2. 1  Statement If 

If (expression) 

Statement; 

If (expression) 

Statement1;  

Else  

Statement2; 

 

Page 11: Modul Include All Topics

10 

 

2. 2  Statement Switch  

Switch(expression) { 

Case constant1; 

Statement1; 

..... 

Case constantn; 

Statementn; 

Default: 

Statement; 

2. 3  Statement while 

while (expression) 

statement; 

2. 4  Statement do 

do  

Statement; 

while (expression); 

2. 5  Statement for 

for (expression1; expression2; expression3) 

statement; 

2. 6  Statement Continue 

Statement ini digunakan untuk melanjutkan proses pengulangan. Statemen ini 

akan menyebabkan program meloncat ke statemen awal yang terdapat dalam 

blok pengulangan. 

Page 12: Modul Include All Topics

 Contoh kasus: 

Dalam lembar dokumen ada banyak sekali bilangan integer yang merupakan nilai 

ujian  mahasiswa.  Susun  program  untuk  mengambil  lima  nilai  pertama  yang 

nilainya >=60 dan mencetak nilai  rata‐rata. Diinput satu persatu dari awal,  tapi 

yang diambil hanya yang nilainya >=60. Bila nilai yang diketik <60, maka ulangi 

mengetik. Bila telah dapat 5 orang yang nilainya >=60, maka proses input selesai, 

kemudian cetak nilai rata‐rata. 

 11 

 

Page 13: Modul Include All Topics

2. 7  Statement break  

Statement ini digunakan untuk mengehentikan proses pengulangan dan program 

akan  langsung meloncat  ke  statemen  yang berada di bawah blok pengulangan 

yang bersangkutan.  

 

Contoh kasus:  

Dalam  lembar  dokumen  ada  10  bilangan  integer.  Susun  program  untuk 

menginput  bilangan‐bilangan  tersebut  dan  mencetak  totalnya.  Yang  diinput 

belum  tentu  semua  (10) bilangan. Walaupun belum 10 buah bilangan  tapi bila 

totalnya sudah > 1000 maka berhenti menginput,  langsung mencetak  total dan 

proses  selesai.  Tetapi  apabila  belum  >  1000,  barulah  menginput  semua  (10) 

bilangan. 

 

12 

 

Page 14: Modul Include All Topics

2. 8  Statement goto 

Statement ini sama halnya dengan statement break dan continue. Pada 

statemen ini terjadi perloncatan pada label. Label dibuat dan diberikan identifier. 

 

2. 9  Statement return 

Statemen  ini  digunakan  untuk  mengembalikan  nilai  terhadap  fungsi  yang 

memanggilnya.  

return expression;  

 

Tugas Di Kelas (gunakan statement break atau continue atau goto): 

1. Buat Program untuk memasukan sebuah bilangan Bulat yang menyatakan Jumlah m 

Kubik  air  PAM  yang  digunakan.  Apabila  pengguna  memasukan  nilai  =  0  maka 

program berhenti. Input selesai ketika nilai yang dimasukan adalah bilangan bukan 

0.  Kemudian  cetak  harga  yang  harus  dibayar  apabila  berlaku  ketentuan  sebagai 

berikut: 

‐ 50 m kubik pertama, Harga per m kubik = Rp. 1000,‐ 

‐ 50 m kubik kedua, Harga per m kubik = Rp. 1500,‐ 

‐ 50 m kubik ketiga, Hargaper m kubik= Rp. 2000,‐ 

‐ Untuk m kubik selanjutanya berlaku harga Rp. 3000,‐ per m kubik. 

Secara Tabel dapat digambarkan sebagai berikut: 

0                        50  51                        100  101                      150  151 

Rp. 1000 per m 

kubik 

Rp. 1500 per m kubik  Rp. 2000 per m kubik  Rp. 3000 per m 

kubik 

13 

 

Page 15: Modul Include All Topics

14 

 

 

Contoh: 

Bila menggunakan 40 m kubik, maka akan membayar = 40*1000 

Bila menggunakan 75 m kubik, maka akan membayar = 50*1000+25 *1500 

Bila menggunakan 225 m kubik, maka akan membayar = 

50*1000+50*1500+50*2000+75*3000 

 

2. Susun program untuk menginput sebuah bilangan bulat yang merupakan nilai ujian. 

apabila nilai yang diinput < 0 atau > 100 maka ulangi menginput data. Bila nilainya 

berada dalam batas 10 ‐ 100, maka periksa nilai tersebut. bila nilainya >=60, maka 

cetak perkataan "LULUS", selainnya cetak "GAGAL". 

 

Page 16: Modul Include All Topics

Modul 2 – Pointer & References 

 

• Pointer dilihat dari fungsinya, diartikan sebagai suatu nilai yang menunjuk alamat 

suatu lokasi memori. 

• Lokasi memori: bisa diwakili variabel atau tidak (lokasi bebas dalam memori). 

• Variabel pointer: nilai pointer yang ditampung dalam variabel. (Nilai alamat suatu 

lokasi) 

• Selanjutnya, Variabel pointer hanya disebut pointer. 

1. Pointer sebagai Tipe data 

Bentuk umum: 

tipeData *identifier;

 

 

Listing‐Program 1 

 

 

 15 

 

Page 17: Modul Include All Topics

Listing‐Program 2 

 

Listing‐Program 3 

 

2. Pointer sebagai variabel 

Dikarenakan C++ tidak dapat menginisialisasi variabel, maka inisialisasi varibel 

untuk pointer perlu dilakukan jika pointer‐pointer tersebut tidak ingin merefer ke 

variabel/ nilai lain. Pointer diinisialisasi menggunakan nilai 0, disebut sebagai Null 

pointer. 

p = NULL;

p = 0;

16 

 

Page 18: Modul Include All Topics

 

3. Pointer sebagai Variabel Dinamis 

Variabel yang dibuat/ dibentuk selama program dijalankan disebut sebagai variabel 

dinamis. Dengan bantuan pointer C++ dapat membuat variabel tersebut. 

Keuntungannya adalah dapat mengakses ruang memory melalui variabel yang kita 

punya. C++ menyediakan dua operator untuk membuat variable dinamis yaitu new 

dan delete. Ketika program membutuhkan variabel baru maka menggunakan 

new. Sebaliknya jika sudah tidak membutuhkan variabel maka menggunakan 

operator delete untuk menghapus alokasi memori.

 

Listing‐Program 4 

 

4. Pointer & Array 

• Secara internal array diterjemahkan ke dalam bentuk pointer. 

• Array adalah pointer constant ke elemen pertama array, sehingga untuk 

memanipulasi elemen array dapat juga dilakukan dengan pendekatan pointer. 

Karena secara fisik elemen‐elemen array diletakan berurutan dalam memory. 

 

17 

 

Page 19: Modul Include All Topics

int *intList;

int arraySize;

cout << “Enter array Size”;

cin >> arraySize;

cout << endl;

intList = new int[arraySize];

 

Listing‐Program 5 

 

 

Latihan Di Kelas 

1. Apa yang tercetak bila program berikut dijalankan ? 

A  int main {

18 

 

Page 20: Modul Include All Topics

19 

 

int a, b, t, *p,*q, *r;

a = 25; b = 12;

p = &a; q = &b; r = &t;

*r = *p + *q;

cout << *r;

}

B  int main {

int i, *p, A[5] = {15,12,25,17,10};

p = A;

p = p + 2;

cout << *p;

}

C  int main {

int i,*p, A[5]= {15,12,25,17,10};

p = &A[2];

cout << *++p;

cout << *p;

}

D  int main {

int i,*p, A[5]= {15,12,25,17,10};

p = &a[2];

cout << *--p;

cout << *p;

}

E  int main {

int i,*p, A[5]= {15,12,25,17,10};

p = &A[2];

Page 21: Modul Include All Topics

20 

 

cout << *++p++;

cout << *p;

}

F  int main {

int i,*p, A[5]= {15,12,25,17,10};

p = &A[2];

cout << *--p--;

cout << *p;

}

G  int main {

int i,*p, A[5]= {15,12,25,17,10};

p = A;

i = 0;

While (i <= 4) {

cout << *p;

p = p + 1;

i = i + 2;

}

 

2. Sudah dibuat array dua dimensi int[3][5] lengkap dengan isinya melalui ilustrasi 

sebagai berikut: 

Ilustrasi array dua dimensi A[3][5] 

  0  1  2  3  4 

0  15  12  25  17  10 

1  21  30  32  23  35 

2  16  8  7  40  11 

 

 

Apa yang tercetak bila isi array tersebut dicetak dengan menambahkan instruksi sebagai 

berikut: 

Page 22: Modul Include All Topics

21 

 

A  int main {

int i, *p;

p = &A[0][0];

i = 1;

while (i <= 15){

cout << *p;

p++;

i++;

}}

B  int main {

int i, *p;

p = &A[0][0];

i = 1;

while (i <= 15){

cout << *p;

p+=2;

i+=5;

}}

C  int main {

int i, j, *p;

p = &A[0][0];

i = 1;

while (i <= 3){

j = 1;

while (j <= 5) {

cout << *p;

p++;

j++;}

Page 23: Modul Include All Topics

22 

 

cout << ‘\n’;

i++;

}}

D  int main {

int i,j,*p;

p = &A[0][0];

i = 1;

while (i <= 5){

j = 1;

while (j <= 3) {

cout << *p;

p++;

j++;}

cout << ‘\n’;

i++;

}}

E  int main {

int i, *p;

p = &A[0][0];

i = 1;

while (i <= 3){

cout << *p;

p+=3;

i++;

}}

F  int main {

int i, *p;

p = &A[0][0];

Page 24: Modul Include All Topics

23 

 

i = 1;

while (i <= 3){

cout << *++p;

p+=3;

i++;

}}

 

3. Buat sebuah program untuk menampilkan hasil evaluasi jawaban soal dari 

Mahasiswa sebagai berikut: 

Input: 

Masukan jumlah mahasiswa : __ 

1234567890   AAAABBEEDD 

Jika jumlah mahasiswa yang diinput adalah 10, maka terdapat 10 kali input untuk 

NIM dan jawabannya. 

Output: 

Hasil Evaluasi Jawaban Mahasiswa 

1234567890  85    A    

 

Range Nilai:  

85 – 100 =A 

75 – 84 = B 

65 – 74 = C 

55 – 63 = D 

35 – 54 = E 

< 35   = F 

 

4. Latihan Buat program menggunakan array untuk menciptakan deret

Sn = 3n2 + 5n - 7 dg n = 1, 2,3, . . . s/d . 10 Selanjutnya akses array tersebut dengan menggunakan pointer.

5. Buat program menggunakan array untuk menghitung jumlah kumulatif dari soal diatas namun pengaksesan dengan menggunakan pointer.

6. Buatlah program menggunakan aray untuk menampilkan hari-hari dalam seminggu untuk mendeklarasikan variabel text gunakan deklarasi:

char *hari[7]. --> elemen ke-1 adalah hari[0], elemen ke-2 adalah hari[1] dst

Page 25: Modul Include All Topics

24 

 

Modul 3 ‐ Manipulator 

Manipulator dalam C++ Manipulator  Fungsi 

ends  Memindahkan kursor ke posisi awal pada baris berikutnya eds  Menyisipkan karakter null endl  Memindahkan kursor pada baris berikutnya flush  Mencetak isi buffer dec  Melakukan konversi ke bilangan desimal hex  Melakukan konversi ke bilangan hexadesimal oct  Melakukan konversi ke bilangan octal setbase(n)  Melakukan konversi bilangan berbasis n setw(n)  Mengatur lebar tampilan selebar n setfill(c)  Mengisi leading field dengan karakter c setprecision(n)  Membuat lebar desimal point=n setiosflags( )  Mengatur format output sesuai dengan format ios yang digunakan resetiosflags( )   Mereset format yang telah diset oleh setiosflags( ) 

 

Format penggunaan manipulator pada program C++ Dalam menampilkan sebuah hasil output yang menggunakan manipulator maka diperlukan suatu format. Format diperlukan ketika manipulator setiosflags( ) dan resetiosflags( ) digunakan. 

Format  Fungsi ios::left  Hasil output yang telah diatur setw( ) menjadi rapat kiri ios::right  Hasil output yang telah diatur setw( ) menjadi rapat kanan ios::scientific  Hasil output dalam bentuk scientific atau notasi eksponensial ios::fixed  Hasil output dalam bentuk fixed point atau notasi desimal ios::dec  Hasil output dalam bentuk desimal ios::hex  Hasil output dalam bentuk heksadesimal ios::oct  Hasil output dalam bentuk octal ios::uppercase  Hasil otuput dalam bentuk heksadesimal dan huruf besar ios::showbase  Menambahkan 0x pada awal hasil output dalam bentuk 

heksadesimal dan 0 pada hasil output yang berbentuk octal ios::showpoint  Hasil output yang megandung pecahan akan ditampilkan dengan 

format poin desimal (decimal point) ios::showpos  Hasil output diberi tambahan tanda positif (+) pada bagian depan 

 

 

 

 

Page 26: Modul Include All Topics

 

 

Listing‐Program 1 

 

Listing‐Program 2 

 

25 

 

Page 27: Modul Include All Topics

Listing‐Program 3 

 

Listing‐Program 4 

 

Listing‐Program 5 

 

26 

 

Page 28: Modul Include All Topics

Listing‐Program 6 

 

 

Listing‐Program 7 

 

 

 

 

 

27 

 

Page 29: Modul Include All Topics

Listing‐Program 8 

 

Listing‐Program 9 

 

 

 

 

28 

 

Page 30: Modul Include All Topics

Listing‐Program 10 

 

Listing‐Program 11 

 

 

Latihan: 

1. Buat program untuk menampilkan output sebagai berikut: 

A  1    2   3    4    5       6   7    8    9           10  11  12  

B  1    2    3    4    5       7    8    9 

29 

 

Page 31: Modul Include All Topics

30 

 

           13  

C              1      2     3    4 5   6     7   8    9 

   

2. Buat program untuk menampilkan output sebagai berikut: 

CCCCCCCCC CC CC CC CC CCCCCCCCC 

++ ++ 

++++++++++++++ ++++++++++++++ 

++ ++ 

++ ++ 

++++++++++++++ ++++++++++++++ 

++ ++ 

 

Page 32: Modul Include All Topics

Modul 5‐Fungsi Input C++  

cin dan fungsi get  

Digunakan untuk membaca karakter. 

cin.get(varChar); varChar= variabel charcter 

cin dan fungsi ignore  Digunakan untuk mengabaikan beberapa karakter dalam sebuah input. 

cin.ignore(intExp, chExp)  intExp=nilai integer untuk mendeinisikan jumlah karakterselanjutnya.  chExp=nilai character yang ingin diabaikan. 

Fungsi putback dan peek  Putback= Mengambil karakter terakhir. Peek = Mengembalikan karakter selanjutnya. 

cin.putback(ch); ch= Cin.peek(); 

Failure input  Digunakan untuk mengatasi input untuk tipe data yang bukan sebenarnya. 

Assignment (inisialisasi) 

Clear function   Mengembalikan stream input  cin.clear(); Input string  Mengambil kalimat.  string myString 

getline(cin, myString);  

Input cin  Input menggunakan fungsi get 

  

Apa perbedaannya? cin_ignore  Tidak menggunakan cin_ignore 

   

31 

 

Page 33: Modul Include All Topics

 Apa perbedaannya?     Fungsi putback dan peek

 

 Apa yang terjadi jika fungsi putback dan peek hilang?  Failure input 

1. Apa yang terjadi dengan program diatas? 

2.  Bagaimana jika inisialisasi dihilangkan?  

32 

 

Page 34: Modul Include All Topics

Fungsi clear input 

1. Apa yang terjadi dengan program diatas? 

2. Bagaimana jika fungsi clear dihilangkan?   

33 

 

Page 35: Modul Include All Topics

34 

 

Modul 6–Tipe Data Bentukan Lainnya  

1. enum 

Tipe data sederhana yang didefinisikan User ( enum ). Tipe data yang akan dibahas adalah 

enum. Dalam membuat enum, berikut yang dibutuhkan/ dipersiapkan: 

1. Nama tipe data 

2. Sekelompok nilai tipe data 

3. Sekelompok operasi dalam nilai‐nilai 

Dalam C++ tidak membolehkan dalam medefinisikan operasi. Hal tersebut bertujuan dalam 

mencegah kegagalan sistem. Nilai‐nilai yang diidentifikasikan untuk tipe data adalah identifier. 

Bentuk umum syntax: 

enum typeName {value1, value2, value3, ... };

 

Contoh 1: 

enum colors {BROWN, BLUE, RED, GREEN, YELLOW};

enum standing {FRESHMAN, SOPHOMORE, JUNIOR, SENIOR};

enum sports{BASKETBALL, FOOTBALL, HOCKEY, BASEBALL, SOCCER,

VOLLEYBALL};

variabel: 

sports popularSports, mySport;

assignment: 

popularSport = FOOTBALL;

operation: 

          mySoprt = popularSport + 2; //illegal

popularSport = FOOTBALL + SOCCER; //illegal

popularSPort = popularSport + 2; //illegal

popularSport ++; //illegal

popularSport = FOOTBALL; //legal

popularSport = static_cast<sport> (popularSport + 1); //legal

 

relational operators: 

Page 36: Modul Include All Topics

35 

 

FOOTBALL <= SOCCER is true

HOCKEY > BASKETBALL is true

BASEBALL < FOOTBALL is false

 

2. Typedef  

Tipe data bentukan ini digunakan untuk membuat alias atau sinonim terhadap tipe data yang 

telah didefinisikan. Sintaks umum: 

typedef existingTypeName newTypeName;

 

Contoh  1: 

typedef int integer;

typedef double real;

typedef double decimal;

contoh 2: 

typedef int Boolean;

const Boolean TRUE = 1;

const Boolean FALSE = 0;

Boolean flag;

 

3. Namespace 

Namespace dibuat untuk menghindari timbulnya konflik penamaan variabel, konstanta, nama 

fungsi  dan  nama  kelas.  Untuk  itu,  namespace  berguna  sekali  apabila  digunakan  untuk 

menyelesaikan  program‐program  besar  yang  memiliki  kompleksitas  yang  tinggi.  Sintaks 

Umum: 

namespace namespace_name

{

Members

Contoh: 

Namespace GlobalType

{

Page 37: Modul Include All Topics

36 

 

const int N = 10;

const double RATE = 7.50;

int count = 0;

void printResult ();

}

Scope  dari  anggota  namespace  adalah  bersifat  lokal  terhadap  namespace.  Dapat  diakses 

menggunakan dua cara sebagai berikut:

using namespace namespace_name;

using namespace_name::identifier;

Contoh 2: 

#include <iostream>

using namespace std;

int t;

double u;

namespace espN

{

int x;

char t;

double u;

void printResult();

}

using namespace expN;

int main ()

{

int one;

double t;

double three;

....

}

 

Page 38: Modul Include All Topics

37 

 

4. C‐String (Null Terminated String) 

Dalam C++ terdapat fungsi siap pakai untuk menyelesaikan masalah string. Untuk 

menggunakan fungsi tersebut menggunakan header <string>. 

No  Fungsi C‐String  Bentuk umum dan kegunaan 

1  strcpy()  char* strcpy(char S1, const char* S2);

Melakukan copy string S2 ke S1 

2  strncpy()  char* strncpy(char S1, const char* S2,

size_t n);

Melakukan copy string S2 ke S1 sebanyak n karakter 

3  strdup()  char* strcpy(const char* S);

melakukan duplikasi string 

4  strcat()  char* strcat(char S1, const char* S2);

menggabungkan (concat)string dari S2 ke posisi akhir S1 

5  strncat()  char* strncat(char S1, const char* S2,

size_t n);

menggabungkan n karakter dari S2 ke posisi akhir S1 

6  strlen()  size_t strlen(const char* S);

Berguna untuk mengembalikan panjang string dari S. 

7  strcmp()  int strcmp(const char* S1, const char*

S2);

Berguna untuk membandingkan string yang terdapat pada 

variabel S1dan S2. Nilai yang akan dikembalikan adalah: 

• Nol (0):  hal ni terjadi jika S1 sama dengan S2. 

• Kurang dari nol (negatif): hal ini terjadi jika S1 lebih 

kecil dari S2. 

• Lebih dari nol(Positif):  hal ini terjadi jika S1 lebih 

besar dari S2. 

8  strrev()  char* strrev(char* S);

Berguna untuk membalikan string dari variabel S. 

9  strchr()  char* strchr(const char* S, int ch);

Berguna untuk mencari lokasi dari suatu string. 

10  strstr()  char* strstr(const char* S, const char*

Page 39: Modul Include All Topics

38 

 

No  Fungsi C‐String  Bentuk umum dan kegunaan 

substr);

Fungsi ini akan mencari lokasi substring dari suatu string. 

Konversi String 

1  strlwr()  char* strlwr(char* S);

Merubah string pada S menjadi huruf kecil. 

2  strupr()  char* strupr(char* S);

Merubah string pada S menjadi huruf besar. 

 

Contoh1: 

 

Contoh2: 

 

Contoh3: 

 

Contoh4: 

Page 40: Modul Include All Topics

 

Contoh5: 

 

Contoh6: 

 

Contoh7: 

 

Contoh8: 

39 

 

Page 41: Modul Include All Topics

 

Contoh9: 

 

Contoh10: 

 

Contoh11: 

 

Contoh12: 

 

 

Latihan: 

Buatlah  sebuah  program  Text  Processing  dimana  Anda  akan menginput  sebuah  string  dan 

menghitung jumlah karakter dari masing‐masing huruf, angka, dan tanda baca. 

5. Typecasting (Type Conversion) 

40 

 

Page 42: Modul Include All Topics

41 

 

Untuk menghindari paksaan secara implisit untuk menghasilkan nilai keluaran, C++ 

menyediakan eksplisit tipe konversi melalui operator cast. Operator tersebut disebut juga type 

conversion atau type casting. Bentuk umum yang biasa digunakan adalah sebagai berikut: 

static_cast<dataTypeName> (expression)

contoh: 

static_cast<int> (7.9) 

 

Page 43: Modul Include All Topics

Modul 7‐Preprosesor & File Header  

6.1 File Header 

Apa  sebenarnya  file  header  itu  ?  Sebenarnya  file  header  adalah  file  yang  berisi 

kumpulan  prototipe  fungsi‐  fungsi  yang  sejenis  kegunaannya. Misalnya  file  header 

math.h  berisi  fungsi‐fungsi  untuk mengerjakan  berbagai  operasi matematik  seperti 

operasi  trigonometri,  logaritma,  dsb.  Ada  perbedaan  antara  file  header  yang 

disediakan oleh compiler C dengan file header yang kita buat sendiri. File header yang 

disediakan  oleh  vendor  C  hanya  berisi  prototipe  fungsi‐fungsi  tanpa  defenisi  dari 

fungsi tersebut. Defenisi  fungsi telah dicompile dan hasil compilernya telah dijadikan 

satu dengan program compiler C nya. 

 

Contoh: 

File header: 

 

Program yang memanggil file header: 

42 

 

Page 44: Modul Include All Topics

 5.2 Pre Prosesor 

Preprocessor  menyebabkan  bahasa  C  mempunyai  kemampuan  lebih  dibandingkan 

dengan  bahasa  yang  lain.  Tidak  semua  bahasa  menyediakan  hal  ini.  Instruksi 

preprocessor  dalam  bahasa  C  dimulai  dengan  karakter  #  yang  ditulis  paling  kiri. 

Preprocessor  C  menyediakan  empat  buah  fasilitas  yang  dapat  digunakan  untuk 

keperluan‐keperluan  tertentu  dalam  pembuatan  program.  Keperluan‐keperluan 

tersebut adalah sbb.  

• Menyertakan file header dalam program yang kita kerjakan  

• Mendefenisikan makro yang dapat mempersingakat penulisan kode program  

• Melakukan pengkondisian pada saat kompilasi  

 

Melakukan kontrol pada baris program. Sebagai contoh apabila program yang kita tulis 

terpisah dalam dua buah file dan kita akan menggabungkan keduanya maka kita dapat 

menggunakan  preprocessor  untuk  menginformasikan  dimana  letak  baris‐baris 

tertentu.  

Kata‐kata kunci yang termasuk didalam preprocessor dalam bahasa C adalah sebagai 

berikut  

# include   # if   # ifdef  

# define   # elif   # ifndef  

# pragma   # else   # undef  

# error   # endif   # line  

43 

 

Page 45: Modul Include All Topics

 

Contoh #define 

Preprocessor ini digunakan untuk mendefenisikan suatu makro, yaitu mendefenisikan 

suatu identifier dengan suatu nilai tertentu. 

 Contoh #if 

 

Contoh #ifndef 

 

 

Contoh #error 

44 

 

Page 46: Modul Include All Topics

  

Contoh #elif 

 

 

Contoh penggunaan makro 

 

45 

 

Page 47: Modul Include All Topics

46 

 

  

Latihan: 

1. Buatlah sebuah program perhitungan survey pada pemilu presiden dengan memanfaatkan file header. 

2. Ubahlah semua program yang telah dibuat pada latihan‐latihan sebelumnya dengan menggunakan file header.

Page 48: Modul Include All Topics

47 

 

MODUL 8 – CLASS  

Class di C++ adalah suatu metode untuk mengorganisasi data (variable) dan fungsi (function) dalam struktur yang sama.   

• Data atau fungsi dalam kelas disebut sebagai anggota (member) dari class.  • Anggota yang berupa data disebut field dan anggota yang berupa fungsi 

disebut method.  • Setiap anggota kelas dapat memiliki tingkat visibility yang berbeda, 

diantaranya private, protected, dan public.   1. Tingkat Visibility Class  Class dalam C++ digunakan sebagai enkapsulasi data. Juga sebagai information hiding.   

• Private dalam class C++ adalah mode dimana isi dari class itu tidak bisa diakses oleh class lainnya, hanya bisa diakses oleh kelas itu sendiri .  

• Public dalam class C++ adalah mode dimana isi dari class itu bisa diakses oleh class itu sendiri maupun oleh class‐class turunannya juga bisa langsung dieksekusi oleh program.  

• Protected dalam class C++ adalah mode dimana isi dari class itu bisa diakses oleh class itu sendiri maupun class turunannya  

  

 

  2. Struct dan Class  

Struct adalah sekumpulan variabel  (masing masing dapat berbeda tipe) yang dikelompokkan dan dikemas ke dalam satu nama variabel. Class tidak jauh beda dengan struct bedanya kalau class  defaultnya  berupa  private  atau  tidak  bisa  di  panggil  di mana  saja  sedangkan  struct defaultnya berupa public sehingga bisa di panggil dimana saja.   

class nama_kelas { private: anggota_private; protected: anggota_protected; public: anggota_public; };

Bentuk Umum Sintaks Class:  

Page 49: Modul Include All Topics

 

 

Penggunaan method pada Class  // contoh class Crectangle untuk mengukur luas #include <iostream> using namespace std; class CRectangle { int x,

y; public:

}; void CRectangle::set_values (int a, int b) { x=a;

void set_values (int,int); int area () { return (x*y);} y = b; } int main ()

{ CRectangle rect; rect.set_values (3,4);

cout << "area: " << rect.area(); return 0; }

Penjelasan sintaks:  

48 

 

Page 50: Modul Include All Topics

49 

 

  

• Anggota yang berupa data disebut field dan anggota yang berupa fungsi disebut method.  • Set_values dan area merupakan method dari class CRectangle • operator of scope (::, two 

colons) digunakan untuk menjelaskan member of a class dari luar definisi dari suatu class (class definition). 

Listing‐Program 2  

Listing‐Program 1  

Page 51: Modul Include All Topics

 

50 

 

Page 52: Modul Include All Topics

Listing‐Program 3  

 

*** Perhatikan Contoh Class Rectangle, modifikasi program agar nilai x dan y bisa di‐input. 

51 

 

Page 53: Modul Include All Topics

Menggunakan class dengan dua object �

Output:  

 

** Salah satu kelebihan dari Class adalah kita dapat mendeklarasikan beberapa object berdasarkanclass tersebut.  

• Constructor  adalah  anggota  class  yang  bertugas melakukan  inisialiasi  obyek(instance) dari suatu class C.  

Constructor  

• Constructor  mempunyai  nama  yang  sama  dengan  nama  class,  dan  tidak memiliki return value  

52 

 

Page 54: Modul Include All Topics

53 

 

• Sebuah  class  dapat mempunyai  lebih  dari  satu  constructor.  Constructor  yangtidak memiliki argumen, disebut defalut constructor.  

• Constructor  yang  mempunyai  lebih  dari  satu  argumen  adalah  non‐default constructor  

 

**  Pada  contoh  ini  kita  telah menghilangkan method  set_values  digantikan  denganconstructor CRectangle  yang memiliki  fungsional  yang  sama dengan  set_values padacontoh sebelumnya.  

Perubahan Metode Pemrograman  

�Prosedural   Modular   OOP  #include <iostream>   #include <iostream>   #include <iostream>  #define phi 3.14   #define phi 3.14   #define phi 3.14  

Page 55: Modul Include All Topics

54 

 

Tugas di kelas:  Buat sebuah program menggunakan class bangun_ruang yang memiliki method:  

 1. Menghitung Luas Segitiga   2. Menghitung Keliling Segitiga   3. Menghitung Luas Lingkaran   4. Menghitung Keliling Lingkaran   5. Menghitung Luas Trapesium   6. Menghitung Keliling Trapesium  

�using namespace std; int main () { float r,L, K; cout << "Masukan Jari‐Jari Lingkaran = " ;cin >> r; L = 2*phi*(r*r); K = 2*phi*r; cout << "Luas Lingkaran = " << L; cout << "Keliling Lingkaran = " << K; system ("Pause"); return 0; }  

using namespace std; float r,L, K; void Luas (); void Keliling (); int main () { cout << "Masukan Jari‐Jari Lingkaran = " ;cin >> r; Luas (); cout << "Luas Lingkaran = " ; Keliling (); cout << "Keliling Lingkaran = " ; Keliling; system ("Pause"); return 0; } void Luas() { L = 2*phi*(r*r); } void Keliling () { K = 2*phi*r;}  

using namespace std; class CLingkaran { public: float r,L, K; void input (); float Luas (); float Keliling ();}; void CLingkaran::input(){ cout << "Masukan Jari‐Jari Lingkaran = " ;cin >>r; L=Luas(); K=Keliling(); cout << "Luas Lingkaran = " << L<<endl; cout << "Keliling Lingkaran = " << K <<endl;} float CLingkaran::Luas(){ L = 2*phi*(r*r); return (L); }  

float CLingkaran::Keliling(){ K = 2*phi*r; return (K); }  

int main () { CLingkaran circle; circle.input(); system ("Pause"); return 0; }  

Page 56: Modul Include All Topics

55 

 

8BModul 9‐Inheritance    Warisan(Inheritance) merupakan hubungan ‘is‐a’ Komposisi (Composition) merupakan hubungan ‘has‐a’  

26BWarisan  Warisan  membolehkan  kita  untuk  membuat  class  baru  yang  berasal  dari  class  asalnya.  Shape merupakan kelas dari dari kelas turunan circle dan rectangle. Square merupakan kelas turunan dari kelas dasar rectangle 

  

27BSyntaks Umum: class classname: memberAccessSpecifier baseClassName { member list}; memberAccessSpecified terbagi atas: public: private: protected:

 

Page 57: Modul Include All Topics

56 

 

28BContoh Program: 

40BListing‐Program 1 

 

 

 

Page 58: Modul Include All Topics

57 

 

 

 

 

 

Class diagram dari program diatas 

Page 59: Modul Include All Topics

58 

 

rectangleType

+length: double+width: double

+setDimension(double, double): void+getLength()+getWidth()+area()+perimeter()+print()+rectangleType()+rectangleType(double, double)

boxType

+height: double

+setDimension(double, double): void+getHeight()+volume()+area()+print()+boxType()

 

41BListing‐Program2 

 

 

Page 60: Modul Include All Topics

59 

 

42BListing‐Program3 

 

 

 

U*** Apa yang akan terjadi apabila hak akses class induk pada class turunannya diganti menjadi private dan protected? 

 

29BTugas: Kerjakan kembali tugas class,modifikasi menjadi class dan turunannya. 

Page 61: Modul Include All Topics

60 

 

Modul 10 ‐ Operator dan Fungsi Overloading 

Fungsi overload adalah fungsi dengan nama sama tetapi memiliki parameter berbeda. 

Berbeda dalam: 

1. Jumlah 2. Tipe data 3. Jumlah dan Tipe data 

Contoh 1‐Fungsi Overload Berbeda Jumlah Parameter 

 

 

Contoh 2‐Fungsi Overload Berbeda Jumlah Parameter 

 

Contoh 3‐Fungsi Overload Berbeda Jumlah Parameter dan Tipe Data 

 

Page 62: Modul Include All Topics

61 

 

 

 

Operator Overload + 

 

 

Operator Overload ‐ 

 

Page 63: Modul Include All Topics

62 

 

 

Operator Overloading = 

 

Operator Overloading ++ 

 

 

 

Page 64: Modul Include All Topics

63 

 

Operator Overloading ‐‐ 

 

 

 

Page 65: Modul Include All Topics

64 

 

9BModul 11 – Linked List (1) Linked list merupakan kumpulan komponen‐komponen, yang disebut nodes. Setiap node (kecuali node terakhir) memiliki alamat dari node berikutnya. Oleh karena itu, setiap node memiliki dua komponen. Komponen tersebut adalah satu untuk menyimpan informasi yang relevan mengenai data, dan satu lagi menyimpan alamat yang disebut sebagai link dari node berikutnya. Alamat dari node pertama dan pada list yang disimpan pada lokasi yang berbeda disebut head atau first. Berikut sturktur sebuah node: 

data  link  Linked List: kumpulan item‐item, disebut nodes, yang dalam setiap nodes dicirikan oleh alamat yang disebut link, disimpan pada setiap nodes. Contoh linked list sebagai berikut: 

2000 17 2800 92 1500 360063 045head

info link info link info link info link

2000 2800 1500 3600

2000current

 

Penjelasan/ Cara Membaca:   Value Current  2000 Current  info  17 Current link  2800 Current link info  92  

Statement: 

current = current link;

Deklarasi masing‐masing node dapat menggunakan struct atau class Struct nodeType { int info; noteType *link; }; nodeType *head;  

Operasi pada linked list Operasi pada list sebagai berikut: 1. Search list 2. Insert item pada list 3. Delete item pada list Operasi‐operasi tersebut membutuhkan list untuk dilalui. Berikut kode yang bisa digunakan: 

Current = head;

Page 66: Modul Include All Topics

65 

 

While (current != NULL) { //Process the current node Current = current link; }

Contoh: current = head; while (current != NULL) { cout << current info << “ “; current = current link; }

Item untuk insert dan delete  Insert 

2000 17 2800 92 1500 360063 045

info link info link info link info link

2000 2800 1500 3600

p   newNode = new nodeType; newNode   info = 50; newNode   link = p   link; p   link = newNode; 

2000 17 2800 92 1500 360063 045

info link info link info link info link

2000 2800 1500 3600

p

50new node

   p  link = newNode; newNode   link = p link; 

2000 17 2800 92 1500 360063 045

info link info link info link info link

2000 2800 1500 3600

p

50new node

  Delete 

Page 67: Modul Include All Topics

66 

 

P   link  = p   link   link; 

2000 17 2800 92 1500 360063 045

info link info link info link info link

2000 2800 1500 3600

p   Membangun Linked List Dimulai dari depan Perhatikan data linked list berikut: 2 15 8 24 34  Pointer yang dibutuhkan:  Satu pointer untuk node pertama (tidak bisa dipindah) Satu pointer untuk node terakhir Satu pointer untuk membuat node baru  Deklarasi nodeType *first, *last, *newNode; int num;  Inisialisasi first = NULL;  last = NULL;    cin >> num;      newNode = new nodeType;     newNode ‐> info = num;     newNode ‐> link = NULL; if (first == NULL)     {               first = newNode;               last = newNode;               }               else               {                   last ‐> link = newNode;                    last = newNode;                   }    Potongan sintaks diatas hanya berlaku untuk satu kali input,bagaimana sintaks jika linked list yang dihasilkan sebagai berikut: 

first

last

newNode 2

newNode 2

first

last

15

newNode

2first

last

Page 68: Modul Include All Topics

67 

 

first 2 15 8 24

newNode

last

 Untuk membangun linked list secara backward berikut algoritma nya: 

1. Inisialisasi first = NULL 2. Untuk masing‐masing item list: 

a. Buat node baru, newNode b. Simpan item dalam newNode c. Sisipkan newNode sebelum first d. Update nilai untuk pointer first 

 Potongan Sintaks diatas menjadi: 

 

  

10BLinked List sebagai abstract data type (ADT) Operasi dasar dari linked list antara lain: 1. Inisialisasi linked list 2. Menyatakan list kosong atau tidak 3. Print list 4. Mencari panjang list 5. Menghapus list 6. Menampilkan info yang terkandung dalam node pertama 7. Menampilkan info yang terkandung dalam node terakhir 8. Mencari list untuk item yang diberikan 9. Menyisipkan item dalam list 10. Menghapus intem dari list 11. Membuat salinan (copy) dari linked list  Secara umum terdapat dua tipe linked list yaitu list terurut, diurutkan berdasarkan beberapa kriteria dan list tidak terurut.