Anda di halaman 1dari 30

TUJUAN

Tujuan dari praktikum PBO ini adalah untuk:


1. Mahasiswa dapat mengetahui penanganan kesalahan program dengan exception handling.
2. Mahasiswa mampu menerapkan exception handling.
3. Mahasiswa mampu membedakan penerapan jenis exception handling.
4. Mahasiswa mampu membuat class exception sendiri.
5. Mahasiswa mampu melakukan input data melalui keyboard.

DASAR TEORI

1. Exception Handling
Exception adalah event yang terjadi ketika program menemui kesalahan pada saat instruksi
program dijalankan. Banyak hal yang dapat menimbulkan event ini, misalnya crash, harddisk rusak
dengan tiba-tiba, sehingga program-program tidak bisa mengakses file-file tertentu. Programmer
pun dapat menimbulkan event ini, misalnya dengan melakukan pembagian dengan bilangan nol,
atau pengisian elemen array melebihi jumlah elemen array yang dialokasikan, dan sebagainya.
Exception terdiri dari dua macam kelompok, yaitu: a) Exception yang merupakan subclass
RunTimeException; b) Exception yang bukan subclass RunTimeException. RunTimeException
biasanya disebabkan oleh kesalahan program atau pada desain program, misalnya
NullPointerException yang disebabkan oleh proses inisialisasi program yang tidak sempurna dan
ArrayIndexOutOfBoundsException yang disebabkan akses array yang melebihi kapasitas array
yang ada.
Dalam bahasa Java, ketika terjadi kesalahan otomatis akan dilemparkan sebuah objek yang
disebut exception, yang kemudian dapat diproses lebih lanjut oleh fungsi-fungsi yang siap
menangani kesalahan tersebut. Proses pelemparan exception tersebut sering dikenal dengan istilah
throwing exception, sedangkan proses penerimaan exception yang bersangkutan dikenal dengan
istilah catch exception. Terdapat beberapa subclass yang diturunkan dari kelas exception, yaitu:
ClassNotFoundException
Terjadi bila ingin menggunakan kelas yang tidak ada atau belum dibuat.
CloneNotSupportedException
Terjadi bila ingin menggandakan suatu kelas yang tidak didukung oleh method clone.
1
S1 Pend. Teknik Informatika 2014 OFF B
RuntimeException
NullPointerException
ArrayIndexOutOfBoundsException
ArithmeticException
Khusus untuk operasi aritmatika integer, seperti pembagian suatu bilangan integer dengan 0
IOException
Terjadi bila ada I/O error, seperti gagal menemukan dan membuka file atau user
memasukkan input yang tidak valid. Subclass ini memiliki beberapa subclass lain, seperti
InterruptedIOException, EOFException, serta FileNotFoundException.

2. Keyword Penting pada Exception Handling


Ada lima keyword penting dalam java dalam hal exception handling, antara lain:
a) Try
Keyword ini biasanya digunakan dalam suatu block program. Keyword ini digunakan untuk
mencoba menjalankan block program kemudian mengenai di mana munculnya kesalahan
yang ingin diproses. Keyword ini juga harus dipasangkan dengan keyword catch atau
keyword finally.
b) 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 diletakkan berulang-ulang sesuai dengan kebutuhan.
c) Finally
Keyword ini merupakan keyword yang menunjukkan bahwa block program tersebut akan
selalu dieksekusi meskipun adanya kesalahan yang muncul ataupun tidak ada.
d) Throw
Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual.
e) Throws
Keyword throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan
suatu kesalahan sehingga perlu ditangkap errornya. Cara mendefinisikannya dalam method
adalah sebagai berikut:
type method-name throws exception-list1, exceptio-list2, {}.

