Membuat Kode Poling dengan PHP
Pada kesempatan kali ini saya akan membuat contoh tentang pembuatan Polling dengan PHP dan MySQL.
Yang harus kita lakukan pertama kali adalah membuat database-nya. Pada contoh saya kali ini saya menggunakan database 'polling'.
Lalu kita buat table untuk menyimpan pertanyaan dan jawaban seperti dibawah ini.
CREATE TABLE IF NOT EXISTS `pertanyaan` (
`id_tanya` int(3) NOT NULL AUTO_INCREMENT,
`pertanyaan` varchar(300) NOT NULL,
`jawab_1` varchar(100) NOT NULL,
`jawab_2` varchar(100) NOT NULL,
`jawab_3` varchar(100) NOT NULL,
`jawab_4` varchar(100) NOT NULL,
PRIMARY KEY (`id_tanya`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Lalu masukkan pertanyaan dan jawaban ke dalam tabel 'pertanyaan'.
INSERT INTO `pertanyaan` (`id_tanya`, `pertanyaan`, `jawab_1`, `jawab_2`, `jawab_3`, `jawab_4`) VALUES (1, 'Apa yang anda suka dari pasangan anda?', 'Wajahnya', 'Bibirnya', 'Hatinya', 'Senyumnya');
Setelah itu kita buat tabel untuk menyimpan jawaban yang dimasukkan.
CREATE TABLE IF NOT EXISTS `hasil` ( `id_tanya` int(11) NOT NULL, `jawab` varchar(100) NOT NULL, `nilai` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;Sebelum membuat tampilan formnya, kita buat dulu file koneksi yang akan kita include-kan pada file form. File koneksi saya beri nama koneksi.php. Berikut ini isi script-nya.
<?php /** * @author aggha * @copyright 2013 */ $host = "localhost"; $user = "root"; $password = ""; $db = "polling"; $koneksi = mysql_connect($host,$user,$password); if (!$koneksi) { echo "koneksi mysql gagal."; echo mysql_error(); } $pilihdb = mysql_select_db($db); if (!$pilihdb) { echo "gagal memilih database"; echo mysql_error(); } ?>Saatnya kita membuat form untuk polling, saya akan menggunakan Radio Button untuk tampilannya. Dan sumber datanya dari database yang kita buat tadi.
<?php
/**
* @author aggha
* @copyright 2013
*/
include "koneksi.php";
$query = mysql_query("select * from pertanyaan;");
echo "<form action='vote.php' method='post'>";
while ($data=mysql_fetch_array($query)) {
echo "<input type='hidden' name='id' value='".$data['id_tanya']."'/>";
echo "<b>".$data['pertanyaan']."</b><br />";
for ($i=1;$i<=4;$i++) {
echo "<input type='radio' name='jawaban' value='".$data['jawab_'.$i]."' />".$data['jawab_'.$i]."<br />";
}
}
echo "<input type='submit' value='Vote!'/>";
echo "<p><a href=grafik.php>LIHA GRAFIK</a>";
echo "</form>";
?>
Tampilannya akan seperti dibawah ini.Seperti yang terlihat diatas, pada action form saya isi dengan vote.php. File tersebut digunakan untuk proses memasukkan data kedalam database. Berikut ini isi file vote.php.
<?php /** * @author aggha * @copyright 2013 */ include "koneksi.php"; $id = $_POST['id']; $jawab = $_POST['jawaban']; $cek = mysql_query("select * from hasil where jawab='$jawab';"); if (mysql_num_rows($cek)>0) { $query = mysql_query("update hasil set nilai=nilai+1 where jawab='$jawab';"); } else { $query = mysql_query("insert into hasil values('$id','$jawab',1);"); } if ($query) { echo "<script>alert('Terima kasih telah memberikan suara anda'); window.location=('index.php');</script>"; } else { echo "<script>alert('Gagal memasukan data'); window.location=('index.php');</script>"; } ?>
Script diatas sudah bisa digunakan untuk memasukkan suara untuk polling, lalu bagaimana menampilkan hasilnya?
Saya akan menampilkan hasil dalam bentuk grafik, dalam pembuatan grafik saya menggunakan class FusionChart. Kira-kira hasilnya akan seperti berikut ini.
Untuk mendapatkan FusionChart anda bisa mengunjungi alamat websitenya disini.
Source kode untuk grafik.php
<?php /** * @author aggha * @copyright 2013 */ include "koneksi.php"; include('class/FusionCharts_Gen.php'); # Buat Object Column3D $FC = new FusionCharts("Column3D","450","300"); # Atur path penyimpanan file swf $FC->setSWFPath("FusionCharts/"); # Atur Atribut Grafik $strParam="caption=HASIL POLLING;xAxisName=Jawaban;yAxisName=Jumlah;numberPrefix=;decimalPrecision=0;formatNumberScale=0"; $FC->setChartParams($strParam); $qry=mysql_query("select * from hasil order by jawab;"); while ($d=mysql_fetch_array($qry)) { # Menambah nilai chart dan nama kategori $jml=$d['nilai']; $jawab=$d['jawab']; $FC->addChartData($jml,"name=$jawab"); } echo "<script language='javascript' src='FusionCharts/FusionCharts.js'></script>"; #menampilkan grafik $FC->renderChart(); ?>Untuk lebih jelasnya, script diatas bisa didownload disini.
Demikian tulisan saya kali ini, sangat singkat dan berantakan karena saya hanya seorang pemula.
Post a Comment