←/→ pindah slide · F layar penuh · D unduhan
Pelatihan Sertifikasi Business Intelligence · HIMA SI

Membangun Data Warehouse
dengan Pentaho Kettle

“Building Data Intelligence for Future Professionals”

Jumat, 31 Juli 2026  •  08.00–16.00 WITA  •  Konsep, Persiapan & Hands-On Project  •  Studi Kasus PHI-Minimart

Kenalan Dulu

Presenter Hari Ini

CT

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

7+ th
EdTech · gov · mobile
200K+
pengguna BTW Edutech
8K+
siswa dinilai — kompetisi nasional 2025
5K+
soal AI dibuat per bulan di AsesAi
Jumat, 31 Juli 2026 · 08.00–16.00 WITA

Agenda Pelatihan

SESI 1 — Konsep & Demonstrasi
pagi · Ruang 05
  • 08.35  Pengantar materi — fondasi & konsep DW–Kettle (50')
  • 09.25  QnA
  • 09.30  Demonstrasi — membangun DW PHI-Minimart live dari nol (2j 15')
  • 11.45  Istirahat (s.d. 12.20)
SESI 2 — Praktek Mandiri
siang · Ruang 05
  • 12.35  Praktek Hands-On — dimensi → fact → Job & verifikasi (90')
  • 14.05  QnA — diskusi kendala
  • 14.15  Try-out ujian sertifikasi via AsesAi — fokus pengerjaan (±60')
  • ±15.15  Selesai — nilai & pembahasan langsung tampil di AsesAi
Fondasi · Mulai dari Nol

Cerita di Balik Pelatihan Ini: PHI-Minimart

Situasinya…

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.”

Hari ini kita membangun jawabannya: sebuah data warehouse — dan di sesi siang, kamu bangun sendiri.
Fondasi · Mulai dari Nol

Bahasa Paling Dasar: Data, Tabel & Database

Data

Fakta mentah yang dicatat: “tanggal 3 Juli, Beras 5kg, 2 unit, Rp 136.000”.

Tabel

Data yang tersusun rapi dalam baris (satu kejadian/record) dan kolom (jenis informasi/field) — persis seperti lembar Excel.

Database

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

tanggalprodukcabangunittotal
2026-01-03Beras 5kgSurabaya2136.000
2026-01-03Kopi SachetMedan10120.000
2026-01-04Mie InstanDenpasar195.000
2026-01-04Sabun MandiMakassar24108.000

↑ satu baris = satu transaksi  ·  satu kolom = satu jenis informasi

Kabar baiknya: kalau kamu paham tabel seperti ini, bekalmu sudah cukup untuk hari ini.
Fondasi · Mulai dari Nol

Dari Data Menjadi Keputusan

DATA
Fakta mentah
600 baris transaksi
INFORMASI
Data yang diringkas
penjualan per kategori
WAWASAN
Pola yang bermakna
“Makanan menyumbang 50%”
KEPUTUSAN
Tindakan bisnis
prioritaskan stok makanan
Business Intelligence (BI) adalah seluruh teknologi & praktik untuk menempuh perjalanan ini dengan cepat dan akurat. Data warehouse adalah fondasinya; ETL (Kettle) adalah kendaraannya. Dua istilah inilah yang kita bedah berikutnya.
Konsep Dasar

OLTP vs OLAP

OLTP — Transaksi
FokusMencatat transaksi harian (real-time)
BebanInsert, update, delete cepat
ContohERP, CRM, HRM
SifatMission critical
OLAP — Analisa
FokusLaporan analitik fleksibel & cepat
BebanPembacaan data (query) besar
ProsesBatch berkala (mis. tiap malam)
SumberDiperkaya dari banyak OLTP → DW
Konsep Dasar

Data Warehouse, Data Mart & ETL

Sumber OLTP
Penjualan, SDM, inventori…
ETL (Kettle)
Extract → Transform → Load
Data Warehouse
Data terkonsolidasi & bersih
Data Mart
Subset untuk satu divisi
ETL = Extract, Transform, Load.Extract — ambil data dari berbagai sumber. Transform — bersihkan & ubah struktur. Load — simpan ke data warehouse. Kettle adalah salah satu tool ETL open-source terbaik; 85% waktu proyek BI habis di penyiapan data.
Tools · Dari Nol

Apa Itu Pentaho & Bagaimana Cara Kerjanya?

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.

📄 Data masuk
Baca dari CSV, Excel, atau database — apa adanya, masih mentah
⚙️ Diproses per step
Tiap kotak (step) satu tugas: bersihkan, ubah, beri nomor, cari pasangan
🗄️ Data keluar
Tersimpan rapi di tabel MySQL — siap dianalisis

1 · Rancang visual

Di aplikasi Spoon: tarik step ke kanvas, sambungkan dengan panah (hop). Tanpa koding.

2 · Data mengalir

Saat dijalankan, data mengalir baris demi baris (row) melewati tiap step — seperti ban berjalan.

3 · Jalankan & pantau

Klik Run, lihat lognya: step hijau = sukses, angka menunjukkan berapa baris diproses.

Tools

Pentaho BI Suite & Kettle

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:

Spoon

Designer GUI untuk merancang & menjalankan job/transformation — yang kita pakai hari ini.

Pan

Menjalankan transformation dari command line (untuk otomatisasi terjadwal).

Kitchen

Menjalankan job dari command line (untuk otomatisasi terjadwal).

Carte

Web server cluster untuk eksekusi terdistribusi (master–slave).

Preview Fitur

Tur Layar Spoon — Sebelum Kita Menyentuhnya

Spoon — t_dim_produk.ktr
▶ Run (F9)⏸ Pause🔍 Preview💾 Save
DesignView
Input — CSV, Excel, XML…
Transform — sequence, calc…
Lookup — database lookup
Output — table output
▸ Flow, Scripting, …
CSV input Add sequence Table output
Execution Results — Logging  ✓ CSV input R=15  ✓ Add sequence R=15  ✓ Table output R=15  Finished

Empat area yang bakal sering kamu pakai

  • Panel Design — “rak” berisi 100+ step siap tarik (drag) ke kanvas; tab View menyimpan koneksi database.
  • Kanvas — tempat merangkai step dengan panah (hop). Klik dua kali step = buka pengaturannya.
  • Toolbar — tombol ▶ Run (F9) dan 🔍 Preview untuk mengintip data di tengah alur.
  • Logging — hasil eksekusi; hijau = sukses, merah = ada error (baca barisnya!).
Tidak perlu koding. Semua dikerjakan visual: tarik step, sambungkan panah, isi pengaturan, jalankan.
Kettle

Job vs Transformation

Transformation

Alur pengolahan data tingkat baris (row).

  • Step: kotak pemrosesan (mis. baca CSV)
  • Hop: panah aliran data antar step
  • Row: satu baris data yang mengalir

Contoh: baca CSV → beri surrogate key → tulis ke tabel.

Job

Alur kontrol / workflow yang mengatur urutan.

  • Menjalankan beberapa transformation berurutan
  • Menangani kondisi sukses/gagal & notifikasi
  • Cocok untuk otomatisasi (dijalankan Kitchen)

Contoh: jalankan semua dimensi → lalu fact.

Ingat: Transformation mengolah DATA (row-level); Job mengatur ALUR KERJA (control-flow). Keduanya dirancang visual di Spoon.
Preview Fitur

Step yang Akan Kita Pakai Hari Ini

📥 Input

CSV file input — baca file .csv

Excel input — baca .xlsx

Get data from XML — baca .xml

🔧 Transform

Add sequence — buat surrogate key

Select values — pilih/susun kolom

Sort + Unique rows — buang duplikat

Calculator — hitung kolom baru

🔎 Lookup

Database lookup — cari surrogate key di tabel dimensi (dipakai 4× saat membangun fact)

Dimension lookup/update — kelola SCD otomatis

📤 Output

Table output — tulis hasil ke tabel MySQL; tombol SQL-nya bisa membuatkan tabel secara otomatis

Pola yang akan terasa berulang: Input (baca) → Transform (olah) → Output (simpan) — persis ETL. Kettle punya 100+ step; kuasai selusin ini saja — cukup untuk membangun data warehouse pertamamu.
Modelling

Multidimensional Modelling

Merancang DW dengan dua jenis tabel: fact (nilai pengukuran) dan dimension (konteks). Dipopulerkan oleh Ralph Kimball.

Cube

Struktur array multidimensi (dimension + measure), biasanya satu domain bisnis, mis. penjualan.

Dimension

Sudut pandang analisis: waktu, produk, cabang, karyawan.

Measure

Nilai yang diukur: jumlah unit, total penjualan.

Member

Isi/anggota sebuah dimensi, mis. “April”, “Surabaya”.

Modelling

Star Schema PHI-Minimart

dim_produk
PK sk_produk
dim_waktu
PK sk_waktu
dim_cabang
PK sk_cabang
dim_karyawan
PK sk_karyawan
fact_penjualan
jumlah_unit · total_jual
FK: sk_produk, sk_waktu,
sk_cabang, sk_karyawan
Modelling

Slowly Changing Dimension (SCD)

Bagaimana menangani data dimensi yang berubah (mis. karyawan pindah cabang)?

Type 1

Timpa (overwrite)

Tanpa histori — data lama diganti data baru.

Type 2

Simpan histori

Surrogate key baru + masa berlaku; histori penuh tersimpan.

Type 3

Histori terbatas

Simpan satu perubahan di kolom lain (alternate).

Di Kettle: gunakan step Dimension lookup / update untuk mengelola SCD (surrogate key & histori) secara otomatis.
Sebelum Mulai Hands-On

Unduh Dulu 4 Perangkat Ini

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 ↗

Urutannya: ① instal Java → ② ekstrak Pentaho → ③ instal XAMPP lalu Start MySQL → ④ salin Connector/J (.jar) ke data-integration/lib → jalankan Spoon.bat. Panduan lengkap ada di Modul Hands-On.
📦 Dataset hands-on: ⬇ Sumber_Data_PHI_Minimart.zip ⬇ Dataset_Ujicoba_Kettle.zip — ekstrak & simpan, dipakai di sesi praktek

Materi lengkap & unduhan lainnya akan dibuka di halaman ini pada hari pelatihan.

Sesi Siang

Hands-On Project: Bangun DW PHI-Minimart

1
Persiapan

Instalasi, data sumber, buat database PHI_DW

2
dim_produk

CSV → surrogate key → tabel

3
dim cabang, karyawan, waktu

Ulangi pola untuk tiap dimensi

4
fact_penjualan

Lookup SK dari dimensi → tabel fakta

5
Job penggabung

Jalankan semua transformation berurutan

6
Analisa (OLAP)

Query verifikasi & drill-down

Hands-On

Pola Membangun Sebuah Dimensi

CSV file input
Baca produk.csv
Get Fields → Preview
Add sequence
Buat surrogate key
sk_produk
Table output
Tulis ke dim_produk
tombol SQL → Execute

Prinsip yang sama untuk semua dimensi

  • Extract: CSV file input membaca file sumber.
  • Transform: Add sequence memberi surrogate key — atau Dimension lookup/update untuk SCD.
  • Load: Table output menulis ke tabel dimensi di MySQL.
  • Verifikasi: dim_produk = 15 baris · dim_cabang = 5 · dim_karyawan = 12.
Hands-On · Langkah 1 dari 5

dim_produk (a): Koneksi Database & Baca CSV

Langkah di Spoon

  1. File → New → Transformation, simpan sebagai t_dim_produk.ktr
  2. Tab View → Database connections → klik kanan → New; isi sesuai tabel di kanan → Test → sukses → klik kanan koneksi → Share
  3. Tab Design → kategori Input → tarik CSV file input ke kanvas
  4. Klik dua kali step: Filename = produk.csv · Delimiter = koma
  5. Klik Get Fields (kolom terdeteksi) → Preview → 15 baris tampil ✓

Isian koneksi PHI_DW

Connection namePHI_DW
Connection typeMySQL
Host namelocalhost
Database namePHI_DW
Port3306
User / Passwordroot / (kosong)
Jika Test gagal “Driver … could not be found”: salin mysql-connector-j-x.x.xx.jar ke folder data-integration/lib/ lalu restart Spoon.
Hands-On · Langkah 2 dari 5

dim_produk (b): Surrogate Key & Tulis ke MySQL

Langkah di Spoon

  1. Kategori Transform → tarik Add sequence; buat hop: Shift + drag dari CSV file input ke Add sequence
  2. Klik dua kali: Name of value = sk_produk (Start 1, Increment 1)
  3. Kategori Output → tarik Table output; hop dari Add sequence
  4. Isi: Connection = PHI_DW · Target table = dim_produk · centang Truncate table
  5. Klik tombol SQLExecute (tabel dibuat otomatis) → Close
  6. Jalankan: F9 → Launch → semua step hijau ✓
-- Checkpoint di phpMyAdmin: SELECT COUNT(*) FROM dim_produk; -- hasil: 15

Alur transformation

CSV file input  →  Add sequence  →  Table output

Pola tiga step ini adalah wujud nyata Extract → Transform → Load. Simpan file — akan jadi templat dimensi berikutnya.

Hands-On · Langkah 3 dari 5

Tiga Dimensi Lainnya

dim_cabang

  • File → Save as…t_dim_cabang.ktr
  • CSV input → cabang.csv → Get Fields ulang
  • Sequence: sk_cabang
  • Table output: dim_cabang → SQL → F9

Checkpoint: 5 baris

dim_karyawan

  • Save as → t_dim_karyawan.ktr
  • CSV input → karyawan.csv
  • Sequence: sk_karyawan
  • Table output: dim_karyawan → SQL → F9

Checkpoint: 12 baris

dim_waktu — beda pola!

  • CSV input → penjualan.csv
  • Select values: ambil kolom tanggal saja
  • Sort rowsUnique rows (tanggal unik)
  • Calculator: hari, bulan, tahun, kuartal
  • Sequence sk_waktu → Table output dim_waktu
Prinsip: pola Extract → SK → Load sama untuk semua dimensi — hanya sumber & nama berbeda. dim_waktu diturunkan dari tanggal transaksi karena tidak ada file master waktu.
Hands-On · Langkah 4 dari 5

fact_penjualan: Empat Database Lookup

Langkah di Spoon

  1. Transformation baru → t_fact_penjualan.ktr; CSV input → penjualan.csv
  2. Kategori Lookup → tarik Database lookup 4 kali, sambung berantai; isi per tabel di kanan
  3. Select values: sisakan sk_produk, sk_cabang, sk_karyawan, sk_waktu, jumlah_unit, total_jual
  4. Table outputfact_penjualan → SQL → Execute → F9

Checkpoint: 600 baris ✓

Konfigurasi tiap Database lookup

Lookup keKunci (keys)ambil (return)
dim_produkkode_produk = kode_produk → sk_produk
dim_cabangkode_cabang = kode_cabang → sk_cabang
dim_karyawankode_karyawan = kode_karyawan → sk_karyawan
dim_waktutanggal = tanggal → sk_waktu

Jika hasil SK bernilai null: tabel dimensi belum terisi (jalankan dimensi dulu) atau kunci lookup salah kolom.

Hands-On · Langkah 5 dari 5

Job Penggabung: Otomatiskan Semuanya

Langkah di Spoon

  1. File → New → Job, simpan j_phi_dw.kjb
  2. Kategori General: tarik START, lalu entry Transformation, dan Success
  3. Klik dua kali tiap entry → browse ke file .ktr-nya (produk, cabang, karyawan, waktu, fact)
  4. Hubungkan hop hijau berurutan — semua dimensi dulu, fact terakhir
  5. F9 → perhatikan panel Logging: semua entry bertanda hijau ✓

Alur Job

STARTprodukcabangkaryawanwaktufactSuccess

Kenapa urutan penting? fact_penjualan mencari surrogate key dari tabel dimensi — kalau dimensi belum terisi, lookup menghasilkan null. Inilah alasan Job dieksekusi dimensi-dulu.
Hands-On · Verifikasi

Verifikasi Hasil & Analisa (OLAP)

-- Jalankan di phpMyAdmin: SELECT COUNT(*) FROM fact_penjualan; -- 600 SELECT SUM(total_jual) FROM fact_penjualan; -- 357809500 -- Drill-down per kategori (join ke dimensi): SELECT p.nama_kategori, SUM(f.total_jual) AS tot FROM fact_penjualan f JOIN dim_produk p ON f.sk_produk = p.sk_produk GROUP BY p.nama_kategori ORDER BY tot DESC;

Angka acuan — harus cocok

600
baris fact_penjualan
Rp 357,8 jt
total penjualan
Makanan
kategori teratas
Surabaya
cabang teratas

Query join fact–dimensi seperti ini persis yang dilakukan engine OLAP (Mondrian menerjemahkan MDX → SQL). Drill-down = menambah dimensi pada GROUP BY.

Bekal Ujian

Glosarium Istilah Kunci

ETL

Extract, Transform, Load — proses olah data

Kettle / PDI

Tool ETL Pentaho (dirancang di Spoon)

Transformation

Alur olah data (row-level)

Job

Alur kontrol/workflow

Star Schema

Fact di pusat, dikelilingi dimensi

Surrogate Key

Kunci buatan (sk_*) di data warehouse

Fact Table

Tabel measure + FK ke dimensi

Mondrian

OLAP engine (ROLAP) Pentaho, query MDX

SCD

Slowly Changing Dimension (Type 1/2/3)

Latihan

Contoh Soal Try-Out — klik jawabanmu

1. Utilitas Kettle yang dipakai untuk merancang transformation secara visual adalah…

A. Pan
B. Kitchen
C. Spoon
D. Carte

Jawaban C — Spoon adalah designer GUI Kettle; Pan & Kitchen untuk eksekusi terjadwal.

2. Dalam star schema, tabel yang berisi nilai measure adalah…

A. Tabel dimensi
B. Tabel fakta
C. Tabel staging
D. Tabel repositori

Jawaban B — Fact table menyimpan measure + foreign key ke dimensi.

QR pendaftaran try-out AsesAi

📱 Scan untuk daftar & kerjakan try-out

Pendaftaran dan pengerjaan dilakukan di platform AsesAi — 50 soal, nilai & pembahasan langsung tampil setelah selesai.

bit.ly/bi-camp-31-7-tryout

🏆 Live Ranking — pantau skor real-time

Penutup

Langkah Selanjutnya

1
Kuasai konsep & istilah

OLTP/OLAP, ETL, star schema, surrogate key, SCD.

2
Ulangi hands-on project

Bangun ulang DW PHI-Minimart + kerjakan 3 dataset lanjutan (multi-sumber, cleansing, SCD).

3
Perdalam materi lanjutan

Staging/CDC, SCD Type 2, otomatisasi Job (Kitchen).

Terima kasih & selamat membangun data warehouse!

1 / 15

Materi & Unduhan

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.