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

dokumen-dokumen yang mirip
Definisi Eksepsi (exception)

Pemrograman Berorientasi Object

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

PRAKTIKUM 17 MENANGANI EXCEPTION

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

PRAKTIKUM 6 EXCEPTION

Percobaan 6 Exception

Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

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

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

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

Exception Handling. Prepared by Viska Mutiawani. 1

PERCOBAAN 6 EXCEPTION

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

1.Tujuan. 2. Latar Belakang

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

Exception Handling. Oleh : Agus Priyanto, M.Kom

PRAKTIKUM I EXCEPTION HANDLING

Modul 4 Exception, I/O, dan Operasi File

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

MODUL 9 EXCEPTION HANDLING

Bahasa Pemrograman 2.

Exception Handling. Topik

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

Exception. Oleh: Mike Yuliana PENS-ITS

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Input Nilai tanpa Case String di Java

Pemrograman Berorientasi. Exception Handling

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

Exception Handling Lanjutan

2 TIPE DATA DAN VARIABEL

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

03/04/2018. Pemrograman Berorientasi Object

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

Tiga Metode Sangat Penting dalam Pemrograman Java Bagi Pemula

PEMROGRAMAN JAVA : EXCEPTION

MODUL 7 - EXCEPTION HANDLING

Praktikum 9 Exception Handling

BAB II VARIABEL DAN TIPE DATA

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Abstract Class dan Interface. Viska Mutiawani, M.Sc

IKG2I4 / Software Project I

PERTEMUAN 3 OBJEK DAN CLASS

Penjebakan Eksepsi. Nur hasanah, M.Cs

Pemrograman Lanjut Exception Handling PTIIK

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

Exception Handling and Multithreading

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

Perulangan / Looping

Percabangan & Perulangan

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

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

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

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

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

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

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

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

OPERASI FILE & EXCEPTION HANDLING. Herman Tolle

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

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

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

Struktur Kontrol Pemrograman Java : PERCABANGAN

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

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

Pertemuan 2 Struktur Kontrol Percabangan

Percabangan dan Perulangan

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

Penyeleksi Kondisi / Percabangan

SEKUEN, PERCABANGAN & PENGULANGAN

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

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

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

Penanganan Kesalahan

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

TIPE DATA Pertemuan (K-03/L-03)

Array Sebagai Parameter Method

Menangkap Kesalahan (Error Handling)

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

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

Elemen Dasar Dalam Bahasa Java

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

SUMBER BELAJAR PENUNJANG PLPG

Latihan Ujian Pemrograman Berorientasi Objek. Semester Genap 2016/2017

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Method / Fungsi / Sub Program

BAHASA PEMROGRAMAN JAVA

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM :

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

DASAR PEMOGRAMAN JAVA

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

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

I/O (Input dan Output)

Modul 3 Flow Control dan Input

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Transkripsi:

IF34348 - PEMROGRAMAN LANJUT EXCEPTION 09 Oleh : Andri Heryandi, M.T.

MATERI HARI INI Exception Penanganan Exception Penanganan Exception satu catch Penanganan Exception dengan banyak catch Pengaganan Exception dengan finally Membuat exception sendiri Oleh : Andri Heryandi, M.T. 2

EXCEPTION Exception adalah suatu kejadian/event yang terjadi ketika eksekusi program yang akan mengganggu alur program. Dengan exception, alur program dapat diatur agar melakukan suatu proses ketika sebuah error terjadi. Contoh kejadian : Pembagian dengan angka 0 File tidak ditemukan Koneksi jaringan terputus ketika membaca data Oleh : Andri Heryandi, M.T. 3

