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.

membuat polling dengan php dan mysql

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.

membuat polling dengan php dan mysql

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.

No comments

Silahkan Berkomentar dengan kata-kata yang baik dan sopan dikarenakan blog ini untuk semua umur. Terimakasih

Powered by Blogger.