Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP...

49
Catatan Kuliah SMS Gateway dwi sakethi [email protected] http://www.dwijim.wordpress.com 0816-403-432 bni 46 no. 0070942813 25 Pebruari 2012

Transcript of Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP...

Page 1: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Catatan KuliahSMS Gateway

dwi [email protected]

http://www.dwijim.wordpress.com0816-403-432

bni 46 no. 0070942813

25 Pebruari 2012

Page 2: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2

�ð

�è

�Y

�Ò

�m�

�' � é�

��<�

�Y

�Ò

�m

�Ì'

�@

��à@

��

�á�Ò�

�Ê

�ª

��@

��H.

�P é�

��<�

�Y

�Ò

�m

�Ì'

�@ � Õ

�æk�

��QË�@ á

�Ô

�g��QË

�@ é�

��<Ë

�@ Õ

���.�

�á�Ó � A

�J� A

�Ô�«

� @

�H�

A� J���

��

�áÓ��ð � A

�J��

�®

�K

� @ P

�ð �Qå

���

�áÓ� é�

��<Ë

�AK.�

�Xñ

�ª

�K

�ð � �

è �Q®�

�ª

��J

��

��

�ð

�é�JJª�

��J

��

��

� �é��<Ë

�@ B

��@ �

�é�Ë @ �

B� �

à

� @

�Y

�îD

���

� @ � �

é�Ë �ø

X� A

�ë C

� �¯

�ÉÊ�

��

��

�á�Ó

�ð � �

é�Ë

��É

��

�Ó C

� �¯

�é��<Ë

�@ ø

Y�

�î�E

�ð

�áKQ�k.�

A�ê �Ü

��@

�áÓ� é��J��K. A

�m�

�� �

ð Y�

��Ò

�m�

× ú�Î

�«

��É

��

��Ñ

�ê

��ÊË

�@ � é�

��<Ë

�@

�Èñ

�� �P @

�Y

��Ò

�m�

×��à

�@

�Y

�îD

���

� @

�ð

�ð �

��è�Q�J.�

�º

�Ë�@ é�

�J�

�Ò

�ª

K� ú

�Î

�« ú

�Í A

�ª

��K

�é��<Ë

�@ �Q

�º

��

��� � á

�K

��YË

�@ Ð

�ñ

�K ú

�Í@ �

�Ñ

�ê

�ªJ.�

��K

�á�Ó

�ð P

�A

��

��

� B��@

�����PA

�J.�Ü

��@

��é

�«A

�Ò

�m.

�Ì'

�@ è�

Y�

�ë

�ð �

��è�

ñ�«

��YË

�@

�ð

�Èñ

��

��Q�@

�ð

�áK

��YË

�@

�ð

�é��<Ë

�@

��é�Q̄�

�ª

�Ó A

�J�J

�Ê�« é� Ò

��ª

K�

�áÓ�

ú

¯�

A�JK�

�Y

�K. ú

¯�

��é�J�̄ A

�ª

��@

�ð �ø

�ñ

��®

���JË

�@

�ð

��Q�.�

�Ë�@ ú

�Í A

�ª

��K

�é��<Ë

�@

�È

� A

��

�� � A

�J��

�®

�K

� @

��é�Q̄�

�ª

�Ó

�½Ë�

�Y

�»

�ð

� �XB

��ð

� B��@

�ð É

�ë

� B��@

seratan meniko dipun ketik ngangge LATEX

Page 3: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Daftar Isi

1 Pendahuluan 71.1 Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 SMS Gateway 92.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Kebutuhan Peralatan . . . . . . . . . . . . . . . . . . . . . . . 92.3 Pesawat Handphone yang Sudah Dicoba . . . . . . . . . . . . 102.4 Instalasi Perangkat yang Dibutuhkan . . . . . . . . . . . . . . 11

2.4.1 Instalasi XAMPP . . . . . . . . . . . . . . . . . . . . . 112.4.2 Pesawat Handphone . . . . . . . . . . . . . . . . . . . 132.4.3 Instalasi Gammu . . . . . . . . . . . . . . . . . . . . . 182.4.4 Instalasi Gammu di GNU Linux . . . . . . . . . . . . . 222.4.5 Menjalankan Contoh Sistem SMS Gateway . . . . . . . 23

3 Membangun SMS Gateway 253.1 Basis Data Dasar SMS Gateway . . . . . . . . . . . . . . . . . 253.2 Mengirim SMS dengan SQL Langsung . . . . . . . . . . . . . 253.3 Mengirim SMS Pendek dengan PHP . . . . . . . . . . . . . . 273.4 Mengirim SMS Panjang dengan PHP . . . . . . . . . . . . . . 29

4 PHP Maker 33

5 Mengolah SMS Masuk 355.1 Menghitung Banyaknya SMS dengan Isi yang Sama . . . . . . 355.2 Menghitung Banyaknya SMS yang Masuk per Jam . . . . . . 375.3 SMS Center Nilai . . . . . . . . . . . . . . . . . . . . . . . . . 40

6 Penutup 49

3

Page 4: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

4 DAFTAR ISI

Page 5: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Daftar Gambar

2.1 Ikom XAMPP . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 XAMPP via Start . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Panel XAMPP . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Perangkat Baru . . . . . . . . . . . . . . . . . . . . . . . . . . 142.5 Instal DKU-5 dari CD-ROM . . . . . . . . . . . . . . . . . . . 152.6 Teruskan Proses Instal DKU-5 . . . . . . . . . . . . . . . . . . 162.7 Port DKU-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.8 Tampilan SM@S@ . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1 Form Isian SMS . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2 Form Isian SMS Panjang . . . . . . . . . . . . . . . . . . . . . 29

5

Page 6: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

6 DAFTAR GAMBAR

Page 7: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Bab 1

Pendahuluan

1.1 Latar Belakang

Pada masa sekarang ini, penggunaan pesawat telepon selular sudah sangatluas di kalangan masyarakat. Dari kelas pemulung, tukang bakso, tukangsiomay, pelajar, mahasiswa dan berbagai kalangan sudah terbiasa menggu-nakan pesawat telepon selular. Bahkan terkadang terlihat orang menggu-nakan telepon seluler ini dimana saja, sehingga terkesan orang lebih asyikdengan telepon selular dari pada memperhatikan lingkungan sekitarnya (berbincang-bincang dengan orang lain).

Salah satu fungsi dasar yang ada pada pesawat telepon selular yaitu pen-giriman pesan singkat melalui sarana SMS. Lalu lintas SMS ini menjadi salahsatu sarana komunikasi yang dominan dalam kehidupan keseharian sekarang.Salah satu faktornya adalah biayanya yang sangat murah.

SMS Gateway merupakan teknologi tepat guna yang bisa diterapkan se-cara mudah dalam kehidpan sehari-hari di masyarakat. Misalnya membuatSMS Gateway :

1. Untuk penyebaran informasi kegiatan atau koordinasi antar pengurusdalam suatu organisasi.

2. Informasi kegiatan sekolah, prestasi yang diperoleh suatu sekolah, jad-wal ujian dan sebagainya. Dengan demikian orang tua siswa dapatmengantisipasi kegiatan-kegiatan sekolah secara lebih dini.

3. Melakukan polling atas suatu agenda yang sedang ramai diperbin-cangkan di masyarakat.

4. SMS Center suatu lembaga atau organisasi, misalnya untuk mengecekpembayaran pajak kendaraan di kantor SAMSAT, jadwal dokter disuatu rumah sakit.

7

Page 8: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

8 BAB 1. PENDAHULUAN

5. Melakukan nasehat-nasehat, peringatan/ajakan kepada kebaikan.

Penerapan SMS Gateway bisa dikaitkan dengan isu Go Green. Penggunaanmedia elektronis ini akan mengurangi penggunaan kertas, jadi sampah kertasakan berkurang dan penebangan pohon untuk bahan pembuatan kertas jugamenjadi berkurang.

Page 9: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Bab 2

SMS Gateway

2.1 Pendahuluan

SMS Gateway merupakan suatu mekanisme yang menyediakan akses SMSdari dan ke pesawat selular.

2.2 Kebutuhan Peralatan

Selain jelas tentu saja SMS Gateway membutuhkan seperangkat komput-er dan ada beberapa perangkat tambahan yang diperlukan yaitu :

1. Program Apache, PHP, dan MySQL yang sudah dipaket dalam bentukprogram XAMPP atau PHP Triad atau LAMP. Yang penting dalamsistem tersedia Apache, Mysql, dan PHP. Sedangkan dalam contohini, digunakan XAMPP. Jika menggunakan GNU Linux maka paket-paket tersebut sudah tersedia tinggal diinstal saja. Pada contoh di sinidigunakan Xampp Versi 1.6.8.

2. Program Gammu. Gammu digunakan untuk mentransfer SMS darihandphone ke database dan sebaliknya. Program Gammu ini bisa diun-duh secara bebas dari internet. Alternatif bisa diunduh dari http://dwijim.staff.unila.ac.idpada bagian SMS Gateway. Gammu yang digunakan adalah GammuVersi 1.21.0 untuk Microsoft Windows dan 1.20.0 untuk GNU Linuxpada Ubuntu 9.04. Versi Gammu yang digunakan harus sesuai denganversi basis data Gammu. Jika ada ketidaksesuaian, maka Gammu tidakbisa dieksekusi.

3. Perangkat handphone GSM yang dilengkapi kabel data atau koneksilain seperti bluetooth, infrared. Dalam contoh di sini digunakan kabel

9

Page 10: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

10 BAB 2. SMS GATEWAY

data DKU-5 dan handphone Nokia 3100. Kabel DKU-5 lebih spesifikadalah kabel DKU-5 merk i-Tech yang memiliki fasilitas charger. Adajenis kabel DKU-5 yang tidak bisa digunakan untuk koneksi. Sedan-gkan beberapa handphone yang sudah pernah digunakan adalah Nokia6020, Nokia 6070, Motorola E398, dan Mikto. Untuk koneksi dengankabel DKU-5 diperlukan driver yang biasanya disertakan ketika mem-beli kabel tersebut. Untuk pengguna, MS Windows, disarankan meng-gunakan SE. Sekarang ada alternatif lain seperti menggunakan USBmodel atau perangkat khusus untuk SMS Gateway. Bisa juga menggu-nakan USB modem yang didukung oleh Gammu atau perangkat khususuntuk SMS seperti modem WaveCom.

4. Perangkat lunak PHP Maker.Perangkat ini digunakan untuk mempermudah pengembangan scriptPHP yang akan dilakukan.

5. Nomor handphone GSM. Nomor GSM yang bisa digunakan bebas, bisakartu apa saja. Akan tetapi, pada akhirnya nanti, ada kartu yangbisa digunakan terus menerus dan ada kartu yang kemudian tidak bisalagi digunakan untuk mengirim SMS, meskipun bisa digunakan untukmenerima atau melakukan panggilan.

6. Yang terakhir tentu saja program atau script PHP, program inilah yangmenjadi kajian dalam tulisan ini.

Perbedaan versi memerlukan kreatifitas dalam instalasi dan menjalankanprogram yang terkadang ’sedikit’ menyita waktu untuk mencari cara yangbenar.

2.3 Pesawat Handphone yang Sudah Dicoba

Beberapa jenis pesawat handphone yang sudah dicoba dan berhasil digu-nakan sebagai SMS Gateway di antaranya :

1. Nokia 3100 (Windows dan GNU Linux).

2. Nokia 6020 (Windows dan GNU Linux).

3. Nokia 6070 (RM-166) (Windows dan GNU Linux).

4. Motorola E398 (Windows).

5. LG KG-300 di Windows bisa menerima dan mengirim SMS, di GNULinux belum dicoba.

Page 11: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN 11

6. Sony Ericsson W200i, K301i, K100 bisa menerima dan mengirim SMS.Umumnya Sony Erocsson dengan fasilitas koneksi kabel data, bisa di-gunakan untuk SMS Gateway.

7. Sony Ericsson Z550 (Windows dan GNU Linux).

Berfungsi sebagai SMS Gateway artinya bisa digunakan untuk mengirimdan menerima SMS serta memasukkan SMS tersebut ke basis data MySQL.Karena ada handphone yang dikenali akan tetapi tidak bisa mengirim SMSmeskipun SMS yang ada bisa dibaca. Merk-merk yang ditulis di sini ten-tu saja bukan pesan sponsor :-) tapi untuk mempermudah bagi yang inginmencoba.

2.4 Instalasi Perangkat yang Dibutuhkan

2.4.1 Instalasi XAMPP

Program ApacheFriends XAMPP (Basispaket) version 1.6.8 merupakansuatu paket program yang berisi Apache+PHP+MySQL yang merupakanprogram-program yang dibutuhkan dalam sistem ini. Bisa juga menggunakanversi terbaru dari XAMPP. Selain itu, alternatif lain juga bisa menggunakanpaket program AppServ atau PHPTriad. Kedua program ini, mempunyaifungsi yang sama dengan XAMPP. Untuk melakukan instalasi pada contohini, carilah berkas bernama xampp-win32-1.6.8-installer kemudian diklikganda atau menekan tombol Enter . Untuk memudahkan proses, ikuti nilai-nilai bawaan (default) pada saat instalasi. Jika ada pertanyaan-pertanyaan,

klik tombol Next atau Install , tidak perlu mengklik pilihan lain. Setelah

proses selesai dan sukses, maka di layar akan ada keterangan Finish .Ada baiknya jika menggunakan Microsoft Windows, program Xampp

ini dipasang di drive D, supaya ketika sistem operasinya dipasang ulang,maka data dan program PHP masih ada dan tidak perlu dipasang ulang.

Pada layar Desktop terdapat ikon XAMPP seperti berikut :

Jalankan program XAMPP dengan mengklik ganda ikon XAMPP tersebutsehingga keluar menu Control Panel dari XAMPP. Dengan cara lain, bisa ju-ga dengan mengklik Start-All Programs-Apache Friends-XAMPP dan seterus-nya seperti pada gambar berikut :

Pada menu Control Panel dari XAMPP, kemudian aktifkan program Apachedan MySQL dengan mengklik tombol Start di samping kanan dari tulisanApache dan MySQL.

Page 12: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

12 BAB 2. SMS GATEWAY

Gambar 2.1: Ikom XAMPP

Gambar 2.2: XAMPP via Start

Gambar 2.3: Panel XAMPP

Page 13: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN 13

Untuk GNU Linux instalasi paket Apache+PHP+MySQL bisa dilakukandengan mudah menggunakan Synaptic Package Manager atau bagi yang ter-biasa dengan text based bisa menggunakan perintah apt-get-install.

2.4.2 Pesawat Handphone

Selama ini, penggunaan pesawat selular untuk sistem SMS Gateway padasistem operasi GNU Linux, tidak memerlukan driver secara khusus. Perangkat-perangkat yang digunakan, ketika disambungkan dengan sistem komputer,sudah langsung terdeteksi. Sedangkan pada sistem operasi lain, ada yangperlu driver khusus sesuai dengan jenis dan tipe pesawat selular yang digu-nakan.

Sony Ericsson

Untuk pesawat Sony Ericsson, bisa digunakan PC Suite Sony Ericsson.Karena PC Suite ini, umumnya sesuai dengan berbagai jenis pesawat SonyEricsson. Sedangkan jika menggunakan driver, harus digunakan driver yangsesuai.

Nokia - Instalasi DKU-5

Kabel DKU-5 digunakan sebagai media koneksi data. Meskipun tentusaja tidak harus menggunakan media kabel ini. Tidak semua kabel DKU-5 dapat digunakan untuk koneksi (meskipun sama-sama DKU-5). DKU-5yang digunakan di sini memiliki kemampuan charger dan di sebelah palingkiri pada bagian ujungnya mempunyai kaki tembaga. Perhatikan gambarberikut, dimana sebelah kanan adalah DKU-5 yang bisa, dan sebelah kiriadalah DKU-5 yang tidak bisa digunakan. Driver biasanya disertakan ketikamembeli kabel ini. Untuk instalasi kabel DKU-5, mula-mula masukkan kabelDKU-5 ini di komputer via USB dan ke handphone. Karena ini perangkatbaru, maka akan muncul dialog dari sistem seperti ini :

Page 14: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

14 BAB 2. SMS GATEWAY

Gambar 2.4: Perangkat Baru

Pilihlah Yes, this time only, kemudian pilihlah tombol Next. Padapilihan berikutnya, isilah dengan pilihan Install from a list or specificlocation.

Page 15: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN 15

Gambar 2.5: Instal DKU-5 dari CD-ROM

Kemudian pilihlah tombol Next. Selanjutnya jika belum ada tanda con-treng, berilah tanda contreng pada Search removable media. MasukkanCD-ROM driver kabel DKU-5 ke pemutar CD-ROM dan kemudian pilihlahtombol Next. Jika dalam prosesnya ada keterangan seperti berikut :

Page 16: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

16 BAB 2. SMS GATEWAY

Gambar 2.6: Teruskan Proses Instal DKU-5

Pilihlah Continue anyway ... Dan terakhir tentu saja Finish. Setelahkabel DKU-5 terinstal, penting untuk mengetahui pada port apa dan be-rapa kabel tersebut terpasang. Untuk itu, klik tombol Start, lantas padaposisi My Computer, lakukan klik kanan dan pilih Properties. Lantaspada pilihan yang ada, klik pada Device Manager dan pilihlah Ports(COM&LPT)

Page 17: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN 17

Gambar 2.7: Port DKU-5

Page 18: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

18 BAB 2. SMS GATEWAY

Di sini terlihat bahwa USB kabel DKU-5 berapa pada port COM6. Infor-masi ini penting karena akan digunakan pada saat instalasi program Gammu.Penting : perlu dicatat bahwa letak colokan kabel USB untuk DKU-5 ini

sebaiknya tidak dipindah-pindah. Mengapa ? Jika dipindah maka pengatu-ran port-nya akan berubah-ubah lagi dan harus disesuaikan pada pengaturangammurc.

Instalasi DKU-5 di GNU Linux

Pada sistem operasi GNU Linux Ubuntu Versi 9.04 kabel DKU-5 sudahdidukung penuh. Tinggal masukkan kabel ke sistem maka akan terdeteksioleh GNU Linux. Untuk menceknya, dari terminal bisa diberikan perintahdmesg | grep ark.

[ 5.356130] Marking TSC unstable due to TSC halts in idle

[ 23.044201] usbserial: USB Serial support registered for ark3116

[ 23.044253] ark3116 3-2:0.0: ark3116 converter detected

[ 23.087852] usb 3-2: ark3116 converter now attached to ttyUSB0

[ 23.087881] usbcore: registered new interface driver ark3116

2.4.3 Instalasi Gammu

Gammu merupakan sistem untuk mentransfer SMS dari handphone kedatabase dan sebaliknya. Salah satu model database yang didukung olehGammu adalah MySQL. Gammu ini dapat diunduh di internet. Gammuyang digunakan pada contoh ini adalah Gammu Versi 1.21.0. Untuk versiyang berbeda, boleh jadi perintah yang digunakan berbeda atau sama den-gan contoh yang ada di sini. Pada prinsipnya Gammu ini cukup disalin kedirektori tertentu kemudian tinggal memodifikasi berkas bernama gammurcdan smsdrc. Kedua berkas tersebut merupakan berkas yang berisi pengat-uran dari program Gammu. Untuk kemudahan, Gammu dapat diinstal apaadanya seperti pada petunjuk pada dokumen ini.

Hal penting yang harus diperhatikan yaitu bahwa isi dari basis datauntuk sistem yang akan digunakan, versinya harus sesuai dengan versi dariGammu yang akan digunakan. Jika versi tidak sesuai, maka program Gammutidak akan bisa digunakan.

1. Program Gammu ini cukup diekstrak saja dari masternya ke suatudirektori pada komputer yang akan digunakan.

2. Untuk sistem operasi Windows, pada direktori bin di direktori gammutersebut, cari dan perbaikilah berkas gammurc. Untuk melakukan ini,

Page 19: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN 19

program yang bisa digunakan adalah Notepad atau Wordpad, dan bisajuga dengan program edit.exe. Perbaikan berkas gammurc tergantungkepada jenis pesawat handphone yang digunakan, kabel data dan portdari kabel data atau media lainnya. Pada contoh ini digunakan kabelDKU-5 dan pesawat Nokia 3100 serta Nokia 6020. Perlu diketahuijuga, bahwa konfigurasi dalam berkas gammurc ini bisa dibuat dalambeberapa konfigurasi. Dengan demikian, tidak perlu selalu merubah-ubah konfigurasi jika pesawat handphone atau media komunikasi yangdigunakan berubah. Isi dari berkas gammurc cukup panjang, di sinihanya diambil bagian yang penting saja.

[gammu1]

# untuk nokia 6020, 29 juni 2009

# nokia 6070

port = com6:

connection = at19200

#synchronizetime = yes

#logfile = gammulog

#logformat = textall

#use_locking = yes

#gammuloc = locfile

startinfo = yes

#gammucoding = utf8

#rsslevel = teststable

#usephonedb = yes

[gammu2]

# dwi sakethi, ini untuk nokia 3100 kabel dku 5

# catatan 7 juli 2009

port = com6:

connection = fbuspl2303

#synchronizetime = yes

#logfile = gammulog

#logformat = textall

#use_locking = yes

#gammuloc = locfile

#startinfo = yes

#gammucoding = utf8

Page 20: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

20 BAB 2. SMS GATEWAY

Perhatikan tanda [gammu1] dan [gammu2]. Ini menunjukkan kon-figurasi gammmu pertama dan kedua. Setelah dilakukan perubahanseperlunya, tentu saja jangan lupa untuk menyimpan berkas gam-murc tersebut. Perbaikan yang penting adalah di bagian port danconnection.

3. Cek koneksi. Langkah ini merupakan langkah yang menentukan. Adadua hal, yaitu apakah konfigurasi sudah benar dan apakah pesawathandphone yang digunakan didukung oleh program Gammu. Kare-na proses dengan Gammu ini dijalankan dari Command Prompt, ma-ka terlebih dahulu klik Start-Run, kemudian isi dengan cmd danmenekan tombol Enter. Karena program Gammu disimpan di c :\xampp \ gammu maka berikan perintah untuk pindah direktori :

cd \ xampp \ gammu \ bin seperti berikut :

Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\dwijim>cd\xampp\gammu\bin

C:\xampp\gammu\bin>

Jika yang digunakan adalah pesawat Nokia 3100 yang berarti ada padakonfigurasi kedua, maka perintah yang digunakan adalahgammu 2 --identify . Jika segala sesuatunya sesuai dan benar maka

hasilnya adalah :

C:\xampp\gammu\bin>gammu 2 --identify

Manufacturer : Nokia

Model : 3100 (RH-19)

Firmware : 06.11 V (17-05-05)

Hardware : 3031

IMEI : 355697005124346

Original IMEI : 355697/00/512434/6

Manufactured : 11/2005

Product code : 0511825

4. Cek baca SMS. Untuk mencek apakah program Gammu bisa membacaSMS yang ada, berikan perintah gammu 2 --getallsms

209 SMS parts in 187 SMS sequences

Page 21: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN 21

Seandainya ini sukses, maka ada kemungkinan pesawat handphone yangterpasang dapat digunakan. Mengapa ? Sebab ada pesawat hand-phone yang SMS-nya bisa dibaca tapi ternyata tidak bisa ditransfer kedatabase.

5. Mengatur konfigurasi SMS daemon yang disimpan pada berkas berna-ma smsdrc. Contoh dari berkas smsdrc yang penting dapat dilihatseperti berikut ini :

[smsd]

PIN = 1234

#logfile = smsdlog

commtimeout = 1

sendtimeout = 10

receivefrequency = 0

resetfrequency = 0

deliveryreport = no

phoneid = Nokia3100

# -------------------- SETTINGS FOR --smsd MYSQL ----------------------

user = root

password =

pc = localhost

database = sms

6. Jalankan Gammu sebagai daemon untuk SMS. Untuk bisa mempros-es SMS baik yang masuk atau keluar, maka Gammu harus dijalankansebagai daemon. Syarat yang harus dipenuhi di sini adalah bahwaMySQL harus sudah terinstal dan dijalankan. Oleh karena itu, se-belum menjalankan proses ini, MySQL harus sudah diaktifkan melaluiXAMPP Control Panel. Selanjutkan jalankan Gammu dengan perin-tah : gammu 2 --smsd MYSQL smsdrc . Jika masih ada masalah salahsatu contohnya tampak seperti berikut :

gammu 2 --smsd MYSQL smsdrc

Initialisation failed, stopping Gammu smsd (Unknown error.:27)

Ini terjadi karena MySQL belum di-start di XAMPP Control Panel.Sedangkan jika sukses, maka di layar tidak ada tampilan apa-apa. Ke-mudian jika proses sudah selesai atau Gammu akan dimatikan, makapemakai tinggal menekan tombol Ctrl-C .

Page 22: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

22 BAB 2. SMS GATEWAY

gammu 2 --smsd MYSQL smsdrc

Press Ctrl+C to stop the program ...

Dari 5 kali memasang program Gammu di Microsoft Windows, 2 kali Gammumenyebabkan crash Microsoft Windows dan akhirnya Gammu-nya tidak bisadijalankan. Bahkan satu kali di antaranya menyebabkan Microsoft Windowsmesti diinstal ulang.

2.4.4 Instalasi Gammu di GNU Linux

Beberapa hal yang harus diperhatikan di antaranya adalah bahwa namafile pengaturan Gammu adalah .gammurc yang disimpan di home directory.Sedangkan file smsdrc bisa memiliki nama yang sama dengan apa yang adadi Microsoft Windows. File smsdrc ini juga diletakkan di home directory.Kemudian contoh pengaturan koneksinya seperti berikut :

port = /dev/ttyUSB0

; sewise suwe nggoleti akhire ketemu juga

; setting dku 5 nokia 3100 neng gnu linux

; dku 5 nokia 3100 di ubuntu

; dwi sakethi 5 januari 2010

connection = dku5fbus-nopower

Pengaturan konfigurasi seperti ini bisa juga digunakan untuk pesawat Nokia6070 (RM-166) di GNU Linux. Hasil pengetesan pesawat pada GNU Linux:

gammu 1 --identify

Manufacturer : Nokia

Model : 6070 (RM-166)

Firmware : 04.22 X (24-05-07)

Hardware : 4063

IMEI : 357698014289771

Original IMEI : 357698/01/428977/1

Manufactured : 11/2007

Product code : 0546161

UEM : 416

Sistem operasi yang digunakan pada contoh ini adalah GNU Linux (Ubuntu9.04 dengan kernel 2.6.27-14.41-generic. Beberapa waktu sebelumnya, per-nah dicoba menggunakan GNU Linux Ubuntu 8.10 masih belum berhasildikoneksikan memakai kabel DKU-5.

Page 23: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN 23

2.4.5 Menjalankan Contoh Sistem SMS Gateway

Perlu diingatkan kembali bahwa untuk menjalankan program SMS Gate-way ini, membutuhkan program-program lain yang harus sudah dijalankan,yaitu :

1. XAMPP melalui XAMPP Control Panel dan melakukan Starting padapilihan Apache dan MySQL.

2. Program Gammu yang dijalankan sebagai daemon.

3. Script SM@S@ yang tersimpan pada direktori SM@S@ serta basis datayang tersimpan pada direktori sms.

Untuk GNU Linux, bisa dicek apakah layanan yang diperlukan sudah siapdigunakan. Jika ada paket nmap maka bisa digunakan :

nmap localhost

Starting Nmap 4.62 ( http://nmap.org ) at 2010-01-05 13:12 WIT

mass_dns: warning: Unable to determine any DNS servers.

Reverse DNS is disabled. Try using --system-dns or specify valid

servers with --dns_servers

Interesting ports on localhost (127.0.0.1):

Not shown: 1710 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

443/tcp open https

631/tcp open ipp

3306/tcp open mysql

Nmap done: 1 IP address (1 host up) scanned in 0.199 seconds

Menjalankan program SMS Gateway memerlukan perangkat browser. Pilih-lah browser kesukaan Anda seperti Mozilla, FireFox, Galeon, Opera, Internet

Explorer. Pada bagian Addres isilah dengan perintah : http://localhost/xampp/smasa ,

sehingga didapat tampilan seperti berikut :

Page 24: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

24 BAB 2. SMS GATEWAY

Gambar 2.8: Tampilan SM@S@

Untuk lebih mudah, maka sebaiknya SMS Gateway diletakkan pada posisidirektori seperti tersebut di atas. Meskipun pada dasarnya bisa diletakkandi tempat lain.

Page 25: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Bab 3

Membangun SMS Gateway

3.1 Basis Data Dasar SMS Gateway

Dalam sistem SMS Gateway yang menggunakan Gammu, terdapat basisdata dasar yang terdiri dari tabel-tabel seperti berikut:

+----------------------+

| daemons |

| gammu |

| inbox |

| outbox |

| outbox_multipart |

| pbk |

| pbk_groups |

| phones |

| sentitems |

+----------------------+

Tabel-tabel ini dibuat menggunakan skrip pembuatan tabel yang sudah dise-diakan oleh Gammu sesuai dengan versi Gammu masing-masing.

3.2 Mengirim SMS dengan SQL Langsung

Untuk mengirim SMS, proses yang paling penting adalah mengisi datake dalam tabel outbox. Pada tabel outbox-pun tidak perlu semua item datadiisi. Item data yang tidak boleh dilewatkan adalah:

1. DestinationNumber.Ini diisi dengan nomor tujuan dari pengiriman SMS ini.

25

Page 26: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

26 BAB 3. MEMBANGUN SMS GATEWAY

2. TextDecoded.Ini diisi dengan isi dari SMS yang akan dikirim.

3. Class.Dalam hal ini, jenis SMS adalah SMS biasa, jadi Class diisi dengannilai -1.

4. Coding.Untuk coding ini, nilai yang diberikan adalah ’Default No Compression’.

Nilai-nilai tadi bisa diisikan secara langsung menggunakan perintah SQL pa-da program MySQL (dalam masalah ini, digunakan perangkat Xampp yangdi dalamnya sudah tercakup program MySQL). Contoh :

mysql> insert into outbox(DestinationNumber,TextDecoded,Coding,Class)

-> values

-> (’0816403432’,’Kirim SMS menggunakan program Gammu’,

-> ’Default_No_Compression’,-1);

Query OK, 1 row affected, 1 warning (0.03 sec)

Jika program Gammu belum dijalanak, maka jalankan program Gammu.Tentu saja Gammu sudah dikonfigurasi dengan benar. Beberapa contohmenjalankan program Gammu:

1. Gammu 1.21.

gammu 1 --mysql smsd smsdrc

2. Gammu 1.30.

gammu-smsd -c smsdrc -f 11

Ini perlu menjadi perhatian juga, karena berbeda versi Gammu, terkadangberbeda pula cara menjalankannya.

Page 27: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

3.3. MENGIRIM SMS PENDEK DENGAN PHP 27

3.3 Mengirim SMS Pendek dengan PHP

Pada contoh kali ini, akan dibuat dua buah berkas .php. Berkas perta-ma merupakan program PHP untuk menampilkan form isian dari item-itemuntuk mengirim SMS yang meliputi nomor tujuan, banyaknya SMS yangakan dikirim (dalam hal ini dimungkinkan mengirim banyak SMS ke satunomor) dan terakhir isi SMS itu sendiri. Kemudian berkas kedua adalahuntuk memasukkan nilai-nilai tadi ke dalam tabel outbox.

Gambar 3.1: Form Isian SMS

Program untuk form tersebut :

<title>Modul Kirim SMS </title>

<h1>Modul Kirim SMS</h1>

<?

/* ------------------------------------------------------------

file : xisian_sms_bomber.php

untuk membuat menu pilihan akan dikirim ke mana

------------------------------------------------------------ */

// $konek = mysql_connect(’localhost’,’root’,’’);

echo "<form method=POST action=xproses_sms_bomber.php>";

echo "<table border=1>";

echo "<tr><td>Kirim ke</td>";

echo "<td>: <input type=text value=’+628’ name=nomor_target

size=18 maxlength=18> </td>";

echo "<tr><td>Jumlah SMS</td><td> :

<input type=text value=1 name=jumlah_sms size=4 maxlength=4></td></tr>";

echo "<tr><td>Isi SMS</td>";

echo "<td> : <input type=text value=’dwi sakethi : ’

name=isi_sms size=50 maxlength=160>

</td></tr>";

Page 28: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

28 BAB 3. MEMBANGUN SMS GATEWAY

echo "<tr><td colspan=2 align=left>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp

<input type=submit value=Kirim></td></tr>";

echo "</table>";

echo "</form>";

?>

Sesuai dengan perintah action, maka skrip ini akan menjalankan berkasbernama xproses sms bomber.php.

<?

include "xkonek.php";

echo "<title>Pengiriman SMS ke satu nomor tujuan </title>";

extract($_POST);

$jumlah_sms = 1;

$nomor_target=trim($nomor_target);

if (substr($nomor_target,0,1)==’0’)

{

$nomor_target=’62’.substr($nomor_target,1,17);

}

if ($tanda_reply==’ya’)

{ $nomor_target=’+’.$nomor_target; }

for ($i=0;$i<$jumlah_sms;$i++)

{

$rekam_sms = "

insert into outbox(TextDecoded,Coding,

DestinationNumber,Class)

values

(’$isi_sms’,’Default_No_Compression’,

’$nomor_target’,-1)

";

mysql_query($rekam_sms);

echo "$nomor_target - $isi_sms";

}

?>

Setelah program Gammu juga dieksekusi dan proses sukses, maka data yangsebelumnya dimasukkan ke dalam tabel outbox, data ini kemudian oleh Gam-mu akan ditransfer ke dalam tabel sentitems. Dengan demikian, maknanyaadalah bahwa SMS tersebut sudah dikirim ke nomor yang dituju.

Page 29: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

3.4. MENGIRIM SMS PANJANG DENGAN PHP 29

3.4 Mengirim SMS Panjang dengan PHP

SMS panjang yang dimaksudkan di sini adalah SMS yang isinya lebihdari 160 karakter. Panjang 160 karakter ini merupakan standar panjangSMS. Jika isi SMS lebih dari 160 karakter, maka akan dihitung sebagai keli-patannya. Pengiriman SMS panjang melibatkan dua buah tabel dari Gam-mu yaitu outbox dan outbox multipart. Untuk SMS panjang ini, nilai yangharus diperhatikan dari tabel outbox adalah kolom yang bernama MultiPart.Jika MultiPart ini berisi nilai true, berarti SMS ini merupakan SMS pan-jang yang mempunyai sambungan dan sambungan ini disimpan pada tabeloutbox multipart. Kedua tabel ini dihubungkan dengan kolom bernama ID.Sebagai tambahan maka pada tabel outbox multipart terdapat SequencePosi-tion yang menunjukkan urutan dari SMS. Contoh program untuk mengirimSMS panjang.

Gambar 3.2: Form Isian SMS Panjang

\\

<title>Modul SMS Bomber/Kirim Satu atau Banyak SMS</title>

<h1>Modul SMS Bomber/Kirim Satu atau Banyak SMS</h1>

<?

/* ------------------------------------------------------------

file : xisian_sms_bomber.php

untuk membuat menu pilihan akan dikirim ke mana

------------------------------------------------------------ */

// $konek = mysql_connect(’localhost’,’root’,’’);

echo "<form method=POST action=xproses_sms_bomber.php>";

echo "<table border=1>";

echo "<tr><td>Kirim ke</td>";

echo "<td>: <input type=text value=’+628’ name=nomor_target

size=18 maxlength=18> </td>";

Page 30: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

30 BAB 3. MEMBANGUN SMS GATEWAY

echo "<tr><td>Jumlah SMS</td><td> :

<input type=text value=1 name=jumlah_sms size=4 maxlength=4></td></tr>";

echo "<tr><td>Isi SMS</td>";

echo "<td> <textarea name=’isi_sms’ id=’isi_sms’ cols=’100’ rows=’5’>dwi sakethi : </textarea>

</td></tr>";

echo "<tr><td colspan=2 align=left>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp

<input type=submit value=Kirim></td></tr>";

echo "</table>";

echo "<input type=hidden name=kelas value=-1>";

echo "</form>";

?>

Kemudian untuk memasukkan ke dalam tabel outbox dan tabel outbox multipart :

<?

include "xkonek.php";

echo "<title>Pengiriman SMS ke satu nomor tujuan </title>";

extract($_POST);

//$jumlah_sms = 1;

$nomor_target=trim($nomor_target);

if (substr($nomor_target,0,1)==’0’)

{

$nomor_target=’62’.substr($nomor_target,1,17);

}

if ($tanda_reply==’ya’)

{ $nomor_target=’+’.$nomor_target; }

// memotong sms per 153 karakter

$potongan_sms = str_split($isi_sms,153);

// menghitung jumlah potongan per 153 karakter

$jml_potongan = ceil(strlen($isi_sms)/153);

for ($i=0;$i<$jumlah_sms;$i++)

{

// proses untuk mendapatkan ID record yang akan disisipkan ke tabel OUTBOX

$qry_outbox="show table status like ’outbox’";

$hasil = mysql_query($qry_outbox);

$datane = mysql_fetch_array($hasil);

$newID = $datane[’Auto_increment’];

// echo "ID auto : $newID <br>";

Page 31: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

3.4. MENGIRIM SMS PANJANG DENGAN PHP 31

// echo "$no_proses -";

// echo "<tr><td align=right>$no_proses</td>

// <td>$nomor_target</td><td>$nama_pengirim</td>

// <td>$isi_sms </td><tr>";

/* sisipkan sms yang akan dikirim ke outbox */

for ($ini=1;$ini<=$jml_potongan;$ini++)

{

$udh = "050003A7".sprintf("%02s", $jml_potongan).sprintf("%02s",$ini);

if ($ini==1) // sms awal

{

$rekam_sms = "insert into outbox(DestinationNumber,UDH,TextDecoded,ID,

MultiPart,CreatorID,Coding) values

(’$nomor_target’,’$udh’,’$potongan_sms[0]’,$newID,

’true’,’dwijim’,’Default_No_Compression’)";

}

else // sms berikutnya

{

$potongan_sekarang = $ini - 1;

$rekam_sms = "insert into outbox_multipart(UDH,TextDecoded,ID,

SequencePosition,Coding,Class) values

(’$udh’,’$potongan_sms[$potongan_sekarang]’,$newID,$ini,

’Default_No_Compression’,$kelas)";

}

$hasil_rekam = mysql_query($rekam_sms);

if (!$hasil_rekam)

{

echo "Data gagal direkam ke outbox atau outbox_multipart - potongan $ini. ";

}

else

{

echo "Data berhasil direkam ke outbox atau outbox_multipart - potongan $ini.";

}

}

echo "$nomor_target - $isi_sms";

}

