04 Decision and Looping.pdf

18
18/03/2013 1 Decision and Looping Konstruksi Pengambilan Keputusan Konstruksi if Konstruksi if merupakan bentuk konstruksi pengambilan keputusan dengan 2 kemungkinan keputusan. Kemungkinan- kemungkinan keputusan itu akan dipilih berdasarkan suatu kondisi yang diperiksa. Kondisi tersebut merupakan suatu ekspresi boolean / boolean expression. Sintaks dasarnya: if ( boolean_expression ){ code block; } 2

Transcript of 04 Decision and Looping.pdf

Page 1: 04 Decision and Looping.pdf

18/03/2013

1

Decision and

Looping

Konstruksi Pengambilan Keputusan

Konstruksi if

Konstruksi if merupakan bentuk konstruksi pengambilan

keputusan dengan 2 kemungkinan keputusan. Kemungkinan-

kemungkinan keputusan itu akan dipilih berdasarkan suatu

kondisi yang diperiksa. Kondisi tersebut merupakan suatu

ekspresi boolean / boolean expression.

Sintaks dasarnya:

if ( boolean_expression ){

code block;

}

2

Page 2: 04 Decision and Looping.pdf

18/03/2013

2

3

Contoh:

public class HasilUjian{

public static void main(String[] args){

int nilai1 = 8;

int nilai2 = 7;

int nilai3 = 5;

float rata_rata = (float)(nilai1 + nilai2 + nilai3)/3;

if(rata_rata<5){

System.out.println(“Tidak Lulus”);

}

System.out.println(“Nilai Rata-rata = ”+rata_rata);

}

}

4

Output :

Page 3: 04 Decision and Looping.pdf

18/03/2013

3

Konstruksi if..else..

Konstruksi if / else digunakan sebagai konstruksi

pengambilan keputusan yang memiliki beberapa

kemungkinan keputusan. Sintak dasarnya adalah seperti

berikut :if ( boolean_expression_1 ){

code block 1;

} else if ( boolean_expression_2 ){

code block 2;

}

.

.

.

else{

code block n;

} 5

6

Page 4: 04 Decision and Looping.pdf

18/03/2013

4

Contoh

public class HasilUjian{

public static void main(String[] args){

int nilai1 = 8;

int nilai2 = 7;

int nilai3 = 5;

float rata_rata = (float)(nilai1 + nilai2 + nilai3)/3;

if(rata_rata<5){

System.out.println(“Tidak Lulus”);

} else if ((rata_rata>=5) && (rata_rata<6)){

System.out.println(“Harus ikut ujian perbaikan”);

} else { // rata_rata >= 6

System.out.println(“Lulus”);

}

System.out.println(“Nilai Rata-rata = ” + rata_rata);

}

}

7

Output :

Konstruksi Switch

Konstruksi switch adalah konstruksi pengambilan keputusan

yang mengevaluasi kemungkinan-kemungkinan nilai dari

variabel yang dievaluasi. Bentuk umum syntax konstruksi

switch adalah sebagai berikut:switch( variabel ) {

case nilai_literal_1 :

code_block_1;

break;

case nilai_literal_2 :

code_block_2;

break;

.

.

default:

code_block_default;

break;

}8

Page 5: 04 Decision and Looping.pdf

18/03/2013

5

Keterangan:

• switch adalah kata kunci yang mengindikasikan dimulainya konstruksiswitch;

• variabel adalah variabel yang nilainya akan dievaluasi. variabel hanyadapat bertipe-data char, byte, short, atau int;

• case adalah kata kunci yang mengindikasikan sebuah nilai yang diuji. Kombinasi kata kunci case dan nilai_literal disebut case label;

• nilai_literal_k adalah nilai yang mungkin akan menjadi nilai variabel. nilai_literal_k tidak dapat berupa variabel, ekspresi, atau method, tetapidapat merupakan konstanta. k = {default, 1,2,...,n };

• break adalah pernyataan yang sifatnya opsional, yang mengakibatkanaliran program keluar dari blok switch. Jika setelah code_block_k tidakterdapat pernyataan break, maka aliran program akan masuk ke case berikutnya. k = {default, 1,2,3,...,n};

• default adalah kata kunci yang mengindikasikan code_block_default

akan dieksekusi jika semua case yang diuji tidak sesuai dengan nilaivariabel .

9

Contoh:public class HasilUjian{

public static void main(String[] args){int nilai1 = 8;int nilai2 = 7;int nilai3 = 5;float rata_rata = (float)(nilai1 + nilai2 + nilai3)/3;

switch((int)rata_rata){case 0 :case 1 :case 2 :case 3 :case 4 :System.out.println(“Tidak Lulus”);break;case 5 :System.out.println(“Ikut ujian perbaikan”);break;default :System.out.println(“Lulus”);break;

}System.out.println(“Nilai Rata-rata = ” + rata_rata);

} }

10Output :

Page 6: 04 Decision and Looping.pdf

18/03/2013

6

Konsep Perulangan

• Sebuah proses di dalam program yang akan mengulang satu

atau beberapa statement terus-menerus hingga sampai pada

kondisi berhenti.

Bentuk Perulangan di Java

for

while

do-while

Page 7: 04 Decision and Looping.pdf

18/03/2013

7

Pengulangan : for

• Umumnya digunakan pada pengulangan yang jumlah

iterasinya sudah pasti atau sudah diketahui sebelumnya.

• Formula :

for (inisialisasi; kondisi; iterasi) {

//statement yang akan diulang

}

Alur Kerja forinisialisasi

kondisi

Statement yang diulang

iterasi

Start

End

true

false

Page 8: 04 Decision and Looping.pdf

18/03/2013

8

Contoh-contoh “for”

1. Program untuk menuliskan teks “Java Programming”

sebanyak 10 kali.class DemoFor1 {

public static void main (String[] args) {

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

System.out.println("Java");

}

}

}

class DemoFor1 {

public static void main (String[] args) {

for (int i=10; i>0; i--) {

System.out.println("Java");

}

}

}

2. Program untuk menjumlahkan 5 bil. positif pertama

class DemoFor3 {

public static void main(String[] args) {

int n = 5; // 5 bilangan positif pertama

int hasil = 0;

for (int i=1; i<=n; i++) {

hasil = hasil + i;

if (i != n) {

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

} else {

System.out.print("= ");

}

}

System.out.println(hasil);

}

}

Output :

Page 9: 04 Decision and Looping.pdf

18/03/2013

9

3. Program untuk menentukan apakah sebuah integer termasuk

prima atau tidak.

class DemoFor4 {

public static void main(String[] args) {

int bilangan = 7;

boolean prima = true;

for (int i=2; i <= (bilangan/2); i++) {

if ((bilangan % i) == 0) {

prima = false;

break; // menghentikan pengulangan

}

}

if (prima) {

System.out.println(bilangan + " merupakan bilangan prima");

} else {

System.out.println(bilangan + " bukan bilangan prima");

}

}

}

Output :

Penggunaan koma dalam “for”• Perhatikan program berikut :

class DemoFor5 {

public static void main(String[] args) {

int j=4;

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

System.out.println("Nilai i: " + i);

System.out.println("Nilai j: " + j);

System.out.println();

j--;

}

}

}

Output :

Page 10: 04 Decision and Looping.pdf

18/03/2013

10

• Dapat disederhanakan sbb :

class DemoFor6 {

public static void main(String[] args) {

int i,j;

for (i=0, j=4; i < 5; i++, j--) {

System.out.println("Nilai i: " + i);

System.out.println("Nilai j: " + j);

System.out.println();

}

}

}

Output :

Variasi “for”• For dengan kondisi berhenti sebuah variabel boolean

import java.util.Scanner;

public class ForBoolean {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

int angka, i;

boolean stop=false;

for (i=0; !stop; i++){

System.out.print("Masukkan angka : ");

angka = input.nextInt();

System.out.print(angka+” “);

if (angka == 0)

stop = true;

}

System.out.println("Selesai.");

}

}

Output :

Page 11: 04 Decision and Looping.pdf

18/03/2013

11

• Variasi program sebelumnya :

import java.util.Scanner;

public class ForBoolean {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

int angka, i;

boolean stop=false;

i = 0;

for (; !stop; ){

System.out.print("Masukkan angka : ");

angka = input.nextInt();

if (angka == 0)

stop = true;

i++;

}

System.out.println("Selesai.");

}

}

Output :

• Tiga mahasiswa IT nonton bareng sebelum ujian akhir. Besoknya mereka

nggak siap untuk ikut ujian. Mereka memutuskan untuk tidak datang dan

sepakat mengarang cerita, lalu belajar selama seminggu. Seminggu

kemudian mereka bertiga menghadap profesor. Mereka cerita bahwa

mereka pergi ke pedalaman Kalimantan, naik jip, terus ban mereka

meledak, sementara ban cadangan gembos. Makan waktu 3 hari untuk

jalan ke Pontianak, terus pulang naik pesawat ke Jakarta.

• Kata profesor, “Ya sudah, kalau ban kalian meledak itu bukan salah kalian

kan, ayo sekarang ikut saya ”

• Mereka diberi 2 soal. Mereka dipisah, disuruh masuk ke kelas yang

berbeda-beda, lalu mulailah ujian …

• Soal pertama [poin 5] Apakah kepanjangan RAM? Mereka bertiga mikir,

wah gampang banget …”Random Access Memory”

• Soal kedua [point 95] Ban mana yang kempes?

Waduuuuhhhh ……

Sebuah Cerita

Page 12: 04 Decision and Looping.pdf

18/03/2013

12

Percabangan : while

• Formula :inisialisasiwhile (kondisi) {//statement yang diulangiterasi

}

Contoh-contoh “while”

import java.util.Scanner;

public class DemoWhile1 {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

int bil, jumlah=0;

while (jumlah<=100){

System.out.print("Masukkan angka : ");

bil = input.nextInt();

jumlah = jumlah+bil;

}

System.out.println("Selesai. Total masukan user = "+jumlah);

}

}

Program yang akan menjumlahkan secara berulang

integer masukan user dan berhenti ketika jumlahnya

sudah >100

Page 13: 04 Decision and Looping.pdf

18/03/2013

13

Program miniATM

Perulangan “do-while”

• Formula inisialisasido {//statement yang akan diulang…iterasi} while (kondisi);

Page 14: 04 Decision and Looping.pdf

18/03/2013

14

Contoh

class ContohDoWhile {

public static void main (String [] args)

{

int i = 6;

do {

System.out.println(“Java”);

i++;

} while (i<5);

}

}

Perulangan Bersarang (1)

• “for bersarang”

public class NestedFor {public static void main(String[] args) {

int i,j;

for (i=1;i<=5;i++){for (j=1;j<=i;j++){System.out.print(i+" ");}System.out.println();}}}

Page 15: 04 Decision and Looping.pdf

18/03/2013

15

Perulangan Bersarang (2)

• “while bersarang”

public class NestedWhile {public static void main(String[] args) {

int i=1,j=1;

while (i<=5){while (j<=i){System.out.print(i+" ");j++;}System.out.println();i++;}}}

Perulangan Bersarang (3)

• “do-while bersarang”

public class NestedDoWhile {public static void main(String[] args) {

int i=1,j=1;

do {do {System.out.print(i+" ");j++;} while (j<=i);System.out.println();i++;} while (i<=5);}}

Page 16: 04 Decision and Looping.pdf

18/03/2013

16

SOAL

1. Perbaiki kode berikut :

for ( i = 100, i >= 1, i++ )

System.out.println( i );

2. Kode berikut harusnya menampilkan integer ganjil dari 19

s/d 1 :

for ( i = 19; i >= 1; i += 2 )

System.out.println( i );

3. Kode berikut harusnya menampilkan integer genap dari 2 s/d

50 :

counter = 2;

do {

System.out.println( counter );

counter += 2 ;

} while ( counter < 50 );

Page 17: 04 Decision and Looping.pdf

18/03/2013

17

4. Apakah output program berikut :

public class Printing {

public static void main(String args[]){

for ( int i = 1; i <= 3; i++ ) {

for ( int j = 1; j <= 3; j++ )

System.out.print( '@' );

System.out.println();

} // end outer for

} // end main

} // end class Printing

Latihan

1. Buat program perulangan yang outputnya :

a. 1 3 5 7 9 … 99

b. 100 99 98 97 … 1

c. 5 10 15 20 … 100

d. 2 4 8 16 32 … 256

2. Modifikasilah contoh program di slide 21 sehingga

banyaknya integer yang dimasukkan tergantung masukan

user. Program akan terus menerus mengulang hingga user

memasukkan huruf ‘t’ pada pertanyaan “Ingin mengulang

lagi (y/t) ?”

Page 18: 04 Decision and Looping.pdf

18/03/2013

18

3. Buatlah program menampilkan deretan berikut :

1 1 1 1 1

2 2 2 2

3 3 3

4 4

5

36

4. Buatlah program Java yang meminta masukan jumlah

data nilai yang akan dihitung. Kemudian di akhir program

akan menampilkan jumlah total dari nilai-nilai yang

dimasukkan tersebut. Variabel yang perlu disimpan

• Nilai

• Nilai total

• Jumlah nilai

Tambahkan program menghitung rata-rata nilai