Pengaturan Waktu Billing Server Sederhana
Melanjutkan tulisan aku tempo hari, walaupun agak lambat progresnya.. hehehe... tapi insya Allah pasti nih.. doain aja yach... Idenya kali ini aku mau bikin pengaturan waktu dengan cara mengambil waktu windows terkini dan kemudian timer menambahkannya setiap detik. Kalo
pewaktuan ini sudah berjalan dengan baik, maka kita bisa konversikan ke nilai uang, diskon, atau pun minimal pemakaian. Model pewaktuan yg kita gunakan adalah dalam satuan detik. So, kalo kamu mau tentuin satuannya adalah menit harus konversi lebih lanjut dimana 1 menit sama dengan 60 detik. jadi selama belum satu menit maka pulsa belum jalan atau belum bertambah. Nah, satuannya untuk konversi ke uang kita pake pulsa aja. jgn menit atau detik yach. Nanti kita atur aja 1 pulsa itu untuk member tertentu berapa menit minimalnya. maksudnya kalo dah sampe 'n' menit maka pulsa baru bertambah. Trus jgn lupa juga, 1 pulsanya ditampilkan terlebih dahulu pada detik pertama. hehehe. yach biar yg baru pake kurang dari satu pulsa tetep bayar 1
pulsa dong... hihihi...
Bahasa Vb nya sich gak sulit2 banget kayaknya. VB dah nyediain komponen dan fungsinya lengkap. Kamu gak perlu lagi pake komponen di luar VB. sip kan? Kali ini kita bikin billing server sederhana dengan 12 clients yang dapat menampilkan pulsa yang berjalan dan sekaligus bisa distop secara manual. Indikator warna yang aku pake merah brarti gak ada yg pake, trus kuning lagi dipake, trus kalo hijau udahan.
Fungsi2 yang ada sebagai berikut :
1. Mulai menghitung, dalam fungsi ini perhitungan dimulai untuk display client tertentu. So, kamu harus tentukan dulu display yang mana yang mau dimulai perhitungannya. Fungsinya adalah sebagai berikut :
Private Sub Mulai(indeKs As Integer)
On Error GoTo erh
konterNya(indeKs) = 1
faktorNya(indeKs) = 60 * MenitUlang(Index)
strDate(indeKs) = Now()
Timer1(indeKs).Enabled = True
Nonota(indeKs).Caption = indeks & Format(strDate(indeKs), "ddmmyyhhmmss")
Frame1(indeKs).BackColor = &HC000& 'IJO
Exit Sub
erh:
MsgBox err.Description
End Sub
2. Stop, berfungsi untuk menghentikan timer perhitungan. Kode vb nya adalah sebagai berikut :
Private Sub Brenti(indeKs As Integer)
On Error GoTo erh
Timer1(indeKs).Enabled = False
Frame1(indeKs).BackColor = &H80FFFF 'kuning
Exit Sub
erh:
MsgBox err.Description
End Sub
3. Timer perhitungan, berfungsi menghitung pulsa berjalan. Kode vb nya sebagai berikut :
Private Sub Timer1_Timer(Index As Integer)
On Error GoTo erh
konterNya(Index) = konterNya(Index) + 1
currDate(Index) = DateAdd("s", konterNya(Index), strDate(Index))
PulsaNya(Index) = IIf(konterNya(Index) / faktorNya(Index) - Int(konterNya(Index) / faktorNya(Index)) < caption =" strDate(Index)" caption =" currDate(Index)" caption =" ConvertSeconds(konterNya(Index))" caption = "(1 pulsa="> " & PulsaNya(Index)
lblBesarUang(Index).Caption = Format(subtotalNya(Index), "##,0")
Exit Sub
erh:
MsgBox err.Description
End Sub
4. Print Nota, berfungsi untuk mencetak nota display yang diinginkan. Kode vb nya sebagai berikut :
Sub printNota(indeksNya As Integer)
On Error GoTo erh
Printer.FontSize = 8
' Printer.PaperSize = 256
Printer.Print "Warnetxx"
Printer.Print "Tomang Tinggi xxx"
Printer.Print ""
Printer.Print "No nota : " & Nonota(indeksNya)
Printer.Print ""
Printer.Print "User : " & User(indeksNya).Caption
Printer.Print "Komputer : " & NKomp(indeksNya).Caption
Printer.Print "IP : " & IP(indeksNya).Caption
Printer.Print "Start Time : " & StartTime(indeksNya).Caption
Printer.Print "End Time : " & EndTime(indeksNya).Caption
Printer.Print "Duration : " & lblDurasiLembur(indeksNya).Caption
Printer.Print "Rate : " & RateUser(indeksNya).Caption
Printer.Print "Subtotal : " & lblBesarUang(indeksNya).Caption
Printer.Print " "
Printer.Print ":) " & LoginName
Printer.Print " "
Printer.Print " "
Printer.EndDoc
Exit Sub
erh:
MsgBox err.Description
End Sub
Kode program vb ini hanyalah dasar dari billing server sederhana, aku bikin hanya untuk memberikan gambaran bagaimana cara kerja billing server tsb. Beberapa parameter adalah perumpamaan seperti perhitungan 1 pulsa adalah setiap 15 menit dimana 1 pulsa harganya 1250 rupiah. User2 yang diwakilkan dengan no display pada program diset sebagai 'Guest'. Pada pembahasan selanjutnya di artikel mendatang aku bahas lebih dalam Billing server ini disesuaikan dengan fitur yang diinginkan pada tulisan aku sebelumnya. Perumpamaan2 diganti dengan program sesungguhnya. Sampe sini dulu yach. Nti kapan2 aku lanjutin lagi deh ngetiknya.. capek boo... Gratis gitu loh.... Aku cuma butuh komentar kamu trus jangan lupa isi pollingnya yach..
File Download :
>>Biling Server Sederhana
>>Password : sholat
Wass,
Arnie.
SITUS BUAT YANG PENGEN PUNYA PROGRAM KOMPUTER SENDIRI. DENGAN SITUS INI KAMU BISA PUNYA PENGETAHUAN LEBIH FOCUS PADA BEBERAPA PROYEK YANG SERING MUNCUL DI PASARAN.
Jumat, 21 November 2008
Rabu, 19 November 2008
Yuk Kita Bikin Billing Warnet Sendiri (2)
Fitur-fitur Aplikasi Billing Warnet
Melanjutkan pokok bahasan kita yg lalu, sebelum melangkah pembuatan program billing warnet kita harus tahu dan mengerti betul apa yg akan kita buat. Minimal fitur-fitur apa saja yang harus ada di aplikasi kita. Idenya kali ini adalah mendaftarkan fitur-fitur aplikasi billing warnet yang biasanya ada sebagai berikut:
Fitur2 ini hasil pengamatan ke warnet-warnet terhadap software2 mereka. Karena rata2 mirip2 so, aku ambil sampel aja kayak di bawah ini deh,
1. Pengelompokan pelanggan berdasar tipe keanggotan (member)
2. Diskon. Masing-masing keanggotaan dapat diperlakukan besar diskon yang berbeda-beda, misal:
- UMUM: discount 0%
- SILVER:discount 10%, minimal voucher Rp. 10000
- GOLD:disconut 15%, minimal voucher Rp. 25000
- HappyHour, dapat diatur beban potongan/discount untuk jam yang berbeda-beda, misal:
3. Tarif. Masing-masing pc.klien bisa beda-beda, misal:
5. AutoLock (optional), pc.klien otomatis terkunci ketika user logout.
6. AutoPrint (optional), otomatis cetak nota saat user logout.
7. ReLogin, apabila salah satu server/klien billing restart/reboot. Dengan tarif tetap dilanjutkan seperti sebelumnya.
8. Tidak menggunakan file sharing sama sekali. Koneksi menggunakan protokol TCP/IP dengan port yang bisa ditentukan sendiri. Dapat mengirim file antar klien dan server atau sebaliknya.
Segitu dulu deh fiturnya. Kalo kebanyakan soalnya nti gak semangat bikinnya. Udah nyerah duluan.. hehehe. Kalo kita lihat fitur di atas, ujung-ujungnya nih, duit yg keluar dihitung berdasarkan waktu (time based). Nah, kalo aku ngeliat sich secara gitu loh aku ini pelanggan warnet yang setia, ada waktu di mana operator bisa ngakalin jam windows. So, pinter2nya kita deh. kalo gak jam windowsnya di lock atau pas mulai perhitungan ngambil jam windows trus perhitungan waktunya jangan ngambil jam lagi tapi kalo bisa jam berikutnya adalah jam awal ditambah detik yang kita bikin sendiri pake object timernya vb. So, kalo pas software ngitung, trus jam windowsnya diganti si operator jadinya gak ngaruh kaleee... Nah, kalo dari sisi pelanggan nih... biasanya suka ngakalin ngerestart/reboot komputer secara paksa dengan cara mencet tombol power di komputernya. Mereka berharap billing akan relogin dengan perhitungan yg ngaco, atau perhitungan sebelumnya hilang. Atau mereka berharap koneksi billing ke klien terputus so kalo mereka udahan tapi billing masih jalan di server maka mereka bisa komplain gak mau bayar. Yach pokoknya banyak cara deh.. Ribet kan...
Segini dulu yach... Insya Allah pada topik pembahasan selanjutnya kita langsung membahas pake vb. Biar ada yang bisa didownload dan di coba di rumah.. hehehe..
Wass,
Arnie
Melanjutkan pokok bahasan kita yg lalu, sebelum melangkah pembuatan program billing warnet kita harus tahu dan mengerti betul apa yg akan kita buat. Minimal fitur-fitur apa saja yang harus ada di aplikasi kita. Idenya kali ini adalah mendaftarkan fitur-fitur aplikasi billing warnet yang biasanya ada sebagai berikut:
Fitur2 ini hasil pengamatan ke warnet-warnet terhadap software2 mereka. Karena rata2 mirip2 so, aku ambil sampel aja kayak di bawah ini deh,
1. Pengelompokan pelanggan berdasar tipe keanggotan (member)
2. Diskon. Masing-masing keanggotaan dapat diperlakukan besar diskon yang berbeda-beda, misal:
- UMUM: discount 0%
- SILVER:discount 10%, minimal voucher Rp. 10000
- GOLD:disconut 15%, minimal voucher Rp. 25000
- HappyHour, dapat diatur beban potongan/discount untuk jam yang berbeda-beda, misal:
- 00.00-06.00: discount 25%
- 06.00-08.00: discount 10%
- 08.00-20.00: discount 0%
- 20.00-24.00: discount 25%
3. Tarif. Masing-masing pc.klien bisa beda-beda, misal:
- VIP.01: Rp. 100/menit, minimal pakai 10 menit
- KOM.01: Rp. 60/menit, minimal pakai 30 menit
5. AutoLock (optional), pc.klien otomatis terkunci ketika user logout.
6. AutoPrint (optional), otomatis cetak nota saat user logout.
7. ReLogin, apabila salah satu server/klien billing restart/reboot. Dengan tarif tetap dilanjutkan seperti sebelumnya.
8. Tidak menggunakan file sharing sama sekali. Koneksi menggunakan protokol TCP/IP dengan port yang bisa ditentukan sendiri. Dapat mengirim file antar klien dan server atau sebaliknya.
Segitu dulu deh fiturnya. Kalo kebanyakan soalnya nti gak semangat bikinnya. Udah nyerah duluan.. hehehe. Kalo kita lihat fitur di atas, ujung-ujungnya nih, duit yg keluar dihitung berdasarkan waktu (time based). Nah, kalo aku ngeliat sich secara gitu loh aku ini pelanggan warnet yang setia, ada waktu di mana operator bisa ngakalin jam windows. So, pinter2nya kita deh. kalo gak jam windowsnya di lock atau pas mulai perhitungan ngambil jam windows trus perhitungan waktunya jangan ngambil jam lagi tapi kalo bisa jam berikutnya adalah jam awal ditambah detik yang kita bikin sendiri pake object timernya vb. So, kalo pas software ngitung, trus jam windowsnya diganti si operator jadinya gak ngaruh kaleee... Nah, kalo dari sisi pelanggan nih... biasanya suka ngakalin ngerestart/reboot komputer secara paksa dengan cara mencet tombol power di komputernya. Mereka berharap billing akan relogin dengan perhitungan yg ngaco, atau perhitungan sebelumnya hilang. Atau mereka berharap koneksi billing ke klien terputus so kalo mereka udahan tapi billing masih jalan di server maka mereka bisa komplain gak mau bayar. Yach pokoknya banyak cara deh.. Ribet kan...
Segini dulu yach... Insya Allah pada topik pembahasan selanjutnya kita langsung membahas pake vb. Biar ada yang bisa didownload dan di coba di rumah.. hehehe..
Wass,
Arnie
Jumat, 14 November 2008
OKE GAK SICH PUNYA SMS SERVER (5)
Pada pokok bahasan kali ini aku mau tulis tentang program VB buat bantu kamu komunikasi dengan device kamu (HP/modem GSM). Ini hanya Hyperterminal kecil buat debugging program kamu. Di dalamnya gak ada tuh library kirim sms gimana atau baca sms. Tools ini sifatnya umum dan terbuka. So, kamu bisa ketik AT Command sesuka kamu dan kamu bisa lihat langsung respons dari device di layar. yach... mirip2 hyperterminal deh.
Komponen yang aku pergunakan masih sama dengan penjelasan artikel aku sebelumnya. Aku masih pake MsComm kok! Aku masih suka memanfaatkan event MsComm_onComm untuk memunculkan respons dari device. Kali ini respons tersebut aku tempatkan di Textbox dan aku tampilkan apa adanya tanpa di olah terlebih dahulu. Aku tidak melakukan pengolahan regex atau concatenation... ciee... bule banget sich istilahnya... so, untuk pengolahan lebih lanjut sebaiknya kamu bikin program kamu sendiri yach..
Cara Pake Programnya,
1. klik menu "CommPort", udah itu klik "properties". Jendela baru yg muncul adalah Properties untuk device kamu. Kamu tentukan deh device kamu itu nempel di Com brapa, Trus Speednya, databit, parity, dan stopbit. Kalo dah kelar klik "OK".
2. Nah, di bagian ini kamu tinggal pake Hyperterminal kecil ini. Tapi sebelumnya koneksinya di sambung dulu. Caranya klik "CommPort" trus lanjutin klik "Port Open". Maka nyambung atau tidaknya ketauan dari status di bawah atau image bulat di sudut kanan atas. Kalo nyambung warnanya Hijau tapi kalau putus warnanya merah. Cara lain untuk konek dan putus yaitu langsung klik image bulatnya. Gitu deh... Inget yach konek gaknya ditentukan properties yang kamu masukin sebelumnya.
3. Kalo dah konek, kamu tinggal ketik AT commandnya seperti di hyperterminal. Dari sini cara kerjanya sama dengan hyperterminal.
Kamu coba-coba deh. Dari sini smoga ada gambaran gimana caranya bikin sendiri program SMS Server kamu. Smoga berhasil yach... Insya Allah aku akan tulis lagi untuk pembahasan lanjut. Tapi aku blom tahu dan blom mood sampe sekarang nih. hehehe...
Download File :
>>Download Hyperterminal Aku di sini nih
>>Password : sholat
Wass.
Arnie
Komponen yang aku pergunakan masih sama dengan penjelasan artikel aku sebelumnya. Aku masih pake MsComm kok! Aku masih suka memanfaatkan event MsComm_onComm untuk memunculkan respons dari device. Kali ini respons tersebut aku tempatkan di Textbox dan aku tampilkan apa adanya tanpa di olah terlebih dahulu. Aku tidak melakukan pengolahan regex atau concatenation... ciee... bule banget sich istilahnya... so, untuk pengolahan lebih lanjut sebaiknya kamu bikin program kamu sendiri yach..
Cara Pake Programnya,
1. klik menu "CommPort", udah itu klik "properties". Jendela baru yg muncul adalah Properties untuk device kamu. Kamu tentukan deh device kamu itu nempel di Com brapa, Trus Speednya, databit, parity, dan stopbit. Kalo dah kelar klik "OK".
2. Nah, di bagian ini kamu tinggal pake Hyperterminal kecil ini. Tapi sebelumnya koneksinya di sambung dulu. Caranya klik "CommPort" trus lanjutin klik "Port Open". Maka nyambung atau tidaknya ketauan dari status di bawah atau image bulat di sudut kanan atas. Kalo nyambung warnanya Hijau tapi kalau putus warnanya merah. Cara lain untuk konek dan putus yaitu langsung klik image bulatnya. Gitu deh... Inget yach konek gaknya ditentukan properties yang kamu masukin sebelumnya.
3. Kalo dah konek, kamu tinggal ketik AT commandnya seperti di hyperterminal. Dari sini cara kerjanya sama dengan hyperterminal.
Kamu coba-coba deh. Dari sini smoga ada gambaran gimana caranya bikin sendiri program SMS Server kamu. Smoga berhasil yach... Insya Allah aku akan tulis lagi untuk pembahasan lanjut. Tapi aku blom tahu dan blom mood sampe sekarang nih. hehehe...
Download File :
>>Download Hyperterminal Aku di sini nih
>>Password : sholat
Wass.
Arnie
Rabu, 12 November 2008
OKE GAK SICH PUNYA SMS SERVER (4)
Utak-Atik SMS Mode Teks Dengan Visual Basic
Pada bahasan yang lalu kita dah maen-maen dan berkenalan erat sama hyperterminal. Idenya kali ini adalah mungkin gak sich kalo kita ganti hyperterminal dengan program kita sendiri. Jadi kita gak perlu lagi deh ketik sintaks yang ngejelimet, berulang-ulang and nyusahin bikin pusing kepala di hyperterminal. So pasti pake Visual Basic dong... Aku coba untuk membedah sintaks yang penting2 aja yach. Kalo masalah parsing dkk kamu pasti bisa deh sendiri. Banyak loh literaturnya. Yang penting kan bisa nyambung antara vb dan device kamu, trus bisa baca sms, kirim sms and jangan lupa bisa juga hapus sms. Kalo kita persempit lagi, secara teknis yang kita butuhin kan cuma gimana cara koneksinya, trus cara kirim perintah ke device dan terakhir gimana cara nangkep respons yang dikirim device. tul gak? Nah masalah pemrograman database untuk menyimpan data sms dari device atau data sms ke device kamu pikirin sendiri yach. Kalo sempet di bahasan selanjutnya aku kupas juga deh. hehehe.
Visual Basic punya komponen yang kerjanya mirip hyperterminal. Namanya MsComm. Nah, gak perlu repot kan?
Kali ini kita pake MsComm untuk utak-atik smsnya. So, jgn lupa di project VB kamu masukin dulu yach komponen MsCommnya. dah itu baru deh kita bisa mulai coding.
Koneksi ke Device
Kamu harus tentuin dulu port dan baud rate, parity, dan kon?gurasi lain yang digunakan oleh device kamu.
Di dalam bahasa Visual Basic, kurang lebih kode programnya akan seperti di bawah ini:
MSComm1.CommPort = 3
MSComm1.Settings = “115200,N,8,1”
MSComm1.PortOpen = True
Artinya,
- Baris 1: "3" itu maksudnya kamu melakukan hubungan ke device yang ada di Com3. Nah karenanya kita harus tahu HP/modem GSm kamu itu nempelnya di mana? eh gak ding. Nempelnya terserah, mo di slot USB kek atau di Slot serial yang penting windows ngebacanya sebagai Com brapa? Cek aja di Phone/Modem Setting di Control Panel.
- Baris 2: “115200,N,8,1” maksudnya device kamu disuruh bekerja dengan baud rate 115200, parity = N, databit = 8, dan stop bit =1. Parameter2 ini kamu bisa contek di Phone/Modem Setting di Control Panel. Itu kalo kalo device kamu dah kebaca sama windows. hehehe.
- Baris 3: "True" itu maksudnya koneksi dibuka. Berhasil atau tidaknya kita lihat dari respons "OK" atau "ERROR" seperti di hyperterminal. Kalo pake MsComm cara nangkepnya pake property Input. Property Output digunakan untuk memberikan command/perintah kepada device, sedangkan property Input menghasilkan data dari buffer penerima.
Mengirim AT Command ke Device
Tes Koneksi:
MSComm.Output = “AT” & Chr$(13)
Chr$(13) adalah Enter.
Masuk Mode Teks:
MSComm..Output = “AT+CMGF=1” & Chr$(13)
Kirim SMS:
MSComm.Output = “AT+CMGS=”6281316932077" & Chr$(13)
MSComm.Output = "Hello, welcome to our SMS tutorial" & Chr$(26)
"Chr$(26)" adalah Karakter "Ctrl+Z"
Terima SMS:
Untuk menerima SMS sama artinya dengan kita menangkap semua data yang masuk ke MsComm baik itu Telepon masuk, isi SMS, maupun respons "OK" dan "ERROR". Alhamdulillah MsComm memiliki event OnComm. Event ini mencatat semua data yang masuk ke MsComm. Nah pinter2nya kamu deh untuk parsing / memilah dan menyusun semua data yang masuk. Nah, untuk sms masuk:
MSComm.Output = “AT+CMGL=”ALL" & Chr$(13)
lalu ambil datanya di event OnComm seperti di bawah ini.
Private Sub MSComm_OnComm()
Dim stComChar As String * 1
Do
Loop Until MSComm.InBufferCount > 0
Do While MSComm.InBufferCount > 0
stComChar = MSComm.Input
tempBuffer = tempBuffer + stComChar
Loop
Debug.Print tempBuffer
End Sub
Kalo gak ada masalah, maka setiap kali SMS masuk (ataupun terjadi event lainnya seperti telpon masuk), maka event ini akan dijalankan dan program akan menuliskan isi dari data yang diterima. Sampe sini dulu yach. Ntar lanjut lagi pada pokok pembahasan yang lebih kompleks. Insya Allah...
Pada bahasan yang lalu kita dah maen-maen dan berkenalan erat sama hyperterminal. Idenya kali ini adalah mungkin gak sich kalo kita ganti hyperterminal dengan program kita sendiri. Jadi kita gak perlu lagi deh ketik sintaks yang ngejelimet, berulang-ulang and nyusahin bikin pusing kepala di hyperterminal. So pasti pake Visual Basic dong... Aku coba untuk membedah sintaks yang penting2 aja yach. Kalo masalah parsing dkk kamu pasti bisa deh sendiri. Banyak loh literaturnya. Yang penting kan bisa nyambung antara vb dan device kamu, trus bisa baca sms, kirim sms and jangan lupa bisa juga hapus sms. Kalo kita persempit lagi, secara teknis yang kita butuhin kan cuma gimana cara koneksinya, trus cara kirim perintah ke device dan terakhir gimana cara nangkep respons yang dikirim device. tul gak? Nah masalah pemrograman database untuk menyimpan data sms dari device atau data sms ke device kamu pikirin sendiri yach. Kalo sempet di bahasan selanjutnya aku kupas juga deh. hehehe.
Visual Basic punya komponen yang kerjanya mirip hyperterminal. Namanya MsComm. Nah, gak perlu repot kan?
Kali ini kita pake MsComm untuk utak-atik smsnya. So, jgn lupa di project VB kamu masukin dulu yach komponen MsCommnya. dah itu baru deh kita bisa mulai coding.
Koneksi ke Device
Kamu harus tentuin dulu port dan baud rate, parity, dan kon?gurasi lain yang digunakan oleh device kamu.
Di dalam bahasa Visual Basic, kurang lebih kode programnya akan seperti di bawah ini:
MSComm1.CommPort = 3
MSComm1.Settings = “115200,N,8,1”
MSComm1.PortOpen = True
Artinya,
- Baris 1: "3" itu maksudnya kamu melakukan hubungan ke device yang ada di Com3. Nah karenanya kita harus tahu HP/modem GSm kamu itu nempelnya di mana? eh gak ding. Nempelnya terserah, mo di slot USB kek atau di Slot serial yang penting windows ngebacanya sebagai Com brapa? Cek aja di Phone/Modem Setting di Control Panel.
- Baris 2: “115200,N,8,1” maksudnya device kamu disuruh bekerja dengan baud rate 115200, parity = N, databit = 8, dan stop bit =1. Parameter2 ini kamu bisa contek di Phone/Modem Setting di Control Panel. Itu kalo kalo device kamu dah kebaca sama windows. hehehe.
- Baris 3: "True" itu maksudnya koneksi dibuka. Berhasil atau tidaknya kita lihat dari respons "OK" atau "ERROR" seperti di hyperterminal. Kalo pake MsComm cara nangkepnya pake property Input. Property Output digunakan untuk memberikan command/perintah kepada device, sedangkan property Input menghasilkan data dari buffer penerima.
Mengirim AT Command ke Device
Tes Koneksi:
MSComm.Output = “AT” & Chr$(13)
Chr$(13) adalah Enter.
Masuk Mode Teks:
MSComm..Output = “AT+CMGF=1” & Chr$(13)
Kirim SMS:
MSComm.Output = “AT+CMGS=”6281316932077" & Chr$(13)
MSComm.Output = "Hello, welcome to our SMS tutorial" & Chr$(26)
"Chr$(26)" adalah Karakter "Ctrl+Z"
Terima SMS:
Untuk menerima SMS sama artinya dengan kita menangkap semua data yang masuk ke MsComm baik itu Telepon masuk, isi SMS, maupun respons "OK" dan "ERROR". Alhamdulillah MsComm memiliki event OnComm. Event ini mencatat semua data yang masuk ke MsComm. Nah pinter2nya kamu deh untuk parsing / memilah dan menyusun semua data yang masuk. Nah, untuk sms masuk:
MSComm.Output = “AT+CMGL=”ALL" & Chr$(13)
lalu ambil datanya di event OnComm seperti di bawah ini.
Private Sub MSComm_OnComm()
Dim stComChar As String * 1
Do
Loop Until MSComm.InBufferCount > 0
Do While MSComm.InBufferCount > 0
stComChar = MSComm.Input
tempBuffer = tempBuffer + stComChar
Loop
Debug.Print tempBuffer
End Sub
Kalo gak ada masalah, maka setiap kali SMS masuk (ataupun terjadi event lainnya seperti telpon masuk), maka event ini akan dijalankan dan program akan menuliskan isi dari data yang diterima. Sampe sini dulu yach. Ntar lanjut lagi pada pokok pembahasan yang lebih kompleks. Insya Allah...
OKE GAK SICH PUNYA SMS SERVER (3)
Utak-Atik SMS Mode Teks Dengan Hyperterminal
Pada bahasan terdahulu aku udah jelasin sekilas cara make hyperterminal untuk berkomunikasi dengan HP/modem kamu. Nah, topik kali ini aku pengen banget ngebantu temen-temen yang pengen koding VB tapi gak punya HP/Modem. Kayaknya gak masuk akal yach? tapi bisa kok. Idenya sich sederhana aja, aku kasihan banget sama temen aku yg lg bikin program SMS Server. Tahu gak, masak dia bela2in beli modem GSM hanya untuk coba2 bikin SMS Server. Yach minimal pinjem dulu kek ama yg udah punya HP/modem GSM. Kan mahal tahu gak! Kalo beli HP Nokia 5110 yg second aja sampe 200 ribu plus kabel bisa sampe 300 ribu tuh. Bagi sebagian orang sich duit segitu gak seberapa. tapi kan gak semua orang punya duit segitu. So, aku kasih contoh-contoh keluaran (output) yang di respon HP/Modem GSM atas input yang dikirim ke device tersebut. Yach, gak banyak sich.. Aku Pilihin yang penting2 aja menurut aku. Nah dari sini kamu bisa coba-coba program kamu secara offline. Yach, minimal pas dipake dengan device sesungguhnya kekurangan program kamu (Bug) gak banyak-banyak banget. Maaf ya, kali ini aku hanya ngebahas SMS dalam mode teks aja. Yang PDU ntar lain kali kalo ada waktu lagi. OK?
Hal-hal yang perlu kamu perhatiin sebelum memulai ngobrol dengan device kamu,
1. Pastiin SIM Card kamu tuh gak pake PIN. Kalo emang dah terlanjur pake PIN dan kepengen tetep pake PIN brarti kamu harus kirim perintah ke device kalo kamu dah masukin PIN yang valid. Perintahnya kira-kira gini nih :
AT+CPIN="PIN", isi PIN dengan PIN SIM Card kamu, ok?
2. Trus kamu harus tentuin Kamu baca SMS nya itu yang di HP/Modem atau yang di kartunya (SIM Card). Sintaksnya gini nih :
AT+CPMS="ME","SM","MT"
Maksudnya,
- ME: Tempat nyimpen SMS nya di Device
- SM: Tempat nyimpen SMS nya di SIM Card
- MT: Semua tempat nyimpen yg ada, baik di device maupun di kartu.
Tulisnya boleh salah satu atau semuanya... suka2 aja deh... Sesuain aja ama penjelasan di atas dan situasi kamu.
3. Pastiin juga kalo si kartu kamu tuh nomor SMS Centernya dah diset. Kalo belom, yaa kamu set dulu. Manual aja pake HP kamu. tahu kan tempatnya? itu lho di message setting... Nah kalo kamu mau set pake sintaks,
AT+CSCA="+85290000000",145
OK
Artinya,
- "+85290000000": Nomor di atas tuh no SMS Center. Contoh doang...
- 145: kode ini cuma format penulisan doang. Kalo kamu pake 145 brarti penulisannya pake tanda "+". Kalo di negara kita sich modelnya kayak "+6281300000" gitu deh... aku lupa SMS Center di Indonesia... hehehe. Nah kalo kamu gak mau pake tanda "+" alias botak cuma angka doang, so pasti kamu harus kasih angka 129. Atau biarin aja kosong kayak gini nih "AT+CSCA="+85290000000"".
4. Terakhir nih, kalo mau kirim perintah ke HP/modem, mbok ya di tes dulu koneksinya nyambung gak? So, always slalu kamu tes. kasih aja sintaks "AT". Trus responsnya harus "OK". Kalo "ERROR" brarti koneksi kamu benerin dulu dong... Untuk nyambungin Hyperterminal ke Device kamu dah aku bahas di tulisan sebelumnya. Baca yach. Yang Penting device kamu kebaca sama windows sebagai "Com1" atau "Com2" yg penting "Com" deh. Trus Settingnya jgn lupa juga. Kalo dah kebaca windows sich kamu gak perlu tentuin lagi karena otomatis. Tapi kalo untuk coding dengan visual basic kamu masih harus tentuin Baudrate, parity, Databit, sama Stop bitnya. Kalo dah smua tinggal "Open" atau "Connect".
Membaca SMS dari HP/Modem GSM
Untuk membaca SMS dari device coba kamu ketik di hyperterminal kayak gini nih :
AT
OK
AT+CMGF=1
OK
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+85291234567",,"06/11/11,00:30:29+32"
Hello, welcome to our SMS tutorial.
+CMGL: 2,"REC READ","+85291234567",,"06/11/11,00:32:20+32"
A simple demo of SMS text messaging.
OK
Aku jelasin dulu yach baris per baris sintaks di atas,
- Baris 1: "AT" dikirim ke device untuk tes koneksi. Kalo jawaban pada baris 2 adalah "OK" artinya koneksi komputer ke device kamu tuh dah bener.
- Baris 3: "AT+CMGF=1" digunakan untuk memerintahkan device agar bekerja pada SMS Mode Teks. Kalo respon dari device pada baris 4 adalah "OK" brarti device siap bekerja pada SMS Mode teks. Tapi kalo hasilnya "ERROR" brarti device kamu gak support untuk SMS mode teks.
- Baris 5-9: "AT+CMGL="ALL"" dipake untuk mengeluarkan semua daftar SMS yang ada di device kamu. Nah kalo kamu liat jelas banget kan SMS nya itu ada dua. Ada nomor indeksnya juga yaitu "1" dan "2". yang pertama "Hello, welcome to our SMS tutorial." trus yang kedua "A simple demo of SMS text messaging.". "+85291234567" adalah nomor pengirimnya. trus "06/11/11,00:30:29+32" sama "06/11/11,00:32:20+32" itu waktu SMS itu diterima SMS Center. Angkanya agak aneh ya? "+32" itu maksudnya zona waktu SMSC. Zona waktunya itu GMT+8. Inget yach, pokoknya Zona waktunya 1/4 (seperempat) dari angka yang tertera. Nah kalo "REC READ" itu maksudnya SMS itu dah pernah dibaca. Bukan SMS baru.
- Baris 11: "OK" itu maksudnya perintah "AT+CMGL="ALL"" telah berhasil dieksekusi. Kamu harus perhatiin bener2 nih untuk setiap respon "OK" artinya sintaks berhasil. Kalo gagal "ERROR".
Mengirim SMS Ke HP/Modem GSM
Sintaks yang kamu ketik di hyperterminal kayak gini nih,
AT+CMGS="+85291234567",145
> It is easy to send text messages.
+CMGS: 12
OK
Penjelasannya,
- Baris 1: "+85291234567" adalah nomor tujuan, inget karena pake tanda "+" makanya ditambahin embel2 "145". Udah itu jgn lupa juga tekan enter supaya muncul prompt seperti pada baris 2. Itu artinya kamu siap ketik isi SMS kamu. Contohnya di sini "It is easy to send text messages.".
- Baris 2: Di sini ini isi SMS yg harus kamu ketik. Jangan lupa kalo dah kelar pencet Ctrl+z.
- Baris 3-5: "12" itu no referensi yg dikasih device kamu ke SMS yg kamu kirim. Trus di baris 5, "OK" itu brarti pesen kamu dah terkirim dari device. Kalo "ERROR" brarti gagal.
Menghapus SMS dari Storage HP/Device
Ini penting2 gak penting sich. Tapi kadang perlu juga dipikirin biar kepala kita botak kayak professor. hehehe. Device kamu kan akan penuh kalo terus-terusan nerima SMS. Trus kalo dah full gak bisa lagi deh terima SMS. Alias Pendiiiiiiing. Alias SMS Orang kagak sampe-sampe. So, kamu harus rajin ngapus tuh SMS yang pernah diterima. Kalo gak pernah ya gak usah. Soalnya itu brarti SMS di hP orang lain. Bukan HP kamu. hehehe. Kerajinan kaleee ngapus SMS di HP orang laen.. hihihi. Sintaks di Hyperterminal,
AT+CMGD=1
OK
Penjelasan,
- Baris 1: "AT+CMGD" itu perintah yang dikirim ke device untuk menghapus SMS. Sedangkan "1" maksudnya nomor indeks sms yang dihapus adalah indeks 1. Kalo mo ngapus banyak indeks boleh kok dalam satu perintah misalnya indeks 1,2,3,4,7,9. brarti perintahnya "AT+CMGD=1,2,3,4,7,9". Nomor indeks ini didapet waktu kamu kirim perintah untuk baca SMS pake sintaks "AT+CMGL".
- Baris 2: "OK" itu respons dari device kalo perintah tadi berhasil. Kalo gagal "ERROR".
Sekian Dulu yach.. Ntar aku lanjutin lagi gimana Kalo otomatis gak perlu ketik di hyperterminal alias pake Visual Basic. Aku ngantuk BGT. Jgn lupa kasih komentar biar aku tahu artikel ini penting gak sich buat kamu-kamu.
Pada bahasan terdahulu aku udah jelasin sekilas cara make hyperterminal untuk berkomunikasi dengan HP/modem kamu. Nah, topik kali ini aku pengen banget ngebantu temen-temen yang pengen koding VB tapi gak punya HP/Modem. Kayaknya gak masuk akal yach? tapi bisa kok. Idenya sich sederhana aja, aku kasihan banget sama temen aku yg lg bikin program SMS Server. Tahu gak, masak dia bela2in beli modem GSM hanya untuk coba2 bikin SMS Server. Yach minimal pinjem dulu kek ama yg udah punya HP/modem GSM. Kan mahal tahu gak! Kalo beli HP Nokia 5110 yg second aja sampe 200 ribu plus kabel bisa sampe 300 ribu tuh. Bagi sebagian orang sich duit segitu gak seberapa. tapi kan gak semua orang punya duit segitu. So, aku kasih contoh-contoh keluaran (output) yang di respon HP/Modem GSM atas input yang dikirim ke device tersebut. Yach, gak banyak sich.. Aku Pilihin yang penting2 aja menurut aku. Nah dari sini kamu bisa coba-coba program kamu secara offline. Yach, minimal pas dipake dengan device sesungguhnya kekurangan program kamu (Bug) gak banyak-banyak banget. Maaf ya, kali ini aku hanya ngebahas SMS dalam mode teks aja. Yang PDU ntar lain kali kalo ada waktu lagi. OK?
Hal-hal yang perlu kamu perhatiin sebelum memulai ngobrol dengan device kamu,
1. Pastiin SIM Card kamu tuh gak pake PIN. Kalo emang dah terlanjur pake PIN dan kepengen tetep pake PIN brarti kamu harus kirim perintah ke device kalo kamu dah masukin PIN yang valid. Perintahnya kira-kira gini nih :
AT+CPIN="PIN", isi PIN dengan PIN SIM Card kamu, ok?
2. Trus kamu harus tentuin Kamu baca SMS nya itu yang di HP/Modem atau yang di kartunya (SIM Card). Sintaksnya gini nih :
AT+CPMS="ME","SM","MT"
Maksudnya,
- ME: Tempat nyimpen SMS nya di Device
- SM: Tempat nyimpen SMS nya di SIM Card
- MT: Semua tempat nyimpen yg ada, baik di device maupun di kartu.
Tulisnya boleh salah satu atau semuanya... suka2 aja deh... Sesuain aja ama penjelasan di atas dan situasi kamu.
3. Pastiin juga kalo si kartu kamu tuh nomor SMS Centernya dah diset. Kalo belom, yaa kamu set dulu. Manual aja pake HP kamu. tahu kan tempatnya? itu lho di message setting... Nah kalo kamu mau set pake sintaks,
AT+CSCA="+85290000000",145
OK
Artinya,
- "+85290000000": Nomor di atas tuh no SMS Center. Contoh doang...
- 145: kode ini cuma format penulisan doang. Kalo kamu pake 145 brarti penulisannya pake tanda "+". Kalo di negara kita sich modelnya kayak "+6281300000" gitu deh... aku lupa SMS Center di Indonesia... hehehe. Nah kalo kamu gak mau pake tanda "+" alias botak cuma angka doang, so pasti kamu harus kasih angka 129. Atau biarin aja kosong kayak gini nih "AT+CSCA="+85290000000"".
4. Terakhir nih, kalo mau kirim perintah ke HP/modem, mbok ya di tes dulu koneksinya nyambung gak? So, always slalu kamu tes. kasih aja sintaks "AT". Trus responsnya harus "OK". Kalo "ERROR" brarti koneksi kamu benerin dulu dong... Untuk nyambungin Hyperterminal ke Device kamu dah aku bahas di tulisan sebelumnya. Baca yach. Yang Penting device kamu kebaca sama windows sebagai "Com1" atau "Com2" yg penting "Com" deh. Trus Settingnya jgn lupa juga. Kalo dah kebaca windows sich kamu gak perlu tentuin lagi karena otomatis. Tapi kalo untuk coding dengan visual basic kamu masih harus tentuin Baudrate, parity, Databit, sama Stop bitnya. Kalo dah smua tinggal "Open" atau "Connect".
Membaca SMS dari HP/Modem GSM
Untuk membaca SMS dari device coba kamu ketik di hyperterminal kayak gini nih :
AT
OK
AT+CMGF=1
OK
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+85291234567",,"06/11/11,00:30:29+32"
Hello, welcome to our SMS tutorial.
+CMGL: 2,"REC READ","+85291234567",,"06/11/11,00:32:20+32"
A simple demo of SMS text messaging.
OK
Aku jelasin dulu yach baris per baris sintaks di atas,
- Baris 1: "AT" dikirim ke device untuk tes koneksi. Kalo jawaban pada baris 2 adalah "OK" artinya koneksi komputer ke device kamu tuh dah bener.
- Baris 3: "AT+CMGF=1" digunakan untuk memerintahkan device agar bekerja pada SMS Mode Teks. Kalo respon dari device pada baris 4 adalah "OK" brarti device siap bekerja pada SMS Mode teks. Tapi kalo hasilnya "ERROR" brarti device kamu gak support untuk SMS mode teks.
- Baris 5-9: "AT+CMGL="ALL"" dipake untuk mengeluarkan semua daftar SMS yang ada di device kamu. Nah kalo kamu liat jelas banget kan SMS nya itu ada dua. Ada nomor indeksnya juga yaitu "1" dan "2". yang pertama "Hello, welcome to our SMS tutorial." trus yang kedua "A simple demo of SMS text messaging.". "+85291234567" adalah nomor pengirimnya. trus "06/11/11,00:30:29+32" sama "06/11/11,00:32:20+32" itu waktu SMS itu diterima SMS Center. Angkanya agak aneh ya? "+32" itu maksudnya zona waktu SMSC. Zona waktunya itu GMT+8. Inget yach, pokoknya Zona waktunya 1/4 (seperempat) dari angka yang tertera. Nah kalo "REC READ" itu maksudnya SMS itu dah pernah dibaca. Bukan SMS baru.
- Baris 11: "OK" itu maksudnya perintah "AT+CMGL="ALL"" telah berhasil dieksekusi. Kamu harus perhatiin bener2 nih untuk setiap respon "OK" artinya sintaks berhasil. Kalo gagal "ERROR".
Mengirim SMS Ke HP/Modem GSM
Sintaks yang kamu ketik di hyperterminal kayak gini nih,
AT+CMGS="+85291234567",145
> It is easy to send text messages.
+CMGS: 12
OK
Penjelasannya,
- Baris 1: "+85291234567" adalah nomor tujuan, inget karena pake tanda "+" makanya ditambahin embel2 "145". Udah itu jgn lupa juga tekan enter supaya muncul prompt seperti pada baris 2. Itu artinya kamu siap ketik isi SMS kamu. Contohnya di sini "It is easy to send text messages.".
- Baris 2: Di sini ini isi SMS yg harus kamu ketik. Jangan lupa kalo dah kelar pencet Ctrl+z.
- Baris 3-5: "12" itu no referensi yg dikasih device kamu ke SMS yg kamu kirim. Trus di baris 5, "OK" itu brarti pesen kamu dah terkirim dari device. Kalo "ERROR" brarti gagal.
Menghapus SMS dari Storage HP/Device
Ini penting2 gak penting sich. Tapi kadang perlu juga dipikirin biar kepala kita botak kayak professor. hehehe. Device kamu kan akan penuh kalo terus-terusan nerima SMS. Trus kalo dah full gak bisa lagi deh terima SMS. Alias Pendiiiiiiing. Alias SMS Orang kagak sampe-sampe. So, kamu harus rajin ngapus tuh SMS yang pernah diterima. Kalo gak pernah ya gak usah. Soalnya itu brarti SMS di hP orang lain. Bukan HP kamu. hehehe. Kerajinan kaleee ngapus SMS di HP orang laen.. hihihi. Sintaks di Hyperterminal,
AT+CMGD=1
OK
Penjelasan,
- Baris 1: "AT+CMGD" itu perintah yang dikirim ke device untuk menghapus SMS. Sedangkan "1" maksudnya nomor indeks sms yang dihapus adalah indeks 1. Kalo mo ngapus banyak indeks boleh kok dalam satu perintah misalnya indeks 1,2,3,4,7,9. brarti perintahnya "AT+CMGD=1,2,3,4,7,9". Nomor indeks ini didapet waktu kamu kirim perintah untuk baca SMS pake sintaks "AT+CMGL".
- Baris 2: "OK" itu respons dari device kalo perintah tadi berhasil. Kalo gagal "ERROR".
Sekian Dulu yach.. Ntar aku lanjutin lagi gimana Kalo otomatis gak perlu ketik di hyperterminal alias pake Visual Basic. Aku ngantuk BGT. Jgn lupa kasih komentar biar aku tahu artikel ini penting gak sich buat kamu-kamu.
Senin, 10 November 2008
OKE GAK SICH PUNYA SMS SERVER (2)
Memahami Format data SMS
Format data SMS yang dikirim ke Operator atau sebaliknya yang kita terima dari Operator adalah dalam bentuk PDU (Protokol Data Unit). Operator di sini maksudnya Telkomsel, Indosat, Telkom, dkk. PDU Ini isinya adalah bilangan Heksadesimal. Tau kan? itu tuh bilangan yg pas SD dulu kita namain jam 16-an. Maksudnya bilangannya cuma sampe angka 15 trus nol lagi deh. Nah Penulisannya tuh terdiri dari 0, 1, 2 , 3, 4, 5 , 6 ,7 ,8 ,9 ,A ,B ,C ,D ,E ,F. Kok gak ada angka 10, 11, 13, 14, 15? kan bilangan 10 dah di pake angka satunya di awal setelah 0 begitu juga 0 dah dipake kan di awal deretan bilangan 16. so gak boleh dipake lagi... Gitu deh... Contohnya gini deh supaya ngerti dikit apa sich heksadesimal itu... Soalnya nanti kita harus terbiasa dengan bilangan ini untuk pembahasan selanjutnya. Kalo angka desimal 1000, maka bilangan heksadesimalnya tuh 3E8. Cara kutak-katiknya begini :
1000 dibagi 16 = 62 sisanya 8. trus lanjutin,
62 dibagi 16 = 3 sisanya 14,
3 dibagi 16 = 0 sisanya 3.
nah kan kita dapet konversinya jadi 3 14 8. Jangan lupa bilangan 16 tuh gak ada angka 10, 11, 12, 13, 14, 15. so, Kita ganti jadi 3E8. Gampang kan....
Format SMS yang kita buat pake program sebelum kirim ke device HP/modem sebenarnya bisa kita set ke mode teks gak perlu PDU. kalo berhasil maka device yang akan bantu kita untuk konversi secara otomatis SMS format PDU dari dan ke Operator. Kita tinggal kirim / terima SMS dari operator dalam bentuk teks. so, gak perlu repot deh bikin prosedur konversi PDU. Tetapi masalahnya adalah gak semua device HP/modem itu support mode teks. Nyebelin kan? Tapi jgn khawatir dan jgn bingung. Daripada cari2 device yg support mode teks atau nggak lebih baik kita pelajarin aja mode PDU. Soalnya semua device tuh pasti support mode ini. hehehe, soalnya emang format aslinya boooo...
Format PDU untuk kirim SMS dan Terima SMS itu beda bgt. Untuk Kirim SMS PDUnya terdiri dari 8 header sebagai berikut :
Format PDU Untuk SMS Kirim
1. Nomor SMS-Center (Operator)
2. Tipe SMS
3. Nomor Referensi SMS
4. Nomor HP Penerima
5. Bentuk SMS
6. Skema Encoding Data I/O
7. Jangka Waktu SMS sebelum expire
8. Isi SMSnya dong....
Trus ke delapan header tersebut digabung jadi satu.. Nah kalo berhasil berarti SMS siap dikirim deh ke Operator via Device HP/Modem. Gimana sich cara bikin 8 header tadi? Caranya gini nih... cieee sok pinter nih yee.. Gak kok... becanda... Caranya begini nih :
1. Nomor Operator
Header pertama ini terdiri dari 3 bagian sub header, yaitu :
- Jumlah pasangan heksadesimal Operator dalam bilangan heksa
- Kode Nasional/Internasional. Nasional kodenya 81 trus kalo internasional kodenya 91
- Nomor Operatornya. urutannya dibolak-balik dalam bilangan heksa. kalo gak ada pasangan sisa 1 maka dipasangin huruf F di depannya. Ada 2 cara bikinnya,
Cara 1 (Nasional) :
1. Telkomsel (0811000000) ----> 06818011000000
2. Satelindo (0816124) ----> 0581806121F4
3. Excelcom (0818445009) ----> 06818081440590
4. Indosat-M3 (0855000000) ----> 06818055000000, caranya :
Dengan cara pembagian 3 sub header di atas, untuk excelcom dengan nomor SMS-Center 0811000000 maka :
- Jumlah pasangan heksa 6 pasang, yaitu : 08, 11, 00, 00, 00 = 5 + 1 pasang, ditulis 06
- Kode nasional/Internasional = 81
- Nomor Operator dibolak-balik = 80-11-00-00-00.
Proses penggabungan menjadi 06818011000000
Cara 2 (Internasional) :
1. Telkomsel (62811000000) ----> 07912618010000F0
2. Satelindo (62816124) ----> 059126181642
3. Excelcom (62818445009) ----> 07912618485400F9
4. Indosat-M3 (62855000000) ----> 07912658050000F0, caranya :
0811000000 diubah menjadi 62811000000, sehingga :
- Jumlah pasangan heksa 7 pasang, yaitu : 62, 81, 10, 00, 00, F0 = 6 + 1 pasang, ditulis 07
- Kode nasional/Internasional = 91
- Nomor Operator dibolak-balik = 26-18-01-00-00-F0.
Proses penggabungan menjadi 07912618010000F0
2. Tipe SMS,
Tipe SMSnya SEND (kirim), so di set 1. Jadi bilangan heksanya ditulis 01
3. Nomor Referensi SMS,
Nomor referensi ini otomatis diset oleh device HP/Modem. Untuk kita dummy aja di tulis 00.
4. Nomor HP penerima,
Penulisan PDU Headernya mirip dengan point 1, yaitu :
- Jumlah bilangan desimal nomor tujuan dalam bilangan heksa.
- Kode Nasional/Internasional. Nasional ditulis 81, internasional ditulis 91.
- Nomor tujuan ditulis bolak-balik dalam pasangan heksa kalo sisa satu dipasangin dengan F didepannya. Contoh, untuk pengiriman ke nomor 6281316932077 PDUnya menjadi :
Cara 1 : (081316932077)
- Ada 12 angka, jadi ditulis 0C
- 81
- 80-31-61-39-02-77
Kalo digabungin menjadi 0C81803161390277
Cara 2 : 6281316932077
- ada 13 angka, jadi ditulis oD
- 91
- 26-18-13-96-23-70-F7
Kalo digabungin menjadi 0D91261813962370F7
5. Bentuk SMS,
SMS = 0, ditulis 00. Kalo telex=01 trus fax=02.
6. Skema Encoding Data I/O
Di pasaran rata2 menggunakan Skema 7 Bit. Apa tuh? Pokoknya tulis aja 00. Gak usah dipikirin. Urusan pabriknya tuh...
7. Jangka Waktu SMS Expire
Klo poin ini gak dipake artinya gak ada expire. Kalo mo dipake ada itung-itungan rumusnya. gak rumit2 amat kok... Biasanya ditulis dalam bilangan integer. Daftarnya,
- 0-143 ----> (INT +1) x 5 menit. Artinya antara 5 menit s.d 12 jam.
- 144-167 ----> 12 jam + (INT - 143) x 30 menit
- 197-255 ----> (INT - 192) x 1 minggu
yaahh, kalo pengen smsnya pasti sampe, kamu gak usah kasih limit waktunya... cepet atau lambat pasti sampe... Insya Allah.. :)
8. Isi SMS
Untuk isi SMS ini keliatannya susah... Tapi sebenernya gampang banget lho... Cuma cara penyajian literatur yang ada dan telah banyak beredar saat ini ngejelimet bgt bikin pusing yang bacanya. Makanya di tulisan ini aku kasih simplenya aja yach... Konversi isi SMS menjadi bilangan heksa itu prosesnya adalah konversi dari kode 7 bit menjadi kode 8 bit. Maksudnya kita punya bilangan biner (jam duaan) yang isinya cuma angka 0 dan 1 itu loh. kita bagi2 atau digrup-grupin atau dikelompok-kelompokin dari masing2 7 bit menjadi masing2 8 bit. Untuk membentuk kata atau huruf menjadi biner kode 7 bit gak usah pusing soalnya dah ada tabelnya resmi seperti di bawah ini.

Misalnya isi pesan kita adalah hello, maka kalo kita petakan ke kode 7 bit menjadi :
h ----> 110 1000 (inget yach baca dari bit 1 dulu trus tulis dari kiri berurut B7-B6-B5-B4-B3-B2-B1)
e ----> 110 0101
l ----> 110 1100
l ----> 110 1100
o ----> 110 1111
Trus kita ubah jadi kode 8 bit. ini gak pake tabel lho. cuma disusun masing2 jadi 8 bit... caranya gini nih... kita tulis deretan bitnya dari belakang yach...
hello ----> olleh ----> 1101111 1101100 1101100 1100101 1101000. Nah deretan ini kan tersusun masing2 7 bit. kita jadiin masing2 8 bit. Jadinya gini nih : 00000110 11111101 10011011 00110010 11101000. bit sisanya (yang paling depan) aku tambahin 5 bit angka 0 supaya jadi 8 bit. hehehe. yg penting nilainya gak berubah kan? Nah, udah itu baru deh kita konversi jadi heksa. Caranya gampang bgt. Setiap 8 bit itu mewakili 2 bilangan heksa. Jadi 1 bilangan heksa itu 4 bit. Jadinya gini deh (jgn lupa urutannya disusun lagi seperti semula dari olleh menjadi hello. hehehe),
1110 1000 ----> E 8
0011 0010 ----> 3 2
1001 1011 ----> 9 B
1111 1101 ----> F D
0000 0110 ----> 0 6
Hasil akhir menjadi E8329BFD06
Nah Jadi isi SMS hello dari ke delapan header kita gabungin, dalam arti Untuk mengirimkan kata “hello” ke nomor handphone 6281316932077 lewat SMS-Centre Telkomsel, tanpa membatasi jangka waktu valid, maka PDU lengkapnya adalah:
07912618010000F0,01,00,0D91261813962370F7,00,00,00,E8329BFD06 (Ntar nulisnya tanpa koma yach...)
Gampang kan..... Kita lanjutin lagi yuk untuk membahas format PDU SMS terimanya.
Format PDU Untuk SMS terima dari SMS-Center
Alhamdulillah ternyata PDU untuk SMS terima gak jauh beda bgt dengan SMS Kirim. So, kalo kamu dah ngerti konversi PDU untuk SMS kirim brarti untuk SMS terima gak ada masalah. Smoga. Amien. PDU SMS Terima terdiri dari 8 header juga, yaitu :
1. No SMS Center / Operator
2. Tipe SMS,
SMS Terima = 4 ditulis 04
3. Nomor HP Pengirim
4. Bentuk SMS
5. Skema Encoding
6. Tanggal dan Waktu SMS di SMS Center,
diwakilin 12 bilangan heksadesimal (6 pasang) formatnya yy/mm/dd hh:mm:ss (Jgn lupa dibolak-balik dulu yach. hehehe). Contoh : 201101903254 ----> 02-11-10-09-23-45 ----> 10 Nov 2002 09:23:45 WIB
7. Expired
8. Isi SMS
Arti dari PDU Berikut :
07912658050000F0040C9126581610739800002070225123800005E8329BFD06 ---->
07912658050000F0,04,0C91265816107398,00,00,207022512380,00,05E8329BFD06
Disesuaikan dengan bahasan 8 header tadi yach, menjadi :
1. SMS tersebut dikirim lewat SMS-Centre:62855000000
2. SMS tersebut merupakan SMS-Terima
3. SMS tersebut dikirim dari hadnphone dengan nomor Sim Card:628561013789
4. SMS tersebut diterima dalam bentuk SMS
5. SMS tersebut memiliki skema encoding 7 bit
6. SMS tersebut sampai di SMS-Centre pada tanggal 22-07-02, pukul: 15:32:08 Wib
7. SMS tersebut tidak memiliki batas waktu valid
8. SMS tersebut isinya adalah “hello”.
Sekian dulu bahasan kali ini. Selanjutnya kita akan bahas bagaimana berinteraksi dengan device HP/modem untuk mengirim dan menerima SMS dengan format PDU dengan komponen FBUS atau dengan menggunakan AT Command.
Download File :
>>Prosedur PDU to Text
>>Prosedur Text to PDU
>>Password : sholat
Wassalam,
Arnie
Format data SMS yang dikirim ke Operator atau sebaliknya yang kita terima dari Operator adalah dalam bentuk PDU (Protokol Data Unit). Operator di sini maksudnya Telkomsel, Indosat, Telkom, dkk. PDU Ini isinya adalah bilangan Heksadesimal. Tau kan? itu tuh bilangan yg pas SD dulu kita namain jam 16-an. Maksudnya bilangannya cuma sampe angka 15 trus nol lagi deh. Nah Penulisannya tuh terdiri dari 0, 1, 2 , 3, 4, 5 , 6 ,7 ,8 ,9 ,A ,B ,C ,D ,E ,F. Kok gak ada angka 10, 11, 13, 14, 15? kan bilangan 10 dah di pake angka satunya di awal setelah 0 begitu juga 0 dah dipake kan di awal deretan bilangan 16. so gak boleh dipake lagi... Gitu deh... Contohnya gini deh supaya ngerti dikit apa sich heksadesimal itu... Soalnya nanti kita harus terbiasa dengan bilangan ini untuk pembahasan selanjutnya. Kalo angka desimal 1000, maka bilangan heksadesimalnya tuh 3E8. Cara kutak-katiknya begini :
1000 dibagi 16 = 62 sisanya 8. trus lanjutin,
62 dibagi 16 = 3 sisanya 14,
3 dibagi 16 = 0 sisanya 3.
nah kan kita dapet konversinya jadi 3 14 8. Jangan lupa bilangan 16 tuh gak ada angka 10, 11, 12, 13, 14, 15. so, Kita ganti jadi 3E8. Gampang kan....
Format SMS yang kita buat pake program sebelum kirim ke device HP/modem sebenarnya bisa kita set ke mode teks gak perlu PDU. kalo berhasil maka device yang akan bantu kita untuk konversi secara otomatis SMS format PDU dari dan ke Operator. Kita tinggal kirim / terima SMS dari operator dalam bentuk teks. so, gak perlu repot deh bikin prosedur konversi PDU. Tetapi masalahnya adalah gak semua device HP/modem itu support mode teks. Nyebelin kan? Tapi jgn khawatir dan jgn bingung. Daripada cari2 device yg support mode teks atau nggak lebih baik kita pelajarin aja mode PDU. Soalnya semua device tuh pasti support mode ini. hehehe, soalnya emang format aslinya boooo...
Format PDU untuk kirim SMS dan Terima SMS itu beda bgt. Untuk Kirim SMS PDUnya terdiri dari 8 header sebagai berikut :
Format PDU Untuk SMS Kirim
1. Nomor SMS-Center (Operator)
2. Tipe SMS
3. Nomor Referensi SMS
4. Nomor HP Penerima
5. Bentuk SMS
6. Skema Encoding Data I/O
7. Jangka Waktu SMS sebelum expire
8. Isi SMSnya dong....
Trus ke delapan header tersebut digabung jadi satu.. Nah kalo berhasil berarti SMS siap dikirim deh ke Operator via Device HP/Modem. Gimana sich cara bikin 8 header tadi? Caranya gini nih... cieee sok pinter nih yee.. Gak kok... becanda... Caranya begini nih :
1. Nomor Operator
Header pertama ini terdiri dari 3 bagian sub header, yaitu :
- Jumlah pasangan heksadesimal Operator dalam bilangan heksa
- Kode Nasional/Internasional. Nasional kodenya 81 trus kalo internasional kodenya 91
- Nomor Operatornya. urutannya dibolak-balik dalam bilangan heksa. kalo gak ada pasangan sisa 1 maka dipasangin huruf F di depannya. Ada 2 cara bikinnya,
Cara 1 (Nasional) :
1. Telkomsel (0811000000) ----> 06818011000000
2. Satelindo (0816124) ----> 0581806121F4
3. Excelcom (0818445009) ----> 06818081440590
4. Indosat-M3 (0855000000) ----> 06818055000000, caranya :
Dengan cara pembagian 3 sub header di atas, untuk excelcom dengan nomor SMS-Center 0811000000 maka :
- Jumlah pasangan heksa 6 pasang, yaitu : 08, 11, 00, 00, 00 = 5 + 1 pasang, ditulis 06
- Kode nasional/Internasional = 81
- Nomor Operator dibolak-balik = 80-11-00-00-00.
Proses penggabungan menjadi 06818011000000
Cara 2 (Internasional) :
1. Telkomsel (62811000000) ----> 07912618010000F0
2. Satelindo (62816124) ----> 059126181642
3. Excelcom (62818445009) ----> 07912618485400F9
4. Indosat-M3 (62855000000) ----> 07912658050000F0, caranya :
0811000000 diubah menjadi 62811000000, sehingga :
- Jumlah pasangan heksa 7 pasang, yaitu : 62, 81, 10, 00, 00, F0 = 6 + 1 pasang, ditulis 07
- Kode nasional/Internasional = 91
- Nomor Operator dibolak-balik = 26-18-01-00-00-F0.
Proses penggabungan menjadi 07912618010000F0
2. Tipe SMS,
Tipe SMSnya SEND (kirim), so di set 1. Jadi bilangan heksanya ditulis 01
3. Nomor Referensi SMS,
Nomor referensi ini otomatis diset oleh device HP/Modem. Untuk kita dummy aja di tulis 00.
4. Nomor HP penerima,
Penulisan PDU Headernya mirip dengan point 1, yaitu :
- Jumlah bilangan desimal nomor tujuan dalam bilangan heksa.
- Kode Nasional/Internasional. Nasional ditulis 81, internasional ditulis 91.
- Nomor tujuan ditulis bolak-balik dalam pasangan heksa kalo sisa satu dipasangin dengan F didepannya. Contoh, untuk pengiriman ke nomor 6281316932077 PDUnya menjadi :
Cara 1 : (081316932077)
- Ada 12 angka, jadi ditulis 0C
- 81
- 80-31-61-39-02-77
Kalo digabungin menjadi 0C81803161390277
Cara 2 : 6281316932077
- ada 13 angka, jadi ditulis oD
- 91
- 26-18-13-96-23-70-F7
Kalo digabungin menjadi 0D91261813962370F7
5. Bentuk SMS,
SMS = 0, ditulis 00. Kalo telex=01 trus fax=02.
6. Skema Encoding Data I/O
Di pasaran rata2 menggunakan Skema 7 Bit. Apa tuh? Pokoknya tulis aja 00. Gak usah dipikirin. Urusan pabriknya tuh...
7. Jangka Waktu SMS Expire
Klo poin ini gak dipake artinya gak ada expire. Kalo mo dipake ada itung-itungan rumusnya. gak rumit2 amat kok... Biasanya ditulis dalam bilangan integer. Daftarnya,
- 0-143 ----> (INT +1) x 5 menit. Artinya antara 5 menit s.d 12 jam.
- 144-167 ----> 12 jam + (INT - 143) x 30 menit
- 197-255 ----> (INT - 192) x 1 minggu
yaahh, kalo pengen smsnya pasti sampe, kamu gak usah kasih limit waktunya... cepet atau lambat pasti sampe... Insya Allah.. :)
8. Isi SMS
Untuk isi SMS ini keliatannya susah... Tapi sebenernya gampang banget lho... Cuma cara penyajian literatur yang ada dan telah banyak beredar saat ini ngejelimet bgt bikin pusing yang bacanya. Makanya di tulisan ini aku kasih simplenya aja yach... Konversi isi SMS menjadi bilangan heksa itu prosesnya adalah konversi dari kode 7 bit menjadi kode 8 bit. Maksudnya kita punya bilangan biner (jam duaan) yang isinya cuma angka 0 dan 1 itu loh. kita bagi2 atau digrup-grupin atau dikelompok-kelompokin dari masing2 7 bit menjadi masing2 8 bit. Untuk membentuk kata atau huruf menjadi biner kode 7 bit gak usah pusing soalnya dah ada tabelnya resmi seperti di bawah ini.
Misalnya isi pesan kita adalah hello, maka kalo kita petakan ke kode 7 bit menjadi :
h ----> 110 1000 (inget yach baca dari bit 1 dulu trus tulis dari kiri berurut B7-B6-B5-B4-B3-B2-B1)
e ----> 110 0101
l ----> 110 1100
l ----> 110 1100
o ----> 110 1111
Trus kita ubah jadi kode 8 bit. ini gak pake tabel lho. cuma disusun masing2 jadi 8 bit... caranya gini nih... kita tulis deretan bitnya dari belakang yach...
hello ----> olleh ----> 1101111 1101100 1101100 1100101 1101000. Nah deretan ini kan tersusun masing2 7 bit. kita jadiin masing2 8 bit. Jadinya gini nih : 00000110 11111101 10011011 00110010 11101000. bit sisanya (yang paling depan) aku tambahin 5 bit angka 0 supaya jadi 8 bit. hehehe. yg penting nilainya gak berubah kan? Nah, udah itu baru deh kita konversi jadi heksa. Caranya gampang bgt. Setiap 8 bit itu mewakili 2 bilangan heksa. Jadi 1 bilangan heksa itu 4 bit. Jadinya gini deh (jgn lupa urutannya disusun lagi seperti semula dari olleh menjadi hello. hehehe),
1110 1000 ----> E 8
0011 0010 ----> 3 2
1001 1011 ----> 9 B
1111 1101 ----> F D
0000 0110 ----> 0 6
Hasil akhir menjadi E8329BFD06
Nah Jadi isi SMS hello dari ke delapan header kita gabungin, dalam arti Untuk mengirimkan kata “hello” ke nomor handphone 6281316932077 lewat SMS-Centre Telkomsel, tanpa membatasi jangka waktu valid, maka PDU lengkapnya adalah:
07912618010000F0,01,00,0D91261813962370F7,00,00,00,E8329BFD06 (Ntar nulisnya tanpa koma yach...)
Gampang kan..... Kita lanjutin lagi yuk untuk membahas format PDU SMS terimanya.
Format PDU Untuk SMS terima dari SMS-Center
Alhamdulillah ternyata PDU untuk SMS terima gak jauh beda bgt dengan SMS Kirim. So, kalo kamu dah ngerti konversi PDU untuk SMS kirim brarti untuk SMS terima gak ada masalah. Smoga. Amien. PDU SMS Terima terdiri dari 8 header juga, yaitu :
1. No SMS Center / Operator
2. Tipe SMS,
SMS Terima = 4 ditulis 04
3. Nomor HP Pengirim
4. Bentuk SMS
5. Skema Encoding
6. Tanggal dan Waktu SMS di SMS Center,
diwakilin 12 bilangan heksadesimal (6 pasang) formatnya yy/mm/dd hh:mm:ss (Jgn lupa dibolak-balik dulu yach. hehehe). Contoh : 201101903254 ----> 02-11-10-09-23-45 ----> 10 Nov 2002 09:23:45 WIB
7. Expired
8. Isi SMS
Arti dari PDU Berikut :
07912658050000F0040C9126581610739800002070225123800005E8329BFD06 ---->
07912658050000F0,04,0C91265816107398,00,00,207022512380,00,05E8329BFD06
Disesuaikan dengan bahasan 8 header tadi yach, menjadi :
1. SMS tersebut dikirim lewat SMS-Centre:62855000000
2. SMS tersebut merupakan SMS-Terima
3. SMS tersebut dikirim dari hadnphone dengan nomor Sim Card:628561013789
4. SMS tersebut diterima dalam bentuk SMS
5. SMS tersebut memiliki skema encoding 7 bit
6. SMS tersebut sampai di SMS-Centre pada tanggal 22-07-02, pukul: 15:32:08 Wib
7. SMS tersebut tidak memiliki batas waktu valid
8. SMS tersebut isinya adalah “hello”.
Sekian dulu bahasan kali ini. Selanjutnya kita akan bahas bagaimana berinteraksi dengan device HP/modem untuk mengirim dan menerima SMS dengan format PDU dengan komponen FBUS atau dengan menggunakan AT Command.
Download File :
>>Prosedur PDU to Text
>>Prosedur Text to PDU
>>Password : sholat
Wassalam,
Arnie
Langganan:
Postingan (Atom)
Peraturan & Tata tertib
Bismillahirrohmanirrohiim, Assalamu'alaikum wr. wb,
Sourcecode yang aku sharing di sini dijelaskan terlebih dahulu alurnya disertai pembahasannya dan sifatnya GRATIS dengan syarat :
1. Kamu-kamu smua kasih komentar
2. Setiap pembuatan program dengan sourcecode dari BLOG aku dan sifatnya komersil WAJIB dan KUDU menyertakan NAMA dan BLOG aku lho!
3. Kamu-kamu jangan lupa isi Polling blog aku yach...
NB :
Donasi :
Rek mandiri No. 117-0005202486.
Arniaty Arsyad
Wassalam,
Arnie
Sourcecode yang aku sharing di sini dijelaskan terlebih dahulu alurnya disertai pembahasannya dan sifatnya GRATIS dengan syarat :
1. Kamu-kamu smua kasih komentar
2. Setiap pembuatan program dengan sourcecode dari BLOG aku dan sifatnya komersil WAJIB dan KUDU menyertakan NAMA dan BLOG aku lho!
3. Kamu-kamu jangan lupa isi Polling blog aku yach...
NB :
Donasi :
Rek mandiri No. 117-0005202486.
Arniaty Arsyad
Wassalam,
Arnie