Sunday, October 18, 2009

Inheritance (Pewarisan)

Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut.

Dengan kata lain:

* Super (super class)

Bisa disebut juga dengan induk.
Misalnya class ORTU adalah super class yang mewarisi ke class ANAK
Nah, karena mewarisi berarti ORTU bertindak sebagai super class

* Sub (sub class)

Bisa disebut dengan anak
Misalnya class ANAK diwarisi oleh class ORTU
Artinya anak adalah sub class dari class ORTU (super class)

Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, kode method dapat dituliskan hanya sekali dan dapat digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan perbedaannya sendiri dan induknya.

Misalnya class ORTU mempunyai mempunyai variabel dan method dan diturunkan ke sub classnya (misal: class ANAK). Berarti class ANAK mempunyai semua variabel dan method yang dimiliki oleh class ORTU.

Lalu bagaimana caranya? Caranya adalah dengan menggunakan kata kunci extends. Bentuk umum proses inheritance adalah

class extends {
;
}

Contoh:

class ANAK extends ORTU {

}
// class anak sebagai subclass yang mendapat warisan dari class ORTU

Contoh lain:

// Lingkaran.java
class Lingkaran {

double r;
double Luas() {

return Math.PI * this.r * this.r;

}

}

// Silinder.java
class Silinder extends Lingkaran {

double h;
double Volume() {
return Math.PI * this.r * this.r * this.h ;

}

}

Di dalam Java semua class yang kita buat sebenarnya adalah turunan atau subclass dari class Object. Class Object merupakan class tertinggi dari semua hirarki class dalam Java

Latihan berikut untuk mengenalkan konsep dari inheritance yaitu suatu class dapat mewariskan atibut dan method kepada claas lain (subclass)

berikut kita analisis source code berikut:

Sepeda.java (class tertinggi atau superclass)

class Sepeda{

//mendeklarasikan variabel

int kecepatan = 0;
int gir = 0;

//membuat method ubahGir dan parameter pertambahanGir yang bertipe integer
void ubahGir(int pertambahanGir) {

gir= gir+ pertambahanGir;
System.out.println(”Gir:” + gir);

}

//membuat method tambahKecepatan dan parameter pertambahanKecepatan yang bertipe integer
void tambahKecepatan(int pertambahanKecepatan) {

kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println(”Kecepatan:” + kecepatan);

}

}

SepedaGunung.java adalah class yang mewarisi class Sepeda.java. dengan keyword extends kita dapat menggunakan method dan atribut yang ada pada class Sepeda.java

SepedaGunung.java

class SepedaGunung extends Sepeda {

//mendeklarasikan atribut

int setSadel;

//membuat method setSadel dan parameter nilaiSadel yang bertipe integer

public void setSadel(int nilaiSadel) {

setSadel = nilaiSadel;
System.out.println(“Tinggi Sadel:”+setSadel);

}

}

SepedaGunungBeraksi.java digunakan untuk mengeksekusi atau memanggil method yang ada pada class Sepeda.java dan class SepedaGunung.java

SepedaGunungBeraksi.java

class SepedaGunungBeraksi {

public static void main(String[] args) {

// Membuat object
SepedaGunung sepedaku = new sepedaGunung();

// Memanggil method dan memberikan nilai parameter pada masing-masing method diobject
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);

}

}

dengan cara yang sama, kita akan mengembangkan program java diatas. kita akan membuat class MobilBMW yang merupakan inherit dari class Mobillengkap dengan menambahkan beberapa method nontonTV() yang isinya menampilkan tulisan tv dihidupkan, tv mencari chanel, tv menampilkan gambar. buat class MobilBMWBeraksi yang memanggil method nontonTV(), hidupkanMobil(), matikanMobil(), dan ubahGigi().

jawab:

terlebih dahulu kita buat class Mobillengkap.java yang sebelumnya sudah kita buat di artikel sebelumnya:

class mobilLengkap{ //penulisan class harus sama dengan nama filenya

String warna ;
int tahunProduksi;

//membuat method printMobil
void printMobil(){

System.out.println(”warna:”+warna);
System.out.println(”Tahun:”+tahunProduksi);

}

//membuat method hidupkanMobil

void hidupkanMobil(){

System.out.println(”mobil sudah hidup”);

}

//membuat method matikanMobil

void matikanMobil(){

System.out.println(”mobil sudah mati”);

}

//membuat method jalankanMobil

void jalankanMobil(){

System.out.println(”mobil sudah berjalan”);

}

}

selanjutnya kita buat class MobilBMW.java yang mengextends atau mewarisi class MobilLengkap.java yang ditambahi dengan method nontonTV().

MobilBMW.java

class MobilBMW extends MobilLengkap{ /*perintah extends digunakan untuk mewarisi atribut dan method yang ada pada class mobilLengkap*/

//membuat method nontonTV()

public void nontonTV(){

System.out.println(”TV dihidupkan”);
System.out.println(”TV mencari Chanel”);
System.out.println(”TV menampilkan gambar”);

}

}

selanjutnya kita buat file MobilBMWBeraksi.java untuk memanggil method nontonTV(), hidupkanMobil(), matikanMobil(), dan ubahGir().

MobilBMWBeraksi.java

public class MobilBMWBeraksi{

public static void main(String[] args){

//membuat object
MobilBMW mobilku= new MobilBMW();

//memanggil method
mobilku.nontonTV();
mobilku.hidupkanMobil();
mobilku.matikanMobil();
mobilku.ubahGigi();

}

}


1 comment:

terima kasih anda sudah mengisi form komentar