Pemrograman Berorientasi Objek
(Bagian 1)
1. Konsep PBO
Pemrograman berorientasi
objek menjadikan objek sebagai komponen utama dalam program. Objek
menggabungkan data dan fungsi sebagai satu kesatuan, sedangkan pada pemrograman
yang tidak berorientasi objek, fungsilah yang menjadi perhatian utama.
Pendekatan PBO membuat pengembangan program dapat dilakukan dengan lebih mudah,
mengurangi duplikasi kode dan mengurangi kesalahan.
Pada PBO terdapat dua
istilah yang sangat terkenal yaitu kelas dan objek. Perbedaan kelas dan objek
dapat dijelaskan melalui analogi berikut:
Kelas itu seperti
cetakan kue. Kelas adalah cetakan untuk objek.
Seperti halnya cetakan
kue, sejumlah kue dapat diciptakan dengan menggunakan sebuah cetakan. Begitu
pula halnya dengan kelas. Dengan menggunakan sebuah kelas, sejumlah objek dapat
diciptakan. Seringpula dikatakan bahwa objek adalah instan kelas.
Masing-masing objek
dengan sendirinya memiliki variabel instan (data) dan method (perilaku) yang
disebutkan dalam kelas.
2. Kelas
Kelas dapat
didefenisikan sebagai kerangka yang mendefinisikan variabel-variabel (data) dan
method-method (perilaku) umum dari sebuah objek tertentu.
Dalam dunia pemrograman,
sebenarnya kelas tidak jauh berbeda dengan tipe data sederhana. Perbedaannya,
tipe data sederhana digunakan untuk mendeklarasikan variabel “normal”,
sedangkan kelas digunakan untuk mendeklarasikan sebuah variabel yang berupa
objek. Variabel yang berupa objek ini sering disebut dengan referensi objek (object reference).
Penting untuk diperhatikan
bahwa kelas masih bersifat abstrak. Pada saat kita membuat sebuah kelas baru,
berarti kita mendefinisikan tipe data baru. Sekali didefinisikan, maka tipe
data baru ini dapat digunakan untuk membuat suatu objek dari tipe tersebut.
Dengan kata lain, kelas adalah pola (template) untuk pembuatan objek, dan objek
adalah wujud nyata (instance) dari sebuah kelas. Sebagai contoh, manusia adalah
kelas, sedangkan objek dari kelas manusia adalah si Udin, Tono, Dewi, dan
lainnya. Kemudian data (variabel instan) disini seperti nama, tinggi dan berat
badan, bentuk sidik jari, bentuk rambut, dsb sedangkan manusia juga memiliki
perilaku (method) seperti: cara berjalan, cara bersuara, dsb.
Dalm Java, kelas
didefinisikan dengan menggunakan kata kunci class. Berikut ini bentuk umum yang digunakan untuk mendefinisikan
sebuah kelas:
class NamaKelas{
tipe
data1;
tipe
data2;
...
tipe
dataN;
tipe
namaMethod1(daftar-parameter){
//kode
untuk method1
}
tipe
namaMethod2(daftar-parameter){
//kode
untuk method2
}
...
tipe
namaMethodN(daftar-parameter){
//kode
untuk methodN
}
}
Contoh kelas sederhana:
class Kotak{
double panjang;
double lebar;
double tinggi;
}
3. Objek
Seperti yang telah
dikemukakan sebelumnya, pada saat kita mendefinisikan suatu kelas, kita hanya
membuat tipe data baru, bukan membuat objek baru. Untuk membuat objek baru dari
tipe kelas yang telah didefinisikan, secara eksplisit kita perlu melakukan dua
tahap yaitu pertama mendeklarasikan variabel yang akan menjadi referensi ke
sebuah objek dari kelas yang bersangkutan. Kedua, kita perlu menginstansiasi
kelas ke dalam variabel referensi dengan menggunakan operator new.
//Tahap pertama
Kotak k;
//Tahap kedua
k = new Kotak();
Atau biasanya bisa
langsung ditulis sebagai berikut:
Kotak k = new Kotak();
Contoh 1:
class Kotak{
double panjang;
double lebar;
double tinggi;
}
class VolumeKotak{
public static void
main(String[] args){
double volume;
Kotak k = new
Kotak();
k.panjang = 4;
k.lebar = 3;
k.tinggi = 2;
volume = k.panjang *
k.tinggi * k.lebar;
System.out.println("Volume
Kotak = " + volume);
}
}
Program ini disimpan
dengan nama DemoKotak1.java karena
class utama (main program) berada di class
DemoKotak1.
Contoh 2:
class Kotak{
double panjang;
double lebar;
double tinggi;
}
class DemoKotak3{
public static void
main(String[] args){
double
volume1,volume2;
Kotak k1 = new
Kotak();
Kotak k2 = new
Kotak();
k1.panjang = 4;
k1.lebar = 3;
k1.tinggi = 2;
k2.panjang = 4;
k2.lebar = 3;
k2.tinggi = 2;
volume1 = k1.panjang
* k1.tinggi * k1.lebar;
volume2 = k2.panjang
* k2.tinggi * k2.lebar;
System.out.println("Volume
Kotak 1 = " + volume1);
System.out.println("Volume
Kotak 2 = " + volume2);
}
}
4. Method
Berikut ini merupakan bentuk
umum dari pembuatan method di dalam kelas:
tipe namaMethod(daftar-parameter){
//kode yang akan
dituliskan
}
Tipe adalah tipe data
yang akan dikembalikan oleh method. Dalam Java, method terbagi dua: void dan non-void. Method void adalah method yang tidak mengembalikan nilai.
Sedangkan method non-void adalah method yang mengembalikan nilai. Bagi
programmer Pascal, method void cara kerjanya sama seperti sebuah prosedur dan
method non-void memiliki cara kerja seperti fungsi.
Apabila method void maka di dalam method tersebut
harus terdapat statemen return, yang diikuti dengan nilai yang akan
dikembalikan, sbb:
return nilai
nilai dapat berupa
konstanta maupun variabel, yang digunakan untuk menandakan nilai yang akan
dikembalikan oleh method.
Contoh 3:
class Kotak{
double panjang;
double lebar;
double tinggi;
void cetakVolume(){
System.out.println("Volume
Kotak = " + (panjang*lebar*tinggi));
}
}
class DemoKotak4{
public static void
main(String[] args){
Kotak k1 = new
Kotak();
Kotak k2 = new
Kotak();
k1.panjang = 4;
k1.lebar = 3;
k1.tinggi = 2;
k2.panjang = 5;
k2.lebar = 4;
k2.tinggi = 3;
k1.cetakVolume();
k2.cetakVolume();
}
}
Contoh 4:
class Kotak{
double panjang;
double lebar;
double tinggi;
double hitungVolume(){
double vol = panjang*lebar*tinggi;
return vol;
}
}
class DemoKotak5{
public static void main(String[] args){
Kotak k1 = new Kotak();
Kotak k2 = new Kotak();
k1.panjang = 4;
k1.lebar = 3;
k1.tinggi = 2;
k2.panjang = 5;
k2.lebar = 4;
k2.tinggi = 3;
System.out.println("Volume Kotak 1 = " +
k1.hitungVolume());
System.out.println("Volume Kotak 2 = " +
k2.hitungVolume());
}
}
Contoh 5:
class Kotak{
double panjang;
double lebar;
double tinggi;
void isiData(double p,
double l, double t){
panjang = p;
lebar = l;
tinggi = t;
} double hitungVolume(){
return
(panjang*lebar*tinggi);}}
class DemoKotak6{
public static void
main(String[] args){
Kotak k1 = new
Kotak();
Kotak k2 = new
Kotak();
k1.isiData(4,3,2);
k2.isiData(5,4,3);
System.out.println("Volume
Kotak 1 = " + k1.hitungVolume());
System.out.println("Volume
Kotak 2 = " + k2.hitungVolume());
}}
Tidak ada komentar:
Posting Komentar