Menu Login Sederhana menggunakan VB Net dan MySQL

Sekali lagi gue lagi bingung, bingung mau ngapain soalnya gue lg ga tentu arah.
As always sebingung2nya gue mau ngapain, gue selalu berusaha menyibukkan diri, daripada diem mendingan sebelum gue punah, gue berbagi sedikit ilmu yang gue pelajari long long ago (ceilaaa bahasanya udah kayak cerita narasi aja), long long ago and happily ever after gt maksudnya? Terserah dah gue mau dikata aneh, kayak alien, or anything lah.

Gue mau berbagi gimana caranya bikin form login berbasis GUI pake bahasa VB Net.
Pertama-tama mari kita buat databasenya dulu buat nyimpen data users.
Di sini gue anggap temen2 dah pada mahir bikin database, especially pake MySQL yang mau gue jelasin di sini. Di sini gue bikin database manually via Command Prompt, temen2 bisa pake cara praktisnya via PHPMyAdmin di browser temen2.

C:\Users>cd..
C:\>cd xampp
C:\xampp>cd mysql
C:\xampp\mysql>cd bin
C:\xampp\mysql\bin>mysql -u root -p
mysql> create database login_vb;
mysql> use login_vb;
mysql> create table users (id varchar(5) primary key, username varchar(50) not null);
mysql> insert into users (id, username) VALUES ('1234A','Dewi Mulyani');




Beginilah jadinya...




Ok, saatnya buka aplikasi Microsoft Visual Studio nya.

As always ya create new project and kasih nama sesuka hati, mau dinamain kucing lucu, kecebong buntet, anything anything laaahhh. Tp di sini karena gue lagi agak waras, gue namain login_vb aja. Ingat ya, sebaiknya kalau bikin nama project, jangan pake spasi. Bisa pake underscore aja buat gantiin si spasinya itu.


Biar kita gak usah repot-repot bikin interface nya, kita pake yang instan aja, caranya buka drop down pada menu bar Project, di sana ada Add Windows Form... Select yang itu.


Terus entar di situ bakal ada opsi Style Sheet, JScript File, Module, Class, dan lain-lain lah. Pilih yang Login Form. Nanti bakal muncul kayak gini.


Eh iya gue lupa tadi di databasenya belum gue tambahin field buat nyimpen password. :'D
Ok sebelum bikin script buat login nya, kita balik lagi ke database. bagian Username kita ganti aja jadi password, setuju? Sepakat. Ok!

Gue balik lagi ke database. Biar cepet, gue langsung ke PHPMyAdmin. Gue ganti field username jadi password. Fieldnya diganti, maka value nya juga diganti. Biar gampang, value password gue samain dengan id.
Tapi yang kayak gini harap jangan dicontoh. Ini gue biar gampang aja. Temen2 kalau punya akun apapun, sangat tidak disarankan passwordnya disamain sama id atau username temen2 soalnya rawan hack kalau yg kayak gini.



Balik lagi ke interface.
Biar kerenan dikit, gue ganti image nya jadi karakter Enma Ai. Iya, gue suka banget sama ni cewek dari Jigoku Shojou.

 
Abis itu kita oprek kodingannya.


Hapus dulu deh semua kode yang ada, biar lebih jelas nanti.

Abis itu import library MySQL nya.
Ketik kode ini:


Eiittttsss, lihat di ujung tulisan Client ada tanda merah. Itu artinya kita belum masukin komponen MySQLnya ke project kita. Itu penting soalnya buat koneksiin project kita ke database yang udah kita buat.
Caranya pilih menu bar Project -> Add Reference-> .NET -> Component Name


Bagi yang di pilihan component nya gak ada yang buat MySQL nya, temen2 harus install dulu MySQL connector nya. Bisa temen2 download di sini https://dev.mysql.com/downloads/connector/  terus diinstall ya.

Abis itu ketik script di bawah ini setelah script import tadi.

Public Class LoginForm1

    Dim iFail As Integer

End Class


Noted ya LoginForm1 adalah nama form temen2. Sesuaikan dengan nama form temen2.

Terus klik dua kali interface form temen2.
Nanti akan secara otomatis generate script buat form on load.


Abis itu tambahin kode iFail = 0 sehingga kodenya menjadi

Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        iFail = 0
    End Sub



