P. 1
Inheritance

Inheritance

|Views: 19|Likes:
Dipublikasikan oleh Indah Purnamasari

More info:

Published by: Indah Purnamasari on Sep 25, 2012
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

09/25/2012

pdf

text

original

12

1 Modul Bahasa C++, harni_kus@yahoo.com

PEWARISAN ( INHERITANCE)
Pewarisan (inheritance) adalah penurunan sifat yang ada pada suatu kelas kepada kelas baru yang menjadi turunannya. Sifat-sifat suatu kelas ditentukan oleh data anggota dan metode, sehingga yang dimaksud penurunan sifat adalah penurunan data anggota atau metode. Kelas yang menurunkan sifat disebut kelas dasar (base class), sedangkan yang kelas baru yang mewarisi sifat kelas dasar disebut kelas turunan (derived class).
Kelas dasar Sifat A Sifat B Kelas turunan Sifat A Sifat B Sifat C Sifat spesifik dari kelas turunan

Sifat-sifat yang diwariskan

Dengan pewarisan dapat diciptakan suatu kelas baru yang mana kelas tersebut mewarisi seluruh sifat kelas dasar yang mempunyai akses public atau protected ditambah sifat khusus dari kelas yang bersangkutan. Ketentuan ini tidak berlaku sebaliknya, artinya sifat yang ada pada kelas turunan tidak diwariskan pada kelas dasar. Ketentuan utama dengan adanya pewarisan yaitu memungkinkan suatu kode yang telah ditulis mudah sekali untuk digunakan kembali. Anda telah membuat suatu kelas yang telah diuji. Jika suatu nanti, anda ingin menerapkan kode tersebut pada sesuatu yang mempunyai sifat-sifat kelas tersebut, anda tinggal mewariskan kelas yang telah ada di kelas baru (kelas turunan). Anda tidak perlu mengotak-atik kelas yang teruji, sehingga efek samping yang tidak diharapkan tidak terjadi. Dengan cara ini pengembangan program menjadi lebih efisien dan menghemat waktu. Selain itu, anda dapat menambahkan sifat-sifat baru yang tidak ada pada kelas dasar atau bahkan dapat mengganti sifat-sifat pada kelas turunan, yang berbeda dengan sifat kelas dasar. Dari mekanisme pewarisan yang sudah diuraikan diatas, dapat disimpulkan bahwa pewarisan ini dikelompokkan menjadi tiga, yaitu :

PUSAT PENGEMBANGAN BAHAN AJAR – UMB

Harni Kusniyati ST. C++

