Procedure dan Function

A. Procedure

  1. Prosedure merupakan bagian dari pemrograman terstruktur, tetapi prosedur masih diperlukan dalam pemrograman berorientasi obyek untuk mempermudah pengembangan suatu program dengan membentuk blok program menjadi bagian dan fungsi tersendiri.
  2. Fungsi procedure selain ditulis dan diuji secara terpisah juga digunakan untuk penerapan tugas yang diulang-ulang, seperti penghitungan yang sering digunakan.
  3. Keuntungan Penggunaan Procedure
    • Program terbagi-bagi menjadi komponen-komponen yang mandiri.
    • Program menjadi lebih terstruktur sehingga pencarian kesalahan dapat lebih mudah dilakukan.
    • Prosedure yang terletak dalam suatu program dapat dipakai berulang-ulang sesuai dengan kebutuhan.
    • Tidak ada aturan khusus pada penulisan prosedure, apakah ingin diletakkan di awal program atau di akhir program.

B. Sub Procedure

  1. Sub Prosedur merupakan blok perintah yang dijalankan sebagai tanggapan atas terbentuknya kejadian (event) dan tidak dapat mengembalikan nilai.
  2. Bentuk umum

  • Sub <nama subprocedure>

… blok perintah …

End Sub

  • Accesibility Sub <nama subprocedure>(ByRef/ByVal Val As TipeData)

… blok perintah …

End Sub

Catatan*

  • Accessibility bisa berupa Public, Protected, atau Private yang menentukan dari bagian mana saja sub tersebut dapat diakses.
  • Nama_subprosedure merupakan nama sub procedure penamaannya harus sesuai dengan aturan penamaan variabel dalam Visual Basic dan harus diawali dengan huruf
  • ByRef = Parameter yang dikirimkan adalah object sehingga perubahan nilai dari object tersebut yang diolah/diubah pada sub/function akan berakibat mengubah juga nilai dari object tersebut secara langsung.
  • ByVal = Parameter yang dikirimkan adalah nilai dari sebuah object sehingga tidak dapat mengubah nilai Object tersebut, pengguna hanya dapat mengolah/mengubah nilai object tersebut di dalam sub/function saja, setelah sub/function tersebut selesai, perubahan nilai object di sub/function tidak akan mengubah nilai object yang sebenarnya.

3. Pemanggilan Sub Procedure

Pemanggilan sub procedure harus dilakukan melalui pernyataan tersendiri (baris terpisah), dengan cara sebagai berikut:

  • Call <nama subprocedure>, atau
  • <nama subprocedure>

C. Function

Slide 1

  1. Function merupakan blok perintah yang dijalankan dan dapat mengembalikan nilai.
  2. Perintah untuk mengembalikan nilai pada function adalah Return.
  3. Bentuk Umum

a. Accesibility Function <NamaFungsi> [As TipeFunction]

 … pernyataan …

End Function

b. Accesibility Function <NamaFungsi>(ByRef/ByVal Var As TipeData) [As TipeFunction]

… pernyataan …

End Function

Catatan sama dengan *

  • Pemanggilan Function

4. Function dapat dipanggil dengan menggabungkan pernyataan lain, seperti contoh berikut:

  • Variabel = <NamaFunction>, atau
  • <nama subprocedure>

Contoh Program

Latihan 1

Tampilan Awal
Tampilan Pilih
Tampilan Keluar

Source Code

Public Class Form1
'Created by Ruthyana Vita

Private Sub Gantiteks(ByVal teksbaru As String)
    TextBox1.Text = teksbaru
End Sub

Private Sub btpilih_Click(sender As Object, e As EventArgs) Handles btpilih.Click
    Gantiteks("IBI KKG")
End Sub

Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
    Dim pesan As String
    pesan = MsgBox("Yakin mau keluar?", vbYesNo, "Konfirmasi")
    If pesan = vbYes Then
        Close()
        End
    End If
End Sub
End Class

Latihan 2

Tampilan Awal
Tampilan Peringatan

Source Code

Public Class Latihan_2
'Created by Ruthyana Vita

