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

dokumen-dokumen yang mirip
PRAKTIKUM 17 MENANGANI EXCEPTION

Praktikum Exception Handling

PRAKTIKUM 6 EXCEPTION

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

Percobaan 6 Exception

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

PERCOBAAN 6 EXCEPTION

Exception Handling. Topik

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

Pemrograman Berorientasi Object

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

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

Praktikum 9 Exception Handling

Exception. Oleh: Mike Yuliana PENS-ITS

Exception Handling. Oleh : Agus Priyanto, M.Kom

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

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

IKG2I4 / Software Project I

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Modul 4 Exception, I/O, dan Operasi File

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

MODUL 9 EXCEPTION HANDLING

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

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

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

1.Tujuan. 2. Latar Belakang

Exception Handling. Prepared by Viska Mutiawani. 1

Definisi Eksepsi (exception)

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

PEMROGRAMAN JAVA : EXCEPTION

MODUL 7 - EXCEPTION HANDLING

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

Pemrograman Lanjut Exception Handling PTIIK

Exception Handling Lanjutan

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

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

03/04/2018. Pemrograman Berorientasi Object

Bahasa Pemrograman 2.

Penanganan Kesalahan

PERTEMUAN 3 OBJEK DAN CLASS

Cara Membaca File Text di JAVA

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

PRAKTIKUM I EXCEPTION HANDLING

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

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

Pemrograman Berorientasi. Exception Handling

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

BAB 2 INPUT DARI KEYBOARD

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

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

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Modul 3 Flow Control dan Input

Exception Handling and Multithreading

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

Pertemuan 4 Array pada Java

Modul Praktikum Pemrograman

Modul Praktikum 4 Pemograman Berorientasi Objek

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

PRAKTIKUM 7 DASAR INPUT OUTPUT

BAB 1 PENGENALAN LINGKUNGAN KERJA JAVA

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

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

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

Input Nilai tanpa Case String di Java

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

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

OPERASI FILE & EXCEPTION HANDLING. Herman Tolle

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

Pertemuan 2 Struktur Kontrol Percabangan

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

Bahasa Pemrograman :: Dasar Pemrograman Java

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

Modul Praktikum Bahasa Pemrograman 1

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

Abstract Class dan Interface. Viska Mutiawani, M.Sc

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

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

Menangkap Kesalahan (Error Handling)

Array Sebagai Parameter Method

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

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

I/O (Input dan Output)

Gambar 1. Single Linked List

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

SUMBER BELAJAR PENUNJANG PLPG

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

Array Multidimensi. Pemrograman Dasar. Java

Pemrograman Berorientasi Objek (PBO) PERTEMUAN X (LOOPING)

Inheritance dan Kata Kunci static

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

MATERI PRAKTIKUM 2 ARRAY

Percabangan & Perulangan

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

BAB II VARIABEL DAN TIPE DATA

Transkripsi:

PRAKTIKUM 18 MELEMPAR EXCEPTION DAN MEMBUAT EXCEPTION SENDIRI A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception.. Mengetahui cara membuat sendiri class exception. B. DASAR TEORI Exception adalah suatu kondisi abnormal yang terjadi pada saat menjalankan program. Karena dalam java segala sesuatu merupakan objek, maka exception juga direpresentasikan dalam sebuah objek yang menjelaskan tentang exception tersebut. Contoh exception adalah pembagian bilangan dengan 0, pengisian elemen array diluar ukuran array, kegagalan koneksi database, file yang akan dibuka tidak ada, dan mengakses objek yang belum diinisialisasi. Terdapat dua penanganan exception yaitu: Menangani sendiri exception tersebut. Meneruskannya ke luar dengan cara membuat objek tentang exception tersebut dan melemparkannya (throw) keluar agar ditangani oleh kode yang memanggil method(method yang didalamnya terdapat exception) tersebut. Ada lima keyword yang digunakan oleh Java untuk menangani exception yaitu try, catch, finally, throw dan throws. B.1 Tipe-Tipe Exception Pada exception, superclass tertinggi adalah class Throwable, tetapi kita hampir tidak pernah menggunakan class ini secara langsung. Dibawah class Throwable terdapat dua subclass yaitu class Error dan class Exception. Class Error merupakan tipe exception yang tidak ditangani dengan blok try-catch, karena berhubungan dengan Java run-time system/environment. Untuk exception dengan tipe class Exception, merupakan exception 15

