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 :

  1. Jalankan 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 “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

polling-command

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 :

hasilpolling

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.

Tags: , , , , , , , , , , ,

Comments
  1. guskar
  2. Admin
  3. Syawel
  4. Admin
  5. mamat
  6. Admin
  7. Deni
  8. harnes
  9. eko
  10. Admin
  11. eko
  12. ami
  13. Admin
  14. luqman
  15. eko
  16. Admin
  17. joni
  18. Admin
  19. iksan
  20. Admin
  21. syahrul
  22. iksan
  23. Admin
  24. syahrul
  25. agry khumaini
  26. andrie
  27. Dantha
  28. Heru Bagya
  29. Heru Bagya
  30. Admin
  31. Heru Bagya
  32. Ari
  33. deydi
  34. roelee
  35. aagun2006
  36. sada
  37. nix
  38. cosel
  39. sandy
  40. Charlli
  41. rizki
  42. Admin
  43. rizki
  44. kadon
  45. Admin
  46. ree soe
  47. cekone
  48. oza
  49. rizal
  50. evan
  51. atte
  52. iswatun
  53. didik
  54. Aqin
  55. Bayu Aji

Tulis komentarmu

%d bloggers like this: