[Contoh] Cara Membuat Grafik dengan JPGraph dengan PHP dan MySQL

Pada posting lalu https://blogit.bimosaurus.com/2012/04/19/contoh-1-dasar-membuat-grafik-dengan-jpgraph-di-php telah coba kita pelajari bagaimana membuat Grafik dengan JPGraph, dengan bahasa PHP dan mengambil data dari MySQL. Diharapkan pada posting tersebut diketahui dasar-dasar untuk membuat grafik sebelum lebih rumit mengambil database. Lantas, bagaimana jika grafik itu harus diambil dari database MySQL? Kuncinya adalah, data yang diambil dari database diambil ke dalam array untuk value sumbu x dan sumbu y. Secara dasar, sama dengan posting lalu, hanya bagaimana mengambil value MySQL dijadikan data x dan y.
Jika kemarin kita punya program macam ini

 

SetScale("textlin");



$graph->title->Set('Jumlah Orang Edan Karesidenan Kedu');


$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);


$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetTickLabels($data_x);
$graph->xgrid->SetColor('#E3E3E3');




$garis = new LinePlot($data_y);
$graph->Add($garis);
$garis->SetColor("#6495ED");
$garis->SetLegend('Tingkat Edan');


$graph->Stroke();


?>

Maka kita coba untuk membuat grafik dengan mengambil database dari database server MySQL. Data yang ita gunakan adalah data pertama yang dulu pernah kita buat. Maaf saya hanya mengambil lima (5) data pertama karena ternyata berisi data percobaan dari teman-teman yang mencoba mengisi database dengan excel

Database yang saya pakai adalah database kepegawaian. Tabelnya adalah tabel pegawai.

nip nama honor status_ambil
10001 Susanto Rp. 1000000 Belum
10002 Susanti Rp. 1000000 Sudah
10003 Marwoto Rp. 2000000 Sudah
10004 Gunadi Rp. 1500000 Belum
10005 Nur Eko Rp. 1000000 Belum

Misal saya akan membuat sebuah grafik dengan sumbu X adalah berisi nama orang dan sumbu Y menunjukkan banyaknya Rupiah yang diterima, maka berikut langkah yang dapat diambil:

  1. Tampilkan hasil Query untuk kelima record tersebut
  2. Ubah terlebih dahulu value yang terdapat dalam kolom honor menjadi numerik
  3. Tentukan data_x adalah nama orang dan data_y adalah besarnya honor, dengan melakukan kombinasi hasil query, explode dan array

Kira kira menjadi seperti demikian :


SetScale("textlin");



$graph->title->Set('Grafik jumlah honor');


$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);


$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetTickLabels($data_x);
$graph->xgrid->SetColor('#E3E3E3');




$garis = new LinePlot($data_y);
$graph->Add($garis);
$garis->SetColor("#6495ED");
$garis->SetLegend('Rupiah');


$graph->Stroke();



?>

Grafik yang dihasilkan seperti ini kira kira

Selamat Mencoba, semoga sukses.. Silakan bertanya jika terdapat kesalahan disini atau perlu ditanyakan, siap saya jawab. Gratis kok!

[First Aid] JPGraph Error 25128: The function imageantialias() is not available in your PHP installation

Pesan ini sering muncul ketika kita koding grafik: JPGraph Error 25128: The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version

Pesan ini cukup jelas. Yaitu fungsi imageantialias() yang terdapat pada JPGraph tidak berfungsi dengan benar. Dalam pesan error juga telah dijelaskan : Silakan gunakan GD Version bawaan PHP dan bukan berbeda versi dengan bawaan PHP.
Langkah paling bagus ya, kita remove GD dan PHP, lantas kita install ulang secara bersama. Hal ini akan sangat enak jika kita menggunakan Linux jenis Debian/Ubuntu/Mint atau Fedora/RedHat/Centos. Karena mereka telah mendukung dependencies installation dengan apt-get dan yum

PERTOLONGAN PERTAMA / FIRST AID

Ada cara cepat untuk menyelesaikan error ini yaitu dengan melakukan editing file gd_image.inc.php. Lho apakah masalah hilang? Tidak, sebenarnya ketika dipandang versi gd dan php kurang pas, maka jika dipandang beresiko error, akan ditutup dengan pesan error tersebut oleh JPGraph. Kita akan bongkar hal itu. Buka file gd_image.inc.php yang terdapat dalam direktori src dalam jpgraph anda. Lantas editlah bagian ini:


function SetAntiAliasing($aFlg=true) {
        $this->use_anti_aliasing = $aFlg;
        if( function_exists('imageantialias') ) {
            imageantialias($this->img,$aFlg);
        }
        else {
            JpGraphError::RaiseL(25128);//('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.')
        }
    }


Tutuplah dengan tanda // pada baris ke 110, yaitu bagian :

//JpGraphError::RaiseL(25128);//('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.')

Sehingga menjadi seperti berikut


function SetAntiAliasing($aFlg=true) {
        $this->use_anti_aliasing = $aFlg;
        if( function_exists('imageantialias') ) {
            imageantialias($this->img,$aFlg);
        }
        else {
//            JpGraphError::RaiseL(25128);//('The function imageantialias() is not available in your PHP installation. Use the GD version that comes with PHP and not the standalone version.')
        }
    }


Bukalah Grafik anda… Sim Salabim

[Contoh 1] Dasar Membuat Grafik dengan JPGraph di PHP

Salah satu fitur penting dalam pembuatan sistem informasi berbasis web adalah pembuatan grafik. Pembuatan grafik terdapat beberapa cara antara lain dengan standard HTML, JavaScript/JQuery, dan yang paling banyak digunakan adalah dengan menggunakan fitur pembuat image JPGraph. Dalam kasus diambil di sini, akan diambil pembuatan grafik dengan JPGraph. JPGraph sendiri adalah merupakan tools berbasis PHP untuk membuat image/gambar dengan menggunakan kode-kode PHP. Tidak hanya grafik berbasis gambar, namun kita juga bisa memanfaatkan untuk keperluan Human Code Verification/CAPTCHA, pembuatan konten berbasis Image dan juga watermark untuk keperluan gambar anda.

Untuk JPGraph sendiri, dapat anda download di http://jpgraph.net/. Jika tidak salah, saat ini telah mencapai versi jpgraph-3.5.0b1. Penggunaannya adalah dengan cara melakukan include jpgraph.php yang ada pada direktori src, dan melakukan include jenis grafik yang akan digunakan. Misal akan digunakan tipe line ya tentu akan diload jpgraph_line.php. Selanjutnya, data yang akan dibuat grafik dikemas dalam variabel array, dengan memanggil fungsi-fungsi tertentu yang sudah ditentukan oleh JPGraph. Tentang fungsi-fungsi tersebut dapat dilihat dalam directori docs. Kira-kira susunan direktorinya adalah seperti berikut

 

jpgraph-3.5.0b1/

   src/

      Example

      fonts

      lang

      theme

      barcode

   docs/

 

Kali ini saya akan mencoba membuat satu contoh pembuatan grafik yang outputnya adalah image/gambar yang menampilkan grafik berformat garis/line. Untuk itu saya menggunakan include jpgraph.php dan jpgraph_line.php

Kira-kira seperti berikut:


SetScale("textlin"); //menentukan jenis grafik



$graph->title->Set('Jumlah Orang Edan Karesidenan Kedu'); //membuat judul atas


$graph->yaxis->HideZeroLabel(); //menyembunyikan nilai 0
$graph->yaxis->HideLine(false); //menampakkan garis

$graph->xgrid->Show(); //perintah tampilkan grid sumbu x
$graph->xgrid->SetLineStyle("solid"); // jenis garis solid, atau dot atau yang lain
$graph->xaxis->SetTickLabels($data_x); //data diambil dari
$graph->xgrid->SetColor('#E3E3E3'); //warna




$garis = new LinePlot($data_y); //mulai mengeplot
$graph->Add($garis); 
$garis->SetColor("#6495ED");
$garis->SetLegend('Tingkat Edan');


$graph->Stroke(); 


?>

 

Kira-kira bentuk akhirnya adalah seperti berikut url ini : https://blogit.bimosaurus.com/demo/grafik_garis.php

Kira kira akan berbentuk seperti ini :

Semoga bermanfaat. Posting selanjutnya adalah menggunakan Theme, mengenali Error dan melibatkan MySQL untuk mengambil data.