15
TUGAS PRAKTIKUM EXCEPTION HANDLING PEMROGRAMAN BERORIENTASI OBJECT DISUSUN OLEH : MELINA KRISNAWATI 12.12.0328 SI 12 F STMIK AMIKOM PURWOKERTO TAHUN AJARAN 2012/2013

Java (Netbeans) - Exception handling - Object Oriented Programming

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Java (Netbeans) - Exception handling - Object Oriented Programming

TUGAS

PRAKTIKUM

EXCEPTION HANDLING

PEMROGRAMAN BERORIENTASI

OBJECT

DISUSUN OLEH :

MELINA KRISNAWATI

12.12.0328

SI 12 F

STMIK AMIKOM PURWOKERTO TAHUN AJARAN 2012/2013

Page 2: Java (Netbeans) - Exception handling - Object Oriented Programming

SOAL (KASUS)

Membuat program yang menggunakan Exception Handling.

Membuat rangkuman praktikum tentang Exception Handling.

LANDASAN TEORI

PENGERTIAN

Exception adalah setiap kejadian yang abnormal, tidak diharapkan, dan kondisi

yang tidak umum yang mungkin terjadi pada saat run – time program.

Exception adalah event yang tejadi ketika program menemui kesalahan saat

instruksi program dijalankan.

Exception adalah singkatan dari Exceptional Events. Menurut definisi umum,

exception adalah kondisi abnormal yang terjadi saat run-time. Runtime error atau

kesalahan – kesalahan yang terjadi pada saat program berjalan dan exception.

Exception dapat dibangkitkan secara otomatis oleh system Java runtime maupun

sengaja kita buat melalui pernyataan tertentu untuk tujuan tertentu.

Nah dapat kita simpulkan dari pengertian diatas, exception handling adalah suatu

penanganan saat terjadi kesalahan pada sebuah program akan terjadi suatu bentuk

penanganan oleh Java runtime ataupun dilakukan oleh kita yang sering disebut dengan

exception handling dan exception handling sudah berjalan otomatis oleh java runtime atau

dijalankan oleh kita melalui sebuah prosedur untuk mendapatkan suatu hasil tertentu atau

dalam arti lain yaitu suatu cara untuk mengatasi kesalahan user.

FUNGSI EXCEPTION HANDLING

Apa sih fungsi dari exception handling ?

Fungsi dari exception handling adalah untuk mengatasi suatu kesalahan inputan user

dengan suatu metode kita akan memberikan pesan pada saat user salah memasukan

inputan dengan ini program tidak akan tertutup dengan sendirinya.

Page 3: Java (Netbeans) - Exception handling - Object Oriented Programming

JENIS - JENIS EXCEPTION (ERROR) HANDLING

Berdasarkan jenisnya kesalahan dalam pemrograman terbagi menjadi 3, yaitu :

1. Runtime Error

Adalah exception yang bisa saja tidak ditangani tanpa menyebabkan program

berhenti kecuali jika propogasi exceptionnya sampai k main, maka akan

menyebabkan terminasi program secara subnormal. Checked exception adalah

exception yang ditangani secara explicit didalam throws. Programmer harus

membuat catch untuk menangani exception yang terjadi. Sedangkan error adalah

kesalahan yang tidak unrecoverable exception artinya tidak bisa ditangani oleh

catch.

Atau pengertian lain, Runtime error adalah kesalahan yang disebabkan oleh tidak

tersedianya sumber daya atau kondisi yang normal bagi program untuk berjalan

dengan baik, misalnya kekurangan memori computer, disk full, atau pintu drive

tidak terkunci, dll.

2. Logical Error

Adalah kesalahan yang disebabkan oleh kesalahan logika maupun model atau

metode yang digunakan untuk pemrosesan data, sehingga menyebabkan informasi

yang dihasilkan menjadi salah. Kesalahan ini tidak dapat dideteksi oleh compiler

maupun interpreter, kesalahan ini disadari setelah melihat penyimpanan pada saat

proses maupun hasil proses.

3. Syntax Error

Adalah kesalahan yang disebabkan oleh kesalahan tata cara penulisan tanda baca,

kesalahan pemakaian operator dan nilai. Kesalahan jenis ini akan dengan mudah

dideteksi oleh compiler maupun interpreter.

KEYWORD PENTING PADA EXCEPTION HANDLING

Ada 5 keyword penting dalam java dalam hal exception handling :

1. Try

Keyword ini biasanya digunakan dalam suatu block program. Keyword ini

digunakan untuk mencoba menjalankan block program kemudian mengenai dimana

munculnya kesalahan yang ingin diproses. Keyword ini juga harus dipasangkan

dengan keyword catch atau keyword finally.

Page 4: Java (Netbeans) - Exception handling - Object Oriented Programming

2. Catch

Kegunaan keyword ini adalah menangkap kesalahan atau bug yagn terjadi dalam

