Bahasa Pemrograman C++

91
Bahasa Pemrograman C++

description

Bahasa Pemrograman C++. Operator. operator. 5 + 3 Macam operator menurut jumlah operand: Operator unary >> 1 operand Contoh: ++ , -- , ~ , - , ! Operator binary >> 2 operand Contoh: + , - , * , / , % , > , < , && Operator ternary >> 3 operand Yaitu: ? :. operand. - PowerPoint PPT Presentation

Transcript of Bahasa Pemrograman C++

Page 1: Bahasa Pemrograman C++

BahasaPemrograman

C++

Page 2: Bahasa Pemrograman C++

Operator

5 + 3

Macam operator menurut jumlah operand: Operator unary >> 1 operand

Contoh: ++ , -- , ~ , - , ! Operator binary >> 2 operand

Contoh: + , - , * , / , % , > , < , && Operator ternary >> 3 operand

Yaitu: ? :

operand

operator

Page 3: Bahasa Pemrograman C++

Macam operator menurut jenis operasi: Operator Aritmetika

Operator Penggunaan Deskripsi

+ Op1 + Op2 Menambahkan Op1 dengan Op2

- Op1 - Op2 Mengurangkan Op1 dengan Op2

* Op1 * Op2 Mengalikan Op1 dengan Op2

/ Op1 / Op2 Membagi Op1 dengan Op2

% Op1 % Op2 Menghasilkan sisa hasil bagi antara Op1 dengan Op2

++ Op++ Op dinaikkan nilainya 1 setelah dilakukan operasi pada Op

++ ++Op Op dinaikkan nilainya 1 sebelum dilakukan operasi pada Op

-- Op-- Op diturunkan nilainya 1 setelah dilakukan operasi pada Op

-- --Op Op diturunkan nilainya 1 sebelum dilakukan operasi pada Op

- -Op Mengubah nilai Op menjadi negasinya, jika Op positif maka menjadi negatif, jika Op negatif menjadi positif

Page 4: Bahasa Pemrograman C++

Operator Penggunaan Deskripsi

> Op1 > Op2 Menghasilkan true jika Op1 lebih besar dari Op2

< Op1 < Op2 Menghasilkan true jika Op1 lebih kecil dari Op2

>= Op1 >= Op2 Menghasilkan true jika Op1 lebih besar atau sama Op2

<= Op1 <= Op2 Menghasilkan true jika Op1 lebih kecil atau sama dengan Op2

== Op1 == Op2 Menghasilkan true jika Op1 sama dengan Op2

!= Op1 != Op2 Menghasilkan true jika Op1 tidak sama dengan Op2

Operator Relasional>> digunakan untuk membandingkan antara dua variabel data

Hasil dari operasi relasional adalah logika benar atau salah.

Page 5: Bahasa Pemrograman C++

Operator Kondisional

Operator Penggunaan Deskripsi

&& Op1 && Op2Menghasilkan true jika Op1 dan Op2, keduanya bernilai boolean true

|| Op1 || Op2Menghasilkan false jika Op1 atau Op2, keduanya bernilai boolean false

! !Op1 Menghasilkan false jika Op1 bernilai boolean true

Operator Bitwise

Operator Penggunaan Deskripsi

& Op1 & Op2 Bitwise AND

| Op1 | Op2 Bitwise OR

^ Op1 ^ Op2 Bitwise XOR

~ ~Op1 Bitwise Complement

Page 6: Bahasa Pemrograman C++

Operator ShiftOperator shift dalam C++ digunakan untuk manipulasi bit. Operator shift digunakan untuk menggeser bit-bit sesuai dengan yang diinginkan.

Operator Penggunaan Deskripsi

>> Op1 >> Op2 Menggeser bit Op1 ke kanan sejauh Op2

<< Op1 << Op2 Menggeser bit Op1 ke kiri sejauh Op2

>>> Op1 >>> Op2 Menggeser bit Op1 ke kanan sejauh Op2 berikut bitsign-nya

Operator Penugasan

