Tingkat Akses Data dan Method (Bagian 1) 1. Menentukan Tingkat Akses Data dan Method Dalam melakukan pembungkusan (encapsulation), sebenarnya kita menggabungkan data dan kode (method) menjadi satu. Pada situasi semacam ini, kita dapat menentukan akses dari data dan method tersebut mengguanakan kata kunci private dan public. Dalam PBO, data pada umumnya didesain untuk bersifat private atau hanya dapat diakses oleh kelas yang memilikinya saja. Pengaksesan data dari bagian luar hanya dapat dapat dilakukan melalui method-method yang ada. Ini artinya, method pada umunya bersifat public. Meskipun demikian, Java tetap menyediakan kemampuan apabila data dan method ingin ditentukan tingkat aksesnya sesuai dengan keperluannya. Public : berarti bahwa pengaksesan suatu data (variabel instan) atau method dapat dilakukan dari luar kelas. Private : berarti bahwa pengaksesan suatu data (variabel instan) atau method hanya dapat dilakukan di dalam kelas, tidak bisa diakses dari luar kelas. Secara umum, pembungkusan data dan method dari suatu kelas dapat dituliskan seperti berikut: classs namaKelas{ tingkat-akses data1; tingkat-akses data2; ... tingkat-akses dataN; tingkat-akses method1(daftar-parameter){ //kode untuk method1 } tingkat-akses method2(daftar-parameter){ //kode untuk method2 } ... tingkat-akses methodN(daftar-parameter){ //kode untuk methodN } } Contoh 1 : class Siswa{ private String nama; void isiData(String name){ nama = name; } String ambilNama(){ return nama; } } public class PenentuAkses{ public static void main(String[] args){ Siswa siswa1 = new Siswa(); siswa1.isiData("Asti Damayanti"); System.out.println("Nama siswa1.ambilNama()); via method: " + System.out.println("Nama siswa1.nama); } } via variabel: " + Program ini akan menghasilkan error karena ketika “siswa1.nama” dipanggil sementara variabel instan nama aksesnya adalah private maka akan terjadi error di “Nama via variable : siswa1.nama”. Tabel 1.1 Perbedaan public dan private akses pada variabel Penentu Akses Keterangan Variabel dapat diakses pada semua kelas Public yang menggunakan kelas yang berisi variabel tersebut. Variabel hanya dapat diakses oleh methodPrivate method dalam kelas itu sendiri. Tabel 1.2 Perbedaan public dan private akses pada method Penentu Akses Keterangan Method dapat diakses oleh sembarang kelas. Public Method hanya dapat diakses oleh methodPrivate method dalam kelas yang sama. Contoh 2 : class Lingkaran{ private double radius; void isiJariJari(double r){ radius = r; } private double perolehPi(){ return 3.14; } public double perolehKeliling(){ return 2 * perolehPi() * radius; } } public class PenentuMethod{ public static void main(String[] args){ Lingkaran bulatan = new Lingkaran(); bulatan.isiJariJari(75); System.out.println("Keliling bulatan.perolehKeliling()); System.out.println("pi bulatan.perolehPi()); } = : " " + + } Program ini akan terjadi error karena ketika dipanggil “bulatan.perolehPi()” sementara method perolehPi() diberikan akses private maka akan terjadi error di “pi : bulatan.perolehPi()” Contoh 3 : class TingkatAkses{ int a; public int b; private int c; public void setC(int nilai){ c=nilai; } public int getC(){ return c; } } class DemoPublicDanPrivate{ public static void main(String[] args){ TingkatAkses obj = new TingkatAkses(); obj.a = 10; obj.b = 20; obj.setC(30); System.out.println("Nilai obj.a = " + obj.a); System.out.println("Nilai obj.b = " + obj.b); System.out.println("Nilai obj.c = " + obj.getC()); } }