PANDUAN PRAKTIKUM
MATA KULIAH SISTEM DATA WEREHOUSING
Oleh :
Tim Pengajar
Jurusan Teknik Informatika
Fakultas Teknik
1. PENDAHULUAN
Sebuah perguruan tinggi perlu memberikan pelayanan kepada para
stakeholder yang diantaranya adalah mahasiswa, dosen maupun laporan borang di
butuhkan oleh dikti. Contoh data yang diperlukan oleh berbagai stakeholder adalah
data penelitian. Data penelitian dari tahun ke tahun akan terus bertambah dan
membuat ukuran database menjadi semakin besar. Agar tidak membebani sistem
pemrosesan transaksi yang ada, pada saatnya data lama perlu dipindahkan ke sebuah
data warehouse. Sebuah data warehouse akan memberikan laporan yang bersifat
dinamis dan bisa dilihat dari berbagai dimensi.[1]
Laporan yang dihasilkan juga akan mempunyai kemampuan untuk diperinci
lebih lanjut ataupun diringkaskan. Tanpa adanya data warehouse, laporan-laporan
yang dihasilkan akan lebih bersifat statis sesuai dengan yang telah diberikan oleh
aplikasi yang berada pada tingkatan sistem informasi manajemen.
Tugas ini untuk membangun sebuah data warehouse untuk data penelitian.
tulisan ini meliputi kegiatan perancangan data warehouse yang termasuk di
dalamnya perancangan arsitektur, dan pemodelan data. Sesudah itu akan dijelaskan
hasil implementasi dari data warehouse yang telah dirancang.
2. TINJAUAN PUSTAKA
Data Warehouse
Data warehouse adalah koleksi data yang bersifat subject-oriented,
terintegrasi, time-variant, dan non-volatile yang digunakan untuk mendukung proses
pengambilan keputusan yang strategis untuk perusahaan (Inmon, 2002). Data
warehouse merupakan salah satu konsep penyediaan solusi ke organisasi, dimana
memiliki database yang distrukturkan secara khusus untuk dilakukan proses query
dan analisis. Data warehouse umumnya berisi data yang mempresentasikan histori
organisasi. Data warehouse memungkinkan pengguna untuk melakukan pemeriksaan
terhadap data historis utuk melakukan analisis terhadap data dalam beragam cara dan
Untuk pembuatan data warehouse, dilakukan dengan melakukan beberapa
langkah yang ada, antara lain (Ponniah, 2001):
a. Data extraction
Fungsi ini biasanya berhadapan dengan bermacam data source, dan
menggunakan teknik yang sesuai dengan setiap data source. Sumber data
mungkin berasal dari source machine yang berbeda dalam format data yang
berbeda pula.
b. Data transformation
Data transformation melibatkan berbagai bentuk dalam mengkombinasikan
bagian dari data yang berasal dari sumber yang berbeda. Kombinasi data
dilakukan dari sumber record tunggal, atau dapat juga dilakukan dari elemen data
yang berelasi dengan banyak sumber record. Proses cleaning mungkin dilakukan
dalam data transformation, dimana proses cleaning memiliki fungsi untuk
melakukan koreksi terhadap kesalahan pengejaan, atau untuk melakukan
eliminasi terhadap duplikat data.
c. Data loading
Setelah selesai melakukan desain dan konstruksi dari data warehouse dan
aplikasi digunakan untuk pertama kalinya, akan dilakukan pengisian awal data ke
dalam media penyimpanan data warehouse. Dalam pengisian awal, dilakukan
pemindahan data dalam jumlah yang besar.
3. Perancangan Data Warehouse
Tahap perancangan adalah merupakan tahap awal yang penting untuk dilakukan
dalam pembentukan data warehouse. Di dalamnya meliputi perancangan arsitektur
A. Perancangan Arsitektur Data Warehouse
Pembersihan data
Data werehouse (MySQL)
Sumber Data Data Staging Penyimpanan Data Transformasi
Normalisasi Data Olah
Gambar memperlihatkan rancangan arsitektur logical dari data penelitian.
DB Penelitian DB Werehouse DB public access
Pengguna Pengguna
Gambar memperlihatkan rancangan arsitektur fisik dari data warehouse penelitian.
Pada konfigurasi ini pengguna mengakses data warehouse melalui server aplikasi.
Database Olah dan data warehouse berada pada mesin yang sama sehingga proses
Ekstraksi, Transformasi dan Loading dilakukan di mesin data warehouse dan tidak
B. Sumber Data
Dalam tugas ini sumber data yang digunakan dalam bentuk excel dimana beberapa
record masih tidak standard dan memerlukan penyeragaman//cleaning/pembersihan
data.
C. Pemodelan Data Dimensional
Skema yang digunakan adalah schema dimana terdapat satu tabel fakta dan
beberapa tabel dimensi. Alasannya adalah proses query yang lebih ringan dan
memudahkan penjelajahan terhadap data dimensinya, selain itu tabeldimensinya
tidak memerlukan tabel sub dimensi karena tabel dimensinya tidak mengandung
ringkasan atau tidak memiliki perbedaan tingkat ukuran.
Tabel fakta yang terbentuk dari perancangan data warehouse ini merupakan tabel
tesis yang dapat dijelaskan sebagai berikut:
1. Tabel Data Tesis, didalam table tesis ini berbubungan degan table kelas,kota
alamat, kota asal sekolah,jenis kelamin dan tempat tanggal lahir.
2. Tabel Kelas, data yang termasuk dimensi kelas adalah kd_kelas dan
namakelas.
3. Tabel Kota Alamat,dimensi kota alamat adalah kd_kotaalamat dan
kotaalamat
4. Tabel Kota Asal Sekolah,dimensi kota asal sekolah adalah kd_kotasalsek
dan kotaasalsekolah
5. Tabel Jenis kelamin, dimensi jenis kelamin adalah kd_jk,jeniskelamin
6. Tabel Tempat Lahir, dimensi tempat lahir adalah
D. Langkah – langkah normalisasi table dan Analisa Tabel 1. Proses Pembersihan Data
Proses pembersihan data dilakukan untuk menghilangkan record yang
kembar, menormalisasi kesalahan penulisan, nilai yang kosong, dan
kesalahan-kesalahan lainnya. Pada kelompok kami, proses pembersihan data dilakukan
secara manual. Untuk membantu mengerjakan semua operasi yang diperlukan
dalam MySQL, kelompok kami menggunakan tool PHP MyAdmin.
Langkah pertama yang dilakukan adalah melakukan ekspor data dari file
asli berupa Microsoft Excel menjadi database MySQL. File asli dalam bentuk
Microsoft Excel terlebih dahulu dinormalkan kolom-kolomnya dari bentuk asal
yang belum terformat, sehingga dihasilkan sebuah format mirip tabel dengan
Format tanggal juga diperiksa dan disamakan menurut format tanggal
MySQL yaitu yyyy-mm-dd (tahun-bulan-tanggal). Untuk kolom Jenis Kelamin
dan Kelas, dari data asli sudah tersaji dalam bentuk biner yaitu 0 dan 1. Setelah
itu data disimpan dalam format file CSV untuk selanjutnya diimpor ke format
database MySQL.
Langkah impor data ke MySQL terlebih dahulu diawali dengan membuat
sebuah database bernama „tesis‟, dan membuat sebuah tabel bernama „datatesis‟
dengan struktur tabel yang sama dengan kolom-kolom yang telah ditentukan
sebelumnya. Data dari file CSV kemudian diimpor melalui fasilitas import dari
PHPMyAdmin. Di sini kembali dilakukan cek jumlah record untuk memastikan
bahwa semua record telah diimpor, yaitu sejumlah 10319 record.
Langkah berikutnya adalah menentukan field mana dari tabel „datatesis‟
yang dapat dikodekan dan dipisahkan menjadi tabel terpisah untuk digunakan
menjadi dimensi. Dari proses ini didapatkan bahwa field-field berikut memiliki
nilai-nilai yang sama dan dapat dikodekan:
JK
maka langsung dibuat menjadi tabel „jeniskelamin‟ dan „kelas‟ dengan struktur
sebagai berikut:
Tabel „jenis_kelamin‟
Untuk field TempatLahir, KotaAlamat dan KotaAsalSekolah, karena
memiliki kesamaan jenis data yaitu nama tempat, maka perlu dipetakan terlebih
dahulu masing-masing nama tempatnya kemudian diperiksa apakah terdapat
inkonsistensi penulisan atau duplikasi yang dapat mengacaukan pengkodean.
Pemeriksaan dilakukan secara manual dengan bantuan fungsi distinct pada
MySQL untuk menampilkan setiap nama tempat yang terdapat pada field-field
tersebut.
select distinct „tempatlahir‟ from „tesis‟; select distinct „kotaalamat‟ from „tesis‟; select distinct „kotaasalsekolah‟ from „tesis‟;
Pada langkah ini ditemukan beberapa inkonsistensi penulisan nama tempat
seperti
SEMARANG SEAMRANG
YOGYAKARTA YAGYAKARTA
Ditemukan juga duplikasi nama tempat karena kesalahan pemberian spasi seperti
PATI _PATI
Setelah dilakukan perbaikan, data dari masing-masing field kemudian
diurutkan secara ascending kemudian dipisahkan ke dalam tabel-tabel berikut
Tabel „tempatlahir‟
„kd_tempatlahir‟ varchar 4 Primary Key
„tempatlahir‟ varchar 20
Tabel „kotaalamat‟
„kd_kotaalamat‟ varchar 4 Primary Key
„kotaalamat‟ varchar 20
Tabel „kotaasalsekolah‟
„kd_kotaasalsek‟ varchar 4 Primary Key
„kotaasalsekolah‟ varchar 20
Pengkodean dilakukan dengan memberi nomor urut dari atas sebanyak 4
digit terdiri dari 1 digit paling kiri sebagai pengenal dan tiga digit kanan sebagai
pembilang. Pengkodean yang ditentukan penulis adalah:
Tabel Pengenal Pembilang Contoh
„tempatlahir‟ 2 001-999 2001, 2019, 2100
„kotaalamat‟ 3 001-999 3001, 3045, 3099
„kotaasalsekolah‟ 1 001-999 1001, 1030, 1086
Setelah pengkodean selesai, maka dilakukan perubahan struktur pada
tabel „datatesis‟ dan update data pada field-field tersebut menjadi kode. Perubahan struktur dilakukan melalui PHPMyAdmin, sedang perubahan data
dilakukan menggunakan kalimat-kalimat SQL berikut:
“update datatesis set kd_tempatlahir=(select
kd_tempatlahir from tempatlahir where tempatlahir.tempatlahir=datatesis.kd_tempatlahir );”
“update datatesis set kd_kotaalamat=(select
kd_kotaalamat from kotaalamat where kotaalamat.kotaalamat=datatesis.kd_kotaalamat);”
“update datatesis set kd_kotaasalsek=(select
2. Hasil Pembersihan Data
Pada akhir dari proses ini terbentuk 5 buah tabel baru di samping tabel
„datatesis‟, sehingga jumlah tabel sekarang menjadi 6 tabel. Tabel-tabel baru tersebut adalah:
Dengan adanya proses kodifikasi (pengkodean) maka struktur tabel
„datatesis‟ juga mengalami perubahan, di mana field yang tadinya berisi data mentah digantikan oleh field berisi kode yang merujuk pada tabel-tabel baru.
Hasil akhir struktur tabel „datatesis‟ adalah sebagai berikut:
„no‟ integer 6
„nim‟ varchar 15 Primary Key
„nama‟ varchar 50
„kd_tempatlahir‟ varchar 4 Foreign Key tabel „tempatlahir‟
„tgllahir‟ date
„kd_kotaalamat‟ varchar 4 Foreign Key tabel „kotaalamat‟
„kd_jk‟ integer 1 Foreign Key tabel „jenis_kelamin‟
„kd_kelas‟ integer 1 Foreign Key tabel „kelas‟
„asalsekolah‟ varchar 50
„kd_kotaasalsek‟ varchar 4 Foreign Key tabel „kotaasalsekolah‟
3. Menggunakan Schema-Workbench
Untuk dapat menggunakan Schema-Workbench maka pastikan folder driver
berisi dari Schema-Workbench berisi file-file :
mysql-connector-java-5.1.13-bin, jtds-1.2.2.
Langkah-langkah untuk menggunakan Schema-Workbench :
a. Jalankan Schema-Workbench dengan mengklik 2X file Workbench.bat
- Driver Class Name : com.mysql.jdbc.Driver
- Connection URL : jdbc:mysql://localhost/[nama database]
- User Name : root
Gambar. 1. Connection
c. klik Test Connection
Gambar. 2. Connection Succesfull
d. klik Ok kemudian klik Accept
Gambar 3. Schema Workbench
f. klik Add Dimension pada tool bar
g. Aktifkan New Hierarchy pada dimension
h. klik kanan pada New Hierarchy kemudian Add Table
i. Isi atribut name dengan nama table dimensi
j. klik pada New Hierarchy kemudian isi atribut Primary Key dengan kunci
primer dari table dimensi
k. klik pada New Dimension kemudian isi attribute foregnkey dengan foregnkey
table dimensi
l. buat table fact dengan cara klik kanan pada Schema kemudian pilih add cube
m. klik kanan pada new cube kemudian add table
n. isikan attribute name dengan table fakta
o. klik kanan pada new cube kemudian pilih measure, isikan atribut :
- Aggregator : Count
- Coulomn : kolom yang akan dihitung jumlahnya
- Data type : Numerik
p. simpan mapping tersebut dengan extension XML
q. Kemudian pilih Add Cube
Munculan tampilan berikut ini
Gambar 6. Tampilan cube
Klik kanan pada New Cube 0 Add Tabel, setelah dipilih akan muncul
tampilan berikut (b)
Gambar 8. (b)
Pada Cube ini merupakan tampilan dari tabel fakta. Isikan data pada kolom
name dengan memilih tabel. Misalkan memilih tabel database datatesis
Gambar 9. Mengisi Name Atribute
Ketika kita sudah memilih tabel dan mengisi kolom dengan benar maka tanda
1. Setelah membuat Cube (tabel fakta) kita akan membuat tabel dimensi
dengan cara klik kanan pada schema Add Dimension. Buatlah
beberapa tabel dimensi yang kita sesuaikan dengan database yang sudah
di cleaning dengan memisahkan menjadi beberapa tabel yang unik,
misalkan kita membuat empat tabel dimension. Setelah membuat
beberapa tabel dimensi kita edit satu persatu tabel tersebut. Klik pada
New Dimension klik kanan New hierarchy 0 Add tabel maka
muncul
Gambar 10. Add Hierarky
Isikan pada kolom name dengan memilih tabel dimensi yang sudah kita
2. Setelah mengisi kolom name kita klik kembali New hierarchy 0
Gambar 11. Pengisian nama
Isikan kolom primarykey sesuai dengan tabel yang tadi kita pilih. Pilih
kd_jk , untuk kolom name bisa diganti bisa tidak. Sekarang pilih / klik
kanan pada New hierarchy Add level
Klik pada New level 0 yang baru kita buat kemudian isikan beberapa
kolom di dalamnya
Gambar. 13 Pengisian value
Isikan data ke dalam kolom :
Column : kd_jk
nameColumn : jeniskelamin
type : integer
leveltype : Regular
hideMemberlf : Never
Data yang dimasukkan berdasarkan tabel yang kita pilih tadi seperti saat
langkah ke 6. Lakukan langkah 6 dan 7 ini untuk mengisikan tabel
dimensi yang lain, tentunya database yang dimasukkan pun berbeda
sesuaikan dengan tabel database yang kita buat di Mysql.
3. Langkah selanjutnya setelah mengisi tabel pada tiap dimension, kita
kembali pada tabel cube (tabel fakta). Klik kanan pada cube 0 Add
Dimension Usage
Gambar. 14. Add Dimension Usage
Kemudian pilih / klik tabel dimensi tersebut dan isikan data pada
Gambar 15. Pengisian Data Fakta
Name : jenis kelamin
FoerignKey : kd_jk
Source : jenis kelamin
Disarankan dalam area ini kita cukup hanya membuat dua tabel dimensi
supaya saat ditampilkan pada pentaho grafiknya yang keluar bisa terlihat.
Dan terserah pada kita untuk memilih tabel mana yang akan kita
munculkan pada pentahonya nanti. Disini misalkan tabel yang dipilih
berdasarkan tabel database yang kita buat adalah tabel jenis kelamin dan
kelas.
4. Selanjutnya klik kanan kembali pada cube0 Add Measure. Pada tabel
measure ini kita akan menjumlahkan seluruh data yang sudah kita buat,
Klik pada tabel measure yang sudah kita buat kemudian isikan datanya
dalam kolom seperti berikut:
Gambar 16. Pengisian Measure
Name : kelas
Aggregator : count
Column : kd_kelas
Datatype : integer
Tabel yang dimasukkan pun terserah pada kita yang akan dijumlahkan
nantinya.
5. Setelah kita membuat schema maka langkah selanjutnya kita akan
mempublish data ke pentaho. Adapun langkahnya adalah pilihlah file
Gambar 17. Publish
Maka muncul tampilan Repository Login seperti berikut ini:
6. Pada area kerja Repository Login di dalam kolom publish password kita
akan memasukkan passwordnya dengan terlebih dahulu mengubahnya di
folder pentaho folder biserve-ce-3.0.0 STABLES folder biserver-ce
pentaho-solution folder system cari file publisher_config
kemudian klik kanan edit maka akan muncul
Gambar 19. Penambahan Password
Gantilah passwordnya pada sourecode program berikut:
<publisher-config>
<publisher-password>publish</publisher-password>
</publisher-config>
Untuk memudahkan dalam mengingat rubahlah passwordnya menjadi
“publish”. Setelah merubah password kita kembali ke schema workbench
Gambar. 20 Pengisian Repository
Pada publish password masukkan “publish” lalu pada user “joe” dengan passwordnya “password” sebelum kita mempublish pada pentaho terlebih
dahulu aktifkan pentahonya dengan cara start-pentaho pada folder
Pentahobiserver-ce-3.0.0 STABLES biserver-ce. Setelah
mengaktifkan pentaho lakukan browsing dengan mozilla lalu ketikkan
“http://localhost:8080/pentaho/Login” .
Setelah mengaktifkan pentaho kembali pada schema workbench pilih file
publish kemudian muncul Repository Login masukkan
Gambar. 21. Publish Setting
Pada area ini kita terlebih dahulu membuat New folder, setelah membuat
New Folder double klik folder yang kita buat tersebut.
Di kolom Pentaho or JNDI Data Source terlebih dahulu harus kita setting
dulu agar bisa sukses untuk di publish pada pentaho. Cara mengesetnya
adalah dengan cara kita klik pada folder Pentaho folder
biserver-ce-3.0.0 STABLES administration-console file startup.batch akan
Gambar. 22. Pengambilan IP workbrance
Copy lah pada tampilan tersebut http://127.0.0.1:8099 lalu masukkan
pada mozilla. Saat di browser akan muncul tampilan
Gambar 23. Autentikasi Admin Pentaho
Ketikkan dalam kolom tersebut:
Nama Pengguna : admin
Kata Sandi : password
Gambar 24. Administrasion Console Home
Masuklah ke dalam Administration kemudian pilih Data Source lalu klik
Gambar 25. Entry data Source
Pada kolom isikan data
Nama : DataSource
Driver Class : pilih com.mysql.jdbc.Driver
User Name : root
URL : jdbc:mysql://localhost:3306/tesis
Lalu tekan tombol Test, jika pengisiannya benar maka saat di test akan
sukses kemudian tekan tombol OK
Kembali pada area kerja publish schema pada kolom Pentaho or JNDI
Data Source kita masukkan nama sesuai dengan yang tadi kita buat saat
dalam area Data Source. Misalkan kita masukkan namanya Datasource,
setelah itu tekan tombol publish kemudian muncul tampilan
Gambar 26. Overwirite
Pilih tombol yes, muncul tampilan
Gambar 27. Succesfull
4. Menggunakan Pentaho BI Server
Kami menggunakan Pentaho BI Server untuk mempublish hasil analisis
berdasarkan table dimensi dan facta yang dibuat di Schema Workbench. Adapun
langkah-langkah yang dilakukan adalah :
1. Menjalankan start-pentaho.bat yang ada di folder Pentaho/
biserver-ce-3.0.0-STABLE/ biserver-ce/
Gambar 28. Jendela tomcat server
2. Menjalankan web browser kemudian mengetikan :
Gambar 29. Halaman utama Pentaho BI Server
3. Mengklik tombol pentaho user console Login kemudian memilih user
dari dropdown sample user, pilih joe, klik login, maka tampilan pentaho akan
seperti pada gambar dibawah ini.
Gambar 30. Halaman Pentaho BI Server untuk user console
4. Menjalankan WampServer agar sumber data yang ada di Mysql dapat
ditampilkan dalam view hasil analisis.
Gambar 31. Jendela Analysis View
6. Mengklik combo milik schema agar berisi New Schema2 dan cube
data_tesis, diakhiri dengan mengklik Ok
Gambar 32. Tampilan data hasil analisis pada user console
7. untuk menampilkan hasil analisis dalam bentuk grafik maka harus