• Tidak ada hasil yang ditemukan

JENI Intro1 Bab09 Bekerja Dengan Java Class Library

N/A
N/A
Protected

Academic year: 2017

Membagikan "JENI Intro1 Bab09 Bekerja Dengan Java Class Library"

Copied!
21
0
0

Teks penuh

(1)

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 bab ini, k it a ak an m engant ar k an beber apa k onsep dasar dari Pem r ogr am an ber or ient asi obyek ( Obj ect Or ient ed Por gr am m ing) . Selanj ut ny a, kit a ak an m em bahas k onsep dari class dan oby ek , ser t a penggunaan class dan anggot a- anggot any a t erm asuk perbandingan, k onversi dan pengubahan obyek. Unt uk saat ini, kit a m em fokusk an dalam penggunaan class y ang t elah dij abar k an dalam Jav a Class libr ary , lalu ak an kit a lanjut k an t ent ang pem buat an class anda sendiri.

Pada ak hir pem bahasan, dihar apk an pem baca dapat :

1. Menj elaskan m engenai Pem rogram an berorient asi Obyek dan beberapa konsepnya 2. Per bedaan ant ar a class dan oby ek

3. Pebedaan ant ara variabel/ m et hod yang dit urunkan dan variable/ m et hod class ( st at ic) 4. Menj elask an m engenai m et hod, sert a car a pem anggilan dan pem ber ian par am et er k e

dalam m et hod

5. Mengident ifik asi beber apa j angk auan dari sebuah v ariabel 6. Mengubah t ipe dat a dan obyek prim it if

7. Mem bandingk an obyek dan m enj abar k an class dar i oby ek .

9 .2 Pe n ge na la n Pe m rogra m a n Be r or ie n t a si Oby e k

OOP ber put ar pada k onsep dari oby ek y ang m erupak an elem en dasar dari pr ogr am Anda. Ket ik a kit a m em bandingk an dengan dunia ny at a, k it a dapat m enem uk an beber apa oby ek disekit ar kit a seper t i m obil, singa, m anusia dan set erusny a. Oby ek ini dik ar ak t erisasi oleh at ribut dan t ingk ah lak unya.

Cont ohny a, obj ek sebuah m obil m em puny ai at r ibut t ipe t r ansm isi, warna dan m anufakt ur . Mem puny ai t ingk ah lak u ber belok , m enger em dan ber ak seler asi. Dengan car a y ang sam a pula kit a dapat m endefinisik an per bedaan sifat dan t ingk ah laku dari singa. Coba per hat ik an t abel dibawah ini sebagai cont oh perbandingan :

Oby ek At r ib u t Tingk a h Lak u

Mobil Tipe dari t ransm isi m anufakt ur Warna

Berbelok Mengerem Mem percepat

Singa Berat

Warna

Lapar atau t idak lapar Jinak at au liar

[image:1.612.68.547.630.732.2]
(2)

Dengan desk ripsi ini, oby ek pada dunia ny at a dapat secar a m udah asum sik an sebagai oby ek per angk at lunak m enggunak an at ribut sebagai dat a dan t ingk ah laku sebagai m et hod. Dat a dan m et hod dapat digunakan dalam pem r ogram an gam e at au per angk at lunak int er ak t if unt uk m em buat sim ulasi oby ek pada dunia ny at a. Cont ohny a adalah per angk at lunak oby ek m obil dalam per m ainan balap m obil at au per angk at lunak oby ek singa dalam sebuah per angk at lunak pendidik an int er ak t if pada k ebun 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 per angk at lunak , sebuah obyek adalah sebuah k om ponen per angk at lunak y ang st uk t urny a m ir ip dengan oby ek pada dunia nyat a. Set iap oby ek dibangun dari sekum pulan dat a ( at r ibut ) y ang disebut v ariabel unt uk m enjabar k an k ar akt erist ik k husus dar i oby ek , dan j uga t er dir i dar i sekum pulan m et hod y ang m enj abar k an t ingk ah laku dar i oby ek . Bisa dik at ak an bahwa oby ek adalah sebuah per angkat lunak y ang ber isi sek um pulan v ariabel dan m et hod y g berhubungan. Variabel dan m et hod dalam oby ek Jav a secar a form al dik et ahui sebagai v ar iabel inst ance dan m et hod inst ance. Hal ini dilakuk an unt uk m em bedak an dari v ar iabel class dan m et hod class, dim ana ak an dibahas k em udian.

Class adalah st ur kt ur dasar dari OOP. Class t er diri dar i dua t ipe dari anggot a dim ana disebut dengan field ( at t ribut / pr opert i) dan m et hod. Field m er upak an t ipe dat a y ang didefinisik an oleh class, sem ent ar a m et hod m er upak an oper asi. Sebuah obyek adalah sebuah inst ance ( k et urunan) dar i class.

