Twitter Delicious Facebook Digg Stumbleupon Favorites More

Sabtu, 19 Maret 2011

Konsep Encapsulation Pada Java

Encapsulation/Enkapsulasi merupakan cara menyembunyikan suatu proses dari sebuah system dalam rangka menyederhanakan pengaplikasian dari system tersebut dan menghindari ganguan dari system tersebut, atau memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi izin untuk mengkases keadaannya. Setiap objek mengkases interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

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

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.

0 komentar:

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Mahasewa - Premium Blogger Themes | Blogger Templates