A. Procedure
- 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.
- Fungsi procedure selain ditulis dan diuji secara terpisah juga digunakan untuk penerapan tugas yang diulang-ulang, seperti penghitungan yang sering digunakan.
- 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
- Sub Prosedur merupakan blok perintah yang dijalankan sebagai tanggapan atas terbentuknya kejadian (event) dan tidak dapat mengembalikan nilai.
- 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
- Function merupakan blok perintah yang dijalankan dan dapat mengembalikan nilai.
- Perintah untuk mengembalikan nilai pada function adalah Return.
- 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



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


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



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



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


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





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

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!^^