2
S1 Pend. Teknik Informatika 2014 OFF B
3. Operasi pada Exception Handling
Exception juga memiliki operasi-operasi exception. Adapun operasi exception dibagi
menjadi tiga buah operasi, yaitu:
Claiming an exception dimaksudkan dengan menyatakan exception apa saja yang mungkin
terjadi dalam suatu main() ataupun dalam method. Untuk system errors dan runtime errors
tidak perlu dilakukan klaim karena kedua macam kesalahan ini dapat terjadi di mana saja.
Untuk melakukan claiming an exception dilakukan dengan menggunakan throws
keyword. Contoh:
public void myMethod() throws IOException
{
...
}
untuk melakukan klaim terhadap banyak exception dapat dilakukan dengan menambahkan
exception dipisahkan dengan koma ( , ). Contoh:
method_declaration throws Exception1, Exception2, ...Exception n

Throwing an exception dimaksudkan dengan apabila suatu kesalahan terjadi maka method
berisi statement yang melakukan claiming an exception tersebut membuat suatu exception
object yang dilempar ke dalam sistem. Untuk melakukan throwing exception kita
menggunakan keyword throw di dalam method yang telah melakukan claim exception.
Contoh:
throw ExceptionObjectInstance;

Catching an exception dimaksudkan apabila exception object yang dilempar ke dalam


sistem akan ditangkap untuk diatasi dalam exception handler. Metode pencarian handler ini
dilakukan secara backward yaitu pencarian dimulai dengan method yang dieksekusi sampai
ke pemanggil method tersebut. Untuk melakukan catching an exception dapat dilakukan
digunakan suatu blok trycatch. Contoh:
try {
statements; // statements that may throw exceptions
}
catch (Exception1 ex) {
handler for Exception1;
}
catch (Exception2 ex) {
handler for Exception2;
}
...
catch(ExceptionN ex) {
handler for ExceptionN;
}
Jika tidak terjadi suatu exception pada statements maka blok catch akan dilewati. Jika ada
suatu exception yang dikenali pada blok catch maka exception akan diatasi oleh handler
statement untuk exception tersebut, sedangkan jika ada suatu exception yang tidak dikenali
maka java keluar dari method dan mengirim exception ke method sebelumnya yang
3
S1 Pend. Teknik Informatika 2014 OFF B
memanggil method tersebut. Hal ini dilakukan sampai method pemanggil awal dicapai dan
bila masih belum terdapat handler dari exception ini maka program terhenti dan
menampilkan pesan ke java console. Exception object membawa informasi penting
mengenai exception yang terjadi.
Oleh karena itu, runtime system akan memilih berdasarkan suatu urutan yang berdasar pada
method tempat terjadinya error dan atau method lain yang memanggil method tersebut. Urutan ini
disebut dengan calls stack, seperti yang ditampilkan pada bagan di bawah ini:

Method where error


occurred
Method call
Method without an
exception handler
Method call
Method with an exception
handler
Method call

main

Runtime system mencari method yang memiliki blok untuk terjadi berdasarkan call stack.
Pencarian dimulai dari tempat terjadinya error kemudian diruntut berdasarkan call stack secara
reverse order. Jika ditemukan blok untuk menangani error yang bersangkutan, maka sistem akan
menyerahkan exception ke handler. Penyerahan exception ini disebut sebagai catch the exception
(menangkap exception). Jika sistem tidak menemukan handler yang sesuai di call stack, maka
runtime system akan menghentikan jalannya program.
Untuk memahami bagaimana exception handling bekerja di java, jadi kita harus memahami
kategori-kateogori exception, adapun kategori-kategori exception adalah sebagai berikut:
Checked Exceptions
Checked exceptions merupakan exception yang disebabkan oleh kesalahan pemakai program
atau hal lain yang dapat diprediksi oleh pemrograman.
Runtime Exception
Runtime exception adalah exception yang muncul dimana kemunculannya tidak bisa
dihindari oleh pemrograman. Runtime exception biasanya disebabkan oleh kesalahan
program atau pada desain program.
Errors
Error sebenarnya bukan exception, namun merupakan masalah yang muncul di luar kendali
pemakai dan pemrogram. Error secara umum akan dibiarkan saja, sebab tidak ada yang bisa
4
S1 Pend. Teknik Informatika 2014 OFF B
dilakukan untuk mengatasinya. Misalnya, jika stack overflow muncul maka error akan
muncul. Adapun jenis-jenis error yaitu:
1. Syntax error
Syntax Error merupakan suatu kesalahan dari penulisan syntax pada program
sehingga syntax tersebu tidak dapat dieksekusi oleh program yang pasti membuat
program tersebut error.
2. Logical Error
Logical Error adalah sutau kesalahan yang disebabkan oleh si programmer sendiri,
hal ini disebabkan oleh kesalahan penulisan atau rumus yang diterapkan oleh si
programmer.
3. Runtime Error
Error yang satu ini tergolong error yang unik, karena error ini akibat dari
kecerobohan seorang programmer itu sendiri. Error ini akan muncul apabila terjadi
miskomunikasi antara program dan di file yang dipanggil dalam program.