Unt uk dapat m em bedak anant ar a class dan obyek , m ari kit a m endiskusik an beber apa cont oh berikut ini. Kit a m em iliki sebuah class m obil dim ana dapat digunak an unt uk m edefinisik an beber apa oby ek m obil. Pada t abel dibawah, m obil A dan m obil B adalah oby ek dari class m obil. Class m em ilik i field nom or , plat , war na, m anufakt ur dan k ecepat an y ang diisi dengan nilai pada oby ek m obil A dan m obil B. Mobil juga dapat ber akseler asi, ber belok dan m elak uk an r em .

Cla ss m obil Obye k m obil A Obye k M obil B

Nom or Plat ABC 111 XYZ 123

Warna Biru Mer ah

Manufak t ur Mit subishi Toy ot a

Variabel

Intsance

Kecepat an 50 k m / h 100 km / h Met hod Akseler asi

Met hod Belok Met hod

I nst ance

Met hod Rem

Table 2: Cont oh class car dan obj ect - obj ect ny a

[image:2.612.70.544.508.664.2]
(3)

J.E.N.I .

Ket ik a diinisialisi, set iap oby ek m endapat sat u set v ariabel y ang baru. Bagaim anapun, im plem ent asi dari m et hod dibagi diant ar a obj ek pada class y ang sam a.

Class m eny ediak an k eunt ungan dari r eusabilit y . Pr ogr am m er per angk at lunak dapat m enggunak an sebuah k elas beber apa k ali unt uk m em buat bany ak 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 class. Kit a m enggunakan oper at or ne w . Sebagai cont oh, jik a anda ingin m em buat inst ance dari class st r ing, k it a m enggunak an k ode ber ik ut :

St ring st r2 = new St ring( “ Hello world! ” ) ; I ni j uga sam a dengan,

St ring st r 2 = "Hello" ;

Gam bar 1: I nst anst iasi Class

9 .3 .3 V a r ia be l Cla ss da n V a r ia be l M e t h od

Selain dari v ar iabel inst ance, k it a j uga m em ungkink an unt uk m endefinisik an v ariabel dari class, y ang nant iny a v ar iabel ini dim iliki oleh class. I ni ber art i v ariabel ini dapat m em ilik i nilai y ang sam a unt uk sem ua obj ek pada class y ang sam a. Mer ek a j uga disebut st at ic m em ber

v ar iables.

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 gapa m e n ggu n a k a n M e t h od?

Pada cont oh y ang t elah kit a diskusik an sebelum ny a, kit a hany a m em ilik i sat u m et hod, dan it u adalah m et hod m ain( ) . Di dalam Jav a, kit a dapat m endefinisik an bany ak m et hod y ang akan k it a panggil dar i m et hod yang ber beda.

Sebuah m et hod adalah bagian- bagian k ode y ang dapat dipanggil oleh pr ogr am ut am a at au dar i m et hod lainny a unt uk m enj alank an fungsi yang spesifik .

Berikut adalah k ar akt erist ik dari m et hod :

1. dapat m engem balik an sat u nilai at au t idak sam a sek ali

2. dapat dit er im a beber apa par am et er y ang dibut uhk an at au t idak ada par am et er sam a sek ali. Par am et er bisa j uga disebut sebagai ar gum en dar i fungsi

(4)

Sek ar ang m engapa kit a but uh unt uk m em buat banyak m et hod? Mengapa kit a t idak m enulisk an sem ua k ode pada sebuah m et hod? Hal ini k ar ena peny elesaian m asalah y ang sangat efekt if adalah m em ecah m asalah- m asalah t ersebut m enj adi beber apa bagian. Kit a juga dapat m elakuk an hal ini di Jav a dengan m em buat m et hod unt uk m engat asi bagian t ert ent u dari m asalah. Sebuah perm asalahan dapat dipecah- pecah m enj adi beber apa bagian kecil. Hal ini sangat baik sek ali unt uk m em buat pr ogr am y ang sangat besar .

9 .4 .2 M e m a n ggil I n st a n ce da n m e m be r ik a n V a r ia be l da r i M e t h od

Sek ar ang, unt uk m engilust r asik an bagaim ana m em anggil m et hod, m ari kit a m enggunak an class st ring sebagai cont oh. Anda dapat m enggunak an t he dokum ent asi dar i Jav a API unt uk m elihat sem ua m et hod y ang t er sedia dalam class st ring. Selanjut nya, kit a ak an m em buat m et hod, k it a sendiri. Tapi unt uk saat ini, m ari t erlebih dahulu k it a gunak an m et hod y ang sudah disediak an oleh Jav a.

Unt uk m em anggil sebuah inst ance m et hod, kit a dapat m enulisk an :

nameOfObject.nameOfMethod( parameters );

m ari k it a m engam bil dua cont oh m et hod y ang dit em uk an dalam class St ring.

D e k la r a si m e t h od D e f in isi

pu blic ch a r ch ar At ( in t in de x) Mengam bil k ar ak t er pada indeks t ert ent u. pu blic boole an e qu a lsI gn or e Ca se

( St r in g an ot h er St r in g)

Mem bandingk an ant ar St ring, t idak case sensit ive.

Table 3: Met hod dari Class St ring

Menggunak an 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)

J.E.N.I .

9 .4 .3 Pe m be r ia n V a r ia be l D a la m M e t h od

Pada cont oh k it a sebelum ny a , kit a sudah pernah m ecoba m elewat i v ariabel pada m et hod. Walaupun k it a belum dapat m em bedak an ant ar a per bedaan t ipe v ar iabel y ang diber ik an ( passing) k e m et hod dalam Java. Ada dua t ipe dat a v ariabel passing pada m et hod, y ang per t am a adalah pass- by - v alue dan y ang k edua adalah pass- by - r efer ence.

9 .4 .3 .1 Pa ss- by- V a lu e

Ket ik a pass- by - v alues t er j adi, m et hod m em buat sebuah salinan dari nilai v ar iable y ang dikir im k an k e m et hod. Walaupun dem ikian, m et hod t idak dapat secar a langsung m em odifik asi nilai v ar iabel pengir im ny a m eskipun par am et er salinanny a sudah dim odifik asi nilainy a di dalam m et hod.

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, kit a m em anggil m et hod t es dan m elewat k an nilai v ar iabel i sebagai par am et er . Nilai pada i disalink an k e v ariable j pada m et hod. Pada k ondisi ini v ar iabel j adalah m erupak an v ar iabel penggant i pada m et hod t es, j ik a nilai j ber ubah m ak a nilai v ar iabel i y ang t er let ak pada m ain t idak ak an ikut berubah walaupun awalny a v ariabel j m er upak an salinan dari v ariabel i.

Secar a default , sem ua t ipe dat a prim it if k et ik a dilewat k an pada sebuah m et hod adalah

(6)

9 .4 .3 .2 Pa ss- by- r ef er e nce

Ket ik a sebuah pass- by - r efer ence t er j adi, alam at m em ori dar i nilai pada sebuah v ariabel dilewat k an pada saat pem anggilan m et hod. Hal ini ber art i bahwa m et hod m eny alin alam at m em ori dari v ar iabel y ang dilewat k an pada m et hod. I ni t idak sepert i pada pass- by - v alue, m et hod dapat m em odifik asi v ariabel asli dengan m enggunak an alam at m em ori t er sebut , m eskipun ber beda nam a v ar iabel y ang digunakan dalam m et hod dengan v ar iabel asliny a, k edua v ariabel ini m enunjuk k an lok asi dar i dat a y ang 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] );

}

Pass ages as parameter which is copied to variable arr

}

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;

}

}

(7)

J.E.N.I .

Gam bar 2 : Cont oh Pass By Reference

Pe t u nj u k Pe nu lisa n Progr a m :

Kesalahan k onsep m engenai pass- by- r efer ence pada Jav a adalah pada saat m em buat m et hod unt uk m enuk ar nilai v ariabel m enggunak an pengalam at an j av a. Perlu diingat bahwa j av a m em anipulasi oby ek - oby ek dengan car a ‘by r efer ence’, ak an t et api j av a m engirim k an alam at oby ek k e dalam m et hod dengan cara ‘by v alue’. Unt uk it u, anda t idak dapat m enulisk an m et hod penuk ar an st andar ke dalam oby ek .

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

Met hod St at ic adalah m et hod y ang dapat dipak ai t anpa harus m enginisialisasi suat u class ( m aksudny a t anpa m enggunak an v ar iabel t erlebih dahulu) . Met hod st at ic hany a dim iliki oleh class dan t idak dapat digunak an oleh inst ance ( at au obj ek ) dari suat u class. Met hod st at ic dibedak an dari m et hod y ang dapat inst ance di dalam suat u class oleh k at a k unci 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 y ang digunakan :

//mencetak data pada layar

System.out.println(“Hello world”);

//convert string menjadi integer

int i = Integer.parseInt(“10”);

String hexEquivalent = Integer.toHexString( 10 );

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

Selain nam a dan t ipe dat a y ang dim ilik i oleh v ar iabel, suat u var iablej uga m em puny ai j angk auan. Jangkauan ini m enent uk an k em am puan progr am dalam m engakses v ariable. Jangk auan ini juga m enent ukan siklus hidup dar i suat u v ariable at au ber apa lam a v ariable it u ber ada dalam m em or i. Jangk auan ini dit ent uk an oleh let ak pendeklar asian v ariabel di dalam pr ogr am .

