implementasi sms autoreply gammu di database non mysql

Upload: zaiful-bahri

Post on 14-Jul-2015

320 views

Category:

Documents


0 download

TRANSCRIPT

Implementasi SMS Autoreply Gammu di Database Non MySQL (Studi Kasus MS. Access)January 1st, 2011 | by rosihanari | Cetak Artikel Ini

Niat hati ingin membuat postingan di penghujung tahun 2010 (31/12/2010), akan tetapi Allah SWT belum mengizinkan yang akhirnya postingan ini baru bisa dibuat di awal tahun 2011 But.. its OK, mudah-mudahan artikel ini bisa bermanfaat bagi Anda yang ingin belajar mengembangkan SMS Gateway dengan Gammu. Artikel kali ini tentang bagaimana cara mengimplementasikan SMS Auto Reply dengan Gammu di database selain MySQL. Dalam kasus ini, saya pilih database MS. Access sebagai master database untuk autoreply nya. Mungkin sebelumnya Anda mengira bahwa Gammu hanya bisa cocok dengan database MySQL. Memang sebenarnya Gammu bisa langsung terintegrasi pada 3 jenis database engine, yaitu MySQL, Posgre SQL, dan SQL lite. Ketiganya bisa langsung terintegrasi dengan Gammu karena di dalam Gammunya sendiri sudah terdapat library. Lantas bagaimana dengan database engine yang lain, seperti MS. Access, Oracle, MS SQL (SQL Server) dll? Untuk database engine yang lain pada prinsipnya bisa, akan tetapi dengan sedikit trik atau tidak secara langsung. Penasaran dengan triknya? OK simak artikel ini baik-baik ya. Dalam studi kasus ini, saya menggunakan database MS Access yang berisi data induk nilai mahasiswa untuk autoreply nya.

Tabel di MS. Access tersebut saya beri nama nilai dengan 3 field yaitu: kodemk, nim dan nilai. Untuk kodemk dan nim bertipe data text dan nilai bertipe data number. Dengan data di atas, saya akan membuat aplikasi SMS autoreply dengan Gammu yang memungkinkan seseorang bisa mengecek nilai mahasiswa pada matakuliah tertentu dengan format perintah SMS: NILAI#KODEMK#NIM. Sebagai contoh misalkan ada seseorang mengirim SMS dengan perintah: NILAI#MK001#M01, maka secara otomatis akan mendapat balasan SMS berupa nilai dari mahasiswa bernim M01 pada matakuliah berkode MK001 yaitu 90 . Nah bagaimana idenya untuk membuat sms auto reply tersebut? Idenya mudah sekali. Untuk mengimplementasikan konsep di atas, kita tetap menggunakan MySQL sebagai database untuk menerima dan mengirim SMS, mengingat Gammu hanya bisa terhubung langsung dengan 3 database seperti yang saya jelaskan di atas. Begitu SMS diterima oleh modem/hp, maka SMS akan masuk ke MySQL nya (di tabel INBOX nya Gammu). Selanjutnya SMS yang masuk ini kita baca dengan menggunakan program atau script untuk mendapatkan KODEMK dan NIM nya. KODEMK dan NIM ini nanti kita gunakan untuk mencari nilai di database MS. Access nya. Siapa yang melakukan pencarian nilai di MS. Accessnya? ya tentu saja script atau program yang kita buat dong, siapa lagi? Setelah nilai ketemu, selanjutnya nilai tersebut kita kirimkan dalam bentuk SMS melalui Gammu dengan cara menyisipkannya ke dalam tabel OUTBOX di database MySQL. Simpel bukan idenya? Dari ide di atas, tampak bahwa di dalam script yang akan kita buat itu terdapat 2 koneksi ke database engine yang berbeda, yaitu ke MySQL dan ke MS. Access. Lantas bisakah hal itu diterapkan? He 3x ya jelas bisa dong. Untuk koneksi ke MS. Accessnya dari PHP bagaimana caranya? Anda bisa menggunakan ODBC sebagaimana yang pernah saya jelaskan di artikel Cara Koneksi PHP ke MS. Access. OK, sekarang kita bisa buat scriptnya. Script pertama yang kita buat adalah script untuk membaca SMS yang masuk ke tabel INBOX nya Gammu di MySQL, selanjutnya melakukan proses parsing untuk mendapatkan KODEMK dan NIM. Setelah itu, melakukan proses pencarian nilai di MS. Access sesuai KODEMK dan NIM, lalu mengirimkan SMS balasan. sms.php view sourceprint?01.

OK ketiga file di atas (sms.html, kirim.php, dan data.php) nanti diletakkan di dalam server hosting. Sampai langkah ini, kita sudah selesai bekerja di level server hosting. Langkah berikutnya adalah membuat script di sisi PC rumah. Di dalam PC rumah, nantinya kita akan membuat script untuk membaca data sms yang tersaji dalam bentuk XML yang digenerate melalui script data.php yang ada di server hosting. Setelah data sms ini dibaca, kemudian kita masukkan ke dalam tabel outbox bawaannya Gammu untuk dikirim melalui hp/modem. Oya, kita perlu juga menghapus setiap data sms di server hosting yang sudah dibaca. Mengapa hal ini dilakukan? ya dong, supaya tabel outbox nya di server hosting tidak penuh. Lantas, bagaimana cara menghapus data secara otomatis di server hosting setelah data sms nya terbaca? ya kita gunakan CURL.

OK ini dia script untuk membaca data sms dari XML nya. bacasms.php view sourceprint?01.data as $data) 10.{ 11.// baca field ID 12.$id = $data->id; 13.// baca nomor tujuan 14.$destination = $data->destination; 15.// baca isi sms 16.$sms = $data->sms; 17. 18.// mengirim SMS via Gammu dengan insert data ke tabel outbox Gammu 19.$query = "INSERT INTO outbox (DestinationNumber, TextDecoded) VALUES ('$destination', '$sms')"; 20.mysql_query($query); 21. 22.// hapus data SMS di server hosting yang sudah terbaca berdasarkan ID 23.$curlHandle = curl_init(); 24.curl_setopt($curlHandle, CURLOPT_URL, 'http://namasitus/hapus.php'); 25.curl_setopt($curlHandle, CURLOPT_POSTFIELDS, 'id='.$id); 26.curl_setopt($curlHandle, CURLOPT_HEADER, 0); 27.curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1); 28.curl_setopt($curlHandle, CURLOPT_TIMEOUT,30); 29.curl_setopt($curlHandle, CURLOPT_POST, 1); 30.curl_exec($curlHandle); 31.curl_close($curlHandle); 32.} 33.?>

Jika web server di PC localhost belum mendukung CURL, maka lakukan setting CURL terlebih dahulu. Eh kalo kita liat pada script bacasms.php di atas, pada proses penghapusan data SMS yang ada di server hosting melalui CURL terdapat pemanggilan script hapus.php. Nah script ini belum kita buat di server hosting. Script hapus.php ini nanti berfungsi untuk menghapus data sms yang ada di tabel outbox dalam database server hosting berdasarkan ID nya setelah data sms tersebut di baca oleh script bacasms.php. hapus.php view sourceprint?

01.