JENI Intro1 Bab06 Struktur Kontrol

(1)

BAB 6

St r uk t ur Kont r ol

6 .1 Tuj ua n

Pada bab seb el um nya, kit a sudah m endapat k an contoh dari progr am t er st ru kt u r , dim ana set iap per n yat aan diekseku si set elah per n yat aan sebelum nya sesu ai dengan ur u t an nya. Pada bagian ini, kit a akan m em pelaj ar i t en t ang st r ukt ur kont rol dim ana kit a dapat m engu bah car a eksekusi pada p er n yat aan y an g dibu at di progr am ki t a.

Pada akhir pem bahasan, dihar apkan pem baca dap at :

 Menggu nakan st ru kt u r kon t r ol pem ilihan ( if , else, swit ch) yan g digun ak an u ntu k m em ilih blok kode yang ak an diekseku si

 Menggu nakan st r ukt ur kont rol pengulangan ( while, do- while, for) unt u k m engekseku si blok t er t ent u pada pr ogr am beber ap a k ali.

 Menggu nakan per n yat aan- per ny at aan per caban gan ( br eak, continue, r et urn ) yang digun akan un tuk m engat u r ar ah dar i ali r an progr am .

6 .2 St ru k t u r Kon t r ol Pe m iliha n

St r u kt u r kont r ol pem ilihan adal ah per nyat aan dar i Jav a yang m engijinkan user un tuk m em ilih dan m engek seku si blok kode spesi fik dan m en gabaikan blok kode yan g l ain .

6 .2 . 1 St a t e m e nt if

Per nyat aan if a k an m enent uk an sebu ah per nyat aan ( at au blok kode) yang ak an ek sekusi j ika dan hanya j ika p er syar at an ber nilai ben ar ( t r ue) .

Bent u k dar i pern yat aan if,

if( boolean_expression ) statement;

at au

if( boolean_expression ){ statement1;

statement2; . . . }

di m ana, boolean_expr ession adalah sebuah peny at aan logika ( t r ue/ false) at au var iabel ber t ipe boolean.


(2)

Gam bar 1: Fl owchart St at em ent I f

Berikut ini adalah pot ongan kode dar i per nyat aan if:

int grade = 68;

if( grade > 60 ) System.out.println("Congratulations!");

at au

int grade = 68; if( grade > 60 ){

System.out.println("Congratulations!"); System.out.println("You passed!"); }

Pe t u nj u k Pe nu lisa n Progra m :

1. Boole a n_ e x pre ssion pada per nyat aan i f harus m er upak an n ilai boolean) .Hal in i ber ar t i per syar at an h ar u s ber n ilai t ru e at au fa lse .

2. Masukkan st at em ent di dalam blok if. Con t ohn ya, if( boolean_ expr ession ) {

/ / st at em ent 1; / / st at em ent 2; }


(3)

6 .2 . 2 St a t e m e nt if - e lse

Per nyat aan if- else digun ak an apabila kit a ingin m engek sekusi beber apa p er n yat aan dengan kondisi t r ue dan pernyat aan yang lain den gan kon disi false.

Bent u k st at em en t if- else,

if( boolean_expression ) statement;

else

statement;

dapat j u ga dit ulis sepert i,

if( boolean_expression ){ statement1;

statement2; . . . }

else{

}

statement1; statement2; . . .

Berikut ini contoh code st at em en t if- else,

int grade = 68;

if( grade > 60 ) System.out.println("Congratulations!"); else System.out.println("Sorry you failed");

at au

int grade = 68; if( grade > 60 ){

System.out.println("Congratulations!"); System.out.println("You passed!"); }

else{ }


(4)

Gam bar 2: Flow chart St at em ent I f- Else

Pe t u nj u k Pe nu lisa n Progra m :

1 . Untuk m en ghindar i kebingungan, selalu let akkan sebu ah per n yat aan at au beber ap a per n yat aan di dalam blok if - else didalam t anda ku raw al { } ,

2. Anda dapat m em iliki blok if- else yang ber sar an g. I ni ber ar t i anda dap at m em iliki blok if- else yang lain di dalam blok if- else. Con tohn ya,

