Anda di halaman 1dari 26

LAPORAN PRAKTIKUM

MODUL VI
EXCEPTION HANDLING

Disusun Oleh:
Umi Farida

/ 150533605050

Wenda Aditama

/ 150533604429

Program Studi:
S1 Pendidikan Teknik Informatika Offering D

JURUSAN TEKNIK ELEKTRO


UNIVERSITAS NEGERI MALANG
2016

BAB I
PENDAHULUAN
A. TUJUAN
1. Mahasiswa mengetahui penanganan kesalahan program dengan exception
2.
3.
4.
5.

handling.
Mahasiswa mampu menerapkan exception handling.
Mahasiswa mampu membedakan penerapan jenis exception handling.
Mahasiswa mampu membuat class exception sendiri.
Mahasiswa mampu melakukan input data melalui keyboard.

B. DASAR TEORI
Exception
Definisi Exception
Suatu mekanisme penanganan kesalahan. Event yang terjadi ketika program menemui
kesalahan saat instruksi program dijalankan. Exception sering digunakan dalam akses
sumberdaya non memori. Catatan : Exception = untuk menangani kesalahan ringan
(mild error). Error = mengindikasikan bahwa error yang terjadi adalah fatal error
(severe problem) dimana proses recovery sangat sulit dilakukan bahkan tidak
mungkin dilakukan.
Contoh Exception
class DivByZero {
public static void main(String args[]) {
System.out.println(3/0);
System.out.println(Pls print me);
}
}
--------------------------------------------------------------Menampilkan pesan error
Exception in thread main java.lang.ArithmeticException: / by
zero at DivByZero.main(DivByZero.java:3)
---------------------------------------------------------------

Apa yang terjadi jika terjadi kesalahan?


Secara otomatis akan dilempar sebuah objek yang disebut dengan exception.
Exception dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani
kesalahan. Proses pelemparan exception disebut dengan throwing exception. Proses
penerimaan exception disebut dengan catch exception.
Melempar Exception Throw
Java memperbolehkan untuk melempar exception (generate exception).
throw <exception object>;

Exception yang dilempar adalah sebuah object exception (object exception yang
sudah disediakan oleh java atau yang di-create sendiri).

throw new ArithmeticException(testing..);

Exception Propagation

Exception dapat ditangani pada tingkat yang lebih tinggi jika di tempat terjadinya
exception tidak ditangani secara tepat. Exception merambat naik (propagate up)
melalui method hierarki sampai exception ditangkap atau sampai mencapai level
method main.
Contoh Exception Propagation :
void method1 throws IOException {
throw new IOException(Error in method1);
}
void method2 throws IOException {
// do stuff, but no catch, just specify method1();
}
void method3 throws IOException {
// do stuff, but no catch, just specify method2();
}
public static void main (String args[]) {
// catch if just specitfy error to console
try {
method3();
} catch (IOException e) {
// handle ethe exception from method1
}
}

Object Exception
Object exception yang dihasilkan dapat dimanfaatkan untuk mengetahui dapat
dimanfaatkan untuk mengetahui lebih lanjut mengenai error atau exception yang
terjadi. Exception merupakan subclass dari class throwable.
Method yang diwarisi oleh exception

getMesaage()
Method ini mengembalikan isi pesan untuk menggambarkan exception yang
terjadi.

printStackTrace()
Method ini menampilkan pesan error dan stack trace ke standard error output
stream yang biasanya merupakan konsol window apabila program merupakan
program konsol.

printStackTrace(PrintStream s)
Method ini mengembalikan pesan error ke objek PrintStream yang dijadikan
parameter. Apabila ingin menampilkan pesan ke konsol, anda dapat menggunakan
system.out sebagai parameter.

Overriding Method dan Exception


Overriding method hanya boleh melempar exception yang merupakan subclass dari
exception yang dilempar oleh overriden method atau sama. Overriding method boleh
mendeklarasikan exception lebih sedikit dari jumlah exception kepunyaan overriden
method.
Catatan : Overriding method = method yang mengoverride
Overriden method = method yang dioverride.

BAB II
HASIL

1) Hasil Kelompok
a. Latihan 1
Tabel 1.0 Script DivByZero.java pada latihan 1
DivByZero.java
class DivByZero{
public static void main(String[] args) {
System.out.println(5/0);
System.out.println("ini adalah keluaran program");
}
}

b. Latihan 2
Tabel 1.1 Script DivByZeroWithException.java pada latihan 2
DivByZeroWithException.java
class DivByZeroWithException{
public static void main(String[] args) {
try {
System.out.println(5/0);
System.out.println("Keluaran program");

}
catch (ArithmeticException exc) {
System.out.println("Exception ditangkap : " + exc);
}
System.out.println("Setelah exception...");
}
}

c. Latihan 3
Tabel 1.2 Script multiplecatch.java pada latihan 3
multiplecatch.java
class multiplecatch{
public static void main(String[] args) {
try{
int a = 3/0;
int num = Integer.parseInt(args[0]);
System.out.println("Perintah selanjutnya....");
}
catch(ArrayIndexOutOfBoundsException e){
}
catch(NullPointerException e){
}
catch(Exception e){

}
}
}
Tabel 1.3 Script multiplecatch1.java pada latihan 3
multiplecatch1.java
public class multiplecatch2
{
public static void main(String[] args)
{
try
{

int a = 3/0; //berpotensi untuk menimbulkan kesalahan yaitu


pembagian
//dengan bilangan 0
int num = Integer.parseInt(args[0]);
System.out.println("Perintah selanjutnya...");
}
catch(ArrayIndexOutOfBoundsException e){
}
catch(NullPointerException e){
}
catch(Exception e){
System.out.println("Kota Kelahiran Umi adalah Kota Malang");
System.out.println("Kota Kelahiran Wenda adalah Kota Kediri");
}
}
}
Tabel 1.4 Script multiplecatch2.java pada latihan 3
multiplecatch2.java
public class multiplecatch2
{
public static void main(String[] args)
{
try
{
//int a = 3/0; //berpotensi untuk menimbulkan kesalahan yaitu
pembagian
//dengan bilangan 0
int num = Integer.parseInt(args[0]);
System.out.println("Perintah selanjutnya...");
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println(e);
}
catch(NullPointerException e){
}
catch(Exception e){
System.out.println("Kota Kelahiran Umi adalah Kota Malang");
System.out.println("Kota Kelahiran Wenda adalah Kota Kediri");
}

}
}

Tabel 1.5 Script multiplecatch3.java pada latihan 3


multiplecatch3.java
public class multiplecatch3
{
public static void main(String[] args)
{
try
{
//int a = 3/0; //berpotensi untuk menimbulkan kesalahan yaitu
pembagian
//dengan bilangan 0
int num = Integer.parseInt(args[0]);
System.out.println("Perintah selanjutnya...");
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println(e);
}
catch(NullPointerException e){
}
catch(Exception e){

}
}
}

d. Latihan 4 Try catch finally


Tabel 1.6 Script TCF.java pada latihan 4
TCF.java
public class TCF{
public TCF(){
}
public static void main(String[] args) {
int nol = 0;

int angka = 10;


try {
int hasil = angka / nol;
System.out.println("Hasil = " + hasil);
}
catch (ArithmeticException e) {
System.out.println("Terjadi pembagian dengan nol .Exception
ditangkap");
}
finally{
System.out.println("Kalimat di blok finally");
}
System.out.println("Kalimat di luar blok try-catch-finally");
}
}

e. Latihan 5 Keyword throw


Tabel 1.7 Script ThrowDemo.java pada latihan 5.1
ThrowDemo.java
class ThrowDemo{
public static void main(String[] args) {
String input = "Invalid input";
try{
if (input.equals("Invalid input")){
throw new RuntimeException("throw demo");
} else {
System.out.println(input);
}
System.out.println("After throwing");
}
catch (RuntimeException e) {
System.out.println("Exception caught here");
System.out.println(e);
}
}
}

Tabel 1.8 Script DataMhs.java pada latihan 5.1


DataMhs.java
class DataMhs{
private String nim;
private String nama;
private double nilai;
public void setNim(String vnim){
try{
nim = vnim;
if (nim == null){
throw new NullPointerException();
}
}
catch (NullPointerException e) {
System.out.println("KESALAHAN : " + "NIM mahasiswa tidak
boleh null");
}
}
public String getNim(){
return nim;
}
public void setNama(String vNama){
try{
nama = vNama;
if (nama == null){
throw new NullPointerException();
}
}
catch (NullPointerException e) {
System.out.println("KESALAHAN : " + "Nama mahasiswa tidak
boleh null");
}
}

public String getNama(){


return nama;
}
public void setNilai(int vnilai){
nilai = vnilai;
}
public double getNilai(){
return nilai;
}
}
Tabel 1.9 Script DemoThrow.java pada latihan 5.1
DemoThrow.java
class DemoThrow{
public static void main(String[] args) {
DataMhs obj = new DataMhs();
obj.setNim("101533402134");
obj.setNama("Rudi");
obj.setNilai(80);
System.out.println("NIM : " + obj.getNim());
System.out.println("Nama : " + obj.getNama());
System.out.println("Nilai : " + obj.getNilai());
}
}
Tabel 2.0 Script DemoThrows2.java pada latihan 5.2
DemoThrows.java
public class DemoThrows{
public

static

void

uji(int

angka)

throws

NullPointerException,

ArithmeticException{
if (angka < 0){
throw new NullPointerException("Kesalahan : null pointer
exception");
}
else {
throw
exception");
}

new

ArithmeticException("Kesalahan

arithmetic

}
public static void main(String[] args) {
try{
uji(-12);
// uji(0);
}
catch (Exception e) {
System.out.println("Exception ditangkap di sini");
}
System.out.println("Statement setelah block try-catch");
}
}

f. Latihan 6 Membuat Eksepsi Sendiri


Tabel 2.1 Script NegativeNumberException.java pada latihan 6
NegativeNumberException.java
class NegativeNumberException extends Exception {
private int bilangan;
NegativeNumberException(){
}
NegativeNumberException(String pesan){
super(pesan);
}
NegativeNumberException(String pesan, int nilai){
super(pesan);
bilangan = nilai;
}
public int getBilangan(){
return bilangan;
}
}

Tabel 2.2 Script DemoMembuatEksepsi.java pada latihan 6


DemoMembuatEksepsi3.java
class DemoMembuatEksepsi3{
public static int hitungFaktorial(int n) throws NegativeNumberException{
if (n < 0){
throw new NegativeNumberException("Bilangan tidak boleh
negatif", n);
}
int hasil = 1;
for (int i=n; i>=1; i--) {
hasil *=i;
}
return hasil;
}
public static void main(String[] args) {
System.out.println("Pada saat menghitung 5!");
try{
System.out.println("Hasil = " + hitungFaktorial(5));
}
catch (NegativeNumberException nne) {
System.out.println("Bilangan : " + nne.getBilangan());
}
System.out.println("\nPada saat menghitung -5!");
try{
System.out.println("Hasil = " + hitungFaktorial(-5));
}
catch (NegativeNumberException nne) {
System.out.println("Bilangan : " + nne.getBilangan());
nne.printStackTrace();
}
}
}

Melakukan Input
g. Membaca input karakter
Tabel 2.3 Script DemoInputKarakter.java
DemoInputKarakter.java
import java.io.*;
class DemoInputKarakter
{
public static void main(String[] args) throws IOException
{
System.out.print("Masukkan sembarang karakter : ");
char ch;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
ch = (char) br.read();
System.out.println("Karakter yang dimasukkan adalah \'" +ch + "\'");
}
}

h. Membaca input data string


Tabel 2.4 Script DemoInputString.java
DemoInputString.java
import java.io.*;
class DemoInputString
{
public static void main(String[] args) throws IOException
{
System.out.print("Masukkan nama Anda : ");
String nama;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
nama = br.readLine();
System.out.println("Halo " + nama + ", sudahkan Anda mengerti
Java?");
}
}

i. Membaca input data numerik : integer

Tabel 2.5 Script DemoInputNumerik1.java


DemoInputNumerik1.java
import java.io.*;
class DemoInputNumerik1
{
public static void main(String[] args) throws IOException
{
System.out.print("Masukkan sebuah bilangan bulat : ");
String temp;
int bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
//

input data dianggap sebagai string


temp = br.readLine();
try
{
//

konversi dari string ke integer


bilangan = Integer.parseInt(temp);

}
catch(NumberFormatException nfe)
{
System.out.println("Data yang dimasukkan bukan bilangan
bulat");
System.exit(1);
}
System.out.println("Bilangan

yang

dimasukkan

+bilangan);
}
}

j. Membaca input data numerik : double


Tabel 2.6 Script DemoInputNumerik2.java
DemoInputNumerik2.java
import java.io.*;
class DemoInputNumerik2
{
public static void main(String[] args) throws IOException
{
System.out.print("Masukkan sebuah bilangan riil : ");
String temp;
double bilangan = 0;

"

+"adalah

"

InputStreamReader isr = new InputStreamReader(System.in);


BufferedReader br = new BufferedReader(isr);
//

input data dianggap sebagai string


temp = br.readLine();
try
{
//

konversi dari string ke floating-point


bilangan = Double.parseDouble(temp);

}
catch(NumberFormatException nfe)
{
System.out.println("Data yang dimasukkan bukan bilangan");
System.exit(1);
}
System.out.println("Bilangan

yang

dimasukkan

+bilangan);
}
}

k. Tugas Praktikum
Tabel 2.7 Script NegativeNumberException.java
NegativeNumberException.java
class NegativeNumberException extends Exception {
private int bilangan;
NegativeNumberException(){
}
NegativeNumberException(String pesan){
super(pesan);
}
NegativeNumberException(String pesan, int nilai){
super(pesan);
bilangan = nilai;
}
public int getBilangan(){
return bilangan;
}

"

+"adalah

"

}
Tabel 2.8 Script UjiEksepsi.java
UjiEksepsi.java
import java.io.*;
class UjiEksepsi{
public static double hitungLuas(int n) throws NegativeNumberException{
if (n < 0){
throw new NegativeNumberException("Bilangan tidak boleh
bernilai negatif", n);
}
double hasil = 6 * n * n;
return hasil;
}
public static void main(String[] args) throws IOException{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader buf = new BufferedReader(isr);
int rusuk;
System.out.println("Program Perhitungan Luas Permukaan Kubus");
System.out.print("Masukkan nilai rusuk kubus : ");
rusuk = Integer.parseInt(buf.readLine());
try{
System.out.println("Volume = " + hitungLuas(rusuk));
}
catch (NegativeNumberException nne) {
System.out.println("Bilangan : " + nne.getBilangan());
nne.printStackTrace();
}
}
}

l. Tugas Rumah
Tabel 2.9 Script EksepsiMultipleCatch.java
EksepsiMultipleCatch.java
import java.io.*;
class EksepsiMultipleCatch{

public static void main(String[] args) throws IOException{


String nilai;
int a, b;
InputStreamReader input = new InputStreamReader (System.in);
BufferedReader buf = new BufferedReader(input);

System.out.print("Masukkan angka pertama : ");


nilai = buf.readLine();
try{
a = Integer.parseInt(nilai);
System.out.println("Nilai pertama : " + a );
}
catch (NumberFormatException nfe) {
System.out.println("Nilai yang dimasukkan bukan angka");
}
catch (Exception nfe3) {
System.out.println("Eksepsi ditangkap");
}
System.out.print("Masukkan angka kedua : ");
nilai = buf.readLine();
try{
b = Integer.parseInt(nilai);
System.out.println("Nilai kedua : " + b);
}
catch (NumberFormatException nfe) {
System.out.println("Nilai yang dimasukkan bukan angka");
}
catch (Exception nfe3) {
System.out.println("Eksepsi ditangkap");
}
}
}

2) Hasil Kompilasi
a. Latihan 1 poin a

Gambar 1.0 Output latihan 1 poin a

b. Latihan 2 poin a

Gambar 1.1 Output latihan 2 poin b

c. Latihan 3
Latihan 3 poin a

Gambar 1.2 Output latihan 3 poin a

Latihan 3 poin b

Gambar 1.3 Output latihan 3 poin b

Latihan 3 poin c

Gambar 1.4 Output latihan 3 poin c

Latihan 3 poin d

Gambar 1.5 Output latihan 3 poin d

Latihan 3 poin e

Gambar 1.6 Jawaban latihan 3 poin e

d. Latihan 4
Latihan 4 poin a

Gambar 1.7 Output latihan 4 poin a

Latihan 4 poin b

Gambar 1.8 Jawaban latihan 4 poin b

Latihan 4 poin c

Gambar 1.9 Jawaban latihan 4 poin c

e. Latihan 5
Latihan 5.1 a

Gambar 2.0 Output latihan 5.1 a

Latihan 5.1 b

Gambar 2.1 Ouput latihan 5.1 b

Latihan 5.2 dengan uji (0)

Gambar 2.2 Output latihan 5.2 dengan uji (0)

Latihan 5.2 dengan uji (-12)

Gambar 2.3 Output latihan 5.2 dengan uji (-12)

f. Latihan 6

Gambar 2.4 Output latihan 6

Melakukan Input

g. Membaca input karakter

Gambar 2.5 Output DemoInputKarakter.java

h. Membaca input string

Gambar 2.6 Ouput DemoInputString.java

i. Membaca input numerik : integer

Gambar 2.7 Output DemoInputNumerik1.java

j. Membaca input numerik : double

Gambar 2.8 Output DemoInputNumerik2.java

k. Tugas Praktikum

Gambar 2.9 Output tugas praktikum

l. Tugas rumah

Gambar 3.0 Output tugas rumah

3) Pembahasan

1. Latihan 1
Kode program pada latihan satu digunakan untuk menampilkan hasil perhitungan 5/0
dan Ini adalah keluaran program. Akan tetapi, keluaran yang ditampilkan berupa
exception. Hal ini dikarenakan adanya operasi aritmatika tidak sah yaitu bilangan
dibagi nol. Berdasarkan latihan satu dapat disimpulkan ciri-ciri program yang tidak
menggunakan exception handling adalah program yang memiliki output pesan
exception dan di dalam kode program tidak terdapat blok try-catch yang merupakan
blok exception handling.
2. Latihan 2
Kode program pada latihan dua digunakan untuk menampilkan hasil perhitungan 5/0
dan Keluaran program, namun akan terjadi error karena terdapat operasi aritmatika
tidak sah yaitu bilangan yang dibagi nol. Untuk menangani error exception tersebut
dibuatlah exception handling yang berupa blok try-catch. Langkahnya adalah bagian
program yang akan diuji kebenarannya diletakkan di blok try. Kemudian pada blok
catch akan dilakukan penyeleksian kondisi eksepsi, jika memenuhi kondisi tersebut
maka kode program pada blok try tidak ditampilkan, tetapi kode pada blok catch yang
ditampilkan.
3. Latihan 3
Program ini merupakan program Multiple Catch yang memiliki class multiplecatch. .
Program ini menggunakan keywoard exception handling yaitu Try dan Catch.
Program

ini

menggunakan

macam

catch

yang

pertama

(ArrayIndexOutOfBoundsException e) digunakan untuk menangani eksepsi dalam


lingkup array, kedua (NullPointerException e) digunakan untuk menangani eksepsi
dalam ketika mengakses suatu reference variable yang null, ketiga catch(Exception e)
digunakan untuk menangani eksepsi tipe Exception Ex : pembagian dengan bilangan
nol.
Ketika program ditambahkan dengan argument berupa String Nama kota kelahiran
kita maka program akan menampilkan kota yang telah kita inputkan. Dan ketika
ditambahkan argument berupa Angka Nol maka akan menampilkan 0. Sedangkan
jika tanpa argument akan muncul seperti pada hasil output gambar 1.12 karena catch
tidak memiliki isi. Sehingga pada saat program dieksekusi tidak akan menampilkan
apapun karena kosong.
Peletakan catch(Exception e) tidak selalu diletakkan di akhir. Jika pada catch
bertingkat maka catch(Exception e) tidak pasti dituliskan di akhir karena pada catch
bertingkat catch(Exception e) dituliskan sebelum catch(Throwable t). Tetapi jika
menggunakan keyword try-catch, maka penulisan catch(Exception e) selalu diakhir,

dan jika ditambahkan finally maka catch(Exception e) tidak akan terletak diakhir
melainkan berada diantara try dan finally.
4. Latihan 4
Kode program pada latihan empat digunakan untuk melakukan operasi pembagian dan
menampilkan hasilnya. Hasil ini diperiksa melalui blok try-catch-finally. Langkah
menggunakan blok ini adalah kode program yang akan diperiksa diletakkan di dalam
blok try. Kemudian pada blok catch akan diseleksi eksepsinya, jika terjadi eksepsi
yang sesuai maka kode dalam blok catch akan ditampilkan dan kode pada blok try
tidak ditampilkan. Blok finally digunakan untuk meletakkan kode program sebagai
penutup dari blok exception handling dan akan selalu dijalankan. Blok catch dapat
digunakan berkali-kali namun blok finally hanya boleh ada satu di setiap blok trycatch-finally.
Perbedaan dengan exception handling yang lain adalah dengan blok finally
pemrogram dapat memberikan keterangan tentang eksepsi yang sudah diperiksa.
5. Latihan 5
a. Latihan 5.1
Program 1
Kode program pada program ini digunakan untuk melempar eksepsi jika terjadi
kesalahan input. Pada latihan ini dapat dilihat bahwa pada blok try dilakukan
pengecekan variabel input. Jika kondisinya benar maka RuntimeException akan
dilemparkan dengan keterangan throw demo di dalamnya. Karena kondisi
tersebut benar dan terjadi eksepsi maka kode pada blok catch ditampilkan dan
keterangan throw demo ditampilkan pada pesan eksepsi sebagai hasil dari throw.
Program 2
Kode program pada program ini digunakan untuk memasukkan data mahasiswa
dengan menggunakan fasilitas exception handling. Eksepsi yang digunakan adalah
NullPointerException yaitu eksepsi yang timbul karena penggunaan nilai null yang
tidak tepat. Jika input yang digunakan berupa nilai null, maka akan muncul pesan
yang ada dalam blok catch dan throw dari penyeleksian di blok try.
b. Latihan 5.2
Kode program pada latihan 5.2 digunakan untuk menguji kata kunci throws pada
program. Kata kunci ini digunakan apabila sebuah method menyebabkan eksepsi

namun tidak menangkapnya. Pesan yang dilempar tadi akan ditampilkan pada blok
catch yaitu System.out.println(e.getMessage());.
6. Latihan 6
Kode program pada latihan enam digunakan untuk menguji eksepsi yang dibuat
sendiri pada operasi faktorial. Pada latihan enam eksepsi yang digunakan adalah
NegativeNumberException yaitu nilai yang dimasukkan tidak boleh negatif. Eksepsi
yang digunakan dibuat dalam suatu kelas yang merupakan keturunan dari kelas
Exception. Kemudian pada kelas lain untuk menguji akan dibuat method untuk
melakukan throws terhadap eksepsi tersebut dan di dalam method ini akan dilakukan
seleksi

jika

bilangan

kurang

dari

nol

maka

akan

dilakukan

throw

NegativeNumberException beserta keterangannya. Hasil pelemparan eksepsi ini akan


ditampilkan dalam method utama di dalam blok try-catch.
7. Melakukan Input

Class DemoInputKarakter merupakan class untuk mencoba menginput karakter


dengan menggunakan objek BufferedReader. Dalam class ini diberikan
IOException untuk mengeksepsi kesalahan dalam input dan output. Class ini
menggunakan method read() untuk membaca inputan yang berupa karakter.

Class DemoInputString merupakan class yang digunakan untuk melakukan


inputan yang berupa String. Dalam class ini berbeda dengan class sebelumnya,
yaitu perlu diberikan method readLine() untuk bisa membaca satu kata secara
keseluruhan.

Class DemoInputNumerik1 digunakan untuk memberi contoh jika input yang


diberikan merupakan angka atau numerik. Dalam class ini inputan yang harus
diberikan adalah bilangan bulat. Dalam class ini dibuat eksepsi dimana saat try
akan dilakukan pengecekan apakah bilangan yang diinput itu merupakan bilangan
bulat atau tidak, jika tidak maka akan di catch dan menampilkan warning berupa
teks.

Class DemoInputNumerik2 hampir sama dengan class DemoInputNumerik2,


perbedaannya terdapat pada tipe data yang bisa dimasukkan. Tipe data yang bisa
digunakan dalam class ini merupakan tipe data double, atau bisa menerima

bilangan dengan tingkat ketelitian di belakang koma. Perbedaan tadi terletak pada
try{bilangan = Double.parseDouble(temp);}.
8. Tugas praktikum
Kode program pada tugas praktikum digunakan untuk melakukan perhitungan luas
permukaan kubus menggunakan exception handling dan masukan. Pada kode program
ini diterapkan exception yang dibuat sendiri yaitu NegativeNumberException untuk
mengecek nilai masukan. Eksepsi ini akan dilempar dan ditampilkan pada blok catch
jika terjadi eksepsi.
9. Tugas rumah
Kode program pada tugas rumah digunakan untuk menguji nilai masukan,
pengujiannya antara lain kesesuaian tipe data yang dimasukkan dan eksepsi lain yang
mungkin terjadi. Pada kode ini digunakan dua blok try-catch karena masukan yang
digunakan berjumlah dua. Eksepsi yang digunakan adalah NumberFormatException
untuk memeriksa nilai apakah yang dimasukkan berupa bilangan dan Exception untuk
memeriksa kemungkinan error lain. Exception digunakan untuk eksepsi yang tidak
didefinisikan jika pada blok try-catch yang memiliki multi-catch dan Exception
selalui diletakkan pada blok catch terakhir.
DAFTAR RUJUKAN
1. Tim Asisten Dosen. 2016. Modul 6 Exception Handling. Malang :
Universitas Negeri Malang.
2. entin.lecturer.pens.ac.id/PBO/Minggu%2012/T%20-%20Exception

%20Handling.pdf. Diakses pada 15 November 2016