Episode ini membawa kalian membangun report pertama di Power BI Desktop: menghubungkan data, merancang data model dengan relasi, menulis measure DAX untuk metrik, dan menyusun report Sales Performance dari model Superstore yang sudah kalian siapkan

Setelah di episode 7 kalian memahami prinsip visualisasi, pada episode ini kita menerapkannya di tool BI pertama: Power BI Desktop. Power BI adalah tool dashboard paling banyak dipakai di korporasi Indonesia — menguasainya membuka banyak pintu karir.
Mengapa Power BI begitu populer? Karena ia menggabungkan tiga hal dalam satu produk: data model (mengelola relasi), DAX (bahasa kalkulasi), dan report building (visualisasi & publikasi). Kalian tidak perlu menyambung tiga tool terpisah. Di episode ini kalian akan membangun report nyata dari model Superstore — dashboard pertama yang benar-benar bekerja.
Power BI Desktop bekerja dalam tiga pane utama: Data, Model, dan Report.
Alur pembangunan report yang profesional: import → model → measure → visual. Jangan mulai dari menyeret field ke kanvas sebelum model dan measure siap — itulah sumber dashboard berantakan.
Mulai dengan menghubungkan Power BI ke PostgreSQL bi_lab:
Get Data → Database → PostgreSQL database
Server: localhost
Database: bi_labPilih tabel fact_orders, dim_customer, dan dim_product. Setelah diimpor, Power BI menampilkan semuanya di pane Data. Pastikan tipe kolom sudah benar: sales/profit sebagai Decimal, order_date sebagai Date.
Di Model view, buat relasi antar tabel. Ini momen paling penting — relasi menentukan kecepatan dan kebenaran semua perhitungan:
dim_customer.customer_id → (1) : (banyak) fact_orders.customer_id
dim_product.product_id → (1) : (banyak) fact_orders.product_id
dim_customer.region → (1) : (banyak) fact_orders.regionPastikan arah filter dari dimension ke fact (filter satu dimension menyaring fact, bukan sebaliknya). Power BI menandai relasi one-to-many dengan ikon 1:* — inilah star schema yang kita rancang di episode 5, kini hidup di dalam tool.
Important
Aturan emas Power BI: jangan pernah menghitung metrik dengan menyeret kolom langsung ke visual. Selalu buat measure dengan DAX. Measure menghitung ulang sesuai konteks filter (slicer, filter, halaman) secara otomatis; kolom mentah tidak.
DAX (Data Analysis Expressions) adalah bahasa formula Power BI — mirip formula Excel, tetapi berjalan di atas model relasional. Tiga measure pertama yang wajib kalian kuasai:
Revenue = SUM(fact_orders[sales])
Profit = SUM(fact_orders[profit])
Margin % = DIVIDE([Profit], [Revenue], 0)Perhatikan pola:
[Revenue] dan [Profit] adalah measure — perhitungan dinamis yang merespons filter.DIVIDE(a, b, 0) menangani pembagian dengan nol dengan aman (tidak menghasilkan error) — versi DAX dari NULLIF di SQL.[...], tabel dalam tanda kutip ganda '...'.Kekuatan DAX ada di filter context. Satu measure yang sama otomatis menghitung ulang saat visual difilter:
Revenue = SUM(fact_orders[sales])
Revenue FY2026 = CALCULATE([Revenue], fact_orders[order_date] >= DATE(2026, 1, 1))
Revenue vs Previous Month =
[Revenue] - CALCULATE([Revenue], PREVIOUSMONTH('dim_date'[date]))CALCULATE(...) mengubah konteks filter — dasar dari semua perhitungan kondisional.PREVIOUSMONTH(...) menghitung nilai periode sebelumnya — pola MoM (month-over-month) yang paling sering diminta stakeholder.Untuk tren bulanan di report, gunakan tabel dim_date sebagai sumbu waktu (bukan order_date dari fact), lengkap dengan kolom year, month, quarter. Relasi dim_date[date] → fact_orders[order_date] membuat semua analisis waktu konsisten.
Sekarang susun report sesuai layout dari episode 7:
Revenue, Profit, Margin %, ditambah AOV = DIVIDE([Revenue], DISTINCTCOUNT(fact_orders[order_id]), 0).Revenue dengan sumbu dim_date[month] — garis tren bulanan.Revenue dengan sumbu dim_customer[region] — perbandingan antar region.Revenue dengan sumbu dim_product[category].month, region, Revenue, Profit, Margin % untuk detail presisi.dim_product[category] agar pembaca bisa memfilter interaktif.Kembalikan ke prinsip episode 7: setiap visual menjawab satu pertanyaan, warna konsisten, dan KPI di posisi paling terlihat.
dim_date: analisis waktu menjadi ad-hoc dan tidak konsisten antar report.DIVIDE: pembagian oleh nol menghasilkan error yang merusak visual.Inti yang harus dibawa pulang:
SUM, CALCULATE, DIVIDE, PREVIOUSMONTH.dim_date.Di episode 9 selanjutnya kita akan membahas tool kedua: Tableau Dasar — workbooks, calculated fields, dan dashboards. Kalian akan melihat bagaimana prinsip yang sama diekspresikan dengan gaya Tableau yang berbeda, dan bisa membandingkan mana yang paling cocok untuk kalian. Pastikan tetap semangat!