EXCEPTION Contoh exception: import java.util.scanner; public class ContohException1 { public static void main(string[] args) { Scanner kb=new Scanner(System.in); int b1,b2,hasil; System.out.print("Bilangan 1 : ");b1=kb.nextint(); System.out.print("Bilangan 2 : ");b2=kb.nextint(); hasil=b1/b2; kb.close();// tutup scanner System.out.println("Hasil : "+hasil); System.out.println("Program ditutup normal."); Oleh : Andri Heryandi, M.T. 4

EXCEPTION Contoh exception: Hasil RUN (Normal): ----------------------- Bilangan 1 : 25 Bilangan 2 : 4 Hasil : 6 Program ditutup normal. Hasil RUN (tidak normal): ----------------------- Bilangan 1 : 25 Bilangan 2 : 0 Nama Class Exception yang terjadi Exception in thread "main" java.lang.arithmeticexception: / by zero at ContohException1.main(ContohException1.java:8) Baris perintah setelah lokasi terjadinya kesalahan (menuliskan hasil dan program ditutup normal ) tidak tereksekusi karena program di-terminate. Oleh : Andri Heryandi, M.T. 5

PENANGANAN EXCEPTION Penanganan exception dapat dilakukan dengan menggunakan Block try catch Block try catch finally Sintak try catch try{ baris penyebab exception; catch(classexception1 e1){ penanganan exception 1; catch(classexception2 e2){ penanganan exception 2; Try catch finally try{ baris penyebab exception; catch(classexception1 e1){ penanganan exception 1; catch(classexception2 e2){ penanganan exception 2; finally{ statement-statement; Oleh : Andri Heryandi, M.T. 6

PENANGANAN EXCEPTION Contoh penanganan exception: import java.util.scanner; public class ContohException2 { public static void main(string[] args) { Scanner kb=new Scanner(System.in); int b1,b2,hasil; try{ System.out.print("Bilangan 1 : ");b1=kb.nextint(); System.out.print("Bilangan 2 : ");b2=kb.nextint(); hasil=b1/b2; kb.close();// tutup scanner System.out.println("Hasil : "+hasil); catch(arithmeticexception e){ System.out.println("Terjadi Error Pembagian dengan 0."); System.out.println("Program ditutup normal."); Oleh : Andri Heryandi, M.T. 7

PENANGANAN EXCEPTION Contoh penanganan exception: import java.util.scanner; public class ContohException2 { public static void main(string[] args) { Scanner kb=new Scanner(System.in); int b1,b2,hasil; try{ System.out.print("Bilangan 1 : ");b1=kb.nextint(); System.out.print("Bilangan 2 : ");b2=kb.nextint(); hasil=b1/b2; kb.close();// tutup scanner System.out.println("Hasil : "+hasil); catch(arithmeticexception e){ System.out.println("Terjadi Error Pembagian dengan 0."); System.out.println("Program ditutup normal."); Oleh : Andri Heryandi, M.T. 8

PENANGANAN EXCEPTION Contoh penanganan exception: Hasil RUN (Normal): ----------------------- Bilangan 1 : 25 Bilangan 2 : 4 Hasil : 6 Program ditutup normal. Hasil RUN (tidak normal): ----------------------- Bilangan 1 : 25 Bilangan 2 : 0 Terjadi Error Pembagian dengan 0. Program ditutup normal. Baris perintah setelah lokasi terjadinya kesalahan (menuliskan hasil dan program ditutup normal ) TETAP tereksekusi walau pun terjadi exception. Oleh : Andri Heryandi, M.T. 9

PENANGANAN EXCEPTION BANYAK CATCH Jika sebuah/sekumpulan statement memiliki banyak kemungkinan exception, maka untuk penanganan tiap exception bisa menggunakan block try yang memiliki banyak catch. Contoh Kasus : Pada contoh program sebelumnya (class ContohException2) ada baris kb.nextint() yang berguna untuk membaca sebuah integer dari keyboard. Bagaimana kalau yang diinputkan bukan integer, tapi string? Hasil RUN (tidak normal): ----------------------- Bilangan 1 : 25 Bilangan 2 : angka Exception in thread "main" java.util.inputmismatchexception at java.util.scanner.throwfor(unknown Source) at java.util.scanner.next(unknown Source) at java.util.scanner.nextint(unknown Source) at java.util.scanner.nextint(unknown Source) Nama Class Exception yang terjadi at ContohException3.main(ContohException3.java:9) Oleh : Andri Heryandi, M.T. 10

PENANGANAN EXCEPTION BANYAK CATCH Solusi : Berarti ada 2 exception yang harus dihandle dalam program tersebut yaitu ArithmeticException dan InputMismatchException Bagaimana saya tahu exception yang dilempar oleh sebuah Method? Lihat deskripsi method tersebut di javadoc Oleh : Andri Heryandi, M.T. 11

PENANGANAN EXCEPTION BANYAK CATCH Contoh penanganan exception: i m p o r t j a v a. u t i l. I n p u t M i s m a t c h E x c e p t i o n ; i m p o r t j a v a. u t i l. S c a n n e r ; p u b l i c c l a s s C o n t o h E x c e p t i o n 3 { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { S c a n n e r k b = n e w S c a n n e r ( S y s t e m. i n ) ; int b 1, b 2, h a s i l ; try{ S y s t e m. o u t. p r i n t ("Bilangan 1 : " ) ; b 1 = k b. n e x t I n t (); S y s t e m. o u t. p r i n t ("Bilangan 2 : " ) ; b 2 = k b. n e x t I n t (); hasil= b 1 / b 2 ; k b. c l o s e ( ) ; / / t u t u p s c a n n e r S y s t e m. o u t. p r i n t l n ("Hasil : "+hasil); c a t c h ( A r i t h m e t i c E x c e p t i o n e){ S y s t e m. o u t. p r i n t l n ("Terjadi E r r o r P e m b a g i a n d e n g a n 0. " ) ; c a t c h ( I n p u t M i s m a t c h E x c e p t i o n e ) { S y s t e m. o u t. p r i n t l n ( " D a t a y a n g anda m a s u k a n b u k a n a n g k a " ) ; S y s t e m. o u t. p r i n t l n ( " P r o g r a m d i t u t u p n o r m a l. " ) ; Oleh : Andri Heryandi, M.T. 12

PENANGANAN EXCEPTION BANYAK CATCH Hasil RUN (tidak normal): ----------------------- Bilangan 1 : 25 Bilangan 2 : angka Data yang anda masukan bukan angka Program ditutup normal. Oleh : Andri Heryandi, M.T. 13

PENGANGANAN EXCEPTION DENGAN TRY, CATCH, FINALLY Jika sebuah exception terjadi, maka baris-baris di blok try setelah baris terjadinya exception pasti tidak akan tereksekusi karena alur program akan pindah ke blok catch. Jika baris-baris dibawah lokasi exception ingin tetap dijalankan ketika terjadi exception atau pun tidak terjadi exception, maka tulislah perintah-perintah tersebut di bagian finally. Finally ditulis di bawah catch. Blok finally PASTI dieksekusi walau pun tidak terjadi exception. Blok finally biasanya digunakan untuk melepas resource (tutup file, tutup koneksi ke jaringan, free memory dll). Oleh : Andri Heryandi, M.T. 14

PENGANGANAN EXCEPTION DENGAN TRY, CATCH, FINALLY i m p o r t j a v a. u t i l. I n p u t M i s m a t c h E x c e p t i o n ; i m p o r t j a v a. u t i l. S c a n n e r ; p u b l i c c l a s s C o n t o h E x c e p t i o n 4 { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { S c a n n e r k b = n e w S c a n n e r ( S y s t e m. i n ) ; int b 1, b 2, h a s i l ; try{ S y s t e m. o u t. p r i n t ("Bilangan 1 : " ) ; b 1 = k b. n e x t I n t (); S y s t e m. o u t. p r i n t ("Bilangan 2 : " ) ; b 2 = k b. n e x t I n t (); hasil= b 1 / b 2 ; S y s t e m. o u t. p r i n t l n ("Hasil : "+hasil); c a t c h ( A r i t h m e t i c E x c e p t i o n e){ S y s t e m. o u t. p r i n t l n ("Terjadi E r r o r P e m b a g i a n d e n g a n 0. " ) ; c a t c h ( I n p u t M i s m a t c h E x c e p t i o n e ) { S y s t e m. o u t. p r i n t l n ( " D a t a y a n g anda m a s u k a n b u k a n a n g k a " ) ; f i n a l l y { S y s t e m. o u t. p r i n t l n ("Tutup S c a n n e r " ) ; k b. c l o s e ( ) ; / / t u t u p s c a n n e r S y s t e m. o u t. p r i n t l n ( " P r o g r a m d i t u t u p n o r m a l. " ) ; Oleh : Andri Heryandi, M.T. 15

PENGANGANAN EXCEPTION DENGAN TRY, CATCH, FINALLY Hasil RUN (normal): ----------------------- Bilangan 1 : 28 Bilangan 2 : 7 Hasil : 4 Tutup Scanner Program ditutup normal. Hasil RUN (tidak normal): ----------------------- Bilangan 1 : 25 Bilangan 2 : angka Data yang anda masukan bukan angka Tutup Scanner Program ditutup normal. Tutup Scanner akan dieksekusi baik ketika terjadi exception atau tidak Oleh : Andri Heryandi, M.T. 16

MEMBUAT EXCEPTION SENDIRI Tidak semua exception yang telah didefinisikan oleh Java mendukung semua kebutuhan kita. Contoh Kasus : Untuk nilai suatu mata kuliah, nilai hanya boleh 0 sampai 100. Java tidak memiliki exception untuk menangani exception tersebut. Solusi : Buatlah exception sendiri Cara membuat exception sendiri : Buat sebuah class turunan dari Exception atau RuntimeException Exception yang menggunakan super class Exception disebut sebagai checked exception. Jika suatu method melemparkan exception jenis ini, maka pemanggilan method ini harus dalam blok try-catch. Exception yang menggunakan super class RuntimeException disebut sebagai unchecked exception. Jika suatu method melemparkan exception jenis ini, maka pemanggilan method ini tidak harus dalam blok try-catch. Oleh : Andri Heryandi, M.T. 17

MEMBUAT EXCEPTION SENDIRI Class NilaiErrorException public class NilaiErrorException extends Exception { public String getmessage(){ Atau return "Nilai hanya boleh 0 sampai 100"; public class NilaiErrorException extends RuntimeException { public String getmessage(){ return "Nilai hanya boleh 0 sampai 100"; Oleh : Andri Heryandi, M.T. 18

THROWING EXCEPTION Throwing Exception adalah suatu operasi melemparkan sebuah exception ketika sebuah exception terjadi. Perintah untuk melempar sebuah exception adalah throw. Untuk mendefinisikan sebuah method bisa melemparkan exception tertentu, maka gunakan keyword throws di pendefinisian method, diikuti dengan class exceptionnya. Oleh : Andri Heryandi, M.T. 19

THROWING EXCEPTION p u b l i c c l a s s N i l a i { p r i v a t e d o u b l e nilai; p u b l i c v o i d s e t N i l a i ( d o u b l e n ) t h r o w s N i l a i E r r o r E x c e p t i o n { i f ( ( n < 0 ) ( n > 1 0 0 ) ) t h r o w n e w N i l a i E r r o r E x c e p t i o n ( ) ; else nilai=n; p u b l i c d o u b l e g e t N i l a i ( ) { r e t u r n n i l a i ; p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ){ Nilai n 1 ; n 1 = n e w N i l a i (); try{ n 1. s e t N i l a i ( 5 0 ) ; S y s t e m. o u t. p r i n t l n ("N i l a i 1 : " + n 1. g e t N i l a i ( ) ) ; n 1. s e t N i l a i ( 1 5 0 ) ; S y s t e m. o u t. p r i n t l n ("N i l a i 2 : " + n 1. g e t N i l a i ( ) ) ; c a t c h ( N i l a i E r r o r E x c e p t i o n e){ S y s t e m. o u t. p r i n t l n ( e. g e t M e s s a g e ()); Oleh : Andri Heryandi, M.T. 20