Matakuliah Tahun : T0456 / Algoritma dan Metode Object Oriented Programming : 2007 Class dan Objek Lanjutan Pertemuan 18 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> Constant class monster{ Member public: const int maxlevel; void hit(const int damage){ … }; 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 class monster{ public: ... static int counter; ... }; Static data member Static int monster::counter=555; Bina Nusantara Initialization 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"; getch(); } 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; for(int I=0; I<5; I++) dataMhs[I].display(); } Bina Nusantara Diskusi dan Tanya Jawab Latihan soal 15 Bina Nusantara
© Copyright 2024 Paperzz