Jagat BataraCase studyStudi kasus
STAR case study · Power BIStudi kasus STAR · Power BI

I stopped formatting Power BI visuals one by one. Here’s what I do instead.Saya berhenti memformat visual Power BI satu per satu. Ini gantinya.

In a typical build, the design phase alone can take one to two weeks. I moved the whole look into one page that is designed once, and Power BI fills it with fresh data every morning. This is the case, the build, and the honest trade-offs.

Dalam build biasa, fase desain saja bisa makan satu sampai dua minggu. Saya memindahkan seluruh tampilan ke satu halaman yang didesain sekali, lalu Power BI mengisinya dengan data baru setiap pagi. Ini kasusnya, cara buildnya, dan konsekuensinya secara jujur.

The usual wayCara biasa
1–2weeksminggu

for the design and prototyping phase alone: layout, charts, filters and interactivity, often with stakeholder approval rounds on the wireframes.[2]

hanya untuk fase desain dan prototipe: layout, chart, filter, dan interaktivitas, sering kali dengan putaran persetujuan wireframe oleh stakeholder.[2]

formatting lives inside each visualformat melekat di setiap visual
This way: what you touchCara ini: yang disentuh
1file to change the whole lookfile untuk mengganti seluruh tampilan
1formula to tweak a colour or a targetformula untuk mengubah warna atau target
0manual steps each morninglangkah manual setiap pagi
3+1queries and one measure to build itquery dan satu measure untuk membangunnya

Left: a published industry benchmark. Right: what this build actually requires, counted from the project documentation. It shows where the effort moves, not a stopwatch result.

Kiri: benchmark industri yang dipublikasikan. Kanan: apa yang benar-benar dibutuhkan build ini, dihitung dari dokumentasi proyek. Ini menunjukkan ke mana usaha berpindah, bukan hasil stopwatch.

The case is disguised as "X Report in X Department". Names, figures and systems are changed or removed; the architecture, the decisions and the lessons are real. Kasusnya disamarkan sebagai "X Report di X Department". Nama, angka, dan sistem diubah atau dihapus; arsitektur, keputusan, dan pelajarannya nyata.
S
SITUATION
SITUASI

A register everyone needed, nobody could read

Register yang dibutuhkan semua orang, tapi tidak bisa dibaca

X Department tracks every X document in one shared register, from the day it is received to the day it is approved.

X Department mencatat setiap dokumen X dalam satu register bersama, dari hari diterima sampai hari disetujui.

Management needed one view of cost structure and processing performance. The register held the answer, but in a form only its owners could use.

Manajemen butuh satu tampilan untuk struktur biaya dan kinerja proses. Jawabannya ada di register, tapi dalam bentuk yang hanya bisa dipakai pemiliknya.

Illustrative rows. Red cells show the kinds of issues the real file had: formula errors, numbers stored as text, approval dated before receipt, blank hierarchy levels.

Baris ilustrasi. Sel merah menunjukkan jenis masalah di file aslinya: formula error, angka tersimpan sebagai teks, tanggal approval sebelum tanggal terima, level hierarki kosong.

Large file

File besar

Thousands of rows, too big to read as a management view.

Ribuan baris, terlalu besar untuk dibaca sebagai tampilan manajemen.

Errors and inconsistency

Error dan tidak konsisten

Formula errors and inconsistent entries across the register.

Formula error dan entri yang tidak konsisten di seluruh register.

Not shareable

Tidak bisa dibagikan

Cannot be sent to executives as a dashboard.

Tidak bisa dikirim ke eksekutif sebagai dashboard.

Native visuals too rigid

Visual native terlalu kaku

The consultant-style layout needed an org-chart tree and written summaries.

Layout gaya konsultan butuh pohon seperti org chart dan ringkasan tertulis.

T
TASK
TUGAS

Five objectives, four locked doors

Lima objektif, empat pintu terkunci

Each objective came with a success measure. The constraints mattered just as much: they decided which solutions were even possible.

Setiap objektif punya ukuran keberhasilan. Batasannya sama penting: batasan itulah yang menentukan solusi mana yang mungkin.

One link to an interactive, consultant-style dashboard

Satu link ke dashboard interaktif bergaya konsultan

Users open a Power BI link; no file distributionUser membuka link Power BI; tanpa kirim file