Operator asignment dalam C++ digunakan untuk memberikan sebuah nilai ke sebuah variabel. Selain operator ‘=’, C++ memiliki beberapa shortcut asignment operator yang penting.

Page 7: Bahasa Pemrograman C++

Operator Penggunaan Ekivalen dengan

+= Op1 += Op2 Op1 = Op1 + Op2

-= Op1 -= Op2 Op1 = Op1 - Op2

*= Op1 *= Op2 Op1 = Op1 * Op2

/= Op1 /= Op2 Op1 = Op1 / Op2

%= Op1 %= Op2 Op1 = Op1 % Op2

&= Op1 &= Op2 Op1 = Op1 & Op2

!= Op1 != Op2 Op1 = Op1 ! Op2

^= Op1 ^= Op2 Op1 = Op1 ^ Op2

<<= Op1 <<= Op2 Op1 = Op1 << Op2

>>= Op1 >>= Op2 Op1 = Op1 >> Op2

>>>= Op1 >>>= Op2 Op1 = Op1 >>> Op2

Page 8: Bahasa Pemrograman C++

Urutan Precedence Operator

Operasi-operasi yang menggunakan operator dapat melibatkan lebih dari 1 operator dan 1 operand.

Operasi yang dilakukan terlebih dahulu diurutkan sesuai operator berikut:

Page 9: Bahasa Pemrograman C++

Postfix operators [ ] . (params) expr++ expr++

Unary operators ++expr --expr +expr –expr ~1

Creation or cast New (type)expr

Multiplicative * / %

Additive + -

Shift <<>> >>>

Relational <> <= >= instanceof

Equality == !=

Bitwise AND &

Bitwise exclusive OR ^

Bitwise exclusive OR |

Logical AND &&

Logical OR ||

Conditional ? :

Assignment = += -= *= /= %= &= ^= |= <<= >>= >>>=

Page 10: Bahasa Pemrograman C++

Pernyataan Dasar

Page 11: Bahasa Pemrograman C++

Pernyataan Berkondisi

Pernyataan berkondisi/ pernyataan bersyarat/ conditional statement adalah suatu pernyataan program yang akan melakukan sesuatu instruksi jika suatu kondisi yang disyaratkan terpenuhi/ bernilai benar.

Pernyataan-pernyataan berkondisi: Pernyataan if Pernyataan if-else Pernyataan switch

Page 12: Bahasa Pemrograman C++

Pernyataan if

Bentuk:

if(kondisi)

pernyataan; Jika kondisi bernilai benar, maka pernyataan dijalankan.

Jika kondisi bernilai salah, maka pernyataan tidak dijalankan.

Page 13: Bahasa Pemrograman C++

kondisi

pernyataan

salah

benar

Diagram Alir:

Contoh:...int angka = 5;if(angka < 10)

cout << “Lebih kecil”;...

Page 14: Bahasa Pemrograman C++

Pernyataan if-else

Bentuk:

if(kondisi)

pernyataan1;

else

pernyataan2;

Jika kondisi bernilai benar, maka pernyataan1 dijalankan.

Jika kondisi bernilai salah, maka pernyataan2 dijalankan.

Page 15: Bahasa Pemrograman C++

kondisi

pernyataan1

salah

benar

Diagram Alir:

pernyataan2 Contoh:...int angka = 5;if(angka < 10)

cout << “Lebih kecil”;else

cout << “Tidak lebih kecil”;...

Page 16: Bahasa Pemrograman C++

Pernyataan if-else bersarang

Pernyataan if-else bersarang/ nested if merupakan pernyataan if-else yang di dalamnya terdapat pernyataan if-else yang lainnya yang tersusun secara cascade.

Pernyataan ini memberikan pilihan kondisi yang lebih dari 2.

Bentuk:if(kondisi1)

pernyataan1;else if(kondisi2)

pernyataan2;else if(kondisi3)

pernyataan3;...else

pernyataanN;

Page 17: Bahasa Pemrograman C++

Diagram Alir:

kondisi1

pernyataan1

kondisi2

pernyataanN

