Anda di halaman 1dari 23

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:
Azizah Tri Novanti 170533628613

S1 PTI ‘17 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Oktober 2018
I. Tujuan Praktikum
1. Menerapkan konsep encapsulation.
2. Menyembunyikan data.
3. Mengakses data yang disembunyikan.
4. Menggunakan class JButton dan melakukan mekanisme event handling
II. Dasar Teori
1. Konsep encapsulation.
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.

2. Kontrol Akses pada Java

Modifiers adalah keyword istimewa yang bisa memodifikasi definisi (dan


perilaku) dari class, metode atau variabel. Beberapa diantaranya mungkin
sering anda temui dalam kode Java, berikut ini adalah modifier:

 Modifier untuk mengontrol akses terhadap class method atau variabel


disebut juga acces modifiers  diantaranya
yaitu public, protected,default dan private.
 Modifier non-acces static untuk membuat method dan variabel dari class.
 Modifier non-acces abstract untuk membuat class dan method abstract.
 Modifier non-acces final untuk menyelesaikan implementasi dari class,
method dan variabel
 Modifiers non-acces synchronized dan volatile yang digunakan untuk
thread.
 Modifiers non-acces native yang digunakan untuk membuat method native.
Seperti anda lihat di atas, beberapa modifiers hanya dapat diaplikasikan
hanya pada class dan method atau hanya pada method dan variabel.

Public modifier artinya bisa diakses dimana saja. Method atau variabel


dengan modifier ini dapat diakses pada class dimana method atau variabel itu
didefinisikan, dapat diakses oleh subclass dari class, dapat diakses oleh semua
class pada package yang sama atau oleh class lain diluar package tersebut,
intinya bisa diakses dimanapun.

Jika anda tidak menggunakan modifier apapun, maka ini adalah default,


dimana modifier ini hanya bisa diakses di dalam package yang sama.
Public hampir sama dengan default, keduanya mengizinkan method dan
variabel untuk dapat diakses oleh class lain di dalam package yang sama.
Perbedaan akan muncul ketika anda membuat package-package dari class.
Ketika anda akan menggunakan class di luar package dimana class tersebut
berada melalui statement import, maka hal ini tidak akan bisa dilakukan
sebelum class dalam package itu dideklarasikan sebagai public.

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.

Acces modifier protected artinya bisa diakses di dalam package ataupun di


luar package namun hanya melalui inheritance (atau pewarisan yang merupakan
salah satu konsep penting pemrograman Java). Protected tidak bisa
diaplikasikan pada class, namun bisa diaplikasikan pada data field, method dan
contructor.
3. 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. Caranya yaitu dengan membuat interface berupa method untuk
menginisialisasi atau merubah nilai dari attribute tersebut.

4. 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).

5. 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.
III. Tugas Latihan
1. Nama Program : Program tanpa penerapan Encapsulasi
Source Code :
class Bus1
{
public int penumpang=5;
public int maxPenumpang=15;

public void cetak()


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

public class UjiBus1


{
public static void main(String[] args)
{
System.out.println("\n***** PENUMPANG BUS MINI
BLITAR RAYA *****");
Bus1 busMini = new Bus1();

System.out.println("\n\tJumlah Penumpang
Awal");
busMini.cetak();

busMini.penumpang = busMini.penumpang +7;


System.out.println("\n\tJumlah Penumpang
Setelah Ditambah 7");
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;

public void addPenumpang(int penumpang)


{
int add;
add=this.penumpang+penumpang;
if(add>maxPenumpang)
{
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()
{
System.out.println("Penumpang Bus Besar
sekarang : "+penumpang);
System.out.println("Penumpang maksimal
seharusnya : "+maxPenumpang);
}
}

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 :

Penjelasan :

Program diatas menerapkan enkapsulasi karena terdapat modifier private


yang dapat digunakan untuk internal member dari class tersebut saja. Pada
class Bus2 terdapat deklarasi penumpang dan maxPenumpang yang
diberikan modifier private. Akibatnya variable tersebut hanya bisa
digunakan di class internalnya saja. Pada method public void

addPenumpang(int penumpang) merupakan fungsi untuk menambahkan


penumpang dengan rumus add=this.penumpang+penumpang;.

this.penumpang merupakan pemanggilan variable global dimana


penumpang=0. Kemudian ditambahkan penumpang dari variable local yang
akan diisi ketika pemanggilan method tersebut. Kemudian terdapat
percabangan if(add>maxPenumpang) apabila jumlah penumpang setelah
ditambahkan melebihi maksimal penumpang yaitu 40 orang, maka kondisi
dengan pernyataan bahwa penumpang sudah penuh akan dijalankan. Apabila
tidak melebihi maksimal maka penumpang akan tetap ditambahkan. Setelah
itu terdapat method public void cetak() yang digunakan untuk
menampilkan jumlah penumpang dan maksimal penumpang. Agar program
dapat dieksekusi, maka membuat class baru yaitu public class UjiBus2.
Didalam void main terdapat objek baru yang dibuat yaitu Bus2
busBesar=new Bus2();. Kemudian memanggil fungsi fungsi pada class
sebelumnya dengan memasukkan kedalam objek seperti berikut
busBesar.cetak();. Perbedaan program ini dengan program sebelumnya
adalah penerapan enkapsulasinya. Apabila pada program sebelumnya dapat
menambahkan penumpang di class lain, maka pada program ini tidak bisa.
Hal ini disebabkan karena terpadapat modifier privat yang hanya bisa
dijalankan jika masih dalam satu class. Oleh karena itu, dekalrasi untuk
menambahkan penumpang terdapat pada class yang sama dengan deklarasi
awalnya yaitu penumpang=0. Lalu pada class UjiBus2 ini hanya
memanggil fungsi fungsi kemudian disimpan pada objek yang dibuat lalu
ditampilkan. Class ini tidak perlu merumuskan penamahan penumpang lagi.
Cara pemanggilannya yaitu dengan menuliskan nama objek yang sudah
dibuat kemudian diberi titik(.) dan selanjutkan nama method yagn ingin
dipanggil, contohnya busBesar.addPenumpang(20); yang berarti method
addPenumpang(20) diberikan nilai sebanyak 20 dan disimpan atau diberikan
pada objek busBesar.

3. Nama Program : Menghitung Gaji Pegawai


Source Code :

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.

4. Nama Program : Program membuat 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");
frame.setTitle("CREATE BUTON");
frame.setBounds(200,300,250,125);
frame.add(button);
button.setBounds(25,25,100,25);
frame.setLayout(null);
frame.setVisible(true);

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)

digunakan ketika frame di close maka program otomatis berhenti.


5. Nama Program : Mengatur Icon dan Event pada Button
Source Code :
import java.awt.event.*;
import javax.swing.*;

public class TryButton implements ActionListener


{
private JButton btnEvent;
{
JFrame frame = new JFrame();
frame.setBounds(200,200,300,200);
frame.setTitle("TRY BUTTON");

Icon um = new ImageIcon("um.jpg");


btnEvent = new JButton("Logo UM", um);
frame.add(btnEvent);
btnEvent.setBounds(50,50,175,50);
frame.setLayout(null);
frame.setVisible(true);

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

BUTTON");. Kemudian mendefinisikan icon dengan Icon um = new


ImageIcon("um.jpg"); dimana icon tersebut diambil dari file yang sama
dengan file classnya dengan nama ‘um.jpg’. setelah menyimpan icon
kemudian membuat objek button dengan btnEvent = new JButton("Logo
UM", um); dimana text button tersebut adalah “LOGO UM” kemudian
memanggil icon yang telah disimpan pada objek icon. Setelah itu
memasukkan objek button kedalam objek frame dengan
frame.add(btnEvent). Lalu atur button sesuai ukuran dengan script
btnEvent.setBounds(50,50,175,50); dimana 50 merupakan batas
maksimal koordinat x dan y serta memiliki panjang 175 dan lebar 50.
btnEvent.addActionListener(this); digunakan untuk memberikan
event handling dengan model listener pada button.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

digunakan untuk menghentikan program ketika frame di close. public

void actionPerformed(ActionEvent e) merupakan method untuk


memberikan aksi yaitu memberikan dialog message ketika menekan button
tersebut.
IV. Tugas Praktikum
1. Nama Program : Menerapkan Enkapsulasi dalam Penjualan Buku
Source Code :
class Buku
{
private String judulBuku = "Konsep Dasar Pemrograman
java";
private String PengarangBuku = "Patrick Naughton";
private int stokBuku=27;
private int hargaBuku=75000;
private String namaPembeli,alamatPembeli;
private int banyakPembelian,bayarBuku, sisaBuku;

public String getJudul()


{
return judulBuku;
}
public String getPengarang()
{
return PengarangBuku;
}
public int getStok()
{
return stokBuku;
}
public int getHarga()
{
return hargaBuku;
}
public void setPembeli(String nama)
{
namaPembeli=nama;
}
public void setAlamat(String alamat)
{
alamatPembeli=alamat;
}
public void setPembelian(int pembelian)
{
banyakPembelian=pembelian;
}
public String getNamapembeli()
{
return namaPembeli;
}
public String getAlamatpembeli()
{
return alamatPembeli;
}
public int getPembelian()
{
return banyakPembelian;
}
public void hitungBayar()
{
bayarBuku=hargaBuku*banyakPembelian;
}
public int getTotal()
{
return bayarBuku;
}
public void hitungSisa()
{
sisaBuku=stokBuku-banyakPembelian;
}
public int getSisa()
{
return sisaBuku;
}

public void cetakNilai()


{
System.out.println("Judul Buku \t\t:
"+judulBuku+
"\nNama Pengarang
\t\t: "+PengarangBuku+
"\nStok Awal Buku
\t\t: "+stokBuku+
"\nHarga Buku
\t\t: "+hargaBuku);
}
}

public class BeliBuku


{
public static void main(String[] args)
{
Buku b = new Buku();
System.out.println("\t\tDATA BUKU YANG AKAN
DIBELI\n");
b.cetakNilai();

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());

System.out.println("\t\tLAPORAN STOK AKHIR\n");


b.hitungSisa();
System.out.println("Stok Akhir Buku\t\t:
"+b.getSisa());
}
}

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());.

2. Nama Program : Membuat Tiga Button serta Memberi Icon


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

public class ThreeButtons implements ActionListener


{
private JButton btnIcon;
private JButton btnInteraktif;
private JButton btnText;
public ThreeButtons()
{
JFrame frame = new JFrame();
frame.setBounds(200,200,500,280);
frame.setTitle("BUTTON AND ICON");

btnText = new JButton("Button Text");


frame.add(btnText);
btnText.setBounds(20,20,270,50);

Icon java1 = new ImageIcon("Java1.jpg");


btnIcon = new JButton("Button Text
Icon",java1);
frame.add(btnIcon);
btnIcon.setBounds(80,80,270,50);

Icon java2 = new ImageIcon("Java2.jpg");


btnInteraktif = new JButton("Button
Interaktif",java2);
frame.add(btnInteraktif);
btnInteraktif.setBounds(140,140,270,50);
btnInteraktif.setRolloverIcon(java1);

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

ImageIcon("Java1.jpg"). kemudian membuat objek button yang


berisikan text serta icon yang akan dipanggil btnIcon = new

JButton("Button Text Icon",java1). Kemudian menambahkan button


kedua pada frame dengan frame.add(btnIcon). Setelah itu buat objek
icon lagi dengan icon yang berbeda. Sama seperti button kedua, terdapat
pemanggilan icon dan pemberian text pada button kemudian ditambahkan
pada frame. Agar icon berubah ketika pointer mouse berada pada icon
button interactive maka digunakan script
btnInteraktif.setRolloverIcon(java1); yang berarti icon pada button
interaktif diubah seperti pada icon button icon ketika pointer mouse
diarahkan pada icon di button interaktif tersebut. public void

actionPerformed(ActionEvent e) digunakan untuk memberikan aksi


event handling pada button dimana apabila user menekan button text maka
akan muncul dialog message.

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.

VI. Daftar Rujukan


Admin. 2016. Memahami Modifiers dan Kontrol Akses Pada Java. (Online).
(http://www.bahasajava.com/2017/05/memahami-modifiers-dan-kontrol-
akses-pada-Java.html ) diakses pada 5 Oktober 2018
Widayanto, Aditya. 2017. Enkapsulasi, Inheritance pada Bahasa pemrograman
Java. (Online). (https://medium.com/@adityawi/enkapsulasi-inheritance-
pada-bahasa-pemrograman-java-cf2c768289ca ) diakses pada 5 Oktober
2018
Dian, Muhar. 2018. Belajar Java OOP: Menggunakan Method Setter dan
Getter. (https://www.petanikode.com/java-oop-setter-getter/ ) diakses
pada 4 Oktober 2018
Indrajani, S.Kom,MM dan Martin, S.Kom. 2004. Pemrograman Berorientasi
Objek dengan Java. Jakarta : PT Elex Media Komputindo.
Singh, Chaitanya. 2012. Swing – Jbutton tutorial and example. (Online).
(https://beginnersbook.com/2015/07/swing-jbutton-class/ ) diakses pada 5
Oktober 2018
Da N Bo. 2017. Sedikit lebih dalam Dengan Accessor dan Mutator. (Online).
(https://www.codepolitan.com/sedikit-lebih-dalam-dengan-accessor-dan-
mutator-58a192fa846f3 ) diakses pada 5 Oktober 2018
TermasMedia. 2018. Memahami Cara Menangani Aksi (Event) Di
Pemrograman Java. (Online).
(https://www.termasmedia.com/pemrograman/java/266-memahami-cara-
menangani-aksi-event-di-pemrograman-java.html ) diakses pada 5
Oktober 2018

Anda mungkin juga menyukai

  • Limbah Jenis
    Limbah Jenis
    Dokumen9 halaman
    Limbah Jenis
    Astrit Novanti
    Belum ada peringkat
  • Laporan 4
    Laporan 4
    Dokumen29 halaman
    Laporan 4
    Astrit Novanti
    Belum ada peringkat
  • Karkas Ayam
    Karkas Ayam
    Dokumen2 halaman
    Karkas Ayam
    Astrit Novanti
    Belum ada peringkat
  • Resep Roti Tawar Susu
    Resep Roti Tawar Susu
    Dokumen1 halaman
    Resep Roti Tawar Susu
    Astrit Novanti
    Belum ada peringkat
  • Laporan 5
    Laporan 5
    Dokumen25 halaman
    Laporan 5
    Astrit Novanti
    Belum ada peringkat
  • Laporan 3
    Laporan 3
    Dokumen36 halaman
    Laporan 3
    Astrit Novanti
    Belum ada peringkat
  • Laporan 1
    Laporan 1
    Dokumen21 halaman
    Laporan 1
    Astrit Novanti
    Belum ada peringkat
  • Laporan 2
    Laporan 2
    Dokumen25 halaman
    Laporan 2
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul Vii
    Laporan Modul Vii
    Dokumen23 halaman
    Laporan Modul Vii
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul Viii
    Laporan Modul Viii
    Dokumen24 halaman
    Laporan Modul Viii
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul6
    Laporan Modul6
    Dokumen32 halaman
    Laporan Modul6
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul4
    Laporan Modul4
    Dokumen28 halaman
    Laporan Modul4
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul5
    Laporan Modul5
    Dokumen23 halaman
    Laporan Modul5
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul2
    Laporan Modul2
    Dokumen37 halaman
    Laporan Modul2
    Astrit Novanti
    Belum ada peringkat
  • Modul2 170533628613
    Modul2 170533628613
    Dokumen11 halaman
    Modul2 170533628613
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul1
    Laporan Modul1
    Dokumen20 halaman
    Laporan Modul1
    Astrit Novanti
    Belum ada peringkat
  • Modul9 Azizah Tri Novanti 170533628613
    Modul9 Azizah Tri Novanti 170533628613
    Dokumen11 halaman
    Modul9 Azizah Tri Novanti 170533628613
    Astrit Novanti
    Belum ada peringkat
  • Laporan Modul7
    Laporan Modul7
    Dokumen35 halaman
    Laporan Modul7
    Astrit Novanti
    Belum ada peringkat