Cost breakdown by a 5-level hierarchy, like an org chart

Rincian biaya per hierarki 5 level, seperti org chart

Expand/collapse tree with drag-to-panPohon expand/collapse dengan drag-to-pan

Monitor the processing-time KPI against target

Memantau KPI waktu proses terhadap target

KPI %, trend, aging, root causesKPI %, tren, aging, akar masalah

Refresh automatically from the live register

Refresh otomatis dari register yang hidup

Scheduled daily refresh, no manual data handlingRefresh harian terjadwal, tanpa olah data manual

Expose data quality issues instead of hiding them

Menampilkan masalah kualitas data, bukan menyembunyikannya

A Data Notes tab counts issues on every refreshTab Data Notes menghitung masalah setiap refresh

ConstraintsBatasan

No Azure subscriptionTidak ada langganan Azure No software installs on the laptopTidak boleh install software di laptop No SharePoint admin rightsTidak punya hak admin SharePoint Read-only access to the source fileAkses read-only ke file sumber
A
ACTION
AKSI

Pick the route, build the pipeline, gate every step

Pilih jalur, bangun pipeline, kunci setiap langkah

Five moves, in order: rule out what can't work, design the flow, automate the morning, make changes safe, and test with gates before going live.

Lima langkah berurutan: singkirkan yang tidak mungkin, rancang alurnya, otomatiskan pagi hari, buat perubahan jadi aman, dan uji dengan gate sebelum live.

1Nine options, one survivorSembilan opsi, satu yang lolos

The constraints did most of the work. Every option was tested against them before any design began.

Batasan yang melakukan sebagian besar seleksi. Setiap opsi diuji terhadap batasan itu sebelum desain dimulai.

Upload .html to SharePoint and share the linkUpload .html ke SharePoint lalu bagikan linkRejectedDitolakSharePoint downloads the file instead of showing it; custom script is blocked.SharePoint mengunduh file, bukan menampilkannya; custom script diblokir.
Rename to .aspx / enable custom scriptGanti ke .aspx / aktifkan custom scriptRejectedDitolakThe custom-script permission resets after 24 hours and needs an admin.Izin custom script ter-reset setelah 24 jam dan butuh admin.
Public static hosting (e.g. GitHub Pages)Hosting statis publik (mis. GitHub Pages)RejectedDitolakExposes business data to the internet.Data bisnis terbuka ke internet.
Azure Static Web Apps + Entra IDNot pursuedTidak dilanjutkanNo Azure subscription available.Tidak ada langganan Azure.
SPFx web partNot feasibleTidak memungkinkanNeeds a Node.js install (not allowed) and admin deployment to the App Catalog.Butuh install Node.js (tidak diizinkan) dan deployment admin ke App Catalog.
Power Apps canvasRejectedDitolakA full rebuild with no JavaScript, plus delegation limits.Harus dibangun ulang tanpa JavaScript, plus batasan delegasi.
Power Apps code appsNot pursuedTidak dilanjutkanRequires a Power Apps Premium licence for every viewer.Butuh lisensi Power Apps Premium untuk setiap viewer.
Native Power BI visualsVisual native Power BIRejectedDitolakToo rigid for the required layout.Terlalu kaku untuk layout yang dibutuhkan.
Power BI + HTML Content (Regular) visualSelectedDipilihFree (MIT licence), runs JavaScript, and keeps Power BI's own refresh, security and sharing.Gratis (lisensi MIT), bisa menjalankan JavaScript, dan tetap memakai refresh, keamanan, dan sharing bawaan Power BI.

2How it works: from your data to a link anyone can openCara kerjanya: dari data kamu ke link yang bisa dibuka siapa saja

Six layers, each with one job. Easy way to picture it: the template is a blank certificate design, the data is the list of names, and Power BI is the printer that prints a fresh copy every morning.

Enam lapisan, masing-masing punya satu tugas. Cara mudah membayangkannya: template adalah desain sertifikat kosong, data adalah daftar nama, dan Power BI adalah printer yang mencetak salinan baru setiap pagi.

1
SOURCESUMBER

Your data

Data kamu

A Dataflow, SQL database or SharePoint source. Read access is enough. Source of truth.

Dataflow, database SQL, atau sumber SharePoint. Akses baca sudah cukup. Sumber kebenaran.