kondisi3

pernyataan3pernyataan2

benar

benar

benar

salah

salah

salah

Page 18: Bahasa Pemrograman C++

Pernyataan switch

Pernyataan switch mempunyai kegunaan yang sama dengan pernyataan if-else bersarang, yaitu memberikan pilihan kondisi yang lebih dari 2.

Pernyataan yang dijalankan adalah pernyataan yang berada pada nilai case yang sama dengan kondisi yang menjadi syarat.

Bentuk:switch(kondisi) {

case nilai1:pernyataan1;break;

case nilai2:pernyataan2;break;

case nilai3:pernyataan3;break;

...default:

pernyataanN;}

Page 19: Bahasa Pemrograman C++

Diagram Alir:

pernyataan1

kondisi

pernyataan2

pernyataan3

pernyataanN

nilai1

nilai2

nilai3

default

Page 20: Bahasa Pemrograman C++

Pernyataan Perulangan

Pernyataan perulangan adalah suatu pernyataan program yang akan melakukan sesuatu instruksi selama suatu kondisi yang disyaratkan terpenuhi/ bernilai benar.

Berbeda dengan pernyataan berkondisi, pernyataan perulangan melakukan eksekusi instruksi berkali-kali, selama kondisi tersebut terpenuhi.

Pernyataan-pernyataan perulangan: Pernyataan while Pernyataan do-while Pernyataan for

Page 21: Bahasa Pemrograman C++

Pernyataan while

Bentuk:

while(kondisi)

pernyataan; Ketika kondisi bernilai benar, maka pernyataan dijalankan, kemudian kembali ke pengecekan kondisi.

Ketika kondisi bernilai salah, maka pernyataan tidak dijalankan lagi.

Page 22: Bahasa Pemrograman C++

kondisi

pernyataan

salah

benar

Diagram Alir:

Contoh:...

int angka = 0;

while(angka < 10) {

cout << “Lebih kecil dari 10” << endl;

angka++;

}

...

Page 23: Bahasa Pemrograman C++

Pernyataan do-while

Bentuk:do {

pernyataan;} while(kondisi)

Pernyataan do-while mirip dengan pernyataan while, namun pernyataan dijalankan terlebih dahulu sebelum pengecekan kondisi, sehingga pernyataan minimal dijalankan 1 kali.

Page 24: Bahasa Pemrograman C++

kondisi

pernyataan

salah

benar

Diagram Alir:

Contoh:...

int angka = 0;

do {

cout << “Lebih kecil dari 10” << endl;

angka++;

} while(angka < 10);

...

Page 25: Bahasa Pemrograman C++

Pernyataan for

Bentuk:

for(init;kondisi;naik)

pernyataan; Pernyataan for adalah

sama artinya dengan pernyataan while di samping ini.

init;

while(kondisi) {

pernyataan;

naik;

}

Page 26: Bahasa Pemrograman C++

kondisi

init

salah

benar

Diagram Alir:

pernyataannaik

Contoh:...

for(int i = 0; i < 10; i++)

cout << “Lebih kecil dari 10” << endl;

...

Page 27: Bahasa Pemrograman C++

Fungsi

Page 28: Bahasa Pemrograman C++

Pengantar Fungsi

Sejumlah fungsi berisi sejumlah pernyataan yang dikemas dalam sebuah nama.

Tujuan pembuatan fungsi: Memudahkan dalam mengembangkan program. Menghemat ukuran program.

Fungsi merupakan kunci dalam pembuatan pemrograman terstruktur.

Fungsi dapat dipanggil beberapa kali di beberapa tempat dalam program.

Page 29: Bahasa Pemrograman C++

Konsep Pemrograman Terstruktur

fungsi main()

fungsi b()fungsi a() fungsi c()

fungsi b()fungsi a() fungsi c()

Page 30: Bahasa Pemrograman C++

Fungsi, Argumen, dan Nilai Balik

FUNGSIArgumen /parameter

Nilaibalik

Argumen = masukan fungsi Nilai balik = keluaran fungsi

