LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK 7 "EXCEPTION HANDLING" PDF

Title LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK 7 "EXCEPTION HANDLING"
Author Fajri Novita
Pages 34
File Size 572.7 KB
File Type PDF
Total Downloads 4
Total Views 182

Summary

LAPORAN MODUL VII PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK “EXCEPTION HANDLING” Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek Dibimbing oleh Heru Wahyu Herwanto, S.T., M.Kom. Oleh: Fajri Novitasari 170533628549 S1 PTI ‘17 OFF A UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK J...


Description

LAPORAN MODUL VII PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK “EXCEPTION HANDLING”

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

Oleh: Fajri Novitasari

170533628549 S1 PTI ‘17 OFF A

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA NOVEMBER 2018

I.

Tujuan Praktikum 1. Menerapkan konsep exception handling. 2. Menangkap exception. 3. Membuat catch secara bertingkat. 4. Melemparkan exception. 5. Menggunakan klausa throws. 6. Membuat class exception sendiri. 7. Menggunakan class JList dan JComboBox.

II.

Dasar Teori 1.

Konsep exception handling. Kategori error dalam pemrograman diantaranya:

a.

Compilation error, yaitu error yang terjadi saat program dikompilasi.

b.

Runtime error, yaitu error yang terjadi saat program dieksekusi/dijalankan.

c.

Logic error, yaitu error yang terjadi saat program tidak berjalan sesuai dengan harapan. Exception (eksepsi atau pengecualian) adalah kondisi yang menyebabkan

program menjadi hang (tergantung) atau quit (kaluar) dari alur normal yang telah ditentukan pada saat program dijalankan. Exception dipicu oleh runtime error, yaitu error atau kesalahan yang terjadi saat program dieksekusi oleh interpreter. Sedangkan

exception

handling

(penanganan

pengecualian)

merupakan

mekanisme untuk menangkap exception tersebut. NullPointerException yang disebabkan oleh proses inisialisasi program yang tidak sempurna dan ArrayIndexOutOfBoundsException yang

disebabkan akses array yang

melebihi kapasitas array yang ada. Perbedaan antara error dengan exception, pada error menunjukkan masalah serius dimana proses recovery sangat sulit dilakukan bahkan tidak mungkin dilakukan, sedangkan pada exception menunjukkan kondisi bahwa syntax bisa diperbaiki atau dapat dikatan exception untuk menangani kesalahan ringan.

Fungsi dari exception handling adalah untuk mengatasi suatu kesalahan inputan user dengan suatu metode akan memberikan pesan pada saat user salah memasukkan inputan dengan ini program tidak akan tertutup dengan sendirinya. Keuntungan penanganan exception adalah mempertahankan aliran normal aplikasi. 2. Hierarki class Exception.

3.

Keyword pada exception handling. Keyword pada exception handling diantaranya:

a.

Try. Blok try digunakan untuk menempatkan kode program yang mungkin menyebabkan terjadinya exception.

b.

Catch. Blok catch digunakan untuk menangkap kesalahan yang terjadi pada blok try.

c.

Finally. Blok finally akan selalu dijalankan, tidak peduli apakah terjadi exception atau tidak.

d.

Throw. Klausa throw digunakan untuk melemparkan exception yang terjadi.

e.

Throws. Klausa throws digunakan untuk mendeklarasikan method yang mungkin akan mengalami exception.

4. Pengenalan class JList dan JComboBox. Class JList merupakan class dari package javax.swing yang digunakan untuk membuat komponen berupa list atau daftar pilihan. Dengan menggunakan list, seluruh alternatif pilihan yang tersedia dapat ditampilkan secara bersamaan. Selection model adalah salah satu model yang dimiliki oleh kelas JList selain data model. Kelas JList mempunyai dua data field terkait dengan mode pemilihan elemen di obyek list yaitu selectionModel dan selectionMode. Properti selectionModel menentukan penanganan tugas yang berkaitan dengan seleksi tunggal (single selection), seleksi dengan interval tunggal (single-interval selection) dan seleksi dengan banyak interval (multiple-interval selection). Selection model dari obyek kelas JList harus mengimplementasikan interface ListSelectionModel yang mendefinisikan tiga konstanta untuk mode seleksi yaitu SINGLE_INTERVAL_SELECTION, SINGLE_SELECTION,

MULTIPLE_INTERVAL_SELECTION

dan

metoda registrasi untuk ListSelectionListener serta mutator

