Enkapsulasi
Enkapsulasi merupakan salah satu konsep dari pemrograman berbasis objek (PBO) Java. Dimana Java memiliki lima macam konsep, yaitu :- Kelas (class)
- Abstraksi (Abstraction)
- Enkapsulasi/Pengkapsulan (Encapsulation)
- Polimorfisme, dan
- Inheritas.
Enkapsulasi memilik fungsi sebagai mekanisme untuk menyembunyikan informasi, ketika ada sesuatu akan merubah informasi yang bersangkutan, sesuatu itu harus melewati jalur yang di tentukan. Yang bertujuan kepada maintainability dan extensibility. Dimana maintainability memprediksi, segala sesuatu yang akan merubah informasi harus melalui jalur yang telah ditentukan. Dengan mengikuti jalur tersebut maka proses maintain nya lebih mudah. Dan Extensibilitiy berfungsi ketika sesuatu membuat info tidak bisa di update sesuai dengan prosedur yang ada, maka yang di lakukan adalah meng extend fungsional yang ada. Ini akan mudah ketika segala sesuatunya telah di “bungkus” .. pembungkusan inilah yang dinamakan encapsulation.
Dari sisi implementasi pada java, informasi yang akan di update nilainya dalam kasus di atas mengacu pada instance variable/field/class attribute/properties class (sama aja). Dan pembungkusnya dinamakan class. Procedure-procedure untuk mengupdate informasi tersebut tersimpan dalam method.
Dibawah ini saya akan menampilkan contoh program enkapsulasi beserta sedikit logikannya :
- Program dengan class andi
import java.io.*;
class andi{
public static void main(String[] args) throws Exception {
int keluar = 0;
do
{
DataInputStream a = new DataInputStream(System.in);
int pilih;
System.out.println("Selamat Mengenal Program Java Enkapsulasi");
System.out.println("Kami menyediakan 4 menu program Enkapsulasi Pada Java yang dapat anda pilih : \n");
System.out.println(" 1. Nama Kelompok");
System.out.println(" 2. Pengertian Enkapsulasi");
System.out.println(" 3. Program 1 \n");
System.out.println(" 4. Keluar");
System.out.print("Silahkan masukkan pilihan anda : ");
pilih = Integer.parseInt(a.readLine ());2. Program 2 dengan class kelompok
switch(pilih){
case 1:
System.out.println();
kelompok klmpk=new kelompok();
klmpk.daftar();
klmpk.reza();
klmpk.pita();
System.out.println();
break;
case 2:
pengertian def=new pengertian();
def.enkapsulasi();
System.out.println();
break;
case 3:
lingkaran roda=new lingkaran();
System.out.println("\nMenghitung Luas dan Keliling Lingkaran");
System.out.print("\nMasukkan Nilai Jari-jari lingkran yang anda miliki : ");
int r = Integer.parseInt(a.readLine ());
System.out.println("\nluas lingkaran* ");
System.out.println(roda.luas(r));
System.out.println("keliling lingkaran* ");
System.out.println(roda.keliling (r));
System.out.println();
break;
case 4:
keluar = 1;
break;
default:
System.out.println("Maaf ! Terjadi Kesalahan pada saat anda input, silahkan coba kembali");
System.out.println();
}
}while(keluar==0);
}}
class kelompok {
public void daftar(){
System.out.println("Daftar Kelompok : \n");
}
public void reza(){
System.out.println("1. Andi Shahreza Harahap \n 50410696 \n 2IA07 \n");
}
public void pita(){
System.out.println("2. Dwinita Puspitasari \n 52410222 \n 2IA07");
}
}
Logika
Dari dua program diatas, program di susun pada class berbeda dan file berbeda. Masing masing program di compile dahulu dan hanya pada program 1 class andi yang akan di jalankan. Program diatas saya menggunakan percabangan switch, sehingga pengeksekusi program harus memilih pilihan yang akan dijalankan, pada postingan kali ini saya hanya mengaktifkan pilihan nomer 1, dimana memiliki nama class kelompok.
Unsur enkapsulasi terdapat pada kedua program diatas ketika program satu di jalankan maka akan memanggil program 2 dengan memanggil nama classnya seperti "kelompok klmpk=new kelompok();".
Sumber
http://bengkeljava.posterous.com/encapsulation-enkapsulasi