0% menganggap dokumen ini bermanfaat (0 suara)
192 tayangan

Inheritance Di Java

Inheritance dalam bahasa Java memungkinkan pewarisan sifat-sifat dari kelas induk ke kelas turunan. Kelas turunan akan mewarisi variabel dan method dari kelas induknya. Dalam contoh yang diberikan, kelas BangunDatar merupakan kelas induk yang mendefinisikan method untuk menghitung luas dan keliling, sedangkan kelas SegiEmpat merupakan kelas turunannya yang mengoverride method tersebut sesuai dengan bangun datar segi empat.

Diunggah oleh

Sahroni Muamal
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
192 tayangan

Inheritance Di Java

Inheritance dalam bahasa Java memungkinkan pewarisan sifat-sifat dari kelas induk ke kelas turunan. Kelas turunan akan mewarisi variabel dan method dari kelas induknya. Dalam contoh yang diberikan, kelas BangunDatar merupakan kelas induk yang mendefinisikan method untuk menghitung luas dan keliling, sedangkan kelas SegiEmpat merupakan kelas turunannya yang mengoverride method tersebut sesuai dengan bangun datar segi empat.

Diunggah oleh

Sahroni Muamal
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

Inheritance di java

Inheritance artinya penurunan atau pewarisan, dalam pemrograman terutama Java inheritance
adalah pewarisan sifat sifat yang dimiliki sebuah kelas kepada subkelas(kelas turunan).
yang diwariskan diantaranya.

variabel

method

di Java, cara membuat turunan dari sebuah kelas adalah dengan kata extends, misalnya
anda punya Kelas Animal lalu anda ingin memecah lagi menjadi yang lebih spesifik
menjadi Kucing, Anjing, Harimau maka cara membuatnya adalah :
1. membuat kelas bernama Animal
class Animal{}
2. buat turunan dari kelas sepeda yaitu Kucing, Anjing, Harimau
1
class Kucing extends Animal{}
2
class Anjing extends Animal{}
3
class Harimau extends Animal{}
4
baiklah, seperti itulah caranya. mari kita coba membuatnya agar bisa dijalankan programnya
1. buatlah kelas Animal lengkap dengan variabel dan methodnya, jika belum tahu caranya
lihat tutorial sebelumnya
1 class Animal{
2
3
String makanan;
4
String suara;
5
6
//konstruktor
7
public Animal(String makanan, String suara){
8
System.out.println("tercipta hewan yang belum jelas");
9
this.makanan = makanan;
10
this.suara = suara;
11
}
12
13
//method - method
14
void makan(){
15
System.out.println(".....");
16
}
17
18
void bersuara(){
19
System.out.println(".....");

20

}}

2. buatlah kelas Kucing


1 class Kucing extends Animal {
2 String jenisKucing;
3
4
//konstruktor
5
public Kucing(String makanan, String suara, String jenisKucing){
6
super(makanan,suara);
7
this.jenisKucing = jenisKucing;
8
System.out.println("tercipta kucing "+jenisKucing);
9
10 }
11
12 //overide method makan
13 void makan(){
14
System.out.println("kucing memakan "+this.makanan);
15 }
16
17
//override mthod bersuara
18 void bersuara(){
19
System.out.println("Kucing suaranya "+suara);
20 }
21
22 }
3. buatlah kelas untuk mengetesnya dengan nama AnimalTest atau yang lainnya terserah anda
1
class AnimalTest {
2
public static void main(String[] args){
3
Animal animal = new Animal("nasi", "hmmm");
4
animal.makan();
5
animal.bersuara();
6
System.out.println();
7
Kucing anggora = new Kucing("Ikan","miau..miau..miau","anggora");
8
anggora.makan();
9
anggora.bersuara();
10 }
11 }

contoh latihan inheritance di java (bangun datar)


saya ingin membuat program sederhana yang berfungsi untuk menghitung luas dari bangun
datar, dimana bangun datarnya diantaranya segi empat, persegi panjang dan segitiga. apa
yang harus dilakukan ? ikuti langkah berikut :
1.buat kelas bangun datar dengan nama BangunDatar.java, bangun datar ini hanya memiliki
fungsi menghitung luas dan keliling yang belum jelas.
1 public class BangunDatar {
2
3
public void hitungLuas()
4
{
5
System.out.println("belum terdefinisi / belum jelas luas apa yang di hitung");
6
}
7
8
public void hitungKeliling(){
9
System.out.println("belum terdefinisi / belum jelas keliling apa yang di hitung");
10 }
11 }
2. lalu buat kelas turunan dari kelas BangunDatar, atau dengan kata lain buat subclass dari
BangunDatar, saya ambil contoh kelasnya adalah kelas segi empat dengan nama
SegiEmpat.java, kelas ini sudah jelas dapat menghitung luas segi empat dengan cara
mendefiniskan ulang method superclass nya atau istilahnya mengoverride method dari
superclass nya yaitu kelas BangunDatar, method yang di override adalah method hitungLuas.
kini methodnya sudah jelas dapat melakukan sesuatu yaitu menghitung luas, kita juga
mengoverride method hitungKeliling.
1 public class SegiEmpat extends BangunDatar{
2
//deklarasi variabel
3
double sisi;
4
5
//deklarasi method konstruktor tanpa parameter
6
public SegiEmpat(){
7
}
8
//deklarasi method konstruktor dengan parameter
9
public SegiEmpat(double inputsisi){
1
this.sisi = inputsisi; // menentukan nilai dari variabel sisi adalah parameter inputsisi
0
}
11
1
//deklarasi method untuk menentukan nilai dari variabel sisi
2
public void setSisi(double inputsisi){
1
this.sisi = inputsisi;
3
}
1
//deklarasi method untuk menghitung luas dengan mengoverride method hitungLuas
4
//dari superclass nya (kelas BangunDatar)
1

5
1
6
1
7
1
8
1
9
2
0
2
1
@Override
2
public void hitungLuas(){
2
double luas ; //deklarasi variabel lokal
2
luas = this.sisi * this.sisi;
3
//mencetak luas
2
System.out.println("luas segi empat dengan sisi "+sisi+" cm adalah "+luas+" cm
4
kuadrat");
2
5
public void hitungKeliling(){
2
double keliling ; //deklarasi variabel lokal
6
keliling = this.sisi * 4;
2
//mencetak luas
7
System.out.println("keliling segi empat dengan sisi "+sisi+" cm adalah "+keliling+"
2
cm.");
8
2
}}
9
3
0
3
1
3
2
3
3
3
4
3
5
3. selanjutnya kita tinggal membuat kelas yang berfungsi untuk mengetes apakah kelas
BangunDatar dan kelas turunannya yaitu SegiEmpat bisa berjalan dengan baik. kita beri
nama kelas ini BangunDatarTest.java , pembuatan kelas ini agar bisa mengetesnya adalah
sebagai berikut :
a. buat kelasnya
public class BangunDatarTest{}

b.agar bisa di RUN maka kelas ini membutuhkan method khusus yaitu method main, kode
kita menjadi
public class BangunDatarTest { public static void main(String[] args){ }}
c. setelah method main ada, maka kita akan menciptakan object dari masing masing kelas
dan kode kita akan menjadi seperti ini
1
2
3
public class BangunDatarTest {
4
public static void main(String[] args){
5
//buat objek dari kelas BangunDatar
6
BangunDatar bd = new BangunDatar();
7
//membuat objek bd melakukan sesuatu
8
bd.hitungLuas();
9
bd.hitungKeliling();
1
0
//buatObjek dari Kelas SegiEmpat dengan nama sg
11
SegiEmpat sg = new SegiEmpat(500);
1
//membuat objek sg melakukan sesuatu sesuai method yang dipunyai oleh kelas
2
segiempat
1
sg.hitungLuas();
3
sg.hitungKeliling();
1
}
4
1
}
5
1
6
sebagai latihan anda juga bisa membuat kelas turunan lainnya dari BangunDatar seperti kelas
persegi panjang, kelas segitiga . tentu variabel dan methodnya akan menyesuaikan dengan
kegunaan dari kelas masing masing, misal untuk kelas persegi panjang variabelnya adalah
panjang dan lebar, lalu untuk segitiga variabelnya adalah alas dan tinggi, untuk methodnya
buatlah methodnya dapat menghitung luas dan keliling sesuai dengan jenis bangun datarnya.

Apa itu inheritance?


Inheritance dalam bahasa indonesia adalah pewarisan. Kalau di OOP maksud dari inheritance
sendiri sama seperti artinya dalam bahasa indonesia yaitu mewariskan dari satu class ke class
lain.
Lalu apa keuntungan class yang diwarisi? class yang diwarisi (child) dia bisa memiliki
method dan atribut yang dimiliki oleh class pewarisnya (parent)
Sebagai contoh, misalnya kita punya class burung. Si burung itu bisa bersiul dan memiliki
atribut cakar dan paruh. Ketika kita membuat class burung merpati yang merupakan turunan
dari class burung, maka si merpati juga memiliki atribut (cakar dan paruh) serta method
(bersiul) yang sama dengan parent-nya (si Burung).
Dalam java, penulisan inheritance dapat menggunakan kata extends. Berikut contoh
pemakaiannya
Pertama class burung :
?
1
2
3
4
5
6
7
8
9
10
11
12

public class Burung{


int paruh, cakar;
Burung(int p, int c){
this.paruh = p;
this.cakar = c;
}

public void Bersiul(){


//kode untuk Bersiul()
}

Lalu berikut class merpati :


?
1 public class Merpati extends Burung{
2 //Kode untuk merpati
3 }
Di dalam si merpati kita secara otomatis memiliki method dan atribut yang dimiliki oleh si
Burung. Jadi nanti di dalam constructor merpati kita tinggal mengisikan atribut yang dimiliki
oleh Burung. Untuk mengisikannya, jika atribut tersebut sebelumnya sudah insiasi di
constructor Burung, maka kita tidak perlu capek2 membuatnya di Merpati karena kita bisa
dengan mudah menggunakan code super(). Dimana super berguna untuk memanggil
constructor parent di child yang meng-extends-nya. Untuk lebih jelas, silahkan lihat potongan
contructor untuk Merpati dibawah ini :
?
1
2
3

Merpati(int p, int c){


super(p,c);
}

Dengan menggunakan super() secara otomatis parameter masukan super() akan


menyesuaikan dengan parameter masukan constructor parent-nya (dalam hal ini burung), di
dalam Burung ada parameter masukan p dan c.
Bagaimana? pasti semua sudah paham mengenai pewarisan
Selanjutnya kita akan membahas yang paling sering terjadi di inheritance atau class-class
yang menggunakan kata extends yaitu Override
Apa itu Override?
Sebelum masuk ke penjelasannya, mungkin teman2 sering mendengar temannya Overriding
yaitu Overloading
Untuk penjelasan keduanya akan saya tulis dibawah, agar jelas beda keduanya
Pertama Overriding,
overriding adalah child menggantikan isi dari fungsi/method yang dimiliki oleh parent-nta.
Contohnya, di method Bersiul() di atas, akan memunculkan burung bersiul di console. Kita
dapat meng-override method tersebut dan menggantinya dengan menulis burung merpati
bersiul dengan cara menulis ulang method tersebut di class yang kita buat (child). Method
tersebut tentunya hanya berubah di si child yang meng-override method tersebut.
Ketika ada child lain yang hendak meng-extends si parent, isi method Bersiul() akan tetap
sama seperti milik si parent (kecuali di override lagi :P)
Misal ini sebelum dioverride (kode di class Burung) :
?
1 public void Bersiul(){
System.out.println("burung bersiul");
2
}
3
Selanjutnya di class Merpati kita override dengan menulis code di bawah di dalam class
Merpati :
?
1 @Override
2 public void Bersiul(){
System.out.println("burung merpati bersiul");
3
}
4
annotation @Override secara otomatis akan keluar kalau kalian pake IDE (Netbeans, Eclips,
dll.). Guna annotation itu untuk menandakan bahwa method tersebut merupakan method yang
di override
Gimana sudah jelas mengenai override kan?
Selanjutnya mengenai overloading.
Overloading ini masih ada hubungan dengan method (mirip-mirip override lah). Overloading
adalah pendeklarasian method berulang dengan mengubah parameter masukan. Jadi kita
dapat mendeklarasikan method yang sama berulang-ulang dengan parameter masukan yang
berbeda-beda dengan syarat (1) nilai kembaliannya sama (2) namanya sama (3) parameter
masukan beda
Contohnya, kita mau membuat method untuk Bersiul() yang memiliki bermacam2 parameter
masukan :twisted:.

Nah kalau method Bersiul() itu tidak diberikan parameter masukan, maka akan menghasilkan
saya bersiul. Kalau diberikan masukan berupa string ,contohnya kata lagu, maka method
Bersiul(lagu) akam menghasilkan saya bersiul lagu. Kalau diberikan masukan berupa int
akan menghasilkan hasil kali dengan angka 10 :D.
Karena ada 3 jenis parameter masukan (yang satu ga pake masukan sih :P), maka kita
memerlukan 3 kali pendeklarasian method Bersiul() seperti contoh code dibawah ini
?
1public void Bersiul(){
2
System.out.println("saya bersiul");
}
3
4public void Bersiul(String kata){
System.out.println("saya bersiul "+kata);
5}
6public void Bersiul(int angka){
System.out.println("hasil kali " + angka + " dengan 10 adalah " +
7
(angka*10));
8
9}

Anda mungkin juga menyukai