Anda di halaman 1dari 9

Materi Pembelajaran

Inheritance

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 ibu.

Kenapa kita harus menggunakan Inheritance ?

Misal kita membuat Game dengan class – class musuh dengan perilaku yang berbeda.
Bentuk kelas diagramnya seperti ini :

Lalu membuat membuat kode masing – masing kelas seperti ini :

File Zombi.java

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

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

1
File Pocong.java

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

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

File Burung.java

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

void attack(){
// ...
}
void walk(){
//...
}
void jump(){
//...
}
void fly(){
//...
} }

2
Apakah kamu setuju dengan kode 3 program di atas ?

Dari tiga program di atas ada beberapa yang sama yaitu properti dan method. Kode program
menjadi kurang efektif karena harus menulis berulang – ulang kode properti dan methodnya.
Bagaimana solusinya ?

Kita harus menggunakan Inheriatnce, bagaimana menggunakan inheritance ?

Kita melihat member kelas yang sama dari bentuk kelas diagram.

Karena menggunakan inheritance bentuk kelas diagram berubah seperti ini :

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.

3
Lalu bagaimana bentuk kodenya :

File Enemy.java

class Enemy {
//properti
String name;
int hp;
int attackPoin;
//method
void attack(){
System.out.println("Serang!");
}
}

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!");
}
}

4
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...");
}
}

5
Latihan menggunakan inheritance

Membuat package baru dengan nama inheritance di project BelajarOOP. Didalamnya


akan membuat beberapa file contoh dari inheritance. Bentuk kelas diagramnya seperti ini :

1. BangunDatar.java

public class BangunDatar {


float luas(){
System.out.println("Menghitung luar bangun datar");
return 0;
}

float keliling(){
System.out.println("Menghitung Keliling bangun
datar");
return 0;
}
}

2. Linkaran.java

public class Lingkaran extends BangunDatar{


//jari lingkaran
float r;

6
}

3. Persegi.java

public class Persegi extends BangunDatar{


float sisi;

4. PersegiPanjang.java

public class PersegiPanjang extends


BangunDatar{
float panjang;
float lebar;
}

5. Segitiga.java

public class Segitiga extends BangunDatar{


float alas;
float tinggi;
}

6. Main.java

public class Main {


public static void main (String[] args){
//membuat objek bangun datar
BangunDatar mBangunDatar = new BangunDatar();

//membuat objek persegi dan mengisi nilai properti


Persegi mPersegi = new Persegi();
mPersegi.sisi = 2;

7
//membuat objek lingkaran dan mengisi nilai
properti
Lingkaran mLingkaran = new Lingkaran();
mLingkaran.r =22;

//membuat objek persegipanjang dan mngisi nilai


properti
PersegiPanjang mPersegiPanjang = new
PersegiPanjang();
mPersegiPanjang.panjang = 8;
mPersegiPanjang.lebar = 4;

//membuat objek segita dan mengisi nilai propertis


Segitiga mSegitiga = new Segitiga();
mSegitiga.alas = 12;
mSegitiga.tinggi = 8;

//memanggil method luas dan keliling


mBangunDatar.luas();
mBangunDatar.keliling();

mPersegi.luas();
mPersegi.keliling();

mLingkaran.luas();
mLingkaran.keliling();

mPersegiPanjang.luas();
mPersegiPanjang.keliling();

mSegitiga.luas();
mSegitiga.keliling();

8
}

Output :

Anda mungkin juga menyukai