PRAKTIKUM 6 EXCEPTION

dokumen-dokumen yang mirip
Percobaan 6 Exception

PERCOBAAN 6 EXCEPTION

PRAKTIKUM 17 MENANGANI EXCEPTION

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

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

Exception. Oleh: Mike Yuliana PENS-ITS

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Exception Handling. Topik

Pemrograman Berorientasi Object

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

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

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

Exception Handling. Oleh : Agus Priyanto, M.Kom

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

Praktikum 9 Exception Handling

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

03/04/2018. Pemrograman Berorientasi Object

Modul 4 Exception, I/O, dan Operasi File

Exception Handling. Prepared by Viska Mutiawani. 1

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

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

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

PERTEMUAN 3 OBJEK DAN CLASS

Definisi Eksepsi (exception)

MODUL 9 EXCEPTION HANDLING

IKG2I4 / Software Project I

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

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

Praktikum Exception Handling

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

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

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

Penjebakan Eksepsi. Nur hasanah, M.Cs

Exception Handling Lanjutan

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

PEMROGRAMAN JAVA : EXCEPTION

MODUL 7 - EXCEPTION HANDLING

Penanganan Kesalahan

1.Tujuan. 2. Latar Belakang

Pemrograman Lanjut Exception Handling PTIIK

PRAKTIKUM I EXCEPTION HANDLING

Pemrograman Berorientasi. Exception Handling

Bahasa Pemrograman 2.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

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

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

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

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

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

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

Inheritance (Pewarisan) Pengertian dasar inheritance

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

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

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

Abstract Class dan Interface. Viska Mutiawani, M.Sc

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

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

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

PEMAHAMAN DASAR DASAR JAVA

SUMBER BELAJAR PENUNJANG PLPG

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

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

Cara Membaca File Text di JAVA

2 TIPE DATA DAN VARIABEL

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

CHAPTER #5 DEBUGGING AND EXCEPTION HANDLING

Exception Handling and Multithreading

Array Multidimensi. Pemrograman Dasar. Java

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

BAB II VARIABEL DAN TIPE DATA

BAB 8 Argumen dari Command-line

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

I/O (Input dan Output)

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

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

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

Gambar 1: Hirarki class

PEMROGRAMAN BERORIENTASI OBJEK

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

Modul Praktikum 4 Pemograman Berorientasi Objek

Pemrograman Berorientasi. Class dan Obyek 2

Modul Praktikum Pemrograman

Algoritma Pemrograman 1

Pemrograman Berorientasi Objek 2

Modul Tutorial C# 2 DASAR PEMROGRAMAN C# : STATEMENT DAN OPERATOR ENRICO BUDIANTO MICROSOFT INNOVATION CENTER UNIVERSITAS INDONESIA

Inheritance dan Kata Kunci static

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Konsep Lanjut Pemrograman Objek

Modul Praktikum Bahasa Pemrograman 1

BAB 8 Argumen dari Command-line

PRAKTIKUM 8 FILE INPUT OUTPUT

Modul Bahasa Pemrograman 1

Transkripsi:

PRAKTIKUM 6 EXCEPTION A. TUJUAN Memahami konsep, tipe, dan cara penanganan eksepsi. Memahami cara melontar dan menangkap eksepsi. Memahami konsep try catch dan catch secara bertingkat. Memahami klausa throws. B. DASAR TEORI Pemahaman Dasar Eksepsi (exeption) adalah suatu mekanisme yang digunakan oleh beberapa bahasa pemrograman untuk mendeskripsikan apa yang harus dilakukan jika ada suatu kondisi yang tidak diinginkan terjadi. Eksepsi dapat dijumpai saat: Mengakses method dengan argumen yang tidak sesuai. Membuka file yang tidak ada. Koneksi jaringan yang terganggu. Manipulasi operand yang nilainya keluar dari batasan yang didefinisikan. Pemanggilan class yang tidak ada. Java menyediakan dua kategori besar untuk eksepsi yang disebut sebagai checked exception dan unchecked exception. Checked Exception adalah eksepsi yang diantisipasi oleh programmer untuk ditangani dalam program dan terjadi karena kondisi luar yang siap muncul saat program berjalan. Misalnya membuka file yang tidak ada atau gangguan jaringan. Unchecked Exception bisa muncul dari kondisi yang merepresentasikan adanya bug atau situasi yang secara umum dianggap terlalu sulit bagi program untuk menanganinya. Disebut sebagai unchecked karena kita tidak perlu mengeceknya atau melakukan sesuatu jika kondisi ini terjadi. Eksepsi yang muncul dari kategori situasi yang merepresentasikan bug ini disebut sebagai runtime exception. Misalnya mengakses array melebihi size yang dimilikinya. Praktikum Dasar Programming 2 34

Sedangkan eksepsi yang muncul sebagai akibat dari isu environment software yang ini jarang sekali atau sulit sekali untuk ditangani- disebut sebagai error, misalnya running out memory. Exception Class adalah sebuah class dasar yang merepresentasikan checked exception. Dalam hal ini, bukannya membiarkan terjadinya penghentian program, sebaliknya harus menuliskan beberapa kode untuk menangani eksepsi dan berikutnya melanjutkan program. Error Class adalah class dasar yang digunakan untuk kondisi error serius yang tidak terdeteksi. Dalam banyak kasus, harus dibiarkan program diterminasi. RuntimeException Class adalah class dasar yang digunakan untuk unchecked exception yang bisa muncul sebagai akibat dari bug program. Pada banyak kasus, harus dibiarkan program dihentikan. Jadi, exception class mendefinisikan kondisi error ringan yang dijumpai oleh program. Sedangkan untuk kondisi error berat didefinisikan dengan error. Ketika dalam program terjadi eksepsi, method yang menemukan error tersebut bisa menangani sendiri atau melemparkannya ("throw") kembali kepada pemanggilnya untuk memberi sinyal bahwa telah terjadi suatu masalah. program ini. Apa hasilnya? Sebagai contoh, coba jalankan public class Eksepsi { public static void main (String[] args) { int i = 0; String myarray[] = {"Array pertama", "Array kedua", "Array ketiga" ; while (i < 4) { System.out.println (myarray[i]); i++; Menghandle Eksepsi (Exception Handling) Jika tidak diberikan kode untuk menghandle situasi, maka Program akan diterminasi dengan sebuah pesan kesalahan sebagai contoh hasil runtime program di atas sebagai berikut: Praktikum Dasar Programming 2 35

Upaya menangani eksepsi memungkinkan program untuk menangkap eksepsi, menanganinya kemudian melanjutkan eksekusi program. Dalam hal ini digunakan pernyataan try dan catch,. dengan perincian sebagai berikut : Blok try adalah kode yang memungkinkan terjadinya pelemparan (throw) eksepsi tertentu. Blok catch adalah kode yang akan dieksekusi jika sebuah tipe eksepsi dilemparkan. try { //code that might throw a particular exception catch(myexceptiontype myexcept) { //code to execute if MyExceptionType exception is thrown catch(exception otherexcept) { //code to execute if a general Exception exception is thrown Dimungkinkan ada beberapa blok catch setelah sebuah blok try, yang masing-masing akan menangani tipe eksepsi yang berbeda. Pernyataan finally Pernyatan finally digunakan untuk mendefinisikan sebuah blok kode yang akan senantiasa dieksekusi jika eksepsi berhasil ditangkap dalam blok catch. Perhatikan contoh berikut, Praktikum Dasar Programming 2 36

Pengesetan indeks kembali menjadi 0 mengakibatkan program dieksekusi dalam infinite loop. Sehingga didapatkan tampilan luaran sebagai berikut: Kategori Eksepsi Gambar 6.1 adalah hirarki class yang merepresentasikan penggolongan eksepsi. Gambar 6.1. Hirarki class eksepsi Praktikum Dasar Programming 2 37

Dalam hal ini class java.lang.throwable merupakan class parent dari seluruh objek yang bisa dilempar dan ditangkap menggunakan mekanisme exception handling. Sehingga dalam contoh di atas pernyataan : catch (ArrayIndexOutOfBoundsException e) merupakan jenis RuntimeException. Jika tidak hafal jenis eksepsinya secara pasti, bisa mengambil parent classnya. Eksepsi Umum Java menyediakan beberapa eksepsi yang telah didefinisikan. Beberapa eksepsi yang umum diantaranya adalah : ArithmeticException hasil dari operasi divide-by-zero terhadap integer. Contoh : int i = 12 / 0; NullPointerException mengakses membernya (atribut atau method) ketika reference-nya masih menunjuk ke null, misalnya ketika belum dibuat obyek instannya. Contoh : Date d = null; //tanpa membuat instance object System.out.println(d.toString()); NegativeArraySizeException membuat array dengan size yang diset negatif. ArrayIndexOutOfBoundsException mengakses array melebihi indeks terbesarnya. SecurityException biasanya terjadi pada sebuah browser, ketika class SecurityManager melempar eksepsi kepada applet yang melakukan operasi yang membahayakan host atau file-filenya (tidak berhak mengaksesnya), misalnya mengakses file sistem lokal, membuka soket ke sebuah host yang berbeda dengan host yang melayani applet, dan lain-lain. Overriding Method & Eksepsi Ketika meng-override method yang melempar eksepsi, maka method yang mengoverride hanya bisa mendeklarasikan eksepsi yang sama classnya atau subclass dari eksepsi yang dilemparkan oleh metode yang di-override. Perhatikan contoh berikut ini : Praktikum Dasar Programming 2 38

public class TestA { public void methoda() throws RuntimeException { public class TestB1 extends TestA { public void methoda() throws ArithmeticException { Bisa karena ArithmeticException adalah subclass dari RuntimeException public class TestB2 extends TestA { public void methoda() throws Exception { Gagal karena Exception adalah class induk dari RuntimeException C. TUGAS PENDAHULUAN 1. Apa perbedaan antara error dan eksepsi! 2. Apakah try dapat mengandung except dan finally sekaligus? Beri contoh programnya! D. PERCOBAAN 1. Tulislah program berikut. Coba compile dan eksekusi. Modifikasi program di atas menjadi program berikut, eksekusi dan analisa! Praktikum Dasar Programming 2 39

2. Tulislah program berikut. Coba compile dan eksekusi. Apa yang terjadi? public class CobaException { public static void main(string[] args) { int bil = 10; System.out.println(bil/0); Modifikasi program di atas menjadi seperti berikut. Analisalah! public class CobaException { public static void main(string[] args) { int bil = 10; try { System.out.println(bil/0); catch(exception e){ System.out.println( Ada error yang terjadi ); 3. Tulislah program berikut. Coba compile dan eksekusi. Apa yang terjadi? 4. Tulislah program berikut. Coba compile dan eksekusi. public class cobaexception4{ public static void main(string [] args) { int bil = 10; String b[]= { a, b, c ; try { System.out.println(bil/0); System.out.println(b[3]); Praktikum Dasar Programming 2 40

catch(arithmetic Exception ai) { System.out.println( Error aritmetik ); catch(arrayindexoutofboundsexception n) { System.out.println( Error karena melebihi kapasitas array ); catch(exception e) { System.out.println( Ada error yang terjadi ); Modifikasi program diatas menjadi program berikut, dan bandingkan hasil keluarannya! public class cobaexception4{ public static void main(string [] args) { int bil = 10; String b[]= { a, b, c ; try { System.out.println(b[3]); System.out.println(bil/0); catch(arithmetic Exception ai) { System.out.println( Error aritmetik ); catch(arrayindexoutofboundsexception n) { System.out.println( Error karena melebihi kapasitas array ); catch(exception e) { System.out.println( Ada error yang terjadi ); 5. Tulislah program berikut. Coba compile dan eksekusi. Apa yang terjadi? Praktikum Dasar Programming 2 41

6. Tulislah program berikut. Coba compile dan eksekusi. Analisalah! Soal Laporan Resmi 1. Apa perbedaan antara keyword throw dengan throws! 2. Jelaskan fungsi pembuatan subclass eksepsi sendiri! Praktikum Dasar Programming 2 42