
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($most_value==0) ? ? ?$most_value=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> <? echo "Rp. ".number_format($graphLineValue,3,"",".").",-".""; ?> </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;"> <? echo $row['nama_toko']; ?> </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); |
jadi kalo di preview di browser, jadi ke gini:

Download disini bwat source code na