Posted by : Rhyf Ahmad
Sunday, March 31, 2013
Hmm.. Lama banget nih gan ane ga nongol. Ma'lum lah, ane kan pake modem, jadi kalo pulsa tak ada, ya ga bisa onlen. Ckckck... kasian banget ye gan??
Okeh, langsung aja lah ya, kali ini pen memperbanyak postingan tentang Visual Basic .Net neh gan. Postingannya tentang pengolahan database yang akan terbagi menjadi beberapa bagian, dan untuk bagian pertama ini akan diulas bagaimana cara agar kita bisa mengolah tabel yang ada dalam database Access untuk proses Login dengan LINQ.
Loh, kenapa harus database dari Access??
Yah agan, database yang kita buat di dalam aplikasi Microsoft Access akan lebih mudah didistribusikan ke komputer lain, berbeda dengan database yang dibuat oleh Paradox atau MySQL, ini karena sebagian besar user menggunakan produk dari Microsoft, bahkan pengguna Apple pun begitu katanya.
Nah, sodara-sodara yang baik hati dan rajin menabung, pertama yang harus dilakukan adalah membuat terlebih dahulu sebuah tabel dalam database. Bikin yang kayak gini yah gan, kalo udah simpen aja tabelnya dengan nama Data1, dan untuk databasenya sendiri, simpan dengan nama database1.
Kalo udah, bikin lagi gan sebuah tabel dengan nama Data2.
Buat relasi databasenya, klik Database Tools dan pilih Relationships. Klik Tabel Data1 dan klik Add, begitu juga dengan tabel Data2. Kemudian Close, seret UserID pada Data2 ke UserID pada Data1. Atur propertiesnya seperti yang terlihat pada gambar di bawah ini, jika sudah, klik Create.
Kemudian buka VBnya gan, dan bikin projek, apa aja deh namanya, dan dalam postingan ini, saya beri nama projeknya dengan nama "M1". Kemudian, database yang agan buat tadi, simpan ke dalam direktori Bin -> Debug milik Project M1. Kembali ke VB, klik Project pada Menu Bar dan pilih M1 Properties. Lalu bakal muncul yang kayak begini gan :
Buat relasi databasenya, klik Database Tools dan pilih Relationships. Klik Tabel Data1 dan klik Add, begitu juga dengan tabel Data2. Kemudian Close, seret UserID pada Data2 ke UserID pada Data1. Atur propertiesnya seperti yang terlihat pada gambar di bawah ini, jika sudah, klik Create.
Kemudian buka VBnya gan, dan bikin projek, apa aja deh namanya, dan dalam postingan ini, saya beri nama projeknya dengan nama "M1". Kemudian, database yang agan buat tadi, simpan ke dalam direktori Bin -> Debug milik Project M1. Kembali ke VB, klik Project pada Menu Bar dan pilih M1 Properties. Lalu bakal muncul yang kayak begini gan :
Pada Tab Setting, ganti Namenya menjadi madriva1, Typenya diganti dengan (Connection String), sedangkan Scopenya diganti sendok dengan Application. Isikan Valuenya dengan kode ini (tanpa tanda kutip).
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb".
Udah gan? Jangan lama-lama, kita masuk ke bagian koding, namun sebelum itu kita buat dulu sebuah folder pada Solution Explorer. Ubah nama folder tersebut dengan nama Madriva1.
Kalo udah, tambahkan sebuah Class pada folder Madriva1, dan ganti namanya dengan MClass1.
Ketikkan kode di bawah ini :
UPDATE 01 April 2013..!!
Saya sudah menambahkan komentar di setiap kode, agar agan bisa lebih memahami struktur kodenya..
Namespace Madriva1
Public Class MClass1
'kode ini merupakan implementasi dari tabel Data2
Private m_userid As Int16
Public Property UserID() As Int16
Get
Return m_userid
End Get
Set(ByVal value As Int16)
If value.ToString = "" Then
Throw New Exception("Masukkan UserID")
End If
m_userid = value
End Set
End Property
Public Property Usertype() As String
End Class
End Namespace
Selanjutnya, buat lagi gan sebuah Class, kali ini ganti namanya menjadi MClass2, untuk kodenya :
Namespace Madriva1
Public Class MClass2
Private m_username As String
Public Property Username() As String
Get
Return m_username
End Get
Set(ByVal value As String)
If value = "" Then
Throw New Exception("Masukkan Username")
End If
m_username = value
End Set
End Property
Private m_password As String
Public Property Password() As String
Get
Return m_password
End Get
Set(ByVal value As String)
If value = "" Then
Throw New Exception("Masukkan Password")
End If
m_password = value
End Set
End Property
Private m_namadepan As String
Public Property NamaDepan() As String
Get
Return m_namadepan
End Get
Set(ByVal value As String)
If value = "" Then
Throw New Exception("Masukkan Nama Depan")
End If
m_namadepan = value
End Set
End Property
Public Property NamaBelakang() As String
Public Property Mclass1 As New Madriva1.MClass1
Public Property Actived() As Boolean
End Class
End Namespace
Ruwed yah? memang kayak ginilah system kerja dari LINQ. Mau lanjut? Boleh. Buat folder lagi dalam Solution Explorer dan ganti namanya menjadi Madriva2. Tambahkan sebuah module pada folder tersebut dengan nama Module1. Kodenya kayak gini nih gan..
Imports System.Data
Udah belum sob? Wah,, lama ne ah, buat lagi satu Class di dalam folder Madriva2 dengan nama Class1, kodenya kayak begini nih gan :
Hoalahhhhh,,, uakeh temen gan??? Tapi, gag papa yah, namanya juga belajar. Setelah itu tambahin gan, dua buah Textbox dengan nama txtUser dan txtPassword. Tambahkan juga dua buah Button, yang satu namanya Login dan yang satunya lagi bernamaAhmad Cancel.
Sebelum kita menuju koding pada Form, terlebih dahulu kita akan membuat sebuah Query pada database Access kita, kodenya adalah sebagai berikut.
SELECT Data1.*, Data2.Usertype
FROM Data2 INNER JOIN Data1 ON Data2.UserID=Data1.UserID
WHERE (((Data1.Username)=[@username]));
Tambahkan lagi sebuah form sebagai form utama, setelahnya pada button Login, ketikkan kode di bawah ini:
Try
Dim Akses As New Madriva2.Class1
Dim user As New Madriva1.MClass2
user.Username = txtUser.Text
user.Password = txtPassword.Text
Dim list As List(Of Madriva1.MClass2) = Akses.Login(txtUser.Text)
If list.Count = 0 Then
MsgBox("Username Salah", MsgBoxStyle.Information, "Madriva")
txtUser.Focus()
txtUser.SelectAll()
Exit Sub
End If
Username = list.First.Username
Password = list.First.Password
If txtPassword.Text <> Password Then
MsgBox("Password Salah", MsgBoxStyle.Information, "Madriva")
txtPassword.Focus()
txtPassword.SelectAll()
Exit Sub
End If
'Proses pengecekan apakah user masih aktif atau tidak
'Jika tidak ada tanda centang pada kolom Actived di tabel, maka
'akan muncul peringatan
If list.First.Actived = False Then
MsgBox("User sudah tidak aktif", MsgBoxStyle.Information, "Madriva")
txtUser.Focus()
txtUser.SelectAll()
Exit Sub
End If
UserID = list.First.Mclass1.UserID
Usertype = list.First.Mclass1.Usertype
Me.Hide()
Form2.Show()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Madriva")
End Try
OK,, pada form kedua, terserah agan mau diapain, saya hanya memberi tutorial Login menggunakan LINQ pada Visual Basic .Net.
semoga bermanfaat.. ;)
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb".
Udah gan? Jangan lama-lama, kita masuk ke bagian koding, namun sebelum itu kita buat dulu sebuah folder pada Solution Explorer. Ubah nama folder tersebut dengan nama Madriva1.
Kalo udah, tambahkan sebuah Class pada folder Madriva1, dan ganti namanya dengan MClass1.
Ketikkan kode di bawah ini :
UPDATE 01 April 2013..!!
Saya sudah menambahkan komentar di setiap kode, agar agan bisa lebih memahami struktur kodenya..
Namespace Madriva1
Public Class MClass1
'kode ini merupakan implementasi dari tabel Data2
Private m_userid As Int16
Public Property UserID() As Int16
Get
Return m_userid
End Get
Set(ByVal value As Int16)
If value.ToString = "" Then
Throw New Exception("Masukkan UserID")
End If
m_userid = value
End Set
End Property
Public Property Usertype() As String
End Class
End Namespace
Selanjutnya, buat lagi gan sebuah Class, kali ini ganti namanya menjadi MClass2, untuk kodenya :
Namespace Madriva1
Public Class MClass2
Private m_username As String
Public Property Username() As String
Get
Return m_username
End Get
Set(ByVal value As String)
If value = "" Then
Throw New Exception("Masukkan Username")
End If
m_username = value
End Set
End Property
Private m_password As String
Public Property Password() As String
Get
Return m_password
End Get
Set(ByVal value As String)
If value = "" Then
Throw New Exception("Masukkan Password")
End If
m_password = value
End Set
End Property
Private m_namadepan As String
Public Property NamaDepan() As String
Get
Return m_namadepan
End Get
Set(ByVal value As String)
If value = "" Then
Throw New Exception("Masukkan Nama Depan")
End If
m_namadepan = value
End Set
End Property
Public Property NamaBelakang() As String
Public Property Mclass1 As New Madriva1.MClass1
Public Property Actived() As Boolean
End Class
End Namespace
Ruwed yah? memang kayak ginilah system kerja dari LINQ. Mau lanjut? Boleh. Buat folder lagi dalam Solution Explorer dan ganti namanya menjadi Madriva2. Tambahkan sebuah module pada folder tersebut dengan nama Module1. Kodenya kayak gini nih gan..
Imports System.Data
Imports System.Data.OleDb
Imports System.Collections.Generic
Imports System.Runtime.CompilerServices
Module Module1
Public Operate, FormShow, Username, Usertype, Password, UserID As String
'Extension merupakan sebuah kode yang akan memasukkan data yang ada
'dalam database
'ke dalam aplikasi kita
'Extension merupakan sebuah kode yang akan memasukkan data yang ada
'dalam database
'ke dalam aplikasi kita
<Extension()>
Sub Add(ByVal UserList As List(Of Madriva1.MClass2), ByVal Username As String, _
ByVal Password As String, ByVal NamaDepan As String, _
ByVal NamaBelakang As String, ByVal Actived As Boolean, _
ByVal UserID As Int16, ByVal Usertype As String)
UserList.Add(New Madriva1.MClass2 With {.Username = Username,
.Password = Password,
.Password = Password,
.NamaDepan = NamaDepan,
.NamaBelakang = NamaBelakang, .Actived = Actived,
.Mclass1 = New Madriva1.MClass1 With {.UserID = UserID,
.Usertype = Usertype}})
.Usertype = Usertype}})
End Sub
<Extension()>
Sub Add(ByVal UserList As List(Of Madriva1.MClass1), ByVal UserID As String, _
ByVal Usertype As String)
UserList.Add(New Madriva1.MClass1 With {.UserID = UserID,
.Usertype = Usertype})
.Usertype = Usertype})
End Sub
End Module
Udah belum sob? Wah,, lama ne ah, buat lagi satu Class di dalam folder Madriva2 dengan nama Class1, kodenya kayak begini nih gan :
Imports System.Data
Imports System.Data.OleDb
Namespace Madriva2
Public Class Class1
Public Function Login(ByVal username As String) As List(Of Madriva1.MClass2)
Dim User As New List(Of Madriva1.MClass2)()
Try
Using konek As New OleDbConnection(My.Settings.madriva1)
Using mycommand As OleDbCommand = New OleDbCommand_
("Login", konek)
("Login", konek)
mycommand.CommandType = CommandType.StoredProcedure
'kode ini berfungsi untuk menggunakan Query yang dibuat pada MS. Access
'kode ini berfungsi untuk menggunakan Query yang dibuat pada MS. Access
mycommand.Parameters.Add("@username", OleDbType.VarChar)._
Value = username
Value = username
konek.Open()
Using rdr As OleDbDataReader = mycommand.ExecuteReader
'Nah, kalo yang ini fungsinya membaca serangkaian data yang ada
'dalam tabel
'Nah, kalo yang ini fungsinya membaca serangkaian data yang ada
'dalam tabel
While rdr.Read
User.Add(rdr("Username").ToString(), rdr("Password").ToString(),
rdr("NamaDepan").ToString(),
rdr("NamaBelakang").ToString(),
rdr("Actived"), rdr("UserID").ToString(),
rdr("Usertype").ToString())
End While
End Using
End Using
End Using
Catch sqlex As OleDbException
Throw New Exception(sqlex.Message.ToString())
End Try
Return User
End Function
End Class
End Namespace
Hoalahhhhh,,, uakeh temen gan??? Tapi, gag papa yah, namanya juga belajar. Setelah itu tambahin gan, dua buah Textbox dengan nama txtUser dan txtPassword. Tambahkan juga dua buah Button, yang satu namanya Login dan yang satunya lagi bernama
Sebelum kita menuju koding pada Form, terlebih dahulu kita akan membuat sebuah Query pada database Access kita, kodenya adalah sebagai berikut.
SELECT Data1.*, Data2.Usertype
FROM Data2 INNER JOIN Data1 ON Data2.UserID=Data1.UserID
WHERE (((Data1.Username)=[@username]));
Tambahkan lagi sebuah form sebagai form utama, setelahnya pada button Login, ketikkan kode di bawah ini:
Try
Dim Akses As New Madriva2.Class1
Dim user As New Madriva1.MClass2
user.Username = txtUser.Text
user.Password = txtPassword.Text
Dim list As List(Of Madriva1.MClass2) = Akses.Login(txtUser.Text)
If list.Count = 0 Then
MsgBox("Username Salah", MsgBoxStyle.Information, "Madriva")
txtUser.Focus()
txtUser.SelectAll()
Exit Sub
End If
Username = list.First.Username
Password = list.First.Password
If txtPassword.Text <> Password Then
MsgBox("Password Salah", MsgBoxStyle.Information, "Madriva")
txtPassword.Focus()
txtPassword.SelectAll()
Exit Sub
End If
'Proses pengecekan apakah user masih aktif atau tidak
'Jika tidak ada tanda centang pada kolom Actived di tabel, maka
'akan muncul peringatan
If list.First.Actived = False Then
MsgBox("User sudah tidak aktif", MsgBoxStyle.Information, "Madriva")
txtUser.Focus()
txtUser.SelectAll()
Exit Sub
End If
UserID = list.First.Mclass1.UserID
Usertype = list.First.Mclass1.Usertype
Me.Hide()
Form2.Show()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Madriva")
End Try
OK,, pada form kedua, terserah agan mau diapain, saya hanya memberi tutorial Login menggunakan LINQ pada Visual Basic .Net.
semoga bermanfaat.. ;)
Related Posts :
- Back to Home »
- Programming , Visual Basic »
- LINQ VB. Net [Part1] : Login Function