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.
<?php
// konfigurasi database
// sesuaikan dengan konfigurasi Anda
function koneksi()
{
$user = "root";
$pass = "";
$db = "polling";
$host = "localhost";
$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 :
- 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
- Ketikkan nomor handphone penerima sms, yaitu nomor handphone yang tersambung ke komputer, pada kolom Receive Phone Number(s)
- Ketikkan “http://localhost/sms/polling.php?sender=@@SENDER@@&pilihan=@@SMS@@” (tanpa tanda petik) pada kolom Command to Execute
- 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 :
<html>
<head>
<meta http-equiv="refresh" content="5">
</head>
<body>
<?php
// konfigurasi database
// sesuaikan dengan konfigurasi Anda
function koneksi()
{
$user = "root";
$pass = "";
$db = "polling";
$host = "localhost";
$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
?>
<table border="1">
<tr>
<td align="center" width="70px">Finalis</td>
<td align="center" width="120px">Perolehan SMS</td>
<td align="center" width="100px">Prosentase</td>
</tr>
<?
for($i=0;$i<=2;$i++){
$prosentase[$i] = number_format((($suara[$i]/$totalsms)*100),2);
echo("<tr>");
echo("<td align=\"center\">$finalis[$i]</td>");
echo("<td align=\"center\">$suara[$i]</td>");
echo("<td align=\"center\">$prosentase[$i]%</td>");
echo("</tr>");
}
?>
</table>
</body>
</html>
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.
Related posts :
- Aplikasi Penunjuk Jam dan Hari Saat Ini
- Sms Gateway : Membuat Auto Responder Sederhana (Bag. 1)
- Sms Gateway : Membuat Auto Responder Sederhana (Bag. 2)
- Aplikasi Informasi Absensi Siswa Dengan SMS Gateway
- SMS Gateway, Alexa Rank, dan WordPress 2.8.6
- Mengirim SMS ke Banyak Nomor Sekaligus (Bulk SMS) Dengan NowSMS
Pak, 2 hal yang ingin saya sampaikan:
1. Program NowSms sekarang udah nggak gratis lagi. Saya boleh minta program yang ful-version nya pak? tolong dikirim ke email saya. Terima kasih.
2. Pada Artikel “mengirim sms ke banyak nomor”, saya ingin membuat sebuah tombol “check all / select all”. Bagaimana caranya, agar semua nomor bisa select-all / terpilih semua dengan satu klik tombol??
terima kasih atas bantuannya, pak. Artikel anda sangat bermanfaat
mas kalo mau buat kandidat polling’a lebih dari 3 gimana ?
om admin… om tolong pencerahannya dan koreksi kok jadinya begini
Warning: Division by zero in C:\xampp\htdocs\nowsms\hasilpolling.php on line 54
kok gak bisa ya? malah masuk ke pc suite,