1 Catatan Kuliah SMS Gateway dwi sakethi bni 46 no Pebruari 20122 2 seratan meniko dipun ketik ngangge L A TEX3 Daftar Isi 1 Pendahuluan Latar Belakan...
ð è Y Ò m' é<Ë Y Ò mÌ '@ à@ á Òʪ Ë @ H. P é<Ë Y Ò mÌ '@ Õæ k QË @ á Ô gQË @ é<Ë @ Õæ. á Ó AJË AÔ« @ H AJ áÓ ð AJ
®K @ P ð Qå áÓ é<Ë AK. XñªK ð èQ®ªJ ð éJJ ªJ @ éË ø X Aë C¯ ÉÊ á Ó ð éË É Ó C¯ é<Ë @ ø Yî E é<Ë @ B @ éË@ B à @ YîD
éJK Am ð YÒ m× úΫ É Ñ ê ÊË @ é<Ë @ Èñ P @ YÒ m× à @ YîD @ ð ð áK Qk. Aê Ü Ï @ áÓ . ð èQ J.ºË @ éJÒ ª K úΫ úÍ Aª K é<Ë @ Q º á K YË @ Ð ñ K úÍ@ Ñ ê ªJ . K á Ó ð P A B @
3 Membangun SMS Gateway 3.1 Basis Data Dasar SMS Gateway . . . . 3.2 Mengirim SMS dengan SQL Langsung 3.3 Mengirim SMS Pendek dengan PHP . 3.4 Mengirim SMS Panjang dengan PHP .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
25 25 25 27 29
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4 PHP Maker
33
5 Mengolah SMS Masuk 5.1 Menghitung Banyaknya SMS dengan Isi yang Sama . . . . . . 5.2 Menghitung Banyaknya SMS yang Masuk per Jam . . . . . . 5.3 SMS Center Nilai . . . . . . . . . . . . . . . . . . . . . . . . .
Pada masa sekarang ini, penggunaan pesawat telepon selular sudah sangat luas di kalangan masyarakat. Dari kelas pemulung, tukang bakso, tukang siomay, pelajar, mahasiswa dan berbagai kalangan sudah terbiasa menggunakan pesawat telepon selular. Bahkan terkadang terlihat orang menggunakan telepon seluler ini dimana saja, sehingga terkesan orang lebih asyik dengan telepon selular dari pada memperhatikan lingkungan sekitarnya (berbincangbincang dengan orang lain). Salah satu fungsi dasar yang ada pada pesawat telepon selular yaitu pengiriman pesan singkat melalui sarana SMS. Lalu lintas SMS ini menjadi salah satu 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 secara mudah dalam kehidpan sehari-hari di masyarakat. Misalnya membuat SMS Gateway : 1. Untuk penyebaran informasi kegiatan atau koordinasi antar pengurus dalam suatu organisasi. 2. Informasi kegiatan sekolah, prestasi yang diperoleh suatu sekolah, jadwal ujian dan sebagainya. Dengan demikian orang tua siswa dapat mengantisipasi kegiatan-kegiatan sekolah secara lebih dini. 3. Melakukan polling atas suatu agenda yang sedang ramai diperbincangkan di masyarakat. 4. SMS Center suatu lembaga atau organisasi, misalnya untuk mengecek pembayaran pajak kendaraan di kantor SAMSAT, jadwal dokter di suatu rumah sakit. 7
8
BAB 1. PENDAHULUAN 5. Melakukan nasehat-nasehat, peringatan/ajakan kepada kebaikan.
Penerapan SMS Gateway bisa dikaitkan dengan isu Go Green. Penggunaan media elektronis ini akan mengurangi penggunaan kertas, jadi sampah kertas akan berkurang dan penebangan pohon untuk bahan pembuatan kertas juga menjadi berkurang.
Bab 2 SMS Gateway 2.1
Pendahuluan
SMS Gateway merupakan suatu mekanisme yang menyediakan akses SMS dari dan ke pesawat selular.
2.2
Kebutuhan Peralatan
Selain jelas tentu saja SMS Gateway membutuhkan seperangkat komputer dan ada beberapa perangkat tambahan yang diperlukan yaitu : 1. Program Apache, PHP, dan MySQL yang sudah dipaket dalam bentuk program XAMPP atau PHP Triad atau LAMP. Yang penting dalam sistem tersedia Apache, Mysql, dan PHP. Sedangkan dalam contoh ini, digunakan XAMPP. Jika menggunakan GNU Linux maka paketpaket tersebut sudah tersedia tinggal diinstal saja. Pada contoh di sini digunakan Xampp Versi 1.6.8. 2. Program Gammu. Gammu digunakan untuk mentransfer SMS dari handphone ke database dan sebaliknya. Program Gammu ini bisa diunduh secara bebas dari internet. Alternatif bisa diunduh dari http://dwijim.staff.unila.ac.id pada bagian SMS Gateway. Gammu yang digunakan adalah Gammu Versi 1.21.0 untuk Microsoft Windows dan 1.20.0 untuk GNU Linux pada Ubuntu 9.04. Versi Gammu yang digunakan harus sesuai dengan versi basis data Gammu. Jika ada ketidaksesuaian, maka Gammu tidak bisa dieksekusi. 3. Perangkat handphone GSM yang dilengkapi kabel data atau koneksi lain seperti bluetooth, infrared. Dalam contoh di sini digunakan kabel 9
10
BAB 2. SMS GATEWAY data DKU-5 dan handphone Nokia 3100. Kabel DKU-5 lebih spesifik adalah kabel DKU-5 merk i-Tech yang memiliki fasilitas charger. Ada jenis kabel DKU-5 yang tidak bisa digunakan untuk koneksi. Sedangkan beberapa handphone yang sudah pernah digunakan adalah Nokia 6020, Nokia 6070, Motorola E398, dan Mikto. Untuk koneksi dengan kabel DKU-5 diperlukan driver yang biasanya disertakan ketika membeli kabel tersebut. Untuk pengguna, MS Windows, disarankan menggunakan SE. Sekarang ada alternatif lain seperti menggunakan USB model atau perangkat khusus untuk SMS Gateway. Bisa juga menggunakan USB modem yang didukung oleh Gammu atau perangkat khusus untuk SMS seperti modem WaveCom. 4. Perangkat lunak PHP Maker. Perangkat ini digunakan untuk mempermudah pengembangan script PHP yang akan dilakukan. 5. Nomor handphone GSM. Nomor GSM yang bisa digunakan bebas, bisa kartu apa saja. Akan tetapi, pada akhirnya nanti, ada kartu yang bisa digunakan terus menerus dan ada kartu yang kemudian tidak bisa lagi digunakan untuk mengirim SMS, meskipun bisa digunakan untuk menerima atau melakukan panggilan. 6. Yang terakhir tentu saja program atau script PHP, program inilah yang menjadi kajian dalam tulisan ini.
Perbedaan versi memerlukan kreatifitas dalam instalasi dan menjalankan program yang terkadang ’sedikit’ menyita waktu untuk mencari cara yang benar.
2.3
Pesawat Handphone yang Sudah Dicoba
Beberapa jenis pesawat handphone yang sudah dicoba dan berhasil digunakan 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 GNU Linux belum dicoba.
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 digunakan untuk SMS Gateway. 7. Sony Ericsson Z550 (Windows dan GNU Linux). Berfungsi sebagai SMS Gateway artinya bisa digunakan untuk mengirim dan menerima SMS serta memasukkan SMS tersebut ke basis data MySQL. Karena ada handphone yang dikenali akan tetapi tidak bisa mengirim SMS meskipun SMS yang ada bisa dibaca. Merk-merk yang ditulis di sini tentu saja bukan pesan sponsor :-) tapi untuk mempermudah bagi yang ingin mencoba.
2.4 2.4.1
Instalasi Perangkat yang Dibutuhkan Instalasi XAMPP
Program ApacheFriends XAMPP (Basispaket) version 1.6.8 merupakan suatu paket program yang berisi Apache+PHP+MySQL yang merupakan program-program yang dibutuhkan dalam sistem ini. Bisa juga menggunakan versi terbaru dari XAMPP. Selain itu, alternatif lain juga bisa menggunakan paket program AppServ atau PHPTriad. Kedua program ini, mempunyai fungsi yang sama dengan XAMPP. Untuk melakukan instalasi pada contoh ini, carilah berkas bernama xampp-win32-1.6.8-installer kemudian diklik ganda atau menekan tombol Enter . Untuk memudahkan proses, ikuti nilainilai 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 tersebut sehingga keluar menu Control Panel dari XAMPP. Dengan cara lain, bisa juga dengan mengklik Start-All Programs-Apache Friends-XAMPP dan seterusnya seperti pada gambar berikut : Pada menu Control Panel dari XAMPP, kemudian aktifkan program Apache dan MySQL dengan mengklik tombol Start di samping kanan dari tulisan Apache dan MySQL.
12
BAB 2. SMS GATEWAY
Gambar 2.1: Ikom XAMPP
Gambar 2.2: XAMPP via Start
Gambar 2.3: Panel XAMPP
2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN
13
Untuk GNU Linux instalasi paket Apache+PHP+MySQL bisa dilakukan dengan mudah menggunakan Synaptic Package Manager atau bagi yang terbiasa dengan text based bisa menggunakan perintah apt-get-install.
2.4.2
Pesawat Handphone
Selama ini, penggunaan pesawat selular untuk sistem SMS Gateway pada sistem operasi GNU Linux, tidak memerlukan driver secara khusus. Perangkatperangkat yang digunakan, ketika disambungkan dengan sistem komputer, sudah langsung terdeteksi. Sedangkan pada sistem operasi lain, ada yang perlu driver khusus sesuai dengan jenis dan tipe pesawat selular yang digunakan. Sony Ericsson Untuk pesawat Sony Ericsson, bisa digunakan PC Suite Sony Ericsson. Karena PC Suite ini, umumnya sesuai dengan berbagai jenis pesawat Sony Ericsson. Sedangkan jika menggunakan driver, harus digunakan driver yang sesuai. Nokia - Instalasi DKU-5 Kabel DKU-5 digunakan sebagai media koneksi data. Meskipun tentu saja tidak harus menggunakan media kabel ini. Tidak semua kabel DKU5 dapat digunakan untuk koneksi (meskipun sama-sama DKU-5). DKU-5 yang digunakan di sini memiliki kemampuan charger dan di sebelah paling kiri pada bagian ujungnya mempunyai kaki tembaga. Perhatikan gambar berikut, dimana sebelah kanan adalah DKU-5 yang bisa, dan sebelah kiri adalah DKU-5 yang tidak bisa digunakan. Driver biasanya disertakan ketika membeli kabel ini. Untuk instalasi kabel DKU-5, mula-mula masukkan kabel DKU-5 ini di komputer via USB dan ke handphone. Karena ini perangkat baru, maka akan muncul dialog dari sistem seperti ini :
14
BAB 2. SMS GATEWAY
Gambar 2.4: Perangkat Baru
Pilihlah Yes, this time only, kemudian pilihlah tombol Next. Pada pilihan berikutnya, isilah dengan pilihan Install from a list or specific location.
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 contreng, berilah tanda contreng pada Search removable media. Masukkan CD-ROM driver kabel DKU-5 ke pemutar CD-ROM dan kemudian pilihlah tombol Next. Jika dalam prosesnya ada keterangan seperti berikut :
16
BAB 2. SMS GATEWAY
Gambar 2.6: Teruskan Proses Instal DKU-5 Pilihlah Continue anyway ... Dan terakhir tentu saja Finish. Setelah kabel DKU-5 terinstal, penting untuk mengetahui pada port apa dan berapa kabel tersebut terpasang. Untuk itu, klik tombol Start, lantas pada posisi My Computer, lakukan klik kanan dan pilih Properties. Lantas pada pilihan yang ada, klik pada Device Manager dan pilihlah Ports (COM&LPT)
2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN
Gambar 2.7: Port DKU-5
17
18
BAB 2. SMS GATEWAY
Di sini terlihat bahwa USB kabel DKU-5 berapa pada port COM6. Informasi 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 pengaturan port-nya akan berubah-ubah lagi dan harus disesuaikan pada pengaturan gammurc. Instalasi DKU-5 di GNU Linux Pada sistem operasi GNU Linux Ubuntu Versi 9.04 kabel DKU-5 sudah didukung penuh. Tinggal masukkan kabel ke sistem maka akan terdeteksi oleh GNU Linux. Untuk menceknya, dari terminal bisa diberikan perintah dmesg | grep ark. [ [ [ [ [
Marking TSC unstable due to TSC halts in idle usbserial: USB Serial support registered for ark3116 ark3116 3-2:0.0: ark3116 converter detected usb 3-2: ark3116 converter now attached to ttyUSB0 usbcore: registered new interface driver ark3116
Instalasi Gammu
Gammu merupakan sistem untuk mentransfer SMS dari handphone ke database dan sebaliknya. Salah satu model database yang didukung oleh Gammu adalah MySQL. Gammu ini dapat diunduh di internet. Gammu yang digunakan pada contoh ini adalah Gammu Versi 1.21.0. Untuk versi yang berbeda, boleh jadi perintah yang digunakan berbeda atau sama dengan contoh yang ada di sini. Pada prinsipnya Gammu ini cukup disalin ke direktori tertentu kemudian tinggal memodifikasi berkas bernama gammurc dan smsdrc. Kedua berkas tersebut merupakan berkas yang berisi pengaturan dari program Gammu. Untuk kemudahan, Gammu dapat diinstal apa adanya seperti pada petunjuk pada dokumen ini. Hal penting yang harus diperhatikan yaitu bahwa isi dari basis data untuk sistem yang akan digunakan, versinya harus sesuai dengan versi dari Gammu yang akan digunakan. Jika versi tidak sesuai, maka program Gammu tidak akan bisa digunakan. 1. Program Gammu ini cukup diekstrak saja dari masternya ke suatu direktori pada komputer yang akan digunakan. 2. Untuk sistem operasi Windows, pada direktori bin di direktori gammu tersebut, cari dan perbaikilah berkas gammurc. Untuk melakukan ini,
2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN
19
program yang bisa digunakan adalah Notepad atau Wordpad, dan bisa juga dengan program edit.exe. Perbaikan berkas gammurc tergantung kepada jenis pesawat handphone yang digunakan, kabel data dan port dari kabel data atau media lainnya. Pada contoh ini digunakan kabel DKU-5 dan pesawat Nokia 3100 serta Nokia 6020. Perlu diketahui juga, bahwa konfigurasi dalam berkas gammurc ini bisa dibuat dalam beberapa konfigurasi. Dengan demikian, tidak perlu selalu merubahubah konfigurasi jika pesawat handphone atau media komunikasi yang digunakan berubah. Isi dari berkas gammurc cukup panjang, di sini hanya 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
20
BAB 2. SMS GATEWAY Perhatikan tanda [gammu1] dan [gammu2]. Ini menunjukkan konfigurasi gammmu pertama dan kedua. Setelah dilakukan perubahan seperlunya, tentu saja jangan lupa untuk menyimpan berkas gammurc tersebut. Perbaikan yang penting adalah di bagian port dan connection. 3. Cek koneksi. Langkah ini merupakan langkah yang menentukan. Ada dua hal, yaitu apakah konfigurasi sudah benar dan apakah pesawat handphone yang digunakan didukung oleh program Gammu. Karena proses dengan Gammu ini dijalankan dari Command Prompt, maka terlebih dahulu klik Start-Run, kemudian isi dengan cmd dan menekan 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 pada konfigurasi kedua, maka perintah yang digunakan adalah gammu 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 membaca SMS yang ada, berikan perintah gammu 2 --getallsms 209 SMS parts in 187 SMS sequences
2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN
21
Seandainya ini sukses, maka ada kemungkinan pesawat handphone yang terpasang dapat digunakan. Mengapa ? Sebab ada pesawat handphone yang SMS-nya bisa dibaca tapi ternyata tidak bisa ditransfer ke database. 5. Mengatur konfigurasi SMS daemon yang disimpan pada berkas bernama smsdrc. Contoh dari berkas smsdrc yang penting dapat dilihat seperti 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 memproses SMS baik yang masuk atau keluar, maka Gammu harus dijalankan sebagai daemon. Syarat yang harus dipenuhi di sini adalah bahwa MySQL harus sudah terinstal dan dijalankan. Oleh karena itu, sebelum menjalankan proses ini, MySQL harus sudah diaktifkan melalui XAMPP Control Panel. Selanjutkan jalankan Gammu dengan perintah : gammu 2 --smsd MYSQL smsdrc . Jika masih ada masalah salah satu 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. Kemudian jika proses sudah selesai atau Gammu akan dimatikan, maka pemakai tinggal menekan tombol Ctrl-C .
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 Gammu menyebabkan crash Microsoft Windows dan akhirnya Gammu-nya tidak bisa dijalankan. Bahkan satu kali di antaranya menyebabkan Microsoft Windows mesti diinstal ulang.
2.4.4
Instalasi Gammu di GNU Linux
Beberapa hal yang harus diperhatikan di antaranya adalah bahwa nama file pengaturan Gammu adalah .gammurc yang disimpan di home directory. Sedangkan file smsdrc bisa memiliki nama yang sama dengan apa yang ada di 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 Nokia 6070 (RM-166) di GNU Linux. Hasil pengetesan pesawat pada GNU Linux : gammu 1 --identify Manufacturer Model Firmware Hardware IMEI Original IMEI Manufactured Product code UEM
: : : : : : : : :
Nokia 6070 (RM-166) 04.22 X (24-05-07) 4063 357698014289771 357698/01/428977/1 11/2007 0546161 416
Sistem operasi yang digunakan pada contoh ini adalah GNU Linux (Ubuntu 9.04 dengan kernel 2.6.27-14.41-generic. Beberapa waktu sebelumnya, pernah dicoba menggunakan GNU Linux Ubuntu 8.10 masih belum berhasil dikoneksikan memakai kabel DKU-5.
2.4. INSTALASI PERANGKAT YANG DIBUTUHKAN
2.4.5
23
Menjalankan Contoh Sistem SMS Gateway
Perlu diingatkan kembali bahwa untuk menjalankan program SMS Gateway ini, membutuhkan program-program lain yang harus sudah dijalankan, yaitu : 1. XAMPP melalui XAMPP Control Panel dan melakukan Starting pada pilihan Apache dan MySQL. 2. Program Gammu yang dijalankan sebagai daemon. 3. Script SM@S@ yang tersimpan pada direktori SM@S@ serta basis data yang tersimpan pada direktori sms. Untuk GNU Linux, bisa dicek apakah layanan yang diperlukan sudah siap digunakan. 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. Pilihlah 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 :
24
BAB 2. SMS GATEWAY
Gambar 2.8: Tampilan SM@S@ Untuk lebih mudah, maka sebaiknya SMS Gateway diletakkan pada posisi direktori seperti tersebut di atas. Meskipun pada dasarnya bisa diletakkan di tempat lain.
Bab 3 Membangun SMS Gateway 3.1
Basis Data Dasar SMS Gateway
Dalam sistem SMS Gateway yang menggunakan Gammu, terdapat basis data 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 disediakan oleh Gammu sesuai dengan versi Gammu masing-masing.
3.2
Mengirim SMS dengan SQL Langsung
Untuk mengirim SMS, proses yang paling penting adalah mengisi data ke dalam tabel outbox. Pada tabel outbox-pun tidak perlu semua item data diisi. Item data yang tidak boleh dilewatkan adalah: 1. DestinationNumber. Ini diisi dengan nomor tujuan dari pengiriman SMS ini. 25
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 dengan nilai -1. 4. Coding. Untuk coding ini, nilai yang diberikan adalah ’Default No Compression’.
Nilai-nilai tadi bisa diisikan secara langsung menggunakan perintah SQL pada program MySQL (dalam masalah ini, digunakan perangkat Xampp yang di 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 contoh menjalankan 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, terkadang berbeda pula cara menjalankannya.
3.3. MENGIRIM SMS PENDEK DENGAN PHP
3.3
27
Mengirim SMS Pendek dengan PHP
Pada contoh kali ini, akan dibuat dua buah berkas .php. Berkas pertama merupakan program PHP untuk menampilkan form isian dari item-item untuk mengirim SMS yang meliputi nomor tujuan, banyaknya SMS yang akan dikirim (dalam hal ini dimungkinkan mengirim banyak SMS ke satu nomor) dan terakhir isi SMS itu sendiri. Kemudian berkas kedua adalah untuk memasukkan nilai-nilai tadi ke dalam tabel outbox.
Gambar 3.1: Form Isian SMS Program untuk form tersebut : Modul Kirim SMS
Modul Kirim SMS
/* -----------------------------------------------------------file : xisian_sms_bomber.php untuk membuat menu pilihan akan dikirim ke mana ------------------------------------------------------------ */ // $konek = mysql_connect(’localhost’,’root’,’’); echo ""; ?> Sesuai dengan perintah action, maka skrip ini akan menjalankan berkas bernama xproses sms bomber.php.
include "xkonek.php"; echo "Pengiriman SMS ke satu nomor tujuan "; 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 yang sebelumnya dimasukkan ke dalam tabel outbox, data ini kemudian oleh Gammu akan ditransfer ke dalam tabel sentitems. Dengan demikian, maknanya adalah bahwa SMS tersebut sudah dikirim ke nomor yang dituju.
3.4. MENGIRIM SMS PANJANG DENGAN PHP
3.4
29
Mengirim SMS Panjang dengan PHP
SMS panjang yang dimaksudkan di sini adalah SMS yang isinya lebih dari 160 karakter. Panjang 160 karakter ini merupakan standar panjang SMS. Jika isi SMS lebih dari 160 karakter, maka akan dihitung sebagai kelipatannya. Pengiriman SMS panjang melibatkan dua buah tabel dari Gammu yaitu outbox dan outbox multipart. Untuk SMS panjang ini, nilai yang harus diperhatikan dari tabel outbox adalah kolom yang bernama MultiPart. Jika MultiPart ini berisi nilai true, berarti SMS ini merupakan SMS panjang yang mempunyai sambungan dan sambungan ini disimpan pada tabel outbox multipart. Kedua tabel ini dihubungkan dengan kolom bernama ID. Sebagai tambahan maka pada tabel outbox multipart terdapat SequencePosition yang menunjukkan urutan dari SMS. Contoh program untuk mengirim SMS panjang.
Gambar 3.2: Form Isian SMS Panjang \\ Modul SMS Bomber/Kirim Satu atau Banyak SMS
Modul SMS Bomber/Kirim Satu atau Banyak SMS
/* -----------------------------------------------------------file : xisian_sms_bomber.php untuk membuat menu pilihan akan dikirim ke mana ------------------------------------------------------------ */ // $konek = mysql_connect(’localhost’,’root’,’’); echo ""; ?> Kemudian untuk memasukkan ke dalam tabel outbox dan tabel outbox multipart: include "xkonek.php"; echo "Pengiriman SMS ke satu nomor tujuan "; 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 ";
3.4. MENGIRIM SMS PANJANG DENGAN PHP
// // // //
31
echo "$no_proses -"; echo "
$no_proses
$nomor_target
$nama_pengirim
$isi_sms
"; /* 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 - potong } else { echo "Data berhasil direkam ke outbox atau outbox_multipart - pot } } echo "$nomor_target - $isi_sms"; } ?>
32
BAB 3. MEMBANGUN SMS GATEWAY
Bab 4 PHP Maker PHP Maker dalam pengembangan SMS Gateway ini bisa digunakan untuk mempermudah pemeliharaan data-data seperti SMS masuk, SMS keluar dan sebagainya. Sedangkan untuk hal-hal yang sifatnya suatu proses, maka perlu dibuat skrip sendiri.
33
34
BAB 4. PHP MAKER
Bab 5 Mengolah SMS Masuk SMS yang masuk ke dalam sistem tentu akan bisa diolah sebagaimana halnya data pada umumnya. Bedanya adalah bahwa data ini dimasukkan menggunakan sarana SMS. Sebelum bisa mengolah, harus sudah ditentukan format SMS yang harus dikirim oleh pengguna sistem.
5.1
Menghitung Banyaknya SMS dengan Isi yang Sama
Salah satu tugas yang diberikan kepada mahasiswa adalah mengirimkan 200 SMS dengan isi yang sama ke nomor yang sudah ditentukan. Untuk mengecek hasil tugas ini, maka dibutuhkan program untuk menghitung berapa banyak SMS yang dikirim dengan ketentuan isi SMS harus sama dan tidak lebih dari 145 karakter (SMS yang pendek saja). Contoh penyelesain untuk masalah ini:
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 where day(ReceivingDateTime)=23 day(ReceivingDateTime)=24 // kueri untuk membaca isi sms pada tabel // pada sms yang masuk tanggal 23 atau 24
from inbox or "; 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] ";
$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; }
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 Masuk per Jam
Contoh ini sebenarnya untuk iseng-iseng saja karena ada pertanyaan dengan masalah yang seperti itu. Jadi ingin diketahui berapa banyak SMS yang masuk tiap jam. Kriteria ini bisa per hari dan per bulan, atau tiap tanggal tanpa memperhatikan bulan dan sebagainya tergantung kriteria masalah yang diberikan. Untuk masalah seperti ini, berikut contoh penyelesaiannya:
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;
";
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"; ?>
40
5.3
BAB 5. MENGOLAH SMS MASUK
SMS Center Nilai
Di negara Indonesia ini banyak terdapat perguruan tinggi negeri dan swasta. Salah satu peluang yang bisa dimanfaatkan adalah mengembangkan SMS Center untuk informasi nilai mahasiswa. Sebagian besar perguruan tinggi sudah memiliki sistem informasi untuk mengolah nilai mahasiswa. Dengan SMS Center ini, tinggal bagaimana mengelola data nilai ini untuk bisa dikirim menggunakan media SMS. Berikut ini contoh skrip untuk menerima SMS dan kemudian mengirim kembali balasan sesuai dengan permintaan terhadap nilai. Pada kesempatan ini, belum akan dibahas tentang format SMS yang harus dikirim oleh mahasiswa. <script>
enter refresh time in "minutes:seconds" Minutes should range from 0 to inifin 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
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 //--> include "koneksi.php"; include "fungsi.php"; echo "Modul penjawab otomatis untuk SMS nilai ... "; echo "
Modul penjawab otomatis untuk SMS nilai ...
"; $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
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 0816-403-432. Format SMS salah. ’; $sms_salah = $sms_salah.’Format yang benar: stkip#npm#semester $sms_salah = ’Auto replay ... PERCOBAAN ... Sistem SMS dikem $rekam_sms = "insert into outbox (DestinationNumber,TextDecode (’$nomor_hp’,’$sms_salah’,’dwijim’,’Default_No_C mysql_query($rekam_sms); /* -----------------------------------------------------------------
5.3. SMS CENTER NILAI
43
yang sudah ditransfer maka field Ditransfer diisi dengan Sudah kalo yang belum ditransfer tandanya berisi Belum ------------------------------------------------------------------------
$sudah_ditransfer = " delete from inbox where ID=$id "; $hasil_rekam = mysql_query($sudah_ditransfer); // if (!$hasil_rekam) { echo "gagal update Direkam dengan Sudah"; continu // echo "$mID kode inbox "; continue; } echo "$data_inbox[0] - $stkip - $npm - $semester - $tahun - $nomor_hp ";
if ( ($semester!=’1’) && ($semester!=’2’) ) { $sms_salah = ’Semester diisi dengan 1 atau 2. Silahkan dicoba lagi! S $rekam_sms = "insert into outbox (DestinationNumber,TextDecoded,Creat (’$nomor_hp’,’$sms_salah’,’dwijim’,’Default_No_Compress mysql_query($rekam_sms); /* -----------------------------------------------------------------------yang sudah ditransfer maka field Ditransfer diisi dengan Sudah kalo yang belum ditransfer tandanya berisi Belum ------------------------------------------------------------------------
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"; // echo "$mID kode inbox "; 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$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,Re values
$sudah_ditransfer = " delete from inbox where ID=$id "; $hasil_rekam = mysql_query($sudah_ditransfer); // if (!$hasil_rekam) { echo "gagal update Direkam dengan Sudah"; cont // echo "$mID kode inbox "; continue; } else
{ $isi_sms =’Nilai mahasiswa ’.$npm.’-’.rtrim($nama).’ Smt. ’.$semester.’/’.$tahu /* 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.’): 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’) {
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 seme else { $ip = $jml_nilai/$jml_sks; $ipx = number_format($ip, 2, ’.’, ’’); $isi_sms = $isi_sms.’ --- IP = ’.$jml_nilai.’/’.$jml_sks.’=’. } echo "$isi_sms "; // 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 $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 "; /* sisipkan sms yang akan dikirim ke outbox */ for ($ini=1;$ini<=$jml_potongan_sms;$ini++) {
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",$in if ($ini==1) // sms awal {
} 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 "; } else { echo "Data berhasil direkam ke outbox atau outbox_multipart
/* -----------------------------------------------------------------------yang sudah ditransfer maka field Ditransfer diisi dengan Sudah kalo yang belum ditransfer tandanya berisi Belum ------------------------------------------------------------------------
$sudah_ditransfer = " insert into kumpulan_sms(TextDecoded,SenderNumber,Receiving values (’$data_inbox[0]’,’$data_inbox[1]’,’$data_inbox[2]’) ";
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"; // echo "$mID kode inbox ";
// echo " "; /* ----------------------------------------------------------------rekam nomor telepon ke data mahasiswa ----------------------------------------------------------------if (($data_inbox[1]!=’+6281379661034’) && ($data_inbox[1]!=’+6281327 { $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]."\ mysql_query("insert into outbox(DestinationNumber,TextDecod values (’+6281957393557’,’$kirim’,’Default_No_Compres // mysql_query("delete from sentitems where TextDecoded like
// // // }
} } ?> Prosedur untuk memproses SMS masuk ... Modul ini tidak boleh ditutup (close) dari menu browser (Internet Explorer/Op tetap bisa menjawab SMS secara otomatis ...
Bab 6 Penutup Semoga semua yang ada di sini bisa memberi inspirasi kepada para pembaca untuk berkreasi mengembangkan sesuatu yang bisa memberi manfaat untuk kesejahteraan manusia tidak cuman di Indonesia tapi juga di semua belahan bumi tempat manusia menginjakkan kakinya.