2
CLEANBERSIHKAN

Power Query

Tolerant header matching; every record packed as one JSON row.

Pencocokan header yang toleran; setiap record dikemas jadi satu baris JSON.

3
DESIGNDESAIN

HTML template

Template HTML

One .html file with a /*DATA*/ marker, split into 30,000-character chunks.

Satu file .html dengan penanda /*DATA*/, dipecah per 30.000 karakter.

4
COMBINEGABUNG

One formula

Satu formula

A DAX measure: Part A + data JSON + Part B (+ optional patches).

Satu measure DAX: Part A + data JSON + Part B (+ patch opsional).

5
SHOWTAMPILKAN

Power BI visual

Visual Power BI

HTML Content (Regular) runs the HTML/JavaScript inside the Power BI sandbox.

HTML Content (Regular) menjalankan HTML/JavaScript di sandbox Power BI.

6
SHAREBAGIKAN

One link

Satu link

Scheduled refresh, access control and sharing by report link.

Refresh terjadwal, kontrol akses, dan sharing lewat link report.

Honest note on the source: in this case the data came from a spreadsheet register on SharePoint. Dataflow, SQL and SharePoint-list sources plug into the same Power Query step, but they were not tested in this build.Catatan jujur soal sumber: di kasus ini datanya berasal dari register spreadsheet di SharePoint. Sumber Dataflow, SQL, dan SharePoint list masuk ke langkah Power Query yang sama, tapi belum dites di build ini.
No manual work: no daily file sending, no copy-paste.Tanpa kerja manual: tidak ada kirim file harian, tidak ada copy-paste.
Flexible design: change the whole look by replacing one file.Desain fleksibel: ganti seluruh tampilan dengan mengganti satu file.
Standard platform: Power BI's own login, refresh and sharing.Platform standar: login, refresh, dan sharing bawaan Power BI.

3What happens every morningApa yang terjadi setiap pagi06:00

Nobody has to do anything. The top row is what Power BI does by itself; the bottom row is what a viewer does.

Tidak ada yang perlu dikerjakan siapa pun. Baris atas dikerjakan Power BI sendiri; baris bawah adalah yang dilakukan viewer.

BEHIND THE SCENESDI BALIK LAYAR
Alarm: scheduled refresh starts
Alarm: refresh terjadwal dimulai
Reads the latest source data
Membaca data sumber terbaru
Reads the design file
Membaca file desain
Stamps the refresh time
Mencatat waktu refresh
Stores the fresh data
Menyimpan data terbaru
VIEWER (ANYTIME)VIEWER (KAPAN SAJA)
Opens the report link
Membuka link report
Formula builds the page from stored data
Formula menyusun halaman dari data tersimpan
Dashboard appears with the latest numbers
Dashboard muncul dengan angka terbaru
Uses filters, tabs and tables
Memakai filter, tab, dan tabel
Checks "Last refresh" in the header
Cek "Last refresh" di header
The "Last refresh" date shows how fresh the data is. If a refresh fails, the date stops moving.Tanggal "Last refresh" menunjukkan seberapa segar datanya. Kalau refresh gagal, tanggalnya berhenti bergerak.

4"I want to change something": which part do I touch?"Saya mau mengubah sesuatu": bagian mana yang disentuh?

Each kind of change has exactly one place to go, so changes stay small and safe.

Setiap jenis perubahan punya tepat satu tempat, jadi perubahan tetap kecil dan aman.

I want to change the dashboardSaya mau mengubah dashboard
THE NUMBERS CHANGEDANGKANYA BERUBAH

Update the data

Update data

Update the source data. The next refresh updates the dashboard automatically.
Update data di sumber. Refresh berikutnya meng-update dashboard otomatis.
Keep table and column names stable; renaming breaks the mapping.
Jaga nama tabel dan kolom tetap stabil; mengganti nama akan memutus mapping.
I WANT A NEW LOOKMAU TAMPILAN BARU

Change the design

Ganti desain

Replace the template file on SharePoint, keeping the same file name.
Ganti file template di SharePoint dengan nama file yang sama.
Template only; the model, queries and measure stay unchanged.
Hanya template; model, query, dan measure tidak berubah.
A SMALL TWEAKPENYESUAIAN KECIL

Adjust a detail

Ubah detail

Edit the one formula in Power BI: a colour, a target %, hide a line of text.
Edit satu formula di Power BI: warna, target %, menyembunyikan satu baris teks.
Patch the measure with extra CSS, a SUBSTITUTE or a small script. Check visually: a failed SUBSTITUTE gives no error.
Patch measure dengan CSS tambahan, SUBSTITUTE, atau script kecil. Cek secara visual: SUBSTITUTE yang gagal tidak memunculkan error.
A NEW COLUMN IS NEEDEDBUTUH KOLOM BARU

Add a data field

Tambah field data

Add it in two places: the cleaning step and the design file, in the same position.
Tambahkan di dua tempat: langkah pembersihan data dan file desain, di posisi yang sama.
Add to the query's field list and to the template's field array at the same index.
Tambahkan ke daftar field di query dan ke array field di template pada index yang sama.

5Build steps, with checkpoints that must passLangkah build, dengan checkpoint yang wajib lolos

Yellow diamonds are checkpoints. If the answer is "No", fix the issue first and repeat the check. Red GATE marks checks that must pass before going live.

Belah ketupat kuning adalah checkpoint. Kalau jawabannya "Tidak", perbaiki dulu lalu cek ulang. Label merah GATE menandai cek yang wajib lolos sebelum live.

CheckpointCheckpointGATEMust passWajib lolosFix, then check againPerbaiki, lalu cek ulang
STEP 0 · APPROVALLANGKAH 0 · PERSETUJUAN

Check we are allowed to use it

Pastikan kita boleh memakainya

Is the display visual permitted by IT, and do viewers have the right Power BI licence?

Apakah visualnya diizinkan IT, dan apakah viewer punya lisensi Power BI yang sesuai?

Does a test page display after publishing?
Apakah halaman tes tampil setelah publish?
If noJika tidak
Stop. Ask IT for approval, or use standard Power BI visuals instead.Berhenti. Minta persetujuan IT, atau pakai visual standar Power BI. GATE
YesYa
STEP 1 · PLANLANGKAH 1 · RENCANA

Write down what the dashboard must show

Tulis apa yang harus ditampilkan dashboard

What is one record? Which numbers matter? What are the targets? Which filters are needed?

Satu record itu apa? Angka mana yang penting? Targetnya berapa? Filter apa yang dibutuhkan?

Grain, KPI rules, thresholds, hierarchy, filters, tabs and refresh time (BRD).
Grain, aturan KPI, ambang batas, hierarki, filter, tab, dan waktu refresh (BRD).
STEP 2 · PREPARE DATALANGKAH 2 · SIAPKAN DATA

Look at the real source

Lihat sumber data yang asli

Note the exact table and column names. Never guess them.

Catat nama tabel dan kolom persisnya. Jangan pernah menebak.

File sources: File › Info › Copy path, remove ?web=1, spaces as %20. Dataflow or SQL: connect through Power BI’s own connector, not a link.
Sumber file: File › Info › Copy path, hapus ?web=1, spasi jadi %20. Dataflow atau SQL: sambungkan lewat connector bawaan Power BI, bukan link.
Are the table and the connection correct?
Apakah tabel dan koneksinya benar?
If noJika tidak
Fix first: recheck the table name and the connection. Most build errors come from here.Perbaiki dulu: cek ulang nama tabel dan koneksinya. Sebagian besar error build berasal dari sini.
then check againlalu cek ulang
YesYa
STEP 3 · DESIGNLANGKAH 3 · DESAIN

Build the dashboard page and test it in a browser

Bangun halaman dashboard dan tes di browser

Try it with a few sample rows first. If it looks right in a browser, it will usually look right in Power BI.

Coba dulu dengan beberapa baris contoh. Kalau sudah benar di browser, biasanya akan benar juga di Power BI.

STEP 4 · CONNECTLANGKAH 4 · HUBUNGKAN

Set up the data cleaning and the formula in Power BI

Pasang pembersihan data dan formula di Power BI

Paste the three ready-made data steps and the one formula, then place the visual on a full page.

Tempel tiga langkah data yang sudah jadi dan satu formula, lalu letakkan visual di satu halaman penuh.

Three queries + one measure; custom canvas size; no slicers.
Tiga query + satu measure; ukuran canvas custom; tanpa slicer.
Is the record count the same as in the source?
Apakah jumlah record sama dengan di sumber?
If noJika tidak
Fix first: clear the cache, refresh, and check the data source.Perbaiki dulu: hapus cache, refresh, dan cek sumber data. GATE
then check againlalu cek ulang
YesYa
STEP 5 · TESTLANGKAH 5 · UJI

Click through everything and compare totals

Klik semuanya dan bandingkan total

Check every tab, filter and button, and compare key totals with the source.

Cek setiap tab, filter, dan tombol, lalu bandingkan total utama dengan sumber.

Reconcile at least two filter combinations; recompute one KPI % by hand.
Rekonsiliasi minimal dua kombinasi filter; hitung ulang satu KPI % secara manual.
Do the dashboard totals match the source?
Apakah total dashboard cocok dengan sumber?
If noJika tidak
Fix first: find the difference (blank values, text in number columns, date errors).Perbaiki dulu: cari selisihnya (nilai kosong, teks di kolom angka, error tanggal). GATE
then check againlalu cek ulang
YesYa
STEP 6 · GO LIVELANGKAH 6 · LIVE

Publish, set the morning refresh, share the link

Publish, atur refresh pagi, bagikan link

Sign in once for each data source, schedule the daily refresh, and run it once to confirm.

Login sekali untuk setiap sumber data, jadwalkan refresh harian, dan jalankan sekali untuk memastikan.

Organizational credentials per source; failure notifications on.
Kredensial organisasi per sumber; notifikasi kegagalan aktif.
Does the live version match the desktop version?
Apakah versi live sama dengan versi desktop?
If noJika tidak
Fix first: re-enter the data source sign-in and refresh again.Perbaiki dulu: masukkan ulang login sumber data dan refresh lagi. GATE
then check againlalu cek ulang
YesYa
STEP 7 · HAND OVERLANGKAH 7 · SERAH TERIMA

Document it and tell the data owners

Dokumentasikan dan beri tahu pemilik data

Save the final files, write a short guide, and ask data owners not to rename columns or the file.

Simpan file final, tulis panduan singkat, dan minta pemilik data tidak mengganti nama kolom atau file.

Dashboard live and refreshing every morningDashboard live dan refresh setiap pagi

6What broke along the way, and the fix that stayedApa yang rusak di jalan, dan perbaikan yang dipertahankan

Every robustness feature in the final build exists because something failed first.

Setiap fitur ketahanan di build final ada karena sesuatu pernah gagal lebih dulu.

"Required column not found"
"Required column not found"
The source team renamed a header.
Tim sumber mengganti nama header.
An alias map lists every accepted header per field, and the error prints all available columns.Alias map mendaftar semua header yang diterima per field, dan error-nya mencetak semua kolom yang tersedia.
Column not found, though it was there
Kolom tidak ditemukan, padahal ada
A double space in the header was lost when copying code from chat.
Spasi ganda di header hilang saat menyalin kode dari chat.
Headers are normalised to lower-case letters and digits before matching.Header dinormalisasi jadi huruf kecil dan angka saja sebelum dicocokkan.
The connection fails on the file link
Koneksi gagal di link file
A browser sharing link was used instead of the real path.
Yang dipakai link sharing browser, bukan path asli.
For file sources, copy the path from the desktop app: File › Info › Copy path.Untuk sumber file, salin path dari aplikasi desktop: File › Info › Copy path.
A label still shows the old target
Label masih menampilkan target lama
The template text changed, so the SUBSTITUTE patch silently matched nothing.
Teks template berubah, jadi patch SUBSTITUTE diam-diam tidak menemukan apa pun.
Patched strings are listed in a template contract; check patches visually.String yang di-patch dicatat dalam kontrak template; cek patch secara visual.
Tabs and buttons not responding
Tab dan tombol tidak merespons
The Secure edition of the visual was used; it doesn't run scripts.
Yang dipakai edisi Secure dari visualnya; edisi ini tidak menjalankan script.
Use the HTML Content Regular edition.Pakai edisi HTML Content Regular.
Refresh fails in the Service
Refresh gagal di Service
Credentials were not set after publishing.
Kredensial belum diatur setelah publish.
Set organizational sign-in for every source.Atur login organisasi untuk setiap sumber.

