Akhir-akhir ini aplikasi jajak pendapat cukup marak terdapat di situs-situs internet. Masalah yang diangkat pun bisa beragam, misalnya politik, sosial, budaya, sains, dan lain-lain. 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.
Aplikasi jajak pendapat yang akan dibahas pada bagian ini nantinya akan memberikan output berupa 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 2005/2006. 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 int);
Query OK, 0 rows affected (0.05 sec)
Anda juga dapat memanfaatkan phpMyAdmin untuk membuat database di atas.
Sebagai nilai awal kita isikan dahulu beberapa data sebagai berikut:
Nama | Suara |
Del Piero | 101 |
Totti | 23 |
Nedved | 215 |
Toni | 73 |
Adriano | 36 |
Kaka | 41 |
Ibrahimovic | 100 |
Trezeguet | 88 |
Cassano | 25 |
Setelah database disiapkan, sekarang kita buat halaman form yang berisi item-item pilihan. Script dari halaman item pilihan diberikan pada listing 1.
Listing 1. Halaman item pilihan <HTML> <HEAD> <TITLE> Jajak Pendapat </TITLE> </HEAD> <BODY> <H1> Jajak Pendapat </H1> <H2> Pilih pemain terbaik <br> Liga Italia musim 2005/2006 </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, isi skrip file result.php diberikan pada listing 2.
Listing 2. Hasil jajak pendapat <? Header("Content-Type:image/jpeg"); // --- Koneksi ke MySQL --- // $host = "localhost"; $user = "root"; $pswd = ""; $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()); // --- Ambil data dari database --- // $strSQL = "select * from favplayer"; $qry = @mysql_query($strSQL,$conn) or die("Query salah: " . mysql_error()); // --- menentukan data yang akan dibuat pie chartnya --- // $i=0; while ($row=mysql_fetch_array($qry)) { $data[$i] = $row["suara"]; $str[$i] = "$row[nama]" . " = " . "$row[suara]"; $i++; } // --- deklarasi variabel --- // $total = 0; $d = array(); $kor_x = array(); $kor_y = array(); $t_x = array(); $t_y = array(); // --- menentukan besar sudut setiap bagian pie --- // for($j=0;$j<=$i-1;$j++) { $total += $data[$j]; } $d[0] = 0; for($x=1;$x<=$i;$x++) { $d[$x] = ($data[$x-1]/$total) * 360; $d[$x] += $d[$x-1]; } // --- menentukan warna --- // $img = ImageCreate(700,700); $warna[0] = ImageColorAllocate($img,0,255,0); $warna[1] = ImageColorAllocate($img,255,0,0); $warna[2] = ImageColorAllocate($img,0,0,255); $warna[3] = ImageColorAllocate($img,255,0,255); $warna[4] = ImageColorAllocate($img,255,255,0); $warna[5] = ImageColorAllocate($img,128,128,128); $warna[6] = ImageColorAllocate($img,255,128,0); $warna[7] = ImageColorAllocate($img,0,150,255); $warna[8] = ImageColorAllocate($img,112,0,255); $warna[9] = ImageColorAllocate($img,128,255,0); $warna[10] = ImageColorAllocate($img,255,255,255); $hitam = ImageColorAllocate($img,0,0,0); $putih = ImageColorAllocate($img,255,255,255); ImageFill($img,0,0,$putih); // --- membentuk pie --- // for($k=1;$k<=$i;$k++) { // --- menggambar bagian-bagian pie --- // ImageArc($img,150,150,250,250,$d[$k-1],$d[$k],$hitam); // --- mencari koordinat batas --- // $kor_x[$k] = round(150+(125*cos(deg2rad($d[$k-1])))); $kor_y[$k] = round(150+(125*sin(deg2rad($d[$k-1])))); // --- mencari titik tengah --- // $t = round(($d[$k-1]+$d[$k])/2); $t_x[$k] = round(150+(62.5*cos(deg2rad($t)))); $t_y[$k] = round(150+(62.5*sin(deg2rad($t)))); ImageLine($img,150,150,$kor_x[$k],$kor_y[$k],$hitam); } // --- mewarnai bagian pie --- // // --- sekaligus membuat keterangan --- // for($k=1;$k<=$i;$k++) { ImageFillToBorder($img,$t_x[$k],$t_y[$k],$hitam,$warna[$k-1]); ImageFilledRectangle($img,310,20*$k+50,320,20*$k+60,$warna[$k-1]); ImageString($img,2,330,20*$k+50,$str[$k-1],$hitam); } // --- output gambar -- // ImageJPEG($img); ?> |
Pada dasarnya isi skrip ini adalah menghitung jumlah total suara, kemudian mengambil seluruh data jajak pendapat dari database dan kemudian menampilkannya dalam bentuk pie chart.
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.

Artikel Terkait:
- Cara membuat tag cloud animasi berputar
- Cara membuat iklan melayang dengan tombol close
- Membuat read more
- Membuat teks area
- Cara memasang plugin comment facebook di blog
- Cara membuat screen saver di blog
- Transmisi data informasi
- Mempercepat Koneksi Internet Tanpa Software
- Tes kecepatan internet
- Cara membuat widget sms gratis di blog
- Kirim sms gratis
- Belajar Hacking
- Konsep Dasar TCP/IP
- Free fake SMS / masked SMS
- Install Apache dan cara mengamanankan web server Anda
- Hack Password Di Jaringan Lokal dengan dsniff
- Perintah Dasar Linux/UNIX
- DEFACING NT WEB SERVER WITH BUG UNICODE MICROSOFT IIS
- Pengenalan Linux for Newbie
- Bahaya pencurian file pada komputer client menggunakan script
- Cara menghilangkan iklan pada halaman web yang ada pada hosting gratisan
- Instalasi PHP
- Petunjuk Instalasi Compiler C
- Mengetahui Fitur Login/Logout Halaman Web Dengan PHP
0 comments:
Post a Comment
Silahkan anda berkomentar, tapi jangan nyepam . . . .