Pilar Pertama yaitu , Inheritance atau pewarisan adalah kalimat yang pasti ada di dalam pemerograman berorientasi objek disebut juga dengan istilah reusable.
Ketika kita menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika menambahkan field instant dan method baru, maka pada saat itulah Anda bekerja dengan inheritance. Konsep ini merupakan konsep yang fundamental dalam orientasi objek dan harus digunakan dengan baik.
Ada beberapa macam Inheritance atau pewarisan yang ada di dalam OOP, diantaranya:
- Single Inheritance -
- Multiple Inheritance -
dalam penggunaan inheritance class Induk akan mewariskan semua atribut yang ia miliki sehingga class bawahnya akan memilki atribut yang sama dengan class induk, bahkan dapat memilki kebabasan untuk memilki atribut berbeda dengan class induknya berikut ilustrasi dalam php.
Pada OOP, sebuah objek dapat diwariskan atau diturunkan atribut/variable dan methodnya ke objek anak, dengan key extends. Pada bagian inheritance ini kita kenal beberapa istilah superclass dan subclass.
Superclass adalah objek induk dan subclass adalah objek turunan dari superclass. Sebagai contoh objek kucing kita sebut superclass dan objek turunan dari kucing misal kucing anggora, kucing hutan, kucing arab dan kucing-kucing lainnya kita sebut sebagai subclass.
Perhatikan contoh berikut :
File Binatang.java (sebagai blueprint)
public class Binatang {
String nama;
int kaki;
int km;
int kekuatanDengar;
String telinga;
String mata;
//konstruktor
public Binatang(){
nama = "";
kaki = 0;
kekuatanDengar = 0;
km = 0;
telinga = "";
mata = "";
}
//mendefinisikan method
public void pendengaranTelinga(int desible){
kekuatanDengar = kekuatanDengar + desible;
System.out.println("Kekuatan pendengar : "+ kekuatanDengar);
}
//method untuk konstruktor dengan satu parameter
public void jarakPandang(int jarak){
km = jarak;
System.out.println("Jarak pandang : "+ km);
}
}
File kucing.java(method turunan dari induk/Binatang)
public class kucing extends Binatang{
//method dari kucing hutan
public void warnaMata(String color){
System.out.println("Warna Mata Kucing Hutan "+ color);
}
public void panjangKuku(int cm){
System.out.println("Panjang Kuku Kucing Hutan "+ cm);
}
}
Penciptaan object dari kucing
File kucingHutan.java
public class kucingHutan {
public static void main(String[] args){
//create object
kucing kucingRumah = new kucing();
//panggil method objek kucing
kucingRumah.warnaMata("merah");
kucingRumah.panjangKuku(10);
//method dasar kemampuan kucing
kucingRumah.pendengaranTelinga(100);
kucingRumah.jarakPandang(500);
}
}
Hasil compile dan run
run:
Warna Mata Kucing Hutan merah
Panjang Kuku Kucing Hutan 10
Kekuatan pendengar : 100
Jarak pandang : 500
BUILD SUCCESSFUL (total time: 0 seconds)
Pilar Kedua ialah, Encapsulation Sebuah class yang baik tidak akan menyatakan/memperlihatkan semua informasi mengenai dirinya kepada pihak luar. Class yang baik akan memilah setiap informasi di dalam dirinya. Mana informasi yang tidak boleh diketahui pihak luar, mana informasi yang boleh diketahui pihak luar, mana data yang boleh diubah dari luar, mana data yang tidak boleh diubah, dan sebagainya.Untuk pemahaman lebih lanjut perhatikan contoh listing program berikut:
Pada contoh diatas untuk file Binatang.java tidak ada perubahan.
Listing file methodBinatang.java
public class methodBinatang{
public static void main(String[] args){
//create object
Binatang kucing = new Binatang();
Binatang katak = new Binatang();
//init objek kucing
kucing.nama = "Kucing";
kucing.kaki = 4;
kucing.telinga = "Panjang";
kucing.mata = "coklat";
//pencetakan dengan memanggil method objek kucing.
kucing.printDataBinatang();
katak.nama = "Katak";
katak.mata = "bulat";
katak.kaki = 4;
katak.telinga = "kecil";
//pemanggilan method objek katak
katak.printDataBinatang();
}
}
Hasil compile
run:
Nama Binatang : Kucing
Jumlah kaki : 4
Bentuk telinga : Panjang
Warna mata : coklat
Nama Binatang : Katak
Jumlah kaki : 4
Bentuk telinga : kecil
Warna mata : bulat
BUILD SUCCESSFUL (total time: 0 seconds)
Ada 2 langkah yang diperlukan untuk melakukan enkapsulasi:
1. Hak akses dari setiap field di dalam class tersebut diubah menjadi private.
2. Buatlah getter dan setter method sesuai dengan kebutuhan. Hak akses dari getter/setter method ini harus public agar dapat dipanggil dari luar class.
Pilar Ketiga adalah Polymorphis Polymorphism apabila diartikan menurut katanya berarti “banyak bentuk”. Ketika sebuah object menerima pesan, object tersebut pastilah mempunyai method untuk menanggapi pesan yang datang tersebut. Apabila suatu object tersebut merupakan turunan dari object laen maka object tersebut pasti akan menuruni semua sifat dari induknya, termasuk juga method-method yang ada.
Dalam hubungan induk dan anak ada sebutan superclass dan subclass, superclass sebagai class induk dan subclass sebagai class anak. Walaupun pesan datang dan ditanggapi oleh method yang sama dengan superclass namun behavior atau perilaku yang akan dilakukan subclass belum tentu sama dengan superclass nya.
Subclass dapat mendefinisikan sendiri sebuah perilaku yang akan dilakukannya, ini yang dimaksud dengan “banyak bentuk” atau polymorphism. Suatu objek yang sama dapat memiliki lebih dari satu bentuk atau perilaku. Sebagai contoh seekor kucing dalam menerima respon akan menggerakkan kaki depannya dan berlari.
Pada objek lain misal seekor katak dalam menerima respon akan melompat, hal ini terjadi pada objek yang sama tetapi dalam proses menerima respon memiliki tindakan yang berbeda.
Demikianlah Ketiga Pilar Object Oriented Programming untuk Pemrograman Java dari Kontributor kita Sri Utari . Thanks atas materinya , semoga bermanfaat !!
0 comments:
Post a Comment
Tim Gudang Materi mengharapkan komentar anda sebagai kritik dan saran untuk kami .. Hubungi kami jika anda mengalami kesulitan !