Membuat laporan grafik di Codeigniter dengan php libchart

sample3-smallKetika kita membuat sebuah laporan maka satu hal yang harus di buat adalah char. Sudah library PHP yang ada dan dapat digunakan untuk membuat chart tersebut. PHP libchart adalah salah satu library untuk membuat sebuah chart pada PHP berbasis GD. Untuk menggabungkannya saya buat sebuah pluggin chart sebagai factory dari lib chart tersebut.
adapun langkah-langkah yang dilakukan adalah

Langkah 1 : Download PHP libchart

Download library di http://naku.dohcrew.com/libchart/pages/introduction/

Langkah 2 : Extract PHP libchart

extract libchart pada direktori system/application/pluggin/

Langkah 3 : Buat file chart_pi.php

buat file chart_pi.php yang berisi

 

<?
if (!defined('BASEPATH')) 
exit('No direct script access allowed');
require_once("libchart/classes/libchart.php");
 
/**
 * @param string 	$title 	Judul Chart
 * @param array 	$data 	Data array dengan dua dimensi (key,value)
 * @param integer 	$x		Lebar chart
 * @param integer	$y		Tinggi Chart
 * @param string	$type 	tipe output chart (bar_vertikal,bar_horizontal,pie)
 * @param boolean	$render	Apakah di render ke file?
 */
function create_bar_chart($title,$data,$x=500,$y=300,$type="bar_vertikal",$render_file=FALSE)
{
	if ("bar_horizontal"==$type)
		$chart = new HorizontalBarChart($x,$y);
	else if ("bar_vertikal"==$type)
		$chart = new VerticalBarChart($x,$y);
	else
		$chart = new PieChart($x,$y);
 
	$dataSet = new XYDataSet();
	foreach ($data as $value)
	{
		$dataSet->addPoint(new Point($value['key'], $value['value']));
	}
	$chart->setDataSet($dataSet);
	$chart->setTitle($title);
	if (!$render_file)
		return $chart->render();
	else
		return $chart->render($render_file);	
}
?>

Cara penggunaannya adalah

class chart_demo extends Controller {
	function chart_demo(){
		parent::Controller();
	}
	function index()
	{
		echo "<img src='index.php/chart_demo/generate_chart_manual'><br />"	;
		echo "<img src='index.php/chart_demo/generate_chart_database'>"	;
 
	}
 
	function generate_chart_manual()
	{
                $data[0]["key"]="key 1";
                $data[0]["value"]="17";
                $data[1]["key"]="key 2";
                $data[1]["value"]="26";
                $data[2]["key"]="key 4";
                $data[2]["value"]="37";
                $data[3]["key"]="key 4";
                $data[3]["value"]="7";
 
		echo create_bar_chart("Alasan Pekerjaan",$data,450,250);	
	}
       function generate_chart_database()
	{
		$this->load->plugin('chart');
		$this->load->database();
		$this->db->select (" job_description as key,  count(job_description)  as value");
		$this->db->group_by('job_description');		
		$query=$this->db->get('jobreasongraph');	
		echo create_bar_chart("Alasan Pekerjaan",$query->result_array(),450,250);	
	}
 
}
%d blogger menyukai ini: