Konsep OOP : Encapsulation

Walaupun banyak perdebatan tentang konsep-konsep penting dalam OOP (Object Oriented Programming), namun tidak dapat disangkal bahwa ada 3 konsep yang paling fundamental, yaitu: Encapsulation, Inheritance dan Polymorphism.

Dari pengalaman pribadi dan teman-teman yang baru berangkat dari latar belakang procedural programming menuju OOP dalam hal ini Java, ketiga konsep di atas adalah yang paling membingungkan.

Ada apa dengan encapsulation, inheritance dan polymorphism?

Pertama, mari kita lihat konsep encapsulation.

Perhatikan contoh berikut: Sebuah aplikasi yang di dalam suatu inputnya tidak boleh negatif. Misalkan aplikasi kasir, kasir tidak boleh memberikan input pembayaran berupa negatif sehingga kembalian = harga barang – (- pembayaran). Toko bisa ngutang T_T”. Kita sebagai programmer tentu sudah tahu tentang ini dan membuat sebuah pengendali, katakan if statement untuk mengatasinya.

public class Kasir {

public int pembayaran, kembalian, harga = 0;

// kode-kode untuk Kasir

void cekTransaksi() {

if (pembayaran < 0) {

System.out.println(”Tidak bisa ngutang”);

}

}

}

Apa yang terjadi jika variable pembayaran pada class Kasir digunakan untuk lima class, kita harus menulis lima statement if yang sama. Apa yang terjadi kalau kita berada dalam satu tim untuk mengembangkan sistem tersebut dan programmer lain perlu mengakses variable pembayaran tapi tidak mengerti tentang tanda negatif tadi. Apa yang terjadi kalau dalam salah satu kelas tersebut kita lupa menaruh statement if? Aplikasi tidak berjalan dengan semestinya, toko kita bangkrut dan kita menjadi pengangguran. Anak istri kita kelaparan. Istri kita terpaksa…(halah apaan sih, berlebihan)…

Untuk mengatasi masalah itu, kita perlu membungkus seluruh member dari class tersebut sehingga nilainya tidak bisa diubah menjadi yang tidak kita inginkan atau menyelipkan sebuah proses bisnis di dalamnya. Inilah fungsi encapsulation.

Encapsulation biasa dilambangkan dengan penggunaan accessor dan mutator, atau method get dan set. Penamaan method menggunakan konvensi JavaBeans. Dinamakan accessor (get) karena ia hanya mengambil tanpa mengubah state dari member tersebut dan dinamakan mutator (set) karena ia mengubah state dari member tersebut. Method-method ini dideklarasi sebagai public sedangkan variable dideklarasi sebagai private.

Contoh class Kasir yang diperbaharui:

public class Kasir {

private int pembayaran = 0;

public int getPembayaran {

return pembayaran;

}

public void setPembayaran (int inputBayar) {

if (inputBayar <0) {

System.out.println(”Tidak bisa ngutang”);

}

else {

pembayaran = inputBayar;

}

}

}

Dengan ini, aplikasi kita akan lebih aman dan toko kita bebas dari utang -_-”

Regards,

Orang Iseng Banget Karena DotA Udah Didelete, SKom, SCJP

Advertisement

~ by MenujuTKP on November 4, 2008.

3 Responses to “Konsep OOP : Encapsulation”

  1. Pertamax! yay!
    Nice info nih.
    Ditunggu ya tutorial java berikutnya…

  2. hallo,

    mana terusannya Gan :)

  3. [...] view plaincopy to clipboardprint? [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.