Working agreements for future buildsKesepakatan kerja untuk build berikutnya

  • Inspect the real source file before writing code; never guess table or column names.
  • Deliver each query as a separate, complete copy-paste block with paths pre-filled.
  • Prefer measure patches for small UI changes; keep the template stable.
  • Always state untested parts and assumptions up front.
  • Periksa file sumber asli sebelum menulis kode; jangan pernah menebak nama tabel atau kolom.
  • Serahkan setiap query sebagai blok copy-paste yang lengkap dan terpisah, dengan path sudah terisi.
  • Utamakan patch di measure untuk perubahan UI kecil; jaga template tetap stabil.
  • Selalu sebutkan bagian yang belum dites dan asumsi di awal.
R
RESULT
HASIL

What shipped, and where the time actually went

Apa yang dihasilkan, dan ke mana sebenarnya waktunya pergi

Here is what went live. The time story is more nuanced than "AI built it in minutes", so it is told with benchmarks, not slogans.

Ini yang sudah live. Cerita soal waktunya lebih bernuansa daripada "AI membuatnya dalam hitungan menit", jadi diceritakan dengan benchmark, bukan slogan.

One link

Satu link

Management opens a Power BI link. No files are sent around.

Manajemen membuka link Power BI. Tidak ada file yang dikirim-kirim.

Refreshes itself

Refresh sendiri

Daily at 06:00, straight from the live register. Nobody touches the data.

Setiap hari pukul 06:00, langsung dari register yang hidup. Tidak ada yang menyentuh datanya.

Five views in one page

Lima tampilan dalam satu halaman

Executive summary, cost hierarchy tree, KPI analysis, detail table and data notes.

Ringkasan eksekutif, pohon hierarki biaya, analisis KPI, tabel detail, dan catatan data.

Filters built into the page

Filter di dalam halaman

Currency, hierarchy levels, vendor, reviewer, status, KPI result, date range and search.

Mata uang, level hierarki, vendor, reviewer, status, hasil KPI, rentang tanggal, dan pencarian.

Data issues made visible

Masalah data jadi terlihat

Wrong hierarchy values and impossible dates are flagged, with owners assigned to fix them at the source.

Nilai hierarki yang salah dan tanggal yang mustahil ditandai, dengan pemilik yang ditugaskan memperbaikinya di sumber.

A reusable blueprint

Blueprint yang bisa dipakai ulang

The documentation is written so a new AI chat can rebuild the pattern for a different dataset.

Dokumentasinya ditulis supaya chat AI baru bisa membangun ulang pola ini untuk dataset lain.

The time questionSoal waktu

An honest note first. This project did not log hours, and build time varies a lot with dashboard complexity, so no before-and-after figure is claimed for it. The numbers below are published benchmarks, shown for context. None of them measures this exact approach. Catatan jujur dulu. Proyek ini tidak mencatat jam kerja, dan waktu build sangat bervariasi tergantung kompleksitas dashboard, jadi tidak ada klaim angka sebelum-sesudah untuk proyek ini. Angka di bawah adalah benchmark yang dipublikasikan, ditampilkan sebagai konteks. Tidak ada satu pun yang mengukur pendekatan ini secara spesifik.

How long a conventional dashboard build takes

Berapa lama build dashboard konvensional

Published industry ranges, in weeks

Rentang industri yang dipublikasikan, dalam minggu

Design and prototyping phase alone (layout, charts, filters, interactivity)Fase desain dan prototipe saja (layout, chart, filter, interaktivitas)[2]
1–2 wk1–2 mgg
Single dashboard, one clean sourceSatu dashboard, satu sumber yang bersih[1]
2–4 wk2–4 mgg
Multi-source dashboard set, basic governanceSet dashboard multi-sumber, governance dasar[1]
4–8 wk4–8 mgg
Governed, multi-source enterprise buildBuild enterprise multi-sumber dengan governance[1]
8–12+ wk8–12+ mgg
024681012

The design phase is where this approach bites. In a conventional build, layout and look are made visual by visual. Here the look lives in one HTML file that can be drafted with an AI assistant and checked in a browser before Power BI is even opened.

Fase desain adalah tempat pendekatan ini paling terasa. Di build konvensional, layout dan tampilan dibuat visual demi visual. Di sini tampilannya ada di satu file HTML yang bisa dibuat bersama asisten AI dan dicek di browser bahkan sebelum Power BI dibuka.

Does AI really speed up coding? The evidence cuts both waysApakah AI benar-benar mempercepat coding? Buktinya dua arah

55.8%

faster. In a controlled experiment, developers with an AI pair programmer built an HTTP server in JavaScript in about 71 minutes, versus 161 minutes without it.

lebih cepat. Dalam eksperimen terkontrol, developer yang memakai AI pair programmer membangun HTTP server di JavaScript dalam sekitar 71 menit, dibanding 161 menit tanpa AI.

Peng et al., 2023 [3]
19%

slower. In a randomized trial, experienced developers working on large, familiar open-source codebases took longer when allowed to use early-2025 AI tools, even though they believed they were faster.

lebih lambat. Dalam uji acak, developer berpengalaman yang mengerjakan codebase open-source besar yang sudah mereka kenal justru lebih lama saat boleh memakai AI tools awal 2025, padahal mereka merasa lebih cepat.

METR, 2025 [4]

My reading, not a measurement: a dashboard template is a small, self-contained file built from scratch, which looks more like the first setting than the second. But the second study is a useful warning. Feeling faster is not the same as being faster, and that is why the reconciliation gates matter.

Pendapat saya, bukan hasil pengukuran: template dashboard adalah file kecil yang berdiri sendiri dan dibangun dari nol, lebih mirip kondisi studi pertama daripada kedua. Tapi studi kedua adalah peringatan yang berguna. Merasa lebih cepat tidak sama dengan benar-benar lebih cepat, dan karena itulah gate rekonsiliasi penting.

Where this approach saves timeDi mana pendekatan ini menghemat waktu

  • DesignOne HTML file, drafted with AI and tested in a browser with sample rows.DesainSatu file HTML, dibuat bersama AI dan dites di browser dengan baris contoh.
  • RestylingReplace one template file; the model, queries and measure stay untouched.Ganti gayaGanti satu file template; model, query, dan measure tidak disentuh.
  • Small tweaksEdit one formula instead of reformatting visuals.Penyesuaian kecilEdit satu formula, bukan memformat ulang visual.
  • Daily runningScheduled refresh and one link; no daily file sending.Operasional harianRefresh terjadwal dan satu link; tidak ada kirim file harian.
  • The next dashboardTwo of the three queries and the measure are reused; mainly the template and the field map change.Dashboard berikutnyaDua dari tiga query dan measure-nya dipakai ulang; yang berubah terutama template dan peta field.

Where it still costs timeDi mana tetap butuh waktu

  • ApprovalChecking IT policy and viewer licences before anything else.PersetujuanCek kebijakan IT dan lisensi viewer sebelum apa pun.
  • ReconciliationRecord counts and totals must match the source at every gate.RekonsiliasiJumlah record dan total harus cocok dengan sumber di setiap gate.
  • Silent failuresA patch that matches nothing gives no error; it has to be checked by eye.Gagal diam-diamPatch yang tidak menemukan apa pun tidak memunculkan error; harus dicek dengan mata.
  • DocumentationA template contract and a guide, so someone else can maintain it.DokumentasiKontrak template dan panduan, supaya orang lain bisa merawatnya.
GOOD TO KNOW BEFORE ADOPTING
PERLU DIKETAHUI SEBELUM DIPAKAI

The trade-offs

Konsekuensinya

The speed comes from giving up some things native Power BI does for free.

Kecepatannya datang dari melepas beberapa hal yang dikerjakan Power BI native secara gratis.

Not Microsoft-certifiedTidak bersertifikat Microsoft

The display visual is free but uncertified. If company policy later blocks such visuals, these dashboards stop rendering.

Visualnya gratis tapi tidak bersertifikat. Kalau kebijakan perusahaan nanti memblokirnya, dashboard ini berhenti tampil.

No exportTidak bisa export

No PDF, PowerPoint or CSV export from the visual. Share the link, or take screenshots for slides.

Tidak bisa export PDF, PowerPoint, atau CSV dari visualnya. Bagikan link, atau ambil screenshot untuk slide.

Licence and accessLisensi dan akses

Viewer access follows your organisation's Power BI licence and workspace setup. Check with your Power BI admin.

Akses viewer mengikuti lisensi Power BI organisasi dan setup workspace. Konfirmasikan ke admin Power BI kamu.

KPI logic lives in the browserLogika KPI ada di browser

Numbers are calculated in JavaScript, not DAX, so other reports can't reuse them without rebuilding them as measures.

Angka dihitung di JavaScript, bukan DAX, jadi report lain tidak bisa memakainya tanpa dibangun ulang sebagai measure.

Refresh limitsBatas refresh

Refresh runs on a schedule, not in real time. Check the refresh limit of your own licence or capacity.

Refresh berjalan terjadwal, bukan real-time. Cek batas refresh pada lisensi atau kapasitas kamu sendiri.

Moderate data sizeUkuran data menengah

The whole dataset travels inside one text string. Long text fields are trimmed to keep the page fast.

Seluruh dataset dikirim di dalam satu string teks. Field teks panjang dipotong supaya halaman tetap cepat.

FIT CHECK
CEK KECOCOKAN

Is this the right approach for your dashboard?

Apakah pendekatan ini cocok untuk dashboard kamu?

Answer three questions. If most answers are "Yes", this approach is a good fit.

Jawab tiga pertanyaan. Kalau sebagian besar "Ya", pendekatan ini cocok.

QUESTION 1PERTANYAAN 1

Do you need a custom, presentation-style layout, for example an org-chart tree or written summaries?

Apakah kamu butuh layout custom bergaya presentasi, misalnya pohon org chart atau ringkasan tertulis?

QUESTION 2PERTANYAAN 2

Is the data moderate in size (up to roughly tens of thousands of rows) and refreshed once or a few times a day?

Apakah datanya berukuran menengah (sampai kira-kira puluhan ribu baris) dan di-refresh sekali atau beberapa kali sehari?

QUESTION 3PERTANYAAN 3

Is it fine that the dashboard cannot be exported to PDF or PowerPoint?

Apakah tidak masalah kalau dashboard tidak bisa di-export ke PDF atau PowerPoint?

Answer all three questionsThe recommendation appears here.Jawab ketiga pertanyaanRekomendasinya akan muncul di sini.
REUSING THE PATTERN
MEMAKAI ULANG POLANYA

The second dashboard is the cheap one

Dashboard kedua yang paling murah

Most of the pipeline carries over. These are the steps for a new dataset.

Sebagian besar pipeline terbawa. Ini langkah-langkah untuk dataset baru.

Define the grain, required fields and business rules (KPI, target, hierarchy).

Tentukan grain, field wajib, dan aturan bisnis (KPI, target, hierarki).

Copy the template. Keep the scoping, the /*DATA*/ marker and the script wrapper; adjust field order and rendering.

Salin template. Pertahankan scoping, penanda /*DATA*/, dan pembungkus script; sesuaikan urutan field dan rendering.

Copy the data query; change the source connection, the alias map, the required list and the field order.

Salin query data; ubah koneksi sumber, alias map, daftar wajib, dan urutan field.

Reuse the template and timestamp queries unchanged, except the template path.

Pakai ulang query template dan timestamp tanpa perubahan, kecuali path template.

Reuse the measure; drop patches that don't apply.

Pakai ulang measure; buang patch yang tidak relevan.

Test in Desktop, publish, set credentials and schedule, then share.

Tes di Desktop, publish, atur kredensial dan jadwal, lalu bagikan.

SOURCES
SUMBER

References

Referensi

  1. Perceptive Analytics. What Does a Power BI Dashboard Build Cost? perceptive-analytics.com/what-does-a-power-bi-dashboard-build-cost/
  2. Slidescope. How Long Does It Take to Build a Production-Level BI Dashboard? slidescope.com/how-long-does-it-take-to-build-a-production-level-bi-dashboard/
  3. Peng, S., Kalliamvakou, E., Cihon, P., & Demirer, M. (2023). The Impact of AI on Developer Productivity: Evidence from GitHub Copilot. arXiv:2302.06590. arxiv.org/abs/2302.06590
  4. METR (2025). Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity. metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/

Architecture, decisions, build gates and lessons come from the project's own BRD and solution reference, with company-specific details removed.

Arsitektur, keputusan, gate build, dan pelajaran berasal dari BRD dan solution reference proyek itu sendiri, dengan detail spesifik perusahaan dihapus.