Praktikum 9 Exception Handling

dokumen-dokumen yang mirip
PRAKTIKUM 6 EXCEPTION

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

MODUL 9 EXCEPTION HANDLING

PRAKTIKUM 17 MENANGANI EXCEPTION

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

PERCOBAAN 6 EXCEPTION

Percobaan 6 Exception

Pemrograman Berorientasi Object

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

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

Exception Handling. Oleh : Agus Priyanto, M.Kom

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

Exception. Oleh: Mike Yuliana PENS-ITS

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

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

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

Modul 4 Exception, I/O, dan Operasi File

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

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

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

Penjebakan Eksepsi. Nur hasanah, M.Cs

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

PEMROGRAMAN JAVA : EXCEPTION

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

Definisi Eksepsi (exception)

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

//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 {

IKG2I4 / Software Project I

Bahasa Pemrograman 2.

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

1.Tujuan. 2. Latar Belakang

Penanganan Kesalahan

Exception Handling. Prepared by Viska Mutiawani. 1

Pemrograman Berorientasi. Exception Handling

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

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

Pemograman Java. Yoannita, S.Kom. Argumen Command Line Exception Handling Package

PERTEMUAN 3 OBJEK DAN CLASS

Pemrograman Lanjut Exception Handling PTIIK

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

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

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

Exception Handling and Multithreading

Bahasa Pemrograman :: Dasar Pemrograman Java

PRAKTIKUM I EXCEPTION HANDLING

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

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

BAB 5 Mendapatkan Input dari Keyboard

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

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

Exception Handling. Topik

MODUL 7 - EXCEPTION HANDLING

Pemrograman Berorientasi. Class dan Obyek 2

Exception Handling Lanjutan

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

BAB 5 Mendapatkan Input dari Keyboard

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

SUMBER BELAJAR PENUNJANG PLPG

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

Modul Praktikum Pemrograman

Input Nilai tanpa Case String di Java

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Praktikum Exception Handling

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

EXCEPTION HANDLING. 1. Mampu menangani eksepsi 2. Mengetahui dan memahami tentang multithreading 3. Dapat membuat program tentang exception handling

2 TIPE DATA DAN VARIABEL

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

MATERI PRAKTIKUM 2 ARRAY

I/O (Input dan Output)

BAHASA PEMROGRAMAN JAVA

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

OPERASI FILE & EXCEPTION HANDLING. Herman Tolle

Cara Membaca File Text di JAVA

03/04/2018. Pemrograman Berorientasi Object

PEMROGRAMAN JAVA. Petunjuk Penulisan Program Token Aturan Penamaan Identifier Lingkungan /Scope dari variabel Tipe Data (i) Yoannita

BAB II VARIABEL DAN TIPE DATA

Membuat dan Menggunakan Class

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Modul Praktikum 4 Pemograman Berorientasi Objek

subclass class manapun private default protected public package yang sama

BAB 2 INPUT DARI KEYBOARD

Badiyanto, S.Kom., M.Kom. PBO java

Dasar Pemrograman Java

PENANGANAN EKSEPSI. class Exc0 { public static void main (String args[]) { int d = 0; int a = 42 / d; } }

PRAKTIKUM 8 FILE INPUT OUTPUT

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

TPI4202 e-tp.ub.ac.id

Dasar-Dasar Pemrograman Java

Pertemuan 2 Struktur Kontrol Percabangan

Pertemuan 3 Struktur Perulangan pada Java

Pertemuan 4 Array pada Java

Bahasa Pemrograman :: Polimorfism and Abstraction

PRAKTIKUM 7 DASAR INPUT OUTPUT

IKG2I4 / Software Project I

Transkripsi:

