Tutorial Java : Konsep Pemrograman Berorientasi Objek(OOP)
Sebagai contoh terdapat class Binatang. Class binatang sebagai blueprint dari seluruh binatang yang ada dibumi. Pada binatang terdapat atribut-atribut, misal atribut kaki, telinga, mata, ekor, umur, warna dan lainnya. Atribut pada OOP disebut juga sebagai variable. Pada binatang yang hidup dapat melakukan suatu gerak atau aktifitas yang disebut behavior(dalam OOP kita sebut Method).1. Class
Apabila bagan tersebut diatas kita konversi ke bentuk program berbasis OOP, maka class atau blueprint dari binatang sebagai berikut:
Class binatang
public class Binatang{ String nama; int kaki; String telinga; String mata; } |
Class Binatang adalah blueprint atau cetakan yang akan menghasilkan objek, dan binatang kucing, sapi, kuda, ayam, burung dan lain-lain adalah contoh objek.
Hasil dari blueprint yang berupa objek seperti kucing misalnya, masih dapat diturunkan menjadi objek-objek turunan. Dalam OOP yang kita kenal dengan inheritance.
Untuk lebih mendalami konsep OOP, perhatikan contoh program berikut ini:
Class Binatang(simpan dengan nama file Binatang.java)
public class Binatang{ //attribute object String nama; int kaki; String telinga; String mata; } |
Listing program dibawah ini digunakan untuk create, modifikasi, pemanggilan objek(simpan dengan nama MethodBinatang.java)
public class MethodBinatang{ public satic void main(String[] args){ //create object Binatang kucing = new Binatang(); //init objek kucing kucing.nama = “Anggora”; kucing.kaki = 4; kucing.telinga = “Panjang”; kucing.mata = “coklat”; //pencetakan atau pemanggilan atribut dari objek kucing. |
Hasil dari listing program diatas.
run: Jenis kucing : Anggora Kaki kucing : 4 Telinga kucing : Panjang Mata kucing : coklat BUILD SUCCESSFUL (total time: 0 seconds) |
2. Method
Method adalah aktifitas dari sebuah atau lebih objek, dimana aktifitas dari objek juga dapat diturunkan ke objek anaknya. Berbicara tentang method berarti kita bicara tentang kemampuan dari objek dalam melakukan aktifitasnya. Untuk objek yang sama dan dari turunan yang sama dapat memiliki perilaku yang berbeda. Sebagai contoh ada dua ekor anak kucing dengan induk yang sama, tetapi kucing yang lebih tua cenderung lebih friendly dengan manusia(sebagai contoh sikap adaptasi terhadap lingkungan). Bila objek diatas kita tambahkan method bahwa kucing memiliki kemampuan lari, lompat, mencakar dan bunyi.
Perhatikan contoh method berikut:
Nama file Binatang.java
//blueprint binatang public class Binatang{ //attribute object String nama; int kaki; String telinga; String mata; //mendefinisikan method |
Pemanggilan dan inisialisasi method
Nama file MethodBinatang.java
public class MethodBinatang{ public satic void main(String[] args){ //create object Binatang kucing = new Binatang(); //init objek kucing //pencetakan dengan memanggil method objek kucing. |
Hasil dari listing program diatas.
run: Nama Binatang : Anggora Jumlah kaki : 4 Bentuk telinga : Panjang Warna mata : coklat BUILD SUCCESSFUL (total time: 1 second) |
3. Konstruktor
Dalam OOP terdapat istilah konstruktor, destruktor. Konstruktor adalah inisialisasi objek saat diciptakan sebagai persiapan yang diperlukan oleh suatu objek agar berfungsi dengan baik. Syarat suatu function disebut sebagai konstruktor(perancangan).
1.Nama konstruktor harus sama dengan nama class
2.Tidak menspesifikasikan tipe data yang dikirim, sebab konstruktor dapat berupa function tanpa parameter.
Perhatikan contoh konstruktor dari class binatang berikut.
Nama file Binatang.java
public class Binatang{ //blueprint binatang //attribute object String nama; int kaki; String telinga; String mata; //membuat konstruktor tanpa parameter //konstruktor dengan 1 parameter //konstruktor dengan 1 parameter //mendefinisikan method //method untukkonstruktor dengan satu parameter |
Tambahkan pemanggilan method ke-2, nama file methodBinatang.java
public class MethodBinatang{ public satic void main(String[] args){ //create object Binatang kucing = new Binatang(); //init objek kucing //pencetakan dengan memanggil method objek kucing. //pemanggilan method dengan satu parameter |
Hasil dari listing program diatas.
run: Nama Binatang : Anggora Jumlah kaki : 4 Bentuk telinga : Panjang Warna mata : coklat Method dengan satu parameter Hanya punya kaki : 1000 BUILD SUCCESSFUL (total time: 0 seconds) |
Pada OOP terdapat 3 sifat yang mendasar,yaitu Encapsulation, inheritance dan polymorphism. Apa maksud dari ketiga istilah tersebut.
1. Encapsulation
Pembungkusan suatu variable dan method pada suatu objek yang terlindungi. Selain itu pada encapsulation juga disediakan interface yang digunakan untuk mengakses variable yang ada didalam objek. Sebagai contoh kita semua tahu bahwa binatang kucing dan katak dapat berlari, tetapi kita tidak perlu mengetahui bangaimana cara kedua binatang tersebut berlari. Pada binatang katak untuk melarikan diri dengan melompat, hal ini berbeda dengan binatang kucing tetapi keduanya dapat berlari.
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 //pencetakan dengan memanggil method objek kucing. katak.nama = “Katak”; //pemanggilan method objek katak |
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) |
2. Inheritance(pewarisan)
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 //mendefinisikan method //method untuk konstruktor dengan satu parameter |
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){ |
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 //method dasar kemampuan kucing |
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) |
3. 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.