27 April 2011

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:

14 comments:

Anonymous said...

untuk koneksi VB6 ke database SQL Server local, berhasil saya praktek kan, mohon bantuanya untuk database di server webhosting, terima kasih
salam (mazry)

rani-irsan said...

@mazry:
koneksi ke SQL Server ato ke MySQL ya?
klo untuk hosting biasa nya tergantung paket yg ditawarkan oleh hosting tersebut. Apakah ada fasilitas remote database nya ato ngga. Klo di MWN mah yg ada fasilitas remote nya mulai dari paket EKSEKUTIF.
Klo emang udah ada fasilitas nya trus masuk ke spanel nya buat buka port nya. Masukin IP Address PC kita yang akan remote kesana.
Selanjutnya di aplikasi VB kita tinggal ganti variable2(server,UserDB,password,
database)
Cara setting di hosting nya mungkin beda2 tergantung hostingnya, tanya ke support nya aja untuk detailnya...
CMIIW

melthon said...

lam knal...
btw thanks buat sharenya, kl bisa ditambah lagi....

Anonymous said...

Mbak aku ngoneksikan ke mysqlnya gak bisa kalo pke modul padahal udah sama persis sama contoh yang mbak buat error trus datanya gak bisa tampil di datagridnya,mohon penjelasannya soalnya saya sedang butuh banget,makasih.

rani-irsan said...

pesan error nya apa ya?

Anonymous said...

Error on : frmLogin
Event : Form_Load
Err.No : 3367

Object is already in collection. Cannot Append.

(tlong dijelaskan,terimakasih)

rani-irsan said...

Oh udah ada modifikasi yah? klo gitu ga sama persis donk :D.
Kemungkinan ada nama field yang sama di select 2 kali atau lebih. misalnya gini:
select kodenama, kodenama from tablenama

Anonymous said...

makasih ya mbak?

Anonymous said...

makasih mbak?

catharina Tastri T. said...
This comment has been removed by the author.
catharina Tastri T. said...

assalamualaikum, mbak mau tanya lagi pesan errornya sama seperti kak anonymous tapi sudah saya teliti selectnya betul, kemungkinan salahnya dimana lagi ya ?? terimakasih

rani irsan said...

Boleh liat query nya?

rani irsan said...

Boleh liat query nya?

catharina Tastri T. said...

@rani pm ya mbak , terimakasih .