4. Error dan Exception Classes


Seluruh exceptions adalah subclasses, baik secara langsung maupun tidak langsung, dari
sebuah root class Throwable. Kemudian, dalam class ini terdapat dua kategori umum: Error class
dan Exception class.
Exception class menunjukkan kondisi yang dapat diterima oleh user program. Umumnya hal
tersebut disebabkan oleh beberapa kesalahan pada kode program. Contoh dari exceptions
adalah pembagian oleh 0 dan error di luar jangkauan array.
Error class digunakan oleh Java run-time untuk menangani error yang muncul pada saat
dijalankan. Secara umum hal ini di luar control user karena kemunculannya disebabkan oleh
run-time environment. Sebagai contoh adalah out of memory dan harddisk crash.

5. Hierarki Exception
Semua kelas exception adalah subclass dari java.langException. Kelas exception sendiri
merupakan kelas turunan dari kelas Throwable. Selain kelas exceptiom, ada juga kelas error yang
juga diturunkan dari kelas Throwable.
Normalnya, Error jarang dibuat objectnya pada Java. Kondisi ini bisa muncul karena
masalah yang tidak dapat ditangani oleh program java, misalnya JVM kehabisan memori. Untuk
kasus ini program tidak akan dapat menangani error yang terjadi. Kelas exception memiliki dua
subclass utama yaitu IOException dan RuntimeException.

Object
5
S1 Pend. Teknik Informatika 2014 OFF B
Throwable di java.lang.object

Error Exception

IOException ArithmeticException AWTException

Kelas exception memiliki beberapa methods, antara lain.


Method public String getMessage() mengembalikan detail informasi mengenai exception
yang terjadi, informasi ini diinisialisasi oleh konstruktor yang dimiliki Throwable.
Method public Throwable getCause() menampilkan penyebab dari exception.
Metode public String toString() mendapatkan nama exception ditambah informasinya.
Metode public void printStackTrace menampilkan hasil toString() beserta stack trace
System.err.
Metode public StackTraceElement[]getStackTrace() mengembalikan array yang berisi
semua elemen di stack trace, elemen ke-0 mewakili bagian atas call stack dan elemen akhir
array mewakili bagian akhir call stack.
Metode public Throwable fillInStackTrace() mengisi stack trace dari object Throwable
dengan stack trace yang terdeteksi, menambah ke dalam stack trace.

6. Mekanisme Mengantisipasi Exception


