2.1 Datawarehouse Datawarehouse adalah database yang didesain khusus untuk mengerjakan proses query, membuat laporan dan analisa [5]. Data yang disimpan adalah data business history dari sebuah organisasi /perusahaan, dimana data tersebut tidak tersimpan secara rinci/detil. Sehingga data dapat bertahan lebih lama berbeda dengan data OLTP (Online Transactional Processing) yang tersimpan sampai prosesnya berlangsung secara lengkap. Sumber data pada datawarehouse berasal dari berbagai macam format, software, platform dan jaringan yang beda. Data tersebut adalah hasil dari proses transaksi perusahan / organisasi sehari.hari. Karena berasal dari sumber yang berbeda beda tadi, maka data pada datawarehouse harus tersimpan dalam sebuah format yang baku. Datawarehouse juga merupakan salah satu sistem pendukung keputusan, yaitu dengan menyimpan data dari berbagai sumber, mengorganisasikannya dan dianalisa oleh para pengambil kebijakan. Akan tetapi datawarehouse tidak dapat memberikan keputusan secara langsung. Namun ia dapat memberikan informasi yang dapat membuat user menjadi lebih paham dalam membuat kebijakan strategis. Adapun karakteristik umum yang dimiliki datawarehouse adalah : Data terintegrasi dari berbagai sumber yang berasal dari proses transaksional (OLTP) 7 Data dibuat konsisten Merupakan aggregate data/kesimpulan data, bukan data yang terperinci Data bertahan lebih lama Data tersimpan dalam format yang tepat sehinngga proses query dan analisa dapat dilakukan dengan cepat Data bersifat read only 2.1.1 Data Mart Kadang kala kita sulit untuk membedakan antara datawarehouse dan data mart karena keduanya hampir sama. Namun, jika dikaji lebih jauh ada beberapa perbedaan yang dimiliki keduanya. Datawarehouse merupakan gabungan dari beberapa data mart dan levelnya berada pada perusahaan atau organisasi. Sedangkan data mart merupakan bagian dari datawarehouse dan berada level departemen pada perusahaan atau organisasi tersebut. Data mart menangani sebuah business proses, misalkan penjualan, maka hanya proses penjualan saja yang ditangani pada data mart. 2.1.2. ETL (Extraction, Transformation, Loading) Tiga fungsi utama yang perlu dilakukan untuk membuat data siap digunakan pada datawarehouse adalah extraction, transformation dan loading. Ketiga fungsi ini terdapat pada staging area. Pada data staging ini, disediakan tempat dan area dengan beberapa fungsi seperti data cleansing, change, convert, dan menyiapkan data untuk disimpan serta digunakan oleh datawarehouse. 8 2.1.2.1 Extraction Data Extraction adalah proses pengambilan data yang diperlukan dari sumber datawarehouse dan selanjutnya dimasukkan pada staging area untuk diproses pada tahap berikutnya [2]. Pada fungsi ini, kita akan banyak berhubungan dengan berbagai tipe sumberdata. Format data, mesin yang berbeda, software dan arsitektur yang tidak sama. Sehingga sebelum proses ini kita lakukan, sebaiknya perlu kita definisikan requirement terhadap sumber data yang akan kita butuhkan untuk lebih memudahkan pada extraction data ini. 2.1.2.2 Transformation Pada kenyataannya, pada proses transaksional data disimpan dalam berbagai format sehingga jarang kita temui data yang konsisten antara aplikasiaplikasi yang ada. Transformasi data ditujukan untuk mengatasi masalah ini. Dengan proses transformasi data ini, kita melakukan standarisasi terhadap data pada satu format yang konsisten. Beberapa contoh ketidakkonsistenan data tersenut dapat diakibatkan oleh tipe data yang berbeda, data length dan lain sebagainya. Untuk lebih jelasnya dapat dilihat pada tabel 2.1 yang menunjukkan permasalahan dasar pada proses pengintegrasian data. Format Description Sales Key Text Nama pelanggan U.N.I.J.O.Y.O Inventori Key Integer Nama pelanggan UNIJOYO 9 Transaksi Penjualan Key Yes/No Namapelanggan Universitas Trunojoyo Unit Encoding Tinggi centimeter Sex Yes = Laki-laki No = Perempuan Tinggi meter Sex L = laki-laki P = Perempuan Tinggi inch Sex 1 = Laki-laki 0 = Perempuan Tabel 2.1 Isu tentang transformasi data Keterangan : Format, Pada transaksional data dapat disimpan dalam berbagai format. Elemen data tersebut dapat tersimpan dalam format text, integer dan sebagainya. Untuk itu standarisasi perlu dilakukan dengan melihat kegunaan pokok dari elemen data pada proses transaksinal dan datawarehouse. Description, Pada tabel terlihat representasi ketiga nama pelanggan adalah sama. Namun dengan penulisan yang beda terlihat adanya perbedaan format pada data. Oleh karena itu perlu diambil salah satu dari deskripsi tersebut untuk konsistensi data. Unit, Adanya perbedaan satuan ukuran dapat menimbulkan permasalahan yang komplek. Jika user tidak mengetahui adanya perbedaan ini dan menganggap sama, maka akan terjadi kesalahan ketika kita melakukan penghitungan matematis. Encoding, huruf atau nomor dapat dijadikan label sebagi identifikasi suatu objek. Seperti pada tabel diatas, kesalahan dapat terjadi karenanya. 2.1.2.3 Loading Data loading adalah memindahkan data ke datawarehouse. Ada dua loading data yang kita lakukan pada datawarehouse. Pertama adalah inisial load, 10 proses ini dilakukan pada saat kita telah selesai mendesign dan membangun datawarhouse. Data yang kita masukkan tentunya akan sangat besar dan memakan waktu yang relati lebih lama. Kedua Incremental load, dilakukan ketka datawarehouse telah dioperasikan. Kita melakukan data extraction, transformation dan loading terhadap data tersebut. Untuk inisial load dilakukan sekali saja, namun untuk incremental load dapat kita jadwalkan sesuai dengan kebutuhan, bisa setiap hari, bulan, kuartal atau tahun sesuai dengan kebutuhan sistem kita. 2.1.3 Data Cleansing Seperti dijelaskan diatas, pada data staging terdapat fungsi data cleansing. Adapun tujuan dari data cleansing ini adalah untuk menghilangkan kesalahkesalahan pada data yang diakibatkan oleh proses transaksional. Mengingat bahwa datawarehouse dijadikan sebagai sistem pendukung keputusan, maka jika data cleansing ini salah maka hal yang terburuk yang terjadi adalah pemberian informasi yang salah kepada pengambil kebijakan. Jika informasi yang salah ini dipercayai maka keputusan yang diambil akan jatuh dan bisa mengakibatkan kerugian yang besar. Untuk lebih jelasnya mengenai datawarehouse dan komponennya dapat dilihat pada gambar 2.1 di bawah ini. 11 Gambar 2.1 Datawarehouse dan komponennya 2.2 Data Multidimesi Selama ini kita mengenal adanya tabel relasional. Jika kita perhatikan tabel relasional tersebut, maka dapat kita ketahui karakteristiknya. Secara jelas dapat kita lihat bahwa tabel relasional dibangun oleh baris dan kolom. Hal ini menunjukkan adanya dua sudut pandang, baris sebagai sumbu x dan kolom sebagi sumbu y. tapi sebenarnya tabel relasional tersebut hanya mempunyai satu dimensi. Pada gambar terlihat karekteristik dari tabel mahasiswa, dimana setiap record atau baris merepresentasikan data mahasiswa yang berbeda-beda. Satu baris dengan baris lainnya diidentifikasikan dengan sebuah key yaitu primary key. Sedangkan bagian kolom seperti, nama, alamat, telepon menyimpan fakta yang sama atau sejenis, dimana setiap fakta tersebut merujuk pada primary key yaitu NRP. Hal inilah yang menunjukkan bahwa tabel relasional hanya mempunyai satu dimensi. 12 Satu dimensi Primary key KodeBuku 001 002 003 004 Judul Jenis ---- Penerbit KodeBuku Judul Jenis -----Penerbit Gambar 2.2 Tabel relasional Sedangkan yang dimaksud dengan data multidimensi adalah ketika kita dapat melihat sebuah data dari berbagai sudut pandang atau dimensi. Sebagai contoh, penjualan buku dapat dilihat dari segi lokasi Buku, waktu, lokasi penjualan / toko dan sebagainya. Jika digambarkan , maka akan terdapat tiga koordinat yaitu sumbu x mewakili buku, sumbu y mewakili dimensi waktu dan sumbu z untuk dimensi lokasi. Hal inilah yang menjadi perbedaan mendasar antara tabel relasional dan data multidimensi. Spreadshet merupakan salah satu contoh dari data multidimensi ini. Fungsi yang ia sediakan seperti perhitungan sederhana dan dapat juga diubah pada dimensi tunggal. Kamal Bangkalan Buku A Buku B Buku C Peb 01 Peb 02 ---Peb 04 Jan 01 Jan 02 ---Jan 04 ---------- Buku Waktu Lokasi IDBuku IDToko IDPengarang -----Nilai Gambar 2.3 Tabel data multidimensi 13 3 dimensi Cube merupakan contoh data multidimensi selain spreadsheet. Dengan cube data menjadi lebih mudah untuk dimanipulasi. Setiap sumbu cube mewakili dimensi-dimensi. Terdapat measure yaitu nilai quantitative database yang ingin kita analisa. Biasanya measure berupa nilai penjualan, biaya, budget dan sejenisnya. Measure dihitung berdasarkan dimensi-dimensi dari cube. Misalkan kita ingin meganalisa penjualan buku, total penjualan (sebagai measure) untuk suatu jenis buku tertentu (dimensi) pada lokasi / toko buku yang berbeda-beda (lokasi dapat dipilih sesuai dengan kebutuhan seperti negara, propinsi dll) pada suatu periode waktu tertentu (hari, minggu, bulan,tahun, kuartal). 2004 2003 2002 2001 Bangkalan Kamal Buku A Buku B Buku C Nilai penjualan ( Buku A, Lokasi Kamal, 2004 ) Gambar 2.4 Cube 2.3 Online Analitycal Processing (OLAP) OLAP (Online Analitycal Processing) adalah teknologi yang memproses data di dalam database dalam struktur multidimensi, menyediakan jawaban yang cepat untuk query dan analisis yang kompleks [4]. Data yang disajikan biasanya 14 merupakan suatu fungsi agregasi seperti summary, max, min, average dan lainlain. Adapun karakteristik dari OLAP , yaitu : Mengijinkan user melihat data dari sudut pandang logical dan multidimensional pada datawarehouse. Memfasilitasi query yang komplek dan analisa bagi user Mengijinkan user melakukan Drill down untuk menampilkan data pada level yang lebih detil atau roll up untuk agregasi dari satu dimensi atau beberapa dimensi Menyediakan proses kalkulasi dan perbandingan data Menampilkan hasil dalam bentuk number termasuk dalam tabel dan garfik 2.3.1. Multidimensional Cube Multidimensional cube mendukung beberapa feature seperti : 2.3.1.1 Rotation/Pivoting Dengan kemampuan OLAP rotation/pivoting, kita dapat melihat data dari berbagai sudut pandang (view point). kita dapat memutar-mutar sumbu pada cube sehingga kita memperoleh data yang kita inginkan sesuai dengan sudut pandang analisa yang kita perlukan. 2.3.1.2 Slicing dan dicing Pemilahan data dapat kita lakukan dengan proses slicing dan dicing. Slicing merupakan pemotongan sisi dari cube, artinya data yang kita potong 15 berdasarkan kategori tertentu. Sedangkan dicing merupakan penyaringan subset data dari proses slicing. 2.3.1.3 Drill down dan consolidation Agregasi data bisa kita lakukan dengan drill down dan consolidation. Penampilan data yang lebih detil dapat dilakukan dengan drill down dan sebaliknya untuk menyatukan data ke dalam hieraki yang lebih tinggi dapat dilakukan dengan consolidation. 2.3.2 Dimentional Modelling Terdapat dua pendekatan pada pemodelan data multidimensi, star schema dan snowflakes schema. 2.3.2.1 Star Schema Karakteristik dari model ini adalah : Pusat dari star disebut fact table Fact table mempunyai sebuah nilai aggregate dari data-data yang berasal dari tabel dimensi Setiap tabel dimensi berelasi langsung dengan fact table Tabel dimensi beisikan data tentang informasi atau waktu Relasi antara fact table dengan dimensi-dimensinya adalah 1 – N (one to many) 16 Primary key pada tabel dimensi akan menjadi key pada fact table atau dapat diakatakan bahwa fact table memiliki kombinasi key dari tabel dimensi tersebut Dimensi Waktu Dimensi Buku IDWaktu Bulan Tahun Kuartal IDBuku JenisBuku Judul ……….. Fact Penjualan IDBuku IDToko IDWaktu IDPengarang JumlahPenjualan Nilai Dimensi Toko Dimensi Pengarang IDToko NamaToko AlamatToko …………. IDPengarang NamaPengarang AlamatPengarang ………………. Gambar 2.5 Star schema Adapun kelebihan model star adalah lebih simple dan mudah dipahami. Hasil dari proses query juga relatif lebih cepat.. Akan tetapi model ini lebih boros dalam space. 2.3.2.2 Snowflake schema Model snowflake merupakan perluasan dari star dimana ia juga mempunyai satu atau lebih dimensi. Hanya saja pada snowflake, tabel yang berelasi pada fact table hanya tabel dimensi utama, sedangkan tabel yang lain dihubungkan pada tabel dimensi utama. Model snowflake ini hampir sama seperti teknik normalisasi 17 Dimensi Buku Dimensi Waktu IDWaktu Bulan Tahun Kuartal IDPengarang NamaPengarang AlamatPengarang ………………. Fact Penjualan IDBuku IDToko IDWaktu IDPengarang JumlahPenjualan Nilai IDBuku IDJenisBuku Judul ……….. Dimensi Jenis Buku IDJenisBuku JenisBuku ……….. Dimensi Toko IDToko NamaToko AlamatToko …………. Dimensi Pengarang Gambar 2.6 Snowflake schema Adapun keuntungan menggunakan model snowflake adalah : Pemakain space yang lebih sedikit Update dan maintenance yang lebih mudah Sedangkan kerugian menggunakan model ini yaitu : Model lebih komplek dan rumit Proses query lebih lambat Performance yang kurang bagus 2.3.3 Pemodelan Penyimpanan Data Terdapat 3 model penyimpanan data dalam cube yang difasilitasi oleh Microsoft SQL Server 7.0.Ketiga model penyimpanan data tersbut adalah : MOLAP ROLAP HOLAP 18 2.3.3.1 MOLAP Multidimensional online analitycal processing (MOLAP) menyimpan data dan aggregasi pada struktur data multidimensi. Struktur MOLAP ini tidak tersimpan pada datawarehouse tapi tersimpan pada OLAP server. Sehingga performa query yang dihasilkan olehnya sangat bagus. Model penyimpanan ini sesuai untuk database dengan ukuran kecil sampai sedang. Gambar 2.7 MOLAP 2.3.3.2 ROLAP ROLAP (Relational online analitycal processing ) menggunakan tabel pada database relasional datawarehouse untuk menyimpan detil data dan aggregasi kubus. Berbeda dengan MOLAP, ROLAP tidak menyimpan salinan database, ia mengakses langsung pada tabel fact ketika membutuhkan jawaban sebuah query. Sehingga query pada ROLAP mempunyai response time yang lebih lambat dibandingkan ROLAP maupun HOLAP. Karakteristik model ini digunakan untuk menyimpan data yang besar dan jarang dilakukannya proses query. Misalkan, data histori dalam jumlah besar dari beberapa tahun yang sebelumnya. 19 Gambar 2.8 ROLAP 2.3.3.3 HOLAP Gabungan model MOLAP dan ROLAP dapat kita peoleh dari HOLAP (Hibrid online analitycal processing) Detil data tersmpan pada tabel relasional tapi aggregasi data disimpan dalam format multidimensi. Misalkan proses drill down dilakukan pada sebuah tabel fakta, maka retrive data akan dilakukan dari tabel database relasional sehingga query tidak secepat MOLAP. Kubus HOLAP lebih kecil daripada kubus MOLAP tapi response time query masih lebih cepat jika dibandingkan dengan ROLAP. Model penyimpanan HOLAP ini biasanya sesuai untuk kubus yang membutuhkan performa query yang bagus dengan jumlah data yang besar. Gambar 2.9 HOLAP 20