dan 3. kelas B merupakan kelas turunan dari kelas A. . Pada pewarisan ini. . pewarisan juga dilakukan secara protected maupun private. C++ . Dengan implementasi di atas. class B : public A { . }. } Sintak di atas adalah mekanisme pewarisan secara public. }. Pewarisan Tunggal (single inheritance) 2. class hewan : public makhluk { public: void bergerak(). Contoh program pewarisan tunggal : #include<iostream. kelas turunan dapat berjumlah lebih dari satu. Pewarisan Jamak Maya (virtual multiple inheritance) 12. .h> class makhluk { public: void berkembang(). }. Selain pewarisan public. . harni_kus@yahoo. class kuda : public hewan PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. PEWARISAN TUNGGAL (SINGLE INHERITANCE) Adalah pewarisan yang mana jumlah kelas dasarnya tunggal. Pewarisan tunggal dapat digambarkan dengan sintak program sebagai berikut : class A { .com 1. Pewarisan Jamak (multiple inheritance).2 Modul Bahasa C++.1.

berlari(). Hasil Kompilenya : PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. cout<<endl<<" Sifat-sifat dari Makhluk adalah : "<<endl. cout<<endl<<" Sifat-sifat dari Kuda adalah : "<<endl. } void makhluk::berkembang() { cout<<" Berkembang biak"<<endl.3 Modul Bahasa C++. C++ . kd. harni_kus@yahoo.bergerak(). kuda kd. } void hewan::bergerak() { cout<<" Bergerak berpindah tempat"<<endl.bergerak().berkembang(). } hw. mk. mk. hw. main() { makhluk mk. } void kuda::berlari() { cout<<" Berlari sangat kencang seperti angin"<<endl. hw. cout<<endl<<" Sifat-sifat dari Hewan adalah : "<<endl. }.com { public: void berlari().berkembang(). hewan hw.berkembang().

Kelas C akan mewarisi sifat dari kelas A maupun sifat dari kelas B. . . C++ .4 Modul Bahasa C++. } Pada bentuk tersebut terdapat dua kelas dasar yaitu kelas A dan kelas B yang menurunkan kelas C. Perhatikan contoh program berikut ini : PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. Dalam pewarisan ini jumlah kelas dasarnya lebih dari satu. Perhatikan sintak dari pewarisan tunggal berikut ini : class A { . }. PEWARISAN JAMAK (MULTIPLE INHERITANCE) Adalah pewarisan dimana satu kelas diturunkan lebih dari satu kelas yang berbeda. } class C: public A. dan perlu dicatat bahwa kelas dasarnya bukan merupakan turunan dari satu kelas. . Kelas turunan mewarisi seluruh sifat dari kelas dasarnya.2.com 12. sehingga sifat dari beberapa kelas dasar dan sifat khas dirinya. tetapi tidak berlaku sebaliknya. class B { . harni_kus@yahoo. public B { . . . .

pg.terbang(). } Kompile dari program diatas : PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. public burung { public: void lariterbang() { cout<<" > Bersayap.h> class kuda { public : void berlari() { cout<<" > Berlarinya sangat cepat"<<endl. cout<<"Sifat dari PEGASUS yaitu : "<<endl. pg.5 Modul Bahasa C++. harni_kus@yahoo. main() { pegasus pg. } }.berlari(). lari dan dapat terbang ke angkasa"<<endl. C++ . } }.com #include<iostream.lariterbang(). class pegasus: public kuda. pg. class burung { public: void terbang() { cout<<" > Terbang menembus awan"<<endl. } }.

. }. Mekanisme pewarisan sifat suatu kelas dasar kepada kelas turunan sama dengan pewarisan yang lain.6 Modul Bahasa C++. }. Perhatikan sintak berikut ini : class A { .h" PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. Kelas virtual A pertama menurunkan kelas B.com 12. Kelas D merupakan turunan dari kelas B dan C. sedangkan kelas B dan C merupakan kelas turunan dari kelas dasar yang sama yaitu kelas A. PEWARISAN JAMAK MAYA (VIRTUAL MULTIPLE INHERITANCE) Adalah pewarisan yang mana kelas dasarnya lebih dari satu dan beberapa di antara kelas dasar tersebut merupakan kelas turunan dari kelas dasar yang sama. class D: public B. Supaya berjalan pewarisan dari kelas A kepada kelas B maupun C harus secara virtual. C++ . . }. . . sedangkan kelas virtual A kedua menurunkan kelas C. . Contoh program dalam pewarisan ini : #include"iostream. class C: virtual public A { . .3. public C { . . . class B: virtual public A { . }. harni_kus@yahoo.

main() { PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. } }. class burung: virtual public hewan { public: void terbang() { cout<<" # Terbang menembus awan"<<endl. lari dan dapat terbang ke angkasa"<<endl.com class hewan { public: void bergerak() { cout<<" # Bergerak berpindah tempat"<<endl. C++ . class kuda: virtual public hewan { public : void berlari() { cout<<" # Berlarinya sangat cepat"<<endl. public burung { public: void lariterbang() { cout<<"# Bersayap.7 Modul Bahasa C++. class pegasus: public kuda. } }. harni_kus@yahoo. } }. } }.

com pegasus pg.h" class Kendaraan { private: char nama[15]. pg. pg.berlari().h" #include"string. pg. PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. C++ . KONSTRUKTOR DAN DESTRUKTOR PADA PEWARISAN Di dalam contoh-contoh diatas belum melibatkan konstruktor dan destruktor secara eksplisit. Di dalam pewarisan suatu konstruktor perlu diperhatikan terutama konstruktor penyalinan. cout<<">> Sifat dari PEGASUS << "<<endl. cout<<"========================"<<endl.terbang().4.bergerak(). maka akses private dapat diganti dengan akses protected agar data anggota pada kelas dasar dapat diakses dari kelas turunan. } Kompile dari program diatas: 12. pg. harni_kus@yahoo.8 Modul Bahasa C++. Jika konstruktor kelas dasar hanya berisi pernyataan memberi nilai data anggota provate. Contoh programnya : #include"iostream.h" #include"conio.lariterbang().

nama_kendaraan). Mercy mewah(" Mobil Yang Mewah")."<<endl. } void info_kendaraan() { cout<<nama<<" Sedang berjalan .... } ~Mercy() { cout<<" Matikan mesin mobil merah itu . C++ . } PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST. mewah.9 Modul Bahasa C++."<<endl.."<<endl.com public: Kendaraan(char *nama_kendaraan = "T1AS") { strcpy(nama. } }."<<endl."<<endl. cout<<" Akhir dari permulaaan().. harni_kus@yahoo. cout<<" Hidupkan mesin kendaraan anda . } ~Kendaraan() { cout<<" Matikan mesin kendaraan anda . } }.....info_kendaraan(). class Mercy : public Kendaraan { public: Mercy(char *nama_mercy) : Kendaraan(nama_mercy) { cout<<" Hidupkan mesin mobil merah ...."<<endl. void main() { clrscr().

Berdasarkan hasil eksekusi di atas terlihat bahwa. PUSAT PENGEMBANGAN BAHAN AJAR – UMB Harni Kusniyati ST.10 Modul Bahasa C++. C++ .. Akhir dari permulaan().... Hidupkan mesin mobil merah ..com Keluarannya : Hidupkan mesin kendaraan anda .... Mobil Yang Mewah Sedang berjalan .. pada saat obyek berkelas Turunan diciptakan :  Konstruktor kelas dasar dengan sendirinya dijalankan  Kemudian konstruktor kelas turunan baru dijalankan Pada saat obyek berakhir :  Destruktor kelas turunan dijalankan terlebih dahulu  Kemudian destruktor kelas dasar dijalankan. Matikan mesin mobil merah itu . Matikan mesin kendaraan anda . harni_kus@yahoo....

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->