MODUL 7 - EXCEPTION HANDLING

dokumen-dokumen yang mirip
PRAKTIKUM 17 MENANGANI EXCEPTION

PRAKTIKUM 6 EXCEPTION

Definisi Eksepsi (exception)

//PROGRAM 9-8. int[] A = new int[5]; // SALAH, karena tidak terdapat. class BanyakEksepsi { indeks ke-5. public static void test(int a, int b) { try {

Exception Handling. Oleh : Agus Priyanto, M.Kom

Penjebakan Eksepsi. Nur hasanah, M.Cs

Pemrograman Berorientasi Object

MODUL 9 EXCEPTION HANDLING

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

Percobaan 6 Exception

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

Tujuan Intruksional. Mampu menjelaskan tentang event handling Mampu menjelaskan tentang method Mampu menggunakan event handling Mampu membuat method

PERCOBAAN 6 EXCEPTION

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

GUI & Event Handling. Viska Mutiawani, M.Sc

Modul 4 Exception, I/O, dan Operasi File

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

Membuat User Interface dengan Swing. Program yang dibuat sebelumnya selalu berbasis console User lebih senang berinteraksi dengan

I. JUDUL. Exception Handling. Jenis-Jenis error. Exception PRAKTIKUM 12. Exception Handling

03/04/2018. Pemrograman Berorientasi Object

Exception. Oleh: Mike Yuliana PENS-ITS

Topik. Penanganan Eksepsi. Menangkap Eksepsi. Catch Secara bertingkat. Melontarkan Eksepsi. Melontarkan kembali Eksepsi.

Pemrograman Lanjut Exception Handling PTIIK

Exception Handling. Prepared by Viska Mutiawani. 1

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

PEMROGRAMAN BERORIENTASI OBJEK

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

IKG2I4 / Software Project I

MODUL PRAKTIKUM KE 3 A.

Membuat Menu Login Sederhana [Full Coding]

Materi : GUI AWT & SWING.

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

Penanganan Kesalahan

public class Test { int i = 6; int j = 3; System.out.println(i/j); } Output :

Pemrograman Berorientasi. Exception Handling

PEMROGRAMAN JAVA : EXCEPTION

1.Tujuan. 2. Latar Belakang

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

PEMROGRAMAN BERORIENTASI OBJEK

A. TUJUAN PEMBELAJARAN

Graphical User Interface (GUI)

BAB IX. USER INTERFACE

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

visit :

BAB 5 Mendapatkan Input dari Keyboard

Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

A. TUJUAN PEMBELAJARAN

Bahasa Pemrograman 2.

Praktikum 9 Exception Handling

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

PRAKTIKUM I EXCEPTION HANDLING

Input Nilai tanpa Case String di Java

Exception Handling. Topik

EXCEPTION HANDLING. Bug : kesalahan yang merupakan kelemahan dari perancangan atau implementasi

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

Lab Bahasa Pemrograman 2

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

PERTEMUAN VI AWT DAN SWING TUJUAN PRAKTIKUM. 1. Praktikan mengenal pembuatan GUI pada Java. 2. Praktikan memahami action pada objek dalam Java.

IF PEMROGRAMAN LANJUT EVENT. Oleh : Andri Heryandi, M.T.

Materi 5 Pemrograman Visual

BAB 2 INPUT DARI KEYBOARD

Exception Handling Lanjutan

GUI (Grapichal User Interface)

BAB Tujuan. 2.2 Apa itu Exception? Pendahuluan Error dan Exception Classes

PERTEMUAN 3 OBJEK DAN CLASS

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

PEMOGRAMAN JAVA. Yoannita. Tipe Data (ii) : Array Exception Handling

Pengenalan JavaScript

Pemrograman Berbasis Java PERSEWAAN PELAMPUNG. Riska Nony Oktaviani Kelas 21 Teknik Informatika Teknologi Informasi

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Pemrograman Java. Pertemuan VIII By: Augury

BAB 5 Mendapatkan Input dari Keyboard

GUI Event Handling. minggu 13. Wednesday, 16 May 12

BAB II. Manggunakan JComboBox

4/11/2013. Topik. Exceptions dan Assertions Pengenalan Pemrograman 2. Topik. Topik EXCEPTIONS. Class Error dan Exception

SISTEM INFORMASI PENJUALAN SATE BERBASIS JAVA. Disusun oleh : Rahmat Hidayat

Materi 1 Pemrograman Visual

TUGAS PEMROGRAMAN BERBASIS JAVA ADARA HIJAB

2 TIPE DATA DAN VARIABEL

PEMROGRAMAN BERORIENTASI OBJEK

Membuat Kalkulator dengan Java

Paket dan Interface. 15 th week Estu Sinduningrum ST,MT

Percobaan 7 GUI(Graphical User Interface )

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Exception Handling and Multithreading

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

SISTEM INFORMASI PENJUALAN OBAT BERBASIS JAVA. Disusun oleh : Rozy Putra Pratama

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

BAB II VARIABEL DAN TIPE DATA

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

A. TUJUAN PEMBELAJARAN

Anonymous Inner Class

Tugas Pemrograman Java P7 EL Event Handler & Menu. Disusun oleh: RIDLO PAMUJI / 22

Praktikum Exception Handling

GRAPHICAL USER INTERFACE (GUI)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Transkripsi:

DESKRIPSI MATERI Modul 7 yang berjudul Exception Handling ini memaparkan tentang bagaimana cara menangkap kesalahan saat program dijalankan agar jalannya program tidak keluar begitu saja dari alur yang ditentukan. Beberapa kata kunci yang digunakan diantaranya adalah try, catch, finally, throw, dan throws. Selain itu, di sini juga diperkenalkan penggunaan komponen Swing berupa list dan combo box serta cara menghubungkan beberapa frame dalam sebuah program. PETUNJUK KHUSUS Urutan jalannya program diatur dalam method main dan exception handling akan membaca pengecualian sesuai dengan urutan tersebut. Untuk menangkap kesalahan saat program dijalankan, maka Anda harus mengetahui bagian mana yang mungkin mengalami kesalahan dan memasukkannya dalam blok try sehingga saat kesalahan terjadi dapat ditangkap oleh blok catch.

MODUL 7 EXCEPTION HANDLING A. Alokasi Waktu Pertemuan : 13 dan 14 Jam Studi : 2 x 4 JS (8 x 50 menit) B. Kompetensi Dasar Mengaplikasikan exception handling. C. Tujuan Praktikum 1. Menerapkan konsep exception handling. 2. Menangkap exception. 3. Membuat catch secara bertingkat. 4. Melemparkan exception. 5. Menggunakan klausa throws. 6. Membuat class exception sendiri. 7. Menggunakan class JList dan JComboBox. D. Dasar Teori 1. Konsep exception handling. Kategori error dalam pemrograman diantaranya: a. Compilation error, yaitu error yang terjadi saat program dikompilasi. b. Runtime error, yaitu error yang terjadi saat program dieksekusi/dijalankan. c. Logic error, yaitu error yang terjadi saat program tidak berjalan sesuai dengan harapan. Exception (eksepsi atau pengecualian) adalah kondisi yang menyebabkan program menjadi hang (tergantung) atau quit (kaluar) dari alur normal yang telah ditentukan pada saat program dijalankan. Exception dipicu oleh runtime error, yaitu error atau kesalahan yang terjadi saat program dieksekusi oleh interpreter. Sedangkan exception handling (penanganan pengecualian) merupakan mekanisme untuk menangkap exception tersebut.

2. Hierarki class Exception. Gambar 7.1 Hierarki Exception 3. Keyword pada exception handling. Keyword pada exception handling diantaranya: a. Try. Blok try digunakan untuk menempatkan kode program yang mungkin menyebabkan terjadinya exception. b. Catch. Blok catch digunakan untuk menangkap kesalahan yang terjadi pada blok try. c. Finally. Blok finally akan selalu dijalankan, tidak peduli apakah terjadi exception atau tidak. d. Throw. Klausa throw digunakan untuk melemparkan exception yang terjadi. e. Throws. Klausa throws digunakan untuk mendeklarasikan method yang mungkin akan mengalami exception. 4. Pengenalan class JList dan JComboBox. Class JList merupakan class dari package javax.swing yang digunakan untuk membuat komponen berupa list atau daftar pilihan. Dengan menggunakan list, seluruh alternatif pilihan yang tersedia dapat ditampilkan secara bersamaan.