Unt uk m em udahk an anda m engenai j angkauan v ar iabel, k it a bedak an v ar iabel y ang t erlet ak di dalam kur awal { ...} . Blok k ode y ang t er dapat di luar k ur ung k ur awal bisa disebut j uga dengan blok luar , dan blok k ode y ang t erlet ak di dalam kurung kur awal disebut dengan blok dalam .

Jik a k am u m endek lar asik an v ariabel di blok luar , v ar iabel ak an dapat dipak ai oleh blok bagian dalam . Lain halny a jik a k am u m endeklar asik an v ariabel di blok dalam , k am u t idak bisa har apk an blok t er luar unt uk m enggunak an v ariabel t er sebut .

(9)

J.E.N.I .

Sebagai Cont oh, per hat ik an pot ongan k ode ber ik ut :

public class ScopeExample

{

public static void main( String[] args ){

int i = 0;

int j = 0;

//... some code here

{

int k = 0;

int m = 0;

int n = 0;

}

}

Pengenalan Pem rogram an 1 9

A

B

E

(10)

Kode y ang kit a m iliki disini m em puny ai lim a j angk auan y ang dit andai oleh baris dan k et er angan y ang m ewakili j angk auan it u, dengan v ariable i,j ,k ,m dan n, dan 5 j angk auan A,B,C,D dan E, k it a m em puny ai beber apa j angkauan v ariable berikut :

Jangk auan v ariable i adalah A. Jangk auan v ariable j adalah B. Jangk auan v ariable k adalah C. Jangk auan v ariable m adalah D. Jangk auan v ar iable n adalah E.

Cont oh lain, jik a t er dapat dua m et hod, y ait u m ain dan t est ,

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++ ){

A

}

test( ages );

//mencetak kembali nilai array

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

C

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

}

}

public static void test( int[] arr ){

//merubah nilai pada array

D

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

arr[i] = i + 50;

}

}

}

Pada m et hod m ain Jangk auan v ariabel adalah,

ages[ ]

- scope A

i in B

- scope B

i in C

– scope C

E

(11)

J.E.N.I .

Pada m et hod t est , Jangk auan v ariabel adalah,

arr[ ]

- scope D

i in E

- scope E

Pada saat v ariabel di deklar asik an, hany a boleh t erdapat sebuah v ar iabel dengan ident ifier / nam a dapat di deklarasikan di dalam sebuah j angkauan. Hal ini m aksudnya j ika k am u m em puny ai deklar asi ber ik ut ,

{

int test = 10;

int test = 20;

}

Com piler ak an m enghasilk an er r or k ar ena com piler m endet ek si nam a y ang lain dar i v ariabel

di sat u blok , nam un com piler t idak akan m enghasilk an err or j ik a m enum uk an dua variabel dengan nam a y ang sam a j ik a k edua v ar iabel t er sebut t idak didek larasik an pada blok yang sam a, Cont oh :

int test = 0;

System.out.print( test );

//..some code here

{

int test = 20;

System.out.print( test );

}

Manak ala Sy st em .out .print ( bar is 2) pert am a dipanggil, dia m encet ak nilai dari v ar iabel t est per t am a ( nilai 0) pada saat v ariabel t erlihat pada j angk auan. Perny at aan Sy st em .out .pr int y ang k edua ( baris6) , nilai 20 dicet ak m engam bil nilai variabel t est t erdekat ( baris 6) pada j angk auan blok k ode t er sebut .

Pe t u nj u k Pe nu lisa n progr a m :

Hindari pem ber ian nam a y ang sam a k epada var iabel supay a Anda t idak k ebingungan.

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

Pada bagian ini, k it a ak an belaj ar bagaim ana m engunak an t y pecast ing. Ty pecast ing at au

cast ing adalah pr oses k onv er si dat a dar i t ipe dat a t er t ent u k e t ipe dat a y ang lain. Kit a juga

(12)

9 .5 .1 Ca st in g Tipe da t a Pr im it if

Cast ing ant ar a t ipe pr im it if dapat m engij ink an Anda unt uk m engk onv er sik an sebuah nilai

dar i sebuah t ipe dat a t ert ent u kepada t ipe prim it if y ang lain. Hal ini biasany a t er j adi diant ar a t ipe dat a angk a.

Ada sebuah t ipe dat a pr im it if y ang t idak dapat kit a cast ing, y ait u t ipe dat a boolean.

Sebagai cont oh dar i t y pecast ing adalah pada saat Anda m eny im pan sebuah v ar iabel dengan t ipe dat a int eger k epada sebuah v ariabel 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 k it a lihat bahwa, walaupun v ariabel y ang dit uj u ( double) m em iliki ukur an y ang lebih besar dar ipada nilai y ang ak an k it a t em pat kan didalam ny a, dat a t er sebut secar a im plisit dapat kit a cast ing ke t ipe dat a double.

