Anda di halaman 1dari 35

LAPORAN MODUL III

PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK


“ENCAPSULATION”

Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek


Dibimbing oleh Heru Wahyu Herwanto, S.T., M.Kom.

Oleh:
Hanida Rahma Salimi 190533646884

S1 PTI ‘19 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Maret 2020
MODUL 3 – ENCAPSULATION

I. TujuanPraktikum
1. Menerapkan konsep encapsulation.
2. Menyembunyikan data.
3. Mengakses data yang disembunyikan.
4. Menggunakan class JButton dan melakukan mekanisme event handing.

II. DasarTeori
1. Konsep Enscapsulation
Encapsulation atau enkapsulasi adalah cara untuk menyembunyikan
informasi detail dari suatu class. Ada dua jenis method yang digunakan dalam
enkapsulasi, yaitu mutator method dan accessor method. Mutator method
digunakan untuk mengubah atau memberi nilai variabel pada class, baik berupa
instance maupun static, sedangkan accessor method digunakan untuk membaca
nilai variabel pada class, baik berupa instance maupun static.

Maksud dari encapsulation adalah membungkus class dan menjaga apa apa
saja yang ada didalam class tersebut, baik method ataupun atribut, agar tidak
dapat di akses oleh class lainnya. Untuk menjaga hal tersebut dalam
Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari :

a. Private =  memberikan hak akses hanya pada class itu sendiri, artinya apa-
apa saja yang ada di dalam class A baik itu method ataupun atribut hanya
bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya.

b. Public = memberikan hak akses kepada atribut atau method agar bisa
diakses oleh siapapun (property atau class lain diluar class yang
bersangkutan), artinya method atau atribut yang ada diclass A dapat diakses
oleh siapaun baik itu class A, class B dan seterusnya.
c. Protected = memberikan hak akses kepada class itu sendiri dan class hasil
turunannya (inheritance), artinya apa apa saja yang ada diclass A hanya bisa
diakses oleh class A sendiri dan class yang meng Extends class A. Namun
harus dipahami class lain yang berada dalam satu package dengan class A
mampu mengakses tipe data protected, Sedangkan yang tidak mampu
mengakses adalah class-class yang berada diluar package class A. untuk
dapat mengaksesnya, class yang berada diluar package class A harus meng
extends class A.

Enkapsulasi adalah sebuah peroses pemaketan / penyatu data bersama


metode – metodenya, dimana hal ini bermanfaat untuk menyembunyikan
rincian – rincian implementasi dari pemakai. Maksud dari enkampsulasi ini
adalah untuk menjaga suatu proses program agar tidak dapat diakses secara
sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat
penting dilakukan untuk menjaga kebutuhan program agar dapat diakses
sewaktu-waktu, sekaligus menjaga program tersebut. Dalam Java enkapsulasi
dapat dilakukukan dengan pembentukan kelas – kelas, menggunakan keyword
class.

Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus


listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus
listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran
generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita
tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah
generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula
dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik,
apakah menyala atau tidak.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah


program dari akses ataupun intervensi dari program lain yang
mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat
dengan konsep dan rencana yang sudah ditentukan dari awal.

Tipe public dan private mempunyai fungsi yang berbeda.


Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan
nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang
menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

Di dalam Java, pengkapsulan dapat dilakukan dengan pembentukan kelas-


kelas menggunakan keyword class. Sedangkan penyembunyian informasi dapat
dilakukan dengan pengendalian terhadap pengaksesan pembentuk kelas dengan
keyword-keyword untuk kendali pengaksesan default, private, protected, dan
public. Penyembunyian informasi deilakukan dengan implementasi penerapan
kendari menggunakan keyword private dan protected pada elemen data.

Ada 2 manfaat utama dari encapsulation yaitu :


1. Penyembunyian Informasi (information hiding)
Hal ini mengacu kepada perlindungan terhadap implementasi obejk
internal. Objek tersebut dari interface public dan bagian private yang
merupakan kombinasi data dan metode internal. Manfaat utamanya adalah
bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program
yang lain.

2. Modularitas
Modularitas berarti objek dapat dikelola secara independen. Karena
kode sumber bagian internal objek dikelola secara terpisah dari antarmuka,
maka Kita bebas melakukan modifikasi yang tidak menyebabkan masalah
pada bagian-bagian lain dari sistem. Manfaat ini mempermudah
mendistriibusikan objek-objek dari sistem.

2. Penyembunyian data dan pengaksesan data.


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.

3. Pengenalan class JButton.


Class JButton merupakan class dari package javax.swing yang digunakan
untuk membuat komponen berupa tombol berisi teks maupun icon. Bila ingin
membuat tombol interaktif yang icon–nya dapat berubah saat pointer mouse
diarahkan pada tombol tersebut, maka dapat diatur dengan menggunakan
method setRolloverIcon(iconObjectName).
Kelas JButton merupakan salah satu komponen swing yang terletak di paket
javax.swing. Komponen button hanya dapat memicu action event (event dari
kelas ActionEvent) dan tidak dapat memicu event item (event dari kelas
ItemEvent) seperti komponen check box (kelas JCheckBox) dan radio button
(kelas JRadioButton). Kelas JButton merupakan kelas turunan dari kelas
AbstractButton yang terletak di paket javax.swing.
Metoda-metoda yang dimiliki kelas JButton merupakan metoda turunan dari
kelas AbstractButton. Metoda isSelected yang dipanggil melalui obyek check
box merupakan salah satunya. Karena kelas JCheckBox adalah juga turunan
dari kelas AbstractButton, maka  metoda tersebut dapat dipanggil melalui
obyek (instance) dari kelas JCheckBox. Dibatasi hanya sampai pada superclass
JComponent, hirarkhi turunan dari kelas JButton adalah sebagai berikut:

Kelas JButton memiliki lima buah konstruktor untuk mengkonstruksi obyek


button secara berbeda. Empat dari lima konstruktor kelas JButton yang paling
sering digunakan terdapat dalam tabel berikut ini.
4. Mekanisme event handling.
Package javax.swing dan package java.awt memang memiliki komponen
yang sifatnya berbeda terhadap platform yang digunakan, tetapi kedua package
ini memiliki mekanisme event handling yang sama. Dalam aplikasi berbasis
GUI, tentu banyak event yang dapat dilakukan sehingga membutuhkan bantuan
dari event listener dan event handler yang terdapat pada package
java.awt.event. Event adalah peristiwa yang distimulasi oleh user terhadap
komponen GUI. Event listener merupakan pendeteksi terjadinya event.
Sedangkan event handler merupakan blok yang akan memproses event agar
memberikan aksi tertentu.
Dalam event handling pada Java ada empat bagian penting yang harus
diketahui:

1. Event Object merupakan object yang mendiskripsikan sebuah event yang


di-trigger oleh event source.
2. Event Handler merupakan method yang menerima event object dan
melakukan respond yang sesuai dengan event object tersebut.
3. Event Listener merupakan interface yang akan meng-handle event yang
terjadi. setiap type event mempunyai interface yang bersesuaian. Listener
tersebut harus diimplementasikan oleh class yang akan meng-handle event.
4. Event Source merupakan pembangkit / trigger sebuah event objects.

Setiap event object mempunyai  type event yang berbdea beda. sehingga kita
harus menentukan type event sebelum menentukan jenis interface listener.
karena setiap type event mempunyai jenis interface listener yang bersesuaian.

Berikut ini type type event yang ada di Java :

1. ActionEvent
2. ItemEvent
3. WindowEvent
4. ContainerEvent
5. ComponentEvent
6. FocusEvent
7. TextEvent
8. KeyEvent
9. MouseEvent
10.AdjustmentEvent

Berikut ini Interface Listener

1. ActionListener
2. ItemListener
3. WindowListener
4. ContainerListener
5. ComponentListener
6. FocusListener
7. TextListener
8. KeyListener
9. MouseListener
10. MouseMotionListener
11. AdjustmentListener

Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface
listener kecuali MouseEvent yang mempunyai dua jenis interface listener. dan
setiap interface mempunyai method abstract yang harus di override class yang
meng-impletasikan interface. event listener dan event handler terdapat pada
package java.awt.event

Bagaimana event handling dalam Java? ada tiga langkah penting dalam
event handling
1. Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan
code yang menyatakan class tersebut meng-implement interface listener
2. Event source mendaftarkan sebuah listener melalui
method add<type>Listener
3. Kode yang mengimplementasikan method pada interface listener pada class
yang akan meng-handle event. [ Override ]

III. TugasLatihan
1. Nama Program : Bus Mini.
Source Code :
a. Class Bus1
class Bus1
{
//inisialisasi variabel dengan modifier public
public int penumpang=5;
public int maxPenumpang=15;

public void cetak() //mencetak jumlah penumpang


{
System.out.println("Penumpang Bus Mini sekarang
adalah : "+penumpang);
System.out.println("Penumpang maksimal
seharusnya adalah : "+maxPenumpang);
}
}

b. Class UjiBus1
public class UjiBus1
{
public static void main(String[] args)
{
System.out.println("\n***** PENUMPANG BUS MINI
BLITAR RAYA *****");
Bus1 busMini = new Bus1(); //membuat objek
busMini dari class Bus1

System.out.println("\n\tJumlah Penumpang
Awal");
busMini.cetak(); //mencetak jumlah penumpang
awal

busMini.penumpang = busMini.penumpang + 7;
System.out.println("\n\tJumlah Penumpang
Setelah Ditambah 7");
busMini.cetak(); //mencetak jumlah penumpang
setelah ditambah 7

busMini.penumpang = busMini.penumpang - 3;
System.out.println("\n\tJumlah Penumpang
Setelah Dikurang 3");
busMini.cetak(); //mencetak jumlah penumpang
setelah dikurang 3

busMini.penumpang = busMini.penumpang + 9;
System.out.println("\n\tJumlah Penumpang
Setelah Ditambah 9");
busMini.cetak(); //mencetak jumlah penumpang
setelah ditambah 9
}
}

Hasil Program :
a. Bus1
b. UjiBus1

Penjelasan :
Program dengan class Bus1 ini menampilkan jumlah penumpang bus
mini Blitar Raya. Dalam program ini belum menerapkan enkapsulasi. Pada
kode Bus1 pendeklarasian variabel yang bertipe data integer dan dengan
modifier public. Fungsi cetak di sini berfumgsi untuk melakukan perintah
menampilkan output dari penumpang bus mini. Pada program class Bus 1
ini tidak dapat manampilkan output karena tidak terdapat method main yang
berfungsi untuk menampilkan output.
Selanjutnya adalah program dengan class UjiBus1 yang
menggunakan modifier public.Sudah terdapat method main public static
void main(String[] args). Static di sini menandakan bahwa method
main tidak mengubah atau menggunakan objek yang diciptakan oleh kelas
tersebut, sehingga bisa dikatakan berdiri sendiri, tidak terkait dengan objek
dan akan membuat fungsi dapat dikompilasi langsung tanpa harus membuat
instansiasi objek dari class.Di program ini membuat objek baru yaitu
busMini dari class Bus1 yang kodenya Bus1 busMini = new Bus1().
Lalu menampilkan jumlah penumpang dengan memanggil objek busMini
dan fungsi cetak yang kodenya busMini.cetak(). Untuk mendapatkan
jumlah yang ditambah atau dikurangi maka tinggal menambahkan operand
dan angka yang diperlukan di depan variabel. Kompilasi program
menggunakan CMD.

2. Nama Program : Bus Besar.


Source Code :
a. Class Bus2
class Bus2
{
//inisialisasi variabel dengan modifier private
private int penumpang=0;
private int maxPenumpang=40;

public void addPenumpang(int penumpang)


//menghitung jumlah penumpang
{
int add;
add=this.penumpang+penumpang;
if(add>maxPenumpang) //kondisi bila jumlah
penumpang melebihi batas
{
System.out.println("Penumpang Bus Besar
sekarang : "+add);
System.out.println("Penumpang maksimal
seharusnya : "+maxPenumpang);
System.out.println("Jumlah penumpang
melebihi batas.");
}
else
{
this.penumpang=add;
}
}

public void cetak() //mencetak jumlah penumpang


{
System.out.println("Penumpang Bus Besar
sekarang : "+penumpang);
System.out.println("Penumpang Bus Besar
sekarang : "+maxPenumpang);
}
}

b. Class UjiBus2
public class UjiBus2
{
public static void main(String[] args)
{
System.out.println("\n***** PENUMPANG BUS BESAR
BLITAR RAYA *****");
Bus2 busBesar=new Bus2();
System.out.println("\n\tJumlah Penumpang
Awal");
busBesar.cetak();

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 :
a. Class Bus2
b. Class UjiBus2

Penjelasan :
Program dengan class Bus1 ini menampilkan jumlah penumpang bus
mini Blitar Raya. Dalam program ini belum menerapkan enkapsulasi. Pada
kode Bus1 pendeklarasian variabel yang bertipe data integer dan dengan
modifier public. Fungsi cetak di sini berfumgsi untuk melakukan perintah
menampilkan output dari penumpang bus mini. Pada program class Bus 1
ini tidak dapat manampilkan output karena tidak terdapat method main yang
berfungsi untuk menampilkan output.
Selanjutnya adalah program dengan class UjiBus1 yang
menggunakan modifier public.Sudah terdapat method main public static
void main(String[] args). Static di sini menandakan bahwa method
main tidak mengubah atau menggunakan objek yang diciptakan oleh kelas
tersebut, sehingga bisa dikatakan berdiri sendiri, tidak terkait dengan objek
dan akan membuat fungsi dapat dikompilasi langsung tanpa harus membuat
instansiasi objek dari class.Di program ini membuat objek baru yaitu
busMini dari class Bus1 yang kodenya Bus1 busMini = new Bus1().
Lalu menampilkan jumlah penumpang dengan memanggil objek busMini
dan fungsi cetak yang kodenya busMini.cetak(). Untuk mendapatkan
jumlah yang ditambah atau dikurangi maka tinggal menambahkan operand
dan angka yang diperlukan di depan variabel. Kompilasi program
menggunakan CMD.

3. Nama Program : Gaji Pegawai


Source Code :
a. Class GajiPegawai
class GajiPegawai
{
//deklarasi variabel dengan modofier private
private double gajiKotor, pajak, gajiBersih;
private double potongan=75000;
private String nama = "Surya";

public void setGaji(double gaji) //mengatur nilai


gajiKotor
{
gajiKotor=gaji;
}
public void hitungPajak() //menghitung nilai pajak
{
pajak=0.2*gajiKotor;
}
public void hitungGaji() //menghitung nilai gaji
bersih
{
gajiBersih=gajiKotor-pajak-potongan;
}
public String namaPegawai() //menampilkan nama
{
return nama;
}
public double getGajiKotor() //menampilkan nilai
pajak
{
return pajak;
}
public double getPotongan() //menampilkan potongan
{
return potongan;
}
public double getGajiBersih() //menampilkan nilai
GajiBersih
{
return gajiBersih;
}
}

b. Class UjiGajiPegawai
import java.util.Scanner;
public class UjiGajiPegawai
{
public static void main(String[] args)
{
Scanner input = new Scanner (System.in);
GajiPegawai hasilgaji = new GajiPegawai();
double gaji;
System.out.println("\n **** GAJI PEGAWAI
****");
System.out.println("Nama Pegawai:
"+hasilgaji.namaPegawai());
System.out.print("Masukkan gaji Pegawai : Rp.
");
gaji = input.nextInt();
hasilgaji.setGaji(gaji);
hasilgaji.hitungPajak();
hasilgaji.hitungGaji();
System.out.println("\nBesar Gaji Kotor : Rp.
"+gaji+"");
System.out.println("Besar Pajak yang diterima :
Rp. "+hasilgaji.getGajiKotor());
System.out.println("Besar Potongan Gaji : Rp.
"+hasilgaji.getPotongan());
System.out.println("Besar Gaji Bersih : Rp.
"+hasilgaji.getGajiBersih());
}
}
Hasil Program :
a. Class GajiPegawai
b. Class UjiGajiPegawai

Penjelasan :
Program ini merupakan program untuk menampilkan gaji pegawai.
Pada class GajiPegawai memiliki beberapa variabel dan beberapa tipe data
serta menggunakan modifier private. Variabel gajiKotor, pajak,

gajiBersih , dan potongan=75000 bertipe data double. Variabel


nama = “Surya” bertipe data String. Pada program class GajiPegawai ini
tidak dapat dikompilasi dan menampilkan output karena tidak terdapat
method main di dalamnya.
Selanjutnya pada class UjiGajiPegawai pendeklarasian
menggunakan import java.util.Scanner;. Scanner merupakan class
yang menyediakan fungsi-fungsi untuk mengambil input dari keyboard.
Sudah terdapat method main public static void main(String[]
args). Static di sini menandakan bahwa method main tidak mengubah
atau menggunakan objek yang diciptakan oleh kelas tersebut, sehingga bisa
dikatakan berdiri sendiri, tidak terkait dengan objek dan akan membuat
fungsi dapat dikompilasi langsung tanpa harus membuat instansiasi objek
dari class. Setiap perhitungan variabel dilakukan dengan menggunakan
operand untuk mengahasilkan hasil perhitungan gaji yang diinginkan.
Kompilasi program ini mengunakan CMD.

4. Nama Program : Create Button


Source Code :
import javax.swing.JFrame;
import javax.swing.JButton;

public class CreateButton


{
public static void main(String[] args)
{
JFrame frame = new JFrame();
JButton button = new JButton("TOMBOL"); //membuat
dan menugaskan objek button
frame.setTitle("CREATE BUTTON");
frame.setBounds(200,300,250,125);
frame.add(button); //menambahkan button pada frame
button.setBounds(25,25,100,25); //mengatur posisi
tampilan button dan ukuran button
frame.setLayout(null);
frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Hasil Program :

Penjelasan :
Program ini merupakan program untuk menampilkan sebuah button.
Dalam program menggunakan dua fungsi. Pertama fungsi import
javax.swing.JFrame; yang berfungsi untuk mengimport fungsi class
JFrame dari package javac.swing,. Kedua adalah fungsi import
javax.swing.JButton; yang berfungsi untuk mengimport class JButton
yang berguna untuk membuat komponen berupa tombol berisi teks maupun
icon. Sudah terdapat method main public static void main(String[]
args). Static di sini menandakan bahwa method main tidak mengubah
atau menggunakan objek yang diciptakan oleh kelas tersebut, sehingga bisa
dikatakan berdiri sendiri, tidak terkait dengan objek dan akan membuat
fungsi dapat dikompilasi langsung tanpa harus membuat instansiasi objek
dari class. Terdapat fungsi JButton button = new JButton("TOMBOL");
yang berfungsi untuk membuat dan menugaskan objek button. Program ini
dikompilasi dengan CMD.

5. Nama Program : TryBotton


Source Code :
import java.awt.event.*;
import javax.swing.*;

//class TryButton mengimplementasikan interface


ActionListener
public class TryButton implements ActionListener
{
private JButton btnEvent; //membuat objek btnEvent
dari class JButton

public TryButton()
{
JFrame frame = new JFrame();
frame.setBounds(200,200,300,200);
frame.setTitle("TRY BUTTON");

Icon um = new ImageIcon("UM.png"); //membuat


dan menugaskan objek um
btnEvent = new JButton("Logo UM", um);
//menugaskan objek btnEvent
frame.add(btnEvent);
btnEvent.setBounds(50,50,175,50);

frame.setLayout(null);
frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnEvent.addActionListener(this); //mendeteksi
event pada button
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnEvent) //jika tombol
ditekan
{
//aksi yang terjadi jika tombol ditekan
JOptionPane.showMessageDialog(null, "Teks
dalam tombol: \n"+e.getActionCommand());
}
}
public static void main(String[] args)
{
TryButton frame = new TryButton();
}
}

Hasil Program :
Penjelasan :
Program ini digunakan untuk menampilkan tombol yang tersambung
dengan dialog box yang berisi pesan. Fungsi import java.awt.event.*;
yaitu merupakan sebuah fungsi import yang digunakan untuk proses
deklarasi dari class event yang berisi komponen dari sebuah program yang
dibuat import javax.swing.*; yang merupakan paket berisi kelas-kelas
dan interface untuk komponen GUI swing Java yang menyediakan
dukungan untuk grafis yang portable.
Program ini menggunakan class TryButton dengan
mengimplementasikan ActionListener. ActionListener digunakan untuk
menangani reaksi atas perubahan status pada objek yang digunakan. Sudah
terdapat method main public static void main(String[] args).
Static di sini menandakan bahwa method main tidak mengubah atau
menggunakan objek yang diciptakan oleh kelas tersebut, sehingga bisa
dikatakan berdiri sendiri, tidak terkait dengan objek dan akan membuat
fungsi dapat dikompilasi langsung tanpa harus membuat instansiasi objek
dari class. Kompilasi program ini dengan CMD.

IV. Tugas
1. Nama Program : Pembelian Buku
Source Code :
a. Class Buku
class Buku
{
private String namaPembeli, alamatPembeli;
private int banyakPembelian, sisaBuku, bayarBuku;
private String judulBuku="Konsep Dasar Pemrogaman
Java";
private String pengarangBuku="Patrick Naughton";
private int stokBuku=27;
private int hargaBuku=75000;

public void setPembeli(String nama)


{
namaPembeli=nama;
}
public String getnamaPembeli ()
{
return namaPembeli;
}
public void setAlamat(String alamat)
{
alamatPembeli=alamat;
}
public String getalamatPemebli()
{
return alamatPembeli;
}
public void setPembelian(int pembelian)
{
banyakPembelian=pembelian;
}
public int getPembelian()
{
return banyakPembelian;
}
public void hitungBayar()
{
bayarBuku=hargaBuku*banyakPembelian;
}
public int getBayar()
{
bayarBuku=hargaBuku*banyakPembelian;
return bayarBuku;
}
public void hitungSisa()
{
sisaBuku=stokBuku-banyakPembelian;
}
public int getSisa()
{
sisaBuku=stokBuku-banyakPembelian;
return sisaBuku;
}
public String getJudul()
{
return judulBuku;
}
public String getPengarang()
{
return pengarangBuku;
}
public int getharga()
{
return hargaBuku;
}
public int getStok()
{
return stokBuku;
}
}

b. Class PembelianBuku
import java.util.Scanner;
public class PembelianBuku
{
public static void main(String[] args)
{
Buku ambil = new Buku();
System.out.println("\n\t*** DATA BUKU YANG AKAN
DIBELI ***");
System.out.println("Judul
Buku :"+ambil.getJudul());
System.out.println("Nama
Pengarang :"+ambil.getPengarang());
System.out.println("Stok Awal
Buku :"+ambil.getStok());
System.out.println("Harga
Buku :"+ambil.getharga());
System.out.println("\n\tDATA PEMBELI");

Scanner masuk = new Scanner (System.in);


ambil.hitungBayar();
ambil.hitungSisa();
System.out.print("Nama Pembeli :");
ambil.setPembeli(masuk.nextLine());
System.out.print("Alamat Pembeli :");
ambil.setAlamat(masuk.nextLine());
System.out.print("Banyak Pembelian:");
ambil.setPembelian(masuk.nextInt());
System.out.println("\n\tLAPORAN PEMBELIAN");
System.out.println("Nama
Pembeli :"+ambil.getnamaPembeli());
System.out.println("Alamat
Pembeli :"+ambil.getalamatPembeli());
System.out.println("Banyak
Pembelian:"+ambil.getPembelian());
System.out.println("Total
Pembelian :Rp."+ambil.getBayar());
System.out.println("\n\tLAPORAN STOK AKHIR");
System.out.println("Stok Akhir
Buku :"+ambil.getSisa());
}
}
Hasil Program :
a. Class Buku
b. Class PembelianBuku

Penjelasan :
Program ini menjelaskan tentang pembelian buku yang mana akan
menampilkan data yang akan dibeli oleh user.
2. Nama Program : ThreeButtons
Source Code :
import java.awt.event.*;
import javax.swing.*;
public class ThreeButtons implements ActionListener
{
private JButton btn1,btn2,btn3;
public ThreeButtons()
{
JFrame frame = new JFrame ();
frame.setBounds(400,400,350,200);
frame.setTitle("BUTTON AND ICON");
Icon java1 = new ImageIcon();
Icon java2 = new ImageIcon("javabiru.jpg");
Icon java3 = new ImageIcon("javahitam.jpg");
btn1 = new JButton("Button");
btn2 = new JButton("Button Text Icon",java2);
btn3 = new JButton("Button Interaktif",java3);
btn3.setRolloverIcon(java3);
frame.add(btn1);
btn1.setBounds(30,10,190,30);
frame.add(btn2);
btn2.setBounds(70,60,190,30);
frame.add(btn3);
btn3.setBounds(120,110,190,30);
frame.setLayout(null);
frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn2)
{
JOptionPane.showMessageDialog(null,"Anda
telah menekan: "+e.getActionCommand());
}
else if(e.getSource()==btn3)
{
JOptionPane.showMessageDialog(null,"Anda
telah menekan: "+e.getActionCommand());
}
}
public static void main(String[] args)
{
ThreeButtons frame = new ThreeButtons();
}
}

Hasil Program :
Penjelasan :
Program diatas digunakan untuk menampilkan tiga tombol
yangtersambung dengan dialog box yang berisi pesan. Fungsi import
java.awt.event.*; merupakan sebuah fungsi import yang digunakan
untuk proses deklarasi dari class event yang berisi komponen dari sebuah
progam yang dibuat import javax.swing.*; yang merupakan paket
berisi kelas-kelas dan interface untuk komponen GUI swing Java yang
menyediakan dukungan untuk grafis yang portable. Program ini
menggunakan class ThreeButtons dengan mengimplementasikan
ActionListener. ActionListener digunakan untuk menangani reaksi atas
perubahan status pada objek yang digunakan. Misalnya akibat penekanan
tombol mouse atau keyboard.
Dalam program ini menggabungkan beberapa fungsi, yaitu fungsi
manampilkan button, membuat objek, menampilkan icon, dan fungsi
menangani reaksi atas perubahan status pada objek yang digunakan seperti
akibat dari penekanan tombol mouse atau keyboard. Program ini dikompilasi
menggunakan CMD. Terdapat tiga hasil kompilasi sesuai dengan urutan
button dan icon yang ditampilkan.
V. Kesimpulan
1. Encapsulation atau enkapsulasi adalah cara untuk menyembunyikan
informasi detail dari suatu class.
2. Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari Private,
Public, dan Protected.
3. Private =  memberikan hak akses hanya pada class itu sendiri, artinya apa-
apa saja yang ada di dalam class A baik itu method ataupun atribut hanya
bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya.
4. Public = memberikan hak akses kepada atribut atau method agar bisa diakses
oleh siapapun (property atau class lain diluar class yang bersangkutan)
5. Protected = memberikan hak akses kepada class itu sendiri dan class hasil
turunannya (inheritance)
6. Interface to access data adalah cara melakukan perubahan terhadap attribute
yang telah disembunyikan.
7. 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.
8. Accessor method adalah konsep dimana sebuah method yang
digunakanuntuk mengembalikan nilai dari field/variabel yang memiliki hak
akses private/protected. 
9. Mutator method akan merubah data darisebuah field/variabel yang
bersangkutan.
10. ActionLister digunakan untuk menangani reaksi atas perubahan
status pada objek yang digunakan. Misalnya akibat penekanan tombol mouse
atau keyboard.
VI. DaftarRujukan
Tim Asisten Dosen. Modul 3. Encapsulation. Malang : Universitas Negeri
Malang.
Asagaf Habib. 2014. https://autoaplikasi.blogspot.com/2017/10/pengertian-
encapsulation-inheritance.html. Diakses tanggal 10 Maret 2020.
Binus. 2017. https://sis.binus.ac.id/2017/09/04/encapsulation/. Diakses tanggal
10 Maret 2020.
Media Teras. 2017.https://www.termasmedia.com/pemrograman/java/312-
mengenal-kelas-jbutton-di-java.html. Diakses tanggal 10 Maret 2020.
Rifa Rimanda.http://rimanda567rifarifiy.blogspot.com/p/event-handling.html.
Diakses tanggal 10 Maret 2020.

Anda mungkin juga menyukai