View
42
Download
4
Category
Preview:
DESCRIPTION
c++
Citation preview
Bahan Ajar & Modul Praktikum
Pemrograman Komputer (Computer Programming)
Disusun Oleh:
Program Studi Teknik Informatika
Politeknik Negeri Jakarta
2013
1
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
2
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
3
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)
4
&& 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 :
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.
5
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
6
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
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++.
8
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;
9
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.
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
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
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
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".
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
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
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
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
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];
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:
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++;}
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];
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
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
Listing‐Program 1
Listing‐Program 2
25
Listing‐Program 3
Listing‐Program 4
Listing‐Program 5
26
Listing‐Program 6
Listing‐Program 7
27
Listing‐Program 8
Listing‐Program 9
28
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
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
++ ++
++++++++++++++ ++++++++++++++
++ ++
++ ++
++++++++++++++ ++++++++++++++
++ ++
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
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
Fungsi clear input
1. Apa yang terjadi dengan program diatas?
2. Bagaimana jika fungsi clear dihilangkan?
33
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:
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
{
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;
....
}
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*
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:
Contoh5:
Contoh6:
Contoh7:
Contoh8:
39
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
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)
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
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
Contoh #define
Preprocessor ini digunakan untuk mendefenisikan suatu makro, yaitu mendefenisikan
suatu identifier dengan suatu nilai tertentu.
Contoh #if
Contoh #ifndef
Contoh #error
44
Contoh #elif
Contoh penggunaan makro
45
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.
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:
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
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
50
Listing‐Program 3
*** Perhatikan Contoh Class Rectangle, modifikasi program agar nilai x dan y bisa di‐input.
51
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
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
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; }
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:
56
28BContoh Program:
40BListing‐Program 1
57
Class diagram dari program diatas
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
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.
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
61
Operator Overload +
Operator Overload ‐
62
Operator Overloading =
Operator Overloading ++
63
Operator Overloading ‐‐
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;
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
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
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.
Recommended