Pelajaran kali ini akan membahas:
- Statement if
- if ... then ... else
- if bersarang
- Perulangan Repeat – Until
- Perulangan For
- Perulangan While – do
Sekarang, saatnya mempelajari hal yang paling penting di dalam pemrograman:
statement if (pembuat keputusan),
perulangan for dan
perulangan repeat – until. Tiga hal umum inilah yang biasanya mmembangun sebuah program di semua bahasa pemrograman, dan anda harus memastikan bahwa setelah anda mempelajari bagian ini, anda sudah cukup mempraktikannya berulang-ulang sebelum melanjutkan ke pelajaran berikutnya karena bagian ini adalah yang paling penting. Jika anda masih tidak yakin dengan pemahaman anda, cobalah pergi ke forum-forum untuk mencari jawaban atas masalah anda.
Statement if
statement if mengeksekusi sebuah pengkondisian. Maksudnya adalah jika sebuah aksi bernilai
true, maka instruksi-instruksi yang ada di dalam badan if akan dieksekusi, jika tidak maka instruksi-instruksi akan dilewatkan saja. Untuk lebih jelasnya perhatikan yang dibawah ini:
if ini terjadi (aksi),
then lakukan ini (reaksi, jika kondisi bernilai
true/ benar).
Atau:
if ini terjadi (aksi),
then lakukan ini (reaksi, jika kondisi
true/ benar),
else lakukan yang ini (reaksi, jika kondisi
false/ salah).
di dalam pascal, 'statement if' harus ditulis seperti berikut:
If ekspresi kondisional
then kode ..... ;
{jika satu aksi}
Atau:
If ekspresi kondisional
then Begin instruksi-instruksi ...
end; (jika ada lebih dari satu aksi)
Sebagai catatan bahwa anda tidak boleh menggunakan operator assignment ('=') di dalam ekspresi kondisional, jika iya maka compiler akan menampilkan pesan error. Contoh:
Salah:
If x
:= 20
then x := x + 1;
{karakter yang digarisbawahi adalah yang salah.}
Benar:
If x = 20
then x:= x + 1;
{tanda sama dengan hanya dipakai pada kondisi}
Program dibawah ini adalah contoh bagaimana statement if bekerja:
-
Program lesson4_Program1;
-
Uses Crt;
-
Label 1; {digunakan bersama statement goto}
-
Var Sel: String;
-
N1,N2, Total : Real;
-
YN : Char; {variabel dengan tipe karakter,
-
yang HANYA akan menampung satu huruf/angka saja}
-
Begin
-
1:Clrscr;
-
Total := 0; {biasakan untuk menginisialisasi variabel integer / real}
-
GotoXy(4,3);
-
Writeln('1.Penjumlahan');
-
GotoXy(4,4);
-
Writeln('2.Pengurangan');
-
GotoXy(4,5);
-
Writeln('3.Exit');
-
GotoXy(6,8);
-
Write('Pilih: ');
-
Sel := Readkey;
-
If Sel = '1' {aksi} then
-
Begin {lebih dari satu aksi}
-
ClrScr;
-
Write('Input No.1:');
-
Readln(N1);
-
Write('Input No.2:');
-
Readln(N2);
-
Total := N1 + N2;
-
Writeln('Penjumlahan: ',N1:2:3,' + ',N2:2:3,' = ',Total:2:3);
-
Write('Tekan tombol mana saja untuk melanjutkan...');
-
Readkey;
-
Goto 1;{ini akan membawa kembali ke awal program,
-
jika tidak maka program akan berhenti}
-
End; {menutup if statement(begin)}
-
If Sel = '2' then
-
{perhatikan bahwa operator assignment
-
tidak digunakan di dalam statement if}
-
Begin
-
ClrScr;
-
Write('Input No.1:');
-
Readln(N1);
-
Write('Input No.2:');
-
Readln(N2);
-
Total := N1 - N2;
-
Write('Pengurangan: ');
-
Write(N1:2:3,' - ',N2:2:3,' = ',Total:2:3);
-
Write('Tekan tombol mana saja untuk melanjutkan...');
-
Readkey;
-
Goto 1;
-
End; {Menutup if statement}
-
If Sel = '3' then
-
Begin
-
ClrScr;
-
Write('Anda yakin untuk keluar?(Y/N)');
-
YN := Readkey;
-
If YN = 'y' then Halt; {1 aksi jadi tidak memerlukan Begin..End}
-
If YN = 'n' then Goto 1; {statement goto tidak direkomendasikan
-
untuk program yang kompleks}
-
End;
-
End.
Pada program diatas, statement 'goto' digunakan. Sejauh ini, ini adalah sebuah kerusakan yang nyata pada program dan ini membuat kebingungan yang tak diinginkan. Saya menganjurkan anda untuk tidak menggunakannya berulang-ulang.
>>If ... Then ... Else
Di dalam statement normal, 'reaksi' tidak bisa dilakukan jika kondisi tidak bernilai
true. Tapi di dalam sebuah statement
if ... then ... else, setidaknya ada satu statement yang dikerjakan. Mari lihat contoh di bawah ini:
writeln('Siapa yang menjadi presiden pertama indonesia?');
readln(ans);
if (ans = 'Soekarno')
then
score := score + 1
{jika benar}
ELSE
writeln('maaf, jawaban anda salah');
{jika salah}
Perhatikan bahwa 'else' termasuk di dalam statement if, sehingga tidak ada
tanda semi-colon (';') sebelum else; lihat saja pada contoh di atas
>>Statement if bersarang
Program diatas sudah menunjukkan sebuah contoh statement if bersarang.
if sel = '3'
then
Begin
clrscr;
write('Anda Yakin? (Y/N)');
YN := readkey;
if YN = 'y'
then HALT; {pernyataan if bersarang}
if YN = 'n'
then goto 1; {pernyataan if bersarang yang lain}
End.
Sebuah pernyataan if bersrang ada pada form:
if (ini terjadi)
then {if 1}
if (ini terjadi)
then {if 2}
(lakukan ini) dll...
Else (lakukan ini) {if 2}
Else (lakukan ini) dll.. {if 1}
Sebuah pernyataan if bersarang adalah pernyataan if di dalam pernyataan if yang lain seperti tulisan diatas.
Pengulangan Repeat – Until
Perulangan ini digunakan untuk mengulang-ulang eksekusi dari satu set instruksi,
minimal satu kali. Set Instruksi diulangi sampai kondisi ekspresi salah. Contoh dibawah ini menunjukkan model perulangan 'repeat-until':
Repeat
... (code)
... (code)
... (code)
Until pernyataan kondisi;
berikut contohnya:
Sangat mudah kan! Dalam program di atas, ada
Ekspresi Boolean di baris ke-sepuluh (
or) akan dijelaskan pada pelajaran berikutnya.
Perulangan For
Perulangan for mengulang satu set instruksi sebanyak jumlah yang ditentukan. Bentuk penulisan perulangan for:
- Jika untuk satu aksi/ instruksi:
for {variable}*:={nilai awal}
to/downto {nilai akhir}
do
{code.. (untuk satu aksi)}
- Jika untuk lebih dari satu aksi
for {variable}* := {nilai awal}
to/downto {nilai akhir}
do begin
{code..}
{code..}
End;
*Biasanya, variabel ini disebut '
loop counter'
Sekarang, sebagai contoh dari perulangan for, diperlihatkan dibawah ini, tapi pertama kali, anda harus mengerti penggunaan
for loop yang efektif. Seperti contoh dibawah ini:
Tanpa
for loop:
Dengan
for loop:
Perhatikan bahwa kedua program diatas menghasilkan fungsi yang sama, tapi gaya pemrograman mana yang lebih luar biasa?
- For loop bersarang
Sebuah perulangan for bersarang mirip dengan pernyataan if bersarang. Penulisan for loop bersarang:
for {loop counter} :=
{nilai awal} to {nilai akhir} do {Begin-if required}
{code jika banyak, perlu menggunakan begin (i.e lebih dari satu aksi)}
for {loop counter} :=
{nilai awal} to {nilai akhir} do {Begin-if required}
{code..jika lebih dari satu aksi, gunakan begin pada for loop kedua}
{End; – jika begin digunakan pada for loop kedua)}
{code if any..begin should be included in the first for loop}
{End; - if begin is included in the first for loop)}
While-Do loop
Loop tipe ini dieksekusi
ketika kondisi bernilai benar. ini berbeda dari 'Repeat-Until' loop yang dieksekusi minimal satu kali. Code bekerja seperti ini:
While <kondisi benar> lakukan berikut ini:
instruksi 1;
Instruksi 2;
Instruksi 3;
dll..
End; {jika While-do loops dimulai dengan pernyataan begin}
Contoh program While-do loop: