dengan format Graphic Batang

ni cara bikin grafik sederhana tanpa gambar di PHP, dengan bentuk vertikal

pertama kita butuh sql data dari database:
bikin database, dengan nama: graph_dbase

ni bwat table SQL na:

Code:

CREATE TABLE `report_toko` (
`id` int(11) NOT NULL auto_increment,
`nama_toko` varchar(255) NOT NULL default ”,
`laba` int(11) NOT NULL default ‘0’,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


— Dumping data for table `report_toko`

INSERT INTO `report_toko` VALUES (1, ‘Toko A’, 100000);
INSERT INTO `report_toko` VALUES (2, ‘Toko B’, 25000);
INSERT INTO `report_toko` VALUES (3, ‘Toko C’, 15000);
INSERT INTO `report_toko` VALUES (4, ‘Toko D’, 5000);

wuki singkat saja, gw mao bikin koneksi dlo:

Code:

$varData = array(‘localhost’, ‘root’, ”, ‘graph_dbase’);
list($host, $user, $pass, $db) = $varData;
$con = mysql_connect($host, $user, $pass);
mysql_select_db($db, $con) or die(‘ERROR DBASE CON’);

ambil query untuk jumlah terbesar dari laba (MAX) dan total seluruh laba (SUM) dalam baris table:

Code:
$qry = mysql_query(“SELECT * FROM report_toko”) or die(‘ERROR REPORT DATA’);
//ambil data MAX dari laba
$max = mysql_query(“SELECT MAX(laba) FROM report_toko”) or die(‘ERROR MAX DATA’);
list ($most_value) = mysql_fetch_row($max);
mysql_free_result($max);

//jumlahkan (SUM) seluruh nilai laba dalam baris data sebagai ttlLaba
$sum = mysql_query(“SELECT SUM(laba) AS ttlLaba FROM report_toko”) or die(‘ERROR SUM DATA’);
$ttl = mysql_fetch_array($sum);

sebagai keluaran data, gw memanfaatkan table bwat bikin graphic na menjadi vertical. Jadi kaga make fungsi2 gambar lib dari PHP.

Code:
<table border=0 cellspacing=5 cellpadding=0 align=”center” style=”background-color:#ABCDEF;border:1px solid blue;”><tr>

<?
while($row=mysql_fetch_array($qry))
{
if($mostvalue==0)
$mostvalue=1; // menghandle nilai field laba yang nol
//mulai proses data value untuk graphic
$graphLineValue = round(($row[laba] * 100) / $most_value);
$percent        = round(($row[laba] * 100) / $ttl[ttlLaba], 2);
?>
<td valign=”bottom” title=”Nama Toko: <? echo $row[‘nama_toko’]; ?>”><table border=0 cellpadding=0 cellspacing=2>
<tr align=center valign=bottom><td style=”background-color:#E0F0FF;”><table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr align=center><td height=102 valign=bottom nowrap style=”color:black;font-family:Arial, Helvetica;font-size:12px;”><? echo $percent; ?> %</td>
</tr><tr align=center valign=bottom><td><table border=0 cellspacing=0 cellpadding=0><tr><td style=”border:2px outset white;” bgcolor=”#A0C0F0″ title=”<? echo “Rp. “.number_format($graphLineValue,3,””,”.”).”,-“.””; ?>”><div style=”width:20px; height:<? echo $graphLineValue; ?>px; line-height:1px; font-size:1px;”></div></td></tr></table></td></tr></table></td></tr><tr align=center>
<td style=”color:#000000;background-color:#FFFFFF;border:2px groove white;font-family:Arial, Helvetica;font-size:12px;” nowrap>&nbsp;<? echo “Rp. “.number_format($graphLineValue,3,””,”.”).”,-“.””; ?> &nbsp;</td>
</tr><tr><td bgcolor=”#C0E0FF” style=”color:#000000;background-color:#C0E0FF;border:2px groove white;font-family:Arial, Helvetica;font-size:12px;text-align:center;”>&nbsp;<? echo $row[‘nama_toko’]; ?>&nbsp;</td>
</tr></table></td>
<?
}
?>
</tr></table>

<div style=”font-family:’Courier New’; font-size:24px; font-weight:bold; padding-top:20px; text-align:center;”>
<?
echo “Total Laba = Rp. “.number_format($ttl[ttlLaba],0,””,”.”).”,-“.””;
?>
</div>


sebagai penentu tinggi dari graphic na ada pada baris:

Code:
$graphLineValue = round(($row[laba] * 100) / $most_value);


NOTE: round = pembulatan digit angka dibelakang koma

sedangkan untuk perhitungan nilai persentase na ada pada baris:

Code:
$percent        = round(($row[laba] * 100) / $ttl[ttlLaba], 2);

Download disini bwat source code na