Visual Basic 6 dan MySQL/MariaDB

Galih Hermawan
7 min readNov 6, 2021

--

VB6 dan MySQL/MariaDB. Image by Author.

Bismillah Alhamdulillah,

Artikel ini dibuat sekadar untuk mengenang bagaimana dahulu Visual Basic 6 (VB6) merupakan salah satu pemrograman berbasis Graphical User Interface (GUI) yang cukup populer dan andal di masa jayanya. Visual Basic (juga disebut sebagai Classic Visual Basic) adalah bahasa pemrograman event-driven (berbasis kejadian) generasi ketiga dari Microsoft yang dikenal dengan model pemrograman Component Object Model (COM) yang pertama kali dirilis pada tahun 1991 dan dinyatakan sebagai warisan pada tahun 2008 ¹. Walaupun VB6 sudah dijadikan warisan oleh Microsoft, namun masih dapat digunakan di sistem operasi Windows 11 ².

Untuk mengakses aplikasi database di luar pemrograman VB6, biasanya melalui suatu penghubung yang disebut Open Database Connectivity (ODBC). Namun, dalam tutorial kali ini saya tidak akan menggunakan ODBC sebagai penghubung, melainkan VBMySQLDirect yang saya rasa lebih mudah penggunaannya. VBMySQLDirect adalah sebuah pembungkus MySQL C API yang ditulis oleh seorang kontributor dalam proyek VB-MySQL bernama Robert Rowe pada tahun 2001.

VBMySQLDirect adalah cabang dari MyVbQl API dan tersedia untuk pengembang Visual Basic dan semua pengembang Windows yang memiliki akses ke objek COM. VBMySQLDirect menawarkan peningkatan kinerja melalui ODBC, dan juga menawarkan peningkatan dari API MyVbQl sebelumnya dalam hal manajemen memori yang lebih baik, dukungan BLOB, dan kompatibilitas ADO yang lebih baik. VBMySQLDirect menggunakan API MySQL yang lebih baru sebagai basisnya juga dan karenanya mendukung fungsionalitas yang lebih baru daripada MyVbQl ³.

Dalam artikel ini akan dibagi dalam beberapa tahap, yaitu:

  1. Instalasi fail library VBMySQLDirect
  2. Penerapan pemanggilan API di VB6
  3. Contoh penerapan uji koneksi dalam GUI versi kustom
  4. Contoh aplikasi membaca data

Dalam pembuatan artikel ini beberapa hal penting yang harus disiapkan adalah:

  • VB6 sudah dipasang. Saat ini saya menggunakan VB6 versi SP6. Yang ingin melakukan instalasi di Windows 10 (atau Windows 11) ikuti tutorial di sini.
  • MySQL atau MariaDB sudah dipasang dengan benar di sistem operasi Windows (saat ini saya menggunakan Windows 11). Dapat juga menggunakan aplikasi versi terintegrasi seperti WAMP.

1. Instalasi fail library VBMySQLDirect

Fail library VBMySQLDirect berupa fail .dll yang harus diregistrasikan terlebih dahulu ke sistem operasi Windows sebelum dapat dipakai. DLL adalah singkatan dari Dynamic-Link Library. DLL adalah fail library dalam sistem operasi Windows yang berisi “arahan” untuk program lain dalam melakukan suatu pekerjaan. Fail ini bernama VBMySQLDirect.dll yang dapat diunduh di repository github saya. Langkah selanjutnya adalah sebagai berikut.

  • Letakkan fail VBMySQLDirect.dll di sebuah direktori,
  • Buka command prompt (jalankan sebagai Administrator),
  • Eksekusi perintah registrasi berikut hingga muncul notifikasi sukses.
regsvr32 "nama_dan_alamat_fail_dll"

Berikut ini contoh potongan gambar hasil registrasi yang sudah berhasil.

Registrasi fail.DLL. Image by Author.

2. Penerapan pemanggilan API di VB6

