BAHAN AJAR INHERITANCE

4. Uraian Materi 
A. Konsep Inheritas 
Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek 
dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, 
sebuah class dapat mempunyai class turunan.Suatu class yang mempunyai 
class turunan dinamakan parent class atau base class. Sedangkan class 
turunan itu sendiri seringkali disebut subclass atau child class. Suatu subclass 
dapat mewarisi apa-apa yang dipunyai oleh parent class. Karena suatu 
subclass dapat mewarisi apa apa yang dipunyai oleh parent class-nya, 
maka member dari suatu subclass adalah terdiri dari apaapa yang ia punyai 
dan juga apa-apa yang ia warisi dari class parent-nya. Kesimpulannya, 
boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas 
(extend) parent class-nya. 
Gambar 1. Ilustrasi konsep inheritance 
Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin 
bersifat spesifik. Class karnivora memiliki seluruh sifat yang dimiliki oleh binatang, 
demikian halnya juga harimau dan ular memiliki seluruh sifat yang diturunkan 
Kurnia Rahman Agus, S.S.T
Harimau 

Ular 
Karnivora 
Monyet 
Binatang 
Omnivora 
Gorila 
Ayam 
Ayam 
Herbivora 
Herbivora 
Kambing 
Sapi 

Modul Pemrograman Berorientasi Objek 
dari class karnivora. Dengan konsep ini, karakteristik yang dimiliki oleh class 
binatang cukup didefinisikan didefinisikan dalam class binatang saja. Class 
karnovora, herbivora, dan omnivora tidak perlu mendefinisikan ulang apa yang 
telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan 
mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga 
dengan class harimau, ular, gorila, ayam, monyet, kambing dan sapi hanya 
perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing- 
masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, 
maka hanya perlu mendefinisikan karakteristik yang lebih umum akan 
didapatkan dari class darimana ia diturunkan. Dalam Java, semua 
class,termasuk class yang membangun Java API, adalah subclasses dari 
superclass Object. Contoh hirarki class diperlihatkan di bawahini. Beberapa 
class di atas class utama dalam hirarki class dikenal sebagai superclass, 
Sementara beberapa class di bawah class pokok dalam hirarki class dikenal 
sebagai subclass dari class tersebut. 
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object 
karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara 
otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode 
method hanya sekali dan mereka dapat digunakan oleh semua subclass. 
Subclass hanya perlu mengimplementasikan perbedaannya sendiri dan 
induknya. 
Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat 
mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class 
dapat mempunyai class turunan. Suatu class yang mempunyai class turunan 
dinamakan parent class atau base class. Sedangkan class turunan itu sendiri 
sering kali disebut subclass atau child class. Suatu subclass dapat Mewari siapa- 
apa yang dipunyai oleh parent class-nya, sehingga member dari suatu subclass 
adalah terdiri dari apa- apa yang ia punyai dan juga apa-apa yang diawarisi 
Kurnia Rahman Agus, S.S.T
Modul Pemrograman Berorientasi Objek 
dari classparent-nya. Kesimpulannya, boleh dikatakan bahwa suatu subclass 
adalah tidak lain hanya memperluas (extend) parentclass-nya. 
B. Hubungan antar kelas B.1 Asosiasi 
Dapat dilihat pada gambar kelas diagram di atas, hubungan asosiasi 
digambarkan dengan satu garis tidak putus - putus dan tidak memiliki anak 
panah pada kedua ujungnya. Kemudian juga dibubuhkan kardinal pada garis 
tersebut. 
Asosiasi adalah hubungan yang bisa saling menggunakan di dalam 
sebuah kelas, dan tidak saling memiliki. Misal pada gambar di atas terdapat 
kelas Dosen dan kelas Mahasiswa, dilihat dari kardinalitasnya, satu dosen bisa 
memiliki banyak mahasiswa. Apabila dosen dihilangkan, mahasiswa masih bisa 
digunakan karena tidak saling memiliki. 
Penjelasan tentang asosiasi ini bisa lebih jelas dengan melihat dua potongan kode
 dibawah 
Kurnia Rahman Agus, S.S.T
Modul Pemrograman Berorientasi Objek 
public class mahasiswa { 
private String nim; private String nama; public void setNama (String nama) { 
this.nama = nama; } public void setNim (String nim) { 
this.nim = nim; } public String getNim () { 
return this.nim; } public String getNama () { 
return this.nama; } } public class dosen { private String Kddosen; private String[] nimMHS; private int
 JmlMahasiswa; public void setKddosen (String Kddosen) { 
 
this.Kddosen = Kddosen; } public void setNimMahasiswa (String nimMhs) { 
if (JmlMahasiswa<5) { 
nimMHS[JmlMahasiswa] = nimMhs; JmlMahasiswa++; } } public int getJmlMahasiswa () { 
return this.JmlMahasiswa; } public String getKddosen () { 
return this.Kddosen; } public String getMahasiswa (int i) { 
return (nimMHS[i]); }
Kurnia Rahman Agus, S.S.T 7 mahasiswa.java 
dosen.java 
Modul Pemrograman Berorientasi Objek 
Dari dua potongan kode di atas, dapat kita ketahui bahwa kelas Dosen 
menggunakan variable nim mahasiswa yang terdapat pada kelas Mahasiswa. 
Kita dapat menghapus setiap kelas tanpa mempengrahui kelas lain. Hubungan 
seperti di atas adalah hubungan asosiasi. 
B.2 Agregasi 
Hubungan agregasi digambarkan dengan diamond putih, yang ditempelkan 
pada kelas yang memiliki, tidak dibubuhkan panah pada ujung yang tidak 
memiliki simbol diamond putih. Kemudian juga dibubuhkan kardinalitas seperti 
pada hubungan asosiasi. 
Jika hubungan asosiasi adalah saling menggunakan, di sini hubungan yang 
terjadi adalah memiliki. Dilihat pada gambar kelas diagram di atas, bahwa 
kelas Jurusan memiliki kelas Mahasiswa sebagai variable nya. Meskipun kelas 
Jurusan memiliki kelas Mahasiswa, namun kedua kelas tersebut dapat dibuat 
secara independen. 
Penjelasan dengan menggunakan potongan kode akan bisa lebih rinci di 
bagian menggunakan kelas lain. Lihat potongan kode di bawah. 
Kurnia Rahman Agus, S.S.T
Modul Pemrograman Berorientasi Objek 
jurusan.java 
Potongan kode di atas merupakan lanjutan dari potongan kode pada 
bagian asosisasi. Bisa dilihat bahwa pada kelas Jurusan, menggunakan kelas 
Mahasiswa sebagai variable di dalamnya, sehingga bisa dibilang bahwa kelas 
Jurusan memiliki kelas Mahasiswa. Apabila kelas Mahasiswa dihapus maka kelas 
Jurusan tidak dapat berdiri, namun tidak terjadi sebaliknya, kelas Mahasiswa 
masih bisa berdiri tanpa terdapat kelas Jurusan. Hubungan seperti ini disebut 
agregasi. 
Kurnia Rahman Agus, S.S.T
Modul Pemrograman Berorientasi Objek 
B.3 Komposisi 
Komposisi digambarkan menggunakan diamond hitam yang menyatakan 
memiliki bagian seperti pada agregasi, tapi lebih spesial. Kemudian 
menggunakan garis tidak putus ke kelas yang dimiliki. 
Pada paragraf di atas dikatakan “memiliki bagian seperti pada agregasi, 
namun lebih spesial”, apa yang menjadikan hubungan komposisi lebih spesial 
adalah karena setiap kelas tidak dapat berdiri sendiri. Seperti contoh kelas 
diagram di atas, bahwa kelas Komputer tidak akan terbentuk tanpa adanya 
kelas Keyboard, Mouse dan CPU. Begitu pula sebaliknya, apabila tidak terdapat 
kelas Komputer, maka kelas kelas yang lain tidak akan berfungsi. 
Perhatikan potongan kode di bawah. 
Kurnia Rahman Agus, S.S.T 10 
Modul Pemrograman Berorientasi Objek 
cpu.java 
keyboard.java 
mouse.java 
Kurnia Rahman Agus, S.S.T 11 
Modul Pemrograman Berorientasi Objek 
komputer.java 
mainKomputer.java 
Dapat dilihat dari file mainKomputer.java bahwa komponen kelas Mouse, 
Keyboard, Cpu baru dibuat setelah komputer dibuat. Apabila objek komputer 
dihapus maka semua komponen juga terhapus. Begitulah ilustrasi dari 
hubungan komposisi. 
Kurnia Rahman Agus, S.S.T 12 
Modul Pemrograman Berorientasi Objek 
C. Penerapan Inheritas 
Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class 
yang dapat diperluas dari class lain. 
Misal terdapat class Pegawai public class Pegawai {public String nama;public 
double gaji;} Misal terdapat class Manager public class Manajer 
{public String nama;public double gaji;public String departemen;} Dari 2 
buah class diatas, kita lihat class Manajer mempunyai data member yang 
identik sama dengan class Pegawai, hanya saja ada tambahan data member 
departemen.Sebenarnya yang terjadi disana adalah class Manajer merupakan 
perluasan dari class Pegawai dengan tambahan data member departemen. 
Disini perlu memakai konsep inheritance, sehingga class Manajer dapat kita 
tuliskan seperti berikut : 
Gambar 2. Listing Program 
D. Keuntungan inheritas 
• Subclass menyediakan state/behaviour yang spesifik yang 
membedakannya dengan superclass, hal ini akan memungkinkan 
programmer Java untuk menggunakan ulang source code dari 
superclass yang telah ada. 
Kurnia Rahman Agus, S.S.T 13 
public class Manajer extends Pegawai { 
public String departemen; 

Modul Pemrograman Berorientasi Objek 
• Programmer Java dapat mendefinisikan superclass khusus yang bersifat 
generik, yang disebut abstract class, untuk mendefinisikan class dengan 
behaviour dan state secara umum. 
E. Deklarasi inheritas 
Di dalam Java untuk mendeklarasikan suatu class sebagai sub class dilakukan 
dengan cara menambahkan kata kunci extends setelah deklarasi nama class, 
kemudian diikuti dengan nama parentclass-nya. Kata kunci extends tersebut 
memberitahu compiler Java bahwa kita ingin melakukan perluasan class. 
Berikut adalah contoh deklarasi inheritance: 
Gambar 3. Listing Program 
Contoh di atas memberitahukan compiler Java bahwa kita ingin meng- extend 
class A ke class B. Dengan kata lain, class B adalah subclass (class turunan) dari 
class A, sedangkan class A adalah parent class dari class B. 
Java hanya memperkenankan adanya single inheritance. Konsep single 
inheritance hanya memperbolehkan suatu sublass mempunyai satu parent 
class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat 
diamati dengan mudah. 
Dalam konsep dasar inheritance dikatakan bahwa suatu subclass adalah tidak 
lain hanya memperluas (extend) parentclass-nya. Contoh: 
Kurnia Rahman Agus, S.S.T 14 
public class B extends A{ 
..... 

Modul Pemrograman Berorientasi Objek 
Gambar 4. Listing Program 
Pada saat class Manajer menurunkan atau memperluas (extend) class 
Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. 
Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh 
Pegawai (nama, gaji), ditambah dengan data member yang ia punyai 
(departemen). 
F. Kontrol Pengaksesan 
Pengaksesan member yang ada di parent class dari subclass-nya tidak jauh 
berbeda dengan pengaksesan member subclass itu sendiri. Contoh: Suatu 
parent class dapat tidak mewariskan sebagian member-nya kepada subclass- 
nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu 
member dapat diakses dari class lain, sangat berhubungan dengan access 
control (control pengaksesan). Di dalam java, kontrol pengaksesan dapat 
digambarkan dalam table berikut ini: 

Modifier Class yang 
sama 
package yang sama 
subclass Class 
subclass Class 
manapun 
manapun 

Kurnia Rahman Agus, S.S.T 15 
Private √ Default √ √ 
Public class Pegawai{ Public String nama; Public 
double gaji; 
} Public class Manajer extends Pegawai{ Public String 
departemen; 

Modul Pemrograman Berorientasi Objek
F. Rangkuman 
Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek 
dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah 
class dapat mempunyai class turunan. Di dalam Java untuk mendeklarasikan 
suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci 
extends setelah deklarasi nama class, kemudian diikuti dengan nama parent 
class-nya. 
G. Tugas 
Penugasan dalam kegiatan belajar untuk adalah melatih keterampilan anda 
dengan melakukan proses pengamatan benda dan obyek disekitar anda dan 
coba dihubungkan dengan pendekatan berorientasi objek yang akan 
memandang sistem yang dikembangkan sebagai suatu kumpulan objek yang 
berkorespondensi dengan objek-objek dunia nyata. 

No comments:

Post a Comment