Percabangan dan Perulangan PEMPROGRAMAN TERSTRUKTUR 1 PERCABANGAN Struktur IF … THEN … Struktur CASE … OF … IF … THEN … IF akan diikuti oleh ekspresi dan selalu berpasangan dengan THEN kemudian diikuti dengan statemen. Bila statemen yang akan dilakukan hanya satu, maka kita tidak perlu menuliskan blok begin…end. Bila statemen yang akan dilakukan lebih dari satu, maka kita harus menuliskan statemen pada blok begin…end. IF … THEN … If (ekspresi) then statemen; If (ekspresi) then begin statemen; statemen; ……………... end. IF … THEN … Satu kasus. if (kondisi) then aksi; Bila ekspresi yang diperiksa bernilai benar maka program akan mengeksekusi statemen-statemen, jika tidak maka program tidak akan mengeksekusinya. CONTOH Program if_satu_kasus; Var x : integer; Begin write(‘masukkan angka’); readln(x); if (x > 5) then writeln (x, ‘ lebih besar dari 5’); Readln; End; IF … THEN … ELSE … Dua Kasus if (kondisi) then aksi1 else aksi2 ; CONTOH Program ganjil_atau_genap; Var bilangan : integer; Begin write(‘masukkan angka’); readln(bilangan); if (bilangan mod 2 = 0) then writeln (bilangan, ‘ adalah genap’); else writeln (bilangan, ‘ adalah ganjil’); Readln; End; IF … THEN … ELSE … Tiga Kasus atau Lebih If (kondisi 1) then aksi1 Else If (kondisi 2) then aksi2 Else If (kondisi 3) then aksi3 Else If (kondisi 4) then aksi4 Else aksi5; Jika anda menggunakan else, perlu diingat bahwa satu baris / statemen sebelum else tidak diperkenankan mengandung tanda “ ; “ CONTOH Uses Crt; var Nilai : Byte; begin clrscr; write('Baca nilai :');readln(Nilai); if nilai>=80 then write('Nilai = A') else if nilai>=65 then write('Nilai = B') else if nilai>=41 then write('Nilai = C') else if nilai>=26 then write('Nilai = D') else write('Nilai = E'); readln; end. LATIHAN Buatlah program yang meminta input satu huruf (char), kemudian menghasilkan output yang menjelaskan input tersebut merupakan huruf vokal atau huruf konsonan. CASE … OF … Digunakan jika harus memilih dari banyak pilihan Case (variabel) of kondisi1 : aksi1 ; kondisi2 : aksi2 ; ……………. ; kondisi-n : aksi-n ; CASE … OF … Case (variabel) of Kondisi1 : begin statemen1; statemen2; ………………. end; Kondisi2 : begin statemen1; statemen2; ………………. end; Else begin statemen1; statemen2; ………………. end; End. Ekspresi yang digunakan dalam statemen Case adalah yang mempunyai tipe ordinal yaitu dengan batas antara (-32768 s/d 32767). Sehingga tipe lain seperti integer yang bertipe longint, tipe string atau real tidak boleh digunakan. CONTOH Var Nilai : integer; begin write('Baca nilai ='); readln(Nilai); Case Nilai of 0..25 : writeln('Nilainya = E'); 26..39 : writeln('Nilainya = D'); 40..64 : writeln('Nilainya = C'); 65..79 : writeln('Nilainya = B'); 80..100: writeln('Nilainya = A'); else writeln('Tidak ada nilai yang dimaksud'); end; readln; end. CONTOH Program contoh_case_of; Uses crt; Var nomorBulan: integer; Begin clrscr; write(‘masukkan nomor bulan, antara 1-12’); readln(nomorBulan); Case (nomorBulan) of 1 : writeln (‘ bulan pertama adalah Januari’); 2 : writeln (‘ bulan kedua adalah Februari’); …………………………………………………………….. 12 : writeln (‘ bulan kedua belas adalah Desember’); else writeln (‘ nomor yang anda masukkan salah’); end; Readln; End. LATIHAN Buatlah sebuah program yang akan meneriman masukan bilangan bulat dari user. Jika bilangan yang dimasukkan 0, maka program akan menampilkan string ‘Minggu’; jika user memasukkan bilangan 1, maka program akan menampilkan string ‘Senin’; dan seterusnya sampai Sabtu; jika user memasukkan bilangan lebih dari 6, maka akan keluar string ‘Hari tidak valid’. PERULANGAN - Struktur FOR….DO…. - Struktur WHILE…DO…… - Struktur REPEAT…UNTIL…. FOR … DO … Digunakan untuk melakukan perulangan yang banyaknya sudah diketahui secara pasti. Format : For count := awal to akhir do aksi/ blok aksi ; Contoh : For i:=1 to 5 do write(‘saya’); Variabel i, dideklarasikan di var. CONTOH Program Latihan_perulangan: uses Crt; var N,i :integer; begin clrscr; write('Baca nilai : ');readln(N); for i:= 1 to N do write(i:3); readln; end. CONTOH Program latihan2; Var i, nilai, jumlah :integer; Begin write (‘masukkan nilai’); readln(nilai); jumlah := 0; for i:= 1 to nilai do begin jumlah := jumlah + i; end; writeln (‘jumlah dari ‘,nilai,’ bilangan positif pertama adalah’, jumlah); Readln; End. LATIHAN Buat program untuk menghitung nilai dari faktorial. 5 ! = 1 x 2 x 3 x 4 x 5. WHILE … DO … Terdapat suatu kondisi yang harus dilakukan terlebih dahulu sebelum melakukan perulangan. Format While ( kondisi ) do Begin Statemen1; Statemen2; ………………. End; CONTOH Program Latihan_while; uses crt; var i:integer; begin clrscr; write('Masukkan angka :');readln(i); while i<5 do begin writeln(‘D3 Komsi UGM'); i:=i+2; end; Readln; End. LATIHAN Buat program yang menghasilkan satu nilai x yang memenuhi persamaan x2 + 2x – 30 = 0. REPEAT ... UNTIL ... Hampir sama dengan while..do.. Perbedaannya adalah, struktur ini akan terus melakukan perulangan apabila kondisi masih bernilai false dan berhenti ketika kondisi sudah bernilai true. Pengecekan kondisi dilakukan setelah mengeksekusi statemen. REPEAT ... UNTIL ... Format repeat statement1; statement2; …………………. until ( kondisi ); CONTOH Program latihan_repeat_until; Var masukan : integer; Begin repeat write(‘pencet nomor satu’); readln(masukan); if (masukan<>1) then writeln (‘wee ngeyel…’); until (masukan = 1); writeln (‘Pinteeerrr’); Readln; End. LATIHAN Buatlah program penjumlahan. Akan tetapi pengguna dapat menggunakannya terus menerus tanpa harus memberhentikan program. SILAHKAN DICOBA Buat program yang menampilkan tulisan JUM’AT