prog 12

advertisement
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
Download