Username Password

Lost Password
View Thread
Explore Your Brain » Pemrograman » Java
Inheritance di Java
Username
Password
Register FAQ Members List Today's Posts Search

Print Thread

03-07-2009 01:33 PM Inheritance di Java
User Avatar

insomniacz
Genin


Posts: 50
Joined: 29.06.09
Yeah......, dalam pertemuan ini kita akan membahas tentang Inheritance atau jika diartikan kedalam bahasa Indonesia adalah pewarisan('hehee :-P ternyata saya bisa bahasa inggris juga. Bodoh !!! seperti itu saja sudah sombong !! ').

Inheritance

Inheritance atau pewarisan adalah suatu keharusan yang dimiliki di dalam pemrograman berorientasi objek. Dimana, dengan adanya mekanisme pewarisan ini, maka kita tidak perlu menuliskan kode program dari awal, cukup menuliskan spesifikasi dari class tersebut. Di dalam pemrograman berorientasi objek dikenal dengan sebutan Reuse of code dapat diartikan penggunaan kembali code yang telah dibuat. Dapat pula diartikan inheritance adalah suatu mekanisme yang mengizinkan pembuat program menciptakan class baru berdasarkan class yang sudah ada, tetapi tidak perlu menulis dari nol.

Didalam inheritance terdapat isitilah superclass dan subclass. Superclass adalah class induk atau class orang tua, sedangkan subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass. Untuk melakukan pewarisan / inheritance sebuah class, kita harus menggunakan kata kunci extends. Untuk lebih jelasnya anda dapat melihat contoh program di bawah ini :


class A {
int a = 10;
public void cetakA() {
System.out.println(“a : “ + a);
}
}




class B extends A {
int b = 20;
public static void main(String[] args) {
B bB = new B();
bB.cetakA();
System.out.println(“b : “ + bB.b);
}
}

Walaupun contoh program diatas terlihat sangat sederhana, tapi konsep reuse of code telah kita gunakan. Dimana di class A, kita mendeklarasikan property/variabel a bertipe data int yang bernilai 10, dan juga method cetakA untuk menampilkan nilai property a tersebut. Di dalam class B kita mendeklarasikan property b bertipe data int yang bernilai 20, karena class B merupakan turunan dari class A maka kita dapat mengakses property serta method yang dimiliki oleh class A.

Kata kunci super

Kata kunci super digunakan untuk mengakses variabel/property ataupun method yang dideklarasikan di superclass yang memiliki kesamaan di subclass. Untuk lebih jelasnya anda dapat melihat contoh program di bawah ini :

class SuperClass {
int a = 10;
void methodA() {
System.out.println(“Nilai a di SuperClass : “ + a);
}
}

class SubClass extends SuperClass {
int a = 20;
void methodA() {
System.out.println(“Nilai a di SubClass : “ + a);
}
}

class AksesClass {
public static void main(String[] args) {
SubClass sub = new SubClass();
sub.methodA();
}
}

Dari contoh program di atas, yang tercetak di standard output adalah property dari class SubClass. Disinilah peranan kata kunci super, jika kita ingin mengakses property di class SuperClass, maka program yang diatas akan seperti di bawah ini :

class SuperClass {
int a = 10;
void methodA() {
System.out.println(“Nilai a di SuperClass : “ + a);
}
}

class SubClass extends SuperClass {
int a = 20;
void methodA() {
super.methodA();
System.out.println(“Nilai a di SubClass : “ + a);
}
}
class AksesClass {
public static void main(String[] args) {
SubClass sub = new SubClass();
Sub.methodA();
}
}


Method Overriding

Dari contoh program di atas kita juga telah melakukan method overriding, dimana di class SubClass kita mendeklarasikan methodA() yang juga kita deklarasikan di class SuperClass. Untuk mengaksesnya tidak ada cara lain selain menggunakan kata kunci super. Yang anda harus ingat adalah overloading dan overriding tidaklah sama, jika overloading nama method sama namun parameternya haruslah berbeda, sedangkan overriding nama method serta parameternya haruslah sama seperti yang dimiliki oleh superclass.

Kata kunci final

Penggunaan kata kunci final berguna agar :
- Variabel bersifat konstan, contoh :
final int a = 10;
karena bersifat final variabel harus langsung diberikan nilai

