Pengertian Enkapsulasi dan Contoh Program Sederhananya

Pengertian Enkapsulasi dan Contoh Program Sederhananya 
Oleh : Rudy Eriyanto  56410268  dan Pulung Bagaskoro 55410416 (2IA14) 
Posted April 8, 2012

Pengertian Enkapsulasi
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni : Information hiding , Interface to access data.
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.
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 yang dinamakan dengan interface to access data.
Dalam enkapsulasi terdapat hak akses public, protected, dan private. Hak akses public memungkinkan semua kelas mengaksesnya, hak akses protected hanya diberikan kepada kelasnya sendiri dan turunannya, serta kelas-kelas dalam satu paket. Sedangkan private hanya boleh diakses oleh kelasnya sendiri.
Mengapa jika hak akses public pada konstruktor manusia di ganti dengan PRIVATE, program akan ERROR ? Private, adalah level proteksi untuk andi yang berada di dalam manusia. Si andi tidak boleh keluar dari manusia karena mempunya level proteksi paling tinggi. Dalam implementasinya, field dengan level proteksi private hanya dapat diakses di dalam class tersebut.
Dalam teori, dapatkah kita memberikan hak akses pada konstruktor??? Constructor berfungsi untuk menginisialisasi obyek dari class dan mempersiapkan ruang memory, sedangkan destructor menghapus dan membersihkan obyek ketika sudah tidak terpakai dan membebaskan memory yang tadinya terpakai. Constructor method merupakan method yang namanya sama dengan nama classnya dan bersifat public tapi tidak berjenis void ataupun non void. Constructor dapat menerima parameter namun tidak bisa mengembalikan nilai apapun.
Bagaimana solusi agar program dapat berjalan?? Konstruktor diubah menjadi protected atau public atau bisa juga menerapkan interface to access.
Program Sederhana
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}}

Leave a Reply