Bagan atau chart memang mempunyai fungsi yang cukup penting dalam dunia statistik maupun analisis. Dengan ditampilkannya bagan maka representasi data akan terlihat secara jelas dan memungkinkan data menjadi mudah dibaca. Berkaitan dengan bagan, seorang web developer sebenarnya bisa membuatnya dengan native PHP language. Namun hasil yang ditampilkan pasti terlihat kaku dan kurang interaktif.
PHP JSON Google Chart
Bagi sebagian developer web, menampilkan bagan dengan memanfaatkan library chart akan mempunyai banyak kelebihan. Dari sisi estetika desain terlihat baik, dan interaksi data pun dapat terlihat teratur. Di internet terdapat banyak sekali library sejenis ini, namun tutorial pada artikel ini akan menjelaskan bagaimana caranya membuat bagan grafik yang dinamis menggunakan API dari Google, yakni Google Chart Tools.
Tutorial
Mari kita mulai saja dengan studi kasus pembuatan bagan Hasil Kuesioner dengan 5 parameter Sangat Tidak Puas, Tidak Puas, Puas, Cukup Puas, dan Sangat Puas. Pada 5 parameter tersebut akan terdapat nilai-nilai hasil kounter (perhitungan) dari pengisian kuesioner. Ibaratkan pada setiap parameter sudah terisi beberapa nilai. Mari kita coba membuatnya:
Pertama, kita harus membuat database menggunakan MySQL, bernama Kuesioner atau terserah, buat juga tabel di dalamnya dengan nama Hasil, pada tabel hasil tersebut buat 2 field dengan nama Parameter (String) dan Nilai (Integer). Isikan masing-masing parameter dan nilai sebagai dummy datanya, seperti berikut :
Perlu diingat parameter dan nilai tersebut kita isikan secara manual melalui phpmyadmin. Nilai pada parameter merupakan dummy yang bisa kita ubah sesuai keinginan pembaca.
Kemudian Buka folder xampp localhost Anda, dan buat folder baru bernama Googlechart (optional). Di dalamnya buat dua file bernama index.php dan json.php. Javascript yang diperlukan untuk mendukung pembuatan chart ini adalah API dari Google Chart dan Jquery Berikut adalah isi dari file index.php :
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<title>Chart Kuesioner</title> | |
<!– Meng-embed Google API –> | |
<script type=“text/javascript“ src=“https://www.google.com/jsapi“></script> | |
<!– Mengembed Jquery –> | |
<script type=“text/javascript“ src=“http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js“></script> | |
<script type=“text/javascript“> | |
// Meload paket API dari Google Chart | |
google.load(‘visualization’, ‘1’, {‘packages‘:[‘corechart‘]}); | |
// Membuat Callback yang meload API visualisasi Google Chart | |
google.setOnLoadCallback(drawChart); | |
function drawChart() { | |
var json = $.ajax({ | |
url: ‘json.php‘, // file json hasil query database | |
dataType: ‘json‘, | |
async: false | |
}).responseText; | |
// Mengambil nilai JSON | |
var data = new google.visualization.DataTable(json); | |
var options = { | |
title: ‘Hasil Kuesioner Fakultas‘, | |
colors: [‘#e6693e‘], | |
width: 800, | |
height: 600 | |
}; | |
// API Chart yang akan menampilkan ke dalam div id | |
var chart = new google.visualization.BarChart(document.getElementById(‘tampil_chart‘)); | |
chart.draw(data, options); | |
} | |
</script> | |
</head> | |
<body> | |
<!– Menampilkan dalam bentuk chart dengan ukuran yang telah disesuaikan –> | |
<div id=“tampil_chart“ style=“width: 500px; height: 500px;“></div> | |
</body> | |
</html> |
file index.php di atas adalah memanggil hasil query database kuesioner berbentuk JSON (Notasi Objek Javascript) yang nanti akan kita buat. Berikut adalah isi dari file json.php :
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$host=”localhost“; | |
$user=”root“; | |
$password=””; | |
$koneksi=mysql_connect($host,$user,$password) or die(“Gagal Koneksi Database“); | |
mysql_select_db(“kuesioner“); | |
// write your SQL query here (you may use parameters from $_GET or $_POST if you need them) | |
$query = mysql_query(‘SELECT * FROM hasil’); | |
$table = array(); | |
$table[‘cols’] = array( | |
/* Disini kita mendefinisikan fata pada tabel database | |
* masing-masing kolom akan kita ubah menjadi array |