←/→ pindah slide · F layar penuh · D unduhan
Pelatihan Data Warehouse

Membangun Data Warehouse
dengan Pentaho Kettle

Extract, Transform, Load — dari data operasional ke wawasan

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

Jumat, 31 Juli 2026 · 08.00–16.00 WITA

Agenda Pelatihan

PAGI — Konsep & Persiapan
08.00–11.30 · kesiapan ujian
  • 08.20  Fondasi: data & database → OLTP/OLAP → DW/ETL
  • 09.10  Pentaho BI Suite & Kettle
  • 09.50  Rehat kopi (15 menit)
  • 10.05  Multidimensional modelling, star schema, SCD
  • 11.00  Persiapan hands-on: instalasi & PHI_DW
  • 11.30  ISHOMA + Sholat Jumat (s.d. 13.00)
SIANG — Hands-On & Try-Out
13.00–16.00 · praktik dataset nyata
  • 13.00  HANDS-ON: dimensi → fact → Job penggabung
  • 14.30  Rehat kopi (15 menit)
  • 14.45  Analisa hasil (OLAP) & demo SCD
  • 15.15  Try-out + bahas soal tersulit
  • 15.50  Penutup & langkah lanjut
  • 16.00  Selesai
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

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

Dibuka di halaman terpisah · timer 45 menit · kunci jawaban & pembahasan muncul otomatis di akhir.

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.

Perangkat lunak (unduh dari situs resmi): Java Temurin — adoptium.net · XAMPP — apachefriends.org · Pentaho Data Integration — pentaho.com/pentaho-developer-edition · MySQL Connector/J — dev.mysql.com/downloads/connector/j