Anda di halaman 1dari 18

MODUL DATA WAREHOUSE

(CSD310)

MODUL 14
Pentaho Lanjut...

DISUSUN OLEH
Ir. Munawar, MMSI., M.Com., PhD

UNIVERSITAS ESA UNGGUL


2020

Universitas Esa Unggul


http://esaunggul.ac.id 0 / 18
PENTAHO LANJUT…

A. Kemampuan Akhir Yang Diharapkan

Setelah mempelajari modul ini, diharapkan mahasiswa mampu :


1. Memahami step by step bagaimana menggunakan Pentaho
2. Memahami cara menerapkan pentaho dalam rangka otomasi ETL.

B. Uraian Perkuliahan
1. Penggunaan Pentaho Lanjut
Setelah di bab sebelumnya dijelaskan penggunaan dasar Pentaho untuk ETL,
berikut ini akan dijelaskan penggunaan pentaho lebih lanjut untuk ETL. Kali ini kita
akan merencanakan membuat data mart. Untuk latihan ini sudah disediakan file sql
data transaksi.

Task Lanjut#1 Mengubah Baris Menjadi Kolom


Gunakan Row Normaliser untuk mengubah kolom input menjadi baris.
Gunakan langkah ini untuk normalisasi kelompok kolom yang berulang. Perhatikan
ilustrasi berikut ini. Dari data excel dibawah ini diketahui data per bulan dalam bentuk
kolom. Penulisan seperti ini di database kurang bagus karena tidak sesuai dengan
kaidah normalisasi. Oleh karena itu data excel ini perlu diubah dari kolom menjadi
baris sebelum dimasukkan ke database.

Bagaimana caranya? Ikuti langkah-langkah berikut ini:

Universitas Esa Unggul


http://esaunggul.ac.id 1 / 18
• Masukkan data excel dengan menggunakan step Microsoft Excel Input

• Row Normalizer : untuk mengubah kolom menjadi baris

• Select value : untuk memilih, mengubah, membuang, serta mengkonfigurasi


ulang tipe data. Dengan step ini data excel akan diubah menjadi sebagai berikut:

• Table Output : menyimpan ke database

Universitas Esa Unggul


http://esaunggul.ac.id 2 / 18
• Sebelum dijalankan, pastikan bahwa mySQL sudah jalan dan query ini sudah
dijalankan. Caranya klik SQL dan jalankan dengan klik Execute

• Hasilnya setelah dijalankan akan seperti ini

Universitas Esa Unggul


http://esaunggul.ac.id 3 / 18
Task Lanjut#2 Header yang ada di beberapa row tidak masuk ke database
Untuk memahami kasus ini, perhatikan tabel excel berikut. Dari tabel dibawah
ini nampak ada beberapa header (yang berwarna kuning). Kalau dalam excel,
tampilan seperti ini biasa dilakukan khususnya ketika datanya banyak.

Persoalannya, bagaimana caranya agar saat dilakukan transformasi, header


tadi tidak masuk ke database. Untuk melakukan hal tersebut gunakan steps sebagai
berikut: Microsoft Excel Input dan Filter Rows

• Microsoft Excel Input

Universitas Esa Unggul


http://esaunggul.ac.id 4 / 18
• Filter Rows : digunakan untuk memfilter data dari data sebelumnya. Kalau dilihat
dari data excel di atas ada row tahun (cetak kuning). Oleh karena itu, data inilah
yang difilter tidak masuk. Pada kasus di atas, filternya menggunakan data
sebagai berikut

Task Lanjut#3 Membuat Model Konseptual Data Mart


- Buatlah database di MySQL dengan nama oase_minimart
- Generate database oase_minimart.sql ke database oase_minimart
Jika berhasil, berikut ini adalah daftar tabel yang berhasil digenerate

- Analisis lah tabel-tabel yang ada, kemudian terjemahkan menjadi tabel relasional
atau class diagram. Jika anda cukup jeli, harusnyanya diagram relasional yang
bisa didapatkan adalah sebagai berikut:
tr_penjualan
ms_cabang ms_karyawan
tgl_transaksi datetime
kode_cabang varchar(10) <pk> kode_cabang varchar(10) <fk> kode_cabang varchar(10)
nama_cabang varchar(100) kode_kasir varchar(10) kode_karyawan varchar(10) <pk>
kode_kota varchar(8) <fk2> kode_item varchar(7) nama_depan varchar(8)
... kode_produk varchar(12) <fk> nama_belakang varchar(9)
tgl_berlaku datetime <fk> jenis_kelamin varchar(1)
jumlah_pembelian integer(11) ...
ms_kota ...
kode_kota varchar(8) <pk> ms_produk
nama_kota varchar(16) kode_item varchar(7)
kode_propinsi varchar(3) <fk> kode_produk varchar(12) <pk>
... kode_kategori varchar(7) <fk2>
nama_produk varchar(100)
ms_harga_harian unit integer(11)
kode_produk varchar(12) <pk> kode_satuan varchar(4)
ms_propinsi
tgl_berlaku datetime <pk> ...
kode_propinsi varchar(3) <pk> kode_cabang varchar(10) <pk>
nama_propinsi varchar(25) harga_berlaku_cabang integer(11)
modal_cabang integer(11)
ms_kategori
biaya_cabang integer(11)
... kode_kategori varchar(7) <pk>
nama_kategori varchar(17)

