Langsung ke konten utama

TUGAS 10 PEMROGRAMAN BERORIENTASI OBJEK (B) - Exception Handling


Dalam membuat atau mengembangkan suatu aplikasi, seorang programmer dapat menemui kesalahan dalam pengkodean program, entah itu logic error, syntax error, atau runtime error. Logic error terjadi karena program berjalan tidak sesuai harapan. Hal ini bisa diatasi dengan debugging. Syntax error terjadi karena aturan penulisan bahasa program yang tidak diikuti. Syntax error cenderung mudah diperbaiki karena compiler akan memberi tahu letak kesalahan. Runtime error terjadi ketika program sedang berjalan mendeteksi adanya operasi yang tidak mungkin dilaksanakan. Error yang terjadi saat program sedang running disebut dengan eksepsi (exception).


Exception

Exception adalah sebuah alur peristiwa yang menjalankan proses pada program, perisitwa tersebut berupa kesalahan atau error pada program yang dibuat dan terjadi karena beberapa faktor antara lain: kesalahan inputan, jenis format data yang dimasukkan salah, penggunaan array yang melebihi batas, dsb.


Ada beberapa exception yang sering muncul dalam aplikasi Java:

  1. IllegalArgumentException
    • Muncul saat memanggil method dengan mengirimkan parameter yang tidak sesuai sehingga method tersebut tidak dapat memproses parameter yang dikirim.
  2. NumberFormatException
    • Muncul saat mencoba mengubah string menjadi angka atau integer (casting), tapi string tersebut tidak terformat dengan benar.
  3. ArithmeticException
    • Muncul saat perhitungan aritmetika error. Contohnya ketika membagi suatu angka dengan 0.
  4. IllegalStateException
    • Muncul saat mencoba memanggil method di waktu yang salah. Misalnya saat menggunakan URLConnection untuk terhubung kembali ke alamat yang sudah terhubung.
  5. IOException
    • Muncul saat menginput string, padahal yang diminta angka atau integer.

Exception Handling

Java memberikan akses kepada developer untuk mengambil objek bug yang terjadi dengan mekanisme yang dikenal sebagai exception handling. Exception handling merupakan fasilitas Java yang memberikan fleksibilitas kepada developer untuk menangkap bug atau error yang terjadi ketika program berjalan.


Ada beberapa keyword penting dalam exception handling Java:

1. try
Digunakan untuk menentukan bagian statement program di mana akan terjadi exception. Blok dari try ini harus diikuti dengan catch atau finally.

2. catch
Digunakan untuk menangani error atau exception yang terjadi. Blok catch ini tidak dapat berdiri sendiri tanpa blok try. Block catch dapat diikuti oleh blok finally.

3. finally
Digunakan untuk mengeksekusi bagian code yang penting dari program. Bagian ini akan tetap dijalankan baik terjadi exception maupun tidak.

4. throw
Digunakan untuk melempar exception yang terjadi di mana throw digunakan dalam body dari code yang ada.

5. throws
Digunakan untuk mendeklarasikan exception yang akan terjadi pada bagian fungsi tersebut.

Implementasi

Berikut ini adalah contoh menangani InputMismatchException ketika membaca sebuah input menggunakan try dan catch.

Ketika mengeksekusi input.nextInt(), InputMismatchException akan muncul jika user memasukkan inputan selain integer.

Output yang valid:

Misalkan nilai 6,9 diinput, maka InputMismatchException terjadi dan kontrol program akan dipindahkan ke blok catch. Pernyataan di dalam blok tersebut akan dieksekusi.

Pernyataan input.nextLine() akan memusnahkan input line saat ini dan kemudian user dapat memasukkan input pada line baru.

Variabel lanjutkanInput mengontrol loop. Nilai inisialnya adalah true dan kemudian diubah menjadi false ketika nilai valid diterima sehingga tidak perlu lagi untuk melanjutkan input angka.


Berikut ini adalah contoh menangani exception  menggunakan trycatch, dan throw.

Output yang valid:

