BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1. Ruang Lingkup Implementasi 4.1.1. Perangkat keras Sebuah aplikasi membutuhkan perangkat keras yang mampu memberikan kemampuan kepada aplikasi untuk dapat menjalankan suatu program. Dalam penelitian ini spesifikasi perangkat keras yang digunakan adalah : Processor : Pentium Dual-Core E5500 @ 2.8 Ghz Memory : Ram 2 Gb Monitor : 17 (resolusi 1440 x 900) Input device : Mouse dan Keyboard Kebutuhan perangkat keras tersebut merupakan yang bisa digunakan dalam membangun implementasi ini, kebutuhan yang direkomendasikan adalah yang lebih dari spesifikasi tersebut. 4.1.2. Perangkat Lunak Kebutuhan perangkat lunak yang digunakan dalam membangun implementasi OLAP data penjualan BBM ini adalah : Microsoft Windows 7 sebagai system operasi MySQL Sever sebagai database server Pentaho o Pentaho Data Integration (pdi-ce-4.3.0-stable) : Digunakan untuk proses ETL o Pentaho Schema Workbench ce-3.5 : Digunakan untuk membentuk skema multi dimensional o Pentaho BI Server (biserver-ce-4.5.0-stable) : Digunakan untuk melihat hasil data multi dimensional. 89
90 4.2. Konfigurasi Aplikasi Sebelum melakukan implementasi OLAP menggunakan beberapa aplikasi Pentaho, perlu dilakukan konfigurasi aplikasi Pentaho yang akan digunakan dalam pengembangan implementasi OLAP, diantaranya : Instalasi Java Instalasi java diperlukan karena seluruh aplikasi Pentaho yang berjalan dibuat dengan bahasa java, sehingga perlu dilakukan penyesuain lingkungan sistem operasi dengan melakukan instalasi java agar aplikasi pentaho dapat berjalan, berikut langkah - langkah konfigurasi instalasi java pada implementasi ini: o Instal java versi 1.7.0_05 o Set environment variable Path : C:\Program Files\Java\jdk1.7.0_05\bin PENTAHO_JAVA_HOME :C:\ProgramFiles\Java\jdk1.7.0_05 Pentaho Data Integration Untuk dapat menggunakan Pentaho Data Integration yang terhubung ke database Mysql diperlukan konfigurasi diantaranya : o Download driver connector mysql Mysql-connector-java-5.1.22-bin untuk menghubungkan aplikasi ini dengan database yang ada di mysql. Simpan di folder C:\pentaho\pdi-ce-4.3.0-stable\dataintegration\libext\JDBC Pentaho Schema Workbench Untuk dapat menggunakan Pentaho Schema Workbench yang terhubung ke database Mysql diperlukan konfigurasi diantaranya : o Download driver connector mysql Mysql-connector-java-5.1.22-bin untuk menghubungkan aplikasi ini dengan database yang ada di mysql. Simpan di folder C:\pentaho\schema-workbench\drivers
91 Pentaho BI Server Aplikasi yang digunakan untuk menampilkan hasil dari implementasi OLAP yang sudah dirancang adalah Pentaho BI Server yang merupakan aplikasi server dan aplikasi portal dari Pentaho yang berbasis java. Aplikasi pada BI Server terdiri dari 2 aplikasi yaitu : - PUC (Pentaho User Console) : aplikasi berbasis web yang digunakan untuk membuat report, analysis, dan dashboard dan mengakses dan mengeksekusi workflow Pentaho. - Pentaho Administration Console : aplikasi berbasis web yang digunakan untuk membuat dan mengoganisasikan administrasi user/role, serta pengaturan akses ke database yang digunakan oleh workflow Pentaho User Console. Berikut konfigurasi yang dilakukan pada Pentaho BI Server : User/role : digunakan untuk menentukan dan memberikan hak akses kepada pengguna untuk dapat mengakses laporan atau analisis data di Pentaho BI Server, langkah langkah yang dilakukan adalah : o Jalankan Pentaho Administration Console, dengan cara klik 2 kali start-pac.bat yang terdapat pada folder administrationconsole. o Buka browser dan ketik : http://localhost:8099/ o Masukkan user : admin dan password : password o Klik Administration User & Role users o Klik tanda (+) untuk menambahkan user, dalam implementasi ini user yang bernama tyo ditambahkan, dengan fungsi sebagai administrator yang mempunyai hak akses yang luas terhadap pengelolaan data di aplikasi Pentaho Data Integration
92 Gambar 4.1 Pentaho Administration Console add user Database Connection : Digunakan untuk mengakses database yang akan diakses oleh skema yang telah dibuat menggunakan Pentaho scheme workbench. o Klik administration Database Connection o Klik tanda (+) untuk menambah koneksi database Publish Gambar 4.2 Tambah koneksi ke database Konfigurasi Proses publish skema yang telah dibuat dari Pentaho Schema Worbench ke Pentaho BI Server yang dilakukan adalah :
93 o Masuk ke folder instalasi Pentaho BI Server di C:\pentaho\biserverce-4.5.0-stable\biserver-ce\pentaho-solutions\system, cari file publisher_config.xml dan masukkan password pentaho di bagian kode berikut : <publisher-config> <publisher-password>pentaho</publisher-password> </publisher-config> o Buat folder dan beri nama penjualan_bbm di C:\pentaho\biserver-ce- 4.5.0-stable\biserver-ce\pentaho-solutions o Buat file kode xml dan beri nama index.xml : <index> <name>%penjualan-bbm</name> <description>%olap_penjualan_bbm</description> <icon></icon> <visible>true</visible> <display-type>list</display-type> </index> Ekspor data excel atau cetak ke pdf o Download fop-0.20.5.jar o Simpan di biserver-ce/tomcat/webapps/pentaho/web-inf/lib
94 4.3. Implementasi Aplikasi 4.3.1. Pembuatan Struktur Database Persiapan struktur database penjualan BBM diperlukan untuk menampung data transaksional penjualan ke data warehouse yang kemudian dibentuk menjadi model star schema dengan cara merelasikan tabel-tabel dimensi ke tabel fakta. Berikut langkah langkah pembuatan database, tabel dimensi, dan tabel fakta pada aplikasi Mysql : o Database penjualan_bbm : create database penjualan_bbm; o Pembuatan tabel dimensi SPBU CREATE TABLE `dim_spbu` ( `sk_spbu` INT(11) NOT NULL DEFAULT '0', `kd_spbu` TINYTEXT NULL, `nama_spbu` TINYTEXT NULL, PRIMARY KEY (`sk_spbu`) ) ENGINE=InnoDB; o Pembuatan tabel dimensi produk CREATE TABLE `dim_produk` ( `sk_produk` INT(11) NOT NULL DEFAULT '0', `KD_PRODUK` TINYTEXT NULL, `Produk` TINYTEXT NULL, PRIMARY KEY (`sk_produk`) ) ENGINE=InnoDB; o Pembuatan tabel dimensi waktu CREATE TABLE `dim_time` ( `sk_waktu` INT(11) NOT NULL DEFAULT '0',
95 `date_field` DATETIME NULL DEFAULT NULL, `year` INT(11) NULL DEFAULT NULL, `month` INT(11) NULL DEFAULT NULL, `day_of_year` INT(11) NULL DEFAULT NULL, `day_of_month` INT(11) NULL DEFAULT NULL, `day_of_week` INT(11) NULL DEFAULT NULL, `week_of_year` INT(11) NULL DEFAULT NULL, `day_of_week_desc` VARCHAR(30) NULL DEFAULT NULL, `day_of_week_short_desc` VARCHAR(3) NULL DEFAULT NULL, `month_desc` VARCHAR(30) NULL DEFAULT NULL, `month_short_desc` VARCHAR(3) NULL DEFAULT NULL, `quarter` CHAR(1) NULL DEFAULT NULL, PRIMARY KEY (`sk_waktu`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; o Pembuatan tabel fakta_penjualan CREATE TABLE `fact_penjualan` ( `sk_spbu` INT(11) NULL DEFAULT NULL, `sk_produk` INT(11) NULL DEFAULT NULL, `sk_waktu` INT(11) NULL DEFAULT NULL, `Jumlah` DOUBLE NULL DEFAULT NULL, INDEX `FK_fact_penjualan_dim_spbu` (`sk_spbu`), INDEX `FK_fact_penjualan_dim_produk` (`sk_produk`), INDEX `FK_fact_penjualan_dim_time` (`sk_waktu`),
96 CONSTRAINT `FK_fact_penjualan_dim_produk` FOREIGN KEY (`sk_produk`) REFERENCES `dim_produk` (`sk_produk`) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT `FK_fact_penjualan_dim_spbu` FOREIGN KEY (`sk_spbu`) REFERENCES `dim_spbu` (`sk_spbu`) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT `FK_fact_penjualan_dim_time` FOREIGN KEY (`sk_waktu`) REFERENCES `dim_time` (`sk_waktu`) ON UPDATE NO ACTION ON DELETE NO ACTION ) ENGINE=InnoDB; 4.3.2. Implementasi ETL Pada proses implementasi ETL aplikasi yang digunakan adalah Pentaho Data Intergration, Pada perancangan proses ETL ini langkah langkah yang dilakukan adalah sebagai berikut : Proses ETL tabel dimensi SPBU SPBU : Gambar 4.3 Proses ETL tabel dim_spbu Berikut ini penjelasan langkah langkah proses ETL ke tabel dimensi
97 1. Extract data SPBU Mengambil kode_spbu dan nama_spbu dari data transaksional excel 2. Filter Data Menghilangkan : kd_spbu yang null (kosong) kata yang tidak valid 3. Mengurutkan Baris Mengurutkan baris berdasarkan kd_spbu kemudian berdasarkan nama_spbu 4. Menghilangkan baris yang double Menghilangkan baris yang duplikat, sehingga menghasilkan : 14294712 BaloiKolam 14294729 HarbourBay
98 5. inisialisasi Membuat surrogate key untuk dim_spbu 6. mengambil field field yang diperlukan Mengambil field field yang diperlukan, seperti sk_spbu, kd_spbu,nama_spbu 7. Memasukkan data ke tabel dimensi SPBU Memasukkan data yang telah mengalami penyesuain dari proses tranformasi ke table dimensi dim_spbu. Tabel 4.1 Langkah langkah ETL ke tabel dim_spbu Proses ETL ke tabel dimensi produk
99 Gambar 4.4 Prosess ETL tabel dim_produk Berikut ini penjelasan langkah langkah proses ETL ke tabel dimensi Produk : 1. Extract data Produk Mengambil nama_produk dari data transaksional excel 2. Memilih field memilih field yang ingin digunakan yaitu nama_produk
100 (Lanjutan) 3. Filter Data Parameter yang dilakukan dengan menghilangkan baris yaitu : Produk yang null Baris yang mengandung kata yang tidak valid 4. Mengurutkan Baris Mengurutkan baris berdasarkan produk 5. Menghilangkan baris yang duplikasi Mengambil data yang tidak duplikat diantaranya : Pertamax plus Premium Solar 6. Membuat inisialisasi kd_produk Membuat kode produk menjadi : B001 : pertamax plus B002 : Premium B003 : Solar
101 (Lanjutan) 7. Memetakan kd_produk dengan nama produk Memetakan nama produk dengan kd_produk yang telah dibuat dengan kondisi : B001 : pertamax plus B002 : Premium B003 : Solar 8. Lookup kd_produk dengan nama produk Lookup kd_produk dengan nama_produk dengan hasil yaitu : B001 : pertamax plus B002 : Premium B003 : Solar 9. Inisialisasi sk_produk Inisialisasi sk_produk dengan konfigurasi penambahan satu secara otomatis 10. Memilih fieldfield yang telah sesuai Memilih dan mengatur field-field yang sesuai diantaranya : sk_produk kd_produk produk
102 11. Memasukkan data ke tabel dimensi produk Data yang dimasukkan diantaranya : sk_produk kd_produk produk Tabel 4.2 Proses ETL ke tabel dim_produk Proses ETL ke tabel dimensi waktu Gambar 4.5 Proses ETL tabel dim_tiime Berikut ini penjelasan langkah langkah proses ETL ke tabel dimensi waktu : 1. inisialisasi waktu satu tahun Digunakan untuk membuat waktu 1 tahun = 366 hari
103 (lanjutan) 2. Membuat tanggal Digunakan membuat Days_since sehingga tanggal dapat di increment sebesar 1 untuk mendapatkan tanggal selanjutnya 3. Membuat field Membuat field dari tanggal yang dibuat diantaranya : Date Year Month DayOfYear DayOfMonth DayOfWeek WeekOfYear date_tk 4. Membuat field quarter Digunakan untuk membuat field quarter diantaranya : Bulan ke 1 sampai ke 3 = 1 Bulan ke 4 sampai ke 6 = 2 Bulan ke 7 sampai ke 9 = 3 Bulan ke 10 sampai ke 4 = 4
104 (lanjutan) 5. Membuat deskripsi dari minggu Digunakan dengan membuat deskripsi dari minggu diantaranya : DayNr1 = 2 DayDesc1 = Monday DayDescShort1 = MON, dst. 6. Memetakan deskripsi dari minggu Memetakan penamaan baris deskripsi ke tanggal dalam minggu 7. Lookup deskripsi minggu Digunakan untuk Lookup deskripsi dalam minggu lookup DayOfWeek dengan DayNr untuk mendapatkan : DayDesc DayDescShort 8. Membuat deskripsi dari bulan Digunakan dengan membuat deskripsi dari bulan diantaranya : Desc1 = January Short1= JAN dst.
105 (lanjutan) 9. Memetakan deskripsi dari bulan Memetakan penamaan baris deskripsi ke tanggal dalam bulan 10. Lookup deskripsi bulan 11. Memilih field yang sesuai Digunakan untuk Lookup deskripsi dalam bulan lookup Month dengan MonthNr untuk mendapatkan MonthDesc dan MonthDescShort Memilih dan mengatur field yang sesuai 12. Load data ke tabel dimensi waktu Data yang dimasukkan diantaranya : sk_waktu date_field year month day_of_year day_of_week week_of_year day_of_week_desc day_of_week_short_desc month_desc month_short_desc quarter Tabel 4.3 Proses ETL ke tabel dim_time
106 Proses ETL ke tabel fakta penjualan BBM Gambar 4.6 Proses ETL tabel fakta penjualan Berikut ini penjelasan langkah-langkah proses ETL ke tabel fact_penjualan : 1. Extract data transaksi Mengambil data yang diperlukan untuk lookup ke berbagai table dimensi 2. Filter data Menghilangkan data null dan kata yang tidak valid
107 (lanjutan) 3. Mengambil data di tabel dim_spbu Mengambil data di tabel dim_spbu yaitu : Sk_spbu Kd_spbu Nama_spbu 4. Lookup data Lookup data dimensi SPBU dengan data transaksional untuk mendapatkan sk_spbu 5. Mengambil data di tabel dim_produk Mengambil data di tabel dim_spbu yaitu : Sk_produk Kd_produk Produk 6. Lookup data Lookup data dimensi produk dengan data sebelumnya untuk mendapatkan sk_produk
108 (lanjutan) 7. Mengambil data di tabel dim_time Mengambil data di tabel dim_spbu yaitu : sk_waktu date_field year month day_of_year day_of_month day_of_week week_of_year day_of_week_desc day_of_week_short_desc month_desc month_short_desc quarter 8. Lookup data Lookup data dimensi waktu dengan data sebelumnya untuk mendapatkan sk_waktu 9. Memilih field Memilih field yang telah disesuai kan diantaranya : Sk_spbu Sk_produk Sk_waktu Volume penjualan
109 (lanjutan) 10. Load data ke tabel fact_penjualan Memasukka data ke tabel fact penjualan diantaranya : Sk_spbu Sk_produk Sk_waktu Volume penjualan Tabel 4.4 Proses ETL ke tabel fact_penjualan Penjadwalan ETL Gambar 4.7 Proses Penjadwalan load data ke database Proses otomatisasi penjadwalan load data ke database di lakukan dengan menggunakan job yang terdapat pada Pentaho Data Integration. Job digunakan untuk menjalankan beberapa proses ETL yang telah dibuat dan akan mengirimkan notifikasi sukses dengan email jika proses sukses dan akan mengirimkan notifikasi gagal dengan email jika proses yang berlangsung gagal. Berikut konfigurasi penjadwalan yang dilakukan :
110 1. Setting jadwal Setting jadwal bulan berjalan dengan waktu 18:00 2. Mengambil transformasi ETL ke tabel dim_spbu Menjalankan tranformasi proses ETL ke tabel dim_spbu 3. Mengambil transformasi ETL ke tabel Menjalankan tranformasi proses ETL ke tabel dim_produk 4. Mengambil transformasi ETL ke tabel dim_time Menjalankan tranformasi proses ETL ke tabel dim_time
111 (lanjutan) 5. Mengambil transformasi ETL ke tabel fact_penjualan Menjalankan tranformasi proses ETL ke tabel fact_penjualan 6. Mail Failluer Mengirimkan notifikasi berupa email jika penjadwalan ETL dari salah satu tranformasi mengalami ke gagalan 7. Mail Success Mengirimkan notifikasi berupa email jika penjadwalan ETL dari seluruh tranformasi berjalan lancar 4.3.3. Implementasi Skema OLAP Tabel 4.5 Proses penjadwalan ETL OLAP (Online Analytical Processing) merupakan metode yang dirancang khusus dalam menganalisa data dari berbagai sisi secara cepat dengan menggunakan query khusus. Kerangka / model implementasi OLAP
112 dibangun dengan konsep multi dimensional dengan perspeksif cube, Dimension dan Measure. Implementasi perancangan konsep multi dimensional dalam penelitian ini menggunakan aplikasi Pentaho Schema Workbench yang merupakan bagian dari aplikasi PENTAHO Corp yang berbasis java dan bersifat free. Pentaho Schema Workbench adalah aplikasi GUI (graphical User Interface) yang digunakan untuk merancang skema XML. Schema yang terbentuk merupakan file text XML yang akan mendefinisikan model logis dari cube, hierarchies, levels, members dan pemetaan dari model ini ke table fisik dari database relational dengan pemodelan star schema yang sudah dirancang sebelumnya. koneksi ke database Klik menu Options kemudian klik connection Gambar 4.8 Tampilan Koneksi ke database mysql Klik Test Connection
113 Gambar 4.9 koneksi ke database penjualan_bbm sukses Klik OK Langkah langkah pembuatan skema implementasi OLAP data penjualan BBM dengan Pentaho Schema Workbench adalah : Mapping dimension dan hirarki level o Dimensi SPBU 1. Dimensi SPBU skema dimensi SPBU 2. Hirarki SPBU skema hirarki dimensi SPBU
114 (lanjutan) 3. Level SPBU skema level dimensi SPBU 4. Mapping Table Mapping Table dimensi SPBU Tabel 4.6 Mapping dimensi SPBU o Dimensi Produk 1. Dimensi produk skema dimensi produk
115 (lanjutan) 2. Hirarki produk skema hirarki dimensi produk 3. Level produk skema level dimensi produk 4. Mapping Table Mapping Table dimensi produk o Dimensi waktu Tabel 4.7 Mapping dimensi produk 1. Dimensi waktu skema dimensi waktu
116 (lanjutan) 2. Hirarki waktu skema hirarki dimensi waktu 3. Level waktu hari skema level dimensi waktu untuk hari 4. Level waktu bulan skema level dimensi waktu untuk bulan 5. Level waktu tahun skema level dimensi waktu untuk tahun
117 (lanjutan) 6. Mapping Table Mapping Table dimensi waktu Tabel 4.7 Mapping dimensi waktu o Cube 1. Cube Cube penjualan BBM 2. Mapping Table Mapping table ke fact_penjualan 3. Dimension usage SPBU Dimensi SPBU yang akan ditampilkan di OLAP
118 (lanjutan) 4. Dimension usage produk Dimensi produk yang akan ditampilkan di OLAP 5. Dimension usage time Dimensi waktu yang akan ditampilkan di OLAP 6. Measure Volume penjualan Measure volume penjualan BBM, dengan aggregasi = SUM
119 (lanjutan) 7. Measure Kuantitas Penjualan Measure Kuantitas Penjualan BBM, dengan aggregasi = COUNT 8. Measure rata - rata Penjualan Measure rata-rata Penjualan BBM, rumus : Volume penjualan/kuantitas transaksi Tabel 4.8 Mapping cube penjualan 4.3.3. Implementasi OLAP o Buka skema yang telah dibuat sebelumnya dengan Pentaho Schema Workbench kemudian klik menu file publish
120 Gambar 4.10 Publish skema OLAP Parameter yang di lakukan : Publish Password : pentaho User : tyo Password : zxczxc Gambar 4.11 Penyimpanan file publish Parameter yang di lakukan : Location : pilih folder penjualan_bbm yang sebelumnya telah dibuat di pentaho solusion JNDI Data Source : penjualan o Klik OK
121 Gambar 4.12 Publish sukses Berikut Source code XML yang telah dihasilkan melalui aplikasi Pentaho Schema Worbench : <Schema name="penjualan"> <Dimension type="standarddimension" visible="true" highcardinality="false" name="spbu"> <Hierarchy name="spbu" visible="true" hasall="true" allmembername="semua SPBU" primarykey="sk_spbu"> <Table name="dim_spbu"> </Table> <Level name="spbu" visible="true" column="kd_spbu" namecolumn="nama_spbu" type="string" uniquemembers="false" leveltype="regular" hidememberif="never"> </Level> </Hierarchy>
122 </Dimension> <Dimension type="standarddimension" visible="true" highcardinality="false" name="produk"> <Hierarchy name="produk" visible="true" hasall="true" allmembername="semua Produk" primarykey="sk_produk"> <Table name="dim_produk"> </Table> <Level name="produk" visible="true" column="kd_produk" namecolumn="produk" type="string" uniquemembers="false" leveltype="regular" hidememberif="never"> </Level> </Hierarchy> </Dimension> <Dimension type="timedimension" visible="true" highcardinality="false" name="time"> <Hierarchy name="time" visible="true" hasall="true" allmembername="semua Waktu" primarykey="sk_waktu"> <Table name="dim_time"> </Table> <Level name="tahun" visible="true" column="year" type="numeric" uniquemembers="false" leveltype="timeyears" hidememberif="never">
123 </Level> <Level name="bulan" visible="true" column="month_short_desc" type="string" uniquemembers="false" leveltype="timemonths" hidememberif="never"> </Level> <Level name="hari" visible="true" column="day_of_month" type="numeric" uniquemembers="false" leveltype="timedays" hidememberif="never"> </Level> </Hierarchy> </Dimension> <Cube name="penjualan" visible="true" cache="true" enabled="true"> <Table name="fact_penjualan"> </Table> <DimensionUsage source="spbu" name="spbu" visible="true" foreignkey="sk_spbu" highcardinality="false"> </DimensionUsage> <DimensionUsage source="produk" name="produk" visible="true" foreignkey="sk_produk" highcardinality="false"> </DimensionUsage> <DimensionUsage source="time" name="time" visible="true" foreignkey="sk_waktu" highcardinality="false">
124 </DimensionUsage> <Measure name="jumlah Pembelian" column="jumlah" aggregator="sum" visible="true"> </Measure> </Cube> </Schema> Untuk menampilkan analysis OLAP dengan skema yang telah dibuat, jalankan pentaho BI Server dengan langkah langkah sebagai berikut Klik start-pentaho.bat yang berada di lokasi C:\pentaho\biserver-ce- 4.5.0-stable\biserver-ce. Masuk browser dan ketik : http://localhost:8080/pentaho Masukkan user : tyo, dan password : zxczxc Klik OK Klik New Analysis penjualan OK Gambar 4.13 Analysis View
125 Gambar 4.14 Tampilan OLAP data penjualan_bbm 4.4. Pengujian 4.4.1. Pengujian Operasi Dasar OLAP Drill Down Proses drill down adalah proses yang digunakan untuk melihat secara lebih detil atau spesifik dari level tinggi ke level rendah pada setiap dimensi yang ada. Pengujian dilakukan pada level hirarki time yaitu dengan memilih dimensi time kita dapat melakukan drill down mulai dari tahun, bulan, sampai dengan tanggal hari, berikut tampilan drill down data penjualan BBM : Gambar 4.71 Drill Down per waktu
126 Query MDX oleh Pentaho BI Server: select NON EMPTY {[Measures].[Jumlah Pembelian]} ON COLUMNS, NON EMPTY Hierarchize(Crossjoin({[SPBU].[Semua SPBU]}, Union(Union(Union(Union(Union(Crossjoin({[Produk].[Semua Produk]}, {[Time].[Semua Waktu]}), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010]})), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010].[JAN]})), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010].[FEB]})), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010].[MAR]})), Crossjoin({[Produk].[Semua Produk]}, [Time].[2010].[JAN].Children)))) ON ROWS from [Penjualan] Drill Up Proses drill up adalah proses kebalikan dari drill down yang digunakan untuk meringkas dan manaikkan hirarki pada setiap dimensi. Untuk tampilan dimensi time level tanggal dalam hari dapat dikembalikan ke level bulan, seperti pada gambar 4.9 : Gambar 4.16 Drill Up per waktu Query MDX oleh Pentaho BI Server: select NON EMPTY {[Measures].[Jumlah Pembelian]} ON COLUMNS,
127 NON EMPTY Hierarchize(Crossjoin({[SPBU].[Semua SPBU]}, Union(Union(Union(Union(Crossjoin({[Produk].[Semua Produk]}, {[Time].[Semua Waktu]}), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010]})), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010].[JAN]})), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010].[FEB]})), Crossjoin({[Produk].[Semua Produk]}, {[Time].[2010].[MAR]})))) ON ROWS from [Penjualan] Slicing atau Dicing Proses Slicing adalah pemilihan data satu dimensi dari kubus data yang bersangkuta dan dicing adalah pemotongan slicing menjadi bagian subset data yang belih kecil dan dengan memilih dua dimensi atau lebih. Proses slicing atau dicing dilakukan dengan memilih OLAP Navigator yang ada di Pentaho proses slicingdicing dilakukan dengan memberikan ceklist pada data yang ingin ditampilkan, berikut tampilan gambar slicing dicing di slice berdasarkan waktu dan di dice per bulan : Gambar 4.17 Slicing-Dicing Query MDX oleh Pentaho BI Server: select NON EMPTY {[Measures].[Jumlah Pembelian]} ON COLUMNS,
128 NON EMPTY Crossjoin({[SPBU].[Semua SPBU]}, Crossjoin({[Produk].[Semua Produk]}, {[Time].[Semua Waktu], [Time].[2010], [Time].[2010].[JAN], [Time].[2010].[MAR]})) ON ROWS from [Penjualan] Pivot atau rotate Proses Slicing adalah proses untuk dapat melihat OLAP dari berbagai sudut pandang, Berikut gambar pivoting pada dimensi waktu Gambar 4.18 Pivoting Query MDX Pentaho BI Server: select NON EMPTY Crossjoin(Hierarchize(Union(Union({[Time].[Semua Waktu]}, [Time].[Semua Waktu].Children), [Time].[2010].Children)), {[Measures].[Jumlah Pembelian]}) ON COLUMNS, NON EMPTY {([Produk].[Semua Produk], [SPBU].[Semua SPBU])} ON ROWS from [Penjualan]
129 4.4.2. Pengujian Analisis Data Pengujian dilakukan untuk mengetahui kesesuian informasi yang dinginkan dengan implementasi yang telah dilakukan analisa data yang dilakukan pada implementasi OLAP untuk dapat penjualan BBM adalah : Produk yang paling banyak terjual atau sedikit terjual Untuk mengetahui produk yang terbanya dan sedikit bisa dilakukan dengan cara menampikan dimensi produk dan measure volume penjualan pada OLAP. Gambar 4.19 Tampilan banyaknya penjualan produk Query MDX : select NON EMPTY {[Measures].[Volume Penjualan]} ON COLUMNS, order ( [Produk].Children,[Measures].[Volume Penjualan],desc) ON ROWS from [Penjualan] Dari hasil yang didapat terlihat bahwa penjualan produk terbanyak berdasarkan volume penjualan adalah Solar, sedangkan penjualan produk terendah adalah pertamax plus.
130 SPBU yang memiliki penjualan terbanyak atau sedikit Untuk mengetahui SPBU yang memiliki Penjualan terbanyak atau sedikit bisa dilakukan dengan menampilkan dimensi spbu dan dimensi produk, dan melakukan drill down pada produk dan SPBU. Gambar 4.20 Tampilan penjualan produk tiap SPBU Query MDX : select NON EMPTY {[Produk].children} ON COLUMNS, order ([SPBU].children,[Measures].[Volume Penjualan],asc) on 1 from [Penjualan] where [Measures].[Volume Penjualan] Dari hasil yang didapat terlihat bahwa penjualan produk terbanyak berdasarkan volume penjualan terjadi di SPBU HarbourBay, dan SPBU yang penjualannya terendah adalah BolaiKolam. Penjualan terbanyak atau sedikit berdasarkan waktu
131 Untuk mengetahu kapan penjualan terjadi bisa dilakukan dengan menampilkan dimensi waktu dan produk, sehingga bisa dilihat perkembangan jumlah penjualan berdasarkan waktu. Gambar 4.21 Tampilan penjualan produk berdasarkan waktu Query MDX : select NON EMPTY {[Produk].children} ON COLUMNS, non empty [Time].[2010].children on 1 from [Penjualan] where [Measures].[Volume Penjualan] Dapat dilihat bahwa waktuyang memiliki penjualan terbanyak adalah bulan januari 2010. Membandingkan data penjualan produk bulan Februari 2010 dengan bulan sebelumnya. Untuk Membandingkan data penjualan dilakukan dengan inisialisasi measures dengan nama penjualan sebelumnya dengan memasukkan
132 rumus mengambil measures volume penjualan sebelumnya menggunkan fungsi prevmember, kemudian menampilkan measure volume penjualan dengan penjualan sebelumnya dan dimensi produk dan dimensi time yang di drill down. Gambar 4.22 Tampilan perbandingan penjualan berdasarkan waktu Query MDX : with member [Measures].[Penjualan sebelumnya] as ([Measures].[Volume Penjualan], [Time].prevmember) select {[Measures].[Volume Penjualan], [Measures].[Penjualan sebelumnya]} on 0, non empty crossjoin({[produk].children},{[time].[2010].[feb]})on 1 from [Penjualan] Dapat dilihat bahwa perbandingan penjualan dengan bulan sebelumnya terjadi penurunan penjualan. Volume penjualan, Kuantitas penjualan, rata rata penjualan berdasarkan produk dan SPBU
133 Untuk menampilkannya dilakukan dengan mengeluarkan seluruh measure dengan dimensi produk dan dimensi SPBU. Gambar 4.23 Tampilan seluruh measure dan dimensi penjualan BBM Query MDX : select [Measures].allmembers on 0, crossjoin([spbu].children,[produk].children) on 1 from [Penjualan] Dapat dilihat data yang telah di ringkas berdasarkan produk, SPBU dan waktu. Jumlah kuantitas transaksi penjualan berdasarkan SPBU dan produk yang telah terjual. Dilakukan dengan mengeluarkan dimensi produk dan dimensi SPBU, kemudian di pivot berdasarkan produk
134 Gambar 4.24 Tampilan jumlah kuantitas transaksi penjualan BBM Query MDX : select NON EMPTY {[Produk].children} ON COLUMNS, non empty [SPBU].children on 1 from [Penjualan] where [Measures].[Kuantitas Penjualan] Dapat dilihat bahwa kuantitas transaksi penjualan terbanyak terjadi pada SPBU HarbourBay dan produk Premium. Tren volume penjualan untuk seluruh produk bulan Januari 2010 Tren volume penjualan dilakukan dengan membuat inisialisasi measures yaitu tren penjualan dengan memasukkan rumus Penjualan setelah penjualan saat ini. Memberikan kondisi jika tren penjualan mengalami minus maka diberi warna merah, jika tren penjualan positif diberi warna hijau. Mengeluarkan dimensi waktu dengan periode Januari 2010 agar terlihat tren penjualan perhari berdasarkan tanggal transaksi penjualan BBM.
135 Gambar 4.25 Tampilan tren penjualan periode Januari 2010 Query MDX : with member [Measures].[Tren Penjualan] as (([Measures].[Volume Penjualan], [Time].nextmember)-([Measures].[Volume Penjualan], [Time].currentmember)), format_string=iif((([measures].[volume Penjualan], [Time].nextmember)-([Measures].[Volume Penjualan], [Time].currentmember))<1," #.00 style='red'",iif((([measures].[volum e Penjualan], [Time].nextmember)-([Measures].[Volume Penjualan],
136 [Time].currentmember))>1," #.00 style='green'"," #.00 "))select {[Measures].[Volume Penjualan], [Measures].[Tren Penjualan]} ON COLUMNS, [Time].[2010].[JAN].Children ON ROWS from [Penjualan] Dapat dilihat bahwa tren penjulan BBM pada bulan Januari 2010 berfluktuasi. Akumulasi volume penjualan Produk BBM Untuk mengetahui akumulasi penjualan BBM berdasarkan waktu dilakukan dengan cara inisialisasi measure dengan nama akumulasi penjualan dan diperlukan dimensi SPBU, dimensi produk, dan dimensi waktu dengan menggunakan fungsi year to date. Gambar 4.26 Tampilan akumulasi volume penjualan produk BBM Query MDX : with member [Measures].[Akumulasi Penjualan] as 'Sum(Ytd([Time].CurrentMember), [Measures].[Volume Penjualan])', format_string = " #.00 " select {[Measures].[Volume Penjualan], [Measures].[Akumulasi Penjualan]} ON COLUMNS, non empty {[Produk].[Semua Produk],[Produk].children}*[Time].[2010].children ON ROWS from [Penjualan]