Page 31: Bahasa Pemrograman C++

Deklarasi Fungsi (Prototipe Fungsi)

Bentuk:

nilai_balik nama-fungsi(arg1,arg2,…);

nilai_balik berupa tipe data dari nilai yang dihasilkan.

nilai_balik harus ada. Jika fungsi tidak menghasilkan nilai apapun maka nilai_balik diisi dengan void.

arg tidak harus ada. Diperbolehkan untuk menyertakan nilai bawaan.

Page 32: Bahasa Pemrograman C++

Contoh Deklarasi Fungsi

void cetak();

int maks(int a, int b, int c);

double maks(double, double, double);

int hitung(int a = 0);

Deklarasi harus berada di sebelum pemanggilan fungsi. Biasanya di baris paling atas setelah pernyataan include.

Page 33: Bahasa Pemrograman C++

Definisi Fungsi

Bentuk:

nilai_balik nama-fungsi(arg1,arg2,…) {

//isi fungsi

}

Isi definisi fungsi adalah perintah-perintah yang akan dijalankan ketika fungsi tersebut dipanggil.

Page 34: Bahasa Pemrograman C++

Contoh Definisi Fungsi

int maks(int a, int b, int c) {int tmp = a;

if(b > tmp)tmp = b;

if(c > tmp)tmp = c;

return(tmp);)

Page 35: Bahasa Pemrograman C++

Referensi

Referensi digunakan untuk memberikan nama alias dari suatu variabel.

Bentuk:

tipe _data &ref = nama_variabel;

Setelah itu, ref menjadi nama alias dari nama_variabel. Keduanya menunjuk ke memori yang sama.

Page 36: Bahasa Pemrograman C++

Contoh Referensi

int i;

int &r = i;

i = 10;

cout << “i = “ << i << endl;

cout << “r = “ << r << endl;

r = 55;

cout << “i = “ << i << endl;

cout << “r = “ << r << endl;

Page 37: Bahasa Pemrograman C++

Fungsi dengan Argumen Referensi Dengan menggunakan argumen referensi maka

suatu argumen fungsi dapat diubah nilainya dari dalam fungsi.

Contoh:void tukar(int &a, int &b) {

int tmp;tmp = a;a = b;b = tmp;cout << “tukar() : a = “ << a << endl;cout << “tukar() : b = “ << b << endl;

}

Page 38: Bahasa Pemrograman C++

Array dan String

Page 39: Bahasa Pemrograman C++

Array

Array adalah kumpulan variabel dengan tipe yang sama dan isi variabel dapat di akses melalui indeks yang dimulai dari 0 sampai dengan jumlah elemen array dikurangi 1.

Masing-masing elemen mempunyai nomor indeks yang dapat digunakan untuk mengaksesnya.

Page 40: Bahasa Pemrograman C++

Pendefinisian Array

Contoh :

int angka[5];

float suhu[3];

tipe_data nama_array[jumlah_elemen];

Page 41: Bahasa Pemrograman C++

Pemberian Nilai Awal Array (Inisialisasi Array)

Contoh :

int angka[5] = {5, 2, 7, 3, 2};

float suhu[3] = {2.5, 1.3, 2.1};

tipe_data nama_array[jumlah_elemen] = { elemen0, elemen2, …};

Page 42: Bahasa Pemrograman C++

Pengaksesan Array

nama_array[nomor_indeks];

Contoh :angka[2] = 7;angka[3] = angka[1] + 1;suhu[2] = 2.1;cout << ”Suhu = ” << suhu[0];

Page 43: Bahasa Pemrograman C++

Array Multi-dimensi

Array multi-dimensi adalah array yang memiliki lebih dari 2 macam nomor indeks.

Contoh :int bilangan[3][2]; //array 2-dimensi

float kotak[3][3][3]; //array 3-dimensi

Array 2-dimensi membentuk data seperti tabel, mempunyai 2 sumbu yaitu: baris dan kolom.

Array multi-dimensi mempunyai jumlah nomor indeks sejumlah dimensinya.

