Capaian dan Indikator
1. Capaian Pembelajaran
Setelah mempelajari bab ini, mahasiswa diharapkan:
- Mengetahui konsep pewariasan
- Mengetahui implemtasi pewari san dalarn program
2. Indikator
- Mampu menjelaskan konsep pewarisan
- Mampu mengimplementasikan pewarisan di dalam program
Uraian Materi
Seperti yang sudah kita modul sebelumnya, sebuah class atau objekbisa 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 ibu.
Misalkan dalam Game, kita akan mem buat class-class musuh dengan perilaku yang berbeda.
Kode untuk masing-masing kelas seperti ini:
File: Zombie.java File: Pocong.java
File: Burung .java
Penulisan kode seperti di atas, tidak salah, namun tidak efektif, karena properti dan method yang sama ditulis berulang-ulang. Solusinya adalah menggunakan inheritance. Berikut gambaran member class yang sama:
Setelah menggunakan inheritance, maka akan menjadi seperti ini:
Inheritance bisa digambarkan dengan garis hubung Generalization.
Class Enemy adalah class induk yang memiliki anak Zombie, Pocong, dan Burung. Apapun properti yang ada di class induk, akan dimiliki juga oleh class anak. Lalu bagaimana bentuk kodenya dalam Java? Bentuk kodenya akan seperti ini:
File: Enemy.java
class Enemy{ String name; int hp; int attackPoin; void attack(){ System.out.println("Enemy Attack"); } }
Pada class anak, kita menggunakan kata kunci extends untuk menyatakan kalau dia adalah class turunan dari Enemy.
File: Zombie.java
class Zombie extends Enemy{ void walk(){ System.out.println("Zombie jalan-jalan"); } }
File: Pocong.java
class Pocong extends Enemy{ void jump(){ System.out.println("Loncat-loncat"); } }
File: Burung.java
class Burung extends Enemy{ void walk(){ System.out.println("Burung berjalan"); } void jump(){ System.out.println("Burung loncat-loncat"); } void fly(){ System.out.println("Burung terbang"); } }
Latu, bila kita ingin membuat objek dari class-class tersebut,
Enemy monster = new Enemy (); Zombie zumbi = new Zombie (); Pocong hantuPocong = new Pocong (); Burung garuda = new Burung ();
Buat class Utama.java. Simpan semua dalam satu folder.
public class Utama{ public static void main(String[] args){ Enemy monster = new Enemy (); Zombie zumbi = new Zombie (); Pocong hantuPocong = new Pocong (); Burung garuda = new Burung (); garuda.attack(); zumbi.name = "wewe"; zumbi.hp = 10000; zumbi.attackPoin = 500; garuda.name = "manuk"; garuda.hp = 20000; garuda.attackPoin = 700; System.out.println(zumbi.name); System.out.println(zumbi.hp); System.out.println(zumbi.attackPoin); System.out.println(garuda.name); System.out.println(garuda.hp); System.out.println(garuda.attackPoin); } }
Output:
Latihan
Berikut ini merupakan contoh program Java inheritance. Dalam contoh ini anda dapat mengamati 2 class yaitu Kalkulasi dan Kalkulasiku. Dengan menggunakan kata kunci extends, Kalkulasiku mewarisi penam bahan dan pengurangan methods dari class Kalkulasi. Buat projek baru dengan nama Kalkulasiku.java dan silahkan buat program seperti dibawah ini, kemudian kompile dan jalankan .
class Kalkulasi{ int z; public void penambahan(int x, int y){ z = x + y; System.out.println("Hasil Penambahan : " + z ); } public void pengurangan(int x, int y){ z = x - y ; System.out.println("Hasil Pengurangan : " + z ); } public class Kalkulasiku extends Kalkulasi{ public void perkalian (int x, int y){ z = x * y; System.out.println ("Hasil Perkalian : " + z ); } public static void main(String args[]){ int a = 10; int b = 5; Kalkulasiku tes = new Kalkulasiku (); tes.penambahan(a, b); tes.pengurangan(a, b); tes.perkalian(a, b); } } }
a. Simpan program tersebut dengan nama Kalkulasi ku.java, kem ud i an lakukan kom pi lasi."
b. Hasil keluaran program adalah
Hasil Penambahan : 15 Hasil Pengurangan : 5 Hasil Perkalian : 50
c. Berikan penjelasan mengenai program tersebut
Keterangan program :
Tugas
- Buatlah program lengkap yang memanfaatkan class Enemy beserta turunannya.
- Di ketahui class diagram sebagai berikut. Buatlah program yang berfungsi untuk menghitung luas dan keliling