LAPORAN 6 EXCEPTION HANDLING PBO PEM

LAPORAN VI PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

  Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek Yang Dibimbing oleh Bapak Heru Wahyu Herwanto, S.T., M.Kom

  Asisten Praktikum : Roby Wahyudi

  Jevri T.A Oleh :

Ananda Putri Syaviri

  

130533608243

S1 PTI 2013 offering B

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

S1 PENDIDIKAN TEKNIK INFORMATIKA

  

November, 2014 LAPORAN KE-6 ”EXCEPTION HANDLING”

  A. TUJUAN

  1. Mahasiswa mengetahui penanganan kesalahan program dengan exception handling.

  2. Mahasiswa mampu menerapkan exception handling.

  3. Mahasiswa mampu membedakan penerapan jenis exception handlin 4. Mahasiswa mampu membuat class exception sendiri.

  5. Mahasiswa mampu melakukan input data melalui keyboard

  B. DASAR TEORI

  A. Exception Handling Exception adalah suatu keadaan yang menyebabkan program hang atau keluar dari alur normal pada saat program dijalankan. Exception handling merupakan mekanisme untuk menangkap bug atau kesalahan pada saat program sedang berjalan.

  B. Keyword pada Exception Handling Try . - Blok try digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception.

  • Catch Blok catch digunakan untuk menangkap kesalahan yang terjadi pada blok try. Finally - Kode program pada blok finally akan selalu dijalankan, tidak peduli apakah terjadi eksepsi atau tidak. Throw - Keyword throw digunakan untuk melempar exception yang terjadi.
  • Throws Keyword throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya.

  C. Jenis Exception Handling : Try Catch  Multiple Catch  C. LATIHAN

   Latihan 1 : Tanpa Exception Handling

  Screenshoot syntax : Screenshoot Jawaban : Keterangan : Program diatas merupakan contoh pengapliaksian program untuk menunjukkan adanya - suatu keadaan yang bernilai salah ( adanya kesalahan dalam penulisan script program ). Dalam program terdapat kesalahan dalam penulisan isi dari sop (system.out.println) sehingga menimbulkan terjadinya kesalahan saat dipanggil. Sehingga nantinya saat di compile akan error, sehingga untuk menunjukkan letak salah pada program diatas akan dijelaskan pada pengaplikasian latihan 2 . dengan menggunakan exception handling, maka kesalahan akan terdeteksi. Juga pada penulisan “System.out.println(5/0);” secara otomatis maka hasilnya pun jika dihitung secara aritmatika akan menimbulkan error karena memiliki hasil tak terhingga. Sehingga dalam exception handling ada jenis exception yang mendeteksi kesalahan dalam aritmatika termasuk perhitungan pembagian (5/0). Ciri- ciri program yang tidak menggunakan exception handling: 1) Tidak menggunakan keyword exception ( try-catch-finally-throw-throws). 2) Tidak menggunakan jenis exception untuk penangkapan kesalahan sesuai dengan jenis kesalahan yang mungkin akan timbul. 3) Tidak menuliskan kode- kode penanganan kesalahan yang terpisah dengan kode yang akan ditangani.

  Screenshoot syntax : Screenshoot Jawaban : Keterangan :

   Latihan 2 : Dengan Exception

  • Program diatas adalah pembenaran dari program pada latihan 1. Pada program ini menggunakan try-catch untuk mendeteksi kesalahan pada scripr pogram 1, sehingga terdapat perubahan script pada program. Try dan catch adalah salah satu jenis exception handling. Try dan catch saling melengkapi, try digunakan untuk menempatkan kode- kode yang digunakan untuk mendeteksi adanya kesalahan, sedangkan catch digunakan untuk menangkap blok kesalahan yang telah dideteksi oleh try.  Latihan 3 : multiplectach

  Screenshoot syntax : (3b  setalah ditambah argumen string nama kota kelahiran )

  (3c setelah ditambahkan dengan argumen angka Nol (0)) & (3d tanpa argument) Screenshoot Jawaban : (3b  setalah ditambah argumen string nama kota kelahiran )

  (3c setelah ditambahkan dengan argumen angka Nol (0)) & (3d tanpa argument) Keterangan point 3c dan 3d : karena pada script ptogram dalam cacth bertingkatm setipa catch tidak memiliki isi( tidak berisi). Sehingga pada saat program dieksekusi tidak akan menampilkan apa- apa, karena kosong.

  Penambahan isi pada masing- masing catch : - Screen shoot keluaran :

  Keterangan : (latihan 3 keseluruhan) Program diatas menggunakan beberapa jenis exception. Program diatas berpotensi - menimbulkan kesalahan nantinya saat program di compile. Operasi aritmatika yang digunakan dalam program diatas menimbulkan kesalahan karena pembagian dengan bilangan 0 memiliki hasil tak terhingga, di dalam operasi aritmatika pun terbilang menjadi operasi yang tidak dapat diseleksaikan. Sehingga dengan penggunaan try-catch pada program diatas, kesalahan akan terdeteksi. Kemudian dengan penggunaan beberapa jenis exception lainnya ( ArrayIndexOutOfBoundsException e) (NullPointerException e). Tambahan argument berupa angka Nol Jika ditambahkan argument berupa angka nol : tetap pada kondisi sebelum - ditambahkan argument angka Nol, karena sifatnya hanya sebagai komentar sehingga tidak akan mempengaruhi jalannya program, terkecuali penulisan komentar yang mungkin dituliskan kurang benar sehingga bisa saja terbaca sebagai kode program dan menimbulkan kesalahan. Running program tanpa argument Program yang di eksekusi tanpa atau dengan argument tidak akan menimbulkan suatu - kesalahan pada program. Argument hanya digunakan oleh programmer agar tidak mudah lupa dalam menggunakan method atau fungsi yang akan digunakan dalam penyelesaian program mereka. Argument digunakan agar nantinya ketika programmer lain ingin mengembangkan program tersebut tidak kesusahan dalam memahami script atau dengan kata lain memahami dari awal algoritma dan alur program tersebut, dengan adanya argument tersebut programmer dapat langsung memahami program tersebut.

  Peletakan catch(Exception e) diakhir ? Penulisan dan peletakan catch (Exception e) adalah selesai penulisan kode- kode pada - blok try , kemudian barulah penulisan kode- kode catch. Jika menggunakan keyword try- catch, maka jelas penulisan catch (Exception e) selalu diakhir, jika menggunakan tambahan keyword finally , maka jelas catch tidak lagi diletakkan pada penulisan terakhir tetapi berada diantara try dan finally. Namun pada dasarnya. Penulisan catch (Exception e) tidak selalu diakhir. Jika pada catch bertingkat maka catch (Exception e) tidak pasti di tuliskan pada akhir script. Pada catch bertingkat catch (Exception e) dituliskan sebelum catch (Throwable t).

   Latihan 4 : TCF Screenshoot syntax :

  Screenshoot Jawaban : Keterangan : Program diatas merupakan contoh pengaplikasian program dengan jenis exception Try- - catch-finally. Dalam program pada try terdapat pendeklarasian variable dan argument keluaran yang nantinya muncul ketika program diekskekusi. Pada catch terdapat jenis exception handling yang digunakan dengan argument keluaran juga. Pada finally hanya terdapat argument- argument keluaran yang nantinya muncul saat program dieksekusi. Analisis exception handling dengan try-catch-finally Try adalah blok yang digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception. Catch digunakan untuk menangkap kesalahan yang terjadi pada blok try. Sedangkan finally adalah kode program yang akan selalu dijalankan, tidak peduli apakah terjadi eksepsi atau tidak. Jadi nanti hasilnya isi dari finally selalu muncul (keluar) baik sewaktu catch mengalami eksepsi atau tidak ( terjadi/tidak eksepsi).

  Perbedaan dengan jenis exception handling lainnya

  

o Try Catch : kalau try-catch , tergantung pada parameter yang digunakan oleh catch, jika terjadi eksepsi. Jika parameter yag digunakan adalah error, exception maka jelas try mengalami eksepsi sehingga program pastinya akan segera berakhir. Dalam exception itu sendiri memiliki jenis/ subkelas yaitu seperti RuntimeException, IndexOutOfBoundsException , ArithmeticException perlu adanya penanganan agar tidak segera berakhir, sehingga diperlukan catch lainnya.

  

o Multiple Catch : multiple catch digunakan untuk dapat menangkap berbagai

  kemungkinan eksepsi dengan menggunakan catch bertingkat ( ada 3 catch: catch (RuntimeException e), catch (Exception e), catch (Throwable t). Throwable diletakkan di akhir dengan tujuan agar kesalahan- kesalahan yang tidka tertangkap pada catch sebelumnya dapat ditangkap kembali.

   Latihan 5 :

  Contoh 1 -

  Screenshoot syntax : Screenshoot Jawaban : Keterangan : Program diatas merupakan contoh program untuk menunjukkan bagaimana seorang - user melempar sebuah exception dengan menggunakan keyword throw. Menggunakan try-catch untuk exception handling ( mendeteksi kesalahan pada program), dengan menggunakan jenis exception “RuntimeException). Program diatas disamping menangkap adanya kesalahan juga menangani kesalahan seperti array yang tidak valid, operasi arithmatika agar program tidak segera berhenti, dengan kata lain , berfungsi untuk mencegah program berakhir setelah terdeteksi kesalahan pada program.

  Contoh 2 -

  Screenshoot syntax : Screenshoot Jawaban :

  Keterangan : Program diatas menggunakan NullPointerException yang digunakan untuk mendeteksi - kesalahan jika terdapat data mahasiswa yang bernilai null. Karena pada program diatas telah ditentukan jika data ( nama dan nim ) tidak boleh null/ tidak boleh tidak diisi.

  Contoh 2.1 -

  Screenshoot syntax : Screenshoot Jawaban : Keterangan: Program diatas menunjukkan apabila sebuah exception tidak dapat menangkap - kesalahan maka digunakan keyword throws. Pada program diatas menggunakan 2 jenis

  ArithmeticException yang terdeteksi kesalahan. Karena nullpointer tidak mendeteksi kesalahan ( tidak ada kesalahan) maka selanjutnya arithmetic yang mendeteksi kesalahan. Dengan keyword throws makan kesalahan kesalahan yang terlewatkan bisa dideteksi dan ditangkap kembali.

   Latihan 6 : Screenshoot program :

  Keterangan : Program diatas adalah program untuk membuat eksepsi sendiri, dengan menggunakan - tata cara pembuatan script program yang telah dipelajari dari modul 1 modul 5.

  Membuat nama kelas, membuat kelas induk dan turunan dengan kata kunci extends untuk turunan dari induk. (Membuat konstruktor default, membuat konstruktor dengan parameter String, kemudian bertipe String dan int.  untuk kelas anak (turunan)). Membuat sebuah method dengan menggunakan keyword throws untuk menangkap kesalahan yang bisa terjadi nantinya saat progra, di eksekusi. Kemudian penggunaan keyword lainnya pada fungsi utama yaitu try-catch dengan parameter catch yaitu nama dari kelas turunan/anak .

  D. TUGAS PRAKTIKUM

   Tugas 1 : Akar-akar bilangan imajiner ( persamaan )

  Syntax :

  Screenshoot hasil : Keterangan :

  Pada program ini menggunakan scanner yang fungsinya untuk menginputkan data - secara manual ( saat program sedang dieksekusi ). Pada class DemoPraktikum terdapat class disertai penggunaan keyword throws dan dengan menggunakan perkondisian jika nilai D setelah nilai a,b,c diinputkan secara manual lebih besar dari O maka , akar- akar bilangan tersebut (bilangan imajine) diubah ke bilangan komples. Kemudian pendeklarasian operasi arithmatika yang akan dieksekusi. Kemudia fungsi utama yang catch untuk pendeteksi kesalahan yang bisa saja terjadi, sehingga jika terjadi kesalahan, akan terdeteksi dan dapat memberi tahu pengguna apabila terdapat kesalahan pada operai arithmatika dalam program mereka. Dalam kelass UjiDemoPraktikum sebagai penguji dari kelas DemoPraktikum dengan - isi yang berbeda jika dibandingkan dengan kelas Uji lainnya di modul-modul sebelumnya. Terdiri dari default constructor, constructor dengan 2 paramater berbeda dan method getBilangan yang berfungsi mengubah nilai bilangan tersebut.

  Syntax : Screenshoot : Keterangan :

  Pada program diatas hanya menggunakan 1 kelass dengan metode io ( inputan data - secara manual saat program berjalan ). Menggunakan keyword throws untuk penjagaan apabila memungkinkan terjadinya eksepsi pada program di atas.

  E. TUGAS RUMAH

  Syntax :

  Screenshoot jawaban : Keterangan :

  Pada program diatas, menggunakan 3 exception handling yaitu : - ArrayIndexOuttOfBoundException  menangani kesalahan array yang tidak valid antara yang telah ditentukan dengan yang akan di gunakan dalam proses eksekusi program. Exception  mendeteksi adanya berbagai macam kesalahan dalam program secara umum. Throwable  penulisannya diletakkan paling akhir agar dapat menangkap berbagai kesalahan yang tidak dapat ditangkap oleh exception handling sebelumnya. Serta melontarkan eksepsi, jika blok try mengalami eksespi (kesalahan).

  F. KESIMPULAN:

  • Exception adalah suatu keadaan yang menyebabkan program hang atau keluar dari alur normal pada saat program dijalankan.
  • Keyword exception handling : try,catch, finally, throw, throws.
  • Jenis exception handling:

  a) try catch

  b) try catch finally

  c) multiple catch Jenis exception : -

  a) RuntimeException : untuk kesalahan array dan arithmetic c) ArithmeticException : kesalahan operasi aritmatika

  d) Throwable : untuk mendeteksi kesalahan yang tidak dapat dideteksi exception lain dan melontarkan eksepsi e) Exception : untuk deteksi kesalahan secara umum

  f) dll

  g) DAFTAR PUSTAKA

   Tim Asisten Dosen. 2014. Modul 6 EXCEPTION HANDLING .Malang: Universitas Negeri Malang.

   Abdul Kadir.Dasar Pemrograman Java 2.