Public Sub TampilkanPeringatan(ByVal Pesan As String, ByVal Judul As String)
    MessageBox.Show(Pesan, Judul, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Sub

Private Sub btproses_Click(sender As Object, e As EventArgs) Handles btproses.Click
    TampilkanPeringatan("Isi Data Sesuai Dengan Format.", "Peringatan")
End Sub

Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
    Dim pesan As String
    pesan = MsgBox("Yakin mau keluar?", vbYesNo, "Konfirmasi")
    If pesan = vbYes Then
        Close()
        End
    End If
End Sub
End Class

Latihan 3

Tampilan Awal
Tampilan Hitung
Tampilan Keluar

Source Code

Public Class Latihan_3
'Created by Ruthyana Vita

Function BagiDua(ByVal sNilai As Single) As Single
    Return sNilai / 2
End Function

Private Sub bthitung_Click(sender As Object, e As EventArgs) Handles bthitung.Click
    TextBox1.Text = BagiDua(5)
End Sub

Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
    Dim pesan As String
    pesan = MsgBox("Yakin mau keluar?", vbYesNo, "Konfirmasi")
    If pesan = vbYes Then
        Close()
        End
    End If
End Sub
End Class

Latihan 4

Tampilan Awal
Tampilan Hitung
Tampilan Keluar

Source Code

Public Class Latihan_4
'Created by Ruthyana

Private Function HasilBagi(ByVal sNilai As Single, ByVal sBagi As Single) As Single
    Return sNilai / sBagi
End Function

Private Sub bthitung_Click(sender As Object, e As EventArgs) Handles bthitung.Click
    TextBox1.Text = HasilBagi(7, 2)
End Sub

Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
    Dim pesan As String
    pesan = MsgBox("Yakin mau keluar?", vbYesNo, "Konfirmasi")
    If pesan = vbYes Then
        Close()
        End
    End If
End Sub
End Class

Kasus 1

Tampilan Awal
Tampilan Ketika Diisi

Source Code

Public Class Kasus_1
'Created by Ruthyana Vita

Sub KomboAgama()
    Me.cbagama.Items.Add("Islam")
    Me.cbagama.Items.Add("Kristen Protestan")
    Me.cbagama.Items.Add("Kristen Katolik")
    Me.cbagama.Items.Add("Hindu")
    Me.cbagama.Items.Add("Buddha")
End Sub

Sub KomboJurusan()
    Me.cbjurusan.Items.Add("Manajemen Informatika")
    Me.cbjurusan.Items.Add("Teknik Informatika")
    Me.cbjurusan.Items.Add("Sistem Informasi")
End Sub

Sub KomboProgdi()
    Me.cbprogdi.Items.Add("D1")
    Me.cbprogdi.Items.Add("D2")
    Me.cbprogdi.Items.Add("D3")
    Me.cbprogdi.Items.Add("D4")
    Me.cbprogdi.Items.Add("S1")
    Me.cbprogdi.Items.Add("S2")
    Me.cbprogdi.Items.Add("S3")
End Sub

Sub ListKota()
    Me.lstkota.Items.Add("Bandung")
    Me.lstkota.Items.Add("Denpasar")
    Me.lstkota.Items.Add("Jakarta")
    Me.lstkota.Items.Add("Surabaya")
    Me.lstkota.Items.Add("Manado")
    Me.lstkota.Items.Add("Medan")
    Me.lstkota.BackColor = Color.Silver
End Sub

Private Sub Kasus_1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    KomboAgama()
    KomboJurusan()
    KomboProgdi()
    ListKota()
End Sub

Private Sub btclose_Click(sender As Object, e As EventArgs) Handles btclose.Click
    Application.Exit()
End Sub
End Class

Kasus 2

Tampilan Awal
Tampilan Ketika Data Lengkap dan Dihitung
Tampilan Ketika Data Tidak Lengkap
Tampilan Keluar
Tampilan Bersih

Source Code

Public Class Kasus_2
'Created by Ruthyana Vita

Sub Bersih()
    txtkode.Text = ""
    txtnama.Text = ""
    txtsatuan.Text = ""
    txtharga.Text = ""
    txtjumlah.Text = ""
    txttotal.Text = ""
    txtkode.Focus()
    txttotal.Enabled = False
End Sub

Private Function Hitung()
    Dim jumlah, hrgsatuan, total As Integer
    jumlah = txtjumlah.Text
    hrgsatuan = txtharga.Text
    total = jumlah * hrgsatuan
    txttotal.Text = total
    Return total
End Function

Sub CekDataKosong()
    If txtkode.Text = "" Then
        MessageBox.Show("Kode Barang Harus Diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        txtkode.Focus()
    ElseIf txtnama.Text = "" Then
        MessageBox.Show("Nama Barang Harus Diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        txtnama.Focus()
    ElseIf txtsatuan.Text = "" Then
        MessageBox.Show("Satuan Barang Harus Diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        txtsatuan.Focus()
    ElseIf txtharga.Text = "" Then
        MessageBox.Show("Harga Satuan Barang Harus Diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        txtharga.Focus()
    ElseIf txtjumlah.Text = "" Then
        MessageBox.Show("Jumlah Barang Harus Diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        txtjumlah.Focus()
    Else
        Call Hitung()
    End If
End Sub

Private Sub btbersih_Click(sender As Object, e As EventArgs) Handles btbersih.Click
    Call Bersih()
End Sub

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

Private Sub bthitung_Click(sender As Object, e As EventArgs) Handles bthitung.Click
    Call CekDataKosong()
End Sub

Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
    Dim pesan As String
    pesan = MsgBox("Yakin mau keluar?", vbYesNo, "Konfirmasi")
    If pesan = vbYes Then
        Close()
        End
    End If
End Sub
End Class

Kasus 3

Tampilan Awal

Source Code

Public Class Kasus_3
'Created by Ruthyana Vita

Private Sub btinputbil_Click(sender As Object, e As EventArgs) Handles btinputbil.Click
    Dim strGanjil, strGenap, strPrima, strFibo As Integer
    proses(strGanjil, strGenap, strPrima, strFibo)
    ShowSum(txtbilsatu.Text, txtbildua.Text)
End Sub

Sub ShowSum(ByVal intNum1 As Integer, ByVal intNum2 As Integer)
    Dim intSum As Integer
    intSum = intNum1 + intNum2
    txthasil.Text = intSum
End Sub

Sub BilGanjil()
    Dim ganjil As Integer
    Bilangan.Items.Clear()
    ganjil = 1
    Do While ganjil <= 20
        Bilangan.Items.Add(ganjil)
        ganjil = ganjil + 2
    Loop
End Sub

Sub BilGenap()
    Dim genap As Integer
    Bilangan.Items.Clear()
    genap = 0
    Do While genap <= 20
        Bilangan.Items.Add(genap)
        genap = genap + 2
    Loop
End Sub

Sub BilPrima()
    Dim prima As Integer
    Bilangan.Items.Clear()

    Dim x As Integer
    Dim y As Integer
    Dim z As Integer

    For x = 2 To 100
        z = 0
        For y = 2 To x
            prima = x Mod y
            If prima = 0 Then
                z = z + 1
            End If
        Next y
        If z <= 1 Then
            Bilangan.Items.Add(x)
        End If
    Next x
End Sub

Sub BilFibo()
    Bilangan.Items.Clear()

    Dim a As Integer = 0
    Dim b As Integer = 1
    Dim fib As Integer = 0

    Bilangan.Items.Add("1")
    Do
        fib = a + b
        a = b
        b = fib
        Bilangan.Items.Add(fib.ToString)
    Loop While fib <= 100
End Sub

Sub proses(ByVal strGanjil As String, ByVal strGenap As String, ByVal strPrima As String, ByVal strFibo As String)
    If (ComboBox1.SelectedIndex.Equals(0)) Then
        BilGanjil()
    ElseIf (ComboBox1.SelectedIndex.Equals(1)) Then
        BilGenap()
    ElseIf (ComboBox1.SelectedIndex.Equals(2)) Then
        BilPrima()
    ElseIf (ComboBox1.SelectedIndex.Equals(3)) Then
        BilFibo()
    End If
End Sub

Private Sub btkeluar_Click(sender As Object, e As EventArgs) Handles btkeluar.Click
    Dim pesan As String
    pesan = MsgBox("Yakin mau keluar?", vbYesNo, "Konfirmasi")
    If pesan = vbYes Then
        Close()
        End
    End If
End Sub
End Class

Sekian. Semoga bermanfaat!^^

Leave a comment