Pemrograman Visual Basic
BAB IX DATABASE
Standar Kompetensi :
Mahasiswa dapat mengetahui, memahami, menguasai dan mampu
mengimplementasi teori, konsep dan prinsip pemrograman visual dengan
logika pemrograman yang benar, ringkas, dan tepat dalam
penerapannya di bidang teknologi informasi
Kompetensi Dasar Indikator
Dapat menggunakan kontrol database
Dapat menggunakan fungsi-fungsi
Mengenal Kontrol
sederhana dari kontrol database
Database, Fungsi-fungsi
Dapat menghubungkan textbox dengan
sederhana kontrol
database melalui kontrol database
database
Dapat menghubungkan database
dengan kode program
A. Pengertian Database
Database merupakan bagian dari kehidupan kita sehari-hari meskipun
sering tidak disadari. Sebagai contoh di STMIK Duta Bangsa, database
digunakan untuk menyimpan data para mahasiswa, dosen, jadwal
kuliah, nilai masing-masing mahasiswa, dan lain-lain.
Database merupakan sekumpulan data yang saling berhubungan,
didesain untuk menyediakan informasi pada sebuah organisasi.
Sedangkan DBMS (The Database Management System) merupakan
perangkat lunak yang digunakan untuk mendefinisikan, membuat,
mengatur, dan menyediakan akses pada database. Microsoft Access
merupakan contoh software RDBMS (Relation DBMS).
1. Membuat Database dan Tabel dengan Visual Data Manager
Untuk membuat database dengan Visual Data Manager, lakukan
langkah-langkah sebagai berikut :
a. Pilih menu Add Ins pada menu utama Visual Basic, kemudian pilih
Visual Data Manager
b. Pilih File – New – Microsoft Access – Version 7.0 MDB
c. Berikan nama database(misal dbAkademik), tentukan tempat
dimana Anda akan menyimpan database, kemudian klik Save.
d. Untuk membuat tabel, klik kanan Properties, pilih New Table
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 99
Pemrograman Visual Basic
Gambar 48. Membuat tabel
e. Isikan nama tabel, klik Add Field, isikan nama field, tipe data dan
tentukan Filed Sizenya, Klik OK.
Gambar 49. Membuat Struktur Tabel
f. Untuk membuat Primary Key pada Field, klik Add Index, isikan
Name (misal: NIM), pada Available Fields pilih Field yang akan
dijadikan Primary Key (misal pilih NIM)
g. Tentukan pilihan Index (Primary, Unique, IgnoreNulls). Primary
digunakan sebagai pengenal suatu record, jika tabel yang
dihubungkan berhubungan denga tabel yang lain (dalam satu
tabel hanya boleh ada satu primary key). Unique dipilih jika ingin
indeks bersifat unik, IgnoreNulls digunakan untuk mengabaikan
field yang kosong.
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 100
Pemrograman Visual Basic
Gambar 50. Menentukan Primary Key
h. Jika Anda sudah membuat semua Field yang dibutuhkan, maka
klik Build the Table
2. Mengisi Data Pada Tabel
a. Klik kanan pada nama tabel (tbMahasiswa, pilih Open
Gambar 51. Membuka Tabel
b. Muncul window Dynaset : Mahasiswa
Gambar 52. Mengisikan data pada tabel
Fungsi menu yang ada pada tabel tbMahasiswa
• Add : menambah record baru
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 101
Pemrograman Visual Basic
• Edit : mengoreksi record
• Delete : menghapus record aktif
• Find : mencari record
• Refresh : menampilkan ulang setelah record mengalami
perubahan
• Close : menutup tabel
B. Data Acces Object (DAO)
DAO (Data Access Object) merupakan suatu Object Data Access Yang
berukuran besar meliputi kemampuan Data Definition, Data
Manipulation dan Database Maintenance. Untuk mengakses database
menggunakan DAO dibutuhkan object Data. Jika dikoneksikan dengan
Microsoft Access DAO hanya bisa dikoneksikan dengan Access 97.
Gambar 53. Objek Data
Beberapa properti yang dimiliki oleh objek Data dapat Anda lihat pada
tabel berikut :
Tabel 22. Property Objek Data
Properti Keterangan
Hubungan file data, bias bersumber dari Access,
Connect
dBase, Excel, Foxpro, Lotus, Paradox, dan file Text.
DatabaseName Nama file database
RecordSource Tabel dalam database
Pengecekan pergerakan kusror. Jika kursor sampai
pada akhir file, maka terdapat pilihan property :
EOF Action
MoveLast (record terakhir), EOF (akhir file), AddNew
(menambah record baru)
Recordset Type Tipe record : 0-Table, 1-Dynaset, 2-SnapShot
1. Koneksi Database dengan DAO
Untuk koneksi database dengan DAO, Anda harus menambahkan
objek Data pada Form. Ada dua cara koneksi database
menggunakan DAO
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 102
Pemrograman Visual Basic
a. Dengan mengatur property dari objek Data
Tabel 23. Properti Kontrol Data dbAkademik
Property Setting Value
Name datAkademik
Caption dbAkademik
Connect Access
DatabaseName dbAkademik
Recordsource tbMahasiswa
b. Pengaturan dengan mengetikkan kode program seperti berikut :
Private Sub Form_Load()
[Link] = [Link] &
"\[Link]"
[Link] = "tbMahasiswa"
End Sub
Koneksi database cara pertama masih bersifat statis yang artinya jika
program/file dipindah ke folder atau drive lain, maka pengaturan
properti DatabaseName harus disesuaikan dengan program/file
berada.
Koneksi database cara kedua, sifatnya dinamis. [Link] digunakan
untuk mendapatkan folder aktif.
2. Contoh Program Menggunakan DAO
Berikut adalah contoh program olah data Mahasiswa di STMIK
Palangkaraya. Atur Form seperti pada contoh gambar 9.7.
• Tanggal lahir menggunakan DTPicker. Untuk menambahkan
DTPicker di toolbox adalah dari menu Project – Components, pilih
tab Controls- kemudian pilih Microsoft Windows Common Controls-
2 6.0
• Grid menggunakan DBGrid. Untuk menambahkan DBGrid di
toolbox adalah dari menu Project – Components, pilih tab
Controls- kemudian pilih Microsoft Data Bound Grid Control 5.0.
Atur properti Datasource dari DBGrid, pilih datAkademik.
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 103
Pemrograman Visual Basic
Gambar 54. Program olah data mahasiswa dengan DAO
Ketik kode program berikut :
1. Koneksi Database
Private Sub Form_Load()
‘Koneksi database
[Link] = [Link] & “\[Link]”
[Link] = “tbMahasiswa”
End Sub
Private Sub cmdNew_Click()
If [Link] = "New" Then
[Link] = True
[Link]
[Link] = "Save"
[Link] = False
[Link] = False
Else
With [Link]
.AddNew 'Menambahkan data baru
!NIM = [Link]
!Nama = [Link]
!Alamat = [Link]
!TglLahir = [Link]
.Update
End With
cmdCancel_Click ' memanggil cmdCancel_Click
End If
End Sub
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 104
Pemrograman Visual Basic
Private Sub cmdEdit_Click()
If [Link] = "Edit" Then
[Link] = True
[Link]
[Link] = "Update"
[Link] = False
[Link] = False
Else
With [Link]
.Edit 'Perintah untuk edit data
!Nama = [Link]
!Alamat = [Link]
!TglLahir = [Link]
.Update
End With
cmdCancel_Click ' memanggil cmdCancel_Click
End If
End Sub
Private Sub cmdDel_Click()
If [Link] = "Del" Then
[Link] = True
[Link]
[Link] = "Delete"
[Link] = False
[Link] = False
Else
pesan = MsgBox("Apakah Anda yakin menghapus NIM " & _
[Link] & " ?", vbYesNo, "Hapus Data")
If pesan = vbYes Then
[Link]
End If
cmdCancel_Click ' memanggil cmdCancel_Click
End If
End Sub
2. Menghapus data
Private Sub txtNIM_KeyPress(KeyAscii As Integer)
Dim Cari
Cari = "NIM = '" & [Link] & "'"
[Link] Cari 'Cari NIM dari record
pertama
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 105
Pemrograman Visual Basic
If KeyAscii = 13 Then 'Jika ditekan Enter
With [Link]
If [Link] = "Save" Then
If .NoMatch Then 'Jika tidak ditemukan NIM
[Link] = True
[Link] = True
[Link] = ""
[Link] = ""
[Link] = True
[Link] = Now
[Link]
Else
[Link] = !Nama
[Link] = !Alamat
[Link] = !TglLahir
MsgBox "NIM " & [Link] & " sudah ada"
[Link]
End If
ElseIf [Link] = "Update" Then
If .NoMatch Then
MsgBox "NIM " & [Link] & " belum ada"
[Link]
Else
[Link] = True
[Link] = True
[Link] = True
[Link]
[Link] = !Nama
[Link] = !Alamat
[Link] = !TglLahir
End If
ElseIf [Link] = "Delete" Then
If .NoMatch Then
MsgBox "NIM " & [Link] & " belum ada"
[Link]
Else
[Link] = !Nama
[Link] = !Alamat
[Link] = !TglLahir
End If
End If
End With
End If
'hanya boleh diisi angka atau backspace
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or
KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0
End If
End Sub
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 106
Pemrograman Visual Basic
Private Sub cmdCancel_Click()
'Mengembalikan ke keadaan awal
[Link] = ""
[Link] = ""
[Link] = ""
[Link] = Now
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link] = "New"
[Link] = "Edit"
[Link] = "Del"
[Link] = True
[Link] = True
[Link] = True
[Link]
End Sub
C. Active X Data Object
ADO (ActiveX Data Object) merupakan suatu Object Data yang
mempunyai kemampuan Data Definition, Data Manipulation dan
Database Maintenance serta dapat untuk membangun koneksi dengan
beberapa jenis database. Untuk mengakses database menggunakan
ADO ada dua fasilitas yang dapat dipakai yaitu
• ADODC
ADODC adalah sebuah object sehingga dapat dilihat atau
ditambahkan di toolbox. Untuk menambahkan objek ini maka
lakukan langkah sebagai berikut :
Klik menu Project, pilih Component (atau tekan Ctrl-T), tandai dengan
memberi tanda cek pada Microsoft ADO Data Control 6.0 (OLEDB).
Akhiri dengan tekan tombol OK, maka pada Toolbox akan muncul
objek ADODC.
• ADODB
Salah satu cara menghubungkan aplikasi dengan database melalui
kode program, tanpa menggunakan objek.
Database yang dapat dikoneksi dengan ADO selain Microsoft Access,
dapat juga dengan Foxpro, ODBC, SQLServer atau MySQL.
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 107
Pemrograman Visual Basic
1. Koneksi Database dengan ADODB
Di dalam Visual Basic, Object ADODB yang sering digunakan adalah
[Link] dan [Link]. Untuk dapat membuat
suatu variable dari ADODB ini kita harus terlebih dahulu memilih
references di dalam Visual Baic yaitu Microsoft ActiveX Data Object.
Iuti langkah berikut :
• Pilih menu Project – References
• Pilih Microsoft ActiveX Data Objects 2.1 Library – Klik OK
Module sering digunakan di dalam pendeklarasian Connection
dan Recordset untuk penggunaan database , sehingga Object
Connection dan Recordset tersebut dapat digunakan pada
semua bagian di dalam project yang anda buat.
• Connection digunakan untuk melakukan koneksi ke database
yang dipilih dengan perintah open ataupun mengeksekusi sintaks-
sintaks SQL dengan perintah execute. Untuk membuka koneksi ke
database gunakan perintah open yang diikuti oleh connection
string yang dapat dihapalkan ataupun menggunakan bantuan
seperti control ADODC atau file extension .UDL
• Recordset digunakan untuk menampung data (bisa berasal dari
1/ lebih tabel) yang merupakan hasil eksekusi perintah sql select,
syntax:
select [nama kolom] from [nama tabel] where [kondisi]
Tambahkan Module pada program VB Anda (Project – Add Module),
kemudian ketikkan kode program koneksi database berikut di Module
Anda
Public Con As [Link]
Public Sub OpenConnection()
Set Con = New [Link]
[Link] = "Provider=[Link].4.0;" & _
"Data Source=" & [Link] & "\[Link];" & _
"Persist Security Info=False"
[Link] = adUseClient
[Link]
End Sub
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 108
Pemrograman Visual Basic
Hasil dari koneksi di atas adalah Con akan membuka koneksi ke
database dengan nama [Link] yang terletak di folder
aktif [Link].
2. Contoh Program Menggunakan ADODB
Berikut adalah contoh program olah data Mahasiswa di STMIK Duta
Bangsa. Atur Form seperti pada contoh gambar 9.8.
• NIM akan diinput secara otomatis berdasarkan Program Studi,
Jenjang, Tahun Masuk dan urutan mahasiswa saat daftar ulang.
• Jenjang Sarjana menawarkan dua program studi yaitu : Sistem
Informasi dan Teknik Informatika. Jenjang Diploma Tiga
menawarkan dua program studi yaitu : Manajemen Informatika
dan Teknik Komputer.
• Kita akan menggunakan MSFlexGrid untuk menmpilkan data.
Cara menambahkan project MSFlexGrid : Pilih menu Project –
Components, Pilih Microsoft FlexGrid Control 6.0 – Klik OK
Berikut tampilan Form yang digunakan :
Gambar 55. Program olah data mahasiswa dengan ADODB
Ketik kode program berikut :
a. Koneksi Database
Ketik kode program koneksi database berikut pada Module
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 109
Pemrograman Visual Basic
Public Con As [Link]
Public rsMahasiswa As [Link]
Public Sub OpenConnection()
Set Con = New [Link]
[Link] = "Provider=[Link].4.0;" & _
"Data Source=" & [Link] & "\[Link];" & _
"Persist Security Info=False"
[Link] = adUseClient
[Link]
End Sub
b. Kode program di Form_Load
Private Sub Form_Load()
OpenConnection 'Memanggil koneksi database dari Module
'Mengkoneksikan rsMahasiswa ke tabel tbMahasiswa
Set rsMahasiswa = New [Link]
[Link] "Select * From tbMahasiswa", Con, adOpenStatic,
adLockOptimistic
'Memanggil sub TampilData
'Digunakan untuk menampilkan data di Grid
TampilData
'Mengisikan item di cbJenjang
[Link] "Sarjana"
[Link] "Diploma 3"
End Sub
c. Kode program untuk mengatur Grid
Sub AturGrid()
[Link] = 1
[Link] = 7
[Link](0) = 500
[Link](1) = 1000
[Link](2) = 2000
[Link](3) = 2000
[Link](4) = 2000
[Link](5) = 2000
[Link](6) = 2000
[Link](0, 0) = "No"
[Link](0, 1) = "NIM"
[Link](0, 2) = "Jenjang"
[Link](0, 3) = "Program Studi"
[Link](0, 4) = "Nama Mahasiswa"
[Link](0, 5) = "Tanggal Lahir"
[Link](0, 6) = "Alamat"
End Sub
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 110
Pemrograman Visual Basic
d. Kode program untuk menampilkan data di Grid
Sub TulisData()
Dim i As Integer
i = 0
Do While Not [Link]
i = i + 1
[Link] (i & vbTab & rsMahasiswa(0) & vbTab & _
rsMahasiswa(1) & vbTab & rsMahasiswa(2) & vbTab & _
rsMahasiswa(3) & vbTab & rsMahasiswa(4) & vbTab & _
rsMahasiswa(5))
[Link]
Loop
End Sub
Sub TampilData()
Set rsMahasiswa = New [Link]
[Link] "Select * From tbMahasiswa " & _
"Order By NIM", Con, adOpenStatic, adLockOptimistic
AturGrid
TulisData
End Sub
e. Kode program saat cbJenjang dan cbProdi diklik
Private Sub cbJenjang_Click()
[Link] = True
[Link]
Select Case [Link]
Case 0
[Link]
[Link] "Sistem Informasi"
[Link] "Teknik Informatika"
Case 1
[Link]
[Link] "Manajemen Informatika"
[Link] "Teknik Komputer"
End Select
If [Link] <> "" Then
BuatNIM
Else
[Link] = ""
End If
End Sub
Private Sub cbProdi_Click()
If [Link] <> "" Then
BuatNIM
[Link] = True
[Link] = True
[Link] = True
[Link]
End If
End Sub
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 111
Pemrograman Visual Basic
f. Kode program untuk menampilkan membuat NIM secara otomatis
Sub BuatNIM()
Dim Prodi, Jenjang, Tahun, NIM As String
Tahun = Right(Year(Now), 2)
Select Case [Link]
Case 0
Jenjang = "01"
Select Case [Link]
Case 0
Prodi = "01"
Case 1
Prodi = "02"
End Select
Case 1
Jenjang = "02"
Select Case [Link]
Case 0
Prodi = "03"
Case 1
Prodi = "04"
End Select
End Select
Set rsMahasiswa = New [Link]
[Link] "Select NIM From tbMahasiswa Where Jenjang= '"
& [Link] & "' And " & _
"Prodi= '" & [Link] & "' Order By NIM ", Con,
adOpenStatic, adLockOptimistic
With rsMahasiswa
If .EOF Then
NIM = Tahun & Jenjang & Prodi & "001"
Else
.MoveLast
A = rsMahasiswa!NIM
B = Right(A, 3)
C = Val(B)
If C > 0 And C < 10 Then
NIM = Tahun & Jenjang & Prodi & "00" & (C + 1)
ElseIf C >= 10 And C < 100 Then
NIM = Tahun & Jenjang & Prodi & "0" & (C + 1)
ElseIf C >= 100 And C < 1000 Then
NIM = Tahun & Jenjang & Prodi & C
End If
End If
End With
[Link] = NIM
End Sub
g. Kode program untuk pencarian NIM
Private Sub txtNIM_KeyPress(KeyAscii As Integer)
Set rsMahasiswa = New [Link]
[Link] "Select * From tbMahasiswa Where NIM = '" &
[Link] & "'", Con, adOpenStatic, adLockOptimistic
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 112
Pemrograman Visual Basic
If KeyAscii = 13 Then 'Jika ditekan Enter
With rsMahasiswa
If [Link] = "Update" Then
If .EOF Then
MsgBox "NIM " & [Link] & " belum ada"
[Link]
Else
[Link] = True
[Link] = True
[Link] = True
[Link]
[Link] = !Jenjang
[Link] = !Prodi
[Link] = !Nama
[Link] = !Alamat
[Link] = !TglLahir
End If
ElseIf [Link] = "Delete" Then
If .EOF Then
MsgBox "NIM " & [Link] & " belum ada"
[Link]
Else
[Link] = !Jenjang
[Link] = !Prodi
[Link] = !Nama
[Link] = !Alamat
[Link] = !TglLahir
End If
End If
End With
End If
'hanya boleh diisi angka atau backspace
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9")
Or KeyAscii = vbKeyBack) Then
Beep
KeyAscii = 0
End If
End Sub
h. Kode program untuk menambah data baru dan edit data
Private Sub cmdNew_Click()
If [Link] = "New" Then
[Link] = True
[Link]
[Link] = "Save"
[Link] = False
[Link] = False
Else
Set rsMahasiswa = New [Link]
[Link] "Select * From tbMahasiswa", Con,
adOpenStatic, adLockOptimistic
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 113
Pemrograman Visual Basic
With rsMahasiswa
.AddNew 'Menambahkan data baru
!NIM = [Link]
!Prodi = [Link]
!Jenjang = [Link]
!Nama = [Link]
!Alamat = [Link]
!TglLahir = Format([Link], "dd/mm/yyyy")
.Update
End With
cmdCancel_Click ' memanggil cmdCancel_Click
End If
End Sub
Private Sub cmdEdit_Click()
If [Link] = "Edit" Then
[Link] = True
[Link]
[Link] = "Update"
[Link] = False
[Link] = False
Else
Set rsMahasiswa = New [Link]
[Link] "Select * From tbMahasiswa where NIM = '" &
[Link] & "'", Con, adOpenStatic, adLockOptimistic
With rsMahasiswa
!Prodi = [Link]
!Jenjang = [Link]
!Nama = [Link]
!Alamat = [Link]
!TglLahir = Format([Link], "dd/mm/yyyy")
.Update
End With
cmdCancel_Click ' memanggil cmdCancel_Click
End If
End Sub
i. Kode program untuk menghapus data
Private Sub cmdDel_Click()
If [Link] = "Del" Then
[Link] = True
[Link]
[Link] = "Delete"
[Link] = False
[Link] = False
Else
pesan = MsgBox("Apakah Anda yakin menghapus NIM " & _
[Link] & " ?", vbYesNo, "Hapus Data")
If pesan = vbYes Then
Set rsMahasiswa = New [Link]
[Link] "Select * From tbMahasiswa where
NIM = '" & [Link] & "'", Con, adOpenStatic,
adLockOptimistic
[Link]
End If
cmdCancel_Click ' memanggil cmdCancel_Click
End If
End Sub
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 114
Pemrograman Visual Basic
j. Kode program pada saat klik Cancel
Private Sub cmdCancel_Click()
[Link] = ""
[Link] = ""
[Link] = ""
[Link] = ""
[Link] = ""
[Link] = Now
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link] = False
[Link] = "New"
[Link] = "Edit"
[Link] = "Del"
[Link] = True
[Link] = True
[Link] = True
TampilData
End Sub
Soal Latihan
Buka kembali program yang sudah Anda buat seperti gambar 55.
• Tambahkan Tabel Dosen dan Tabel Mata Kuliah pada Database
Akademik yang sudah Anda buat. Atur Field yang dibutuhkan untuk
masing-masing tabel.
• Tambahkan Form untuk Olah Data Dosen dan Form untuk Olah Data
Mata Kuliah dan ketik kode programnya.
Oleh Suparno – endustong@[Link] STMIK Palangkaraya 115