Percabangan/Pemilihan - E

advertisement
Percabangan
/Pemilihan
Pertemuan ke-3 dan ke-4
Pernyataan dan Aksi
 Pernyataan
(statement) adalah
tulisan/kode/diagram yang
menggambarkan langkah penyelesaian
algoritma
 Sebuah pernyataan menggambarkan
Aksi algoritmik yang dapat dieksekusi
Struktur Dasar Algoritma
1.
Runtunan (Sequence)
Algoritma bisa memberikan hasil jika semua
pernyataan dieksekusi
2.
Pemilihan (Selection)
Algoritma bisa memberikan hasil meskipun
hanya sebagian pernyataan yang terpilih yang
dieksekusi
3.
Pengulangan (Repetition)
Hasil algoritma mungkin sebagian ditentukan
oleh pengulangan eksekusi beberapa pernyataan.
Pemilihan
Ada kalanya sebuah aksi dilakukan jika
kondisi tertentu dipenuhi. Contoh: Berkendara
mendekati persimpangan (baik ada lampu
lalu-lintas maupun tidak)
 Contoh pernyataan (dlm bahasa natural):
Jika lampu traffic light berwarna merah, maka
berhenti


Polanya:
IF kondisi THEN aksi
Contoh Pemilihan
 IF
(lampu lalu-lintas berwarna hijau) THEN
jalankan kendaraannya
 IF (suhu ruangan) > 27 C THEN
nyalakan proses pendinginannya
 IF (jalan rungkut madya ditutup semua) THEN
tidak usah berangkat ke kampus
NOTE: dalam masalah yang kompleks, biasanya
terdapat banyak sekali proses Pemilihan
Pola Penulisan Pemilihan
 Untuk
1.
permasalahan yang lebih
kompleks, penulisan mengikuti pola-pola
sebagai berikut:
IF kondisi1 THEN
IF kondisi2 THEN
IF kondisi3 THEN
…..
aksi
Pola Penulisan Pemilihan
2.
IF kondisi1 THEN
aksi1
ELSE IF kondisi2 THEN
aksi2
ELSE
aksi3
Nested If (Bilangan Negatif / Positif)
Pseudocode (Bil Positif/Negatif)
Baca bilangan
If (bilangan > 0) then “Positif”
Else
If (bilangan < 0) then “Negatif”
Else “Nol”
 bilangan
disebut dengan variabel atau
mudahnya adalah wadah
Operator Aritmatika Penting
+
*
/
atau DIV
 % atau MOD
 Contoh:
: Penjumlahan
: Pengurangan
: Perkalian
: Pembagian
: Sisa pembagian bulat
8 / 4 = 2, hasil bagi 2
8 % 4 = 0, sisa hasil bagi 0, atau
tidak ada sisa (habis)
Nested If
(Menentuk
an jumlah
hari dalam
bulan)
Start
Baca bulan
Baca tahun
bulan =
1,3,5,7,8,10,12
?
Y
jumlahHari = 31
T
bulan =
4,6,9,11 ?
Y
jumlahHari = 30
T
bulan = 2 ?
Y
tahun % 4 = 0
?
T
T
Cetak
“Bulan
Invalid”
jumlahHari = 28
End
Y
jumlahHari = 29
Cetak
jumlahHari
Contoh : part program
…
…
else if (bulan == 2)
{
if (tahun % 4 == 0){
jmlHari = 29;
}
else{
jmlHari = 28;
}
}
…
…
Kesalahan Umum
 Soal
: buat program yg menampilkan Nilai
dalam Huruf (A,B,C,D atau E) dengan
kriteria :





