Procedure, Function dan Module

PROCEDURE, FUNCTION DAN MODULE

Sejauh ini, anda telah menuliskan sub procedure yang dibuat secara otomatis pada saat menggunakan event . Sub procedure merupakan blok kode yang mempunyai nama dan berisi perintah yang dapat dipanggil suatu waktu. Artinya, hanya sekali dibuat yang kemudian di panggil berkali-kali sesuai dengan kebutuhan
.
Bentuk Umum :
[Private|Public] Sub subname[(argumentlist)]
      Statements
End sub

Sub Procedure dapat dipanggil dengan perintah :
[call] subname[(argumentlist)]

Keterangan :
Sub procedure (Procedure) sebaiknya menggunakan kata kerja (verb)
Pemanggilan procedure yang masih dalam satu kelas (class) atau modul (module) dapat dilakukan dengan kata kunci Me.
Procedure dapat menerima argument melalui nilai (by value) atau juga reference (by reference).Jika menggunakan by value, nilai pada argument tidak berubah.Sedangkan jika menggunakan by reference, nilai argument yang digunakan dapat berubah sesuai dengan perintah dalam procedure.
Secara default, argument dimasukkan melalui nilai (by value) dapat menggunakan kata kunci ByVal dan ByRef untuk By Reference.

Syntaks argument :
[ByVal|ByRef] variabelname as type

Contoh :
1.      Procedure dengan argument di passing sebagai value
Sub HitungVal(byVal as Decimal)
        A+=1
        textAkhir.text=a
end sub

2.      Procedure dengan argument di passing sebagai value
Sub HitungRef(byRef as Decimal)
        A+=1
        textAkhir.text=a
end sub
3.      pemanggilan procedure
HitungVal(textAwal.Text)


Function (Fungsi)

Fungsi mempunyai banyak kemiripan dengan sub procedure. Bedanya, fungsi selalu mengembalikan nilai (return value)

Sintaks fungsi dituliskan sebagai berikut :
[Private|Public] function functionname[(argumentlist)] [As type]
      Statements{
      Functionname=expression | {return expression}
End function
Keterangan :
-          Perbedaan antara fungsi dengan procedure hanyalah pada pengembalian nilai saja (return value). Sebagai contoh :
Menggunakan argument berupa nilai (by value) dan reference (by reference)
-          Pengembalian nilai dapat dilakukan dengan menggunakan operator assignment “=” pada fungsi atau biasanya dengan perintah return.
Contoh :
Private  Function cekData() as Boolean

        if IsNumeric(TextAwal.text) then
                return true
        else
                return false
        endif
end function

Pemanggilan fungsi
        ifcekData()=true then

                HitungRef(textAwal.text)
        else
                messageBox.Show(“Data yang dimasukkan bukan angka”,”Kesalahan data”, MessageBoxButtons.OK,  
                 MessageBoxIcons.Error)
        endif





Modul (Module)

Modul merupakan bagian yang sengaja dipisahkan untuk memudahkan pemrograman.Dalam module dapat dimasukkan procedure dan fungsi dan kemudian digunakan oleh beberapa form.
-          Umumnya modul dideklarasikan secara public (public) agar dapat digunakan di dalam kode dimanapun
-          Modul dapat diisi dengan main procedure yang akan dijalankan pertama kali saat program dimulai
-          Modul merupakan salah satu argumentasi code  reuse yang bertujuan agar program lebih efesien.

Sintaks pembuatan modul sebagai berikut :
Module moduleName
      Statement
End module
Contoh :
Module Module

    Public intResponce, RoleId, Msg As Integer
    Public Username, Password, Nama As String

End Module

Contoh Program Procedure dan Function

Object
Properties
Nilai
Form1
Name
Text
Form1
Barang
Label1
Text
Kode Barang
Label2
Text
Nama Barang
Label3
Text
Satuan
Label4
Text
Harga
Label5
Text
Jumlah
Label6
Text
Total Harga
TexBox1
Name
TxtKode
TexBox2
Name
TxtNamaBrg
TexBox3
Name
TxtSatuan
TexBox4
Name
TxtHarga
TexBox5
Name
TxtJumlah
TexBox6
Name
TxtTotalBayar
Button1
Name
Text
BtnHitung
Hitung
Button2
Name
Text
BtnClear
Clear
Button3
Name
Text
BtnClose
Close


Public Class Form1
    Sub Bersih()
        TxtKode.Text = ""
        TxtNamaBrg.Text = ""
        TxtSatuan.Text = ""
        TxtJumlah.Text = ""
        TxtHarga.Text = ""
        TxtTotalBayar.Text = ""
        TxtKode.Focus()
        TxtTotalBayar.Enabled = False
    End Sub
    Private Function Hitung()
        Dim JumlahBarang, HargaBarang, TotalBayar As Integer
        JumlahBarang = TxtJumlah.Text
        HargaBarang = TxtHarga.Text
        TotalBayar = JumlahBarang * HargaBarang
        TxtTotalBayar.Text = TotalBayar
        Return TotalBayar
    End Function
    Sub CekDataKosong()
        If TxtKode.Text = "" Then
            MessageBox.Show("Kode Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            TxtKode.Focus()
        ElseIf TxtNamaBrg.Text = "" Then
            MessageBox.Show("Nama Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            TxtNamaBrg.Focus()
        ElseIf TxtSatuan.Text = "" Then
            MessageBox.Show("Satuan Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            TxtSatuan.Focus()
        ElseIf TxtJumlah.Text = "" Then
            MessageBox.Show("Harga Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            TxtJumlah.Focus()
        ElseIf TxtSatuan.Text = "" Then
            MessageBox.Show("Harga Satuan harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            TxtSatuan.Focus()
        Else
            Call Hitung()
        End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call Bersih()
    End Sub

    Private Sub BtnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClear.Click
        Call Bersih()
    End Sub

    Private Sub BtnHitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHitung.Click
        Call CekDataKosong()
    End Sub

    Private Sub BtnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClose.Click
        Dim Tutup As String

        Tutup = MessageBox.Show("Yakin tutup form ini ?", "Konfirmasi", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Tutup = MsgBoxResult.Yes Then
            End
        Else
            Exit Sub
        End If
    End Sub
End Class

Gambar 1.1 Tampilan Desain Program


Gambar 1.2 Tampilan Hasil Program 

Gambar 1.3 Tampilan Bersih






















Komentar

Postingan populer dari blog ini

Menu Bar dan Main From

Exception Handling