makalah interface ekpresi java1
Post on 08-Jul-2018
240 Views
Preview:
TRANSCRIPT
-
8/19/2019 Makalah Interface Ekpresi Java1
1/28
KATA PENGANTAR
Puji syukur atas ke hadirat Allah SWT, karena berkat rahmat-Nya penulisdapat menyelesaikan makalah yang berjudul Interface dan E cepti!n" #akalah ini
diajukan guna memenuhi tugas mata kuliah Pem!graman $erbasis %bjek"
Penulis mengucapkan terima kasih kepada semua pihak yang telah
membantu sehingga makalah ini dapat diselesaikan sesuai dengan &aktunya"
#akalah ini masih jauh dari sempurna, !leh karena itu saya mengharapkan kritik
dan saran yang bersifat membangun demi kesempurnaan makalah ini"
Sem!ga makalah ini memberikan inf!rmasi bagi mahasis&a lainnyakhususnya mahasis&a P!liteknik Negeri 'h!kseuma&e dan bermanfaat untuk
pengembangan ilmu pengetahuan bagi kita semua dan terutama bagi penulis
sendiri"
(emikian makalah ini saya buat sem!ga bermanfaat untuk para pembaca"
$uket )ata, *+ (esember + *
Tim Penulis
i
-
8/19/2019 Makalah Interface Ekpresi Java1
2/28
DAFTAR ISI
.ATA PEN/ANTA)""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
(A0TA) ISI""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
$A$ I PEN(A12'2AN""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
*"*" 'atar $elakang""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
*"*"*" Interface"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
*"*"+" E cepti!n""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
$A$ II PE#$A1ASAN"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+"*" Paket pada 4a5a"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"*"*" Tingkat Akses""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"+" .!nsep Interface"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"*"*" Pelaksanaan""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"3" Interface 'anjutan"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"+"*" Pelaksanaan"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"3" E cepti!n""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+"3"* Pelaksanaan"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+"7" E cepti!n Thr!& dan Thr!&s"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""+
+"7"* Pelaksanaan"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" " #embuat :lass Ekpresi sendiri"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""++
+" "* Pelaksanaan""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
$A$ III PEN2T2P"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
3"* .esimpulan""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""(A0TA) P2STA.A"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
ii
-
8/19/2019 Makalah Interface Ekpresi Java1
3/28
BAB I
PENDAHULUAN
1.1. Latar Belakang
1.1.1. Interface
Pada pr!ses pengembangan sistem sering kali kita dihadapkan kepada
berbagai ragam tekn!l!gi atau berbagai jenis teknik pembuatan pr!gram"
#isalnya dalam membuat aplikasi kita menggunakan berbagai jenis apliaksi
database dengan gaya pemr!graman yang berbeda" 4a5a memberikan fasilitas
untuk menjembatani perbedaan tersebut dengan apa yang disebut dengan
interface" Interface lebih mempermudah analyst dalam membuat k!nsep aplikasi,
interface mirip dengan p!la atau biasa disebut dengan cetak biru aplikasi"
Apabila sbuah class ja5a menggunakan interface maka class tersebut
mngimplementasikan interface" Pada saat class mengimplementasikan interface
&alaupun semua yang ada di interface harus dicantumkan, namun tidak semuanya
harus berisi perintah atau pr!ses" deklarasi interface harus public, karena memang
fungsi class pengguna interface adalah untuk digunakan secara public
Interface dalam kehidupan sehari-hari ibarat sebuah clausul k!ntrak, yang
berisi pasal-pasal, namun pasal-pasal tersebut masih k!s!ng dan akan di isi pada
saat k!ntrak tersebut digunakan"
1.1.2. Exce t!"n
(alam pembuatan pr!gram seringkali dijumpai err!r atau kesalahan" %leh
karena itu, diperlukan suatu mekanisme yang membantu menangani err!r atau
kesalahan yang terjadi, baik saat pembuatan maupun implementasi pr!gram" 4a5a
menyediakan mekanisme dalam pemr!graman untuk menangani hal-hal tersebut
yang disebut dengan exception "
*
-
8/19/2019 Makalah Interface Ekpresi Java1
4/28
Exception adalah e5ent yang terjadi ketika pr!gram menemui kesalahan
pada saat instruksi pr!gram dijalankan" $anyak hal yang dapat menimbulkan
e5ent ini, misalnya crash, harddisk rusak dengan tiba-tiba, sehingga pr!gram-
pr!gram tidak bisa mengakses file-file tertentu"
Ada lima kata kunci yang digunakan !leh 4a5a untuk menanngani
e cepti!n ini, yaitu, tr# , catc$ , f!nall# , t$r"% , dan t$r"%& "
+
-
8/19/2019 Makalah Interface Ekpresi Java1
5/28
BAB II
PE'BAHASAN
2.1. Paket a(a )a*a
Sebuah paket 4a5a adalah mekanisme untuk mengatur 4a5a kelas ke ruang
nama mirip dengan m!dul #!dula " Paket-paket 4a5a dapat disimpan dalam file
yang dik!mpresi dan disebut file 4A) , memungkinkan kelas untuk men-
d!&nl!ad lebih cepat sebagai kel!mp!k daripada satu per satu" Pr!grammer juga
biasanya menggunakan paket untuk mengatur kelas yang termasuk kateg!ri yang
sama atau menyediakan fungsi serupa"
*" Sebuah paket menyediakan namespace yang unik untuk jenis yang
dikandungnya"
+" .elas dalam paket yang sama dapat mengakses angg!ta-paket akses
masing-masing"
4a5a class library ;4a5a API< memiliki banyak sekali kelas ;4a5a
predefined classes< yang diletakkan ke dalam paket ;package< untuk dapat
dipergunakan kembali di dalam pr!gram" Paket tersebut digunakan untuk
mengel!mp!kkan kelas-kelas yang mempunyai kemiripan fungsi ;related class
-
8/19/2019 Makalah Interface Ekpresi Java1
6/28
ja5a"lang - 0ungsi dasar bahasa dan jenis dasar ja5a"util - Pengumpulan (ata struktur kelas ja5a"i! - %perasi file ja5a"math - #ultiprecisi!n aritmatika ja5a"ni! - =ang baru I > % kerangka untuk 4a5a ja5a"net - %perasi jaringan, s!ket, l!!kup (NS , """ ja5a"security - Pembangkitan kunci, enkripsi dan dekripsi
ja5a"s?l - 4a5a (atabase :!nnecti5ity ;4($:< untuk mengakses database ja5a"a&t - 1irarki dasar paket untuk k!mp!nen asli /2I ja5a "s&ing - 1irarki paket untuk platf!rm-independen yang kaya /2Ik!mp!nen
ja5a"applet - .elas untuk membuat appletThe ja5a"lang - paket tersedia tanpa menggunakan pernyataan imp!r"
Sebuah paket ;package< sebenarnya adalah direkt!ri yang digunakan untuk
menyimpan file-file bytec!de ;file berekstensi "class
-
8/19/2019 Makalah Interface Ekpresi Java1
7/28
Semua kelas yang dibuat akan tersimpan di direkt!ri yang sekarang aktif ;current
direct!ry atau default package< ketika pr!gram sumber 4a5a dik!mpilasi" .arena
pr!gram sumber 4a5a terletak di direkt!ri, misalnya c@ hindr! ja5asc dan pr!ses
k!mpilasi juga dilakukan di direkt!ri tersebut, maka file bytec!de hasil k!mpilasi
juga akan tersimpan di direkt!ri yang sama"
2.1.1. T!ngkat Ak&e&
1. T!ngkat Ak&e& Pr!*ate
(engan menggukanan data dan meth!d dengan tingkat akses pri5ate,makadata dan meth!d tersebut hanya dapat di akses !leh kelas yang di milikinya saja"
#!difier pri5ate, menunjukkan bah&a suatu class, meth!d atau 5ariabel hanya
dapat diakses dari dalam kelas tersebut" m!difier ini biasanya digunakan untuk
kelas, meth!d, atau 5ariabel yang memang ingin disimpan atau tidak dapat
digunakan !leh kelas yang lain ;tidak berguna untuk kelas yang lain
-
8/19/2019 Makalah Interface Ekpresi Java1
8/28
import satu.privateClass;public class pengakses e+tends satu.privateClass{
static privateClass a#ne$ privateClass();public static void main ( tring!" args) {
%stem.out.println (&'asil dari , kuadrat adalah & a.kuadrat(,));}}$egitu dic!mpile, akan keluar k!de kesalahan@
kuadrat(int) has private access in satu.privateClassIni adalah file pengakses+ yang terletak pada package yang berbeda tapi bukantermasuk anak kelas dari privateClass.
package dua;import satu.privateClass;public class pengakses- {static privateClass a#ne$ privateClass();public static void main ( tring!" args) {
%stem.out.println (a.kuadrat(,)); kuadrat(int) has protected access insatu.privateClass}}$egitu dic!mpile, akan keluar pesan kesalahan@kuadrat(int) has private access in satu.privateClass
2. T!ngkat Ak&e& Pr"tect
Suatu data atau meth!d yang di deklarasi kan dengan tingkat akses
pr!tected dapat di akses !leh kelas yang di milikinya saja dan juga kelas-kelas
yang masih memiliki keturunan" #!difier pr!tected, digunakan kalau suatu class,
meth!d atau 5ariabel ingin digunakan hanya !leh kelas-kelas yang satu paket
dengan kelas tersebut atau sub kelas dari kelas tersebut baik yang satu paket atau
lain paket"
Ke#%"r( Pr"tecte(
Ini adalah isi file pr!tected:lass"ja5a
package satu;public class protectedClass{protected static int kuadrat(int bilangan){return bilangan*bilangan;
8
-
8/19/2019 Makalah Interface Ekpresi Java1
9/28
}}
class pengakses{public static void main ( tring!" args) {protectedClass a#ne$ protectedClass();
%stem.out.println (&'asil kuadrat # & a.kuadrat( ));}}%utput dari pr!gram di atas adalah@
Hasil dari 9 kuadrat adalah 81
Ini adalah isi file pengakses* yang terletak pada package yang berbeda tetapi
merupakah subclass dari class pr!tected:lass" Pada pr!ses c!mpile tidak akan
terjadi pr!ses kesalahan"
package dua;import satu.protectedClass;public class pengakses e+tends satu.protectedClass{static protectedClass a#ne$ protectedClass();public static void main ( tring!" args) {
%stem.out.println (&'asil dari , kuadrat adalah & a.kuadrat(,));}}%utput dari pr!gram di atas adalah@
Hasil dari 9 kuadrat adalah 81
(i ba&ah ini adalah isi file pengakses+ yang terletak pada package yang berbeda
dan bukan subclass dari class pr!tected:lass"
package dua;
import satu.protectedClass;public class pengakses- {static protectedClass a#ne$ protectedClass();public static void main ( tring!" args) {
%stem.out.println (a.kuadrat(,)); error}}
4ika pr!gram dic!mpile, maka akan muncul pesan kesalahan@
B
-
8/19/2019 Makalah Interface Ekpresi Java1
10/28
k+a(rat,!nt- $a& r"tecte( acce&& !n &at+. r"tecte( la&&
/. T!ngkat Ak&e& P+0l!c
Tingkatan public merupakan kebalikan dari tingkat akses pri5ate"data
maupun meth!d dapat di akses !leh semua bagian di dalam pr!gram" #!difier
public akan membuat class, meth!d, 5ariabel yang menggunakanya bersifat
umum, alias dapat dipanggil !leh semua kelas" baik dari satu paket yang sama
atau berlainan paket" public juga akan memperb!lehkan akses terhadap semua
kelas yang diinstan dari kelas tersebut
Ke#%"r( P+0l!c
package satu;public class publicClass{public static int kuadrat(int bilangan){return bilangan*bilangan;}}class pengakses{public static void main ( tring!" args) {publicClass a#ne$ publicClass();
%stem.out.println (&'asil dari , kuadrat adalah & a.kuadrat(,));}}$egitu dijalankan, !utputnya adalah
Hasil dari 9 kuadrat adalah 81
package dua;import satu.publicClass;
public class pengakses e+tends satu.publicClass{static publicClass a#ne$ publicClass();public static void main ( tring!" args) {
%stem.out.println (&'asil dari , kuadrat adalah & a.kuadrat(,));}}$egitu dijalankan, !utputnya adalah
Hasil dari 9 kuadrat adalah 81
package dua;
import satu.publicClass;
9
-
8/19/2019 Makalah Interface Ekpresi Java1
11/28
public class pengakses- {static publicClass a#ne$ publicClass();
public static void main ( tring!" args) {%stem.out.println (&'asil dari , kuadrat adalah & a.kuadrat(,));
}}$egitu dijalankan, !utputnya adalah
Hasil dari 9 kuadrat adalah 81
2.2. K"n&e Interface
Interface adalah kelas yang benar-benar abstrak, artinya hanya berisi
deklarasi meth!d dan ;jika ada< k!nstanta saja" #eth!d-meth!d tersebut nantinya
harus diimplementasikan pada real class " Interface dapat dianal!gikan seperti
menandatangani k!ntrak kerja" #isalnya se!rang d!sen &ajib mengajar, membuat
s!al, dsb, akan tetapi cara mengajar dan membuat s!alnya diserahkan ke masing-
masing d!sen ;tidak ditentukan dalam k!ntrak kerja
-
8/19/2019 Makalah Interface Ekpresi Java1
12/28
!modifer" class 0ama3elas implements 0amaInter/ace{defnisi method1method;
4}
2.1.1. Pelak&anaan
Praktek 1 Interface Act!"nL!&tener
:!ba dan pelajari c!nt!h penggunaan interface dalam aplikasi /2I berikut"
(alam c!nt!h ini .elas T!mb!l diturunkan dari kelas 0rame, dan juga
mengimplementasikan interface Acti!n'istener, yang memiliki sebuah meth!dyaitu @ Acti!nPerf!rmed"
import java.a$t.*;import java.a$t.event.*;
public class 5ombol e+tends 6rame implements7ction8istener {
dekarasi komponen9utton b5ekan # ne$ 9utton();
5e+t6ield t+t # ne$ 5e+t6ield(: :);
public 5ombol() {la%out komponen
this.set8a%out(ne$ 6lo$8a%out());menambahkan komponen ke /rame
this.add(b5ekan null);this.add(t+t null);
menulis te+t ke buttonb5ekan.set8abel(:5ekan 7ku:);
menambahkan action listener ke komponenb5ekan.add7ction8istener(this);
}
implementasi method 7ction
-
8/19/2019 Makalah Interface Ekpresi Java1
13/28
5ombol tmbl # ne$ 5ombol();tmbl.pack();tmbl.set5itle(:5ombol 7@5:);tmbl.setAisible(true);
}}
Praktek 2 Interface Bang+n2D
Interface $angun+( memiliki + meth!d, yaitu @ hitungC'uas;< dan
hitungC.eliling;
-
8/19/2019 Makalah Interface Ekpresi Java1
14/28
return this.jejari;}
public double hitung 8uas(){return ( . E * this.jejari * this.jejari);
}public double hitung 3eliling(){
return (- * . E * this.jejari);}
}
class 5est8ingkaran{
public static void main( tring!" arg){8ingkaran bunder # ne$ 8ingkaran();bunder.setDejari( F);double luas # bunder.hitung 8uas();double keliling # bunder.hitung 3eliling();
%stem.out.println(:8uas lingkaran dengan jejari: bunder.getDejari() : adalah : luas);
%stem.out.println(:3eliling lingkaran dengan jejari: bunder.getDejari() : adalah : keliling);
}}
2./. Interface Lan4+tan
Pe&arisan merupakan pr!ses penurunan field dan meth!d dari suatu
kelas induk kepada satu>lebih subkelas" Seringkali dibutuhkan suatu kelas yang
field dan meth!dnya berasal dari lebih dari satu kelas induk ;pe&arisan jamak
-
8/19/2019 Makalah Interface Ekpresi Java1
15/28
!modifer " class 0ama3elas extends NamaKelasInduk
implements 0amaInter/ace {
isi kelas
}
+" (engan implementasi multiple interface
!modifer " class 0ama3elas implements 0amaInter/ace
0amaInter/ace- 4 {
isi kelas
}
Suatu Interface dapat diperluas menjadi Interface baru yang lebih lengkap"
!modifer " inter ace 0amaInter/ace- extends 0amaInter/ace {
da/tar konstanta dan method
}
2.2.1. Pelak&anaan
*3
-
8/19/2019 Makalah Interface Ekpresi Java1
16/28
Praktek 1 .!mbinasi antara turunan satu kelas dan interface
inter/ace G
-
8/19/2019 Makalah Interface Ekpresi Java1
17/28
}}
class 5estInherInter/ace{public static void main( tring!" arg){
Child anak # ne$ Child( );anak./unc();
%stem.out.println(:nilai dari methodgetAalue2: anak.getAalue());
}
}
Praktek 2 '+lt! le !nterface
inter/ace Inter/ace { public void tampilIn/o(); public void setIn/o( tring in/o);}
inter/ace Inter/ace- { public void tampilIn/o();
}
public class GultiInter/aces implements Inter/ace Inter/ace- { private tring in/o;
public void setIn/o( tring in/o) { this.in/o # in/o;
} public void tampilIn/o(){
%stem.out.println(this.in/o :2 ini in/o dari method tampilIn/ondak error to:); }
public static void main( tring!" a) { GultiInter/aces t # ne$ GultiInter/aces(); t.setIn/o(:'ai:); t.tampilIn/o(); }}
*
-
8/19/2019 Makalah Interface Ekpresi Java1
18/28
2./. Exce t!"n
(alam pembuatan pr!gram seringkali dijumpai err!r atau kesalahan" %leh
karena itu, diperlukan suatu mekanisme yang membantu menangani err!r atau
kesalahan yang terjadi, baik saat pembuatan maupun implementasi pr!gram" 4a5a
menyediakan mekanisme dalam pemr!graman untuk menangani hal-hal tersebut
yang disebut dengan exception "
Exception adalah e5ent yang terjadi ketika pr!gram menemui kesalahan
pada saat instruksi pr!gram dijalankan" $anyak hal yang dapat menimbulkane5ent ini, misalnya crash, harddisk rusak dengan tiba-tiba, sehingga pr!gram-
pr!gram tidak bisa mengakses file-file tertentu" Pr!grammer pun dapat
menimbulkan e5ent ini, misalnya dengan melakukan pembagian dengan bilangan
n!l, atau pengisian elemen array melebihi jumlah elemen array yang dial!kasikan
dan sebagainya"
E cepti!n terdiri dari dua macam kel!mp!k, yaitu @
• E cepti!n yang merupakan subclass )unTimeE cepti!n
• E cepti!n yang bukan subclass )unTimeE cepti!n
)unTimeE cepti!n biasanya disebabkan !leh kesalahan pr!gram atau pada desain
pr!gram" #isalnya NullP!interE cepti!n yang disebabkan !leh pr!ses inisialisasi
pr!gram yang tidak sempurna dan ArrayInde %ut%f$!undsE cepti!n yang
disebabkan akses array yang melebihi kapasitas array yang ada"
(alam bahasa 4a5a, ketika terjadi kesalahan, !t!matis akan dilemparkan
sebuah !bjek yang disebut exception , yang kemudian dapat dipr!ses lebih lanjut
!leh fungsi-fungsi yang siap menangani kesalahan tersebut" Pr!ses pelemparan
e cepti!n tersebut sering dikenal dengan istilah throwing exception , sedangkan
pr!ses penerimaan e cepti!n yang bersangkutan dikenal dengan istilah catch
exception
*8
-
8/19/2019 Makalah Interface Ekpresi Java1
19/28
Ada lima kata kunci yang digunakan !leh 4a5a untuk menanngani
e cepti!n ini, yaitu, tr# , catc$ , f!nall# , t$r"% , dan t$r"%& "
Situasi yang menyebabkan e cepti!n dibagi menjadi 3 kateg!ri yaitu,
• Ke&ala$an k"(e ata+ (ata " :!nt!hnya jika k!de berusaha
mengakses suatu indeks dari array yang di luar batas array"
• 'et"(e &tan(ar exce t!"n " :!nt!hnya, met!de substring;< dalam
kelas String, dapat memunculkan pesan dalam bentuk String Inde %ut
!f$!undsE cepti!n"
• Ke&ala$an )a*a " 1al ini merupakan kesalahan dalam
mengeksekusi 4a5a Firtual #achine yang dijalankan pada saat k!mpilasi"
Istilah e cepti!n digunakan untuk menunjukkan kesalahan pada hard&are,
s!ft&are, serta alg!ritma" Suatu e cepti!n adalah !byek dari kelas standar
Thr!&able, yang mempunyai turunan terdiri dari @
• Err"r " E cepti!n yang didefinisikan dalam keas ini
mempunyai karakteristik bah&a k!ndisi yang terjadi tidak
dapat diubah" Terdapat tiga macam subclass yang berada
diba&ahnya yaitu, Thread(eath, 'inkage Err!r,
Firtual#achineErr!r"
• Exce t!"n " 2ntuk kelas yang diturunkan dari e cepti!n
k!mpiler memeriksa bah&a kita bisa menangani e cepti!n
dengan met!de yang ada"
.elas e cepti!n mempunyai banyak kelas turunan" (ua kelas yang pentingyaitu,
• I5Exce t!"n
• R+nt!6eExce t!"n
*B
-
8/19/2019 Makalah Interface Ekpresi Java1
20/28
Ta0el S+0kela& (ar! R+nT!6e Exce t!"n
Kela& KeteranganArithmeticE cepti!n .esalahan pada !perasi aritmatikaInde %ut!f$!undsE cepti!n $eberapa jenis indeks di luar batas
Negati5eArraySiGeE cepti!n Array diciptakan dengan ukuran negatif NullP!interE cep!ti!n Penggunaan acuan null yang tidak 5alidArrayStr!reE cepti!n Penyimpanan array dengan tipe data yang
tidak sesuai":lass:astE cepti!n :ast yang tidak 5alidIllegalArrayArgumentE cepti!n Argumen yang tidak benar SecurityE cepti!n Aturan sekuriti yang dilanggar Illegal#!nit!rStateE cepti!n %perasi m!nit!r ilegalIllegalStateE cepti!n 'ingkungan yang tidak benar 2nsupp!rted%perati!nE cepti!n %perasi yang tidak didukung
2./.1 Pelak&anaan
#acam penanganan e cepti!n, e cepti!n menggunakan kata kunci try, catch, dan
finally sebagai berikut @
• .!de yang akan dim!nit!r e cepti!n-nya diletakkan dalam bl!k tr#.
4ika terjadi e cepti!n dalam bl!k tersebut, maka e cepti!n dilemparkan"
• $l!k yang dia&ali dengan catc$ menangani e cepti!n tersebut"
• $l!k yang dia&ali dengan f!nall# pada umumnya dieksekusi sebelum
meth!de berakhir"
Sintaks bl k tr! .. catch adalah seba"ai berikut #
tr%{
kode %ang dapat memunculkan e+ception}
catch
{
kode untuk menangani e+ception
}
*9
-
8/19/2019 Makalah Interface Ekpresi Java1
21/28
-
8/19/2019 Makalah Interface Ekpresi Java1
22/28
"nt"$ r"gra6 tr#7catc$7f!nall#
public class 5r%6inal {
public 5r%6inal() { } public static void main( tring!" args) { int i# ; int j#F; tr%
{ %stem.out.println(:i#: i :j#: j);
%stem.out.println(i j); %stem.out.println(:9lok 5erakhir dari tr%:); } catch e+ception catch (7rithmetic=+ception e){ %stem.out.println(:3eterangan e+ception # : e); } fnall%{ %stem.out.println(:Bieksekusi setelah 9lok tr%:); }
}}
2.8. Exce t!"n T$r"% (an T$r"%&
.ata kunci thr!& digunakan di pr!gram untuk melempar ;thr!&< e cepti!nsecara eksplisit" $entuk umum kalimat adalah,
Thr!& Thr!&ableInstance
Instan Thr!&able harus merupakan !byek dengan tipe Thr!&able atau subkelasdari Thr!&able" Terdapat dua cara untuk memper!leh !byek Thr!&able, yaitu,
*" #enggunakan parameter di klausa catch
+" #enciptakab salah satu dengan menggunakan !perat!r ne&;<
Eksekusi pr!gram akan dihentikan segera setelah kalimat thr!&, kalimat-kalimatsetelah kalimat thr!& tidak dieksekusi" 4a5a akan melakukan inspeksi bl!k tryterdekat untuk menemukan catch yang c!c!k dengan dengan tipe e cepti!n yang
dilempar" 4ika 4a5a menemukannya, maka kendali pr!gram ditransfer ke kalimat
+
-
8/19/2019 Makalah Interface Ekpresi Java1
23/28
itu" 4ika tidak ditemukan, maka 4a5a akan melakukan penelusuran ke bl!k berikutnya dan bila tetap tidak ditemukan, maka penanganan e cepti!n secaradefault akan menghentikan pr!gramnya"
Penggunaan kata kunci thr!&s berhubungan erat dengan penggunaane cepti!n yang dicek !leh 4a5a" .lausa thr!&s mendaftarkan tipe-tipe e cepti!nyang dapat dilempar meth!d" 1al ini diperlukan agar diketahui semua e cepti!nyang mungkin dilempar meth!d atau subkelasnya, kecuali tipe Err!r atau)unTimeE cepti!n yang dilakukan sistem 4a5a secara !t!matis bila menemui
pelangggaran aturan-aturan 4a5a" Semua e cepti!n yang hendak dilempar meth!dharus dideklarasikan di klausa thr!&s" 4ika meth!d melemparkan e cepti!n yangtidak dideklarasikan di deklarasi meth!d, maka k!mpilat!r akan memberi pesankesalahan"
2.8.1 Pelak&anaan
Secara umum, penggunaan kata kunci thr!&, yaitu, T$r"% 504ekEk&e &!9
%bjekEksepsi disini adalah semua !byek yang merupakan turunan dari classthr!&able"
"nt"$ Pr"gra6 'engg+nakan t$r"%
public class Bemo=ksepsi {
public static void method8ain() {
tr%
{
thro$ ne$ 7rra%Inde+>ut>/9ounds=+ception( );
}
catch (7rra%Inde+>ut>/9ounds=+ception e){
%stem.out.println(:
-
8/19/2019 Makalah Interface Ekpresi Java1
24/28
}
catch (7rra%Inde+>ut>/9ounds=+ception e){
%stem.out.println(:
-
8/19/2019 Makalah Interface Ekpresi Java1
25/28
.elas E cepti!n tidak mendefinisikan meth!d apapun di dirinya" .elas ini
hanya me&arisi meth!d-meth!d yang disediakan kelas Thr!&able" 4ika
diperlukan, maka meth!d-meth!d tersebut dapat di!5erride sesuai kebutuhan
$erikut ini daftar meth!d tersebut @
'et$"( F+ng&!Thr!&able fillStackTrace;< #engembalikan !bject Thr!&able
yang berisi data stack trace lengkap"String get'!caliGed#essage;< #engembalikan deskripsi tentang
eksepsi menggunakan bahasa l!kalString get#essage;< #engembalikan deskripsi tentang
eksepsi5!id printStackTrace;< #enampilkan stack trace5!id printStackTrace;PrintStream
stream<
#engirim hasil dari stack trace ke
stream yang telah ditentukan5!id printStackTrace;PrintWriter stream< #engirim hasil dari stack trace ke
stream yang telah ditentukanString t!String;< #engembalikan deskripsi tetang tipe
!bject eksepsi dan penjelasan tentang
eksepsi tersebut" Akan dipanggil
secara !t!matis ketika !bject eksepsi
dicetak dengan meth!d println;<
2.:.1 Pelak&anaan
"nt"$ Pr"gra6 'e60+at Exce t!"n
class =ksepsi3u e+tends =+ception{=ksepsi3u( tring s){
super(s);}
}
class 5est=ksepsi3u {public static void method3u() thro$s =ksepsi3u {
thro$ ne$ =ksepsi3u(:Isi =ksepsi:);}
+3
-
8/19/2019 Makalah Interface Ekpresi Java1
26/28
public static void main( tring!" args) {tr% {
method3u();} catch (=ksepsi3u e) {
%stem.out.println(:5erjadi eksepsi2 dari : e);}
}}
"nt"$ Pr"gra6 6e60+at Ek re&!
class tring=+ception e+tends Huntime=+ception{
* 5idak perlu memasukkan member ataupun construktor *
}
class 5est tring=+ception {
public static void main( tring args!") {
tring input # :invalid input:;
tr% {
i/ (input.e?uals(:invalid input:)) {thro$ ne$ tring=+ception();
}
%stem.out.println(: tring accepted.:);
} catch ( tring=+ception e) {
%stem.out.println(:I hate this string2 : input
:.:);
}
}H
+7
-
8/19/2019 Makalah Interface Ekpresi Java1
27/28
BAB III
PENUTUP
/.1 Ke&!6 +lan
Interface adalah kelas yang benar-benar abstrak, artinya hanya berisi
deklarasi meth!d dan ;jika ada< k!nstanta saja" #eth!d-meth!d tersebut nantinya
harus diimplementasikan pada real class"
Sedangkat Paket pada 4a5a adalah mekanisme untuk mengatur 4a5a kelas
ke ruang nama mirip dengan m!dul #!dula " Paket-paket 4a5a dapat disimpan
dalam file yang dik!mpresi dan disebut file 4A) , memungkinkan kelas untuk
men-d!&nl!ad lebih cepat sebagai kel!mp!k daripada satu per satu"
E cepti!n adalah e5ent yang terjadi ketika pr!gram menemui kesalahan
pada saat instruksi pr!gram dijalankan" $anyak hal yang dapat menimbulkan
e5ent ini, misalnya crash, harddisk rusak dengan tiba-tiba, sehingga pr!gram-
pr!gram tidak bisa mengakses file-file tertentu"
Ada lima kata kunci yang digunakan !leh 4a5a untuk menanngani
e cepti!n ini, yaitu, tr# , catc$ , f!nall# , t$r"% , dan t$r"%& "
+
-
8/19/2019 Makalah Interface Ekpresi Java1
28/28
DAFTAR PUSTAKA
Wikipedia" + *3" 4a5a" http@>>id"&ikipedia"!rg>&iki>4a5a" 7-* -+ *3
'yyrac" + *3" $elajar 4a5a" http@>>ja5a"lyracc"c!m>belajar>ja5a-untuk-pemula" 7-
* -+ *3"
2in-#alang" + **" 0un &ith 4a5a 'anguage Pr!gramaing" http@>>bl!g"uin-
malang"ac"id>funja5a>" 7-* -+ *3
)angsang Purnama, Tuntunan Pemr!graman 4a5a 4ilid 3J, Prestasi Pustaka,
4akarta, + "Sinaga $"', Pemr!graman $er!rientasi %bjek dengan 4a5aJ, /a5a #edia,
=!gyakarta, + 7"
http://java.lyracc.com/belajar/java-untuk-pemula.%2004-10-2013http://java.lyracc.com/belajar/java-untuk-pemula.%2004-10-2013http://java.lyracc.com/belajar/java-untuk-pemula.%2004-10-2013http://java.lyracc.com/belajar/java-untuk-pemula.%2004-10-2013
top related