Berikut adalah kemungkinan skenario exception :
a) Tidak Terjadi Exception
Program dijalankan, seluruh statement dalam blok try telah dieksekusi dan tidak terjadi
exception sama sekali, maka blok catch tidak akan dieksekusi oleh interpreter.
b) Terjadi Exception Pada Blok Method Tunggal
Blok method tunggal disini adalah bila method itu tidak memanggil statement dari method
yang lain. Bila saat interpreter mengeksekusi block try ada statement yang menyebabkan
exception, maka interpreter akan langsung keluar dari blok try, kemudian mencari blok
6
S1 Pend. Teknik Informatika 2014 OFF B
catch yang bersesuaian dengan exception yang terjadi. Jika interpreter menemukan catch
yang sesuai maka interpreter akan mengeksekusi blok tersebut. Bila tidak ada catch yang
sesuai, maka interpreter akan menghentikan program dan menampilkan pesan exception
yang terjadi.
c) Terjadi Exception Pada Blok Method Tersarang
Blok method tersarang maksudnya adalah method yang mendeklarasikan exception (misal
method A) memanggil method lainya (method B). Method A memanggil method B. Pada saat
interpreter mengeksekusi statement dari method B ini, terjadi exception. Interpreter akan
menghentikan eksekusi statement, selanjutnya mencari catch yang sesuai dalam method B.
Bila catch ini tidak ditemukan (dalam method B), maka interpreter akan pergi ke method A.
Bila ditemukan, maka interpreter akan mengeksekusi blok tersebut, namun bila tidak ada
catch yang sesuai, interpreter akan menghentikan program dan menampilkan pesan
exception.

7. Jenis Exception Handling


a) Try Catch
Untuk penanganan exception, dalam Java digunakan blok try dan catch. Blok try digunakan
untuk menempatkan kode-kode program Java yang mengandung kode program yang mungkin
melemparkan exception. Blok catch digunakan untuk menempatkan kode-kode program Java yang
digunakan untuk menangani sebuah exception tertentu. Setelah kita tambahkan blok try catch
untuk mengatasi error yang terjadi, maka program akan menampilkan pesan error bahwa ada error
yang terjadi pada konsol. Sintaks blok try catch adalah sebagai berikut:
Try
{
kode program yang mungkin menghasilkan exception
}
Catch
{exception xx}{}
Catch
{exception xx}{}

Petunjuk Penulisan Program:


Blok catch dimulai setelah kurung kurawal dari kode try atau catch terkait.
Penulisan kode dalam blok mengikuti identasi.

7
S1 Pend. Teknik Informatika 2014 OFF B
b) Multiple Catch
Untuk multiple catch akan kita gunakan jika blok try mungkin menimbulkan lebih dari satu
exception. Sintaks blok multiple catch adalah sebagai berikut:
try
{
instruksi-1
instruksi-2
instruksi-3
diabaikan
instruksi-n
}
catch(tipe_eksepsi_1 e1)
{
}
catch(tipe_eksepsi_2 e2)
{
}
catch(tipe_eksepsi_3 e3)
{
}
.
catch(tipe_eksepsi_n en)
{
}
instruksi-lain
.

c) Try Catch Finally


Selain try catch, kita dapat mendefinisikan blok try catch dan finally yang memiliki
proses yang lebih lengkap, karena pada finally kita dapat mendefinisikan kode program yang selalu
dieksekusi, baik ada exception yang terjadi maupun bila tidak terjadi exception sama sekali. Bentuk
umum dari blok try-catch-finally adalah sebagai berikut:
Try
{
//tulis pernyataan yang dapat mengakibatkan exception
//dalam blok ini
}
catch( )
{

8
S1 Pend. Teknik Informatika 2014 OFF B
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
. . .
catch( )
{
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
Finally
{
//tambahkan kode terakhir di sini
}
Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam
blok catch. Kode dalam blok finally selalu di-eksekusi. Berikut ini adalah aspek kunci tentang
sintak dari konstruksi try-catch-finally:
Notasi blok bersifat perintah.
Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally.
Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan di
atas urutan.
Blok try harus diikuti oleh paling sedikit satu blok catch atau satu blok finally, atau
keduanya.
Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch
harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani.
Exception harus menjadi class pelempar atau satu dari subclassesnya.
Try-catch yang menggunakan finally maka keyword finally tersebut fungsinya hampir sama
dengan keyword default pada switch-case.

Ada 3 sekenario pemrosesan dengan keyword finally, yaitu:


Bila tidak terjadi exception, maka blok finally akan dieksekusi. Setelah selesai, interpreter
akan mengeksekusi statement selanjutnya.
Bila terjadi exception, interpreter akan berhenti mengeksekusi statement dalam blok try
berikutnya. Kemudian, interpreter akan mencari catch yang sesuai. Bila ditemukan,
interpreter akan mengeksekusi catch dan finally.

9
S1 Pend. Teknik Informatika 2014 OFF B
Bila exception terjadi, namun tidak ada catch yang sesuai, maka statement statemenet try
berikutnya yang masih tersisa tidak akan dieksekusi. Selanjutnya, interpreter akan
mengeksekusi blok finally.

8. Keuntungan Menggunakan Exception


Adapun keuntungan menggunakan exception, yaitu sebagai berikut:
a) Memisahkan Kode Error-Handling Dari Kode Utama
Dengan fasilitas pemisahan kode utama dan kode error handling, memungkinkan bagian
kita untuk berkonsentrasi terhadap bagian-bagian tersebut. Di pemrograman tradisional,
deteksi error, reporting dan penanganan error menimbulkan kompleksitas program semakin
tinggi.
b) Propagasi Errors Berdasarkan Call Stack
Keuntungan kedua exception adalah adanya mekanisme propagasi laporan error melalui
method di call stack.
c) Pengelompokkan dan Pembedaan Tipe Error
Karena semua exception yang dilempar adalah object, pengelompokkan dan kategorisasi
exception dapat dilakukan menurut hierarki class.

