initial !important;
background-color: initial !important; background-image: none !important;
background-origin: initial !important; border-bottom-width: 0px
!important; border-color: initial !important; border-image: initial
!important; border-left-width: 0px !important; border-right-width: 0px
!important; border-style: initial !important; border-top-width: 0px
!important; bottom: auto !important; color: rgb(0, 130, 0) !important;
float: none !important; font-family: Consolas, Monaco, 'Bitstream Vera
Sans Mono', 'Courier New', Courier, monospace !important; height: auto
!important; left: auto !important; line-height: 1.1em !important;
margin-bottom: 0px !important; margin-left: 0px !important;
margin-right: 0px !important; margin-top: 0px !important; outline-color:
initial !important; outline-style: initial !important; outline-width:
0px !important; padding-bottom: 0px !important; padding-left: 0px
!important; padding-right: 0px !important; padding-top: 0px !important;
position: static !important; right: auto !important; top: auto
!important; vertical-align: baseline !important; width: auto
!important;">// query SQL untuk mencari jumlah totol penduduk untuk
setiap tahun pada negara A
14.
$query
=
"SELECT tahun, jmlpria + jmlwanita as jum FROM sensus WHERE negara = 'A'"
;
15.
$hasil
= mysql_query(
$query
);
16.
while
(
$data
= mysql_fetch_array(
$hasil
))
17.
{
18.
19.
array_unshift
(
$dataJum
,
$data
[
'jum'
]);
20.
array_unshift
(
$dataTh
,
$data
[
'tahun'
]);
21.
}
22.
23.
24.
$graph
=
new
Graph(300,200,
"auto"
);
25.
$graph
->SetScale(
"textlin"
);
26.
27.
28.
$lineplot
=
new
LinePlot(
$dataJum
);
29.
$graph
->Add(
$lineplot
);
30.
31.
32.
$graph
->img->SetMargin(40,20,20,40);
33.
34.
35.
$graph
->title->Set(
"Grafik Jumlah Penduduk Negara A"
);
36.
37.
38.
$graph
->xaxis->title->Set(
"Tahun"
);
39.
40.
41.
$graph
->yaxis->title->Set(
"Jumlah"
);
42.
43.
44.
$graph
->xaxis->SetTickLabels(
$dataTh
);
45.
46.
47.
$graph
->title->SetFont(FF_FONT1,FS_BOLD);
48.
49.
50.
$lineplot
->SetColor(
"blue"
);
51.
52.
53.
$graph
->SetShadow();
54.
55.
56.
$graph
->Stroke();
57.
?>
Perhatikan perintah berikut ini
1.
include
(
"jpgraph.php"
);
2.
include
(
"jpgraph_line.php"
);
Buat
apa tuh kedua perintah? Kedua perintah akan memanggil modul jpgraph dan
modul untuk membuat chart garis. Tanpa kedua modul file tersebut, chart
garis tidak muncul, namun yang muncul adalah error . Anda dapat
mendownload modul-modul tersebut di bagian bawah artikel ini.
Oya
data yang akan ditampilkan dengan Jpgraph basisnya adalah array,
sehingga dalam script di atas kita buat data dalam bentuk array.
Hasil dari script di atas adalah sbb:
Kita
juga dapat membuat chart garis dan batang menjadi satu (combined).
Berikut ini adalah script untuk menggabungkan kedua bentuk chart menjadi
satu. Contoh ini sekaligus menjawab pertanyaan mbak Dian dalam
komentar yang dituliskannya.
<?php
include ("modul/jpgraph.php");
include ("modul/jpgraph_line.php");
include ("modul/jpgraph_bar.php");
$dataJum = array();
$dataTh = array();
mysql_connect("localhost","root","root");
mysql_select_db("data");
$query = "SELECT tahun, jmlpria + jmlwanita as jum FROM sensus WHERE negara = 'A'";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
array_unshift($dataJum, $data['jum']);
array_unshift($dataTh, $data['tahun']);
}
$graph = new Graph(300,200,"auto");
$graph->SetScale("textlin");
// menampilkan plot batang dari data jumlah penduduk
$bplot = new BarPlot($dataJum);
$graph->Add($bplot);
// menampilkan plot garis dari data jumlah penduduk
$lineplot=new LinePlot($dataJum);
$graph->Add($lineplot);
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set("Grafik Jumlah Penduduk Negara A");
$graph->xaxis->title->Set("Tahun");
$graph->yaxis->title->Set("Jumlah");
$graph->xaxis->SetTickLabels($dataTh);
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$lineplot->SetColor("blue");
$bplot->SetFillColor("red");
$graph->SetShadow();
$graph->Stroke();
?>
Untuk membuat chart batang, kita gunakan modul jpgraph_bar.php. Hasil dari script di atas adalah
Kita juga dapat membuat chart garis dan batang menjadi satu (combined).
Berikut ini adalah script untuk menggabungkan kedua bentuk chart menjadi
satu.
<?php
include ("modul/jpgraph.php");
include ("modul/jpgraph_line.php");
include ("modul/jpgraph_bar.php");
$dataJum = array();
$dataTh = array();
mysql_connect("localhost","root","root");
mysql_select_db("data");
$query = "SELECT tahun, jmlpria + jmlwanita as jum FROM sensus WHERE negara = 'A'";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
array_unshift($dataJum, $data['jum']);
array_unshift($dataTh, $data['tahun']);
}
$graph = new Graph(300,200,"auto");
$graph->SetScale("textlin");
// menampilkan plot batang dari data jumlah penduduk
$bplot = new BarPlot($dataJum);
$graph->Add($bplot);
// menampilkan plot garis dari data jumlah penduduk
$lineplot=new LinePlot($dataJum);
$graph->Add($lineplot);
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set("Grafik Jumlah Penduduk Negara A");
$graph->xaxis->title->Set("Tahun");
$graph->yaxis->title->Set("Jumlah");
$graph->xaxis->SetTickLabels($dataTh);
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$lineplot->SetColor("blue");
$bplot->SetFillColor("red");
$graph->SetShadow();
$graph->Stroke();
?>
Untuk membuat chart batang, kita gunakan modul jpgraph_bar.php. Hasil dari script di atas adalah
Script yang terakhir… sekarang kita coba tampilkan chart batang yang
menunjukkan data statistik jumlah masing-masing pria dan wanita untuk
setiap negara pada tahun 1990. Dalam hal ini chart batang akan
dikelompokkan berdasarkan jenis kelamin. Nah… ini dia scriptnya
<?php
include ("modul/jpgraph.php");
include ("modul/jpgraph_line.php");
include ("modul/jpgraph_bar.php");
// inisialisasi array untuk jumlah pria, wanita dan negara
$dataPria = array();
$dataWanita = array();
$dataNegara = array();
// koneksi ke mysql
mysql_connect("localhost","root","root");
mysql_select_db("data");
// query SQL untuk menampilkan nama negara dan jumlah prianya pada tahun 1990
$query = "SELECT negara, jmlpria, jmlwanita FROM sensus WHERE tahun = '1990' ORDER BY negara DESC";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
// menambahkan data hasil query ke array
array_unshift($dataNegara, $data['negara']);
array_unshift($dataPria, $data['jmlpria']);
array_unshift($dataWanita, $data['jmlwanita']);
}
// membuat image dengan ukuran 400x200 px
$graph = new Graph(400,200,"auto");
$graph->SetScale("textlin");
// menampilkan diagram batang untuk data pria dengan warna orange
// pada diagram batang ditampilkan value data
$bplot1 = new BarPlot($dataPria);
$bplot1->SetFillColor("orange");
$bplot1->value->show();
// menampilkan diagram batang untuk data wanita dengan warna biru
// pada diagram batang ditampilkan value data
$bplot2 = new BarPlot($dataWanita);
$bplot2->SetFillColor("blue");
$bplot2->value->show();
// mengelompokkan grafik batang berdasarkan pria dan wanita
$gbplot = new GroupBarPlot(array($bplot1,$bplot2));
$graph->Add($gbplot);
// membuat legend untuk keterangan pria dan wanita
$bplot1->SetLegend("Pria");
$bplot2->SetLegend("Wanita");
$graph->legend->Pos(0.05,0.5,"right","center");
// mengatur margin image
$graph->img->SetMargin(40,110,20,40);
// menampilkan title grafik dan nama masing-masing sumbu
$graph->title->Set("Grafik Jumlah Penduduk Negara Th 1990");
$graph->xaxis->title->Set("Negara");
$graph->yaxis->title->Set("Jumlah");
// menampilkan nama negara ke sumbu x
$graph->xaxis->SetTickLabels($dataNegara);
// format font title grafik
$graph->title->SetFont(FF_FONT1,FS_BOLD);
// menampilkan efek shadow pada image
$graph->SetShadow();
// menampilkan image ke browser
$graph->Stroke();
?>
Untuk lebih menarik dan lebih informatif kita tambahkan sebuah
legend pada grafik tersebut. Legend tersebut menunjukkan warna berbeda
untuk pria dan wanita. Hasil dari script di atas adalah
Menarik dan mudah bukan? Bila Anda ingin mendownload semua script di
atas termasuk file-file modulnya, silakan download di bawah ini
Download Script dan Modul JpGraph
Update:
Ada tambahan script untuk JpGraph untuk keperluan modul languange nya.
Tanpa script ini, JpGraph akan terjadi error. Silakan diekstrak di dalam
folder hasil ekstrak script di atas.
Download Languange