MODUL
Program Flow
Sequential Control
Sequantial Control adalah mengeksekusi pernyataan kode program baris per baris sampai akhir program
Boolean Expresion
Boolean Expresion digunakan untuk membandingkan dua buah nilai. Sintak dari ekspresi boolean adalah sebagai berikut :
value1 relational_operator value2
Operator relasional yang dapat digunakan antara lain :
< | Kurang dari |
> | Lebih dari |
= | Sama dengan |
<= | Kurang dari sama dengan |
>= | Lebih dari sama dengan |
<> | Tidak sama dengan |
Ekspresi boolean dapat juga digunakan untuk memberikan nilai ke variabel boolean, sebagai contoh :
some_bool := 3 < 5;
Pernyataan diatas akan bernilai benar.
Ekspresi boolean yang lain adalah yang menggunakan operator boolean, yaitu :
Not | Negasi (~) |
and | Konjungsi (^) |
or | Disjungsi (v) |
xor | Exklusive OR |
Not adalah unary opeator, hanya dapat digunakan terhadap sebuah nilai.
not true = false
not false = true
And akan bernilai benar jika kedua pernyataan bernilai benar, selainnya salah :
TRUE and FALSE = FALSE TRUE and TRUE = TRUE
OR akan bernilai benar jika salah satu atau kedua pernyataan bernilai benar. Pernyataan dibawah ini akan bernilai benar
TRUE or TRUE
TRUE or FALSE
FALSE or TRUE
XOR akan bernilai benar jika salah satu pernyataan benar. Perhatikan pernyataan dibawah ini :
TRUE or TRUE = FALSE
TRUE or FALSE = TRUE
FALSE or TRUE = TRUE
FALSE or FALSE = FALSE
Dua ekspresi boolean dapat digabungkan dengan menggunakan tanda kurung. Hal ini perlu diperhatikan karena operator boolean memiliki tingkatan prioritas yang berbeda.
Berikut contoh tersebut :
(3>5) or (650<1)
Tingkatan prioritas dari operator boolean adalah sebagai berikut :
not
* / div mod and
+ - or
< > <= >= = <>
Dengan demikian jika terhadapat operasi seperti dibawah ini :
3 > 5 or 650 < 1
Maka akan dievaluasi sebagai :
3 > (5 or 650) < 1
operai tersebut akan menjadi salah, karena operator boolean hanya berlaku untuk nilai boolean, bukan untuk integer.
Untuk operator boolean lainnya (AND, NOT, XOR) juga berlaku hal yang sama.
PERCABANGAN
==============
Pernyataan IF
Hampir setiap program yang komplek mengandung suatu penyeleksian kondisi. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, didalam bahasa Pascal dapat menggunakan pernyataan IF dan CASE.
IF digunakan untuk penyeleksian kondisi berdasarkan hasil dari operasi boolean. Sintak IF yang paling sederhana adalah sebagai berikut :
if BooleanExpression then
StatementIfTrue;
Jika ekspresi boolean bernilai benar, maka pernyataan akan dieksekusi selainnya tidak. Pada sintak diatas pernyataan IF hanya membaca satu buah pernyataan, untuk bisa membaca lebih dari satu pernyataan, maka diperlukan kata BEGIN dan END pada awal dan akhir pernyataan tersebut. Berikut sintak yang digunakan :
if BooleanExpression then
begin
Statement1;
Statement2
end;
Bentuk pernyataan IF lainnya adalah :
if BooleanExpression then
StatementIfTrue
else
StatementIfFalse;
Jika ekspresi boolean bernilai salah maka pernyataan setelah ELSE yang akan dieksekusi. Perlu diingat bahwa pernyataan sebelum ELSE tidak perlu menggunakan tanda titik dua (semi colon), karena bila digunakan ma yang maksud adalah pernyataan IF tanpa ELSE.
Bentuk IF yang lebih kompleks lainnya adalah :
if Condition1 then
Statement1
else
if Condition2 then
Statement2
else
Statement3;
Untuk bentuk IF seperti diatas, Anda harus hati-hati dengan percabangan yang dimaksud. Perhatikan bentuk IF dibawah ini :
if Condition1 then
if Condition2 then
Statement2
else
Statement1;
Pernyataan ELSE pada dasarnya selalu berpasagan dengan pernyataan IF yang terdekat. Oleh karena itu maksud pernyataan diatas sebenarnya adalah :
if Condition1 then
if Condition2 then
Statement2
else
Statement1;
Latihan :
Perhatikan kedua pernyataan IF dibawah ini :
if Condition1 then
if Condition2 then
Statement2
else
else
Statement1;
Dan
if not Condition1 then
Statement1
else
if Condition2 then
Statement2;
Yang manakh bentuk pernyataan yang lebih baik ?
Pernyataan CASE
Asumsikan anda akan melakukan penyeleksian kondisi denga kondisi jika b adalah 1 atau 7 atau 2073 atau 5 maka lakukan sesuatu. Maka dengan pernyataan IF Anda dapat menuliskan seperti berikut :
if (b = 1) or (b = 7) or (b = 2037) or (b = 5) then
Statement1
else
Statement2;
Maksud tersebut akan lebih sederhana jika ditulis dengan menggunakan pernyataan CASE OF, seperti dibawah ini :
case b of
1,7,2037,5: Statement1;
else Statement2
end;
maka sintak dari pernyaaan CASE OF adalah sebagai berikut :
:
case selector of
List1: Statement1;
List2: Statement2;
...
Listn: Statementn;
else Statement
end;
Pernyataan ELSE diatas tidak harus selalu ada. Selector adalah ungkapan yang bertipe ordinal, Tipe data real tidak boleh digunakan!
PERULANGAN
============
Dalam program aplikasi perulangan seringkali diperlukan untuk mengulang sebuah pernyataan atau satu blok pernyataan berulang kali. Didalam Pascal dikenal tiga macam perulangan, ayitu dengan menggunakan pernyataan FOR, WHILE-DO dan REPEAT .. UNTIL.
Ada tiga tipe bentuk perulangan :
- Peulangan tetap (fixed repetition) : banyaknya perulangan tidak berubah-ubah (tetap), contoh FOR …DO
- Pretest loop: Sebelum masuk kedalam perulangan, dilakukan evaluasi ekspresi boolean terlebih dahulu. Jika benar, maka akan masuk kedalam perulangan. Contoh WHILE …DO
- posttest loop: Sebelum mengevaluasi ekspresi boolean, akan masuk terlebih dahulu kedalam perulangan, setelah itu baru mengevaluasi ekspresi boolean.
Pernyataan FOR…DO
Sintak dari fixed repetition adalah sebagai berikut :
for index := StartingLow to EndingHigh do
statement;
Variabel index harus bertipe ordinal. Index dapat juga digunakan untuk perhitungan didalam perulangan, tapi sebaiknya tidak mengubah nilai index. Berikut contoh perulangan menggunakan index :
sum := 0;
for count := 1 to 100 do
sum := sum + count;
Perulangan dapat juga dimulai dari angka yang besar hingga ke angka yang lebih kecil. Untuk melakukan hal itu, maka sintak yang digunakan adalah :
for index := StartingHigh downto EndingLow do
statement;
pada Pascal perulangan menggunakan for hanya bisa bertambah satu.
Pernyataan WHILE … DO
Sintak dari bentuk perulangan WHILE … DO adalah sebegai berikut :
while BooleanExpression do
statement;
Dengan bentuk perulangan WHILE .. DO, perulangan akan terus berlangsung sampai kondisi ekspresi boolean bernilai false. Dalam perulangan WHILE … DO harus ada variabel yang bisa mengubah nilai dari ekspresi boolean. Bila hal ini tidak dilakukan yang terjadi adalah perulangan yang tak pernah berakhir (infinite loop). Seperti contoh dibawah ini :
a := 5;
while a < 6 do
writeln (a);
Perulangan diatas tidak akan pernah berakhir, karena nilai ekspresi boolean selalu bernilai benar, oleh karena itu perulangan diatas dapat diperbaiki dengan cara mengubah nilai variabel ekspresi boolean. Berikut kode programnya :
a := 5;
while a < 6 do
begin
writeln (a);
a := a + 1
end;
Perulangan WHILE … DO disebut dengan pretest loop, karena sebelum melakukan perulangan dilakukan evaluasi ekspresi boolean terlebih dahulu. Sehingga jika pertama kali dieksekusi ekspresi boolean sudah bernilai salah (FALSE), maka tidak akan pernah melakukan perulangan.
Pernyataan REPEAT …UNTIL
Sintak dari pernyataan REPEAT … UNTIL adalah :
repeat
statement1;
statement2
until BooleanExpression ;
Pada bentuk pernyataan REPEAT .. UNTIL, walaupun pernyataan didalam perulangan lebih dari satu, tidak perlu menggunakan blok BEGIN dan END, karena sudah merupakan satu blok kesatuan dengan menggunakan REPAT UNTIL.
Perulangan pada REPEAT … UNTIL akan terus berlangsung selama kondisi ekspresi boolena bernilai false. Setelah ekspresi boolean bernilai benar, maka perulangan dihentikan.
Perulangan REPEAT … UNTIL disebut dengan posttest loop, karena evelausi ekspresi boolean dilakukan setelah perulangan dilakukan.
TUGAS :
1. Buat program untuk mencari 10 bilangan pertama deret FIBONACCI. Deret FIBONACCI dimulai dengan dua buah bilangan. Pada deret FIBONACCI bilangan selanjutnya diperoleh dengan menjumlahkan dua bilangan sebelumnya. Seperti 1+1=2, 1+2=3, 2+3=5, dan seterusnya. Maka output dari 10 bilangan pertama deret FIBONACCI adalah 1 1 2 3 5 8 13 21 34 55
2. Buat program untuk menampilkan sederet bilangan yang merupakan pangkat dua dari bilangan sebelumnya. Deret bilangan yang ditampilkan <= 20000. Bilangan ditampilkan dengan format setiap baris terdiri dari lima bilangan, dan dipisahkan dengan menggunakan koma.
Output dari program diatas adalah
1, 2, 4, 8, 16,
32, 64, 128, 256, 512,
1024, 2048, 4096, 8192, 16384