Anda di halaman 1dari 6

PERTEMUAN KE – 7

EVENT HANDLING & EXCEPTION HANDLING

A. TUJUAN :
- Mampu membuat program dengan menggunakan mouse event
- Mampu membuat program dengan menggunakan keyboard event
- Mampu membuat exception handling

B. TEORI SINGKAT
Event handling adalah suatu kejadian yang memicu dijalankannya suatu kode program,
misalnya event action performed. Selain itu terdapat event yang dipicu oleh penekanan
tombol keyboard ataupun klik/scroll pada mouse. Key event dipicu ketika sebuah tombol
di keyboard ditekan, terdapat tiga method dari keyboard event: keyPressed, keyReleased
dan keyTyped. Ketiga metoda tersebut memerlukan kelas KeyAction sebagai argumen
dari parameternya.
metoda keyPressed untuk menangani event yang dipicu saat penekanan tombol apa saja
di keyboard, metoda keyReleased untuk menangani event ketika penekanan tombol
keyboard dilepas (setelah keyPressed atau keyTyped) dan metoda keyTyped untuk
menangani penekanan tombol apa saja yang bukan merupakan sebuah action key.
Action key merupakan tombol keyboard berupa tombol panah, Home, Page Up, End,
Page Down, tombol-tombol fungsi (function key seperti F1, F2 dan seterusnya), Pause,
Num Lock, Print Screen, Scroll Lock serta Caps lock.

Selain menggunakan keyboard penggunaan mouse juga sering digunakan untuk memicu
suatu event, yaitu:
- mouse entered : ketika mouse berada di atas area suatu komponen
- mouse exited : ketika mouse tidak lagi berada di atas area suatu komponen
- mouse clicked : ketika tombol mouse ditekan dan dilepas
- mouse pressed: ketika tombol mouse ditekan saat di atas suatu komponen
- mouse released: ketika tombol mouse dilepas saat berada di atas suatu
komponen.

Exception adalah sebuah masalah yang terjadi ketika program sudah pada tahap
eksekusi, bukan saat tahap compile. Sebuah exception terjadi karena beberapa
penyebab, misalnya: user memasukkan data yang tidak valid, file yang akan dibuka tidak

Pemrograman Desktop TI
ditemukan, koneksi yang belum tersambung atau tiba-tiba putus ditengah proses.
Terdapat tiga macam exception:
1. Checked Exception : adalah exception yang biasanya terjadi karena kesalahan
pengguna atau suatu masalah yang terjadi di luar perkiraan programmer.
Contohnya sebuah file yang akan dibuka tapi file tersebut tidak dapat ditemukan
maka exception terjadi. Kejadian seperti ini tidak terdeteksi pada saat tahap
kompilasi.
2. Runtime Exception : adalah exception yang mungkin bisa dihindari oleh
programmer. Kebalikan dari Checked Exception, bahwa Runtime Exception
diabaikan pada tahap kompilasi.
3. Errors : adalah masalah yang terjadi diluar kontrol user ataupun programmer.
Error sering diabaikan di dalam program karena anda tidak bisa menanganinya
secara keseluruhan. Contohnya: jika kapasitas di memori penuh. Error seperti
ini tidak terdeteksi pada tahap kompilasi

Hirarki kelas yang menangani exception:

Object Kelas paling tinggi dalam


menangani exception

Throwable

Error Exception

IOexception RuntimeException
….
Struktur penulisan exception adalah :
try {

Pemrograman Desktop TI
2
// blok program tempat menuliskan statement yang akan di uji apakan
ada kesalahan atau tidak
}
catch ( <tipe exception1> <nama variabel>) {
// blok program tempat menuliskan aksi program bila sebuah exception
terjadi
}
. . .
catch ( <tipe exception2> <nama variabel>) {
// blok program tempat menuliskan aksi program bila sebuah exception
terjadi
}
finally {
// blok program lanjutan
}
Ketentuan dalam membuat exception adalah:
a. Wajib membuat notasi blok
b. Setiap blok try boleh memiliki lebih dari satu blok catch dan hanya boleh memiliki
satu blok finally
c. Blok catch dan blok finally harus muncul bersama blok try
d. Blok try harus diikuti minimal satu blok catch, atau satu blok finally, atau kedua blok
catch dan finally
e. Setiap blok catch mendefinisikan penanganan exception. Di dalam header blok catch
terdapat satu argumen yang akan ditangani oleh blok exception. Exception harus
berasal dari class Throwable atau dari class turunannya.

