Tuesday, February 5, 2013

Encapsulation

Encapsulation adalah proses pengelompokan property dan method dengan memberikan hak akses kepada property dan method sehingga property hanya dapat di akses melalui method accessor dan tidak dapat di rubah tanpa melalui prosedur yang seharusnya yang diatur pada method mutator.

Berikut ini keuntungan dari prinsip encapsulation:
•Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
•Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
•Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya, sehingga dapat mengurangi kemungkinan bug.

Dalam OOP, Encapsulation di wujudkan dalam bentuk "class". Dalam sebuah class terdapat property dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier, access modifier terdiri dari private, protected, dan public.

private
memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.

protected
memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.

public
memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.
Contoh penggunaan dalam bahasa pemrograman Java:
    private String name;
    protected String address;
    public String getName(){...}

Dalam hal property dan method terdapat dua jenis yaitu static dan dynamic.
Static property dan method hanya dimiliki oleh class yaitu semua nilai dari static property dan method adalah sama dalam semua obyek, maka dari itu penggunaannya cukup dengan menggunakan class bukan obyek

    deklarasi:         public static String getStudentCount(){...}
    penggunaan:
        Student.getStudentCount();
   

Dynamic property adalah property dan method yang tergantung pada obyek yang dibentuknya sehingga penggunaannya membutuhkan obyek yang telah terbentuk. Secara default deklarasi property adalah dynamic sehingga tidak dituliskan (implisit)

   deklarasi:         public String getName(){...}
    penggunaan:
        Student s = new Student("Anna");
    s.getName();


No comments:

Post a Comment