dan accessor untuk beberapa properti (data field). Standarnya, kelas JList menggunakan DefaultListSelectionModel yang merupakan implementasi konkrit (concrete class) dari interface ListSelectionModel. Selection model jarang digunakan secara tegas karena mode pemilihan dapat langsung ditentukan di JList menggunakan metoda setSelectionMode. Class JComboBox merupakan class dari package javax.swing yang digunakan untuk membuat komponen berupa combo box atau kotak kombo yang berisi pilihan seperti pada list. Perbedaannya adalah dengan menggunakan combo box, seluruh alternatif pilihan yang tersedia ditampilkan seperti menu drop down. Oleh karena itu, combo box juga dikenal sebagai drop down list. Kelas JComboBox mendelegasikan sepenuhnya tugas untuk menampilkan obyek grafis di setiap sel combo box (combo box cells) ke combo box cell renderer. Semua combo box cell renderer harus mengimplementasikan interface ListCellRenderer. Anda dapat mengganti string dengan tampilan obyek grafis seperti image atau komponen Java di setiap sel dari obyek combo box dengan cara yang sama sebagaimana di list cell renderer. Ada perbedaan sedikit yang perlu

diperhatikan yaitu Anda menggunakan metoda setCellRenderer untuk kelas JList dan menggunakan metoda setRenderer untuk kelas JComboBox. III.

Tugas Latihan 1. Nama Program Source Code

: WithoutExceptionHandling :

