1. BAB III
PEWARISAN
3.1. TUJUAN
Tujuan pembelajaran dalam bab ini agar :
1. Mampu memahami konsep dari pewarisan.
2. Mampu membuat suatu kelas yang didasarkan kelas yang sudah ada
sehingga mewarisi semua anggota.
3. Memahami cara pengaksesan pewarisan.
3.2. DASAR TEORI
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 (baseclass), sedangkan yang kelas
baru yang mewarisi sifat kelas dasar disebut kelas turunan (derived class).
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 inipengembangan program menjadi lebih efisien dan
menghemat waktu. Selain itu, kita dapat menambahkan sifat-sifat baru yang
24
2. 25
tidak ada pada kelas dasar atau bahkan dapat mengganti sifat-sifat pada
kelas turunan, yang berbeda dengan sifat kelas dasar.
3.3. ANALISA PRAKTIKUM
Untuk pewarisan, contohnya adalah sebagai berikut :
//untuk no 1,2,3,4 dan seterusnya hanya merupakan no untuk keterangan
kode
#include<iostream.h>
#include<conio.h>
1. class Basis
{
2. private:
3.
int alpha;
4.
int bravo;
5.
public:
6.
void info_basis()
{
7.
cout<<"info_basis() dijalankan.... "<<endl;
}
};
8. class Turunan: public Basis
{
9.
public:
10.
void info_turunan()
{
11.
cout<<"info_turunan() dijalankan... "<<endl;
}
};
3. 26
12.
void main()
{
13.
clrscr();
14.
Turunan anak;
15.
anak.info_basis();
16.
anak.info_turunan();
getche();
}
Dan hasilnya adalah sebagai berikut :
Gambar 3.1. Hasil eksekusi untuk pewarisan.
Keterangan :
1. No. 1 untuk medeklarasikan bahwa buku sebagai kelasnya.
2. No. 2 untuk memdeklarasikan bahwa hak aksesnya hanya secara
khusus.
3. No. 3 dan No. 4 merupakan objek dari kelas buku yang dimana alpha
dan bravo yang menggunakan int adalah bilangan integer.
4. No. 5 untuk medeklarasikan bahwa hak aksesnya dapat diakses secara
umum.
5. No. 6 berfungsi sebagai info dari basis.
6. No. 7 sebagai perintah masukkan untuk menampilkan script dalam
bentuk hasil eksekusi.
7. No. 8 berfungsi untuk mendeklarasikan kelas turunan yang dapat
mengakses basis.
8. No. 9 untuk mendeklarasikan bahwa hak aksesnya dapat diakses secara
umum.
4. 27
9. No. 10 sebagai info dari Turunanyang merupakan turunan dari basis.
10. No. 11 sebagai perintah masukkan untuk menampilkan script dalam
bentuk hasil eksekusi.
11. No. 12 sebagai fungsi utama program.
12. No. 13 berfungsi untuk membersihkan layar.
13. No. 14 hingga 16 berfungsi untuk memanggil fungsi yang telah kita
deklarasikan sebelumnya.
3.4. KESIMPULAN
Berdasarkan percobaan yang telah kita lakukan pada bab ini, maka kita
dapat menarik kesimpulan bahwa :
1. Kelas turunan dapat mengakses kelas basis.
2. Namun kelas basis tidak dapat mengakses kelas turunan.
3. Sifat-sifat suatu kelas ditentukan olehdata anggota dan metode, sehingga
yang dimaksud penurunan sifat adalah penurunandata anggota atau
metode.