Class dan Objek Lanjutan Pertemuan 18 Matakuliah : T0456 / Algoritma dan Metode Object Oriented Programming Tahun : 2007 Class dan Objek Lanjutan Pertemuan 18
Pada akhir pertemuan ini, diharapkan: Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat menghasilkan program dengan static data member dan object composition. Buku Referensi: C++ - How to program, Deitel & Deitel, Prentice Hall, 2001. Websites: http://www.deitel.com 3 Bina Nusantara
Outline Materi Constant Class Static data member Object local dan object global Array of object Nesting of object 4 Bina Nusantara
Constant Object & Function Constant object adalah object yang tidak dapat diubah atributnya Hanya const function yang dapat dipanggil oleh constant object Const function adalah function yang tidak mengubah nilai data Keyword yang digunakan: const 5 Bina Nusantara
Constant in Class #include <iostream.h> class monster{ public: const int maxlevel; void hit(const int damage){ … }; }; Constant Member Constant Parameter Bina Nusantara
Contoh program #include <constrea.h> class point { private: int x, y; public: point(int x1, int y1){x = x1; y = y1; } void move(int new_x, int new_y){x = new_x; y = new_y;} void print() const; }; void point::print() const { cout <<"x = "<<x<<", y = "<<y<<"\n"; } void main(){ const point cp(10, 20); point ncp(2, 25); cp.print(); cp.move(5,65); ncp.move(8,7); getch(); Bina Nusantara
Static Data Untuk membuat hanya satu nilai data member untuk seluruh object pada suatu class Keyword yang digunakan: static Static data member: Varibel yang memiliki nilai sama untuk semua object dari suatu class. Harus ada inisialisasi yang ditulis di luar class. 8 Bina Nusantara
Contoh Static Data Static data member Initialization class monster{ public: ... static int counter; }; Static int monster::counter=555; Initialization Bina Nusantara
Contoh program static #include <constrea.h> class point { private: int x, y; static int jml_titik; public: point(int x1, int y1){x = x1; y = y1; jml_titik++;} int get_jml_titik(){ return jml_titik; } }; int point::jml_titik = 0; //inisialisasi variabel static void main() { point p1(10, 20); point p2(2, 25); point p3(4, 20); cout<<"\nJumlah titik = "<<p1.get_jml_titik(); cout<<"\nJumlah titik = "<<p2.get_jml_titik(); cout<<"\nJumlah titik = "<<p3.get_jml_titik(); getch(); } Bina Nusantara
Object global & Object lokal Seperti variabel pada umumnya, object juga dapat di deklarasikan sebagai object local maupun object global Constructor object global dijalankan sebelum fungsi main() dijalankan Dectructor object global dijalankan pada saat fungsi main() berakhir 11 Bina Nusantara
Contoh program object global #include <constrea.h> #include <string.h> class coba { private: char kata[20]; public: coba (char kata1[20]); ~coba(); }; coba::coba(char kata1[20]) { strcpy(kata, kata1); cout<<"\nIni ada di dalam constructor "<<kata; } coba::~coba() { cout<<"\nIni ada di dalam destructor "<<kata; getch(); coba obj_global("global"); void main() { cout<<"\nAwal fungsi main...\n"; coba obj_lokal1("lokal1"); coba obj_lokal2("lokal2"); cout<<"\nAkhir fungsi main...\n"; Bina Nusantara
Array Object Suatu array dengan elemen berupa object, contohnya adalah: Mahasiswa dataMhs[25]; Merupakan statement untuk mendefinisikan array dari 25 object mahasiswa. 13 Bina Nusantara
Contoh Array object #include <constrea.h> #include <string.h> Class Mahasiswa { private: char NIM[10], Nama[30]; float IPK; public: void input(); void display(); }; void Mahasiswa::input(){ cout << “input Nim? “; cin >> NIM; cout << “input Nama? “; cin >> Nama; cout << “input IPK? “; cin >> IPK; } void Mahasiswa:: display(){ cout << NIM << “ “ << Nama << “ “ << IPK << endl; Void main() { Mahasiswa dataMhs[10]; //deklarasi array object mahasiswa for(int I=0; I<5; I++) dataMhs[I].input(); cout << “Data yang sudah diinputkan “ << endl; dataMhs[I].display(); Bina Nusantara
Diskusi dan Tanya Jawab Latihan soal 15 Bina Nusantara