Tutorial Java : Konsep Pemrograman Berorientasi Objek(OOP)

Bagian 1: Konsep Pemrograman Berorientasi Objek(OOP)
Istilah OOP dalam bidang programming bukan hal yang baru lagi. Lalu apa sebenarnya OOP itu. OOP atau Object Oriented Program adalah salah satu tehnik pemrograman dengan menciptakan class atau blueprint dari suatu objek. Class disini berfungsi sebagai dasar dari penciptaan object-object lain yang sejenis.

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.
System.out.println(“Jenis kucing : “+ kucing.nama”);
System.out.println(“Kaki kucing : “ +kucing.kaki);
System.out.println(“Telinga kucing : “+ kucing.telinga);
System.out.println(“Mata kucing : “+ kucing.mata);
}
}

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
void printDataBinatang(){
System.out.println(“Nama Binatang : “+ nama);
System.out.println(“Jumlah kaki : “+ kaki);
System.out.println(“Bentuk telinga : “+ telinga);
System.out.println(“Warna mata : “+ mata);
}
}

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
kucing.nama = “Anggora”;
kucing.kaki = 4;
kucing.telinga = “Panjang”;
kucing.mata = “biru”;

//pencetakan dengan memanggil method objek kucing.
printDataBinatang();
}
}

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
//biasanya digunakan sebagai init default variable
public Binatang(){
this.nama = “”;
this.kaki = 0;
this.telinga = “”;
this.mata = “”;
}

//konstruktor dengan 1 parameter
//disebut juga konstruktor overloading dan juga sebagai bentuk polymorphism
public Binatang(int param1){
this.kaki = param1;
}

//konstruktor dengan 1 parameter
//disebut juga konstruktor overloading
public Binatang(int param1){
this.kaki = param1;
}

//mendefinisikan method
void printDataBinatang(){
System.out.println(“Nama Binatang : “+ nama);
System.out.println(“Jumlah kaki : “+ kaki);
System.out.println(“Bentuk telinga : “+ telinga);
System.out.println(“Warna mata : “+ mata);
}

//method untukkonstruktor dengan satu parameter
void printDataBinatang(int param1){
System.out.println(“Method dengan satu parameter”);
System.out.println(“Hanya punya kaki : “+ kaki);
}
}

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
int param1;
param1 = 1000;
kucing.nama = “Anggora”;
kucing.kaki = 4;
kucing.telinga = “Panjang”;
kucing.mata = “biru”;

//pencetakan dengan memanggil method objek kucing.
Kucing.printDataBinatang();

//pemanggilan method dengan satu parameter
kucing.printDataBinatang(param1);
}
}

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
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)

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
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)

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.

Download :
Sumber :http://www.sampara.com/
  • Share/Bookmark
Filed under: Java, , , ,

Leave a Reply