You are on page 1of 5

Form Login dengan Database

Untuk membuat form login yang berhubungan dengan data base pada dasarnya sama dengan membuat form login biasa. Yang menjadi perbedaan adalah kita mengambil data dari database yang sebelumnya telah tersimpan. Untuk memulai mencoba membuat halaman login, terlebih dahulu membuat database misalnya dari microsoft access dengan nama tabel "login" dan berisi 2 buah kolom yaitu "username" dan "pass". Setelah database kita buat maka tahap selanjutnya adalah membuat tampilan halaman login yang terdiri dari dua buah label, 2 buah text box dan dua buah command button. Berikut adalah property yang saya ubah dari masing-masing tool: Form : Caption > LOGIN Label1 : caption > Username Label2: caption > Password Text1 : name > txtuser Text2 : name > txtpass PasswordChar > * Command1: name > cmdLogin Caption > &Login Command2: name > cmdExit Caption > &Exit Berikut adalah bentuk tampilannya

Setelah itu kita baru masuk pada tahap pembuatan kode: Kalo mau coba ini ada contoh kode-nya. Kalo malas ngetik atau copas desain dan codenya bisa di ambil disini:
Private Private Private Private con As New ADODB.Connection rst As New ADODB.Recordset strconn As String sql As String

Private Sub Connections() strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db.mdb ;Persist Security Info=False;Jet OLEDB" If con.State = adStateOpen Then con.Close Set con = New ADODB.Connection con.Open strconn Else con.Open strconn End If End Sub Private Sub cmdExit_Click() End End Sub Private Sub cmdLogin_Click() On Error Resume Next Static i As Integer If txtUser.Text = "" Then GoSub noacc MsgBox "Anda belum memasukkan Nama", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus ElseIf txtPass.Text = "" Then GoSub noacc MsgBox "Anda belum memasukkan Kata Sandi", vbInformation + vbOKOnly, ":: Informasi ::" txtPass.SetFocus Else sql = "SELECT * FROM LOGIN WHERE username='" & txtUser.Text & "'" Set rst = con.Execute(sql) If rst.EOF Then GoSub noacc MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus ElseIf txtPass.Text <> rst("pass") Then GoSub noacc MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus Else MsgBox "Selamat anda berhasil login", vbInformation + vbOKOnly, "Informasi" Unload Me End If End If Exit Sub noacc: i = i + 1 If i = 3 Then MsgBox "Maaf anda tidak berhak mengakses aplikasi ini !", vbCritical, "::

Gagal ::" End Else Return End If End Sub Private Sub Form_Load() Call Connections txtUser.Text = "" txtPass.Text = Empty End Sub

Penjelasan singkatnya sbb:


Private Private Private Private con As New ADODB.Connection rst As New ADODB.Recordset strconn As String sql As String

Private Sub Connections() strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db.mdb ;Persist Security Info=False;Jet OLEDB" If con.State = adStateOpen Then con.Close Set con = New ADODB.Connection con.Open strconn Else con.Open strconn End If End Sub

Baris-baris kode ini adalah modul koneksi ke database, biasanya diletakkan pada sebuah modul apabila kita memiliki banyak form, karena kita hanya memiliki sebuah form maka kita letakkan pada form. Dan prosedur ini akan kita panggil pada saat form kita load call Connections
Private Sub cmdExit_Click() End End Sub

Kode ini saya kira sudah sangat jelas, yaitu untuk mengakhiri atau menutup form.
Private Sub cmdLogin_Click() On Error Resume Next Static i As Integer If txtUser.Text = "" Then GoSub noacc MsgBox "Anda belum memasukkan Nama", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus

ElseIf txtPass.Text = "" Then GoSub noacc MsgBox "Anda belum memasukkan Kata Sandi", vbInformation + vbOKOnly, ":: Informasi ::" txtPass.SetFocus Else sql = "SELECT * FROM LOGIN WHERE username='" & txtUser.Text & "'" Set rst = con.Execute(sql) If rst.EOF Then GoSub noacc MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus ElseIf txtPass.Text <> rst("pass") Then GoSub noacc MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus Else MsgBox "Selamat anda berhasil login", vbInformation + vbOKOnly, "Informasi" Unload Me End If End If Exit Sub noacc: i = i + 1 If i = 3 Then MsgBox "Maaf anda tidak berhak mengakses aplikasi ini !", vbCritical, ":: Gagal ::" End Else Return End If End Sub

Untuk bagian ini hamper sama ketika kita membuat halaman login tanpa data base yang sudah pernah saya postingkan, hanya saja yang menjadi perbedaan hanya terletak pada beberapa bagian saja. Yaitu pada
sql = "SELECT * FROM LOGIN WHERE username='" & txtUser.Text & "'" Set rst = con.Execute(sql) If rst.EOF Then GoSub noacc MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus ElseIf txtPass.Text <> rst("pass") Then GoSub noacc MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::" txtUser.SetFocus

Disini kita akan menggunakan query sql untuk melakukan pencarian username terlebih dahulu kemudian hasilnya kita simpan pada variable rst setelah eksekusi query dilakukan. Apabila data tidak ditemukan maka akan menuju ke sub prosedur noacc, namun bila ditemukan maka kita akan membandingkan nilai password yang ada pada database dan password yang di-input-kan oleh user.
Private Sub Form_Load() Call Connections txtUser.Text = "" txtPass.Text = Empty End Sub

Bagian ini adalah bagian yang pertama kali dijalankan oleh program karena ditelakkan pada saat form kita buka. Kode ini hanya berfungsi untuk melakukan pengaturan awal saya, misalnya call connections, yaitu untuk melakukan pangggilam koneksi ke database, kemudian pengatur textbox menjadi kosong yaitu dengan menggunakan () atau bisa juga dengan kata Empty. Dah Cuma gitu aja, kayaknya gak susah2 bgt. Met mencoba deh.

You might also like