STRUKTUR PROGRAM
Armadyah Amborowati , Jurusan Teknik Informatika, STMIK AMIKOM Yogyakarta, Jl. Ring Road Utara, Condong Catur, Sleman, Yogyakarta - Indonesia
Pemrograman terstruktur pada dasarnya tersusun atas tiga struktur program utama, yaitu: Struktur berurutan, struktur seleksi, dan struktur perulangan.
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. Urutan eksekusi berjalan urut ( satu arah dan tidak bercabang ) dan tidak ada interupsi lain.
Gambar 6.1. Struktur berurutan Dengan program Pascal akan tampak sebagai berikut: ………… ………… Begin Pernyataan 1; Pernyataan 2; Pernyataan 3; end.
Pernyataan 1 akan dikerjakan terlebih dahulu, kemudian pernyataan 2 dan berakhir pada pernyataan 3.
1
2 3
Contoh: Program contoh_urut; uses wincrt; var NIP:string[2]; gaji_pokok,tunjangan,total_gaji:longint; begin writeln('Masukkan NIP='); {1} readln(NIP); {2}
writeln('masukkan gaji pokok '); {3} readln(gaji_pokok); {4}
writeln('masukkan tunjangan ='); {5} readln(tunjangan); {6}
total_gaji:=gaji_pokok+tunjangan; {7} writeln('NIP anda =',' ',NIP); {8}
writeln('Gaji bersih anda =',' ',total_gaji); {9} end.
Output:
Perintah dikerjakan secara urut dari nomor 1 sampai dengan nomor 9.
Struktur Seleksi
Struktur seleksi digunakan untuk melakukan proses pengujian dalam mengambil suatu keputusan. Kondisi yang dinilai berupa ekspresi, dengan nilai true atau false.
Pada ekspresi Boolean, operasi relasi yang digunakan sehingga menghasilkan nilai True jika benar dan False jika salah.
6.2.1. Statement IF..THEN
Bentuk umum dari IF..THEN adalah: IF < ekspresi Boolean > then Begin
…….. …….. end;
Jika syarat dipenuhi atau ekspresi Boolean bernilai true maka akan mengeksekusi penyataan pada blok begin..end.
Contoh: Program contoh_ifthen; uses wincrt; const pajak=0.05; var NIP:string[2]; gaji_pokok,tunjangan,total_gaji:real; begin writeln('Masukkan NIP='); readln(NIP);
writeln('masukkan gaji pokok ='); readln(gaji_pokok);
writeln('masukkan tunjangan ='); readln(tunjangan);
total_gaji:=gaji_pokok+tunjangan; IF total_gaji>=2000000 then
total_gaji:=total_gaji - pajak; writeln('NIP anda =',' ',NIP);
writeln('Gaji bersih anda =',' ',total_gaji:10:2); readln;
donewincrt; end.
Output:
6.2.2. IF …Then…Else
Statemen ini digunakan jika ada 2 pilihan. Jika syarat dipenuhi atau ekspresi Boolean bernilai true maka akan mengeksekusi penyataan pada blok begin..end, jika tidak maka akan mengeksekusi penyataan setelah else.
Bentuk Umum dari If..Then..Else adalah: IF < ekspresi Boolean > then
Begin
…….. Blok begin..end digunakan jika pernyataan lebih dari 1. ……..
end {tanda ; dihilangkan karena IF belum berakhir} Else
Begin
……. Blok begin..end digunakan jika pernyataan lebih dari 1. ……..
end; { menggunakan tanda ; karena mengakhiri blok IF }
Contoh: Program nilai; uses wincrt; var PPN,Agama,SPBD,Total_nilai:byte; begin writeln('angka range 1..10'); Writeln('masukkan nilai PPN='); readln(PPN);
Writeln('masukkan nilai Agama='); readln(Agama); Writeln('Masukkan Nilai SPBD='); readln(SPBD); Total_nilai:=PPN+Agama+SPBD; Writeln('nilai minimum = 25'); If Total_nilai >= 25 then Begin
Writeln('total nilai anda=',' ',total_nilai); writeln('Baguuuus')
end else Begin
Writeln('total nilai anda=',' ',total_nilai); Writeln('belajar lagi ya!');
end; readln;
end.
Output:
6.2.3. Statement IF..Then..Else If
Statement IF..Then..Else If digunakan untuk menyelesaikan permasalahan dengan jumlah kondisi atau pilihan lebih dari dua.
Jika ada 2 pilihan maka ada 1 if, Jika ada 3 pilihan maka ada 2 if, jika ada 6 pilihan maka ada 5 if, dan pilihan yang terakhir sebagai pernyataan yang dikerjakan setelah else.
Bentuk umum statement ini adalah: IF < kondisi> Then
Begin …… end
else if < kondisi > Then Begin ……. End Else Begin …….
End; Contoh:
Buat program untuk menentukan tunjangan karyawan. Jika golongannya A maka tunjangannya 300.000, Jika B maka 250.000, jika C maka 200.000, dan jika D maka 150.000.
Dari kasus diatas ada 4 pilihan untuk besar tunjangan masing-masing golongan, maka ada 3 if dan pilihan terakhir sebagai pernyataan yang akan dieksekusi setelah else.
Contoh 1: Program golongan; uses wincrt; var gol:char; tunjangan:real; begin Writeln('golongan A,B,C,D');
Writeln('masukkan golongan anda='); readln(gol);
If Gol='A' then {if ke-1}
tunjangan:=300000 {pilihan ke-1} else if gol='B' then { if ke-2 } tunjangan:=250000 {Pilihan kedua} else if gol='C' then {if ke-3} tunjangan:=200000 {pilihan ke-3} else
tunjangan:=150000; {pilihan ke-4}
writeln('golongan anda=',' ',gol);
Writeln('tunjangan anda=',' ',tunjangan:10:2); readln;
end.
Output:
6.2.4. Operator Logika
Jika pada ekspresi Boolean syarat atau kondisi yang dibandingkan lebih dari satu, maka digunakan suatu operand yang bernama operator logika. Operator logika ini terdiri dari AND, OR, dan NOT.
1. Pernyataan AND
Pernyataan AND akan dieksekusi jika kedua kondisi dalam keadaan true.
Bentuk Umum:
IF < ekspresi Boolean 1> AND <ekspresi Boolen 2 > Then Begin
……… end;
Tabel 6.1 Tabel kebenaran AND
Kondisi 1 Kondisi 2 Nilai kebenaran True True True
True False False False True False False False False Contoh 1:
program c_and; uses wincrt;
var PBD,SPBD:byte; begin
Writeln('range 1..10');
writeln('masukkan nilai SPBD anda='); readln(SPBD);
writeln('masukkan nilai PBD anda='); readln(PBD);
If (spbd>7) and (pbd>7) then
writeln('anda berhak mengikuti Matakuliah Client-Server') else
Writeln('anda harus mengulang'); end. Output: Contoh 2: Program menentukan_mk_kosentrasi; uses wincrt; var Pemrog_internet,jarkom, komp_grafis,multimedia1:string[5]; begin
writeln('jawab lulus atau tidak');
writeln('======================================='); Writeln('Anda lulus ujian Pemrograman Internet ='); readln(pemrog_internet);
Writeln('Anda lulus ujian Jaringan komputer='); readln(jarkom);
Writeln('Anda lulus ujian komputer grafis='); readln(komp_grafis);
Writeln('Anda lulus ujian multimedia 1='); readln(multimedia1);
If (pemrog_internet='lulus') and (jarkom='lulus') then writeln('anda ikut kosentrasi e-commerce')
else if (komp_grafis='lulus') and (multimedia1='lulus') then
writeln('anda ikut kosentrasi multimedia') else
writeln('anda ikut kosentrasi sisten informasi akutansi'); end.
Output:
2. Pernyataan OR
Pernyataan OR akan dieksekusi jika salah satu kondisi dalam keadaan true.
Tabel. 6.2 Tabel Kebenaran OR
Kondisi 1 Kondisi 2 Nilai Kebenaran
True False True False True True False False True
Bentuk Umum:
IF < ekspresi Boolean 1> OR <ekspresi Boolen 2 > Then Begin ……… end; Contoh: program c_OR; uses wincrt; var PBD,SPBD:byte; begin Writeln('range 1..10');
writeln('masukkan nilai SPBD anda='); readln(SPBD);
writeln('masukkan nilai PBD anda='); readln(PBD);
If (spbd>7) or (pbd>7) then
writeln('anda berhak mengikuti MK Client-Server') else
Writeln('anda harus mengulang'); end.
Output:
3. Pernyataan NOT
Pernyataan NOT untuk mencari nilai kecuali dari suatu kondisi. Bentuk Umum:
IF NOT < ekspresi Boolean > Then Begin ……… end; Contoh: program c_not; uses wincrt; var PBD,SPBD,total_nilai:byte; begin Writeln('range 1..10');
writeln('masukkan nilai SPBD anda='); readln(SPBD);
writeln('masukkan nilai PBD anda='); readln(PBD);
Total_nilai:=SPBD+PBD;
Writeln('total nilai anda',' ',total_nilai); If NOT (total_nilai>7) then
writeln('anda berhak mengikuti MK Client-Server') else
end.
Output:
Program diatas menentukan mengikuti matakuliah client-server. Jika total nilai lebih besar 7 maka berhak mengikuti matakuliah tersebut, jika tidak ( lebih kecil sama dengan 7 ) maka harus mengulang.
6.2.5. Case..of
Pernyataan Case dipergunakan apabila kita menulis program memerlukan banyak pernyataan IF..Then..Else, sehingga program akan tampak lebih jelas untuk dibaca. Bentuk umumnya: Case Variabel OF Kondisi1:pernyataan1; Kondisi2:pernyataan2; ….. end;
Contoh 1: Dengan IF..Then…elseif Program tunjangan1; uses wincrt; var gol:char; tunjangan:real; begin Writeln('golongan A,B,C,D');
Writeln('masukkan golongan anda='); readln(gol);
If (Gol='A') then tunjangan:=300000
else if (gol='B') then tunjangan:=250000
else if (gol='C') then tunjangan:=200000
else
tunjangan:=150000;
writeln('golongan anda=',' ',gol);
Writeln('tunjangan anda=',' ',tunjangan:10:2); readln;
end.
Diganti dengan Case..of
Program tunjangan1; uses wincrt; var gol:char; tunjangan:real; begin Writeln('golongan A,B,C,D');
readln(gol); Case gol of 'A':tunjangan:=300000; 'B':tunjangan:=250000; 'C':tunjangan:=200000; 'D':tunjangan:=150000; end;
writeln('golongan anda=',' ',gol);
Writeln('tunjangan anda=',' ',tunjangan:10:2); readln;
end.
Output:
Contoh 2:
Kondisi dengan suatu range. uses wincrt;
var nilai:integer; huruf:string; begin
writeln('masukkan nilai anda='); readln(nilai); case nilai of 80..100: huruf:='A'; 70..79 : huruf:='B'; 60..69 : huruf:='C'; 0..59 : huruf:='D';
end;
writeln('nilai dalam huruf=',' ',huruf); readln;
end.
Output:
Struktur Perulangan
Secara alamiah, suatu proses bisa berupa proses berurutan dari awal hingga selesai, pilihan berdasarkan kondisi tertentu atau pengulangan bedasarkan batasan tertentu pula. PASCAL menyediakan beberapa konstruksi perintah untuk melakukan proses-proses itu, yaitu:
1. For ... do 2. While ... do 3. Repeat ... until
Beberapa kemungkinan proses pengulangan adalah jumlah pengulangan sudah tertentu atau ditentukan dalam program atau jumlah pengulangan tidak tentu tergantung banyak data yang harus diproses atau kenginan pemakai.
6.3.1. Struktur FOR <Kondisi> DO
Digunakan bila jumlah perulangan sudah diketahui atau sudah ditentukan.
Bentuk umumnya:
For variable:=<awal> to <akhir> Do Begin
Pernyataan; End;
Keterangan:
Variabel : nama variable yang digunakan sebagai kendali perulangan. <awal> : menyatakan kondisi awal nilai variable kendali perulangan. <akhir> : menyatakan kondisi akhir nilai variable kendali perulangan. <pernyataan>: merupakan instruksi-instruksi yang perlu dilakukan.
Contoh 1: Program fordo; uses wincrt; var i:byte; begin for i:=1 to 5 do begin
writeln('aditya putra gauthama'); end;
end.
Output:
Sebanyak lima baria, kemudian berhenti. Apabila kita akan melakukan perulangan secara cacah mundur kita bisa memakai FOR ..Downto..Do
Contoh 2:
program mundur; uses wincrt; var i:integer; begin
for i:=5 downto 1 do begin
writeln('i ke ',' ',i);
writeln('aditya putra gauthama'); end; end. Output: Contoh 3: Program fordo2; uses wincrt; var x,x2,x3:integer; begin Writeln('x',' ','x*x',' ','x*x*x'); for x:=1 to 10 do begin X2:=x*x; x3:=x*x*x; writeln(x,' ',x2,' ',x3);
end; readln; end. Output:
6.3.2. Struktur WHILE <Ekspresi Boolen> DO <Pernyataan>
Pernyataan akan dieksekusi jika ekspresi Boolean dalam keadaan benar. Didalam loop ada nilai yang mengontrol loop, yang nilainya harus berubah sehingga pada akhirnya program akan keluar dari loop.
Bentuk umumnya adalah:
WHILE <ekspresi boolean> DO Begin Penyataan End; Contoh: Program whiledo; uses wincrt; var nama:string[20];
i:integer; gapok:real; begin i:=1; while i<=5 do begin
writeln('masukkan nama pegawai ke ',' ',i,' ','='); readln(nama);
Writeln('masukkan gaji pokok='); readln(gapok); Writeln('================================'); i:=i+1; end; readln; end. Output:
Perulangan berhenti setelah I ke 5.
6.3.3. Struktur REPEAT..UNTIL
Pernyataan Repeat..Until hamper sama dengan pernyataan While..Do, tetapi dengan pernyataan Repeat, akan terjadi paling tidak satu kali statement.
Bentuk umumnya adalah: Repeat …… …… Perintah; ……. …. Until<ekspresi boolean>;
Perhatikan sintaknya, dalam hal ini kita tidak perlu menggunakan begin…end karena pernyataan diantara Repeat..Until diperlakukan oleh Pascal sebagai sebuah blok. Contoh: Program repeatuntil; uses wincrt; var nama:string[20]; i:integer; gapok:real; begin i:=1; Repeat
writeln('masukkan nama pegawai ke ',' ',i,' ','='); readln(nama);
Writeln('masukkan gaji pokok='); readln(gapok); Writeln('================================'); i:=i+1; until i=5; readln; end.
Output:
Latihan:
1. Menentukan nilai dalam huruf. A---Æ Nilai > 8
B---Æ Nilai > 7 C---Æ Nilai >= 6 D---Æ Nilai < 6
2. Menentukan tunjangan berdasarkan jumlah anak. Maximal 3 anak, tiap anak mendapatkan sebesar 10% dari gaji pokok.
Output----ÆTunjangan anak dan Gaji Bersih. 3. Belanja > 250.000 ---Æ Diskon 15% dari belanja
Belanja > 500.000 ---Æ Diskon 20% dari belanja Belanja <= 100.000 --Æ Diskon 0% dari belanja
Output---ÆDiskon dan Total yang harus dibayar setelah diskon.
• Gunakan struktur IF dan Case..of terhadap ketiga soal tersebut ( nomor 1 s/d 3 ).
Gunakan menggunakan For..Do, While..do,dan Repeat..until.
DAFTAR PUSTAKA
Abdul Kadir, Pemrograman Dasar Turbo Pascal, Andi Offset, 1991. Indra Yatini B., Pemrograman Terstruktur, J&J Learning, 2001.
Insap Santosa P., Dasar-dasar Pemrograman Pascal: Teori dan Program, Andi Offset, 1991.
Jogiyanto, H.M., Teori dan Aplikasi Program Komputer Bahasa Pascal Jilid I, Andi Offset, 1995.
Mamdyh M. Hanafi, Pemrograman Terstruktur dengan Bahasa Pascal, BPFE, 1995.
http://ft.uns.ac.id/ts/kul_ol/pascal/pascal3.html
http://sipil.uns.ac.id/kulol/Bahasa_Komputer/pascal1.html http://id.wikipedia.org/wiki/Pascal_(bahasa_pemrograman