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 :


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
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()>
    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, 
               .NamaDepan = NamaDepan,
               .NamaBelakang = NamaBelakang, .Actived = Actived,
               .Mclass1 = New Madriva1.MClass1 With {.UserID = UserID,
               .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})
    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)
                        mycommand.CommandType = CommandType.StoredProcedure
                        'kode ini berfungsi untuk menggunakan Query yang dibuat pada MS. Access
                        mycommand.Parameters.Add("@username", OleDbType.VarChar)._
                        Value = username
                        konek.Open()
                        Using rdr As OleDbDataReader = mycommand.ExecuteReader
                        '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 Ahmad 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.. ;)

Leave a Reply

You can leave a comment to request any article(s), software(s), ebook(s) or report the dead link.
Then I will reply as soon as I can :)

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Recent Post

Recent Posts Widget
Instagram

- Copyright © Madriva -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -