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
6 komentar:
waaaahhhhhh pusing dikepalaku.Tapi aku salut. thank u atas tulisannya.bikin semangat aku buat mempelajarinya juga lbh dlm :)
mav ni bu,pngin brtanya....
tpi g ngbhas yg ibu posting...
saya th pngin bljr ngblog untuk menmbh pnghasiln..gmna ya bu..coz saya ditolk trz ma adsanse nya..
mklum msh amatir..hehehe
gmna bu...
blz ia bu...mksh..
maap bu mo tanya punya code untuk misahin sms yang da headernya ga??
soalnya code saya cuman bisa baca sms yang kurang dari 160
klo lebih kan kekirim 2 kali tapi masalahnya ada headernya...
gmn ya cara misahinnya???
terimakasih
assalamualikum
terima kasih bu buat infonya.. sangat bermanfaat sekali buat saya..
semalaman search di google tentang cara merubah 7 bit ke 8 bit ndak ada yang mengerti...
akhirnya ada juga yang mengerti caara merubahnya...
semoga ibu dan keluarga di berkahi amien...
Wah, artikelnya mudah dipahami. beda dengan tulisan-tulisan diblog lain yang asal copas. hehehe
Thx ya udah mudah memahami materi Tugas Akhir dengan artikel ini
makasih banget..nich, berguna baget buat aku artikelnya, kalo ada waktu bahas mengenai sms long nya dong, itu ... yng isi sms lebih dari 160 karakter ....sekalilagi terima kasih
Posting Komentar