Sabtu, 27 Maret 2010

Konsep Enkapsulasi dalam OOP

Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :

• Information hiding.

• Interface to access data.

 

Information hiding

Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.

 

Interface to access data

Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

 

Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi yang tidak sesuai pada object yang ada. Menyembunyikan elemen dari penggunaan sebuah class dapat dilakukan dengan pembuatan anggota yang ingin Anda sembunyikan secara private.

Contoh berikut menyembunyikan field secret. Catatan bahwa field ini tidak langsung diakses oleh program lain menggunakan method getter dan setter.

 

class Encapsulation {

private int secret; //field tersembunyi

public boolean setSecret(int secret) {

if (secret < 1 || secret > 100) {

return false; }

this.secret = secret;

return true;

}

public getSecret() {

return secret;

}

}

1. Accessor Methods

 

Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari class sebagai private. Namun, ada kalanya dimana kita menginginkan object lain untuk dapat mengakses data private. Dalam hal ini kita gunakan accessor methods.

Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static. Sebuah accessor method umumnya dimulai dengan penulisan get<namaInstanceVariable>. Method ini juga mempunyai sebuah return value.

Sebagai contoh, kita ingin menggunakan accessor method untuk dapat membaca nama, alamat, nilai bahasa Inggris, Matematika, dan ilmu pasti dari siswa.

Mari kita perhatikan salah satu contoh implementasi accessor method.

public class StudentRecord

{

     private String name;

     :

     :

   public String getName(){

      return name;

   }

}

dimana,

public - Menjelaskan bahwa method tersebut dapat diakses dari object luar class

String - Tipe data return value dari method tersebut bertipe String

getName - Nama dari method

() - Menjelaskan bahwa method tidak memiliki parameter apapun

Pernyataan berikut,

return name;

dalam program kita menandakan akan ada pengembalian nilai dari nama instance variable

ke pemanggilan method. Perhatikan bahwa return type dari method harus sama dengan

tipe data seperti data pada pernyataan return. Anda akan mendapatkan pesan kesalahan

sebagai berikut bila tipe data yang digunakan tidak sama :

StudentRecord.java:14: incompatible types

found : int

required: java.lang.String

return age;

^

1 error

Contoh lain dari penggunaan accessor method adalah getAverage,

public class StudentRecord

{

   private String name;

   :

   :

  public double getAverage(){

     double result = 0;

     result = ( mathGrade+englishGrade+scienceGrade )/3;

    return result;

  }

}

Method getAverage() menghitung rata – rata dari 3 nilai siswa dan menghasilkan nilai

return value dengan nama result.

 

2. Mutator Methods

 

Bagaimana jika kita menghendaki object lain untuk mengubah data? Yang dapat kita lakukan adalah membuat method yang dapat memberi atau mengubah nilai variable dalam

class, baik itu berupa instance maupun static. Method semacam ini disebut dengan mutator

methods. Sebuah mutator method umumnya tertulis set<namaInstanceVariabel>.

Mari kita perhatikan salah satu dari implementasi mutator method :

public class StudentRecord

{

   private String name;

   :

   :

   public void setName( String temp ){

     name = temp;

   }

}

dimana,

public - Menjelaskan bahwa method ini dapat dipanggil object luar class

void - Method ini tidak menghasilkan return value

setName - Nama dari method

(String temp) - Parameter yang akan digunakan pada method

Pernyataan berikut :

name = temp;

mengidentifikasi nilai dari temp sama dengan name dan mengubah data pada instance variable name.

Perlu diingat bahwa mutator methods tidak menghasilkan return value. Namun berisi beberapa argumen dari program yang akan digunakan oleh method.

0 komentar:

Poskan Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Lady Gaga, Salman Khan