- Membuat method tidak dapat di-override, contoh
final void methodA() {

dengan memakai kata kunci final maka subclass yang ingin mendeklarasikan method seperti yang telah dideklarasikan di superclass, maka akan terjadi kesalahan

- Membuat suatu class tidak dapat diturunkan ke class yang lain, contoh :

final class A {
}
// ini akan menyebabkan kesalahan, karena class A bersifat final
class B extends A {
}

abstract class

Abstrak class atau class abstract merupakan salah satu fasilitas yang disediakan oleh Java untuk membuat suatu class yang didalamnya berisi method yang tidak diimplementasikan kegunaannya. Class abtrak sesungguhnya hampir sama dengan class yang telah kita buat sebelumnya, namun kita tidak bisa membuat instance / objek dari class abstrak tersebut. Untuk lebih jelasnya anda dapat melihat contoh program di bawah ini :




abstract class Manusia {
abstract void jenisKelamin();
abstract void usia();
public void info() {
System.out.println(“Ini class abstrak Manusia”);
}
}

Kita lihat contoh class abstrak di atas, bahwa untuk membuat sebuah class abstrak kita harus menggunakan kata kunci abstract di depan kata kunci class. Dari contoh diatas, kita juga dapat menyimpulkan bahwa class abstrak dapat berisi method yang bersifat abstrak atau tanpa implementasi dan juga method yang memiliki implementasi. Hal-hal yang harus diingat dalam mendeklarasikan class abstrak :

- harus diawali dengan kata kunci abstract
- method yang tidak memiliki implementasi, harus diawali dengan kata kunci abstract
- class abstract tidak dapat dibuat instance / objek

Selanjutnya kita akan membuat sebuah class yang mengimplementasi method abstrak yang telah kita buat di class abstrak Manusia.

class Thomas extends Manusia {
void jenisKelamin() {
System.out.println(”Jenis Kelamin : laki-laki”);
}
void usia() {
System.out.println(“Usia : 21 “);
}
}
class AksesClassAbstrak {
public void main(String[] args) {
Thomas tm = new Thomas();
}
}

Dari contoh diatas kita dapat melihat bahwa class yang menggunakan class abstrak tersebut haruslah mengimplementasikan method abstrak yang terdapat di dalamnya. Jika class Thomas tidak mengimplementasikannya, maka class Thomas juga dianggap sebagai class abstrak. Begitulah cara yang digunakan jika ingin mengimplementasikan method abstrak.

Polymorhpism

Polymorphism merupakan salah satu aspek yang harus dimiliki oleh bahasa pemrograman yang berorientasi objek. Polymorhpisme dapat diartikan kemampuan melakukan hal berbeda dengan suatu cara yang sama. Untuk lebih jelasnya, anda bisa melihat contoh program di bawah ini :

class Penyanyi {
public void data() {
System.out.println(“aku adalah penyanyi”);
}
class Krisdayanti extends Penyanyi {
public void data() {
System.out.println(“aku adalah krisdayanti”);
}
}
class BungaCitraLestari extends Penyanyi {
public void data() {
System.out.println(“aku adalah bunga citra lestari”);
}
}
class Polymorphisme {
public static void main(String[] args) {
Penyanyi p;
Krisdayanti kd = new Krisdayanti();
BungaCitraLestari bcl = new BungaCitraLestari();
p = kd; p.data();
p = bcl; p.data();
}
}

Kita lihat contoh di atas bahwa variabel objek yang diwakili oleh huruf p dari superclass yaitu class Penyanyi dapat mengakses method data yang dimiliki oleh subclass. Hasil eksekusi sesuai isi dari method masing-masing subclass. Inilah konsep polymorphisme dalam pemrograman berorientasi objek. Walaupun contoh diatas terlihat sederhana, tapi konsep polymorphisme telah kita terapkan.

Bagaimana, apakah anda sudah memahami konsep inheritance di java? Jika belum teruslah mencoba hingga mengerti. Kiranya, cukup sekian pembahasan tentang inheritance.
Akhir kata, dengan segala kerendahan hati dan kebodohan diri saya mohon maaf jika terdapat banyak kekurangan. Maklum saya hanya manusia yang lemah otak. Semoga dapat bermanfaat untuk anda.


'Setiap orang punya jalan masing-masing
dalam berjuang menempuh kerasnya kehidupan'.
'Yang paling penting jangan pernah menyerah,
kejar terus pelangi hingga ke ujung cakrawala'.

Romi Satria Wahono
( Founder Ilmu Komputer.com )




Thank’s to :

- My God Allah SWT, Kasih SayangMu Takkan Pernah Dapat Kuhitung
- My PC, Maafkan Aku Yang Telah Memaksamu Untuk Beroperasi Walau Dalam Keadaan Sekarat
- Dewi sang Matahari Malamku, maafkan aku yang menduakanmu dengan komputer


"Tolong dikoreksi jika ada kesalahan...."
 
Offline
Jump to Forum:
Forum powered by fusionBoard
Share this Thread
URL:
BBcode:
HTML:
Similar Threads
Thread Forum Replies Last Post
eBook Java Bahasa Indonesia – Aplikasi POS Berarsitektur Three Tier Menggunakan Swing, Hibernate, da E-Book 12 03-02-2014 22:21
Dasar Pemrograman Java - Chapter02 x Input Proses Output Java 2 01-05-2012 06:23
Dasar Pemrograman Java - Chapter01 x Requirement, Compile, Error & Run Java 3 01-04-2012 10:33
Konsep Mendasar Bahasa Java Java 5 24-01-2011 17:03
Software untuk Menjalankan Prpgram Java Java 5 17-12-2010 07:38
Copyright © 2007-2016