?>

Page 32: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

32 BAB 3. MEMBANGUN SMS GATEWAY

Page 33: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Bab 4

PHP Maker

PHP Maker dalam pengembangan SMS Gateway ini bisa digunakan un-tuk mempermudah pemeliharaan data-data seperti SMS masuk, SMS keluardan sebagainya. Sedangkan untuk hal-hal yang sifatnya suatu proses, makaperlu dibuat skrip sendiri.

33

Page 34: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

34 BAB 4. PHP MAKER

Page 35: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Bab 5

Mengolah SMS Masuk

SMS yang masuk ke dalam sistem tentu akan bisa diolah sebagaimanahalnya data pada umumnya. Bedanya adalah bahwa data ini dimasukkanmenggunakan sarana SMS. Sebelum bisa mengolah, harus sudah ditentukanformat SMS yang harus dikirim oleh pengguna sistem.

5.1 Menghitung Banyaknya SMS dengan Isi

yang Sama

Salah satu tugas yang diberikan kepada mahasiswa adalah mengirimkan200 SMS dengan isi yang sama ke nomor yang sudah ditentukan. Untukmengecek hasil tugas ini, maka dibutuhkan program untuk menghitung be-rapa banyak SMS yang dikirim dengan ketentuan isi SMS harus sama dantidak lebih dari 145 karakter (SMS yang pendek saja). Contoh penyelesainuntuk masalah ini:

<?php

/* ----------------------------------------------------------

program untuk menghitung banyaknya SMS yang masuk

dengan isi SMS yang sama, ini terkait dengan tugas

untuk mengirim SMS sebanyak 212 kali dengan isi SMS

yang sama.

nama berkas : rekap__sms.php

last editing : 29 november 2011

program ini memerlukan tabel inbox sesuai standar gammu

dan tabel jumlah_sms

+---------+-----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

35

Page 36: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

36 BAB 5. MENGOLAH SMS MASUK

+---------+-----------+------+-----+---------+-------+

| isi_sms | char(160) | NO | PRI | NULL | |

| jumlah | int(3) | YES | | NULL | |

+---------+-----------+------+-----+---------+-------+

---------------------------------------------------------- */

mysql_connect(’localhost’,’root’,’’);

// koneksi ke server basis data

mysql_select_db(’bisnis_sms’);

// memilih basis data yang akan digunakan

mysql_query("truncate table jumlah_sms");

// menghapus isi tabek rekap supaya diawalai dari posisi netral

$kueri = "select TextDecoded,SenderNumber from inbox

where day(ReceivingDateTime)=23 or

day(ReceivingDateTime)=24 ";

// kueri untuk membaca isi sms pada tabel inbox

// pada sms yang masuk tanggal 23 atau 24

$hasil_kueri = mysql_query($kueri);

// hasil kueri disimpan ke suatu variabel

while ($isi_sms = mysql_fetch_row($hasil_kueri))

// memotong-motong hasil kueri dan diloop

// dari data pertama sampai data terakhir

{

// echo "$isi_sms[0] - $isi_sms[1] ";

$ada = 0;

// untuk penanda isi sms sudah ada atau belum

$kueri_cari = "select isi_sms from jumlah_sms

where isi_sms = ’$isi_sms[0]’

";

// mencari isi SMS yang sama

$hasil_cari = mysql_query($kueri_cari);

while ($cari = mysql_fetch_row($hasil_cari))

{ $ada = 1; }

Page 37: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

5.2. MENGHITUNG BANYAKNYA SMS YANG MASUK PER JAM 37

// jika ada, masuk looping, $ada diganti nilainya

if ($ada==0)

{

$kueri_simpan = "insert into jumlah_sms(isi_sms,jumlah)

values (’$isi_sms[0]’,1)";

mysql_query($kueri_simpan);

// dari baru maka insert into dan nilainya awal 1

}

else

{

$kueri_simpan = "update jumlah_sms set jumlah=jumlah+1

where isi_sms =’$isi_sms[0]’";

mysql_query($kueri_simpan);

// data sudah ada maka jumlahnya ditambah dengan 1

}

}

?>

5.2 Menghitung Banyaknya SMS yang Ma-

suk per Jam

Contoh ini sebenarnya untuk iseng-iseng saja karena ada pertanyaan den-gan masalah yang seperti itu. Jadi ingin diketahui berapa banyak SMS yangmasuk tiap jam. Kriteria ini bisa per hari dan per bulan, atau tiap tang-gal tanpa memperhatikan bulan dan sebagainya tergantung kriteria masalahyang diberikan. Untuk masalah seperti ini, berikut contoh penyelesaiannya:

<?php

/* ----------------------------------------------------------

program untuk menghitung banyaknya SMS yang masuk

tiap jam pada hari dan bulan tertentu.

pada contoh ini, belum memperhatikan tahun !!!!!!

nama berkas : jumlah-sms-tiap-jam.php

first editing : 28 januari 2012

last editing : 29 januari 2012

program ini memerlukan tabel inbox sesuai standar gammu

dan tabel jumlah_sms

+---------+-----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

Page 38: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

38 BAB 5. MENGOLAH SMS MASUK

+---------+-----------+------+-----+---------+-------+

| isi_sms | char(160) | NO | PRI | NULL | |

| jumlah | int(3) | YES | | NULL | |

+---------+-----------+------+-----+---------+-------+

---------------------------------------------------------- */

mysql_connect(’localhost’,’root’,’’);

// koneksi ke server basis data

mysql_select_db(’bisnis_sms’);

// memilih basis data yang akan digunakan

mysql_query("truncate table jumlah_sms");

// menghapus isi tabek rekap supaya diawalai dari posisi netral

$kueri = "select ReceivingDateTime from inbox";

// kueri untuk membaca isi sms pada tabel inbox

$hasil_kueri = mysql_query($kueri);

// hasil kueri disimpan ke suatu variabel

while ($isi_sms = mysql_fetch_row($hasil_kueri))

// memotong-motong hasil kueri dan diloop

// dari data pertama sampai data terakhir

{

// echo "$isi_sms[0] - $isi_sms[1] ";

/*

format isi dari field ReceivingDateTime adalah :

yyyy-mm-dd hh:mm:ss

0123456789012345678

*/

$bulan = substr($isi_sms[0],5,2);

$hari = substr($isi_sms[0],8,2);

$jam = substr($isi_sms[0],11,2);

// mengambil nilai-nilai bulan, hari dan jam masuk SMS

echo "$bulan - $hari - $jam - ";

$ada = 0;

Page 39: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

5.2. MENGHITUNG BANYAKNYA SMS YANG MASUK PER JAM 39

// untuk penanda isi sms sudah ada atau belum

$kueri_cari = "select jumlah from jumlah_sms

where bulan=$bulan and tanggal=$hari

and jam=$jam

";

// mencek jumlah sms pada suatu hari pada suatu bulan

// dan jam tertentu

$hasil_cari = mysql_query($kueri_cari);

while ($cari = mysql_fetch_row($hasil_cari))

{ $ada = 1; }

// jika ada, masuk looping, $ada diganti nilainya

if ($ada==0)

{

$kueri_simpan = "insert into jumlah_sms(bulan,tanggal,jam,jumlah)

values ($bulan,$hari,$jam,1)";

mysql_query($kueri_simpan);

// dari baru maka insert into dan nilainya awal 1

}

else

{

$kueri_simpan = "update jumlah set jumlah=jumlah+1

where

bulan = $bulan and

tanggal = $hari and

jam = $jam

";

mysql_query($kueri_simpan);

// data sudah ada maka jumlahnya ditambah dengan 1

}

}

