IF merupakan salah satu struktur kendali dalam bahasa pemrograman dan didalam program yang dibuat, pasti banyak menggunakan IF.
Terdapat banyak jenis penggunaan If, mulai dari
IF Tunggal,
if kondisi then
pernyataan
end if
IF Ganda
if kondisi then
pernyataan
else
pernyataan
end if
IF Jamak
if kondisi1 then
pernyataan
else if kondisi2 then
pernyataan
else
pernyataan
end if
IF Tersarang
if kondisi then
if kondisilain then
pernyataan
else
pernyataan
endif
end if
Nah dari sekian banyak pemakaian If tersebut, if tunggal kurang baik di pakai dalam pemrograman.
Mengapa! Contoh kasus sederhana :)
Gol IIIA gaji -> 1000000
Gol IIIB gaji -> 2000000
Gol IIIC gaji -> 3000000
apabila dibuatkan di program dengan if Tunggal maka menjadi berikut ini :
if Gol='IIIA' then Gaji = 1000000
if Gol='IIIB' then Gaji = 2000000
if Gol='IIIC' then Gaji = 3000000
atau penulisannya begini :
if Gol='IIIA' then
Gaji = 1000000
end if
if Gol='IIIB' then
Gaji = 2000000
end if
if Gol='IIIC' then
Gaji = 3000000
end if
Dari pernyataan tersebut program juga berjalan dengan baik, namun proses yang dilakukan 3 x pembandingan, dari membandingkan IIIA, IIIB sampai IIIC, dan anehnya walaupun sudah masuk ke golongan IIIB tetap golongan IIIC akan dibandingkan. Hasilnya kan Proses yang sia sia bukan?
Nah coba kalau kita ganti dengan IF Jamak
if Gol='IIIA' then
Gaji = 1000000
else if Gol='IIIB' then
Gaji = 2000000
else
Gaji = 3000000
end if
Nah berikut ini merupakan logika yang benarnya, karna apabila sudah masuk ke salah satu pembandingan, misalnya IIIA, maka pembandingan yang IIIB dan IIIC tidak akan dilakukan. Berbeda bukan?
Namun....? Jangan puas dulu !
Bagaimana bila pengguna memasukkan nilai IIID ?
apa yang akan terjadi? tentu saja gaji menjadi 3000000. :) padahal 3000000 tersebut untuk golongan yang IIIC, Tentu logika program kita masih salah bukan?
Nah berikut perbaikannya
if Gol='IIIA' then
Gaji = 1000000
else if Gol='IIIB' then
Gaji = 2000000
else if Gol='IIIC' then
Gaji = 3000000
else
Gaji = 0
end if
Dari logika terakhir ini, jika selain IIIA, IIIB, IIIC maka gaji di set dengan nilai 0.
Berikut program dengan menggunakan program Visual Basic Net.
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' memasukkan nilai IIIA, IIIB, IIIC ke combobox
Golongan.Items.Add("IIIA")
Golongan.Items.Add("IIIB")
Golongan.Items.Add("IIIC")
End Sub
Private Sub Golongan_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Golongan.SelectedIndexChanged
'Memproses Gaji
If Golongan.Text = "IIIA" Then
Gaji.Text = 1000000
ElseIf Golongan.Text = "IIIB" Then
Gaji.Text = 2000000
ElseIf Golongan.Text = "IIIC" Then
Gaji.Text = 3000000
Else
Gaji.Text = 0
End If
End Sub
End Class
Berikut program dengan menggunakan program Pascal
uses crt;
var
gol : string[4] ;
gaji : longint ;
begin
clrscr ;
write('Golongan : ') ;readln(gol);
if gol='IIIA' then
gaji := 1000000
else if gol='IIIB' then
gaji := 2000000
else if gol='IIIC' then
gaji := 3000000
else
gaji := 0 ;
writeln('Gaji : ', gaji);
readln ;
end.
Sumber : Mesran.net