Application Programming Interface (API) atau antarmuka pemrograman aplikasi adalah sekumpulan definisi dan protokol untuk membangun dan mengintegrasikan perangkat lunak aplikasi. API memungkinkan sebuah produk atau layanan dapat berkomunikasi dengan produk dan layanan lain tanpa harus mengetahui bagaimana cara penerapannya.

Sebelum menggunakan API VBMySQLDirect ini, yang harus dilakukan pertama kali adalah memuatkan referensi ke fail library bersangkutan. Caranya adalah:

a. Buka IDE VB6, pilih Standard Exe, dan tekan tombol Open.
b. Simpan project (dan form baru) di folder yang dikehendaki.

tambahkan fail libmySQL.dll di setiap folder project yang dimiliki.

Jika mengalami error terkait belum terdeteksinya fail libmySQL.dll, silakan project-nya ditutup dahulu, dan dibuka lagi.

c. Dalam menu tab Project, pilih submenu References.

Menu Project > References. Image by Author.

d. Geser ke bawah hingga menemukan VB MySQL Direct v1.0, dan centang. Kemudian, klik tombol OK.

Daftar referensi library. Image by Author.

Untuk mengetahui ada API apa saja di library VBMySQLDirect dapat membuka menu View > Object Browser.

Object Browser. Image by Author.

Untuk membuat koneksi baru dapat menggunakan class MYSQL_CONNECTION sekaligus dilakukan inisialisasi variable baru.

Dim koneksi As MYSQL_CONNECTION
Set koneksi = New MYSQL_CONNECTION

Parameter koneksi dapat dilihat pada fungsi OpenConnection sebagai berikut.

Function OpenConnection([sHostName As String], [sUserName As String], [sPassword As String], [sDbName As String], [lPortNum As Long = 3306]) As MYSQL_CONNECTION_STATE

Contoh pengunaannya adalah sebagai berikut.

Const host = "localhost"
Const user = "root"
Const passw = ""
Const port = 3306
' parameter setelah passw dan sebelum port adalah nama database
' dapat dikosongkan
koneksi.OpenConnection host, user, passw, , port

Hasil koneksi adalah status MY_CONN_OPEN jika tersambung atau MY_CONN_CLOSED jika tertutup. Dan jika koneksi tidak berhasil dilakukan akan otomatis membangkitkan pesan kesalahan yang sesuai dengan jenis kesalahan yang sudah terinventarisasi di class MYSQL_ERR.

Eksekusi perintah (query) dapat dilakukan melalui fungsi Execute. Misalnya dalam perintah berikut:

Dim status
Dim isi
Set status = koneksi.Execute("SELECT version()")
isi = status.GetString(, "")

Variable status menyimpan hasil eksekusi query SELECT version()” yang digunakan untuk mengetahui versi database (MySQL/MariaDB) yang digunakan. Dan variable isi melalui fungsi GetString mengambil hasil eksekusi berupa data string.

Dan terakhir untuk menghapus object koneksi dari memori adalah dengan menyetel “Set koneksi = Nothing”.

d. Sebelum memasukkan kode di form code, di mode Design disiapkan dahulu satu buah tombol dengan nama default Command1, caption misalnya “Tes Koneksi”.

Desain Form. Image by Author.

e. Lakukan klik ganda pada area form atau tombol, dan lengkapi kodenya.

Kode sumber lengkapnya adalah sebagai berikut.

Hasil eksekusi dengan mengubah port 3306 (MySQL) dan 3307 (MariaDB) adalah sebagai berikut.

Tes Koneksi. Image by Author.

Berikut contoh tampilan kalau password diisi “abc” (data salah) dimana seharusnya kosong.

Koneksi gagal. Image by Author.

Jika Anda lupa port number dari MySQL atau MariaDB, silakan buka mysql/mariadb console (command line client) dan setelah berhasil login, ketikkan perintah “status”. Berikut contoh tampilannya.

Status server di MySQL/MariaDB console. Image by Author.

