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

dokumen-dokumen yang mirip
Sesi 8. Event Handling & Exception Handling. Tujuan Intruksional

Pemrograman Berorientasi Obyek. Exception Handling. Politeknik Elektronika Negeri Surabaya

Exception Handling. Topik

Pemrograman Berbasis Objek. Exception Handling. Politeknik Elektronika Negeri Surabaya

PEMROGRAMAN JAVA : EXCEPTION

Exception. Oleh: Mike Yuliana PENS-ITS

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

PRAKTIKUM 17 MENANGANI EXCEPTION

Modul 4 Exception, I/O, dan Operasi File

Percobaan 6 Exception

PRAKTIKUM 6 EXCEPTION

PERCOBAAN 6 EXCEPTION

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

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

Exception Handling. Oleh : Agus Priyanto, M.Kom

MODUL 9 EXCEPTION HANDLING

Pemrograman Berorientasi Object

Penjebakan Eksepsi. Nur hasanah, M.Cs

03/04/2018. Pemrograman Berorientasi Object

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

Penanganan Kesalahan

Exception Handling. Prepared by Viska Mutiawani. 1

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

IKG2I4 / Software Project I

Praktikum 9 Exception Handling

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

Pemrograman Lanjut Exception Handling PTIIK

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

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

PRAKTIKUM PEMROGRAMAN OBJEK DENGAN JAVA MODUL KE-5 EXCEPTION HANDLING

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

MODUL 7 - EXCEPTION HANDLING

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

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

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

1.Tujuan. 2. Latar Belakang

Exception Handling Lanjutan

Bahasa Pemrograman 2.

Pemrograman Berorientasi. Exception Handling

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

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Definisi Eksepsi (exception)

PERTEMUAN 3 OBJEK DAN CLASS

4/11/2013. Topik. Exceptions dan Assertions Pengenalan Pemrograman 2. Topik. Topik EXCEPTIONS. Class Error dan 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 {

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

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

Praktikum Exception Handling

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

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Exception Handling and Multithreading

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

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

PRAKTIKUM I EXCEPTION HANDLING

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

Modul Praktikum 4 Pemograman Berorientasi Objek

Menangkap Kesalahan (Error Handling)

Cara Membaca File Text di JAVA

SUMBER BELAJAR PENUNJANG PLPG

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

Review PBO. Ramos Somya

OPERASI FILE & EXCEPTION HANDLING. Herman Tolle

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

I/O (Input dan Output)

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

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

Array Sebagai Parameter Method

BAB Argument Command-Line dan System Properties

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

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

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

SILABUS MATA KULIAH PEMROGRAMAN JAVA

2 TIPE DATA DAN VARIABEL

CHAPTER #5 DEBUGGING AND EXCEPTION HANDLING

MODUL VIII Exception, I/O, dan Operasi File

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

JAVA BASIC PROGRAMMING Joobshet

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

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

PRAKTIKUM 7 DASAR INPUT OUTPUT

Pertemuan 4 Array pada Java

PEMROGRAMAN JAVA : ARRAY

PEMROGRAMAN BERORIENTASI OBJEK

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

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

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

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

BAB 5 Mendapatkan Input dari Keyboard

Input Nilai tanpa Case String di Java

AP2B Dini Triasanti STRUKTUR PEMROGRAMAN PYTHON

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

BAB II VARIABEL DAN TIPE DATA

Array Multidimensi. Pemrograman Dasar. Java

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

Modul Praktikum Bahasa Pemrograman 1

Transkripsi:

Badiyanto, S.Kom, M.Kom Tujuan Intruksional Mampu menjelaskan tentang event handling Mampu menjelaskan tentang method Mampu menggunakan event handling Mampu membuat method 2 1

Sub Pokok Bahasan Keyboard & mouse event Membuat method try..catch 3 Pengertian Eksepsi Suatu mekanisme penanganan kesalahan ringan (mild error). Peristiwa yang terjadi ketika program menemui kesalahan pada saat instruksi program dijalankan. Exception sering digunakan dalam akses sumberdaya non memori. 2

Pengertian Eksepsi Eksepsi adalah suatu kondisi abnormal yang terjadi pada saat pengeksekusian suatu perintah. Suatu eksepsi juga direpresentasikan oleh sebuah obyek yang menjelaskan tentang eksepsi tersebut. Apa yang terjadi jika terjadi kesalahan? Maka method tempat eksepsi terjadi akan melakukan dua pilihan Menangani sendiri eksepsi Meneruskannya keluar dengan cara membuat obyek yang menjelaskan eksepsi dan melemparkannya (throw) agar ditangani oleh kode yang memanggil method tersebut. 3

Apa yang terjadi jika terjadi kesalahan? Secara otomatis akan dilempar sebuah object yang disebut dgn exception. Exception dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani kesalahan. Proses pelemparan exception disebut dgn throwing exception. Proses penerimaan exception disebut dengan catch exception. Contoh Exception: File yang akan dibuka tidak ada. Koneksi jaringan putus. Pembagian bilangan dengan 0 Pengisian elemen array diluar ukuran array Kegagalan koneksi database Operan yg akan dimanipulasi out of prescribed range 4

Common ArithmeticException Exception Hasil dari operasi divide-by-zero pada integer Misal : int i = 12/0; NullPointerException Mencoba mengakses atribut atau method suatu object padahal object belum dibuat. Misal : Date d = null; System.out.println(d.toString()); NegativeArraySizeException Mencoba membuat array dengan ukuran negatif. ArrayIndexOutOfBoundsException Mencoba mengakses elemen array dimana index nya melebihi ukuran array. Keywords try catch finally throw throws 5

Bentuk penggunaan /* kode yang memungkinkan terjadinya eksepsi catch(tipeeksepsi1 obyekeksepsi)1{ /* kode untuk menangani eksepsi1 // catch(tipeeksepsin obyekeksepsin){ /* kode untuk menangani eksepsin finally{ /* kode yang pasti akan dieksekusi setelah blok try catch di atas dieksekusi*/ try : Blok digunakan untuk menempatkan kode-kode program java yang mengandung kode program yang mungkin melemparkan exception. catch : Blok digunakan untuk menempatkan kode-kode program java yang digunakan untuk menangani sebuah exception tertentu. finally : Blok digunakan untuk menempatkan kode-kode program yang pasti akan selalu dieksekusi baik terjadi atau tidak terjadi eksepsi 6

7

Purpose of each exception Error : tipe eksepsi yang tidak ditangani dengan try-catch karena berhubungan dengan java run time system/environment. Mengindikasikan bahwa error yang terjadi adalah kritis/fatal error (severe problem) dimana proses recovery sangat sulit dilakukan bahkan tidak mungkin dilakukan. Contoh : program running out of memory Purpose of each exception Exception: Exeption yang sebaiknya ditangani oleh program secara langsung Dalam praktek akan lebih banyak menggunakan subclass dari kelas Exception 8

UnCheck Exception Semua eksepsi yang bertipe RuntimeException dan turunannya tidak harus ditangani secara eksplisit. Mengindikasikan kesalahan implementasi atau desain program. Contoh : ArrayIndexOutOfBoundsException Check Exception Semua tipe eksepsi yang bukan turunan class RuntimeException merupakan eksepsi yang harus ditangani dengan menggunakan blok try-catch Mengindikasikan kesalahan environment. Contoh : file not found, invalid URL exception 9

Misal terdapat algoritma program: Fungsi bacafile BukaFile BacaBarisFileSampaiHabis TutupFile Masalah Bagaimana bila ditambahkan program untuk pengecekan terhadap status pembacaan file? Bagaimana bila ditambahkan program untuk pengecekan terhadap status penutupan file? Maka program akan menjadi sangat panjang dan banyak terdapat nested if-else. 10

Solusi? Gunakan exception Bentuk: try { catch (ExceptionType x) { Implementasi try { Fungsi bacafile BukaFile BacaBarisFileSampaiHabis TutupFile catch (KesalahanBukaFile) { // lakukan sesuatu catch (KesalahanAlokasiMemori) { // lakukan sesuatu catch (KesalahanTutupFile) { // lakukan sesuatu 11

Try dengan banyak catch Dapat digunakan beberapa blok catch untuk satu blok try. Exception dalam satu program bisa mengatasi banyak exception. Contoh implementasi: Misal dalam satu blok try terdapat kemungkinan terjadi: NullPointerException IndexOutOfBoundsException ArithmeticException try { catch (ExceptionType1 x1) { catch (ExceptionType2 x2) { class DemoEksepsi4{ public static void main(string arg[]){ int x = arg.length; int y = 100/x; int []arr = {91,92; y = arr[x]; D:\ java DemoEksepsi4 Terjadi eksepsi karena pembagian dengan nol Setelah blok try-catch System.out.println("Tidak terjadi eksepsi"); catch(arithmeticexception e){ System.out.println("Terjadi eksepsi karena pembagian dengan nol"); catch(arrayindexoutofboundsexception e){ System.out.println("Terjadi eksepsi karena index melebihi kapasitas"); System.out.println("Setelah blok try-catch"); D:\ java DemoEkseps4i Param1 Tidak terjadi eksepsi Setelah blok try-catch D:\ java DemoEksepsi4 Param1 Param2 Terjadi eksepsi karena index melebihi kapasitas Setelah blok try-catch 12

Blok catch yang dikerjakan adalah yang sesuai dengan obyek eksepsi Sekali running, hanya satu block catch yang sesuai dengan obyek eksepsi yang akan dieksekusi Block catch bertipe subclass harus ditulis lebih dulu baru diikuti block catch bertipe superclass Blok catch dengan tipe data superclas dapat menangani eksepsi yang sesuai dengan tipe datanya sendiri dan tipe data subclass-nya class DemoEksepsi5{ public static void main(string arg[]){ int x = arg.length; int y = 100/x; int []arr = {91,92; y = arr[x]; System.out.println("Tidak terjadi eksepsi"); catch(arithmeticexception e){ System.out.println("Terjadi eksepsi karena pembagian dengan nol"); catch(arrayindexoutofboundsexception e){ System.out.println("Terjadi eksepsi karena index melebihi kapasitas"); catch(exception e){ System.out.println("Terjadi eksepsi yang tidak diketahui"); System.out.println("Setelah blok try-catch"); Exception adalah superclass dari ArithmeticException dan ArrayIndexOutOfBoundsException sehingga superclass ini harus di taruh di blok catch paling bawah 13

Bila eksepsi superclass ditaruh di bawah class DemoEksepsi5{ public static void main(string arg[]){ int x = arg.length; int y = 100/x; int []arr = {91,92; y = arr[x]; System.out.println("Tidak terjadi eksepsi"); catch(exception e){ System.out.println("Terjadi eksepsi yang tidak diketahui"); catch(arithmeticexception e){ System.out.println("Terjadi eksepsi karena pembagian dengan nol"); catch(arrayindexoutofboundsexception e){ System.out.println("Terjadi eksepsi karena index melebihi kapasitas"); System.out.println("Setelah blok try-catch"); Object Exception Object exception yang dihasilkan dapat dimanfaatkan untuk mengetahui lebih lanjut mengenai error atau exception yang terjadi. Exception merupakan subclass dari class Throwable. 14

Method yang diwarisi oleh exception: - getmessage() method ini mengembalikan isi pesan untuk menggambarkan exception yang terjadi printstacktrace() method ini menampilkan pesan error dan stack trace ke standard error output stream yang biasanya merupakan konsol window apabila program merupakan program konsol. printstacktrace(printstream s) method ini mengembalikan pesan error ke objek PrintStream yang dijadikan parameter. Apabila ingin menampilkan pesan ke konsol, anda dapat menggunakan ystem.out sebagai parameter. Blok try catch bertingkat try { try { catch (Exception x) { try { catch (Exception x) { catch (Exception x) { 15

Menggunakan keyword throw Secara eksplisit, eksepsi bisa dilempar (throw) oleh suatu program. Bentuk penggunaan: throw ObyekEksepsi; ObyekEksepsi disini adalah semua obyek yang merupakan turunan class Throwable. class LemparEksepsi{ Melempar obyek eksepsi secara eksplisit public static void methodlain(){ throw new ArrayIndexOutOfBoundsException(1); catch(arrayindexoutofboundsexception e){ System.out.println("Penanganan Eksepsi dlm methodlain()"); throw e; public static void main(string arg[]){ Obyek eksepsi dilempar lagi ke luar method methodlain(); catch(arrayindexoutofboundsexception e){ System.out.println("Penanganan Eksepsi dlm method main()"); 16

Menggunakan keyword throws Dibutuhkan hanya oleh check exception. Digunakan oleh method yang tidak menangani eksepsi sendiri sehingga eksepsi dilempar keluar method. Semua kemungkinan eksepsi yang terjadi harus didaftar di deklarasi method. Blok Try Catch - Finally Blok finally : digunakan untuk mendefinisikan kode program yang selalu dieksekusi baik ada exception yang terjadi maupun bila tidak terjadi exception sama sekali. Bentuk: try { catch (Exception x) { finally { 17

Menggunakan keyword finally Blok finally : digunakan untuk menempatkan kode-kode program yang pasti akan selalu dieksekusi baik terjadi atau tidak terjadi eksepsi import java.io.*; class DemoEksepsi8{ public static void methodlain(int i) throws CharConversionException{ System.out.println("Buka file"); System.out.println("Proses file"); if(i==0) throw new CharConversionException("Test Eksepsi dlm methodlain"); catch(charconversionexception e){ System.out.println("Penanganan Eksepsi dlm methodlain"); throw e; System.out.println("Tutup File"); public static void main(string arg[]){ methodlain(arg.length); catch(charconversionexception e){ System.out.println("Penanganan Eksepsi dalam method main()"); Kode ini tidak akan dieksekusi jika terjadi eksepsi pada blok try C:/ java DemoEksepsi8 Param1 Buka file Proses file Tutup File C:/ java DemoEksepsi8 Buka file Proses file Penanganan Eksepsi dlm methodlain Penanganan Eksepsi dalam method main() 18

Analisa DemoEksepsi8 Bila terjadi eksepsi, bagian perintah yang mencetak kalimat TUTUP FILE tidak tercetak. Padahal file yang dibuka harus ditutup kembali. Cara termudah adalah menuliskan perintah tutup file disemua kode yg memungkinkan dieksekusi terakhir kali sebelum keluar program. Sehingga menulis kode berulang kali import java.io.*; class DemoEksepsi8{ public static void methodlain(int i) throws CharConversionException{ System.out.println("Buka file"); System.out.println("Proses file"); if(i==0) throw new CharConversionException("Test Eksepsi dlm methodlain"); catch(charconversionexception e){ System.out.println("Penanganan Eksepsi dlm methodlain"); throw e; finally{ System.out.println("Tutup File"); public static void main(string arg[]){ methodlain(arg.length); catch(charconversionexception e){ System.out.println("Penanganan Eksepsi dalam method main()"); 19

Membuat class exception baru Sebuah subclass dari exception dapat dibentuk programmer untuk mendefinisikan sendiri secara lebih rinci tentang exception yang dapat terjadi. Class exception baru ini harus merupakan subclass dari java.lang.exception. Didalam class baru cukup mendeklarasikan konstruktor yang mungkin akan digunakan. Tidak harus mengimplementasikan atau mengoveride method yang dimiliki Throwable sbg superclass tertinggi. class EksepsiBuatan1 extends Exception{ EksepsiBuatan1(String s){ super(s); class DemoEksepsi10{ public static void methodlain() throws EksepsiBuatan1{ throw new EksepsiBuatan1("Deskripsi Eksepsi"); public static void main(string arg[]){ methodlain(); catch(eksepsibuatan1 e){ System.out.println("Terjadi eksepsi - " + e); 20