• Tidak ada hasil yang ditemukan

BAB 9 Bekerja dengan Java Class Library - JENI Intro1 Bab09 Bekerja Dengan Java Class Library

N/A
N/A
Protected

Academic year: 2018

Membagikan "BAB 9 Bekerja dengan Java Class Library - JENI Intro1 Bab09 Bekerja Dengan Java Class Library"

Copied!
20
0
0

Teks penuh

(1)

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, w arna 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

(2)

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 w are 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 dar i 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 dar i 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 ilik i 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 Obj e ct Ca r A Obj e ct Ca r B

Plat e Num ber ABC 111 XYZ 123

Color Blue Red

Manufact urer Mit subishi Toyot a

I nst anc e Vari able s

Current Speed 50 km / h 100 km / h

Accelerat e Met hod

Turn Met hod

I nst anc e Met hod s

Brake Met hod

(3)

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 inst ance 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 w orld! ” ) ;

or also equivalent t o,

St ring st r2 = " Hello" ;

Figur e 1: Classs I nst ant iat ion

9 .3 .3 V a 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 bahw a 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 ilik i 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

(4)

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 V a 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

(5)

9 .4 .3 Pa ssin g V a 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 dilew at 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 );

//Mencetak nilai i

System.out.println( i );

Pass i as parameter which is copied to j

}

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

(6)

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 bahw a 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<ages.length; i++ ){

System.out.println(

ages[i]

);

}

test( ages );

for( int i=0; i<ages.length; i++ ){

System.out.println(

ages[i]

);

}

}

public static void test( int[] arr ){

//merubah

nilai

array

for( int i=0; i<arr.length; i++ ){

arr[i] = i + 50;

Pass ages as parameter which is copied to variable arr

}

}

(7)

Gam bar 2 : Cont oh Pass By Reference

Pe t u n j u k Pe n u lisa n Pr ogr a m :

Keadaan yang salah t ent ang nilai oleh referensi di j ava adalah ket ika m em buat m et hod sw ap m enggunakan referensi Java, m encat at t ent ang m anipulasi obj ect Java ‘by reference’ t et api nilai obj eck dari referensi dari m et hod ‘by value,’” adalah hasil, anda t idak dapat m enulis st andart sw ap m et hod ke swap obj ek.

9 .4 .4 M e m a n ggil M e t h od St a t ic

m et hod St at ic adalah cara yang dapat dipakai t anpa inisialisasi suat u class ( m aksudnya t anpa m enggunakan kat a kunci yang baru ) , m et hod st at ic m em punyai class yang lengkap dan cont oh yang t idak past i ( at au obj ek) dari suat u class. m et hod st at ic dibedakan dari cont oh m et hod di dalam suat u class oleh kat a kunci st at ic.

Unt uk m em anggil m et hod st at ic, ket ik,

(8)

Cont oh dari st at ic m et hod yang digunakan :

//mencetak data pad

System.out.println(

“Hello world”);

a layar

//convert string menjadi integer

int i =

Integer.parseInt

(“10”);

String hexEquivalent =

Integer.toHexString

( 10 );

9 .4 .5 Lin gk u p V a r ia be l

Sebagai t am bahan dari suat u variable nam a dan t ipe dat a, suat u variable m em punyai j angkauan, Jangkauan m enent ukan dim ana program dapat m engakses variable, j angkauan j uga m enent ukan kehidupan dari suat u variable at au berapa lam a variable it u berada dalam m em ory. Jangkauan dit ent ukan oleh dim ana deklarasi variable di t em pat kan di dalam program .

Unt uk m enyederhanakannya, coba berpikir t ent ang j angkauan apapun ant ara kurung kuraw al { ...} , diluar kurung kuraw al disebut dengan blok t erluar, dan didalam kurung kurawal disebut dengan blok t erdalam .

Jika kam u m endeklarasikan variable di blok luar. Mereka akan t erlihat ( yait u, dapat dipakai) Oleh blok bagian dalam , bagaim ana pun, j ika kam u m endeklarasikan variable di blok dalam , kam u t idak bisa harapkan blok t erluar unt uk m elihat it u.

