Validasi Input Data Menggunakan Regular Expressions di VB

Udah 2 bulan di kota hujan Bogor…ga kerasa…jd kangen jogja nih…pengen ketemu temen-temen disana…apalagi lagi ada yang ulang lahun nih..wah nyesel banget klo ga dapet jatah traktiran…harus bisa pulang pokoknya…hehehehehe

Ok deh…Seperti yang sudah saya janjikan sebelumnya, sekarang kita akan mencoba bagaimana menggunakan regular expressions untuk validasi input data di visual basic 6.0. Kita akan menggunakan regex untuk mengecek apakah input yang kita masukkan benar atau tidak, jika benar maka regex akan menampilkan pesan benar, begitu juga sebaliknya jika salah maka akan ditampilkan pesan salah.

Kode yang kita perlukan untuk membuat validasi input menggunakan regex di VB kira-kira seperti ini:

Dim EkspresiReguler As New RegExp, Benar As Match
Dim DataInput As String

Private Sub Text1_Change()

‘dikasih di text1_change agar regex melakukan pengecekan secara langsung ketika text diisi

DataInput = Text1.Text
EkspresiReguler.Pattern = “disinilah tempat meletakkan regex patternya”

EkspresiReguler.Global = True

‘ini kode untuk mengecek kesesuaian input degen pattern yang diberikan

Label5.Caption = “Input Nama Salah”
For Each Benar In EkspresiReguler.Execute(DataInput)
Label5.Caption = “Input Nama Benar”
Next
End Sub

Agar bisa menjalankan regular expressions di vb, kita akan menggunaan library VBScript scripting library punyanya microsoft. Penah baca nih tapi belum membuktikan, hehehe…. katanya library ini adalah bagian dari Internet Explorer 5.5 ke atas, jadi dengan begitu library ini pasti ada di komputer yang menggunakan IE 5.5 ke atas seperti Windows XP atau Vista , dan termasuk juga Windows versi sebelumnya yang sudah diupgrade dengan IE 5.5 ke atas.

Untuk menggunakan Regex di VB kita perlu mengaktifkan library ini terlebih dahulu di visual basic kita. caranya :

masuk ke Visual Basic 6.0

pilih menu Project -> References

Maka akan muncul tampilan dialog References seperti ini :

regex3Nah…kalo sudah muncul tampilan seperti di atas, pilih dan contreng “Microsoft VBScript Regular Expressions 5.5″, jangan sampai salah contreng ya…hehehe jd kaya pemilu ja pake contreng-contrengan, klo dah dicontreng klik tombol OK. Trus….

Langkah selanjutnya buatlah tampilan seperti gambar di bawah ini :

regex1

kalo sudah, selanjutnya ubah nilai properties masing masing object yang sudah dipasang di form tadi.

Label1.Caption = “Nama”

Label2.Caption=”No. Telp”

Label3.Caption=”E-Mail”

Label4.Caption=”Website”

Label5.Caption=”Data yang anda masukkan benar/salah”

Trus Kosongkan property Text pada Text1,Text2,Text3,dan Text4

sehingga tampilannya menjadi sbb:

regex2

Sampai disini, kita sudah membuat tampilannya. Langkah selanjutnya menuliskan kode program Regex yang akan digunakan untuk validasi input di kode editor visual basic.

Kodenya sebagai berikut :


‘ inisialisasi regular expressions

Dim EkspresiReguler As New RegExp, Benar As Match
Dim DataInput As String

‘regex untuk input nama ( mengecek ketika text1 diisi )
Private Sub Text1_Change()
DataInput = Text1.Text
EkspresiReguler.Pattern = “^D+$”
EkspresiReguler.Global = True

Label5.Caption = “Input Nama Salah”
For Each Benar In EkspresiReguler.Execute(DataInput)
Label5.Caption = “Input Nama Benar”
Next
End Sub
‘regex untuk input telepon ( mengecek ketika text2 diisi )
Private Sub Text2_Change()
DataInput = Text2.Text
EkspresiReguler.Pattern = “^d+$”
EkspresiReguler.Global = True

Label5.Caption = “Input Telepon Salah”
For Each Benar In EkspresiReguler.Execute(DataInput)
Label5.Caption = “Input Telepon Benar”
Next

End Sub
‘regex untuk input email( mengecek ketika text3 diisi )

Private Sub Text3_Change()
DataInput = Text3.Text
EkspresiReguler.Pattern = “^([A-Za-z0-9]+([_]|[.])?)+[A-Za-z0-9]+@(([A-Za-z0-9]+[-]?)+[A-Za-z0-9]+.)+[A-Za-z]{2,3}$”
EkspresiReguler.Global = True

Label5.Caption = “Input Email Salah”
For Each Benar In EkspresiReguler.Execute(DataInput)
Label5.Caption = “Input Email Benar”
Next

End Sub

‘regex untuk input website( mengecek ketika text4 diisi )

Private Sub Text4_Change()
DataInput = Text4.Text
EkspresiReguler.Pattern = “^(([A-Za-z0-9]+[-]?)+[A-Za-z0-9]+.)+[A-Za-z]{2,3}$”
EkspresiReguler.Global = True

Label5.Caption = “Input Website Salah”
For Each Benar In EkspresiReguler.Execute(DataInput)
Label5.Caption = “Input Website Benar”
Next

End Sub

Nah itu kodenya… ga usah diketik lagi, capek + lama. dicopy paste aja,yang penting tahu maksudnya dan kalo ditanya bisa jawab..hehehe, o iya untuk Pattern Regexnya di vb dijadiin satu baris aja, soalnya di sini ga bisa dijadikan satu baris, kepanjangan.

Kalo semuanya sudah..tinggal dijalankan, lalu coba masukkan input ke masing-masing teks cek apakah regexnya sudah berjalan sesuai selera apa belum. Ini screenshoot ketika saya menjalankan program ini di laptop saya. Pas masukin nama pake angka maka regexnya langsung laporan kalo inputan saya salah. berikut gambarnya:

regex4

OK..segitu dulu, selamat mencoba, dan semoga berhasil :)