Sabtu, 21 Februari 2009

Struktur Kendali dalam Bahasa Pascal

A. Proses Eksekusi Program

Pada dasarnya sebuah Program Pascal dieksekusi secara runtut dari mulai statement yang pertama kali dibaca dilanjutkan dengan statement yang dibaca berikutnya. Tetapi alur pemrosesan itu bisa diubah dengan menggunakan seleksi dan perulangan sehingga memungkinkan sebuah program menjalankan tugas yang lebih kompleks. Alur pemrosesan dimulai dari bagian utama program.

B. Compound statement

Compound statement adalah gabungan dari beberapa statement.

Syntax:

Begin
[statement];
[statement];
.
.
.
End

Compound statement bisa digunakan dalam seleksi dan perulangan untuk menjalankan beberapa statement daripada satu statement.

C. Seleksi

Pada sebuah seleksi alur program akan mengalir berdasarkan kondisi tertentu. Ada dua macam seleksi yang ada di Pascal yaitu If-Then dan Case-Of.

If-Then

Syntax:

If <tes kondisi> Then <statement>;

atau

If <tes kondisi> Then
<statement>
Else
<statement>;

Setiap <statement> bisa digantikan dengan sebuah compound statement.

Perubahan alur proses:

If <tes kondisi> Then berpindah ke sini jika tes kondisi true;
dilanjutkan ke sini;

If <tes kondisi> Then
berpindah ke sini jika tes kondisi benar
Else
berpindah ke sini jika tes kondisi salah;
dilanjutkan ke sini;

Contoh pemakaian:

Program IfThen(input,output);
Var
Umur: Real;
Begin
Write('Berapakah umur kamu?');
ReadLn(Umur);
If Umur < 5 Then
Begin
WriteLn('Anda masih balita');
WriteLn('Anda harus mengikuti imunisasi dasar lengkap');
End
Else
WriteLn('Anda bukan balita lagi');
WriteLn('Selesai.');
End.

Dalam contoh program diatas, kita mengambil input Umur berupa bilangan Real. Kemudian memasuki seleksi dengan tes kondisi Umur < 5, jika Umur < 5 maka statement di bawah ini yang dijalankan:

Begin
WriteLn('Anda masih balita');
WriteLn('Anda harus mengikuti imunisasi dasar lengkap');
End

Tetapi jika tidak maka yang akan dijalankan adalah statement berikut:

WriteLn('Anda bukan balita lagi');

Setelah selesai maka pemrosesan dilanjutkan ke statement berikutnya:

WriteLn('Selesai');

Case-Of

Syntax:

Case <nilai> Of
<nilai1>: [statement];
<nilai2>,<nilai3>..<nilai4>: [statement];
.
.
.
[Else [statement]
End;

Setiap [statement] bisa digantikan dengan compound statement.

Perubahan alur proses:

Case <nilai> Of
<nilai1>: ke sini jika nilai = nilai1;
<nilai2>,<nilai3>..<nilai4>: ke sini jika nilai = nilai2 atau nilai antara nilai3 dan nilai4;
.
.
.
[Else berpindah ke sini jika nilai tidak sama dengan semua nilai yang dicantumkan]
End;
dilanjutkan ke sini;

Contoh pemakaian:

Program CaseOf(input,output);
Var
NilaiMataKuliah: Char;
Begin
Write('Apakah nilai matakuliah struktur data anda? ');
ReadLn(NilaiMataKuliah);
Case NilaiMataKuliah Of
'A','a':
Begin
WriteLn('Nilai anda sangat bagus');
WriteLn('Hebaaat');
End;
'B','b': WriteLn('Bagus');
'C','c': WriteLn('Cukup');
'D','d': WriteLn('Nilai anda kurang');
'E','e':
Begin
WriteLn('Nilai anda sangat parah');
WriteLn('Belajar dunk untuk masadepan mu');
End;
Else
WriteLn('Nilai yang anda masukkan tidak valid');
End;
End.

Dalam contoh program di atas, kita mengambil input NilaiMataKuliah berupa sebuah karakter. Kemudian memasuki seleksi Case-Of dengan nilai yang dites NilaiMataKuliah. Jika NilaiMataKuliah sama dengan 'A' atau 'a' maka statement berikut yang dijalankan:

Begin
WriteLn('Nilai anda sangat bagus');
WriteLn('Hebaaat');
End;

Jika NilaiMataKuliah sama dengan 'B' atau 'b' maka statement berikut yang dijalankan:

WriteLn('Bagus');

Dan seterusnya, sampai jika NilaiMataKuliah tidak terdapata dalam daftar yang disebutkan maka statement berikut yang dijalankan:

WriteLn('Nilai yang anda masukkan tidak valid');

D. Perulangan

Pada perulangan sebuah statement atau compound statement akan dijalankan berulang-ulang selama kondisi tertentu masih terpenuhi. Beberapa macam perulangan dalam Pascal antara lain: For-Do, While-Do, Repeat-Until.

For-Do

Syntax:

For <variabel> := <nilai_min> To <nilai_max> Do [statement];

atau

For <variabel> := <nilai_max> DownTo <nilai_min> Do [statement];

Setiap [statement] bisa digantikan dengan compound statement.

Keterangan:

Statement akan dieksekusi dengan nilai variabel dari nilai_min sampai nilai_max. Jika menggunakan To maka dalam perulangan nilai variabel akan dimulai dari nilai_min dan bertambah sampai sama dengan nilai_max. Jika menggunakan DownTo maka di dalam perulangan nilai variabel akan dimulai dari nilai_max dan berkurang sampai sama dengan nilai_min. Tipe data String, Real, Pointer tidak diperbolehkan untuk variabel yang digunakan untuk For.

Contoh pemakaian:

Program DemoFor(output);
Var
I: Integer;
Begin
WriteLn('Naik:');
For I := 1 to 5 do WriteLn(I);
WriteLn;
WriteLn('Turun:');
For I := 5 downto 1 do WriteLn(I);
End.

Output dari contoh program:

Naik:
1
2
3
4
5

Turun:
5
4
3
2
1

While-Do

Syntax:

While <tes kondisi> Do [statement];

Setiap [statement] bisa digantikan dengan compound statement.

Keterangan:

Statement akan dieksekusi selama nilai tes kondisi benar.

Contoh pemakaian:

Program DemoWh(output);
Var
I: Integer;
Begin
I := 5;
While I >= 1 Do
Begin
WriteLn(I);
I := I - 1;
End;
End.

Output dari contoh program:

5
4
3
2
1

Repeat-Until

Syntax:

Repeat
[statement];
[statement];
.
.
.
Until <tes kondisi>;

Setiap [statement] bisa digantikan dengan compound statement.

Keterangan:

Statement-statement akan dieksekusi terus selama nilai tes kondisi benar.

Contoh pemakaian:

Program DemoRep(output);
Var
I: Integer;
Begin
I := 5;
Repeat
WriteLn(I);
I := I - 1;
Until I < 1;
End.

Output dari contoh program:

5
4
3
2
1

Tidak ada komentar:

Creating Linux Daemon or Windows Service with Lazarus

Daemon Application in Linux or Service Application in Windows is an application that running in the background, usually automatically starte...