PEMILIHAN Dian Palupi Rini, M.Kom Runtunan Struktur runtunan hanya terdapat pada program sederhana. Pada umumnya, masalah yang akan diselesaikan memiliki beberapa alternatif pelaksanaan aksi. Suatu aksi hanya dilakukan bila persyaratan atau kondisi tertentu dipenuhi 1
Notasi algoritmik : if kondisi then Aksi Aksi (dapat berupa satu atau lebih aksi) hanya akan dilaksanakan bila kondisi bernilai benar (true), jika kondisi bernilai salah, tidak ada aksi apapun yang dikerjakan. Contoh analisis dengan satu kasus Dibaca sebuah bilangan bulat dari piranti masukan. Diminta mencetak pesan bilangan genap jika bilangan tersebut adalah genap. 2
Algoritma Bilangan_Genap {mencetak pesan bilangan genap jika sebuah bilangan bulat yang dibaca merupakan bilangan genap} Bil : integer Deskripsi : read (bil) if bil mod 2 = 0 then write ( bilangan genap ) Algoritma Huruf_vokal {mencetak pesan Huruf hidup jika sebuah karakter yang dibaca merupakan huruf vokal} c : character Deskripsi : read (c) if (c= a ) or (c= i ) or(c= u )or(c= e )or(c= o )then write ( Huruf hidup ) 3
Dua Kasus if kondisi then Aksi1 else Aksi2 Dua Kasus Aksi1 (dapat berupa satu atau lebih aksi) akan dilaksanakan bila kondisi bernilai benar (true), jika kondisi bernilai salah maka aksi2 yang akan dilaksanakan. 4
Contoh 1: Dibaca sebuah bilangan bulat dari piranti masukan. Diminta mencetak pesan bilangan genap jika bilangan tersebut adalah genap atau bilangan ganjil jika bilangan tersebut adalah ganjil. Algoritma Genap_Ganjil {mencetak pesan bilangan genap jika sebuah bilangan bulat yang dibaca merupakan bilangan genap atau bilangan ganjil jika bilangan tsb ganjil} Bil : integer Deskripsi : read (bil) if bil mod 2 = 0 then write ( bilangan genap ) else write ( bilangan ganjil ) 5
Contoh 2: Tulis algoritma yang membaca dua buah bilangan bulat dari piranti masukan, lalu tentukan bilangan terbesar dari kedua bilangan tersebut. Algoritma Maksimum {menentukan bilangan terbesar dari dua buah bilangan bulat} a,b : character Deskripsi : read (a,b) if a > b then write ( Bilangan terbesar :,a) else write ( Bilangan terbesar :,b) 6
Tiga Kasus atau Lebih if kondisi1 then Aksi1 else if kondisi2 then Aksi2 else If kondisi3 then Aksi3 Contoh 1: Tulis algoritma yang membaca sebuah bilangan bulat, lalu menentukan apakah bilangan tersebut positif, negatif atau nol. 7
Algoritma Jenis_bilangan {mencetak pesan bilangan positif jika bilangan bulat yang dibaca > 0, atau bilangan negatif jika < 0 atau nol jika = 0} Bil : integer Deskripsi : read (bil) if bil > 0 then write ( bilangan positif ) else if bil < 0 then write ( bilangan negatif ) else if bil = 0 then write ( nol ) Program Menghitung Total Harga Barang Jika Jumlah barang yang dibeli < 100 buah, maka harga perbarang yang dibeli adalah Rp 10.000,- Jika jumlah barang yang dibeli lebih besar dari atau sama dengan 100 dan kurang daari 150, maka harga perbarang adalah Rp 9.500 Jika jumlah barang yang dibeli lebih dari atau sama dengan 150, maka harga perbarang adalah RP 9.000,- Masukan dari program ini adalah jumlah barang yang dibeli Keluarannya adalah harga yang harus dibayar 8
Algoritma Program Deklarasi Jumlah : integer; Harga, total : Real; Deskripsi Write ( Masukan jumlah barang ) Read (Jumlah) If Jumlah < 100 then Harga 10000 If Jumlah >= 100 and jumlah < 150 then Harga 9500 If Jumlah >= 150 then Harga 9000 End if Total Harga * Jumlah Write (harga) Program Hubungan 2 garis Masukan dari kedua gradien kedua garis ini bertipe real. Keluarannya adalah hubungan antara 2 garis yaitu : Sejajar jika m1=m2 Tegak lurus jika m1.m2= -1 Perpotongan jika tidak memenuhi keduanya 9
Algoritma Program Deklarasi M1,m2 : real; Hubungan : string; Deskripsi Write (Masukan Nilai garis 1); Read (m1); Write (Masukan Nilai garis 2); Read (m2); If m1 = m2 then Hubungan = sejajar If m1.m2 = -1 then Hubungan = Tegak lurus Hubungan = Berpotongan End if Write ( hubungannya = ); Write (hubungan) Program Kuadran Masukan dari program ini adalah 2 buah bilangan real yang melambangkan koordinat disuatu titik Keluaran program ini adalah Kuadran I, Kuadran II, Kuadran III, Kuadran IV 10
Algoritma Program Koordinat : Record <x : real; y : real> P : Koordinat Deskripsi Write ( Px = ), Read (P.x) Write ( Py = ), Read (P.y) If P.x>0 and P.y>0 then kuadran = kuadran I If P.x<0 and P.y>0 then kuadran = kuadran II If P.x<0 and P.y<0 then kuadran = kuadran III If P.x>0 and P.y<0 then kuadran = kuadran IV Struktur Case Case (nama) Kondisi1 : Aksi1 kondisi2 : Aksi2 kondisi3 : Aksi3... kondisin : AksiN [otherwise aksix] endcase 11
Contoh : Tulis algoritma yang membaca sebuah titik, lalu menentukan kuadran titik tersebut pada bidang kartesian. Algoritma Kuadran_titik {menentukan kuadran sebuah titik di bidang kartesian} Type titik : record <x: real, y : real> P : titik Deskripsi : read (p.x,p.y) case (p.x, p.y) (p.x > 0)and (p.y > 0) : write ( kuadran 1 ) (p.x < 0)and (p.y > 0) : write ( kuadran 2 ) (p.x < 0)and (p.y < 0) : write ( kuadran 3 ) (p.x > 0)and (p.y < 0) : write ( kuadran 4 ) otherwise write ( tidak terletak di kuadran manapun ) endcase 12