10
S1 Pend. Teknik Informatika 2014 OFF B
LATIHAN 1

Kode Program

Hasil Eksekusi

Deskripsi program :
Program di atas merupakan contoh program yang menunjukkan adanya kesalahan
(exception) pada program. Pada program ini, letak kesalahan dideteksi menggunakan
exception handling try catch. Blok try digunakan untuk menempatkan kode program atau
kondisi yang berpotensi error, sedangkan blok catch digunakan untuk menangkap exception
program yang terdapat pada blok try.
Pada program ini, exception terletak pada pembagian bilangan dengan 0 (nol). Jika
dihitung secara aritmatika, pembagian bilangan dengan 0 akan menimbulkan error, karena
memiliki hasil tak terhingga (~), sehingga output yang dihasilkan adalah berupa jenis
exception (yaitu java.lang.ArithmeticException: / by zero atau pembagian dengan nol) dan
pernyataan setelah exception, yaitu Setelah exception.

11
S1 Pend. Teknik Informatika 2014 OFF B
LATIHAN 2

Kode Program

Hasil Eksekusi

Deskripsi program :
Program di atas merupakan contoh program yang menerapkan exception handling
jenis multiple catch. Pada program ini terdapat beberapa catch dengan beberapa jenis
exception, antara lain.
1. ArrayIndexOutOfBoundsException, apabila indeks array di luar batas.
2. NullPointerException, keadaan di mana penggunaan null yang tidak sah.
3. Exception, induk dari semua classes exception.
Pada program ini, kesalahan yang ditimbulkan adalah dikarenakan pembagian
bilangan dengan nol, di mana operasi ini memiliki hasil tak terhingga dan merupakan
operasi yang tidak dapat diselesaikan dalam operasi aritmatika. Kesalahan tersebut termasuk
jenis Arithmetic Exception, sehingga tidak akan ditangkap oleh kedua catch di atas
(ArrayIndexOutOfBoundsException dan NullPointerException), melainkan akan ditangkap
oleh catch Exception yang kemudian akan menampilkan kalimat Exception e.

12
S1 Pend. Teknik Informatika 2014 OFF B
LATIHAN 3

Kode Program

Hasil Eksekusi

Deskripsi program :
Program di atas merupakan contoh program yang menggunakan jenis exception
handling try catch finally. Blok try berisi kode program yang memungkinkan terjadinya
exception, blok catch digunakan untuk menangkap exception yang terjadi pada blok try, dan
blok finally berisi kode program yang akan selalu dijalankan baik itu terjadi exception
maupun tidak terjadi exception.
Exception yang terjadi pada program di atas disebabkan oleh jumlah array yang
dimasukkan (3) melebihi batas array yang telah ditentukan (2), sehingga exception
ditangkap oleh catch sebagai ArrayIndexOutOfBoundsException untuk ditampilkan bersama
pernyataan pada blok finally.

