Oleh:
Azizah Tri Novanti 170533628613
Private adalah acces modifier yang paling ketat. private artinya method dan
variabel hanya dapat diakses oleh class yang sama. Variabel instance dengan
acces modifier private hanya dapat digunakan oleh method pada class yang
sama, namun tidak dapat dilihat atau digunakan oleh class atau objek lainnya.
Method private dapat dipanggil oleh method lainnya di dalam class yang sama
namun tidak bisa dipanggil oleh class lainnya. Sebagai tambahan baik method
atau variabel private tidak bisa di wariskan atau inherited kepada subclass-nya.
Dua hal yang mendasar dalam enkapsulasi adalah adanya data yang
disembunyikan dan bagaimana cara untuk mengakses data tersebut. Information
hiding adalah proses menyembunyikan informasi dari suatu class sehingga
informasi tersebut tidak dapat diakses dari luar dengan cara memberikan
modifier “private” ketika mendeklarasikan attribute atau method. Interface to
access data adalah cara melakukan perubahan terhadap attribute yang telah
disembunyikan. Caranya yaitu dengan membuat interface berupa method untuk
menginisialisasi atau merubah nilai dari attribute tersebut.
System.out.println("\n\tJumlah Penumpang
Awal");
busMini.cetak();
busMini.penumpang = busMini.penumpang - 3;
System.out.println("\n\tJumlah Penumpang
Setelah Dikurang 3");
busMini.cetak();
busMini.penumpang = busMini.penumpang + 9;
System.out.println("\n\tJumlah Penumpang
Setelah Ditambah 9");
busMini.cetak();
}
}
Hasil Program :
Penjelasan :
Pada program diatas, menjalankan dua source code yaitu class Bus1 dan
class UjiBus1. Proram ini tidak menerapkan enkapsulai dikarenakan
penggunaannya masih umum. Dapat dilihat bahwa terdapat modifier public
untuk mendeklarasi penumpang yang mana modifier ini dapat dipanggil
dimana saja. Kemudian terdapat method public void cetak() yang
digunakan untuk menampilkan banyak penumpang dan jumlah maksimal
penumpang yang bisa ditampung oleh mini bus. Pada class UjiBus1
terdapat void main agar program tersebut dapat dieksekusi. Didalamnya
terdapat pemanggilan variable dari class Bus1 dengan membuat objek
baru yaitu Bus1 busMini = new Bus1();. Karena program ini tidak
menerapkan enkapsulasi, maka programmer dapat mengubah nilai dan
menampilkannya pada class yang lain tanpa ada batasan. Sehingga, ketika di
class Bus1 hanya diketahui penumpang=5 , di class lain dapat diubah
seperti menambahkan penumpang dan langsung mencetaknya. .
2. Nama Program : Program dengan penerapan enkapsulasi
Source Code :
class Bus2
{
private int penumpang=0;
private int maxPenumpang=40;
System.out.println("\n\tJumlah Penumpang
Setelah Ditambah 20");
busBesar.addPenumpang(20);
busBesar.cetak();
System.out.println("\n\tJumlah Penumpang
Setelah Dikurang 3");
busBesar.addPenumpang(-3);
busBesar.cetak();
System.out.println("\n\tJumlah Penumpang
Setelah Ditambah 17");
busBesar.addPenumpang(17);
busBesar.cetak();
System.out.println("\n\tJumlah Penumpang
Setelah Ditambah 9");
busBesar.addPenumpang(9);
}
}
Hasil Program :
Penjelasan :
class GajiPegawai
{
private double gajiKotor, pajak, gajiBersih;
publicprivate
class cetakGaji
double potongan = 75000;
{ private String nama = "Surya";
public static void main(String[] args)
{
public void setGaji(double gaji)//method mutator
GajiPegawai gaji = new GajiPegawai();
{
System.out.println("Nama Pegawai \t\t:
gajiKotor=gaji;
"+gaji.namaPegawai());
}
public void hitungPajak())//method mutator
{ gaji.setGaji(2500000);
System.out.println("\nGaji
pajak=0.2*gajiKotor; Kotor \t\t:
"+gaji.getGajiKotor());
}
public void hitungGaji())//method mutator
{ gaji.hitungPajak();
System.out.println("\nPajak Pegawai \t\t:
gajiBersih=gajiKotor-pajak-potongan;
"+gaji.getPajak());
}
public String namaPegawai())//method accessor
{ System.out.println("\nPotongan yang didapat :
return nama;
"+gaji.getPotongan());
}
publicgaji.hitungGaji();
double getGajiKotor()//method accessor
{ System.out.println("\nGaji Bersih \t\t:
return gajiKotor;
"+gaji.getGajiBersih());
}
}}
public double getPajak()//method accessor
{
return pajak;
}
public double getPotongan()//method accessor
{
return potongan;
}
public double getGajiBersih()//method accessor
{
return gajiBersih;
}
}
Hasil Program :
Penjelasan :
Program diatas merupakan program menghitung gaji pegawai yang
menerapkan konsep enkapsulasi. Pada class GajiPegawai terdapat
deklarasi gajiKotor, pajak, gajiBersih yang bertipe data double dan
dimodifier private. Hal ini menandakan bahwa adanya penerapan
enkapsulasi. Selain itu terdapat juga potongan = 75000 yang dideklarasi
sama dengan sebelumnya dan nama = "Surya" bertipe data String serta
modifiernya adalah private. Program ini juga menerapkan method setter
dan getter yang digunakan untuk membatasi program yang hanya bisa
digunakan untuk mengubah nilai saja, atau menampilkan nilai saja, atau
mengubah serta menampilkan nilai. Apabila program setter maka nilai pada
variable dapat diubah seperti pada script public void setGaji(double
gaji). Dari script tersebut double gaji merupakan nilai variable yang
akan diisi atau diubah kemudian disimpan pada variable gajiKotor.
Berbeda dengan getter, getter hanya menampilkan variable yang ditetapkan
namun juga bisa menampilkan hasil dari setter tadi. Contohnya adalah
public String namaPegawai() dimana method tersebut hanya akan
menampilkan nama pegawainya dan nilai tersebut tidak dapat diubah.
Adapula public double getGajiKotor() yang menampilkan hasil dari
perubahan nilai yang telah diubah. Pada class cetakGaji menampilkan
public static void main(String[] args) untuk mengeksekusi
program sehingga dapat berjalan. Didalam class tersebut terdapat objek yang
dibuat bernama gaji yang digunakan untuk menunjuk method yang akan
ditampilkan atau yang akan diubah nilainya.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Hasil Program :
Penjelasan :
Program diatas adalah program untuk membuat button dimana terdapat
tombol untuk membuka objek lain. Sebelum membuat class harus
mengimport terlebih dahulu class dari JFrame dan JButton yaitu import
javax.swing.JFrame; dan import javax.swing.JFrame;. kemudian
membuat class dengan nama class CreateButton lalu pada public
static void main(String[] args) membuat objek baru untuk
membuat frame JFrame frame = new JFrame(). Selain membuat objek
untuk frame juga membuat objek untuk button, yaitu JButton button =
new JButton("TOMBOL") diaman button tersebut diberi text “TOMBOL”.
Setelah itu frame diberi title “CREATE BUTTON” dan diset dengan
frame.setBounds(200,300,250,125) dimana koordinat x dan y
maksimal sampai 200 dan 300 serta memiliki panjang 250 dan lebar 125.
frame.add(button) adalah objek button diletakkan pada objek frame,
sehingga button akan tampil didalam frame yang telah dibuat sebelumnya.
button.setBounds(25,25,100,25)digunakan untuk mengeset ukuran
dari button itu sendiri, dimana koordinat maksimal x dan y adalah 25 dan
memiliki panjang 100 dan lebarnya 25.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnEvent.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnEvent)
{
JOptionPane.showMessageDialog(null,"Teks
dalam tombol : \n"+e.getActionCommand());
}
}
public static void main(String[] args)
{
TryButton frame = new TryButton();
}
}
Hasil Program :
Penjelasan :
Program diatas merupakan program membuat button dimana button tersebut
memiliki icon serta text dalam satu button. Sebelum membuat class terlebih
dahulu mengimport JButton pada package javax.swing dan import event
handling pada package java.awt. Setelah mengimport, buat class dengan
nama class TryButton. Kemudian terdapat implements ActionListener
yang digunakan untuk menerapkan event handiling dengan model listener
dimana model tersebut menghasilkan respon terhadap suatu peristiwa.
private JButton btnEvent yang berarti button tersebut menggunakan
modifier private agar tidak aksesnya dibatasi. Kemudian mendefinisikan
objek untuk membuat frame dengan JFrame frame = new JFrame();.
Mengatur ukuran dari frame tersebut menggunakan
frame.setBounds(200,200,300,200) dimana parameternya adalah
koordinat x dan y maksimal sampai 200 dengan panjang 300 dan lebar 200.
Lalu memberikan title pada frame yaitu frame.setTitle("TRY
System.out.println("\t\tDATA PEMBELI\n");
b.setPembeli("Rohma");
System.out.println("Nama Pembeli\t\t:
"+b.getNamapembeli());
b.setAlamat("Blitar");
System.out.println("Alamat\t\t\t:
"+b.getAlamatpembeli());
b.setPembelian(5);
System.out.println("Banyak Pembelian\t\t:
"+b.getPembelian());
System.out.println("\t\tLAPORAN PEMBELIAN\n");
System.out.println("Nama Pembeli\t\t:
"+b.getNamapembeli());
System.out.println("Alamat\t\t\t:
"+b.getAlamatpembeli());
System.out.println("Banyak Pembelian\t:
"+b.getPembelian());
b.hitungBayar();
System.out.println("Total Pembelian\t\t:
"+b.getTotal());
Hasil Program :
Penjelasan :
Program diatas merupakan program untuk pembelian buku, dimana data
buku yang akan dibeli tidak bisa diubah dan banyak pembelian dapat diubah
nilainya. Setiap variable dideklarasi dengan modifier private agar data
memiliki batasan akses. Program diatas menggunakan method accesor dan
mutator dimana method mutator hanya bisa menampilkan nilai dari variable
dan method accsesor dapat merubah nilai dari suatu variable. Pada public
class BeliBuku terdapat void main yang didalamnya terdapat objek untuk
menunjuk pada variable di class lain agar dapat dieksekusi.
b.cetakNilai(); merupakan objek yang menunjuk pada method
cetakNilai() yang akan menampilkan data buku yang terdiri dari
pengarang, judul buku, stok awal, dan harga buku.
b.setPembeli("Rohma"); merupakan objek yang menunjuk method
accessor sehingga nilai pada variable tersebut dapat diubah atau diisi
menjadi "Rohma". Kemudian untuk menampilkan hasil dari method
accessor tersebut, menggunakan b.getNamapembeli(). Apabila hanya
ingin menampilkan saja, maka hanya perlu memanggil method mutatornya
saja, seperti System.out.println("Nama Pembeli\t\t:
"+b.getNamapembeli());.
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnIcon.addActionListener(this);
btnInteraktif.addActionListener(this);
btnText.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnText)
{
JOptionPane.showMessageDialog(null,"Anda
telah menekan: "+e.getActionCommand());
}
}
public static void main(String[] args)
{
ThreeButtons frame = new ThreeButtons();
}
}
Hasil Program :
Penjelasan :
Program diatas menampilkan tiga button berbeda dimana button pertama
jika di klik akan muncul dialog message, kemudian button kedua terdapat
icon serta text pada buttonya dan button ketiga memiliki icon yang dapat
berubah iconnya jika pointer mouse diarahkan ke button tersebut. Sebelum
membuat class, terlebih dahulu mengimpot untuk package javax.swing dan
package java.swt.event. Lalu buat class dengan nama class ThreeButtons
Dimana class tersebut menerapkan event handling dengan metode listener.
Setiap button yang dideklarasikan memiliki modifier private agar button
dapat diakses sendiri sendiri. Setelah mendeklarasi objek untuk membuat
frame JFrame frame = new JFrame(); lalu membuat objek untuk button
btnText = new JButton("Button Text"); yang kemudian di masukkan
kedalam frame yang telah dibuat sebelumnya frame.add(btnText);.
Setelah button pertama selesai dibuat, kemudian mendeklarasi icon yang
akan dimasukkan pada button, Icon java1 = new
V. Kesimpulan
Kesimpulan yang didapat dari praktikum ini adalah :
1. Enkapsulasi adalah mekanisme untuk menyembunyikan atau memproteksi
suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar
system dan menyederhakan penggunaan system itu sendiri.
2. Ketika program menerapkan enkapsulasi, maka perhitungan atau perumusan
hanya dapat dilakukan di class itu sendiri, sedangkan pada class lain yang
digunakan untuk mengeksekusi program hanya berguna untuk pemanggilan
fungsi variabelnya saja.
3. Pada enkapsulasi terdapat method accesor dan method mutator dimana
method accesor hanya menampilkan nilai variable yang sudah diketahui saja
dan tidak bisa diubah. Sedangkan method mutator bisa mengubah nilai pada
variable atau mengisinya. Method mutator juga bisa ditampilkan dengan
memanggil method accesornya.
4. JButton merupakan class dari package javax.swing yang berguna untuk
membuat suatu komponen yang berupa tombol, dimana tombol tersebut
dapat berisi teks ataupun icon.
5. Untuk mengubah icon pada button ketika pointer mouse mengarah pada icon
tersebut menggunakan method setRolloverIcon(iconObjectName) dimana
sebelum method tersebut merupakan nama objek button kemudian diikuti
oleh method tersebut.
6. Event merupakan sinyal yang memberitahukan program bahwa sesuatu telah
terjadi. Event dapat digunakan untuk mengendalikan pernyataan atau blok
pernyataan mana yang harus dieksekusi. Event yang dipicu atau dihasilkan
akibat interaksi pengguna program, dapat ditanggapi atau diabaikan oleh
program itu sendiri.
7. Agar suatu event berarti, suatu program harus bisa dideteksi dan bereaksi
sesuai dengan event tersebut. Untuk mendeteksinnya, maka perlu adanya
event listener.