1.Pengertian
Enkapsulasi adalah
sebuah proses melakukan pemaketan pada sebuah data. Dengan enkapsulasi data
menjadi memiliki identitas. Enkapsulasi terjadi ketika sebuah protokol yang berada
pada lapisan yang lebih rendah menerima data dari protokol yang berada pada
lapisan yang lebih tinggi dan meletakkan data ke format data yang dipahami oleh
protokol tersebut.Enkapsulasi
menyembunyikan informasi detail dari suatu class.
Konsep
enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat
diakses sewaktu-waktu, sekaligus menjaga program tersebut. Dalam kehidupan
sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator,
dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus
listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula
sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui
bagaimana kinerja sistem perputaran generator, apakah generator berputar
kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem
perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah
menyala atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.
Dua hal yang mendasar dalam enkapsulasi
yakni :
a.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.
b.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.
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.
b.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.
Sedangkan
proses penguraian paket menjadi sebuah datagram disebut
dekapsulasi.Dekapsulasi merupakan kebalikan dari enkapsulasi. Enkapsulasi
menjalankan proses pembungkusan paket data sementara dekapsulasi memproses atau
membuka paket data tersebut. Prosesnya berbanding terbalik dengan enkapsulasi.
Enkapsulasi memiliki manfaat sebagai
berikut:
- Modularitas
Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.
- Information Hiding
Penyembunyian informasi yang tidak perlu diketahui objek lain.
- Modularitas
Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.
- Information Hiding
Penyembunyian informasi yang tidak perlu diketahui objek lain.
2.Problem
Dan Implementasi
Mencari gaji
bersih,potongan gaji serta pajak gaji dalam jangka sebulan masa kerja.
3/Diagram
UML
Enkapsulasi
|
+ main (In args :
String)
|
Penggajian
|
- gajipokok : double
|
-gajiSetelahPajak
: double
|
- pajakgaji :
double
|
+ gajiBersih : double
|
-potongan :
double
|
+setGaji(gaji) : double
|
+ hitungGaji : void
|
+getGajipokok : double
|
+ getGajiBersih: double
|
4. Coding
Program mencari gaji
bersih,potongan gaji serta pajak gaji dalam jangka sebulan masa kerja.
public class Enkapsulasi{
/*Main Method*/
public
static void main (String[] args){
//Membuat
dari kelas hitungGaji untuk suatu-
//pegawai,
dan memanggil method-methodnya
Penggajian pegawai = new Penggajian();
double
sg;
String
Nilai;
Nilai
= JOptionPane.showInputDialog("Masukkan Gaji");//Untuk menampilkan dialog yang berfungsi
untuk menginput sebuah nilai
sg =
Double.parseDouble(Nilai);
pegawai.setGaji(sg);
pegawai.hitungGaji();
System.out.println("\nBesar Gaji Bersih : "+
pegawai.getGajiBersih());//menampilkan
hasil gaji bersih
}
}
Ø Class Penggajian
/*Kelas Penggajian*/
class Penggajian {
//Mendeklarasikan variabel-variabel internal kelas
Penggajian.
private
double gajipokok, gajiSetelahPajak,pajakgaji;//data yang bertipe double
public
double gajiBersih; //data yang bertipe
double
private
double potongan = 100000; //data yang bertipe
double
//Method untuk mengeset variabel internal gaji
pokok.
public void setGaji(double gaji){
gajipokok = gaji;
}
//Method untuk menghitung gaji bersih.
public void hitungGaji(){
gajiSetelahPajak = gajipokok - (0.1 * gajipokok);
pajakgaji = (gajipokok*0.1);
gajiBersih
= gajiSetelahPajak - potongan;
System.out.println("\n*********TOTAL
GAJI PERBULAN********** ");
System.out.println("\nBesar Pajak Gaji : "+ pajakgaji);//Untuk menampilkan hasil dari Besar Pajak
Gaji
System.out.println("\nBesar potongan Gaji : "+ potongan); );//Untuk menampilkan hasil dari Besar
potongan Gaji
}
//Method yang mengembalikan gaji Pokok (Gaji
sebelum-
//ada pengurangan)
public double getGajipokok(){
return
gajipokok;
}
//Method yang mengmbalikan besar gaji bersih
public double getGajiBersih(){
return
gajiBersih;
}
}
5. Tampilan Program mencari gaji bersih,potongan gaji serta
pajak gaji dalam jangka sebulan masa kerja.
6.
Penjelasan
Tampilan Screenshot Program
Pada
gambar tersebut, ditampilkan hasil dari gaji bersih
perbulannya setelah dipotong dengan pajak gaji dan potongan gaji.Dengan
menginputkan gaji di dialog yang muncul maka program diatas akan menunjukkan
berapa gaji bersih perbulannya.Untuk mencetak hasil dari total gaji perbulan
setelah dipotong dengan besar pajak gaji dan besar potongan gaji digunakan rumus berikut :
-
Untuk pajak gaji : gajipokok - (0.1
* gajipokok)
-
Untuk potongan gaji : gajipokok*0.1
-
Untuk gaji bersih : Pajak - potongan
ijin copy gan
ReplyDelete