13
S1 Pend. Teknik Informatika 2014 OFF B
LATIHAN 4

Kode Program

Hasil eksekusi

Deskripsi program :
Program di atas merupakan contoh program yang menunjukkan penggunaan keyword
throw untuk melemparkan exception yang terjadi. Pada program di atas menggunakan dua
jenis exception handling, yaitu NullPointerException dan Arithmetic Exception sebagai kelas
yang dirujuk throw untuk menangani exception. Kesalahan yang terjadi disebabkan oleh
penggunaan null yang tidak valid, sehingga ditangkap oleh catch sebagai jenis exception
NullPointerException, di mana exception tersebut ditampilkan menggunakan perintah
getMessage().

14
S1 Pend. Teknik Informatika 2014 OFF B
LATIHAN 5

Kode Program

15
S1 Pend. Teknik Informatika 2014 OFF B
Hasil eksekusi

Deskripsi program :
Program di atas tidak jauh berbeda dengan program sebelumnya. Pada program ini,
setiap data Mahasiswa tidak boleh bernilai null. Oleh karena itu, digunakan
NullPointerException untuk menangani hal tersebut. Dikarenakan tidak ada data yang tidak
diisi, maka program berjalan secara normal dengan menampilkan NIM, Nama dan Nilai
mahasiswa yang telah diinputkan tanpa adanaya exception yang terdeteksi.

16
S1 Pend. Teknik Informatika 2014 OFF B
LATIHAN 6

Kode Program

Hasil eksekusi

Deskripsi program :
Program di atas merupakan contoh program yang menerapkan keyword throws
sebagai tindakan preventif apabila memungkinkan terjadinya exception pada data yang
diinputkan. Pada program ini menggunakan metode InputStreamReader untuk
menginputkan data, sehingga harus mengimpor librarynya terlebih dahulu, yaitu java.io.*.
Dikarenakan tidak ada kesalahan dari inputan pada contoh di atas, maka tidak ada exception
yang terdeteksi dan program berjalan dengan normal.

17
S1 Pend. Teknik Informatika 2014 OFF B
LATIHAN 7

Kode Program

Hasil eksekusi

Tampilan Apabila Inputan Bilangan

Tampilan Apabila Inputan Bukan Bilangan

Deskripsi program :
Program di atas merupakan contoh program yang menerapkan keyword throws
sebagai tindakan preventif apabila memungkinkan terjadinya exception pada data yang
diinputkan. Pada program ini menggunakan metode InputStreamReader untuk
menginputkan data, sehingga harus mengimpor librarynya terlebih dahulu, yaitu java.io.*.
Program ini berbeda dengan program sebelumnya. Pada program ini, pada awalnya inputan
bilangan dinyatakan bertipe String. Namun, selanjutnya inputan dikonversi menjadi
bilangan dengan tipe data double di dalam blok try, sehingga apabila yang diinputkan adalah
karakter (kata-kata), maka akan menimbulkan exception yang akan ditangkap oleh catch
yang mengidentifikasi exception sebagai NumbeFormatException.

18
S1 Pend. Teknik Informatika 2014 OFF B
TUGAS PRAKTIKUM 1
Program Login dengan Exception Handling

Kode Program

File Kesalahan.java

File Login.java

19
S1 Pend. Teknik Informatika 2014 OFF B
Hasil eksekusi

Output Program Ketika Disisipkan Tanda Baca pada Username

Output Program Ketika Username dan Password Sesuai

