Wednesday, April 25, 2012

Encapsulasi pada Java


Encapsulasi atau Pengkapsulan adalah cara “membungkus” data dan method yang menyusun kelas sehingga kelas dapat dipandang sebagai suatu modul dan menyembunyikannya dari dunia luar. Dunia luar disini adalah data, method, kelas, interface, atau package lain yang mungkin akan berinteraksi dengan modul tersebut. Dengan kata lain enkapsulasi adalah suatu cara untuk menyembunyikan implementasi detail dari suatu class.
Enkapsulasi mempunyai dua hal mendasar, yaitu :
1. 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.
2. 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.
Keuntungan menerapkan Encapsulasi adalah :
1. Bersifat independen
Suatu modul yang terencapsulasi dengan baik akan bersifat independen dari modul yang lainnya sehingga dapat digunakan pada bagian manapun dari program. Ia tidak akan terikat pada bagian tertentu dari program.
2. Bersifat transparan
Bila melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan juga oleh bagian program yang menggunakan modul tersebut.
3. Menghindari efek diluar perencanaan
Modul yang terencapsulasi dengan baik hanya akan berinteraksi dengan bagian program lainnya melalui variable-variabel input/output yang telah didefinisikan sebelunnya. Dengan demikian, akan mereduksi kemungkinan adanya hasil imbas pemrosesan yang di luar perencanaan semula.
4. Melindungi listing program
Saat program didistribusikan pada khalayak, untuk melindungi listing program. Anda dapat menerapkan prinsip enkapsulasi. Di sini pengguna hanya dapat menggunakan program melalui variable input atau output yang didefinisikan tanpa disertai bagimana proses yang terjadi di dalam modul tersebut.
Implementasi UML
Berikut ini kita akan coba untuk lebih memahami penggunaan konsep enkapsulasi dengan mengimplementasikan UML berikut :
UML Vehicle class tidak dengan hiding
BAHAN PRETEST –PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK
Vehicle class berisi atribut yang mempunyai modifier public(+), sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.
1. Accessor Methods
Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari class sebagai private. Namun, ada kalanya dimana kita menginginkan object lain untuk dapat mengakses data private. Dalam hal ini kita gunakan accessor methods. Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static. Sebuah accessor method umumnya dimulai dengan penulisan get. Method ini juga mempunyai sebuah return value. Contoh penggunaan accessor method adalah getAverage,
public class Studentrecord
{
private string name;
..
..
public double getAverage()
{
double result = 0;
result=(mathGrade+englishGrade+scienceGrade)/3;
return result;
}
}
Method getAverage() menghitung rata – rata dari 3 nilai siswa dan menghasilkan nilai return value dengan nama result
2. Mutator Method
Bagaimana jika kita menghendaki object lain untuk mengubah data? Yang dapat kita lakukan adalah membuat method yang dapat memberi atau mengubah nilai variable dalam class, baik itu berupa instance maupun static. Method semacam ini disebut dengan mutator methods. Sebuah mutator method umumnya tertulis set. Mari kita perhatikan salah satu dari implementasi mutator method :
public class StrudentRecord
{
private string name;
..
..
public void setNama (String temp)
{
nama = temp;
}
}
Dimana, public – Menjelaskan bahwa method ini dapat dipanggil object luar class void – Method ini tidak menghasilkan return value setName – Nama dari method (String temp) – Parameter yang akan digunakan pada method Pernyataan berikut : name = temp; mengidentifikasi nilai dari temp sama dengan name dan mengubah data pada instance variable name. Perlu diingat bahwa mutator methods tidak menghasilkan return value. Namun berisi beberapa argumen dari program yang akan digunakan oleh method

0 comments:

Post a Comment