25 December 2010

AplikasiPenguji Query SQL

Untuk mempermudah mempelajari dan memahami pernyataan atau query SQL salah satunya adalah dengan membuat sebuah aplikasi yang dapat menampilkan hasil dari eksekusi dari sebuah query SQL.

Aplikasi yang perlu dibuat tidaklah rumit kita hanya membutuhkan beberapa komponen yang sudah tersedia, yaitu : MS Data Bound Grid, Kontrol Data, Sebuah Textbox dan sebuah CommandButton. Untuk desain aplikasinya bisa dilihat disini.
Untuk database yang digunakan kita bisa menggunakan sampel database BIBLIO.mdb yang biasanya disiapkan pada

Private Sub Command1_Click()

On Error GoTo SQLErr:

Data1.RecordSource = Text1.Text

Data1.Refresh

If Data1.RecordSource <> "" Then
If (Data1.Recordset.RecordCount > 0) Then

With Data1.Recordset
.MoveLast

.MoveFirst

End With

End If
Else

MsgBox "Anda belum memasukkan query sql", vbInformation + vbOKOnly, "Blank Query"

End If

Exit
Sub
SQLErr:
Dim sErr As String

sErr = "Error Number: " & Err.Number & vbCrLf

sErr = sErr & Err.Description

MsgBox (sErr)

Exit Sub

End Sub


Private Sub Form_Load()
Data1.DatabaseName = "C:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB"

End Sub

Berikut penjelasan singkatnya :

Pada saat form di load maka kita akan mengatur properti databasename dari kontrol Data1 yang bisa kita ubah sesuai dengan database yang kita inginkan. Bila database yang kita gunakan berada satu folder dengan aplikasi yang kita simpan maka kita bisa menggunakan code sbb:

Data1.Databasename = App.Path & "\Nama Database.mdb"

Untuk penanganan kesalahan atau error maka kita memakai On Error GoTo SQLErr dimana apabila terjadi kesalahan maka program akan mengeksekusi SQLErr yang akan menampilkan nomor urut kesalahan dan deskripsi kesalahan dalam bentuk messagebox.

Sedangkan untuk menampilkan hasil eksekusi query sql yang sudah disiapkan pada textbox hanya dibutuhkan dua baris code yakni :

Data1.RecordSource = Text1.Text
Data1.Refresh

Dimana query pada textbox1 akan dimasukkan pada properti RecordSource dari kontrol Data1 yang kemudian data akan di-refresh dan ditampilkan ke kontrol DBGrid.

Sedangkan code dibawahnya digunakan untuk mengantisipasi program dari crash saja.

Untuk mendapatkan code secara lengkap bisa diambil disini.

Untuk mencoba program ini terlebih dahulu kita cari tahu tabel dan field apa saja yang ada pada database BIBLIO.mdb diantaranya terdapat tabel Authors, Publishers, Title Author, dan Titles. Sebagai percobaan pertama silahkan ketikkan query berikut pada textbox "Select * from Authors" dan lihat hasilnya. Kita juga bisa mencoba beberapa query SQL yang lain untuk mempelajarinya.

Semoga Berguna.................
Read more ...

30 June 2010

Menentukan Bilangan Prima

Bilangan prima adalah bilangan yang hanya bisa dibagi dengan angka 1 dan angka itu sendiri kecuali bilangan 1, kalau tidak salah itu adalah definisi yang diberikan guru dulu waktu SD, kalau sekarang da berubah aku gak tau. Untuk membuat sebuah aplikasi sederhana, terutama dengan menggunakan visual basic 6 kita bisa menggunakan banyak algoritma, bisa saja algoritma pemrograman yang saya gunakan tidak sama dengan yang anda pikirkan, saya kira hal itu sah-sah saja. Disini saya mencoba menggunakan algoritma yang sederhana saja dengan memamfaatkan perulangan "for ... next".

Untuk membuat aplikasi ini cukup mengggunakan sebuah textbox dan sebuah commandbutton. Berikut adalah contoh kode yang saya gunakan:

