Inheritance ( Pewarisan ) Pada Object Oriented Programming
Sebelum berbicara lebih jauh mengenai Konsep OOP Inheritance pada Pemrograman JAVA , terlebih dahulu kita akan mengenal terlebih dahulu mengenai konsep dasar dari OOP itu sendiri.
I. PEMROGRAMAN BERORIENTASI OBJEK
OOP kepanjangan dari Object Oriented Programming
atau biasa disebut dengan Pemrograman Berorientasi Objek . Paradigma
pada pemrograman yang berorientasi objek didasari oleh istilah object (
Objek ) dan class ( Kelas )
OBJECT ( OBJEK )
Pada
dasarnya semua benda yang ada di dunia nyata dapat dianggap sebagai
sebuah objek, nah Jika perhatikan lebih lanjut, pada dasarnya ada dua
karakteristik yang utama pada sebuah objek , yaitu setiap objek memiliki
atribut sebagai status yang kemudian akan disebut sebagai state. Dan
Setiap objek memiliki tingkah laku yang kemudian akan disebut sebagai
behaviour.
Sebagai contoh sederhana adalah : Manusia memiliki
state: umur, tinggi, berat dan sebagainya. Demikian pula manusia
memiliki behaviour: menua, meninggi, makan (menambah berat badan) dan
sebagainya. Dalam pemrograman JAVA state bisanya dikatakan sebagai
variabel dan behaviour adalah method.
CLASS ( KELAS )
Class
merupakan prototipe yang mendefinisikan variabel-variabel dan
method-method secara umum. Sedangkan objek pada sisi yang lain merupakan
instansiasi dari suatu kelas.
ATTRIBUTE
Atribut adalah data yang dapat membedakan antara satu obyek dengan obyek yang lain.
Contoh
untuk class mahasiswa terdapat obyek mahasiswa si A,dan obyek mahasiswa
si B. Yang membedakan antara obyek si A dan obyek si B adalah NIM-nya
yang merupakan Atribut dari obyek tersebut.
II. KONSEP PEWARISAN (INHERITANCE ) PADA OOPSebagai Informasi bahwa Ciri khas Pemrograman Berorientasi Objek ada tiga hal yaitu:
1. Enkapsulasi ( Pembungkusan )
2. Inheritance ( Pewarisan )
3. Polymorphism ( Perbedaan Bentuk )
A. PENGERTIAN PEWARISAN (INHERITANCE)
Konsep
inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat
mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class
dapat mempunyai class turunan.
Suatu class yang mempunyai class turunan dinamakan parent class
atau base class. Sedangkan class turunan itu sendiri seringkali disebut
subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang
dipunyai oleh parent class.
Karena suatu subclass
dapat mewarisi apa apa yang dipunyai oleh parent class-nya, maka member
dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga
apa-apa yang ia warisi dari class parent-nya.
Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya.
Dari
hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin
bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki
oleh binatang, demikian halnya juga macan , kucing, Paus dan Monyet
memiliki seluruh sifat yang diturunkan dari class mamalia.
Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan dalam class binatang saja.
Class
mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh
class binatang, karena sebagai class turunannya, ia akan mendapatkan
karakteristik dari class binatang secara otomatis. Demikian juga dengan
class macan, kucing, Paus dan monyet, hanya perlu mendefinisikan
karakteristik yang spesifik dimiliki oleh class-nya masing-masing.
Dengan
memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu
mendefinisikan karakteristik yang lebih umum akan didapatkan dari class
darimana ia diturunkan.
B. DEKLARASI PEWARISAN (INHERITANCE)
Deklarasi
yang digunakan adalah dengan menambahkan kata kunci extends setelah
deklarasi nama class, kemudian diikuti dengan nama parent class-nya.
Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin
melakukan perluasan class.
public class B extends A { … }
Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari class Object.
public class A extends Object { … }
C. KAPAN KITA MENERAPKAN INHERITANCE?
Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class
yang dapat diperluas dari class lain.
Misal terdapat class Pegawai public class Pegawai { public String nama; public double gaji; } Misal terdapat class Manager public class Manajer { public String nama; public double gaji; public String departemen; }
Dari
2 buah class diatas, kita lihat class Manajer mempunyai data member
yang identik sama dengan class Pegawai, hanya saja ada tambahan data
member departemen.
Sebenarnya yang terjadi disana adalah class
Manajer merupakan perluasan dari class Pegawai dengan tambahan data
member departemen.
Disini perlu memakai konsep inheritance, sehingga class Manajer dapat kita tuliskan seperti berikut :
public class Manajer extends Pegawai { public String departemen; }
D. KEUNTUNGAN INHERITANCE
1.
Subclass menyediakan state/behaviour yang spesifik yang membedakannya
dengan superclass, hal ini akan memungkinkan programmer Java untuk
menggunakan ulang source code dari superclass yang telah ada.
2.
Programmer Java dapat mendefinisikan superclass khusus yang bersifat
generik, yang disebut abstract class, untuk mendefinisikan class dengan
behaviour dan state secara umum.
E. ISTILAH INHERITANCE
Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
Superclass Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.
Subclass Subclass adalah class anak atau turunan secara hirarki dari superclass.
Super Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.
Methode Overriding Pendefinisian ulang method yang sama pada subclass
Dalam
inheritance, method overriding berbeda dengan method overloading. Kalau
method overriding adalah mendefinisikan kembali method yang sama, baik
nama method maupun signature atau parameter yang diperlukan dalam
subclass, kalau method overloading adalah mendefinisikan method yang
memiliki nama yang sama, tetapi dengan signature yang berbeda dalam
definisi class yang sama.
E. CONTOH LATIHAN INHERITANCE :
class Kotak{

by : http://mungjava.blogspot.com/2009/05/memahami-konsep-inheritance-pewarisan.html
0 komentar:
Posting Komentar