Sms Gateway : Membuat Auto Responder Sederhana (Bag. 1) Tadinya saya mau menuliskan tentang pengalaman saya membuat aplikasi autoresponder (atau autoreplay) dengan sms gateway ini dalam satu posting saja, tak disangka ternyata tulisan ini panjang sekali. Jadi saya akan memecahnya menjadi beberapa tulisan, dengan tujuan agar lebih sesuai untuk sebuah halaman blog, agar lebih ringan untuk diakses, dan kalau ada pembaca yang tertarik lebih mudah mengikuti step-by-step-nya. Setelah berkutat dengan komputer selama kurang lebih satu setengah jam, dan menghabiskan pulsa beberapa ribu rupiah untuk trial and error, akhirnya saya berhasil membuat auto responder sederhana menggunakan sms gateway. Persiapan Hardware dan software Dalam ujicoba ini, saya menggunakan peralatan (hardware) sebagai berikut : 1. Komputer Intel Celeron 3.06GHz dengan OS Windows XP Pro Service Pack 2 2. Handphone (atau GSM Modem) Sony Ericsson G502 dengan kartu IM3 sebagai penerima sms (yang dihubungkan dengan komputer melalui USB) 3. Handphone Haier C2000 dengan kartu Fren untuk pengirim sms. Software yang saya gunakan : 1. 2. 3. 4.
Sony Ericsson PC Suite Versi 5.009.000 (sebagai driver) (http://www.sonyericsson.com) XAMPP Versi 1.6.7 sebagai web server (http://www.nat32.com/xampp) NowSMS Versi 2008.06.03 sebagai gateway (http://www.nowsms.com) PHP Designer 2005 untuk menulis script php. (http://www.mpsoftware.dk). Software ini sifatnya hanya optional, jika tidak ada bisa menggunakan Notepad.
Proses Instalasi dan Pengujian Setelah semua software di-install (saya rasa tidak perlu dijelaskan bagaimana caranya menginstall), perlu kita uji dulu, apakah semua software berfungsi dengan baik. 1. Jalankan Sony Ericsson PC Suite dan sambungkan handphone Sony Ericsson G502 dengan komputer. Jika berhasil akan terlihat tampilan sebagai beikut :
2. Jalankan XAMPP Control Panel dan klik Start pada module Apache dan MySql
Setelah module Apache dan MySql running, buka Internet Explorer, dan ketikkan „http://localhost‟ (tentu saja tanpa tanda petik) pada address bar. Jika berhasil akan tampil sebagai berikut :
Menghubungkan GSM Modem dengan Gateway Untuk menghubungkan GSM Modem (Handphone) dengan Gateway, ikuti langkah-langkah berikut : 1. Jalankan NowSMS, mula-mula akan tampil sebagai berikut :
2. Klik Add, pada SMSC Connection Type pilih GSM Phone or Modem. Klik OK.
3. Pilih salah satu modem yang terdeteksi secara otomatis. Biarkan kolom Modem Pin kosong. Klik tombol Test and Add Modem.
4. Jika berhasil akan keluar tampilan berikut :
5. Klik Properties, akan terbuka window baru Modem Connection, masukkan nomor handphone yang tersambung dengan komputer ke kolom Phone Number. Beri tanda centang pada Receive SMS Messages. Biarkan kolom yang lain pada posisi default. Klik OK. Window Modem Connection akan tertutup. Klik Apply.
6. Ketika ada pertanyaan “Configuration changes have been applied, do you wish to restart the service for the changes to take effect ?” klik Yes. Mengaktifkan Web Interface pada Gateway Setelah modem terinstall dengan sukses, maka langkah selanjutnya adalah mengaktifkan Web Interface, caranya klik tab Web pada NowSMS.
Pastikan Anda memberi tanda centang pada Enable menu driven web interface. Secara default Web Interface akan bekerja pada port 8800.
Kemudian buka juga tab Service.
Beri tanda centang pada Run as a service Sekarang coba kita buka Internet Explorer, dan ketikkan http://localhost:8800 pada address bar. Jika berhasil, akan terbuka halaman sebagai berikut :
Nah, dengan web interface ini, kita bisa mengirimkan sms melalui komputer kita, caranya ketikkan nomor telepon tujuan pada kolom Phone Number dan isi sms pada kolom Text. Biarkan kolom-kolom yang lain dalam kondisi default. Kemudian klik Submit. Pada langkah ini seharusnya sms akan terkirim ke nomor tujuan, jika tidak, periksa kembali semua konfigurasi pada langkah-langkah sebelumnya. Saya rasa Bagian Pertama ini sudah cukup panjang, nantikan kelanjutan dari tulisan ini.
Sms Gateway : Membuat Auto Responder Sederhana (Bag. 2) Sebelum mengikuti tulisan ini, silahkan baca terlebih dahulu Bagian Pertama dari tulisan ini. Membuat Database dan Script Php Setelah semua hardware dan software bekerja sesuai keinginan kita, kini saatnya kita membuat Autoresponder atau Autoreplay, kali ini yang sederhana saja dulu. Skenarionya adalah sebagai berikut : 1. HP pertama (yang terhubung dengan komputer) akan menerima sebuah sms 2. Sms tersebut akan dimasukkan ke dalam database 3. Kemudian komputer akan mengirimkan sms sebagai respon terhadap sms yang diterima. Mula-mula buatlah sebuah database, buka http://localhost/phpmyadmin
Ketikkan nama database yang akan dibuat pada kolom Create new database, misalnya “sms” (tanpa tanda petik), klik Create. Selanjutnya, buatlah sebuah table dengan nama “inbox”.
Klik pada tab SQL, dan ketikkan pada kolom Run SQL Query : CREATE TABLE IF NOT EXISTS `inbox` ( `id` int(5) NOT NULL auto_increment, `sender` varchar(15) NOT NULL, `isi` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
kemudian klik Go. Kita akan mendapatkan notifikasi “Your SQL query has been executed successfully” Sampai di sini kita telah berhasil membuat database “sms” dengan sebuah table bernama “inbox” yang berisi 3 field, yaitu “id”, “sender”, dan “isi”. Masih semangat atau sudah pusing ? Langkah berikutnya adalah membuat script php yang akan menjalankan skenario yang telah kita buat. Dan inilah script selengkapnya :
mysql_select_db($db, $konek); } // Ambil data dari url, yaitu url yang Anda masukkan // pada kolom Command to execute di NowSMS $sender = $_GET['sender']; $sender = substr_replace($sender,‟0′,0,3); $isi = $_GET['isi']; $isi = trim($isi); // Masukkan data ke database koneksi(); $sql = “INSERT INTO inbox (id, sender, isi) VALUES (”, „$sender‟, „$isi‟)” ; mysql_query($sql); // Memberi respon (autorespon) terhadap sms yang masuk // Catatan : Lokasi http://127.0.0.1:8800 adalah web interface dari NowSMS header(“Location:http://127.0.0.1:8800/?PhoneNumber=$sender&Text=Terima+kasih.+Informa si+Anda+akan+segera+kami+tindaklanjuti.”); ?> Bukalah folder di mana Anda menginstall Xampp, di bawah folder “htdocs” buatlah folder baru dengan nama “sms”. Simpan script di atas dengan nama “autoresponder.php” pada folder tersebut.
Memberi Perintah Kepada Gateway untuk menjalankan Script Langkah terakhir adalah memberi perintah kepada gateway (NowSMS) untuk menjalankan script php yang telah kita buat : 1. Jalankan kembali NowSMS, dan buka tab 2-Way.
2. Beri tanda centang pada Process Received SMS Message 3. Biarkan Character Set pada posisi default, yaitu utf-8 4. Ketikkan * (tanda bintang atau wildcard) pada kolom SMS Command Prefix, yang artinya semua sms akan kita proses 5. Ketikkan nomor handphone penerima sms, yaitu nomor handphone yang tersambung ke komputer, pada kolom Receive Phone Number(s) 6. Ketikkan “http://localhost/sms/autoresponder.php?sender=@@SENDER@@&isi=@@FULLSMS @@” (tanpa tanda petik) pada kolom Command to Execute 7. Klik Add
Nah sekarang adalah saatnya untuk mencoba hasil kerja keras kita. Kirimkan sebuah sms ke nomor handphone yang tersambung ke komputer. Isinya boleh apa saja, karena semua sms dengan isi pesan apapun akan direspon. Jika semuanya bekerja dengan baik, Anda akan mendapat balasan (autorespond) sebagai berikut : “Terima kasih. Informasi Anda akan segera kami tindaklanjuti.” Selamat, Anda sudah menyelesaikan pelajaran pertama tentang Sms Gateway ! Dengan sedikit kerja keras, aplikasi sederhana di atas dapat dikembangkan menjadi aplikasi Polling SMS, SMS Quick Count Pilkada, Premium SMS (yang ketik REG spasi bla bla bla itu lho . . . ), Server Pulsa Elektrik, posting blog by SMS, dan lain-lain sesuai kreativitas kita.
Insya Allah, saya akan menulis lagi tentang pembuatan aplikasi sms gateway yang lain, yang lebih rumit tentunya. Nantikan saja. Jika ingin mencoba aplikasi di atas silahkan download script autoresponder di sini.
SMS Gateway : Aplikasi Polling SMS Sederhana Setelah beberapa minggu lalu saya belajar membuat aplikasi autoresponder sederhana dengan sms gateway, sekarang saya ingin membuat aplikasi yang sedikit lebih rumit, yaitu polling sms. Aplikasi ini masih menggunakan NowSMS sebagai SMS Gateway-nya. Kali ini skenarionya adalah sebagai berikut : RT 2 Kelurahan XXX mengadakan acara lomba karaoke untuk memperingati acara 17-an. Pesertanya adalah remaja-remaja dari RT tersebut. Setelah melalui babak eliminasi, akhirnya ditetapkan ada 3 finalis, yaitu : Andi, Jamal, dan Ririn. Karena tidak mau dituduh subjektif, para juri sepakat untuk melibatkan penonton dalam pemilihan juara 1,2, dan 3 melalui polling sms. Penonton diminta untuk memilih penyanyi favoritnya dengan cara, ketik PILIH (spasi) NAMA PENYANYI dan dikirim ke nomor hp 0856780xxxx, di mana hp tersebut disambungkan ke komputer yang telah diprogram untuk mengolah data sms yang masuk. Nah, seperti apakah program yang ada dalam komputer tersebut ?   Database dan Script Php Untuk Mengolah Data SMS Kita membutuhkan sebuah database untuk mengolah data sms yang masuk, misalnya database tersebut bernama “polling”, dengan sebuah table bernama “inbox”. Berikut ini script untuk membuat table tersebut : CREATE TABLE IF NOT EXISTS `inbox` ( `id` int(5) NOT NULL auto_increment, `sender` varchar(15) NOT NULL, `pilihan` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=42 ;
Setelah database terbuat, kita membutuhkan sebuah script Php untuk memasukkan pilihan pengirim sms ke dalam database.
$konek = mysql_connect($host, $user, $pass); mysql_select_db($db, $konek); } // Ambil data dari url, yaitu url yang Anda masukkan // pada kolom Command to execute di NowSMS $sender = $_GET['sender']; $pilihan = $_GET['pilihan']; // Masukkan data ke database koneksi(); $sql = "INSERT INTO inbox (id, sender, pilihan) VALUES ('', '$sender', '$pilihan')" ; mysql_query($sql); // Memberi respon (autorespon) terhadap sms yang masuk header("Location:http://127.0.0.1:8800/?PhoneNumber=$sender&Text=Terima+kasih +telah+memilih."); ?>
Simpan script di atas dengan nama polling.php
Memberi Perintah ke SMS Gateway Langkah berikutnya adalah memberi perintah kepada gateway (NowSMS) untuk menjalankan script polling.php yang baru saja kita buat : 1. 2. 3. 4.
Jalankan NowSMS, dan buka tab 2-Way. Beri tanda centang pada Process Received SMS Message Biarkan Character Set pada posisi default, yaitu utf-8 Ketikkan “PILIH” (tanpa tanda petik) pada kolom SMS Command Prefix, yang artinya hanya sms dengan kata pertama “PILIH” saja yang akan diproses 5. Ketikkan nomor handphone penerima sms, yaitu nomor handphone yang tersambung ke komputer, pada kolom Receive Phone Number(s) 6. Ketikkan “http://localhost/sms/polling.php?sender=@@SENDER@@&pilihan=@@SMS@@” (tanpa tanda petik) pada kolom Command to Execute 7. Klik Add
Melihat Hasil Polling Setelah para finalis menampilkan kemampuan terbaik mereka, dan para penonton telah memberikan pilihannya melalui SMS, maka kini saatnya para juri memutuskan juara dari lomba karaoke tersebut. Untuk melihat hasil polling, kita membutuhkan sebuah script lagi untuk menampilkan hasil pengolahan data SMS yang masuk. Script tersebut kira-kira sebagai berikut : <meta http-equiv="refresh" content="5">
$konek = mysql_connect($host, $user, $pass); mysql_select_db($db, $konek); } // Ambil data dari database // Cari total SMS yang masuk koneksi(); $sql = "SELECT * FROM inbox"; $query = mysql_query($sql); $totalsms = mysql_num_rows($query); // Cari jumlah SMS per finalis $finalis = array('Andi', 'Jamal', 'Ririn'); for($i=0;$i<=2;$i++){ $sql = "SELECT * FROM inbox WHERE pilihan='$finalis[$i]'"; $query = mysql_query($sql); $suara[$i] = mysql_num_rows($query); } // menampilkan hasil polling dalam bentuk table ?>
Finalis | Perolehan SMS | Prosentase |
for($i=0;$i<=2;$i++){ $prosentase[$i] = number_format((($suara[$i]/$totalsms)*100),2); echo(""); echo("$finalis[$i] | "); echo("$suara[$i] | "); echo("$prosentase[$i]% | "); echo("
"); } ?>
Simpan script tersebut dengan nama “hasilpolling.php”. Jika dijalankan, script tersebut akan menampilkan hasil pengolahan data sebagai berikut :
Nah, berdasarkan hasil polling inilah, akhirnya juri memutuskan, bahwa :
juara satu adalah Andi dengan perolehan suara 17 sms atau 54.84% juara dua adalah Ririn dengan perolehan suara 8 sms atau 25.81% juara tiga Jamal dengan perolehan suara 6 sms atau 19.35%
Aplikasi di atas adalah contoh aplikasi polling SMS yang sangat sederhana. Untuk membuat aplikasi polling yang lebih baik, tentulah banyak sekali kekurangan yang perlu diperbaiki dan disempurnakan. Kalau mau nyoba aplikasi polling sms ini silahkan download script polling di sini.
Aplikasi Informasi Absensi Siswa Dengan SMS Gateway Beberapa minggu yang lalu saya baca di sebuah surat kabar online yang menyatakan bahwa sebuah SMU di Jogjakarta telah memanfaatkan teknologi sms gateway untuk menunjang aktivitas akademik. Dengan teknologi tersebut, orang tua siswa tidak perlu lagi datang ke sekolah untuk memastikan anaknya tidak bolos. Cukup kirim SMS dengan format dan nomor tujuan yang telah ditentukan, beberapa detik kemudian jawaban tentang keberadaan siswa tersebut di sekolah sudah diterima. Nah, sekarang saya ingin membuat sebuah aplikasi dengan fungsi yang mirip-mirip dengan aplikasi di atas. Dengan aplikasi ini, jika kita mengirim SMS ke nomor tujuan tertentu dengan format : ABSEN (spasi) NIS (spasi) BULAN maka kita akan mendapatkan informasi tentang jumlah hari absen siswa dengan NIS (nomor induk siswa) tertentu pada bulan tertentu. Misalnya : ABSEN 0979843 Agustus Catatan : Agar dapat mengikuti tulisan ini dengan baik, sebaiknya Anda baca juga : Sms Gateway : Membuat Autoresponder Sederhana (Bag. 1) Sms Gateway : Membuat Autoresponder Sederhana (Bag. 2) Sms Gateway : Aplikasi Polling Sms Sederhana
Database Absensi Untuk dapat menjalankan aplikasi ini, tentu saja kita harus punya database yang berisi tentang absensi siswa. Mula-mula buatlah database dengan nama ‘absensi’, kemudian buat table dengan script di bawah : CREATE TABLE IF NOT EXISTS `absen` ( `nama_siswa` varchar(25) NOT NULL, `ni_siswa` varchar(6) NOT NULL, `bulan` varchar(10) NOT NULL, `absen` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `absen` (`nama_siswa`, `ni_siswa`, `bulan`, `absen`) VALUES („Budi Harjo‟, ‟092340′, „Agustus‟, 2), („Siti Nurhaliza‟, ‟092341′, „Agustus‟, 0), („Rahmawati‟, ‟092342′, „Agustus‟, 9), („Agus Sofyan‟, ‟092343′, „Agustus‟, 1), („Moh. Yanto‟, ‟092344′, „Agustus‟, 3), („Kris Dayati‟, ‟092345′, „Agustus‟, 0), („Rohmat‟, ‟092346′, „Agustus‟, 14), („Budi Harjo‟, ‟092340′, „September‟, 3), („Siti Nurhaliza‟, ‟092341′, „September‟, 1), („Rahmawati‟, ‟092342′, „September‟, 7), („Agus Sofyan‟, ‟092343′, „September‟, 4), („Moh. Yanto‟, ‟092344′, „September‟, 2), („Kris Dayati‟, ‟092345′, „September‟, 1), („Rohmat‟, ‟092346′, „September‟, 11);
Script Php Untuk Mengolah SMS Masuk Setelah database terbuat, kita membutuhkan sebuah script Php yang akan mengolah SMS yang masuk, dan memberi respon sesuai permintaan :
$sql = “SELECT * FROM absen WHERE ni_siswa=‟$ni_siswa‟ AND bulan=‟$bulan‟”; $qry = mysql_query($sql); $row = mysql_fetch_array($qry); $nama_siswa = $row[nama_siswa]; $absen = $row[absen]; // Jika nama siswa ada spasi, ganti spasi dengan tanda + $words = explode („ „, $nama_siswa); $nama_siswa = join(„+‟, $words); // Memberi respon (autorespon) terhadap sms yang masuk header(“Location:http://127.0.0.1:8800/?PhoneNumber=$sender&Text=$nama_siswa+pada+bul an+$bulan+absen+ sebanyak+$absen+hari”); ?> Simpan script di atas dengan nama absensi.php
Memberi Perintah ke SMS Gateway Langkah berikutnya adalah memberi perintah kepada gateway (NowSMS) untuk menjalankan script absensi.php setiap ada SMS yang masuk : 1. 2. 3. 4.
Jalankan NowSMS, dan buka tab 2-Way. Beri tanda centang pada Process Received SMS Message Biarkan Character Set pada posisi default, yaitu utf-8 Ketikkan ‘ABSEN’ (tanpa tanda petik) pada kolom SMS Command Prefix, yang artinya hanya sms dengan kata pertama ‘ABSEN’ saja yang akan diproses 5. Ketikkan nomor handphone penerima sms, yaitu nomor handphone yang tersambung ke komputer, pada kolom Receive Phone Number(s) 6. Ketikkan “http://localhost/sms/absensi.php?sender=@@SENDER@@&pesan=@@SMS@@” (tanpa tanda petik) pada kolom Command to Execute 7. Klik Add
Kesimpulan Cobalah kirim SMS dengan format : ABSEN (spasi) 092341 (spasi) September dan kirim ke nomor HP yang berfungsi sebagai SMS server, maka Anda akan mendapat balasan sebagai berikut : Siti Nurhaliza pada bulan September absen sebanyak 1 hari Cek respon yang Anda dapat dengan data di database Anda. Aplikasi di atas adalah sebuah contoh aplikasi SMS interaktif yang masih sangat sederhana. Aplikasi ini saya buat sekedar untuk menunjukkan bagaimana mengolah SMS yang masuk dan memberi respon dengan mengambil nilai-nilai (value) dari database. Jika Anda ingin menerapkan aplikasi ini di sekolah Anda, tentu saja aplikasi ini masih banyak kekurangan yang harus disempurnakan.
Jika Anda ingin mencobanya di rumah, script php dan database download di sini.
Mengirim SMS ke Banyak Nomor Sekaligus (Bulk SMS) Dengan NowSMS Beberapa hari yang lalu, saya mendapatkan komentar dari Pak Syawal (sy4**l@g***l.com) di salah satu tutorial SMS Gateway yang ada di blog ini, isinya sebagai berikut : Mas.., tutorial mas sudah saya coba dan sukses, namun, ada namun nya mas, tiba-tiba Kasek minta dibuatkan supaya jika ada keperluan mendadak, kasek bisa memberitahukan kepada setiap guru yang terdaftar no hp-nya secara sekaligus mas…, jadi biar nggak bolak-balik sms. Pake NowSMS gimana caranya mas…, mohon dibantu selengkap-lengkapnya….he..he… thanks berat sak b4e…………….. Kasus yang dialami pak Syawal, pasti sering terjadi di organisasi manapun, tidak cuma di sekolahan, tapi juga di perusahaan, LSM, partai politik, maupun RT / RW. Bisa mengirim SMS ke banyak orang sekaligus (bahasa Madura-nya : bulk SMS) tentu bisa sangat meringankan pekerjaan kita, misal : 1. Sebuah perusahaan ingin mengirimkan SMS untuk mengucapkan Selamat Hari Raya Idul Fitri ke semua customernya. Kalau customernya cuma 3 mungkin nggak repot ngirim pake HP, lha kalau customernya ada 500, gimana ngirimnya ? 2. Agen marketing menawarkan produk baru ke semua pelanggannya. 3. Pak RT ngirim undangan rapat ke semua warganya pake SMS. 4. dan lain-lain Nah mumpung saya ada waktu, saya akan penuhi request dari Pak Syawal. Bagi rekan-rekan lain yang juga ingin mencoba, supaya bisa mengikuti tutorial ini dengan baik, sebaiknya Anda baca dulu : Sms Gateway : Membuat Auto Responder Sederhana (Bag. 1) Sms Gateway : Membuat Auto Responder Sederhana (Bag. 2) Untuk proyek kali ini, saya sudah membuat sebuah paket bulk SMS. Paket ini berisi sebuah phonebook sederhana yang dilengkapi dengan fasilitas pengirim SMS, dalam bentuk file zip. Extract file tersebut dalam satu direktori tersendiri di bawah htdocs. Isi dari paket tersebut adalah : 1. 2. 3. 4. 5.
phonebook.db (SQL query untuk bikin table di database) phonebook.php (php script utama untuk menampilkan phonebook) bulksms.php (php script untuk mengirim sms) update.php (php script untuk menambah dan mengedit entry) delete.php (php script untuk menghapus entry)
Mula-mula buatlah sebuah database dan table seperti di phonebook.db, Anda bisa membuatnya dengan phpmyadmin. Jika database sudah jadi, buka phonebook.php, update.php, dan delete.php dengan editor favorit Anda. Sesuaikan $user, $pass, dan $db dengan konfigurasi database Anda. Nah, saatnya menguji hasil karya kita. Buka http://localhost/sms/phonebook.php (url sesuai lokasi di mana phonebook.php berada). Jika tidak ada masalah akan terbuka sebagai berikut :
Untuk mengirim SMS ke banyak nomor HP sekaligus, caranya mudah sekali. Tinggal pilih nomor mana saja yang mau dikirimi SMS, kemudian ketikkan isi SMS pada text area di bawah phonebook. Klik Send. Agar fasilitas pengiriman SMS berfungsi, tentu saja service NowSMS sudah harus ON. Dan tentunya Anda bertanya-tanya di mana bisa mendownload paket bulk SMS ini ? Saya menjual paket bulk sms ini seharga Rp. 350.000,-. Pembayaran dapat dilakukan melakui nomor rekening BCA saya. Nggak usah kuatir, Anda bisa mendownload paket bulk sms tersebut di sini. GRATIS.