PROGRAM UNTUK MENGIRIM SMS
Ikutilah langkah-langkah berikut untuk membuat program yang dapat mengirimkan sebuah SMS:
1. Dari form yang telah kita buat sebelumnya, tambahkan sebuah CommandButton dan rubahlah
captionnya menjadi “Kirim SMS”. Lalu aturlah letak component-componentnya sehingga
tampilannya menjadi seperti gambar dibawah ini.
2. Click dua kali pada CommandButton yang mempunyai caption “Kirim SMS”, kemudian
ketikkan listing program berikut :
Private Sub Command3_Click()
'Variabel A adalah variabel yang akan menampung nilai hasil proses
pengiriman SMS
'A akan bernilai TRUE jika pengiriman berhasil dan FALSE jika
pengiriman gagal
'Proses pengiriman SMS ini akan mengembalikan suatu nilai yang bertype
BOOLEAN
'Nomor tujuan untuk pengiriman SMS saat ini adalah ABCDEFGHIJKL. Nomor
ini dapat
'diganti sesuai dengan kebutuhan
'Begitu pula dengan pesan SMS yang dikirimkan dapat diganti sesuai
dengan kebutuhan
A = MFBUS15Control1.SMS.SendMessage("ABCDEFGHIJKL ", "Hallo, ini hanya
test")
'Untuk melakukan cek, apakah pengiriman SMS berhasil atau gagal
If A = True ThenMsgBox "Pengiriman SMS berhasil"
Else
MsgBox "Pengiriman SMS gagal"
End If
End Sub
3. Jalankan program, kemudian click CommandButton Connect sehingga koneksi berhasil. Setelah
koneksi berhasil, klik CommandButton Kirim SMS maka program akan memberitahu apakah
pengiriman SMS berhasil atau gagal.
Saling Sharing
Selasa, 08 November 2011
Aplikasi SMS dengan VB & Mobile FBUS 1.5 ActiveX Control
PENDAHULUAN
Short Message Service atau yang lebih dikenal dengan SMS saat ini sudah banyak
digunakan oleh masyarakat sebagai alat komunikasi. Kelebihan dari SMS adalah biayanya yang
murah, cepat, dan langsung pada tujuan. Mulai dari anak-anak, remaja, orang dewasa hingga orang
lanjut usia hampir semuanya memanfaatkan teknologi SMS ini. Awalnya SMS hanya digunakan
untuk berkomunikasi antar personal saja. Tetapi kini seiring perkembangan jaman, penggunaan SMS
semakin berkembang. Misalnya untuk polling suatu audisi, mengakses nilai kuliah, mengirim kritik
& saran kepada media massa untuk kemudian dipublikasikan dan banyak lagi penggunaan lainnya.
Untuk dapat melakukan hal-hal tersebut, tentu saja diperlukan dukungan dari software & hardware
yang memadai.
Mungkin banyak orang yang beranggapan bahwa untuk membuat suatu aplikasi SMS itu
dibutuhkan software & hardware yang rumit dan mahal. Padahal kita dapat membuatnya dengan
relatif mudah & biaya yang terjangkau. Untuk membuat aplikasi SMS yang sederhana kita “hanya”
membutuhkan Ponsel NOKIA 6110 atau 5110, kabel data 5 in 1, komputer yang memiliki port COM
dan dilengkapi Visual Basic 6, Mobile FBUS 1.5 ActiveX Control dan VB runtimes SP5 yang dapat
didownload secara gratis di www.softwarecave.com.
TENTANG Mobile FBUS 1.5 ActiveX
Mobile FBUS 1.5 ActiveX adalah Freeware ActiveX Control yang digunakan untuk membuat
aplikasi yang berhubungan dengan Ponsel. Contoh aplikasi yang dapat dibuat adalah pengirim &
penerima SMS, memanipulasi logo operator, mengakses Phonebook dan lain-lain. Mobile FBUS 1.5
ActiveX dapat digunakan pada Ponsel GSM NOKIA yaitu NOKIA 51xx / 61xx dan 3210.
MEMPERSIAPKAN PERANGKAT
Langkah-langkah untuk melakukan persiapan perangkat adalah sebagai berikut:
1. Lakukanlah proses install untuk VB runtimes SP5.
2. Lakukanlah proses extract untuk file mfbus15.zip. Kemudian dari file hasil extract, copykan file
gjfbus15.dll, mfbus15.ocx, mfbus15.oca ke directory windows\system32.
3. Lakukanlah proses registrasi untuk Mobile FBUS 1.5 ActiveX Control dengan cara menjalankan
perintah regsvr32 mfbus15.ocx pada command prompt.
4. Hubungkan Ponsel NOKIA 6110 atau 5110 ke port COM di komputer menggunakan kabel data
yang tersedia. Kemudian aktifkan ponsel tersebut.
PROGRAM UNTUK MENGKONEKSIKAN ANTARA PONSEL DENGAN KOMPUTER
Ikutilah langkah-langkah berikut untuk mengkoneksikan antara ponsel dengan komputer:
1. Jalankan Visual Basic 6.
2. Click menu Project Components, kemudian berilah tanda √ pada component mobileFBUS
control v1.5 dan tekanlah button “OK”. Maka pada daftar components akan muncul suatu
component dengan icon
3. Kemudian pada form tambahkan component MFBUS15Control, CommandButton sebanyak 2
buah dan Label. Rubahlah properties untuk bagian caption dari component CommandButton &
Label sehingga tampilan form
4. Click dua kali pada CommandButton yang mempunyai caption “Connect”, kemudian ketikkan
listing program berikut :
Private Sub Command1_Click()
'Untuk mengkoneksikan antara Ponsel dengan Komputer. Nilai "COM1" dapat
'berubah-ubah sesuai dengan nomor COM yang digunakan
MFBUS15Control1.Connect "COM1"
'Untuk menampilkan kekuatan signal yang mampu ditangkap oleh Ponsel
Label1.Caption = "Signal : " & MFBUS15Control1.RfLevel
'Untuk melakukan cek, apakah koneksi berhasil atau gagal
If MFBUS15Control1.Connected = True Then
MsgBox "KONEKSI BERHASIL :-)"
Else
MsgBox "KONEKSI GAGAL :-("
End If
End Sub
5. Click dua kali pada CommandButton yang mempunyai caption “Disconnect”, kemudian
ketikkan listing program berikut :
Private Sub Command2_Click()
'Koneksi antara Ponsel dengan Komputer dapat dilepaskan dengan perintah
ini
MFBUS15Control1.Disconnect
'Untuk menyembunyikan tampilan nilai signal
Label1.Caption = "Signal : "
End Sub
6. Jalankan program, kemudian click CommandButton Connect maka program akan memberitahu
apakah koneksi berhasil atau gagal. Untuk melepaskan koneksi lakukanlah click pada
CommandButton Disconnect.
Short Message Service atau yang lebih dikenal dengan SMS saat ini sudah banyak
digunakan oleh masyarakat sebagai alat komunikasi. Kelebihan dari SMS adalah biayanya yang
murah, cepat, dan langsung pada tujuan. Mulai dari anak-anak, remaja, orang dewasa hingga orang
lanjut usia hampir semuanya memanfaatkan teknologi SMS ini. Awalnya SMS hanya digunakan
untuk berkomunikasi antar personal saja. Tetapi kini seiring perkembangan jaman, penggunaan SMS
semakin berkembang. Misalnya untuk polling suatu audisi, mengakses nilai kuliah, mengirim kritik
& saran kepada media massa untuk kemudian dipublikasikan dan banyak lagi penggunaan lainnya.
Untuk dapat melakukan hal-hal tersebut, tentu saja diperlukan dukungan dari software & hardware
yang memadai.
Mungkin banyak orang yang beranggapan bahwa untuk membuat suatu aplikasi SMS itu
dibutuhkan software & hardware yang rumit dan mahal. Padahal kita dapat membuatnya dengan
relatif mudah & biaya yang terjangkau. Untuk membuat aplikasi SMS yang sederhana kita “hanya”
membutuhkan Ponsel NOKIA 6110 atau 5110, kabel data 5 in 1, komputer yang memiliki port COM
dan dilengkapi Visual Basic 6, Mobile FBUS 1.5 ActiveX Control dan VB runtimes SP5 yang dapat
didownload secara gratis di www.softwarecave.com.
TENTANG Mobile FBUS 1.5 ActiveX
Mobile FBUS 1.5 ActiveX adalah Freeware ActiveX Control yang digunakan untuk membuat
aplikasi yang berhubungan dengan Ponsel. Contoh aplikasi yang dapat dibuat adalah pengirim &
penerima SMS, memanipulasi logo operator, mengakses Phonebook dan lain-lain. Mobile FBUS 1.5
ActiveX dapat digunakan pada Ponsel GSM NOKIA yaitu NOKIA 51xx / 61xx dan 3210.
MEMPERSIAPKAN PERANGKAT
Langkah-langkah untuk melakukan persiapan perangkat adalah sebagai berikut:
1. Lakukanlah proses install untuk VB runtimes SP5.
2. Lakukanlah proses extract untuk file mfbus15.zip. Kemudian dari file hasil extract, copykan file
gjfbus15.dll, mfbus15.ocx, mfbus15.oca ke directory windows\system32.
3. Lakukanlah proses registrasi untuk Mobile FBUS 1.5 ActiveX Control dengan cara menjalankan
perintah regsvr32 mfbus15.ocx pada command prompt.
4. Hubungkan Ponsel NOKIA 6110 atau 5110 ke port COM di komputer menggunakan kabel data
yang tersedia. Kemudian aktifkan ponsel tersebut.
PROGRAM UNTUK MENGKONEKSIKAN ANTARA PONSEL DENGAN KOMPUTER
Ikutilah langkah-langkah berikut untuk mengkoneksikan antara ponsel dengan komputer:
1. Jalankan Visual Basic 6.
2. Click menu Project Components, kemudian berilah tanda √ pada component mobileFBUS
control v1.5 dan tekanlah button “OK”. Maka pada daftar components akan muncul suatu
component dengan icon
3. Kemudian pada form tambahkan component MFBUS15Control, CommandButton sebanyak 2
buah dan Label. Rubahlah properties untuk bagian caption dari component CommandButton &
Label sehingga tampilan form
4. Click dua kali pada CommandButton yang mempunyai caption “Connect”, kemudian ketikkan
listing program berikut :
Private Sub Command1_Click()
'Untuk mengkoneksikan antara Ponsel dengan Komputer. Nilai "COM1" dapat
'berubah-ubah sesuai dengan nomor COM yang digunakan
MFBUS15Control1.Connect "COM1"
'Untuk menampilkan kekuatan signal yang mampu ditangkap oleh Ponsel
Label1.Caption = "Signal : " & MFBUS15Control1.RfLevel
'Untuk melakukan cek, apakah koneksi berhasil atau gagal
If MFBUS15Control1.Connected = True Then
MsgBox "KONEKSI BERHASIL :-)"
Else
MsgBox "KONEKSI GAGAL :-("
End If
End Sub
5. Click dua kali pada CommandButton yang mempunyai caption “Disconnect”, kemudian
ketikkan listing program berikut :
Private Sub Command2_Click()
'Koneksi antara Ponsel dengan Komputer dapat dilepaskan dengan perintah
ini
MFBUS15Control1.Disconnect
'Untuk menyembunyikan tampilan nilai signal
Label1.Caption = "Signal : "
End Sub
6. Jalankan program, kemudian click CommandButton Connect maka program akan memberitahu
apakah koneksi berhasil atau gagal. Untuk melepaskan koneksi lakukanlah click pada
CommandButton Disconnect.
Regular Expression Menggunakan Visual Basic .NET Part 2
Ekspresi Validasi Data
Untuk melakukan validasi data, terlebih dahulu Anda harus membuat suatu ekspresi. Di mana ekspresi ini
terbentuk dari susunan pola-pola sesuai dengan sintaks dasar penulisan regex. Melalui ekspresi inilah
nantinya Anda dapat membandingkan, mengubah, mengganti, atau menghapus string. Regular expression
memungkinkan Anda untuk melakukan validasi data melalui ekspresi-ekspresi yang telah Anda tentukan
sebelumnya. Berdasarkan aturan yang ditetapkan, sebenarnya Anda juga dapat membuat pola yang lebih
kompleks. Secara umum, ada beberapa ekspresi yang cukup sering membantu kita di dalam menyelesaikan
persoalan validasi.
• Ekspresi karakter numerik
Karakter numerik dituliskan dengan menggunakan ekspresi [0-9] atau \d. Ekspresi ini memiliki arti sesuai
atau cocok dengan bilangan desimal tunggal antara 0 sampai 9.
• Ekspresi karakter non-numerik
Karakter non-numerik di sini diartikan sebagai semua karakter kecuali karakter angka. Cara penulisannya
cukup singkat, yaitu menggunakan ekspresi [^0-9] atau \D. Ingat kembali karakter ^ di dalam kurung siku
pada pembahasan sebelumnya, di mana memiliki arti semua karakter kecuali angka 0 sampai 9. Perhatikan
bahwa karakter ^ di dalam kurung siku bukan merupakan asersi seperti contoh kasus tahun.
• Ekspresi huruf kecil dan huruf besar
Huruf besar diekspresikan dengan karakter [A-Z], sedangkan ekspresi huruf kecil adalah [a-z]. Ekspresi ini
memiliki arti huruf antara a sampai dengan z, sehingga angka 0 sampai 9 tidak termasuk didalamnya. Jika
ingin mendapatkan huruf besar dan huruf kecil, Anda tinggal menggabungkannya menjadi [a-zA-Z].
• Ekspresi alamat IP
Sebagaimana Anda ketahui, alamat IP (Internet Protocol) versi 4 dituliskan seperti contoh berikut:
192.168.0.3. Ada pun untuk menyatakan alamat IP yang valid, kita menggunakan pola dalam ekspresi
regex berikut:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
Jika Anda perhatikan, ekspresi di atas mengandung tiga subpola yang dibatasi oleh tanda titik. Subpola
pertama adalah ekspresi \d{1,3}, artinya angka 0 sampai 9 dan paling sedikit 1 angka serta tidak boleh
lebih dari 3 angka. Tanda backslash digunakan untuk meloloskan tanda titik, sehingga didapatkan alamat
IP yang valid. Ada pun tiga subpola lainnya sama dengan subpola pertama, hanya saja subpola terakhir
tidak memerlukan tanda titik.
• Ekspresi alamat email
Alamat email secara umum dituliskan seperti contoh berikut: didik_rpl@yahoo.com. Dari sini Anda sudah
dapat merancang pola yang tepat, yakni terdiri dari tiga subpola.
^([\w-]+)@([\w-]+\.)+[A-Za-z]{2,3}$
Untuk mendapatkan pola yang tepat, kita mengawali dengan karakter ^ dan menutup dengan karakter $.
Berikutnya, subpola pertama menyatakan semua karakter diperbolehkan, dan dilanjutkan dengan karakter
@. Setelah itu meloloskan tanda titik untuk digunakan sebagai akhir nama domain. Terakhir adalah
penulisan TLD (Top Level Domain), di mana boleh dua tetapi tidak lebih dari 3 karakter.
Di dalam kelas Regex terdapat beberapa method static yang memungkinkan Anda untuk menggunakan
regular expression tanpa secara eksplisit menciptakan objek Regex. Artinya, kita tidak harus
menginstantiasi kelas Regex untuk menciptakan objek Regex, karena method static akan menciptakan
objek secara implisit.
Berdasarkan ekspresi-ekspresi di atas, Anda dapat melakukan validasi melalui pola yang telah Anda
definisikan. Untuk contoh kasus yang lebih lanjut, diharapkan masukan berupa tanggal dalam format
dd/mm/yyyy. Di mana tanggal tidak boleh lebih dari 31 dan bulan juga tidak boleh lebih dari 12.
Bagaimana cara menyelesaikannya? Perhatikan kode program berikut:
' Import namespace untuk kelas Regex
Imports System.Text.RegularExpressions
Public Class Form1
Inherits System.Windows.Forms.Form
Function IsValidDate(ByVal dt As String) As Boolean
' Tulis ekspresi dalam satu baris menyamping
' Mengembalikan True jika string sesuai dengan pola yang didefinisikan
Return (Regex.IsMatch(dt, _
"(^0[1-9]{1}|^[12][0-9]|3[01])-(0[1-9]|1[012])-(19|20)\d\d$"))
End Function
Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click
Dim tgl1, tgl2 As String
tgl1 = "30-06-2005"
tgl2 = "2005-07-25"
If IsValidDate(tgl1) Then
Label1.Text = tgl1 + " Valid Date"
Else
Label1.Text = tgl1 + " Not Valid Date"
End If
If IsValidDate(tgl2) Then
Label2.Text = tgl2 + " Valid Date"
Else
Label2.Text = tgl2 + " Not Valid Date"
End If
End Sub
End Class
Pada contoh di atas, kita tidak menciptakan objek Regex secara eksplisit, tetapi menggunakan method
IsMatch, yang juga merupakan method statik. Hasil dari kode program di atas pasti sudah dapat Anda
tebak, di mana string pertama merupakan penulisan format tanggal yang tepat, sedangkan string kedua
tidak sesuai dengan pola Anda.
Validasi dengan Regular Expression
Setelah cukup memahami dasar-dasar regular expression, kita akan melakukan implementasi dalam rangka
mendapatkan data yang sah. Untuk melengkapi validasi yang Anda buat, Anda juga dapat memanfaatkan
kontrol ErrorProvider.
Sekarang siapkan project baru, kemudian masukkan empat buah kontrol TextBox, sebuah kontrol
ErrorProvider, dan sebuah Button. Masing-masing textbox akan kita gunakan untuk masukan nama,
tanggal, email, dan alamat URL. Kode program selengkapnya yang digunakan adalah sebagai berikut:
Imports System.Text.RegularExpressions
Public Class Form1
Inherits System.Windows.Forms.Form
' Windows Form Designer generated code
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Focus()
' membatasi karakter tanggal
TextBox2.MaxLength = 10
End Sub
Private Sub TextBox1_Leave(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox1.Leave
If TextBox1.Text = "" Then
TextBox1.Focus()
End If
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Not IsAlpha(TextBox1.Text) Then
ErrorProvider1.SetError(TextBox1, _
"Isi dengan Huruf A-Z atau a-z" & Chr(10) & _
"Satu kata saja ya.. ")
Else
ErrorProvider1.SetError(TextBox1, "")
End If
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox2.TextChanged
If Not IsValidDate(TextBox2.Text) Then
ErrorProvider1.SetError(TextBox2, _
"Isi dengan tgl-bln-th," & Chr(10) & _
"misal: 01/12/2005")
Else
ErrorProvider1.SetError(TextBox2, "")
End If
End Sub
Private Sub TextBox3_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox3.TextChanged
If Not IsValidEmail(TextBox3.Text) Then
ErrorProvider1.SetError(TextBox3, _
"Alamat Email Tidak Valid")
Else
ErrorProvider1.SetError(TextBox3, "")
End If
End Sub
Private Sub TextBox4_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox4.TextChanged
If Not IsValidURL(TextBox4.Text) Then
ErrorProvider1.SetError(TextBox4, _
"URL Tidak Valid")
Else
ErrorProvider1.SetError(TextBox4, "")
End If
End Sub
' Fungsi untuk memeriksa input huruf (satu kata)
' mengembalikan nilai True jika string sesuai
Function IsAlpha(ByVal str As String) As Boolean
Return (Regex.IsMatch(str, "^[A-Za-z]+$"))
End Function
' Fungsi untuk memeriksa format tanggal
Function IsValidDate(ByVal tgl As String) As Boolean
Return (Regex.IsMatch(tgl, _
"(^0[1-9]{1}|^[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)\d\d$"))
End Function
' Fungsi untuk memeriksa format alamat email
Function IsValidEmail(ByVal email As String) As Boolean
Return (Regex.IsMatch(email, "^([\w-]+)@([\w-]+\.)+[A-Za-z]{2,3}$"))
End Function
' Fungsi untuk memeriksa format URL
Function IsValidURL(ByVal url As String) As Boolean
Return (Regex.IsMatch(url, "http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"))
End Function
End Class
Pada validasi ini, Anda juga dapat menggunakan event-event TextBox lain yang mendukung, misalnya
Leave, KeyPress, atau lainnya. Ada pun di sini kita menggunakan event TextChanged, karena memiliki
waktu tanggap lebih cepat. Akibatnya ikon error juga akan lebih sering muncul, meskipun sebenarnya data
yang Anda masukkan belum selesai dituliskan.
Untuk melakukan validasi data, terlebih dahulu Anda harus membuat suatu ekspresi. Di mana ekspresi ini
terbentuk dari susunan pola-pola sesuai dengan sintaks dasar penulisan regex. Melalui ekspresi inilah
nantinya Anda dapat membandingkan, mengubah, mengganti, atau menghapus string. Regular expression
memungkinkan Anda untuk melakukan validasi data melalui ekspresi-ekspresi yang telah Anda tentukan
sebelumnya. Berdasarkan aturan yang ditetapkan, sebenarnya Anda juga dapat membuat pola yang lebih
kompleks. Secara umum, ada beberapa ekspresi yang cukup sering membantu kita di dalam menyelesaikan
persoalan validasi.
• Ekspresi karakter numerik
Karakter numerik dituliskan dengan menggunakan ekspresi [0-9] atau \d. Ekspresi ini memiliki arti sesuai
atau cocok dengan bilangan desimal tunggal antara 0 sampai 9.
• Ekspresi karakter non-numerik
Karakter non-numerik di sini diartikan sebagai semua karakter kecuali karakter angka. Cara penulisannya
cukup singkat, yaitu menggunakan ekspresi [^0-9] atau \D. Ingat kembali karakter ^ di dalam kurung siku
pada pembahasan sebelumnya, di mana memiliki arti semua karakter kecuali angka 0 sampai 9. Perhatikan
bahwa karakter ^ di dalam kurung siku bukan merupakan asersi seperti contoh kasus tahun.
• Ekspresi huruf kecil dan huruf besar
Huruf besar diekspresikan dengan karakter [A-Z], sedangkan ekspresi huruf kecil adalah [a-z]. Ekspresi ini
memiliki arti huruf antara a sampai dengan z, sehingga angka 0 sampai 9 tidak termasuk didalamnya. Jika
ingin mendapatkan huruf besar dan huruf kecil, Anda tinggal menggabungkannya menjadi [a-zA-Z].
• Ekspresi alamat IP
Sebagaimana Anda ketahui, alamat IP (Internet Protocol) versi 4 dituliskan seperti contoh berikut:
192.168.0.3. Ada pun untuk menyatakan alamat IP yang valid, kita menggunakan pola dalam ekspresi
regex berikut:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
Jika Anda perhatikan, ekspresi di atas mengandung tiga subpola yang dibatasi oleh tanda titik. Subpola
pertama adalah ekspresi \d{1,3}, artinya angka 0 sampai 9 dan paling sedikit 1 angka serta tidak boleh
lebih dari 3 angka. Tanda backslash digunakan untuk meloloskan tanda titik, sehingga didapatkan alamat
IP yang valid. Ada pun tiga subpola lainnya sama dengan subpola pertama, hanya saja subpola terakhir
tidak memerlukan tanda titik.
• Ekspresi alamat email
Alamat email secara umum dituliskan seperti contoh berikut: didik_rpl@yahoo.com. Dari sini Anda sudah
dapat merancang pola yang tepat, yakni terdiri dari tiga subpola.
^([\w-]+)@([\w-]+\.)+[A-Za-z]{2,3}$
Untuk mendapatkan pola yang tepat, kita mengawali dengan karakter ^ dan menutup dengan karakter $.
Berikutnya, subpola pertama menyatakan semua karakter diperbolehkan, dan dilanjutkan dengan karakter
@. Setelah itu meloloskan tanda titik untuk digunakan sebagai akhir nama domain. Terakhir adalah
penulisan TLD (Top Level Domain), di mana boleh dua tetapi tidak lebih dari 3 karakter.
Di dalam kelas Regex terdapat beberapa method static yang memungkinkan Anda untuk menggunakan
regular expression tanpa secara eksplisit menciptakan objek Regex. Artinya, kita tidak harus
menginstantiasi kelas Regex untuk menciptakan objek Regex, karena method static akan menciptakan
objek secara implisit.
Berdasarkan ekspresi-ekspresi di atas, Anda dapat melakukan validasi melalui pola yang telah Anda
definisikan. Untuk contoh kasus yang lebih lanjut, diharapkan masukan berupa tanggal dalam format
dd/mm/yyyy. Di mana tanggal tidak boleh lebih dari 31 dan bulan juga tidak boleh lebih dari 12.
Bagaimana cara menyelesaikannya? Perhatikan kode program berikut:
' Import namespace untuk kelas Regex
Imports System.Text.RegularExpressions
Public Class Form1
Inherits System.Windows.Forms.Form
Function IsValidDate(ByVal dt As String) As Boolean
' Tulis ekspresi dalam satu baris menyamping
' Mengembalikan True jika string sesuai dengan pola yang didefinisikan
Return (Regex.IsMatch(dt, _
"(^0[1-9]{1}|^[12][0-9]|3[01])-(0[1-9]|1[012])-(19|20)\d\d$"))
End Function
Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click
Dim tgl1, tgl2 As String
tgl1 = "30-06-2005"
tgl2 = "2005-07-25"
If IsValidDate(tgl1) Then
Label1.Text = tgl1 + " Valid Date"
Else
Label1.Text = tgl1 + " Not Valid Date"
End If
If IsValidDate(tgl2) Then
Label2.Text = tgl2 + " Valid Date"
Else
Label2.Text = tgl2 + " Not Valid Date"
End If
End Sub
End Class
Pada contoh di atas, kita tidak menciptakan objek Regex secara eksplisit, tetapi menggunakan method
IsMatch, yang juga merupakan method statik. Hasil dari kode program di atas pasti sudah dapat Anda
tebak, di mana string pertama merupakan penulisan format tanggal yang tepat, sedangkan string kedua
tidak sesuai dengan pola Anda.
Validasi dengan Regular Expression
Setelah cukup memahami dasar-dasar regular expression, kita akan melakukan implementasi dalam rangka
mendapatkan data yang sah. Untuk melengkapi validasi yang Anda buat, Anda juga dapat memanfaatkan
kontrol ErrorProvider.
Sekarang siapkan project baru, kemudian masukkan empat buah kontrol TextBox, sebuah kontrol
ErrorProvider, dan sebuah Button. Masing-masing textbox akan kita gunakan untuk masukan nama,
tanggal, email, dan alamat URL. Kode program selengkapnya yang digunakan adalah sebagai berikut:
Imports System.Text.RegularExpressions
Public Class Form1
Inherits System.Windows.Forms.Form
' Windows Form Designer generated code
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Focus()
' membatasi karakter tanggal
TextBox2.MaxLength = 10
End Sub
Private Sub TextBox1_Leave(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox1.Leave
If TextBox1.Text = "" Then
TextBox1.Focus()
End If
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Not IsAlpha(TextBox1.Text) Then
ErrorProvider1.SetError(TextBox1, _
"Isi dengan Huruf A-Z atau a-z" & Chr(10) & _
"Satu kata saja ya.. ")
Else
ErrorProvider1.SetError(TextBox1, "")
End If
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox2.TextChanged
If Not IsValidDate(TextBox2.Text) Then
ErrorProvider1.SetError(TextBox2, _
"Isi dengan tgl-bln-th," & Chr(10) & _
"misal: 01/12/2005")
Else
ErrorProvider1.SetError(TextBox2, "")
End If
End Sub
Private Sub TextBox3_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox3.TextChanged
If Not IsValidEmail(TextBox3.Text) Then
ErrorProvider1.SetError(TextBox3, _
"Alamat Email Tidak Valid")
Else
ErrorProvider1.SetError(TextBox3, "")
End If
End Sub
Private Sub TextBox4_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox4.TextChanged
If Not IsValidURL(TextBox4.Text) Then
ErrorProvider1.SetError(TextBox4, _
"URL Tidak Valid")
Else
ErrorProvider1.SetError(TextBox4, "")
End If
End Sub
' Fungsi untuk memeriksa input huruf (satu kata)
' mengembalikan nilai True jika string sesuai
Function IsAlpha(ByVal str As String) As Boolean
Return (Regex.IsMatch(str, "^[A-Za-z]+$"))
End Function
' Fungsi untuk memeriksa format tanggal
Function IsValidDate(ByVal tgl As String) As Boolean
Return (Regex.IsMatch(tgl, _
"(^0[1-9]{1}|^[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)\d\d$"))
End Function
' Fungsi untuk memeriksa format alamat email
Function IsValidEmail(ByVal email As String) As Boolean
Return (Regex.IsMatch(email, "^([\w-]+)@([\w-]+\.)+[A-Za-z]{2,3}$"))
End Function
' Fungsi untuk memeriksa format URL
Function IsValidURL(ByVal url As String) As Boolean
Return (Regex.IsMatch(url, "http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"))
End Function
End Class
Pada validasi ini, Anda juga dapat menggunakan event-event TextBox lain yang mendukung, misalnya
Leave, KeyPress, atau lainnya. Ada pun di sini kita menggunakan event TextChanged, karena memiliki
waktu tanggap lebih cepat. Akibatnya ikon error juga akan lebih sering muncul, meskipun sebenarnya data
yang Anda masukkan belum selesai dituliskan.
Regular Expression Menggunakan Visual Basic .NET
Regular Expression di Visual Basic .NET
Regular expression atau biasa disingkat regex, merupakan suatu notasi fleksibel dan ringkas untuk
menemukan dan menggantikan pola teks. Notasi regular expression terdiri dari dua jenis karakter dasar,
yaitu karakter teks literal (normal) dan metakarakter. Karakter normal menyatakan bahwa teks harus eksis
di string target, sedangkan metakarakter menyatakan teks dapat bermacam-macam di string target. Regular
expression memungkinkan kita menguraikan sejumlah teks guna menemukan pola karakter spesifik. Selain
itu, Anda juga bisa mengganti, memodifikasi, atau menghapus suatu substring dengan cepat dan akurat,
sesuai kriteria yang kita inginkan.
Hampir semua bahasa pemrograman mengimplementasikan regular expression, begitu pula halnya dengan
Visual Basic .NET. Di .NET Framework disediakan namespace System.Text.RegularExpression
yang berisi delapan kelas untuk mendukung penggunaan regular expression. Namespace ini menyediakan
fungsionalitas yang dapat digunakan pada berbagai platform atau bahasa yang berjalan di .NET Framework,termasuk C#, C++, dan J#.
Menggunakan Objek Regex
Dari beberapa kelas yang tersedia, kelas Regex dan Match merupakan kelas yang paling sering digunakan,
terutama untuk membuat ekspresi sederhana. Kelas Regex adalah kelas yang merepresentasikan ekspresi
immutable (read-only), dan digunakan untuk menciptakan objek Regex. Sementara itu, kelas Match
merepresentasikan hasil regular expression yang sesuai dengan operasi.
Pada saat Anda menggunakan kelas-kelas regular expression, Anda perlu mengimport namespace di bagian
atas kode program. Tujuannya adalah agar tidak perlu menuliskan nama lengkap kelas secara eksplisit, jadi
cukup nama pendeknya (setelah nama namespace tersebut).
' Import namespace untuk kelas-kelas regex
Imports System.Text.RegularExpressions
Contoh penggunaan objek Regex dan Match diperlihatkan seperti berikut:
' Import namespace untuk kelas-kelas regex
Imports System.Text.RegularExpressions
Public Class Form1
Inherits System.Windows.Forms.Form
' Windows Form Designer generated code
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
' Mendeklarasikan variabel objek dengan tipe Regex.
Dim r As Regex
' Menciptakan objek Regex dan mendefinisikan regular expression
r = New Regex("abc")
' Mencari string "abc" di dalam "123abc456"
Dim m As Match = r.Match("123abc456")
' Mengembalikan True jika cocok
If m.Success Then
' Mencetak posisi string yang ditemukan
MsgBox("Ditemukan pada posisi " & m.Index.ToString())
Else
MsgBox("String Tidak Cocok")
End If
Console.ReadLine()
End Sub
End Class
Pada kasus di atas, kita ingin mencocokkan apakah string “abc” berada di dalam string “123abc456”, dan
menentukan posisinya jika ditemukan. Hasil yang kita dapatkan adalah string ditemukan, dan posisinya
berada di index 3. Penghitungan nilai index dimulai dari 0, dan akan berhenti pada string pertama (huruf a).
Sebaliknya, apabila pola “abc” diubah menjadi “a bc” atau “a1bc”, maka method Match akan
mengembalikan nilai False, karena pola tidak sesuai dengan string target.
Regular expression atau biasa disingkat regex, merupakan suatu notasi fleksibel dan ringkas untuk
menemukan dan menggantikan pola teks. Notasi regular expression terdiri dari dua jenis karakter dasar,
yaitu karakter teks literal (normal) dan metakarakter. Karakter normal menyatakan bahwa teks harus eksis
di string target, sedangkan metakarakter menyatakan teks dapat bermacam-macam di string target. Regular
expression memungkinkan kita menguraikan sejumlah teks guna menemukan pola karakter spesifik. Selain
itu, Anda juga bisa mengganti, memodifikasi, atau menghapus suatu substring dengan cepat dan akurat,
sesuai kriteria yang kita inginkan.
Hampir semua bahasa pemrograman mengimplementasikan regular expression, begitu pula halnya dengan
Visual Basic .NET. Di .NET Framework disediakan namespace System.Text.RegularExpression
yang berisi delapan kelas untuk mendukung penggunaan regular expression. Namespace ini menyediakan
fungsionalitas yang dapat digunakan pada berbagai platform atau bahasa yang berjalan di .NET Framework,termasuk C#, C++, dan J#.
Menggunakan Objek Regex
Dari beberapa kelas yang tersedia, kelas Regex dan Match merupakan kelas yang paling sering digunakan,
terutama untuk membuat ekspresi sederhana. Kelas Regex adalah kelas yang merepresentasikan ekspresi
immutable (read-only), dan digunakan untuk menciptakan objek Regex. Sementara itu, kelas Match
merepresentasikan hasil regular expression yang sesuai dengan operasi.
Pada saat Anda menggunakan kelas-kelas regular expression, Anda perlu mengimport namespace di bagian
atas kode program. Tujuannya adalah agar tidak perlu menuliskan nama lengkap kelas secara eksplisit, jadi
cukup nama pendeknya (setelah nama namespace tersebut).
' Import namespace untuk kelas-kelas regex
Imports System.Text.RegularExpressions
Contoh penggunaan objek Regex dan Match diperlihatkan seperti berikut:
' Import namespace untuk kelas-kelas regex
Imports System.Text.RegularExpressions
Public Class Form1
Inherits System.Windows.Forms.Form
' Windows Form Designer generated code
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
' Mendeklarasikan variabel objek dengan tipe Regex.
Dim r As Regex
' Menciptakan objek Regex dan mendefinisikan regular expression
r = New Regex("abc")
' Mencari string "abc" di dalam "123abc456"
Dim m As Match = r.Match("123abc456")
' Mengembalikan True jika cocok
If m.Success Then
' Mencetak posisi string yang ditemukan
MsgBox("Ditemukan pada posisi " & m.Index.ToString())
Else
MsgBox("String Tidak Cocok")
End If
Console.ReadLine()
End Sub
End Class
Pada kasus di atas, kita ingin mencocokkan apakah string “abc” berada di dalam string “123abc456”, dan
menentukan posisinya jika ditemukan. Hasil yang kita dapatkan adalah string ditemukan, dan posisinya
berada di index 3. Penghitungan nilai index dimulai dari 0, dan akan berhenti pada string pertama (huruf a).
Sebaliknya, apabila pola “abc” diubah menjadi “a bc” atau “a1bc”, maka method Match akan
mengembalikan nilai False, karena pola tidak sesuai dengan string target.
Membuat Kalkulator Sederhana dengan Visual Basic 6.0
Program kalkulator adalah program standar yang sudah tersedia di Microsoft Windows. Tetapi, tak ada
salahnya jika kita mencoba membuat kalkulator sendiri dengan Microsoft Visual Basic 6.0.
Pertama-tama, buatlah sebuah form sesuai selera Anda, yang bentuknya kurang lebih seperti
kalkulator standar Windows, seperti ini:
Untuk properties dari masing-masing objek, saya contohkan seperti dibawah ini, dengan letak
masing-masing objek disesuaikan dengan gambar diatas.
Textbox 1:
(Name) : txtDisplay
Alignment: 1-Right Justify
Text : (kosongkan)
Maxlength : 12
Command Button 1:
(Name) : cmdAngka
Index : 1
Caption : 1
Command Button 2:
(Name) : cmdAngka
Index : 2
Caption : 2
Command Button 3:
(Name) : cmdAngka
Index : 3
Caption : 3
Command Button 4:
(Name) : cmdAngka
Index : 4
Caption : 4
Command Button 5:
(Name) : cmdAngka
Index : 5
Caption : 5
Command Button 6:
(Name) : cmdAngka
Index : 6
Caption : 6
Command Button 7:
(Name) : cmdAngka
Index : 7
Caption : 7
Command Button 8:
(Name) : cmdAngka
Index : 8
Caption : 8
Command Button 9:
(Name) : cmdAngka
Index : 9
Caption : 9
Command Button 10:
(Name) : cmdAngka
Index : 0
Caption : 0
Command Button 11:
(Name) : cmdPlusMinus
Caption : +/-
Command Button 12:
(Name) : cmdKoma
Caption : .
Command Button 13:
(Name) : cmdOperator
Index : 1
Caption : +
Command Button 14:
(Name) : cmdOperator
Index : 2
Caption : -
Command Button 15:
(Name) : cmdOperator
Index : 3
Caption : x
Command Button 16:
(Name) : cmdOperator
Index : 4
Caption : /
Command Button 17:
(Name) : cmdClearEntry
Caption : CE
Command Button 18:
(Name) : cmdClear
Caption : C
Command Button 19:
(Name) : cmdSamaDengan
Caption : =
Berikutnya, Anda tinggal membuat coding dari kalkulator tersebut. Jika Anda mengikuti semua
setting properties seperti diatas, maka codingnya saya contohkan seperti ini:
Option Explicit
Private Hasil As Double
Private Const opNol = 0
Private Const opTambah = 1
Private Const opKurang = 2
Private Const opKali = 3
Private Const opBagi = 4
Private Operator As Integer
Private NilaiBaru As Boolean
' untuk menghapus karakter terakhir
Private Sub Hapus()
Dim txt As String
Dim min_len As Integer
txt = txtDisplay.Text
If Left$(txt, 1) = "-" Then
min_len = 2
Else
min_len = 1
End If
If Len(txt) > min_len Then
txtDisplay.Text = Left$(txt, Len(txt) - 1)
Else
txtDisplay.Text = "0"
End If
End Sub
' hapus angka, hasil terakhir dan operator
Private Sub cmdClear_Click()
cmdClearEntry_Click
Hasil = 0
Operator = opNol
End Sub
' hapus angka
Private Sub cmdClearEntry_Click()
txtDisplay.Text = ""
End Sub
' menambahkan koma (desimal)
Private Sub cmdKoma_Click()
If InStr(txtDisplay.Text, ".") Then
Beep
Else
If NilaiBaru Then
txtDisplay.Text = "."
NilaiBaru = False
Else
txtDisplay.Text = txtDisplay.Text & "."
End If
End If
End Sub
' Menghitung
Private Sub cmdSamaDengan_Click()
Dim HasilBaru As Double
If txtDisplay.Text = "" Then
HasilBaru = 0
Else
HasilBaru = CDbl(txtDisplay.Text)
End If
Select Case Operator
Case opNol
Hasil = HasilBaru
Case opTambah
Hasil = Hasil + HasilBaru
Case opKurang
Hasil = Hasil - HasilBaru
Case opKali
Hasil = Hasil * HasilBaru
Case opBagi
'Tidak bisa dibagi nol
If HasilBaru = 0 Then
MsgBox "Tidak bisa dibagi 0", vbOKOnly + vbCritical, "Kalku ERROR"
Call cmdClear_Click
Else
Hasil = Hasil / HasilBaru
End If
End Select
Operator = opNol
NilaiBaru = True
txtDisplay.Text = Format$(Hasil)
End Sub
' menuliskan angka
Private Sub cmdAngka_Click(Index As Integer)
If NilaiBaru Then
txtDisplay.Text = Format$(Index)
NilaiBaru = False
Else
txtDisplay.Text = _
txtDisplay.Text & Format$(Index)
End If
End Sub
' tombol tambah/kurang/bagi/kali
Private Sub cmdOperator_Click(Index As Integer)
cmdSamaDengan_Click
Operator = Index
NilaiBaru = True
End Sub
' merubah tanda +/-
Private Sub cmdPlusMinus_Click()
If NilaiBaru Then
txtDisplay.Text = "-"
ElseIf Left$(txtDisplay.Text, 1) = "-" Then
txtDisplay.Text = Right$(txtDisplay.Text, 2)
Else
txtDisplay.Text = "-" & txtDisplay.Text
End If
End Sub
' filter untuk angka saja yg dapat diketikkan
Private Sub Form_KeyPress(KeyAscii As Integer)
txtDisplay_KeyPress KeyAscii
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
txtDisplay_KeyUp KeyCode, Shift
End Sub
' supaya kursor tetap di kanan
Private Sub txtDisplay_Change()
txtDisplay.SelStart = Len(txtDisplay.Text)
End Sub
Private Sub txtDisplay_GotFocus()
txtDisplay_Change
End Sub
' untuk mengetikkan angka di keyboard
Private Sub txtDisplay_KeyPress(KeyAscii As Integer)
Dim ch As String
ch = Chr$(KeyAscii)
Select Case ch
Case "0"
cmdAngka_Click 0
Case "1"
cmdAngka_Click 1
Case "2"
cmdAngka_Click 2
Case "3"
cmdAngka_Click 3
Case "4"
cmdAngka_Click 4
Case "5"
cmdAngka_Click 5
Case "6"
cmdAngka_Click 6
Case "7"
cmdAngka_Click 7
Case "8"
cmdAngka_Click 8
Case "9"
cmdAngka_Click 9
Case "*", "x", "X"
cmdOperator_Click opKali
Case "+"
cmdOperator_Click opTambah
Case vbCrLf, vbCr, "="
cmdSamaDengan_Click
Case "-"
cmdOperator_Click opKurang
Case "."
cmdKoma_Click
Case "/"
cmdOperator_Click opBagi
Case "C", "c"
cmdClearEntry_Click
End Select
KeyAscii = 0
End Sub
' untuk ketikan angka di numpad
Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
cmdAngka_Click 0
Case vbKeyNumpad1
cmdAngka_Click 1
Case vbKeyNumpad2
cmdAngka_Click 2
Case vbKeyNumpad3
cmdAngka_Click 3
Case vbKeyNumpad4
cmdAngka_Click 4
Case vbKeyNumpad5
cmdAngka_Click 5
Case vbKeyNumpad6
cmdAngka_Click 6
Case vbKeyNumpad7
cmdAngka_Click 7
Case vbKeyNumpad8
cmdAngka_Click 8
Case vbKeyNumpad9
cmdAngka_Click 9
Case vbKeyMultiply
cmdOperator_Click opKali
Case vbKeyAdd
cmdOperator_Click opTambah
Case vbKeySeparator
cmdSamaDengan_Click
Case vbKeySubtract
cmdOperator_Click opKurang
Case vbKeyDivide
cmdOperator_Click opBagi
Case vbKeyDecimal
cmdKoma_Click
Case vbKeyBack, vbKeyDelete
Hapus
End Select
KeyCode = 0
End Sub
salahnya jika kita mencoba membuat kalkulator sendiri dengan Microsoft Visual Basic 6.0.
Pertama-tama, buatlah sebuah form sesuai selera Anda, yang bentuknya kurang lebih seperti
kalkulator standar Windows, seperti ini:
Untuk properties dari masing-masing objek, saya contohkan seperti dibawah ini, dengan letak
masing-masing objek disesuaikan dengan gambar diatas.
Textbox 1:
(Name) : txtDisplay
Alignment: 1-Right Justify
Text : (kosongkan)
Maxlength : 12
Command Button 1:
(Name) : cmdAngka
Index : 1
Caption : 1
Command Button 2:
(Name) : cmdAngka
Index : 2
Caption : 2
Command Button 3:
(Name) : cmdAngka
Index : 3
Caption : 3
Command Button 4:
(Name) : cmdAngka
Index : 4
Caption : 4
Command Button 5:
(Name) : cmdAngka
Index : 5
Caption : 5
Command Button 6:
(Name) : cmdAngka
Index : 6
Caption : 6
Command Button 7:
(Name) : cmdAngka
Index : 7
Caption : 7
Command Button 8:
(Name) : cmdAngka
Index : 8
Caption : 8
Command Button 9:
(Name) : cmdAngka
Index : 9
Caption : 9
Command Button 10:
(Name) : cmdAngka
Index : 0
Caption : 0
Command Button 11:
(Name) : cmdPlusMinus
Caption : +/-
Command Button 12:
(Name) : cmdKoma
Caption : .
Command Button 13:
(Name) : cmdOperator
Index : 1
Caption : +
Command Button 14:
(Name) : cmdOperator
Index : 2
Caption : -
Command Button 15:
(Name) : cmdOperator
Index : 3
Caption : x
Command Button 16:
(Name) : cmdOperator
Index : 4
Caption : /
Command Button 17:
(Name) : cmdClearEntry
Caption : CE
Command Button 18:
(Name) : cmdClear
Caption : C
Command Button 19:
(Name) : cmdSamaDengan
Caption : =
Berikutnya, Anda tinggal membuat coding dari kalkulator tersebut. Jika Anda mengikuti semua
setting properties seperti diatas, maka codingnya saya contohkan seperti ini:
Option Explicit
Private Hasil As Double
Private Const opNol = 0
Private Const opTambah = 1
Private Const opKurang = 2
Private Const opKali = 3
Private Const opBagi = 4
Private Operator As Integer
Private NilaiBaru As Boolean
' untuk menghapus karakter terakhir
Private Sub Hapus()
Dim txt As String
Dim min_len As Integer
txt = txtDisplay.Text
If Left$(txt, 1) = "-" Then
min_len = 2
Else
min_len = 1
End If
If Len(txt) > min_len Then
txtDisplay.Text = Left$(txt, Len(txt) - 1)
Else
txtDisplay.Text = "0"
End If
End Sub
' hapus angka, hasil terakhir dan operator
Private Sub cmdClear_Click()
cmdClearEntry_Click
Hasil = 0
Operator = opNol
End Sub
' hapus angka
Private Sub cmdClearEntry_Click()
txtDisplay.Text = ""
End Sub
' menambahkan koma (desimal)
Private Sub cmdKoma_Click()
If InStr(txtDisplay.Text, ".") Then
Beep
Else
If NilaiBaru Then
txtDisplay.Text = "."
NilaiBaru = False
Else
txtDisplay.Text = txtDisplay.Text & "."
End If
End If
End Sub
' Menghitung
Private Sub cmdSamaDengan_Click()
Dim HasilBaru As Double
If txtDisplay.Text = "" Then
HasilBaru = 0
Else
HasilBaru = CDbl(txtDisplay.Text)
End If
Select Case Operator
Case opNol
Hasil = HasilBaru
Case opTambah
Hasil = Hasil + HasilBaru
Case opKurang
Hasil = Hasil - HasilBaru
Case opKali
Hasil = Hasil * HasilBaru
Case opBagi
'Tidak bisa dibagi nol
If HasilBaru = 0 Then
MsgBox "Tidak bisa dibagi 0", vbOKOnly + vbCritical, "Kalku ERROR"
Call cmdClear_Click
Else
Hasil = Hasil / HasilBaru
End If
End Select
Operator = opNol
NilaiBaru = True
txtDisplay.Text = Format$(Hasil)
End Sub
' menuliskan angka
Private Sub cmdAngka_Click(Index As Integer)
If NilaiBaru Then
txtDisplay.Text = Format$(Index)
NilaiBaru = False
Else
txtDisplay.Text = _
txtDisplay.Text & Format$(Index)
End If
End Sub
' tombol tambah/kurang/bagi/kali
Private Sub cmdOperator_Click(Index As Integer)
cmdSamaDengan_Click
Operator = Index
NilaiBaru = True
End Sub
' merubah tanda +/-
Private Sub cmdPlusMinus_Click()
If NilaiBaru Then
txtDisplay.Text = "-"
ElseIf Left$(txtDisplay.Text, 1) = "-" Then
txtDisplay.Text = Right$(txtDisplay.Text, 2)
Else
txtDisplay.Text = "-" & txtDisplay.Text
End If
End Sub
' filter untuk angka saja yg dapat diketikkan
Private Sub Form_KeyPress(KeyAscii As Integer)
txtDisplay_KeyPress KeyAscii
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
txtDisplay_KeyUp KeyCode, Shift
End Sub
' supaya kursor tetap di kanan
Private Sub txtDisplay_Change()
txtDisplay.SelStart = Len(txtDisplay.Text)
End Sub
Private Sub txtDisplay_GotFocus()
txtDisplay_Change
End Sub
' untuk mengetikkan angka di keyboard
Private Sub txtDisplay_KeyPress(KeyAscii As Integer)
Dim ch As String
ch = Chr$(KeyAscii)
Select Case ch
Case "0"
cmdAngka_Click 0
Case "1"
cmdAngka_Click 1
Case "2"
cmdAngka_Click 2
Case "3"
cmdAngka_Click 3
Case "4"
cmdAngka_Click 4
Case "5"
cmdAngka_Click 5
Case "6"
cmdAngka_Click 6
Case "7"
cmdAngka_Click 7
Case "8"
cmdAngka_Click 8
Case "9"
cmdAngka_Click 9
Case "*", "x", "X"
cmdOperator_Click opKali
Case "+"
cmdOperator_Click opTambah
Case vbCrLf, vbCr, "="
cmdSamaDengan_Click
Case "-"
cmdOperator_Click opKurang
Case "."
cmdKoma_Click
Case "/"
cmdOperator_Click opBagi
Case "C", "c"
cmdClearEntry_Click
End Select
KeyAscii = 0
End Sub
' untuk ketikan angka di numpad
Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
cmdAngka_Click 0
Case vbKeyNumpad1
cmdAngka_Click 1
Case vbKeyNumpad2
cmdAngka_Click 2
Case vbKeyNumpad3
cmdAngka_Click 3
Case vbKeyNumpad4
cmdAngka_Click 4
Case vbKeyNumpad5
cmdAngka_Click 5
Case vbKeyNumpad6
cmdAngka_Click 6
Case vbKeyNumpad7
cmdAngka_Click 7
Case vbKeyNumpad8
cmdAngka_Click 8
Case vbKeyNumpad9
cmdAngka_Click 9
Case vbKeyMultiply
cmdOperator_Click opKali
Case vbKeyAdd
cmdOperator_Click opTambah
Case vbKeySeparator
cmdSamaDengan_Click
Case vbKeySubtract
cmdOperator_Click opKurang
Case vbKeyDivide
cmdOperator_Click opBagi
Case vbKeyDecimal
cmdKoma_Click
Case vbKeyBack, vbKeyDelete
Hapus
End Select
KeyCode = 0
End Sub
Langganan:
Postingan (Atom)