1
III.3. Strukrur Seleksi : Pernyataan blok IF
.
true Logical
expression
Statement
false
block
Statement
Statement
2
Secara umum dapat dinyatakan sebagai berikut,
IF (pernyataan logika) THEN
Pernyataan -1
Pernyataan -2
Pernyataan –n
END IF
Apabila pernyataan logika benar, maka seluruh pernyataan
antara THEN dan END IF akan dieksekusi. Kalau tidak maka
akan diabaikan.
Pernyataan tipe ini juga dapat untuk mengeksekusi beberapa
pernyataan lain apabila pernyataan logikanya salah. Bentuk
umumnya adalah:
3
IF (pernyataan logika) THEN
Pernyataan -1
Pernyataan -2
blok -1
Pernyataan –n
ELSE
Pernyataan -a
Pernyataan -b blok -2
Pernyataan –m
END IF
Pada gambar dibawah ini, apabila pernyatan logika benar
maka pernyataan-pernyataan pada blok-1 di eksekusi dan
kalau tidak maka blok-1 di abaikan dan pernyataan di blok-2
dieksekusi.
4
5
Contoh :
1. IF(([Link].X). AND. ([Link].10.0))THEN
Y=SQRT(X)
PRINT*,X, Y
END IF
dan
2. IF(([Link].X). AND. ([Link].10.0))THEN
Y=SQRT(X)
PRINT*,X, Y
ELSE
PRINT*,’VALUE’,X, ‘IS OUT OF RANGE’
END IF
6
Contoh ilustrasi lain pernyataan blok IF adalah pada
persoalan mencari akar-akar persamaan kuadrat,
AX2 + BX + C = 0
dimana akar-akar dapat dicari dari persamaan
− B ± B 2 − 4 AC
2A
Algoritma yang harus dibuat adalah :
1. Masukan A, B, dan C.
2. Hitung DISC = B**2-4*A*C
3. Apabila DISC < 0 lakukan yang berikut,
a. Tampilkan DISC
b. Tampilkan pesan apabila tidak ada akar riil.
7
Kalau tidak lakukan yang berikut,
a. Hitung DISC = SQRT(DISC)
b. Hitung ROOT1 = (-B+ DISC)/(2*A)
c. Hitung ROOT2 = (-B- DISC)/(2*A)
d. Tampilkan ROOT1 dan ROOT2
Blok-blok di dalam pernyataan blok IF dapat berisi blok IF
yang lain. Pada kasus ini satu buah blok IF harus
sempurna dalam sebuah blok IF yang lain. Sebagai contoh
program di atas dapat dikembangkan untuk menunjukan
akar riilnya tunggal atau dua.
1. Masukan A, B, dan C.
2. Hitung DISC = B**2 – 4*A*C
3. Apabila DISC < 0 lakukan yang berikut,
a. Tampilkan DISC
b. Tampilkan pesan bahwa tidak ada akar-akar riil.
8
Kalau tidak lakukan yang berikut,
Apabila DISC = 0 lakukan berikut:
a. Hitung ROOT = -B/(2*A)
b. Tampilkan ROOT
Kalau tidak lakukan yang berikut,
a. Hitung DISC = SQRT(DISC)
b. Hitung ROOT1 = (-B+ DISC)/(2*A)
c. Hitung ROOT2 = (-B- DISC)/(2*A)
d. Tampilkan ROOT1 dan ROOT2
(hal 191 jogiyanto)
.
9
III.4. Strukrur Seleksi Alternatif Banyak: Konstruksi IF-ELSE-IF
Pada sub bab sebelumnya hanya dibahas struktur yang memilih
satu dari dua alternative. Untuk menyediakan lebih dari 2 alternative
digunakan kontruksi IF-ELSE IF. Sebagai contoh bayangkan fungsi
berikut,
-x if x ≤ 0
f(x) = x2 if 0 < x < 1
1 if x ≥ 1
Bentuk umum dari IF-ELSE IF adalah sebagai berikut,
IF (logical-expression-1) THEN
block-1
ELSE IF (logical-expression-2) THEN
block-2
ELSE IF (logical-expression-3) THEN
block-3
ELSE
block-n
END IF 10
Apabila pernyataan logika benar maka blok yang
bersangkutan (dibatasi oleh ELSE IF) akan dijalankan, kalau
salah maka pernyataan logika berikutnya akan dinilai salah
atau benar. Hal ini terus dilakukan sampai komando END IF.
Apabila tidak ada satupun pernyataan logika yang benar,
maka blok yang dijalankan adalah yang setelah komando
ELSE. Sehingga untuk menyatakan fungsi seperti diatas
maka dibuat program sebagai berikut,
IF ([Link].0) THEN
FVAL = -X
ELSE IF ([Link].1.0) THEN
FVAL = X**2
ELSE IF
FVAL = 1.0
END IF
(lihat [Link])
11
12