Blogs Blogs
Blogs »
Pewarisan (Inheritance) : Dasar pemrograman Java

PEWARISAN / INHERITANCE

1.     Penjelasan

Istilah pewarisan berarti suatu kelas bisa mewariskan sebagian atau keseluruhan struktur dan perilaku ke kelas lain. Jika kelas B adalah kelas turunan dari kelas A, maka kita bisa juga menyebut kelas A adalah kelas super dari kelas B. Kelas turunan bisa memiliki struktur atau perilaku tambahan dari kelas supernya. Atau bahkan kelas turunan bisa mengubah atau mengganti perilaku kelas supernya.

Hubungan antara kelas turunan dan kelas super sering dilukiskan dalam bentuk diagram di mana kelas turunan digambarkan di bawah kelas supernya, dan dihubungkan dengan garis penghubung dengan tanda segitiga yang diletakkan di dekat kelas supernya.

 

 

class B extends A {

  .

  .  // tambahan atau perubahan

  .  // struktur dan perilaku dari kelas A

  .

}

 

 

Istilah pada Inheritance :

-       Super Class : Class yang mewariskan data dan methodnya kepada class lain (sering juga disebut sebagai Parent Class).

-       Sub Class : Class ang mewarisi data dan method dari Super Class.

 

 

Beberapa kelas dapat menurunkan kelas yang sama. Kelas-kelas turunan ini masing-masing disebut kelas saudara, yaitu diwariskan dari satu kelas super yang sama. Struktur dan perilaku kelas super ini akan dimiliki oleh masing-masing turunannya. Pada diagram berikut, kelas B, C, dan D adalah kelas saudara. Pewarisan juga bisa dilakukan beberapa kali, atau suatu kelas bisa memiliki cucu, buyut, dan seterusnya. Pada diagram, kelas E merupakan kelas turunan kelas D, sehingga kelas E adalah "cucu" dari kelas A. Kelas E masih bisa disebut turunan dari kelas A, walaupun bukan merupakan turunan langsungnya.

 

2.     Mengapa menggunakan Inheritance?

a.   Bersifat reusable

Salah satu keuntungan OOP adalah bersifat reusable. Bayangkan bila anda perlu membuat beberapa kelas yang berasal dari basis yang sama (data dan method sama), namun pada masing - masingnya akan di tambahkan data atau method yang khusus. Tanpa inheritance, anda harus menyalin semua data dan method dari suatu kelas.

 

b.   Kemudahan dalam me-manage kelas yang memiliki data dan method sama

Bila anda ingin memodifikasi suatu data atau method untuk semua subclass, anda tidak perlu melakukan perubahan pada masing - masing subclass. Modifikasi cukup dilakukan pada superclass yang menjadi basis dari subclass tersebut.

 

3.     Contoh

Sebagai contoh, kita memakai class Komputer, jika kita akan membuat class baru yang bernama laptop atau PDA maka akan ada beberapa atau semua atrribute pada komputer yang akan menempel pada laptop dan PDA disamping attribute yang memang dimiliki oleh class baru tersebut.

Untuk lebih jelasnya, dapat kita lihat dalam contoh kasus berikut. Kita telah mempunyai Class Komputer, yang mempunyai attribute antara lain : processor, monitor, hard disk, dan memory. Kemudian kita akan membuat spesifikasi untuk Laptop. Seperti diketahui, seluruh komponen atau attribute pada Laptop adalah sama dengan komputer, hanya saja pada Laptop menggunakan Battery,. Battery inilah yang akan menjadi attribute sebenarnya dari Laptop, sedangkan yang lain akan mengambil dari attribute class Komputer.

//file : Komputer.java

public class Komputer {

       

    String processor;

    int monitor;

    int hardDisk;

    int memory;

 

void processor(){

    System.out.println("Processor :" + processor);

}

 

void monitor(){

    System.out.println("Monitor: " + monitor + "Inch");

}

 

void hardDisk(){

    System.out.println("Hard Disk: " + hardDisk + "GB" );

}

 

void memory(){

    System.out.println("Memory: " + memory + "GB");

}

 

}

 

 

//file : Laptop.java

public class Laptop extends Komputer{

 

String typeBattery;

int durasiBattery;

 

void typeBattery() {

    System.out.println("Type Battery : " + typeBattery);

}

 

void durasiBattery(){

    System.out.println("Durasi Batery : " + durasiBattery + "jam");

}

 

}

 

 

//file : LaptopSpec.java

public class LaptopSpec {

 

    public static void main(String[]args){

 

    Laptop accer = new Laptop();

 

    accer.processor ="Intel Dual core";

    accer.processor();

    accer.monitor = 15;

    accer.monitor();

    accer.hardDisk = 250;

    accer.hardDisk();

    accer.memory = 3;

    accer.memory();

    accer.typeBattery ="Litium";

    accer.typeBattery();

    accer.durasiBattery = 2;

    accer.durasiBattery();

 

}

 

}

 

 

Dari contoh di atas, dapat dilihat bahwa sebenarnya Class Laptop tidak memiliki attribute processor, hard disk, monitor, dan memory, tetapi mengambil dari attribute milik class Komputer. Adapun perintah yang digunakan untuk mengambil attribute atau method dari kelas lain adalah Extends. Perintah ini dipakai saat kita membuat class Laptop untuk mengambil attribute dari class Komputer.

 

4.     Catatan

Dalam Pemrograman Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class.

 

End of – Layouts


  • Comments