Abis itu kita bikin fungsi yang berisi beberapa conditional codes buat ngecek apakah password yang dikasiin end user itu bener atau gak.
Pertama kita bikin variable nya dulu, ada variable conn, cmd, objValue.
Script selengkapnya di bawah ini:

 Function CheckLogin(ByVal id As String, _
  ByVal Password As String) As Integer

        Dim conn As MySqlConnection
        Dim cmd As New MySqlCommand
        Dim objValue As Object

        conn = New MySqlConnection()
        conn.ConnectionString = "server=localhost;user id=root;" & _
                                    "password=;database=login_vb"
        Try
            conn.Open()
            cmd.Connection = conn
            cmd.CommandText = "SELECT COUNT(id) AS getin " & _
                              "FROM users WHERE id = " & _
                              "'" & id & "' AND " & _
                              "password = '" & Password & "'"

            objValue = cmd.ExecuteScalar()
            conn.Close()
            If objValue Is Nothing Then
                Return 0
            Else
                Return objValue.ToString
            End If
        Catch myerror As MySqlException
            MessageBox.Show("Error: " & myerror.Message)
        Finally
            conn.Dispose()
        End Try
        Return 0
    End Function


Gini ya urutan scriptnya.

Sekarang kita kasih script buat button OK.
Klik dua kali button pada interface. Maka otomatis akan generate event on click.
Lalu beri script di bawah ini:

    Dim strid As String = idTextBox.Text
    Dim strPassword As String = PasswordTextBox.Text

        If strid = String.Empty Then _
           MsgBox("id belum diisi!") : Exit Sub
        If strPassword = String.Empty Then _
           MsgBox("Password belum diisi!") : Exit Sub

        Try
            If CheckLogin(strid, strPassword) > 0 Then
                MsgBox("Welcome " & strid & "!")
         
                Me.Close()
            Else
                iFail = iFail + 1
                If iFail >= 2 Then
                    MsgBox("Gagal login 2 kali." & vbCrLf & _
                           "Aplikasi akan ditutup.")
                    End
                End If
                MsgBox("id/password Salah." & vbCrLf & _
                       "Silahkan cek lagi!")
            End If
        Catch ex As Exception
            MsgBox("Error Login: " & ex.Message)
        End Try


Oh ya jangan lupa ya nama untuk component text box username yang di properties nya diganti jadi idTextBox terus caption label nya juga diganti jadi id.

Abis itu klik dua kali button Cancel.
Tambahin script di bawah ini:

Me.Close()

Sehingga full code nya jadi gini:

Imports MySql.Data.MySqlClient

Public Class LoginForm1

    Dim iFail As Integer

   
    Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        iFail = 0
    End Sub

    Function CheckLogin(ByVal id As String, _
    ByVal Password As String) As Integer

        Dim conn As MySqlConnection
        Dim cmd As New MySqlCommand
        Dim objValue As Object

        conn = New MySqlConnection()
        conn.ConnectionString = "server=localhost;user id=root;" & _
                                    "password=;database=login_vb"
        Try
            conn.Open()
            cmd.Connection = conn
            cmd.CommandText = "SELECT COUNT(id) AS getin " & _
                              "FROM users WHERE id = " & _
                              "'" & id & "' AND " & _
                              "password = '" & Password & "'"

            objValue = cmd.ExecuteScalar()
            conn.Close()
            If objValue Is Nothing Then
                Return 0
            Else
                Return objValue.ToString
            End If
        Catch myerror As MySqlException
            MessageBox.Show("Error: " & myerror.Message)
        Finally
            conn.Dispose()
        End Try
        Return 0
    End Function

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        Dim strid As String = idTextBox.Text
        Dim strPassword As String = PasswordTextBox.Text

        If strid = String.Empty Then _
           MsgBox("ID belum diisi!") : Exit Sub
        If strPassword = String.Empty Then _
           MsgBox("Password belum diisi!") : Exit Sub

        Try
            If CheckLogin(strid, strPassword) > 0 Then
                MsgBox("Welcome " & strid & "!")
              
                Me.Close()
            Else
                iFail = iFail + 1
                If iFail >= 2 Then
                    MsgBox("Gagal login 2 kali." & vbCrLf & _
                           "Aplikasi akan ditutup.")
                    End
                End If
                MsgBox("ID/password Salah." & vbCrLf & _
                       "Silahkan cek lagi!")
            End If
        Catch ex As Exception
            MsgBox("Error Login: " & ex.Message)
        End Try
    End Sub

    Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click

        Me.Close()
    End Sub
End Class


Oh ya sebelum dirunning, start up nya diganti dulu ya. Pengaturan start up ada di Project ->Properties.
Ganti start up nya jadi LoginForm1.

Selamat mencoba Momo Lovers! :)

0 comments: