BAB 9 Bekerja dengan Java Class Library - JENI Intro1 Bab09 Bekerja Dengan Java Class Library
J.E.N.I .
BAB 9
Be k e r j a de n ga n Ja va Cla ss Libr a r y
9 .1
Tu j u a n
Pada sesi ini, kit a akan m engant arkan beberapa konsep dasar dari Obj ect - Orient ed obj ct s,
dan Program m ing ( OOP) . Selanj ut nya kit a akan m em bahas konsep dari classes dan
bagaim ana m enggunakan class dan anggot anya. Perubahan dan pem ilihan obj ect j uga akan
dibahas. Sekarang, kit a akan focus dalam m enggunakan class yang t elah dij abarkan dalam
Java Class library, kit a akan m em bahas nant i t ent ang bagaim ana m em bikin class anda
sendiri.
Pada akhir pelaj aran, siswa seharusnya dapat :
1. m enj elaskan OOP dan beberapa konsepnya
2. perbedaan ant ara class dan obj ect
3. pebedaan ant ara inst ance variables/ m et hod dan class ( st at ic) variable/ m et hod
4. m enj elaskan m et hod apa dan bagaim ana m em anggil m et hod param et er
5. m engident ifikasi beberapa j angkauan dari sebuah variable
6. m em ilih t ipe dat a prim it ive dan obj ect
7. m em bandingkan obj ect s dan m enj abarkan class dari obj ect s.
9 .2
Pe n ge n a la n Pe m r ogr a m a n Be r or ie n t a si Obj e ct
OOP berput ar pada konsep dari obj ect sebagai dasar elem ent dari program anda. Ket ika
kit a m em bandingkan dengan dunia nyat a, kit a dapat m enem ukan beberapa obj ek disekit ar
kit a, sepert i m obil, singa, m anusia dan set erusnya. Obj ect ini dikarakt erisasi oleh sifat /
at t ribut nya dan t ingkah lakunya.
Cont ohnya, obj ek sebuah m obil m em punyai sifat t ipe t ransm isi, warna dan m anufakt ur.
Mem punyai kelakuan berbelok, m engerem dan berakselerasi. Dengan cara yang sam a pula
kit a dapat m endefinisikan perbedaan sifat dan t ingkah laku dari singa. Coba perhat ikan
t able dibawah ini sebagai cont oh perbandingan :
Obj e ct
Pr ope r t ie s
Be h a vior
Car
t ype of t ransm ission
m anufact urer
color
t urning
braking
accelerat ing
Lion
Weight
Color
hungry or not hungry
t am ed or wild
roaring
sleeping
hunt ing
Table 1: Exam ple of Real- life Obj ect s
Pengenalan Pem rogram an 1
1
J.E.N.I .
Dengan deskripsi ini, obj ek pada dunia nyat a dapat secara m udah dim odelisasi sebagai
obj ek soft ware m enggunakan sifat sebagai dat a dan t ingkah laku sebagai m et hod. Dat a
disini dan m et hod dapat digunakan dalam pem rogram an gam e at ausoft ware int erakt if unt uk
m enst im ulasi obj ek dunia nyat a. Cont ohnya adalah sebagai soft ware obj ek m obil dalam
perm ainan balap m obil at au soft ware obj ek singadalam sebuah soft ware pendidikan
int erakt if pada kebun binat ang unt uk anak anak.
9 .3
Cla ss da n Obj e ct
9 .3 .1 Pe r be da a n Cla ss da n Obj e ct
Pada dunia soft ware, sebuah obj ek adalah sebuah kom ponen soft ware yang st ukt urnya
m irip dengan obj ek pada dunia nyat a. Set iap obj ek dibuat dari sat u set dat a ( sifat ) dim ana
variable m enj abarkan esensial karakt er dari obj ek, dan j uga t erdiri dari sat u set dari
m et hode ( t ingkah laku) yang m enj abarkan bagaim ana t ingkah laku dari obj ek. Jadi obj ek
adalah sebuah berkas soft ware dari variable dan m et hod yg berhubungan. Variable dan
m et hods dalam obj ek Java scara form al diket ahui sebagai inst ance variable dan inst ance
m et hods unt uk m em bedakannya dari variable klas dan m et hod klas, dim ana akan dibahas
kem udian.
Klas adalah st urkt ur dasa dari OOP. Dia t erdiri dari dua t ipe dari anggot a dim ana disebut
dengan field ( at t ribut / propert i) dan m et hod. Field m espesifikasi t ipe dat a yang didefinisikan
oleh class, sem ent ara m et hode spesifikasi dari operasi. Sebuah obj ek adalah sebuah
inst ance pada class.
Unt uk dapat m em bedakanant ara class dan obect , m ari kit a m endiskusikan beberapa
cont oh. Apa yang kit a m iliki disini adalah sebuah class m obil dim ana dapat digunakan unt uk
m edefinisikan beberapa obj ect m obil. Pada t able dibawah, m obil A dan m obil B adalah obj ek
dari kelas m obil. Kelas m em iliki field plat nom er, warna, m anufakt ur, dan kecepat an yang
diisi dengan nilai korespondendi pada obj ek m obil A dan m obil B. m obil j uga dapat
berakselerasi, berbelok dan m engerem .
Ca r Cla ss
Plat e Num ber
I nst Vari Color
anc able
e
s Manufact urer
Current Speed
I nst Met
anc hod
e
s
Obj e ct Ca r A
Obj e ct Ca r B
ABC 111
XYZ 123
Blue
Red
Mit subishi
Toyot a
50 km / h
100 km / h
Accelerat e Met hod
Turn Met hod
Brake Met hod
Table 2: Cont oh class car dan obj ect - obj ect nya
Pengenalan Pem rogram an 1
2
J.E.N.I .
Ket ika diinisialisi, t iap obj ek m endapat sat u set baru dari st at e variable. Bagaim anapun,
im plem ent asi dari m et hod dibagi diant ara obj ek pada kelas yang sam a.
Kelas m enyediakan keunt ungan dari reusabilit y. Soft ware program m ers dapat digunakan
dari sebuah kelas lagi dan lagi unt uk m em buat beberapa obj ek.
9 .3 .2 I n st a n sia si Cla ss
Unt uk m em buat sebuah obj ek at au sebuah instance pada sebuah kelas. Kit a m enggunakan
operat or baru. Sebagai cont oh, j ika anda ingin m em buat inst ance dari kelas st ring, kit a
m enggunakan kode berikut :
St ring st r2 = new St ring( “ Hello world! ” ) ;
or also equivalent t o,
St ring st r2 = " Hello" ;
Figur e 1: Classs I nst ant iat ion
9 .3 .3 Va r ia be l Cla ss da n M e t h od
Sebagai t am bahan pada cont oh variable, hal ini j uga m em ungkinkan unt uk m endefinisikan
variable kelas, dim ana variable m ilik dari seluruh kelas. I ni berart i bahwa m em iliki nilai
yang sam a unt uk sem ua obj ek pada kelas yang sam a. Mereka j uga disebut st at ic m em ber
variables.
9 .4 M e t h od
9 .4 .1 Apa k a h M e t h od it u da n m e n ga pa m e n ggu n a k a n M e t h od?
Pada cont oh yang t elah kit a diskusikan sebelum nya, kit a hanya m em iliki sat u m et hod, dan
it u adalah m ain( ) m et hod. Didalam Java, kit a dapat m endefinisikan beberapa m et hod yang
akan kit a panggil dari m et hod yang berbeda.
Sebuah m et hod adalah bagian t erpisah dari kode yang akan dipanggil oleh program ut am a
dan beberapa m et hod lainnya unt uk m enunj ukkan beberapa fungsi spesifik.
Berikut adalah karakt erist ik dari m et hod :
1. dapat m engem balikan sat u at au t idak ada nilai
2. dia m ungkin dapat dit erim a sebagai beberapa param et er yang dibut uhkan at au t idak
ada aram et er sam a sekali. Param et er j uga disebut sebagai fungsi argum ent
3. set elah m et hod t elah selesai dieksekusi, dia akan kem bali pada m et hod yang
m em anggilnya.
Pengenalan Pem rogram an 1
3
J.E.N.I .
Sekarang m engapa kit a but uh unt uk m em buat m et hod? Mengapa kit a t idak m elet akkan
sem ua kode pada sebuah m et hod yang sangat besar? Pem ecahan m asalah disini alah
dekom posisi. Kit a j uga dapat m elakukan ini di Java dengan m m buat m et hod unt uk
m engat asi bagian spesifik dari m asalah. Mengam bil sebuah perm asalahan dan
m em ecahkannya m enj adi bagian kecil, bagian dapat diat ur adalah pent ing unt uk m enulis
program yang besar.
9 .4 .2 M e m a n ggil I n st a n ce da r i M e t h od da n Pa ssin g Va r ia be l
Sekarang kit a ilust rasikan bagaim ana m em anggil m et hod, m ari kit a m enggunakan kelas
st ring sebagai cont oh. Anda dapat m enggunakan t he Java API docum ent at ion unt uk m elihat
sem ua m et hod dalam kelas st ring yang t ersedia. Selanj ut nya, kit a akan m em buat m et hod
kit a sendiri. Tapi sekarang m ari kit a m enggunakan apa yang t ersedia.
Unt uk m em anggil sebuah inst ance m et hod, kit a m enuliskan :
nameOfObject.nameOfMethod( parameters );
m ari kit a m engam bil dua cont oh yang dit em ukan dalam kelas St ring.
M e t h od de cla r a t ion
D e fin it ion
pu blic cha r ch a r At ( int in de x )
Mengam bil karakt er pada index.
pu blic boole a n e qua lsI gn or e Ca se
( St r in g a not h e r St r ing)
Mem bandingkan ant ar St ring, t idak case sensit ive.
Table 3: Met hod dari Class St ring
Menggunakan m et hod :
String
str1 = "Hello";
char
x = str2.charAt(0); //will return the
character H
//simpan pada variabel x
String
str2 = "hello";
//return boolean
boolean result = str1.equalsIgnoreCase( str1 );
Pengenalan Pem rogram an 1
4
J.E.N.I .
9 .4 .3 Pa ssin g Va r ia be l D a la m M e t h od
Pada cont oh kit a, kit a t elah m ecoba m elewat i variable pada m et hod. Bagaim anapun j uga
kit a t idak dapat m em bedakan ant ara perbedaan t ipe variabel passing dalam Java. Ada dua
t ipe dat a passing pada m et hod, yang pert am a adalah pass- by- value dan yang kedua adalah
pass- by- reference.
9 .4 .3 .1 Pa ss- by- Va lue
Ket ika pass- by- values t erj adi, m et hod m enggunakan sebuah copy pada nilai pada variable
yang dilewat kan pada m et hod. m et hod t idak dapat secara langsung dim odifikasi secara
argum ent langsung m eskipun j ika dim odifikasi param et ernya selam a perhit ungan
berlangsung.
Cont oh :
public class TestPassByValue
{
public static void main( String[] args ){
int i = 10;
//mencetak nilai i
System.out.println( i );
//memanggil method test
//passing i pada method test
test( i );
Pass i as parameter
which is copied to j
//Mencetak nilai i
System.out.println( i );
}
public static void test( int j ){
//merubah nilai parameter j
j = 33;
}
}
Pada cont oh diat as yang t elah diberikan, kit a m em anggil m et hod t es dan m elewat kan nilai i
sebagai param et er. Nilai pada i dikopikan pada variable pada m et hod j . sej ak j adalah
variable penggant i pada m et hod t es, dia t idak akan berdam pak pada nilai variable j ika i
pada m ain sem enj ak m em iliki perbedaan kopy pada variable.
Secara default , sem ua t ipe dat a prim it ive ket ika dilewat kan pada sebuah m et hod adalah
pass- by- values
Pengenalan Pem rogram an 1
5
J.E.N.I .
9 .4 .3 .2 Pa ss- by- r e fe r e n ce
Ket ika sebuah pass- by- reference t erj adi, referensi pada sebuah obj ek dilewat kan dengan
cara m em anggil m et hod. Hal ini berart i bahwa m et hod m engkopi referensi pada variable
yang dilewat kan pada m et hod. Bagaim anapun j uga, t idak sepert i apda pass- by- value,
m et hod dapat m em buat obj ek act ual yang m enerangkan point ing t o, since, m eskipun
berbeda ket erangan yang digunakan dalam m et hod, lokasi dari dat a yang m ereka
t unj ukkan adalah sam a.
cont oh :
class TestPassByReference
{
public static void main( String[] args ){
//membuat array integer
int []ages
= {10, 11, 12};
//mencetak nilai array
for( int i=0; i
BAB 9
Be k e r j a de n ga n Ja va Cla ss Libr a r y
9 .1
Tu j u a n
Pada sesi ini, kit a akan m engant arkan beberapa konsep dasar dari Obj ect - Orient ed obj ct s,
dan Program m ing ( OOP) . Selanj ut nya kit a akan m em bahas konsep dari classes dan
bagaim ana m enggunakan class dan anggot anya. Perubahan dan pem ilihan obj ect j uga akan
dibahas. Sekarang, kit a akan focus dalam m enggunakan class yang t elah dij abarkan dalam
Java Class library, kit a akan m em bahas nant i t ent ang bagaim ana m em bikin class anda
sendiri.
Pada akhir pelaj aran, siswa seharusnya dapat :
1. m enj elaskan OOP dan beberapa konsepnya
2. perbedaan ant ara class dan obj ect
3. pebedaan ant ara inst ance variables/ m et hod dan class ( st at ic) variable/ m et hod
4. m enj elaskan m et hod apa dan bagaim ana m em anggil m et hod param et er
5. m engident ifikasi beberapa j angkauan dari sebuah variable
6. m em ilih t ipe dat a prim it ive dan obj ect
7. m em bandingkan obj ect s dan m enj abarkan class dari obj ect s.
9 .2
Pe n ge n a la n Pe m r ogr a m a n Be r or ie n t a si Obj e ct
OOP berput ar pada konsep dari obj ect sebagai dasar elem ent dari program anda. Ket ika
kit a m em bandingkan dengan dunia nyat a, kit a dapat m enem ukan beberapa obj ek disekit ar
kit a, sepert i m obil, singa, m anusia dan set erusnya. Obj ect ini dikarakt erisasi oleh sifat /
at t ribut nya dan t ingkah lakunya.
Cont ohnya, obj ek sebuah m obil m em punyai sifat t ipe t ransm isi, warna dan m anufakt ur.
Mem punyai kelakuan berbelok, m engerem dan berakselerasi. Dengan cara yang sam a pula
kit a dapat m endefinisikan perbedaan sifat dan t ingkah laku dari singa. Coba perhat ikan
t able dibawah ini sebagai cont oh perbandingan :
Obj e ct
Pr ope r t ie s
Be h a vior
Car
t ype of t ransm ission
m anufact urer
color
t urning
braking
accelerat ing
Lion
Weight
Color
hungry or not hungry
t am ed or wild
roaring
sleeping
hunt ing
Table 1: Exam ple of Real- life Obj ect s
Pengenalan Pem rogram an 1
1
J.E.N.I .
Dengan deskripsi ini, obj ek pada dunia nyat a dapat secara m udah dim odelisasi sebagai
obj ek soft ware m enggunakan sifat sebagai dat a dan t ingkah laku sebagai m et hod. Dat a
disini dan m et hod dapat digunakan dalam pem rogram an gam e at ausoft ware int erakt if unt uk
m enst im ulasi obj ek dunia nyat a. Cont ohnya adalah sebagai soft ware obj ek m obil dalam
perm ainan balap m obil at au soft ware obj ek singadalam sebuah soft ware pendidikan
int erakt if pada kebun binat ang unt uk anak anak.
9 .3
Cla ss da n Obj e ct
9 .3 .1 Pe r be da a n Cla ss da n Obj e ct
Pada dunia soft ware, sebuah obj ek adalah sebuah kom ponen soft ware yang st ukt urnya
m irip dengan obj ek pada dunia nyat a. Set iap obj ek dibuat dari sat u set dat a ( sifat ) dim ana
variable m enj abarkan esensial karakt er dari obj ek, dan j uga t erdiri dari sat u set dari
m et hode ( t ingkah laku) yang m enj abarkan bagaim ana t ingkah laku dari obj ek. Jadi obj ek
adalah sebuah berkas soft ware dari variable dan m et hod yg berhubungan. Variable dan
m et hods dalam obj ek Java scara form al diket ahui sebagai inst ance variable dan inst ance
m et hods unt uk m em bedakannya dari variable klas dan m et hod klas, dim ana akan dibahas
kem udian.
Klas adalah st urkt ur dasa dari OOP. Dia t erdiri dari dua t ipe dari anggot a dim ana disebut
dengan field ( at t ribut / propert i) dan m et hod. Field m espesifikasi t ipe dat a yang didefinisikan
oleh class, sem ent ara m et hode spesifikasi dari operasi. Sebuah obj ek adalah sebuah
inst ance pada class.
Unt uk dapat m em bedakanant ara class dan obect , m ari kit a m endiskusikan beberapa
cont oh. Apa yang kit a m iliki disini adalah sebuah class m obil dim ana dapat digunakan unt uk
m edefinisikan beberapa obj ect m obil. Pada t able dibawah, m obil A dan m obil B adalah obj ek
dari kelas m obil. Kelas m em iliki field plat nom er, warna, m anufakt ur, dan kecepat an yang
diisi dengan nilai korespondendi pada obj ek m obil A dan m obil B. m obil j uga dapat
berakselerasi, berbelok dan m engerem .
Ca r Cla ss
Plat e Num ber
I nst Vari Color
anc able
e
s Manufact urer
Current Speed
I nst Met
anc hod
e
s
Obj e ct Ca r A
Obj e ct Ca r B
ABC 111
XYZ 123
Blue
Red
Mit subishi
Toyot a
50 km / h
100 km / h
Accelerat e Met hod
Turn Met hod
Brake Met hod
Table 2: Cont oh class car dan obj ect - obj ect nya
Pengenalan Pem rogram an 1
2
J.E.N.I .
Ket ika diinisialisi, t iap obj ek m endapat sat u set baru dari st at e variable. Bagaim anapun,
im plem ent asi dari m et hod dibagi diant ara obj ek pada kelas yang sam a.
Kelas m enyediakan keunt ungan dari reusabilit y. Soft ware program m ers dapat digunakan
dari sebuah kelas lagi dan lagi unt uk m em buat beberapa obj ek.
9 .3 .2 I n st a n sia si Cla ss
Unt uk m em buat sebuah obj ek at au sebuah instance pada sebuah kelas. Kit a m enggunakan
operat or baru. Sebagai cont oh, j ika anda ingin m em buat inst ance dari kelas st ring, kit a
m enggunakan kode berikut :
St ring st r2 = new St ring( “ Hello world! ” ) ;
or also equivalent t o,
St ring st r2 = " Hello" ;
Figur e 1: Classs I nst ant iat ion
9 .3 .3 Va r ia be l Cla ss da n M e t h od
Sebagai t am bahan pada cont oh variable, hal ini j uga m em ungkinkan unt uk m endefinisikan
variable kelas, dim ana variable m ilik dari seluruh kelas. I ni berart i bahwa m em iliki nilai
yang sam a unt uk sem ua obj ek pada kelas yang sam a. Mereka j uga disebut st at ic m em ber
variables.
9 .4 M e t h od
9 .4 .1 Apa k a h M e t h od it u da n m e n ga pa m e n ggu n a k a n M e t h od?
Pada cont oh yang t elah kit a diskusikan sebelum nya, kit a hanya m em iliki sat u m et hod, dan
it u adalah m ain( ) m et hod. Didalam Java, kit a dapat m endefinisikan beberapa m et hod yang
akan kit a panggil dari m et hod yang berbeda.
Sebuah m et hod adalah bagian t erpisah dari kode yang akan dipanggil oleh program ut am a
dan beberapa m et hod lainnya unt uk m enunj ukkan beberapa fungsi spesifik.
Berikut adalah karakt erist ik dari m et hod :
1. dapat m engem balikan sat u at au t idak ada nilai
2. dia m ungkin dapat dit erim a sebagai beberapa param et er yang dibut uhkan at au t idak
ada aram et er sam a sekali. Param et er j uga disebut sebagai fungsi argum ent
3. set elah m et hod t elah selesai dieksekusi, dia akan kem bali pada m et hod yang
m em anggilnya.
Pengenalan Pem rogram an 1
3
J.E.N.I .
Sekarang m engapa kit a but uh unt uk m em buat m et hod? Mengapa kit a t idak m elet akkan
sem ua kode pada sebuah m et hod yang sangat besar? Pem ecahan m asalah disini alah
dekom posisi. Kit a j uga dapat m elakukan ini di Java dengan m m buat m et hod unt uk
m engat asi bagian spesifik dari m asalah. Mengam bil sebuah perm asalahan dan
m em ecahkannya m enj adi bagian kecil, bagian dapat diat ur adalah pent ing unt uk m enulis
program yang besar.
9 .4 .2 M e m a n ggil I n st a n ce da r i M e t h od da n Pa ssin g Va r ia be l
Sekarang kit a ilust rasikan bagaim ana m em anggil m et hod, m ari kit a m enggunakan kelas
st ring sebagai cont oh. Anda dapat m enggunakan t he Java API docum ent at ion unt uk m elihat
sem ua m et hod dalam kelas st ring yang t ersedia. Selanj ut nya, kit a akan m em buat m et hod
kit a sendiri. Tapi sekarang m ari kit a m enggunakan apa yang t ersedia.
Unt uk m em anggil sebuah inst ance m et hod, kit a m enuliskan :
nameOfObject.nameOfMethod( parameters );
m ari kit a m engam bil dua cont oh yang dit em ukan dalam kelas St ring.
M e t h od de cla r a t ion
D e fin it ion
pu blic cha r ch a r At ( int in de x )
Mengam bil karakt er pada index.
pu blic boole a n e qua lsI gn or e Ca se
( St r in g a not h e r St r ing)
Mem bandingkan ant ar St ring, t idak case sensit ive.
Table 3: Met hod dari Class St ring
Menggunakan m et hod :
String
str1 = "Hello";
char
x = str2.charAt(0); //will return the
character H
//simpan pada variabel x
String
str2 = "hello";
//return boolean
boolean result = str1.equalsIgnoreCase( str1 );
Pengenalan Pem rogram an 1
4
J.E.N.I .
9 .4 .3 Pa ssin g Va r ia be l D a la m M e t h od
Pada cont oh kit a, kit a t elah m ecoba m elewat i variable pada m et hod. Bagaim anapun j uga
kit a t idak dapat m em bedakan ant ara perbedaan t ipe variabel passing dalam Java. Ada dua
t ipe dat a passing pada m et hod, yang pert am a adalah pass- by- value dan yang kedua adalah
pass- by- reference.
9 .4 .3 .1 Pa ss- by- Va lue
Ket ika pass- by- values t erj adi, m et hod m enggunakan sebuah copy pada nilai pada variable
yang dilewat kan pada m et hod. m et hod t idak dapat secara langsung dim odifikasi secara
argum ent langsung m eskipun j ika dim odifikasi param et ernya selam a perhit ungan
berlangsung.
Cont oh :
public class TestPassByValue
{
public static void main( String[] args ){
int i = 10;
//mencetak nilai i
System.out.println( i );
//memanggil method test
//passing i pada method test
test( i );
Pass i as parameter
which is copied to j
//Mencetak nilai i
System.out.println( i );
}
public static void test( int j ){
//merubah nilai parameter j
j = 33;
}
}
Pada cont oh diat as yang t elah diberikan, kit a m em anggil m et hod t es dan m elewat kan nilai i
sebagai param et er. Nilai pada i dikopikan pada variable pada m et hod j . sej ak j adalah
variable penggant i pada m et hod t es, dia t idak akan berdam pak pada nilai variable j ika i
pada m ain sem enj ak m em iliki perbedaan kopy pada variable.
Secara default , sem ua t ipe dat a prim it ive ket ika dilewat kan pada sebuah m et hod adalah
pass- by- values
Pengenalan Pem rogram an 1
5
J.E.N.I .
9 .4 .3 .2 Pa ss- by- r e fe r e n ce
Ket ika sebuah pass- by- reference t erj adi, referensi pada sebuah obj ek dilewat kan dengan
cara m em anggil m et hod. Hal ini berart i bahwa m et hod m engkopi referensi pada variable
yang dilewat kan pada m et hod. Bagaim anapun j uga, t idak sepert i apda pass- by- value,
m et hod dapat m em buat obj ek act ual yang m enerangkan point ing t o, since, m eskipun
berbeda ket erangan yang digunakan dalam m et hod, lokasi dari dat a yang m ereka
t unj ukkan adalah sam a.
cont oh :
class TestPassByReference
{
public static void main( String[] args ){
//membuat array integer
int []ages
= {10, 11, 12};
//mencetak nilai array
for( int i=0; i