Anda di halaman 1dari 11

Laporan Praktikum Pemrograman

Berorientasi Objek (PBO) dengan Java

Modul 4

Exception Handling

Daftar Isi :
Pengampu :
1. Deskripsi Praktikum
Galih Wasis W., S.Kom, M.Cs 2. Perangkat Lunak
3. Teori Penunjang
4. Prosedur Pelaksanaan
Nama: 5. Implementasi dan Hasil Praktikum

201610370311121 6. Kesimpulan

Fitria Siska Dwi Sulistyowati

1
DAFTAR ISI
1. Deskripsi Praktikum ............................................................................................................... 3

2. Perangkat Lunak .................................................................................................................... 3

3. Teori Penunjang ...................................................................................................................... 3

4. Prosedur Pelaksanaan ............................................................................................................ 4

5. Hasil Soal Latihan dan penjelasan ........................................................................................ 4

6. Implementasi dan Hasil Praktikum ...................................................................................... 8

7. Kesimpulan ............................................................................................................................ 17

2
1. Deskripsi Praktikum
Dalam praktikum ini saya mendapat banyak pengetahuan baru, dan juga
mendapatkan praktik dari teori yang sudah saya dapat di kelas PBO sebelumnya
mengenai materi yang telah dijelaskan oleh tim pengajar. Di lab ini saya juga
mendapat banyak bantuan dan pengetahuan dari para aslab. Selain itu disini ada
beberapa tujuan dari praktikum yang akan dicantumkan di bawah ini.

Tujuan praktikum:
Mahasiswa mampu memahami konsep Exception Handling dalam suatu program.
Mahasiswa mampu memahami perbedaan antara kode program java yang
memanfaatkan Exception Handling dan yang tidak memanfaatkan.
Mahasiswa mampu mengimplementasikan kata try, catch, dan finally di dalam
menangani exception.
Mahasiswa mampu memahami dan mengerti tentang hierarki dari class Exception
yang ada di dalam bahasa pemrograman java.

2. Perangkat Lunak

Perangkat lunak yang digunakan dalam praktikum yaitu:


a. Compiler Java (JDK)
b. Editor Java (Gel, Eclipse, Jcreator, dll)

3. Teori Penunjang
Berikut adalah beberapa teori-teori penunjang dalam praktikum yang dilakukan di
modul 4 ini, yaitu :
Exception Handling
Exception Handling adalah sebuah event, yang terjadi ketika program
dieksekusi, yang mengakibatkan terganggunya alur program secara normal.
Ketika error terjadi di suatu method, maka method tersebut akan membuat
object yang kemudian dikirim ke runtime system. Object ini, yang disebut sebagai
exception object, mengandung informasi tentang error yang terjadi, termasuk tipe dan
kondisi program pada saat error terjadi. Proses pembuatan exception object dan
kemudian mengirimnya ke runtime system ini disebut sebagai t h ro w i n g a n
exception (melemparkan Exception).
Setelah method melemparkan exception, runtime system akan berusaha untuk
mencari solusi untuk menangani masalah yang ada. Solusi yang ada bisa jadi lebih

3
dari satu, 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 call stack. (lihat
gambar).
Runtime system mencari method yang memiliki blok untuk menangani error
yang terjadi berdasarkan call stack. Pencarian dimulai dari tempat terjadinya error
,kemudian dirunut berdasarkan call stack secara reverse order. Jika ditemukan blok
untuk menangani error yang bersangkutan, maka system akan menyerahkan exception
ke handler.
Penyerahan exception ini
disebut sebagai catch the exception
(menangkap exception). Jika system
tidak menemukan handler yang
sesuai di call stack, maka runtime
system akan menghentikan jalannya
program. (lihat gambar).

- 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 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.

4
Method-method di class exception:
public String getMessage() mengembalikan detail informasi mengenai
exception yang terjadi. Informasi ini diinisialisasi oleh constructor milik Throwable
public Throwable getCause() menampilkan penyebab dari exception public String

toString() mendapatkan nama exception ditambah informasinya public void

printStackTrace() menampilkan hasil toString() beserta stack trace System.err

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 public Throwable fillInStackTrace()

mengisi stack trace dari object Throwable dengan stack trace yang terdeteksi,
menambah ke dalam stack trace.

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
Contoh: Berikut adalah array dua dimensi. Kemudian program akan mengakses
elemen ke 3 dari array tersebut, sehingga mengakibatkan exception.
// File Name : ExcepTest.java
import java.io.*;
public class ExcepTest{

public static void main(String args[]){


try{
int a[] = new int[2];
System.out.println("Access element three :" + a[3]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception thrown :" +
e);
}
System.out.println("Out of the block");
}

5
Program diatas akan menghasilkan:
Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3 Out of the block

Keyword throws dan throw


Jika method tidak dapat menangani exception, maka method tersebut harus
mendeklarasikan jenis exception yang mungkin dilemparkan menggunakan kata
throws. Kata throws digunakan pada bagian deklarasi method. Berikut adalah sebuah
method yang melemparkan RemoteException.
import java.io.*; public
class className
{
public void deposit(double amount)
throws RemoteException
{
// Method implementation
throw new RemoteException();
}
//Remainder of class definition
}

Pada suatu method dapt didefinisikan lebih dari satu macam keluaran
exception yang dipisahkan dengan tanda koma (,). Sebagai contoh: method
berikut kemungkinan melemparkan RemoteExceptiondan
nsufficientFundsException:
import java.io.*; public
class className
{
public void withdraw(double amount)
throws RemoteException,

InsufficientFundsException
{
// Method implementation
}
//Remainder of class definition
}

4. Prosedur Pelaksanaan
Berikut adalah prosedur-prosedur dalam pelaksanaan praktikum yang dilakukan di
lab, yaitu:

1. Menjelaskan secara singkat materi struktur dasar pemrograman java yang dilakukan
asisten laboratorium.
2. Praktikan mengerjakan latihan yang ada di modul.

5. Implementasi dan Hasil Praktikum

6
a. Source code / syntax tugas modul
1. Daftar Buku
package modul4;

import java.util.Scanner;

public class DaftarBuku {

static kelolaBuku[] infobuku = new kelolaBuku[3];

static int n=0;

public static void main(String[] args) {

Scanner input = new Scanner (System.in);

int siska = 0;

do{

try{

System.out.println(" 1. input ");

System.out.println(" 2. output");

System.out.println(" 3. exit");

System.out.println(" masukan pilihan ");

siska = input.nextInt();

if(siska == 1){

input();

else if(siska == 2){

output();

}else if(siska == 3){

System.out.println("Sankyu :) ");

}catch(java.util.InputMismatchException aksis){

System.err.println(aksis);

}while(siska != 3 );

public static void input(){

Scanner input = new Scanner (System.in);

infobuku[n] = new kelolaBuku();

System.out.print("type_buku : ");

String type = input.next();

infobuku[n].setType_buku(type);

System.out.print("Judul_Buku : ");

String judu = input.next();

infobuku[n].setJudul_Buku(judu);

System.out.print("Hal_Buku : ");

int halBuk = input.nextInt();

infobuku[n].setJmlah_hal(halBuk);

n++;

7
}

public static void output(){

for(int i=0;i<n;i++){

System.out.println("type_buku :
"+infobuku[i].getType_buku());

System.out.println("judul_buku :
"+infobuku[i].getJudul_Buku());

System.out.println("Hal_buku :
"+infobuku[i].getJmlah_hal());

2. Praktikum 2 (Tumbuhan/Hewan)
package modul4;

public class kelolaBuku {

private String type_buku;

private String judul_Buku;

private int Jmlah_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 getJmlah_hal() {

return Jmlah_hal;

public void setJmlah_hal(int Jmlah_hal) {

this.Jmlah_hal = Jmlah_hal;

8
b. Print screen hasil
a. Soure code
Praktikum 1

9
Praktikum 2

b. Running

10
c. Analisis hasil tugas modul serta penjelasan
Modul 4 ini membahas mengenai cara membuat program dengan
menggunakan array. Dan juga agar sang programmer dapat memahami akan
kesalahan-kesalahan yang terjadi.

6. Kesimpulan

Dari percobaan ini disimpulkan bahwa terdapat banyak method dan fungsi-fungsi
dalam Java, mulai dari yang namanya class dan object. Ada juga method-method dengan
berbagai macam, mulai dari public, protected, dan private. Ada juga yang namanya
constructor, dan ada overloading constructor yang isinya adalah banyak constructor.

Keuntungan Menggunakan Exception


1. Memisahkan kode Error-Handling dari kode utama
2. Propagasi errors berdasarkan Call Stack
3. Pengelompokan dan Pembedaan Tipe Error

11