PERNYATAAN SELEKSI Matakuliah : Algoritma dan Metode Object Oriented Programming I Tahun : 2009 Versi : 1/0
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Menuliskan program dengan struktur kendali pemilihan (seleksi) Membandingkan data berupa string
Outline Materi Struktur Kendali Seleksi Pernyataan if Pernyataan if-else Pernyataan nested-if Pernyataan switch-case Pernyataan conditional Seleksi String
Pernyataan Seleksi Struktur kendali pemilihan Mengatur statements yang akan dieksekusi jika terjadi suatu kondisi Pernyataan seleksi: if if … else nested-if switch … case conditional expressions Ekseksusi dijalankan jika kondisi bernilai true
Pernyataan if Sintaks: Flowchart: If (booleanExpression) { statement(s); } Flowchart: (radius>=0) Boolean Expression false false true true Area = radius * radius * PI System.out.println(“The area for the circle of” + ” radius “ + radius + ” is ” + area); Statement(s)
Pernyataan if Contoh: If (radius >= 0) { area = radius * radius * PI; System.out.println(“The area for the circle of radius “+ radius + “ is “ + area); } Jika radius bernilai >= 0, maka statements dalam block akan dieksekusi (area akan dihitung)
Pernyataan if Statements yang akan dieksekusi ditandai dengan block ( { … } ) Block tidak diperlukan jika terdiri dari 1 statement saja Contoh: int number = Integer.parseInt(intString); if (number % 2 == 0) System.out.println(number + “ is even.”); If (number % 2 != 0) System.out.println(number + “ is odd.”);
Pernyataan if-else Pernyataan if hanya mengeksekusi block jika bernilai true Pernyataan if-else diperlukan untuk mengeksekusi block jika bernilai true serta false Sintaks: if (booleanExpression) { statement(s)-for-the-true-case; } else statement(s)-for-the-false-case
Pernyataan if-else Flowchart: Jika booleanExpression bernilai true, maka statement(s)-for-the-true-case dieksekusi Jika booleanExpression bernilai false, maka statement(s)-for-the-false-case dieksekusi Boolean Expression true false Statement(s) for the true case Statement(s) for the false case
Pernyataan if-else Contoh: if (radius >= 0) { area = radius * radius * PI; System.out.println(“The area for the circle of radius “ + radius + “ is “ + area; } else System.out.println(“Negative input”); Jika radius >= 0 bernilai true, maka area akan dihitung, jika false maka output “Negative input” akan ditampilkan Block pada else dapat dihilangkan karena hanya 1 statement
Pernyataan if-else Contoh: if ( number % 2 == 0 ) { System.out.println(number +“ is even.“); } else System.out.println(number +“ is odd.“); Lebih efisien karena “number % 2 == 0” hanya dieksekusi sekali
Pernyataan if-else
Pernyataan if-else
Pernyataan if-else Try … catch berguna untuk melakukan uji coba eksekusi (try) dan menangkap kesalahan yang terjadi (catch) Pada contoh di atas, catch terjadi jika angka yang dimasukan berupa huruf/kalimat Try … catch akan dijelaskan lebih lanjut pada pertemuan berikutnya (Exception Handling)
Pernyataan nested-if Pernyataan if/if-else yang bersarang Terdapat if/if-else di dalam if/if-else if/if-else bagian dalam disebut “bersarang” di dalam if/if-else bagian luar Tidak ada batasan if/if-else yang bersarang
Pernyataan nested-if
Pernyataan nested-if
Pernyataan nested-if
System.out.println(“Welcome to Java!”); Perulangan while Sintaks: while (loop-continuation-condition) { statement(s); } Flowchart: Loop Continuation Condition? Statement(s) (loop body) false true (count < 10)? System.out.println(“Welcome to Java!”); count++; count = 0;
Perulangan while Loop-continuation-condition Berupa boolean expression Kondisi true yang menyebabkan perulangan dieksekusi Ditandai di dalam tanda kurung (…) Setelah while(…) tidak dilanjutkan dengan semicolon (;) Diperlukan block { … } jika statement lebih dari 1
Perulangan while Contoh: int count = 0; while(count < 10) { System.out.println("Welcome to Java!"); count++; } Langkah: [1] Nilai count diinisialisasi 0 [2] Pengecekan apakah count < 0 [3] Jika benar, eksekusi statement dalam block Jika salah, keluar dari perulangan [4] Increment nilai count [5] Kembali ke point [2] 1 2 4
Perulangan while
Pernyataan switch-case Pernyataan if/if-else mengeksekusi block berdasarkan nilai true/false Pernyataan switch-case mengeksekusi block berdasarkan nilai status Switch-case lebih mudah dipahami daripada nested-if Switch-case digunakan untuk multiple-conditions
Pernyataan switch-case Sintaks: switch (switch-expression) { case value1:statement(s)1; break; case value2:statement(s)2; … case valueN:statement(s)N; default: statement(s)-for-default; }
Pernyataan switch-case Flowchart: status 1 Statement(s)1 break status 2 Statement(s)2 break status 3 Statement(s)3 break status 4 Statement(s)4 break default Default actions
Pernyataan switch-case Switch-expression harus menghasilkan nilai berupa char, byte, short, atau int dan harus dalam tanda kurung (…) Value1, …, dan valueN harus memiliki tipe data yang sama dengan switch-expression dan tidak dapat berupa expression seperti 1+x Jika case ditemukan, maka eksekusi dimulai dari case tersebut sampai ditemukan break
Pernyataan switch-case Keyword break adalah optional Case default adalah optional, dieksekusi jika tidak ada case yang memenuhi Case dicek secara berurutan Lebih baik case diurutkan dan default diletakkan di case terakhir Switch-case tanpa break menyebabkan case berikutnya dieksekusi
Pernyataan switch-case Flowchart switch-case tanpa break: status 1 Statement(s)1 status 2 Statement(s)2 status 3 Statement(s)3 status 4 Statement(s)4 default Default actions
Pernyataan switch-case
Pernyataan switch-case
Did You Know? Kesalahan yang paling sering dilakukan: memberikan semicolon (;) setelah if Contoh yang salah: If (radius >= 0) ; { … } Kesalahan yang sering terjadi dalam switch-case adalah lupa memberikan break Logic error
Did You Know? Pernyataan seleksi yang sederhana dapat menggunakan conditional expressions Sintaks: booleanExpression ? expression-if-true : expression-if-false; Mengembalikan nilai expression-if-true atau expression-if-false Contoh: if (x > 0) y = 1; else y = -1; Jika diubah menjadi conditional expressions menjadi y = (x>0) ? 1 : -1; Conditional expression melibatkan 3 parameter, sehingga disebut ternary operator Nilai yang dikembalikan dapat berupa string System.out.println( (num%2==0) ? “Num is even” : “Num is odd”);
Did You Know?
Did You Know?
Advanced Learning Membandingkan string dapat menggunakan method equals Sintaks: String1.equals(String2); Nilai yang dikembalikan adalah boolean Jika isi/kalimat pada String1 sama dengan String2 true Jika tidak, false Contoh: String kata1 = “hallo”; String kata2 = “hallo”; System.out.println(“Apakah Kata1 dan Kata2 sama? “ + kata1.equals(kata2));
Advanced Learning
Advanced Learning if(kata1.equals(kata2)==true) dapat diganti menjadi karena if akan menjalankan blok jika bernilai true
Referensi Introduction to Java Programming. 7ed. Liang. 2009. ch 3 Dasar Pemrograman Java 2. Abdul Kadir. 2004. p83-118 Java Software Solutions. 5ed. Lewis & Loftus. 2007. p238-262 The Complete Reference Java. 5ed. Herbert Schildt. 2005. p77-84 Java 2 Weekend Crash Course. Julio. 2002. Ch 8 Java Control Flow Statements: http://www.javabeginner.com/java-control-statements.htm