Koneksi Database + Login [VB6]

Mungkin pertama kali baca semua pasti bilang…ahh…paling gitu-gitu aja…hehehehe…

Nah,..disini mari kita liat apakah biasa-biasa aja atau malah kurang biasa???…
Biasanya kebanyakan orang buat program/aplikasi dekstop yang penting jadi/asal jadi entah newbie yang salah pengertian or gmn, tapi memang pada kenyataan seperti itu.

Apa sih ciri-cirinya :
1. Source tidak konsisten [antara satu dengan yang lain bisa beda-beda style codingnya]
2. Susah maintenance [Codingnya acak-acakan]
3. Tidak memikirkan Jangka Panjang [suatu saat ada perubahan merombak sebagian besar aplikasi bahkan pada core aplikasi itu sendiri].
OK, lanjut ke pokok bahasan, kita buat yang sederhana dulu, apa sih????? koneksi dan login.

1. Buat Database Access..misal dengan nama : contohlogin.mdb
2. Susanan Table m_user adalah : user_id, user_pass, user_name,user_status bisa ditambahkan sesuai selera, karena ini hanya sample jadi di buat mudah saja. 😀
Penjelasan Table user : m_user [initial m adalah master/table master]
user_id –> untuk id user max kita kasih 15character
user_pass–> untuk nyimpan password, kalau di enkripsi pake AES256 ya siapin space banyak, kl gak pake enkripsi ya cukup 20 karakter maksimalnya.
user_name –> nama dari pemilik user id tersebut
user_status –> status dari user tersebut apakah masih aktif atau sudah tidak aktif/suspend.

setelah itu sudah, langkah pertama buat project baru tapi pilih DLL
kemudian tambahkan reference Microsoft Scripting Runtime
[BAL -> Business Access Layer]

setelah itu sudah buat variable yang mendefinisikan dari table User yang telah dibuat.
contoh :

Option Explicit

Private m_UserID As String
Private m_UserPass As String
Private m_UserNama As String
Private m_Status As Integer

Public Property Let UserID(ByVal sdata As String)
m_UserID = sdata
End Property

Public Property Get UserID() As String
UserID = m_UserID
End Property

Public Property Let UserPass(ByVal sdata As String)
m_UserPass = sdata
End Property

Public Property Get UserPass() As String
UserPass = m_UserPass
End Property

Public Property Let NamaUser(ByVal sdata As String)
m_UserNama = sdata
End Property

Public Property Get NamaUser() As String

NamaUser = m_UserNama
End Property

Public Property Let StatusUser(ByVal sdata As Integer)
m_Status = sdata
End Property

Public Property Get StatusUser() As Integer
StatusUser = m_Status
End Property

Ok, step pertama sudah selesai, next step adalah membuat DAL [Data Access Layer]
Klik File lalu pilih Add Project –<> Pilih DLL lagi
kemudian seperti diatas tambah reference Microsoft Scripting Runtime, Microsoft Activex Data Object 2.5 Library, plus jangan lupa project DLL sebelumnya jg direferensikan

pertama buat 1 module.
tulis script seperti ini

Option Explicit

Public Function OpenRecordset(ByVal srcSQL As String, ByVal Cnn As ADODB.Connection) As ADODB.Recordset
Dim srcObj As ADODB.Recordset

Set srcObj = New ADODB.Recordset ‘declare new recordset
srcObj.CursorLocation = adUseClient ‘client recorset
srcObj.Open srcSQL, Cnn, adOpenForwardOnly, adLockReadOnly ‘open recordset

Set OpenRecordset = srcObj
End Function

Public Sub CloseRecordset(ByVal srcRs As ADODB.Recordset)
If Not (srcRs Is Nothing) Then
If srcRs.State = adStateOpen Then srcRs.Close
End If

Set srcRs = Nothing
End Sub

kemudian pada Cllass Module nama Class diganti UserDAL
ketik script seperti ini :

Private Function MaptoGrid(ByVal rs As ADODB.Recordset) As NewUser
Dim cCurr As New NewUser

With cCurr
.UserID = IIf(IsNull(rs(“userid”).Value), “”, rs(“userid”).Value)
.UserPass = IIf(IsNull(rs(“userpassword”).Value), “”, rs(“userpassword”).Value)
.NamaUser = IIf(IsNull(rs(“namauser”).Value), “”, rs(“namauser”).Value)
.JenisUser = IIf(IsNull(rs(“jenisuser”).Value), “”, rs(“jenisuser”).Value)
.Status = IIf(IsNull(rs(“statususer”).Value), “”, rs(“statususer”).Value)
End With

Set MaptoGrid = cCurr

End Function

Public Function GetByID(ByVal sId As String, ByVal Cnn As ADODB.Connection) As Scripting.Dictionary
Dim daftar As New Scripting.Dictionary
Dim rs As New ADODB.Recordset
Dim Key As Variant

On Error GoTo errHandle

strSQL = ” SELECT * ” & _
” FROM m_usersys ” & _
” WHERE usr_id='” & sId & “‘”

Set rs = OpenRecordset(strSQL, Cnn)

Key = 1
Do While Not rs.EOF

Call daftar.Add(Key, MaptoObject(rs))
Key = Key + 1

rs.MoveNext
Loop

Call CloseRecord(rs)

Set GetByID = daftar

Exit Function
errHandle:
Set GetByID = Nothing
End Function

Oke…Business Access Layer selesai, Data Access Layer selesai dan final step : Presentation Layer
inilah yang di sebut N-Tier Architecture Programming menggunakan konsep DAO JAVA.

sample source dan final step nyusul…. 😀 selamat mencoba