Program yang hanya berisi runtunan instruksi biasanya terdapat pada masalah sederhana Seringkali suatu instruksi hanya bisa dilakukan jika ia memenuhi suatu syarat tertentu Struktur pemilihan memungkinkan kita melakukan aksi jika suatu syarat dipenuhi
If kondisi then aksi Endif Keterangan : Aksi hanya dilakukan bila kondisi bernilai benar(true). Bila kondisi bernilai salah (false), tdk ada aksi apapun yg dikerjakan. Kata endif digunakan untuk mempertegas awal dan akhir struktur if-then
salah
kon disi
benar aksi
end
Buatlah algoritma yang membaca sebuah bilangan bulat, lalu mencetak pesan “genap” jika bilangan tersebut adalah genap.
Bilangan genap adalah bilangan yg habbis dibagi dgn 2 (sisa pembagian =0). Oleh karena itu kita perlu membagi data masukan dgn 2. Jika masukan habis dibagi 2, maka kita tulis bahwa bilangan tersebut bilangan genap
Judul : Algoritma bilangan genap Kamus : x : integer Algoritma : input (x) if x mod 2 = 0 then output(‘ bilangan genap’) Endif {}
If kondisi then aksi1 Else aksi2 Endif Keterangan : aksi 1 dikerjakan jika kondisi bernilai benar, sebaliknya jika kondisi bernilai salah, maka aksi2 yang akan dilaksanakan.
benar
kon disi
aksi1
salah
aksi2
end
Buatlah algoritma dengan yang membaca sebuah bilangan bulat, lalu mencetak pesan “genap” jika bilangan tersebut adalah genap, atau “ganjil” jika bilangan tersebut adalah bilangan ganjil. !
Deklarasi variabel bernama bilangan dan x dengan tipe data integer 2. Baca data bilangan 3. X=bilangan mod 2 4. Jika x=0 maka tampilkan (“Bilangan genap”) lalu lompat ke langkah 6 5. Jika tidak maka tampilkan (“Bilangan ganjil”) 6. Selesai 1.
Judul : Algoritma bilangan genap dan ganjil Kamus : bilangan, x : integer Algoritma : input (bilangan) x bilangan mod 2 if x = 0 then output(‘ bilangan genap’) Else output(‘bilangan ganjil’) Endif {}
If kondisi1 then aksi1 Else if kondisi2 then aksi2 Else if kondisi3 then aksi3 Endif Endif Endif
benar
salah
ko ndi si1
ko ndi si2
aksi1 aksi2
aksi3 end end
Indeks nilai mahasiswa ditentukan berdasarkan nilai ujian yg diraihnya. Ketentuannya sbb: Jika Nilai ujian >=80, indeks nilai = A Jika Jika 70 <= nilai ujian <80, indeks nilai =B Jika 55 <= nilai ujian <70, indeks nilai = C Jika 40 <= nilai ujian <55, indeks nilai = D Jika <40, indeks nilai = E
Judul : Algoritma indek_nilai_ujian Kamus : nilai : real indeks : char Algoritma : Input(nilai) If nilai >= 80 then indeks „A‟ Else if (nilai >= 70) and (nilai <80) then indeks „B‟ Else if (nilai >= 55) and (nilai <70) then indeks „C‟ Else if (nilai >= 40) and (nilai <55) then indeks „D‟ Else indeks „E‟ Endif Endif Endif Endif Endif Output (indeks) {}
Buat Algoritma UpahKaryawan dengan PSEUDOCODE, dgn ketentuan SBB : Gol A : upah perjam 5000 Gol B : upah perjam 6000 Gol C : upah perjam 7000 Gol D : upah perjam 8000 JamKerjaNormal = 48 per minggu Upah lembur = 4000 per jam
Hasil yg diinginkan: Input (Nama, gol, JJK) jika JJK <= JamKerjaNormal maka Upahtotal=JJK*UpahPerjam selain itu JamLembur=JJK-JamKerjaNormal Upahtotal=JamKerjaNormal*Upahperjam+Jamlembur *UpahLembur Output (“Nama”, “UpahTotal”)
Judul : Algoritma Upah Karyawan Kamus : const JamKerjaNormal=48 const UpahLembur=4000 Nama : String gol : char JJK : integer JamLembur: integer UpahPerjam : real Upahtotal : real Algoritma : input (Nama,gol,JJK) if gol ="A" then UpahPerjam<- 5000.00 else if gol ="B" then UpahPerjam<- 6000.00 else if gol ="C" then UpahPerjam<- 7000.00 else if gol ="D" then UpahPerjam<- 8000.00 endif endif endif endif
if JJK<= JamKerjaNormal then UpahTotal<-JJK*Upahperjam else Jamlembur=JJK-JamKerjaNormal UpahTotal=JamKerjaNormal*Upahperjam+JamLe mbur*UpahLembur endif output("Nama", Upahtotal) {}
Digunakan untuk masalah dengan dua kasus atau lebih Digunakan untuk menyederhanakan penggunaan if-then-else yang bertingkat
Case ekspresi nilai 1 : aksi1 nilai 2: aksi2 nilai 3: aksi3 … nilai n: aksin otherwise : aksix endcase
Buatlah algoritma membaca sebuah bilangan bulat yang nilainya terletak antara 1 sampai 4, lalu cetak tulisan angka tersebut. Misal bila dibaca angka 1, maka tercetak tulisan “satu”, bila dibaca 2, maka tercetak dilayar tulisan “dua”, demikian seterusnya. Jika angka yg dimasukan selain 1. s.d 4, maka tulis pesan bahwa angka yg dumasukkan salah.
Judul : Algoritma mencetak konversi_angka_teks Kamus : angka : integer Algoritma : input (angka) if angka = 1 then output(„satu‟) Else if angka = 2 then output(„dua‟) Else if angka = 3 then output(„tiga‟) Else if angka = 4 then output(„empat‟) Else output(„angka yg dimasukkan harus 1 s.d 4‟) Endif Endif Endif endif
Judul : Algoritma mencetak konversi_angka_teks Kamus : angka : integer Algoritma : input (angka) Case angka 1 : output („satu‟) 2 : output („dua‟) 3: output („tiga‟) 4: output („empat‟) Otherwise : output(„Angka yang dimasukkan salah‟) endcase
Judul : Algoritma GenapGanjil Kamus : x : integer Algoritma : input (x) if x mod 2=0 then output(„Genap‟) else output(„Ganjil‟) endif
Judul : Algoritma GenapGanjil Kamus : x : integer Algoritma : input (x) case x mod 2 0 : output(„genap‟) 1 : output(„ganjil‟) endcase
Buatlah algoritma dengan BIT dan Pseudo Code menggunakan struktur seleksi (if-then-else dan CASE) membaca nomor bulan (integer) , lalu menuliskan nama bulan sesuai dengan angka bulannya. Misal jika dibaca bulan 9, maka tercetak “September”.
Judul : Algoritma NamaBulan Kamus : no_bulan: integer Algoritma : input (no_bulan) if no_bulan =“1" then output(“Januari”) else if no_bulan =“2" then output(“Februari”) else if no_bulan =“3" then output(“Maret”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”) else if no_bulan =“4" then output(“April”)
endif endif endif endif
Judul : Algoritma NamaBulan Kamus : no_bulan: integer Algoritma : input (no_bulan) case no_bulan 1 : output („Januari‟) 2 : output („Februari‟) 3 : output („Maret‟) 4 : output („April‟) 5 : output („Mei‟) 6 : output („Juni‟) 7 : output („Juli‟) 8 : output („Agustus‟) 9 : output („September‟) 10 : output („Oktober‟) 11 : output („November‟) 1 2: output („Desember‟) otherwise : output(„Bukan bulan yang benar‟) endcase
Konstruksi CASE sering digunakan dalam pemilihan menu program. User cukup mengetik nomor menu, kemudian prosedur yang berasosiasi dgn nomor menu tsb dieksekusi. Misal sebuah program mempunyai nomor menu sbb: MENU 1. Baca data 2. Cetak data 3. Ubah data 4. Hapus data 5. Keluar program
Buatlah algoritma mencetak menu tsb dan membaca nomor pilihan menu. Utk setiap menu yang dipilih, cukup tuliskan pesan berikut : Anda memilih menu nomor
Judul : Algoritma SimulasiMenuProgram Kamus : no_menu: char Algoritma : output („ MENU „) output(„1. Baca data‟) output(„2. Cetak data‟) output(„3. Ubah data‟) output(„4. Hapus data‟) output(„5. Keluar program‟) output(„Masukkan pilihan anda(1/2/3/4/5)?‟) Input (no_menu) Case no_menu 1 : output („Anda memilih nomor menu 1‟) 2 : output („Anda memilih nomor menu 2‟) 3 : output („Anda memilih nomor menu 3‟) 4 : output („Anda memilih nomor menu 4‟) 5 : output („Anda memilih nomor menu 5‟) endcase
Buatlah algoritma empat persegi panjang menggunakan struktur case, dengan hasil yang diinginkan sebagai berikut :
Menu Program Empat Persegi Panjang 1. Hitung luas 2. Hitung keliling 3. Keluar program Masukkan pilihan anda (1/2/3)?
Munir,
Rinaldi. 2007. Algoritma & Pemrograman. Bandung : Informatika. Yulikuspartono. 2004. Pengantar Logika dan Algoritma. Yogyakarta: Andi Publisher. Mulyanto
, Aunur R. 2008. Rekayasa Perangkat Lunak Jilid 1. Jakarta: Direktorat Pembinaan SMK-Depdiknas.
www.ilmukomputer.org