Page 44: Bahasa Pemrograman C++

Inisialisasi Array Multi-dimensi

Inisialisasi dapat dilakukan menggunakan tanda kurung kurawal seperti contoh berikut:int bil[3][2] =

{

{54, 20},

{34, 11},

{21, 99}

};

atau

int bil[3][2] = {54, 20, 34, 11, 21, 99};

Page 45: Bahasa Pemrograman C++

Pengaksesan Array Multi-dimensi

Pengaksesan dilakukan dengan menyebutkan semua nomor indeks elemen yang di maksud.

Contoh:bil[0][1] = 20;

cout << bil[2][0];

bil[0][0] = bil[0][1] + bil [1][0];

Page 46: Bahasa Pemrograman C++

String

String adalah array karakter (char) dan diakhiri dengan elemen karakter NULL (karakter \0).

Contoh :char teks[13];

char bahasa[] = { 'C', '+', '+', '\0'};

char nama[] = " Dony Setiawan";

Page 47: Bahasa Pemrograman C++

Mengisi String dengan cin

Memasukkan data melalui keyboard menggunakan perintah cin :

cin >> nama_String;

Contoh:

cin >> teks; Akan tetapi, cara ini hanya dapat untuk

memasukkan 1 kata saja.

Page 48: Bahasa Pemrograman C++

Mengisi String dengan cin.get

Contoh :

cin.get(nama, 15);

cin.get(teks, sizeof(teks)); Penggunaan cin.get tidak mengabaikan

spasi putih (spasi, tab atau newline), sehingga hanya dapat digunakan 1 kali.

Page 49: Bahasa Pemrograman C++

Mengisi String dengan cin.getline

Contoh :

cin.getline(nama, 15);

cin.getline(teks, sizeof(teks)); Penggunaan cin.getline mengabaikan

spasi putih (spasi, tab atau newline), sehingga dapat digunakan lebih dari 1 kali dengan baik.

Page 50: Bahasa Pemrograman C++

Membaca Sejumlah Baris dengan cin.getline

Contoh :

cin.getline(teks, sizeof(teks), ‘$’);

Penggunaan cin.getline di atas akan menyebabkan seluruh karakter yang terletak sebelum tanda $ diletakkan ke teks.

Page 51: Bahasa Pemrograman C++

Pointer

Page 52: Bahasa Pemrograman C++

Pointer

Pointer adalah variable yang berisi alamat memori. Pointer menunjuk kepada isi dari suatu alamat memori.

0xfff2

55

pint

vint

Menunjuk ke vint

Alamat0xfff2

Page 53: Bahasa Pemrograman C++

Mengetahui Alamat Suatu Variabel

Alamat suatu variable dapat diketahui menggunakan operator alamat ( & ) yang diketikkan di depan nama variabel tersebut.

Contoh:int alif = 5;

cout<<"Alamat variable alif : "<< &alif << endl;

Page 54: Bahasa Pemrograman C++

Mendefinisikan Variabel Pointer

Suatu variable pointer didefinisikan dengan bentuk sebagai berikut:

Contoh:int *pint;

char *pch;

float *pfl;

tipe_data *nama_variabel;

Page 55: Bahasa Pemrograman C++

Mengisikan Variabel Pointer

Agar suatu variable pointer menunjuk ke variable lain, maka harus diisi dengan alamat dari variable yang hendak ditunjuk.

Contoh:int vint = 55;

int *pint;

pint = &vint;

Page 56: Bahasa Pemrograman C++

Mengakses Variabel Pointer

Pointer dapat diakses dengan mengakses isi pointer atau nilai pointer.

Contoh:cout<<"Alamat yang ditunjuk pint : "<<pint<<endl;

cout<<"Nilai yang ditunjuk pint : "<<*pint<<endl;

Page 57: Bahasa Pemrograman C++

Pointer void

Pointer void dapat digunakan untuk menunjuk ke semua tipe data.

Pointer void mengakses data ke alamat yang ditunjuknya dengan menyebutkan tipe data variabel yang dituju.

Pointer void

int

float

double

Dapat menunjuk ke sebarang tipe data

. . .

Page 58: Bahasa Pemrograman C++

Pointer void

void *ptr;

int vint = 50;

ptr = &vint;

cout << "Nilai yang ditunjuk ptr : " << *(int *)ptr << endl;

Page 59: Bahasa Pemrograman C++

Pointer dan Array

Pointer dapat digunakan untuk menunjuk ke elemen-elemen array.

Contoh:. . .int tgl_lahir[] = {24, 6, 1965};int *ptgl;ptgl = tgl_lahir;for(int i = 0; i < 3; i++)

cout << *(ptgl + i) << endl;. . .

Page 60: Bahasa Pemrograman C++

Array Pointer

Masing-masing elemen array adalah suatu pointer yang dapat digunakan untuk menunjuk ke suatu alamat memori.

Contoh:char *namahari[] = {“Senin”, “Selasa”,

“Rabu”, “Kamis”,

“Jumat”, “Sabtu”,

“Minggu”};

Page 61: Bahasa Pemrograman C++

Konsep Pengalokasian Memori

Heap adalah memori yang tidak terpakai yang dapat digunakan untuk membuat variabel dinamis.

stack

heap

data

kode

Memori

Page 62: Bahasa Pemrograman C++

Variabel Dinamis

Alokasi memori dilakukan dengan menggunakan kata kunci new.

Contoh:int *ptr_i;

ptr_i = new int;

ptr_i = 50;

cout<< “ptr_i = “ << *ptr_i << endl;

Page 63: Bahasa Pemrograman C++

Array Dinamis

Contoh:

double *acak;

acak = new double[5];

for(int i = 0; i < 5; i++)

*(acak + i) = i + 1;

for(int i = 0; i < 5; i++)

cout << *(acak + i) << endl;

Page 64: Bahasa Pemrograman C++

String Dinamis

Contoh:

char *kalimat;

kalimat = new char[200];

cin.getline(kalimat, 200);

cout<<“Kalimat yang dimasukkan:”<<endl;

cout << kalimat << endl;

Page 65: Bahasa Pemrograman C++

Membebaskan Memori

Setelah tidak diperlukan lagi, variabel/array dinamis dapat dihapus, sehingga memori dapat digunakan untuk keperluan lainnya.

Menghapus variabel/array dinamis dilakukan dengan kata kunci delete :

delete ptr_i;

delete [] acak;

Page 66: Bahasa Pemrograman C++

Struktur

Page 67: Bahasa Pemrograman C++

Struktur

Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan.

struct nama_struktur {

deklarasi anggota

};

Page 68: Bahasa Pemrograman C++

Struktur

Membuat struktur seperti membuat suatu tipe data baru.

Contoh:

struct Tanggal {

int tanggal;

int bulan;

int tahun;

};

Page 69: Bahasa Pemrograman C++

Mendefinisikan Variabel Struktur

Variabel struktur dapat dibuat dengan cara:

Contoh:

Tanggal hari_ini;

nama_struktur nama_variabel;

Page 70: Bahasa Pemrograman C++

Mengakses Anggota Struktur

Mengakses anggota struktur dapat dilakukan dengan cara:

Contoh:

hari_ini.tanggal = 18;

hari_ini.bulan = 12 – 7;

int usia = hari_ini.tahun – 1985;

nama_variabel.nama_anggota

Page 71: Bahasa Pemrograman C++

Penugasan Struktur

Pemberian nilai suatu variabel struktur dapat dilakukan menggunakan operator penugasan (=) selama kedua variabel struktur bertipe sama (berasal dari struktur yang sama).

Contoh:Tanggal tgl1, tgl2;tgl1.tanggal = 19;tgl1.bulan = 5;tgl1.tahun = 2011;tgl1 = tgl2;

Page 72: Bahasa Pemrograman C++

Pembandingan Struktur

Operasi pembandingan dua variabel struktur tidak dapat dilakukan secara langsung. Operasi pembandingan hanya dapat dilakukan untuk masing-masing anggota.

