Ilham Penta
Site menu
Section categories
My files [33]
Our poll
Rate my site
Total of answers: 20
Statistics

Total online: 1
Guests: 1
Users: 0
Login form
Main » Files » My files

membuat grafik
2011-10-17, 5:23 AM
Untuk kali ini, saya akan ambil studi kasus tentang data statistik penduduk suatu negara. Misalkan struktur tabel yang digunakan adalah sbb:

MEMBUAT TABEL DATABASE

CREATE TABLE sensus (
 negara varchar(20),
 tahun varchar(4),
 jmlpria int(11),
 jmlwanita int(11),
 PRIMARY KEY (negara, tahun)
)

ISI TABEL

INSERT INTO `sensus` VALUES ('A', '1990', '20', '31'); INSERT INTO `sensus` VALUES ('B', '1990', '30', '42'); INSERT INTO `sensus` VALUES ('C', '1990', '32', '16'); INSERT INTO `sensus` VALUES ('A', '1991', '41', '17'); INSERT INTO `sensus` VALUES ('B', '1991', '24', '32'); INSERT INTO `sensus` VALUES ('C', '1991', '34', '17'); INSERT INTO `sensus` VALUES ('A', '1992', '52', '35'); INSERT INTO `sensus` VALUES ('B', '1992', '12', '22'); INSERT INTO `sensus` VALUES ('C', '1992', '34', '34');

OK… sekarang akan kita coba menampilkan chart berbentuk garis yang merepresentasikan jumlah total penduduk negara A untuk setiap tahun.

<?php include ("modul/jpgraph.php"); include ("modul/jpgraph_line.php"); // membuat array inisial untuk jumlah penduduk dan tahunnya $dataJum = array(); $dataTh = array(); // koneksi ke db mysql_connect("localhost","root","root"); mysql_select_db("data"); // query SQL untuk mencari jumlah totol penduduk untuk setiap tahun pada negara A $query = "SELECT tahun, jmlpria + jmlwanita as jum FROM sensus WHERE negara = 'A'"; $hasil = mysql_query($query); while ($data = mysql_fetch_array($hasil)) { // hasil data query ditambahkan ke dalam array jumlah pendudukan dan tahun array_unshift($dataJum, $data['jum']); array_unshift($dataTh, $data['tahun']); } // membuat grafik dengan size 300x200 px $graph = new Graph(300,200,"auto"); $graph->SetScale("textlin"); // menampilkan data jumlah penduduk ke dalam plot garis $lineplot=new LinePlot($dataJum); $graph->Add($lineplot); // mengatur margin plot $graph->img->SetMargin(40,20,20,40); // menampilkan title dari grafik $graph->title->Set("Grafik Jumlah Penduduk Negara A"); // menampilkan label pada sumbu x grafik $graph->xaxis->title->Set("Tahun"); // menampilkan label pada sumbu y grafik $graph->yaxis->title->Set("Jumlah"); // menampilkan titik data pada sumbu x (tahun) $graph->xaxis->SetTickLabels($dataTh); // mengatur jenis font pada title grafik $graph->title->SetFont(FF_FONT1,FS_BOLD); // memberi warna biru pada plot garis $lineplot->SetColor("blue"); // memberikan efek shadow pada image $graph->SetShadow(); // tampilkan grafik ke browser $graph->Stroke(); ?>
Hasil dari script di atas adalah sbb:
GRAFIK GARIS

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();
?>
Hasil dari script di atas adalah
grafik batang

ekarang 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

<?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

legend
Category: My files | Added by: penta | Tags: membuat grafik, PHP
Views: 74266 | Downloads: 0 | Comments: 27 | Rating: 0.0/0
Total comments: 2
2 PamUsaremsdUs  
0
Whenever we consider the term your message enjoy, not just in comparison to its a romantic marriage using a different, yet as being a emotion that is certainly engendered once you have miltchmonkey a greater relationship with yourself too : or even to be a a sense bigger oneness household as well as human race - this results in being substantially more extraordinary that all anyone needs in your everyday living is actually really like.

1 Almodlemo  
0
http://www.isabelmarantt.com/#f4d033
Bobby Suede Leather Wedge Sneaker created with a variety from the ideal way your West right away improve the healthy attractiveness of luxury. How amazing isabel marant are!

Name *:
Email *:
Code *:
Search
Site friends
  • Create a free website
  • Copyright Penta.Inc © Powered By: Senjapala