Private Sub cmdOK_Click()
Dim nilai, x
If Text1.Text = "" Then
MsgBox "Anda belum memasukkan angka", vbInformation + vbOKOnly, "Error"
Text1.SetFocus
ElseIf Val(Text1.Text) <= "0" Then
MsgBox "Anda hanya boleh memasukkan angka lebih besar dari 0", vbInformation + vbOKOnly, "Error"
Text1.SetFocus
ElseIf Val(Text1.Text) = "1" Or Val(Text1.Text) = "2" Then
MsgBox Text1.Text & " BUKAN PRIMA", vbInformation + vbOKOnly, "Informasi"
Text1.SetFocus
Else
For i = 2 To (Val(Text1.Text) - 1)
nilai = Val(Text1.Text) Mod Val(i)
If nilai = "0" Then
x = x + 1
Exit For
End If
Next i

If x > 0 Then
MsgBox Text1.Text & " BUKAN PRIMA"
Else
MsgBox Text1.Text & " BILANGAN PRIMA"
End If
End If
End Sub


Algoritma yang saya gunakan sangat sederhana menurut saya, dimana saya akan melakukan perulangan yang dimulai dari 2 sampai angka yang kita masukkan yang sudah dikurangi 1, dimana bila dalam perulangan program menemukan nilai bagi yang tidak ada sisa atau "0" maka bisa dipastikan bilangan itu bukan prima karena memiliki angka bagi. Untuk menghasilkan program seperti itu maka saya menggunakan operator matematika berupa"mod", yaitu nilai sisa dari hasil bagi. Misalnya 15 / 4 maka sisa baginya adalah 3, maka 15 mod 4 hasilnya adalah 3.

Bila sisa bagi adalah "0" maka nilai dari baris "If nilai = "0" Then" menjadi True maka program akan mengeksekusi baris dibawahnya yang menyebabkan nilai "x" menjadi bertambah 1 dan "exit for" digunakan untuk keluar dari perulangan dan akan langsung mengeksekusi perintah setelah "next".

Dalam kode program yang saya gunakan saya menggunakan kata "Val" yang merupakan perintah untuk konversi nilai ke numerik.

Sekali lagi saya tekankan, cara saya membuat program ini mungkin berbeda dengan yang anda pikirkan, namun itu bukanlah sebuah persoalan, mudah-mudahan contoh yang saya berikan bisa menambah pengetahuan kita semua. Semoga berguna.
Read more ...

22 June 2010

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

formlogin


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 con As New ADODB.Connection
Private rst As New ADODB.Recordset
Private strconn As String
Private 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 con As New ADODB.Connection
Private rst As New ADODB.Recordset
Private strconn As String
Private 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.
Read more ...

18 April 2010

Halaman Login Sederhana

Untuk membuat sebuah halaman login yang sederhana tidaklah sulit. Kita hanya membutuhkan sebuah form kemudian dua buah label dan textbox serta sebuah commandbutton. Halaman login yang akan dibuat ini akan melakukan pengecekan terhadap username dan password yang dimasukkan dan membatasi user dengan hanya boleh melakukan tiga kali kesalahan saja, bila melakukan tiga kali kesalahan maka aplikasi akan langsung melakukan logoff system. Berikut ini adalah property yang diubah pada masing-masing komponen dan ini bersifat optional saja, jadi kita bisa melakukan perubahan sesuai kemauan.
Form :
(Name) : frmLogin
BorderStyle : 1-fixed single
Caption : LOGIN
Label1:
Caption :Username
Label2:
Caption :Password
TextBox1:
Name :txtName
Text :dikosongkan
TextBox2:
Name :txtpass
PasswordChar: * (asterisk)
Text :dikosongkan
CommandButtton:
Name : cmdLogin
Caption : LOGIN

Berikut adalah contoh tampilan halaman login:



Untuk kodenya sebagai berikut:

Private Sub cmdLogin_Click()
Static i As Integer

If txtNama.Text = "" Then
GoSub noacc
MsgBox "Anda belum memasukkan Nama", vbInformation + vbOKOnly, ":: Informasi ::"
txtNama.SetFocus
ElseIf txtPass.Text = "" Then
GoSub noacc
MsgBox "Anda belum memasukkan Kata Sandi", vbInformation + vbOKOnly, ":: Informasi ::"
txtPass.SetFocus
ElseIf (txtNama.Text <> "Nama") Or (txtPass.Text <> "pass") Then
GoSub noacc
MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::"
txtNama.SetFocus
Else
MsgBox "Selamat anda berhasil melakukan login", , "Berhasi"
End If
Exit Sub