Cont oh y ang lain adalah apabila kit a ingin unt uk m elakukan t ypecast ing sebuah int k e char at au sebalikny a. Sebuah k ar akt er ak an dapat digunak an sebagai nilai int eger k ar ena set iap k ar ak t er m em iliki sebuah nilai num erik y ang m erepr esent asik an posisiny a dalam sat u set k ar ak t er . Jik a sebuah v ariable m em ilik i nilai 65, m ak a cast ( char ) i ak an m enghasilk an nilai 'A'. Kode num erik y ang m er epr esent asik an hur uf k apit al A adalah 65, ber dasark an set k ar ak t er ASCI I , dan Jav a t elah m engadopsi bagian ini unt uk m endukung k arakt er .

char v alChar = 'A'; int v alI nt = v alChar ;

Sy st em .out .print ( va lI n t ) ; / / cast ing ex plisit : keluar an 65

Ket ik a kit a m engk onv ersi dat a y ang bert ipe besar k e t ipe dat a y ang lebih k ecil, kit a har us m enggunak an e x plicit ca st . Ex plicit cast s m engikut i bent uk sebagai berikut :

( dat aTy pe) v alue dim ana,

dat aTy pe, adalah nam a dar i t ipe dat a y ang Anda k onv er si

v alue, adalah per ny at aan y ang dihasilk an pada nilai dar i t he source t y pe.

Sebagai cont oh,

double v alDouble = 10.12;

int v alI nt = ( in t ) va lD ou ble ; / / m en- conv ert v alDouble k e t ipe int double x = 10.2;

int y = 2;

int r esult = ( in t ) ( x/ y) ; / / hasil t y pecast oper asi ke int

(13)

J.E.N.I .

9 .5 .2 Ca st in g Oby ek

I nst ances dar i class- class j uga dapat di ubah ke inst ance- inst ance dari class- class y ang lain dengan sa t u ba t a sa n : cla ss- cla ss sum be r da n t u j u a n h ar us t e r h u bu n g de n ga n m ek a n ism e in h e r it an ce ; sa t u cla ss h a ru s m e nj a di se bua h su bcla ss t e r h a da p class ya n g la in . Kit a ak an m enj elask an m engenai inherit ance pada bab selanj ut ny a.

Sej alan dengan k onversi nilai pr im it if k e t ipe y ang lebih besar ukur anny a, beber apa obj ect m ungkin t idak m em but uhkan unt uk ubah secar a ex plisit . Fak t any a k ar ena sem ua subclass t er diri at as infor m asi y ang sam a sepert i class induk ny a.

Sebagai cont oh, j ik a t er dapat m et hod y ang m em ilik i dua ar gum en, sat u t ipe obj ect dan t ipe

window y ang lain. Anda dapat m elewat k an inst ance dar i class apapun unt uk ar gum en obj ect k ar ena sem ua class j av a adalah subclass dar i obj ect . Unt uk ar gum en window,

[image:13.612.176.431.358.486.2]

anda dapat m elewat k anny a subclassny a, seper t i dialog, FileDialog, dan fr am e. Hal ini dapat dit ulisk an dalam pr ogr am dan buk an hany a dalam m em anggil m et hod. Jik a anda m em puny ai v ar iabel y ang didefinisik an sebagai class window, anda dapat m em ber ik an oby ek dari class t er sebut at au dari subclassny a unt uk dij adik an v ariabel t anpa k onv ersi.

Figure 2: Contoh Hierarchy Class

Unt uk kebalik anny a pun bisa dilak uk an, Anda dapat m enggunak an super class k et ik a sebuah subclass dibent uk . Ak an t et api er r or ak an dit em uk an k ar e na su bcla ss k e m u n gk ina n m e m ilik i le bih ba n ya k t in gka h la k u da r ipa da su per classn ya , maka mungkin akan terjadi hilangnya kendali dari superclass untuk method tertentu. Superclass obj ect m ungkin t idak m em iliki sem ua k em ungkinan t ingk ah laku y ang dapat dilakuk an subclass

obj ect . Sebagai cont oh j ik a anda m em ilik i oper asi y ang m em anggil m et hod dalam oby ek

dar i class int eger , m engunak an obj ect dari class Num ber t idak a k a n d i d a p a t k a n m et hod l e b i h b a n y a k d a r i y ang dispesifik asik an dalam int eger . E r r or ak an t er j adi j ik a Anda m encoba unt uk m em anggil m et hod y ang t idak dim iliki oleh oby ek t uj uan.

(14)

v ar iabel y ang didefinisik an oleh subclass. Unt uk k onv er si sebuah oby ek k e class y ang lain, Anda dapat m enggunak an oper asi y ang sam a seper t i k onv er si unt uk t ipe- t ipe prim it if : Unt uk m em ilih,

