SlideShare a Scribd company logo
1 of 9
Download to read offline
Modul PBO – Teknokrat
94
EVENT DAN EXCEPTION HANDLING
Tujuan
Praktikan dapat memahami dan menjelaskan konsep event dan exception handling
dalam perograman serta dapat mengimplementasikan ke dalam pemrograman Java.
EVENT HANDLER
Ketika pengguna menuliskan karakter atau menekan button atau mengklik mouse maka akan timbul
event. Event adalah obyek yang mendeskripsikan suatu kejadian (peristiwa yang tejadi). Contohnya
ketika pengguna melakukan aksi terhadap kompenen user interface (misalnya meng-klik mouse
pada tombol), maka tindakan tersebut akan memunculkan sebuah event.
Beberapa istilah dalam event handling:
· Event source: adalah pembangkit sebuah event, misalnya mouse click pada button akan
membangkitkan sebuah ActionEvent dengan button sebagai event source-nya.
· Event handler: adalah sebuah method yang menerima sebuah obyek event,
menerjemahkannya, dan kemudian memproses interaksi pengguna.
· Event listener: Swing menghandle event dengan sekumpulan interface yang disebut dengan
Event Listeners.
Setiap kategori event, terdapat sebuah interface listener yang bersesuaian. Listener tersebut harus
diimplementasikan oleh kelas dari obyek yang akan menerima event tersebut. Listener ini akan
menentukan method mana yang harus didefinisikan dalam sebuah kelas yang sesuai untuk
menerima tipe event tersebut. Method-method ini kemudian akan dipanggil ketika event yang
bersangkutan terjadi. Tabel berikut adalah kategori event, interface, dan method-nya.
Tabel 8. 1
Kategori Nama Interface Method
Action ActionListener actionPerformed(ActionEvent)
Item ItemListener itemStateChanged(Item
Mouse MouseListener mousePressed(MouseEvent)
mouseReleased(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mouseClicked(MouseEvent)
Mouse Motion MouseMotionListener mouseDragged(MouseEvent)
mouseMoved(MouseEvent)
Key KeyListener keyPressed(KeyEvent)
10
BAB
Modul PBO – Teknokrat
95
keyReleased (KeyEvent)
keyTyped (KeyEvent)
Focus FocusListener focusGained(FocusEvent)
focusLost (FocusEvent)
Adjustment AdjustmentListener adjustmentValueChanged(AdjustmentEvent)
Component ComponentListener componentMoved(ComponentEvent)
componentHidden(ComponentEvent)
componentResized(ComponentEvent)
componentShown(ComponentEvent)
Window WindowListener windowClosing(WindowEvent)
windowOpened(WindowEvent)
windowIconified(WindowEvent)
windowDeiconified (WindowEvent)
windowClosed(WindowEvent)
windowActivated(WindowEvent)
windowDeactivated (WindowEvent)
Container ContainerListener componentAdded(ContainerEvent)
componentRemoved(ContainerEvent)
Text TextListener textValueChanged(TextEvent)
Langkah-langkah untuk mengimplementasikan event handler secara umum adalah:
· Pada deklarasi class event handler harus meng-implements sebuah interface listener atau
class tersebut meng-extends sebuah class yang meng-implements sebuah interface listener.
Contoh:
public class namaKelas implements ActionListener {
· Daftarkan instan dari class event handler sebagai listener pada satu atau beberapa
komponen.
Contoh:
komponen.addActionListener(instanceOfNamaKelas);
· Tuliskan method yang mengimplementasikan interface listener tersebut. Contoh:
public void actionPerformed(ActionEvent event) {
// tuliskan kode program event yang terjadi
}
Berikut adalah contoh kode program dengan Event Sederhana:
Program 10-1
// MinPlus.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
Modul PBO – Teknokrat
96
public class MinPlus implements ActionListener {
private JFrame fr;
private int num;
private JButton btnPlus, btnMin;
private JLabel numL;
public MinPlus() {
num = 0;
buatFrame();
fr.setVisible(true);
}
private void buatFrame() {
fr = new JFrame("Event Sederhana");
fr.setSize(250, 100);
JPanel pn = (JPanel) fr.getContentPane();
pn.setLayout(new BorderLayout());
JPanel p = new JPanel();
btnMin = new JButton("-");
// mendaftarkan actionListener pada tombol btnMin
btnMin.addActionListener(this);
p.add(btnMin); // mengaitkan button ke panel p
btnPlus = new JButton("+");
// mendaftarkan actionListener pada tombol btnPlus
btnPlus.addActionListener(this);
p.add(btnPlus); // mengaitkan button ke panel p
pn.add(p, BorderLayout.NORTH); // mengaitkan panel p ke panel pn
numL = new JLabel("0", SwingConstants.CENTER);
pn.add(numL, BorderLayout.CENTER);
}
public void tambah() {
num++;
}
public void kurang() {
num--;
}
public void actionPerformed(ActionEvent event) {
String opr = event.getActionCommand();
if(opr.equals("-")) {
this.kurang();
} else {
this.tambah();
}
numL.setText(Integer.toString(num));
}
public static void main(String [] args) {
new MinPlus();
}
}
Modul PBO – Teknokrat
97
Hasil Output
Berdasarkan hasil output di atas, event yang terjadi adalah ketika pengguna mengklik tombol ‘+’
maka nilai akan bertambah dan sebaliknya jika tombol ‘-‘ yang diklik maka nilai akan berkuran.
Program
10-2
// EventSederhana.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class EventSederhana {
private JFrame frame;
JLabel lblnama=new JLabel("Nama");
JTextField txnama=new JTextField(20);
JLabel lblnim=new JLabel("NIM");
JTextField txnim=new JTextField(7);
JLabel lblkelamin=new JLabel("Jenis Kelamin");
JRadioButton pria=new JRadioButton("Pria");
JRadioButton wanita=new JRadioButton("Wanita");
ButtonGroup kelompok=new ButtonGroup();
JLabel lblhobi=new JLabel("Hobi");
JCheckBox baca=new JCheckBox("Membaca");
JCheckBox mancing=new JCheckBox("Memancing");
JCheckBox jalan=new JCheckBox("Jalan-Jalan");
JButton cetak=new JButton("Cetak");
JTextArea hasil=new JTextArea();
public EventSederhana() {
makeFrame();
frame.setVisible(true);
AksiReaksi();
}
private void makeFrame() {
frame = new JFrame("Event Sederhana");
frame.setSize(300,330);
komponenVisual();
}
Modul PBO – Teknokrat
98
private void komponenVisual(){
JPanel panel = (JPanel)frame.getContentPane();
panel.setLayout(null);
panel.add(lblnama);
lblnama.setBounds(10,10,80,20);
panel.add(txnama);
txnama.setBounds(105,10,175,20);
panel.add(lblnim);
lblnim.setBounds(10,33,80,20);
panel.add(txnim);
txnim.setBounds(105,33,70,20);
panel.add(lblkelamin);
lblkelamin.setBounds(10,56,80,20);
kelompok.add(pria);
kelompok.add(wanita);
panel.add(pria);
pria.setBounds(105,56,50,20);
panel.add(wanita);
wanita.setBounds(160,56,70,20);
panel.add(lblhobi);
lblhobi.setBounds(10,80,70,20);
panel.add(baca);
baca.setBounds(105,80,100,20);
panel.add(mancing);
mancing.setBounds(105,103,100,20);
panel.add(jalan);
jalan.setBounds(105,126,100,20);
panel.add(cetak);
cetak.setBounds(10,150,270,20);
JScrollPane scrollPane = new JScrollPane(hasil);
panel.add(scrollPane);
scrollPane.setBounds(10,180,270,100);
}
public void AksiReaksi() {
cetak.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
hasil.append(txnama.getText()+"n");
hasil.append(txnim.getText()+"n");
if(pria.isSelected()==true){
hasil.append(pria.getText()+"n");
}
else{
hasil.append(wanita.getText()+"n");
}
if(baca.isSelected()==true){
hasil.append(baca.getText()+"n");
}
Modul PBO – Teknokrat
99
if(mancing.isSelected()==true){
hasil.append(mancing.getText()+"n");
}
if(jalan.isSelected()==true){
hasil.append(jalan.getText()+"n");
}
}
});
}
public static void main(String [] args) {
new EventSederhana();
}
}
Hasil Output
EXCEPTION HANDLING
Eksepsi (exception) adalah keadaan tidak normal yang muncul pada suatu bagian program pada saat
dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan program saat
dijalankan kedalam orientasi-objek. Eksepsi java adalah objek yang menjelaskan suatu keadaan
eksepsi yang muncul pada suatu bagian program. Di dalam exception termasuk semua keadaan yang
muncul di dalam program yang sedang dieksekusi. Sebuah exception dapat berupa error atau hanya
kasus khusus.
Exception dikatakan telah dilempar (exception is throw) ketika sebuah exception muncul selama
program dieksekusi. Ketika ini terjadi program diberhentikan dan program bisa rusak.
Bagaimanapun, kegagalan program dapat dihindari jika exception yang dilempar dapat ditangkap
dan dikelola sebagaimana mestinya. Sebuah exception dapat dilempar di suatu bagian program dan
Modul PBO – Teknokrat
100
dapat ditangkap di bagian lain dari program tersebut. Exception yang tidak ditangkap akan membuat
program gagal. Contoh: Jika terjadi pembagian dengan nol atau membuka file yang tidak ada, maka
exception akan muncul.
Ketika sebuah error muncul di dalam method, Java membuat sebuah obyek Exception. Setelah
membuat obyek exception, Java mengirimkannya ke program dengan melemparkan exception
(throwing exception). Exception yang dilempar perlu ditangani menggunakan exception handler dan
diproses.
STATEMENT TRY DAN CATCH
Untuk menangkap exception di dalam program java, diperlukan Statement try. Blok Statement try
membingkai kode yang kemungkinan akan memunculkan exception dan mendefinisikan exception
handler yang dapat menanganinya. Blok catch digunakan sebagai exception handler. Blok try harus
mempunyai minimal satu buah blok catch yang mengikutinya. Klausa catch menspesifikasikan tipe
exception yang akan ditangani. Lingkup dari blok catch dibatasi oleh Statement yang ada di dalam
blok try. Statement untuk mendeklarasikan blok try catch:
try {
// statement yang menyebabkan exception
} catch(<exception name> <object name>) {
// statement penanganan error
}
Komputer akan mengeksekusi statement yang ada di dalam blok try. Jika tidak ada exception yang
muncul ketika dieksekusi maka Statement catch tidak akan di jalankan. Jika sebuah exception
muncul maka blok catch akan langsung dijalankan. Contoh:
Program 10-3
public class contoh1 {
public static void main(String [] args) {
int bil1 = 10;
int bil2 = 0;
int hasil = bil1 / bil2;
System.out.println("Hasil pembagian " + hasil);
}
}
Jika program diatas di compile maka tidak ada error, tetapi setelah dieksekusi, handler pada Java
runtime sistem akan melempar sebuah exception ketika terjadi pembagian dengan nol sehingga
akan dibuat sebuah obyek dari kelas exception yang dilempar yaitu ArithmeticException.
Hasil Output
Exception in thread "main" java.lang.ArithmeticException: / by zero
at contoh1.main(contoh1.java:5)
Pada contoh di atas karena muncul exception ArithmeticException maka akan dibuatkan exception
handler untuk ArithmeticException.
Program 10-4
Modul PBO – Teknokrat
101
public class contoh1 {
public static void main(String [] args) {
int bil1 = 10;
int bil2 = 0;
try {
int hasil = bil1 / bil2;
System.out.println("Hasil pembagian " + hasil);
} catch (ArithmeticException er) {
System.out.println("Pembagian dengan 0");
}
}
}
Hasil Output
Pembagian dengan 0
Dengan menangani exception maka program terhindar dari kerusakan. Sebelum isi dari catch
dieksekusi, obyek yang merepresentasikan exception diletakkan ke dalam variabel obj, yang berisi
data tentang exception.
Modul PBO – Teknokrat
102
Lembar Kerja Praktikum: Modul 10
NPM: Asisten:
Nama: Nilai:
Kelas: Tanggal:
Soal
[Score: 100] Setelah belajar mengenai event, coba tambahkan event-event dibalik semua tombol
Jbutton dari kelas Kalkulator yang sudah dibuat pada Lembar Kerja Praktikum Modul 8, sehingga
kalkulator dapat berjalan normal.

More Related Content

What's hot

Exception Handling
Exception HandlingException Handling
Exception HandlingDany Liu's
 
Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingIndividual Consultants
 
Java (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingJava (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingMelina Krisnawati
 
4. Materi Java Eclipse 4
4. Materi Java Eclipse 44. Materi Java Eclipse 4
4. Materi Java Eclipse 4Ismail Akbar
 
Tugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi ObjekTugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi ObjekPungkas Soebarkah
 
Pelatihan j query
Pelatihan j queryPelatihan j query
Pelatihan j queryoratmangun
 

What's hot (12)

Modul PBO Bab-09 - Swing
Modul PBO Bab-09 - SwingModul PBO Bab-09 - Swing
Modul PBO Bab-09 - Swing
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
Exception Handling
Exception HandlingException Handling
Exception Handling
 
14741 9 exception & assertion
14741 9 exception & assertion14741 9 exception & assertion
14741 9 exception & assertion
 
Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception Handling
 
Java (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingJava (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented Programming
 
8. OOP Java
8. OOP Java8. OOP Java
8. OOP Java
 
4. Materi Java Eclipse 4
4. Materi Java Eclipse 44. Materi Java Eclipse 4
4. Materi Java Eclipse 4
 
Tugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi ObjekTugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi Objek
 
Pengenalan Java Swing
Pengenalan Java SwingPengenalan Java Swing
Pengenalan Java Swing
 
Pelatihan j query
Pelatihan j queryPelatihan j query
Pelatihan j query
 
Jeni Intro2 Bab08 Gui Event Handling
Jeni Intro2 Bab08 Gui Event HandlingJeni Intro2 Bab08 Gui Event Handling
Jeni Intro2 Bab08 Gui Event Handling
 

Similar to Modul PBO Bab-10 - Event & Exception Handling

pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervanaris
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdfJurnal IT
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdfJurnal IT
 
Materi 3 Coding dan Testing aplikasi
Materi 3 Coding dan Testing aplikasiMateri 3 Coding dan Testing aplikasi
Materi 3 Coding dan Testing aplikasiRobby Firmansyah
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Debby Ummul
 
Laporan praktikum v visual basic
Laporan praktikum v visual basicLaporan praktikum v visual basic
Laporan praktikum v visual basicrahmi wahyuni
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdfJurnal IT
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdfJurnal IT
 
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERPemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERramadhani170488
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekKuncara Laksana
 
Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingKristanto Wijaya
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - ExceptionKuliahKita
 
Java Script Events
Java Script EventsJava Script Events
Java Script Eventsblact88
 
Pemrograman visual 1 materi 7
Pemrograman visual 1 materi 7Pemrograman visual 1 materi 7
Pemrograman visual 1 materi 7R.m. Diyandaru
 
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanJeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanUNIVERSITY Of LAMPUNG
 
Praktikum fix 2
Praktikum fix 2Praktikum fix 2
Praktikum fix 2inggar tri
 

Similar to Modul PBO Bab-10 - Event & Exception Handling (20)

pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervan
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
 
Materi 3 Coding dan Testing aplikasi
Materi 3 Coding dan Testing aplikasiMateri 3 Coding dan Testing aplikasi
Materi 3 Coding dan Testing aplikasi
 
7. Event.pptx
7. Event.pptx7. Event.pptx
7. Event.pptx
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
 
Laporan praktikum v visual basic
Laporan praktikum v visual basicLaporan praktikum v visual basic
Laporan praktikum v visual basic
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdf
 
11_GUI Pada Java.pdf
11_GUI Pada Java.pdf11_GUI Pada Java.pdf
11_GUI Pada Java.pdf
 
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLERPemograman Java Visual MATERI 2 tentang EVENT HANDLER
Pemograman Java Visual MATERI 2 tentang EVENT HANDLER
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
 
Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handling
 
Jeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 JsfJeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 Jsf
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - Exception
 
Java Script Events
Java Script EventsJava Script Events
Java Script Events
 
Pemrograman visual 1 materi 7
Pemrograman visual 1 materi 7Pemrograman visual 1 materi 7
Pemrograman visual 1 materi 7
 
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik TambahanJeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
 
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanJeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahan
 
Laporan pboii 2yosa
Laporan pboii 2yosaLaporan pboii 2yosa
Laporan pboii 2yosa
 
Praktikum fix 2
Praktikum fix 2Praktikum fix 2
Praktikum fix 2
 

More from Rakhmat Dedi Gunawan

Modul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & DeploymentModul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & DeploymentRakhmat Dedi Gunawan
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Rakhmat Dedi Gunawan
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Rakhmat Dedi Gunawan
 
Modul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar KelasModul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar KelasRakhmat Dedi Gunawan
 
Modul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur KontrolModul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur KontrolRakhmat Dedi Gunawan
 
Modul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaModul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaRakhmat Dedi Gunawan
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Rakhmat Dedi Gunawan
 
Chapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek BaruChapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek BaruRakhmat Dedi Gunawan
 
Chapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiChapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiRakhmat Dedi Gunawan
 

More from Rakhmat Dedi Gunawan (19)

Modul PBO Bab-00 - Daftar Isi
Modul PBO Bab-00 - Daftar IsiModul PBO Bab-00 - Daftar Isi
Modul PBO Bab-00 - Daftar Isi
 
Modul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & DeploymentModul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & Deployment
 
Modul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBCModul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBC
 
Modul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUIModul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUI
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)
 
Modul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar KelasModul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar Kelas
 
Modul PBO Bab-03 - Kelas & Objek
Modul PBO Bab-03 - Kelas & ObjekModul PBO Bab-03 - Kelas & Objek
Modul PBO Bab-03 - Kelas & Objek
 
Modul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur KontrolModul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur Kontrol
 
Modul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaModul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan Java
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
 
Chapter 01 - Pembuatan Database
Chapter 01 - Pembuatan DatabaseChapter 01 - Pembuatan Database
Chapter 01 - Pembuatan Database
 
Chapter 03 - Form Master
Chapter 03 - Form MasterChapter 03 - Form Master
Chapter 03 - Form Master
 
Chapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek BaruChapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek Baru
 
Chapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiChapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report Kwitansi
 
T04-Stored Procedure
T04-Stored ProcedureT04-Stored Procedure
T04-Stored Procedure
 
T05-Trigger
T05-TriggerT05-Trigger
T05-Trigger
 
T02-Join & View
T02-Join & ViewT02-Join & View
T02-Join & View
 
Teori pbd - erd_studi_kasus (1)
Teori pbd - erd_studi_kasus (1)Teori pbd - erd_studi_kasus (1)
Teori pbd - erd_studi_kasus (1)
 

Modul PBO Bab-10 - Event & Exception Handling

  • 1. Modul PBO – Teknokrat 94 EVENT DAN EXCEPTION HANDLING Tujuan Praktikan dapat memahami dan menjelaskan konsep event dan exception handling dalam perograman serta dapat mengimplementasikan ke dalam pemrograman Java. EVENT HANDLER Ketika pengguna menuliskan karakter atau menekan button atau mengklik mouse maka akan timbul event. Event adalah obyek yang mendeskripsikan suatu kejadian (peristiwa yang tejadi). Contohnya ketika pengguna melakukan aksi terhadap kompenen user interface (misalnya meng-klik mouse pada tombol), maka tindakan tersebut akan memunculkan sebuah event. Beberapa istilah dalam event handling: · Event source: adalah pembangkit sebuah event, misalnya mouse click pada button akan membangkitkan sebuah ActionEvent dengan button sebagai event source-nya. · Event handler: adalah sebuah method yang menerima sebuah obyek event, menerjemahkannya, dan kemudian memproses interaksi pengguna. · Event listener: Swing menghandle event dengan sekumpulan interface yang disebut dengan Event Listeners. Setiap kategori event, terdapat sebuah interface listener yang bersesuaian. Listener tersebut harus diimplementasikan oleh kelas dari obyek yang akan menerima event tersebut. Listener ini akan menentukan method mana yang harus didefinisikan dalam sebuah kelas yang sesuai untuk menerima tipe event tersebut. Method-method ini kemudian akan dipanggil ketika event yang bersangkutan terjadi. Tabel berikut adalah kategori event, interface, dan method-nya. Tabel 8. 1 Kategori Nama Interface Method Action ActionListener actionPerformed(ActionEvent) Item ItemListener itemStateChanged(Item Mouse MouseListener mousePressed(MouseEvent) mouseReleased(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mouseClicked(MouseEvent) Mouse Motion MouseMotionListener mouseDragged(MouseEvent) mouseMoved(MouseEvent) Key KeyListener keyPressed(KeyEvent) 10 BAB
  • 2. Modul PBO – Teknokrat 95 keyReleased (KeyEvent) keyTyped (KeyEvent) Focus FocusListener focusGained(FocusEvent) focusLost (FocusEvent) Adjustment AdjustmentListener adjustmentValueChanged(AdjustmentEvent) Component ComponentListener componentMoved(ComponentEvent) componentHidden(ComponentEvent) componentResized(ComponentEvent) componentShown(ComponentEvent) Window WindowListener windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified (WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated (WindowEvent) Container ContainerListener componentAdded(ContainerEvent) componentRemoved(ContainerEvent) Text TextListener textValueChanged(TextEvent) Langkah-langkah untuk mengimplementasikan event handler secara umum adalah: · Pada deklarasi class event handler harus meng-implements sebuah interface listener atau class tersebut meng-extends sebuah class yang meng-implements sebuah interface listener. Contoh: public class namaKelas implements ActionListener { · Daftarkan instan dari class event handler sebagai listener pada satu atau beberapa komponen. Contoh: komponen.addActionListener(instanceOfNamaKelas); · Tuliskan method yang mengimplementasikan interface listener tersebut. Contoh: public void actionPerformed(ActionEvent event) { // tuliskan kode program event yang terjadi } Berikut adalah contoh kode program dengan Event Sederhana: Program 10-1 // MinPlus.java import java.awt.*; import java.awt.event.*; import javax.swing.*;
  • 3. Modul PBO – Teknokrat 96 public class MinPlus implements ActionListener { private JFrame fr; private int num; private JButton btnPlus, btnMin; private JLabel numL; public MinPlus() { num = 0; buatFrame(); fr.setVisible(true); } private void buatFrame() { fr = new JFrame("Event Sederhana"); fr.setSize(250, 100); JPanel pn = (JPanel) fr.getContentPane(); pn.setLayout(new BorderLayout()); JPanel p = new JPanel(); btnMin = new JButton("-"); // mendaftarkan actionListener pada tombol btnMin btnMin.addActionListener(this); p.add(btnMin); // mengaitkan button ke panel p btnPlus = new JButton("+"); // mendaftarkan actionListener pada tombol btnPlus btnPlus.addActionListener(this); p.add(btnPlus); // mengaitkan button ke panel p pn.add(p, BorderLayout.NORTH); // mengaitkan panel p ke panel pn numL = new JLabel("0", SwingConstants.CENTER); pn.add(numL, BorderLayout.CENTER); } public void tambah() { num++; } public void kurang() { num--; } public void actionPerformed(ActionEvent event) { String opr = event.getActionCommand(); if(opr.equals("-")) { this.kurang(); } else { this.tambah(); } numL.setText(Integer.toString(num)); } public static void main(String [] args) { new MinPlus(); } }
  • 4. Modul PBO – Teknokrat 97 Hasil Output Berdasarkan hasil output di atas, event yang terjadi adalah ketika pengguna mengklik tombol ‘+’ maka nilai akan bertambah dan sebaliknya jika tombol ‘-‘ yang diklik maka nilai akan berkuran. Program 10-2 // EventSederhana.java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class EventSederhana { private JFrame frame; JLabel lblnama=new JLabel("Nama"); JTextField txnama=new JTextField(20); JLabel lblnim=new JLabel("NIM"); JTextField txnim=new JTextField(7); JLabel lblkelamin=new JLabel("Jenis Kelamin"); JRadioButton pria=new JRadioButton("Pria"); JRadioButton wanita=new JRadioButton("Wanita"); ButtonGroup kelompok=new ButtonGroup(); JLabel lblhobi=new JLabel("Hobi"); JCheckBox baca=new JCheckBox("Membaca"); JCheckBox mancing=new JCheckBox("Memancing"); JCheckBox jalan=new JCheckBox("Jalan-Jalan"); JButton cetak=new JButton("Cetak"); JTextArea hasil=new JTextArea(); public EventSederhana() { makeFrame(); frame.setVisible(true); AksiReaksi(); } private void makeFrame() { frame = new JFrame("Event Sederhana"); frame.setSize(300,330); komponenVisual(); }
  • 5. Modul PBO – Teknokrat 98 private void komponenVisual(){ JPanel panel = (JPanel)frame.getContentPane(); panel.setLayout(null); panel.add(lblnama); lblnama.setBounds(10,10,80,20); panel.add(txnama); txnama.setBounds(105,10,175,20); panel.add(lblnim); lblnim.setBounds(10,33,80,20); panel.add(txnim); txnim.setBounds(105,33,70,20); panel.add(lblkelamin); lblkelamin.setBounds(10,56,80,20); kelompok.add(pria); kelompok.add(wanita); panel.add(pria); pria.setBounds(105,56,50,20); panel.add(wanita); wanita.setBounds(160,56,70,20); panel.add(lblhobi); lblhobi.setBounds(10,80,70,20); panel.add(baca); baca.setBounds(105,80,100,20); panel.add(mancing); mancing.setBounds(105,103,100,20); panel.add(jalan); jalan.setBounds(105,126,100,20); panel.add(cetak); cetak.setBounds(10,150,270,20); JScrollPane scrollPane = new JScrollPane(hasil); panel.add(scrollPane); scrollPane.setBounds(10,180,270,100); } public void AksiReaksi() { cetak.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ hasil.append(txnama.getText()+"n"); hasil.append(txnim.getText()+"n"); if(pria.isSelected()==true){ hasil.append(pria.getText()+"n"); } else{ hasil.append(wanita.getText()+"n"); } if(baca.isSelected()==true){ hasil.append(baca.getText()+"n"); }
  • 6. Modul PBO – Teknokrat 99 if(mancing.isSelected()==true){ hasil.append(mancing.getText()+"n"); } if(jalan.isSelected()==true){ hasil.append(jalan.getText()+"n"); } } }); } public static void main(String [] args) { new EventSederhana(); } } Hasil Output EXCEPTION HANDLING Eksepsi (exception) adalah keadaan tidak normal yang muncul pada suatu bagian program pada saat dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan program saat dijalankan kedalam orientasi-objek. Eksepsi java adalah objek yang menjelaskan suatu keadaan eksepsi yang muncul pada suatu bagian program. Di dalam exception termasuk semua keadaan yang muncul di dalam program yang sedang dieksekusi. Sebuah exception dapat berupa error atau hanya kasus khusus. Exception dikatakan telah dilempar (exception is throw) ketika sebuah exception muncul selama program dieksekusi. Ketika ini terjadi program diberhentikan dan program bisa rusak. Bagaimanapun, kegagalan program dapat dihindari jika exception yang dilempar dapat ditangkap dan dikelola sebagaimana mestinya. Sebuah exception dapat dilempar di suatu bagian program dan
  • 7. Modul PBO – Teknokrat 100 dapat ditangkap di bagian lain dari program tersebut. Exception yang tidak ditangkap akan membuat program gagal. Contoh: Jika terjadi pembagian dengan nol atau membuka file yang tidak ada, maka exception akan muncul. Ketika sebuah error muncul di dalam method, Java membuat sebuah obyek Exception. Setelah membuat obyek exception, Java mengirimkannya ke program dengan melemparkan exception (throwing exception). Exception yang dilempar perlu ditangani menggunakan exception handler dan diproses. STATEMENT TRY DAN CATCH Untuk menangkap exception di dalam program java, diperlukan Statement try. Blok Statement try membingkai kode yang kemungkinan akan memunculkan exception dan mendefinisikan exception handler yang dapat menanganinya. Blok catch digunakan sebagai exception handler. Blok try harus mempunyai minimal satu buah blok catch yang mengikutinya. Klausa catch menspesifikasikan tipe exception yang akan ditangani. Lingkup dari blok catch dibatasi oleh Statement yang ada di dalam blok try. Statement untuk mendeklarasikan blok try catch: try { // statement yang menyebabkan exception } catch(<exception name> <object name>) { // statement penanganan error } Komputer akan mengeksekusi statement yang ada di dalam blok try. Jika tidak ada exception yang muncul ketika dieksekusi maka Statement catch tidak akan di jalankan. Jika sebuah exception muncul maka blok catch akan langsung dijalankan. Contoh: Program 10-3 public class contoh1 { public static void main(String [] args) { int bil1 = 10; int bil2 = 0; int hasil = bil1 / bil2; System.out.println("Hasil pembagian " + hasil); } } Jika program diatas di compile maka tidak ada error, tetapi setelah dieksekusi, handler pada Java runtime sistem akan melempar sebuah exception ketika terjadi pembagian dengan nol sehingga akan dibuat sebuah obyek dari kelas exception yang dilempar yaitu ArithmeticException. Hasil Output Exception in thread "main" java.lang.ArithmeticException: / by zero at contoh1.main(contoh1.java:5) Pada contoh di atas karena muncul exception ArithmeticException maka akan dibuatkan exception handler untuk ArithmeticException. Program 10-4
  • 8. Modul PBO – Teknokrat 101 public class contoh1 { public static void main(String [] args) { int bil1 = 10; int bil2 = 0; try { int hasil = bil1 / bil2; System.out.println("Hasil pembagian " + hasil); } catch (ArithmeticException er) { System.out.println("Pembagian dengan 0"); } } } Hasil Output Pembagian dengan 0 Dengan menangani exception maka program terhindar dari kerusakan. Sebelum isi dari catch dieksekusi, obyek yang merepresentasikan exception diletakkan ke dalam variabel obj, yang berisi data tentang exception.
  • 9. Modul PBO – Teknokrat 102 Lembar Kerja Praktikum: Modul 10 NPM: Asisten: Nama: Nilai: Kelas: Tanggal: Soal [Score: 100] Setelah belajar mengenai event, coba tambahkan event-event dibalik semua tombol Jbutton dari kelas Kalkulator yang sudah dibuat pada Lembar Kerja Praktikum Modul 8, sehingga kalkulator dapat berjalan normal.