Nexa Flot
Nexa Flot adalah library visualisasi data yang powerful untuk membuat
berbagai jenis grafik dalam aplikasi Nexa. Library ini menyediakan
antarmuka yang mudah digunakan untuk membuat grafik dari data database
menggunakan query builder pattern.
Konstruktor
Untuk mulai menggunakan NexaFlot, ikuti langkah-langkah berikut:
Inisialisasi Object
// Inisialisasi Nexa
$nexa = new Nexa();
// Cara 1: Tanpa nama tabel
$flot = $nexa->Flot();
// Cara 2: Dengan nama tabel spesifik
$flot = $nexa->Flot('users');
Catatan: Pastikan konfigurasi database sudah diatur
dengan benar di file konfigurasi database Anda sebelum menggunakan
NexaFlot.
Query Builder Methods
NexaFlot menyediakan beberapa method untuk membangun query:
-
table($table)
- Menentukan tabel yang akan digunakan
select($columns)
- Memilih kolom yang akan diambil
-
where($column, $operator, $value)
- Menambahkan kondisi
WHERE
orderBy($column, $direction)
- Mengurutkan hasil
groupBy($columns)
- Mengelompokkan hasil
limit($limit)
- Membatasi jumlah hasil
Contoh Penggunaan
$flot->table('sales')
->select(['date', 'amount'])
->where('year', 2024)
->orderBy('date')
->limit(10);
Grafik Dasar
NexaFlot mendukung beberapa tipe grafik dasar yang sering digunakan.
Grafik Garis (Line Chart)
Grafik garis ideal untuk menampilkan trend data sepanjang waktu.
$options = [
'title' => 'Penjualan Bulanan',
'xAxis' => 'Bulan',
'yAxis' => 'Total Penjualan'
];
$data = $flot->table('sales')
->select(['month', 'total'])
->getLineChartData($options);
Grafik Batang (Bar Chart)
Grafik batang efektif untuk membandingkan nilai antar kategori.
$data = $flot->table('products')
->select(['category', 'sales'])
->getBarChartData([
'title' => 'Penjualan per Kategori'
]);
Grafik Lingkaran (Pie Chart)
Grafik pie menampilkan proporsi dari keseluruhan data.
$data = $flot->table('market_share')
->select(['company', 'percentage'])
->getPieChartData([
'title' => 'Market Share'
]);
Time Series
Grafik time series khusus untuk data berbasis waktu dengan format yang
dapat disesuaikan.
$options = [
'title' => 'Time Series',
'xAxis' => 'Time',
'yAxis' => 'Value',
'timeFormat' => 'YYYY-MM-DD' // Format waktu yang dapat disesuaikan
];
$data = $flot->table('metrics')
->select(['timestamp', 'value'])
->getTimeSeriesData($options);
Heatmap
Heatmap memvisualisasikan data dalam format matriks dengan gradasi
warna.
$options = [
'title' => 'Heatmap',
'xAxis' => 'X Label',
'yAxis' => 'Y Label',
'colorScale' => [
'min' => 0,
'max' => 100
]
];
$data = $flot->table('temperature')
->select(['x', 'y', 'value'])
->getHeatmapData($options);
Radar
Grafik radar efektif untuk membandingkan multiple variabel dalam format
polar.
$options = [
'title' => 'Radar Chart',
'categories' => ['Speed', 'Power', 'Range', 'Accuracy'],
'scale' => [
'min' => 0,
'max' => 100
]
];
$data = $flot->table('performance')
->select(['metric', 'score'])
->getRadarData($options);
Waterfall
Grafik waterfall menunjukkan bagaimana nilai awal dipengaruhi oleh nilai
positif dan negatif.
$options = [
'title' => 'Waterfall Chart',
'xAxis' => 'Categories',
'yAxis' => 'Amount',
'initialValue' => 1000, // Nilai awal
'colors' => [
'positive' => '#4CAF50',
'negative' => '#F44336'
]
];
$data = $flot->table('financial_changes')
->select(['item', 'amount'])
->getWaterfallData($options);