noacc:
i = i + 1
If i = 3 Then
MsgBox "Maaf anda tidak berhak mengakses aplikasi ini !", vbCritical, ":: Gagal ::"
Shell "cmd /c shutdown -f"
Else
Return
End If
End Sub

Private Sub txtNama_KeyPress(KeyAscii As Integer)
If Not InStr("'", Chr(KeyAscii)) = 0 Then
If KeyAscii <> vbKeyBack Then
KeyAscii = 0
End If
End If
End Sub

Private Sub txtPass_KeyPress(KeyAscii As Integer)
If Not InStr("'", Chr(KeyAscii)) = 0 Then
If KeyAscii <> vbKeyBack Then
KeyAscii = 0
End If
End If

End Sub

Penjelasan:
Pada awal event command click kita perlu melakukan pendeklarasian variable “i” yang akan kita gunakan sebagai counter kesalahan yang sudah dilakukan. Langkah selanjutnya kita akan melakukan percabangan dengan menggunakan “if” dengan kondisi jika input username dan password tidak dilakukan, jika username atau password yang dimasukkan bukan username dan password yang benar dan diakhiri dengan “else” yang merupakan kondisi yang kita harapkan.
Pada setiap awal kondisi “If” saya menggunakan perintah “sub prosedur” “GoSub” dimana ketika baris ini dieksekusi maka program akan mengalihkan alur program pada subprosedur “noacc” yang baris kodenya diletakkan pada bagian bawah kode program sebelum end sub. Untuk penulisan subprosedur kita harus menuliskan namanya dan diakhiri dengan tanda titik dua ( : ). Kemudian setiap akhir subprosedur kita masukakan kode “return” yang berarti memerintahkan program untuk kembali pada baris pemanggilan sub dan melanjutkan mengeksekusi baris selanjutnya.
Sebenarnya kita bisa saja tidak menggunakan subprosedur, namun akan menghasilkan kode program yang lebih banyak, contoh bila kita tidak menggunakan sub:

If txtNama.Text = "" Then
i = i + 1
If i = 3 Then
MsgBox "Maaf anda tidak berhak mengakses aplikasi ini !", vbCritical, ":: Gagal ::"
Shell "cmd /c shutdown -f"
End
End If

MsgBox "Anda belum memasukkan Nama", vbInformation + vbOKOnly, ":: Informasi ::"
txtNama.SetFocus

ElseIf txtPass.Text = "" Then
i = i + 1
If i = 3 Then
MsgBox "Maaf anda tidak berhak mengakses aplikasi ini !", vbCritical, ":: Gagal ::"
Shell "cmd /c shutdown -f"
End
End If

MsgBox "Anda belum memasukkan Kata Sandi", vbInformation + vbOKOnly, ":: Informasi ::"
txtPass.SetFocus
ElseIf (txtNama.Text <> "Nama") Or (txtPass.Text <> "pass") Then
i = i + 1
If i = 3 Then
MsgBox "Maaf anda tidak berhak mengakses aplikasi ini !", vbCritical, ":: Gagal ::"
Shell "cmd /c shutdown -f"
End
End If
MsgBox "Nama atau Kata sandi yang anda masukkan salah", vbInformation + vbOKOnly, ":: Informasi ::"
txtNama.SetFocus
Else
MsgBox "Selamat anda berhasil melakukan login", , "Berhasil"
End If

Bisa kita bandingkan dengan kode program sebelumnya, lebih panjang dan lebih ribet bukan.
Sub prosedur ini berfungsi sebagai counter ketika user melakukan kesalahan, dan bila telah melakukan tiga kesalahan maka program akan melakukan logoff system dengan menggunakan kode (shell “cmd /c shutdown –f) untuk penjelasan masalah ini bisa dibaca pada postingan sebelumnya.
Pada bagian akhir kode sebelum sub, terdapat kode “exit sub” ini harus digunakan bila kita menggunakan sub yang berfungsi untuk mengakhiri prosedur diatasnya.
Read more ...
 
>