PANDUAN PRAKTIKUM MATA KULIAH SISTEM DATA WEREHOUSING
Oleh :
Tim Pengajar
Jurusan Teknik Informatika Fakultas Teknik Universitas Negeri Gorontalo 2012
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 membuat keputusan yang didasarkan pada hasil analisis.
2
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 logical maupun fisik dari data warehouse
[2]
, pemilihan data pada sumber data yaitu
data penelitian yang telah ada, dan dilanjutkan dengan pemodelan data dimensional.
3
A. Perancangan Arsitektur Data Warehouse Pembersihan data
Data Olah Data werehouse (MySQL) Transformasi Normalisasi
Sumber Data
Data Staging
Penyimpanan Data
Gambar memperlihatkan rancangan arsitektur logical dari data penelitian.
Pengguna
DB Penelitian
DB Werehouse
DB public access
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 mengganggu kerja mesin operasional.
4
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
kd_tempatlahir,tempatlahir
5
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 kesalahankesalahan 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 nama-nama kolom berikut: No NIM Nama TempatLahir TglLahir KotaAlamat JK (Jenis Kelamin) Kelas AsalSekolah KotaAsalSekolah
6
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 Kelas TempatLahir KotaAlamat KotaAsalSekolah Untuk field Jenis Kelamin dan Kelas, karena sudah dalam bentuk biner maka langsung dibuat menjadi tabel „jeniskelamin‟ dan „kelas‟ dengan struktur sebagai berikut: Tabel „jenis_kelamin‟ „kd_jk‟ integer „jeniskelamin‟ varchar
1 10
Primary Key
Tabel „kelas‟ „kd_kelas‟ „namakelas‟
1 10
Primary Key
integer varchar
Dengan pemetaan dan pengkodean sebagai berikut 7
Tabel „jenis_kelamin‟ 0 Laki-laki 1 Perempuan Tabel „kelas‟ 0 1
Kelas 0 Kelas 1
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 untuk sekaligus dikodekan:
8
Tabel „tempatlahir‟ „kd_tempatlahir‟ „tempatlahir‟
varchar varchar
4 20
Primary Key
Tabel „kotaalamat‟ „kd_kotaalamat‟ „kotaalamat‟
varchar varchar
4 20
Primary Key
Tabel „kotaasalsekolah‟ „kd_kotaasalsek‟ „kotaasalsekolah‟
varchar varchar
4 20
Primary Key
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 „tempatlahir‟ „kotaalamat‟ „kotaasalsekolah‟
Pengenal 2 3 1
Pembilang 001-999 001-999 001-999
Contoh 2001, 2019, 2100 3001, 3045, 3099 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 kd_kotasalsek from kotaasalsekolah where kotaasalsekolah.kotaasalsekolah=datatesis.kd_kot aasalsek);”
9
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: „jenis_kelamin‟ „kelas‟ „tempatlahir‟ „kotaalamat‟ „kotaasalsekolah‟
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‟ „nim‟ „nama‟ „kd_tempatlahir‟ „tgllahir‟ „kd_kotaalamat‟ „kd_jk‟ „kd_kelas‟ „asalsekolah‟ „kd_kotaasalsek‟
integer varchar varchar varchar date varchar integer integer varchar varchar
6 15 50 4 4 1 1 50 4
Primary Key Foreign Key tabel „tempatlahir‟ Foreign Key tabel „kotaalamat‟ Foreign Key tabel „jenis_kelamin‟ Foreign Key tabel „kelas‟ 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.13bin, jtds-1.2.2. Langkah-langkah untuk menggunakan Schema-Workbench : a. Jalankan Schema-Workbench dengan mengklik 2X file Workbench.bat b. klik menu Tools kemudian connection, isi text box dengan : 10
-
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 e. klik file kemudian new kemudian Schema
11
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
Gambar 4. Tabel Hierarchy
12
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
Gambar 5. Cube 13
Munculan tampilan berikut ini
Gambar 6. Tampilan cube Klik kanan pada New Cube 0 Add Tabel, setelah dipilih akan muncul tampilan berikut (b)
Gambar 7 (a)
14
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 silang akan hilang dengan sendirinya.
15
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 buat di Mysql. Misalkan tabel jenis_kelamin
16
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
Gambar 12. Add Level
17
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.
18
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 beberapa kolom yang ada di dalamnya seperti berikut:
19
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, agar saat pentahonya berjalan data tersebut sudah dijumlahkan seluruh.
20
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 publish
21
Gambar 17. Publish Maka muncul tampilan Repository Login seperti berikut ini:
Gambar 18. Repository Login
22
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:
publish
Untuk memudahkan dalam mengingat rubahlah passwordnya menjadi “publish”. Setelah merubah password kita kembali ke schema workbench pilih file publish lalu muncul
23
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 passwordnya lalu tekan tombol OK dan muncul tampilan
24
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-ce3.0.0 STABLES administration-console file startup.batch akan muncul tampilan
25
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
Maka akan muncul tampilan seperti berikut ini:
26
Gambar 24. Administrasion Console Home Masuklah ke dalam Administration kemudian pilih Data Source lalu klik tombol Add yang bersimbol + lalu akan muncul tampilan
27
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 7.
Selanjutnya kita buka mozilla yang sudah menjalankan pentaho
28
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-ce3.0.0-STABLE/ biserver-ce/
Gambar 28. Jendela tomcat server 2.
Menjalankan
web
browser
kemudian
mengetikan
:
http://localhost:8080/pentaho di adddress bar milik web browser
29
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.
5.
Menjalankan New Analysis View
30
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 mengklik Show Chart dan Swap axes yang ada di toolbar
31
Gambar 33. Tampilan data hasil analisis dalam bentuk grafik
32