Ketika 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
if (!defined('BASEPATH')) 
exit('No direct script access allowed');
require_once("libchart/classes/libchart.php");
 
/**
 * @author Ibnu Daqiqil Id
 * @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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);	
	}
 
}

 

8 Comments

 

  1. June 18, 2009  8:04 pm by aji Reply

    de rike for you good

  2. August 19, 2009  1:17 pm by player Reply

    kaitannya ama view sma model gmana?

  3. August 19, 2009  1:49 pm by ibnoe Reply

    disini saya gak pake model sama view. liat param kedua dan fungsi generate_chart_database() itukan udah bisa merepresentasikan penggunan model

  4. August 20, 2010  1:34 am by uu Reply

    pa, kalau gambarnya ga muncul kenapa yah ? walaupun di source code nya ada tetep ada link image nya ?

  5. September 3, 2010  11:52 am by ibnoe Reply

    @uu
    hmm. kemungkinan masih ada error, bisa di buka imagenya secara langsung?

  6. January 28, 2011  1:12 am by ebi Reply

    mas masih binggung penggunaannya. tolong lenih dijelasin dengan detail mas. langkah ke 3 bikin di direktori mana?

    langkah kedua gak ad direktori application/pluggin, adanya application/library, atau system/plugin.

    mohon balasannya

  7. January 28, 2011  1:44 am by ebi Reply

    mas imagenya gak kebuka alias gak ad gambar nya. padahal function indek sudah mengarah pada img src nya..

  8. November 6, 2011  12:49 am by matru Reply

    Om, share sourcecode om juga donk, buat referensi kalo coding pemula banyak salah...

Leave a reply

 

Your email address will not be published.