Pemahaman tentang OOP
OOP adalah teknik untuk membuat program objek, yaitu program yang tersusun dari kelas dan objek yang saling berhubungan.OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek.
Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan,dan polymorphism atau kebanyakrupaan.
Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.
Hubungan antar kelas/objek ini dapat dilihat baik saat program ditulis maupun saat program dieksekusi.
Karena OOP merupakan teknik pembuatan program, maka ada pendekatan yang digunakan. Ada aturan yang harus diikuti saat menyusun programnya, dan ada tools yang digunakan untuk menuliskan programnya.
Belajar OOP
Belajar OOP adalah belajar pemrograman, oleh karena itu ruang lingkup pembahasannya mencakup:
- Belajar ide atau pendekatan yang menjadi konsep dasar OOP.
- Belajar bagaimana menerapkan konsep dasar itu menjadi berbagai bentuk OOP.
- Belajar bahasa pemrograman yang akan digunakan untuk membuat berbagai bentuk OOP, seperti struktur program, sintaks penulisan, atau mekanisme eksekusi program.
- Belajar menggunakan tools bahasa pemrograman untuk menulis program, kompilasi, dan eksekusi.
- Belajar menemukan dan mengartikan kesalahan program, dan memperbaikinya.
- Belajar bagaimana mengimplementasi 1 s.d. 5 untuk membuat sebuah aplikasi yang utuh.
Tiga Pilar OOP
- Inheritance 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)
- 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.javapublic 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 compilerun:
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.
- 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.
Tidak ada komentar:
Posting Komentar