Struktur Pemilihan

advertisement
Struktur Pemilihan
Pertemuan ke-3
IF … THEN …
•
•
•
•
•
IF cuaca mendung THEN
saya membawa payung
ENDIF
IF mengantuk THEN
Tidur
ENDIF
IF lampu merah menyala THEN
Berhenti
ENDIF
IF kenyang THEN
berhenti makan
ENDIF
Input (x,y)
IF x > y THEN
Output (‘x lebih besar dari y’)
ENDIF
IF … THEN …
• IF cuaca mendung AND harus keluar rumah THEN
saya membawa payung
ENDIF
• IF mengantuk OR hari sudah malam THEN
tidur
ENDIF
• IF lampu merah menyala THEN
BEGIN
injak rem
berhenti
END
ENDIF
IF … THEN … ELSE …
• IF cuaca mendung THEN
saya membawa payung
ELSE
saya membawa jaket
ENDIF
• IF mengantuk THEN
tidur
ELSE
mengerjakan tugas
ENDIF
IF … THEN … ELSE …
• IF kenyang THEN
berhenti makan
ELSE
BEGIN
Tambah nasi
Tambah sayur
Tambah lauk
END
ENDIF
PEMILIHAN BERSARANG
• IF cuaca mendung THEN
IF saya harus keluar rumah THEN
saya membawa payung
ELSE
saya memasukkan sepatu
ENDIF
ELSE
saya membawa jaket
ENDIF
Kasus
• Buatlah sebuah algoritma bulan dimana
inputannya berupa bilangan bulan (1-12)
dan outputannya berupa nama bulan
(januari-desember) !
• Contoh :
Input : 12
Output : Bulan Desember
Struktur Pemilihan : Case
CASE ekspresi
nilai1 : aksi1
nilai2 : aksi2
...
nilaiN : aksiN
OTHERWISE : aksiX
ENDCASE
Struktur Pemilihan : Case
• CASE lampu menyala
‘merah’ : berhenti
‘kuning’ : memperlambat laju kendaraan
‘hijau’ : jalan terus
ENDCASE
Struktur Pemilihan : Case
• Input (bulan)
CASE bulan
‘1’ : Output (‘bulan Januari’)
‘2’ : Output (‘bulan Februari’)
...
‘12’ : Output (‘bulan Desember’)
OTHERWISE : Output (‘Angka harus 1-12’)
ENDCASE
TRANSLASI KE C
Algoritma
C
IF...THEN dengan 1 aksi
IF kondisi THEN
if (kondisi)
Aksi
aksi;
ENDIF
IF...THEN dengan n aksi
IF kondisi THEN
Aksi1
Aksi2
...
ENDIF
if (kondisi)
{
aksi1;
aksi2;
...
}
Algoritma
C
IF...THEN...ELSE ,dengan masing-masing 1 aksi
IF kondisi THEN
Aksi1
ELSE
Aksi2
ENDIF
if (kondisi)
aksi1;
else
aksi2;
IF...THEN...ELSE ,dengan n aksi
IF kondisi THEN
Aksi1a
Aksi1b
...
ELSE
Aksi2a
Aksi2b
...
ENDIF
if (kondisi)
{
aksi1a;
aksi1b;
...
}else{
aksi2a;
aksi2b;
...
}
Algoritma
C
struktur case
CASE ekspresi
BEGIN
nilai1 : aksi1
nilai2 : aksi2
...
nilaiN : aksiN
OTHERWISE : aksiX
END
switch ekspresi
{
case nilai1 : aksi1;
break;
case nilai2 : aksi2;
break;
...
case nilaiN : aksiN;
break;
default : aksiX;
}
Latihan 1
Buatlah sebuah algoritma dan program
pascal dengan spesifikasi sebagai
berikut :
– Menampilkan tulisan ’Hello, siapa namamu
?’
– Meminta user memasukkan namanya
– Menuliskan pesan ’Senang berteman
denganmu, <nama>’ dimana <nama>
adalah hasil masukan dari b
Latihan 2
• Buatlah program untuk menentukan grade
nilai mahasiswa dengan ketentuan nilai :
A : 80 - 100
B : 61 - 80
C : 41 - 60
D : 21 - 40
E : 0 - 20
Latihan 3
Buatlah sebuah program aritmatika dengan
menu sebagai berikut :
1. Penjumlahan
2. Pengurangan
contoh :
pilih menu : 1
bilangan 1 : 5
bilangan 2 : 4
hasil : 9
Latihan 4
Dibaca nama karyawan dan gaji pokok
bulanannya. Gaji bersih yang diterima adalah :
Gaji bersih = gaji pokok + tunjangan – pajak
Tunjangan karyawan dihitung 20% dari gaji
pokok, sedangkan pajak adalah 15% dari gaji
pokok ditambah tunjangan. Nama karyawan
dan gaji bersihnya dicetak ke piranti keluaran.
Tuliskan algoritmanya dan programnya ke
Pascal!
Pengulangan
Komponen Pengendali
• Inisialisasi; menentukan kondisi awal
dilakukannya pengulangan.
• Jumlah iterasi; menunjukkan berapa kali
pengulangan akan dilakukan.
• Kondisi berhenti; menentukan kondisi
yang dapat mengakhiri pengulangan.
WHILE … DO …
... {inisialisasi}
WHILE (condition) DO
aksi
ubah pencacah
ENDWHILE
...
Kupas Kentang
...
kentang = 0 {inisialisasi; jumlah kentang yang sudah dikupas}
WHILE kentang < 10 DO {jumlah iterasi}
Ambil sebuah kentang
Kupas kulit kentang
Kentang = kentang + 1
ENDWHILE
...
Algoritma
C
WHILE (condition) DO
aksi
ubah pencacah
ENDWHILE
while (condition)
aksi;
...
i  0
WHILE i < 5 DO
Output(‘*’)
i  i + 1
ENDWHILE
...
...
i=0;
while i < 5
{
printf(“*”);
i++;
}
REPEAT … UNTIL …
... {inisialisasi}
REPEAT
aksi
ubah pencacah
UNTIL (kondisi)
...
Kupas Kentang
...
kentang = 0 {inisialisasi; jumlah kentang yang sudah dikupas}
REPEAT
Ambil sebuah kentang {aksi}
Kupas kulit kentang
kentang = kentang + 1
UNTIL kentang = 10 {kondisi berhenti}
...
Algoritma
C
REPEAT
do
{
aksi;
}while (!kondisi)
aksi
ubah pencacah
UNTIL (condition)
FOR … TO … DO …
FOR pencacah = nilai_awal TO nilai_akhir DO
aksi
ENDFOR
Kupas Kentang
FOR kentang = 1 TO 10 DO
Ambil sebuah kentang {aksi}
Kupas kulit kentang
ENDFOR
...
For...to...do menaik
Algoritma :
FOR pencacah  nilai_awal TO nilai_akhir DO
Aksi
ENDFOR
C :
for(a=nilai_awal;a<=nilai_akhir;a++)
aksi;
For...to...do menurun
Algoritma :
FOR pencacah  nilai_awal DOWNTO nilai_akhir DO
Aksi
ENDFOR
C :
for(a=nilai_akhir;a>=nilai_awal;a--)
aksi;
Latihan 1
• Buatlah program untuk menampilkan
bilangan-bilangan sebelum bilangan n.
Dimana n diinputkan oleh user!
• Inputan : n=5
• Output : 1 2 3 4
Pengulangan Bersarang
Latihan 2
•
•
•
Buatlah sebuah program untuk
menghitung penjumlahan deret angka
1+2+3+...+n. Dimana n adalah inputan
dari user !
Inputan : N=5
Output : Hasil penjumlahan deret = 15
Latihan 3
• Buatlah sebuah program yang akan
menampilkan bilangan ganjil sebelum
bilangan n. Dimana n diinputkan oleh user
!
• Inputan : n=8
• Outputan : 1 3 5 7
Latihan 4
• Buatlah program untuk menampilkan output sbb
:
• Inputan : n=5
• Output :
*
**
***
****
*****
Download