JENI Intro1 Bab06 Struktur Kontrol
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 kPer 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 kPer 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.