DUA KASUS IF – THEN - ELSE TIGA KASUS Atau Lebih

if kondisi_dipenuhi true then Laksanakan_aksi Jika Aksi lebih dari satu buah, maka : if kondisi_dipenuhi true then begin Laksanakan_aksi end; contoh-contoh: a if x 100 then x :=x+1 endif b if kar = ‘’ then stop:=true endif c if max 10 then max:=x endif Contoh Satu Kasus: Tulis algoritma yang membaca sebuah bilangan bulat dari suatu piranti masukan. Diminta mencetak pesan ”Bilangan genap” jika bilangan tersebut genap.Bilangan genap adalah bilangan yang habis dibagi 2. Program Genap Deklarasi : Bil : integer Algoritma : Write ’Masukan Bilangan :’ Read Bil If Bil mod 2 =0 Then Write ’Bilangan Genap’ Endif Pascal : Program Genap; Var Bil : integer; Begin Write ’Masukan Bilangan :’; Read Bil; If Bil mod 2 =0 Then Write ’Bilangan Genap’; End.

4.2 DUA KASUS IF – THEN - ELSE

Notasi algoritma untuk analisis dengan dua kasus adalah dengan menggunakan konstruksi IF – THEN - ELSE jika-maka-kalau-tidak dalam bentuk: IF kondisi_dipenuhi true THEN Laksanakan_aksi1 Else {kondisi_tidak dipenuhi false} Laksanakan_aksi2 EndIf Notasi Pascal : if kondisi_dipenuhi true then Laksanakan_aksi1 else {kondisi_tidak dipenuhi false} Laksanakan_aksi2; Keterangan : Aksi1 dilaksanakan jika kondisi bernilai benar, sebaliknya jika kondisi bernilai salah maka Aksi2 akan dilaksanakan, bisa diperhatikan bahwa else menyatakan ingkaran negation dari kondisi. Contoh-contoh: a if a0 then write’bilangan positif’ else write’bukan bilangan positif’ endif b if k mod 2 = 0 then write’bilangan genap’ else write’bilangan ganjil’ endif Contoh Dua Kasus: Tulislah program yang membaca sebuah bilangan bulat dari suatu piranti masukan. Diminta mencetak pesan ”Bilangan genap” jika bilangan tersebut adalah genap, atau ”Bilangan ganjil” jika bilangan tersebut adalah ganjil. Program Genap_Ganjil Deklarasi : Bil : integer Algoritma : Write ’Masukan Bilangan :’ Read Bil If Bil mod 2 =0 Then Write ’Bilangan Genap’ Else Write ’Bilangan Ganjil’ Endif Pascal : Program Genap_Ganjil; Var Bil : integer; Begin Write ’Masukan Bilangan :’; Read Bil; If Bil mod 2 =0 Then Write ’Bilangan Genap’ Else Write ’Bilangan Ganjil’; end.

4.3 TIGA KASUS Atau Lebih

