Minggu, 02 Agustus 2009

Sequential Control


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 :



  1. Peulangan tetap (fixed repetition) : banyaknya perulangan tidak berubah-ubah (tetap), contoh FOR …DO
  2. Pretest loop: Sebelum masuk kedalam perulangan, dilakukan evaluasi ekspresi boolean terlebih dahulu. Jika benar, maka akan masuk kedalam perulangan. Contoh WHILE …DO
  3. 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

blog comments powered by Disqus

Poskan Komentar



 

Mata Kuliah Copyright © 2009 Premium Blogger Dashboard Designed by SAER