BAB ENCAPSULATION ( Enkapsulasi ) Pokok bahasan : Tujuan Instruksional Umum : Menjelaskan apa arti bahasa pemograman Java dan tujuannya dan mencoba memahaminya dengan langsung praktek, dimana pemograman berorientasi pada objek yang saling berinteraksi dalam lingkungan kelas-kelas yang kita definisikan sendiri dan kelas-kelas standard Java. Tujuan Instruksional Khusus : Sebagai seorang programmer, kita terbiasa memandang suatu aplikasi ataupun kelas dan interface referensi (API) sebagai suatu modul yang terbungkus rapi. Kita tidak mengetahui detail implementasi (listing program) modul tersebut. Kita hanya perlu tahu variabel-variabel apa yang menjadi input dan output, serta bagaimana interaksi modul tersebut dengan dunia luar. Dunia luar adalah data, method, kelas, interface atau package lain yang mungkin akan berinteraksi dengan modul tersebut. Encapsulation yang bila diindonesiakan kurang lebih dibuat kapsul atau juga information hiding adalah kemampuan untuk menyembunyikan informasi atau membuka informasi yang ada didalamnya. Kemampuan mengakses informasi ini dalam java adalah dengan perintah public, protected dan private. Dan satu lagi yang tidak secara eksplisit atau dituliskan adalah default yang berarti tidak ditulis apa-apa. Default ( tidak ditulis ) Bisa digunakan pada kelas, method dan variabel. Kemampuan aksesnya bisa dilakukan didalam paket yang sama public Bisa digunakan pada kelas, method dan variabel. Kemampuan aksesnya bisa dilakukan didalam paket yang sama maupun diluar paketnya private Bisa digunakan pada method dan variabel. Kemampuan aksesnya adalah hanya untuk didalam kelasnya sendiri Tujuan dari pemberian variabel menggunakan private : http://www.mercubuana.ac.id Final void info() { System.out.println(“PI = “ + PI); } Merupakan contoh penerapan final pada metode. Dengan adanya penentuan final pada metode info() pada kelas Abc, maka metode ini tidak dapat ditimpa pada subkelas. Itulah sebabnya pendeinisian berikut pada kelas turunan Xyz akan menimbulkan kesalahan sewaktu kompilasi; Public void info() {// Akan menimbulkan kesalahan } // karena info() tidak dapat ditimpa Objek dalam kelas Suatu kelas juga dapat mendeklarasikan variabel instant yang memiliki kelas lain. sebagai contoh terdapat kelas sebagai berikut. Program : Koordinat.java Public class koordinat { Private int x; Private int y; Public koordinat (int x, int y) { This.x = x; This.y = y; } Public void ubahx (int x) { This .x = x; } Public void ubahy (int y) { This .y = y; } Public int ambil x() { Return this.y; } } Akhir program http://www.mercubuana.ac.id } Dalam tubuh konstruktor new digunakan untuk menciptakan dua buah objek berkelas koordinat dan secara berturut-turut disimpan pada variabel instan posisi1 dan posisi2. Selanjutnya, kelas garis padat menggunakan seluruh metode dalam kelas koordinat mengingat semua metode bersifat public. Namun, kelas garis tidak bisa mengakses variabel instant x dan y karena kedua variabel bersifat private. Metode info() menunjukan penggunaan metode bernama ambilx() dan ambily(). Pada program berikut menunjukan pemakaian kelas garis. Program : TesGaris.java Public class Tesgaris { Public static void main(String() args) { Garis grs = new Garis(20, 30, 100, 150); } } Akhir program Jika anda telah mengkompilasikan program di atas dan kemudian menjalankannya, akan diperoleh hasil seperti berikut: Hasil eksekusi: Koordinat pertama: 20, 30 Koordinat kedua: 100, 150 Penentu Abstract Java menyediakan suatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam kelas tetapi tidak disertai dengan definisinya. Metode seperti http://www.mercubuana.ac.id