Praktikum 9 Exception Handling Tujuan Memahami dan menerapkan konsep penanganan error pada pemrograman berorientasi objek. Dasar Teori Exception merupakan subkelas dari kelas java.lang.throwable, bukalah dokumentasi java (java doc) untuk lebih menyakinkan anda. Karena Exception adalah sebuah kelas maka hakikatnya ketika program berjalan dan muncul sebuah bug atau kesalahan maka bug tersebut dapat dianggap sebuah object. Sehingga ketika object ini di tampilkan di layar maka java akan secara otomatis memanggil method tostring yang terdapat dalam object bertipe Exception ini. Java memberikan akses kepada developer untuk mengambil object bug yang terjadi ini dengan mekanisme yang dikenal Exception Handling. Exception handling merupakan fasilitas di java yang memberikan flexibilitas kepada developer untuk menangkap bug atau kesalahan yang terjadi ketika program berjalan. Contoh Exception Handling akan dibahas pada bagian berikutnya. Perbedaan antara Class Error dan Class Exception di java, seperti yang telah dijelaskan diatas bahwa kelas Exception merupakan kelas turunan dari kelas Throwable di package Java.Lang. Selain Exception, java.lang.throwable juga memiliki subclass yaitu class Error. Tentu, kita bertanya-tanya, sebetulnya apa sih perbedaan antara class Error dengan class Exception. Error dan exception pada dasarnya berbeda, error merupakan masalah yang muncul tapi tidak ada alasan yang kuat untuk menangkapnya. Sedangkan exception merupakan kesalahan kecil yang muncul dan ingin diperlakukan sesuai keinginan developer. Ada 5 keyword penting dalam java dalam hal exception handling : 1. Keyword biasanya digunakan dalam suatu block program. Keyword ini digunakan untuk mencoba menjalankan block program kemudian mengenai sasaran dimana munculnya kesalahan yang ingin diproses. Keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally yang akan dibahas pada point kedua dan ketiga. 2. catch Dalam java, keyword catch harus dipasangkan dengan. Kegunaan keyword catch adalah untuk menangkap kesalahan atau bug yang terjadi dalam block. Setelah 1

menangkap kesalahan yang terjadi maka programmer dapat melakukan hal apapun pada block catch sesuai keinginan programmer. Contoh penggunaan : public class A public static void main(string[] args) int a = 1 / 0; // berpotensi untuk menimbulkan kesalahan yaitu // pembagian dengan bilangan 0 System.out.println("perintah selanjutnya"); catch (Exception kesalahan) System.err.println(kesalahan); Perhatikan contoh diatas, ada beberapa hal penting yang perlu dilihat. Pertama, block program yang diyakini akan menimbulkan kesalahan maka ada di dalam block and catch. Kedua, kesalahan yang muncul akan dianggap sebagai object dan ditangkap catch kemudian di assign ke variable kesalahan dengan tipe Exception. Ketiga, perintah setelah munculnya kesalahan pada block tidak akan dieksekusi. Keyword catch juga dapat diletakan berulang-ulang sesuai dengan kebutuhan. Contoh penggunaan: public class A public static void main(string[] args) int a = 1/0; // berpotensi untuk menimbulkan kesalahan // yaitu pembagian dengan bilangan 0 System.out.println("perintah selanjutnya"); catch(nullpointerexception e) catch(arrayindexoutofboundsexception e) 3. finally Keyword finally merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada. Contoh implementasinya pada program : 2

public class A public static void main(string[] args) int a = 1/0; catch (Exception e) System.out.println( ada kesalahan yang muncul ); finally System.out.println( terima kasih telah menjalankan program ); Perhatikan kedua contoh diatas, block finally akan selalu dieksekusi meskipun adanya kesalahan atau tidak pada block. Berbeda dengan keyword catch keyword finally hanya dapat diletakan 1 kali setelah keyword. 4. throw Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual. Contoh program: public class A public static void main(string[] args) throw new Exception("kesalahan terjadi"); System.out.println(e); Seperti yang anda lihat pada program diatas, pada keyword throw new Exception( kesalahan terjadi ); akan melempar object bertipe exception yang merupakan subclass dari class Exception sehingga akan dianggap sebagai suatu kesalahan yang harus ditangkap oleh keyword catch. Perhatikan contoh berikut ini : public class A public static void main(string[] args) throw new B(); //cobalah hilangkan throw ganti dengan new B(); saja System.out.println(e); class B extends Exception 3

