Membuat Aplikasi Jajak Pendapat Menggunakan PHP

Rabu, 29 September 2010

Akhir-akhir ini aplikasi jajak pendapat cukup marak terdapat di situs-situs internet, terutama situs-situs dalam negeri. Tema yang diangkat cukup beragam, seperti RUU Sisdiknas, Aksi Militer ke Aceh, Calon Presiden, bahkan sampai polemik goyang Inul. Situs-situs yang bernuansa khusus juga seringkali memiliki jajak pendapat sesuai dengan nuansa yang dimilikinya. Misalnya situs sepakbola akan mengangkat jajak pendapat siapa pemain terbaik di suatu liga, situs tentang Linux akan mengangkat jajak pendapat tentang distro apa yang paling favorit, situs handphone akan mengangkat jajak pendapat tentang ringtone favorit, dan masih banyak lagi.
Nah, sekalipun tema yang diangkat bisa bermacam-macam, namun pada dasarnya aplikasi jajak pendapat cukup mudah untuk dibuat. Umumnya aplikasi jajak pendapat hanya terdiri dari 2 halaman saja, yaitu form HTML yang berisi item-item pilihan dan hasil dari jajak pendapat tersebut. Hasil jajak pendapat dapat ditampilkan dengan bantuan HTML biasa atau dengan suatu aplikasi yang dapat menghasilkan gambar-gambar yang menarik sehingga hasil jajak pendapat dapat ditampilkan dalam bentuk pie chart misalnya. Untungnya, PHP juga dapat digunakan untuk menghasilkan gambar.
Untuk sementara PCplus akan memberikan tampilan hasil jajak pendapat yang memanfaatkan HTML biasa karena pembahasan mengenai menggambar dengan PHP belum sempat diberikan. Minggu depan PCplus akan memberikan artikel mengenai dasar-dasar menggambar dengan PHP dan setelah itu kita akan sempurnakan aplikasi jajak pendapat ini dengan tampilan berbentuk Pie Chart.
Untuk menyimpan hasil jajak pendapat diperlukan database, sehingga aplikasi ini juga akan menggunakan MySQL.
Aplikasi jajak pendapat yang kita buat kali ini akan mengangkat tema Pemain Terbaik Liga Italia musim kompetisi 2002/2003. Mengapa bukan tema yang berbau komputer? Distro Linux favorit misalnya? Yah, semata-mata hanya untuk “having fun” saja agar otak kita nggak berisi komputer melulu.
Mula-mula kita persiapkan dahulu databasenya. Kita akan buat database baru bernama poll sebuah tabel bernama favplayer yang berisi dua buah kolom yaitu “nama” dan “suara”. Langkah-langkahnya adalah sebagai berikut:
mysql> create database poll;
mysql> use poll
Database changed
mysql> create table favplayer(
-> nama varchar(20),
-> suara smallint);
Query OK, 0 rows affected (0.05 sec)
Sebagai nilai awal kita isikan dahulu beberapa data sebagai berikut:
Nama
Suara
Del Piero
101
Totti
23
Nedved
215
Davids
73
Maldini
68
Inzaghi
45
Vieri
82
Zanetti
25
Buffon
55
Setelah database disiapkan, sekarang kita buat halaman form yang berisi item-item pilihan. Script dari halaman item pilihan adalah sebagai berikut:
<HTML>
<HEAD>
<TITLE> Jajak Pendapat </TITLE>
</HEAD>
<BODY>
<H1> Jajak Pendapat </H1>
<H2> Pilih pemain terbaik <br>
Liga Italia musim 2002/2003 </H2>
<FORM NAME=”poll” METHOD=”post” ACTION=”result.php”>
<?
$host = “localhost”;
$user = “myuser”;
$pswd = “rahasia”;
$conn = @mysql_connect($host,$user,$pswd)
or die(“Koneksi gagal: ” . mysql_error());
mysql_select_db(“poll”,$conn);
$strSQL = “select nama from favplayer”;
$qry = @mysql_query($strSQL,$conn)
or die(“Query salah: ” . mysql_error());
while ($row = mysql_fetch_array($qry)) {
?>
<INPUT TYPE=”radio” NAME=”player” VALUE=”<?=$row['nama']?>”>
<?=$row['nama']?> <BR>
<?
}
?>
<BR>
<INPUT TYPE=”submit” VALUE=”VOTE!”>
</FORM>
</BODY>
</HTML>
Berilah nama skrip ini dengan polling.php. Jika dijalankan di browser akan nampak seperti gambar 1.
Item-item pilihan yang terdapat pada halaman ini diambil dari record-record pada field “nama” tabel favplayer. Dengan demikian jika isi dari field nama diubah, otomatis item pilihan tersebut akan ikut berubah, sehingga memudahkan Anda untuk berganti tema jajak pendapat.
Jika Anda klik tombol “VOTE!”, maka data-data pada form ini akan diolah di halaman result.php. Nah, inilah isi skrip file result.php.
<HTML>
<HEAD>
<TITLE> Hasil </TITLE>
</HEAD>
<BODY>
Hasil jajak pendapat adalah sebagai berikut: <BR> <BR>
<?
$host = “localhost”;
$user = “myuser”;
$pswd = “rahasia”;
$player = $_POST['player'];
$conn = @mysql_connect($host,$user,$pswd)
or die(“Koneksi gagal: ” . mysql_error());
mysql_select_db(“poll”,$conn);
// mengupdate suara
$strSQL = “update favplayer set suara=suara+1 where nama=’$player’”;
$upd = @mysql_query($strSQL,$conn)
or die(“Query salah: ” . mysql_error());
// menghitung total suara
$strSQL = “select sum(suara) from favplayer”;
$totsuara = @mysql_query($strSQL,$conn)
or die(“Query salah: ” . mysql_error());
// menampilkan hasil dengan
// bantuan tabel HTML
echo “<TABLE>”;
$strSQL = “select * from favplayer”;
$qry = @mysql_query($strSQL,$conn)
or die(“Query salah: ” . mysql_error());
while ($row = mysql_fetch_array($qry)) {
echo “<TR>”;
echo “<TD> $row[nama] </TD>”;
echo “<TD>”;
$pct = $row["suara"]/$totsuara;
echo “<IMG SRC=’bar.gif’ HEIGHT=’10′ WIDTH=’$pct’>”;
echo “</TD>”;
echo “<TD> $row[suara] </TD>”;
echo “</TR>”;
}
echo “</TABLE>”;
?>
</BODY>
</HTML>
Pada dasarnya isi skrip ini adalah menghitung jumlah total suara, kemudian mengambil seluruh data jajak pendapat dari database dan kemudian menampilkannya dengan bantuan tabel HTML. Jumlah total suara diperlukan untuk menghitung persentase dari suara masing-masing item pilihan. Persentase ini nantinya digunakan untuk menentukan lebar gambar bar.gif. Gambar bar.gif ini hanya gambar balok biasa dan dapat dibuat dengan Photoshop atau Corel Draw! Dengan demikian semakin besar jumlah suara di suatu item, maka gambar baloknya akan semakin lebar.
Sekarang aplikasi tersebut sudah siap. Jika Anda memberikan suara Anda, maka hasil jajak pendapat akan ditampilkan seperti pada gambar 2.
Anda dapat menambahkan sedikit skrip JavaScript untuk mencegah agar pemilih tidak dapat men-submit form sebelum dia memberikan suaranya.
Tentunya akan lebih menarik apabila hasil jajak pendapat diberikan dalam bentuk pie chart. Untuk itu minggu depan PCplus akan memberikan tutorial menggambar dengan PHP dan setelah itu kita akan sempurnakan aplikasi jajak pendapat ini.

0 komentar: