Bahasa Pemrograman C++

Slides:



Advertisements
Presentasi serupa
STATEMENT KONDISI Adalah perintah yang memungkinkan
Advertisements

Dasar Pemrograman Komputer
Ekspresi dan Operator As’ad Djamalilleil
Ekspresi As’ad Djamalilleil
assignment unary binary ternary
OPERATOR Ninik Tri H, S.Kom.
OPERATOR DI JAVA Dosen : Fajar Y. Zebua
OPERATOR.
OPERATOR.
Dasar Pemrograman Komputer [TKL-4002] 2010
Elemen Dasar Java (2) As’ad Djamalilleil
OPERATOR Teknik Informatika Universitas Muhammadiyah Malang 2011 Pemrogramman Terstruktur.
Operator C++ Pertemuan 3.
Operator Bahasa C++, Manipulasi String
Pengenalan PHP Operator Aritmatika:
Matematika Biner dan Logika Biner
Dasar Pemrograman Java Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2008.
OPERASI DAN OPERATOR.
OPERATOR Teknik Informatika Universitas Muhammadiyah Malang 2012 Pemrogramman Terstruktur.
PHP Operators.
Sekilas jenis-jenis operator
OPERATOR.
Pertemuan Operand dan Operator
OPERATOR LOGIKA.
03 Elemen Dasar Bahasa Java
Pertemuan 6 Operator & prioritas operator .:: Erna Sri Hartatik ::.
OPERASI RELASIONAL DAN LOGIKA Matakuliah: T0974 / Algoritma dan Metode Object Oriented Programming I Tahun: 2008 Versi: 1/0.
Pengenalan Operator.
Operator C++ Pertemuan 3.
Operasi Operator dalam C++ Pertemuan 4 Dasar Pemrograman
Dasar-Dasar Pemrograman
Tipe, Nama, dan Nilai Anifuddin azis.
STRUKTUR DATA DAN KOMPUTASI LUNAK
Pertemuan 2 OPERATOR DAN EKSPRESI.
Algoritme dan Pemrograman
Pemograman Terstruktur
Operator Operator adalah perintah yang memanipulasi nilai atau variabel dan memberikan suatu hasil. Macam – macam operator yang terdapat pada PowerBuilder.
Pengenalan PHP Operator Aritmatika:
Pertemuan Operasi Store - Compute
Pertemuan 1 DATA & STRUKTUR DATA.
Pseudocode – Tipe Data, Variabel, dan Operator
Pengenalan dan Struktur Java (Operator dan Input)
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
Operator dan Ekspresi TEE 2103 Algoritma dan Pemrograman
S. Indriani Lestariningati, M.T
DASAR PEMROGRAMAN JAVA
As’ad Djamalilleil Ekspresi As’ad Djamalilleil
C++: OPERATOR Yenni Astuti, S.T., M.Eng.
As’ad Djamalilleil Ekspresi dan Operator As’ad Djamalilleil
As’ad Djamalilleil Elemen Dasar Java (2) As’ad Djamalilleil
Review Materi Java Fundamental
Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator
Operator dan Operasi Input Output pada C++ Pertemuan 11
Operator By Harifuddin,ST,MT..
Ekspresi & Alur Kendali
OPERATOR RELASI & LOGIKA
VARIABEL DAN TIPE DATA Erizal, S.Si, M.Kom Sistem Informasi
Pemrograman Terstruktur
STRUKTUR DATA PERTEMUAN III.
Operator dan Assignment
Pertemuan Pertama Data dan Struktur Data.
Arif Pramudwiatmoko Universitas Teknologi Yogyakarta
Pemrograman Terstruktur
Aritmatika Komputer.
Operator.
ALGORITMA & DASAR PEMROGRAMAN
Struktur dan Arsitektur Pemrograman
Dasar-dasar PHP - Pengantar - variabel - operator -struktur kontrol
Operator C++ Pertemuan 3.
Dasar Pemrograman Pertemuan 6 Operator & prioritas operator.:: Erna Sri Hartatik ::.
Transcript presentasi:

Bahasa Pemrograman C++

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

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

>> digunakan untuk membandingkan antara dua variabel data Operator Relasional >> digunakan untuk membandingkan antara dua variabel data Hasil dari operasi relasional adalah logika benar atau salah. 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 Kondisional Operator Bitwise Operator Penggunaan Deskripsi && Op1 && Op2 Menghasilkan true jika Op1 dan Op2, keduanya bernilai boolean true || Op1 || Op2 Menghasilkan 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

Operator Shift Operator 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.

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

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:

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 ^ | Logical AND && Logical OR || Conditional ? : Assignment = += -= *= /= %= &= ^= |= <<= >>= >>>=

Pernyataan Dasar

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

Pernyataan if Bentuk: if(kondisi) Jika kondisi bernilai benar, maka pernyataan dijalankan. Jika kondisi bernilai salah, maka pernyataan tidak dijalankan.

Diagram Alir: Contoh: ... int angka = 5; if(angka < 10) kondisi pernyataan salah benar Diagram Alir: Contoh: ... int angka = 5; if(angka < 10) cout << “Lebih kecil”;

Pernyataan if-else Bentuk: if(kondisi) pernyataan1; else pernyataan2; Jika kondisi bernilai benar, maka pernyataan1 dijalankan. Jika kondisi bernilai salah, maka pernyataan2 dijalankan.

Diagram Alir: Contoh: kondisi pernyataan1 pernyataan2 ... salah benar Diagram Alir: pernyataan2 Contoh: ... int angka = 5; if(angka < 10) cout << “Lebih kecil”; else cout << “Tidak lebih kecil”;

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;

Diagram Alir: kondisi1 pernyataan1 kondisi2 pernyataanN kondisi3 benar salah

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; case nilai3: pernyataan3; ... default: pernyataanN; }

Diagram Alir: pernyataan1 nilai1 pernyataan2 nilai2 kondisi nilai3 default

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

Pernyataan while Bentuk: while(kondisi) Ketika kondisi bernilai benar, maka pernyataan dijalankan, kemudian kembali ke pengecekan kondisi. Ketika kondisi bernilai salah, maka pernyataan tidak dijalankan lagi.

Diagram Alir: Contoh: kondisi pernyataan ... int angka = 0; salah benar Diagram Alir: Contoh: ... int angka = 0; while(angka < 10) { cout << “Lebih kecil dari 10” << endl; angka++; }

Pernyataan do-while Bentuk: do { } while(kondisi) Pernyataan do-while mirip dengan pernyataan while, namun pernyataan dijalankan terlebih dahulu sebelum pengecekan kondisi, sehingga pernyataan minimal dijalankan 1 kali.

Diagram Alir: Contoh: pernyataan kondisi ... int angka = 0; do { salah benar Diagram Alir: Contoh: ... int angka = 0; do { cout << “Lebih kecil dari 10” << endl; angka++; } while(angka < 10);

Pernyataan for Bentuk: for(init;kondisi;naik) Pernyataan for adalah sama artinya dengan pernyataan while di samping ini. init; while(kondisi) { pernyataan; naik; }

Diagram Alir: Contoh: init kondisi pernyataan naik ... salah benar Diagram Alir: pernyataan naik Contoh: ... for(int i = 0; i < 10; i++) cout << “Lebih kecil dari 10” << endl;

Fungsi

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.

Konsep Pemrograman Terstruktur fungsi main() fungsi b() fungsi a() fungsi c()

Fungsi, Argumen, dan Nilai Balik parameter Nilai balik Argumen = masukan fungsi Nilai balik = keluaran fungsi

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.

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.

Definisi Fungsi Bentuk: nilai_balik nama-fungsi(arg1,arg2,…) { //isi fungsi } Isi definisi fungsi adalah perintah-perintah yang akan dijalankan ketika fungsi tersebut dipanggil.

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); )

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.

Contoh Referensi int i; int &r = i; i = 10; cout << “i = “ << i << endl; cout << “r = “ << r << endl; r = 55;

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; }

Array dan String

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.

tipe_data nama_array[jumlah_elemen]; Pendefinisian Array tipe_data nama_array[jumlah_elemen]; Contoh : int angka[5]; float suhu[3];

Pemberian Nilai Awal Array (Inisialisasi Array) tipe_data nama_array[jumlah_elemen] = { elemen0, elemen2, …}; Contoh : int angka[5] = {5, 2, 7, 3, 2}; float suhu[3] = {2.5, 1.3, 2.1};

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

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.

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};

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];

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";

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.

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.

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.

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.

Pointer

Pointer 0xfff2 55 pint vint Menunjuk ke vint Alamat Pointer adalah variable yang berisi alamat memori. Pointer menunjuk kepada isi dari suatu alamat memori.

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;

Mendefinisikan Variabel Pointer Suatu variable pointer didefinisikan dengan bentuk sebagai berikut: Contoh: int *pint; char *pch; float *pfl; tipe_data *nama_variabel;

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;

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;

Dapat menunjuk ke sebarang tipe data 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 . . .

Pointer void void *ptr; int vint = 50; ptr = &vint; cout << "Nilai yang ditunjuk ptr : " << *(int *)ptr << endl;

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;

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”};

Konsep Pengalokasian Memori Heap adalah memori yang tidak terpakai yang dapat digunakan untuk membuat variabel dinamis. stack heap data kode Memori

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;

Array Dinamis Contoh: double *acak; acak = new double[5]; for(int i = 0; i < 5; i++) *(acak + i) = i + 1; cout << *(acak + i) << endl;

String Dinamis Contoh: char *kalimat; kalimat = new char[200]; cin.getline(kalimat, 200); cout<<“Kalimat yang dimasukkan:”<<endl; cout << kalimat << endl;

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;

Struktur

Struktur Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang berlainan. struct nama_struktur { deklarasi anggota };

Struktur Membuat struktur seperti membuat suatu tipe data baru. Contoh: struct Tanggal { int tanggal; int bulan; int tahun; };

Mendefinisikan Variabel Struktur Variabel struktur dapat dibuat dengan cara: Contoh: Tanggal hari_ini; nama_struktur nama_variabel;

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

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;

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;

Kelas

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.

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.

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; } };

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;;

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; }

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.

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;

Konstruktor dan Destruktor

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.

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).

Konstruktor tak Berargumen class 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;

Konstruktor Berargumen class 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;

Konstruktor Berargumen dengan Nilai Bawaan class 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;

Overloading Konstruktor class Buku { private: char judul[35]; char pengarang[25]; int jumlah; public: Buku(); Buku(char *judul, char *pengarang, int jumlah); void info(); };

Overloading Konstruktor Buku::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;

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.

Pengalokasian Memori Dinamis class Buku { private: char *judul; char *pengarang; int jumlah; public: Buku(char *judul, char *pengarang, int jumlah); ~Buku(); void info(); };

Pengalokasian Memori Dinamis Buku::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;