Pada penggunaan private kita dapat menyembunyikan information dari suatu class sehingga anggota-anggota class tersebut tidak dapat diakses dari luar. Adapun caranya adalah cukup dengan memberikan akses kontrol private ketika mendeklarasikan suatu atribut atau method. Contoh:
private int nrp;
Enkapsulasi
Encapsulation (Enkapsulasi) adalah suatu cara untuk menyembunyikan implementasi detail dari suatu class. Enkapsulasi mempunyai dua hal mendasar, yaitu:
- information hiding
- menyediakan suatu perantara (method) untuk pengaksesan data
Contoh:
public class Siswa {
private int nrp;
public void setNrp(int n) {
nrp=n;
}
}
Constructor
Constructor (konstruktor) adalah suatu method yang pertama kali dijalankan pada saat pembuatan suatu obyek. Konstruktor mempunyai ciri yaitu:
- mempunyai nama yang sama dengan nama class
- tidak mempunyai return type (seperti void, int, double, dan lain-lain)
Contoh:
public class Siswa {
private int nrp;
private String nama;
public Siswa(int n, String m) {
nrp=n;
nama=m;
}
}
Suatu class dapat mempunyai lebih dari 1 konstruktor dengan syarat daftar parameternya tidak boleh ada yang sama. Contoh:
public class Siswa { private int nrp; private String nama;
public Siswa(String m) {
nrp=0;
nama=””;
}
public Siswa(int n, String m) {
nrp=n;
nama=m;
}
}
Contoh Program
Percobaan 1 : Melakukan enkapsulasi pada suatu class
Mahasiswa
+ nrp : int
+ nama : String
+ Mahasiswa(nrp : int, nama : String)
Jika enkapsulasi dilakukan pada class diagram di atas, maka akan berubah menjadi:
Mahasiswa
- nrp : int
- nama : String
+ Mahasiswa(nrp : int, nama : String)
+ getNrp() : int
+ getNama(): String
+ setNrp(nrp : int)
+ setNama(nama : String)
Percobaan 2 : Melakukan overloading constructor
Mahasiswa
- nrp : int
- nama : String
+ Mahasiswa()
+ Mahasiswa(nama : String)
+ Mahasiswa(nrp : int, nama : String)
Dari class diagram tersebut, dapat diimplementasikan ke dalam program sebagai berikut:
public class Mahasiswa { private int nrp; private String nama;
public Mahasiswa() {
nrp=0;
nama=””;
}
public Mahasiswa(String nama) {
nrp=0;
this.nama=nama;
}
public Mahasiswa(int nrp, String nama) {
this.nrp=nrp;
this.nama=nama;
}
}
Latihan
Mengimplementasikan UML class diagram dalam program untuk class Kalender
Kalender
+ tanggal : int
+ bulan : int
+ tahun : int
+ Kalender(tanggal : int)
+ Kalender(bulan : int, tahun : int)
+ Kalender(tanggal : int, bulan : int, tahun : int)
public class TesLatihan {
public static String getTime(Kalender kal) { String tmp;
tmp=kal.getTanggal() + "-" +
kal.getBulan() + "-" +
kal.getTahun();
return tmp;
}
public static void main(String args[]) { Kalender kal=new Kalender(8); System.out.println("Waktu awal : " + getTime(kal)); kal.setTanggal(9);
System.out.println("1 hari setelah waktu awal : " +
getTime(kal));
kal=new Kalender(6,2003);
System.out.println("Waktu berubah : " + getTime(kal));
kal.setBulan(7);
System.out.println("1 bulan setelah itu : " + getTime(kal));
kal=new Kalender(20,10,2004);
System.out.println("Waktu berubah : " + getTime(kal));
kal.setTahun(2005);
System.out.println("1 tahun setelah itu : " + getTime(kal));
}
}
Lakukan kompilasi pada program diatas dan jalankan. Jika tampilan di layar tampak seperti dibawah ini, maka program anda sudah benar. Jika tidak sama, benahi kembali program anda.
Waktu awal : 8-1-2000
1 hari setelah waktu awal : 9-1-2000
Waktu berubah : 1-6-2003
1 bulan setelah itu : 1-7-2003
Waktu berubah : 20-10-2004
1 tahun setelah itu : 20-10-2005
0 Comments