Anda di halaman 1dari 8

LAPORAN PEMROGRAMAN BERORIENTASI OBJEK

MODUL 6
EXCEPTION HANDLING









OLEH :

NAMA : DEVI ARI LUTFIANTO
NIM : 201310370311152




JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2014
I. DASAR TEORI

Exception adalah event, yang terjadi ketika program dieksekusi, yang ngakibatkan
terganggunya alur program secara normal.

- Checked exceptions: merupakan exception yang disebabkan oleh kesalahan
pemakai program atau hal lain yang dapat diprediksi oleh pemrogram. Contohnya,
jika ingin membuka file tapi file tidak ditemukan, maka exception akan muncul.

- Runtime exception: ini adalah exception yang muncul dimana kemunculannya
tidak bisa dihindari oleh pemrogram.

- Errors: Ini sebenarnya bukan exception, namun merupakan masalah yang
muncul diluar kendali pemakai dan pemrogram. Error secara umum akan
dibiarkan saja, sebab tidak ada yang bisa dilakukan untuk mengatasinya. Sebagai
contoh, jika stack overflow muncul, maka error akan muncul.

Menangkap Exception:
Method menangkap exception menggunakan kombinasi try dan catch keywords.
Kode program yang dapat menimbulkan exception diletakkan di dalam blok try .
Sintaks penggunaan try-catch adalah sebagaimana berikut:

try {
//Protected code
}catch(ExceptionName e1) {
//Blok Catch }

Statement catch disertai dengan deklarasi tipe exception yang ingin ditangani. Jika
exception terjadi di bagian protected code, maka blok catch akan melakukan
pemeriksaan. Jika tipe exceptionnya ada di dalam blok catch, maka exception
yang bersangkutan akan ditangani














II. TUGAS PRAKTIKUM

1. Buatlah program untuk memasukkan data buku melalui class KelolaBuku
(menggunakan enkapsulasi) dan kemudian diambil dan disimpan ke String
Infobuku kemudian di tampilkan datanya
2. Beri Exception Handling untuk semua kemungkinan error yang muncul,
contoh jika jumlah_hal memakai tipe data int, lalu kita salah input karakter
huruf
3. Gunakan perulangan tanpa batas untuk input data tersebut, akan berhenti
ketika user menghendaki, atau inputan melebihi batas array

III. HASIL PRAKTIKUM

1. Aplikasi Penghitung Tabung

Source code

/* KelolaBuku.java */

package hemat;

public class KelolaBuku {
private String type_buku;
private String judul_buku;
private int jumlah_hal;

public String getType_buku() {
return type_buku;
}

public void setType_buku(String type_buku) {
this.type_buku = type_buku;
}

public String getJudul_buku() {
return judul_buku;
}

public void setJudul_buku(String judul_buku) {
this.judul_buku = judul_buku;
}

public int getJumlah_hal() {
return jumlah_hal;
}

public void setJumlah_hal(int jumlah_hal) {
this.jumlah_hal = jumlah_hal;
}
}



/* DaftarBuku.java */

package hemat;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class DaftarBuku{
static String Infobuku[] = new String[5];
static String type_bukuTmp;
static String judul_bukuTmp;
static int jumlah_halTmp;
static int jml;
static String pilihan;

public static void main(String[] args) {
KelolaBuku buku[] = new KelolaBuku[5];
buku[0] = new KelolaBuku();
buku[1] = new KelolaBuku();
buku[2] = new KelolaBuku();
buku[3] = new KelolaBuku();
buku[4] = new KelolaBuku();

boolean running = true;

BufferedReader data = new BufferedReader (new
InputStreamReader (System.in));

while (running) {
int pilih = 0;
System.out.println("Pilihan : ");
System.out.println("1. Masukkan Data Buku");
System.out.println("2. Lihat Data Buku");
System.out.println("3. Exit");
System.out.print("Pilihan anda = ");
try {
pilih = Integer.parseInt(data.readLine());
} catch (IOException | NumberFormatException e ) {
System.err.println("Maaf, data
yang anda inputkan salah!");
System.err.println(e);
}
switch (pilih) {
case 1:
System.out.println("Masukkan jumlah data
yang akan diinputkan !");
System.out.print("Jumlah data = ");
try {
jml = Integer.parseInt(data.readLine());
} catch (IOException | NumberFormatException e ) {
System.err.println("Maaf, data yang
anda inputkan salah!");
System.err.println(e);
}
while (running) {
for (int i = 0; i < jml; ) {
try {
System.out.println("Data ke-" + (i+1));

System.out.print("Masukkan tipe buku : ");
type_bukuTmp = data.readLine();
buku[i].setType_buku(type_bukuTmp);

System.out.print("Masukkan judul buku : ");
judul_bukuTmp = data.readLine();
buku[i].setJudul_buku(judul_bukuTmp);
System.out.print("Masukkan jumlah
halaman : ");
jumlah_halTmp =Integer.parseInt(data.readLine());
buku[i].setJumlah_hal(jumlah_halTmp);

Infobuku[i] = (i+1) + ".\nTipe Buku
= " + buku[i].getType_buku() +
"\nJudul Buku = " +
buku[i].getJudul_buku() + "\nJumlah
Halaman = " +
buku[i].getJumlah_hal() + "\n";
i++;
System.out.println("");

} catch (IOException |
NumberFormatException e ) {
System.err.println("Maaf, data
yang anda inputkan salah!");
}
catch(ArrayIndexOutOfBoundsException e) {
System.err.println("Maaf, index
array sudah habis!");
System.out.print("Ingin mencoba
lagi? Y/N : ");
try {
pilihan = data.readLine();
} catch (IOException a) {
System.err.println("Maaf, data
yang anda inputkan salah!");
System.err.println(a);
}
if(pilihan.equalsIgnoreCase("N")) {
break;
}
}
}

running = false;
}
break;

case 2:
System.out.println("Data yang telah
dimasukkan : ");
if (Infobuku[0] != null) {
try {
for (int i = 0; i < jml; i++) {
System.out.println(Infobuku[i]);
}
} catch (ArrayIndexOutOfBoundsException e ) {
System.err.println("Maaf, data
yang anda inputkan salah!");
}
} else
System.err.println("Maaf, Data masih
kosong");
System.out.println("");
break;

case 3:
System.exit(0);
break;

default:
System.err.println("Maaf, menu yang anda
pilih tidak valid!");
}
running = true;
}
}
}

Print Screen Program

Gambar 1. Memasukkan data berupa String ke variabel type int














Gambar 2. Memasukkan data melebihi batas array















Gambar 3. Menu lihat data buku



IV. KESIMPULAN

Exception Handling adalah event yang terjadi ketika program menemui
kesalahan pada saat instruksi program dijalankan.

Exception terdiri dari dua macam kelompok,yaitu:
a. Exception yang merupakan subclass RunTimeException
b. Exception yang bukan merupakan subclass RunTimeException

RunTimeException adalah exception yang disebabkan kesalahan program
atau desain

Keyword penting dalam Exception Handling adalah:
a. Try
b. Catch
c. Finally
d. Throw
e. Throws

Keuntungan Menggunakan Exception :
a. Memisahkan kode Error-Handling dari kode utama
b. Propagasi errors berdasarkan Call Stack
c. Pengelompokan dan pembedaan type error

NumberFormatException merupakan exception yang menangani error karena
kesalahan input selain angka

ArrayIndexOutOfBoundsException merupakan exception yang menangani
error karena memasukkan data ke dalam array yang tidak terdefinisi atau
juga memasukkan data melebihi batas array yang sudah ditentukan

Dengan memakai try catch kita bisa menemukan error tanpa harus program
itu exit dengan sendirinya, sangat berguna untuk membangun program yang
besar da complex seperti tugas besar dari Pak Galih.