echo "Untuk melihat hasilnya silahkan lihat isi tabel jumlah_sms";

?>

Page 40: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

40 BAB 5. MENGOLAH SMS MASUK

5.3 SMS Center Nilai

Di negara Indonesia ini banyak terdapat perguruan tinggi negeri danswasta. Salah satu peluang yang bisa dimanfaatkan adalah mengembangkanSMS Center untuk informasi nilai mahasiswa. Sebagian besar perguruantinggi sudah memiliki sistem informasi untuk mengolah nilai mahasiswa.Dengan SMS Center ini, tinggal bagaimana mengelola data nilai ini un-tuk bisa dikirim menggunakan media SMS. Berikut ini contoh skrip untukmenerima SMS dan kemudian mengirim kembali balasan sesuai dengan per-mintaan terhadap nilai. Pada kesempatan ini, belum akan dibahas tentangformat SMS yang harus dikirim oleh mahasiswa.

<script>

<!--

/*

Auto Refresh Page with Time script

By JavaScript Kit (javascriptkit.com)

Over 200+ free scripts here!

enter refresh time in "minutes:seconds" Minutes should range from 0 to inifinity.

Seconds should range from 0 to 59

*/

var limit="1:00"

if (document.images){

var parselimit=limit.split(":")

parselimit=parselimit[0]*60+parselimit[1]*1

}

function beginrefresh(){

if (!document.images)

return

if (parselimit==1)

window.location.reload()

else{

parselimit-=1

curmin=Math.floor(parselimit/60)

cursec=parselimit%60

Page 41: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

5.3. SMS CENTER NILAI 41

if (curmin!=0)

curtime=curmin+" menit dan "+cursec+" detik lagi untuk menyegarkan proses!"

else

curtime=cursec+" detik lagi untuk menyegarkan proses!"

window.status=curtime

setTimeout("beginrefresh()",360)

// setTimeout("beginrefresh()",999999)

//

// ini yang untuk menentukan berapa lama waktu refresh otomatis ...

// dwi sakethi

}

}

window.onload=beginrefresh

//-->

</script>

<body bgcolor="CCCCFF">

<?

include "koneksi.php";

include "fungsi.php";

echo "<title>Modul penjawab otomatis untuk SMS nilai ... </title>";

echo "<h1>Modul penjawab otomatis untuk SMS nilai ... </h1>";

$jumlah_potongan = jumlah_potongan();

$cari_data_sms = "

select TextDecoded,SenderNumber,ReceivingDateTime,ID,

RecipientID

from inbox

where dijawab=’Belum’

";

$hasil_cari_data_sms = mysql_query($cari_data_sms);

$ada = 0;

$kelas = -1;

while ($data_inbox=mysql_fetch_row($hasil_cari_data_sms))

