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. Script yang saya buat diatas masih jauh dari kata sempurna.
Mohon maaf apabila ada kesalahan kata dalam tulisan saya kali ini.
Terimakasih banyak, ini sangat sangat membantu :) semoga tambah pintar ya :). Aamiin.
BalasHapusMau tanya nih gan, gmn caranya kalo misal pas di mouse over yg ditampilkan adl hasil prosentase masing2 jawaban..?
BalasHapusterimakasih sblmnya atas tutorial ini. . .
Terima kasih atas tutorialnya, bagus, dan berhasil. yang saya mau tanyakan, bagaimana jika pertanyaan tersebut lebih dari 1, radio button-kan hanya bisa diklik salah 1. Terima kasih.
BalasHapustanya gan kalau soalnya banyak misalnya 5 sampai 10 seperti kuis gimana caranya,
BalasHapusIf you're trying to burn fat then you absolutely need to start using this brand new tailor-made keto meal plan diet.
BalasHapusTo create this keto diet service, licensed nutritionists, fitness couches, and chefs united to develop keto meal plans that are powerful, painless, cost-efficient, and satisfying.
Since their grand opening in 2019, 100's of people have already remodeled their body and well-being with the benefits a professional keto meal plan diet can provide.
Speaking of benefits: in this link, you'll discover 8 scientifically-certified ones offered by the keto meal plan diet.