Prosedur dan fungsi merupkana blok program yang dapat dipanggil dalam sebuah program
aplikasi. Untuk penggunaan prosedur dapat dilakukan hanya dengan memanggil nama
prosedur tersebut. Dengan prosedur penulisan program menjadi lebih modular dan
terstruktur. Prosedur tidak mengembalikan nilai sedangkan fungsi mengembalikan nilai.
Secara garis besar ada tiga jenis prosedur yaitu : Sub prosedur, Function prosedur dan event
prosedur.
Pada Sub prosedur dapat memiliki parameter ataupun tidak. Parameter tersebut bisa
berjumlah lebih dari satu. Pernyataan yang ada didalam prosedur akan dieksekusi ketika
prosedur tersbut dipanggil. Sebuah prosedur didefinisikan dengan kata kunci Sub dan End
Sub.
ByVal merupakan sebuah cara melewatkan nilai dari sebuah argumen ke sebuah prosedur
pengganti dari melewatkan alamatnya. Hal ini mengizinkan prosedur untuk mengakses
sebuah salinan dari variabel. Sebagai sebuah hasil, nilai variabel sebenarnya tidak dapat
diganti oleh prosedur yang melewatkannya.
1. Buka aplikasi VISUAL BASIC 2010, lalu setelah program terbuka, klik FILE > New
Project, maka akan muncul windows pop-up, lalu pilih “Windows Form Application”. Jika
sudah di pilih isikan Nama dan Tempat Penyimpan project yang nanti akan di buat pada
Name dan Location jika sudah klik Ok.
1
2. Design interface program yang akan kita buat menjadi seperti ini. Lihat gambar
• 3 Buah GroupBox
o GroupBox1 : Text : Jenis Bilangan
o GroupBox2 : Text : Hasil
o GroupBox3 : Text : Perhitungan
• 1 Buah ComboBox
o Items :
▪ Ganjil
2
▪ Genap
▪ Prima
▪ Fibonaci
• 1 Buah ListBox : (name) : bilangan
• 3 Buah Text Box
o TextBox1 : (name) : txtbilsatu
o TextBox2 : (name) : txtbildua
o TextBox3 :(name) : txthasil
• 2 Buah Button
o Button 1 : (name) : btnInputBil | Text : Input Bilangan
o Button 2 : (name) : btnExit | Text : Exit
3
ElseIf (ComboBox1.SelectedIndex.Equals(2)) Then
BilPrima()
ElseIf (ComboBox1.SelectedIndex.Equals(3)) Then
BilFibo()
End If
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
4
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
6. Klik 2X pada Button2 (btnExit), lalu isikan koding seperti berikut :
Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles
btnExit.Click
Me.Close()
End Sub
7. Selesai, maka setelah itu jalankan programnya dengan menekan tombol F5. Maka seperti ini
5
lah hasil program yang kita buat. Lihat gambar. Maka hasilnya jika kita menekan tombol “Input
Bilangan” maka hasilnya akan jalan 2 2 nya.
Hasilnya :
a. Gunakan SQL Server 2008 R2, untuk membuat data base dengan nama = latDB, didalam nya
buatlah table dengan nqma table= mhs, dan struktur table nya sbb:
b. Rancanglah form input data seperti gambar berikut, dengan nama form= frmMHS
6
c. Lalu buatlah Modul Koneksi nya, dan kode programnya:
'-- deklarasi sub program yang selalu dipanggil oleh form lain--
Public Sub BukaDatabase()
Dim Dian As String
'Dian = "Password=erwin;Data Source=PC3_LAB9;User ID=sa;Initial
Catalog=LatDB;Integrated Security=True"
7
Imports System.Data.SqlClient
Module modMHS
#Region "SubUmum"
Sub FormIsianKosong()
With frmMHS
.txtNim.Clear()
.txtNama.Clear()
.txtAlamat.Clear()
.txtNim.Focus()
End With
End Sub
Sub Bersih()
With frmMHS
.txtNim.Clear()
.txtNama.Clear()
.txtAlamat.Clear()
.txtNim.Focus()
End With
End Sub
Sub Navigasi(ByVal tombol As Boolean)
With frmMHS
.btFirst.Enabled = tombol
.btPrev.Enabled = tombol
.btNext.Enabled = tombol
.btLast.Enabled = tombol
End With
End Sub
End With
End Sub
#End Region
#Region "AccessTabel"
'-- akses ke basis data --
Sub BindingMHS()
With frmMHS
Dim MHS As New DataTable
Try
BukaDatabase()
dtSet = New DataSet
sql = "select * from MHS"
dtAdapter.SelectCommand = New SqlClient.SqlCommand(sql, erwin)
MHS.Clear()
dtAdapter.Fill(MHS)
.txtNim.DataBindings.Add("text", MHS, "Nim")
.txtNama.DataBindings.Add("text", MHS, "Nama")
.txtAlamat.DataBindings.Add("text", MHS, "Alamat")
modMHS.FormIsianKosong()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Form Mahasiswa")
End Try
End With
8
End Sub
Sub SaveRecordMHS()
With frmMHS
Try
If (.txtNim.Text = Nothing) Then
MsgBox("Record Nim Mahasiswa/i harus diisi", MsgBoxStyle.Information,
"Perhatian")
.txtNim.Focus()
Exit Sub
ElseIf (.txtNama.Text = Nothing) Then
MsgBox("Record Nama Mahasiswa harus diisi", MsgBoxStyle.Information,
"Perhatian")
.txtNama.Focus()
Exit Sub
ElseIf (.txtAlamat.Text = Nothing) Then
MsgBox("Record Alamat Mahasiswa harus diisi",
MsgBoxStyle.Information, "Perhatian")
.txtAlamat.Focus()
Exit Sub
Else
Dim sqlMHS As String
sqlMHS = "Insert into MHS values(" & .txtNim.Text & ",'"
sqlMHS += .txtNama.Text & "','"
sqlMHS += .txtAlamat.Text & "')"
9
End Try
End With
End Sub
Sub DeleteRecord()
With frmMHS
Try
If Len(.txtNama.Text) = 0 Then
MsgBox("Tidak ada data yang akan dihapus", MsgBoxStyle.Information,
"Perhatian")
Exit Sub
Else
Dim qrDelete As String
Dim cmd As SqlClient.SqlCommand
Dim hapus As Int16
hapus = MsgBox("Benar record ini akan dihapus " & .txtNama.Text &
"?", MsgBoxStyle.OkCancel, "Delete record")
Select Case hapus
Case vbCancel
Exit Sub
Case vbOK
qrDelete = "Delete from MHS where Nim= '" & .txtNim.Text &
"'"
cmd = New SqlClient.SqlCommand(qrDelete)
cmd.Connection = erwin
erwin.Open()
cmd.ExecuteNonQuery()
erwin.Close()
MsgBox("Record pada tabel MHS, dengan Nim " & .txtNim.Text &
" dan Nama " & .txtNama.Text & " Telah terhapus", MsgBoxStyle.Information, "Delete
record")
.btRefresh.PerformClick()
End Select
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End With
End Sub
Sub RefreshRecord()
With frmMHS
Try
dtAdapter = New SqlClient.SqlDataAdapter("select Nim As [Nim],Nama As
[Nama Mahasiswa],Alamat As [Alamat] from MHS order by Nim", ModulKoneksi.erwin)
Dim MHS As New DataTable
MHS.Clear()
dtAdapter.Fill(MHS)
.DataGridViewMHS.DataSource = MHS
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End With
End Sub
Sub SearchRecord()
With frmMHS
If .txtCari.Text = "" Then
MsgBox("Isikan kata kunci pencarian", , "Searching record")
10
.txtCari.Focus()
Exit Sub
End If
Try
If .rbNim.Checked = True Then
dtAdapter = New SqlDataAdapter("select * from MHS where Nim = '" &
.txtCari.Text & "'", ModulKoneksi.erwin)
Else
dtAdapter = New SqlDataAdapter("select * from MHS where Nama like '"
& .txtCari.Text & "%'", ModulKoneksi.erwin)
End If
Dim MHS As New DataTable
MHS.Clear()
dtAdapter.Fill(MHS)
If MHS.Rows.Count = Nothing Then
MsgBox("Data tidak ditemukan, isikan data yang benar...!",
MsgBoxStyle.Information, "Perhatian")
.txtCari.Clear()
.txtCari.Focus()
Exit Sub
End If
.DataGridViewMHS.DataSource = MHS
Catch ex As OleDb.OleDbException
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End With
End Sub
#End Region
End Module
11
sqlMHS = "select * from MHS"
daMHS.SelectCommand = New SqlClient.SqlCommand(sqlMHS, erwin)
daMHS.Fill(dsMHS, "MHS")
PosisiRecord = 0
erwin.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
#End Region
End Sub
Sub ListRecordMHS()
12
ModulKoneksi.BukaDatabase()
Me.txtNim.Text = dsMHS.Tables("MHS").Rows(PosisiRecord)("Nim").ToString()
Me.txtNama.Text = dsMHS.Tables("MHS").Rows(PosisiRecord)("Nama").ToString()
Me.txtAlamat.Text = dsMHS.Tables("MHS").Rows(PosisiRecord)("Alamat").ToString()
End Sub
End Sub
13
Private Sub btLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btLast.Click
PosisiRecord = dsMHS.Tables("MHS").Rows.Count - 1
Me.ListRecordMHS()
'Me.lbRecno.Text = "Record No. " + (PosisiRecord + 1).ToString() + " Of " +
dsObat.Tables("tObat").Rows.Count.ToString()
End Sub
End Sub
14