Deskripsi program :
Program di atas merupakan contoh program yang mendeteksi adanya exception tanda
baca. Pada program ini, programmer membuat exception sendiri, yaitu Kesalahan yang
menuruni dari class Exception. Pada class Login terdapat method verifikasiLogin(String u,
String p) yang melemparkan exception ke Kesalahan, di mana exception di dalam method ini
tidak menghendaki adanya tanda baca. Username yang mengandung tanda baca ditangkap
oleh catch(Kesalahan e) dan menampilkan pernyataan Tidak Boleh Menggunakan Tanda
Baca. Apabila username tidak mengandung tanda baca, maka dilanjutkan dengan eksekusi
kombinasi username dan password yang diinputkan dengan yang telah ditentukan. Apabila
kombinasi sesuai, maka akan muncul pernyataan LOGIN SUCCESS, sedangkan apabila
tidak sesuai akan muncul pernyataan LOGIN FAILED.

20
S1 Pend. Teknik Informatika 2014 OFF B
TUGAS PRAKTIKUM 2
Program Login dengan Exception Handling dan Finally

Kode Program

File Kesalahan.java

File LoginFinally.java

Hasil eksekusi

Deskripsi program :

21
S1 Pend. Teknik Informatika 2014 OFF B
Program di atas tidak jauh berbeda dengan program sebelumnya, yaitu mendeteksi
adanya exception tanda baca. Pada program ini, programmer membuat exception sendiri,
yaitu Kesalahan yang menuruni dari class Exception. Username yang mengandung tanda
baca ditangkap oleh catch(Kesalahan e) dan menampilkan pernyataan Tidak Boleh
Menggunakan Tanda Baca. Apabila username tidak mengandung tanda baca, maka
dilanjutkan dengan eksekusi kombinasi username dan password yang diinputkan dengan
yang telah ditentukan. Apabila kombinasi sesuai, maka akan muncul pernyataan LOGIN
SUCCESS, sedangkan apabila tidak sesuai akan muncul pernyataan LOGIN FAILED.
Selain itu, pada program ini akan menampilkan pernyataan dari blok finally tentang
pengecekan data yang telah dilakukan. Pernyataan tersebut akan tetap dijalankan baik ada
exception maupun tidak ada exception.

22
S1 Pend. Teknik Informatika 2014 OFF B
TUGAS RUMAH 1
Kalkulator dengan Exception Handling

Kode Program

23
S1 Pend. Teknik Informatika 2014 OFF B
24
S1 Pend. Teknik Informatika 2014 OFF B
Hasil eksekusi

Tampilan Menu Awal

Menu Penjumlahan Menu Perkalian

25
S1 Pend. Teknik Informatika 2014 OFF B
Menu Pembagian (contoh input berupa huruf)

Menu Perpangkatan (contoh hasil lebih dari 5 digit)

Contoh InputMismatchException

Menu Keluar

26
S1 Pend. Teknik Informatika 2014 OFF B
Pilihan Tidak Tersedia

Deskripsi program :
Program di atas merupakan program Kalkulator yang menerapkan konsep exception
handling dalam penanganan kesalahan tertentu. Seperti kalkulator pada umumnya, program
ini memiliki beberapa menu penghitungan, antara lain: penjumlahan, perkalian, pembagian,
dan perpangkatan. Jenis exception yang diterapkan di dalam program ini adalah
IllegalArgumentException, InputMismatchException, NumberFormatException, dan
ArithmeticException. Untuk IllegalArgumentException adalah terjadi ketika hasil dari
penghitungan lebih dari 5 digit angka, sedangkan InputMismatchException terjadi pada saat
input tidak wajar (misal memasukkan bilangan 999999999999999999999),
NumberFormatException terjadi apabila input selain angka, dan ArithmeticException untuk
pembagian dengan nol. Secara singkat, alur dari program ini adalah dimulai dengan user
memasukkan pilihan menu. Apabila user memasukkan pilihan yang tidak tersedia (selain 1-
5), maka akan muncul pernyataan "PILIHAN TIDAK TERSEDIA". Lalu, user mulai
memasukkan bilangan untuk operasi/menu yang dipilihnya. Setelah hasil ditampilkan, user
dapat melanjutkan ke operasi yang lain atau keluar dari program dengan memasukkan "5".

27
S1 Pend. Teknik Informatika 2014 OFF B
TUGAS RUMAH 2

1. Urgensi Exception Handling:


