Pada tutorial
sebelumnya telah diterangkan apa itu stored procedure dan saya juga pernah membahas tentang
View dan penerapannya di dalam VB 6
Pada tutorial kali ini saya akan sedikit menjelaskan pembuatan dan penerapan stored procedure pada MySQL di Visual Basic 6. Dengan syarat MySQL nya versi 5 ke atas, karena untuk versi 5 ke bawah belum mendukung Stored Procedure.
Dalam pembuatan database, tabel dan stored procedure di database MySQL saya menggunakan aplikasi Navicat jika anda belum punya aplikasinya silahkan download
disini dan cara settingnya silahkan buka tutorial
ini. Kita akan membuat empat buah stored procedure pertama untuk simpan data, kedua untuk update atau edit data, ketiga untuk hapus data dan ke empat untuk select data. Cara-cara Pembuatan Stored Procedure Dan Penerapannya Di VB 6 sebagai berikut ini :
Buka aplikasi navicatnya kemudian buatlah sebuah database dengan nama db_akademik lalu buat tabel dengan nama tbl_mahasiswa dengan struktur seperti yang nampak pada gambar berikut ini
Jika pembuatan tabelnya sudah selesai, kemudian klik Queries pada jendela sebelah kiri kemudian klik New Query untuk lebih jelas silahkan lihat gambar berikut ini.
Setelah klik tombol new query maka muncul jendela baru kemudian ketikan script berikut ini untuk membuat Stored Procedure untuk proses simpan data, stored procedure ini saya kasih nama SP_INSERT_DATA
DROP PROCEDURE IF EXISTS SP_INSERT_DATA;
CREATE PROCEDURE SP_INSERT_DATA
(
IN xNim VARCHAR(4),
IN xNama VARCHAR(30),
IN xTgl_lahir DATE,
IN xAlamat VARCHAR(50)
)
BEGIN
INSERT INTO TBL_MAHASISWA(NIM,NAMA,TGL_LAHIR,ALAMAT)
VALUES(xNim,xNama,xTgl_lahir,xAlamat;
END
Jika sudah silahkan klik tombol run pada pojok kiri atas, kemudian hapus semua script diatas lalu ketikan script berikut ini untuk membuat Stored Procedure untuk proses update/edit data, stored procedure ini saya kasih nama SP_UPDATE_DATA
DROP PROCEDURE IF EXISTS SP_UPDATE_DATA;
CREATE PROCEDURE SP_UPDATE_DATA
(
IN xNim VARCHAR(4),
IN xNama VARCHAR(30),
IN xTgl_lahir DATE,
IN xAlamat VARCHAR(50)
)
BEGIN
UPDATE TBL_MAHASISWA SET nama=xNama,tgl_lahir=xTgl_lahir,alamat=xAlamat
WHERE nim=xNim;
END
Jika sudah klik tombol Run pada pojok kiri atas, kemudian hapus lagi semua script diatas lalu ketikan script berikut ini untuk membuat Stored Procedure untuk proses hapus data, stored procedure ini saya kasih nama SP_DELETE_DATA
DROP PROCEDURE IF EXISTS SP_DELETE_DATA;
CREATE PROCEDURE SP_DELETE_DATA
(
IN xNim VARCHAR(4)
)
BEGIN
DELETE FROM TBL_MAHASISWA
WHERE nim=xNim;
END
Jika sudah klik tombol Run pada pojok kiri atas lagi, kemudian hapus lagi semua script diatas lalu ketikan script berikut ini untuk membuat Stored Procedure untuk proses select data, stored procedure ini saya kasih nama SP_SELECT_DATA
DROP PROCEDURE IF EXISTS SP_SELECT_DATA;
CREATE PROCEDURE SP_SELECT_DATA
(
IN xNim VARCHAR(4)
)
BEGIN
SELECT nim,nama,tgl_lahir,alamat
FROM tbl_mahasiswa
WHERE NIM=xNim;
END
Jika sudah silahkan tutup jendela querynya, jika berhasil maka pada sub menu Functions akan terdapat 4 stored procedure yang telah kita buat tadi. Berikut penampakannya :
Lalu kita berpindah ke Visual Basic untuk memanggil/menerapkan stored procedure yang telah kita buat. Ikutilah langkah-langkah berikut in.
Bukalah visual basic 6 nya kemudian tambahkan References "Microsoft ActivX Data Object 2.5 Library" dengan cara klik menu Project-References seperti gambar berikut ini
cari dan beri tanda centang kemudian klik OK. untuk contoh ini saya memakai versi 2.5 jika di komputer anda tidak ada silahkan pakai versi yang lebih rendah atau yang lebih tinggi.
Kemudian buatlah sebuah form seperti gambar berikut ini
Kemudian tambahkan sebuah modul dengan cara klik menu Project-Add Module. Modul ini digunakan untuk koneksi ke database MySQL, lalu ketikan pada modul kode beriku
Public Conn As New ADODB.Connection
Public Sub Buka()
Set Conn = New ADODB.Connection
Conn.ConnectionString = "Provider=MSDASQL.1;" _
& "Persist Security Info=False;" _
& "DRIVER={MySQL ODBC 3.51 Driver};" _
& "DATABASE=db_akademik;" _
& "OPTION=0;" _
& "PORT=3306;" _
& "SERVER=127.0.0.1;" _
& "UID=root;" _
& "PWD=;"
Conn.Open
Conn.CursorLocation = adUseClient
End Sub
pada contoh ini saya memakai Driver ODBC versi 3.51 untuk koneksi ke databasenya, jika anda belum punya silahakn download
disini
Kemudian ketikan kode berikut ini pada bagian General_Declaration (bagian paling atas pada jendela kode)
Dim rsMhs As New ADODB.Recordset
Private Sub AutoNumber()
Set rsMhs = New ADODB.Recordset
rsMhs.Open ("SELECT * FROM tbl_mahasiswa " _
& "WHERE nim IN(SELECT MAX(nim) " _
& "FROM tbl_mahasiswa)order by nim DESC"), Conn
rsMhs.Requery
Dim urut As String * 4
Dim Hitung As Long
If rsMhs.EOF Then
urut = "0001"
Else
Hitung = Right(rsMhs!nim, 4) + 1
urut = Right("0000" & Hitung, 4)
End If
TxtNim.Text = urut
End Sub
Private Sub Bersih()
For Each Control In FormInputMhs.Controls
If TypeOf Control Is TextBox Then
Control.Text = ""
End If
Next Control
End Sub
Private Sub AktifGrid()
MSFlexGrid.Cols = 5
MSFlexGrid.RowHeightMin = 300
'-----------------------------------------
MSFlexGrid.Col = 0
MSFlexGrid.Row = 0
MSFlexGrid.Text = "NO"
MSFlexGrid.CellFontBold = True
MSFlexGrid.ColWidth(0) = 500
MSFlexGrid.AllowUserResizing = flexResizeColumns
MSFlexGrid.CellAlignment = flexAlignCenterCenter
MSFlexGrid.ColAlignment(0) = flexAlignCenterCenter
'------------------------------------------
MSFlexGrid.Col = 1
MSFlexGrid.Row = 0
MSFlexGrid.Text = "NIM"
MSFlexGrid.CellFontBold = True
MSFlexGrid.ColWidth(1) = 800
MSFlexGrid.AllowUserResizing = flexResizeColumns
MSFlexGrid.CellAlignment = flexAlignCenterCenter
MSFlexGrid.ColAlignment(1) = flexAlignLeftCenter
'-----------------------------------------
MSFlexGrid.Col = 2
MSFlexGrid.Row = 0
MSFlexGrid.Text = "Nama Mahasiswa"
MSFlexGrid.CellFontBold = True
MSFlexGrid.ColWidth(2) = 2000
MSFlexGrid.AllowUserResizing = flexResizeColumns
MSFlexGrid.CellAlignment = flexAlignCenterCenter
MSFlexGrid.ColAlignment(2) = flexAlignLeftCenter
'--------------------------------------------
MSFlexGrid.Col = 3
MSFlexGrid.Row = 0
MSFlexGrid.Text = "Tgl Lahir"
MSFlexGrid.CellFontBold = True
MSFlexGrid.ColWidth(3) = 1300
MSFlexGrid.AllowUserResizing = flexResizeColumns
MSFlexGrid.CellAlignment = flexAlignCenterCenter
MSFlexGrid.ColAlignment(3) = flexAlignLeftCenter
'-----------------------------------------------
MSFlexGrid.Col = 4
MSFlexGrid.Row = 0
MSFlexGrid.Text = "Alamat"
MSFlexGrid.CellFontBold = True
MSFlexGrid.ColWidth(4) = 2400
MSFlexGrid.AllowUserResizing = flexResizeColumns
MSFlexGrid.CellAlignment = flexAlignCenterCenter
MSFlexGrid.ColAlignment(4) = flexAlignLeftCenter
End Sub
Sub TampilGrid()
Dim Baris As String
MSFlexGrid.Clear
Call AktifGrid
'---------------------
MSFlexGrid.Rows = 1
Baris = 0
Set rsMhs = New ADODB.Recordset
rsMhs.Open "SELECT * FROM tbl_mahasiswa " _
& "ORDER BY nim ASC", _
Conn, adOpenDynamic, adLockOptimistic
'---------------------
If rsMhs.BOF Then
Exit Sub
Else
rsMhs.MoveFirst
Do While Not rsMhs.EOF
'On Error Resume Next
Baris = Baris + 1
MSFlexGrid.Rows = Baris + 1
MSFlexGrid.TextMatrix(Baris, 0) = Baris
MSFlexGrid.TextMatrix(Baris, 1) = rsMhs.Fields("nim")
MSFlexGrid.TextMatrix(Baris, 2) = rsMhs.Fields("nama")
MSFlexGrid.TextMatrix(Baris, 3) = Format(rsMhs.Fields("tgl_lahir"), "dd-MM-yyyy")
MSFlexGrid.TextMatrix(Baris, 4) = rsMhs.Fields("alamat")
rsMhs.MoveNext
Loop
End If
End Sub
Kemudian kode berikut ini pada form_load
Private Sub Form_Load()
Call Buka
Call Bersih
Call AutoNumber
Call TampilGrid
CmdSave.Caption = "&Save"
DTPicker.Value = Date
End Sub
Jika sudah ketikan kode berikut ini pada tombol Save
Private Sub CmdSave_Click()
'-----stored procedure input data(simpan data)-----------
If CmdSave.Caption = "&Save" Then
Conn.Execute "SP_INSERT_DATA('" & TxtNim.Text & "','" & TxtNama.Text & "','" & Format(DTPicker.Value, "yyyy-MM-dd") & "','" & TxtAlamat.Text & "')"
Form_Load
TxtNama.SetFocus
'-----stored procedure ubah data(edit data)-----------
ElseIf CmdSave.Caption = "&Update" Then
Conn.Execute "SP_UPDATE_DATA('" & TxtNim.Text & "','" & TxtNama.Text & "','" & Format(DTPicker.Value, "yyyy-MM-dd") & "','" & TxtAlamat.Text & "')"
Form_Load
TxtNama.SetFocus
End If
End Sub
Kemudian ketikan kode berikut ini pada tombol cancel
Private Sub CmdCancel_Click()
Form_Load
TxtNama.SetFocus
End Sub
Kemudian ketikan kode berikut ini pada tombol delete
Private Sub CmdDelete_Click()
If TxtNim.Text = "" Or TxtNama.Text = "" Then
MsgBox "Silahkan Pilih Data Yang Akan Dihapus Dahulu", vbInformation, ".:: Informasi ::."
Exit Sub
Else
Pesan = MsgBox("Yakin Data Ini Akan Dihapus.....?", vbYesNo + vbQuestion, " .:: Konfirmasi ::.")
If Pesan = vbYes Then
Call Buka
'-----stored procedure hapus data(delete data)-----------
Conn.Execute "SP_DELETE_DATA('" & TxtNim.Text & "')"
Form_Load
TxtNama.SetFocus
Else
Form_Load
End If
End If
End Sub
Kemudian ketikan kode berikut ini pada tombol exit
Private Sub CmdExit_Click()
Unload Me
End Sub
Kemudian ketikan kode berikut pada txtCari_Keypress()
Private Sub txtCari_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Dim Baris As String
MSFlexGrid.Clear
Call AktifGrid
'---------------------
MSFlexGrid.Rows = 1
Baris = 0
Dim oPar1 As New ADODB.Parameter
Dim oCmd As New ADODB.Command
Set rsMhs = New ADODB.Recordset
With oCmd
.ActiveConnection = Conn
.CommandType = adCmdStoredProc
.CommandText = "SP_SELECT_DATA"
Set oPar1 = .CreateParameter("NIM", adVarChar, adParamInput, 10, txtCari.Text)
.Parameters.Append oPar1
Set rsMhs = .Execute
End With
'---------------------
If rsMhs.BOF Then
MsgBox "Nim Yang Anda Cari Tidak Ada Dalam Database", vbInformation, "Informasi"
Exit Sub
Else
rsMhs.MoveFirst
Do While Not rsMhs.EOF
'On Error Resume Next
Baris = Baris + 1
MSFlexGrid.Rows = Baris + 1
MSFlexGrid.TextMatrix(Baris, 0) = Baris
MSFlexGrid.TextMatrix(Baris, 1) = rsMhs.Fields("nim")
MSFlexGrid.TextMatrix(Baris, 2) = rsMhs.Fields("nama")
MSFlexGrid.TextMatrix(Baris, 3) = Format(rsMhs.Fields("tgl_lahir"), "dd-MM-yyyy")
MSFlexGrid.TextMatrix(Baris, 4) = rsMhs.Fields("alamat")
rsMhs.MoveNext
Loop
End If
End If
End Sub
Kemudian ketikan kode berikut ini pada tombol Refresh
Private Sub CmdRefresh_Click()
txtCari.Text = ""
Call TampilGrid
End Sub
Kemudian simpan semua lalu jalankan. Demikian tutorial Pembuatan Stored Procedure Dan Penerapannya Di VB 6 semoga dapat bermanfaat, jika ada yang kurang di mengerti silahkan kasih komentar. Jika menginginkan source code dan tutorialnya silahkan download di link di bawah ini
Download Tutorial
Download Source Code
Tags:
Pembuatan Stored Procedure Dan Penerapannya Di VB 6, Tutorial pembuatan stored procedure,Tutorial penerapan stored procedure,Cara Membuat Stored Procedure Di MySQL, Penggunaan Store Procedure di MySQL, Implementasi Store Procedure di MySQL, Memanggil Stored Procedure di Visual Basic,MySQL Stored Procedure,panggil stored procedure visual basic 6.0,CARA MEMANGGIL STORE PROCEDURE,Stored Procedure yang diterapkan di Visual Basic
apa harus pakai store procedure mas, untuk insert,update, delete
ReplyDeletetidak harus...
Deletesaya insert data type decimal misal 1.5 kenapa ditabel jadi 15 ya?
ReplyDelete