Notasi algoritma untuk analisis dengan tiga kasus atau lebih adalah dengan menggunakan konstruksi IF – THEN - ELSE bertingkat-tingkat dalam bentuk : IF kondisi1_dipenuhi true THEN Laksanakan_aksi1 Else IF kondisi2_dipenuhi THEN Laksanakan_aksi2 Else IF kondisiN_dipenuhi THEN Laksanakan_aksiN Else Laksanakan_aksi_lain EndIf EndIf EndIf Contoh Tiga Kasus Atau Lebih: Tulislah program yang membaca sebuah bilangan bulat, lalu menentukan apakah bilangan tersebut positif, negatif, atau nol. Program Cek_Bilangan Deklarasi : Bil : integer Algoritma : Write ’Masukan Bilangan :’ Read Bil If Bil 0 Then Write ’Bilangan Positif’ Else If Bil 0 Then Write ’Bilangan Negatif’ Else Write ’Bilangan Nol’ Endif Endif Pascal : Program Cek_Bilangan; Var Bil : integer; Begin Write ’Masukan Bilangan :’; Readln Bil; If Bil 0 Then Write ’Bilangan Positif’ Else If Bil 0 Then Write ’Bilangan Negatif’ Else Write ’Bilangan Nol’; end. 4.4 Struktur Kontrol Pemilihan Alternatif Case Untuk masalah dengan dua kasus atau lebih, struktur CASE, dapat menyederhanakan penulisan if_then_else. CASE... OF... merupakan struktur kontrol pemilihan alternatif, dimana dapat dipilih salah satu pelaksanaan aksi diantara sejumlah alternatif kondisi yang disajikan. Notasi Algoritmik : Ket : Ekspresi adalah sembarang ekspresi aritmetika atau Boolean yang menghasilkan suatu nilai Konstanta. CASE memeriksa apakah nilai dari ekspresi tersebut sama dengan salah satu dari : Alternatif_Kondisi1, Alternatif_Kondisi2,….Alternatif_KondisiN Jika nilai ekspresi sama dengan alternatif kondisi k , maka laksanakan_aksi k Jika tidak ada satupun nilai ekspresi yang cocok, maka pernyataan sesudah Otherwise dikerjakan. Otherwise bersifat opsional, artinya boleh ditulis atau tidak didalam konstruksi CASE. Notasi Pascal : CASE ekspresi OF Alternatif_Kondisi1 : laksanakan_aksi1 Alternatif_Kondisi2 : laksanakan_aksi2 Alternatif_KondisiN : laksanakan_aksiN Otherwise Laksanakan_aksi_lain EndCase case ekspresi of Alternatif_Kondisi1 : laksanakan_aksi1 Alternatif_Kondisi2 : laksanakan_aksi2 Alternatif_KondisiN : laksanakan_aksiN else Laksanakan_aksi_lain end; Keterangan : Alternatif_Kondisi1, Alternatif_Kondisi2,….Alternatif_KondisiN adalah nilai yang bertipe integer, char, atau boolean. Contoh: Tulislah Algoritma yang membaca seluruh bilangan bulat yang nilainya terletak antara 1 sampai 4, lalu menuliskannya ke piranti keluaran. Misalnya : input =1, maka output=’satu’ Solusi STRUKTUR IF-THEN-ELSE PROGRAM KonversiAngka Teks {mencetak kata untuk angka 1 sampai 4} DEKLARASI: angka:integer ALGORITMA readangka if angka=1 then write ’satu’ else if angka=2 then write’dua’ else if angka=3 then write’tiga’ else if angka=4 then write’empat’ else write’angka yang dimasukan salah’ endif endif endif endif Solusi STRUKTUR CASE...OF… Program Angka Deklarasi : A: integer Algoritma : Write ’Masukan Angka 1-4 :’ Read A Case A Of 1 : Write ’Satu’ 2 : Write ’Dua’ 3 : Write ’Tiga’ 4 : Write ’Empat’ Otherwise Write ’Angka yang anda masukan salah’ EndCase Pascal : Program Angka; Var A : integer; Begin Write ’Masukan Angka 1-4 :’; Readln A; Case A Of 1 : Write ’Satu’; 2 : Write ’Dua’; 3 : Write ’Tiga’; 4 : Write ’Empat’; Else Write ’Angka yang anda masukan salah’; end; end. LATIHAN 1. Buatlah algoritma untuk membaca sebuah karakter dan menentukan karakter yang dimasukan adalah karakter ’A’ atau bukan 2. Buatlah algoritma untuk membaca sebuah bilangan bulat dari suatu papan ketik, lalu mencetak pesan bahwa ”Bilangan tersebut lebih besar dari 100” jika bilangan tersebut adalah lebih besar dari 100 3. Buatlah algoritma yang membaca angka tahun masehi dari papan ketik, lalu menentukan apakah tahun tersebut merupakan tahun kabisat 4. Buatlah algoritma untuk menentukan bilangan yang dimasukan adalah habis dibagi 5, jika bilangan tersebut habis dibagi 5 maka pesan tertulis ’bilangan habis dibagi 5’ jika tidak ’bilangan tidak habis dibagi 5’ 5. Buat Algoritma untuk membaca temperature air T dalam satuan derajat celcius pada tekanan normal, lalu menentukan apakah wujud air tersebut dalam keadaan padat T  0 C , Cair 0 C T 100  C atau Gas T  100 C 6. Buat algoritma untuk menghitung Nilai Akhir : - Input : Nilai UTS,UAS,Quiz,Tugas - Nilai= Tugas 0.1 + Quiz0.2 + UTS0.3+ UAS0.4 - Dengan IF then Else tentukan Nilai akhir dimana : 80  Nilai  100 → Indeks A 70  Nilai 80 → Indeks B 55  Nilai 70 → Indeks C 40  Nilai 55 → Indeks D  Nilai 40 → Indeks E - Output : Tugas, Quiz, UTS, UAS, Nilai, Nilai_Akhir 7. PT XYZ membutuhkan suatu program untuk perhitungan gaji pegawai dengan ketentuan sebagai berikut: Go l GajiPokok UpahLembur Tunjangan Ppn I 1000000 20000 50 Gaji Pokok 5 II 850000 15000 40 Gaji Pokok 3 III 750000 12000 30 Gaji Pokok 2 IV 500000 10000 20 Gaji Pokok 1 Potongan pajak adalah ppn GajiPokok Para pegawai bekerja selama 150 jam, bila melebihi jam tersebut maka dihitung lembur, kemudian pegawai yang sudah menikah mendapatkan Tunjangan sebesar 15 dari GajiPokok Berdasarkan ketentuan tersebut, buatlah Algoritma untuk menyelesaikan permasalah tersebut Output yang diminta yaitu : NIK, Nama, Gol dan Gaji Bersih Rumus : 1. GajiBersih := GajiPokok+Tunjangan – Potongan 2. GajiBersih := GajiPokok+Tunjangan+JamLemburUpahLembur-Potongan MATERI 5 NOTASI PENGULANGAN Salah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk mengulang suatu instruksi, bahkan aksi, secara berulang-ulang dengan performansi yang sama. Berbeda dengan manusia yang cenderung melakukan kesalahan jika melakukan hal yang sama karena lelah atau bosan. Struktur pengulangan secara umum terdiri dari dua bagian : 1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara ekplisit oleh pemrogram atau dikelola sendiri oleh komputer implisit. 2. Badan pengulangan, yaitu aksipernyataan yang harus diulang selama kondisi yang ditentukan untuk pengulangan masih dipenuhi. Disamping itu, struktur pengulangan biasanya disertai dengan bagian : 1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali. 2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan. Insialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisisalisasi umumnya diperlukan. Struktur pengulangan secara umum : inisialisasi awal pengulangan badan pengulangan akhir pengulangan terminasi Pengulangan harus berhenti, ini yang harus dijamin oleh pemrogram. Karena algoritma yang tidak pernah berhentipengulangan yang terus menerus looping adalah algoritma yang salah. Struktur Kontrol pengulangan terdiri dari : a. Pernyataan FOR b. Pernyataan WHILE a. Pernyataan REPEAT 5.1 Pernyataan FOR Adalah pengulangan yang paling sederhana. Pengulangan ini dipakai jika kita mengetahui berapa kali pengulangan akan dilakukan. Bentuk umum pernyataan FOR ada dua macam, yaitu menaik ascending atau menurun descending. FOR menaik Bentuk umum struktur kontrol FOR menaik ini, dapat dirumuskan dengan : Notasi Algoritmik : FOR nama_pencacah nilai_awal TO nilai_akhir DO aksipernyataan EndFor Keterangan:  Aksipernyataan adalah satu atau lebih instruksi yang diulang. Keterangan:  Nilai_awal dan nilai_akhir pada umumnya bilangan integer atau karakter, asal nilai_akhir ≥ nilai_awal  Pengulangan dilaksanakan berulang-ulang tanpa kondisi atau syarat apapun dengan jumlah ulangan= nilai_akhir – nilai_awal + 1  Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah = nilai_akhir. Notasi Pascal : Contoh : Misalkan kita ingin mencetak angka 1 sampai 10, maka algoritma dan programnya adalah : Algoritmik : Program Tulis_nomor Deklarasi : nomor: integer Algoritma : FOR nomor 1 To 10 DO writenomor EndFor Pascal : Program Tulis_nomor; Var nomor : integer; Begin for nomor:= 1 to 10 do writelnnomor; end. for nama_pencacah:=nilai_awal to nilai_akhir do begin aksipernyataan End; FOR menurun Bentuk umum struktur kontrol FOR menurun ini, dapat dirumuskan dengan : Notasi Algoritmik : FOR nama_pencacah nilai_awal DOWNTO nilai_akhir DO aksipernyataan EndFor Keterangan:  Aksipernyataan adalah satu atau lebih instruksi yang diulang.  Nilai_awal dan nilai_akhir pada umumnya bilangan integer atau karakter, asal nilai_awal ≥ nilai_akhir  Pengulangan dilaksanakan berulang-ulang tanpa kondisi atau syarat apapun dengan jumlah ulangan= nilai_awal – nilai_akhir + 1.  Pada awalnya, pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis berkurang satu setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah = nilai_akhir. Notasi Pascal : Contoh : Misalkan kita ingin meghitung mundur angka dari 10 sampai 1, maka algoritma dan programnya adalah : Algoritmik : Program hitung_mundur Deklarasi : nomor: integer Algoritma : FOR nomor 10 Downto 1 DO writenomor EndFor Pascal : Program Hitung_mundur; Var nomor : integer; Begin for nomor:= 10 downto 1 do for nama_pencacah:=nilai_awal downto nilai_akhir do begin aksipernyataan end; writelnnomor; end.

5.2 Pernyataan WHILE