Pemodelan Data – Power BI
Pengenalan Power BI dan Integrasi Data dan Dashboard. Gunakan kotak pencarian di atas untuk menyaring bagian.
1. Dari konsep ke praktik data
Empat aktivitas pokok: Memahami → Melakukan → Memeriksa → Menghasilkan.
| Konsep | Ketika bekerja dengan data |
|---|---|
| Entitas | Kelompok objek/data yang direpresentasikan (tabel) |
| Atribut | Kolom |
| Record | Baris |
| Tipe data | Text, Number, Date, dll. |
| Kualitas data | Null, duplikat, inkonsistensi |
| Relasi | Hubungan antartabel |
| Struktur data | Susunan tabel dan kolom |
2. Power BI Desktop & antarmuka
Power BI Desktop = aplikasi desktop untuk membangun solusi analisis data dan laporan Power BI.
| Bagian | Fungsi |
|---|---|
| Ribbon | Menu/tab perintah di bagian atas (Home, Insert, Modeling, View, dll.). |
| View selector | Ikon di sisi kiri untuk berpindah view (Report, Table, Model, DAX query, TMDL). |
| Canvas | Area kerja tempat visual/laporan disusun. |
| Filters pane | Mengelola filter pada visual, halaman, maupun seluruh report. |
| Visualizations pane | Memilih jenis visual dan mengatur field well serta format visual. |
| Data pane | Menampilkan tabel dan kolom yang tersedia setelah data dimuat. |
3. View selector
| View | Fungsi | Digunakan untuk |
|---|---|---|
| Report view | Membuat dan mengatur visualisasi/laporan | Membuat grafik, tabel, kartu, slicer, dashboard |
| Table view | Melihat isi data yang sudah dimuat | Memeriksa baris/kolom, tipe data, membuat calculated column atau measure |
| Model view | Melihat dan mengatur hubungan antartabel | Membuat relationship, memeriksa kardinalitas, merancang model data |
| DAX query view | Menulis & menjalankan query DAX | Menguji perhitungan, eksplorasi data, memeriksa hasil DAX |
| TMDL view | Melihat/mengubah struktur model lewat kode | Mengedit metadata tabel, kolom, measure, relationship secara lanjut |
4. Power Query Editor
Power Query Editor = lingkungan di Power BI untuk menghubungkan, memeriksa, dan menyiapkan data sebelum digunakan lebih lanjut.
Bagian utama: Queries pane (daftar query, kiri), Data preview (tengah), Query Settings (kanan, berisi Properties & Applied Steps).
Power Query Editor → tempat memeriksa dan menyiapkan data.
Table View → melihat data yang sudah dimuat ke Power BI.
5. Import Excel, Load vs Transform
Langkah import
- Home → Get Data → Excel Workbook.
- Pilih file (File:
Pilih-File.xlsx) → Open. - Di Navigator, pilih sheet/table (File: sheet Penjualan, berisi Excel Table bernama Sales).
| Tombol | Arti |
|---|---|
| Load | Langsung memuat data ke Power BI tanpa diperiksa. |
| Transform Data | Membuka data dulu di Power Query Editor agar dapat diperiksa/disiapkan. (Yang dipilih di praktik.) |
6. Tipe data
Power Query menunjukkan tipe data lewat ikon di header kolom (ABC = Text, 123 = Whole Number, 1.2 = Decimal/Number, kalender = Date).
| Kolom | Tipe yang diharapkan |
|---|---|
| Transaction_ID | Text |
| Transaction_Date | Date |
| Customer_Name | Text |
| Quantity | Whole Number |
| Unit_Price | Number |
| Total_Sales | Number |
Cara mengubah: klik ikon tipe data di header kolom → pilih tipe (mis. Quantity → Whole Number; Transaction_Date → Date).
7. Pemeriksaan kualitas data
| Pemeriksaan | Kolom yang dicek |
|---|---|
| Nilai kosong (null) | Customer_Name, Category, Payment_Method, Quantity |
| Konsistensi penulisan | Category, City, Payment_Method |
| Kesalahan penulisan (typo) | City, Product, Salesperson |
| Isi kolom numerik | Quantity, Unit_Price, Total_Sales |
| Nilai tidak wajar | Quantity, Unit_Price |
| Data duplikat | Transaction_ID |
Masalah kualitas data umum: null, duplikat, inkonsistensi (penulisan beda untuk nilai sama), typo, tipe data salah, nilai tidak wajar.
8. Transformasi dasar di Power Query
| Masalah | Solusi | Menu |
|---|---|---|
| Penulisan kategori beda (elektronik, ELEKTRONIK) | Ganti jadi "Elektronik" | Pilih kolom → Transform → Replace Values (Value to Find / Replace With) |
| Spasi berlebih di awal/akhir teks | Trim | Transform → Format → Trim |
| Huruf besar/kecil tidak seragam | Capitalize Each Word | Transform → Format → Capitalize Each Word |
| Typo (Surabya) | Ganti jadi Surabaya | Transform → Replace Values |
| Metode bayar beda istilah | Standarkan nilai | Replace Values |
| Tipe data salah | Ubah tipe | Ikon tipe data di header |
| Baris ganda | Remove Duplicates | Home → Remove Rows → Remove Duplicates |
Trim diterapkan pada: Category, Product, City, Salesperson, Payment_Method, Customer_Type.
Capitalize Each Word: City, Salesperson, Category.
Standarisasi Payment_Method
| Nilai asal (konsep sama) | Jadi |
|---|---|
| transfer, Bank Transfer, Transfer | Transfer (satu istilah) |
| Ewallet, E-Wallet | E-Wallet |
| Tunai, Cash | Tunai / Cash (pilih satu) |
Setiap transformasi tercatat di Applied Steps (Query Settings) dan bisa dihapus/diubah urutannya.
9. Menangani nilai kosong: null vs 0
- Kolom kosong pada dataset: Customer_Name, Category, Payment_Method (dan Quantity).
- Kolom teks Payment_Method null → diberi label "Tidak Diketahui" (Replace Values: null → Tidak Diketahui).
- Quantity kosong → dibiarkan null.
0 = diketahui bahwa jumlahnya memang nol.
Mengganti null dengan 0 pada angka bisa menyesatkan perhitungan (mis. rata-rata turun).
10. Hapus duplikat & Close & Apply
Remove Duplicates
- Pilih kolom Transaction_ID.
- Tab Home → Remove Rows → Remove Duplicates.
Bisa dicek dulu lewat Keep Rows → Keep Duplicates, atau langsung hapus lewat Remove Rows.
Memuat data
- Power Query Editor → Home → Close & Apply.
- Buka Table View → pilih tabel Penjualan untuk melihat hasil.
11. Visualisasi dasar (File)
Semua dibuat di Report View.
| Visual | Field | Agregasi | Tujuan |
|---|---|---|---|
| Clustered column chart | City → X-axis; Total_Sales → Y-axis | Sum | Total penjualan per kota |
| Clustered bar chart | Product → Y-axis; Total_Sales → X-axis | Sum | Total penjualan per produk |
| Pie chart | Customer_Type → Legend; Transaction_ID → Values | Count | Proporsi transaksi per tipe pelanggan (bagian terhadap keseluruhan) |
| Line chart | Transaction_Date → X-axis; Total_Sales → Y-axis | Sum | Tren penjualan per tanggal |
Column vs Bar: column = batang vertikal (kategori di X-axis); bar = batang horizontal (kategori di Y-axis), cocok untuk label panjang seperti nama produk.
Pertanyaan analisis line chart: apakah penjualan tiap hari sama? Tanggal mana penjualan tinggi? Ada pola/perubahan tertentu?
12. Alur integrasi data & dashboard
- Menggabungkan data – Append transaksi periodik, Merge referensi berdasarkan kunci.
- Menghitung nilai – membuat Nilai_Penjualan, memeriksa baris hasil integrasi.
- Membangun dashboard – 4 KPI, 5 visual analisis, 3 slicer.
- Menguji & menjelaskan – uji Top N, interaksi, drill-down, tafsirkan temuan.
13. Get Data: memilih 4 sheet
- Buka Power BI Desktop → Home → Get data → Excel workbook → pilih
File_Anda→ Open. - Di Navigator centang: Penjualan_Januari, Penjualan_Februari, Produk, Pelanggan.
- Cek preview → klik Transform Data.
14. Append vs Merge
| APPEND Queries | MERGE Queries | |
|---|---|---|
| Fungsi | Menumpuk baris dari tabel berstruktur kolom serupa | Menambah kolom dari tabel lain berdasarkan kolom kunci (ID) |
| Arah | Vertikal (ke bawah) | Horizontal (ke samping) |
| Syarat | Nama & struktur kolom sama/serupa | Ada kolom kunci yang cocok di kedua tabel |
| Contoh | Januari 80 + Februari 80 → 160 baris, tetap 7 kolom | 160 baris tetap; kolom 7 → 10 → 13 |
| Padanan SQL | UNION ALL | JOIN |
Alur: Penjualan_Januari + Penjualan_Februari —Append→ Penjualan_Gabungan —Merge (Produk via ID_Produk, Pelanggan via ID_Pelanggan)→ data lengkap 13 kolom.
15. Langkah Append Queries as New
- Klik query Penjualan_Januari di Query Pane.
- Home → Append Queries → Append Queries as New.
- Pilih Two tables. Table 1: Penjualan_Januari; Table 2: Penjualan_Februari.
- OK → rename
Append1menjadi Penjualan_Gabungan.
Append Queries biasa = hasil ditambahkan ke query yang sedang dipilih. Append Queries as New = hasil jadi query baru, query asal tetap utuh. Opsi Three or more tables untuk lebih dari dua tabel.
16. Langkah Merge & Expand
Merge dengan Produk
- Pilih query Penjualan_Gabungan → Home → Merge Queries → Merge Queries.
- Tabel atas: Penjualan_Gabungan; tabel bawah: Produk.
- Klik kolom ID_Produk di kedua tabel.
- Join kind: Left Outer (all from first, matching from second) → OK.
Expand Produk
- Di kolom Produk (bertipe Table) klik ikon Expand (dua panah).
- Nonaktifkan Select All Columns → centang Nama_Produk, Kategori, Merek.
- Hapus centang Use original column name as prefix → OK.
- Pastikan baris tetap 160. Kolom jadi 10.
Merge & Expand Pelanggan
- Tetap di Penjualan_Gabungan → Merge Queries → tabel bawah Pelanggan.
- Kunci: ID_Pelanggan; Join kind: Left Outer → OK (muncul kolom Pelanggan bertipe Table).
- Expand → pilih Nama_Pelanggan, Kota, Segmen, nonaktifkan prefix → OK.
- Hasil: 13 kolom, 160 baris.
| Tahap | Kolom | Baris |
|---|---|---|
| Setelah Append | 7 | 160 |
| Setelah Merge Produk | 10 | 160 |
| Setelah Merge Pelanggan | 13 | 160 |
| Setelah Nilai_Penjualan, Bulan, Bulan_Ke | 16 | 160 |
17. Jenis join (Join kind)
| Join kind | Hasil |
|---|---|
| Left Outer | Semua baris tabel kiri (pertama) + yang cocok dari tabel kanan. Dipakai di praktik. |
| Right Outer | Semua baris tabel kanan + yang cocok dari kiri. |
| Full Outer | Semua baris dari kedua tabel. |
| Inner | Hanya baris yang cocok di kedua tabel. |
| Left Anti | Baris kiri yang tidak punya pasangan di kanan. |
| Right Anti | Baris kanan yang tidak punya pasangan di kiri. |
Mengapa Left Outer? Semua baris penjualan dipertahankan; kolom referensi yang cocok ditambahkan; tidak ada transaksi terbuang hanya karena belum menemukan pasangan di tabel referensi (jika tidak cocok, kolom tambahan bernilai null).
18. Custom Column, Bulan, Bulan_Ke
Nilai_Penjualan
- Pilih Penjualan_Gabungan → Add Column → Custom Column.
- New column name: Nilai_Penjualan; formula:
[Jumlah] * [Harga_Satuan]. - OK → cek hasil numerik dan tidak ada Error.
Contoh: Jumlah 6 × Harga_Satuan 68.000 = 408.000. Tujuan: memperoleh omzet per baris transaksi.
Bulan & Bulan_Ke
- Klik kolom Tanggal → Add Column → Date → Month → Name of Month → rename jadi Bulan.
- Klik Tanggal lagi → Add Column → Date → Month → Month → rename jadi Bulan_Ke.
- Cek Januari = 1, Februari = 2.
| Field | Kegunaan |
|---|---|
| Bulan | Slicer / Matrix |
| Bulan_Ke | Urutan bulan (Sort by Column) |
| Tanggal | Date Hierarchy |
19. Enable Load, Close & Apply, Sort by Column
Enable Load
- Klik kanan Penjualan_Januari → hilangkan centang Enable Load. Ulangi untuk Penjualan_Februari, Produk, Pelanggan.
- Biarkan Enable Load aktif hanya pada Penjualan_Gabungan.
- Home → Close & Apply → Table View → pilih Penjualan_Gabungan.
Alasan: tabel sumber hanya dipakai sebagai bahan Append/Merge; tidak perlu dimuat ke model agar model ringkas. Hasil: 1 tabel aktif, 160 baris, 16 kolom.
Sort by Column (urutan bulan)
- Report View → klik field Bulan di Data Pane.
- Tab Column tools → Sort by column → pilih Bulan_Ke.
Tanpa pengaturan: urutan alfabetis (Februari sebelum Januari). Dengan Bulan_Ke: urutan kalender (Januari lalu Februari).
20. Pertanyaan bisnis → pilihan visual
| Pertanyaan | Visual |
|---|---|
| Berapa total omzet? | Card |
| Bagaimana tren per tanggal? | Line chart |
| Kategori mana terbesar? | Column chart |
| Produk mana terlaris secara omzet? | Top 5 Bar chart |
| Segmen mana terbesar (proporsi)? | Donut chart |
| Bagaimana rincian tiap bulan? | Matrix |
Menyiapkan halaman
- Report View → klik kanan tab Page 1 → Rename → Dashboard Penjualan.
- Klik area kosong → Format page → Canvas settings → Page size → 16:9.
- Tambahkan Text box untuk judul dan periode (Januari–Februari 2026).
21. KPI Card & agregasi
| Card | Field | Agregasi | Hasil target |
|---|---|---|---|
| Total Nilai Penjualan | Nilai_Penjualan | Sum (format Rp #,##0) | Rp60.013.000 |
| Jumlah Transaksi | ID_Transaksi | Distinct Count | 130 |
| Total Produk Terjual | Jumlah | Sum | 491 |
| Jumlah Pelanggan | ID_Pelanggan | Distinct Count | 40 |
Langkah card: pilih ikon Card → seret field ke Data/Fields → pilih agregasi di dropdown field → Format visual: Title, Callout value, background → atur ukuran & posisi.
| Agregasi | Arti |
|---|---|
| Sum | Jumlah total |
| Average | Rata-rata |
| Minimum / Maximum | Nilai terkecil / terbesar |
| Count | Banyak baris berisi nilai |
| Distinct Count | Banyak nilai unik |
| Don't summarize | Tanpa agregasi |
22. Visual analisis dashboard
| Visual | Field well | Pengaturan penting | Hasil |
|---|---|---|---|
| Line chart – Tren Penjualan | X-axis: Tanggal; Y-axis: Nilai_Penjualan (Sum) | Dropdown Tanggal → Date Hierarchy | Data per tingkat waktu (Year → Quarter → Month → Day), bisa drill-down |
| Clustered column – Penjualan per Kategori | X-axis: Kategori; Y-axis: Nilai_Penjualan (Sum) | Titik tiga → Sort axis by nilai penjualan → Descending; Data labels on | Elektronik kategori omzet terbesar |
| Clustered bar – Top 5 Produk | Y-axis: Nama_Produk; X-axis: Nilai_Penjualan (Sum) | Filters on this visual → Nama_Produk → Filter type Top N = 5, By value: Sum of Nilai_Penjualan → Apply filter | Hanya 5 produk omzet tertinggi |
| Donut – Komposisi per Segmen | Legend: Segmen; Values: Nilai_Penjualan (Sum) | Detail labels: Category + Percent | Kontribusi Reguler, Member, Corporate |
| Matrix – Rincian Penjualan Produk | Rows: Kategori → Nama_Produk; Columns: Bulan; Values: Nilai_Penjualan (Sum) | Pakai Matrix, bukan Table | Rincian Januari, Februari, dan Total |
Perbedaan penting
- Pie vs Donut: sama-sama proporsi bagian terhadap keseluruhan; donut berlubang di tengah.
- Table vs Matrix: Table = daftar datar baris-kolom; Matrix = seperti pivot table, punya Rows, Columns, Values, subtotal, dan bisa expand/drill-down hierarki.
- Top N: filter tingkat visual yang menampilkan N item teratas (atau terbawah) berdasarkan suatu nilai.
- Drill-down: menelusuri dari level tinggi ke level rinci dalam hierarki (mis. Year → Month → Day, atau Kategori → Nama_Produk).
23. Slicer
Slicer = visual filter di kanvas sehingga pengguna dapat menyaring data tanpa membuka Filter Pane. Semua KPI dan grafik ikut merespons (interaksi antarvisual).
| Slicer | Field | Pengaturan |
|---|---|---|
| 1 | Bulan | Style Dropdown / Tile; urutan Januari → Februari |
| 2 | Kategori | List atau Dropdown |
| 3 | Kota | Aktifkan Search bila perlu |
- Selection: Single select atau Multi-select (atur konsisten).
- Letakkan ketiga slicer dalam satu baris; uji kombinasi bulan + kategori + kota.
- Hapus pilihan (clear) untuk menampilkan seluruh data.
Slicer vs Filter Pane: slicer tampil di kanvas dan mudah dipakai pembaca laporan; Filter Pane bisa diatur per visual, per halaman, atau semua halaman.
24. Tabel cepat: menu & lokasi
| Tujuan | Lokasi menu |
|---|---|
| Import Excel | Home → Get data → Excel workbook |
| Buka Power Query | Transform Data |
| Header dari baris pertama | Home → Use First Row as Headers |
| Ganti nilai / typo | Transform → Replace Values |
| Hapus spasi awal/akhir | Transform → Format → Trim |
| Kapitalisasi tiap kata | Transform → Format → Capitalize Each Word |
| Ubah tipe data | Ikon tipe di header kolom |
| Hapus duplikat | Home → Remove Rows → Remove Duplicates |
| Gabung baris | Home → Append Queries (as New) |
| Gabung kolom via kunci | Home → Merge Queries |
| Ambil kolom hasil merge | Ikon Expand (dua panah) |
| Kolom rumus | Add Column → Custom Column |
| Nama/nomor bulan | Add Column → Date → Month → Name of Month / Month |
| Tidak memuat query | Klik kanan query → Enable Load (uncheck) |
| Muat ke model | Home → Close & Apply |
| Urutkan bulan | Column tools → Sort by column → Bulan_Ke |
| Ukuran halaman | Format page → Canvas settings → Page size 16:9 |
| Top N | Filters on this visual → Filter type Top N |
25. Daftar istilah
| Istilah | Arti singkat |
|---|---|
| Query | Langkah pengambilan & transformasi data di Power Query. |
| Applied Steps | Riwayat langkah transformasi pada sebuah query. |
| Navigator | Jendela memilih sheet/tabel saat import. |
| Kolom kunci (key) | Kolom pencocok antartabel saat Merge (ID_Produk, ID_Pelanggan). |
| Tabel referensi / dimensi | Tabel deskriptif (Produk, Pelanggan). |
| Tabel transaksi / fakta | Tabel berisi kejadian/angka (Penjualan). |
| KPI | Key Performance Indicator, ukuran utama kinerja (ditampilkan via Card). |
| Field well | Kotak isian field pada visual (X-axis, Y-axis, Legend, Values, Rows, Columns). |
| Date Hierarchy | Hierarki otomatis tanggal: Year → Quarter → Month → Day. |
| Calculated column / Measure | Kolom/ukuran hasil perhitungan DAX di model. |
| Kardinalitas | Jenis hubungan antartabel (one-to-many, one-to-one, many-to-many). |
| DAX | Data Analysis Expressions, bahasa rumus di Power BI. |
| M | Bahasa di balik langkah Power Query. |