Inheritance (Pewarisan) dalam Bahasa Pemrgoraman
Beriorientasi Objek
1. Pemahaman Inheritance (Pewarisan)
Inheritance (pewarisan) merupakan salah satu konsep terpenting pemrograman berorientasi objek
dan mempunyai dampak langsung pada cara merancang dan menulis kelas. Pewarisan adalah proses
penciptaan kelas baru dengan cara menurunkan karakteristik yang ada pada kelas sebelumnya, ditambah
dengan karakteristik yang akan dibuat di dalam kelas baru itu. Dengan pewarisan, kita dapat menciptakan
kelas umum yang mendefinisikan karakteristik (perilaku) umum dari item item yang saling berhubungan.
Kelas umum ini kemudian dapat diwariskan ke kelas kelas lain, kelas yang lebih spesifik menambahkan hal
hal yang unik di kelas yang diwariskan.
Contoh kasus, kita ingin mendeklarasikan sederetan class yang mendeskripsikan sebuah polygon
seperti persegi dan segitiga, keduanya dapat dideskripsikan dengan dua atribut yaitu : alas(Panjang) &
Tinggi(Lebar). Hal ini dapat di lakukan dengan cara menurunkan atribut yang berada di class polygon ke
dua class yakni persegi dan segitiga.
Class polygon berisi atribut umum pada semua polygon, contoh panjang & lebar. Class persegi dan
segitiga diturunkan dari class polygon. Class yang diturunkan dari class lain mewarisi semua atribut yang
ada dalam class dasarnya. Hal ini berarti bahwa jika class induk atau dasarnya memiliki atribut A dan kita
menurunkannya ke class lain yang mempunyai atribut B, maka class yang diturunkan tersebut mempunyai
atribut A & B. Dalam Bahasa C++ menggunakan operator “:” (Colon) dalam deklarasi class turunan dengan
sebagai berikut :
class class_turunan: public class_induk;
Contoh analogi dalam kehidupan sehari-hari, konsep inheritance didasari sifat pewarisan dalam
kehidupan mahkluk hidup dan makhlum mati baik manusia, binatang, tumbuhan atau kendaraan . Contoh,
warna kulit Budi mirip dengan warna kulit Ibunya, dan rambut lurus Budi mirip seperti ayahnya. Contoh
Mahkluk Hidup, Kucing campuran anggora & persia memiliki bulu mirip induk perempuan dari Anggora
dan hidung pesek seperti kucing persia.
2. Struktur Program Pewarisan
Inherintance atau pewarisan memungkinkan variabel atau fungsi anggota dari suatu kelas
diwariskan kelas lain. Kelas yang mewariskan disebut kelas dasar, sedangkan kelas yang diwarisi disebut
kelas turunan.
Salah satu keuntungan penggunaan konsep inheritance adalah membuat suatu blok kode
menjadi reuseable. Hal ini memungkinkan blok kode yang pernah dibuat dapat digunakan kembali.
Perhatikan gambar di bawah ini!
Penjelasan
- Kelas Hewan sebagai kelas dasar mewariskan anggotanya (indera, alat gerak, dll) kepada Kelas Burung dan
Kelas Kucing yang selanjutnya disebut sebagai kelas turunan.
- anggota khusus : merupakan anggota yang hanya dimiliki oleh kelas tersebut sehingga membedakan
dengan kelas lain. Misalkan anggota khusus dari Kelas Burung adalah sayap, terbang, sedangkan anggota
khusus dari Kelas Kucing adalah belalai, gading.
Bentuk penulisan pewarisan:
class <nama_kelas_turunan> : <penentu_pewarisan> <nama_kelas_dasar>
Contoh :
class Kucing : public Hewan
Penentu pewarisan Hak akses sebelumnya di kelas Hak akses baru di kelas
dasar turunan
private private tidak diwariskan
protected private
public private
protected private tidak diwariskan
protected protected (tetap)
public protected
public private tidak diwariskan
protected protected (tetap)
public public (tetap)
Berikut adalah contoh program sederhana yang menerapkan inheritance pada C++:
/*
C++ - Inheritance (Dasar Pewarisan)
[RS]
*/
#include <iostream>
#include <conio.h>
using namespace std;
//Kelas Dasar "Hewan"
class Hewan
{
private:
char nama[15];
char jenis[15];
public:
void infoHewan()
{
cout<<endl;
cout<<"Info salah satu jenis hewan"<<endl;
}
};
class Kucing : public Hewan
{
private:
char ciri_khusus[20];
public:
//konstruktor
Kucing(char *nm, char *hbt, char *cr_k)
{
strcpy(nama, nm);
strcpy(jenis, hbt);
strcpy(ciri_khusus, cr_k);
}
void infoKucing()
{
cout<<"Nama : "<<nama<<endl;
cout<<"Jenis : "<<habitat<<endl;
cout<<"Ciri Khusus : "<<ciri_khusus<<endl;
}
};
int main()
{
//menciptakan objek "kcg" sekaligus melakukan inisialisasi melalui Konstruktor
dari Kelas Kucing
Kucing kcg("Kucing", "Anggora", "Bulu tebal");
cout<<"INHERITANCE PADA C++"<<endl;
cout<<"--------------------"<<endl;
kcg.infoHewan();
kcg.infoKucing();
_getche();
return 0;
}
Referensi :
1. E-Jurnal Analisis dan Perancangan Bahasa Pemrograman Paralel Beserta Pembuatan
Prototipe Kompilator. Pembuat : Tjatur Kandaga, Jurusan Teknik Informatika STMIK
AMIK Bandung
2. Buku Bahasa Pemrograman untuk Sekolah Menengah Kejuruan Penulis Suprapto.
Bab 16, Inheritance, Friends, Polymorphism, dan Overloading
3. Website mengenai inhertince
https://www.geeksforgeeks.org/inheritance-in-c/
http://www.nblognlife.com/2017/04/c-inheritance-dasar-pewarisan.html