- Buatlah conceptual model DM ke database Oase_DW berdasarkan diagram


relasional atau class diagram tersebut. Hasil conceptual diagram dalam wujud
star schema harusnya adalah sebagai berikut:

Universitas Esa Unggul


http://esaunggul.ac.id 5 / 18
Star Schema diagram

Snowflake diagram

Task Lanjut#4 Membuat Dimensi Produk


- Berdasarkan skema DM yang dibuat pada latihan sebelumnya, buatlah dimensi
produk mengacu ke data dari oase_minimart
- Tabel dim_produk yang dihasilkan adalah sk_produk, kode_kategori,
kode_produk, kode_item, kode_kategori, nama_produk, unit, kode_satuan

Universitas Esa Unggul


http://esaunggul.ac.id 6 / 18
- sk_produk adalah surrogate key
- Petunjuk :
o Untuk memudahkan pengerjaan selanjutnya, skenario nya akan dibuat
seperti pada ilustrasi dibawah ini, dimana OLTP nya adalah oase-minimart
sementara DM atau DW nya adalah oase-dw

o Surrogate key biasanya dihasilkan melalui beberapa metode berikut ini :


▪ Auto increment key pada suatu table.
▪ Sequence number generator, untuk menghasilkan nilai integer yang
tidak dapat berulang namun independen dari suatu table.
▪ Melalui mekanisme di luar sistem database yang digunakan
(scripting, programming, ETL) dengan rule sebagai berikut :
✓ maximum + incremental_value : mengambil nilai maksimum
key yang ada ditambah dengan nilai tertentu.
✓ random value : mengambil nilai secara acak.
o Surrogate key sering disebut juga dengan TECHNICAL KEY (TK)
o gunakan table input, stream lookup, add sequence, select values & table
output untuk menggambarkan ETL nya. Hasilnya seperti di bawah ini

o Dimensi produk dibuat dari tabel ms_kategori dan ms_produk dari OLTP
oase_mart dengan stream table input. Koneksi yang digunakan bisa
digambarkan seperti dibawah ini

Universitas Esa Unggul


http://esaunggul.ac.id 7 / 18
o Step table input untuk ms_kategori dan ms_produk bisa mengikuti
petunjuk di bawah ini. Untuk mendapatkan SQL bisa di klik Get SQL
select statement sehingga tidak perlu mengetikkan syntax sql nya

Universitas Esa Unggul


http://esaunggul.ac.id 8 / 18
o stream lookup isinya sebagai berikut

o Add sequence untuk membuat surrogate key

Universitas Esa Unggul


http://esaunggul.ac.id 9 / 18
o Select value untuk menampilkan field-field apa saja yang akan digunakan.
Klik Get fiels to select untuk memilih field-field apa saja yang akan
digunakan.

o Table output dim_produk untuk menyimpan hasilnya ke database mySQL


dengan koneksi oase_dw

Universitas Esa Unggul


http://esaunggul.ac.id 10 / 18
o Jangan lupa, agar dim_produk bisa tergenerate ke oase_dw, klik tombol
SQL lalu klik Execute.

o Jalankan, hasilnya akan terlibat di oase_dw dalam bentuk tabel


dim_produk

Task Lanjut#5 Membuat Dimensi Cabang dan Karyawan


Dengan cara yang sama pada latihan sebelumnya, buatlah dimensi cabang
dan karyawan.
o Tabel dim_cabang yang dihasilkan adalah sk_cabang, kode_propinsi,
nama_propinsi, kode_kota, nama_kota, kode_cabang, nama_cabang
o Tabel dim_karyawan yang dihasilkan adalah sk_karyawan, kode_cabang,
nama_cabang, kode_karyawan, nama_karyawan, jenis_kelamin
Hasil yang didapatkan adalah sebagai berikut:

Universitas Esa Unggul


http://esaunggul.ac.id 11 / 18
Dimensi cabang

Dimensi karyawan
o Hasilnya akan muncul 2 tabel baru di database oase_dw yaitu tabel
dim_cabang dan dim_karyawan