Contoh:if(tgl1.tanggal == tgl2.tanggal

&& tgl1.bulan == tgl2.bulan && tgl1.tahun == tgl2.tahun)

cout << “Sama!!!” << endl;

Page 73: Bahasa Pemrograman C++

Kelas

Page 74: Bahasa Pemrograman C++

Kelas dan Obyek

Kelas dan obyek digunakan dalam paradigma Pemrograman Berorietasi Obyek/PBO(Object-Oriented Programming).

Obyek adalah variabel dari kelas. Kelas adalah struktur data dari obyek. Obyek dibuat dari suatu kelas. Kelas dapat dianalogikan sebagai tipe data

dari suatu obyek.

Page 75: Bahasa Pemrograman C++

Kelas dan Struktur

Kelas mirip dengan struktur, namun dapat memiliki anggota berupa fungsi.

Pembuatan struktur menggunakan katakunci struct, sedangkan pembuatan kelas menggunakan katakunci class.

Anggota-anggota kelas harus diberi katakunci penentu akses (public, private, atau protected).

Pendefinisian fungsi anggota dapat dilakukan langsung di dalam kelas atau di luar kelas.

Page 76: Bahasa Pemrograman C++

Contoh Kelas

class Tanggal {

private:

int tanggal;

int bulan;

int tahun;

public:

void beri_tanggal(int tanggal, int bulan,

int tahun);

void info();

int info_tanggal() { return tanggal; }

int info_bulan() { return bulan; }

int info_tahun() { return tahun; }

};

Page 77: Bahasa Pemrograman C++

Contoh Kelas

void Tanggal:: beri_tanggal(int tanggal, int bulan,

int tahun) {

Tanggal::tanggal = tanggal;

Tanggal::bulan = bulan;

Tanggal::tahun = tahun

}

void Tanggal::info() {

cout << “Tanggal : “ << tanggal << ‘/’ << bulan <<

‘/’ << tahun << endl;;

}

Page 78: Bahasa Pemrograman C++

Contoh Kelas

void main() {

clrscr();

Tanggal tgl_lahir;

tgl_lahir.beritanggal(19, 5, 2011);

tgl_lahir.info();

cout << “Tanggal lahir : “

<< tgl_lahir.info_tanggal() << “-”

<< tgl_lahir.info_bulan() << “-”

<< tgl_lahir.info_tahun() << endl;

}

Page 79: Bahasa Pemrograman C++

Katakunci Penentu Akses

Anggota kelas yang berada dalam deklarasi private hanya dapat diakses dari dalam kelas tersebut saja.

Anggota kelas yang berada dalam deklarasi public dapat juga diakses dari luar kelas tersebut.

Anggota kelas yang berada dalam deklarasi protected dapat diakses dari dalam kelas tersebut dan kelas turunannya.

Page 80: Bahasa Pemrograman C++

Penugasan Nilai Antarobyek

Seperti pada struktur, penugasan dua obyek yang berasal dari kelas yang sama dapat dilakukan dengan operator penugasan (=).

Contoh:

Tanggal tgl1, tgl2;

tgl1.beri_tanggal(19, 5, 2011);

tgl2 = tgl1;

Page 81: Bahasa Pemrograman C++

Konstruktordan

Destruktor

Page 82: Bahasa Pemrograman C++

Konstruktor

Konstruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas.

Konstruktor dijalankan secara otomatis ketika suatu obyek dari kelas tersebut terbentuk.

Kegunaannya: Mengalokasikan ruang bagi sebuah obyek. Memberikan nilai awal terhadap anggota data

suatu obyek. Membentuk tugas-tugas umum lainnya.

Page 83: Bahasa Pemrograman C++

Konstruktor

Ketentuan dari konstruktor: Nama konstruktor sama dengan nama kelas. Konstruktor tidak mempunyai nilai balik (bahkan

tanpa void). Konstruktor harus diletakkan di bagian public.

