Tutorial Java #16 : Inheritance (Pewarisan) pada Pemrograman Berorientasi Objek

Seperti yang sudah kita pelajari pada materi sebelumnya: sebuah class atau objek bisa saling berhubungan dengan class yang lain. Salah satu bentuk hubungannya adalah inheritance (pewarisan). Hubungan ini seperti hubungan keluarga antara orang tua dan anak. Sebuah class di Java, bisa memiliki satu atau lebih keturunan atau class anak. Class anak akan memiliki warisan properti dan method dari class orang tua.

Inheritance adalah suatu pewarisan sifat pada class-class yang ada di dalam Pemrograman Berorientasi Objek. Dengan Inheritance, sebuah Class bisa mewarikan sifatnya ke anak kelasnya sehingga disebut parent-child. Hal ini membuat anak dari suatu kelas mendapatkan sifat orang tuanya, sehingga untuk method tersebut tidak perlu ditulis kembali.

 

Deklarasi Inheritance

Bentuk umum dari pendeklarasian inheritance di Java adalah :

public class <sub_class> extends <parent_class> {
  //tubuh class
}

Keyword extends menunjukkan bahwa class yang di sebelah kiri keyword merupakan sub class dari class yang ada di sebelah kanan keyword. Keyword extends memberikan informasi pada compiler Java bahwa terjadi perluasan class.

 

 

Keunggulan Inheritance

Dengan adanya konsep Inheritance, maka memberikan manfaat :

  1. Inheritance dapat mengeliminasi penulisan ulang terhadap kode program yang diperlukan dan duplikasi object, baik itu field, variable maupun method yang sebenarnya bisa bisa diturunkan dari hanya sebuah class.
  1. Inheritance memberikan fasilitas permodelan untuk menstrukturkan class-class menjadi lebih ringkas, dengan menangkap apa yang serupa dan apa yang berbeda di antara class-class.
  1. Inheritance memungkinkan penggunaan kembali (reuse) yang kita buat (sebagai parent class) dan membuat class-class baru berdasar parent class tersebut dengan karakteristik yang lebih khusus dari behavior umum yang dimiliki parent class.
Baca Juga  Tutorial Java #6 : Jenis-jenis Operator dalam Bahasa Java

 

 

Penggunaan Inheritance

Misalkan dalam Game, kita akan membuat class-class musuh dengan perilaku yang berbeda.

Lalu kita membuat kode untuk masing-masing kelas seperti ini :

Zombie.java :

class Zombie {
  String name;
  int hp;
  int attackPoin;

  void attack(){
    //....
  }

  void walk(){
    //....
  }
}

 

Pocong.java :

class Pocong {
  String name;
  int hp;
  int attackPoin;

  void attack(){
    //....
  }

  void jump(){
    //....
  }
}

 

Burung.java :

class Burung {
  String name;
  int hp;
  int attackPoin;

  void attack(){
    //....
  }

  void walk(){ 
    //.... 
  }

  void jump(){
    //....
  }

  void fly(){
    //....
  }
}

Penulisan kode program tersebut tidaklah salah akan tetapi tidak efektif, karena kita menulis berulang-ulang attribute dan method yang sama pada masing-masing Class yang berbeda. Maka untuk mengatasi hal tersebut di dalam Java yang berorientasi Objek dengan menggunakan Inheritance (Pewarisan). Berikut adalah member Class yang sama :

Class yang mewariskan disebut dengan superclass dan class yang menerima pewarisan disebut dengan subclass. Pada contoh bagan berikut ini yang termasuk superclass adalah Enemy, sedangkan yang termasuk subclass adalah Zombie, Pocong dan Burung. Dari subclass Burung dapat dihasilkan Objek baru lagi misal dengan nama Murai, Merpati, Parkit, Beo dan lain-lain.

Setelah menggunakan Inheritance (Pewarisan), maka konsep nya dapat disederhanakan agar lebih efektif menjadi seperti ini :


Class Enemy adalah class induk/Super Class yang memiliki anak Zombie, Pocong dan Burung sebagai Sub Class. Apapun attribute/properti yang ada di class induk/super class, akan dimiliki juga oleh class anak/sub class.

Bentuk kode programnya akan menjadi seperti ini :

Enemy.java :

class Enemy {
  String name;
  int hp;
  int attackPoin;

  void attack(){
    System.out.println("Serang !");
  }
}

Pada class anak/sub class, kita menggunakan kata kunci extends untuk menyatakan kalau dia adalah class turunan dari Enemy.

Baca Juga  Tutorial Python #2 : Instalasi Python Interpreted dan Text Editor di Windows

Zombie.java :

class Zombie extends Enemy {
  void walk(){
    System.out.println("Zombie jalan-jalan");
  }
}

 

Pocong.java :

class Pocong extends Enemy {
  void walk(){
    System.out.println("Pocong loncat-loncat");
  }
}

 

Burung.java :

class Burung extends Enemy {
  void walk(){
    System.out.println("Burung berjalan-jalan");
  }

  void jump(){
    System.out.println("Burung loncat-loncat");
  }

  void fly(){
    System.out.println("Burung terbang");
  }
}

 

Lalu, bila kita ingin membuat objek dari class-class tersebut, Kita bisa membuatnya di Class lain misal di Game.java seperti ini :

Enemy monster = new Enemy();
Zombie zumbi = new Zombie();
Pocong hantuLoncat = new Pocong();
Burung hewanTerbang = new Burung();

 

Demikian tutorial Inheritence pada Pemrograman Berbasis Obyek, selanjutnya kita akan mempelajari Enkapsulasi. Semoga bermanfaat.

 

Referensi :

  • https://bagus.smkn9malang.sch.id/

Related Post

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy