MODUL PERTEMUAN 11
PENGANTAR DATA WAREHOUSE & ANALYTICAL MODELLING
A. INFORMASI UMUM MATA KULIAH
| Item | Keterangan |
|---|---|
| Mata Kuliah | Data Modelling |
| Kode MK | SSD1019 |
| Bobot | 3 SKS (Praktikum) |
| Semester | 4 (Empat) |
| Program Studi | Sains Data |
| Fakultas | Ekonomi dan Bisnis Islam |
| Universitas | UIN K.H. Abdurrahman Wahid Pekalongan |
| Dosen Pengampu | Mohammad Reza Maulana, M.Kom |
B. INFORMASI PERTEMUAN
B.1 Sub-CPMK Pertemuan 11
Sub-CPMK 3.1: Mahasiswa mampu menjelaskan konsep data warehouse sebagai infrastruktur analitik, membedakan karakteristik OLTP dan OLAP secara fundamental, memahami alur proses ETL, dan mengidentifikasi kebutuhan data analitik yang tidak dapat dipenuhi oleh model operasional β sebagai landasan untuk merancang dimensional model di pertemuan berikutnya.
B.2 Tujuan Pembelajaran (Learning Objectives)
Setelah mengikuti pertemuan ini, mahasiswa akan mampu:
- Menjelaskan mengapa sistem OLTP yang sudah dirancang dengan baik tidak cukup untuk kebutuhan analitik skala besar dan pengambilan keputusan strategis (C2 β Memahami)
- Membandingkan OLTP dan OLAP dari berbagai dimensi: tujuan, pola query, skema, pengguna, volume data, dan frekuensi pembaruan (C2 β Memahami)
- Menjelaskan empat karakteristik data warehouse menurut definisi Inmon: subject-oriented, integrated, time-variant, dan non-volatile (C2 β Memahami)
- Membedakan data warehouse dengan data mart dan menentukan kapan masing-masing lebih tepat digunakan (C2 β Memahami)
- Menjelaskan tiga tahap proses ETL (Extract, Transform, Load) beserta tantangan dan keputusan desain di setiap tahap (C2 β Memahami)
- Mengidentifikasi pertanyaan-pertanyaan analitik bisnis (analytical queries) dari sebuah deskripsi sistem dan menentukan dimensi serta fakta yang dibutuhkan untuk menjawabnya (C4 β Menganalisis)
- Menjelaskan konsep dasar multi-dimensional analysis: slice, dice, drill-down, drill-up, dan pivot (C2 β Memahami)
B.3 Kompetensi yang Dikembangkan
| Domain | Kompetensi |
|---|---|
| Kognitif | Memahami perbedaan OLTP vs OLAP (C2), Menganalisis kebutuhan analitik dari deskripsi bisnis (C4) |
| Afektif | Membangun perspektif baru bahwa data modelling tidak berhenti di sistem operasional β data adalah aset analitik; menghargai pentingnya historical data untuk pengambilan keputusan |
| Psikomotorik | Mengidentifikasi dan mengklasifikasikan query sebagai transaksional vs analitik; brainstorming dimensi dan fakta dari narasi bisnis |
B.4 Indikator Pencapaian
Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu:
- Menjelaskan minimal 5 perbedaan mendasar antara OLTP dan OLAP dengan contoh konkret
- Menyebutkan dan menjelaskan 4 karakteristik data warehouse (definisi Inmon) dengan ilustrasi nyata
- Membedakan data warehouse dari data mart dan menjelaskan hubungan keduanya
- Menjelaskan proses ETL dengan contoh transformasi data nyata dari sistem OLTP ke data warehouse
- Diberikan narasi bisnis, mengidentifikasi minimal 5 pertanyaan analitik dan menentukan dimensi/fakta yang diperlukan
B.5 Alokasi Waktu
| No | Kegiatan | Durasi | Keterangan |
|---|---|---|---|
| 1 | Pembukaan & Jembatan dari Babak 1 ke Babak 2 | 10 menit | "Apa yang sudah kita bangun? Apa batasannya?" |
| 2 | Aktivitas Pemantik: "Query yang Tidak Bisa Dijawab" | 15 menit | Demonstrasi keterbatasan OLTP |
| 3 | Materi 1: OLTP vs OLAP β Dua Dunia yang Berbeda | 25 menit | Ceramah + tabel perbandingan |
| 4 | Materi 2: Data Warehouse β Definisi, Karakteristik, dan Arsitektur | 20 menit | Ceramah + diagram arsitektur |
| 5 | Break | 10 menit | β |
| 6 | Materi 3: Data Mart β Subset yang Fokus | 10 menit | Ceramah + perbandingan DW vs DM |
| 7 | Materi 4: Proses ETL - Jembatan dari OLTP ke Warehouse | 20 menit | Overview/pengantar - bukan implementasi mendalam; cukup dipahami sebagai konsep pipeline |
| 8 | Materi 5: Multi-Dimensional Analysis β Cara Berpikir Analitik | 15 menit | Ceramah + latihan brainstorming |
| 9 | Materi 6: Pengantar Dimensional Modelling β Koneksi ke P12 | 10 menit | Preview star schema |
| 10 | Kuis Penutup, Diskusi & Briefing Tugas | 15 menit | Kuis + penjelasan tugas |
| Total | 150 menit |
C. MATERI PEMBELAJARAN
C.1 Jembatan β Dari Babak 1 ke Babak 2
Refleksi Pembuka (10 menit): Selama pertemuan 1β10, kita telah membangun fondasi yang solid: dari ERD, normalisasi, DDL, hingga data quality. Sekarang waktunya bertanya: "Apakah sistem OLTP yang sudah kita rancang sudah cukup untuk semua kebutuhan data organisasi?"
APA YANG SUDAH KITA BANGUN (Pertemuan 1β10):
Sistem OLTP Toko Batik Online:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β kategori βββ produk βββ item_pesanan β
β pelanggan βββ pesanan βββ item_pesanan β
β pelanggan βββ ulasan βββ produk β
β β
β Dirancang untuk: INSERT, UPDATE, DELETE transaksi β
β Kekuatan: cepat untuk operasional sehari-hari β
β Normalisasi 3NF: data konsisten, tidak redundan β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PERTANYAAN YANG MUNCUL DARI MANAJER:
1. "Tunjukkan tren penjualan per kategori per bulan selama 2 tahun!"
2. "Produk apa yang paling banyak dibeli bersamaan?"
3. "Kota mana yang paling menguntungkan? Bandingkan Q1 vs Q2!"
4. "Berapa revenue dari pelanggan yang bergabung sebelum 2023
dibanding yang bergabung sesudahnya?"
5. "Apakah ada pola hari dalam seminggu yang penjualannya lebih tinggi?"
MASALAH:
Semua pertanyaan ini bisa dijawab dari database OLTP...
tapi dengan harga yang sangat mahal:
β JOIN 4β5 tabel sekaligus
β Agregasi ratusan ribu hingga jutaan baris
β Query berjalan menit bahkan jam di tabel produksi
β Sementara itu, customer yang sedang checkout mengalami slowdown!Rangkuman Dosen: "Inilah mengapa dunia data membagi tugas menjadi dua sistem yang berbeda: OLTP untuk operasional (write-heavy, real-time) dan OLAP untuk analitik (read-heavy, historical). Pertemuan 11β13 membawa kita ke babak baru: bagaimana merancang sistem data yang dirancang khusus untuk menjawab pertanyaan analitik."
C.2 Aktivitas Pemantik β "Query yang Tidak Bisa Dijawab dengan Nyaman"
Instruksi (15 menit): Dosen menampilkan dua query SQL. Mahasiswa diminta menganalisis dan mendiskusikan implikasinya.
Query A β Operasional (OLTP): Mengecek status pesanan
-- Query ini CEPAT β dirancang untuk ini
SELECT p.id_pesanan, p.status, p.tgl_pesanan,
pl.nama AS nama_pelanggan
FROM pesanan p
JOIN pelanggan pl ON p.id_pelanggan = pl.id_pelanggan
WHERE p.id_pesanan = 10045;
-- Waktu eksekusi: < 10 ms
-- Baris yang discan: 1 (langsung via PK index)
-- Cocok untuk: tombol "Cek Status Pesanan" di websiteQuery B β Analitik (OLAP): Laporan tren penjualan bulanan
-- Query ini LAMBAT di database OLTP yang sedang dipakai customer!
SELECT
YEAR(p.tgl_pesanan) AS tahun,
MONTH(p.tgl_pesanan) AS bulan,
k.nama_kategori,
COUNT(DISTINCT p.id_pesanan) AS jumlah_pesanan,
SUM(ip.qty) AS total_unit_terjual,
SUM(ip.qty * ip.harga_saat_pesan) AS total_revenue
FROM pesanan p
JOIN item_pesanan ip ON p.id_pesanan = ip.id_pesanan
JOIN produk pr ON ip.id_produk = pr.id_produk
JOIN kategori k ON pr.id_kategori = k.id_kategori
WHERE p.status = 'selesai'
AND p.tgl_pesanan BETWEEN '2023-01-01' AND '2024-12-31'
GROUP BY YEAR(p.tgl_pesanan), MONTH(p.tgl_pesanan), k.nama_kategori
ORDER BY tahun, bulan, total_revenue DESC;
-- Waktu eksekusi: bisa 30 detik β 5 menit (dengan 500.000+ baris!)
-- Baris yang discan: bisa JUTAAN baris sekaligus
-- JOIN 4 tabel, agregasi besar, tanpa bisa memanfaatkan PK index
-- Dampak: MEMPERLAMBAT transaksi customer yang sedang berjalan!Pertanyaan Pemantik:
- Mengapa Query A jauh lebih cepat dari Query B?
- Apa dampaknya jika Query B dijalankan langsung di database OLTP saat jam sibuk?
- Bagaimana kamu menyimpan data historis 2 tahun di database OLTP yang terus di-update dan di-delete?
- Jika kamu harus menjawab Query B dengan cepat, bagaimana strukturnya harus berbeda dari OLTP?
Insight Kunci: Query B membutuhkan cara penyimpanan data yang BERBEDA β data yang sudah diagregasi sebagian, disusun untuk dibaca (bukan ditulis), dan menyimpan riwayat historis yang tidak berubah. Itulah data warehouse.
C.3 Materi 1: OLTP vs OLAP β Dua Dunia yang Berbeda
C.3.1 Definisi dan Tujuan Mendasar
OLTP β Online Transaction Processing
"Sistem saraf operasional bisnis"
Tujuan: Mendukung transaksi bisnis sehari-hari secara real-time
Pertanyaan yang dijawab: "APA yang terjadi SEKARANG?"
Contoh sistem OLTP:
β Sistem kasir (POS) saat pelanggan membayar
β Sistem perbankan saat nasabah transfer
β Sistem akademik saat mahasiswa mendaftar ulang
β E-commerce saat customer checkout
OLAP β Online Analytical Processing
"Kacamata strategis manajemen"
Tujuan: Mendukung analisis historis dan pengambilan keputusan
Pertanyaan yang dijawab: "MENGAPA ini terjadi? APA tren-nya? BAGAIMANA ke depan?"
Contoh sistem OLAP:
β Dashboard BI: penjualan per bulan vs target
β Analisis cohort pelanggan: siapa yang churn setelah 6 bulan?
β Laporan keuangan triwulanan dengan drill-down
β Model prediksi permintaan produkC.3.2 Perbandingan OLTP vs OLAP β 12 Dimensi
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β Dimensi β OLTP β OLAP β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β TUJUAN UTAMA β Proses transaksi harian β Analisis & decision support β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β OPERASI DOMINAN β INSERT, UPDATE, DELETE β SELECT (read-only / very few β
β β (write-heavy) β writes) β read-heavy β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β DATA β Data terkini (current), β Data historis bertahun-tahun,β
β β detail per transaksi β teragregasi atau atom β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β SKEMA β Normalized β 3NF/BCNF β Denormalized β Star Schema β
β β (minimal redundansi) β atau Snowflake (untuk performaβ
β β β query analitik) β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β QUERY TIPIKAL β Sederhana, prediktif, β Kompleks, ad-hoc, multi-tabelβ
β β lookup by PK/FK β JOIN + GROUP BY + agregasi β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β WAKTU QUERY β Milidetik (< 100ms) β Detik hingga menit (bisa β
β β β dipercepat dengan pre-agg) β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β PENGGUNA β Banyak pengguna konkuren β Sedikit pengguna analis β
β β (ratusanβribuan serentak) β (puluhan), tidak concurrent β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β BARIS YANG DISCAN β Sedikit (1β100 baris β Sangat banyak (jutaan baris β
β PER QUERY β per query via index) β sekaligus) β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β UKURAN DATA β GB hingga TB β TB hingga PB β
β β (data aktif/terkini) β (akumulasi bertahun-tahun) β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β FREKUENSI UPDATE β Real-time (detik) β Batch periodic (harian, β
β β β mingguan, bulanan via ETL) β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β PRIORITAS DESAIN β Integritas data (ACID), β Performa baca query kompleks,β
β β konsistensi, normalisasi β kemudahan analisis, historis β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β CONTOH SISTEM β MySQL, PostgreSQL, Oracle, β Snowflake, BigQuery, Redshiftβ
β β SQL Server (production DB) β ClickHouse, SSAS, Apache Hiveβ
ββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββC.3.3 Mengapa Schema OLTP Buruk untuk Analitik?
Ini adalah pertanyaan kritis yang harus dipahami sebelum membahas data warehouse.
SKENARIO: Manajer ingin tahu revenue per kota per bulan.
DI DATABASE OLTP (3NF):
Data tersebar di: pelanggan.alamat_kota, pesanan.tgl_pesanan,
item_pesanan.qty, item_pesanan.harga_saat_pesan
Query yang diperlukan:
SELECT pl.alamat_kota, YEAR(p.tgl_pesanan), MONTH(p.tgl_pesanan),
SUM(ip.qty * ip.harga_saat_pesan) AS revenue
FROM pesanan p
JOIN item_pesanan ip ON p.id_pesanan = ip.id_pesanan
JOIN pelanggan pl ON p.id_pelanggan = pl.id_pelanggan
WHERE p.status = 'selesai'
GROUP BY pl.alamat_kota, YEAR(p.tgl_pesanan), MONTH(p.tgl_pesanan);
MASALAH 1 β Performa:
Database harus JOIN tiga tabel besar secara real-time.
Setiap kali manajer refresh laporan β query berat dijalankan ulang.
Semakin banyak data, semakin lambat.
MASALAH 2 β Historis:
Jika pelanggan pindah kota dan kita UPDATE alamat_kota,
SEMUA riwayat pesanan lama pun "berubah kota" secara retroaktif.
Analisis historis menjadi tidak akurat!
β "Pesanan dari Semarang pada 2022" bisa tiba-tiba menjadi
"pesanan dari Jakarta" setelah pelanggan pindah di 2024.
MASALAH 3 β Kelengkapan Konteks:
Analitik butuh konteks yang kaya: umur pelanggan saat pesan,
segmen produk, label periode (Q1/Q2, weekday/weekend, dll.)
Konteks ini tidak ada di tabel OLTP.
DI DATA WAREHOUSE:
Data sudah dipra-proses dan disimpan dalam bentuk yang
mengantisipasi kebutuhan analitik:
Satu tabel fakta yang sudah "flat":
fakta_penjualan(kunci_waktu, kunci_pelanggan, kunci_produk,
kota_pelanggan_saat_beli, kategori_produk,
qty, revenue, ...)
β JOIN sudah dilakukan saat ETL, bukan saat query
β Kota pelanggan "dibekukan" pada saat transaksi terjadi
β Atribut analitik siap pakai: nama_bulan, kuartal, segmen_usia, dll.
β Satu SELECT dengan GROUP BY yang sederhana menghasilkan laporan!C.4 Materi 2: Data Warehouse β Definisi, Karakteristik, dan Arsitektur
C.4.1 Definisi Data Warehouse
Definisi klasik menurut W.H. Inmon (1992) β "Bapak Data Warehouse":
"A data warehouse is a subject-oriented, integrated, time-variant, and non-volatile collection of data in support of management's decision-making process."
Empat kata kunci ini bukan sekadar jargon β masing-masing memiliki implikasi desain yang sangat konkret.
C.4.2 Empat Karakteristik Data Warehouse (Inmon)
1. SUBJECT-ORIENTED (Berorientasi Subjek)
βββββββββββββββββββββββββββββββββββββββββ
Data diorganisir berdasarkan SUBJEK BISNIS,
bukan berdasarkan APLIKASI atau PROSES.
OLTP β diorganisir berdasarkan fungsi:
Sistem Penjualan, Sistem Inventori, Sistem HR, Sistem Keuangan
(masing-masing punya database sendiri-sendiri)
Data Warehouse β diorganisir berdasarkan subjek:
Penjualan, Pelanggan, Produk, Karyawan
(data dari berbagai sistem dikumpulkan ke satu subjek)
CONTOH NYATA:
Subjek "Pelanggan" di data warehouse menggabungkan:
β Data profil dari Sistem CRM
β Riwayat pembelian dari Sistem POS
β Riwayat tagihan dari Sistem Keuangan
β Data interaksi dari Sistem Support/Helpdesk
β Semua dikonsolidasikan ke dimensi PELANGGAN yang lengkap
IMPLIKASI DESAIN:
Nama tabel dimulai dari sudut pandang bisnis, bukan teknis:
dim_pelanggan, dim_produk, fakta_penjualan β bukan tbl_crm_user
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2. INTEGRATED (Terintegrasi)
ββββββββββββββββββββββββββββ
Data dari BERBAGAI SUMBER YANG HETEROGEN dikonsolidasikan
ke dalam satu representasi yang KONSISTEN.
MASALAH YANG DISELESAIKAN:
Sistem A: Gender disimpan sebagai 'M'/'F'
Sistem B: Gender disimpan sebagai 1/0
Sistem C: Gender disimpan sebagai 'Laki'/'Perempuan'
Sistem D: Gender disimpan sebagai 'Male'/'Female'
β Di data warehouse, semua menjadi: 'L'/'P' (standar satu)
CONTOH INTEGRASI LAIN:
β Satuan mata uang: USD di sistem luar negeri β dikonversi ke IDR
β Format tanggal: DD/MM/YYYY vs YYYY-MM-DD β distandarkan ke ISO 8601
β Kode produk: SKU dari sistem gudang vs kode dari sistem kasir
β dipetakan ke satu product_key yang unified
β Nama kota: "Yogyakarta" vs "Jogjakarta" vs "Yogya"
β distandarkan ke satu nilai canonical
KAPAN INTEGRASI TERJADI?
Di tahap TRANSFORM dalam proses ETL.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
3. TIME-VARIANT (Bervariasi terhadap Waktu)
ββββββββββββββββββββββββββββββββββββββββββ
Data warehouse menyimpan SNAPSHOT HISTORIS β setiap perubahan
data direkam sebagai data baru, TIDAK menimpa data lama.
DI OLTP:
UPDATE pelanggan SET alamat_kota = 'Jakarta' WHERE id = 1;
β Data lama HILANG. Tidak ada jejak bahwa sebelumnya 'Semarang'.
DI DATA WAREHOUSE:
Baris lama TIDAK dihapus/diubah.
Ditambahkan baris baru dengan tanggal berlaku:
kunci | nama | kota | berlaku_dari | berlaku_sampai
1 | Budi | Semarang | 2022-01-01 | 2023-12-31
2 | Budi | Jakarta | 2024-01-01 | 9999-12-31 β baris baru
MANFAAT TIME-VARIANT:
β "Pada tahun 2022, berapa revenue dari pelanggan di Semarang?"
β Bisa dijawab akurat! (Budi dihitung sebagai Semarang di 2022)
β "Berapa pelanggan yang pindah kota dalam 3 tahun terakhir?"
β Bisa dijawab! (bandingkan kota lama vs kota sekarang)
β Analisis cohort: bagaimana perilaku pelanggan berubah seiring waktu?
RENTANG WAKTU TIPIKAL:
OLTP: Data aktif 2β5 tahun (data lama diarsip atau dihapus)
DW : Data historis 5β10+ tahun (semakin lama semakin berharga)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4. NON-VOLATILE (Tidak Mudah Berubah)
βββββββββββββββββββββββββββββββββββββ
Setelah data masuk ke warehouse, ia TIDAK DIUBAH atau DIHAPUS
secara normal. Data warehouse hanya punya dua operasi:
β LOAD (data baru masuk via ETL)
β ACCESS (data dibaca untuk analisis)
DI OLTP: INSERT, UPDATE, DELETE semua terjadi setiap detik
DI DW : Hanya INSERT (dari ETL) dan SELECT (dari analyst)
MENGAPA INI PENTING?
β Konsistensi laporan: laporan yang sama dijalankan 2 kali
dengan selang waktu 1 jam harus menghasilkan angka yang SAMA
β Auditor bisa verifikasi: "Laporan ini dihasilkan dari data
yang mana, dan apakah datanya sudah berubah?"
β Tidak ada ROLLBACK yang rumit untuk data analitik
CATATAN PENTING:
Non-volatile BUKAN berarti data tidak pernah berubah.
ETL secara reguler menambahkan data baru (load).
Perbaikan data (corrections) dimungkinkan tapi melalui
proses khusus yang terdokumentasi, bukan UPDATE langsung.C.4.3 Arsitektur Data Warehouse β Gambaran Besar
ARSITEKTUR STANDAR DATA WAREHOUSE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SUMBER DATA (Sources) β
ββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββ¬ββββββββββββββββββββββ-ββ€
β Database β Spreadsheet β File CSV β API / Web Service β
β OLTP β / Excel β / Flat File β / Log Files β
β (MySQL, β (laporan β (data β (sistem eksternal, β
β PostgreSQL) β keuangan) β partner) β social media) β
ββββββββ¬ββββββββ΄βββββββ¬ββββββββ΄βββββββ¬ββββββββ΄βββββββββββ¬ββββββββββββββ
β β β β
ββββββββββββββββ΄βββββββββββββββ΄ββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PROSES ETL (Staging Area) β
β β
β Extract β Transform β Load β
β β
β "Dapur" pengolahan data: di sinilah data dibersihkan, β
β distandarkan, diintegrasikan, dan diformat ulang β
β β
β Tools: Apache Spark, dbt, Talend, Pentaho, AWS Glue, dll. β
βββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DATA WAREHOUSE (Central Repository) β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β DIMENSIONAL MODEL (Star/Snowflake) β β
β β dim_waktu dim_pelanggan dim_produk dim_lokasi β β
β β \ \ / / β β
β β ββββββββββββββ€ FAKTA ββββββββββββββββ β β
β β β PENJUALAN β β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Sifat: Subject-oriented, Integrated, Time-variant, Non-volatile β
ββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββββ
β DATA MART β β DATA MART β
β (Marketing) β β (Keuangan) β
β Subset dari DW, β β Subset dari DW, β
β fokus satu domain β β fokus satu domain β
ββββββββββββ¬βββββββββββββββ ββββββββββββ¬βββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β KONSUMSI DATA (Access Layer) β
ββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββ¬ββββββββββββββ----------β€
β BI Dashboardβ Ad-hoc SQL β Data Scienceβ Laporan Manajemen β
β (Tableau, β (analyst β (Jupyter, β (PDF/Excel terjadwal) β
β Power BI, β queries) β Python, R) β β
β Metabase) β β β β
ββββββββββββββββ΄βββββββββββββββ΄βββββββββββββββ΄βββββββββββββββββββββββββC.5 Materi 3: Data Mart β Subset yang Fokus
C.5.1 Definisi dan Posisi Data Mart
DATA MART adalah subset dari data warehouse yang dirancang
khusus untuk kebutuhan satu departemen atau satu domain bisnis.
ANALOGI:
Data Warehouse = Perpustakaan Universitas (semua koleksi)
Data Mart = Ruang Baca Khusus Jurusan (hanya koleksi relevan)
DUA JENIS DATA MART:
1. DEPENDENT DATA MART
β Dibuat dari data warehouse yang sudah ada
β Data sudah terstandarkan dan terintegrasi di DW
β Data mart hanya berisi subset dan mungkin pre-agregasi tambahan
Alur: Sumber β ETL β Data Warehouse β Data Mart
2. INDEPENDENT DATA MART
β Dibuat langsung dari sumber tanpa data warehouse
β Lebih cepat dibangun, tapi data tidak terstandarkan antar mart
β Menimbulkan "silo data": marketing punya definisi "pelanggan"
yang beda dengan keuangan
β ANTIPATTERN yang sebaiknya dihindari jangka panjang!
Alur: Sumber β ETL (mini) β Data MartC.5.2 Data Warehouse vs Data Mart
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β Aspek β Data Warehouse β Data Mart β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Cakupan β Enterprise-wide (seluruh β Domain-specific (1 divisi β
β β organisasi) β atau 1 subjek bisnis) β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Ukuran β Besar β ratusan GB β PB β Lebih kecil β GB β TB β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Waktu pembangunan β Bulan β tahun β Minggu β bulan β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Pengguna β Seluruh departemen β Satu departemen β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Konsistensi data β Tinggi (single truth) β Tergantung implementasi β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Biaya β Lebih tinggi β Lebih rendah β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ€
β Kapan dipilih β Organisasi besar dengan β Kebutuhan cepat, departemen β
β β banyak departemen dan β spesifik, atau sebagai β
β β kebutuhan cross-domain β langkah awal sebelum DW β
ββββββββββββββββββββββββ΄βββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββ
CONTOH DATA MART DARI TOKO BATIK ONLINE:
Data Warehouse (seluruh bisnis)
β
βββ Data Mart Penjualan (Tim Sales)
β Fokus: fakta_penjualan, dim_produk, dim_waktu, dim_pelanggan
β Pertanyaan: Revenue? Konversi? Produk terlaris?
β
βββ Data Mart Marketing (Tim Marketing)
β Fokus: fakta_kampanye, dim_pelanggan, dim_produk, dim_kanal
β Pertanyaan: ROI kampanye? Segmen respons terbaik?
β
βββ Data Mart Inventori (Tim Operasional)
Fokus: fakta_stok, dim_produk, dim_waktu, dim_supplier
Pertanyaan: Turnover stok? Produk slow-moving?C.6 Materi 4: Proses ETL β Jembatan dari OLTP ke Warehouse
ETL (Extract, Transform, Load) adalah proses yang menjembatani sistem sumber (OLTP) dengan data warehouse. Ini adalah "dapur" di mana data mentah dari berbagai sumber diolah menjadi data analitik yang bersih, konsisten, dan siap pakai.
C.6.1 Extract β Mengambil Data dari Sumber
EXTRACT: Mengambil data dari sistem sumber tanpa mengganggu operasional
TANTANGAN EXTRACT:
1. Heterogenitas sumber:
β Database relasional (MySQL, PostgreSQL, Oracle)
β Spreadsheet Excel / Google Sheets
β File CSV / JSON / XML
β API REST / GraphQL
β Log files
β SaaS platforms (Salesforce, Shopify, dll.)
2. Volume besar:
β Full Extract: ambil SEMUA data setiap kali
β Sederhana tapi mahal untuk data besar
β Incremental Extract: hanya ambil data BARU atau BERUBAH
β Efisien, tapi butuh mekanisme deteksi perubahan:
- Timestamp kolom: WHERE updated_at > last_extract_time
- Change Data Capture (CDC): track INSERT/UPDATE/DELETE di log DB
- Sequence number: WHERE id > last_max_id
3. Meminimalkan dampak ke sistem OLTP:
β Jadwalkan extract di jam sepi (tengah malam, dini hari)
β Gunakan read replica database, bukan primary server
β Batasi jumlah koneksi bersamaan
STAGING AREA:
Data yang di-extract disimpan sementara di "staging area"
sebelum di-transform. Area ini memungkinkan:
β Re-run transform jika ada kegagalan tanpa harus extract ulang
β Audit: bisa lihat data sebelum dan sesudah transformasi
β Paralel processingC.6.2 Transform β Membersihkan dan Mentransformasi Data
Tahap transform adalah yang paling kompleks dan paling kritis dalam ETL. Di sinilah keempat karakteristik data warehouse (terutama "integrated") diwujudkan.
JENIS-JENIS TRANSFORMASI:
1. DATA CLEANSING (Pembersihan Data):
β Menangani NULL: isi dengan nilai default atau nilai rata-rata
β Hapus whitespace: TRIM(' Budi Santoso ') β 'Budi Santoso'
β Koreksi case: UPPER() / LOWER() / INITCAP() untuk konsistensi
β Hapus karakter tidak valid
β Deteksi dan tangani duplikasi
2. STANDARDISASI FORMAT:
β Tanggal: berbagai format β YYYY-MM-DD (ISO 8601)
β Nomor telepon: berbagai format β satu format standar
β Kode wilayah: 'Jateng' vs 'Jawa Tengah' β standar satu
β Satuan: USD vs IDR β konversi ke IDR dengan kurs
3. INTEGRASI DAN PEMETAAN:
β Menggabungkan data dari berbagai sumber:
CRM customer_id + POS member_id β satu dim_pelanggan.kunci
β Surrogate key generation:
Natural key dari sumber β integer surrogate key di warehouse
β Resolusi konflik: jika data berbeda di dua sumber, mana yang dipercaya?
4. DERIVASI DAN KALKULASI:
β Hitung nilai turunan: revenue = qty Γ harga_satuan
β Ekstrak dari tanggal: tahun, bulan, kuartal, nama_hari, is_weekend
β Kategori usia: tgl_lahir β 'Remaja', 'Dewasa Muda', 'Senior'
β Segmentasi: total_belanja β 'Bronze', 'Silver', 'Gold', 'Platinum'
5. PIVOTING / UNPIVOTING:
β Ubah struktur baris ke kolom atau sebaliknya
β Normalisasi β denormalisasi (khusus untuk dimensi)
CONTOH TRANSFORMASI KONKRET:
Data OLTP (tabel pesanan):
ββββββββββ¬ββββββββββββββββββββββ¬βββββββββββββββ
β id_pes β tgl_pesanan β id_pelanggan β
ββββββββββΌββββββββββββββββββββββΌβββββββββββββββ€
β 10001 β 2024-03-15 09:23:45 β 501 β
ββββββββββ΄ββββββββββββββββββββββ΄βββββββββββββββ
Setelah Transform (untuk dim_waktu dan fakta_penjualan):
ββββββββββββββ¬βββββββ¬ββββββββ¬βββββββββ¬βββββββββββββββββ¬ββββββββββββ
β kunci_wkt β tahunβ bulan β kuartalβ nama_hari_mingguβ is_weekendβ
ββββββββββββββΌβββββββΌββββββββΌβββββββββΌβββββββββββββββββΌββββββββββββ€
β 20240315 β 2024 β 3 β Q1 β Jumat β 0 β
ββββββββββββββ΄βββββββ΄ββββββββ΄βββββββββ΄βββββββββββββββββ΄ββββββββββββC.6.3 Load β Memasukkan Data ke Warehouse
LOAD: Memasukkan data yang sudah bersih ke tabel dimensi dan fakta
DUA STRATEGI LOADING:
1. FULL LOAD (Muat Penuh):
β Kosongkan tabel warehouse, isi ulang dari awal
β Kapan: jadwal periodik untuk dimensi kecil, atau pertama kali
β Kelemahan: mahal untuk tabel besar, ada downtime
2. INCREMENTAL LOAD (Muat Bertahap):
β Hanya tambahkan atau update data yang berubah
β Jauh lebih efisien untuk tabel besar
β Kompleks: harus tracking apa yang berubah
Pola yang umum:
a. INSERT ONLY: tabel fakta biasanya hanya di-append
b. UPSERT (INSERT or UPDATE): dimensi yang berubah
URUTAN LOADING β PENTING!
Dimensi harus di-load SEBELUM fakta (karena FK dari fakta ke dimensi):
1. Load dim_waktu β dimensi statis, biasanya jarang berubah
2. Load dim_produk β dimensi, bisa berubah
3. Load dim_pelanggan β dimensi, bisa berubah
4. Load dim_lokasi β dimensi, jarang berubah
5. Load fakta_penjualan β fakta, data baru setiap hari
JADWAL ETL TIPIKAL:
β Nightly batch (tengah malam): untuk laporan harian
β Weekly (Minggu pagi): untuk laporan mingguan
β Real-time / near-real-time streaming: untuk monitoring kritis
(menggunakan tools seperti Apache Kafka, Apache Flink)C.7 Materi 5: Multi-Dimensional Analysis β Cara Berpikir Analitik
Salah satu keunggulan data warehouse adalah kemampuan "memotong" data dari berbagai sudut pandang secara cepat. Ini disebut analisis multi-dimensional.
C.7.1 Cube Analitik β Visualisasi Konseptual
BAYANGKAN DATA SEBAGAI "KUBUS" 3 DIMENSI:
WAKTU
(2022, 2023, 2024)
/
/____________
/ / / / /|
/ββββββββββββ /| PRODUK
| | | | /| (Batik Tulis,
| | | |/ | Batik Cap,
|βββ|βββ|βββ/ | Aksesoris)
| | | /| /
| | | / | /
|___|___|/ |/
| | | |
βββββββββββββββββ LOKASI
(Semarang, Solo,
Jogja, Jakarta)
Setiap "sel" dalam kubus berisi NILAI TERUKUR (measure):
β Revenue, jumlah transaksi, jumlah unit, dll.
Dalam praktik, dimensi bisa lebih dari 3:
β Dimensi ke-4: Kanal penjualan (online, offline, marketplace)
β Dimensi ke-5: Segmen pelanggan (baru, loyal, premium)
β dst.C.7.2 Lima Operasi OLAP
1. SLICE (Mengiris)
β Memilih SATU NILAI dari satu dimensi β mengurangi satu dimensi
Contoh: "Tampilkan data HANYA untuk tahun 2024"
β Dari kubus 3D (Waktu Γ Produk Γ Lokasi)
β Menjadi irisan 2D (Produk Γ Lokasi) untuk 2024 saja
2. DICE (Memotong)
β Memilih BEBERAPA NILAI dari satu atau lebih dimensi β subcube
Contoh: "Tampilkan data untuk Q1βQ2 2024 dan produk Batik Tulis & Cap,
untuk kota Semarang dan Solo"
β Subcube dari data yang lebih kecil tapi masih multi-dimensi
3. DRILL DOWN (Menyelami Detail)
β Bergerak ke level yang LEBIH DETAIL dalam hierarki dimensi
Contoh hierarki waktu: Tahun β Kuartal β Bulan β Minggu β Hari
"Revenue per Tahun" β drill down β "Revenue per Kuartal"
β drill down lagi β "Revenue per Bulan"
β drill down lagi β "Revenue per Hari"
Contoh hierarki produk: Kategori β Subkategori β Produk
4. DRILL UP / ROLL UP (Merangkum)
β Bergerak ke level yang LEBIH TINGGI / RINGKAS dalam hierarki
Kebalikan dari drill down:
"Revenue per Hari" β roll up β "Revenue per Minggu"
β roll up lagi β "Revenue per Bulan"
β roll up lagi β "Revenue per Tahun"
5. PIVOT (Memutar)
β Memutar orientasi tampilan β menukar dimensi antar baris dan kolom
Sebelum pivot:
ββββββββββ¬βββββββββ¬βββββββββββ
β Tahun β Produk β Revenue β
ββββββββββΌβββββββββΌβββββββββββ€
β 2023 β Tulis β 120 Jt β
β 2023 β Cap β 80 Jt β
β 2024 β Tulis β 145 Jt β
β 2024 β Cap β 95 Jt β
ββββββββββ΄βββββββββ΄βββββββββββ
Setelah pivot (Tahun di kolom, Produk di baris):
ββββββββββ¬βββββββββ¬βββββββββ
β Produk β 2023 β 2024 β
ββββββββββΌβββββββββΌβββββββββ€
β Tulis β 120 Jt β 145 Jt β
β Cap β 80 Jt β 95 Jt β
ββββββββββ΄βββββββββ΄βββββββββ
β Jauh lebih mudah membandingkan year-over-year!C.8 Materi 6: Pengantar Dimensional Modelling β Preview Menuju Pertemuan 12
Dimensional Modelling adalah teknik perancangan skema yang dikembangkan Ralph Kimball, dirancang khusus untuk mendukung OLAP dan operasi analitik multi-dimensional.
C.8.1 Dua Elemen Utama
FAKTA (FACT) β "APA yang terjadi?"
β Kejadian bisnis yang terukur secara numerik
β Disimpan di TABEL FAKTA (Fact Table)
β Contoh kejadian: transaksi penjualan, kunjungan dokter,
peminjaman buku, pendaftaran mahasiswa
β Contoh ukuran (measures): revenue, qty, biaya, durasi, jumlah
DIMENSI (DIMENSION) β "SIAPA, APA, KAPAN, DI MANA?"
β Konteks deskriptif dari fakta β label yang digunakan untuk
memfilter, mengelompokkan, dan memberi makna pada fakta
β Disimpan di TABEL DIMENSI (Dimension Table)
β Contoh dimensi: Waktu, Produk, Pelanggan, Lokasi, Karyawan
HUBUNGAN ANTARA FAKTA DAN DIMENSI:
"Pada TANGGAL 15 Maret 2024, PELANGGAN Budi Santoso membeli
PRODUK Batik Tulis Pekalongan sebanyak 2 unit seharga Rp 1.200.000"
FAKTA β Baris di tabel fakta_penjualan:
kunci_waktu = 20240315
kunci_pelanggan = 1001
kunci_produk = 5023
qty = 2
revenue = 1200000
DIMENSI β Baris di tabel-tabel dimensi yang memberikan konteks:
dim_waktu[20240315]: tahun=2024, bulan=3, kuartal='Q1', hari='Jumat'
dim_pelanggan[1001]: nama='Budi Santoso', kota='Semarang', segmen='Gold'
dim_produk[5023]: nama='Batik Tulis Pekalongan', kategori='Batik Tulis'C.8.2 Preview Star Schema
STAR SCHEMA β Skema "bintang":
Satu tabel fakta di tengah, dikelilingi tabel dimensi.
Disebut "bintang" karena bentuk diagramnya seperti bintang.
dim_waktu
(waktu/tanggal)
β
β
dim_pelanggan ββββββΌβββββ dim_produk
(siapa) (FAKTA ) (apa yang dibeli)
PENJUALAN
β
β
dim_lokasi
(di mana)
FAKTA PENJUALAN berisi:
β Kunci-kunci ke setiap dimensi (FK)
β Measures: revenue, qty, discount, cost
PERBEDAAN KUNCI dari OLTP:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OLTP: banyak tabel kecil, ternormalisasi, banyak FK β
β DW : sedikit tabel besar (dimensi lebar/fat), β
β denormalisasi disengaja untuk performa query β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DETAIL MATERI STAR SCHEMA (Grain, Measures, Surrogate Key, dll.)
β Akan dibahas mendalam di Pertemuan 12!C.9 Arsitektur DW Modern: Sekilas Data Vault 2.0 & Medallion Architecture
Catatan: Bagian ini adalah pengantar konseptual β tidak mendalam, tidak implementasi. Tujuannya adalah agar mahasiswa mengenali istilah-istilah ini saat membaca dokumentasi teknis atau bertemu di dunia kerja.
Babak kedua perkuliahan ini (P11βP14) mengajarkan pendekatan Kimball (dimensional modelling / star schema). Namun di industri, ada pendekatan arsitektur DW lain yang cukup populer:
C.9.1 Data Vault 2.0
Data Vault adalah metodologi modeling data warehouse yang dikembangkan oleh Dan Linstedt. Dirancang untuk fleksibilitas tinggi dan auditability penuh.
TIGA KOMPONEN UTAMA DATA VAULT:
1. HUB β "Siapa/Apa yang penting dalam bisnis?"
β Menyimpan business keys (natural key) dari setiap entitas bisnis
β Sangat stabil, jarang berubah
Contoh: HUB_PELANGGAN(hub_id, pelanggan_src_id, load_date, record_source)
2. LINK β "Bagaimana antar hub saling terhubung?"
β Menangkap hubungan (relationship) antar hub
β TIDAK menyimpan data deskriptif, hanya FK ke hub
Contoh: LNK_PEMBELIAN(link_id, hub_pelanggan_id*, hub_produk_id*,
load_date, record_source)
3. SATELLITE β "Konteks dan detail dari hub/link?"
β Menyimpan semua atribut deskriptif
β SELALU menyimpan historis (tidak pernah overwrite)
Contoh: SAT_PELANGGAN(hub_id*, load_date*, nama, kota, segmen,
hash_diff, record_source)
KENAPA DATA VAULT?
β Sangat cocok ketika sumber data banyak dan sering berubah strukturnya
β Audit trail lengkap: setiap perubahan data tersimpan dengan timestamp
β Lebih modular: tambah sumber baru tidak perlu ubah model lama
β Lebih sulit di-query langsung β biasanya dilapisi dengan Information Mart
(mirip star schema) untuk kebutuhan analitik akhirC.9.2 Medallion Architecture (BronzeβSilverβGold)
Medallion Architecture adalah pola desain data lake/lakehouse yang populer, dikembangkan oleh Databricks. Data diorganisasikan dalam tiga lapisan kualitas:
MEDALLION ARCHITECTURE:
[SUMBER DATA] [KONSUMSI]
OLTP, API, ββββββ ββββββ ββββββ
File, Streaming ββBRONβββSILVβββGOLDββ BI, ML, Analitik
β ZE β β ER β β β
ββββββ ββββββ ββββββ
BRONZE β "Data Mentah"
β Data disimpan APA ADANYA dari sumber
β Minimal atau tanpa transformasi
β Dipertahankan selamanya (append-only audit log)
β Kualitas data TIDAK dijamin
SILVER β "Data Bersih & Tervalidasi"
β Data dari Bronze telah dibersihkan, distandarkan, di-join
β Tipe data konsisten, duplikasi dihapus
β Kualitas data CUKUP untuk konsumsi analitik
β Mirip domain/entity tables
GOLD β "Data Siap Analitik / Bisnis"
β Data sudah diagregasi sesuai kebutuhan bisnis
β Bisa berupa star schema, flat tables, atau feature tables untuk ML
β Kualitas dan performa dioptimalkan untuk end-user
β Ini yang paling mirip dengan yang kita pelajari di P12βP13
CONTOH ALUR TOKO BATIK ONLINE:
Bronze: file CSV penjualan harian (as-is, termasuk baris error)
Silver: tabel pelanggan, produk, transaksi yang sudah bersih
Gold: star schema fakta_penjualan + dimensi (siap untuk dashboard)Perbandingan Singkat:
| Aspek | Kimball (Star) | Data Vault | Medallion |
|---|---|---|---|
| Pendekatan | Top-down, query-first | Bottom-up, source-first | Layer bertahap |
| Fleksibilitas sumber | Sedang | Tinggi | Tinggi |
| Kemudahan query | Tinggi (star langsung) | Rendah (butuh lapisan) | Tinggi (di Gold) |
| Auditability | Sedang (SCD) | Sangat tinggi | Tinggi (Bronze) |
| Cocok untuk | Tim analis, DW tradisional | Banyak sumber, audit ketat | Data lake/lakehouse |
| Kita pelajari di? | P12βP13 (mendalam) | Pengantar ini saja | Pengantar ini saja |
Pesan kunci: Star schema (Kimball) yang kita pelajari di P12βP13 adalah fondasi yang paling relevan untuk memulai karier sebagai data professional. Data Vault dan Medallion adalah evolusi yang akan kamu temui saat bekerja di tim data yang lebih matang β dan fondasi P11βP13 akan membantu kamu memahaminya dengan cepat.
D. LATIHAN DAN DISKUSI
D.1 Latihan: Identifikasi Query Analitik vs Transaksional (Individual, 10 menit)
Instruksi: Kategorikan setiap pertanyaan bisnis berikut sebagai OLTP (transaksional) atau OLAP (analitik), kemudian sebutkan dimensi dan fakta yang diperlukan untuk yang bersifat analitik.
Daftar Pertanyaan Bisnis (Sistem Rumah Sakit):
- "Berapa total tagihan pasien dengan nomor rekam medis 001234?"
- "Dokter spesialis mana yang paling banyak menangani pasien dalam 6 bulan terakhir?"
- "Apakah kamar 302 sedang terisi atau kosong saat ini?"
- "Tunjukkan tren kasus penyakit per diagnosis per bulan selama 2 tahun terakhir!"
- "Berapa rata-rata Length of Stay (LOS) pasien berdasarkan jenis penyakit dan usia?"
- "Tambahkan jadwal operasi baru untuk Dr. Budi besok pukul 08:00"
- "Jam berapa puncak kunjungan pasien rawat jalan per hari dalam seminggu?"
- "Obat apa yang hampir habis stoknya saat ini?"
- "Bagaimana perbandingan revenue antar poli di 4 kuartal terakhir?"
- "Update alamat pasien Siti Rahayu ke Jl. Merdeka No. 5"
Tabel Jawaban:
| No | OLTP / OLAP | Jika OLAP: Dimensi yang Diperlukan | Fakta/Measure |
|---|---|---|---|
| 1 | |||
| 2 | |||
| ... |
D.2 Diskusi Kelompok: "Rancang Data Warehouse Kamu!" (Brainstorming, 15 menit)
Konteks: Universitas kamu ingin membangun Data Warehouse Akademik untuk mendukung keputusan strategis: evaluasi program studi, monitoring kinerja dosen, analisis kelulusan mahasiswa.
Tugas Kelompok (4β5 mahasiswa):
-
Identifikasi 5 pertanyaan analitik yang paling penting bagi pimpinan universitas
- Contoh: "Bagaimana tren IPK rata-rata per angkatan per program studi dalam 5 tahun?"
-
Identifikasi FAKTA (kejadian bisnis yang terukur):
- Apa kejadian yang paling penting? (Satu mahasiswa mengambil satu matakuliah di satu semester?)
- Apa yang diukur? (Nilai, SKS, kehadiran, biaya?)
-
Identifikasi DIMENSI (konteks dari fakta):
- Siapa yang terlibat? (Mahasiswa, dosen?)
- Apa objeknya? (Mata kuliah, program studi?)
- Kapan? (Semester, tahun akademik?)
- Di mana? (Ruang kelas, kampus?)
-
Gambaran ETL sederhana:
- Dari mana data berasal? (Sistem SIAKAD, sistem keuangan, sistem perpustakaan?)
- Transformasi apa yang diperlukan?
Output yang dipresentasikan: Whiteboard/kertas berisi daftar pertanyaan analitik + daftar dimensi dan fakta yang diidentifikasi (bukan skema lengkap β itu akan di pertemuan 12)
D.3 Demonstrasi: Perbandingan Query OLTP vs OLAP (Opsional, 10 menit)
Dosen menjalankan dua query di MySQL:
-- QUERY OLTP β cepat, langsung ke PK
-- Simulasi: cek status pesanan customer
EXPLAIN ANALYZE
SELECT p.id_pesanan, p.status, p.tgl_pesanan, pl.nama
FROM pesanan p
JOIN pelanggan pl ON p.id_pelanggan = pl.id_pelanggan
WHERE p.id_pesanan = 10045;
-- Harapan: type=const, rows=1, < 5ms
-- ββββββββββββββββββββββββββββββββββββββββββββββ
-- QUERY ANALITIK β lambat di OLTP, butuh full scan
-- Simulasi: laporan revenue per bulan per kategori
EXPLAIN
SELECT
YEAR(p.tgl_pesanan) AS tahun,
MONTH(p.tgl_pesanan) AS bulan,
k.nama_kategori,
SUM(ip.qty * ip.harga_saat_pesan) AS total_revenue
FROM pesanan p
JOIN item_pesanan ip ON p.id_pesanan = ip.id_pesanan
JOIN produk pr ON ip.id_produk = pr.id_produk
JOIN kategori k ON pr.id_kategori = k.id_kategori
WHERE p.status = 'selesai'
GROUP BY YEAR(p.tgl_pesanan), MONTH(p.tgl_pesanan), k.nama_kategori
ORDER BY tahun, bulan, total_revenue DESC;
-- Harapan: type=ALL di beberapa tabel, rows=besar, lambat
-- ββββββββββββββββββββββββββββββββββββββββββββββ
-- QUERY OLAP (jika sudah ada tabel warehouse sederhana)
-- Mengambil data yang sudah pre-agregasi
SELECT tahun, bulan, nama_kategori, SUM(revenue) AS total_revenue
FROM fakta_penjualan f
JOIN dim_waktu w ON f.kunci_waktu = w.kunci_waktu
JOIN dim_produk p ON f.kunci_produk = p.kunci_produk
GROUP BY tahun, bulan, nama_kategori
ORDER BY tahun, bulan, total_revenue DESC;
-- Harapan: sangat cepat karena data sudah siap, JOIN sederhanaE. EVALUASI DAN PENILAIAN
E.1 Kuis Penutup (10 menit, bobot partisipasi)
-
Jelaskan dengan kata-katamu sendiri: mengapa kita TIDAK boleh menjalankan laporan analitik yang berat langsung di database OLTP yang sedang melayani transaksi real-time?
-
Sebutkan 4 karakteristik data warehouse menurut Inmon. Untuk setiap karakteristik, berikan contoh konkret yang menunjukkan bagaimana karakteristik itu diwujudkan dalam praktik!
-
Jelaskan perbedaan antara data warehouse dan data mart. Kapan organisasi lebih baik membangun data mart daripada langsung data warehouse?
-
Apa perbedaan antara operasi Drill Down dan Slice dalam analisis multi-dimensional? Berikan contoh masing-masing dengan konteks penjualan produk!
-
Dalam proses ETL, tahap mana yang paling kritis dan kenapa? Berikan contoh satu transformasi yang khas yang terjadi di tahap tersebut!
E.2 Tugas: Analisis Kebutuhan Data Warehouse (Individu)
Judul: Analisis Kebutuhan Analitik dan Rancangan Awal DimensiβFakta
Deskripsi: Mahasiswa memilih satu domain bisnis (berbeda dari domain proyek kelompok) dan melakukan analisis kebutuhan untuk membangun data warehouse.
Deliverables:
Bagian 1 β Deskripsi Domain Bisnis (1 halaman)
- Nama domain dan konteks bisnisnya
- Sistem OLTP yang sudah ada (bayangkan)
- Stakeholder yang akan menggunakan analitik (C-level, manajer, analis)
Bagian 2 β Pertanyaan Analitik (10 pertanyaan)
- Tuliskan 10 pertanyaan analitik yang ingin dijawab
- Kelompokkan: pertanyaan strategis (untuk direksi), taktis (manajer), operasional (analis)
- Urutkan dari yang paling kritis
Bagian 3 β Identifikasi Dimensi dan Fakta
- Dari 10 pertanyaan di atas, identifikasi:
- Fakta: kejadian bisnis apa yang menjadi pusat analisis?
- Dimensi: konteks apa yang diperlukan untuk setiap fakta?
- Buat tabel:
| Pertanyaan | Fakta yang Diperlukan | Dimensi yang Diperlukan |
|---|---|---|
| ... | ... | ... |
Bagian 4 β Rancangan ETL Sederhana
- Dari mana data akan di-extract? (sistem apa saja)
- Contoh satu transformasi yang diperlukan (konkret dengan contoh data sebelum dan sesudah)
- Jadwal loading yang diusulkan (real-time / harian / mingguan) dan alasannya
Format: PDF, minimal 4 halaman, font 11pt Deadline: H-1 sebelum pertemuan 12 (dikumpulkan via Ngaji UIN Gusdur)
F. PERSIAPAN PERTEMUAN 12
F.1 Topik Pertemuan 12
Dimensional Modelling: Star Schema β di sinilah kita turun ke teknis perancangan. Pertemuan 12 membahas cara merancang skema bintang (star schema) secara lengkap, mulai dari menentukan grain, membangun fact table, merancang dimension table yang kaya atribut, hingga menulis DDL untuk warehouse.
Topik spesifik yang akan dibahas:
- Grain definition: "Satu baris mewakili apa?" β keputusan paling fundamental
- Fact table: degenerate dimension, additive vs semi-additive vs non-additive measures
- Dimension table: wide table, surrogate key, natural key, hierarki
- Date dimension: dimensi paling penting dan cara membangunnya
- Implementasi star schema dalam SQL
F.2 Bacaan Wajib Sebelum Pertemuan 12
- Kimball & Ross, Chapter 1: "Data Warehousing, Business Intelligence, and Dimensional Modeling Primer"
- Kimball & Ross, Chapter 2: "Kimball Dimensional Modeling Techniques" (bagian grain dan fact table)
F.3 Pertanyaan Pemantik untuk Pertemuan 12
Dari hasil brainstorming Latihan D.2 (Data Warehouse Akademik), pikirkan:
- Jika tabel fakta berisi data nilai mahasiswa, apakah "satu baris = satu pengambilan mata kuliah" sudah cukup spesifik sebagai grain? Atau perlu lebih detail?
- Di dimensi Mahasiswa, atribut apa saja yang perlu disimpan untuk mendukung analisis segmentasi?
- Bagaimana kamu akan membuat "dimensi waktu" yang bisa mendukung analisis per semester, per tahun akademik, dan per bulan kalender sekaligus?
G. REFERENSI
G.1 Referensi Utama
-
Kimball, R. & Ross, M. (2013). The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3rd Edition). Wiley. ISBN: 978-1118530801.
- Chapter 1: Data Warehousing, Business Intelligence, and Dimensional Modeling Primer (bacaan utama P11)
- Chapter 2: Kimball Dimensional Modeling Techniques (persiapan P12)
- Chapter 19: ETL Subsystems and Techniques
-
Inmon, W. H. (2005). Building the Data Warehouse (4th Edition). Wiley. ISBN: 978-0764599446.
- Buku "lainnya" dari dua aliran utama data warehousing (Kimball vs Inmon)
- Chapter 1: Pengantar dan definisi 4 karakteristik DW
-
Elmasri, R. & Navathe, S. B. (2015). Fundamentals of Database Systems (7th Edition). Pearson.
- Chapter 29: Data Warehousing and Data Mining (pengantar dari perspektif database)
G.2 Referensi Online
- Kimball Group. "Kimball Dimensional Modeling Techniques" β https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/ (opens in a new tab)
- Kimball Group. "What is a Data Warehouse?" (Design Tips) β https://www.kimballgroup.com (opens in a new tab)
- IBM Cloud Education. "What is OLAP?" β https://www.ibm.com/topics/olap (opens in a new tab)
- Oracle. "What is a Data Warehouse?" β https://www.oracle.com/database/what-is-a-data-warehouse/ (opens in a new tab)
- AWS. "What is a Data Warehouse?" β https://aws.amazon.com/data-warehouse/ (opens in a new tab)
G.3 Video Resources
- Alex The Analyst β "Data Warehouse Tutorial for Beginners" (YouTube β sangat visual)
- IBM Technology β "What is OLAP?" (YouTube β penjelasan singkat dan jelas)
- Kimball Group β "The Kimball Data Warehouse Lifecycle" (YouTube β dari sumber aslinya)
- Data with Mo β "Star Schema vs Snowflake Schema" (YouTube β preview P12)
G.4 Tools untuk Eksplorasi
- Google BigQuery β https://cloud.google.com/bigquery (opens in a new tab) (free tier tersedia β cloud DW)
- DuckDB β https://duckdb.org (opens in a new tab) (gratis, embedded OLAP engine β sangat mudah dicoba)
- Apache Superset β https://superset.apache.org (opens in a new tab) (gratis, BI tool untuk visualisasi DW)
H. LAMPIRAN
Lampiran A: Tabel Perbandingan Lengkap OLTP vs OLAP vs Data Warehouse
βββββββββββββββββββββββββ¦ββββββββββββββββββββββββββββ¦βββββββββββββββββββββββββββββββ
β Karakteristik β OLTP β OLAP / Data Warehouse β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Singkatan β Online Transaction β Online Analytical β
β β Processing β Processing β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Tujuan Utama β Proses transaksi harian β Analisis & decision support β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Sumber Data β Data operasional terkini β Multi-source, historis β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Jenis Operasi β INSERT, UPDATE, DELETE, β SELECT dengan agregasi besar β
β β SELECT sederhana β (sangat read-heavy) β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Skema Database β 3NF, BCNF (normalized) β Star/Snowflake (denormalized) β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Tipe Tabel β Tabel relasional biasa β Fact tables + Dimension β
β β β tables β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Orientasi Query β Lookup by PK/FK, filter β Agregasi besar, GROUP BY, β
β β by specific key β multi-dimension JOIN β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Pengguna β Ratusanβribuan concurrent β Puluhan analyst/manajer β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Response Time β < 100 ms (milidetik) β Detik β menit (dapat β
β β β dipercepat dengan pre-agg) β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Volume Data β GB β beberapa TB (aktif) β TB β PB (historis panjang) β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Update Frequency β Real-time (setiap detik) β Batch: harian/mingguan/ β
β β β bulanan via ETL β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Backup/Recovery β Full + WAL logging, PITR β Full backup cukup (non- β
β β (point-in-time recovery) β volatile, bisa rebuild dari β
β β β sumber jika perlu) β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Index Utama β B-Tree pada PK, FK, dan β Bitmap index (untuk low- β
β β kolom query umum β cardinality), columnar β
β ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ£
β Contoh Platform β MySQL, PostgreSQL, Oracle, β Snowflake, BigQuery, β
β β SQL Server β Redshift, ClickHouse β
βββββββββββββββββββββββββ©ββββββββββββββββββββββββββββ©βββββββββββββββββββββββββββββββLampiran B: Contoh Tabel Dimensi dan Fakta Sederhana
-- ============================================================
-- PREVIEW DIMENSIONAL MODEL β Sistem Toko Batik Online
-- (Detail lengkap di Pertemuan 12)
-- ============================================================
-- Dimensi Waktu (Date Dimension)
-- Pra-populasi untuk semua tanggal yang mungkin dianalisis
CREATE TABLE dim_waktu (
kunci_waktu INT UNSIGNED NOT NULL, -- Format: YYYYMMDD
tanggal_penuh DATE NOT NULL,
tahun SMALLINT NOT NULL,
kuartal TINYINT NOT NULL, -- 1, 2, 3, 4
nama_kuartal CHAR(2) NOT NULL, -- Q1, Q2, Q3, Q4
bulan TINYINT NOT NULL, -- 1-12
nama_bulan VARCHAR(20) NOT NULL, -- Januari, Februari, ...
minggu_dalam_tahun TINYINT NOT NULL, -- 1-53
hari_dalam_bulan TINYINT NOT NULL, -- 1-31
nama_hari_minggu VARCHAR(10) NOT NULL, -- Senin, Selasa, ...
is_weekend TINYINT(1) NOT NULL, -- 0=weekday, 1=weekend
is_hari_libur TINYINT(1) NOT NULL DEFAULT 0,
CONSTRAINT pk_dim_waktu PRIMARY KEY (kunci_waktu)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Dimensi Produk
CREATE TABLE dim_produk (
kunci_produk INT UNSIGNED NOT NULL AUTO_INCREMENT,
natural_key_produk INT UNSIGNED NOT NULL, -- id dari OLTP
nama_produk VARCHAR(200) NOT NULL,
kategori VARCHAR(100) NOT NULL,
subkategori VARCHAR(100),
harga_jual DECIMAL(15,2) NOT NULL,
rentang_harga VARCHAR(30), -- 'Budget', 'Mid-range', 'Premium'
is_aktif TINYINT(1) NOT NULL DEFAULT 1,
berlaku_dari DATE NOT NULL,
berlaku_sampai DATE NOT NULL DEFAULT '9999-12-31',
CONSTRAINT pk_dim_produk PRIMARY KEY (kunci_produk)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Dimensi Pelanggan
CREATE TABLE dim_pelanggan (
kunci_pelanggan INT UNSIGNED NOT NULL AUTO_INCREMENT,
natural_key_pelanggan INT UNSIGNED NOT NULL, -- id dari OLTP
nama VARCHAR(150) NOT NULL,
kota VARCHAR(100) NOT NULL,
provinsi VARCHAR(100) NOT NULL,
segmen_pelanggan VARCHAR(30), -- 'Baru', 'Regular', 'Loyal', 'VIP'
kelompok_usia VARCHAR(20), -- 'Remaja', 'Dewasa Muda', 'Senior'
berlaku_dari DATE NOT NULL,
berlaku_sampai DATE NOT NULL DEFAULT '9999-12-31',
CONSTRAINT pk_dim_pelanggan PRIMARY KEY (kunci_pelanggan)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Tabel Fakta Penjualan
CREATE TABLE fakta_penjualan (
kunci_waktu INT UNSIGNED NOT NULL,
kunci_pelanggan INT UNSIGNED NOT NULL,
kunci_produk INT UNSIGNED NOT NULL,
id_pesanan_sumber INT UNSIGNED NOT NULL, -- Degenerate dimension
qty SMALLINT UNSIGNED NOT NULL,
harga_satuan DECIMAL(15,2) NOT NULL,
diskon DECIMAL(15,2) NOT NULL DEFAULT 0.00,
revenue_bersih DECIMAL(15,2) NOT NULL, -- qty Γ harga - diskon
CONSTRAINT pk_fakta_penjualan
PRIMARY KEY (kunci_waktu, kunci_pelanggan, kunci_produk, id_pesanan_sumber),
CONSTRAINT fk_fp_waktu FOREIGN KEY (kunci_waktu)
REFERENCES dim_waktu (kunci_waktu),
CONSTRAINT fk_fp_pelanggan FOREIGN KEY (kunci_pelanggan)
REFERENCES dim_pelanggan (kunci_pelanggan),
CONSTRAINT fk_fp_produk FOREIGN KEY (kunci_produk)
REFERENCES dim_produk (kunci_produk)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Lampiran C: Lembar Kerja Latihan D.1 β OLTP vs OLAP
LEMBAR KERJA β IDENTIFIKASI QUERY OLTP vs OLAP
Nama : ___________________________ NIM : _______________
Tanggal: ___________________
Domain: Sistem Rumah Sakit
INSTRUKSI: Kategorikan pertanyaan sebagai OLTP atau OLAP.
Untuk OLAP, identifikasi dimensi dan fakta/measure.
βββββ¬βββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββ¬ββββββββββββββββββββ¬βββββββββββββββ
β Noβ Pertanyaan Bisnis β OLTP/OLAPβ Dimensi (jika OLAPβ Fakta/Measureβ
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 1 β Tagihan pasien RM 001234? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 2 β Dokter paling banyak tangani pasien 6bln? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 3 β Kamar 302 kosong atau terisi sekarang? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 4 β Tren kasus penyakit per bulan 2 tahun? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 5 β Rata-rata LOS per diagnosis dan usia? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 6 β Tambah jadwal operasi Dr. Budi besok? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 7 β Jam puncak kunjungan rawat jalan/minggu? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 8 β Obat hampir habis stok saat ini? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 9 β Revenue antar poli 4 kuartal terakhir? β β β β
βββββΌβββββββββββββββββββββββββββββββββββββββββββΌβββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β10 β Update alamat pasien Siti ke Jl. Merdeka? β β β β
βββββ΄βββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββ΄ββββββββββββββββββββ΄βββββββββββββββ
REFLEKSI:
Dari 10 pertanyaan di atas, mana yang paling "berbahaya" jika
dijalankan langsung di database OLTP saat jam sibuk? Mengapa?
[Jawaban:]Lampiran D: Diagram Alur ETL Untuk Diisi Mahasiswa
LEMBAR KERJA β RANCANGAN ETL SEDERHANA
Nama : ___________________________ NIM : _______________
DOMAIN YANG DIPILIH: ___________________________________
LANGKAH 1: EXTRACT
Sistem sumber yang akan di-extract:
ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ¬βββββββββββββββββββ
β Nama Sistem/File β Data yang Di-extract β Frekuensi Extractβ
ββββββββββββββββββββββββΌββββββββββββββββββββββββββΌβββββββββββββββββββ€
β β β β
β β β β
β β β β
ββββββββββββββββββββββββ΄ββββββββββββββββββββββββββ΄βββββββββββββββββββ
LANGKAH 2: TRANSFORM (pilih 2 transformasi yang paling penting)
Transformasi 1:
Kolom/data yang diubah : ___________________________
Kondisi data SEBELUM : ___________________________
Kondisi data SESUDAH : ___________________________
Alasan transformasi ini : ___________________________
Transformasi 2:
Kolom/data yang diubah : ___________________________
Kondisi data SEBELUM : ___________________________
Kondisi data SESUDAH : ___________________________
Alasan transformasi ini : ___________________________
LANGKAH 3: LOAD
Tabel warehouse tujuan : ___________________________
Strategi loading : β‘ Full Load β‘ Incremental Load
Alasan pemilihan strategi: ___________________________
Jadwal yang diusulkan : ___________________________
KENDALA YANG DIANTISIPASI:
[Tuliskan 2 tantangan ETL yang mungkin dihadapi untuk domain kamu]
1. _______________________________________________
2. _______________________________________________PENUTUP
Pertemuan 11 membuka babak baru yang secara konseptual adalah lompatan besar: dari memastikan data tersimpan dengan benar (OLTP) ke memastikan data dapat dianalisis dengan efektif (OLAP/DW).
Key Messages Pertemuan 11:
-
OLTP dan OLAP adalah dua sistem yang berbeda dengan tujuan berbeda β bukan yang satu lebih baik dari yang lain, melainkan keduanya diperlukan dan melengkapi satu sama lain dalam ekosistem data organisasi yang matang
-
Data warehouse bukan sekadar "database yang lebih besar" β ia memiliki empat karakteristik fundamental (subject-oriented, integrated, time-variant, non-volatile) yang membedakannya secara filosofis dari database operasional
-
ETL adalah jantung dari data warehouse β kualitas data di warehouse sangat bergantung pada kualitas proses Transform: pembersihan, standardisasi, dan integrasi yang dilakukan sebelum data masuk
-
Dimensional thinking adalah cara berpikir baru β alih-alih berpikir dalam entity dan relationship (OLTP), kita mulai berpikir dalam fakta dan dimensi: "Kejadian bisnis apa yang ingin kita ukur? Dan dari konteks apa?"
-
Data warehouse adalah fondasi analitik sains data β semua pipeline ML dan dashboard BI yang canggih sekalipun tidak bisa menghasilkan insight yang benar jika fondasi data warehousenya buruk
Koneksi ke Proyek Semester: Tahap 7 proyek kelompok adalah Dimensional Model (pertemuan 12β13), yang merupakan bagian terakhir sebelum presentasi akhir. Tugas analisis kebutuhan DW yang dikerjakan secara individu hari ini menjadi latihan fondasi sebelum mengaplikasikannya ke domain proyek kelompok di pertemuan 12.
Disusun oleh: Mohammad Reza Maulana, M.Kom Program Studi Sains Data Fakultas Ekonomi dan Bisnis Islam UIN K.H. Abdurrahman Wahid Pekalongan
Revisi: Februari 2026