Bagaimana Cara Membuat Chart di Laravel

Di dalam suatu laporan yang di hasilkan oleh sebuah web aplikasi kadang atau seringkali di butukan laporan yang tidak hanya berisikan konten text, table, angka-angka saja kadang  didalamnya diperlukan sebuah atau beberapa chart atau grafik agar dapat memvisualisasikan  konten-konten laporan tersebut, untuk memberikan solusi tersebut saya akan coba membahas bagaimana cara kita untuk membuat Chart di dalam sebuah laporan di laravel 5.

Untuk membuat chart ada dua metode yang dapat di gunakan, yaitu kita dapat menggunakan skrip yang bersifat client side atau server side, kali ini saya akan coba untuk membahas membuat chart yang akan digenerate dengan  metode server side.

Sample kita kali ini adalah saya membuat sebuah laporan di sebuah web aplikasi yang dibuat menggunakan laravel 5, dengan menggunakan dompdf untuk mebuat laporan tersebut, di dalam laporan tersebut nantinya ada data text dan tabel dan di bawah nya juga ada beberapa chart atau grafik.

Penggunaan DomPdf di laravel 5 untuk membuat sebuah laporan akan saya bahas di tulisan berikutnya. Kenapa disini saya menggunakan metode server side dalam mengenerate chart, itu dikarenakan DomPdf tidak mensupport javascript dalam konversi html ke pdf. 

DomPdf adalah sebuah library dari sekian banyak library untuk mengkonversi konten html kedalam  bentuk format pdf. Baiklah kita mulai saja, pertama kita butuh sebuah library charts php tersebut.

Untuk membuat chart di laravel ini saya menggunakan library php class yaitu  phplot silahkan download di sini

Phplot ini dalam bentuk php class, kita dapat menggunankan nya langsung di dalam laravel. Pada kasus ini saya terlebih dahulu membuat sebuah folder yang nanti nya berisikan php class  kustom yang kita buat, yang perlu di perhatikan di sini yaitu adalah  anda perlu memberikan namespace pada phplot php class tersebut. 


Saya membuat sebuah folder yang saya beri nama library pada folder app dan menambahkan baris kode di awal php class phplot  yaitu namespace nya.  

Selanjut nya kita dapat mengeksekusi php class tersebut dalam bagian controller laravel dengan  namespace berserta php classname nya, berikut dibawah ini contoh membuat chart di laravel dengan type chat area yang akan menghasilkan chart dalam bentuk file image dalam format png file, pada web server aplikasi laravel kita, yang mana file image tersebut akan di tampilkan dalam format laporan dalam bentuk pdf yang menggunakan library DomPdf.



$data = array(

 array('2018', 9.04, 8.04, 7.16),

 array('2019', 9.04, 8.04, 7.16),

 array('2020', 9.04, 8.04, 7.16),

 array('2021', 9.04, 8.04, 7.16),

 array('2022', 9.04, 8.04, 7.16),

 array('2023', 9.04, 8.04, 7.16),

 array('2024', 9.04, 8.04, 7.16),

 array('2025', 9.04, 8.04, 7.16),

);



$plot = new \App\library\PHPlot(720, 250);



$plot->SetImageBorderType('plain');

$plot->SetPlotType('area');
$plot->SetDataType('text-data');
$plot->SetDataValues($data);

# Main plot title:
//$plot->SetTitle('Candy Sales by Flavor');

# Set Y data limits, tick increment, and titles:
$plot->SetPlotAreaWorld(NULL, 0,10);
$plot->SetYTickIncrement(2);
//$plot->SetYTitle('% of Total');
$plot->SetXTitle('Year');
//$plot->TuneYAutoRange(0, 'R', 0);

# Colors are significant to this data:
$plot->SetDataColors(array('red', 'blue', 'green'));
$plot->SetLegend(array('Downstream Gas Price (USD)', 'Upstream Gas Supply Price (USD)', '- Well Head Gas Price'));

# Turn off X tick labels and ticks because they don't apply here:
$plot->SetXTickLabelPos('none');
$plot->SetXTickPos('none');


$plot->SetIsInline(true);
$plot->SetOutputFile('/inetpub/wwwroot/myogm/public/hasil/image.png');
//Draw it
$plot->DrawGraph();


Untuk lokasi folder hasil chart nya seseuaikan dengan lokasi web aplikasi masing-masing untuk type chart yang lain nya dapat di lihat pada dokumentasi phplot.

contoh hasil chart nya dalam format laporan pdf  : 



Demikian , semoga bermanfaat.


























Comments

Popular posts from this blog

Cara membuat toko online dengan menggunakan laravel

Bagaimana cara menggunakan ajax di laravel 5

Bagaimana cara menghapus public di laravel 5