MODUL PERTEMUAN 14
INTEGRASI MODEL DATA DALAM PROYEK SAINS DATA
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 14
Sub-CPMK 2.1, 4.1, 6.1 (Integratif): Mahasiswa mampu menjelaskan bagaimana keseluruhan lapisan model data â dari model konseptual (ERD) hingga model dimensional (star schema dengan SCD) â membentuk fondasi yang kohesif bagi pipeline analitik dan machine learning dalam proyek sains data nyata; serta mampu mengidentifikasi fitur-fitur yang dapat diekstrak dari data warehouse untuk keperluan feature engineering, dan menyiapkan proyek kelompok untuk dipresentasikan secara komprehensif pada Pertemuan 15.
B.2 Tujuan Pembelajaran (Learning Objectives)
Setelah mengikuti pertemuan ini, mahasiswa akan mampu:
- Mendeskripsikan peran setiap lapisan model data (konseptual, logikal, fisikal, dimensional) dalam mendukung siklus hidup proyek sains data secara end-to-end (C2 - Memahami)
- Menjelaskan konsep feature engineering dan mengapa kualitas model data menjadi penentu kualitas fitur yang dapat diekstrak (C2 - Memahami)
- Mengidentifikasi fitur-fitur yang dapat diekstrak dari tabel dimensi, tabel fakta, dan agregasi warehouse untuk membangun dataset ML (C3 - Menerapkan)
- Menulis query SQL feature engineering bertingkat - dari fitur dimensi sederhana hingga fitur agregasi temporal berbasis window function (C3 - Menerapkan)
- Menjelaskan secara ringkas konsep feature store dan arsitektur data modern (lakehouse) sebagai gambaran ekosistem melebihi scope perkuliahan ini (C2 - Memahami)
- Merefleksikan hubungan antara setiap keputusan desain model data yang telah dibuat selama semester dengan kemampuan analitik dan ML yang dihasilkan (C5 - Mengevaluasi)
- Memfinalisasi proyek kelompok dan menyiapkan materi presentasi yang komprehensif untuk Pertemuan 15 (C6 - Mencipta)
B.3 Kompetensi yang Dikembangkan
| Domain | Kompetensi |
|---|---|
| Kognitif | Menghubungkan konsep model data dengan kebutuhan ML/analitik (C5); Mengidentifikasi fitur yang dapat diekstrak dari warehouse (C3); Mengevaluasi kualitas desain model dari sudut pandang downstream analytics (C5) |
| Afektif | Membangun kesadaran bahwa model data yang baik bukan tujuan akhir, melainkan fondasi â kualitasnya menentukan kualitas semua analisis dan model ML yang dibangun di atasnya; menghargai keterkaitan antar lapisan desain yang telah dipelajari seluruh semester |
| Psikomotorik | Menulis SQL feature engineering yang menggunakan JOIN, agregasi, dan window function dari star schema; Menyiapkan slide presentasi proyek yang terstruktur dan komprehensif |
B.4 Indikator Pencapaian
Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu:
- Menggambarkan pipeline end-to-end dari OLTP â ETL â Warehouse â Feature Engineering â ML Model dengan komponen yang benar di setiap tahapan
- Diberikan star schema, mengidentifikasi minimal 10 fitur yang dapat diekstrak beserta tipe datanya (numerik/kategorikal/temporal)
- Menulis minimal 3 query SQL feature engineering yang berbeda tingkat kompleksitasnya dari star schema yang ada
- Menjelaskan dengan kata-kata sendiri mengapa model data yang buruk menghasilkan fitur ML yang buruk, dengan contoh konkret
- Menyelesaikan dan memfinalisasi semua komponen proyek kelompok sebelum akhir pertemuan
B.5 Alokasi Waktu
| No | Kegiatan | Durasi | Keterangan |
|---|---|---|---|
| 1 | Pembukaan & Retrospektif Semester | 10 menit | Merekatkan seluruh perjalanan P1-P13 |
| 2 | Aktivitas Pemantik: "Dari Data ke Keputusan - Berapa Jauh?" | 10 menit | Membangun motivasi integrasi |
| 3 | Materi 1: Arsitektur Data Modern - Peta Lengkap | 10 menit | Big picture ekosistem; landscape map saja |
| 4 | Materi 2: Dari Model Data ke Fitur ML | 20 menit | Ceramah + contoh SQL |
| 5 | Materi 3: Feature Engineering dari Star Schema | 25 menit | SQL mendalam + berbagai tipe fitur |
| 6 | Break | 10 menit | - |
| 7 | Materi 4: Feature Store & Arsitektur Modern (Overview Singkat) | 5 menit | Definisi + diagram konseptual; bukan implementasi |
| 8 | Materi 5: Studi Kasus End-to-End - Prediksi Churn Toko Batik Online | 15 menit | 3 query kunci + alur dari ERD ke fitur ML |
| 9 | Materi 6: Mengapa Model Data Buruk = ML Buruk | 10 menit | Anti-pattern + dampak nyata |
| 10 | Sesi Review Proyek Kelompok | 20 menit | Setiap kelompok 2-3 menit, feedback singkat |
| 11 | Finalisasi Proyek & Briefing Presentasi P15 | 15 menit | Panduan teknis presentasi akhir |
| Total | 150 menit | (termasuk break) |
C. MATERI PEMBELAJARAN
C.1 Pembukaan â Retrospektif Semester dan Jembatan ke Dunia Nyata
Retrospektif (10 menit): Pertemuan 14 adalah pertemuan terakhir dengan materi baru sebelum presentasi dan UAS. Ini adalah momen yang tepat untuk berhenti sejenak dan melihat keseluruhan perjalanan yang sudah ditempuh.
PERJALANAN SATU SEMESTER â DARI NIAT KE FONDASI:
P1âP2 : Pemahaman dasar â data, metadata, stakeholder, business rules
â "Apa yang perlu dimodelkan? Dari sudut pandang siapa?"
P3âP5 : ERD dan conceptual model â entitas, atribut, relasi, kardinalitas
â "Bagaimana dunia bisnis direpresentasikan sebagai model?"
P6âP7 : Normalisasi dan logical model â 1NF/2NF/3NF, transformasi ERD
â "Bagaimana model dibersihkan dari redundansi dan anomali?"
P8âP9 : Physical model â DDL MySQL, tipe data, indeks, constraint, view
â "Bagaimana model diimplementasikan ke database nyata?"
P10 : Data quality dan governance â validasi, integritas, dokumentasi
â "Bagaimana menjaga data tetap bisa dipercaya?"
P11 : Pengantar DW & analytical modelling â OLTP vs OLAP, ETL, DW
â "Mengapa database operasional tidak cukup untuk analitik?"
P12 : Star schema â grain, fact table, dimension table, measures
â "Bagaimana merancang struktur data untuk analitik?"
P13 : Snowflake & SCD â variasi schema, menangani perubahan dimensi
â "Bagaimana menjaga akurasi historis saat data berubah?"
P14 : HARI INI â Integrasi: semua lapisan menjadi satu ekosistem
â "Bagaimana semua ini bekerja bersama untuk menghasilkan
insight dan model prediktif?"
PERTANYAAN KUNCI HARI INI:
"Apa yang sesungguhnya kita bangun selama 13 pertemuan ini?
Dan untuk apa semua itu digunakan?"C.2 Aktivitas Pemantik â "Dari Data ke Keputusan: Berapa Jauh?"
Instruksi (10 menit): Mahasiswa diminta membaca skenario berikut secara berpasangan, kemudian menjawab pertanyaan yang mengikutinya.
Skenario â Dua Perusahaan, Dua Nasib:
PERUSAHAAN A â "Toko Batik Maju Jaya"
Memiliki:
â Database OLTP yang tertata rapi (ERD benar, 3NF, FK lengkap)
â Data warehouse dengan star schema yang solid (grain jelas, SCD Type 2)
â dim_pelanggan dengan 15 atribut deskriptif (segmen, kota, lama_keanggotaan, dll.)
â fakta_penjualan dengan 3 tahun data historis bersih
Pertanyaan bisnis yang bisa dijawab:
â "Pelanggan mana yang berisiko berhenti berbelanja bulan depan?"
â "Produk kategori apa yang paling sering dibeli bersamaan?"
â "Apakah kampanye diskon Hari Batik Oktober 2023 menguntungkan?"
â "Di kota mana pertumbuhan pelanggan baru paling cepat?"
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
PERUSAHAAN B â "Toko Batik Lestari"
Memiliki:
â Database yang "ada tapi tidak terstruktur": tabel tanpa PK,
nama kolom tidak konsisten (cust_id, ID_pelanggan, customer),
tanggal disimpan sebagai VARCHAR, nilai NULL di mana-mana
â Tidak ada data warehouse â analisis dilakukan langsung ke OLTP
â "Dimensi pelanggan": hanya id_pelanggan dan nama
Pertanyaan bisnis yang ingin dijawab:
â "Pelanggan mana yang berisiko churn?"
â Tidak bisa: tidak ada data historis yang bisa dibandingkan
â "Revenue per kategori per bulan?"
â Tidak bisa: kategori produk tidak ada di database
â "Efektivitas kampanye diskon?"
â Tidak bisa: tanggal disimpan sebagai string, tidak bisa di-filter
â Setiap "analisis" membutuhkan pembersihan manual berhari-hari
dan hasilnya masih diragukan akurasinyaPertanyaan Pemantik:
- Apa perbedaan spesifik dalam model data yang membuat Perusahaan A jauh lebih unggul?
- Keputusan desain mana dari P1âP13 yang paling berdampak pada kemampuan analitik Perusahaan A?
- Jika kamu adalah konsultan data di Perusahaan B, dari mana kamu akan mulai memperbaiki situasi? Mengapa?
Insight yang Dosen Ungkap: "Model data bukan sekadar dokumentasi teknis. Ia adalah infrastruktur yang menentukan seberapa jauh perusahaan bisa 'melihat ke depan' menggunakan data. Setiap keputusan desain yang kalian buat selama 13 pertemuan â mulai dari memilih atribut ERD, menentukan grain, hingga memilih SCD Type â memiliki implikasi langsung terhadap pertanyaan bisnis apa yang bisa dan tidak bisa dijawab. Hari ini kita akan melihat rantai lengkap itu."
C.3 Materi 1: Arsitektur Data Modern â Peta Lengkap Ekosistem
C.3.1 Dari Silo Data ke Ekosistem Terintegrasi
ARSITEKTUR DATA MODERN â GAMBARAN MENYELURUH:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â SUMBER DATA (Sources) â
â ââââââââââââââââ ââââââââââââââââ ââââââââââââââââ â
â â Sistem OLTP â â Aplikasi Web â â API Eksternalâ â
â â (Database) â â & Mobile â â (sosmed, dll)â â
â â â P8âP9 â â â â â â
â ââââââââŦââââââââ ââââââââŦââââââââ ââââââââŦââââââââ â
âââââââââââŧââââââââââââââââââŧââââââââââââââââââŧâââââââââââââââââââââ
â â â
âââââââââââââââââââŧââââââââââââââââââ
â
âââââââââŧâââââââââââ
â ETL / ELT â
â Pipeline âââââ P11 (ETL)
â (Extract, â
â Transform, Load)â
âââââââââŦâââââââââââ
â
âââââââââââââââââââŧâââââââââââââââââââââââââââ
â DATA WAREHOUSE / DATA LAKE â
â â
â âââââââââââââââââââââââ â
â â Star Schema âââââ P11âP13 â
â â (Fact + Dim) â â
â â SCD Type 1/2/3 â â
â âââââââââââââââââââââââ â
â â
ââââââââââââŦâââââââââââââââââââââŦâââââââââââââ
â â
âââââââââââââŧââââââââ âââââââââââŧâââââââââââ
â BI / Reporting â â Feature Engineeringâ
â (Tableau, â â & Feature Store â
â Power BI, dll.) â â ââââ P14 (Hari ini!)
â â âââââââââââŦâââââââââââââ
â Untuk: analyst, â â
â manajer, C-level â âââââââââââŧâââââââââââââ
âââââââââââââââââââââ â ML Models / â
â Prediction Service â
â (churn, rekomendasi, â
â forecasting) â
âââââââââââŦââââââââââââââ
â
âââââââââââŧââââââââââââââ
â Aplikasi & Keputusan â
â Bisnis â
âââââââââââââââââââââââââ
POSISI MATERI DALAM ARSITEKTUR:
P1âP2 : Memahami kebutuhan semua pengguna arsitektur ini
P3âP7 : Membangun lapisan OLTP yang bersih dan benar
P8âP9 : Mengimplementasikan OLTP ke database fisikal
P10 : Memastikan kualitas data di seluruh arsitektur
P11âP13 : Membangun lapisan Data Warehouse
P14 : Menghubungkan Warehouse ke Feature Engineering & MLC.3.2 Tiga Paradigma Arsitektur Data
PARADIGMA 1 â TRADISIONAL (sebelum 2010):
OLTP â Laporan manual (Excel) â Keputusan
Masalah:
â Analitik terbatas pada laporan periodik
â Tidak ada pembaruan real-time
â Data science tidak mungkin dilakukan di skala ini
âââââââââââââââââââââââââââââââââââââââââââââââââââ
PARADIGMA 2 â DATA WAREHOUSE ERA (2000â2015):
OLTP â ETL â Data Warehouse â BI Tools & Analyst
Kemajuan: analitik historis, laporan otomatis, self-service BI
Masalah: batch-only, sulit untuk ML real-time, mahal untuk data besar
âââââââââââââââââââââââââââââââââââââââââââââââââââ
PARADIGMA 3 â MODERN DATA STACK (2015âsekarang):
OLTP â ELT â Data Lake/Warehouse â Feature Store â ML Platform
Kemajuan:
â Data tidak hanya untuk laporan, tapi juga untuk ML
â Feature store menyimpan fitur yang sudah dipreparasi
â Real-time inference mungkin dilakukan
â Data scientist dan data engineer bekerja dari fondasi yang sama
CATATAN PENTING:
Terlepas dari paradigma mana yang digunakan, FONDASI YANG KUAT
(model data yang benar dari P1âP13) adalah prasyarat yang tidak bisa
dikompromikan. Data warehouse yang canggih di atas data yang buruk
tetap akan menghasilkan keputusan yang buruk.C.4 Materi 2: Dari Model Data ke Fitur ML â Mengapa Fondasi Itu Penting
C.4.1 Apa Itu Feature Engineering?
FEATURE ENGINEERING adalah proses mentransformasi data mentah dari
database/warehouse menjadi representasi numerik atau kategorikal yang
dapat dipahami dan digunakan oleh algoritma machine learning.
Analoginya:
Data di warehouse = bahan baku di dapur
Feature engineering = proses memasak (memotong, mencampur, memasak)
Fitur (features) = bahan yang sudah siap disajikan ke model ML
MENGAPA FEATURE ENGINEERING KRITIS:
â Model ML tidak bisa langsung membaca tabel SQL
â Model ML membutuhkan vektor numerik untuk setiap observasi
â Kualitas fitur jauh lebih menentukan kualitas model daripada
pilihan algoritma: "garbage in, garbage out"
â Data scientist menghabiskan 60â80% waktu untuk data preparation
dan feature engineering (bukan untuk memilih/tune model!)C.4.2 Tiga Sumber Fitur dari Model Data
SUMBER 1 â ATRIBUT DIMENSI (Fitur Kontekstual/Deskriptif)
â Langsung dari kolom dimensi, tanpa agregasi
â Biasanya kategorikal atau ordinal
â Sangat mudah diekstrak karena dimensi sudah denormalized (P12!)
Contoh dari dim_pelanggan:
ââââââââââââââââââââââââââââââââŦâââââââââââââââââââŦâââââââââââââââââââââââ
â Kolom di Dimensi â Nama Fitur ML â Tipe â
ââââââââââââââââââââââââââââââââŧâââââââââââââââââââŧâââââââââââââââââââââââ¤
â kelompok_usia â age_group â Kategorikal (ordinal)â
â jenis_kelamin â gender â Kategorikal (binary) â
â provinsi â province â Kategorikal â
â segmen_pelanggan â customer_segment â Kategorikal (ordinal)â
â lama_keanggotaan_thn â membership_years â Numerik (kontinu) â
â wilayah â region â Kategorikal â
ââââââââââââââââââââââââââââââââ´âââââââââââââââââââ´âââââââââââââââââââââââ
MANFAAT DIMENSI YANG WIDE (P12 best practice):
â Setiap kolom tambahan di dimensi = satu fitur potensial untuk ML
â dim_produk dengan 19 kolom â bisa menghasilkan 10+ fitur berguna
â Dimensi yang narrow (sedikit kolom) â fitur sangat terbatas
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
SUMBER 2 â AGREGASI DARI TABEL FAKTA (Fitur Perilaku)
â Dihitung dengan GROUP BY dan fungsi agregat dari fakta
â Numerik atau ordinal
â Biasanya paling informatif untuk model prediktif
Contoh dari fakta_penjualan (per pelanggan):
âââââââââââââââââââââââââââââââââââââââââŦâââââââââââââââââââŦâââââââââââ
â Formula â Nama Fitur ML â Tipe â
âââââââââââââââââââââââââââââââââââââââââŧâââââââââââââââââââŧâââââââââââ¤
â COUNT(DISTINCT id_pesanan) â total_orders â Numerik â
â SUM(revenue_bersih) â total_spent â Numerik â
â AVG(revenue_bersih / qty) â avg_unit_price â Numerik â
â MAX(kunci_waktu) â tanggal terakhir â days_since_last â Numerik â
â COUNT(DISTINCT kunci_produk) â product_variety â Numerik â
â COUNT(DISTINCT p.kategori) â category_breadth â Numerik â
â MAX(revenue_bersih) per pesanan â max_order_value â Numerik â
âââââââââââââââââââââââââââââââââââââââââ´âââââââââââââââââââ´âââââââââââ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
SUMBER 3 â FITUR TEMPORAL (Window-Based Features)
â Paling kompleks, tapi paling powerful untuk prediksi
â Memanfaatkan hierarki dim_waktu (P12) dan data historis
â "Apa yang terjadi dalam N hari/bulan terakhir?"
Contoh (per pelanggan, dihitung pada tanggal tertentu):
ââââââââââââââââââââââââââââââââââââââââââŦâââââââââââââââââââââââââââ
â Formula â Nama Fitur ML â
ââââââââââââââââââââââââââââââââââââââââââŧâââââââââââââââââââââââââââ¤
â COUNT pesanan 30 hari terakhir â orders_last_30d â
â SUM revenue 90 hari terakhir â revenue_last_90d â
â DATEDIFF(hari ini, transaksi terakhir) â recency_days â
â Frekuensi pembelian per bulan (3 bln) â purchase_frequency_3m â
â Tren: revenue bulan ini vs bulan lalu â revenue_trend_mom â
â Variasi harga produk yang dibeli â price_sensitivity_score â
ââââââââââââââââââââââââââââââââââââââââââ´âââââââââââââââââââââââââââ
MANFAAT GRAIN YANG ATOMIK (P12 best practice):
â Grain "per item per pesanan" memungkinkan semua agregasi di atas
â Grain "per pesanan" tidak bisa menghasilkan fitur per kategori
â Grain "per bulan" sudah kehilangan detail untuk analisis recencyC.5 Materi 3: Feature Engineering dari Star Schema â Implementasi SQL
C.5.1 Membangun Dataset ML dari Star Schema
-- ============================================================
-- FEATURE ENGINEERING â Toko Batik Online DW
-- Tujuan: Membangun dataset untuk prediksi CHURN pelanggan
-- Definisi churn: pelanggan yang tidak bertransaksi dalam
-- 90 hari terakhir setelah pernah aktif
-- Tanggal referensi: '2024-06-30' (titik evaluasi)
-- ============================================================
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-- QUERY 1: Fitur Dasar dari Dimensi (Level 1 â Paling Mudah)
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-- Ambil atribut dimensi untuk semua pelanggan aktif
-- Tidak ada agregasi, JOIN langsung ke dimensi terkini
SELECT
pel.id_pelanggan_src AS customer_id,
-- Fitur dari dimensi pelanggan (langsung, tanpa kalkulasi)
pel.jenis_kelamin AS gender,
pel.kelompok_usia AS age_group,
pel.provinsi AS province,
pel.wilayah AS region,
pel.segmen_pelanggan AS customer_segment,
-- Fitur turunan dari dimensi (sudah di-derive saat ETL P11)
pel.lama_keanggotaan_thn AS membership_years,
pel.tahun_daftar AS registration_year,
-- Label target: apakah pelanggan ini churn? (1=churn, 0=aktif)
-- Didefinisikan terpisah, diisi setelah kita tahu perilaku 90 hari ke depan
NULL AS label_is_churn
FROM dim_pelanggan pel
WHERE pel.is_current = 1;
-- Hasilnya: satu baris per pelanggan, berisi fitur kategorikal dasar
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-- QUERY 2: Fitur RFM â Recency, Frequency, Monetary
-- (Tiga dimensi paling penting untuk prediksi churn)
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
SELECT
pel.id_pelanggan_src AS customer_id,
-- === RECENCY ===
-- Berapa hari sejak transaksi terakhir? (semakin besar = semakin 'dingin')
DATEDIFF(
'2024-06-30',
MAX(w.tanggal_penuh)
) AS recency_days,
-- Bulan terakhir transaksi (konteks temporal)
MAX(w.tahun) * 100 + MAX(w.bulan) AS last_transaction_ym,
-- === FREQUENCY ===
-- Total pesanan unik sepanjang waktu
COUNT(DISTINCT f.id_pesanan) AS total_orders_alltime,
-- Pesanan dalam 90 hari terakhir (behavioral recency)
COUNT(DISTINCT CASE
WHEN DATEDIFF('2024-06-30', w.tanggal_penuh) <= 90
THEN f.id_pesanan
END) AS orders_last_90d,
-- Pesanan dalam 180 hari terakhir
COUNT(DISTINCT CASE
WHEN DATEDIFF('2024-06-30', w.tanggal_penuh) <= 180
THEN f.id_pesanan
END) AS orders_last_180d,
-- Rata-rata pesanan per bulan (frekuensi reguler)
ROUND(
COUNT(DISTINCT f.id_pesanan) /
GREATEST(
DATEDIFF('2024-06-30', MIN(w.tanggal_penuh)) / 30.0,
1
),
2) AS avg_orders_per_month,
-- === MONETARY ===
-- Total belanja sepanjang waktu
SUM(f.revenue_bersih) AS total_revenue_alltime,
-- Belanja dalam 90 hari terakhir
SUM(CASE
WHEN DATEDIFF('2024-06-30', w.tanggal_penuh) <= 90
THEN f.revenue_bersih ELSE 0
END) AS revenue_last_90d,
-- Nilai rata-rata per pesanan
ROUND(
SUM(f.revenue_bersih) /
NULLIF(COUNT(DISTINCT f.id_pesanan), 0),
0) AS avg_order_value,
-- Nilai pesanan tertinggi (indikator ceiling pengeluaran)
MAX(sub_order.total_per_pesanan) AS max_single_order_value
FROM dim_pelanggan pel
-- Subquery untuk total per pesanan (karena grain fakta = per item)
JOIN (
SELECT id_pesanan,
kunci_pelanggan,
SUM(revenue_bersih) AS total_per_pesanan
FROM fakta_penjualan
GROUP BY id_pesanan, kunci_pelanggan
) sub_order ON pel.kunci_pelanggan = sub_order.kunci_pelanggan
JOIN fakta_penjualan f ON pel.kunci_pelanggan = f.kunci_pelanggan
JOIN dim_waktu w ON f.kunci_waktu = w.kunci_waktu
WHERE pel.is_current = 1
GROUP BY pel.id_pelanggan_src, pel.kunci_pelanggan;
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-- QUERY 3: Fitur Preferensi Produk
-- (Apa yang disukai pelanggan? Seberapa loyal terhadap kategori?)
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
SELECT
pel.id_pelanggan_src AS customer_id,
-- Keragaman produk yang pernah dibeli
COUNT(DISTINCT f.kunci_produk) AS unique_products_bought,
-- Keragaman kategori yang pernah dibeli
COUNT(DISTINCT p.kategori) AS unique_categories_bought,
-- Kategori favorit (paling sering dibeli secara volume)
-- Menggunakan subquery karena MySQL tidak punya FIRST() native
(
SELECT p2.kategori
FROM fakta_penjualan f2
JOIN dim_produk p2 ON f2.kunci_produk = p2.kunci_produk
WHERE f2.kunci_pelanggan = pel.kunci_pelanggan
AND p2.is_current = 1
GROUP BY p2.kategori
ORDER BY SUM(f2.qty) DESC
LIMIT 1
) AS favorite_category,
-- Apakah pernah membeli produk premium? (fitur binary)
MAX(CASE WHEN p.rentang_harga = 'Premium' THEN 1 ELSE 0 END)
AS has_bought_premium,
-- Rasio pembelian via online vs total (preferensi channel)
ROUND(
SUM(CASE WHEN k.is_online = 1 THEN f.revenue_bersih ELSE 0 END) /
NULLIF(SUM(f.revenue_bersih), 0),
2) AS online_purchase_ratio,
-- Rata-rata kuantitas per item (pembeli eceran vs grosir?)
ROUND(AVG(f.qty), 2) AS avg_qty_per_item
FROM dim_pelanggan pel
JOIN fakta_penjualan f ON pel.kunci_pelanggan = f.kunci_pelanggan
JOIN dim_produk p ON f.kunci_produk = p.kunci_produk
AND p.is_current = 1
JOIN dim_kanal k ON f.kunci_kanal = k.kunci_kanal
WHERE pel.is_current = 1
GROUP BY pel.id_pelanggan_src, pel.kunci_pelanggan;
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-- QUERY 4: Fitur Temporal Lanjutan â Tren dan Pola Musiman
-- (Memanfaatkan dim_waktu yang kaya atribut dari P12)
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
SELECT
pel.id_pelanggan_src AS customer_id,
-- Apakah pelanggan lebih sering belanja di weekend?
ROUND(
SUM(CASE WHEN w.is_weekend = 1 THEN f.revenue_bersih ELSE 0 END) /
NULLIF(SUM(f.revenue_bersih), 0),
2) AS weekend_purchase_ratio,
-- Apakah aktif di kuartal terakhir? (Q2 2024)
MAX(CASE
WHEN w.tahun = 2024 AND w.kuartal = 2
THEN 1 ELSE 0
END) AS active_last_quarter,
-- Konsistensi: berapa banyak bulan berbeda yang pernah ada transaksi?
COUNT(DISTINCT CONCAT(w.tahun, '-', w.bulan))
AS distinct_months_active,
-- Tren revenue: bandingkan 90 hari terakhir vs 90 hari sebelumnya
-- Positif = bertumbuh, Negatif = menurun (early churn signal!)
ROUND(
(
SUM(CASE WHEN DATEDIFF('2024-06-30', w.tanggal_penuh) <= 90
THEN f.revenue_bersih ELSE 0 END)
-
SUM(CASE WHEN DATEDIFF('2024-06-30', w.tanggal_penuh) BETWEEN 91 AND 180
THEN f.revenue_bersih ELSE 0 END)
) /
NULLIF(
SUM(CASE WHEN DATEDIFF('2024-06-30', w.tanggal_penuh) BETWEEN 91 AND 180
THEN f.revenue_bersih ELSE 0 END),
0) * 100,
2) AS revenue_trend_pct_qoq,
-- Apakah pernah membeli di hari libur nasional?
MAX(CASE WHEN w.is_hari_libur_nas = 1 THEN 1 ELSE 0 END)
AS bought_on_holiday
FROM dim_pelanggan pel
JOIN fakta_penjualan f ON pel.kunci_pelanggan = f.kunci_pelanggan
JOIN dim_waktu w ON f.kunci_waktu = w.kunci_waktu
WHERE pel.is_current = 1
GROUP BY pel.id_pelanggan_src, pel.kunci_pelanggan;
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-- QUERY 5: Menggabungkan Semua Fitur â Dataset ML Final
-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-- Dalam praktik nyata, query ini menggunakan CTE atau materialized view
-- di data warehouse untuk menghindari rekomputasi berulang
WITH base AS (
SELECT pel.id_pelanggan_src AS customer_id,
pel.kunci_pelanggan,
pel.jenis_kelamin, pel.kelompok_usia,
pel.provinsi, pel.wilayah,
pel.segmen_pelanggan, pel.lama_keanggotaan_thn
FROM dim_pelanggan pel
WHERE pel.is_current = 1
),
rfm AS (
SELECT
pel.id_pelanggan_src AS customer_id,
DATEDIFF('2024-06-30', MAX(w.tanggal_penuh)) AS recency_days,
COUNT(DISTINCT f.id_pesanan) AS total_orders,
ROUND(SUM(f.revenue_bersih) /
NULLIF(COUNT(DISTINCT f.id_pesanan), 0), 0) AS avg_order_value,
SUM(f.revenue_bersih) AS total_revenue
FROM dim_pelanggan pel
JOIN fakta_penjualan f ON pel.kunci_pelanggan = f.kunci_pelanggan
JOIN dim_waktu w ON f.kunci_waktu = w.kunci_waktu
WHERE pel.is_current = 1
GROUP BY pel.id_pelanggan_src
),
product_pref AS (
SELECT
pel.id_pelanggan_src AS customer_id,
COUNT(DISTINCT p.kategori) AS unique_categories,
MAX(CASE WHEN p.rentang_harga = 'Premium' THEN 1 ELSE 0 END) AS has_premium
FROM dim_pelanggan pel
JOIN fakta_penjualan f ON pel.kunci_pelanggan = f.kunci_pelanggan
JOIN dim_produk p ON f.kunci_produk = p.kunci_produk AND p.is_current = 1
WHERE pel.is_current = 1
GROUP BY pel.id_pelanggan_src
)
-- Dataset ML final: satu baris per pelanggan, semua fitur tergabung
SELECT
b.customer_id,
-- Fitur dimensi
b.jenis_kelamin,
b.kelompok_usia,
b.provinsi,
b.wilayah,
b.segmen_pelanggan,
b.lama_keanggotaan_thn,
-- Fitur RFM
r.recency_days,
r.total_orders,
r.avg_order_value,
r.total_revenue,
-- Fitur preferensi
pp.unique_categories,
pp.has_premium,
-- Label target (diisi terpisah berdasarkan definisi churn bisnis)
CASE WHEN r.recency_days > 90 THEN 1 ELSE 0 END AS label_is_churn
FROM base b
JOIN rfm r ON b.customer_id = r.customer_id
JOIN product_pref pp ON b.customer_id = pp.customer_id;
-- Dataset ini kemudian diekspor ke Python/R untuk:
-- 1. Encoding (Label Encoding / One-Hot Encoding untuk kategorikal)
-- 2. Scaling/Normalization (StandardScaler, MinMaxScaler)
-- 3. Train-test split
-- 4. Model training (Logistic Regression, Random Forest, XGBoost, dll.)
-- 5. Evaluation (AUC-ROC, precision, recall, F1)C.6 Materi 4: Feature Store â Jembatan antara Warehouse dan Model
C.6.1 Masalah Tanpa Feature Store
MASALAH YANG MUNCUL TANPA FEATURE STORE:
Skenario: Perusahaan memiliki 5 tim data science yang bekerja
pada 5 proyek ML berbeda
Tim A (Churn Prediction):
Mendefinisikan avg_order_value = SUM(revenue) / COUNT(orders)
dalam 90 hari terakhir
Tim B (Recommendation System):
Mendefinisikan avg_order_value = AVG(revenue) per transaksi
dalam 180 hari terakhir
Tim C (Credit Scoring):
Mendefinisikan avg_order_value = total_revenue / bulan_aktif
MASALAH:
â Tiga definisi berbeda untuk fitur yang "sama" â hasil model tidak
bisa dibandingkan, tidak konsisten secara bisnis
â Setiap tim menulis ulang query SQL yang serupa â duplikasi kerja
â Pipeline komputasi fitur tidak dapat di-reuse â boros resource
â Ketika definisi bisnis berubah â harus update di 5 tempat sekaligus
â Tidak ada jaminan bahwa fitur yang dipakai saat training = saat serving
(training-serving skew â model yang bagus di lab, buruk di produksi)C.6.2 Apa Itu Feature Store?
FEATURE STORE adalah sistem penyimpanan dan manajemen fitur terpusat
yang menjembatani data warehouse/pipeline dengan model ML.
KOMPONEN UTAMA FEATURE STORE:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â FEATURE STORE â
â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â Feature Registry (Catalog) â â
â â â Inventaris semua fitur yang tersedia â â
â â â Definisi resmi: nama, formula, grain, freshness â â
â â â Siapa yang membuat, kapan dibuat, untuk apa â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â
â ââââââââââââââââââââââââ ââââââââââââââââââââââââââââ â
â â Offline Store â â Online Store â â
â â (untuk training) â â (untuk inference) â â
â â â Data Warehouse â â â Low-latency DB â â
â â â Historical featuresâ â â Real-time features â â
â â â Batch computation â â â Redis, DynamoDB, dll. â â
â ââââââââââââââââââââââââ ââââââââââââââââââââââââââââ â
â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â Feature Pipeline â â
â â â ETL/ELT job yang menghitung fitur secara regular â â
â â â Versioning: setiap fitur punya versi â â
â â â Monitoring: deteksi data drift pada distribusi â â
â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
MANFAAT FEATURE STORE:
â Satu definisi per fitur â konsistensi di seluruh tim
â Re-use fitur yang sudah ada â hemat waktu dan resource
â Tidak ada training-serving skew â model lebih reliable di produksi
â Mudah eksperimen: ganti kombinasi fitur tanpa tulis ulang pipeline
TOOLS POPULER:
â Feast (open source, self-hosted)
â Hopsworks (open source, managed)
â Tecton (enterprise)
â Vertex AI Feature Store (Google Cloud)
â SageMaker Feature Store (AWS)
â Databricks Feature Store
RELEVANSI UNTUK KITA:
Membangun feature store yang proper membutuhkan fondasi data warehouse
yang solid (P11âP13). Tanpa grain yang tepat, SCD yang benar, dan
dimensi yang kaya, feature store tidak bisa menghasilkan fitur yang
konsisten dan akurat.C.7 Materi 5: Studi Kasus End-to-End â Prediksi Churn Toko Batik Online
Studi kasus ini menelusuri perjalanan lengkap dari keputusan desain data di awal semester hingga model ML yang bisa dijalankan, menunjukkan bagaimana setiap lapisan yang dibangun saling terhubung.
C.7.1 Problem Statement dan Data Pipeline
PROBLEM BISNIS:
Toko Batik Online kehilangan 15% pelanggan aktifnya setiap kuartal.
Manajer pemasaran ingin tahu: "Pelanggan mana yang paling berisiko
berhenti berbelanja dalam 90 hari ke depan?" sehingga bisa diberikan
intervensi promosi tepat sasaran sebelum mereka benar-benar pergi.
DEFINISI CHURN (disepakati bersama stakeholder):
Pelanggan dianggap CHURN jika tidak melakukan transaksi apapun
dalam 90 hari berturut-turut, setelah sebelumnya pernah aktif.
ARSITEKTUR PIPELINE LENGKAP:
LAPISAN 1 â OLTP (P3âP9):
Database operasional MySQL:
pesanan, detail_pesanan, pelanggan, produk, pembayaran
â Setiap hari ada ratusan INSERT/UPDATE transaksi baru
LAPISAN 2 â ETL (P11):
Setiap malam pk. 02.00 WIB, ETL job berjalan:
Extract â Transform (cleansing, standardisasi, derivasi)
â Load ke Data Warehouse
LAPISAN 3 â DATA WAREHOUSE (P12âP13):
Star schema: fakta_penjualan + dim_pelanggan (SCD Type 2)
+ dim_produk + dim_waktu + dim_lokasi + dim_kanal
â 3 tahun data historis tersimpan dengan integritas penuh
LAPISAN 4 â FEATURE ENGINEERING (P14):
Setiap minggu, query feature engineering dijalankan:
â Menghasilkan dataset dengan 20+ fitur per pelanggan
â Disimpan di feature store (tabel ml_features_pelanggan)
LAPISAN 5 â ML MODEL:
Setiap bulan, model diretrain dengan data terbaru:
â Algoritma: XGBoost (gradient boosting)
â Input: 20+ fitur dari feature store
â Output: probabilitas churn (0.0â1.0) per pelanggan
â Threshold: probabilitas > 0.65 â flagged sebagai "berisiko churn"
LAPISAN 6 â ACTION (Deployment):
Hasil prediksi dikembalikan ke database warehouse:
â Tabel: ml_predictions_churn (pelanggan, prob_churn, tgl_prediksi)
â Marketing automation membaca tabel ini setiap pagi
â Pelanggan dengan prob_churn > 0.65 mendapat email/WhatsApp
penawaran voucher khusus "Win-Back Campaign"C.7.2 Jejak Keputusan Desain yang Berdampak
JEJAK KEPUTUSAN â Bagaimana Setiap Pilihan Desain Mempengaruhi ML:
KEPUTUSAN 1 (P3): Entitas PELANGGAN memiliki atribut kota, kelompok_usia
DAMPAK KE ML: Fitur province, region, age_group tersedia langsung
tanpa komputasi tambahan
KEPUTUSAN 2 (P7): 3NF â tabel detail_pesanan terpisah dari pesanan
DAMPAK KE ML: Memungkinkan analisis per produk per pelanggan
(unique_categories_bought, has_bought_premium)
KEPUTUSAN 3 (P8): Indeks pada (id_pelanggan, tgl_pesanan) di tabel pesanan
DAMPAK KE ML: Feature engineering query 5â10x lebih cepat
karena filter tanggal memanfaatkan indeks
KEPUTUSAN 4 (P10): Validasi: kota tidak boleh NULL, tgl_pesanan tidak boleh
di masa depan
DAMPAK KE ML: Tidak ada nilai kosong pada fitur kota (menghindari
imputation yang tidak akurat)
KEPUTUSAN 5 (P12): Grain fakta = per item per pesanan (bukan per pesanan)
DAMPAK KE ML: Fitur product_variety dan unique_categories_bought
bisa dihitung dengan benar dari satu tabel fakta
KEPUTUSAN 6 (P12): dim_waktu pre-populated dengan is_weekend, is_hari_libur_nas
DAMPAK KE ML: Fitur weekend_purchase_ratio, bought_on_holiday
bisa dihitung dengan satu JOIN sederhana
KEPUTUSAN 7 (P13): SCD Type 2 pada dim_pelanggan.kota dan .segmen
DAMPAK KE ML: Fitur historis "kota saat transaksi terjadi" akurat
(bukan kota terkini). Jika tidak ada SCD, semua
transaksi Siti Rahayu di Semarang akan dihitung
sebagai "dari Jakarta" setelah ia pindah â bias!
KEPUTUSAN 8 (P13): Kolom segmen_pelanggan menggunakan SCD Type 2
DAMPAK KE ML: Bisa mengidentifikasi "kapan pelanggan naik segmen"
dan menggunakannya sebagai fitur temporal (berapa
lama sejak naik segmen ke Gold?)C.7.3 Contoh Output Model dan Aksi Bisnis
CONTOH OUTPUT PREDIKSI CHURN (snippet tabel ml_predictions_churn):
ââââââââââââââââââŦâââââââââââââââââââââŦââââââââââââââââŦâââââââââââââââ
â id_pelanggan â nama_pelanggan â prob_churn â rekomendasi â
ââââââââââââââââââŧâââââââââââââââââââââŧââââââââââââââââŧâââââââââââââââ¤
â 501 â Siti Rahayu â 0.82 â Win-Back â
â 1042 â Ahmad Fauzi â 0.74 â Win-Back â
â 2387 â Dewi Maharani â 0.61 â Early Warningâ
â 3001 â Budi Santoso â 0.23 â Aktif Normal â
â 4512 â Ratna Dewi â 0.09 â Loyal â
ââââââââââââââââââ´âââââââââââââââââââââ´ââââââââââââââââ´âââââââââââââââ
AKSI OTOMATIS:
prob_churn > 0.65 â Email "Kami Kangen Kamu" + Voucher 20%
prob_churn 0.40â0.65 â Push notification produk baru relevan
prob_churn < 0.40 â Tidak ada intervensi (efisiensi budget)
ESTIMASI DAMPAK BISNIS:
â 500 pelanggan di-flag sebagai berisiko churn per bulan
â Win-Back campaign berhasil mempertahankan 35% dari mereka
â Rata-rata CLV (Customer Lifetime Value) pelanggan = Rp 2,4 juta
â Revenue yang diselamatkan: 500 Ã 35% Ã Rp 2,4 juta = Rp 420 juta/bulan
â Biaya voucher: 500 Ã 35% Ã Rp 50.000 = Rp 8,75 juta/bulan
â ROI: (420 â 8.75) / 8.75 = 47x return on investment!
â Semua ini tidak mungkin terwujud tanpa fondasi model data yang solid.C.8 Materi 6: Mengapa Model Data Buruk Sama dengan ML Buruk
C.8.1 Rantai Dampak dari Masalah Model Data ke Kegagalan ML
PRINSIP FUNDAMENTAL:
"Kualitas model ML dibatasi oleh kualitas data yang digunakan
untuk melatihnya. Dan kualitas data dibatasi oleh kualitas
model data yang mendasarinya."
RANTAI DAMPAK â Anti-Pattern Desain vs Konsekuensi ML:
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ANTI-PATTERN 1: Grain terlalu tinggi di tabel fakta
Desain: "satu baris per pesanan" (bukan per item)
Konsekuensi ML:
â Tidak bisa hitung "produk favorit per pelanggan"
â Tidak bisa buat fitur "keragaman kategori yang dibeli"
â Rekomendasi produk tidak mungkin dibangun dengan benar
â Solusi parsial: kembali ke OLTP setiap kali butuh detail item
â query lambat, inkonsistensi dengan data warehouse
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ANTI-PATTERN 2: Dimensi terlalu sempit (sedikit atribut)
Desain: dim_pelanggan hanya punya id dan nama
Konsekuensi ML:
â Tidak ada fitur segmentasi (usia, kota, segmen)
â Model tidak bisa mempelajari pola perilaku per demografi
â Akurasi prediksi jauh lebih rendah karena informasi kontekstual hilang
â "Garbage in, garbage out" â model terpaksa memprediksi
tanpa informasi yang sebenarnya penting
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ANTI-PATTERN 3: Tidak menggunakan SCD Type 2
Desain: SCD Type 1 saja (timpa kota/segmen saat berubah)
Konsekuensi ML:
â Fitur "kota saat transaksi" tidak bisa dibuat secara akurat
â Semua transaksi lama Siti (di Semarang) kini tercatat sebagai
"dari Jakarta" â data pelatiha n bias
â Model belajar pola yang salah: "pelanggan Jakarta berbelanja
seperti orang Semarang" â prediksi menjadi misleading
â Tidak bisa bangun fitur "sudah berapa lama di kota ini" atau
"apakah pernah pindah kota" â kehilangan signal penting
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ANTI-PATTERN 4: Data quality yang buruk (P10 diabaikan)
Desain: Tidak ada constraint, banyak NULL, tipe data salah
Konsekuensi ML:
â NULL di fitur kunci â harus dilakukan imputation yang tidak akurat
â Tanggal disimpan sebagai VARCHAR â tidak bisa hitung recency_days
â Nilai outlier tidak terkontrol â model overfit ke kasus ekstrem
â Duplikasi data â pelanggan yang sama dihitung dua kali di training set
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ANTI-PATTERN 5: Tidak ada dim_waktu yang kaya
Desain: Hanya menyimpan tanggal sebagai kolom DATE di fakta
Konsekuensi ML:
â Fitur is_weekend, is_hari_libur, kuartal harus dihitung ulang
setiap kali dengan fungsi SQL â lambat untuk jutaan baris
â Fitur musiman tidak bisa dibuat dengan mudah (mis. "bulan Ramadan")
â Tidak bisa dengan cepat filter "hanya transaksi di hari kerja"
untuk menghilangkan outlier hari libur dari training dataC.8.2 Pesan untuk Profesi Data Scientist
KUTIPAN YANG PERLU DIINGAT:
"Data scientists typically spend 60â80% of their time on data
preparation and cleaning. A well-designed data model can
reduce this to 20â30% â giving more time for actual modeling."
â Parafrase dari praktisi industri data science
IMPLIKASI BAGI KALIAN SEBAGAI MAHASISWA SAINS DATA:
â Jika kelak bekerja sebagai Data Scientist:
Kamu akan sangat bergantung pada data engineer dan DBA
yang membangun fondasi data dengan benar.
Menghargai pekerjaan mereka = menghargai pekerjaanmu sendiri.
â Jika kelak bekerja sebagai Data Engineer atau DBA:
Setiap keputusan desain yang kamu buat â grain, dimensi,
SCD, constraint â akan menentukan apa yang bisa dan tidak
bisa dilakukan oleh tim data science.
Tanggung jawab ini besar dan nyata.
â Jika kelak bekerja sebagai Analytics Engineer:
Kamu akan menjembatani keduanya â membangun feature pipeline
dari warehouse ke ML, dan kamu butuh memahami KEDUANYA
dengan dalam.
PESAN INTI:
Data Modelling bukan mata kuliah yang "hanya tentang SQL dan ERD."
Ia adalah fondasi dari seluruh ekosistem data yang akan menopang
keputusan bisnis dan model AI/ML generasi berikutnya.
Setiap baris ERD yang kalian buat, setiap kolom dimensi yang
kalian tambahkan, setiap SCD Type yang kalian pilih â
semua itu adalah investasi yang akan berbunga berlipat ganda
di hilir pipeline analitik.D. SESI REVIEW PROYEK KELOMPOK
D.1 Tujuan dan Format Review
Sesi ini adalah pengecekan terakhir sebelum presentasi akhir. Setiap kelompok mendapat kesempatan singkat (3â4 menit) untuk mempresentasikan status proyek, menerima feedback dari dosen dan rekan, lalu menggunakan sisa pertemuan untuk memfinalisasi.
Struktur Sesi (25 menit total):
SETUP (2 menit):
Setiap kelompok menyiapkan satu slide ringkasan status proyek
(bisa di laptop, tidak perlu presentasi formal)
ROTASI SINGKAT PER KELOMPOK (3â4 menit/kelompok):
Menit 1: Kelompok sebutkan domain, grain, dan 3 dimensi utama
Menit 2: Tunjukkan satu bagian yang paling bangga dirancang
Menit 3: Sebutkan satu bagian yang masih ragu atau butuh feedback
Menit 4: Dosen dan satu rekan dari kelompok lain beri komentar singkatChecklist yang Harus Diverifikasi Tiap Kelompok:
KELENGKAPAN PROYEK â CHECKLIST FINAL:
TAHAP 1 â ANALISIS KONTEKS BISNIS:
⥠Domain bisnis dipilih dan dideskripsikan dengan jelas
⥠Stakeholder teridentifikasi (minimal 3 tipe pengguna data)
⥠Minimal 10 business rules terdokumentasi
TAHAP 2 â CONCEPTUAL MODEL (ERD):
⥠Semua entitas utama teridentifikasi dan terdokumentasi
⥠Relasi antar entitas dengan kardinalitas yang benar
⥠Diagram ERD bersih dan terbaca (draw.io / MySQL Workbench)
⥠Business rules tercermin dalam atribut dan constraint
TAHAP 3 â LOGICAL MODEL:
⥠ERD berhasil di-transform ke relational schema
⥠Normalisasi minimal 3NF untuk semua tabel
⥠Primary key dan foreign key lengkap
⥠Functional dependency didokumentasikan
TAHAP 4 â PHYSICAL MODEL:
⥠DDL SQL lengkap (semua tabel, constraint, indeks)
⥠Tipe data MySQL yang tepat untuk setiap kolom
⥠Minimal 10 baris data dummy per tabel utama
⥠Minimal 3 query operasional yang berjalan tanpa error
TAHAP 5 â DIMENSIONAL MODEL (STAR SCHEMA + SCD):
⥠Proses bisnis yang dimodelkan sudah jelas
⥠Grain dideklarasikan dalam satu kalimat
⥠Minimal 4 dimensi (termasuk dim_waktu)
⥠Tabel fakta dengan semua FK dan measures terklasifikasi
⥠Tabel keputusan SCD per atribut untuk minimal 2 dimensi
⥠Implementasi SQL SCD Type 2 untuk minimal 1 dimensi
⥠Minimal 3 query analitik yang berjalan dari star schema
BONUS (nilai tambah):
⥠Feature engineering queries yang mengekstrak fitur ML
⥠Diagram arsitektur yang menunjukkan hubungan semua lapisan
⥠Data dictionary lengkap untuk semua tabelD.2 Pertanyaan Panduan Refleksi Proyek
Selama sesi review, dosen mungkin mengajukan pertanyaan berikut ke setiap kelompok:
PERTANYAAN TEKNIS:
1. "Mengapa kamu memilih grain ini, bukan yang lebih tinggi atau lebih rendah?"
2. "Atribut apa di dimensi [X] yang paling berguna untuk feature engineering ML?"
3. "Jika ada atribut [Y] yang berubah di sistem nyata, SCD Type apa yang kamu pilih
dan mengapa?"
4. "Query analitik apa yang paling representatif dari kemampuan star schema-mu?"
PERTANYAAN REFLEKTIF:
5. "Apakah ada keputusan desain di tahap awal (ERD/normalisasi) yang ternyata
mempengaruhi desain dimensi di tahap akhir?"
6. "Jika mengulang dari awal dengan pengetahuan yang sekarang, apa satu hal yang
akan kamu ubah dari desain proyek ini?"
7. "Dimensi atau fitur apa yang kamu ingin tambahkan jika punya lebih banyak waktu?"E. FINALISASI PROYEK DAN BRIEFING PRESENTASI P15
E.1 Struktur Presentasi Proyek Akhir (P15)
Briefing ini adalah panduan paling konkret untuk mempersiapkan presentasi Pertemuan 15.
Format Presentasi:
- Durasi per kelompok: 20 menit (15 menit presentasi + 5 menit tanya-jawab)
- Media: Slide presentasi (PowerPoint / Google Slides), diagram, dan demonstrasi SQL
- Jumlah slide: disarankan 12â18 slide (tidak lebih, tidak lebih sedikit)
Struktur Slide yang Disarankan:
SLIDE 1 â Cover:
Nama kelompok, domain bisnis, anggota, tanggal
SLIDE 2 â Deskripsi Domain Bisnis (1 slide):
Apa bisnisnya? Siapa penggunanya? Apa masalah yang diselesaikan?
Sertakan: diagram sederhana alur bisnis utama
SLIDE 3 â Stakeholder & Business Requirements (1 slide):
Siapa stakeholder? Apa kebutuhan data mereka?
Sertakan: tabel stakeholder matrix ringkas
SLIDE 4â5 â Conceptual Model â ERD (1â2 slide):
Tampilkan diagram ERD yang bersih
Highlight: 3 keputusan desain paling penting beserta alasannya
Contoh: "Kami memisahkan entitas PENULIS dari BUKU karena..."
SLIDE 6â7 â Logical Model & Normalisasi (1â2 slide):
Tampilkan skema relasional hasil transformasi ERD
Bukti normalisasi: tunjukkan contoh satu tabel yang dinormalisasi
Sertakan: diagram relasi antar tabel kunci
SLIDE 8 â Physical Model Highlights (1 slide):
DDL snippet yang paling representatif (1â2 tabel)
Keputusan tipe data dan constraint yang menarik
Screenshot query berjalan di MySQL (jika ada)
SLIDE 9â10 â Dimensional Model â Star Schema (1â2 slide):
Diagram star schema yang jelas
Deklarasi grain dalam satu kalimat yang menonjol
Tabel: daftar dimensi + jumlah atribut + tipe measures
SLIDE 11 â SCD Strategy (1 slide):
Tabel keputusan SCD untuk dimensi utama
Contoh SQL SCD Type 2 (jika menggunakan Type 2)
Pertanyaan historis yang kini bisa dijawab
SLIDE 12 â Query Analitik Showcase (1 slide):
Tunjukkan 1â2 query analitik yang paling impressive
Jelaskan: "Query ini menjawab pertanyaan bisnis apa?"
SLIDE 13 â Koneksi ke Sains Data (1 slide):
Fitur ML apa yang bisa diekstrak dari warehouse proyek ini?
Pertanyaan prediktif bisnis apa yang bisa dijawab?
(Tidak perlu implementasi ML â cukup identifikasi)
SLIDE 14 â Refleksi & Lessons Learned (1 slide):
Apa yang paling menantang?
Keputusan desain apa yang paling berdebat dalam kelompok?
Apa yang akan diubah jika mengulang dari awal?
SLIDE 15 â Penutup & Terima Kasih
Ringkasan pencapaian proyek dalam 3 poin
Pertanyaan untuk audiensE.2 Tips Presentasi
TIPS PRESENTASI YANG EFEKTIF:
PERSIAPAN:
â Latihan presentasi minimal 2 kali sebelum hari H
(bukan baca slide, tapi presentasi beneran dengan timer)
â Pastikan semua SQL berjalan tanpa error sebelum presentasi
â Siapkan backup diagram di PDF jika tools diagram offline
â Bagi peran: siapa yang presentasi bagian mana
SAAT PRESENTASI:
â Mulai dengan "hook" â satu kalimat yang menunjukkan relevansi domain
â Jangan baca slide verbatim â beri penjelasan tambahan
â Gunakan pointer untuk menunjukkan bagian diagram yang sedang dijelaskan
â Saat menjelaskan ERD/schema: mulai dari level tinggi (entitas utama),
baru turun ke detail (atribut, FK)
â Untuk setiap keputusan desain yang dijelaskan: selalu sertakan MENGAPA
SAAT TANYA-JAWAB:
â Dengarkan pertanyaan sampai selesai sebelum menjawab
â Jika tidak tahu: "Itu pertanyaan menarik, kami belum mempertimbangkan
itu. Kemungkinan jawabannya adalah..." (jangan diam atau panik)
â Jika pertanyaan tentang keputusan desain: jelaskan trade-off
â Satu orang menjawab, anggota lain boleh menambahkan
YANG DIHINDARI:
â Slide terlalu penuh teks
â Diagram yang terlalu kecil untuk dibaca dari belakang ruangan
â Melewati komponen proyek tanpa penjelasan karena waktu habis
(lebih baik pilih yang paling penting dan jelaskan dengan baik)
â Membaca dari catatan selama presentasiF. EVALUASI DAN PENILAIAN
F.1 Kuis Penutup (10 menit, bobot partisipasi)
-
Sebutkan tiga sumber fitur yang dapat diekstrak dari data warehouse untuk keperluan machine learning. Berikan satu contoh konkret fitur dari masing-masing sumber!
-
Diberikan star schema sistem perpustakaan dengan
fakta_peminjaman,dim_anggota,dim_buku, dandim_waktuâ sebutkan minimal 5 fitur ML yang bisa diekstrak dari skema ini untuk model prediksi "apakah anggota akan meminjam buku lagi bulan depan?" -
Jelaskan dalam dua kalimat: apa itu feature store dan mengapa ia diperlukan dalam arsitektur data modern?
-
Dari sudut pandang machine learning: mengapa keputusan memilih SCD Type 2 (bukan Type 1) untuk atribut
kotadidim_pelanggansangat penting untuk keakuratan model prediksi? -
Seorang rekan berkata: "Model data tidak perlu bagus, yang penting model ML-nya canggih." Buatlah argumen yang membantah pernyataan ini dengan menggunakan contoh konkret dari materi hari ini!
F.2 Penilaian Progress Proyek (Pertemuan 14)
Format: Review dan verifikasi kelengkapan dokumen proyek di Ngaji UIN Gusdur Bobot: Masuk ke dalam nilai Proyek Kelompok (35% dari total nilai) Yang Dinilai Saat P14:
| Aspek | Bobot dalam P14 | Indikator |
|---|---|---|
| Kelengkapan semua 5 tahap | 50% | Checklist D.1 terisi minimal 80% |
| Kesiapan untuk presentasi | 30% | Slide draft sudah ada, SQL berjalan |
| Kedalaman integrasi antar lapisan | 20% | Bisa menjelaskan koneksi dari ERD hingga dimensional model |
G. PERSIAPAN PERTEMUAN 15
G.1 Yang Harus Diselesaikan Sebelum P15
DEADLINE MUTLAK (H-1 sebelum Pertemuan 15):
1. DOKUMEN PROYEK FINAL (upload ke Ngaji UIN Gusdur):
Nama file: Proyek_Final_[KelompokX]_[Domain].pdf
Harus berisi: semua 5 tahap yang lengkap dan terfinalisasi
Format: PDF, tidak lebih dari 30 halaman (excl. lampiran)
2. FILE SQL LENGKAP (upload ke Ngaji UIN Gusdur):
Nama file: DDL_DML_[KelompokX]_[Domain].sql
Harus berisi: semua DDL (OLTP + DW), data dummy, query analitik
Verified: berjalan tanpa error di MySQL 8.x
3. SLIDE PRESENTASI (upload ke Ngaji UIN Gusdur):
Nama file: Presentasi_[KelompokX]_[Domain].pptx atau .pdf
Format: 12â18 slide, sesuai struktur yang disarankan di E.1
4. LATIHAN PRESENTASI:
â Seluruh anggota kelompok berlatih minimal 1 kali penuh
â Pastikan total waktu presentasi 13â15 menit
(bukan lebih dari 15 menit â sisa untuk tanya-jawab)G.2 Urutan Presentasi P15
Urutan presentasi akan diundi atau ditentukan dosen sebelum hari presentasi. Setiap kelompok diminta bersiap sejak awal karena bisa dipanggil kapan saja. Kelompok yang sedang tidak presentasi berperan sebagai audiens aktif dan peer-reviewer.
G.3 Tentang Tanya-Jawab di P15
Tanya-jawab adalah bagian yang dinilai secara signifikan. Pertanyaan bisa datang dari dosen atau dari kelompok lain. Persiapan yang baik:
TIPE PERTANYAAN YANG SERING MUNCUL:
1. "Mengapa kamu memilih [X] dan bukan [Y]?" (pertanyaan justifikasi)
â Selalu siapkan alasan untuk setiap keputusan desain besar
2. "Bagaimana kamu menangani jika [skenario edge case]?"
â Pikirkan kasus-kasus khusus: data NULL, relasi banyak-ke-banyak,
dimensi yang berubah, dll.
3. "Apakah normalisasi di sini sudah benar? Tunjukkan functional dependency-nya!"
â Review kembali semua tabel, pastikan 3NF terpenuhi
4. "Grain apa yang kamu pilih dan apa konsekuensinya?"
â Harus bisa menjelaskan trade-off grain yang dipilih
5. "Bisakah star schema ini digunakan untuk memprediksi [X]? Fitur apa yang ada?"
â Kaitkan dengan materi P14: feature engineering dari warehouseH. REFERENSI
H.1 Referensi Utama
-
Kimball, R. & Ross, M. (2013). The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3rd Edition). Wiley.
- Chapter 17: "Developing Dimensional Models" (proses desain end-to-end)
- Chapter 18: "ETL Subsystems and Techniques" (pipeline ETL lengkap)
- Chapter 19: "Kimball Lifecycle Methodology" (metodologi proyek DW)
-
Zheng, A. & Casari, A. (2018). Feature Engineering for Machine Learning: Principles and Techniques for Data Scientists. O'Reilly Media. ISBN: 978-1491953242.
- Chapter 1: The Machine Learning Pipeline
- Chapter 2: Fancy Tricks with Simple Numbers (numeric features)
- Chapter 3: Text Data (fitur tekstual â relevan untuk atribut deskripsi)
-
Elmasri, R. & Navathe, S. B. (2015). Fundamentals of Database Systems (7th Edition). Pearson.
- Chapter 29: Data Warehousing and Data Mining (overview integrasi)
H.2 Referensi Online
-
dbt Labs. "What is the Modern Data Stack?" â https://www.getdbt.com/analytics-engineering/the-modern-data-stack/ (opens in a new tab)
-
Feast (Feature Store). Documentation & Getting Started â https://docs.feast.dev (opens in a new tab) (Tool open-source feature store paling populer â cocok untuk eksplorasi)
-
Databricks. "What is a Feature Store?" â https://www.databricks.com/glossary/feature-store (opens in a new tab)
-
Google Cloud. "ML Feature Engineering from BigQuery" â https://cloud.google.com/bigquery/docs/bigquery-dataframes-introduction (opens in a new tab) (Konsep yang sama, dengan konteks cloud DW)
-
Towards Data Science. "The Ultimate Guide to Data Lineage" â Medium/TDS (Memahami bagaimana data mengalir dari sumber ke model â relevan untuk gambaran besar)
H.3 Video Resources
- Kahan Data Solutions â "Data Warehouse vs Data Lake vs Data Lakehouse" (YouTube â gambaran arsitektur modern)
- Databricks â "Introduction to Feature Stores" (YouTube â konsep feature store yang visual)
- Krish Naik â "Feature Engineering Complete Tutorial" (YouTube â implementasi Python)
- MLOps Community â "From Data Warehouse to ML Platform" (YouTube â end-to-end architecture)
I. LAMPIRAN
Lampiran A: Peta Koneksi Seluruh Pertemuan â Feature Engineering
PETA KONEKSI: KEPUTUSAN DESAIN P1âP13 â KEMAMPUAN FEATURE ENGINEERING
PERTEMUAN 1â2 (Konsep Dasar & Kebutuhan):
Keputusan: Identifikasi stakeholder data scientist
â Menentukan fitur apa yang diprioritaskan untuk dimodelkan
PERTEMUAN 3â4 (ERD Dasar & Lanjutan):
Keputusan: Entitas PELANGGAN memiliki atribut tgl_lahir, kota, segmen
â Menghasilkan fitur: age_group, province, customer_segment
Keputusan: Relasi M:N antara PESANAN dan PRODUK di-resolve via DETAIL_PESANAN
â Memungkinkan fitur: unique_products_bought, favorite_category
PERTEMUAN 5â7 (Normalisasi & Logical Model):
Keputusan: 3NF â memisahkan KATEGORI dari PRODUK
â ETL dapat mengambil hierarki kategori untuk fitur kategorikal
Keputusan: Tabel RIWAYAT_SEGMEN untuk melacak perubahan segmen
â Memungkinkan fitur temporal: "kapan terakhir naik segmen"
PERTEMUAN 8â9 (Physical Model):
Keputusan: Indeks pada (id_pelanggan, tgl_transaksi)
â Feature engineering query berlari 5â10x lebih cepat
Keputusan: Constraint tgl_transaksi NOT NULL, > '2000-01-01'
â Tidak ada nilai aneh dalam fitur temporal
PERTEMUAN 10 (Data Quality):
Keputusan: Validasi kota tidak boleh NULL
â Tidak perlu imputation untuk fitur province/region
PERTEMUAN 11 (Pengantar DW & ETL):
Keputusan: ETL menghasilkan kolom derivatif (kelompok_usia, rentang_harga)
â Fitur kategorikal langsung tersedia tanpa komputasi tambahan
PERTEMUAN 12 (Star Schema):
Keputusan: Grain = per item per pesanan (bukan per pesanan)
â Memungkinkan fitur: product_variety, unique_categories_per_order
Keputusan: dim_waktu dengan 25+ kolom (is_weekend, is_libur, kuartal)
â Menghasilkan fitur temporal: weekend_ratio, holiday_purchase_flag
Keputusan: dim_produk wide (19 kolom) dengan rentang_harga, teknik
â Menghasilkan fitur produk: has_bought_premium, preferred_technique
PERTEMUAN 13 (SCD):
Keputusan: SCD Type 2 pada dim_pelanggan.kota
â Fitur historis "kota saat transaksi" akurat â tidak ada bias geografis
Keputusan: SCD Type 2 pada dim_pelanggan.segmen
â Memungkinkan fitur: "sudah berapa lama di segmen Gold"
â powerful signal untuk prediksi loyalitasLampiran B: Template Slide Presentasi P15 â Struktur Konten
TEMPLATE KONTEN PER SLIDE:
ââââââââââââââââââââââââââââââââ
SLIDE 2 â DESKRIPSI DOMAIN BISNIS
Judul: [Nama Domain]
Konten:
âĸ Deskripsi singkat bisnis (2â3 kalimat)
âĸ Masalah data yang diselesaikan
âĸ Pengguna utama sistem
Visual: Diagram alur bisnis sederhana (bukan ERD, tapi alur proses)
ââââââââââââââââââââââââââââââââ
SLIDE 4 â CONCEPTUAL MODEL
Judul: ERD â [Nama Domain]
Konten:
âĸ Diagram ERD (gambar besar, terbaca)
âĸ Callout: 3 keputusan desain paling penting
Catatan presenter: "Kami memilih [X] karena..."
ââââââââââââââââââââââââââââââââ
SLIDE 9 â STAR SCHEMA
Judul: Dimensional Model â Star Schema
Konten:
âĸ Diagram star schema
âĸ Teks menonjol: "Grain: [satu kalimat]"
âĸ Tabel ringkas: Dimensi | Jumlah Atribut | Atribut Kunci
Catatan presenter: "Kami memilih grain ini karena..."
ââââââââââââââââââââââââââââââââ
SLIDE 11 â SCD STRATEGY
Judul: Strategi SCD â [Nama Dimensi]
Konten:
âĸ Tabel: Atribut | SCD Type | Alasan Bisnis
âĸ Snippet SQL SCD Type 2 (jika ada)
âĸ Kotak: "Pertanyaan historis yang kini bisa dijawab"
Catatan presenter: "Kami memilih Type 2 untuk [X] karena..."
ââââââââââââââââââââââââââââââââ
SLIDE 13 â KONEKSI KE SAINS DATA
Judul: Dari Model Data ke Machine Learning
Konten:
âĸ Tabel: Fitur ML | Sumber (Dimensi/Fakta) | Tipe Data
âĸ Pertanyaan prediktif yang bisa dijawab
Catatan presenter: "Grain yang kami pilih memungkinkan fitur ini..."Lampiran C: Lembar Evaluasi Peer Review P15
LEMBAR EVALUASI PEER REVIEW â PRESENTASI P15
Nama Evaluator : _______________________
Kelompok yang Dievaluasi: _______________________
Domain: _______________________________
Tanggal: _______________________________
PENILAIAN (skala 1â5, di mana 5 = sangat baik):
1. Kejelasan konteks bisnis dan relevansi domain [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
2. Ketepatan ERD (entitas, relasi, kardinalitas) [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
3. Kualitas normalisasi (3NF, FK, PK) [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
4. Kualitas physical model (DDL, tipe data) [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
5. Ketepatan grain dan star schema [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
6. Kedalaman SCD strategy [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
7. Kemampuan menjawab pertanyaan [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
8. Kejelasan presentasi secara keseluruhan [ 1 | 2 | 3 | 4 | 5 ]
Komentar: _____________________________________________
KEKUATAN UTAMA PRESENTASI INI:
_______________________________________________________
_______________________________________________________
SARAN PERBAIKAN YANG KONSTRUKTIF:
_______________________________________________________
_______________________________________________________
PERTANYAAN YANG INGIN KAMU AJUKAN (jika ada sesi diskusi):
_______________________________________________________Lampiran D: Contoh Feature Engineering untuk Berbagai Domain Proyek
REFERENSI FITUR ML PER DOMAIN PROYEK â Panduan Slide 13:
DOMAIN PERPUSTAKAAN (fakta_peminjaman + dim_anggota + dim_buku):
Fitur dari dimensi:
kelompok_usia_anggota, jenis_kelamin, kota, tahun_daftar
Fitur agregasi:
total_buku_dipinjam (all-time), buku_dipinjam_30hari,
rata_rata_durasi_pinjam, jumlah_keterlambatan,
jumlah_genre_berbeda, genre_favorit
Fitur temporal:
hari_sejak_pinjam_terakhir, tren_peminjaman_3bulan
Target prediksi yang mungkin:
â Apakah anggota akan meminjam bulan depan? (churn anggota)
â Berapa lama buku ini akan dipinjam? (durasi prediksi)
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
DOMAIN KLINIK / PUSKESMAS (fakta_kunjungan + dim_pasien + dim_poli):
Fitur dari dimensi:
kelompok_usia_pasien, jenis_kelamin, kota, jenis_asuransi
Fitur agregasi:
total_kunjungan_setahun, kunjungan_3bulan_terakhir,
jumlah_diagnosa_unik, jumlah_poli_berbeda_dikunjungi
Fitur temporal:
hari_sejak_kunjungan_terakhir, frekuensi_kunjungan_bulanan
Target prediksi yang mungkin:
â Apakah pasien akan kontrol ulang dalam 30 hari?
â Diagnosa apa yang paling mungkin untuk pasien ini?
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
DOMAIN TOKO / UMKM (fakta_penjualan + dim_pelanggan + dim_produk):
Fitur dari dimensi:
segmen_pelanggan, kota, kelompok_usia, lama_keanggotaan
Fitur agregasi:
total_transaksi, avg_nilai_transaksi, produk_favorit,
keragaman_kategori, rasio_pembelian_online
Fitur temporal:
recency_days, orders_last_90d, revenue_trend_qoq
Target prediksi yang mungkin:
â Churn prediction (tidak akan beli lagi)
â Next best product recommendation
â LTV (lifetime value) prediction
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
DOMAIN KAMPUS / AKADEMIK (fakta_krs + dim_mahasiswa + dim_matakuliah):
Fitur dari dimensi:
program_studi, angkatan, asal_daerah, jalur_masuk
Fitur agregasi:
ipk_terakhir, total_sks_diambil, total_sks_lulus,
jumlah_mk_diulang, jumlah_semester_aktif
Fitur temporal:
tren_ipk (naik/turun), rata_rata_nilai_per_semester
Target prediksi yang mungkin:
â Apakah mahasiswa ini berisiko tidak lulus tepat waktu?
â Prediksi IPK semester depan
â Deteksi mahasiswa yang butuh bimbingan akademikPENUTUP
Pertemuan 14 adalah pertemuan terakhir dengan materi baru â dan ia berfungsi sebagai cermin yang memantulkan semua yang sudah dipelajari selama 13 pertemuan sebelumnya ke dalam gambar yang utuh.
Key Messages Pertemuan 14:
-
Model data adalah fondasi, bukan tujuan akhir â setiap lapisan yang dibangun (ERD, normalisasi, physical model, dimensional model) punya satu tujuan bersama: memungkinkan pengambilan keputusan yang cerdas berbasis data, termasuk melalui model machine learning.
-
Kualitas model data menentukan batas atas kualitas ML â tidak ada algoritma yang cukup canggih untuk mengompensasi data yang hilang, tidak konsisten, atau salah terstuktur. "Garbage in, garbage out" bukan klise â ini adalah hukum alam di dunia data science.
-
Feature engineering adalah jembatan antara model data dan model ML â dan jembatan itu hanya bisa dibangun dengan kokoh jika fondasi di bawahnya (star schema, grain, dimensi kaya, SCD) dirancang dengan benar.
-
Setiap keputusan desain meninggalkan jejak â dari memilih grain, menambahkan kolom di dimensi, hingga menentukan SCD Type, semua keputusan yang dibuat di P12âP13 langsung menentukan fitur apa yang bisa dan tidak bisa diekstrak untuk ML.
-
Data Modelling adalah investasi jangka panjang â nilai dari model data yang baik tidak terlihat hari ini, tapi akan terasa bertahun-tahun ke depan ketika tim analitik dan data science bisa bergerak cepat di atas fondasi yang solid, alih-alih terus-menerus "membersihkan mess" dari desain yang buruk.
Pesan untuk Proyek Akhir: Dengan selesainya pertemuan ini, kalian telah menempuh perjalanan yang luar biasa â dari memahami apa itu data hingga merancang sistem data yang siap mendukung machine learning. Proyek kelompok yang akan kalian presentasikan di P15 adalah bukti nyata dari perjalanan itu. Sajikan dengan bangga, jelaskan keputusan dengan penuh kepercayaan diri, dan hormati proses desain yang telah kalian lalui bersama.
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