public class WithoutExceptionHandling { public static void main (String[] args) { System.out.println("\n******* PROGRAM TANPA EXCEPTION HANDLING *******\n"); int hasil=9/0; //penyebab exception System.out.println("Hasil pembagian = "+hasil); System.out.println("Pernyataan setelah bebas dari exception."); } }

Hasil Program

:

Penjelasan

:

Program diatas menampilkan hasil program yang tidak menggunakan exception

handling.

Program

tersebut

menggunakan

class

WithoutExceptionHandling, pada method main dideklarasikan variabel hasil bertipe int dengan nilai 9/0. Program akan menampilkan hasil pembagian jika tidak ada error atau kesalahan. Pada saat program dicompile, hasil pembagian tidak bisa ditampilkan karena terjadi exception yaitu pembagian bilangan 9 dengan bilangan 0. 2. Nama Program Source Code

: WithAritmeticException :

public class WithAritmeticException {

public static void main(String[] args) { System.out.println("\n****** PROGRAM DENGAN HANDLING ******\n"); try { int hasil = 9/0; //penyebab exception System.out.println("Hasil Pembagian = "+hasil); System.out.println("Pernyataan dalam blok try setelah bebas dari exception."); } catch(ArithmeticException exc) { System.err.println("ArithmeticException menangkap exception hasil pembagian oleh nol."); System.err.println("\nException yang ditangkap adalah : "+exc); } System.out.println("\nPernyataan di luar block try-catch."); } }

Hasil Program

:

c)

Penjelasan

:

Program diatas menampilkan hasil program yang menggunakan exception handling. Program tersebut menggunakan class WithtAritmeticException.

Pada

program

ini

menggunakan

try-catch

adalah

untuk menangkap kesalahan yang terjadi pada program setelah dieksekusi sehingga jika terjadi kesalahan akan muncul pesan atau notif sesuai dengan yang telah ditentukan. Pada try digunakan untuk menempatkan kode program yang mungkin menyebabkan terjadinya exception. Dideklarasikan variabel hasil bertipe data int dengan nilai 9/0. Jika tidak terjadi exception, akan ditampilkan hasil pembagian dari bilangan 9 dan bilangan 0. catch digunakan

untuk

menangkap

kesalahan

yang

terjadi

pada

blok try dengan ArithmeticException berfungsi untuk menangani kesalahan pada perhitungan, dan output yang ditampilkan adalah text bertuliskan ArithmeticException menangkap exception hasil pembagian oleh nol

dan exception yang ditangkap. Program diatas terjadi exception

dikarenakan bilangan 9 dibagi dengan 0 hasilnya tidak terdefinisi. Untuk menjalankan blok try maka bilangan 0 diganti dengan bilangan selain 0 atau dihapus sehingga hasilnya adalah tetap 9. 3. Nama Program Source Code

: Program menggunakan blok try-catch-finally :

public class TryCatchFinally { public static void main(String[] args) { System.out.println("\n********* MENGGUNAKAN BLOK TRY-CATCH-FINALLY ********\n"); try { int hasil = 9/0; //penyebab exception System.out.println("Hasil Pembagian = "+hasil); System.out.println("Pernyataan dalam blok try setelah bebas dari exception."); } catch(ArithmeticException exc) { System.err.println("ArithmeticException menangkap exception hasil pembagian oleh nol."); System.err.println("\nException yang ditangkap adalah : "+exc); }

finally { System.out.println("\nPernyataan dalam blok finally."); } System.out.println("\nPernyataan di luar blok try-catch-finally."); } }

Hasil Program

:

Penjelasan

:

Program diatas menampilkan hasil program yang menggunakan exception handling. Program tersebut menggunakan class WithtAritmeticException. Pada program ini menggunakan exception handling try-catch-finally adalah untuk menangkap kesalahan yang terjadi pada program setelah dieksekusi sehingga jika terjadi kesalahan akan muncul pesan atau notif sesuai dengan yang telah ditentukan. Pada try digunakan untuk menempatkan kode program yang mungkin menyebabkan terjadinya exception. Dideklarasikan variabel hasil bertipe data int dengan nilai 9/0. Jika tidak terjadi exception, akan ditampilkan hasil pembagian dari bilangan 9 dan bilangan 0. catch digunakan untuk menangkap kesalahan yang terjadi pada blok try dengan ArithmeticException berfungsi untuk menangani kesalahan pada perhitungan, dan output yang ditampilkan adalah text bertuliskan ArithmeticException menangkap exception hasil pembagian oleh nol

dan exception yang

ditangkap. Program diatas terjadi exception dikarenakan bilangan 9 dibagi dengan 0 hasilnya tidak terdefinisi, sehingga hasilnya akan ditampilkan output pada catch. Dan pada finally akan selalu dijalankan, tidak peduli apakah

terjadi exception atau tidak, jadi akan ditampilkan output bertulisakan Pernyataan dalam blok finally.

4. Nama Program Source Code

: Membuat catch bertingkat :

public class MultipleCatch { public static void main(String[] args) { System.out.println("\n****** MENGGUNAKAN MULTIPLE CATCH *******\n"); try { int[] array = new int[9]; //deklarasi array berukuran 9 buah elemen array[9]=13; //penyebab exception System.out.println("Elemen array indeks ke 9 adalah "+array[9]); System.out.println("Pernyataan dalam blok try setelah bebas dari exception."); } catch(ArrayIndexOutOfBoundsException exc) { System.err.println("Anda mengakses array di luar indeks yang dideklarasikan."); } catch(NegativeArraySizeException exc) { System.out.println("Anda mendeklarasikan array dengan ukuran negatif."); } catch(Exception exc) { System.err.println("Anda melakukan pembagian bilangan oleh nol."); } } }

Hasil Program

:

c)

d)

e)

f)

Penjelasan

:

Program diatas menampilkan program yang menggunakan multiplecatch. Pada main method dideklarasikan array dengan ukuran 9. Selanjutnya dideklarasikan pada array 9 bernilai 13 yang menyebabkan exception. Sehingga

output

menampilkan

pada

blok

catch(ArrayIndexOutOfBoundsException exc). Untuk menampilkan blok try, user mengganti deklarasi yang semula 9 diganti dengan bilangan lain misalnya 5 dengan nilai yg sama yaitu 13. Selanjutnya untuk menampilkan

blok catch(NegativeArraySizeException exc) dengan cara mengubah ukuran array menjadi negative misalnya -9. Dan untuk menampilkan blok catch(Exception exc) dengan membagi nilai dari deklasi array[9] yaitu 13 dibagi 0. Blok catch(Exception exc) harus berada pada bagian akhir dalam multiple exception dikarenakan Exception merupakan superclass, jika berada diatas maka blok yang lain tidak berfungsi. 5. Nama Program Source Code

: Exception dengan klausa throw :

public class KlausaThrow { public static void main(String[] args) { String input = "Throws RuntimeException"; System.out.println("\n****** MENGGUNAKAN KLAUSA THROW *******\n"); try { if(input.equals("Throw RuntimeException")) { throw new RuntimeException("Melempar Exception"); } else if(input==null) { throw new NullPointerException(); } else { System.out.println("Input adalah : "+input); } System.out.println("Input adalah : "+input); } catch(Exception exc) { System.err.println("Exception ditangkap di sini."); System.err.println("\nException yang ditangkap adalah : "+exc); } } }

Hasil Program

:

Penjelasan

:

Program diatas digunakan untuk menampilkan program dengan exception throw. Pada fungsi main mendeklarasikan variabel input bertipe data String. Pada blok try terdapat kondisi jika variabel input sama dengan Throw RuntimeException maka akan ditampilkan exception yang ditangkap yaitu RuntimeException("Melempar Exception"), selanjutnya jika input sama dengan null maka akan ditampilkan exception yang ditangkap yaitu NullPointerException(), dan jika input tidak sama dengan Throw RuntimeException dan bukan null maka output yang akan ditampilkan merupakan input itu sendiri. 6. Nama Program Source Code

: Exception dengan klausa throws :

public class KlausaThrows { public static void uji(int angka) throws NullPointerException, ArithmeticException {

if(angka...


Similar Free PDFs