{

// proses untuk memotong-motong isi sms menjadi detail isi sms sesuai format

Page 42: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

42 BAB 5. MENGOLAH SMS MASUK

/*

jika format data tidak sesuai, maka sms tidak akan diproses

berapa kali ketemu karakter titik .

*/

$jumlah_item = substr_count($data_inbox[0],’#’);

if ($jumlah_item!=$jumlah_potongan)

{ $data_inbox[0]=str_replace(’.’,’#’,$data_inbox[0]);}

$data_inbox[0] = strtolower($data_inbox[0]);

$potongan = explode(’#’,trim($data_inbox[0]));

$stkip = $potongan[0];

$npm = $potongan[1];

$semester = $potongan[2];

$tahun = $potongan[3];

$nomor_hp = $data_inbox[1];

$id = $data_inbox[3];

$nilai_smt = round(strval($semester)/2);

if (($nilai_smt*2)==strval($semester))

{

$semester=’2’;

}

else

{

$semester=’1’;

}

if (substr($data_inbox[0],0,5)!=’stkip’)

{ continue;}

echo "potongan : $jumlah_item";

// if ($jumlah_item<3)

if ($jumlah_item!=3)

{

$sms_salah = ’Sistem SMS Nilai Mahasiswa dikembangkan oleh dwi sakethi

0816-403-432. Format SMS salah. ’;

$sms_salah = $sms_salah.’Format yang benar: stkip#npm#semester#tahun’;

// $sms_salah = ’Auto replay ... PERCOBAAN ... Sistem SMS dikembangkan oleh dwi sakethi 0816-403-432. Format SMS salah ...’;

$rekam_sms = "insert into outbox (DestinationNumber,TextDecoded,CreatorID,Coding,Class) values

(’$nomor_hp’,’$sms_salah’,’dwijim’,’Default_No_Compression’,$kelas)";

mysql_query($rekam_sms);

/* -----------------------------------------------------------------------------

Page 43: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

5.3. SMS CENTER NILAI 43

yang sudah ditransfer maka field Ditransfer diisi dengan Sudah

kalo yang belum ditransfer tandanya berisi Belum

----------------------------------------------------------------------------- */

$sudah_ditransfer = "

insert into kumpulan_sms(TextDecoded,SenderNumber,ReceivingDateTime)

values

(’$data_inbox[0]’,’$data_inbox[1]’,’$data_inbox[2]’)

";

$hasil_rekam = mysql_query($sudah_ditransfer);

$sudah_ditransfer = "

delete from inbox

where ID=$id

";

$hasil_rekam = mysql_query($sudah_ditransfer);

// if (!$hasil_rekam) { echo "gagal update Direkam dengan Sudah"; continue;}

// echo "$mID kode inbox <br>";

continue;

}

echo "$data_inbox[0] - $stkip - $npm - $semester - $tahun - $nomor_hp<br>";

if ( ($semester!=’1’) && ($semester!=’2’) )

{

$sms_salah = ’Semester diisi dengan 1 atau 2. Silahkan dicoba lagi! Sistem SMS dikembangkan oleh dwi sakethi 0816-403-432.’;

$rekam_sms = "insert into outbox (DestinationNumber,TextDecoded,CreatorID,Coding,Class) values

(’$nomor_hp’,’$sms_salah’,’dwijim’,’Default_No_Compression’,$kelas)";

mysql_query($rekam_sms);

/* -----------------------------------------------------------------------------

yang sudah ditransfer maka field Ditransfer diisi dengan Sudah

kalo yang belum ditransfer tandanya berisi Belum

----------------------------------------------------------------------------- */

$sudah_ditransfer = "

insert into kumpulan_sms(TextDecoded,SenderNumber,ReceivingDateTime)

values

(’$data_inbox[0]’,’$data_inbox[1]’,’$data_inbox[2]’)

";

$hasil_rekam = mysql_query($sudah_ditransfer);

$sudah_ditransfer = "

Page 44: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

44 BAB 5. MENGOLAH SMS MASUK

delete from inbox

where ID=$id

";

$hasil_rekam = mysql_query($sudah_ditransfer);

// if (!$hasil_rekam) { echo "gagal update Direkam dengan Sudah"; continue;}

// echo "$mID kode inbox <br>";

continue;

}

/* -----------------------------------------------------------------------------

cari nama di data mahasiswaa

----------------------------------------------------------------------------- */

$kueri_mhs = "select nama

from mahasiswa

where npm=’$npm’";

$hasil_kueri_mhs = mysql_query($kueri_mhs);

$ada_mhs = 0;

while ($data_mhs=mysql_fetch_row($hasil_kueri_mhs))

{

$ada_mhs = 1;

$nama = $data_mhs[0];

}

/* karena data mahasiswa tidak ada, mungkin karena npm salah */

if ($ada_mhs==0)

{

$isi_sms =’NPM : ’.$npm.’ tidak ada di dalam sistem. Silahkan dicek NPM-nya dan dikirim kembali ...’;

$kueri_sms_balasan = "

insert into outbox(Textdecoded,DestinationNumber,Coding,Class) values

(’$isi_sms’,’$nomor_hp’,

’Default_No_Compression’,$kelas)

";

mysql_query($kueri_sms_balasan);

/* -----------------------------------------------------------------------------

yang sudah ditransfer maka field Ditransfer diisi dengan Sudah

kalo yang belum ditransfer tandanya berisi Belum

----------------------------------------------------------------------------- */

$sudah_ditransfer = "

insert into kumpulan_sms(TextDecoded,SenderNumber,ReceivingDateTime)

values

(’$data_inbox[0]’,’$data_inbox[1]’,’$data_inbox[2]’)

Page 45: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

5.3. SMS CENTER NILAI 45

";

$hasil_rekam = mysql_query($sudah_ditransfer);

$sudah_ditransfer = "

delete from inbox

where ID=$id

";

$hasil_rekam = mysql_query($sudah_ditransfer);

// if (!$hasil_rekam) { echo "gagal update Direkam dengan Sudah"; continue;}

// echo "$mID kode inbox <br>";

continue;

}

else

{

$isi_sms =’Nilai mahasiswa ’.$npm.’-’.rtrim($nama).’ Smt. ’.$semester.’/’.$tahun.’ = ’;

/* cari data-data nilai mahasiswa */

$kueri_nilai="select kode_mata_kuliah,nilai

from nilai where npm=’$npm’ and

semester=’$semester’ and

tahun=’$tahun’";

$hasil_kueri_nilai = mysql_query($kueri_nilai);

$ada_nilai = 0;

$jml_nilai = 0;

$jml_sks = 0;

while ($data_nilai=mysql_fetch_row($hasil_kueri_nilai))

{

$kredit = sks_mata_kuliah($data_nilai[0]);

$isi_sms = $isi_sms.nama_mata_kuliah($data_nilai[0]).’(’.$kredit.’): ’.$data_nilai[1].’, ’;

if ($data_nilai[1]==’A’)

{

$jml_sks = $jml_sks + $kredit;

$jml_nilai = $jml_nilai + (4*$kredit);

}

elseif ($data_nilai[1]==’B’)

{

$jml_sks = $jml_sks + $kredit;

$jml_nilai = $jml_nilai + (3*$kredit);

}

elseif ($data_nilai[1]==’C’)

{

Page 46: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

46 BAB 5. MENGOLAH SMS MASUK

$jml_sks = $jml_sks + $kredit;

$jml_nilai = $jml_nilai + (2*$kredit);

}

elseif ($data_nilai[1]==’D’)

{

$jml_sks = $jml_sks + $kredit;

$jml_nilai = $jml_nilai + (1*$kredit);

}

elseif ($data_nilai[1]==’E’)

{

$jml_sks = $jml_sks + $kredit;

$jml_nilai = $jml_nilai + 0;

}

$ada_nilai = 1;

}

if ($ada_nilai==0)

{ $isi_sms = $isi_sms.’ Nilai tidak ada di sistem! Mungkin semester atau tahun keliru!’;}

else

{

$ip = $jml_nilai/$jml_sks;

$ipx = number_format($ip, 2, ’.’, ’’);

$isi_sms = $isi_sms.’ --- IP = ’.$jml_nilai.’/’.$jml_sks.’=’.$ipx;

}

echo "$isi_sms <br>";

// batas mulai perintah pengiriman sms

// memotong sms per 153 karakter

$potongan_sms = str_split($isi_sms,153);

// menghitung jumlah potongan per 153 karakter

$jml_potongan_sms = ceil(strlen($isi_sms)/153);

// proses untuk mendapatkan ID record yang akan disisipkan ke tabel OUTBOX

$qry_outbox="show table status like ’outbox’";

$hasil = mysql_query($qry_outbox);

$datane = mysql_fetch_array($hasil);

$newID = $datane[’Auto_increment’];

// echo "ID auto : $newID <br>";

/* sisipkan sms yang akan dikirim ke outbox */

for ($ini=1;$ini<=$jml_potongan_sms;$ini++)

{

Page 47: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

5.3. SMS CENTER NILAI 47

$udh = "050003A7".sprintf("%02s", $jml_potongan_sms).sprintf("%02s",$ini);

// $udh = "007003A7".sprintf("%02s", $jml_potongan_sms).sprintf("%02s",$ini);

if ($ini==1) // sms awal

{

$rekam_sms = "insert into outbox (DestinationNumber,UDH,TextDecoded,ID,

MultiPart,CreatorID,Coding,Class) values

(’$nomor_hp’,’$udh’,’$potongan_sms[0]’,$newID,

’true’,’dwijim’,’Default_No_Compression’,$kelas)

";

}

else // sms berikutnya

{

$potongan_sekarang = $ini - 1;

$rekam_sms = "insert into outbox_multipart(UDH,TextDecoded,ID,

SequencePosition,Coding,Class) values

(’$udh’,’$potongan_sms[$potongan_sekarang]’,$newID,$ini,

’Default_No_Compression’,$kelas)";

}

$hasil_rekam = mysql_query($rekam_sms);

if (!$hasil_rekam)

{

// echo "Data gagal direkam ke outbox atau outbox_multipart <br>";

}

else

{

// echo "Data berhasil direkam ke outbox atau outbox_multipart <br>";

}

}

/* -----------------------------------------------------------------------------

yang sudah ditransfer maka field Ditransfer diisi dengan Sudah

kalo yang belum ditransfer tandanya berisi Belum

----------------------------------------------------------------------------- */

$sudah_ditransfer = "

insert into kumpulan_sms(TextDecoded,SenderNumber,ReceivingDateTime)

values

(’$data_inbox[0]’,’$data_inbox[1]’,’$data_inbox[2]’)

";

Page 48: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

48 BAB 5. MENGOLAH SMS MASUK

$hasil_rekam = mysql_query($sudah_ditransfer);

$sudah_ditransfer = "

delete from inbox

where ID=$id

";

$hasil_rekam = mysql_query($sudah_ditransfer);

// if (!$hasil_rekam) { echo "gagal update Direkam dengan Sudah"; continue;}

// echo "$mID kode inbox <br>";

// echo "<br>";

/* -----------------------------------------------------------------------------

rekam nomor telepon ke data mahasiswa

----------------------------------------------------------------------------- */

if (($data_inbox[1]!=’+6281379661034’) && ($data_inbox[1]!=’+6281327986113’) && ($data_inbox[1]!=’+62816403432’))

{

$rekam_hp = "

update mahasiswa set nomor_hp=’$data_inbox[1]’

where

npm=’$npm’

";

$hasil_rekam = mysql_query($rekam_hp);

$kirim = "update mahasiswa set nomor_hp=\’".$data_inbox[1]."\’ where npm=\’".$npm."\’;";

// mysql_query("insert into outbox(DestinationNumber,TextDecoded,Coding,Class)

// values

// (’+6281957393557’,’$kirim’,’Default_No_Compression’,-1)");

// mysql_query("delete from sentitems where TextDecoded like ’update%’");

}

}

}

?>

<blink>Penting ... Penting ... Penting ... Penting ... </blink><br>

Prosedur untuk memproses SMS masuk ... <br>

Modul ini tidak boleh ditutup (close) dari menu browser (Internet Explorer/Opera/FireFox) supaya

tetap bisa menjawab SMS secara otomatis ... <br>

Page 49: Catatan Kuliah SMS Gateway · PDF fileBerfungsi sebagai SMS ... maka data dan program PHP masih ada dan tidak perlu dipasang ulang. ... Di sini terlihat bahwa USB kabel DKU-5 berapa

Bab 6

Penutup

Semoga semua yang ada di sini bisa memberi inspirasi kepada para pem-baca untuk berkreasi mengembangkan sesuatu yang bisa memberi manfaatuntuk kesejahteraan manusia tidak cuman di Indonesia tapi juga di semuabelahan bumi tempat manusia menginjakkan kakinya.

�á�Ò�

�Ê

�ª

��@

��H.

�P é�

��<�

�Y

�Ò

�m

�Ì'

�@

49