TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2 1. Class Inheritance / Kelas Turunan / Pewarisan Sifat Objek Hak Akses pada kelas turunan: Apabila diturunkan Public dari kelas Induknya maka: Bagian public pada kelas induk tetap akan menjadi bagian public padakelas turunannya. Bagian protected yang terdapat pada kelas induknya tetap akan menjadi bagian protected pada kelas turunannya. Bagian private yang terdapat pada kelas induk tetap tidak dapat diakses oleh turunannya. Apabila kelas diturunkan sebagai Private dari kelas Induknya, maka: Bagian public yang terdapat pada kelas induk akan menjadi bagian private pada kelas turunannya. Bagian protected yang terdapat pada kelas induk akan menjadi bagian private pada kelas turunannya. Bagian private yang terdapat pada kelas induk tetap tidak dapat diakses oleh kelas turunannya. Contoh Program 1: // Membuat kelas dasar dengan nama INDUK class INDUK { void SetX(int XX) { ; // Membuat kelas TURUNAN1 yang diturunkan sebagai private // dari kelas INDUK class TURUNAN1: private INDUK { void SetY(int YY) { ;
// Membuat kelas TURUNAN2 yang diturunkan sebagai private // dari kelas TURUNAN1 class TURUNAN2: private TURUNAN1 { void SetZ(int ZZ) { return Z; ; 2 TURUNAN2 A; // Melakukan pengesetan nilai X, Y dan Z melalui kelas TURUNAN2 A.SetX(20); // SALAH, tidak diizinkan oleh compiler A.SetY(30); // SALAH, tidak diizinkan oleh compiler A.SetZ(40); // Statemen di bawah ini SALAH, karena mengakses bagian private cout<<"nilai X yang dipanggil dari kelas TURUNAN2 : "; cout<<a.getx()<<endl; // Statemen di bawah ini SALAH, karena mengakses bagian private cout<<"nilai Y yang dipanggil dari kelas TURUNAN2 : "; cout<<a.gety()<<endl; cout<<"nilai Z yang dipanggil dari kelas TURUNAN2 : "; cout<<a.getz()<<endl; Contoh Program 2: // Membuat kelas dengan nama INDUK1 class INDUK1 { void SetX(int XX) { ;
// Membuat kelas dengan nama INDUK2 yang tidak berkaitan // dengan kelas INDUK1 class INDUK2 { void SetY(int YY) { ; // Membuat kelas TURUNAN yang merupakan turunan // dari kelas INDUK1 dan INDUK2 class TURUNAN: public INDUK1, public INDUK2 { void SetZ(int ZZ) { return ZZ; ; TURUNAN A; // Memanggil fungsi-fungsi yang terdapat pada kelas TURUNAN A.SetX(100); A.SetY(200); A.SetZ(300); // Menampikan nilai yang telah diset cout<<"nilai Y : "<<A.GetY()<<endl; cout<<"nilai Z : "<<A.GetZ(); 2. Penggunaan Constructor pada Kelas Turunan: Pemanggilan constructor kelas induknya dapat dilakukan dari dalam costructor kelas turunannya. Contoh Program 3:
class INDUK { // Constructor pada kelas INDUK INDUK(int XX) { cout<<"constructor kelas INDUK"<<endl; // Membuat fungsi GetX ; class TURUNAN: public INDUK { // Constructor pada kelas TURUNAN TURUNAN(int XX, int YY): INDUK(XX) { cout<<"constructor kelas TURUNAN"<<endl; // Membuat fungsi GetY ; TURUNAN A(10, 20); // Melakukan pemanggilan fungsi melalui objek A cout<<"nilai Y : "<<A.GetY(); Contoh Program 4: // Membuat kelas INDUK1 class INDUK1 { // Constructor pada kelas INDUK1 INDUK1(int XX) { cout<<"constructor kelas INDUK1"<<endl; // Membuat fungsi GetX
; // Membuat kelas INDUK2 class INDUK2 { // Constructor pada kelas INDUK2 INDUK2(int YY) { cout<<"constructor kelas INDUK2"<<endl; // Membuat fungsi GetY ; // Membuat kelas TURUNAN // yang diturunkan dri kelas INDUK1 dan INDUK2 class TURUNAN: public INDUK1, public INDUK2 { // Constructor pada kelas TURUNAN TURUNAN(int XX, int YY, int ZZ): INDUK1(XX), INDUK2(YY) { cout<<"constructor kelas TURUNAN"<<endl; // Membuat fungsi GetZ return Z; ; TURUNAN A(10, 20, 30); // Melakukan pemanggilan fungsi melalui objek A cout<<"nilai Y : "<<A.GetY()<<endl; cout<<"nilai Z : "<<A.GetZ();