• 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

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

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

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

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

[r]

[r]