Selasa, 20 September 2011

Membuat chart dengan Codeigniter dan php libchart



Membuat chart dengan Codeigniter dan php libchart
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

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); 
 }
 
}

0 comments:

Poskan Komentar