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 : * ** *** **** *****