( classnam e) obj ect dim ana,

classnam e, adalah nam a dari class t ujuan.

obj ect , adalah sesuat u y ang m engar ah pada oby ek sum ber .

[image:14.612.199.408.230.308.2]

Ca t a t a n : cast ing ak an m em buat pengalam at an k e oby ek y ang lam a dar i classnam e y ang dit ulisk an; oby ek y ang lam a ak an dapat t et ap dipak ai seper t i sebelum ny a.

Figure 3: Class Hierarchy untuk superclass Employee

Cont oh ber ik ut k onv er si sebuah inst ance dar i class VicePr esident k e sabuah inst ance dar i class Em ploy ee; VicePresident adalah sebuah subclass dar i Em ploy ee dengan lebih bany ak inform asi, disini didefinisik an bahwa VicePr esident m em iliki ak ses m enuj u

ex ecut iv e washr oom ,

Em ploy ee em p = new Em ploy ee( ) ;

VicePr esident v eep = new VicePr esident ( ) ;

em p = v eep; / / t idak adah k onv er si y ang diperluk an unt uk penggunaan y ang cenderung naik

v eep = ( VicePr esident ) em p; / / Har us m em ilih dengan pem ilihan secar a ek splisit

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

Sat u hal y ang t idak dapat Anda lakuk an pada beber apa keadaan y ait u k onv er si dar i sebuah oby ek ke sebuah t ipe dat a pr im it if, at au sebalik ny a. Tipe- t ipe d at a pr im it if dan oby ek adalah sesuat u y ang sangat ber beda dalam Jav a, dan Anda t idak bisa secar a langsung k onv ersi diant ar a k eduany a.

Sebagai sebuah alt ernat if, pack age j a va .la n g y ang t er diri at as class- class y ang ber hubungan unt uk set iap t ipe dat a prim it if y ait u : Float , Boolean, Byt e, dan sebagainy a. Kebany akan dar i class- class ini m em iliki nam a y ang sam a sepert i t ipe dat any a, k ecuali j ik a nam a classny a diawali dengan huruf besar ( Short - > sort , Double - > double dan sebagainy a) . Selain itu terdapat dua class yang m em iliki nam a ber beda dari t ipe dat a prim it ifny a y ait u: Char act er digunak an unt uk v ariabel char dan I nt eger unt uk v ariabel int . ( D ise bu t de n gan W r a ppe r Classes)

(15)

J.E.N.I .

Jav a m erepr esent asik an t ipe dat a p r i m i t i f dan v er si classny a dengan sangat ber beda. Sebuah pr ogr am t idak ak an ber hasil t er com pile j ik a Anda m enggunak an hany a sat u ket ik a y ang lain j uga diper luk an.

Menggunak an class- class y ang ber hubungan unt uk set iap t ipe prim it if, anda dapat m em buat sebuah oby ek yang m em ilik i nilai y ang sam a.

Con t oh :

/ / Per ny at aan berikut m em bent uk sebuah inst ance bert ipe I nt eger / / class dengan nilai int eger 7801 ( pr im it if - > Obj ect )

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

/ / Per ny at aan berikut m eng- k onv er si sebuah obyek I nt eger k e / / t ipe dat a prim it if int ny a. Hasilny a adalah sebuah int

/ / dengan nilai 7801

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

/ / Anda per lu suat u t r anslasi biasa pada pr ogr am

/ / y ang m engk onv ersi sebuah St ring k e sebuah t ipe num er ic, / / sepert i suat u int

/ / Oby ek - > prim it if

St r in g pe nn sylva n ia = " 6 5 0 0 0 " ;

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

PERH ATI AN : class Void t idak m ewakili apapun dalam Jav a, j adi class ini t idak ak an digunak an k et ik a m elak uk an k onv ersi ant ara nilai pr im it if dan obyek . Kat a v oid digunakan dalam definisi m et hod unt uk m engindik asik an bahwa m et hod t idak m em ilik i sebuah nilai y ang dihasilk an.

9 .5 .3 M e m ba n din gk a n du a Oby ek

Dalam diskusi kit a sebelum ny a, kit a m em pelaj ar i t ent ang oper at or unt uk m em bandingk an nilai — sam a dengan, t idak sam a dengan, lebih k ecil daripada, dan sebagainy a. Oper at or ini hany a bek er j a pada t ipe pr im it if, buk an pada oby ek . Jik a Anda berusaha unt uk m enggunak an nilai selain t ipe dat a pr im it if sebagai operand, com piler Jav a ak an m enghasilk an err or .