yang dapat ditangani oleh program. Terdapat subclass dari class Exception diantaranya RunTimeException, IOException, AWTException dan lain-lain. Semua exception bertipe RunTimeException dan turunannya tidak harus secara eksplisit ditangani dalam program (Unchecked Exception). Contoh subclass dari RunTimeException adalah ArrayIndexOutOfBoundsException, ArithmeticException, NullPointerException dan lain-lain. Semua tipe exception yang bukan turunan dari class RuntimeException merupakan exception yang harus ditangani atau jika tidak ditangani menyebab error. Dibawah ini adalah hirarki dari exception. B. Penggunaan Blok try-catch Untuk menangani exception dalam program, dengan meletakkan kode program yang memungkinkan terjadinya exception didalam blok try, diikuti dengan blok catch yang menentukan jenis exception yang ingin ditangani. Contoh : public class Percobaan { int a[] = new int[5]; try{ a[5] = 100 ; catch(arrayindexoutofboundsexception e){ System.out.println("Indeks Array melebihi batas"); System.out.println("Setelah blok try-catch"); 15

Output : Terjadi exception karena Indeks Array melebihi batas Setelah blok try-catch Dapat terjadi kode yang terdapat dalam blok try mengakibatkan lebih dari satu exception. Dalam hal ini, kita dapat menuliskan lebih dari satu blok catch. Contoh : public class Percobaan5 { int bil=10; String b[] = {"a","b","c"; try{ System.out.println(bil/0); System.out.println(b[]); catch(arithmeticexception e){ System.out.println("Error Aritmetik"); catch(arrayindexoutofboundsexception e){ System.out.println("Error Kapasitas Array Melebihi Batas"); catch(exception e){ System.out.println("Terdapat Error"); Blok catch yang dijalankan tergantung dengan exception yang terjadi. Java akan menjalankan blok catch yang sesuai dengan tipe exceptionnya saja. Dalam penggunaannya, blok catch dengan tipe subclass harus ditulis lebih dahulu baru diikuti dengan blok catch dengan tipe data superclassnya. B. Menggunakan Keyword finally Terdapat kode yang harus dijalankan walaupun terjadi atau tidak terjadi exception, misalkan kita membuka file, hal ini memungkinkan terjadinya exception misal file tidak ada, file tidak bisa dibuka, selanjutnya yang harus dilakukan adalah menutup file tersebut. public class Percobaan { int a[] = new int[5]; try{ a[5] = 100 ; catch(arrayindexoutofboundsexception e){ System.out.println("Terjadi exception karena Indeks Array melebihi batas"); finally{ 155

System.out.println("Selalu Dijalankan"); System.out.println("Setelah blok try-catch"); B. Menggunakan Keyword throw dan throws Secara eksplisit, kita dapat melempar (throw) exception dari program menggunakan keyword throw. Jika exception tersebut adalah checked exception, maka pada method harus ditambahkan throws. Jika exception tersebut adalah unchecked exception, maka pada method tidak perlu ditambahkan throws. public class Percobaan6 { public static void method1() throws FileNotFoundException{ throw new FileNotFoundException("File Tidak Ada"); method1(); catch (FileNotFoundException ex) { System.out.println(ex.getMessage()); B.5 Membuat sendiri Subclass dari Exception Untuk melakukan ini, kita cukup membuat class baru yang merupakan subclass Exception. Didalam class ini kita cukup mendeklarasikan konstruktor. class Salah extends Exception{ public Salah(){ public Salah(String pesan){ super(pesan); C. TUGAS PENDAHULUAN Buatlah review 1 halaman mengenai penanganan exception dengan cara melempar exception dan berikan 1 contoh program. D. PERCOBAAN Percobaan 1 : Method yang melempar unchecked exception public class Percobaan6 { public static void method1(){ throw new ArrayIndexOutOfBoundsException("Melebihi Kapasitas"); 156

method1(); catch (ArrayIndexOutOfBoundsException ex) { System.out.println(ex.getMessage()); Percobaan : Method yang melempar checked exception public class Percobaan7 { public static void method1() throws FileNotFoundException{ throw new FileNotFoundException("File Tidak Ada"); method1(); catch (FileNotFoundException ex) { System.out.println(ex.getMessage()); Percobaan : Memahami mengenai mekanisme exception. public class Exercise1 { static void f1() { System.out.print("1"); System.out.print(""); f(); System.out.print(""); catch (Exception e) { System.out.print(""); finally { System.out.print("5"); System.out.println("6"); static void f () throws Exception { if (true) throw new Exception(); public static void main(string s[]) { f1(); Percobaan : Menggunakan konsep Inheritance untuk membuat superclass dan subclass exception. Program menangani exception dengan menangkap subclass exception dengan superclass import javax.swing.*; class ExceptionA extends Exception { class ExceptionB extends ExceptionA { 157

class ExceptionC extends ExceptionB { public class Demo { public static void main( String args[] ) { throw new ExceptionC(); catch( ExceptionA a ) { JOptionPane.showMessageDialog( null, a.tostring(), "Exception", JOptionPane.INFORMATION_MESSAGE ); throw new ExceptionB(); catch( ExceptionA b ) { JOptionPane.showMessageDialog( null, b.tostring(), "Exception", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); Percobaan 5 : Membuat exception sendiri class Salah extends Exception{ public Salah(){ public Salah(String pesan){ super(pesan); public class TesSalah{ public static void main(string [] arg) throws Salah{ Salah s = new Salah( Salah disengaja ha..ha.. ); int i = 0; if (i==0) throw s; Percobaan 6: Membuat exception sendiri class counterexception extends Exception { String complaint; public counterexception(string c) { this.complaint = c; public String tostring( ) { return "counter Exception + complaint; class counter { // Define 158

int n = 0; public int zero() { return n=0; public int up() { return ++n; public int down() throws counterexception { // Throw if (n <= 0) throw new counterexception (n + " count Down failed."); return --n; public class Example1 { public static void main( String args[] ) { counter acounter = new counter( ); acounter.zero( ); acounter.up(); acounter.down( ); catch (counterexception ce) { // Catch System.out.println("" + ce); acounter.down( ); catch (counterexception ce) { // Catch System.out.println("" + ce); finally { System.out.println( Finally ); public class Example { public static void main( String args[] ) throws Exception { counter acounter = new counter( ); acounter.zero( ); acounter.up(); acounter.down( ); acounter.down( ); System.out.println( Completed ); E. LATIHAN 1. Terdapat dua cara untuk menangani Exception yaitu dengan menangkap Exception dan melempar Exception. Lakukan penanganan exception dengan melempar Exception menggunakan throw. Berilah penjelasan (apakah program termasuk unchecked exceptions atau checked exceptions)! public class ReadFile { public static void main(string args[]){ File file = new File("Data.txt"); 159

BufferedReader filereader ; filereader = new BufferedReader(new FileReader(file)); while(true){ String line = filereader.readline(); if (line == null) break ; System.out.println(line); F. TUGAS 1. Buatlah sebuah class Stack, FullStackException dan EmptyStackException. Class Stack ini menggambar Stack yang menerapkan konsep LIFO (Last In First Out). Konsep LIFO ini, data yang terakhir masuk akan keluar pertama kali. Class Stack mempunyai atribut: size : menentukan besar array untuk menyimpan data. Array berdimensi satu dengan tipe Object. top : merupakan tanda indeks yang paling atas, yang belum terisi. Sehingga data yang akan masuk akan dimasukkan pada indeks tersebut. Object[] elemen : untuk menyimpan data. Class Stack mempunyai operasi: public Stack() : jika kita membuat object Stack dengan konstruktor Stack() maka tentukan size = 5. public Stack(int s) : jika kita membuat object Stack dengan konstruktor Stack(int s) maka tentukan size berdasarkan parameter s. public int getsize() : untuk mendapatkan besar array dari Stack. public int gettop() : untuk mendapatkan top dari Stack public void push(object o) : untuk memasukkan data ke array pada Stack. public Object pop() : untuk mengambil data dari array. 160

Deskripsi Stack Buat objek Stack dengan nama stack, pertama kali top bernilai 0. 1 top = 0 Masukkan sebuah data String satu, data satu akan dimasukkan pada indeks yang ke-0 (sesuai dengan nilai top) selanjutnya top dinaikkan 1, sehingga top = 1. 1 top = 1 satu Masukkan sebuah data String dua, data dua akan dimasukkan pada indeks yang ke-1 (sesuai dengan nilai top) selanjutnya top dinaikkan 1, sehingga top =. top = 1 dua satu Ambil sebuah data dari Stack, data yang diambil adalah data yang dimasukkan terakhir kali ( dua ). Kurangi nilai top dengan 1 sehingga menjadi nilai top = 1. Selanjutnya ambil data pada indeks ke -1. 161

1 top = 1 satu Ambil sebuah data dari Stack, data yang diambil adalah data yang terakhir ( satu ). Kurangi nilai top dengan 1 sehingga menjadi nilai top = 0. Selanjutnya apabila ada pengambilan data maka yang diambil adalah data pada indeks ke -0. 1 top = 0 Ambil sebuah data lagi dari Stack, jika kondisi top = 0, maka Stack kosong dan melempar exception EmptyStackException (class ini merupakan subclass dari class RuntimeException), dan muncul peringatan bahwa Stack kosong. Selanjutnya isilah Stack sampai penuh. top = 5 1 lima empat tiga dua satu 16

Jika kita ingin memasukkan data baru lagi, jika kondisi top = 5, maka akan melempar exception yaitu FullStackException (class ini merupakan subclass dari class RuntimeException). top = 5 1 lima empat tiga dua satu Masukkan data lagi Stack Full A. LAPORAN RESMI Kerjakan hasil percobaan(d), latihan(e) dan tugas(f) di atas dan tambahkan analisa. 16