Laman

10 Nov 2016

Enkapsulasi, Constructor, Overloading Constructor

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

loading...
artikel kejuruan

No comments:

Post a Comment

Search Post