[ HTML ] [ Java ] [ Bahasa C ]


Senin, April 15, 2019

Enkapsulasi Pada Java

Enkapsulasi didefinisikan sebagai pembungkusan data dalam satu buah unit. Enkapsulasi adalah mekanisme yang mengikat code dan data yang dimanipulasi secara bersamaan. Cara lain untuk berpikir mengenai enkapsulasi adalah upaya untuk melindungi (perisai proteksi) yang mencegah data untuk diakses oleh pihak luar.

satu, Secara teknis enkapsulasi menyembunyikan data atau variabel dari class lain dan hanya dapat diakses oleh anggota fungsi dari class itu sendiri yang telah dideklarasikan.
dua, Pada enkapsulasi, data dalam class tersembunyi dari class lainnya, yang juga dikenal dengan istilah data-hiding.
tiga, Enkapsulasi dapat dilakukan dengan cara pendeklarasian semua variabel dalam class sebagai private dan menuliskan method public pada class untuk mengatur dan mendapatkan nilai dari variabel yang tersimpan secara private tersebut seperti diperlihatkan pada ilustrasi gambar 1.

enkapsulasi pada bahasa pemrograman Java
Gambar 1 Enkapsulasi Java
sumber : geeksforgeeks.org

// Program java untuk

// mendemonstrasikan

// enkapsulasi.

public class Encapsulate

{

// Deklarasi variabel private

 

// Hanya dapat diakses oleh

// public method dari class.

private String idName;

private int idRoll;

private int idAge;

 

// Method get age untuk

// mengakses variabel private

// idAge.

public int getAge()

{return idAge;}

 

// Method get name untuk

// mengakses variabel private

// idName.

public String getName()

{return idName;}

 

// Method get roll untuk

// mengakses variabel private

// isRoll.

public int getRoll()

{return idRoll;}

 

// Method set age untuk

// mengakses variabel private

// idAge.

public void setAge( int newAge)

{idAge = newAge;}

 

// Method set name untuk

// mengakses variabel private

// idName.

public void setName(String newName)

{idName = newName;}

 

// Method set foll untuk

// mengakses variabel private

// idRoll.

public void setRoll( int newRoll)

{idRoll = newRoll;}

}


Pada program sebelumnya class EncaplulateDemo dienkapsulasi sebagai variabel yang dideklarasikan private. Method getAge(), getName(), getRoll() diatur sebagai tipe public, method ini digunakan untuk mengakses variabel yang telah dienkapsulasi. Method setter seperti setName(), setAge(), setRoll() juga dideklrasikan sebagai public dan digunakan untuk mengatur nilai dari variabel.

Program yang digunakan untuk mengakses variabel dari class EncapsulateDemo diperlihatkan sebagai berikut:

public class TestEncapsulation

 

public static void main (String[] args)

{

Encapsulate obj = new Encapsulate();

 

/* atur nilai dari variabel */

obj.setName("Sulaiman");

obj.setAge(19);

obj.setRoll(51);

  

/* menampilkan nilai dari variabel */

System.out.println("ID Nama: " 

+ obj.getName());

System.out.println("ID Usia: " 

+ obj.getAge());

System.out.println("ID Roll: " 

+ obj.getRoll());

  

// Mengakses nilai secara

// langsung ke variabel adalah

// tidak mungkin dalam

// enkapsulasi.

 

/* System.out.println("ID Roll: " + obj.idName); */  

}

 

}

Output:
ID Nama: Sulaiman
ID Usia: 19
ID Roll: 51

Keunggulan dari enkapsulasi:
satu, Data tersembunyi (data hiding): pengguna tidak mengetahui implementasi dasar dari class. Tidak mungkin bagi user untuk melihat nilai dari data yang disimpan pada variabel dalam class. Hal yang diketahui oleh user adalah nilai telah diatur melalui setter method dan variabel telah diinisialisasi dengan nilai tertentu.
dua, Meningkatkan fleksibilitas: programmer dapat membuat variabel dari class sebagai read-only atau write-only tergantung pada kebutuhan. Jika variabel dibuat dalam bentuk read-only maka method setter seperti setName(), setAge(), dan lain sebagainya harus dihilangkan. Pada contoh program sebelumnya jika ingin membuat program yang hanya bersifat write-only maka method getName(), getAge(), dan lain sebagainya harus dihilangkan.
tiga, Reusability: enkapsulasi juga meningkatkan reusability dan kemudahan perubahan menggunakan new requirement.
empat, Kemudahan pengujian kode program: enkapsulasi kode memudahkan proses pengetesan program untuk unit-unit programnya masing-masing.

Tidak ada komentar:

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D