REG#Semester#Nama (baca: Reg Pagar Semester Pagar Nama), itulah keyword yang biasa orang gunakan untuk melakukan registrasi ke nomor operator via SMS. Bukan hanya format seperti tersebut diatas yang biasa dipakai, masih banyak format-format lain yang biasa digunakan untuk melakukan registrasi.
Pada postingan kali ini saya ingin berbagi pengetahuan dari yang saya ketahui, masih seputar penggunaan tools SMS Gateway gammu dengan bahasa pemrograman Visual Basic Classic dan database MySQL. Untuk mengikuti paparan yang saya sampaikan ini, saya harap kawan-kawan sudah mengetahui cara melakukan konfigurasi gammu, membuat database gammu, cek konektifitas handphone dengan gammu, atau silahkan mempelajari postingan saya sebelumnya yang ini Pengantar Membuat Aplikasi SMS dan yang ini juga Kirim SMS ke banyak Nomor dengan VB 6.
Tahapan selanjutnya yang harus kita lakukan setelah gammu sudah mampu membaca handphone, membuat database di MySQL yaitu :
1. Buka Visual Basic Classic
2. Buat desain interface seperti dibawah ini, object yang dipakai dalam form tersebut antara lain 3 object label, 1 images dan 1 timer.
3. Setting Properties untuk timer1 intervalnya menjadi 1000
4. Buat Coding untuk form tersebut, silahkan salin tempel (baca:copy paste) coding dibawah ini :
Demikian ulasan mengenai tools gammu dan Visual Basic yang digunakan untuk melakukan registrasi via SMS, dan hal yang perlu diketahui yaitu paparan ini hanyalah sebatas dokumentasi pribadi, dan sebatas hanya "SHARED FOR YOU". Bila ada yang mau ditanyakan silahkan berikan komentar.
Pada postingan kali ini saya ingin berbagi pengetahuan dari yang saya ketahui, masih seputar penggunaan tools SMS Gateway gammu dengan bahasa pemrograman Visual Basic Classic dan database MySQL. Untuk mengikuti paparan yang saya sampaikan ini, saya harap kawan-kawan sudah mengetahui cara melakukan konfigurasi gammu, membuat database gammu, cek konektifitas handphone dengan gammu, atau silahkan mempelajari postingan saya sebelumnya yang ini Pengantar Membuat Aplikasi SMS dan yang ini juga Kirim SMS ke banyak Nomor dengan VB 6.
Tahapan selanjutnya yang harus kita lakukan setelah gammu sudah mampu membaca handphone, membuat database di MySQL yaitu :
1. Buka Visual Basic Classic
2. Buat desain interface seperti dibawah ini, object yang dipakai dalam form tersebut antara lain 3 object label, 1 images dan 1 timer.
![]() |
| Form Registrasi SMS |
3. Setting Properties untuk timer1 intervalnya menjadi 1000
4. Buat Coding untuk form tersebut, silahkan salin tempel (baca:copy paste) coding dibawah ini :
Option Explicit
Dim xNomor As String
Dim xSMS As String
Private Sub CekInSMS()
Dim xKunci As String
Set RsInbox = New ADODB.Recordset
RsInbox.CursorLocation = adUseClient
'Tampilkan data inbox
StrSQL = ""
StrSQL = "Select * From Inbox WHERE Processed='false'"
RsInbox.Open StrSQL, Conn, adOpenStatic, adLockReadOnly
If Not RsInbox.EOF Then
'Ambil record ID
xKunci = RsInbox.Fields("ID")
xNomor = RsInbox.Fields("SenderNumber")
xSMS = RsInbox.Fields("TextDecoded")
'Ubah data
StrSQL = "UPDATE inbox SET Processed='true'" _
& "WHERE ID='" & xKunci & "'"
Conn.Execute StrSQL
'panggil prosedur kirimsms
Call KirimSMS
Else
xNomor = vbNullString
xSMS = vbNullString
End If
RsInbox.Close
Set RsInbox = Nothing
Exit Sub
End Sub
Private Sub KirimSMS()
On Error GoTo salah
Dim xPesan As String
Dim xFormat1 As String, xFormat2 As String
Dim xHasil() As String
xFormat1 = VBA.Left(xSMS, 3)
xHasil = VBA.Split(xSMS, "#")
xFormat2 = xHasil(1)
If xFormat1 = "REG" And VBA.IsNumeric(xFormat2) Then
xPesan = ""
xPesan = "Terima Kasih Anda Sudah Melakukan Registrasi" _
& " ke SMS Center Pranata Indonesia"
StrSQL = "INSERT INTO outbox (`DestinationNumber`," _
& "`TextDecoded`) VALUES" _
& "('" & xNomor & "','" & xPesan & "')"
Conn.Execute StrSQL
Exit Sub
ElseIf xFormat1 <> "REG" And IsNumeric(xFormat2) Then
xPesan = ""
xPesan = "Maaf !!!, Registrasi Anda Gagal, Silahkan Cek Kembali" _
& " Format Isian Registrasinya," _
& "Contoh REG#Semester#Nama (exp. REG#10#Eka Riana)" _
& "(SMS Center Pranata Indonesia)"
StrSQL = "INSERT INTO outbox (`DestinationNumber`," _
& "`TextDecoded`) VALUES" _
& "('" & xNomor & "','" & xPesan & "')"
Conn.Execute StrSQL
Exit Sub
Else
xPesan = ""
xPesan = "Maaf !!!, Registrasi Anda Gagal," _
& "Silahkan Cek Kembali" _
& "Format Isian Registrasinya, Contoh REG#Semester#Nama" _
& "(exp. REG#10#Eka Riana)" _
& "(SMS Center Pranata Indonesia)"
StrSQL = "INSERT INTO outbox (`DestinationNumber`," _
& "`TextDecoded`) VALUES" _
& "('" & xNomor & "','" & xPesan & "')"
Conn.Execute StrSQL
Exit Sub
End If
salah:
xPesan = ""
xPesan = "Maaf !!!, Registrasi Anda Gagal," _
& "Silahkan Cek Kembali" _
& "Format Isian Registrasinya, Contoh REG#Semester#Nama" _
& "(exp. REG#10#Eka Riana)" _
& "(SMS Center Pranata Indonesia)"
StrSQL = "INSERT INTO outbox (`DestinationNumber`," _
& "`TextDecoded`) VALUES" _
& "('" & xNomor & "','" & xPesan & "')"
Conn.Execute StrSQL
Exit Sub
End Sub
Private Sub Form_Load()
Call KoneksiMySQL
End Sub
Private Sub Timer1_Timer()
Call CekInSMS
End Sub
5. Test Program; jangan lupa untuk mengaktifkan daemon smsd-mysql nya, kemudian coba lakukan SMS dengan format REG#SEMESTER#NAMA, misalnya REG#1#Eka Riana, kirim ke nomor anda (awas jangan kirim ke nomor yang salah :D ).Demikian ulasan mengenai tools gammu dan Visual Basic yang digunakan untuk melakukan registrasi via SMS, dan hal yang perlu diketahui yaitu paparan ini hanyalah sebatas dokumentasi pribadi, dan sebatas hanya "SHARED FOR YOU". Bila ada yang mau ditanyakan silahkan berikan komentar.

Assalamu'alaikum pak, mau nanya klo misal layanan SMS yg ditawarkan lebih dari satu, kayak REG, UNREG, NILAI (tanya Nilai) dll itu bagaimana Pak??
BalasHapusTrus ini pak, mohon penjelasannya:
xFormat1 = VBA.Left(xSMS, 3)
xHasil = VBA.Split(xSMS, "#")
xFormat2 = xHasil(1)
sama,
knp code untuk info format salah diulang 3X?? "MAAF!! Registrasi Anda Gagal ....."
sorry banyak nanya, pengen beljaran bikin aplikasi sprti itu jg. Thanks
Sangat bisa, berarti ketika sms masuk berisi REG, Maka nomor dari registrasi tersebut otomatis tersimpan ke tabel data registrasi, sedangkan ketika sms masuk berisi UNREG maka otomatis nomor telpon tersebut terhapus didalam tabel registrasi,,,
BalasHapusUntuk memberikan info tentang nilai berarti harus membuat terlebih dahulu tabel tambahan untuk menyimpan data nilai, sedangkan untuk untuk meminta info nilai dan memberikan info nilai dari sms center ke nomor pengirim tinggal mainkan bahasa Querynya.
Bisa aja tidak di ulang, itu cuma sekedar contoh aja, tinggal di modifikasi dikit....
Mudah-mudahan faham,,,,,
Oke pak, paham :D
BalasHapusjadi untuk UNREG query DELETE data ditulis pada Timer??? (seperti koding anda di atas)
Oh ya pak, mohon dijelaskan untuk koding ini:
VBA.Left(xSMS, 3) >>> VBA itu apa? dan angka 3 itu untuk apa?
nanya satu lagi pak, hehehe...
code untuk menyimpan data member (REG) ke dalam tabel "Peserta" berdasarkan field NIS, NAMA, KELAS, No.HP itu gmana ya pak??
ThankS
VBA.Left(xSMS,3) Digunakan untuk mengambil character dari sebelah kiri, sedangkan VBA sendiri artinya ,,,, ane juga engga tau ... heheh..
BalasHapusUntuk menyimpan data Member, berarti harus diubah terlebih dahulu format registrasinya menjadi seperti ini :
REG#Nama#Kelas --->REG#Eka Riana#X
Dan untuk codingnya kurang lebih seperti dibawah ini, tapi dengan asumsi bahwa tabel peserta sudah anda buat :
hehehe... Oh berarti angka 3 itu untuk membaca 3huruf "REG" ya??? setelah itu isi SMS displit berdasarkan "#", xFormat(2) = xHasil(1) <<< angka 1 disitu untuk menunjukkan pada program letak keyword "REG" ya??
BalasHapusmana pak code buat nyipan datanya? Koq ga ada? :D
Tepat sekali ,,,,,
BalasHapusOhhh codingnya belum ada yah ? lupa saia,,,
Tar ane create dulu yah ...
Oke deh pak, aq tunggu codingan-nya "I'm so excited" :D
BalasHapusMaaf saya baru bisa on, lumayan peperangan coding udah mulai mereda :D
BalasHapusUntuk coding agar setiap yang melakukan registrasi itu bisa tersimpan datanya ke tabel tertentu, misal : tabel registrasi yang memiliki field NPM, NamaMahasiswa, Jurusan, Telp
Maka untuk contoh coding tersebut mungkin bisa seperti dibawah ini.
Agar tidak terjadi masalah dan bentrok dengan coding yang sudah dibuat, sebaiknya tambahkan 1 timer lagi dan set intervalnya menjadi 1000.
Ini dia codingnya :
Private Sub Timer1_Timer()
Dim xPesan, xIsi() As String
Dim xTelp, xKunci As String
Dim i As Integer
Set RsInbox = New ADODB.Recordset
'Seleksi isi inbox berdasarkan TextDecoded='REG'
'Dan processed='false'
StrSQL = ""
StrSQL = "SELECT * FROM inbox WHERE LEFT(TextDecoded,3)='REG' And Processed='false' "
RsInbox.Open StrSQL, Conn, adOpenDynamic, adLockReadOnly
If Not RsInbox.EOF Then
xKunci = RsInbox.Fields("ID")
xPesan = RsInbox.Fields("TextDecoded")
xIsi = Split(xPesan, "#")
xTelp = RsInbox.Fields("SenderNumber")
'Simpan data ke tabel registrasi
For i = 1 To UBound(xIsi)
StrSQL = "INSERT INTO Registrasi (NPM, NamaMahasiswa," _
& " Semester,Telp) VALUES ('" & xIsi(1) & "'," _
& "'" & xIsi(2) & "','" & xIsi(3) & "'," _
& "'" & xTelp & "')"
Conn.Execute StrSQL
Next i
'Lakukan Replay ke Nomor Pengirim
'------------
'------------
'Ubah data record Processed
StrSQL = "UPDATE inbox SET Processed='true'" _
& "WHERE ID='" & xKunci & "'"
Conn.Execute StrSQL
Else
RsInbox.Close
Set RsInbox = Nothing
End If
End Sub
Semoga membantu ...
Maaf, silahkan di revisi coding untuk simpan ke tabel registrasi, ada double simpan setelah saya test, jadi untuk codingnya seperti ini aja :
BalasHapus'Simpan data ke tabel registrasi
'xIsi(1)=Berisi data NPM
'xIsi(2)=Berisi data Nama Mahasiswa
'xIsi(3)=Berisi Data Jurusan
StrSQL = "INSERT INTO Registrasi (NPM, NamaMahasiswa," _
& " Semester,Telp) VALUES ('" & xIsi(1) & "'," _
& "'" & xIsi(2) & "','" & xIsi(3) & "'," _
& "'" & xTelp & "')"
Conn.Execute StrSQL