Class JComboBox merupakan class dari package javax.swing yang digunakan untuk membuat komponen berupa combo box atau kotak kombo yang berisi pilihan seperti pada list. Perbedaannya adalah dengan menggunakan combo box, seluruh alternatif pilihan yang tersedia ditampilkan seperti menu drop down. Oleh karena itu, combo box juga dikenal sebagai drop down list. E. Latihan 1. Program tanpa exception handling. public class WithoutExceptionHandling System.out.println("\n********* PROGRAM TANPA EXCEPTION HANDLING *********\n"); int hasil = 9/0; //penyebab exception System.out.println("Hasil pembagian = "+hasil); System.out.println("Pernyataan setelah bebas dari exception."); 2. Menangkap exception dengan blok try-catch. public class WithArithmeticException System.out.println("\n********* PROGRAM DENGAN EXCEPTION HANDLING *********\n"); try int hasil = 9/0; //penyebab exception System.out.println("Hasil pembagian = "+hasil); System.out.println("Pernyataan dalam blok try setelah bebas dari exception."); catch(arithmeticexception exc) System.err.println("ArithmeticException menangkap exception hasil pembagian oleh nol."); System.err.println("\nException yang ditangkap adalah : "+exc);

System.out.println("\nPernyataan di luar blok trycatch."); c. Buatlah pernyataan yang tidak menyebabkan exception sehingga pernyataan terakhir dalam blok try dapat ditampilkan! Lakukan kompilasi dan eksekusi program kemudian tunjukkan hasilnya! Berikan penjelasan singkat! 3. Membuat blok try-catch-finally. public class TryCatchFinally System.out.println("\n********* MENGGUNAKAN BLOK TRY- CATCH-FINALLY *********\n"); try int hasil = 9/0; //penyebab exception System.out.println("Hasil pembagian = "+hasil); System.out.println("Pernyataan dalam blok try setelah bebas dari exception."); catch(arithmeticexception exc) System.err.println("ArithmeticException menangkap exception hasil pembagian oleh nol."); System.err.println("\nException yang ditangkap adalah : "+exc); finally System.out.println("\nPernyataan dalam blok finally."); System.out.println("\nPernyataan di luar blok try-catchfinally.");

4. Membuat catch secara bertingkat. public class MultipleCatch System.out.println("\n********* MENGGUNAKAN MULTIPLE CATCH *********\n"); try int[] array = new int[9]; //deklarasi array berukuran 9 buah elemen array[9] = 13; //penyebab exception System.out.println("Elemen array indeks ke 9 adalah "+array[9]); System.out.println("Pernyataan dalam blok try setelah bebas dari exception."); catch(arrayindexoutofboundsexception exc) System.err.println("Anda mengakses array di luar indeks yang dideklarasikan."); catch(negativearraysizeexception exc) System.err.println("Anda mendeklarasikan array dengan ukuran negatif."); catch(exception exc) System.err.println("Anda melakukan pembagian bilangan oleh nol."); c. Buatlah pernyataan yang tidak menyebabkan exception sehingga pernyataan terakhir dalam blok try dapat ditampilkan! Lakukan kompilasi dan eksekusi program kemudian tunjukkan hasilnya! Berikan penjelasan singkat! d. Buatlah pernyataan yang mengandung exception sehingga blok catch (NegativeArraySizeException exc) dijalankan! Lakukan kompilasi dan eksekusi program kemudian tunjukkan hasilnya! Berikan penjelasan singkat!

e. Buatlah pernyataan yang mengandung exception sehingga blok catch (Exception exc) dijalankan! Lakukan kompilasi dan eksekusi program kemudian tunjukkan hasilnya! Berikan penjelasan singkat! f. Pindahkan letak blok catch(exception exc) di bagian sebelum blok catch(arrayindexoutofboundsexception exc)! Lakukan kompilasi program kemudian tunjukkan hasilnya! Apakah blok catch (Exception exc) harus diletakkan di bagian terakhir dalam multiple exception? Jelaskan! 5. Melemparkan exception dengan klausa throw. public class KlausaThrow String input = "Throw RuntimeException"; System.out.println("\n********* MENGGUNAKAN KLAUSA THROW *********\n"); try if(input.equals("throw RuntimeException")) throw new RuntimeException("Melempar Exception"); else if(input==null) throw new NullPointerException(); else System.out.println("Input adalah : "+input); System.out.println("\nPernyataan dalam blok try setelah bebas dari pelemparan exception."); catch(exception exc) System.err.println("Exception ditangkap di sini."); System.err.println("\nException yang ditangkap adalah : "+exc);

c. Buatlah pernyataan yang dapat menjalankan blok else if(input== null)! Lakukan kompilasi dan eksekusi program kemudian tunjukkan hasilnya! Berikan penjelasan singkat! d. Buatlah pernyataan yang dapat menjalankan blok else! Lakukan kompilasi dan eksekusi program lalu tunjukkan hasilnya! Berikan penjelasan singkat! 6. Menggunakan klausa throws. public class KlausaThrows public static void uji(int angka) throws NullPointerException, ArithmeticException if(angka<0) throw new NullPointerException("KESALAHAN : Null Pointer Exception"); else throw new ArithmeticException("KESALAHAN : Arithmetic Exception"); System.out.println("\n********* MENGGUNAKAN KLAUSA THROWS *********\n"); try //uji(-12); //penyebab NullPointerException //uji(0); //penyebab ArithmeticException catch(exception exc) System.err.println("Exception ditangkap di sini"); System.err.println("\n\tPemberitahuan!!! \n"+exc.getmessage()); System.out.println("\nPernyataan di luar blok trycatch."); a. Lakukan kompilasi dan eksekusi program terhadap penyebab terjadinya NullPointerException dan ArithmeticException lalu tunjukkan hasilnya!

7. Membuat class exception sendiri. Kode program class CreateExceptionHandling: class CreateExceptionHandling extends Exception private int bilangan; CreateExceptionHandling() CreateExceptionHandling(String pesan) super(pesan); CreateExceptionHandling(String pesan, int nilai) super(pesan); bilangan = nilai; public int getbilangan() return bilangan; Kode program class TryExceptionHandling: public class TryExceptionHandling public static int hitungfaktorial(int n) throws CreateExceptionHandling if(n<0) throw new CreateExceptionHandling("Bilangan tidak boleh negatif", n); int hasil = 1; for(int i=n; i>=1; i--) hasil *= i; return hasil; System.out.println("\n********* MEMBUAT CLASS EXCEPTION SENDIRI *********\n"); try System.out.println("Pada saat menghitung 5!");

System.out.println("Hasil = "+hitungfaktorial(5)); System.out.println("\nPada saat menghitung -5!"); System.out.println("Hasil = "+hitungfaktorial(-5)); catch(createexceptionhandling exc) System.err.println("Bilangan = "+exc.getbilangan()); exc.printstacktrace(); c. Jelaskan fungsi perintah exc.printstacktrace();! 8. Menggunakan class JList. import javax.swing.*; import javax.swing.event.*; public class TryList extends JFrame implements ListSelectionListener private JList daftar; private JTextArea tarea; public TryList() super("menggunakan LIST"); setsize(350,125); String matakuliah[] = "Fisika Teknik", "Komputasi Numerik", "Matematika Diskrit"; //mengatur item pada list daftar = new JList(mataKuliah); //menugaskan objek daftar dari class JList daftar.setselectedindex(0); daftar.addlistselectionlistener(this); //mendeteksi event dari list tarea = new JTextArea(4,15); tarea.seteditable(false); JPanel p1 = new JPanel(); p1.add(daftar); add("west", p1); JPanel p2 = new JPanel(); p2.add(tarea); add("east", p2); setvisible(true); setdefaultcloseoperation(jframe.exit_on_close);

public void valuechanged(listselectionevent e) //menangani event tarea.settext("\nitem yang terpilih : \n"+daftar.getselectedvalue()); //menampilkan pilihan TryList frame = new TryList(); c. Jelaskan fungsi perintah daftar.setselectedindex(0);! 9. Menggunakan class JComboBox. import javax.swing.*; import java.awt.event.*; public class TryComboBox extends JFrame implements ActionListener private JComboBox daftar; private JTextArea tarea; public TryComboBox() super("menggunakan COMBO BOX"); setsize(350,125); String matakuliah[] = "Fisika Teknik", "Komputasi Numerik", "Matematika Diskrit"; //mengatur item pada combo box daftar = new JComboBox(mataKuliah); //menugaskan objek daftar dari class JComboBox daftar.addactionlistener(this); //mendeteksi event dari combo box tarea = new JTextArea(4,15); tarea.seteditable(false); JPanel p1 = new JPanel(); p1.add(daftar); add("west", p1); JPanel p2 = new JPanel(); p2.add(tarea); add("east", p2); setvisible(true); setdefaultcloseoperation(jframe.exit_on_close);