C. PRAKTIK :
Praktik 1: mouse event dan keyboard event
1. Buat Form seperti di bawah ini. Beri nama dengan txtNim pada JTextField untuk
mengisikan nim dan beri nama txtNama pada JTextField untuk mengisikan nama

2. Tambahkan import package berikut ini

import java.awt.event.KeyEvent;

Pemrograman Desktop TI
3
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

3. Tambahkan kode program berikut ini di bawah tulisan “public class <namakelas>
extends javax.swing.JFrame”

DefaultTableModel model ;

4. Tambahkan kode program berikut ini di bawah tulisan “initComponents()”

model = (DefaultTableModel) jTable1.getModel();

5. Langkah ini adalah penggunaan key event. Klik kanan txtNim, lalu pilih events | key |
keyPressed. Ketikkan kode program berikut
if (evt.getKeyCode()== KeyEvent.VK_ENTER){
if ( txtNim.getText().isEmpty()){
JOptionPane.showMessageDialog(this, "NIM tidak boleh
kosong!!","Informasi",JOptionPane.INFORMATION_MESSAGE);
}
else txtNama.requestFocus();
}

6. Pada event actionPerformed komponen tombol simpan, ketikkan kode program


berikut ini :
String tNim=txtNim.getText();
String tNama=txtNama.getText();
String data[]={tNim,tNama};
// tambahkan ke tabel
model.addRow(data);
JOptionPane.showMessageDialog(this, "Simpan
Berhasil","Informasi",
JOptionPane.INFORMATION_MESSAGE);

7. Langkah ini adalah penggunaan mouse event Klik kanan pada jTable1, lalu pilih
event | mouse | mousePressed, ketikkan kode program berikut ini :

Pemrograman Desktop TI
4
if(evt.getClickCount()==2){
String nim = (String) jTable1.getValueAt(jTable1.getSelectedRow(), 0);
String nama=(String) jTable1.getValueAt(jTable1.getSelectedRow(), 1);
txtNim.setText(nim);
txtNama.setText(nama);
}

8. Run program. Cobalah dengan meletakkan kursor di txtNim, tanpa mengisi nim lalu
langsung tekan enter dari keyboard. Amati yang terjadi
9. Isikan beberapa data pada txtNim dan txtNama secara benar, lalu klik tombol
simpan.
10. Klik dua kali pada salah satu data yang ada di dalam table, lalu amati yan terjadi.

Praktik 2: Exception Handling


1. Buatlah form seperti di bawah ini. Beri nama komponen JTextField menjadi txtData1
dan txtData2.

2. Pada event action performed milik tombol tampilkan, ketikkan kode program berikut:
1. try{
2. int data1=Integer.parseInt(txtData1.getText());
3. int data2=Integer.parseInt(txtData2.getText());
4. int data[]={data1,data2};
5. //ubah bagian di bawah ini
6. lbHasil.setText("Data input: "+data[0]+" dan "+data[1]);
7.
8. }catch(ArrayIndexOutOfBoundsException e){
9. JOptionPane.showMessageDialog(null,"Data tidak
ditemukan");
10. txtData1.setText(null);
11. txtData2.setText(null);
12. txtData1.requestFocus();

Pemrograman Desktop TI
5
13. }

3. Run program. Isikan data1 dan data 2, lalu tekan tombol tampilkan. Pada langkah ini
blok program catch tidak dieksekusi karena tidak ditemukan kesalahan.

4. Ubah program pada baris ke-6 menjadi :


lbHasil.setText("Data input: "+data[0]+" dan "+data[2]);

maka bagian catch dieksekusi karena array data index ke-2 tidak ditemukkan. Kelas
ArrayIndexOutOfBoundsException adalah kelas yang digunakan untuk mengecek indek suatu
array.

D. LATIHAN

E. TUGAS :

 Tugas diberikan oleh dosen pengampu pada akhir praktikum.


 Dikerjakan di rumah dan dilampirkan pada laporan.

Pemrograman Desktop TI
6

Anda mungkin juga menyukai