Pada program tersebut, jika user menginputkan nilai badak lebih dari 5, maka akan terjadi error. Exception/error yang telah ditangkap oleh blok try akan diubah menjadi objek e pada pernyataan catch, lalu menampilkan pesan error tersebut menggunakan printStackTrace().

Komentar

Postingan populer dari blog ini

ETS REKAYASA KEBUTUHAN (A) - GoToko

Pada Evaluasi Tengah Semester (ETS) kali ini melakukan analisis kebutuhan aplikasi GoToko . Sebelum kita menganalisis lebih jauh tentang GoToko, kita perlu mengetahui terlebih dahulu apa saja kebutuhan yang harus digali untuk sebuah aplikasi perangkat lunak. Kebutuhan Fungsional Kebutuhan fungsional adalah kebutuhan dari penggunaan software yang harus dibangun oleh developer ke dalam produk agar pengguna dapat menyelesaikan tugas mereka, sehingga memenuhi persyaratan bisnis. Kebutuhan fungsional menyatakan apa yang harus dilakukan oleh sistem. Kebutuhan fungsional juga sangat bergantung dari jenis perangkat lunak, pengguna sistem, dan jenis sistem yang perangkat lunak tersebut gunakan. Kebutuhan Non-Fungsional Kebutuhan non fungsional merupakan kebutuhan yang menggambarkan bagaimana sistem berkerja ke depannya.  Kebutuhan non-fungsional menjelaskan tentang constraint atau standar yang harus dipatuhi oleh sistem. Kebutuhan non-fungsional juga mendefinisikan karakteristik dari kuali...

EAS REKAYASA KEBUTUHAN (A) - Aplikasi Pemesanan Gedung Acara

Pada Evaluasi Akhir Semester (EAS) kali ini melakukan analisis kebutuhan aplikasi  Pemesanan Gedung Acara . Sebelum kita menganalisis lebih jauh tentang aplikasi ini, kita perlu mengetahui terlebih dahulu apa saja kebutuhan yang harus digali untuk sebuah aplikasi perangkat lunak. Kebutuhan Fungsional Pengguna dapat melakukan registrasi akun. Pengguna dapat melakukan perubahan detail akun. Pengguna dapat melakukan pencarian gedung acara berdasarkan kata kunci tertentu. Pengguna dapat melihat detail gedung acara. Pengguna dapat memberikan review kepada gedung acara yang pernah dipesan. Pengguna dapat melakukan transaksi pemesanan gedung acara via e - wallet ataupun e - banking . Pengguna dapat melihat daftar riwayat transaksi pemesanan gedung. Pengguna dapat membatalkan transaksi pemesanan gedung. Pengguna dapat melihat status transaksi pemesanan gedung. Pengguna dapat melihat promo penyewaan gedung. Pengguna dapat menghubungi customer service yang menjadi penanggungjawab tiap venue...

TUGAS 7 PEMROGRAMAN BERORIENTASI OBJEK (B) BAGIAN I - Login Panel

  Tugas kali ini sedikit memodifikasi aplikasi LoginPanel dengan implementasi GUI dengan komponen AWT dan Swing milik Bapak Fajar Baskoro dan disadur dari link berikut . Aplikasi ini merupakan aplikasi sederhana untuk melakukan proses login. Username dan password telah di-set sebelumnya pada aplikasi, sehingga jika salah satu inputan entah username atau password salah, maka akan muncul "Login Denied!". Jika benar, akan memunculkan "Login Granted!". Ada 1 class yang dipakai dalam aplikasi ini: Login , sebagai class untuk melakukan proses login serta pengecekan username dan password. Lalu, aplikasi ini juga menggunakan beberapa library/package: Java.awt.* , untuk proses inputan dalam sebuah program yang telah dijalankan. Java.awt.event.* , untuk proses deklarasi dari class event yang berisi komponen program yang digunakan untuk mengambil semua file dari package event pada java.awt. Java.awt.swing.* , untuk mendeklarasikan sebuah komponen grafis dengan perintah yang di...