Penggunaan IF Yang Baik Dalam Visual Basic Net ataupun Pascal


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
Back to top