Nilai >= 80
70 <= Nilai < 80
60 <= Nilai < 70
50 <= Nilai < 60
Nilai < 50
:A
:B
:C
:D
:E
Contoh Solusi (1 – sequential IF)
…
IF (nilai >= 80) THEN
Tampilkan “A”
IF(nilai >= 70) THEN
Tampilkan “B”
IF (nilai >= 60) THEN
Tampilkan “C”
IF(nilai >= 50) THEN
Tampilkan “D”
ELSE
Tampilkan “E”
…
INI CONTOH SOLUSI YANG SALAH !!!
Contoh Solusi (2 – NESTED IF)
…
…
IF (nilai >= 80) THEN
Tampilkan “A”
ELSE IF(nilai >= 70) THEN
Tampilkan “B”
ELSE IF (nilai >= 60) THEN
Tampilkan “C”
ELSE IF(nilai >= 50) THEN
Tampilkan “D”
ELSE
Tampilkan “E”
…
INI CONTOH SOLUSI YANG BENAR!!!
Contoh Solusi (3)
IF (nilai >= 80) THEN
Tampilkan “A”
IF ((nilai >= 70) AND (nilai < 80) ) THEN
Tampilkan “B”
IF ((nilai >= 60) AND (nilai < 70) ) THEN
Tampilkan “C”
IF ((nilai >= 50) AND (nilai < 60) ) THEN
Tampilkan “D”
ELSE
Tampilkan “E”
…
INI CONTOH SOLUSI YANG BENAR!!!
Intermezzo Otak


Di suatu malam yg gelap, 4 orang harus
menyeberang jembatan yang sudah rapuh.
Jembatan ini tidak bisa dilewati lebih dari 2
orang setiap waktunya.
Fakta:



Kecepatan jalan u/ menyeberang tidak sama.
Ada yg perlu 10 menit, ada yang 5 menit, ada
yang 2 menit dan terakhir 1 menit
Di belakang mereka gunung sedang meletus
yang laharnya akan mencapai mereka dalam
waktu 17 menit.
Bagaimana mereka menyeberang dengan
selamat .
Latihan 1
 Tulislah
algoritma mengirim email ke
teman, dengan mempertimbangkan
kemungkinan:





Belum/sudah punya akun
Email teman sudah ada/belum
Benar/Salah alamat email
Ada/Tidak ada judul email atau Ada/tidak
ada isi pesan
Latihan 2
 Mencari
nama mahasiswa dari data 4
mhs, ada atau tidak
Latihan 3
 Program
mencari nama hari, jika
diberikan nama hari sekarang, dan
berapa jumlah hari kedepan
Latihan 4





Pajak penghasilan(pph) hanya dikenakan thd
penghasilan di atas 300 ribu. Jika penghasilan
kurang dari atau sama dengan 300 ribu tidak
dikenakan pph. Untuk penghasilan sampai
dengan 10 juta dikenai pph 15%, sedangkan jika
lebih dari 10 juta dikenai pph 30%.
Jika tidak terkena pajak, munculkan pesan
“Horeee, gak bayar pajek, rek !”
Jika total pajak-nya lebih dari 50 ribu, munculkan
pesan “Aduuhh, gak isok malam mingguan iki !”
Jika total pajak-nya lebih dari 75 ribu, munculkan
pesan “wis gak malam mingguan, bangkrut pisan
!”
Buat programnya
Tugas 2 (due: 23/9/2013)
Tuliskan algoritma deskriptif bagaimana:
 1. Mengirimkan sms kepada sekelompok (grup)
teman tanpa perlu memilih/memasukkan
manual nomor telepon masing-masing teman
setiap kali ini dilakukan. Tulis lengkap, sebanyak
mungkin kondisi yang ada, termasuk :
 Sedang menulis SMS, kemudian ingin
menambah/menghapus nama dalam daftar
nama grup.
 Sedang menuliskan SMS, kemudian ada
telpon masuk
(TIPS: amati gadget anda)
Tugas 3 (due: 9/10/2013)
1.
2.
PDAM menentukan tarif progresif per m3 air dg
ketentuan berikut : Buat program u/ membaca
jumlah pemakaian air, menghitung biaya yang
harus dibayar dan menampilkannya di layar
Buat algoritma untuk menentukan jam:menit
terbaru jika diberikan jam:menit sekarang dan
tambahan menit ke depan. Format jam pakai
yang 24 jam.
Volume Air (m3)
Tarif per m3 (Rp)
 TOOLS:
RAPTOR
0 – 15
250
16 - 30
31 - 50
450
675
> 50
1125
Contoh Penerapan Nested
Looping untuk animasi
for (int counter1 = 1; counter1 <= baris ; counter1++){
for (int counter2=1; counter2<= kolom;
counter2++){
System.out.print("*");
}
System.out.print("\n");
}
Download