B() public String tostring() return object dengan tipe kelas B ; Program diatas telah mendefinisikan suatu kelas B extends dari kelas Exception. Ketika kita melakukan throw new B(); maka object dari kelas bertipe B ini akan dianggap kesalahan dan ditangkap oleh block catch. Sekarang jika anda menghilangkan keyword throw apa yang terjadi? 5. throws Keyword throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap error-nya. Cara mendefinisikannya dalam method adalah sebagai berikut : <method modifier> type method-name throws exception-list1, exceptio-list2,. Contoh Program : public class A public static void main(string[] args) f(); System.out.println(e); public static void f() throws NullPointerException,ArrayIndexOutOfBoundsException //implementasi method throw new NullPointerException(); //throw new ArrayIndexOutOfBoundsException(); Perhatikan contoh pengguaan keyword throws pada method. Ketika method tersebut dipanggil dalam block. Maka method tersebut akan membuat object yang merupakan subclass dari class Throwable dan method tersebut akan melemparkan kesalahan yang ada dalam block method kedalam block. Di dalam block, kesalahan tersebut kemudian ditangkap kedalam block catch. 4

Percobaan 1 Jalankan program dibawah ini, amati error yang terjadi. Kemudian perbaiki seperti pada program dibawahnya. public class Exception public static void main(string[] args) int a[]=new int[5]; a[5]=100; Pembetulan program: public class Exception public static void main(string[] args) int a[]=new int[5]; a[5]=100; System.out.println("Terjadi pelanggaran memory"); Percobaan 2 Jalankan program dibawah ini, amati error yang terjadi. Kemudian perbaiki seperti pada program dibawahnya. public class Exception2 public static void main(string[] args) int i=0; String greeting[]= "Hello World!", "No, I mean it!", "Hello World" ; while(i<4) System.out.println(greeting[i]); i++; 5

Pembetulan program: public class Exception2 public static void main(string[] args) int i=0; String greetings[]= "Hello World!", "No,I mean it!", "HELLO WORLD!" ; while(i<4) System.out.println(greetings[i]); i++; catch(arrayindexoutofboundsexception e) System.out.println("Resetting index value"); i=0; Percobaan 3 Jalankan program dibawah ini, amati error yang terjadi. Kemudian perbaiki seperti pada program dibawahnya. public class Exception3 public static void main(string[] args) int bil=10; System.out.println(bil/0); Pembetulan Program: public class Exception3 public static void main(string[] args) int bil=10; System.out.println(bil/0); System.out.println("Ini menghandle error yang terjadi"); 6

Pembetulan Program: public class CobaException3 public static void main(string[] args) int bil=10; System.out.println(bil/0); catch(arithmeticexception e) System.out.println("Terjadi Aritmatika error"); System.out.println("Ini menghandle error yang terjadi"); Percobaan 4 Jalankan program dibawah ini, amati error yang terjadi. Kemudian perbaiki seperti pada program dibawahnya. public class CobaException4 public static void main(string[] args) int bil=10; String b[]="a","b","c"; System.out.println(b[3]); System.out.println(bil/0); catch(arithmeticexception e) System.out.println("Terjadi Aritmatika error"); catch(arrayindexoutofboundsexception e) System.out.println("Melebihi jumlah array"); System.out.println("Ini menghandle error yang terjadi"); Pembetulan Program: public class CobaException4 public static void main(string[] args) int bil=10; String b[]="a","b","c"; System.out.println(bil/0); 7