3. Contoh penerapan uji koneksi dalam GUI versi kustom

Dalam antarmuka yang akan dibuat ini terdapat empat fungsional utama, yaitu (1) tes koneksi, (2) menampilkan database, (3) menampilkan tabel dari database yang dipilih, dan (4) menampilkan atribut dari tabel yang dipilih.

Kode untuk fungsional tes koneksi menyerupai kode sebelumnya, hanya saja data masukan parameter diambil dari textbox yang menerima masukan dari pengguna. Untuk fungsional menampilkan database, dengan membangkitkan kode untuk list database dari server yang sedang terhubung. Data berupa list yang disimpan dalam listbox. Untuk fungsional menampilkan data tabel dipengaruhi oleh data database yang dipilih dalam listbox database. Dan terakhir untuk fungsional menampilkan tabel, dipengaruhi oleh data tabel yang dipilih pengguna dalam listbox tabel. Desain antarmukan adalah sebagai berikut.

Desain antarmuka. Image by Author.

Potongan kode utama untuk menampilkan database adalah:

Dim MyRS As MYSQL_RS
Dim theTemp As String, tempArray() As String
Set MyRS = New MYSQL_RS
Set MyRS = koneksi.Show(MY_SHOW_DATABASES)
If Not MyRS.EOF Then
theTemp = Trim$(MyRS.GetString(, ""))
If theTemp <> "" Then
Dim i As Integer
tempArray = Split(theTemp, vbCrLf)
For i = LBound(tempArray) To UBound(tempArray) - 1
lstDatabase.AddItem tempArray(i)
Next
End If
End If

Potongan kode utama untuk menampilkan tabel dari suatu database adalah:

Dim MyRS As MYSQL_RS
Dim theTemp As String, tempArray() As String

Set MyRS = New MYSQL_RS
Set MyRS = koneksi.Show(MY_SHOW_TABLES)
If Not MyRS.EOF Then
theTemp = Trim$(MyRS.GetString(, ""))
If theTemp <> "" Then
Dim i As Integer
tempArray = Split(theTemp, vbCrLf)
For i = LBound(tempArray) To UBound(tempArray) - 1
lstTabel.AddItem tempArray(i)
Next
End If
End If

Dan potongan kode utama untuk menampilkan atribut dari suatu tabel adalah:

Set MyRS = koneksi.Execute("SELECT * FROM " & namaTabel)
If Not MyRS.EOF Then
Dim i As Integer
For i = 0 To MyRS.FieldCount - 1
lstAtribut.AddItem MyRS.Fields(i).Name
Next i
End If

Hasil akhir setelah eksekusi program adalah sebagai berikut.

Antarmuka hasil eksekusi program. Image by Author.

4. Contoh aplikasi membaca data

Pada bagian ini akan membahas cara membaca data dari suatu tabel disertai fitur pencarian data. Dimana pencarian data akan dilakukan pembandingan antara nilai masukan (data yang dicari) dengan semua atribut dalam tabel yang dipilih. Jadi jika diumpamakan terdapat parameter masukan dengan nilai “abc”. Maka string SQL secara keseluruhan adalah:

SELECT atribut1, atribut2, dst
FROM namaTabel
WHERE atribut1 LIKE "%abc%" OR atribut2 LIKE "%abc%" OR dst...

Hasil pencarian sementara ini hanya disimpan dalam sebuah komponen textbox dimana data yang ditemukan akan disusun secara vertikal. Untuk tutorial lanjutan akan disertakan penyajian data dalam bentuk tabel menggunakan komponen listview.

Berikut ini contoh hasil eksekusi program disertai pencarian data.

Antarmuka melihat dan mencari data. Image by Author.

Untuk selanjutnya akan dibuatkan tutorial penerapan aplikasi CRUD.

Kode sumber dapat diperoleh di github.

Terima kasih sudah bersedia membaca artikel ini, semoga bermanfaat.

Website · Github Pages · Demo Mini Projects

--

--