download

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