“Building Data Intelligence for Future Professionals”
Jumat, 31 Juli 2026 • 08.00–16.00 WITA • Konsep, Persiapan & Hands-On Project • Studi Kasus PHI-Minimart
I Putu Cikal Taruna
CEO & AI Engineer — AsesAi
7+ tahun membangun produk digital di dunia EdTech, pemerintahan, dan mobile — dari Android engineer, QA & data lead di BTW Edutech, hingga memimpin AsesAi, platform asesmen berbasis AI. Sehari-hari bekerja dengan SQL, Python, dan dashboard analitik — dapur yang sama dengan yang kita pelajari hari ini.
🌐 cik.al · github.com/cikalT · linkedin.com/in/cikaltaruna · hello@cik.al
PHI-Minimart punya 5 cabang di lima pulau. Setiap hari kasir mencatat ratusan transaksi — sistemnya cepat dan andal. Tapi setiap akhir bulan, satu masalah yang sama selalu muncul: menyusun laporan untuk manajemen itu lambat dan melelahkan. Data ada di mana-mana, formatnya beda-beda, dan angka antar-laporan sering tidak cocok.
Faktanya di industri: ±85% waktu proyek pelaporan habis hanya untuk menyiapkan data — bukan menganalisisnya.
Pertanyaan manajemen yang sulit dijawab cepat:
💬 “Produk apa yang paling laku bulan ini — di semua cabang?”
💬 “Cabang mana yang tumbuh, cabang mana yang turun?”
💬 “Bandingkan penjualan tahun ini vs tahun lalu per kategori.”
Fakta mentah yang dicatat: “tanggal 3 Juli, Beras 5kg, 2 unit, Rp 136.000”.
Data yang tersusun rapi dalam baris (satu kejadian/record) dan kolom (jenis informasi/field) — persis seperti lembar Excel.
Kumpulan tabel yang saling terkait, dikelola aplikasi khusus (DBMS) seperti MySQL — bisa menampung jutaan baris dan diakses banyak orang sekaligus dengan bahasa SQL.
Contoh: tabel penjualan PHI-Minimart
| tanggal | produk | cabang | unit | total |
|---|---|---|---|---|
| 2026-01-03 | Beras 5kg | Surabaya | 2 | 136.000 |
| 2026-01-03 | Kopi Sachet | Medan | 10 | 120.000 |
| 2026-01-04 | Mie Instan | Denpasar | 1 | 95.000 |
| 2026-01-04 | Sabun Mandi | Makassar | 24 | 108.000 |
↑ satu baris = satu transaksi · satu kolom = satu jenis informasi
| Fokus | Mencatat transaksi harian (real-time) |
| Beban | Insert, update, delete cepat |
| Contoh | ERP, CRM, HRM |
| Sifat | Mission critical |
| Fokus | Laporan analitik fleksibel & cepat |
| Beban | Pembacaan data (query) besar |
| Proses | Batch berkala (mis. tiap malam) |
| Sumber | Diperkaya dari banyak OLTP → DW |
OLTP untuk mencatat (operasional) — OLAP untuk menganalisis. Data warehouse adalah rumah bagi OLAP.
Pentaho adalah perangkat lunak open-source (gratis) untuk mengolah data. Bagian yang kita pakai bernama Kettle — mesin ETL-nya. Bayangkan sebuah jalur perakitan pabrik: bahan mentah masuk, diproses stasiun demi stasiun, keluar sebagai produk jadi.
Di aplikasi Spoon: tarik step ke kanvas, sambungkan dengan panah (hop). Tanpa koding.
Saat dijalankan, data mengalir baris demi baris (row) melewati tiap step — seperti ban berjalan.
Klik Run, lihat lognya: step hijau = sukses, angka menunjukkan berapa baris diproses.
Pentaho adalah suite BI open-source (Java): Pentaho Reporting, Mondrian (OLAP engine), dan Pentaho Data Integration (PDI) / Kettle — tool ETL-nya. Kettle terdiri dari 4 utilitas:
Designer GUI untuk merancang & menjalankan job/transformation — yang kita pakai hari ini.
Menjalankan transformation dari command line (untuk otomatisasi terjadwal).
Menjalankan job dari command line (untuk otomatisasi terjadwal).
Web server cluster untuk eksekusi terdistribusi (master–slave).
Alur pengolahan data tingkat baris (row).
Contoh: baca CSV → beri surrogate key → tulis ke tabel.
Alur kontrol / workflow yang mengatur urutan.
Contoh: jalankan semua dimensi → lalu fact.
CSV file input — baca file .csv
Excel input — baca .xlsx
Get data from XML — baca .xml
Add sequence — buat surrogate key
Select values — pilih/susun kolom
Sort + Unique rows — buang duplikat
Calculator — hitung kolom baru
Database lookup — cari surrogate key di tabel dimensi (dipakai 4× saat membangun fact)
Dimension lookup/update — kelola SCD otomatis
Table output — tulis hasil ke tabel MySQL; tombol SQL-nya bisa membuatkan tabel secara otomatis
Merancang DW dengan dua jenis tabel: fact (nilai pengukuran) dan dimension (konteks). Dipopulerkan oleh Ralph Kimball.
Struktur array multidimensi (dimension + measure), biasanya satu domain bisnis, mis. penjualan.
Sudut pandang analisis: waktu, produk, cabang, karyawan.
Nilai yang diukur: jumlah unit, total penjualan.
Isi/anggota sebuah dimensi, mis. “April”, “Surabaya”.
Satu tabel fakta di pusat, dikelilingi tabel dimensi (bentuk bintang). Surrogate key (sk_*) — kunci buatan DW — menghubungkan fact ke tiap dimensi.
Bagaimana menangani data dimensi yang berubah (mis. karyawan pindah cabang)?
Timpa (overwrite)
Tanpa histori — data lama diganti data baru.
Simpan histori
Surrogate key baru + masa berlaku; histori penuh tersimpan.
Histori terbatas
Simpan satu perubahan di kolom lain (alternate).
Keempatnya wajib ada di laptop kamu sebelum sesi praktek — unduh dari sekarang, ukurannya cukup besar; jangan tunggu sampai di lokasi.
1 · Java (JDK)
Landasan untuk menjalankan Kettle — instal ini paling dulu.
bit.ly/bi-camp-31-7-java ↗
2 · Pentaho (Kettle)
Tool ETL yang kita pakai seharian. Cukup ekstrak, tanpa instalasi.
bit.ly/bi-camp-31-7-pentaho ↗
3 · XAMPP — MySQL
Database tempat data warehouse (PHI_DW) kita disimpan.
apachefriends.org/download.html ↗
4 · MySQL Connector/J
Driver wajib — pilih Platform Independent (ZIP), lalu salin file .jar ke folder data-integration/lib.
dev.mysql.com/downloads/connector/j ↗
Materi lengkap & unduhan lainnya akan dibuka di halaman ini pada hari pelatihan.
Instalasi, data sumber, buat database PHI_DW
CSV → surrogate key → tabel
Ulangi pola untuk tiap dimensi
Lookup SK dari dimensi → tabel fakta
Jalankan semua transformation berurutan
Query verifikasi & drill-down
Data sumber (produk, cabang, karyawan, penjualan): ⬇ unduh zip di sini — atau lewat tombol Materi & Unduhan di kiri bawah.
| Connection name | PHI_DW |
| Connection type | MySQL |
| Host name | localhost |
| Database name | PHI_DW |
| Port | 3306 |
| User / Password | root / (kosong) |
CSV file input → Add sequence → Table output
Pola tiga step ini adalah wujud nyata Extract → Transform → Load. Simpan file — akan jadi templat dimensi berikutnya.
Checkpoint: 5 baris
Checkpoint: 12 baris
Checkpoint: 600 baris ✓
| Lookup ke | Kunci (keys) → ambil (return) |
| dim_produk | kode_produk = kode_produk → sk_produk |
| dim_cabang | kode_cabang = kode_cabang → sk_cabang |
| dim_karyawan | kode_karyawan = kode_karyawan → sk_karyawan |
| dim_waktu | tanggal = tanggal → sk_waktu |
Jika hasil SK bernilai null: tabel dimensi belum terisi (jalankan dimensi dulu) atau kunci lookup salah kolom.
START → produk → cabang → karyawan → waktu → fact → Success
Angka acuan — harus cocok
Query join fact–dimensi seperti ini persis yang dilakukan engine OLAP (Mondrian menerjemahkan MDX → SQL). Drill-down = menambah dimensi pada GROUP BY.
Extract, Transform, Load — proses olah data
Tool ETL Pentaho (dirancang di Spoon)
Alur olah data (row-level)
Alur kontrol/workflow
Fact di pusat, dikelilingi dimensi
Kunci buatan (sk_*) di data warehouse
Tabel measure + FK ke dimensi
OLAP engine (ROLAP) Pentaho, query MDX
Slowly Changing Dimension (Type 1/2/3)
1. Utilitas Kettle yang dipakai untuk merancang transformation secara visual adalah…
Jawaban C — Spoon adalah designer GUI Kettle; Pan & Kitchen untuk eksekusi terjadwal.
2. Dalam star schema, tabel yang berisi nilai measure adalah…
Jawaban B — Fact table menyimpan measure + foreign key ke dimensi.
📱 Scan untuk daftar & kerjakan try-out
Pendaftaran dan pengerjaan dilakukan di platform AsesAi — 50 soal, nilai & pembahasan langsung tampil setelah selesai.
OLTP/OLAP, ETL, star schema, surrogate key, SCD.
Bangun ulang DW PHI-Minimart + kerjakan 3 dataset lanjutan (multi-sumber, cleansing, SCD).
Staging/CDC, SCD Type 2, otomatisasi Job (Kitchen).
Terima kasih & selamat membangun data warehouse!
Pelatihan Membangun Data Warehouse dengan Pentaho Kettle — unduh dan simpan sebelum sesi hands-on dimulai.
Pelengkap opsional: SQLYog (Windows) / phpMyAdmin (bawaan XAMPP) sebagai klien SQL.