Salah sat u cont oh unt uk at ur an ini adalah oper at or unt uk per sam aan : = = ( sam a dengan) dan ! = ( t idak sam adengan) , k et ik a oper at or ini dim asuk k an k e sebuah obyek , oper at or ini t idak ak an m elak uk an apa yang sebenar ny a diingink an. Penggunaan oper at or ini ak an m em eriksa kesam aan ant ar a sat u oby ek k e obyek lain, buk an nilainy a.

Unt uk m em bandingkan inst ance dar i sebuah, Anda har us m engim plem ent asik an m et hod k husus dalam class anda dan m em anggil m et hod t ersebut . Sebuah cont oh y ang baik unt uk ini adalah class St r ing.

(16)

m enghasilk an hasil y ang t idak sam a. Walaupun isiny a t erny at a sam a ak an t et api pada k eny at aanny a m erek a buk an m erupak an oby ek y ang sam a.

Unt uk m elihat j ik a dua obj ect St ring m em ilik i nilai y ang sam a, sebuah m et hod dari class y ait u equals( ) digunak an. Met hod ini ak an m em er ik sa set iap k ar ak t er dalam st ring dan m engem balik an nilai t rue jik a dua oby ek st ring m em iliki nilai y ang sam a.

Kode berikut m engilust r asik an hal t er sebut , class EqualsTest {

public st at ic v oid m ain( St ring[ ] ar gum ent s) { St ring st r 1, st r 2;

st r1 = "Fr ee t he bound periodicals." ; st r2 = st r1;

Sy st em .out .pr int ln( "St r ing1: " + st r 1) ; Sy st em .out .pr int ln( "St r ing2: " + st r 2) ;

Sy st em .out .pr int ln( "Sam e obj ect ? " + ( st r1 = = st r2) ) ; st r2 = new St ring( st r 1) ;

Sy st em .out .pr int ln( "St r ing1: " + st r 1) ; Sy st em .out .pr int ln( "St r ing2: " + st r 2) ;

Sy st em .out .pr int ln( "Sam e obj ect ? " + ( st r1 = = st r2) ) ; Syst em .out .print ln( " Sam e v alue? " + st r1.equals( st r 2) ) ; }

}

Out put pr ogr am ini adalah sebagai ber ik ut , OUTPUT:

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

St ring1: Fr ee t he bound per iodicals. St ring2: Fr ee t he bound per iodicals. Sam e obj ect ? false

Sam e v alue? True

Sek ar ang m ari m endiskusik an t ent ang dua baris k ode dari pr ogr am sebagai ber ik ut . St ring st r 1, st r 2;

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

(17)
[image:17.612.171.449.91.165.2]

J.E.N.I .

(18)

Bagian pert am a dari pr ogr am m endeklar asikan dua v ariabel ( st r 1 dan st r2) , m em berik an k alim at " Free t he bound periodicals." unt uk st r1, dan kem udian m em beri nilai t er sebut unt uk st r2. Sepert i y ang Anda pelaj ar i sebelum ny a, st r1 dan st r2 sek ar ang m enunjuk ke alam at oby ek y ang sam a, dan uj i k esam aan m em buk t ikan hal t er sebut .

st r2 = new St ring( st r1) ;

[image:18.612.170.449.258.373.2]

Pada bagian y ang k edua dari pr ogr am ini, anda m em buat oby ek St ring baru dengan nilai y ang sam a dar i st r1 dan m em ber ik k any a k e st r2. Sek ar ang Anda m em ilik i dua obyek st ring y ang ber beda y ait u st r 1 dan st r 2, k eduany a m em ilki nilai y ang sam a. Ket ik a dilak uk an penguj ian unt uk m elihat j ik a m ereka oby ek y ang sam a dengan m enggunak an oper at or = = , ak an dihasilk an nilai: false — kedua oby ek buk an oby ek y ang sam a dalam m em or y . k et ik a dilak uk an penguj ian m enggunak an m et hod equals( ) m ak a ak an dihasilk an : t rue – k edua oby ek t er sebut m em iliki nilai y ang sam a.

Gambar 5: Alamat sekarang mengarah pada object yang berbeda

(19)

J.E.N.I .

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

Jik a k it a ingin m enget ahui class dari sebuah obyek dapat dilakuk an dengan car a :

1. M e t h od ge t Cla ss( ) m engem balik an sebuah oby ek Class ( dim ana Class it u sendiri m er upak an sebuah class) yang m em ilk i sebuah m et hod get Nam e( ) . Selanjut ny a get Nam e( ) ak an m engem balik an sebuah st r ing y ang m ewakili nam a class.

Sebagai cont oh,

St ring nam e = k ey .get Class( ) .get Nam e( ) ; 2 . ope r at or I n st anceOf

inst anceOf m em iliki dua oper and: obyek pada sebelah kir i dan nam a class pada sebelah k anan. Perny at aan ini m engem balik an nilai t rue at au false t er gant ung pada benar / salah oby ek adalah sebuah inst ance dar i penam aan class at au beber apa subclass m ilik class t er sebut .

Sebagai cont oh,

boolean ex 1 = " Tex as" inst anceof St r ing; / / t rue Obj ect pt = new Point ( 10, 10) ;

(20)

9 .6 La t ih a n

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

Dengan k at a- k at a Anda sendiri, definisik an 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 v ariables 7. Const r uct or

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

Pipoy adalah suat u anggot a bar u dalam bahasa pem r ogr am an Jav a. Dia hany a m em per dengar k an bahwa t elah ada API s siap pak ai dalam Jav a y ang salah sat uny a dapat digunak an dalam pr ogr am m er ek a, dan ia ingin sek ali unt uk m engusahak an m er ek a k eluar . Masalahny a adalah, Pipoy t idak m em ilik i copy dari dok um ent asi Java, dan dia j uga t idak m em iliki acces int ernet , j adi t idak ada j alan unt ukny a unt uk m enunjukk an Jav a API s.

Tugas Anda adalah unt uk m em bant u Pipoy m em perhat ik an API s ( Applicat ion Pr ogr am m ing I nt er face) . Anda har us m eny ebut k an class dim ana sehar usny a m et hod ber ada, dek lar asi m et hod dan penggunaan cont oh y ang diny at ak an m et hod.

Sebagai cont oh, j ik a Pipoy ingin unt uk m enget ahui m et hod y ang m engknv ersisebuah St r ing k e int eger ,j awaban Anda sehar usny a m enj adi:

Cla ss: I nt eger

M e t hod D e clar a t ion: public st at ic int par seI nt ( St ring v alue ) Sa m ple Usa ge :

St ring st rValue = " 100" ;

int v alue = I nt eger .parseI nt ( st rValue ) ;

y ak ink an bahwa snippet dari k ode y ang Anda t ulis dalam cont oh Anda

m enggunak an com piles dan m em ber i

(21)

3. Perhat ik an unt uk m et hod y ang ber j alan

4. Perhat ik an unt uk m et hod y ang cont oh, j ik a Say a

5.

Per hat ik an

input a 3 m et hod

.13, m y ang

J.E.N.I .

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

1. Per hat ik an sebuah m et hod y ang diuj i j ik a St r ing past i diak hiri suffix y ang past i. Sebagai cont oh, j ik a diberik an st ring "Hello" , Met hod har us m engem balik an nilai t r ue suffix y ang diberik an adalah " lo" , dan false jik a suffix y ang diberik an adalah " alp" .

2. Perhat ik an unt uk m et hod y ang m engenali char act er y ang m ewakili sebuah digit y ang spesifik dalam r adix k husus. Sebagai cont oh, jik a input digit adalah 15, dan t he r adix adalah 16, m et hod ak an m engem balik an Char act er F, sej ak F adalah

r epr esent asi

hex adecim al unt uk angk a 15 ( ber basis 10) .

m engak hiri running Jav a Virt ual Machine y ang sedang m em per oleh lant ai dari sebuah nilai double. Sebagai et hod har us m engem balik an nilai 3.

Gambar

Table 1:  Example of Real-life Objects
Table 2: Contoh class car dan object-object nya
Figure 2:  Contoh Hierarchy Class
Figure 3: Class Hierarchy untuk superclass Employee
+3

Referensi

Dokumen terkait

Hasil penelit ian dihar apk an dapat m enj adi dat a dasar dar i par am et er sindr om a HELLP dalam m em pengar uhi luar an ib u dan bay i pada pender it a pr eek lam sia ber at

Dalam penelit ian ini digunak an pem er ik saan ek ok ar diogr afi sebagai bak u em as, dim ana ak an dibandingk an besar ny a nilai disper si QT pada h iper t ensi y ang m am

Ber bagai nilai y ang pent ing diant ar any a: k elangsungan hidup indiv idu dan k elom pok , pengalam an dir i, k eber sam aan, penghar gaan dan penghor m at an dir i, k em

Hal ini t im bul kem ungkinan disebabkan oleh bahan dasar at aupun bahan- bahan t am bahan sepert i bahan pew arna, pew angi, pengaw et , dan obat - obat an pada sabun y ang t idak

Gam glion sem ilunare Gasseri t erlet ak dalam cavum t rigm inale, bagian duram et er y ang m enut upi im pressio t rigm inale, sebelah ant erior pars pet rosaos t em

menyet uj ui dan mengesahkan Usulan RKUPHHK pada hut an al am at as nama PT. KARUNIA HUTAN LESTARI y ang dit et apkan dengan Keput usan Ment er i Kehut anan. Perat

• Satu hal yang yang tidak dapat dilakukan dalam proses casting adalah mengcasting sebuah object menjadi tipe data primitif atau sebaliknya. • Sebagai alternatif, package