BAB IV STRUKTUR PROGRAM Struktur program pada dasarnya tersusun 3 struktur program utama yaitu : a. Struktur Berurutan (Sequence Structure) b. Struktur Seleksi (selection Structure) c. Struktur Perulangan (Looping Structure)
IV.1. Struktur berurutan Struktur berurutan, dimana perintah atau pernyataan dijalankan dalam suatu urutan yang telah ditentukan. Hanya ada satu cara memulainya yaitu dari bagian atas, dan cara untuk keluarnya yaitu dari bagian bawah.
• Dengan program Pascal akan tampak sebagai berikut : …………….. ……………… Begin statement1; Statement2; statement3; End. Statement1 akan dikerjakan terlebih dahulu, kemudian statement2 dan terakhir statement3.
Contoh: untuk menghitung persegi panjang
Uses crt; Var Luas,P,L:integer; Begin clrscr; write(‘ Masukan Panjang : ‘); readln(P); write(‘ Masukan Lebar : ‘); readln(L); Luas := P*L; write(‘ Luas persegi panjang : ‘,luas); readln; End.
IV.2. Struktur Seleksi Untuk melakukan proses pengujian dalam mengambil suatu keputusan guna mengeksekusi suatu blok intruksi, yang menilai dua atau beberapa keadaan sekaligus. Kondisi yang dinilai berupa ekspresi, dengan nilai True atau False. Jika nilai “True” maka proses akan mengeksekusi pernyataan 1,2 dan seterusnya. Jika bernilai “False” proses akan mengeksekusipernyataan a,b dan seterusnya.
Contoh dalam program pascal ……….. ………… begin statement1; if kondisi then sattement2; else statement3; statement4; ……. …… End.
IV.2.1. Operator
Operator
Operasi
=
Sama dengan
<>
Tidak sama dengan
>
Lebih Besar dari
>=
Lebih besar atau sama dengan
<
Lebih Kecil dari
<=
Lebih besar atau sama dengan
IV.2.2. Statement IF …Then Bentuk umum dari IF … Then IF (kondisi) THEN Begin ……… ………. End. Contoh Program. Program Bilpositif; Uses Crt; Var Bil: Integer; Begin write(‘Masukan Sebuah bilangan : ‘ ); readln(bil); If bil > 0 then writeln (‘bilangan positif ‘); readln; End.
• Program diatas hanya bisa menghasilkan keluaran jika bilangan yang dimasukan lebih besar dari 0, dan jika kurang dari 0, tidak akan ditampilkan keluarannya, karena kondisi yang dibuat tunggal.
IV.2.3. Statement IF…THEN..Else Bentuk umum dari IF..THEN..ELSE adalah: IF (kondisi) Then begin ….. ….. End; else begin ….. ….. end;
Contoh Program Bilpositif; Uses crt; Var bil: integer; Begin write(‘masukan sebuah bilangan : ‘); readln(bil); if bil > 0 then writeln(‘ bilangan Positif ‘) else writeln(‘bilangan Negatif ‘); Readln; End.
Berbeda dengan bentuk sebelumnya, dalam program diatas, jika bilangan yang dimasukan >0 akan dieksekusi dengan “bilangan positif” dan jika bukan maka keluarannya adalah “bilangan Negatif”.
IV.2.4. Statement IF..THEN..ELSE IF • Statement IF..THEN.. ELSE IF digunakan untuk menyelesaikan permasalahan dengan jumlah kondisi lebih dari 2 buah. • Bentuk umum dari statement ini adalah: If (kondisi) then begin …. ….. end else if (kondisi2) Then begin ………. ……….. end;
salah
kon1
salah
kon2
statement1
salah
kon3 statement2 benar
kon4 salah
statement3 benar
statement4 benar benar
statement5
Contoh: untuk mencetak nilai akhir mahasiswa sesuai dengan grade yang telah ditentukan, dengan tabel sebagai berikut :
Nilai Akhir
Grade
0..45
E
46..55
D
56..70
C
71..84
B
85..100
A
CONTOH PROGRAM SELEKSI IF-THEN-ELSE IF : USES CRT; VAR NA: INTEGER; GRADE:CHAR; BEGIN WRITE(‘MASUKAN NILAI AKHIR : ‘); READLN(NA); IF NA <= 45 THEN GRADE := ‘E’ ELSE IF NA<=55 GRADE :=‘D’ IF NA <= 70 THEN GRADE := ‘C’ ELSE IF NA<=84 GRADE :=‘B’ ELSE GRADE := ‘A’ WRITELN(‘NILAI GRADE ANDA : ‘,GRADE); END.
IV.2.5. STATEMENT CASE … OF Case of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statement yang diawali dengan permasalahan (case label). Bentuk umum dari CASE … OF adalah : CASE (ungkapan) OF daftar label 1: statement1; daftar label 2: statement2; daftar label 3: statement3; daftar label 4: statement4; …………… end; end;
Nilai pemilihan pada daftar konstanta1
benar
statement1
benar
statement2
benar
statement3
benar
statement4
salah Nilai pemilihan pada daftar konstanta2 salah Nilai pemilihan pada daftar konstanta3 salah Nilai pemilihan pada daftar konstanta4 salah Pernyataan yang mengikuti ELSE
Contoh program menggunakan CASE…OF Uses crt; Var na:integer; Grade : char; BEGIN WRITE(‘MASUKAN NILAI AKHIR = ‘); READLN(NA); Case (NA) of 0 .. 45 : GRADE := ‘E’; 46 .. 55 : GRADE := ‘D’; 56 .. 70 : GRADE := ‘C’; 71 .. 84 : GRADE := ‘B’; 85 .. 100 : GRADE := ‘A’; END; WRITELN(‘NILAI GRADE ANDA := ‘,GRADE); END.
IV.2.6 Kondisi Tersarang IF berada didalam IF Contoh : Uses Crt; Var a,b,c,d,Z1,Z2,X1,X2 : real; lagi : char; Begin Clrscsr; lagi;:= ‘Y’; While (lagi =‘Y’) or (lagi = ‘y’) do Begin A:=0; while A= 0 do write ( ‘masukan Nilai A : ‘); readln(a); end; write ( ‘masukan Nilai B : ‘); readln(b); write ( ‘masukan Nilai C : ‘); readln(c); {menghitung nilai Diskriminan } D:=B*B – 4*C*A; {menyeleksi Nilai Diskriminan } if d= 0 then begin x1:= -b/(2*A) writeln(‘mempunyai akan kembar yaitu : ‘); writeln(‘X1 =,X2 = ‘, X1 :4:2); end
Else begin if d>0 then begin X1:= ((-b +Sgrt(D))/(2*a); X2:= ((-b-SQRT(D)/(2*a); writeln(‘ada Dua akar real yang berbeda : ‘); Write (‘ X1 = ‘,X1:4:2); Write (‘ X2 = ‘,X2:4:2); end Else Begin Z1 := -b /(2*a); Z2 := Sqrt(Sqrt(-d)/(2*a); Writeln(‘ ada 2 akar imajiner berlaian, yaitu : ‘); write(‘X1 = ‘,z1:4:2); write(‘X2 = ‘,z2:4:2); end; End; Write(‘ingin menghitung lagi (Y/T) ? ‘); Readln(lagi); End.
IV.3. Struktur Perulangan • •
Struktur perulangan, akan melakukan proses berulang-ulang selama kondisi masih bernilai True ( atau nilai batas yang ditetapkan belum tercapai). Kondisi akan berhenti jika hanya keadaan berubah menjadi False (atau nilai batas telah tercapai.
Struktur perulangan ada dua macam yaitu: • Struktur perulangan dengan pengujian didepan For Do dan While Do • Struktur perulangan dengan pengujian dibelakang Repeat Untiul FOR …. DO • • •
Dipakai apabila perulangannya tertentu Membutuhkan sebuah variabel kontrol yang berfungsi sebagai kounter. Perulangan dapat menaik atau menurun
Bentuk Umum For Variabel kontrol := N1 to N2 do begin ………… ………… end; ………….
• Contoh program menaik Uses crt; var I: integer; Begin for I:= 1 to 5 do begin writeln(‘ Stikom Bali ‘); end; End. Contoh program menurun Uses crt; var I: integer; Begin for I:= 5 downto 5 do begin writeln(‘ Stikom Bali ‘); end; End.
K
esimpulan : perulangan For …Do dapat digunakan :
* untuk perulangan dengan jumlah yang sudah pasti * Variabel kontrol harus bertipe integer * Perulangan dikerjakan dari awal sampai denagn nilai akhir dengan step 1 atau step-1
• WHILE … DO
Perulangan While .. Do digunakan untuk melaksanakan statement atau blok statement selama kondisi benar. Perulangan While … Do digunakan : * untuk perulangan dengan jumlah sesuai dengan kondisi tertentu * kondisi diuji terlebih dahulu * bila kondisi terpenuhi, maka loop akan dikerjakan sampai kondisi tidak terpenuhi.
Bentuk Umum While < kondisi> do begin ……. …………. end;
Contoh program dengan FOR …DO Uses crt; var N,I,Jum: integer; Rata: real; begin write(‘Banyaknya data : ‘);readln(n); begin jum:=0; for I:= 1 to n do jum:=jum+I; rata:= jum/n; writeln(‘jumlah : ‘,jum); writeln(‘rata-rata : ‘,rata); readln; end; end.
• Contoh program dengan while …do Uses crt; var N,I,Jum: integer; Rata: real; begin clrscr; write(‘Banyaknya data : ‘); readln(n); begin jum:=0; I:= 1; while I<=N do begin jum:=jum+I; I:=I+1; end; rata:= jum/n; writeln(‘jumlah : ‘,jum); writeln(‘rata-rata : ‘,rata:4:2); readln; end; end.
Struktur pengulangan dengan pengujian interasi dibelakang •
REPEAT …Until * tes akan dilakukan pada akhir perulangan * Proses akan diulang sampai suatu kondisi yang diberikan bernilai benar Perulangan REPEAT … UNTIL dipergunakan : * untuk perulangan dengan jumlah sesuai dengan kondisi tertentu * loop dikerjakan selama kondisi tidak terpenuhi sampai dengan kondisi terpenuhi * loop dikerjakan terlebih dahulu, kemudian baru kondisi diuji. Bentuk umum : REPEAT ………. ………. UNTIL
;
•
Contoh repeat … until
Uses crt; var N,I,Jum: integer; Rata: real; begin clrscr; write(‘Banyaknya data : ‘); readln(n); begin jum:=0; I:= 1; repeat I:= I+1; jum:=jum+I; rata:= jum/n; until I>= N ; writeln(‘jumlah : ‘,jum); writeln(‘rata-rata : ‘,rata:4:2); readln; end.
Perulangan tersarang •
Perulangan kadang-kadang tidak dilakukan hanya sekali tetapi berulang-ulang, mungkin juga terjadi
mpengulangan didalam perulangan. •
Perulangan tersarang FOR…DO perulangan FOR..DO tersarang tersarang merupakan perulangan FOR..DO yang satu di dalam perulangan FOR..Do yang lain
Contoh : var I,j: integer; begin for I:= 1 to 5 do begin for j:= 1 to 3 do writeln(I:13,j:3); end; End.
•
Perulangan tersarang WHILE …DO Perulanagn While..do tersarang merupakan perulangan While ..Do yang satu di dalam perulangan While …do yang lainnya.
Contoh Uses Crt; Var n,I,jum : integer; rata :real; lagi : char; Begin Clrscsr; lagi;:= ‘Y’; While (lagi =‘Y’) or (lagi = ‘y’) do Begin write ( ‘masukan banyaknya data : ‘); readln(n); While n<> 0 do begin jum:=0; I:=1; While I <= n do begin jum:=jum+I; I:=I+1; End; rata := jum/n; writeln ( ‘jumlah : ‘,jum); writeln ( ‘rata-rata : ‘,rata); Write(‘ingin menghitung lagi (Y/T) ? ‘); Readln(lagi); readln End.
Perulangan tersarang REPEAT …UNTIL •
Perulangan REPEAT … UNTIL tersarang adalah salah satu perulangan Repeat..Until yang salah satu berada didalam perulangan Repeat..Until ynag lainnya. Contoh Uses crt; Var a,b,c : integer; begin writeln ( ‘ sisi A Sisi B Sisi C’ ); A:= 1; repeat repeat C:= sqrt(A*A + B*B); writeln(A:5:3, B:10:3, C:15:3); B:=b+5; Until B> 25 A:= A+1; Until A> 3 Write(‘----------------------------------’); Readln; End.