Selasa, 12 Januari 2016

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. :D
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…. :D selamat mencoba

Tidak ada komentar:

Posting Komentar