PERNYATAAN SELEKSI Matakuliah Tahun Versi : T0974 / Algoritma dan Metode Object Oriented Programming I : 2008 : 1/0 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: • Menuliskan program dengan struktur kendali pemilihan (seleksi) • Membandingkan data berupa string Bina Nusantara Outline Materi • • • • • • • Struktur Kendali Seleksi Pernyataan if Pernyataan if-else Pernyataan nested-if Pernyataan switch-case Pernyataan conditional Seleksi String Bina Nusantara 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 Bina Nusantara Pernyataan if • Sintaks: If (booleanExpression) { statement(s); } • Flowchart: Boolean Expression false (radius>=0) false true true Statement(s) Bina Nusantara Area = radius * radius * PI System.out.println(“The area for the circle of” + ” radius “ + radius + ” is ” + area); 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) Bina Nusantara 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.”); Bina Nusantara 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 } Bina Nusantara Pernyataan if-else • Flowchart: true Statement(s) for the true case Boolean Expression false Statement(s) for the false case • Jika booleanExpression bernilai true, maka statement(s)for-the-true-case dieksekusi • Jika booleanExpression bernilai false, maka statement(s)-for-the-false-case dieksekusi Bina Nusantara 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 Bina Nusantara 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 Bina Nusantara Pernyataan if-else Bina Nusantara Pernyataan if-else Bina Nusantara 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) Bina Nusantara 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 Bina Nusantara Pernyataan nested-if Bina Nusantara Pernyataan nested-if Bina Nusantara Pernyataan nested-if Bina Nusantara 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 multipleconditions Bina Nusantara Pernyataan switch-case • Sintaks: switch (switch-expression) { case value1: statement(s)1; break; case value2: statement(s)2; break; … case valueN: statement(s)N; break; default: statement(s)-for-default; } Bina Nusantara Pernyataan switch-case • Flowchart: status 1 Statement(s)1 break Statement(s)2 break Statement(s)3 break Statement(s)4 break status 2 status 3 status 4 default Default actions Bina Nusantara 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 Bina Nusantara 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 Bina Nusantara 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 Bina Nusantara Pernyataan switch-case Bina Nusantara Pernyataan switch-case Bina Nusantara Did You Know? • Kesalahan yang paling sering dilakukan: memberikan semicolon (;) setelah if • Contoh yang salah: If (radius >= 0) ; { … } Logic error • Kesalahan yang sering terjadi dalam switch-case adalah lupa memberikan break Bina Nusantara 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 expressionif-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”); Bina Nusantara Did You Know? Bina Nusantara Did You Know? Bina Nusantara 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)); Bina Nusantara Advanced Learning Bina Nusantara Advanced Learning • if(kata1.equals(kata2)==true) dapat diganti menjadi if(kata1.equals(kata2)) karena if akan menjalankan blok jika bernilai true Bina Nusantara 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-controlstatements.htm Bina Nusantara
© Copyright 2024 Paperzz