PROCEDURE, FUNCTION DAN MODULE PADA PEMROGRAMAN VISUAL

 7.1 Sub Procedure

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

7.2 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 :

1.      Perbedaan antara fungsi dengan procedure hanyalah pada pengembalian nilai saja (return value). Sebagai contoh : Menggunakan argument berupa nilai (by value) dan reference (by reference)

2.      Pengembalian nilai dapat dilakukan dengan menggunakan operator assignment “=” pada fungsi atau biasanya dengan perintah return.

 

7.3 Modul (Module)

Modul merupakan bagian yang sengaja dipisahkan untuk memudahkan pemrograman. Dalam module dapat dimasukkan procedure dan fungsi dan kemudian digunakan oleh beberapa form.

1.      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

2.                    Tr-Modul merupakan salah satu argumentasi code reuse yang bertujuan agar program lebih efesien.

Sintaks pembuatan modul sebagai berikut :

Module moduleName

        Statement

End module

 

PROGRAM :

7.4 Praktikum

7.4.1 Procedure dan Function

a.       Design :



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

TxtKodeBrg

TexBox2

Name

TxtNamaBrg

TexBox3

Name

TxtSatuan

TexBox4

Name

TxtHrgSatuan

TexBox5

Name

TxtHarga

TexBox6

Name

TxtTot

Button1

Name

Text

BtnHitung

Hitung

Button2

Name

Text

BtnClear

Clear

Button3

Name

Text

BtnExit

Exit

 

b.      Code Program :

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Call Bersih()

    End Sub

    Sub Bersih()

        TxtKodeBrg.Text = ""

        TxtNamaBrg.Text = ""

        TxtSatuan.Text = ""

        TxtHarga.Text = ""

        TxtHrgSatuan.Text = ""

        TxtTot.Text = ""

        TxtKodeBrg.Focus()

        TxtTot.Enabled = False

    End Sub

 

    Private Function Hitung()

        Dim Harga, HrgSatuan, Total As Integer

        Harga = TxtHarga.Text

        HrgSatuan = TxtHrgSatuan.Text

        Total = Harga * HrgSatuan

        TxtTot.Text = Total

        Return Total

    End Function

 

    Sub CekDataKosong()

        If TxtKodeBrg.Text = "" Then

            MessageBox.Show("Kode Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)

            TxtKodeBrg.Focus()

        ElseIf TxtNamaBrg.Text = "" Then

            MessageBox.Show("Nama Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)

            TxtNamaBrg.Focus()

        ElseIf TxtSatuan.Text = "" Then

            MessageBox.Show("Satua Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK,

MessageBoxIcon.Warning)

            TxtSatuan.Focus()

        ElseIf TxtHarga.Text = "" Then

            MessageBox.Show("Harga Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK,

MessageBoxIcon.Warning)

            TxtHarga.Focus()

        ElseIf TxtHrgSatuan.Text = "" Then

            MessageBox.Show("Harga Satuan Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK,

MessageBoxIcon.Warning)

            TxtHrgSatuan.Focus()

        Else

            Call Hitung()

        End If

    End Sub

 

    Private Sub BtnClear_Click(sender As Object, e As EventArgs) Handles BtnClear.Click

        Call Bersih()

    End Sub

 

    Private Sub BtnHitung_Click(sender As Object, e As EventArgs) Handles BtnHitung.Click

        Call CekDataKosong()

    End Sub

 

    Private Sub BtnExit_Click(sender As Object, e As EventArgs) Handles BtnExit.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


c.      Hasil Running :



7.4.2 Function

a.       Design :


Object

Properties

Nilai

Form1

Name Text

Form1 Function

TexBox1

Name

TxtVar1

TexBox2

Name

TxtVar2

TexBox3

Name

TxtHasil

GroupBox1

Text

Operasi

RadioButton1

Name

Text

RdbAkar

Akar Kuadrad

RadioButton2

Name

Text

RdbPangkat

Pangkat

RadioButton3

Name

Text

RdbPembagian

Pembagian

RadioButton4

Name

Text

RdbPerkalian

Perkalian

RadioButton5

Name

Text

RdbPenjumlahan Penjumlahan

RadioButton6

Name

Text

RdbPengurangan Pengurangan

Button1

Name

Text

BtnHitung

Hitung

Button2

Name

Text

BtnExit

Exit

 

a.       Code Program :

Public Class Form2

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

 

    End Sub

    Function Akar(ByVal a As Decimal) As String

        Return Math.Sqrt(a)

    End Function

    Function Pangkat(ByVal a As Decimal, ByVal b As Decimal) As String

        Return a ^ b

    End Function

    Function Pembagian(ByVal a As Decimal, ByVal b As Decimal) As String

        Return a / b

    End Function

    Function Perkalian(ByVal a As Decimal, ByVal b As Decimal) As String

        Return a * b

    End Function

    Function Pemjumlahan(ByVal a As Decimal, ByVal b As Decimal) As String

        Return a + b

    End Function

    Function Pengurangan(ByVal a As Decimal, ByVal b As Decimal) As String

        Return a - b

    End Function

 

 

 

    Private Sub BtnHitung_Click(sender As Object, e As EventArgs) Handles BtnHitung.Click

        If RdbAkar.Checked = True Then

            TxtHasil.Text = Akar(TxtVar1.Text)

        ElseIf RdbPangkat.Checked = True Then

            TxtHasil.Text = Pangkat(TxtVar1.Text, TxtVar2.Text)

        ElseIf RdbPembagian.Checked = True Then

            TxtHasil.Text = Pembagian(TxtVar1.Text, TxtVar2.Text)

        ElseIf RdbPerkalian.Checked = True Then

            TxtHasil.Text = Perkalian(TxtVar1.Text, TxtVar2.Text)

        ElseIf RdbPenjumlahan.Checked = True Then

            TxtHasil.Text = Pemjumlahan(TxtVar1.Text, TxtVar2.Text)

        ElseIf RdbPengurangan.Checked = True Then

            TxtHasil.Text = Pengurangan(TxtVar1.Text, TxtVar2.Text)

        End If

 

    End Sub

End Class



Hasil Running :





Video Lengkap:


Komentar