if( boolean_ expr ession ) {

if( boolean_ expr ession ) { . . .

} }

else{ . . . }


(5)

6 .2 . 3 St a t e m e nt if - e lse - if

Per nyat aan pad a bagian kon disi else dari blok if- else dapat m enj adi st r ukt ur if- else y ang lain. Kondisi st r ukt ur seper t i ini m engijinkan kit a untu k m em buat selek si per syar at an y an g l ebih kom pleks.

Bent u k st at em en t if- else if,

if( boolean_expression1 ) statement1;

else if( boolean_expression2 ) statement2;

else

statement3;

Sebagai cat at an : an da dapat m em iliki banyak blok el se- if sesu dah per nyat aan if. Blok else ber sifat opsional dan dapat dihil an gkan . Pada cont oh yang dit am pilkan di at as, j ika boolean_ expr ession1 ber nil ai t rue, m ak a pr ogr am akan m engekseku si st at em ent 1 dan m elew at i pern yat aan yan g lain. Jika boolean _expr ession2 ber nil ai t r u e, m ak a pr ogr am akan m engekseku si st at em ent 2 dan m elewat i st at em ent 3.


(6)

Berikut ini contoh code st at em en t if- else- if

int grade = 68; if( grade > 90 ){

System.out.println("Very good!"); }

else if( grade > 60 ){

System.out.println("Very good!"); }

else{ }

System.out.println("Sorry you failed");

6 .2 . 4 Ke sa la ha n um um k e t ik a m e ng gun a k a n st a t e m e nt if - e lse :

1 . Kondisi pada st at em en t if t idak m engevalu asi nilai logika boolean. Cont ohn ya :

//SALAH

int number = 0; if( number ){

//some statements here }

Var iabel nu m ber ti dak m em iliki nilai Boolean .

2. Menggu nakan oper at or = sebagai operat or perban dingan yang seh ar usny a adalah oper at or = = . Cont ohn ya,

//SALAH

int number = 0; if( number = 0 ){

//Beberapa pernyataan }

Sehar usny a kode t er sebut dit ulis,

//BENAR

int number = 0; if( number == 0 ){

//beberapa pernyataan }


(7)

6 .2 . 5 Con t oh st a t e m e n t if - e lse - e lse if

public class Grade {

public static void main( String[] args ) {

double grade = 92.0; if( grade >= 90 ){

System.out.println( "Excellent!" ); }

else if( (grade < 90) && (grade >= 80)){ System.out.println("Good job!" ); }

else if( (grade < 80) && (grade >= 60)){ System.out.println("Study harder!" ); }

else{ } } }


(8)

6 .2 . 6 St a t e m e nt sw it ch

Car a lai n u ntu k m em bu at cabang ad al ah dengan m enggu nakan k at a kunci sw it ch . Swit ch mengkonstruksikan cabang untuk beberapa kondisi dari nilai.

Bent u k st at em en t swi t ch ,

switch( switch_expression ){ case case_selector1:

statement1; //

statement2; //block 1

. . . //

break; case case_selector2:

statement1; //

statement2; //block 2

. . . //

break; . . .

default:

}

statement1; //

statement2; //block n

. . . //

break;

swit ch_ expr ession adal ah ekspr esi in t e g e r at au k a ra k t e r dan case_ select or 1, case_select or 2 dan set er usnya ad alah kon st ant a u n i k d a r i nilai int eger at au k ar akt er .

Ket ika p er nyat aan swit ch dit em u kan pada pot on gan kode pr ogr am , j av a pertama kali akan m em er iksa swit ch _expr ession, dan m en u j u ke case yang ak an m eny am ak an nil ai y an g di m il i ki ol eh sw it ch _ ex p r essio n . Selan j ut n ya pr ogr am akan m en geksekusi per nyat aan pada dar i kode set elah case y an g dit em u kan sam p ai m enem ui per n yat aan br eak, selanj ut nya akan m en gabai kan per ny at aan yang lainnya hingga akh ir dari st ru kt u r dari per ny at aan swit ch.

Jika t idak di t em ui case yang cocok, m aka progr am akan m engek seku si blok default . Sebagai cat at an, bahw a bagian blok default adalah opsional . Sebu ah per nyat aan swit ch bisa j adi tidak m em iliki blok kode def ault .

CAT ATAN :

Tidak sep er t i pada pernyataan if, beber apa per ny at aan pada st r ukt ur per nyat aan swit ch akan dieksekusi t an pa m em er lukan t anda kur ung kur awal ({ } ) .

Ket i ka sebuah case p ad a per n yat aan swit ch m en em ui kecocok an , sem ua per ny at aan pad a case t er sebut akan dieksekusi. Tidak hanya dem ikian , per nyat aan lain y ang ber ada pada case y ang sesu ai juga akan dieksekusi.

Unt uk m enghindari pr ogr am m en geksekusi per ny at aan pada case ber ikut nya, kit a m enggunakan per n yat aan bre a k sebag ai per ny at aan akhir pada set iap blok case.


(9)

Gam bar 4: Flow chart St at em ent Swit ch

Pe t u nj u k Pe nu lisa n Progra m :

1 . Men en t ukan penggun aan per nyat aan if at au per n yat aan swit ch adalah sebuah keput usan pr ogr am m er . Pr ogr am m er dapat m en en t uk an p er n y at aan yang m an a yang akan dipakai ber dasar k an kem udah an m em baca pr ogr am dan fakt or- fakt or yang lain.

2. Per n yat aan if dapat digun akan u nt u k m em buat kepu t usan ber dasark an rent ang n ilai t er t ent u at au kondisi t er t en t u, sed an gkan pern yat aan swit ch m em buat k eput u san h an ya ber dasar k an nilai unik dar i t ipe in t eger at au kar akt er .


(10)

6 .2 . 7 Con t oh st a t e m e n t sw it ch

public class Grade {

public static void main( String[] args ) {

int grade = 92; switch(grade){ case 100:

System.out.println( "Excellent!" ); break;

case 90:

case 80:

default: } } }

System.out.println("Good job!" ); break;

System.out.println("Study harder!" ); break;


(11)

6 .3 St ru k t u r Kon t r ol Pe r u la nga n

St r u kt u r kont rol pengulangan adalah ber u pa pern yat aan dar i Java yang m engijinkan kit a un t uk m en geksekusi blok code ber ulan g- ulan g sesuai den gan j um lah t er t ent u yang diingin kan. Ada ti ga m acam j enis d a ri struktur kont rol pengul an gan yaitu while,

do-while, dan for - loops.

6 .3 . 1 w hile loop

Per nyat aan while loop adal ah per n yat aan at au blok per nyat aan yang diulang- ulan g sam pai m en capai kon disi yang cocok.

Bent u k per n yat aan while,

while( boolean_expression ){ statement1;

statement2; . . . }

Pernyat aan di dalam while loop akan diek sekusi berulan g- ulan g selam a kondisi boolean_ expr ession bernilai benar ( t r ue) .

Contoh, pada kode dibaw ah ini,

int i = 4;

while ( i > 0 ){

System.out.print(i); i--;

}

Contoh diat as ak an m en cet ak angk a 432 1 pad a lay ar . Per lu dicat at j i ka bagian i-- ; dihilangkan, ak an m en ghasilkan pengul an gan yan g t er u s m ener us ( in fin it e loo p) . Sehingga, ket ika m enggunakan while loop at au bent uk pen gulangan yang lain , past ikan An da m em beri kan per n yat aan y ang m em buat pengulangan ber hent i pada suat u kon disi.


(12)

Berikut ini adalah beber apa contoh while loop, Con t oh 1 :

int x = 0; while (x<10) {

System.out.println(x); x++;

}

Con t oh 2 :

//infinite loop while(true)

System.out.println(“hello”);

Con t oh 3 :

//no loops

// statement is not even executed while (false)


(13)

6 .3 . 2 do- w hile loop

Do- wh ile loop m irip den gan while- loop. Pernyat aan di dal am do- wh ile loop akan diek sekusi beber apa kali selam a kondisi ber nilai benar ( t ru e) .

Per bedaan an t ar a wh ile dan do- while loop adalah dim ana per n yat aan di dalam do- while loop akan di ekseku si sedikit nya sa t u k a li.

Bent u k per n yat aan do- while,

do{

statement1; statement2; . . .

}while( boolean_expression );

Per nyat aan di dal am do- while loop ak an diekseku si pert am a kali, dan ak an dievaluasi kondisi dar i boolean _expr ession. Ji ka nil ai pada boolean_ expr ession t er sebut ber nilai t r ue, per ny at aan di dalam do- while loop akan diekseku si lagi.

Berikut ini beber apa cont oh do- while loop: Con t oh 1 :

int x = 0; do

{

System.out.println(x); x++;

}while (x<10);

Contoh ini akan m em b er ikan ou t pu t 0123456 789 pada layar . Con t oh 2 :

//infinite loop do{

System.out.println(“hello”); } while (true);

Contoh di at as akan m elakukan pen gul an gan t er u s m ener us yang m enulis k a t a “ hello” pada layar .

Con t oh 3 :

//one loop

// statement is executed once do

System.out.println(“hello”); while (false);


(14)

Pa n du a n pe m rogra m a n :

1. Kesalah an pem r ogr am an y an g biasa t er j adi ket ika m en ggunakan do- while loop adalah lupa unt u k m en ulis t it ik kom a ( ; ) set elah ekspr esi while.

do{ ...

} while( boolean _expr ession ) / / -salah> t idak ada t it ik kom a( ; )

2. Seper t i pada while loop, past ik an do- while loop anda b er hent i pada suat u kondisi.

6 .3 . 3 f or loop

Per nyat aan for loop m em iliki kon disi ham pir m irip seper t i st r ukt ur pen gulan gan sebelu m n ya yait u m el akuk an pen gul an gan u n t u k m e n g eksekusi kode yan g sam a seb an yak j u m l ah yang t el ah dit ent u kan.

Bent u k dar i for loop,

for (InitializationExpression; LoopCondition; StepExpression){ statement1;

statement2; . . . }

dim ana,

I n it ia li za t io n Ex p re ssion – inisialisasi dari variabel loop.

Loo pCon dit ion - m em b an din gkan var iabel loop pada nilai bat as

t er t ent u

. St e p Ex p re ssion - m elakukan updat e pada var iabel loop. Berikut ini adalah con t oh dari for loop,

int i;

for( i = 0; i < 10; i++ ){ System.out.print(i); }

Pada con t oh ini, per nyat aan i = 0 m er upakan inisialisasi dar i vari abel. Sel an jut n ya, kondisi i< 10 diperi ksa. Jika kondisi bernilai t rue, pern yat aan di dalam for loop dieksekusi. Kem u di an , ekspr esi i+ + di ekseku si, lalu akan kem bali pada b agian pem er iksaan t er h adap kondi si i< 1 0 lagi. Kon disi ini akan dilaku kan ber ulang- ulang sam pai m en capai nilai yan g salah ( fal se) .

Contoh t adi, ad alah cont oh yan g sam a dar i while loop,

int i = 0;

while( i < 10 ){

System.out.print(i); i++;


(15)

6 .4 Pe rn ya t a a n Pe r ca ba nga n

Pernyat aan per cab an gan m en gij inkan ki t a unt u k m en gat ur alir an ekseku si progr am . Java m em ber ikan t iga bent u k per n yat aan per cab an gan: br eak, con tinu e dan r et u r n.

6 .4 . 1

P e r n y a t a a n b r e a k

Per nyat aan br eak m em iliki dua bent u k: t i dak berlabel ( u nlabeled) dan berl abel (labeled) . 6 .4 .1 .1 P e r n y a t a a n b r e a k t ida k be rla b e l ( u n la be le d)

Per nyat aan br eak t i dak b er l abel ( unlabeled) digun ak an un t uk m enghenti kan j a l an n y a p e r n y at a a n swit ch . S el ai n i t u p er n y a t a an b r ea k u n l a b el e d j u g a b i sa d i g u n ak an un tuk m enghenti kan per nyat aan- per ny at aan for, while at au do- while loop.

Contohnya,

String names[] = {"Beah", "Bianca", "Lance", "Belle", "Nico", "Yza", "Gem", "Ethan"}; String searchName = "Yza";

boolean foundName = false; for( int i=0; i< names.length; i++ ){

if( names[i].equals( searchName )){ foundName = true;

break;

} }

if( foundName ){

System.out.println( searchName + " found!" ); }

else{ }

System.out.println( searchName + " not found." );

Pada cont oh diat as, j ika st r ing “ Yza” di t em ukan , pengulangan pad a for loop akan dihentikan dan akan dilan jut kan ke pernyat aan ber ikutn ya y ang t er let ak set elah per n yat aan for.


(16)

6 .4 . 1 .2 P e r n y a t a a n b re a k be r la be l

Bent u k label dari per n yat aan br eak ak an m en gh en tikan per nyat aan d i luarnya, di m ana sebelu m n ya h ar us diberikan label yan g sudah di spesifikasikan pada pr ogram pada per ny at aan br eak. Pr ogr am ber ikut ini akan m encar i nil ai dal am ar r ay du a dim en si . Ter dapat du a pengulangan ber sar an g ( nest ed loop) . Ket ika sebu ah nilai di t em uk an , br ea akan m en ghent i kan per nyat aan y an g di ber i label sear ch Label yang t er let ak di luar per ny at aan for loop.

int[][] numbers = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int searchNum = 5;

boolean foundNum = false;

searchLabel:

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

for( int j=0; j<numbers[i].length; j++ ){ if( searchNum == numbers[i][j] ){

foundNum = true;

break searchLabel;

} }

}

if( foundNum ){

System.out.println( searchNum + " found!" ); }

else{ }

System.out.println( searchNum + " not found!" );

Per nyat aan br eak m enghentikan p e r n y at a an yang diberi label; dan tidak m en j alan kan alir an k o n t r o l a p ap u n pada l abel. Alir an kont r ol pada label akan diberikan secar a ot om at is pad a per n yat aan y an g t er let ak dibawah l abel.


(17)

6 .4 . 2 Pe r ny a t a a n Cont in ue

Per nyat aan con t inu e m em iliki dua bent uk: b er label dan t idak ber label. An da dapat m en ggu nakan per nyat aan con t in ue u ntuk m elanj u t kan pengulangan yan g sedang dij al an kan oleh per nyat aan for , wh ile, at au do- wh ile loop.

6 .4 .2 .1 Pe rn ya t a a n con t in u e t ida k b e rla be l ( u n la be le d)

Bent u k per n yat aan con tinu e t idak ber label ( unlabeled) ak an m elewat i bagian pernyat aan set elah per nyat aan ini di tuliskan dan m em er iksa ek sepr esi logika (boolean) yang m en gkont r ol pen gulan gan. Ji ka ekspr esi logika ( boolean) m asih ber nilai t ru e, m ak a pengul angan t et ap dilanj u t kan. Pada dasar nya pern yat aan ini akan m elanj u t kan bagian pengul angan pada per nyat aan loop.

Berikut ini adalah con toh dar i penghi tungan angk a dari “ Beah” dal am suat u ar ray.

String names[] = {"Beah", "Bianca", "Lance", "Beah"}; int count = 0;

for( int i=0; i<names.length; i++ ){ if( !names[i].equals("Beah") ){

continue; //skip next statement }

count++; }

System.out.println("There are " + count + " Beahs in the list");

6 .4 .2 .2 La be le d con t in ue st a t e m e n t

Bent u k p er n y at aan co n t i n u e b er label ( lab el ed) akan m elanj ut k an pen gul an gan yan g sed an g t er j adi dan dilanju ti ke pen gul an gan ber ikut nya dari per nyat aan pen gulangan yan g diberi label ( t anda) .

outerLoop:

for( int i=0; i<5; i++ ){ for( int j=0; j<5; j++ ){

System.out.println("Inside for(j) loop"); //message1 if( j == 2 ) continue outerLoop;

}

System.out.println("Inside for(i) loop"); //message2 }

Pada cont oh ini, bagian m essage2 t idak p er n ah ak an di cet ak, kar en a per ny at aan con tinu e akan m elew at i pengulangan .


(18)

6 .4 . 3 Pe r ny a t a a n Re t u r n

Per nyat aan ret ur n digunakan untuk keluar dar i sebu ah m et h od. Per n yat aan r et ur n m em iliki du a ben t uk: m em b er i kan sebuah nilai, dan tidak m em ber ikan nilai. Un tuk m em b erikan sebu ah nilai, cukup beri kan nilai ( at au ek spr esi yan g m enghasilkan sebuah nilai) sesudah kat a r et ur n . Contohnya,

at au

return ++count; return "Hello";

Tipe dat a dari nil ai yan g diberikan h ar u s sam a dengan tipe dari m et hod yan g di buat . Ket ika sebuah m et hod void dideklar iskan, gunakan ben t uk r et urn yang ti dak m em berikan nil ai. Cont ohnya,

return;

Ki t a ak an m em b ah as lebih lan j ut t ent ang per n yat aan r et ur n ket ika m em pelaj ar i t ent ang m et h od.


(19)

6 .5 La t ih a n

6 .5 . 1 N ila i

Am bil t iga nilai ujian dari user dan hitung nilai r at a- r at a dar i nil ai t er sebu t . Berikan out put r at a- r at a dar i tiga uji an. Berikan j uga sm iley face pad a out pu t jika nilai r at a- r at a lebih besar at au sam a den gan 6 0, selain it u beri out put : - ( .

1. Gunakan Buffer edReader un t uk m endap at inpu t dari user , dan Syst em .ou t un tuk out put h asilnya.

2. Gunakan JOpt ionPane un tuk m en dapat input dar i user dan ou t pu t hasilnya.

6 .5 . 2 M e m ba ca Bila nga n

Am bil sebu ah angka seb ag ai in pu t dar i user , dan out putnya b er upa k at a yan g sesu ai dengan angka. Angka yang dim asukkan ant ar a 1- 10 . Jika user m em asuk kan nilai yang t idak sesu ai berikan ou t pu t “ I nvalid num ber ” .

1. Gunakan st at em en t if- else u ntu k m en yelesaikan 2. Gunakan st at em en t swit ch un tuk m en yelesaikan

6 .5 . 3 Ce t a k Se r a t us Ka li

Bu at sebuah pr ogr am yang m en cet ak nam a Anda selam a ser at u s kali . Buat t i ga ver si progr am ini m enggunakan while loop, do while dan for - loop.

6 .5 . 4 Pe rpa ngk a t a n

Hit ung pan gkat sebuah nilai ber dasar kan angk a dan nilai pan gkat n ya. Buat ti ga ver si dar i progr am ini m en ggu nakan while loop, do- whil e dan for -loop.


(1)

Pa n du a n pe m rogra m a n :

1. Kesalah an pem r ogr am an y an g biasa t er j adi ket ika m en ggunakan do- while loop adalah lupa unt u k m en ulis t it ik kom a ( ; ) set elah ekspr esi while.

do{ ...

} while( boolean _expr ession ) / / - salah> t idak ada t it ik kom a( ; )

2. Seper t i pada while loop, past ik an do- while loop anda b er hent i pada suat u kondisi.

6 .3 . 3 f or loop

Per nyat aan for loop m em iliki kon disi ham pir m irip seper t i st r ukt ur pen gulan gan sebelu m n ya yait u m el akuk an pen gul an gan u n t u k m e n g eksekusi kode yan g sam a seb an yak j u m l ah yang t el ah dit ent u kan.

Bent u k dar i for loop,

for (InitializationExpression; LoopCondition; StepExpression){ statement1;

statement2; . . . }

dim ana,

I n it ia li za t io n Ex p re ssion – inisialisasi dari variabel loop.

Loo pCon dit ion - m em b an din gkan var iabel loop pada nilai bat as t er t ent u

. St e p Ex p re ssion - m elakukan updat e pada var iabel loop. Berikut ini adalah con t oh dari for loop,

int i;

for( i = 0; i < 10; i++ ){ System.out.print(i); }

Pada con t oh ini, per nyat aan i = 0 m er upakan inisialisasi dar i vari abel. Sel an jut n ya, kondisi i< 10 diperi ksa. Jika kondisi bernilai t rue, pern yat aan di dalam for loop dieksekusi. Kem u di an , ekspr esi i+ + di ekseku si, lalu akan kem bali pada b agian pem er iksaan t er h adap kondi si i< 1 0 lagi. Kon disi ini akan dilaku kan ber ulang- ulang sam pai m en capai nilai yan g salah ( fal se) .


(2)

6 .4 Pe rn ya t a a n Pe r ca ba nga n

Pernyat aan per cab an gan m en gij inkan ki t a unt u k m en gat ur alir an ekseku si progr am . Java m em ber ikan t iga bent u k per n yat aan per cab an gan: br eak, con tinu e dan r et u r n.

6 .4 . 1

P e r n y a t a a n b r e a k

Per nyat aan br eak m em iliki dua bent u k: t i dak berlabel ( u nlabeled) dan berl abel (labeled) . 6 .4 .1 .1 P e r n y a t a a n b r e a k t ida k be rla b e l ( u n la be le d)

Per nyat aan br eak t i dak b er l abel ( unlabeled) digun ak an un t uk m enghenti kan j a l an n y a p e r n y at a a n swit ch . S el ai n i t u p er n y a t a an b r ea k u n l a b el e d j u g a b i sa d i g u n ak an un tuk m enghenti kan per nyat aan- per ny at aan for, while at au do- while loop.

Contohnya,

String names[] = {"Beah", "Bianca", "Lance", "Belle", "Nico", "Yza", "Gem", "Ethan"}; String searchName = "Yza";

boolean foundName = false; for( int i=0; i< names.length; i++ ){

if( names[i].equals( searchName )){ foundName = true;

break;

} }

if( foundName ){

System.out.println( searchName + " found!" ); }

else{ }

System.out.println( searchName + " not found." );

Pada cont oh diat as, j ika st r ing “ Yza” di t em ukan , pengulangan pad a for loop akan dihentikan dan akan dilan jut kan ke pernyat aan ber ikutn ya y ang t er let ak set elah per n yat aan for.


(3)

6 .4 . 1 .2 P e r n y a t a a n b re a k be r la be l

Bent u k label dari per n yat aan br eak ak an m en gh en tikan per nyat aan d i luarnya, di m ana sebelu m n ya h ar us diberikan label yan g sudah di spesifikasikan pada pr ogram pada per ny at aan br eak. Pr ogr am ber ikut ini akan m encar i nil ai dal am ar r ay du a dim en si . Ter dapat du a pengulangan ber sar an g ( nest ed loop) . Ket ika sebu ah nilai di t em uk an , br ea akan m en ghent i kan per nyat aan y an g di ber i label sear ch Label yang t er let ak di luar per ny at aan for loop.

int[][] numbers = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int searchNum = 5;

boolean foundNum = false;

searchLabel:

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

for( int j=0; j<numbers[i].length; j++ ){ if( searchNum == numbers[i][j] ){

foundNum = true;

break searchLabel;

} }

}

if( foundNum ){

System.out.println( searchNum + " found!" ); }

else{ }

System.out.println( searchNum + " not found!" );

Per nyat aan br eak m enghentikan p e r n y at a an yang diberi label; dan tidak m en j alan kan alir an k o n t r o l a p ap u n pada l abel. Alir an kont r ol pada label akan diberikan secar a ot om at is pad a per n yat aan y an g t er let ak dibawah l abel.


(4)

6 .4 . 2 Pe r ny a t a a n Cont in ue

Per nyat aan con t inu e m em iliki dua bent uk: b er label dan t idak ber label. An da dapat m en ggu nakan per nyat aan con t in ue u ntuk m elanj u t kan pengulangan yan g sedang dij al an kan oleh per nyat aan for , wh ile, at au do- wh ile loop.

6 .4 .2 .1 Pe rn ya t a a n con t in u e t ida k b e rla be l ( u n la be le d)

Bent u k per n yat aan con tinu e t idak ber label ( unlabeled) ak an m elewat i bagian pernyat aan set elah per nyat aan ini di tuliskan dan m em er iksa ek sepr esi logika (boolean) yang m en gkont r ol pen gulan gan. Ji ka ekspr esi logika ( boolean) m asih ber nilai t ru e, m ak a pengul angan t et ap dilanj u t kan. Pada dasar nya pern yat aan ini akan m elanj u t kan bagian pengul angan pada per nyat aan loop.

Berikut ini adalah con toh dar i penghi tungan angk a dari “ Beah” dal am suat u ar ray. String names[] = {"Beah", "Bianca", "Lance", "Beah"}; int count = 0;

for( int i=0; i<names.length; i++ ){ if( !names[i].equals("Beah") ){

continue; //skip next statement }

count++; }

System.out.println("There are " + count + " Beahs in the list");

6 .4 .2 .2 La be le d con t in ue st a t e m e n t

Bent u k p er n y at aan co n t i n u e b er label ( lab el ed) akan m elanj ut k an pen gul an gan yan g sed an g t er j adi dan dilanju ti ke pen gul an gan ber ikut nya dari per nyat aan pen gulangan yan g diberi label ( t anda) .

outerLoop:

for( int i=0; i<5; i++ ){ for( int j=0; j<5; j++ ){

System.out.println("Inside for(j) loop"); //message1 if( j == 2 ) continue outerLoop;

}

System.out.println("Inside for(i) loop"); //message2 }

Pada cont oh ini, bagian m essage2 t idak p er n ah ak an di cet ak, kar en a per ny at aan con tinu e akan m elew at i pengulangan .


(5)

6 .4 . 3 Pe r ny a t a a n Re t u r n

Per nyat aan ret ur n digunakan untuk keluar dar i sebu ah m et h od. Per n yat aan r et ur n m em iliki du a ben t uk: m em b er i kan sebuah nilai, dan tidak m em ber ikan nilai. Un tuk m em b erikan sebu ah nilai, cukup beri kan nilai ( at au ek spr esi yan g m enghasilkan sebuah nilai) sesudah kat a r et ur n . Contohnya,

at au

return ++count; return "Hello";

Tipe dat a dari nil ai yan g diberikan h ar u s sam a dengan tipe dari m et hod yan g di buat . Ket ika sebuah m et hod void dideklar iskan, gunakan ben t uk r et urn yang ti dak m em berikan nil ai. Cont ohnya,

return;

Ki t a ak an m em b ah as lebih lan j ut t ent ang per n yat aan r et ur n ket ika m em pelaj ar i t ent ang m et h od.


(6)

6 .5 La t ih a n

6 .5 . 1 N ila i

Am bil t iga nilai ujian dari user dan hitung nilai r at a- r at a dar i nil ai t er sebu t . Berikan out put r at a- r at a dar i tiga uji an. Berikan j uga sm iley face pad a out pu t jika nilai r at a- r at a lebih besar at au sam a den gan 6 0, selain it u beri out put : - ( .

1. Gunakan Buffer edReader un t uk m endap at inpu t dari user , dan Syst em .ou t un tuk out put h asilnya.

2. Gunakan JOpt ionPane un tuk m en dapat input dar i user dan ou t pu t hasilnya.

6 .5 . 2 M e m ba ca Bila nga n

Am bil sebu ah angka seb ag ai in pu t dar i user , dan out putnya b er upa k at a yan g sesu ai dengan angka. Angka yang dim asukkan ant ar a 1- 10 . Jika user m em asuk kan nilai yang t idak sesu ai berikan ou t pu t “ I nvalid num ber ” .

1. Gunakan st at em en t if- else u ntu k m en yelesaikan 2. Gunakan st at em en t swit ch un tuk m en yelesaikan

6 .5 . 3 Ce t a k Se r a t us Ka li

Bu at sebuah pr ogr am yang m en cet ak nam a Anda selam a ser at u s kali . Buat t i ga ver si progr am ini m enggunakan while loop, do while dan for - loop.

6 .5 . 4 Pe rpa ngk a t a n

Hit ung pan gkat sebuah nilai ber dasar kan angk a dan nilai pan gkat n ya. Buat ti ga ver si dar i progr am ini m en ggu nakan while loop, do- whil e dan for -loop.