TL;DR
Business intelligence untuk UMKM bisa dibangun gratis dengan tiga lapisan: Google Sheets sebagai tempat data mentah masuk, database gratis seperti PostgreSQL di layanan tier gratis atau BigQuery sandbox sebagai tempat data diolah pakai SQL, dan Looker Studio sebagai dashboard. Mulai dari empat angka saja: omzet harian, jumlah transaksi, rata-rata belanja, dan produk terlaris.
Toko dengan omzet Rp150 juta per bulan bisa punya dashboard penjualan yang jalan tiap hari tanpa bayar lisensi sepeser pun.
Tiga lapisan: tempat data masuk, tempat data diolah, tempat data dilihat. Semuanya punya versi gratis yang cukup buat skala UMKM.
Yang bikin gagal biasanya bukan tool-nya. Biasanya karena mulai dari 20 angka sekaligus, terus capek di minggu kedua.
Aku bantu satu toko bahan bangunan di Cimahi bangun ini dari nol. Total waktu setup 9 jam, tersebar di 5 hari. Sekarang pemiliknya buka dashboard tiap pagi sambil sarapan.
Business intelligence adalah kumpulan cara buat ngubah catatan transaksi jadi angka yang bisa dipakai ambil keputusan. Bentuk akhirnya biasanya dashboard, yaitu satu halaman berisi angka dan grafik penting yang bisa dilihat sekali lirik.
Buat UMKM, gunanya sederhana: berhenti nebak. Tanpa dashboard, pertanyaan "bulan ini lebih baik dari bulan lalu?" dijawab pakai perasaan atau ngitung ulang manual tiap kali ditanya.
Yang berubah bukan jumlah datanya, tapi kecepatan jawabnya. Dari 40 menit rekap manual jadi 5 detik buka halaman.
| Lapisan | Fungsinya | Pilihan gratis |
|---|---|---|
| Tempat data masuk | Nampung catatan transaksi harian | Google Sheets, Google Form |
| Tempat data diolah | Bersihin dan hitung angka pakai SQL | BigQuery sandbox, PostgreSQL di layanan tier gratis |
| Tempat data dilihat | Nampilin angka dan grafik | Looker Studio |
Buat toko dengan transaksi di bawah 200 per hari, lapisan kedua boleh dilewat. Google Sheets langsung disambungkan ke Looker Studio udah cukup.
Lapisan kedua baru kepakai kalau data kamu udah lewat 50 ribu baris, atau kamu perlu gabungin lebih dari dua sumber data.
Ini langkah yang nentuin sistemmu bertahan atau nggak.
Empat angka yang aku saranin buat toko retail:
Kenapa cuma empat? Karena tiap angka tambahan butuh kolom tambahan di pencatatan, dan tiap kolom tambahan naikin peluang kasir salah isi.
Angka kelima dan seterusnya ditambah setelah empat yang pertama jalan mulus selama sebulan.
Definisikan tiap angka secara tertulis. "Omzet" itu sebelum atau sesudah diskon? Retur ikut dikurangi atau nggak? Tulis di satu tab terpisah supaya semua orang pakai definisi yang sama. Ini bagian dari KPI yang sering dilewat.
Bikin satu Google Sheet dengan struktur ini:
| Kolom | Isi | Contoh |
|---|---|---|
| id_transaksi | Nomor struk | TRX-20251215-001 |
| tanggal | Format tanggal, bukan teks | 15/12/2025 |
| id_produk | Kode produk tetap | SMN-40KG |
| qty | Angka | 3 |
| harga_satuan | Angka tanpa titik ribuan | 68000 |
| metode_bayar | Pilihan terbatas | tunai |
Tiga aturan yang wajib dipasang sejak hari pertama:
Kalau kasirmu belum digital, pakai Google Form yang diisi dari HP. Formnya masuk ke Sheets otomatis.
Lewati langkah ini kalau datamu masih di bawah 50 ribu baris.
Buat yang datanya udah besar, dua pilihan gratis yang paling gampang:
Struktur tabelnya sederhana:
CREATE TABLE transaksi (
id_transaksi TEXT PRIMARY KEY,
tanggal DATE NOT NULL,
id_produk TEXT NOT NULL,
qty INTEGER NOT NULL,
harga_satuan NUMERIC(12,2) NOT NULL,
metode_bayar TEXT
);
Tambah satu tabel produk berisi id_produk, nama_produk, dan kategori. Dua tabel ini udah nutup mayoritas kebutuhan toko.
Omzet harian 30 hari terakhir:
SELECT tanggal,
SUM(qty * harga_satuan) AS omzet,
COUNT(DISTINCT id_transaksi) AS jumlah_transaksi
FROM transaksi
WHERE tanggal >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY tanggal
ORDER BY tanggal;
COUNT DISTINCT penting di sini. Kalau pakai COUNT biasa, struk berisi 3 barang bakal kehitung 3 transaksi.
Rata-rata belanja per transaksi:
SELECT ROUND(SUM(qty * harga_satuan) / COUNT(DISTINCT id_transaksi), 0) AS rata_belanja
FROM transaksi
WHERE tanggal >= CURRENT_DATE - INTERVAL '30 days';
Produk terlaris berdasarkan omzet:
SELECT p.nama_produk,
SUM(t.qty) AS unit_terjual,
SUM(t.qty * t.harga_satuan) AS omzet
FROM transaksi t
JOIN produk p ON p.id_produk = t.id_produk
WHERE t.tanggal >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY p.nama_produk
ORDER BY omzet DESC
LIMIT 10;
Urutkan berdasarkan omzet, bukan unit terjual. Permen yang laku 900 bungkus bisa kalah penting dari semen yang laku 40 sak.
Kalau kamu masih di Sheets dan belum pakai database, versi rumusnya pakai SUMIFS dan COUNTIFS.
Buka Looker Studio, sambungkan ke sumber datamu, lalu susun satu halaman dengan urutan ini:
Satu halaman saja. Halaman kedua boleh ditambah setelah halaman pertama dipakai rutin selama sebulan.
Pasang filter tanggal di paling atas supaya pemilik bisa ganti periode sendiri tanpa minta tolong. Caranya ada di filter dan kontrol Looker Studio.
Buat yang baru pertama kali buka Looker Studio, langkah dasarnya ada di tutorial Looker Studio.
Toko dengan 4 karyawan, omzet sekitar Rp310 juta per bulan, sekitar 85 transaksi per hari.
Sebelum punya dashboard, pemiliknya ngerekap manual tiap akhir bulan. Rata-rata 4 jam per bulan, dan hasilnya cuma total omzet.
Setelah 9 jam setup, ini yang berubah dalam 3 bulan pertama:
| Hal | Sebelum | Sesudah |
|---|---|---|
| Waktu rekap per bulan | 4 jam | 0 jam |
| Jeda tau omzet turun | 30 hari | 1 hari |
| Jumlah SKU yang dipantau | 0 | 10 teratas |
Temuan yang gak diduga muncul dari query jam ramai. Ternyata 41 persen transaksi terjadi antara jam 07.00 dan 09.00, jauh sebelum toko biasanya nambah karyawan shift siang.
Jadwal karyawan digeser: dua orang masuk jam 06.30, bukan 08.00. Antrean pagi berkurang, dan omzet jam 07.00 sampai 09.00 naik 12 persen di bulan berikutnya.
Temuan kedua lebih pahit. Dari 10 produk teratas berdasarkan unit terjual, cuma 4 yang masuk 10 teratas berdasarkan omzet. Selama ini stok gudang diatur berdasarkan unit, bukan nilai.
Kalau empat angka pertama udah rutin dilihat, tiga tambahan yang paling ngasih hasil:
Buat pencatatan keuangannya sendiri, dasarnya ada di pembukuan sederhana UMKM.
Buat data di bawah beberapa juta baris, iya. Google Sheets dan Looker Studio gratis dengan akun Google biasa. BigQuery punya kuota gratis bulanan untuk penyimpanan dan pemrosesan query yang jauh di atas kebutuhan UMKM. Yang berpotensi bayar cuma kalau kamu pakai layanan database berbayar atau datamu tumbuh sangat besar. Cek kuota terbaru di halaman resmi penyedianya.
Sekitar 6 sampai 10 jam kalau kamu belum pernah pakai SQL, dibagi ke beberapa hari. Paling lama itu ngerapiin data lama, biasanya 3 sampai 4 jam. Bikin query dan dashboard-nya sendiri cuma 2 sampai 3 jam. Setelah jalan, perawatan rutinnya sekitar 15 menit per minggu buat ngecek data masuk dengan benar.
Mulai dari mindahin pencatatan ke Google Form atau Sheets, jangan langsung mikir dashboard. Satu form dengan lima kolom sudah cukup: tanggal, produk, jumlah, harga, metode bayar. Jalankan dua bulan dulu sampai kebiasaannya terbentuk. Dashboard tanpa data yang konsisten cuma bakal nampilin grafik bolong-bolong.
Aplikasi kasir biasanya cuma nampilin laporan bawaan yang gak bisa diubah, dan datanya terkunci di dalam aplikasi itu. Dengan alur ini, kamu bisa gabungin data kasir sama data lain seperti biaya operasional atau stok, terus bikin angka yang khusus buat kebutuhanmu. Kalau laporan bawaan kasir sudah cukup, gak perlu buru-buru pindah.
Satu orang cukup, asal dia yang sama tiap minggu. Yang bikin sistem seperti ini mati bukan kesulitan teknis, tapi gak ada yang merasa bertanggung jawab ngecek datanya masuk. Tunjuk satu orang, kasih waktu 15 menit tiap Senin pagi buat ngecek, dan tulis prosedurnya di satu halaman supaya bisa digantikan kalau dia cuti.
Tiga lapisan, empat angka, satu halaman dashboard. Itu seluruh sistemnya.
Bagian paling menentukan bukan pemilihan tool, tapi konsistensi data masuk. Sistem paling canggih pun mati kalau kasir berhenti nyatet selama seminggu.
Mulai minggu ini dengan satu hal: bikin Google Sheet berisi enam kolom di atas, pasang data validation, dan catat transaksi hari ini. Dashboard-nya nyusul.
Mau bandingin tool dashboard gratis lain sebelum mutusin? Ada di Metabase vs Superset vs Looker Studio.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Kolom waktu isinya angka gede kayak 1704067200 dan bikin bingung? Itu Unix timestamp. Ini cara ngubahnya jadi tanggal beneran di SQL, plus balik lagi.
Data transaksi tersimpan UTC, tapi laporan harus jam WIB. Kalau salah konversi, angka penjualan tengah malam bisa kecatat di tanggal yang salah. Ini cara handle timezone di SQL dengan benar.
Nambah 30 hari ke tanggal invoice, ngurangin sebulan buat cari periode lalu, ngitung selisih hari antar order. Semua itu aritmetika tanggal, dan SQL punya operator INTERVAL buat ngerjainnya.