TL;DR
Automasi laporan mingguan dengan AI jalan paling baik kalau pembagian tugasnya jelas: SQL yang ngitung angka, AI yang nulis ringkasannya. AI gak boleh ngitung sendiri karena hasilnya bisa ngarang. Di studi kasus toko online ini, laporan mingguan yang tadinya butuh 3 jam kerja manual turun jadi 12 menit, dengan dua minggu masa uji coba di mana hasil AI dicek manual sebelum dikirim.
Aturan pertama automasi laporan dengan AI: SQL yang ngitung, AI yang nulis. Jangan dibalik.
Model bahasa gampang salah ngitung, dan kadang ngarang angka yang kedengarannya masuk akal. Tapi buat nyusun kalimat dari angka yang udah bener? Itu yang dia jago.
Ini studi kasus dari toko online yang laporannya tadinya makan 3 jam tiap Jumat sore. Sekarang 12 menit. Aku ceritain alurnya, prompt yang dipakai, dan tiga bagian yang sempat gagal.
Toko online ini jualan produk rumah tangga, omzet sekitar Rp 180 juta sebulan, 3 orang tim. Yang bikin laporan: satu orang admin yang juga ngurus customer service.
Alur manualnya:
Total 3 jam. Dan itu jam 3 sampai 6 sore Jumat, waktu paling gak produktif dalam seminggu.
Yang bikin makin sia-sia: menurut ownernya, dia cuma baca 2 paragraf pertama dan 1 chart.
Sebelum ngomongin AI, masalah pertama yang harus beres: data-nya nyebar di 3 CSV dengan format beda.
Ini bagian yang paling gak seksi tapi paling penting. Kalau data kamu masih berantakan, AI cuma bakal ngerangkum keberantakan itu dengan kalimat yang rapi.
Struktur tabelnya sederhana: pesanan, detail_pesanan, produk. Tiga tabel, itu doang.
Semua angka di laporan dihitung SQL. Bukan AI. Ini query utamanya:
WITH minggu_ini AS (
SELECT
COUNT(DISTINCT order_id) AS pesanan,
COUNT(DISTINCT id_customer) AS customer,
SUM(total_harga) AS omzet,
ROUND(SUM(total_harga) / COUNT(DISTINCT order_id)) AS aov
FROM pesanan
WHERE tanggal >= CURRENT_DATE - INTERVAL '7 day'
AND status <> 'batal'
),
minggu_lalu AS (
SELECT
COUNT(DISTINCT order_id) AS pesanan,
SUM(total_harga) AS omzet
FROM pesanan
WHERE tanggal >= CURRENT_DATE - INTERVAL '14 day'
AND tanggal < CURRENT_DATE - INTERVAL '7 day'
AND status <> 'batal'
)
SELECT
i.pesanan,
i.customer,
i.omzet,
i.aov,
ROUND(100.0 * (i.omzet - l.omzet) / NULLIF(l.omzet, 0), 1) AS perubahan_omzet_persen,
ROUND(100.0 * (i.pesanan - l.pesanan) / NULLIF(l.pesanan, 0), 1) AS perubahan_pesanan_persen
FROM minggu_ini AS i
CROSS JOIN minggu_lalu AS l;
WITH di situ bikin dua blok hitungan terpisah yang gampang dibaca. Namanya CTE, cara nyusun query bertingkat tanpa bikin sarang subquery yang bikin pusing. Kalau kamu belum pakai ini, cek CTE.
Query kedua narik top 5 produk. Query ketiga narik produk yang penjualannya turun paling tajam.
Tiga query. Hasilnya diformat jadi teks sederhana, bukan tabel HTML:
MINGGU 15-21 JUNI 2026
Pesanan: 412 (naik 8,4% dari minggu lalu)
Customer: 389
Omzet: Rp 47.100.000 (naik 3,1%)
AOV: Rp 114.300 (turun 4,9%)
TOP 5 PRODUK
1. Rak Sepatu Susun 4 - 68 unit - Rp 8.160.000
2. Keranjang Laundry - 91 unit - Rp 5.460.000
...
Teks di atas dikirim ke model bahasa dengan prompt yang ketat. Ini isinya:
Kamu asisten analis untuk toko online produk rumah tangga.
Di bawah ini data penjualan minggu ini. Tulis ringkasan untuk pemilik toko.
ATURAN:
- Maksimal 5 kalimat.
- Gunakan HANYA angka yang ada di data. Jangan menghitung angka baru.
- Jangan menambahkan angka yang tidak tertulis di data.
- Sebutkan satu hal yang perlu diperhatikan minggu depan.
- Kalau ada angka yang turun, sebutkan tanpa menyalahkan siapa pun.
- Bahasa Indonesia santai, pakai "kamu" untuk pemilik toko.
- Jangan pakai kata: signifikan, optimal, strategis.
DATA:
{hasil_query}
Kunci di prompt ini ada di dua baris: "gunakan HANYA angka yang ada di data" dan "jangan menghitung angka baru".
Tanpa dua aturan itu, AI bakal ngitung sendiri hal-hal kayak "proyeksi bulan ini", dan hasilnya sering salah.
Output-nya kira-kira gini:
Minggu ini kamu dapet 412 pesanan, naik 8,4% dari minggu lalu. Omzetnya Rp 47,1 juta, tapi naiknya cuma 3,1%, lebih pelan dari pertumbuhan pesanan. Artinya rata-rata belanja per pesanan turun jadi Rp 114.300, 4,9% lebih rendah dari minggu lalu. Rak Sepatu Susun 4 masih jadi penyumbang omzet terbesar dengan Rp 8,16 juta. Yang perlu kamu perhatiin minggu depan: orang beli lebih sering tapi lebih kecil, jadi mungkin waktunya coba bundling.
Itu yang dikirim ke owner. Plus dua chart yang di-generate otomatis.
Semua dijalanin cron tiap Senin jam 07.00. Script-nya urut: jalanin query, format hasilnya, panggil API AI, gabungin sama chart, kirim email.
Kenapa Senin pagi bukan Jumat sore? Karena owner-nya baca laporan pas mikirin minggu yang mau dijalanin, bukan pas mau pulang.
Perubahan jadwal ini kelihatan sepele, tapi ini yang bikin laporannya beneran dibaca.
Gagal 1: AI ngarang angka proyeksi. Minggu pertama, laporannya nulis "dengan tren ini, omzet bulan ini diproyeksikan Rp 210 juta". Angka itu gak ada di data, AI ngitung sendiri, dan cara ngitungnya salah. Diperbaiki dengan nambahin aturan eksplisit di prompt: dilarang ngitung angka baru.
Gagal 2: Angka omzet beda sama laporan akunting. Query awal ngitung semua pesanan termasuk yang di-refund. Ketauan minggu kedua, selisihnya Rp 3,2 juta. Diperbaiki dengan nambah filter status <> 'batal' dan status <> 'refund'. Ini kesalahan manusia, bukan kesalahan AI.
Gagal 3: Nadanya terlalu kaku. Ringkasan pertama penuh kata "signifikan" dan "strategis", kedengarannya kayak konsultan. Diperbaiki dengan daftar kata terlarang di prompt.
Semua tiga kesalahan ini ketahuan gara-gara masa uji coba: dua minggu di mana laporan AI tetep dicek manual sebelum dikirim.
Jangan skip bagian ini. Automasi yang salah diam-diam lebih bahaya dari kerjaan manual yang lambat.
| Sebelum | Sesudah | |
|---|---|---|
| Waktu bikin laporan | 3 jam | 12 menit (cek + kirim ulang kalau perlu) |
| Hari kirim | Jumat sore | Senin 08.00 |
| Paragraf yang dibaca owner | 2 dari 5 | 5 dari 5 |
| Biaya API AI per bulan | - | Rp 11.000 |
| Kesalahan angka | 2 kali dalam 6 bulan | 0 dalam 3 bulan |
Hemat waktunya 2 jam 48 menit per minggu. Setahun: sekitar 145 jam.
Tapi angka yang paling penting menurut aku bukan itu. Laporannya sekarang dibaca utuh, dan dari situ owner ngambil dua keputusan yang beneran ngubah stok: bundling produk kecil, dan berhenti restock 4 SKU yang selalu ada di daftar produk turun.
Ngitung angka. Selalu SQL. Selalu.
Mutusin metrik mana yang penting. Itu keputusan bisnis. AI gak tau kalau bulan depan kamu mau fokus ke retensi.
Nyimpulin sebab. AI boleh nulis "omzet turun 12%". AI gak boleh nulis "omzet turun karena kompetitor kasih diskon", dia gak punya data buat itu, dan itu murni tebakan.
Batasnya sederhana: AI boleh nyusun kalimat dari fakta yang kamu kasih. Nggak boleh nambah fakta baru.
Nggak perlu langsung bikin pipeline. Tiga langkah yang bisa kamu lakuin minggu ini:
Panduan cara nyambungin API model bahasa ada di dokumentasi resminya, dan pola yang sama berlaku buat model lain.
Nggak. Model bahasa itu jago nyusun kalimat, tapi gampang salah ngitung dan kadang ngarang angka yang kedengarannya masuk akal. Pembagian tugas yang aman: SQL yang ngitung semua angka, AI cuma nerima hasilnya sebagai teks dan nulis ringkasan. Kalau AI diminta ngitung sendiri dari data mentah, siap-siap kaget pas angkanya dicek.
Di studi kasus toko online ini, laporan mingguan yang tadinya butuh 3 jam kerja manual jadi 12 menit. Itu sekitar 2 jam 48 menit hemat per minggu, atau 145 jam setahun. Sebagian besar waktu manual dulu habis di copy-paste antar sheet dan bikin chart ulang, bukan di analisis.
Butuh sedikit. Minimal kamu harus bisa nulis SQL buat narik angkanya dan sedikit Python atau tool no-code kayak n8n buat nyambungin query ke AI dan email. Kalau kamu belum bisa dua-duanya, mulai dari SQL. Query yang bisa dipakai ulang aja udah motong setengah waktu laporan kamu, tanpa AI sama sekali.
Itu kenapa masa uji coba wajib. Jalanin dua minggu di mana laporan AI dicek manual sebelum dikirim, dan catat tiap kali salah. Di kasus ini ada 3 kesalahan di 2 minggu pertama, semuanya karena prompt-nya terlalu longgar. Setelah prompt-nya dikencengin dengan aturan eksplisit, 8 minggu berikutnya bersih.
Yang dipakai di kasus ini: Postgres buat data, script Python buat jalanin query dan panggil API model bahasa, cron buat jadwal, dan email biasa buat kirim. Alternatif tanpa coding: n8n atau Zapier buat alurnya, Google Sheets buat data, dan Gmail buat kirim. Biaya API model bahasa buat laporan mingguan kayak gini di bawah Rp 15.000 sebulan.
Yang bikin automasi ini jalan:
Pondasinya tetep SQL. Query yang bener bikin automasi ini mungkin. Tanpa itu, AI cuma ngerapihin angka yang salah. Latihan sampai lancar di NgulikSQL.
Lanjut baca: KPI Marketing: 12 Metrik Wajib di Dashboard Kamu, buat mutusin angka apa yang layak masuk laporan mingguan kamu.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Tools AI bisa bikin chart dan ringkas data dalam hitungan detik. Jadi Python masih perlu dipelajari analis di 2026? Jawabannya iya, tapi alasannya udah beda dari 3 tahun lalu.
Aku tes forecasting AI di data penjualan 4 cabang toko grosir. Hasilnya lebih akurat dari tebakan manual, tapi meleset parah di satu titik yang mahal.
Cara ngolah ribuan review pelanggan jadi insight pakai AI, dari nyusun prompt yang konsisten, ngasih label, sampai ngubah hasilnya jadi rekomendasi yang bisa dieksekusi.