LAPORAN PRAKTIKUM 3
LAPORAN PRAKTIKUM 3
PEMROGRAMAN BERORIENTASI OBJEK
PEMROGRAMAN BERORIENTASI OBJEK
(PBO)
(PBO)
EXCEPTION HANDLING
EXCEPTION HANDLING
DISUSUN OLEH : DISUSUN OLEH : Bagas Achma!"#$a Bagas Achma!"#$a SI %3 D SI %3 D %3&%'&' %3&%'&' LABORATLABORATORIUM KOMPUTER ORIUM KOMPUTER & J& JARINGANARINGAN SEKOLAH TINGGI
SEKOLAH TINGGI MANAJEMEN INFORMATMANAJEMEN INFORMATIKA DAN KOMPUTERIKA DAN KOMPUTER AMIKOM PURWOKERTO
AMIKOM PURWOKERTO
JL. LET. JEND. POL SUMARTO PURWOKERTO JL. LET. JEND. POL SUMARTO PURWOKERTO
2015 2015
KATA PENGANTAR
Puji syukur saya panjatkan kehadirat Tuhan Yang Maha Esa karena dengan rahmat, karunia, serta taufik dan hidayah-Nya lah saya dapat menyelesaikan makalah Pemrograman Berorientasi Objek ini sebatas pengetahuan dan kemampuan yang dimiliki !an juga saya berterima kasih pada "bu Tri #stuti mata kuliah Pemrograman Berorientasi Objek dan Pemrograman yang telah
memberikan tugas ini kepada saya
Makalah ini saya buat dalam rangka memenuhi tugas mata kuliah Pemrograman Berorientasi Objek $aya juga menyadari sepenuhnya bah%a di dalam makalah ini terdapat kekurangan-kekurangan dan jauh dari kata sempurna &ntuk itu, saya berharap adanya kritik, saran dan usulan demi perbaikan di masa yang akan datang, mengingat tidak ada sesuatu yang sempurna tanpa sarana yang membangun
$emoga makalah sederhana ini dapat dipahami bagi siapapun yang memba'anya $ekiranya makalah yang telah disusun ini dapat berguna bagi saya sendiri maupun orang yang memba'anya $ebelumnya saya mohon maaf apabila terdapat kesalahan kata-kata yang kurang berkenan dan saya memohon kritik dan saran yang membangun demi perbaikan di masa depan
Pur%okerto,() Maret *)(+
DA*TAR ISI ##M#N .&!&//////////////// ( 0#T# PEN1#NT#2/////////////// * !#3T#2 "$"/////////////////// 4 B#B " #N!#$#N TEO2"
( Pengertian E5'eption andling///////////// 6 * 0ey%ord Penting !alam E5'eption andling//////// 6 B#B ""
7ONTO 7O!"N1 P2O12#M
( isting Program/////////////////// (6 * Print $'reen 7oding///////////////// (+ 0E$"MP&#N/////////////////// (8 !#3T#2 P&$T#0#////////////////// (8
LANDASAN TEORI %& P+,g+$-!a, E.c+"-!/, Ha,0!,g
Pada dasarnya, E5'eption merupakan subkelas dari kelas ja9alangThro%able :Bukalah dokumentasi ja9a untuk lebih menyakinkan anda; 0arena E5'eption adalah sebuah kelas maka hakikatnya ketika program berjalan dan mun'ul sebuah bug atau kesalahan maka bugtersebut dapat dianggap sebuah obje't $ehingga ketika obje't ini di tampilkan di
layar maka ja9a akan se'ara otomatis memanggil method to$tring yang terdapat dalam obje'tbertipe E5'eption ini .a9a memberikan akses kepada de9eloper untuk mengambil obje'tbug yang terjadi ini dengan mekanisme yang dikenal E5'eption andling
E5'eption handlingmerupakan fasilitas di ja9a yang memberikan fle5ibilitas kepada de9eloper untuk menangkapbug atau kesalahan yang terjadi ketika program berjalan 7ontoh E5'eption andling akan dibahas pada bagian berikutnya
'& K+12/$ P+,-!,g Da0am E.c+"-!/, Ha,0!,g %& T$1
0ey%ord ini biasanya digunakan dalam suatu blo'k program key%ord ini digunakan untuk men'oba menjalankan blo'k program kemudian mengenai dimana mun'ulnya kesalahan yang ingin diproses 0ey%ord ini juga harus dipasangkan dengan key%ord 'at'h atau key%ord finally yang akan dibahas pada point kedua dan ketiga
7ontoh penggunaan <
publi' 'lass # =
publi' stati' 9oid main>$tring?@ argsA = try
=
int a ( C )D CC berpotensi untuk menimbulkan kesalahan yaitu CC pembagian dengan bilangan )
$ystemoutprintln>perintah selanjutnyaAD F
= $ystemerrprintln>kesalahanAD F F F Output < ja9alang#rithmeti'E5'eption< C by Gero
Perhatikan 'ontoh diatas, ada beberapa hal penting yang perlu dilihat Pertama, blo'k program yag diyakini menimbulkan kesalahan maka ada di dalam blo'k try and 'at'h0edua,
kesalahan yang mun'ul akan dianggap sebagai obje't dan ditangkap 'at'h kemudian di assign ke 9ariable kesalahan dengan tipe E5'eption 0etiga, perintah setelah mun'ulnya kesalahan pada blo'k try tidak akan dieksekusi
'& Ca-ch
.ika anda sudah melihat 'ontoh try maka se'ara tidak langsung anda sudah memahami kegunaan dari key%ord ini !alam ja9a, key%ord 'at'h harus dipasangkan dengan try 0egunaan key%ord ini adalah menangkap kesalahan atau bug yang terjadi dalam blo'k try $etelah menangkap kesalahan yang terjadi maka de9eloper dapat melakukan hal apapun pada blo'k 'at'h sesuai keinginan de9eloper 7ontoh Program <
'at'h>E5'eption kesalahanA =
$ystemoutprintln>:mohon maaf, terdapat kesalahan pada program;AD CClakukan hal lainnya disini
F
publi' 'lass # =
publi' stati' 9oid main>$tring?@ argsA = try
=
int a (C)D CCberpotensi untuk menimbulkan kesalahan yaitu pembagian dengan bilangan ) $ystemoutprintln>perintah selanjutnyaAD F 'at'h>NullPointerE5'eption eA = F 'at'h>#rray"nde5OutOfBoundsE5'eption eA = F 'at'h>E5'eption eA = F F F 3& *!,a001
0ey%ord ini merupakan key%ord yang menunjukan bah%a blo'k program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang mun'ul atau pun tidak ada 7ontoh implementasinya pada program <
publi' 'lass # =
publi' stati' 9oid main>$tring?@ argsA = try = CCint a (C)D F finally =
$ystemoutprintln>terima kasih telah menjalankan programAD F
F F
Output Program diatas<
terima kasih telah menjalankan program
.ika saya lakukan modifikasi program diatas menjadi <
publi' 'lass # =
try = int a (C)D F 'at'h >E5'eption eA =
$ystemoutprintln>:ada kesalahan yang mun'ul;AD
F
finally
=
$ystemoutprintln>:terima kasih telah menjalankan program;AD
F
F
F
Output Program <
ada kesalahan yang mun'ul
terima kasih telah menjalankan program
Perhatikan kedua 'ontoh diatas, blo'k finally akan selalu dieksekusi meskipun adanya kesalahan atau tidak pada blo'k try Berbeda dengan key%ord 'at'h key%ord finally hanya dapat diletakan ( kali setelah key%ord try
0ey%ord ini digunakan untuk melemparkan suatu bug yang dibuat se'ara manual 7ontoh program <
publi' 'lass # =
publi' stati' 9oid main>$tring?@ argsA = try
=
thro% ne% E5'eption>kesalahan terjadiAD F 'at'h>E5'eption eA = $ystemoutprintln>eAD F F F Output Program <
ja9alangE5'eption< kesalahan terjadi
$eperti yang anda lihat pada program diatas, pada key%ord thro% ne% E5'eption>:kesalahan terjadi;AD akan melempar obje't bertipe e5'eption yang merupakan sub'lass dari 'lass E5'eption sehingga akan dianggap sebagai suatu kesalahan yang harus ditangkap oleh key%ord 'at'h
publi' 'lass # =
publi' stati' 9oid main>$tring?@ argsA = try
=
thro% ne% B>AD CC'obalah ganti baris ini dengan H ne% B>AD F 'at'h>E5'eption eA = $ystemoutprintln>eAD F F F
'lass B e5tends E5'eption =
B>A = F
publi' $tring to$tring>A =
return :obje't dengan tipe kelas B;D F
F
obje't dengan tipe kelas B
Program diatas telah mendefinisikan suatu kelas B menge5tends dari kelas E5'eption 0etika kita melakukan thro% ne% B>AD maka obje't dari kelas bertipe B ini akan dianggap kesalahan dan ditangkap oleh blo'k 'at'h $ekarang jika anda menghilangkan key%ord thro% apa yang terjadiI
4& Th$/2s
0ey%ord thro%s digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya 7ara mendefinisikannya dalam method adalah sebagai berikut < Jmethod modifierK type method-name thro%s e5'eption-list(, e5'eptio-list*, / =F
7ontoh Program <
publi' 'lass # =
publi' stati' 9oid main>$tring?@ argsA = try = f>AD F 'at'h>E5'eption eA = $ystemoutprintln>eAD F
F
publi' stati' 9oid f>A thro%s NullPointerE5'eption, #rray"nde5OutOfBoundsE5'eption =
CCimplementasi method
thro% ne% NullPointerE5'eption>AD
CCthro% ne% #rray"nde5OutOfBoundsE5'eption>AD F
F
Output Program <
ja9alangNullPointerE5'eption
7ontoh program lainnya <
publi' 'lass # =
publi' stati' 9oid main>$tring?@ argsA = try = f>AD F 'at'h>E5'eption eA = $ystemoutprintln>eAD F
F
publi' stati' 9oid f>A thro%s NullPointerE5'eption, #rray"nde5OutOfBoundsE5'eption =
CCimplementasi method
CCthro% ne% NullPointerE5'eption>AD
thro% ne% #rray"nde5OutOfBoundsE5'eption>AD F
F
Output Program <
ja9alang#rray"nde5OutOfBoundsE5'eption
Perhatikan kedua 'ontoh pengguaan key%ord thro%s pada method 0etika method tersebut dipanggil dalam blo'k try Maka method tersebut akan membuat obje't yang merupakan sub'lass dari 'lass Thro%able dan method tersebut akan melemparkan kesalahan yang ada dalam blo'k method kedalam blo'k try !i dalam blo'k try, kesalahan tersebut kemudian ditangkap kedalam blo'k 'at'h
BAB II
CL
L To 'hange this template, 'hoose Tools Templates L and open the template in the editor
LC pa'kage bagas)*)D CLL L L author bagas( LC
publi' 'lass Bagas)*) =
CLL
L param args the 'ommand line arguments LC
publi' stati' 9oid main>$tring?@ argsA = CC TO!O 'ode appli'ation logi' here int i(D int j)D try = $ystemoutprintln>iijjAD $ystemoutprintln>iCjAD
$ystemoutprintln>Blok Terakhir dari tryAD F
'at'h >#rithmeti'E5'eption eA=
$ystemoutprintln>0eterangan e5'eption eAD F
finally=
$ystemoutprintln>!ieksekusi setelah Blok tryAD
F F F
#$" P2"NT $72EEN !#N 2&N
:E5'eption handling atau Error andling merupakan bagian yang 'ukup penting dalam pemrograman manapun #nda harus dapat meng-handle setiap error yang mun'ul dalam program maupun dalam 9erifikasi sebuah fungsi#gar 'oding pemrograman yang
dijalankan menghasilkan output yang baik
Program yang menggunakan e5'eption handling < - Menjalankan perintah
- .ika dalam menjalankan perintah menemui error - E5'eption akan melemparkan error tersebut
- 7at'h akan menerima dan memproses error tersebut - Program menjalankan perintah selanjutnya
DA*TAR PUSTAKA
( https<CCle'turereepis-itseduCQyulianaCOOPCE5'eptionR*)andlingCTR*)-R*)E5'eptionR*)andlingpdf
* http<CC9yor%ordpress'omC*)((C)8C*4Ce5'eption-handling-di-ja9a
6 http<CC%%%mediatutorial%ebidC*)(*C(*Ce5'eption-handling-error-handlinghtml 5. Modul Praktikum Pemrograman Berorientasi Objek