(9)

Cont oh, yang diberi code snippet ,

public class ScopeExam ple {

public st at ic void m ain( St ring[ ] args ) {

int i = 0;

int j = 0;

/ / ... som e code here {

int k = 0;

int m = 0;

int n = 0; }

}

A

B

C D

(10)

Kode yang kit a m iliki disini m em punyai lim a j angkauan yang dit andai oleh baris dan ket erangan yang m ew akili j angkauan it u, dengan variable i,j ,k,m dan n, dan 5 j angkauan A,B,C,D dan E, kit a m em punyai beberapa j angkauan variable berikut :

Jangkauan variable i adalah A. Jangkauan variable j adalah B. Jangkauan variable k adalah C. Jangkauan variable m adalah D. Jangkauan variable n adalah E.

Sekarang, m em beri kedua m et hod ut am a dan m enguj i di cont oh kit a sebelum nya,

class TestPassByReference

{

public static void main( String[] args ){

//membuat array integer

int []ages

= {10, 11, 12};

//mencetak nilai array

for( int i=0; i<ages.length; i++ ){

System.out.println( ages[i] );

}

test( ages );

//mencetak kembali nilai array

for( int i=0; i<ages.length; i++ ){

A

B

System.out.println( ages[i] );

}

C

}

public static void test( int[] arr ){

//merubah nilai pada array

for( int i=0; i<arr.length; i++ ){

D

arr[i] = i + 50;

}

E

}

}

Pada m et hod pert am a, Jangkauan variables adalah,

(11)

Pada m et hod uj ian, Jangkauan variables adalah,

arr[ ]

- scope D

i in E

- scope E

m anakala variable di deklarasikan,hanya sat u variable yang di ident ifikasi at au nam a dapat di ident ifikasi di j angkauan, m aksudnya j ika kam u m em punyai deklarasi berikut ,

{

int test = 10;

int test = 20;

}

Com pilerm u akan m enghasilkan error karena kam u perlu m em punyai nam a yang lain dari variable di sat u blok, bagaim anapun, kam u dapat m em punyai dua variable dengan nam a yang sam a, j ika m ereka t idak dideklarasikan pada blok yang sam a, Cont oh

int test = 0;

System.out.print( test );

//..some code here

{

int test = 20;

System.out.print( test );

}

Manakala syst em pert am a out .print it u m em anggil, dia m encet ak nilai dari variable uj ian pert am a sej ak t erdapat pada variable j angkauan it u. Yang kedua, syst em .out print , nilai 20 dicet ak sej ak t ert ut up uj ian j angkauan variable it u.

Pe t u n j u k Pe n u lisa n pr ogr a m :

Hindari pem berian nam a yang sam a kepada variabel supaya Anda t idak kebingungan.

9 .5 Ca st in g, Con ve r t in g da n Com pa r in g Obj e ct s

(12)

9 .5 .1 Ca st in g Tipe Pr im it iv

Cast ing ant ara t ipe prim it ve m endukung Anda unt uk m engkonversikan sebuah value dari sebuah t ipe dat a t ert ent u kepada t ipe prim it ive yang lain. Hal ini biasanya t erj adi diant ara t ipe dat a num erik.

Ada sebuah t ipe dat a prim it ive yang t et ap t idak dapat kit a cast ing, dan dia adalah t ipe dat a boolean.

Sebagai cont oh dari t ypecast ing adalah pada saat Anda m enyim pan sebuah int eger kepada sebuah variabel dengan t ipe dat a double. Sebagai cont oh:

int num I nt = 10;

double num Double = num I nt ; / / im plicit cast

Pada cont oh ini dapat kit a lihat bahw a, w alaupu variabel yang dit uj u ( double) m em iliki nilai yang lebih besar daripada nilai yang akan kit a t em pat kan didalam nya, dat a t ersebut secara im plisit dapat kit a cast ing ke t ipe dat a double.

Cont oh yang lain adalah apabila kit a ingin unt uk m elakukan t ypecast ing sebuah int ke char at au sebaliknya. Sebuah karakt er akan dapat digunakan sebagai int karena set iap karakt er m em iliki sebuah nilai num erik yang m erepresent asikan posisinya dalam sat u set karakt er. Jika sebuah variable m em iliki nilai 65, m aka cast ( char) i akan m enghasilkan nilai 'A'. Num erik kode yang m erepresent asikan kapit al A adalah 65, berdasarkan karakt er set ASCI I , dan Java t elah m engadopsi bagian ini unt uk m endukung karakt er.

char valChar = 'A'; int valI nt = valChar;

Syst em .out .print ( va lI nt ) ; / / cast ing explisit : keluaran 65

Ket ika kit a m en- convert dat a yang bert ipe besar ke t ipe dat a yang lebih kecil, kit a harus m enggunakan e x plicit ca st. Explicit cast s m engikut i bent uk sebagai berikut :

( dat aType) value

dim ana,

dat aType, adalah nam a dari t ipe dat a yang Anda convert

value, adalah pernyat aan yang dihasilkan pada nilai dari t he source t ype.

Sebagai cont oh,

double valDouble = 10.12;

int valI nt = ( int ) va lD ouble ; / / m en- convert valDouble ke t ipe int

double x = 10.2; int y = 2;

(13)

9 .5 .2 Ca st in g Obj e ct s

I nst ances dari class- class j uga dapat di pilih k e inst ance- inst ance dari class- class yang lain, dengan sa t u ba t a sa n: cla ss- cla ss sum be r da n t uj u a n ha r us t e r h u bun g de nga n m e k a n ism e in he r it a n ce ; sa t u cla ss ha r us m e n j a di se bua h subcla ss t e r h a da p cla ss ya ng la in. kit a akan akan m enj elaskan m engenai inherit ance pada kesem pat an selanj ut nya.

Sej alan dengan pem ilihan nilai prim it ive unt uk t ipe yang lebih besar, beberapa obj ect m ungkin t idak m em but uhkan unt uk dipilih secara explisit . Fakt anya, karena sebuah sem ua subclass t erdiri at as inform asi yang sam a, Anda dapat m enggunakan inst ance dari subclass diam anpun sebuah superclass diharapkan berada.

Sebagai cont oh, m em pert im bangkan m et hode yang m em iliki dua argum ent , sat u t ipe obj ect dan t ipe window yang lain. Anda dapat m elewat kan inst ance dari beberapa class unt uk argum ent obj ect karena sem ua class j ava adalah subclass dari obj ect . Unt uk argum ent window, anda dapat m elewat kannya kedalam subclassnya, sepert i dialog, FileDialog, dan fram e. I ni benar dim anapun dalam program , bukan hanya dalam m em anggil m et hode. Jika anda m em punyai variabel yang didefinisikan sebagai window class, anda dapat m em berikan obj ect dari kelas t ersebut at au dari subclassnya unt uk variabelnya t anpa pem ilihan.

Figure 2: Contoh Hierarchy Class

I ni dibenarkan dalam kasus yang berkebalik an, dan Anda dapat m enggunakan superclass ket ika sebuah subclass dibent uk. Ada yang didapat kan dalam kasus ini, bagaim anapun: Ka r e na su bcla ss t e r dir i da r i le bih ba nya k k e m un gk in a n a k si da r ipa da su pe r cla ssn y a , t e r da pa t k e h ila n ga n da la m k e se im ba nga n k e t e r liba t a n . Obj ect superclass it u m ungkin t idak m em ilik i sem ua kem ungkinan aksi yang diperlukan unt uk aksi pada t em pat dari obj ect subclass berada. Sebagai cont oh j ika anda m em ilik i operasi yang m em anggil m et hode dalam obj ect dari class int eger, m engunakan obj ect dari class Num ber t idak akan t erdir i dar i benyak m et hode yang dispesifikasikan dalam int eger. err or t erj adi j ika Anda m encoba unt uk m em anggil m et hode yang t idak m em iliki obj ect t uj uan.

(14)

variabel yang m endefinisikan subclass. Unt uk m em ilih sebuah obj ect ke class yang lain, Anda m enggunakan operasi yang sam a sebagaim ana unt uk t ipe- t ipe prim it ive :

Unt uk m em ilih,

( classnam e) obj ect

dim ana,

classnam e, adalah nam a dari class t uj uan.

obj ect , adalah sesuat u yang m engarah pada sum ber obj ect .

Ca t a t a n : pem ilihan ini m em buat referensi k e obj ect yang lam a dari t ipe nam aclass; obj ect yang lam a m elanj ut kan aksi sepert i yang t elah ada sebelum nya.

Figure 3: Class Hierarchy untuk superclass Employee

Cont oh berikut m em ilih sebuah inst ance dari class VicePresident ke sabuah inst ance dari class Em ployee; VicePresident adalah sebuah dari Em ployee dengan lebih banyak inform at ion, dim ana disini m endefinisikan bahw a VicePresident m em ilihi execut iv e washroom privileges,

Em ployee em p = new Em ployee( ) ;

VicePresident veep = new VicePresident ( ) ;

em p = veep; / / t idak adah pem ilihan yang diperlukan unt uk penggunaan yang cenderung naik

veep = ( VicePresident ) em p; / / Harus m em ilih dengan pem ilihan secara eksplisit

9 .5 .3 Con ve r t Tipe Pr im it ive k e Obj e ct D a n Se ba lik n ya

Sat u hal yang t idak dapat Anda lakukan pada beberapa keadaan yait u pem ilihan dari sebuah obj ect ke sebuah t ipe dat a prim it ive, at au vice versa. Tipe- t ipe prim it ive dan obj ect adalah sesuat u yang sangat berbeda dalam Java, dan Anda t idak bisa secara langsung m em ilih diant ara dua at au saling m enukar diant ara keduanya.

(15)

Java m erepresent asikan t ype dat a dan versi classnya dengan sangat berbeda, dan sebuah program t idak akan berhasil t ercom pile j ika Anda m enggunakan hanya sat u ket ika yang lain j uga diperlukan.

Menggunakan class- class yang sesuai unt uk set iap t ipe prim it ive, anda dapat m em buat sebuah obj ect yang m em ilik i nilai yang sam a.

Con t oh :

/ / Pernyat aan berikut m em bent uk sebuah inst ance bert ype I nt eger / / class dengan nilai int eger 7801 ( prim it ive - > Obj ect )

I n t e ge r da t a Cou n t = n e w I n t e ge r ( 7 8 0 1 ) ;

/ / Pernyat aan berikut m eng- convert s sebuah obj ect I nt eger ke

/ / t ipe dat a prim it ive int nya. Hasilnya adalah sebuah int / / dengan nilai 7801

in t n e w Cou n t = da t a Coun t .in t V a lu e ( ) ;

/ / Anda perlu suat u t ranslasi biasa pada program

/ / yang m eng- convert sebuah St ring ke sebuah t ipe num eric, / / sepert i suat u int

/ / Obj ect - > prim it ive

St r ing pe nn sylv a n ia = " 6 5 0 0 0 " ;

in t pe nn = I n t e ge r .pa r se I n t ( pe n n sylva n ia ) ;

PERH ATI AN : class Void t idak m ew akili sesuat u dalam Java, j adi disini t idak ada alasan m enggunakannya ket ika m elakukan t ranslasi ant ara nilai prim it ive dan obj ect . I ni adalah penj elasan m engenai kat a kunci void, dim ana digunakan dalam definisi m et hod unt uk m engindikasikan bahwa m et hode t idak m em iliki sebuah nilai kem balian.

9 .5 .3 Com pa r in g Obj e ct s

Dalam diskusi kit a sebelum nya, kit a m em pelaj ari t ent ang operat or unt uk m em bandingkan nilai —sam a, t idak sam a, lebih kecil daripada, dan sebagainya. Operat or ini yang paling banyak bekerj a hanya pada t ipe prim it ive, bukan pada obj ect . Jika Anda berusaha unt uk m enggunakan nilai lain sebagai operands, Com piler Java akan m enghasilkan error.

Pengecualian unt uk at uran ini adalah operat or unt uk persam aan : = = ( sam a) dan ! = ( t idak) . Ket ika dinam pilkan ke obj ect , operat or ini t idak akan m elakukan apa yang

sebenarnya anda inginkan. Malahan m engecheck j ika sat u obj ect m em ilki nilai y ang sam a sepert i obj ect lain, m ereka m engenali j ika kedua sisi dari operat or m enunj uk obj ect yang sam a.

Unt uk m em bandingkan inst ances dari sebuah class dan m em ilik i hasil yang berart i, Anda harus m engim plem ent asikan m et hod khusus dalam class Anda dan m em anggil m et hod t ersebut . Sebuah cont oh yang baik unt uk ini adalah class St ring.

(16)

m em pert im bangkan nilai yang t idak sam a. Walaupun isinya sesuai m ereka bukan m erupakan obj ect yang sam a.

Unt uk m elihat j ika dua obj ect St ring m em iliki nilai yang sesuai, sebuah m et hod dari class yang disebuat dengan equals( ) digunakan. Met hod m enguj i set iap charact er dalam st ring dan m engem balikan nilai t rue j ika dua st ring m em iliki nilai yang sam a.

Kode berikut m engilust rasikan hal t ersebut ,

class EqualsTest {

public st at ic void m ain( St ring[ ] argum ent s) { St ring st r1, st r2;

st r1 = " Free t he bound periodicals." ; st r2 = st r1;

Syst em .out .print ln( " St ring1: " + st r1) ; Syst em .out .print ln( " St ring2: " + st r2) ;

Syst em .out .print ln( " Sam e obj ect ? " + ( st r1 = = st r2) ) ;

st r2 = new St ring( st r1) ;

Syst em .out .print ln( " St ring1: " + st r1) ; Syst em .out .print ln( " St ring2: " + st r2) ;

Syst em .out .print ln( " Sam e obj ect ? " + ( st r1 = = st r2) ) ; Syst em .out .print ln( " Sam e value? " + st r1.equals( st r2) ) ; }

}

Out put program ini adalah sebagai berikut ,

OUTPUT:

St ring1: Free t he bound periodicals. St ring2: Free t he bound periodicals. Sam e obj ect ? t rue

St ring1: Free t he bound periodicals. St ring2: Free t he bound periodicals. Sam e obj ect ? false

Sam e value? True

Sekarang m ari m endiskusikan t ent ang kode.

St ring st r1, st r2;

(17)

Figure 4: Keduanya mengarah ke object yang sama

Bagian pert am a dari program ini m endeklarasikan dua variabel ( st r1 dan st r2) , m em berikan lit eral " Free t he bound periodicals." unt uk st r1, dan kem udian m em beri nilai t ersebut unt uk st r2. Sepert i yang Anda pelaj ari sebelum nya, st r1 dan st r2 sekarang m enunj uk ke obj ect yang sam a, dan uj i kesam aan m em bukt ikan hal t ersebut .

st r2 = new St ring( st r1) ;

Padabagian yang kedua dari program ini, anda m em buat obj ect St ring baru dengan nilai yang sam a sebagai st r1 dan m em beri st r2 ke obj ect baru St ring t ersebut . Sekarang Anda m em iliki dua obj ect st ring yang berbeda yait u st r1 dan st r2, keduanya m em ilki nilai yang sam a.Test m ereka unt uk m elihat j ika m eeka obj ect yang sam a dengan m enggunakan operat or = = m engem balikan nilai yang diinginkan : false—m ereka buka obj ect yang sam a dalam m em ory. Test m ereka m enggunakan m et hod equals( ) j uga m engem balikan j awaban yang diinginkan: t rue—m ereka m em ilik i niali yang sam a.

Figure 5: Sekarang mengarah pada object yang berbeda

(18)

9 .5 .5 M e n e n t u k a n Cla ss da r i se bu a h Obj e ct

I ngin m enem ukan apakah sebuah class obj ect it u? Disini langkah unt uk m elakukannya unt uk sebuah obj ect yang diberikan sebagai kunci variabel :

1. M e t h od ge t Cla ss( ) m engem balikan sebuah obj ect Class ( dim ana Class it u sendiri m erupakan sebuah class) yang m em ilki sebuah m et hod yang disebut get Nam e( ) . Pada bagiannya, get Nam e( ) m engem balikan sebuah st ring yang m ew akili nam a class.

Sebagai cont oh,

St ring nam e = key.get Class( ) .get Nam e( ) ;

2 . ope r a t or I n st a n ce Of

inst anceOf m em iliki dua operands: suat u m engarahke sebuah obj ect pada sebelah kir i dan nam a class pada sebelah kanan. pernyat aan m engem balikan nilai t rue at au false t ergant ung pada apakah obj ect adalah sebuah inst ance dari penam aan class at au beberapa dari subclass m ilik class t ersebut .

Sebagai cont oh,

boolean ex1 = " Texas" inst anceof St ring; / / t rue Obj ect pt = new Point ( 10, 10) ;

(19)

9 .6 La t ih a n

9 .6 .1 M e n de fin isik a n I st ila h

Dengan kat a- kat a Anda sendiri, definisikan ist ilah- ist ilah berikut ini :

1. Class 2. Obj ect 3. I nst ant iat e 4. I nst ance Variable 5. I nst ance Met hod

6. Class Variables at au st at ic m em ber variables 7. Const ruct or

9 .6 .2 Ja va Sca va n ge r H u n t

Pipoy adalah suat u anggot a baru dalam bahasa pem rogram an Java. Dia hanya m em perdengarkan bahwa t elah ada API s siap pakai dalam Java yang salah sat unya dapat digunakan dalam program m ereka, dan ia ingin sekali unt uk m engusahakan m ereka keluar. Masalahnya adalah, Pipoy t idak m em iliki copy dari dokum ent asi Java, dan dia j uga t idak m em iliki acces int ernet , j adi t idak ada j alan unt uknya unt uk m enunj ukkan Java API s.

Tugas Anda adalah unt uk m em bant u Pipoy m em perhat ikan API s ( Applicat ion Program m ing I nt erface) . Anda harus m enyebut kan class dim ana seharusnya m et hod berada, deklarasi m et hod dan penggunaan cont oh yang dinyat akan m et hod.

Sebagai cont oh, j ika Pipoy ingin unt uk m enget ahui m et hod yang m engknversisebuah St ring ke int eger,j awaban Anda seharusnya m enj adi:

Cla ss: I nt eger

M e t h od D e cla r a t ion : public st at ic int parseI nt ( St ring value ) Sa m ple Usa ge :

St ring st rValue = " 100" ; int value = I nt eger.parseI nt ( st rValue ) ;

(20)

Se k a r a n g m a r i m e m u la i pe n ca r ia n !

1. Perhat ikan sebuah m et hod yang diuj i j ika St ring past i diakhiri suffix yang past i. Sebagai cont oh, j ika diberikan st ring " Hello" , Met hod harus m engem balikan nilai t rue suffix yang diberikan adalah " lo" , dan false j ika suffix yang diberikan adalah " alp" .

2. Perhat ikan unt uk m et hod yang m engenali charact er yang m ewakili sebuah digit yang spesifik dalam radix khusus. Sebagai cont oh, j ika input digit adalah 15, dan t he radix adalah 16, m et hod akan m engem balikan Charact er F, sej ak F adalah repr esent asi hexadecim al unt uk angka 15 ( berbasis 10) .

3. Perhat ikan unt uk m et hod yang m engakhiri running Java Virt ual Machine yang sedang berj alan

4. Perhat ikan unt uk m et hod yang m em peroleh lant ai dari sebuah nilai double. Sebagai cont oh, j ika Saya input a 3.13, m et hod harus m engem balikan nilai 3.

5.

Perhat ikan unt uk m et hod yang m engenali j ika charact er yang dipakai adalah sebuah

Gambar

Table 2:  Contoh class car dan object-object nya
Gambar 2 :  Contoh Pass By Reference
Figure 2:  Contoh Hierarchy Class
Figure 3: Class Hierarchy untuk superclass Employee
+2

Referensi

Dokumen terkait