Episode ini membahas advanced visualization: custom visual dengan D3, embedded analytics untuk menyematkan dashboard ke aplikasi produk, dan interactive storytelling — kapan dibutuhkan, bagaimana membangunnya, dan kapan harus menahan diri

Semua visual yang kalian bangun sejauh ini memakai chart standar: bar, line, pie, scatter. Episode ini membuka kemungkinan di luarnya: custom visualization dengan D3, embedded analytics yang menyematkan dashboard ke aplikasi produk, dan interactive storytelling yang mengubah data menjadi pengalaman. Ini adalah level di mana BI mulai terasa seperti "produk".
Mengapa ini penting? Karena tidak semua pertanyaan bisa dijawab chart standar — dan karena BI modern semakin menjadi fitur produk, bukan hanya internal tools. Perusahaan menanamkan analitik ke aplikasi pelanggan mereka; kalian perlu tahu kapan ini layak dan bagaimana membangunnya dengan benar.
Chart standar menutup sekitar 90% kebutuhan BI. Custom visual layak ketika:
| Kondisi | Contoh |
|---|---|
| Chart standar tidak bisa menjawab pertanyaan | Sankey diagram untuk alur, chord untuk korelasi |
| Brand/estetika adalah prioritas | Dashboard untuk publik/klien |
| Butuh interaksi khusus | Drill-down sekuensial, simulasi "what-if" |
| Pertanyaan membutuhkan bentuk visual unik | Peta choropleth kompleks, network graph |
Sebaliknya, jangan custom hanya untuk "terlihat keren". Prinsip episode 7 tetap berlaku: visual harus memperjelas data, bukan memamerkannya.
D3 (Data-Driven Documents) adalah library JavaScript untuk membangun visualisasi berbasis data — dengan kontrol penuh atas DOM dan SVG. Ini bukan dashboard tool; ini toolkit untuk membangun visual.
Struktur dasar visual D3:
<svg id="chart" width="400" height="200"></svg>import * as d3 from "d3"
const data = [
{ region: "West", revenue: 120 },
{ region: "East", revenue: 95 },
{ region: "Central", revenue: 80 }
]
const svg = d3.select("#chart")
const scale = d3.scaleBand()
.domain(data.map(d => d.region))
.range([0, 380])
.padding(0.2)
svg.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("x", d => scale(d.region) ?? 0)
.attr("width", scale.bandwidth())
.attr("height", d => d.revenue)
.attr("fill", "steelblue")Konsep kunci D3 yang wajib dipahami:
| Konsep | Arti |
|---|---|
| Data join | Menghubungkan data ke elemen DOM (.data().enter().append()) |
| Scale | Memetakan nilai data ke pixel (scaleBand, scaleLinear) |
| Transitions | Animasi perubahan data (.transition().duration()) |
| Axes | Komponen sumbu (d3-axis) |
Kurva pembelajarannya cukup curam, tetapi hasilnya sangat fleksibel. Untuk BI Analyst, tujuan realistisnya bukan "jago D3", melainkan memahami kemampuannya dan bisa mengintegrasikan custom visual ke tool (misalnya Power BI Custom Visual atau Tableau Extension API).
Embedded analytics = menyematkan dashboard/report ke dalam aplikasi produk — pengguna aplikasi melihat analitik tanpa pindah tool. Contoh nyata: aplikasi kasir yang menampilkan dashboard penjualan, SaaS yang menampilkan usage analytics ke pelanggannya.
Alur embed pada umumnya:
Tiga pertimbangan utama embedded analytics:
Tool BI besar menyediakan SDK: Power BI Embedded, Tableau Embedding API, Looker Embed SDK. Konsepnya sama: aplikasi meminta token, SDK merender dashboard, dan keamanan dijaga token + RLS.
Tip
Sebelum membangun custom visual atau embedded analytics, tanyakan: apakah fitur tool yang ada sudah cukup? Power BI/Tableau/Looker sudah punya fitur embed bawaan dengan SDK matang. Mulai dari yang disediakan vendor; custom D3 hanya untuk kasus yang benar-benar tidak terlayani.
Level tertinggi visualisasi: interactive storytelling — memandu pembaca melewati narasi data dengan interaksi, seperti artikel data journalism (New York Times, The Pudding).
Pola yang umum:
| Pola | Cara Kerja |
|---|---|
| Scrollytelling | Konten berubah saat pembaca scroll — narasi per babak |
| Click-through narrative | Pembaca klik untuk maju ke tahap berikutnya |
| Linked views | Satu interaksi menyorot data yang sama di banyak visual |
| Drill-down story | Mulai dari ringkasan, drill ke detail secara bertahap |
Prinsip narasinya sama dengan episode 11 (setup → konflik → aksi), bedanya medium: pembaca terlibat aktif. Untuk BI Analyst, interactive storytelling paling berguna untuk presentasi eksekutif dan publikasi insight penting — bukan untuk dashboard operasional harian.
Coba mulai dari yang ringan — custom visual di dalam tool yang sudah kalian pakai:
Praktik 1 (Power BI):
- Coba chart dari AppSource (mis. Sankey, Sunburst, Radar)
- Pelajari cara impor custom visual → kuasai kapan perlu custom
Praktik 2 (Tableau):
- Buat visual canggih tanpa kode: waterfall chart, dual-axis combo
- Eksplorasi Tableau Extension API untuk visual D3
Praktik 3 (Konsep embedded):
- Pelajari dokumentasi embed tool pilihan kalian
- Buat sketsa: "dashboard apa yang bisa disematkan ke aplikasi demo?"Sasarannya bukan menyelesaikan semuanya — melainkan menumbuhkan naluri: visual apa yang mungkin, kapan layak, dan bagaimana membangunnya bekerja sama dengan developer (untuk D3/embed, kalian akan sering kolaborasi dengan frontend engineer).
Inti yang harus dibawa pulang:
Di episode 24 selanjutnya kita akan membahas performance tuning BI — optimasi query, incremental refresh, dan caching untuk menjaga dashboard tetap cepat. Visual yang indah tidak ada gunanya jika loading-nya 2 menit. Pastikan tetap semangat!