Exception Handling diperlukan untuk mengatasi suatu kesalahan inputan user dengan
suatu method yang akan memberikan pesan error dan dengan ini program tidak akan
tertutup dengan sendirinya. Selain itu, kesalahan yang terdeteksi dapat diketahui sebab dan
letaknya dikarenakan hal-hal yang berpotensi terjadi exception ditangkap dan dikategorikan
oleh class Exception itu sendiri (ArithmeticException, NumberFormatException, dan lain
sebagainya). Hal-hal yang kemungkinan menimbulkan error ditulis secara terpisah dari kode
utama program, sehingga dapat memungkinkan programmer untuk berkonsentrasi terhadap
bagian-bagian tersebut.

2. Penggunaan Exception Handling:


Penggunaan exception handling yang tepat adalah pada saat-saat yang tidak diinginkan
dalam proses jalannya suatu program, misalnya:
Kesalahan aritmatika (pembagian dengan nol).
Index array di luar batas.
Pemberian nilai pada elemen array yang tidak sesuai dengan tipenya.
Input yang tidak wajar.
Array diciptakan dengan ukuran negatif.
Konversi yang tidak sah dari string ke format numeric.
dan lain sebagainya.
Namun, programmer dapat membuat aturan exception sendiri sesuai kebutuhan dari
program tersebut dengan menciptakan exception baru yang menuruni class Exception.
Penggunaan exception baru tersebut dibuat untuk mencegah terjadinya hal-hal yang tidak
diinginkan di dalam suatu program.

28
S1 Pend. Teknik Informatika 2014 OFF B
KESIMPULAN

Berdasarkan hasil praktikum yang telah dilakukan, maka dapat disimpulkan bahwa exception
adalah event yang terjadi ketika program menemui kesalahan pada saat instruksi program
dijalankan. Untuk menangani kesalahan-kesalahan tersebut, maka suatu program harus menerapkan
exception handling di dalamnya. Terdapat lima keyword penting dalam exception handling, antara
lain: try, catch, finally, throw, dan throws. Exception handling memiliki tiga operasi, yaitu Claiming
an exception (menyatakan exception apa saja yang terjadi dalam suatu program), Throwing an
exception (membuat suatu exception object yang dilempar ke dalam sistem), dan Catching an
exception (menangkap exception object yang dilempar ke dalam sistem akan ditangkap untuk
diatasi dalam exception handler).
Beberapa kategori exception adalah Checked exceptions (exception yang disebabkan oleh
kesalahan pemakai program atau hal lain yang dapat diprediksi oleh pemrograman), Runtime
exception (exception yang muncul tidak bisa dihindari oleh pemrograman). dan Error (kesalahan di
luar kendali user ataupun programmer). Model penulisan exception handling dikategorikan ke
dalam beberapa model, antara lain: Try Catch, Multiple Catch, Try Catch Finally. Adapun
keuntungan menggunakan exception handling adalah adanya pemisahan kode error handling dari
kode utama program yang dapat membuat programmer berkonsentrasi terhadap bagian-bagian
tertentu saja, adanya laporan error yang memberitahukan letak kesalahan program, dan adanya
pengelompokan dan pengkategorian tipe exception berdasarkan hierarki classnya sehingga user
mengetahui penyebab kesalahan yang muncul.

29
S1 Pend. Teknik Informatika 2014 OFF B
DAFTAR RUJUKAN

Kadir, Abdul. 2003. Dasar Pemograman Java 2. Yogyakarta: Penerbit Andi.


Krisnawati, Melina. 2014. Java (Netbeans) - Exception handling - Object Oriented Programming.
(online). (http://www.slideshare.net/MelinaKrisnawati/java-netbeans-exception-handling-
object-oriented-programming), diakses pada 3 November 2015.
Samsonasik. 2009. Custom Exception di Java. (online).
(https://samsonasik.wordpress.com/2009/04/29/custom-exception-di-java/), diakses pada 3
November 2015.

30
S1 Pend. Teknik Informatika 2014 OFF B

Anda mungkin juga menyukai