Seringkali kita menuliskan beberapa kode yang sama berulang - ulang, yang sangat memboroskan memory dan membuat ukuran file kita semakin membengkak. Untuk mengatasi hal tersebut dapat dilakukan penghematan penulisan terhadap kode yang sering berulang dengan cara menggunakan sebuah/beberapa prosedur dan atau fungsi yang memang disediakan oleh Visual Basic. Berikut penjelasan mengenai procedure dan function tersebut.

Procedure dan function merupakan sekumpulan code dapat dipanggil (digunakan) berulang-ulang pada event (dan atau procedure/function lainnya). Perbedaan Procedure dan function yaitu:
  • Procedure : Hanya sekumpulan code untuk dijalankan
  • Function : Ada nilai yang dikembalikan
Untuk lebih jelas nya ikuti contoh berikut, menggunakan project latihan yang sudah kita buat.Tambahkan 2 buah control Command button (Command1 dan Command2).

 Buka jendela code dan buat procedure dan function berikut:

PanggilPesan -> Nama Procedure
StringUntukPesan -> Nama Function

Batas/Penulisan Procedure
Sub …

End Sub

Batas/Penulisan Function
Function … as TypeData

End Function

Jika kita tidak menuliskan type data untuk function maka otomatis type data adalah variant
Kita akan memanggil procedure pada event Command1_Click dan Function pada Command2_Click.

Private Sub Command1_Click()
PanggilPesan
End Sub

Private Sub Command2_Click()
MsgBox StringUntukPesan
End Sub

Perhatikan perbedaan antara keduanya dan coba jalankan aplikasi. Prosedure menjalanka code yang ada di dalamnya. Sementara Function mengembalikan nilai string yang di assign padanya.
Selain itu kita juga dapat menambahkan parameter. Pertama-tama tambahkan sebuah textbox:

Sub PanggilPesan(strPesan As String)
MsgBox strPesan
End Sub

Function StringUntukPesan(strPesan as String) as String
StringUntukPesan = strPesan
End Function

Private Sub Command1_Click()
PanggilPesan Text1.Text
End Sub

Private Sub Command2_Click()
MsgBox StringUntukPesan(Text1.Text)
End Sub

Coba jalankan aplikasi. Event Command akan menampilkan pesan yang kita inputkan di text1.

Selanjutnya kita akan mencoba membuat procedure untuk membuka koneksi database. Anda boleh menghapus pecobaan procedure pada event command diatas.
Pindahkan code untuk membuka koneksi ke sebuah procedure baru bernama Open_Connection.
Lalu panggil procedure tersebut di event Form_Load.

Deklarasikan 2 variable long untuk looping.
Dim l as Long
Dim k as Long

Kemudian kita akan membuat sebuah Function bernama Display_Data  dengan type data ADODB Recordset dengan input parameter bertype MYSQL_RS (MySQL Recordset). Untuk membuat ADODB Recordset yang memuat data dari MySQL.

Hapus kode untuk menampilkan data di datagrid

Ubah code seperti berikut:

Procedure Open_Connection dan Function Display_Data dapat digunakan tidak hanya untuk form kategori saja tetapi juga dapat digunakan di form lain yang membutuhkan code koneksi ke database dan menampilkan data ke datagrid. Agar dapat dipanggil dari semua form aplikasi, pindahkan ke sebuah module dan ubah scope (cakupannya) menjadi Public.
Buat sebuah file module, klik kanan pada jendela Project Explorer -> Add -> Module

Kemudian akan muncul kotak dialog Add Module, pada tab New pilih Module dan klik tombol Open.

Beri nama modDatabase.

Kemudian save file module tersebut.

Code yang harus dipindahkan ke module adalah deklarasi variable untuk koneksi, deklarasi variable Long untuk looping, procedure Open_Connection, dan Function Display_Data.

Tambahkan Option Explicit dang anti scope seperti berikut:

Jika Anda coba lagi untuk Run aplikasi yang dibuat maka aplikasi akan tetap berjalan sebagaimana mestinya.

Click here if you like this article.


Artikel Sebelumnya:
Artikel Selanjutnya: