• Tidak ada hasil yang ditemukan

BAB 6 Struktur Kontrol - JENI Intro1 Bab06 Struktur Kontrol

N/A
N/A
Protected

Academic year: 2018

Membagikan "BAB 6 Struktur Kontrol - JENI Intro1 Bab06 Struktur Kontrol"

Copied!
19
0
0

Teks penuh

(1)

BAB 6

St r u k t u r Kon t r ol

6 .1 Tu j u a n

Pada bab sebelum nya, kit a sudah m endapat kan cont ah dari program sequent ial, dim ana st at em ent dieksekusi set elah st at em ent sebelum nya dengan urut an t ert ent u. Pada bagian ini, kit a m em pelaj ari t ent ang st rukt ur kont rol yang bert uj uan agar kit a dapat m enent ukan urut an st at em ent yang akan dieksekusi.

Pada akhir bab, siswa diharapkan m am pu:

• Menggunakan st rukt ur kont rol keput usan ( if, else, sw it ch) yang digunakan unt uk

m em ilih blok kode yang akan dieksekusi

• Menggunakan st rukt ur kont rol pengulangan ( w hile, do- w hile, for) yang digunakan unt uk m elakukan pengulangan pada blok kode yang akan dieksekusi

• Menggunakan st at em ent percabangan ( break, cont inue, ret urn) yang digunakan

unt uk m engat ur redirect ion dari program

6 .2 St r u k t u r Kon t r ol Ke pu t u sa n

St rukt ur kont rol keput usan adalah st at em ent dari Java yang m engij inkan user unt uk m em ilih dan m engeksekusi blok kode dan m engabaikan blok kode yang lain.

(2)

Gam bar 1: Flow chart St at em ent I f

dim ana, boolean_expression adalah sebuah persyarat an boolean (boolean st at em ent) at au boolean variabel.

Berikut ini adalah cont oh code st at em ent 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 n j u k Pe n u lisa n Pr ogr a m :

1. Boole a n _ e x pr e ssion pada st at em ent harus m erupakan nilai boolean.Hal ini berart i persyarat an harus bernilai t r ue at au fa lse.

2. Masukkan st at em ent di dalam blok if. Cont ohnya, if( boolean_expression ) {

(3)

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

St at em ent if- else digunakan apabila kit a ingin m engeksekusi sebuah st at em ent dengan kondisi t rue dan st at em ent yang lain dengan kondisi false.

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

(4)

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

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

1. Unt uk m enghindari kebingungan, selalu let akkan st at em ent di dalam blok if- else di dalam t anda { } ,

2. Anda dapat m em iliki blok if- else yang bersarang. I ni berart i anda dapat m em iliki blok if- else yang lain di dalam blok if- else. Cont ohnya,

if( boolean_expression ) {

if( boolean_expression ) {

. . .

} } else{

. . .

(5)

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

St at em ent pada bagian else dar i blok if- else dapat m enj adi st rukt ur if- else y ang lain. St rukt ur sepert i ini m engij inkan kit a unt uk m em buat seleksi persyarat an yang lebih kom pleks.

Bent uk st at em ent if- else if,

if( boolean_expression1 ) statement1;

else if( boolean_expression2 ) statement2;

else

statement3;

Bisa anda cat at anda dapat m em iliki banyak blok else- if sesudah st at em ent if. Blok else bersifat opt ional dan dapat dihilangkan. Pada cont oh di bawah at as, j ika boolean_ex pression1 bernilai t rue, m aka program akan m engeksekusi st at em ent 1 dan m elew at i st at em ent yang lain. Jika boolean_expression2 bernilai t rue, m aka progr am akan m engeksekusi st at em ent 2 dan m elewat i st at em ent 3.

(6)

Berikut ini cont oh code st at em ent if- else- if

1. Kondisi pada st at em ent if bukan m erupakan nilai boolean. Cont ohnya,

//BENAR

int number = 0; if( number ){

//some statements here }

Variabel num ber t idak m em iliki nilai Boolean.

2. Using = inst ead of = = for com parison. For exam ple,

3. Menggunakan = daripada = = unt uk operat or perbandingan. Cont ohnya,

//SALAH

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

//Statement Selanjutnya }

Seharusnya code t ersebut dit ulis,

(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{

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

(8)

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

Cara lain unt uk m em buat percabangan adalah dengan m enggunakan kat a kunci sw it ch. Dengan m enggunakan sw it ch kit a bisa m elakukan percabangan dengan persyarat an yang beragam . case_select or1, case_select or2 dan set erusnya adalah konst ant a nilai int eger yang unique ( unik) .

Ket ika st at em ent swit ch dit em ukan, pert am a kali Java m em eriksa swit ch_expression, dan m eloncat ke case dan m encocokkan nilai yang sam a dengan persyarat annya. Program m engeksekusi st at em ent dari awal sam pai m enem ui st at em ent break, dan m elew at i st at em ent yang lain sam pai akhir st rukt ur sw it ch.

Jika t idak dit em ui case yang cocok, m aka program akan m engeksekusi blok default . Bisa anda cat at bahwa blok default adalah opt ional. Sebuah st at em ent swit ch bisa t idak m em iliki blok default .

CATATAN :

• Tidak sepert i st at em ent if, pada st rukt ur sw it ch st at em ent dieksekusi t anpa m em erlukan t anda kurung kuraw al ({ }) .

• Ket ika sebuah case pada st at em ent sw it ch m enem ui kecocokan, sem ua st at em ent pada case t ersebut akan dieksekusi. Tidak hanya dem ikian, st at em ent lain yang berada pada case yang cocok j uga dieksekusi.

(9)

Gam bar 4: Flow chart St at em ent Sw it ch

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

1. Menent ukan penggunaan st at em ent if at au st at em ent swit ch adalah sebuah keput usan. Anda dapat m enent ukan yang m ana yang akan dipakai berdasarkan kem udahan m em baca program dan fakt or- fakt or yang lain.

(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:

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

case 80:

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

default:

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

(11)

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

St rukt ur kont rol pengulangan adalah st at em ent dari Java dim ana kit a bisa m engeksekusi blok code berulang- ulang dalam kurun nilai t ert ent u. Ada t iga m acam j enis st rukt ur kont rol pengulangan yait u while, do- w hile, dan for- loops.

6 .3 .1 w h ile loop

St at em ent while loop adalah st at em ent at au blok st at em ent yang diulang- ulang sam pai m encapai kondisi yang cocok.

Bent uk st at em ent while,

while( boolean_expression ){ statement1; statement2;

. . . }

St at em ent di dalam w hile loop akan dieksekusi berulang- ulang selam a

boolean_expression bernilai t rue. Cont oh, pada code dibawah ini,

int i = 4;

while ( i > 0 ){

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

}

(12)

Berikut ini adalah beberapa cont oh w hile 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 h ile loop

Do- while loop m irip dengan w hile- loop. St at em ent di dalam do- while loop akan dieksekusi beberapa kali selam a k ondisi bernilai t rue.

Perbedaan ant ara while dan do- while loop adalah dim ana st at em ent di dalam do- while loop dieksekusi sedikit nya sa t u k a li.

St at em ent di dalam do- while loop akan dieksekusi pert am a kali, dan dilakukan pengecekan kondisi dari boolean_expression. Jika nilai t ersebut belum m encapai nilai yang diinginkan, st at em ent akan dieksekusi lagi.

Berikut ini beberapa cont oh do- w hile loop:

Cont oh ini akan m em berikan out put 0123456789 pada layar.

Con t oh 2 :

//infinite loop do{

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

Cont oh di at as akan m elakukan pengulangan yang t idak berhent i unt uk m enulis “ 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 r ogr a m a n :

1. Kesalahan pem rogram an ket ika m enggunakan do- while loop adalah lupa unt uk m enulis t it ik kom a ( ; ) set elah ekspresi while.

Sepert i pada st rukt ur pengulangan sebelum nya yait u m elakukan pengulangan eksekusi code beberapa kali.

Bent uk dari for loop,

for (InitializationExpression; LoopCondition; StepExpression){ statement1;

Berikut ini adalah cont oh dari for loop,

int i;

for( i = 0; i < 10; i++ ){

System.out.print(i); }

Pada cont oh ini, st at em ent i= 0 m erupakan inisialisasi dari variabel. Selanj ut nya, kondisi i< 10 diperiksa. Jika kondisi bernilai t rue, st at em ent di dalam for loop diek sekusi. Kem udian, st at em ent i+ + dieksekusi, dan dilakukan pengecekan kondisi. Kondisi ini akan dilakukan berulang- ulang sam pai m encapai nilai yang salah ( false) .

(15)

6 .4 Br a n ch in g St a t e m e n t s

Branching st at em ent s m engij inkan kit a unt uk m engat ur j alannya eksekusi program . Java m em berikan t iga bent uk branching st at em ent s: break, cont inue dan ret urn.

6 .4 .1 br e a k st a t e m e n t

St at em ent break m em ilik i dua bent uk: unlabeled dan labeled.

6 .4 .1 .1 Un la be le d br e a k st a t e m e n t

Unlabeled m enghent ikan j alannya st at em ent swit ch. Anda bisa j uga m enggunakan bent uk unlabeled unt uk m enghent ikan for, w hile at au do- w hile loop.

Cont ohnya,

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." ); }

(16)

6 .4 .1 .2 La be le d br e a k st a t e m e n t

Bent uk labeled form dari st at em ent break akan m enghent ikan st at em ent luar, dim ana diident ifikasikan berupa label pada st at em ent break. Program ber ikut ini akan m encari nilai dalam array dua dim ensi. Terdapat dua pengulangan bersarang ( nest ed loop) . Ket ika sebuah nilai dit em ukan, labeled break akan m enghent ikan st at em ent yang diberi label searchLabel, dim ana label ini berada di luar.

int[][] numbers = {{1, 2, 3},

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

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

foundNum = true;

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

else{

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

(17)

6 .4 .2 Con t in u e st a t e m e n t

St at em ent cont inue m em iliki dua bent uk: unlabeled dan labeled. Anda dapat m enggunakan st at em ent cont inue unt uk m elew at i pengulangan dari for, while, at au do-w hile loop yang sedang berj alan.

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

Bent uk unlabeled akan m elew at i akhir st at em ent pada bagian yang dalam dan m em eriksa boolean ex pression yang m engkont rol loop, pada dasarnya akan m elewat i bagian pengulangan pada loop.

Berikut ini adalah cont oh dari penghit ungan angka dari “ Beah” dalam suat u array.

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 u e st a t e m e n t

Bent uk labeled akan m elanj ut kan sebuah st at em ent dengan m elewat i pengulangan yang sedang berj alan dari loop t erluar yang diberi label ( t anda) .

(18)

6 .4 .3 Re t u r n st a t e m e n t

St at em ent ret urn digunakan unt uk keluar dari sebuah fungsi ( m et hod) . St at em ent ret urn m em ilik i dua bent uk: m enggunakan sebuah nilai, dan t idak m em berikan nilai.

Unt uk m em berikan sebuah nilai, cukup berikan nilai ( at au ekspresi yang m enghasilkan sebuah nilai) sesudah ret urn. Cont ohnya,

return ++count;

at au

return "Hello";

Tipe dat a dari nilai yang diberikan harus sam a dengan t ipe dari fungsi yang dideklarasik an. Ket ika sebuah m et hod void dideklariskan, gunakan bent uk ret urn yang t idak m em berikan nilai. Cont ohnya,

return;

(19)

6 .5 La t ih a n

6 .5 .1 N ila i

Am bil t iga nilai uj ian dari user dan hit ung nilai rat a- r at a dari nilai t ersebut . Ber ikan out put rat a- rat a dari t iga uj ian. Berikan j uga sm iley face pada out put j ika nilai rat a- rat a lebih besar at au sam a dengan 60, selain it u beri out put : - ( .

1. Gunakan BufferedReader unt uk m endapat input dari user, dan Syst em .out unt uk out put hasilnya.

2. Gunakan JOpt ionPane unt uk m endapat input dari user dan out put hasilnya.

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

Am bil sebuah angka sebagai input dari user , dan out put nya berupa kat a yang sesuai dengan angka. Angka yang dim asukkan ant ara 1- 10. Jika user m em asukkan nilai yang t idak sesuai berikan out put “ I nvalid num ber” .

1. Gunakan st at em ent if- else unt uk m enyelesaikan 2. Gunakan st at em ent swit ch unt uk m enyelesaikan

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

Buat sebuah program yang m encet ak nam a Anda selam a serat us kali. Buat t iga versi program ini m enggunakan w hile loop, do w hile dan for- loop.

6 .5 .4 Pe r pa n gk a t a n

Gambar

Gambar 1:  Flowchart Statement If
Gambar 2:  Flowchart Statement If-Else
Gambar 3:  Flowchart Statement If-Else-If
Gambar 4:  Flowchart Statement Switch

Referensi

Dokumen terkait

[r]

[r]

Gambar 4.2 Grafik pengaruh kadar daun sukun terhadap modulus lastisitas tarik komposit PE/daun

Menimbang : bahwa untuk melaksanakan ketentuan pasal 13 Peraturan Menteri Pendidikan dan Kebudayaan Nomor 6 Tahun 2016 tentang Pedoman Umum Penyaluran Bantuan Pemerintah

Sekolah/ m adrasah m engem bangkan perangkat pem belaj aran sesuai dengan t ingkat kom pet ensi dan ruang lingkup m at er i pem belaj aran pada set iap t ingkat kelas..

Migrasi adalah aktivasi pengalihan jalur telepon dari kabel tembaga ke fiber optik menggunakan perangkat aktif berupa modem/terminal optik (ONT) yang merupakan ujung dari

Gedung H, Kampus Sekaran-Gunungpati, Semarang 50229 Telepon: (024)

- Alat dan wadah yang digunakan untuk panen dalam keadaan baik, bersih, bebas, dari kontaminasi, bukan bekas tempat pupuk atau pestisida meskipun sudah dibersihkan.