System.out.println(b[3]); catch(arithmeticexception e) System.out.println("Terjadi Aritmatika error"); catch(arrayindexoutofboundsexception e) System.out.println("Melebihi jumlah array"); System.out.println("Ini menghandle error yang terjadi"); Percobaan 5 Jalankan program dibawah ini, berikan analisa penggunaan dan catch pada program dibawah ini. public class Exception5 public static void main(string[] args) int bil=10; System.out.println(bil/0); catch(arithmeticexception e) System.out.println("Pesan error: "); System.out.println(e.getMessage()); System.out.println("Info stack erase"); e.printstacktrace(); e.printstacktrace(system.out); System.out.println("Ini menghandle error yang terjadi"); Percobaan 6 Jalankan program dibawah ini, berikan analisa penggunaan dan catch pada program dibawah ini. public class ThrowExample static void demo() NullPointerException t; t=new NullPointerException("Coba Throw"); throw t; 8

// Baris ini tidak lagi dikerjakan; System.out.println("Ini tidak lagi dicetak"); public static void main(string[] args) demo(); System.out.println("Selesai"); catch(nullpointerexception e) System.out.println("Ada pesan error: "+e); Percobaan 7 Jalankan program dibawah ini, berikan analisa penggunaan dan catch pada program dibawah ini. public class ThrowExample2 public static void main(string[] args) throw new Exception("Here's my Exception"); System.out.println("Caught Exception"); System.out.println("e.getMessage():"+e.getMessage()); System.out.println("e.toString():"+e.toString()); System.out.println("e.printStackTrace():"); e.printstacktrace(); Percobaan 8 Jalankan program dibawah ini, berikan analisa penggunaan throws pada program dibawah ini. import java.io.*; public class Test3 public void methoda() System.out.println("Method A"); public void methodb() throws IOException System.out.println(20/0); System.out.println("Method B"); 9

class Utama public static void main(string[] args) throws IOException Test3 c=new Test3(); c.methoda(); c.methodb(); Kemudian coba ubah class utama diatas dengan yang program baru di bawah ini: class Utama public static void main(string[] args) Test3 o=new Test3(); o.methoda(); o.methodb(); System.out.println("Error di Method B"); finally System.out.println("Ini selalu dicetak"); ; Percobaan 9 Jalankan program membalik string (reverse) berikut ini, coba hapus isi dari method reverse ( This is a string ) kemudian jalankan kembali. class Propagate public static void main(string[] args) System.out.println(reverse("This is a string")); System.out.println("The String was blank"); finally System.out.println("All done"); public static String reverse(string s) throws Exception if(s.length()==0) 10

throw new Exception(); String reversestr = ""; for(int i=s.length()-1 ; i>=0 ; --i) reversestr+=s.charat(i); return reversestr; Percobaan 10 Program berikut ini menerapkan IOException ketika membuat objek dari class RandomAccessFile (java.io) yang menghasilkan file txt. class RandomAccessRevisi public static void main(string[] args) String booklist[]="satu","dua","tiga"; int yearlist[]=1920,1230,1940; RandomAccessFile books = new RandomAccessFile ("books.txt","rw"); for(int i=0;i<3;i++) books.writeutf(booklist[i]); books.writeint(yearlist[i]); books.seek(0); System.out.println(books.readUTF()+" "+books.readint()); System.out.println(books.readUTF()+ " "+books.readint()); books.close(); catch(ioexception e) System.out.println("Indeks melebihi batas"); System.out.println("test"); Percobaan 11 Program berikut ini menunjukkan proses throw and catch pada class yang extends Throwable. class RangeErrorException extends Throwable public RangeErrorException(String s) super(s); 11

public static void main(string[] args) int position=1; if(position>0) throw new RangeErrorException("Position " +position); catch(rangeerrorexception e) System.out.println("Range error: " +e.getmessage()); System.out.println("This is the last program."); Percobaan 12 Program berikut ini menunjukkan proses throw and catch pada class yang extends Exception. class MyException extends Exception private String Teks; MyException(String s) Teks="Exception generated by: "+s; System.out.println(Teks); class Eksepsi static void tampil(string s)throws Exception System.out.println("Tampil"); if(s.equals("amir")) throw new MyException(s); System.out.println("OK!"); public static void main(string[] args)throws Exception tampil("ali"); tampil("amir"); catch(myexception ex) System.out.println("Tangkap:"+ex); 12