Konstruktor adalah fungsi, sehingga terdapat konstruktor yang tak berargumen, konstruktor berargumen, konstruktor berargumen dengan nilai bawaan, dan juga overloading terhadap konstruktor (constructor overloading).

Page 84: Bahasa Pemrograman C++

Konstruktor tak Berargumenclass Buku {

private:char judul[35];char pengarang[25];int jumlah;

public:Buku();void info();

};

Buku::Buku() {strcpy(Buku::judul, "Judul");strcpy(Buku::pengarang, "Pengarang");Buku::jumlah = 0;

}void Buku::info() {

cout << "Judul : " << judul << endl;cout << "Pengarang : " << pengarang << endl;cout << "Jumlah buku : " << jumlah << endl;

}

Page 85: Bahasa Pemrograman C++

Konstruktor Berargumenclass Buku {

private:char judul[35];char pengarang[25];int jumlah;

public:Buku(char *judul, char *pengarang, int jumlah);void info();

};

Buku::Buku(char *judul, char *pengarang, int jumlah) {strcpy(Buku::judul, judul);strcpy(Buku::pengarang, pengarang);Buku::jumlah = jumlah;

}void Buku::info() {

cout << "Judul : " << judul << endl;cout << "Pengarang : " << pengarang << endl;cout << "Jumlah buku : " << jumlah << endl;

}

Page 86: Bahasa Pemrograman C++

Konstruktor Berargumen dengan Nilai Bawaanclass Buku {

private:char judul[35];char pengarang[25];int jumlah;

public:Buku(char *judul=“Judul”, char *pengarang=“Pengarang”,

int jumlah=0);void info();

};

Buku::Buku(char *judul, char *pengarang, int jumlah) {strcpy(Buku::judul, judul);strcpy(Buku::pengarang, pengarang);Buku::jumlah = jumlah;

}void Buku::info() {

cout << "Judul : " << judul << endl;cout << "Pengarang : " << pengarang << endl;cout << "Jumlah buku : " << jumlah << endl;

}

Page 87: Bahasa Pemrograman C++

Overloading Konstruktor

class Buku {private:

char judul[35];char pengarang[25];int jumlah;

public:Buku();Buku(char *judul, char *pengarang,

int jumlah);void info();

};

Page 88: Bahasa Pemrograman C++

Overloading KonstruktorBuku::Buku() {

strcpy(Buku::judul, "Judul");strcpy(Buku::pengarang, "Pengarang");Buku::jumlah = 0;

}Buku::Buku(char *judul, char *pengarang, int jumlah)

{strcpy(Buku::judul, judul);strcpy(Buku::pengarang, pengarang);Buku::jumlah = jumlah;

}void Buku::info() {

cout << "Judul : " << judul << endl;cout << "Pengarang : " << pengarang << endl;cout << "Jumlah buku : " << jumlah << endl;

}

Page 89: Bahasa Pemrograman C++

Destruktor

Destruktor adalah fungsi anggota kelas yang akan dijalankan secara otomatis pada saat obyek akan sirna.

Nama destruktor sama dengan nama konstruktor, hanya saja diawali dengan sebuah karakter tak berhingga (~).

Konstruktor dapat digunakan untuk mengalokasikan memori di heap, destruktor untuk membebaskan memori pada saat obyek sirna.

Page 90: Bahasa Pemrograman C++

Pengalokasian Memori Dinamisclass Buku {

private:char *judul;char *pengarang;int jumlah;

public:Buku(char *judul, char *pengarang,

int jumlah); ~Buku();

void info();};

Page 91: Bahasa Pemrograman C++

Pengalokasian Memori DinamisBuku::Buku(char *judul, char *pengarang, int jumlah) {

Buku::judul = new char[35];strcpy(Buku::judul, judul);Buku::pengarang = new char[25];strcpy(Buku::pengarang, pengarang);Buku::jumlah = jumlah;

}

Buku::~Buku() {delete [] judul;delete [] pengarang;

}

void Buku::info() {cout << "Judul : " << judul << endl;cout << "Pengarang : " << pengarang << endl;cout << "Jumlah buku : " << jumlah << endl;

}