Anda di halaman 1dari 11

Enkapsulasi

Dalam sebuah objek yang mengandung variablevariabel dan method-method, dapat ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusan variabel dan method dalam sebuah objek dalam bagian yang terlindungi inilah yang disebut dengan enkapsulasi. Enkapsulasi dapat diartikan sebagai bungkusan (wrapper) pelindung program dan data yang sedang diolah. Pembungkus ini mendefinisikan perilaku dan melindungi program dan data yang sedang diolah agar tidak diakses sembarangan oleh program lain. ontoh ! Objek Persegi panjang, di dalamnya terdapat variable panjang, lebar, fungsi set_sisi(), fungsi get_luas()
"lass Persegi#Panjang $ publi"! int hitung()% void lebar(int lbr)% void panjang(int pjg)% Persegi#Panjang()% virtual &Persegi#Panjang()% private! int hasil% int y% int '% (%

)anfaat dari proses enkapsulasi


)odularitas Kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain. *nformation +iding Karena kita dapat menentukan hak akses sebuah variabel method dari objek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui objek lain.

*nheritan"e
(Pewarisan) !alah satu hal penting dalam class adalah inheritance. "nheritance mengijinkan kita untuk membuat objek yang diturunkan dari objek lain, sehingga dimungkinkan didalamnya terdapat member lain selain membernya sendiri. Kemampuan untuk meminjam sebagian kode untuk digunakan kembali #lass yang diturunkan dari class lain me$arisi semua member yang ada dalam class dasarnya. %al ini berarti bah$a jika class dasarnya memiliki member & dan kita menurunkannya ke class lain yang memiliki member ', maka class turunan akan terdiri dari & dan '. (ntuk menurunkan class dari yang lain, kita menggunakan operator ) (colon). #ara deklarasi class turunan ) "lass derived#"lass#name! publi" base#"lass#name% dimana derived_class_name adalah nama class turunan dan base_class_name adalah nama class yang menjadi dasar. Public dapat diganti dengan akses lain misalnya protected atau private, dan menjelaskan akses untuk member yang diturunkan, seperti kita dapat lihat pada contoh berikut)

ontoh *nheritan"e ! derived classes *include +iostream.h, class #Polygon protected) int $idth, height. public) void set_values (int a, int b) $idth/a. height/b. 0 0. class #1ectangle) public #Polygon public) int area (void) - return ($idth 2 height). 0 0. class #3riangle) public #Polygon public) int area (void) - return ($idth 2 height 4). 0 0. int main () #1ectangle rect. #3riangle trgl. rect.set_values (5,6).

trgl.set_values (5,6). cout ++ 78n%asil fungsi 1ectangle / 7++rect.area(). cout ++ 78n%asil fungsi 3riangle / 7++trgl.area(). return 9. 0

P,-.),/P+*0) polymorphism adalah suatu kemampuan untuk meminta objek yang berbeda untuk melaksanakan tugas yang sama. Kita dapat membuat beberapa objek berdasarkan satu class sebagai blue print:nya. Kita dapat meminta objek ; objek tersebut untuk melaksanakan tugas yang sama. ontoh 0our"e ode "lass1."pp ! *include +iostream, class & public) int get<(). void set<(int <). int =. &(). virtual >&(). 0. &))&() 0 &))>&() 0 void &))set<(int <) = / <. 0 int &))get<() return =. 0 void main() int y, ?. & a@. & a4. a@.set<(6). a4.set<(@9). y / a@.get<(). ? / a4.get<().

cout ++ 7Ailai = object a@ ) 7 ++ y ++ endl. cout ++ 7Ailai = object a4 ) 7 ++ ? ++ endl. 0 ontoh 0our"e ode "lass2."pp ! *include +iostream.h, class boneka public) void lihat'oneka(). void ubah'oneka(). char namaB@9C char mataB@9C. char kulitB@9C. char rambutB@9C. int tinggi. 0. void main() boneka unyil. boneka barbie. boneka sarinah. unyil.ubah'oneka(). unyil.lihat'oneka(). barbie.ubah'oneka(). barbie.lihat'oneka(). sarinah.ubah'oneka(). sarinah.lihat'oneka(). 0 void boneka))ubah'oneka() cout++7Aama ) 7. cin.getline(nama,@9). cout++7Darna mata ) 7. cin.getline(mata,@9). cout++7Darna kulit ) 7. cin.getline(kulit,@9). cout++7Darna rambut ) 7. cin.getline(rambut,@9). cout++73inggi boneka) 7.

cin,,tinggi. 0 void boneka))lihat'oneka() cout++endl++endl++endl. cout++7Aama ) 7++nama++endl. cout++7Darna mata ) 7++mata++endl. cout++7Darna kulit ) 7++kulit++endl. cout++7Darna rambut ) 7++rambut++endl. cout++73inggi boneka ) 7++tinggi++endl. 0 0our"e ode lat3."pp ! class & Public) int a. int b. void update(int &). 0. void main() & a. a.update(E). a.b / a.a. a.bFF. int c / a.a. 0 void &))update(int &) a / &. b / 9. 0 Pertanyaan) @. 'erapa nilai data member a pada akhir programG 4. 'erapa nilai data member b pada akhir programG E. 'erapa nilai variable c pada akhir programG

0our"e ode lat4."pp ! class & int Het&(). void !et&(int &). int a. 0. void main() & a. a.!et&(6). int b / a.Het&(). 0 void !et&(int &) a / &. 0 int Het&() return &. 0 Pertanyaan) a. Program lat4.cpp di atas salah, perbaiki program tersebutIII

0our"e ode lat5."pp ! class # Public) void !et&(int &). int a. 0. void main() int a. !et&(6). 0 void !et&(int &) a / &. 0 Pertanyaan) a. Program latE.cpp di atas salah, perbaiki program tersebutIII

6ugas! Perhatikan perbedaan classE.cpp dengan class5.cpp #oba pada classE.cpp ubah void main() :nya dengan menjadi void main() { int luas; luaskotak kotakA; kotakA.x=5; kotakA.y=7; luas = kotakA.hitung(); cout << !uas "otak A # $ Perhatikan error yang terjadi III

<< luas << endl;

Anda mungkin juga menyukai