public void actionperformed(actionevent e) //menangani event JComboBox cbb = (JComboBox)e.getSource(); String keterangan = (String)cbb.getSelectedItem(); tarea.settext("\nitem yang terpilih : \n"+keterangan); //menampilkan pilihan TryComboBox frame = new TryComboBox(); 10. Menghubungkan frame. Kode program class Button1: import javax.swing.*; import java.awt.*; import java.awt.event.*; class Button1 extends JFrame implements ActionListener private JButton btnevent; private JLabel label; public Button1() super("show BUTTON 1"); setsize(300,200); JPanel panel = new JPanel(); panel.setlayout(new FlowLayout(FlowLayout.CENTER,0,50)); label = new JLabel("Menampilkan"); btnevent = new JButton("BUTTON 1"); panel.add(label); panel.add(btnevent); add("north", panel); btnevent.addactionlistener(this); setvisible(true); setdefaultcloseoperation(jframe.exit_on_close); public void actionperformed(actionevent e) if(e.getsource()==btnevent) Button2 frame = new Button2(); //menampilkan frame dari class Button2 setvisible(false); //menyembunyikan frame dari class Button1

Kode program class Button2: import javax.swing.*; import java.awt.*; import java.awt.event.*; class Button2 extends JFrame implements ActionListener private JButton btnevent; private JLabel label; public Button2() super("show BUTTON 2"); setsize(300,200); JPanel panel = new JPanel(); panel.setlayout(new FlowLayout(FlowLayout.CENTER,0,50)); label = new JLabel("Menampilkan"); btnevent = new JButton("BUTTON 2"); panel.add(label); panel.add(btnevent); add("south", panel); btnevent.addactionlistener(this); setvisible(true); setdefaultcloseoperation(jframe.exit_on_close); public void actionperformed(actionevent e) if(e.getsource()==btnevent) Button1 frame = new Button1(); //menampilkan frame dari class Button1 setvisible(false); //menyembunyikan frame dari class Button2 Kode program class TryFrame: public class TryFrame Button1 frame = new Button1(); //menampilkan frame dari class Button1

F. Tugas Praktikum 1. Membuat multiple catch dengan class exception handling sendiri. a. Buatlah sebuah program berbasis console di bidang perfilman dengan membuat class exception handling sendiri! Terapkan penggunaan class BufferedReader untuk membaca input data dari user! Gunakan blok try, minimal 3 catch dan finally! Lakukan kompilasi dan eksekusi program kemudian tunjukkan hasilnya! b. Berikan penjelasan terkait jalannya program yang Anda buat! 2. Menggunakan list dan combo box. a. Buatlah sebuah program berbasis GUI dengan memanfaatkan penggunaan list dan combo box! Buatlah lebih dari satu frame sehingga antara satu frame dengan frame yang lain dapat saling berhubungan! Tampilkan gambar yang berbeda sebagai akibat dari pemilihan item yang berbeda pada list atau combo box! Lakukan kompilasi dan eksekusi program kemudian tunjukkan hasilnya! b. Berikan penjelasan terkait jalannya program yang Anda buat! G. Tugas Rumah 1. Buatlah sebuah program login system yang meminta inputan username dan password dengan dilengkapi exeption handling. Rincian program sebagai berikut: Username boleh nama(string) atau angka(int) atau terdiri dari kombinasi nama dan angka Password boleh nama(string) atau angka (int) atau terdiri dari kombinasi nama dan angka Program akan menangkap dan menampilkan pesan apabila terjadi kesalahan saat proses login dilakukan. Contoh (Login Failed, Username / Password Salah) Program dapat menampilkan exeption ketika kita menambahkan tanda baca saat proses login. 2. Jelaskan megapa diperlukan exception handling 3. Jelaskan kapan kondisi yang tepat penggunaan exception handling pada program