block try. Setelah mengangkap kesalahan yang terjadi maka developer dapat

melakukan hal apapun pada block catch sesuai keinginan developer.

3. Finally

Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut

akan selalu dieksekusi meskipun adanya kesalahan yang muncul ataupun tidak ada.

4. Throw

Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual.

5. Throws

Keyword throws digunakan dalam suatu method atau kelas yang mungkin

menghasilkan suatu kesalahan perlu ditangkap errornya. Cara mendefinisikannya

adalah sebagai berikut : <method modifier> type method-name throws exception-

lis1,exception-list2,…..{}.

Throw dan throws

Tujuan dari penggunaan throw adalah untuk menerbitkan exception yang diberikan

kepada method yang dipanggil. Sedangkan throws digunakan untuk Checked

Exception agar dapat dipropogasikan sampai ke main.

Page 5: Java (Netbeans) - Exception handling - Object Oriented Programming

PEMBAHASAN

Pembahasan contoh try :

Perhatikan contoh try, ada beberapa hal penting yang perlu dilihat. Pertama, block

program yang diyakini menimbulkan kesalahan maka ada di dalam block try 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 try tidak akan dieksekusi.

Pembahasan contoh catch :

Jika sudah melihat contoh try, maka secara tidak langsung , kita sudah memahami

kegunaan keyword catch. Dalam java, keyword catch harus dipasangkan dengan try.

Kegunaan keyword ini adalah menangkap kesalahan atau bug yang terjadi dalam block try.

Setelah menangkap kesalahan yang terjadi maka developer dapat melakukan hal apapun

pada block catch sesuai keinginan developer. Keyword catch juga dapat diletakan berulang

– ulang sesuai dengan kebutuhan, seperti yang ada pada contoh.

Pembahasan contoh finally :

Perhatikan kedua contoh finally dibawah ini, block finally akan selalu dieksekusi meskipun

adanya kesalahan atau tidak pada block try. Berbeda dengan keyword catch, keyword

finally hanya dapat diletakkan 1 kali setelah keyword try.

Pembahasan contoh throw :

Seperti yang sudah dilihat pada contoh program, 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 dianggap

oleh keyword catch.

Pada contoh program, telah mendefinisikan suatu kelas B mengextends dari kelas

Exception. Ketika kita melakukan throw new B(); maka object dari kelas bertipe B ini akan

dianggap kesalahan dan ditangkap oleh block catch.

Page 6: Java (Netbeans) - Exception handling - Object Oriented Programming

Pembahasan contoh throws :

Perhatikan pada kedua contoh program menggunakan throws pada method. Ketika method

tersebut dipanggil dalam block try. Maka method tersebut akan membuat object yang

merupakan subclass dari class Throwable dan method tersebut akan melemparkan

kesalahan yang ada dalam block method ke dalam block try. Di dalam block try, kesalahan

tersebut kemudian ditangkap kedalam block catch.

Pembahasan contoh Exception1 :

Error pada saat kompilasi terjadi karena FileReader() yang merupakan salah satu objek

pada paket java.io, memiliki aturan bahwa ketika dia menerima parameter nama file untuk

dibaca, jika file yang bersangkutan tidak ada, akan dilemparkan sebuah exception yang

bernama java.io.FileNotFoundException. exception ini harus dikelola oleh sebuah fungsi

yang menjadi exception-handler-nya.

Pembahasan contoh Divide dan Contoh1 :

Kedua program tersebut adalah menggunakan keyword try dan catch. Keyword try

digunakan pada suatu block program yang diperkirakan block tersebut terjadi exception.

Keyword try harus dipasangkan dengan keyword catch. Keyword catch tersebut digunakan

untuk menangkap dan memproses bila terjadi exception. Sedangkan finally ini merupakan

keyword yang menunjukan bahwa blok program tersebut akan selalu dieksekusi meskipun

adanya kesalahan yang muncul ataupun tidak ada, keyword ini bersifat optional semacam

default pada switch-case.

Page 7: Java (Netbeans) - Exception handling - Object Oriented Programming

LISTING PROGRAM & HASIL RUNNING

Contoh penggunaan Try :

package pkgtry;

/**

*

* @author azuura

*/

public class Try {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

try {

int a = 1 / 0; // berpotensi untuk menimbulkan kesalahan

//yaitu pembagian dengan bilangan 0

System.out.println("Perintah selanjutnya");

} catch (Exception kesalahanException) {

System.err.println(kesalahanException);

}

}

}

Contoh penggunaan Catch :

public class Contoh_Catch {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

try {

int a = 1 / 0; //berpotensi untuk menimbulkan kesalahan

//yaitu pembagian dengan bilangan 0

System.out.println("Perintah Selanjutnya");

} catch (NullPointerException e) {

} catch (ArrayIndexOutOfBoundsException e) {

} catch (Exception e) {

Page 8: Java (Netbeans) - Exception handling - Object Oriented Programming

}

}

}

Contoh penggunaan finally :

public class Contoh_finally {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

try {

//int a = 1/0;

}

finally

{

System.out.println("Terima kasih telah menjalankan program");

}

}

}

Contoh modifikasi dari finally : public class Modifikasi_contoh_finally {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

try {

int a = 1/0;

} catch (Exception e) {

System.out.println("Ada kesalahan yang muncul");

}

finally {

System.out.println("Terima kasih telah menjalankan program");

}

}

}

Page 9: Java (Netbeans) - Exception handling - Object Oriented Programming

Contoh penggunaan Throw :

public class Throw {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

try {

throw new Exception("Kesalahan Terjadi");

} catch (Exception e) {

System.out.println(e);

}

}

}

Contoh modifikasi dari throw

public class Modifikasi_throw {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

try {

throw new B();//cobalah ganti baris ini dengan a new B();

} catch (Exception e) {

System.out.println(e);

}

}

}

class B extends Exception

{

B()

{

}

public String toString()

{

return "object dengan tipe kelas B";

Page 10: Java (Netbeans) - Exception handling - Object Oriented Programming

}

}

Contoh penggunaan Throws :

Outputnya :

Page 11: Java (Netbeans) - Exception handling - Object Oriented Programming

Contoh modifikasi dari throws

Outputnya :

Page 12: Java (Netbeans) - Exception handling - Object Oriented Programming

Contoh penggunaan Exception Handling (dari modul) :

public class Exception1 {

private FileReader in;

public Exception1 (String filename){

in = new FileReader(filename);

}

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Exception1 ex = new Exception1("/etc/passwd");

}

}

Contoh modifikasinya : package exception1;

import java.io.FileNotFoundException;

import java.io.FileReader;

/**

*

* @author azuura

*/

public class Exception1 {

private FileReader in;

public Exception1 (String filename){

try {

in = new FileReader(filename);

} catch (java.io.FileNotFoundException ex) {

System.err.println("File tidak ditemukan");

System.exit(0);

}

}

/**

Page 13: Java (Netbeans) - Exception handling - Object Oriented Programming

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Exception1 ex = new Exception1("/etc/passwd");

}

}

Contoh program menggunakan exception :

package divide;

import java.util.Scanner;

/**

*

* @author azuura

*/

public class Divide {

public static void main(String[] args) {

// TODO code application logic here

float a, b, hasil = 0;

System.out.print("Bilangan Penyebut : ");

Scanner input = new Scanner(System.in);

a = input.nextFloat();

System.out.print("Bilangan Pembagi : ");

input = new Scanner(System.in);

b = input.nextFloat();

try {

hasil = a / b;

} catch (ArithmeticException e) {

System.out.println(e.getMessage());

} catch (Exception e) {

System.out.println(e.toString());

} finally {

System.out.println("ext");

System.out.println("Hasil : " + hasil);

}

}

}

Page 14: Java (Netbeans) - Exception handling - Object Oriented Programming

Contoh program menggunakan exception :

package contoh1;

import java.util.InputMismatchException;

import java.util.Scanner;

import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

/**

*

* @author azuura

*/

public class Contoh1 {

public static void main(String[] args) {

// TODO code application logic here

float a, b;

System.out.print("Bilangan Penyebut : ");

Scanner input = new Scanner(System.in);

a = input.nextInt();

System.out.print("Bilangan Pembagi : ");

input = new Scanner(System.in);

b = input.nextInt();

try {

float hitung = a / b;

System.out.println("Hasil : " + hitung);

} catch (ArithmeticException e) {

System.out.println(e.toString());

} catch (InputMismatchException e) {

System.out.println(e.toString());

}

}

}

Page 15: Java (Netbeans) - Exception handling - Object Oriented Programming

KESIMPULAN

Kesimpulannya adalah bahwa Exception merupakan kondisi yang menyebabkan program menjadi hang atau error atau quit dari alur normal yang telah ditentukan pada saat program dijalankan. Exception ini dipicu oleh Runtime Error, yaitu error yang terjadi saat program dieksekusi. Pada dasarnya Exception merupakan subclass dari kelas Throwable, kelas ini terdapat pada package java.lang.object yang merupakan default library dari java. Class Exception mempunyai beberapa subclass yaitu : ClassNotFoundException, terjadi bila kita menggunakan class yang tidak ada. CloneNotSupportedException, terjadi bila kita mencoba untuk menggandakan suatu class yang tidak didukung oleh method clone.

DAFTAR PUSTAKA

Deitel, H; Deitel, M. 2002. Java How to Program, 3rd Ed. Pretince Hall, New York.

Weiss, Mark Allen. Data Structures and Problem Solving Using Java.

http://www.aw-bc.com/cssupport

http://www.netbeans.org

Astuti, Tri. 2013. Modul Praktikum 3 “Exception Handling”.