Task Lanjut#6 Membuat Dimensi Waktu/ Time


Setiap data yang dimasukkan ke data warehouse pasti memiliki dimensi waktu.
Dimensi waktu ini dipergunakan sebagai pembanding dalam perhitungan untuk
menghasilkan laporan yang diinginkan. Selain itu, dengan menggunakan dimensi
waktu pembuat keputusan dapat mengenal kecenderungan (trend) dan pola dari
suatu data, memprediksi operasi-operasi mendatang, dan mengatur sasaran-
sasaran yang beroperasi.
Untuk membuat dimensi waktu ini, step yang dibutuhkan adalah generate
rows, add sequence, calculator, modified java script value, stream lookup, select
values dan tabel output. Jika berhasil, harusnya disain ETL nya adalah sebagai
berikut:

Langkah-langkah untuk membuat disain ETL tersebut sebagai berikut:


• Tentukan tanggal awal untuk membuat semua tanggal bisa dibuat urutannya.
Untuk itu silahkan cek terlebih dahulu data yang dimiliki. Pada kasus oase_mart
tanggal awal ditetapkan 1 Jan 2008. Untuk mewujudkan hal ini bisa
menggunakan step generate rows.

Universitas Esa Unggul


http://esaunggul.ac.id 12 / 18
• Agar semua transaksi bisa dibuatkan urutannya, maka tanggal awal yang sudah
dibuat sebelumnya harus bisa bergerak terus sehingga semua transaksi bisa
dibuatkan urutan waktunya. Untuk itu bisa memanfaat step add sequence.

• Langkah berikutnya adalah mendefinisikan informasi apa yang bisa dimunculkan


di dimensi waktu. Manfaat dari dimensi waktu ini bisa digunakan untuk meringkas
atau mendetailkan informasi atau dikenal dengan drill-up dan drill-down. Pada
kasus oase mart ini akan dibuat seperti di bawah ini dengan memanfaatkan step
calculator.

• Pada kasus di atas, seharunya perlu ditambahkan informasi semester. Hanya


saja step calculator tidak menyediakan perhitungan semester. Oleh karena itu
agar ada informasi semester, kita perlu membuat sendiri dengan memanfaatkan

Universitas Esa Unggul


http://esaunggul.ac.id 13 / 18
step modified java script value. Untuk melakukan hal ini perlu sedikit
pemahaman tentang java script. Pada kasus diatas, bisa dilakukan seperti contoh
di bawah ini. Klik Test script untuk menguji script yang sudah dibuat. Jika tidak
ada kesalahan maka akan muncul contoh data/ data dummy dari coding java
script yang sudah dimasukkan.

• Gunakan step data grid untuk membuat data lookup guna menterjemahkan bulan
dari tanggal transaksi

Universitas Esa Unggul


http://esaunggul.ac.id 14 / 18
• Step stream lookup

• Step select values

Universitas Esa Unggul


http://esaunggul.ac.id 15 / 18
• Step table output

• Jalankan disain ETL tersebut. Hasilnya akan muncul sebuah tabel dim_waktu di
database oase_dw. Pastikan sebelum dijalankan klik SQL pada step table output
agar nama tabel dim_waktu dibuat terlebih dahulu.

Task Lanjut#7 Membuat Fact Penjualan Oase Minimart


Setelah semua tabel dimensi berhasil digenerate, kini saatnya membuat tabel
fact penjualan dari oase minimart. Tabel fact_penjualan yang dihasilkan adalah
sk_produk, sk_cabang, sk_karyawan, sk_waktu, jumlah_pembelian, total_harga.
Untuk menghitung total penjualan bisa menggunakan step calculator dimana total
harga adalah hasil perkalian dari harga harian yang berlaku di cabang dengan
jumlah pembelian. Sengaja pada contoh ini tidak dijelaskan secara detail
penggunaan semua step karena merupakan pengulangan dari apa yang sudah
dijelaskan. Berikut adalah diagram lengkap untuk membuat fact penjualan.

Universitas Esa Unggul


http://esaunggul.ac.id 16 / 18
Task Lanjut#8 Membuat Job
- Buatlah job untuk menggabungkan semua file transformation dim_produk,
dim_cabang, dim_karyawan, dim_waktu dan fact_penjualan
- Untuk membuat job bisa dilihat penjelasan pada bab sebelumnya.
- Pastikan job dengan semua transformation tersebut telah selesai dan sukses
dieksekusi
- Periksa hasilnya pada database oase_dw

Referensi
Mulyana, JRP. (2014). Pentaho: Solusi Open Source untuk Membangun Data
Warehouse. Penerbit Andi

Universitas Esa Unggul


http://esaunggul.ac.id 17 / 18

Anda mungkin juga menyukai