Ada tiga macam struktur pemrograman/kontrol di dalam Pascal yaitu :
a) Runtutan/ Sequential
b) Seleksi/ Conditional
c) Perulangan/ Repetition/ Looping
1. SEQUENTIAL/ RUNTUTAN
Berfungsi mengontrol program sehingga berjalan secara berurutan. Program dibaca dari mulai perintah yang pertama dituliskan kemudian turun ke perintah selanjutnya demikian seterusnya sampai pada akhir perintah. Secara umum program akan dibaca oleh compailer secara terurut.
Contoh :
Program Selisih_Jam;
Uses crt;
var j1,j2,m1,m2,d1,d2,B1,B2,J,M,S,Delta,sisa: integer;
begin
clrscr;
write('Baca jam mulai =');readln(j1,m1,d1);
writeln;
write('Baca jam selesai =');readln(j2,m2,d2);
B1:= 3600 * j1 + 60 * m1 + d1;
B2:= 3600 * j2 + 60 * m2 + d2;
Delta:= B2 - B1;
J:= Delta div 3600;
sisa:= Delta mod 3600;
M:= sisa div 60;
S:= sisa mod 60;
write('Selisih jam =',J);
writeln;
write('Selisih menit =',M);
writeln;
write('Selisih detik =',S);readln;
end.
Hasil Run program:
Baca jam mulai = 3 23 29
Baca jam selesai = 4 30 27
Selisih jam = 1
Selisih menit = 6
Selisih detik =58
Catatan :
Tanda (:= ) disebut sebagai Operator Penugasan.
2. SELECTION/ CONDITION
Sistem kontrol ini memungkinkan programmer untuk membuat program yang dapat memilih satu langkah di antara sejumlah langkah untuk dikerjakan.
Dalam Turbo Pascal disediakan 2 buah struktur kontrol seleksi, yaitu:
a. Struktur IF……THEN…..
b. Struktur CASE…OF…
a). Struktur IF
Merupakan struktur kontrol di mana suatu aksi dilaksanakan berdasarkan kondisi logikanya (benar atau salah). Bentuk umum :
if (kondisi) then aksi ;
{Jika kondisi benar maka aksi akan dilaksanakan dan sebaliknya }
if (kondisi) then aksi1 else aksi2 ;
{Jika kodisi benar maka aksi1 diaksanakan, jika kondisi salah
maka aksi2 akan dilaksanakan}
if (kondisi1) then aksi1 else
if (kondisi2) then aksi2 else
……………………..
if (kondisi-n) then aksi-n ;
else aksi n+1
{Jika kondisi1 benar maka aksi1 dilaksanakan tanpa membaca
kondisi2 dan seterusnya. Jika kondisi1 salah maka aksi2 dilaksanakan tanpa membaca aksi3 dan selanjutnya. Demikian
seterusnya}
if (kondisi1) then aksi1 ;
if (kondisi2) then aksi2 ;
……………………….
if (kondisi-n) then aksi-n ;
{Masing-masing kondisi akan dibaca dan aksi akan tetap dilaksanakan. Jadi masing-masing struktur terpisah satu dengan yang lain}
Contoh :
program menghitung_akar_kwadrat:
uses crt;
var A,B,C:integer;
x1,x2,D:real;
begin
clrscr;
write('Baca koofisien:');readln(A,B,C);writeln;
writeln(A,'x*x + (',B,') x +',C);
if A=0 then writeln('Bukan persamaan kwadrat') else
begin
D:=(B*B) - (4*A*C);
writeln('Determinannya :',D:2:2);readln;
if D>0 then
begin
writeln('Persamaan kwadrat mempunyai 2 akar yang berbeda');
x1:= (-B + sqrt(D))/(2*A);
x2:= (-B - sqrt(D))/(2*A);
writeln('Akar-akarnya adalah:',x1:2:2,'dan',x2:2:2);
end else
if D=0 then
begin
writeln('Persamaan kwadrat mempunyai akar yang sama'
x1:= -B/(2*A);
x2:= -B/(2*A);
writeln('Akar-akanya adalah:',x1:2:2);
end else
writeln('Tidak memiliki akar riil');
end;
readln;
end.
Hasil Run Program :
-Baca koofisien: 1 -4 4
1x*x + (-4) x +4
Determinannya :0.00
Persamaan kwadrat mempunyai akar yang sama
Akar-akanya adalah:2.00
-Baca koofisien: 1 -5 6
1x*x + (-5) x +6
Determinannya :1.00
Persamaan kwadrat mempunyai 2 akar yang berbeda
Akar-akarnya adalah:3.00dan2.00
-Baca koofisien: 1 3 4
1x*x + (3) x +4
Determinannya :-7.00
Tidak memiliki akar riil
Program_Konversi_nilai:
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.
Hasil Run Program :
Baca nilai : 90 Baca nilai :55
Nilai = A Nilai = C
Baca nilai :75 Baca nilai :25
Nilai = B Nilai = E
Catatan :
Pada pernyataan else if ataupun else, tidak diperkenankan didahului dengan menggunakan tanda titik koma (;)
b). Struktur CASE…OF..
Merupakan peluasan dari struktur IF. Karena kalau dalam struktur IF hanya disediakan dua pilihan (berdasarkan kondisi logikanya) maka dalam struktur Case ..of dimungkinkan untuk memilih satu pilihan di antara banyak pilihan yang ada.
Bentuk umumnya :
Case var.pilih of atau Case var.pilih of
Pilih1 : aksi1 ; pilih1 : aksi1 ;
Pilih2 : aksi2 ; pilih2 : aksi2 ;
……………. ; ……………. ;
pilih-n : aksi-n ; pilih-n : aksi n;
else aksi-n+1
end; end;
Catatan :
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 word tidak boleh digunakan.
Contoh :
Program_Konversi_nilai2;
Uses Crt;
Var Nilai : integer;
begin
Clrscr;
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.
Catatan :
Program ini akan memberikan nilai yang sama persis dengan yang menggunakan struktur IF.
3. PERULANGAN/ LOOPING/ REPETITION
Dalam membuat suatu program kadang-kadang diinginkan agar program tersebut mampu memproses hal yang sama secara berulang-ulang sampai ditemukan suatu nilai tertentu yang diinginkan atau mencapai batas yang telah ditentukan. Untuk itu maka Turbo Pascal telah menyediakan suatu struktur perulangan yang memudahkan untuk melakukan proses tersebut, sehingga kode-kode dalam program menjadi lebih sederhana. Ada beberapa struktur perulangan, yaitu :
- Struktur FOR….DO….
- Struktur WHILE…DO……
- Struktur REPEAT…UNTIL….
a). Struktur FOR
Ada 2 jenis struktur FOR, yaitu :
- Ascendant (Naik)
- Descendant (Turun)
Naik
Format : For count := awal to akhir do aksi/ blok aksi ;
Catatan : - awal <= akhir
- Variabel count akan naik satu setelah menyelesaikan aksi
Turun
Format : For count := awal downto akhir do aksi1/ blok aksi ;
Catatan : - awal >= akhir
- Variabel count akan turun satu setelah menyelesaikan aksi
Struktur FOR hanya dpat digunakan pada cacah perulangan yang diketahui (berapa kali perulangan tersebut akan dilakukan).
Contoh :
Program Latihan: Program Latihan 2:
uses Crt; uses Crt;
var N,i,j :integer; var N, I, j, data : integer;
begin begin
clrscr; clrscr;
write('Baca nilai : ');readln(N); write(‘Baca nilai:’);
for i:= 1 to N do readln(N);Data:=N;
begin for i:=1 to N do
for j:=1 to i do begin
write(i:3); for j:=1 to N do
writeln; write(data:3);
end; writeln;
readln; data := data -1;
end. end;
End.
Hasil Run Program : Hasi Run Program :
Baca nilai : 7 Baca nilai : 7
1 7
2 2 6 6
3 3 3 5 5 5
4 4 4 4 4 4 4 4
5 5 5 5 5 3 3 3 3 3
6 6 6 6 6 6 2 2 2 2 2 2
7 7 7 7 7 7 7 1 1 1 1 1 1 1
b). Struktur WHILE .. DO..
Format : While (kondisi) do Aksi/blok aksi
Kondisi: Ekspresi Boolean
Pengecekan untuk melakukan perulangan dilakukan pada awal proses dan perulangan akan dikerjakan selama kondisi benar. Oleh karena itu, perlu adanya suatu proses yang dapat mengontrol kondisi agar dapat menghentikan proses.
Contoh :
uses crt;
var i:integer;
begin
clrscr;
write('Masukkan angka :');readln(i);
while i<5 do
begin
write('Matematika UGM');
i:=i+1;
end;
readln;
end.
Hasil Run program :
Masukkan angka :1
Matematika UGMMatematika UGMMatematika UGMMatematika UGM
Matematika UGM
Keterangan :
Program di atas akan dilaksanakan jika angka yang kita masukkan kurang dari atau sama dengan lima. Dan dalam program di atas yang bertugas menghentikan perulangan adalah proses i:= i+1; sebab jika tidak ada statement itu, apabila angka yang kita masukkan benar <= 5 maka program akan berulang sampai tak hingga banyak.
Catatan :
Struktur perulangan while..do dapat digunakan untuk melakukan perulangan baik yang diketahui maupun yang tidak diketahui jumlah perulangannya.
c). Struktur REPEAT..UNTIL..
Format : Repeat aksi/ blok aksi until (kondisi) ;
(kondisi) di sini berupa Boolean.
Perulangan dilakukan terus-menerus hingga diperoleh kondisi bernilai benar. Dalam hal inipun diperlukan adanya kondisi yang dapat mengontrol program agar program dapat berhenti namun berbeda dengan while do yang kontrolnya ditempatkan pada awal proses, maka repeat until kontrolnya diletakkan pada akhir proses.
Contoh :
PROGRAM CONTOH_REPEAT;
Uses crt;
var
n,tot,x: integer;
Mean: real;
begin
clrscr;
tot:=0;
n:=0;
write ('Baca data :');readln(x);
repeat
tot:= tot + x;
n:= n + 1;
write('Data lagi :');readln(x);
until x=0;
end.
Hasil Run Program :
Baca data :12
Data lagi :3
Data lagi :4
Data lagi :5
Data lagi :0
{setelah dimasukkan nol maka pembacaan akan berhenti dan akan kembali ke menu awal}
Catatan :
Pada perulangan menggunakan repeat..until ini, proses pembacaan program dilaksanakan paling tidak satu kali karena proses pengecekan syarat dilakukan pada akhir.
1 komentar:
thx
https://hokeylog.blogspot.co.id/
Post a Comment