Konsep OOP : Encapsulation

Dari pengalaman pribadi dan teman-teman yang baru berangkat dari latar belakang procedural programming menuju object oriented programming (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, kasih 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.

Untuk mengatasi masalah itu, kita perlu membungkus seluruh member dari class tersebut sehingga nilainya tidak bisa diubah menjadi yang tidak kita inginkan. 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.

Jadi, mengerti tentang encapsulation?

Advertisement

1 thought on “Konsep OOP : Encapsulation”

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 )

Facebook photo

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

Connecting to %s