PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
MENINGKATKAN UNJUK KERJA OLAP DENGAN TEKNIK BITMAP INDEXING DAN PEMROSESAN EFISIEN OLAP QUERY (Studi Kasus: Data Laporan Penyakit 2010 – 2012, Puskesmas Jebed, Pemalang) Skripsi
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh: Yosefina Agustin Nugraheni Bere 095314078
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013 i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
IMPROVING OLAP PERFORMANCE BY THE BITMAP INDEXING TECHNIQUE AND EFFICIENT PROCESSING OF OLAP QUERIES (Case Study: Disease Report For 2010 – 2012, Puskesmas Jebed, Pemalang)
A Thesis
Presented As A Partial Fulfillment of The Requrements To Obtain The Bachelor Degree Informatics Engineering Study Program
By: Yosefina Agustin Nugraheni Bere 095314078
INFORMATIC ENGINEER STUDY PROGRAM DEPARTMENT OF INFORMATIC ENGINEER FACULTY OF SCIENCE AND TECHNOLOGY UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN MOTO
“Berdoa dan Berusaha adalah Kunci Keberhasilan ”
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN
Kupersembahkan skripsi ini kepada:
Tuhan Yesus Kristus dan Bunda Maria atas lindungan dan kasih – Nya. Skripsi ini dipersembahkan juga untuk keluarga terutama orang tua dan nenek saya. Juga kepada semua teman seperjuangan yang tidak mungkin disebutkan satu persatu, terima kasih atas dukungan dan doanya. Serta terima kasih banyak untuk semua orang yang juga terlibat dan mendukung dalam pembuatan skripsi ini sehingga dapat selesai tepat waktu.
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRAKSI
OLAP (Online Analytical Processing) merupakan teknologi yang memproses
data
di
dalam
gudang
data
menggunakan
struktur
multidimensi, menyediakan jawaban yang cepat untuk query analisis yang kompleks. OLAP merupakan alat atau tools yang digunakan untuk memproses gudang data. Untuk melakukan pemrosesan query pada OLAP menggunakan OLAP query atau biasa disebut dengan MDX (Multi Dimensional Expression). Gudang data menangani data dalam jumlah yang sangat besar. Dari dasar tersebut muncul sebuah permasalahan dalam penanganan query dan pengaruhnya terhadap unjuk kerja dari OLAP. Masalah tersebut adalah menemukan OLAP query yang efisien untuk digunakan dalam pemrosesan query pada gudang data. Dalam penelitian ini menggunakan dua teknik yang diharapkan dapat membantu mengefisiensikan OLAP query. Pertama, dengan mencari query yang efisien dengan menggunakan cuboid. Query efisien adalah query yang dapat dijalankan dalam waktu yang singkat serta tidak menggunakan sumber daya sistem secara berlebihan. Setelah mendapatkan query efisien menggunakan cuboid, maka untuk semakin mempercepat waktu akses dari query efisien adalah dengan teknik yang kedua yaitu dengan melakukan indexing dengan menggunakan bitmap indexing. Menggunakan teknik efisiensi pemrosesan OLAP query semakin mempercepat waktu proses OLAP query. Penerapan teknik bitmap indexing yang ada pada OLAP query efisien semakin mempercepat waktu proses OLAP query. Penelitian ini memperlihatkan dengan menggunakan kedua teknik tersebut, hasil akhir yang diperoleh adalah semakin meningkatnya unjuk kerja OLAP.
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT
OLAP (Online Analytical Processing) is a technology which processes the data in the data warehouse using multidimensional structure, providing quick answers to complex analytical queries. OLAP is a tool or tools that are used to process the data warehouse. To perform on OLAP query processing using OLAP query or commonly referred to as MDX (Multi Dimensional Expression). The data in the data warehouse to handle a very large number. Of the base appears a problem in the handling of queries and their effects on the performance of OLAP. The problem is to find an efficient OLAP query processing to be used in a query to the datawarehouse In this research with using two techniques, expected to make the processing OLAP queries efficiently. First, searching efficient query using Cuboid. Efficient query is a query that can be executed in a short time and not using system resources excessively. After getting an efficient query, to accelerate access time of efficient query is using the second technique. The second technique will indexing the table by using the bitmap indexing. OLAP query processing efficiency techniques cause speed up of the OLAP queries process. The application of bitmap indexing technique also speed up the OLAP queries process. The result of this research, with using OLAP query processing technique and bitmap indexing technique, shows the increase of the OLAP performance.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR
Puji dan syukur kepada Tuhan karena atas segala berkat dan bimbinganNya, penulis dapat menyelesaikan tugas akhir ini dengan baik. Tugas akhir ini ditulis untuk memenuhi salah satu syarat untuk memperoleh gelar Sarjana Komputer dari Program Studi Teknik Informatika Universitas Sanata Dharma. Penulis menyadari bahwa selesainya tugas akhir ini tak lepas dari bantuan orang – orang di sekitar penulis. Oleh sebab itu, penulis mengucapkan terima kasih kepada: 1. Tuhan Yesus Kristus dan Bunda Maria yang selalu membimbing dan menuntun penulis dalam menyelesaikan tugas akhir ini dan juga karena telah mengabulkan doa penulis sehingga tugas akhir ini dapat selesai dengan baik. 2. Ibu Ridowati Gunawan, S.Kom, M.T., selaku dosen pembimbing yang telah meluangkan waktu, ide, serta pikiran untuk membantu penulis dalam menyelesaikan tugas akhir ini. 3. Ibu P. H. Prima Rosa, S.Si., M.Sc., selaku ketua dosen penguji yang telah meluangkan waktu untuk menguji tugas akhir ini. 4. Kepala Puskesmas Jebed, dr. Setiawan Raharjana, dan seluruh keluarga besar Puskesmas Jebed, yang telah membantu saya dalam mendapatkan data penelitian.
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5. Keluarga saya, Bapak Silverius, Ibu Kusnarti, adik-adik saya yang selalu mendoakan dan memberi dukungan kepada penulis sehingga tugas akhir ini dapat selesai dengan baik dan tepat pada waktunya. 6. Vincentius Ardha, yang selalu memberi dukungan semangat dan menemani saya disaat mengalami kesulitan dalam mengerjakan tugas akhir ini. Serta semua orang yang tidak mungkin saya sebutkan
satu
persatu
yang
selalu
memberikan
doa
dukungannya.
Yogyakarta, 14 Agustus 2013
Penulis
xi
dan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN PERSETUJUAN ................................................................................ ii HALAMAN PENGESAHAN ................................ Error! Bookmark not defined. PERNYATAAN KEASLIAN KARYA ................ Error! Bookmark not defined. HALAMAN MOTO .............................................................................................. iv HALAMAN PERSEMBAHAN ............................................................................ vi ABSTRAKSI ........................................................................................................ vii ABSTRACT ......................................................................................................... viii LEMBAR PERNYATAAN PERSETUJUAN ...... Error! Bookmark not defined. KATA PENGANTAR ............................................................................................ x DAFTAR ISI ......................................................................................................... xii DAFTAR GAMBAR ............................................................................................ xv DAFTAR TABEL ................................................................................................ xvi DAFTAR GRAFIK ............................................................................................ xviii BAB I ...................................................................................................................... 1 PENDAHULUAN .................................................................................................. 1 1.1.
Latar Belakang ......................................................................................... 1
1.2.
Rumusan dan Batasan Masalah ................................................................ 3
1.3.
Tujuan Penelitian ...................................................................................... 4
1.4.
Manfaat Penelitian .................................................................................... 5
1.5.
Metodologi Penelitian .............................................................................. 5
1.6.
Luaran ....................................................................................................... 6
1.7.
Sistematika Penulisan ............................................................................... 6
BAB II ..................................................................................................................... 8 LANDASAN TEORI .............................................................................................. 8 2.1.
Teori Umum ............................................................................................. 8
2.1.1.
Profil Puskesmas ............................................................................... 8
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
xiii
2.1.2.
Pengertian Data Warehouse............................................................ 10
2.1.3.
Data Mining .................................................................................... 14
2.1.4.
Langkah Dalam Membangun Gudang Data ................................... 20
2.1.5.
Kettle / Pentaho Data Integration .................................................... 21
2.1.6.
OLAP (On-Line Analytical Processing) ......................................... 23
2.1.7.
Database ......................................................................................... 27
2.2.
Teori Khusus .......................................................................................... 28
2.2.1.
Efisiensi OLAP Query .................................................................... 28
2.2.2.
Bitmap Indexing .............................................................................. 33
2.2.3.
MDX (Multi Dimensional Expression)........................................... 35
BAB III ................................................................................................................. 39 ANALISIS DAN PERANCANGAN .................................................................... 39 3.1.
Deskripsi Kasus ...................................................................................... 39
3.2.
Data ........................................................................................................ 40
3.3.
Analisis Kebutuhan ................................................................................ 42
3.4.
Membangun Gudang Data...................................................................... 43
3.4.1.
Membaca Data Legacy.................................................................... 44
3.4.2.
Menggabungkan Data dari Berbagai Sumber ................................. 44
3.4.3.
Memindahkan Data ke Server Gudang Data ................................... 45
3.4.4.
Memecah Gudang Data dalam Tabel Fakta dan Tabel Dimensi..... 48
3.5.
Efisiensi Pemrosesan OLAP Query Menggunakan Cuboid ................... 52
3.6.
Menerapkan Bitmap Indexing pada Qef ................................................. 59
3.7.
Langkah Pengujian ................................................................................. 60
3.8.
Perancangan Tampilan ........................................................................... 62
BAB IV ................................................................................................................. 64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
xiv
IMPLEMENTASI ................................................................................................. 64 4.1.
Spesifikasi Perangkat Keras dan Lunak ................................................. 64
4.2.
Langkah Membangun Gudang Data ....................................................... 64
4.2.1.
Membaca Data Legacy.................................................................... 64
4.2.2.
Menggabungkan Data dari Berbagai Sumber Terpisah .................. 69
4.2.3.
Memindahkan Data ke Server Gudang Data ................................... 69
4.2.4.
Memecah Gudang Data dalam Tabel Fakta dan Tabel Dimensi..... 72
4.3.
OLAP...................................................................................................... 77
4.4.
Tampilan Hasil Query I .......................................................................... 80
4.5.
Tampilan Hasil Query II......................................................................... 83
BAB V................................................................................................................... 85 HASIL DAN PEMBAHASAN ............................................................................. 85 5.1.
Langkah Pengujian ................................................................................. 85
5.2.
Menentukan Query Efisien Menggunakan Cuboid ................................ 87
5.2.1.
Query I ............................................................................................ 88
5.2.2.
Query II ........................................................................................... 94
5.3.
Pengujian Qef Menggunakan Bitmap Indexing ...................................... 99
5.3.1.
Bitmap Indexing pada Query I ...................................................... 101
5.3.2.
Bitmap Indexing pada Query II ..................................................... 103
BAB VI ............................................................................................................... 107 KESIMPULAN DAN SARAN ........................................................................... 107 6.1.
Kesimpulan ........................................................................................... 107
6.2.
Saran ..................................................................................................... 108
DAFTAR PUSTAKA ......................................................................................... 109
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Gambar 3. 1 Contoh data ..................................................................................... 41 Gambar 3. 2 Diagram use case ............................................................................ 43 Gambar 3. 3 Ilustrasi menggabungkan data dari berbagai sumber ...................... 45 Gambar 3. 4 Skema Bintang ................................................................................ 49 Gambar 3. 5 Hirarki yang terbentuk .................................................................... 53 Gambar 3. 6 Perancangan Tampilan .................................................................... 62
Gambar 4. 1 Tampilan Awal ................................................................................ 80 Gambar 4. 2 Tampilan hasil dari Qb .................................................................... 81 Gambar 4. 3 Tampilan hasil Qef .......................................................................... 81 Gambar 4. 4 Tampilan hasil dari Qp1 .................................................................. 82 Gambar 4. 5 Tampilan hasil dari Qp2 .................................................................. 82 Gambar 4. 6 Tampilan Awal dari query II ........................................................... 83 Gambar 4. 7 Tampilan hasil dari Qb .................................................................... 83 Gambar 4. 8 Tampilan hasil dari Qef ................................................................... 84
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Tabel 3. 1 Langkah membangun gudang data ...................................................... 43 Tabel 3. 2 Proses memindahkan data ke dalam tabel ms_penyakit ...................... 46 Tabel 3. 3 Keterangan atau penjelasan isi dari data penyakit ............................... 46 Tabel 3. 4 Proses memindahkan data ke dalam tabel ms_kelompok_umur ......... 47 Tabel 3. 5 Keterangan atau penjelasan isi dari data kelompok umur.................... 48 Tabel 3. 6 Proses pembuatan dimensi nama penyakit .......................................... 50 Tabel 3. 7 Proses pembuatan dimensi kelompok umur......................................... 50 Tabel 3. 8 Proses pembuatan dimensi waktu ........................................................ 51 Tabel 3. 9 Qb pada query I .................................................................................... 54 Tabel 3. 10 Cuboid yang mungkin pada query I ................................................... 55 Tabel 3. 11 Query yang digunakan pada query I .................................................. 56 Tabel 3. 12 Qb pada query II ................................................................................ 57 Tabel 3. 13 Cuboid yang mungkin pada query II ................................................. 57 Tabel 3. 14 Query yang digunakan pada query II ................................................. 58 Tabel 3. 15 Bitmap indexing yang digunakan ....................................................... 60 Tabel 3. 16 Kombinasi bitmap indexing ............................................................... 61
Tabel 4. 1 Preprocessing dengan menghilangkan data yang bukan penyakit ....... 66 Tabel 4. 2 Preprocessing dengan menambah kolom bulan .................................. 67 Tabel 4. 3 Preprocessing dengan menambah kolom tahun .................................. 68 Tabel 4. 4 ms_penyakit ......................................................................................... 70 Tabel 4. 5 ms_kelompok_umur............................................................................. 71 Tabel 4. 6 tr penyakit ............................................................................................ 73 Tabel 4. 7 dim nama penyakit ............................................................................... 74 xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
xvii
Tabel 4. 8 dim kelompok umur ............................................................................. 75 Tabel 4. 9 dim waktu ............................................................................................. 76 Tabel 4. 10 tabel fakta ........................................................................................... 77 Tabel 4. 11 Listing skema penyakit ...................................................................... 78
Tabel 5. 1 Query I ................................................................................................. 88 Tabel 5. 2 Hasil pencatatan waktu semua query pada query 1 ............................. 91 Tabel 5. 3 Query II ................................................................................................ 94 Tabel 5. 4 Hasil pencatatan waktu semua query pada query II ............................. 96 Tabel 5. 5 Kombinasi bitmap indexing ................................................................. 99 Tabel 5. 6 Hasil pencatatan waktu Qef menggunakan bitmap indexing pada query I ........................................................................................................................... 101 Tabel 5. 7 Hasil pencatatan waktu Qef menggunakan bitmap indexing pada query II .......................................................................................................................... 103 Tabel 5. 8 Waktu akses Qef pada query I dan query II ....................................... 105
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GRAFIK Grafik 5. 1 Grafik rerata waktu akses Qef dan Qb ............................................... 92 Grafik 5. 2 Grafik rerata pencatatan waktu semua query pada query I................ 93 Grafik 5. 3 Grafik rerata waktu akses Qef dan Qb ............................................... 97 Grafik 5. 4 Grafik rerata pencatatan waktu semua query pada query II .............. 98 Grafik 5. 5 Grafik rerata waktu akses Qef pada query I dengan kombinasi bitmap indexing ............................................................................................................... 102 Grafik 5. 6 Grafik rerata waktu akses Qef pada query II dengan kombinasi bitmap indexing ............................................................................................................... 104
xviii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN
1.1. Latar Belakang
Kebutuhan akan media penyimpanan yang aman, fleksibel serta dapat diakses kapan saja dan dimana saja merupakan kebutuhan utama user dan juga tuntutan perkembangan jaman. Hal tersebut dirasa belum cukup jika tidak diimbangi dengan kemampuan untuk mengolah data dengan jumlah banyak dengan cara yang efektif dan efisien. Untuk itu tidak cukup jika data diolah dengan pengelompokkan atau dibuat hanya dalam bentuk file fisik. Saat ini telah banyak bermunculan alat atau tools untuk membantu user dalam melakukan pengolahan data. Salah satunya adalah media penyimpanan yang biasa disebut dengan database (basis data). Basis data menurut C.J Date merupakan kumpulan data yang saling berelasi, diatur dan diorganisasikan dalam suatu cara yang sistematis untuk mengurangi atau menekan duplikasi data dan memberikan informasi pada sejumlah pemakai (user) pada beberapa aplikasi. Sedangkan, menurut
Connoly
basis data adalah kumpulan data yang secara logika saling berelasi (termasuk struktur data), didesain untuk memenuhi kebutuhan informasi suatu organisasi.
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
OLAP (Online Analytical Processing) merupakan teknologi yang memproses
data
di
dalam
gudang
data
menggunakan
struktur
multidimensi, menyediakan jawaban yang cepat untuk query analisis yang kompleks. OLAP merupakan alat atau tools yang digunakan untuk memproses gudang data. Pengertian gudang data, menurut W.H. Inmon dan Richard D.H., (data warehouse) adalah koleksi data yang mempunyai sifat berorientasi subjek, terintegrasi, time-variant, dan bersifat tetap dari koleksi data dalam mendukung proses pengambilan keputusan manajemen. Di dalam gudang data, untuk melakukan pengolahan data dibutuhkan sebuah query. Query adalah kemampuan untuk menampilkan suatu data dari database dimana mengambil dari tabel-tabel yang ada di database (Andri, 2012). Ada beberapa jenis query, sebagai contoh DMX, MDX, SQL, Xquery, Xpath. SQL query digunakan untuk mengolah data pada basis data, sedangkan pada OLAP menggunakan OLAP query. OLAP query merupakan query yang digunakan untuk database OLAP. OLAP query juga sering disebut dengan MDX (en.wikipedia.org). Gudang data menangani data dalam jumlah yang sangat besar. Dari dasar tersebut muncul sebuah permasalahan dalam penanganan query. Masalah tersebut adalah menemukan OLAP query yang efisien untuk digunakan dalam pemrosesan query pada gudang data. Banyak cara atau metode yang dilakukan untuk menyelesaikan masalah tersebut. Cara termudah yang dapat dilakukan adalah dengan melakukan indexing.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3
Indexing sangat membantu dalam mempercepat pencarian, sehingga unjuk kerja aplikasi dapat semakin tinggi. Metode bitmap indexing merupakan salah satu metode pada indexing. Efisiensi query, mempengaruhi unjuk kerja sebuah aplikasi, sehingga perlu dilakukan pengujian terhadap query yang dapat dikatakan sebagai query efisien. Sebuah query dapat dikatakan efisien jika dapat dijalankan dalam waktu yang singkat serta tidak menggunakan sumber daya sistem secara berlebihan. Query efisien tersebut akan mempercepat waktu akses query ke database serta meningkatkan unjuk kerja sistem. Petugas Puskesmas Jebed, memerlukan sebuah alat atau tools yang dapat membantu dalam mengefisienkan kinerja, khususnya untuk melakukan rekap penyakit. Pendekatan ilmu pada gudang data, dapat diterapkan pada kasus tersebut dengan membangun aplikasi gudang data untuk data penyakit. Efisiensi pemrosesan OLAP query dan penggunaan bitmap indexing diharapkan dapat membantu mempercepat kinerja petugas dalam melakukan rekap penyakit.
1.2. Rumusan dan Batasan Masalah
Dari latar belakang masalah yang telah dijabarkan, muncul beberapa permasalahan yang dapat dirumuskan sebagai berikut: 1. Bagaimana cara untuk meningkatkan unjuk kerja OLAP ?
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
2. Bagaimana cara menentukan query efisien beserta dengan bitmap indexing yang paling tepat? Berdasarkan pada rumusan masalah yang ada, dapat diambil batasan sebagai berikut : 1. Penelitian hanya dilakukan di Puskesmas Jebed Pemalang, Kabupaten Pemalang, Jawa Tengah. 2. Data yang digunakan untuk membuat OLAP query adalah data laporan penyakit Puskesmas Jebed, dari tahun 2010 sampai 2012. 3. Query yang digunakan adalah OLAP query (MDX). 4. Penentuan query efisien menggunakan cuboid. 5. Indeks yang digunakan dalam penelitian adalah bitmap indexing. 6. Pengujian unjuk kerja dari OLAP berdasarkan waktu akses dari masing-masing OLAP query yang menggunakan indeks maupun tanpa indeks. 7. Dalam penelitian ini, tampilan yang ada masih berupa prototype.
1.3. Tujuan Penelitian
Tujuan yang diharapkan dari penelitian ini adalah dari penelitian ini adalah mengetahui bagaimana cara meningkatkan unjuk kerja OLAP dengan menggunakan bitmap indexing dan query efisien dengan menggunakan cuboid.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
1.4. Manfaat Penelitian
Manfaat yang diharapkan adalah dapat menentukan query efisien sebelum menggunakan query tersebut untuk melakukan pemrosesan data dengan menggunakan cuboid serta dapat menentukan bitmap indexing yang cocok untuk query efisien tersebut. Dengan demikian unjuk kerja dari OLAP meningkat dan kinerja dari petugas dapat lebih optimal.
1.5. Metodologi Penelitian
Metodologi yang digunakan adalah sebagai berikut: 1. Melakukan pengumpulan serta penggabungan data, karena data yang ada dalam bentuk file dan dalam bentuk berkas laporan. 2. Merancang dan membuat gudang data dari data laporan penyakit Tahapan yang dilakukan sebagai berikut : a.
Membaca data legacy
b.
Menggabungkan data dari berbagai sumber yang terpisah
c.
Memindahkan data ke server gudang data
d.
Memecah gudang data ke dalam tabel fakta dan dimensi
3. Membuat cube dengan struktur yang paling baik 4. Menentukan tujuan dari query yang akan dilakukan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6
a. Menentukan query yang dianggap efisien dan query lain yang mungkin untuk mencari informasi dengan menggunakan cuboid. 5. Membuktikan query yang dianggap efisien berdasarkan kecepatan waktu akses masing-masing query. 6. Membuat indeks dengan menggunakan bitmap indexing. 7. Menghitung kecepatan yang dihasilkan oleh masing-masing query baik yang menggunakan indeks maupun tanpa indeks.
1.6. Luaran
Luaran yang diharapkan dari penelitian ini adalah aplikasi gudang data dengan menerapkan bitmap indexing serta query yang efisien.
1.7. Sistematika Penulisan
Sistematika penulisan adalah sebagai berikut; -
BAB I berisi pendahuluan, yang membahas latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat penulisan, luaran yang diharapkan serta sistematika penulisan.
-
BAB II berisi landasan teori. Bab ini menjelaskan mengenai teori-teori dasar dan metode-metode yang digunakan untuk mendukung perancangan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
Teori yang digunakan diantaranya adalah gudang data, OLAP dan OLAP query. -
BAB III pada bab ini berisi analisis dan perancangan sistem. Dalam bab ini dibahas mengenai analisis permasalahan serta perancangan sistem yang digunakan untuk menyelesaikan masalah yang ada.
-
BAB IV berisi tentang implementasi sistem berdasar pada rancangan yang telah dibuat.
-
BAB V berisi tentang hasil penelitian dan pembahasan dari penelitian yang telah dilakukan.
-
Bab VI berisi kesimpulan dari analisis berdasar metode dan literatur yang ada, serta saran yang diberikan untuk pengembangan sistem.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II LANDASAN TEORI
2.1. Teori Umum
2.1.1. Profil Puskesmas
Puskesmas Jebed adalah salah satu unit pelayanan kesehatan di Kabupaten Pemalang. Terletak di Kecamatan Taman, di desa Jebed Selatan. Wilayah kerjanya terdiri atas 11 desa dengan jumlah penduduk sekitar 78.000 jiwa. Desa yang ditangani adalah sebagai berikut: 1. Jebed Utara 2. Jebed Selatan 3. Cibelok 4. Kaligelang 5. Penggarit 6. Kejambon 7. Sokawangi 8. Pener 9. Gondang 10. Jerakah 11. Sitemu
8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
Puskesmas Jebed juga berperan aktif dalam upaya pemerintah dalam meningkatkan peran teknologi dalam dunia kesehatan. Di Kabupaten Pemalang, hanya 2 puskesmas yang ikut berperan pada pemanfaatan kemajuan teknologi, yaitu Puskesmas Jebed dan Puskesmas Kebondalem. Puskesmas Jebed memiliki visi dan misi. Visi dan misi puskesmas menjadi acuan untuk meningkatkan kesehatan masyarakat. Cakupan peningkatan kesehatan dikhususkan pada wilayah cakupan Puskesmas Jebed.
2.1.1.1.
Visi
“Terdepan dalam Mewujudkan Kabupaten Pemalang yang Sehat dengan didukung Pemberdayaan Masyarakat dan Kemitraan”
2.1.1.2.
Misi
1. Meningkatkan pelayanan kesehatan yang berkualitas dan terjangkau. 2. Meningkatkan sumberdaya kesehatan secara merata baik kuantitas maupun kualitas. 3. Menggerakan dan meningkatkan pemberdayaan masyarakat, dunia swasta dan kerjasama lintas sektor. 4. Mengoptimalkan kebijakan dan manajemen pembangunan kesehatan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
2.1.2. Pengertian Data Warehouse
Gudang data menggeneralisasi dan mengkonsolidasikan data dalam ruang multidimensi. Pembuatan gudang data yang meliputi pembersihan data, integrasi data, dan transformasi data dan dapat dilihat sebagai langkah preprocessing penting untuk data mining. Selain itu, gudang data menyediakan Online Analytical Processing (OLAP). Pengertian dari gudang data itu sendiri dapat dilihat dari berbagai macam pandangan. Menurut W.H. Inmon dan Richard D.H., data warehouse adalah koleksi data yang mempunyai sifat berorientasi subjek, terintegrasi, time-variant, dan bersifat tetap dari koleksi data dalam mendukung proses pengambilan keputusan manajemen. Menurut Vidette Poe, data warehouse merupakan database yang bersifat analisis dan read only yang digunakan sebagai fondasi dari sistem penunjang keputusan. Dari berbagai definisi dapat disimpulkan bahwa data warehouse adalah database yang saling bereaksi yang dapat digunakan untuk query dan analisis, bersifat orientasi subjek, terintegrasi, time-variant, tidak berubah yang digunakan untuk membantu para pengambil keputusan. Gudang data juga memiliki karakteristik memiliki empat karakteristik
utama
yakni
subject-oriented
(berorientasi
subyek),
Integrated (terintegrasi), Time Variant (rentang waktu) dan Non-Volatile. Berikut ini adalah penjelasan dari masing-masing karakteristik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
a. Berorientasi menganalisis
subjek data
artinya
data
berdasarkan
11
warehouse
didesain
untuk
subyek-subyek
tertentu
dalam
organisasi, bukan pada proses atau fungsi aplikasi tertentu. Data warehouse menyimpan data yang bersifat sebagai penunjang suatu keputusan. Data yang disimpan dalam data warehouse berorientasi subjek bukan terhadap prosesnya. Untuk lebih jelasnya berikut ini adalah perbedaan dari data operasional dengan data warehouse
Gambar 2. 1 Perbedaan Basis Data Operasional dengan Data Warehouse
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12
b. Terintegrasi sebuah data warehouse biasanya dibuat dari berbagai macam sumber data, seperti relational database, file, dan on-line transactions records. Pembersihan dan integrasi data digunakan untuk menjaga konsistensi data dalam penamaan, encoding structures, attribute measures dan lain-lain c. Time-Variant data disimpan untuk menyediakan informasi dari perspektif sejarah (Misalnya, data dari 5-10 tahun terakhir). Data yang di data warehouse dapat dikatakan akurat atau valid pada rentang waktu tertentu d. NonVolatile setiap kali proses perubahan, data akan di tampung dalam tiap-tiap waktu. Jadi tidak di perbaharui terus menerus atau tidak di update secara real time tetapi di refresh dari sistem operasional secara reguler. Data warehouse tidak memerlukan pemrosesan transaksi dan recovery. Hanya ada dua operasi initial loading of data dan access of data. ( Jiawei et all, 2006)
Gudang data juga memiliki arsitektur tertentu. Data yang digunakan untuk membuat gudang data diperoleh dari berbagai sumber oleh sebab itu sebelum data tersebut digunakan untuk membuat gudang data perlu dilakukan proses dengan menggunakan ETL (Extract,Transform, Load). Untuk lebih jelasnya dapat dilihat pada Gambar 2.2.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
Gambar 2. 2 Arsitektur Gudang Data
Didalam gudang data terdapat tiga proses besar yakni ETL (Extract, Transform, Load). Berikut ini adalah penjelasan singkat mengenai ETL.(
a. Extract proses pengambilan data yang diperlukan dari sumber data warehouse dan selanjutnya dimasukkan pada staging area untuk diproses pada tahap berikutnya .Pada fungsi ini, akan banyak berhubungan dengan berbagai tipe sumber data. Format data, mesin yang berbeda, software dan arsitektur yang tidak sama. Sehingga sebelum
proses
ini
dilakukan,
sebaiknya
perlu
didefinisikan
requirement terhadap sumber data yang dibutuhkan untuk lebih memudahkan pada extraction data ini. b. Transform, pada proses transaksional data disimpan dalam berbagai format sehingga jarang ditemui data yang konsisten antara aplikasi-
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
aplikasi yang ada. Transformasi data ditujukan untuk mengatasi masalah ini. Dengan proses transformasi data melakukan standarisasi terhadap data pada satu format yang konsisten. Beberapa contoh ketidak konsistenan data tersebut dapat diakibatkan oleh tipe data yang berbeda, data length dan lain sebagainya. c. Load, memindahkan data ke data warehouse. Ada dua load data yang dapat dilakukan pada data warehouse. Pertama adalah inisial load, proses ini dilakukan pada saat telah selesai mendesain dan membangun data warehouse. Data yang dimasukkan tentunya akan sangat besar dan memakan waktu yang relatif lebih lama. Kedua Incremental load, dilakukan ketika data warehouse telah dioperasikan. Dengan melakukan data extraction, transformation dan loading terhadap data tersebut.
2.1.3. Data Mining
Sebagai suatu rangkaian proses, data mining dapat dibagi menjadi beberapa tahap yang diilustrasikan di Gambar 2.3. Tahap-tahap tersebut
bersifat
interaktif, pemakai terlibat langsung atau dengan
perantaraan knowledge base. Sebelum membahas data mining secara detail berikut ini dibahas sekilas mengenai knowledge discovery. Menurut Jiawei Han dan Micheline Kamber Knowledge discovery merupakan sebuah proses
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
meliputi data cleaning, integrasi data, seleksi data, transformasi data, penambangan data, evaluasi pola dan knowledge presentation.
Gambar 2. 3 Tahap pada data mining
Tahap-tahap data mining ada 6 yaitu : 1. Pembersihan data (data cleaning)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
Pembersihan data merupakan proses menghilangkan noise dan data yang tidak konsisten atau data tidak relevan. Pada umumnya data yang diperoleh, baik dari database suatu perusahaan maupun hasil eksperimen, memiliki isian-isian yang tidak sempurna seperti data yang hilang, data yang tidak valid atau juga hanya sekedar salah ketik. Selain itu, ada juga atribut-atribut data yang tidak relevan dengan hipotesa data mining yang dimiliki. Data-data yang tidak relevan itu juga lebih baik dibuang. Pembersihan data juga akan mempengaruhi performasi dari teknik data mining karena data yang ditangani akan berkurang jumlah dan kompleksitasnya. 2. Integrasi data (data integration) Integrasi data merupakan penggabungan data dari berbagai database ke dalam satu database baru. Tidak jarang data yang diperlukan untuk data mining tidak hanya berasal dari satu database tetapi juga berasal dari beberapa database atau file teks. Integrasi data dilakukan pada atribut-aribut yang mengidentifikasikan entitasentitas yang unik seperti atribut nama, jenis produk, nomor pelanggan dan lainnya. Integrasi data perlu dilakukan secara cermat karena kesalahan pada integrasi data bisa menghasilkan hasil yang menyimpang dan bahkan menyesatkan pengambilan aksi nantinya. Sebagai contoh bila integrasi data berdasarkan jenis produk ternyata menggabungkan produk dari kategori yang berbeda maka akan didapatkan korelasi antar produk yang sebenarnya tidak ada.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
17
3. Seleksi Data (Data Selection) Data yang ada pada database sering kali tidak semuanya dipakai, oleh karena itu hanya data yang sesuai untuk dianalisis yang akan diambil dari database. Sebagai contoh, sebuah kasus yang meneliti faktor kecenderungan orang membeli dalam kasus market basket analysis, tidak perlu mengambil nama pelanggan, cukup dengan id pelanggan saja. 4. Transformasi data (Data Transformation) Data diubah atau digabung ke dalam format yang sesuai untuk diproses dalam data mining. Beberapa metode data mining membutuhkan format data yang khusus sebelum bisa diaplikasikan. Sebagai contoh beberapa metode standar seperti analisis asosiasi dan clustering hanya bisa menerima input data kategorikal. Karenanya data berupa angka numerik yang berlanjut perlu dibagibagi menjadi beberapa interval. Proses ini sering disebut transformasi data. 5. Proses penambangan data Merupakan suatu proses utama saat metode diterapkan untuk menemukan pengetahuan berharga dan tersembunyi dari data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
6. Evaluasi pola (pattern evaluation) Untuk mengidentifikasi pola-pola menarik kedalam knowledge based yang ditemukan. Dalam tahap ini hasil dari teknik data mining berupa pola-pola yang khas maupun model prediksi dievaluasi untuk menilai apakah hipotesa yang ada memang tercapai. Bila ternyata hasil yang diperoleh tidak sesuai hipotesa ada beberapa alternatif yang dapat diambil seperti menjadikannya
umpan
balik untuk memperbaiki
proses data mining, mencoba metode data mining lain yang lebih sesuai, atau menerima hasil ini sebagai suatu hasil yang diluar dugaan yang mungkin bermanfaat. 7. Presentasi pengetahuan (knowledge presentation) Merupakan
visualisasi
dan penyajian
pengetahuan
mengenai
metode yang digunakan untuk memperoleh pengetahuan yang diperoleh pengguna. Tahap terakhir dari proses data mining adalah bagaimana memformulasikan keputusan atau aksi dari hasil analisis yang didapat. Adakalanya hal ini harus melibatkan orang-orang yang tidak memahami data mining. Karenanya presentasi hasil data mining dalam bentuk pengetahuan yang bisa dipahami semua orang adalah satu tahapan yang diperlukan dalam proses data mining. Dalam
presentasi
ini,
visualisasi
juga
bisa
membantu
mengkomunikasikan hasil data mining. Secara sederhana data mining dapat diartikan sebagai proses mengekstrasi atau “menambang” pengetahuan dari sejumlah data. Banyak
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
orang melihat data mining hanya sebagai langkah penting dalam proses penemuan pengetahuan. Penemuan pengetahuan sebagai suatu proses digambarkan pada gambar berikut ini : (Jiawei et all, 2006)
Gambar 2. 4 Architecture of a Typical Data mining System
Pengertian lain dari data mining, sering juga disebut knowledge discovery
in
database
(KDD),
adalah
kegiatan
yang
meliputi
pengumpulan, pemakaian data historis untuk menemukan keteraturan, pola atau hubungan dalam data berukuran besar. Keluaran dari data mining ini bisa dipakai untuk memperbaiki pengambilan keputusan dimasa depan. Istilah paterrn recognition sekarang jarang digunakan karena ia merupakan bagian dari data mining. (Budi Santosa, 2007)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
Gambar 2. 5 Data mining merupakan irisan dari berbagai disiplin (Budi Santosa, 2007)
2.1.4. Langkah Dalam Membangun Gudang Data
Gudang data dapat diterapkan dengan mengikuti langkah-langkah pokok seperti berikut ini (Wasito, 2010). 1. Membaca data legacy Memperhatikan bagian-bagian data yang perlu untuk dibersihkan. 1. Menggabungkan data dari berbagai sumber terpisah Setiap jenis informasi yang diinginkan mungkin berasal dari beberapa file yang harus digabungkan untuk digunakan pada gudang data. 2. Memindahkan data dari sumber ke server gudang data Membuat standarisasi format copy-kan data dari sumber sekaligus data dibuat bersih (clean). 3. Memecah gudang data dalam tabel fakta dan tabel dimensi Tabel fakta dan tabel dimensi disusun menurut kebutuhan subyek.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
2.1.5. Kettle / Pentaho Data Integration
Kettle adalah aplikasi ETL (Extract, Transformation, Load) open source yang sangat populer, dan merupakan salah satu yang terbaik di pasar BI dunia saat ini. Khusus di Indonesia, Kettle telah banyak digunakan sebagai tool standar untuk pengolahan data ketika ERP atau sistem transaksional “kalah” kecepatan dengan proses bisnis yang dinamis. Kettle merupakan bagian dari aplikasi Pentaho. Proyek ini berdiri sendiri dan merupakan inisiatif dari Mat Casters yang sampai saat ini tetap aktif sebagai project leader dari Kettle – sebelum diakuisisi oleh Pentaho pada tahun 2006. Sejak diakuisisi Kettle berubah nama menjadi Pentaho Data Integration (PDI). Didalam Kettle terdapat kompenen-komponen yang terdiri dari 4 aplikasi yaitu Spoon, Pan, Kitchen dan Carte. 1.
Spoon, yaitu aplikasi grafis berbasis swing yang digunakan untuk merancang file skema job dan transformation.
2.
Pan, yaitu script yang digunakan untuk menjalankan file skema transformation melalui terminal / command line.
3.
Kitchen, yaitu script yang digunakan untuk menjalankan file skema job melalui terminal / command line.
4.
Carte,
yaitu
temporary
web
server
yang
digunakan
mengeksekusi job/transformation secara cluster atau parallel.
untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
Dari semua aplikasi tersebut dijalankan melalui shell atau batch script yang berkaitan. Selain ke empat komponen diatas terdapat fitur-fitur dari Kettle. 1.
Memiliki utilitas grafik yang dapat digunakan merancang control flow umum maupun data flow (aliran data).
2.
Multi platform - karena dikembangkan di atas Java yang notabene berjalan di banyak platform sistem operasi.
3.
Bersifat concurrent, dalam arti row-row data diambil oleh suatu step dan diserahkan ke step lain secara parallel.
4.
Scalable - dapat beradaptasi dengan penambahan kapasitas memori RAM atau pun storage (scale up) dan dapat node komputer / cluster (scale out).
5.
Koleksi step transformation dan job yang cukup banyak.
6.
Extensible, dapat membuat step transformation dan job baru dengan sistem plugin.
7.
Dukungan luas berbagai produk database yang terkenal di pasaran baik itu proprietary maupun free open source seperti Oracle, SQL Server, MySQL, PostgreSQL dan lain sebagainya.(pentaho.phiintegration.com) Selain menggunakan Kettle tools lain yang digunakan yaitu
Pentaho schema worbench dan JPivot. Pentaho schema workbench yang merupakan GUI untuk merancang skema XML Mondrian. Jpivot merupakan client OLAP dengan antar muka web dan dikembangkan diatas
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
teknologi
JSP(Java
Server
Pages).
JPivot
memiliki
23
kemampuan
berinteraksi dengan Mondrian secara native dan OLAP engine lain melalui meanisme
layanan
XMLA
(
XML
for
Analysis).
(www.phi-
Integration.com)
2.1.6. OLAP (On-Line Analytical Processing)
Menurut Connoly dan Begg 2005, OLAP adalah perpaduan dinamis, analisis dan konsolidasi dari data multidimensional berukuran besar. Definisi lain menyebutkan OLAP adalah aplikasi analytical dengan kemampuan pivot menyerupai spreadsheet OLAP merupakan komponen penting dari aplikasi BI (Business Intelligence). Perbedaan dengan spreadsheet adalah OLAP dirancang khusus untuk mampu menangani jumlah data besar dan memiliki ekspresi bahasa analisis yang lebih baik. Dan aplikasi OLAP ini biasanya
memiliki
arsitektur client / server. Database OLAP memiliki struktur skema tersendiri dan biasanya berupa suatu data warehouse. Server basis data OLAP multidimensi mendukung operasi analitikal, seperti : rotation/ pivoting, drilldown & consolidation, slicing & dicing. -
Rotation/pivoting dengan kemampuan OLAP rotation/pivoting, dapat melihat data dari berbagai sudut pandang (view point). Atau dengan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
kata lain dapat memutar-mutar sumbu pada cube sehingga memperoleh data yang diinginkan sesuai dengan sudut pandang analisis yang diperlukan. -
drilldown & consolidation agregasi data bisa dilakukan dengan drill down dan consolidation. Penampilan data yang lebih detail dapat dilakukan dengan drill down dan sebaliknya untuk menyatukan data ke dalam hierarki yang lebih tinggi dapat dilakukan dengan consolidation.
-
Slicing & dicing pemilahan data dapat di lakukan dengan proses slicing dan dicing. Slicing merupakan pemotongan sisi dari cube, artinya data yang dipotong berdasarkan kategori tertentu. Sedangkan dicing merupakan penyaringan subset data dari proses slicing. (Anonymous, 2010) Didalam OLAP berkaitan erat dengan istilah-istilah seperti
measure, cube, multidimensi, surrogate key dan fact tabel (tabel fakta).
-
Measure sebuah entitas yang dapat dinitor dan diukur dari dimensi. Contohnya seperti pendapatan dan rata-rata temperatur. (Nenny, 2012)
-
Cube merupakan contoh data multidimensi selain spreadsheet. Dengan cube data menjadi lebih mudah untuk dimanipulasi. Setiap sumbu cube mewakili dimensi-dimensi.
-
Multidimensi adalah ketika dapat melihat sebuah data dari berbagai sudut pandang atau dimensi. Sebagai contoh, penjualan buku dapat
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
dilihat dari segi lokasi Buku, waktu, lokasi penjualan / toko dan sebagainya. (www.gudangmateri.com) -
Surrogate key merupakan salah satu elemen yang biasanya ditambahkan pada tabel dalam konsep pemodelan data warehouse, menurut Kimball dan Ross (2012,p4140) "Surrogate key adalah key berupa integer yang secara sequential ditambahkan sesuai keperluan dan staging area untuk membentuk sebuah tabel dimensi dan elemen yang menggabungkannya dengan tabel fakta”.
-
Fact tabel menurut Inmon (2002, p391) " Fact tabel is the center of a star join tabel that has many occurences will be located. Tabel yang tersentralisasi
dalam
star
schema
disebut
tabel
fakta.
(Anonymous, 2010)
2.1.6.1.
Skema Bintang
Menurut Conolly dan Begg (2005), skema bintang adalah struktur logika yang mempunyai sebuah tabel fakta yang berisi data faktual yang ditempatkan ditengah, dikelilingi oleh tabel dimensi data referensi (dapat di denormalisasi). Gambar 2.3 merupakan skema bintang menurut Conolly dan Begg.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
Gambar 2. 6 Contoh Skema Bintang
Selain itu juga terdapat keuntungan menggunakan skema bintang yang tidak terdapat dalam struktur relational biasa. Keuntungan menggunakan skema bintang diantaranya :
1. Respon data yang lebih cepat dihasilkan dari perancangan database 2. Kemudahan dalam mengembangkan atau memodifikasi data yang terus berubah 3. End user dapat menyesuaikan cara berpikir dan menggunakan data, konsep ini dikenal juga dengan istilah paralel dalam perancangan database. 4. Menyederhanakan pengembang. (Anonymous, 2011)
pemahaman
metadata
bagi
pemakai
dan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
27
Skema bintang merupakan suatu struktur sederhana yang secara relatif terdiri dari beberapa tabel dan alur gabungan yang dirumuskan dengan baik. Perancangan database ini berlawanan dengan struktur organisasi yang digunakan untuk database proses transaksi. Database ini menyediakan response time, query, skema bintang dapat dibaca dan dipahami oleh analisis, end user bahkan bagi mereka yang belum terbiasa dengan stuktur database.
2.1.7. Database
Dalam penelitian ini menggunakan database yakni Oracle. Seperti yang sudah dibahas sebelumnya database C.J Date merupakan kumpulan data yang saling berelasi, diatur dan diorganisasikan dalam suatu cara yang sistematis untuk mengurangi atau menekan duplikasi data dan memberikan informasi pada sejumlah pemakai (user) pada beberapa aplikasi.
Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang. (id.wikipedia.org)
2.2. Teori Khusus
2.2.1. Efisiensi OLAP Query
2.2.1.1.
Konsep Hirarki dengan Jumlah Nilai Berbeda Setiap
Atribut
Untuk memilih cuboid mana yang paling untuk melakukan query, hal yang harus diperhatikan diantaranya adalah hirarki. Menggunakan bantuan hirarki maka sangat dimudahkan ketika memilih cuboid mana yang paling tepat untuk melakukan query, karena dengan menggunakan hirarki maka dapat melihat level dari dimensi-dimensi yang digunakan pada gudang data. Sebagai contoh terdapat hirarki “day < month < quarter < year” pada dimensi time maka level yang terluar yakni year merupakan level yang paling baik . Selain itu juga perlu memperhatikan granularity
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
data data. Granularity data merupakan tingkat kedetailan dari data dalam suatu data warehouse. Dalam penelitian ini cara yang digunakan untuk menentukan hirarki dari dimensi yang ada yakni dengan cara, pertama lakukan sorting secara ascending pada setiap atribut yang ada. Kedua hasil dari sorting tersebut diurutkan dari atas ke bawah dengan susunan atribut pertama berada pada bagian paling atas. Dengan hasil hirarki yang didapat maka dapat menentukan apakah perlu ada perubahan susunan hirarki atau tidak.
Gambar 2. 7 Contoh hirarki yang terbentuk
Gambar 2.7 merupakan contoh hirarki yang terbentuk dengan masing-masing nilai yang dimiliki oleh masing-masing atribut. Hirarki yang nantinya terbentuk sebagai berikut street
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.2.1.2.
30
Cuboid
Data warehouse pada umumnya berisi data dalam jumlah besar. Untuk itu OLAP dituntut untuk dapat melakukan pemrosesan query dengan cepat. Didalam data cube terdapat cuboid yang menggambarkan dimensi yang ada didalam sebuah cube atau group by yang ada didalam cube tersebut. Cuboid berasal dari banyak dimensi, pengertian dari cuboid itu sendiri adalah “data cube is a lattice of cuboids”, atau data cube merupakan pola-pola dari cuboids. Cuboid yang paling rendah disebut dengan base cuboid, sedangkan cuboid dengan tingkat paling tinggi disebut apex cuboid. (Jiawei et all, 2006). Untuk lebih jelasnya dapat dilihat pada gambar 2.8 pada base cuboid terdiri dari tiga dimensi yakni city, item dan year, sedangkan pada apex cuboid menunjuk dimana group by tersebut kosong.
atau 0-D cuboid
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
31
Gambar 2. 8 Lattice of cuboids, 3-D data cube untuk 3 dimensi. Setiap cuboid menunjukkan derajat yang berbeda.
Untuk menghitung jumlah cuboid maka jumlah total kubus untuk n-dimensi data kubus rumus 2n, namun rumus tersebut dapat digunakan jika tidak ada hirarki yang berhubungan dengan masing-masing dimensi. Namun, dalam prakteknya banyak dimensi yang memiliki hirarki. Sebagai contoh, dimensi waktu biasanya tidak hanya pada satu tingkat konseptual level, seperti year, tetapi lebih pada konsep multiple level , seperti dalam hirarki "day <month
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
(1)
Li adalah jumlah level yang berhubungan dengan suatu dimensi. Perhitungan cuboid tanpa hirarki maupun dengan hirarki diatas bertujuan agar tidak terjadi curse of dimensionality. Curse of dimensionality merupakan kondisi dimana kebutuhan penyimpanan berlebihan saat banyak dimensi memiliki hirarki dengan beberapa level. Sebelum melakukan query pada gudang data, tahap yang harus dilakukan yaitu menentukan cuboid-cuboid yang mungkin yang akan digunakan dalam melakukan query. Dari cuboid yang mungkin tersebut kemudian dipilih cuboid yang paling tepat untuk melakukan query. (Jiawei et all, 2006). Cuboid-cuboid yang mungkin dipilih menggunakan hirarki, dengan bantuan hirarki dapat memilih cuboid yang mungkin dengan level yang baik. Jika level cuboid yang dipilih semakin baik maka besar kemungkinan
cuboid
tersebut
akan digunakan untuk
melakukan
pemrosesan query. Setelah melakukan tahap menentukan cuboid yang mungkin dengan menggunakan hirarki, dan mendapatkan cuboid yang tepat untuk melakukan query. Tahap berikutnya adalah membuat indeks pada kolom tertentu dengan menggunakan bitmap indexing. Penggunaan bitmap indexing diharapkan dapat mempercepat waktu akses query.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
2.2.2. Bitmap Indexing Indeks merupakan objek yang paling penting yang dibutuhkan pada saat membuat sebuat aplikasi. Begitu juga pada database Oracle, indeks menjadi salah satu faktor yang sangat menentukan unjuk kerja aplikasi. (Samsyiar, 2004) Untuk memudahkan dalam mengakses data, sebagian besar data warehouse mendukung struktur indeks. Didalam OLAP terdapat dua metode indexing yang dapat digunakan yakni bitmap indexing dan join indexing. Namun didalam OLAP yang paling banyak digunakan adalah indexing dengan menggunakan bitmap. Bitmap indexing memungkinkan pencarian data dengan cepat didalam data cube. (Jiawei et all, 2006). Dalam bitmap indexing sebuah bitmap dibuat untuk setiap nilai kunci suatu daftar RowID seperti yang dilakukan dalam indeks B+ Tree. Setiap bit dalam bitmap menunjuk pada sebuah RowID. Ketika bit diberi nilai 1, berarti RowID yang terkait berisi nilai kunci yang dimaksud. Fungsi pemetaan akan mengubah posisi bit ke RowID sesungguhnya sehingga record dapat ditemukan ketika dilakukan operasi query. Bitmap indexing biasanya digunakan pada kolom yang mempunyai low cardinality. Seperti kolom jenis kelamin yang mempunyai jumlah data hanya „L‟ dan „P ‟ saja. Atau data yang lain dimana jika jumlah data dibagi dengan jumlah total record yang ada mendekati nol. Jangan menggunakan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
bitmap indexing pada kolom yang mempunyai data yang unik, karena membutuhkan jumlah space yang lebih besar. Bitmap indexing sangat cepat apabila digunakan pada aplikasi yang sering menggunakan ad hoc query karena biasanya kriteria dari perintah where yang dipakai melibatkan kombinasi diantara kolom- kolom yang ada pada setiap tabel. Bitmap indexing sendiri tidak telalu banyak melakukan scanning terhadap data yang akan dicari sebab struktur dari bitmap indexing yang sangat kecil yaitu hanya terdiri atas beberapa key indeks entries saja. Oracle hanya akan mencari data dari single bitmap indexing yang mempunyai nilai 1 dan 0 saja. (Samsyiar, 2004) Keuntungan menggunakan bitmap indexing antara lain (Budi Susanto, 2007): 1.
Bekerja dengan baik dengan tabel yang berisi jutaan record.
2.
Bitmap indexing meningkatkan waktu respon secara drastis saat kondisi multiple join yang diberikan menunjuk pada kolom yang memiliki bitmap indexing. Indeks inijuga bekerja dengan baik untuk query yang memiliki beberapa klausa kondisi join (AND, OR).
3.
Bitmap indexing bekerja dengan baik jika kolom yang ditunjuk dalam indeks tidak sering di-update atau dihapus.
4.
Bitmap indexing bekerja dengan baik ketika kolom yang berada dalam bitmap indexing memiliki kardinalitas (jumlah perbedaan nilai) yang rendah. Sebagai petunjuk sederhana untuk sebuah kardinalitas rendah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
adalah sebuah kolom yang hanya memiliki perbedaan nilai kurang dari 12 macam nilai yang berbeda. Sebagai contoh jenis kelamin ya atau tidak. Selain keuntungan yang ditawarkan oleh bitmap indexing terdapat juga kekurangan dari bitmap indexing, antara lain : 1.
Tidak dapat bekerja dengan baik dengan tabel yang memiliki bitmap indexing, dimana kolom kunci indeksnya sering di update atau dihapus
2.
Bitmap indexing memerlukan pembangunan indeks kembali secara berkala
2.2.3. MDX (Multi Dimensional Expression)
MDX adalah suatu bahasa yang mengekspresikan seleksi, kalkulasi dan definisi metadata terhadap database OLAP, dan memiliki kapabilitas untuk menentukan bagaimana hasil query ditampilkan. Didalam MDX juga terdapat MDX query. Query didalam MDX merupakan konstruksi bahasa yang digunakan untuk mengakses dan mengambil data oleh klien MDX. Sintaks dasar query MDX adalah sebagai berikut:
Select { Column Headers Set } on Columns, { Row Headers Set } on Rows from [Cube] Where [Slicer Dimension / Measure]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
Sebagai penjelasan singkat dapat dilihat contoh berikut ini select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, Hierarchize({([Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit], [Kelompok Umur].[Semua Kelompok Umur])}) ON ROWS from [penyakit]
Keterangan contoh query
-
Didalam select memasukkan measure, pada contoh query diatas measurenya adalah jumlah B, L dan K kemudian diikuti oleh on columns
-
Untuk baris selanjutnya isikan dimensi-dimensi yang digunakan dalam cube diikuti dengan on rows selanjutnya diikuti dengan from (cube) pada contoh diatas adalah cube PENYAKIT.
2.2.3.1
Tuple dan Set
Selain itu terdapat sebuah konsep yang sangat fundamental di MDX yakni tuple dan set. Tuple adalah intserseksi dari satu (dan hanya satu ) member yang diambil dari satu atau beberapa dimensi didalam tabel. Sedangkan Set adalah kumpulan dari nol atau lebih tuple yang memiliki
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
karakteristik dimension yang sama. jika tidak memiliki tuple maka disebut kosong (empty set). Didalam ekspresi MDX, tuple biasanya diikuti oleh pasangan kurung biasa () sedangkan set oleh kurung kurawal {}. Contoh tuple () [Measures].[UnitPenjualan]([Measures].[UnitPenjualan]) ([Produk].[Buah],[Measures].[Unit Penjualan]) ([Produk].[Buah], [Karyawan].[Semua Karyawan])
Contoh set {} {([Measures].[UnitPenjualan],[Measures].[TotalPenjualan]) { 2.2.1.2 \\\\MDX Expression ([Produk].[Buah], [Measures].[Unit Penjualan]), ([Produk].[Sayur-sayuran], [Measures].[Unit Penjualan] )}
MDX Expression adalah statement parsial atau potongan kode kecil yang dapat digunakan untuk mendefinisikan calculated member, set atau member property. Ekspresi dari MDX ini mengambil suatu tuple atau set sebagai parameternya dan selalu mengembalikan suatu nilai termasuk nilai null.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.2.3.2
38
MDX Functions
Function tentunya merupakan bagian ekspresion dari MDX yang sangat penting digunakan untuk berbagai tujuan dan keperluan. Function dapat mengembalikan nilai numerik, teks, set, dimension, dan sebagainya. Beberapa contoh function MDX adalah Count, Parent, Descendants, AVG,YTD, dan sebagainya. (Anonymous, 2010)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III ANALISIS DAN PERANCANGAN
Dalam bab ini akan dijelaskan mengenai data yang digunakan, serta dibahas juga mengenai perancangan mulai dari penggabungan data, membuat basis data hingga membuat gudang datanya. Tujuan dari penelitian ini sendiri yakni untuk mendapat query
yang paling optimal dengan
menggunakan OLAP query.
3.1. Deskripsi Kasus
Di Puskesmas Jebed data laporan penyakit diolah menggunakan Microsoft Excel, demikian juga untuk melihat data penyakit setiap tahunnya Puskesmas hanya mengandalkan Excel. Hal tersebut tentu akan menjadi sulit untuk mengambil informasi tertentu, misalnya untuk melihat penyakit yang paling sering muncul setiap tahunnya maupun informasi penting lainnya. Berdasarkan fakta tersebut, peneliti berusaha untuk membantu memecahkan masalah tersebut menggunakan kemampuan yang dimiliki oleh gudang data. Mengingat gudang data sangat membantu dalam query analisis. Tidak hanya mengandalkan gudang data, namun juga perlu 39
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
memikirkan cara bagaimana jika user melakukan query tidak memerlukan waktu yang lama. Dengan kata lain bagaimana cara meningkatkan unjuk kerjanya, mengingat data yang ada dalam jumlah besar. Hal tersebut coba dicari solusinya dengan melakukan indexing dengan menggunakan bitmap indexing, karena indeks ini sangat cocok digunakan untuk tabel-tabel yang jarang melakukan proses DML pada database.
3.2. Data
Data merupakan sumber yang sangat penting dalam sebuah penelitian. Sumber data terbagi menjadi dua yaitu data primer dan data sekunder. Data primer adalah data yang diperoleh peneliti secara langsung (dari tangan pertama), sementara data sekunder adalah data yang diperoleh peneliti dari sumber yang sudah ada. Data yang digunakan untuk tugas akhir ini merupakan data dari sumber data sekunder. Data yang digunakan berupa Laporan Bulanan Data Kesakitan Kunjungan Total di Puskesmas Jebed, Kabupaten Pemalang. Data ini merupakan Laporan Bulanan Data Kesakitan Kunjungan Total selama tiga tahun, yakni tahun 2010 hingga 2012. Data tersebut berisi : 1. SP2TP 2. ICD-X
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
3. Jenis Penyakit 4. Jumlah Kasus Baru (B) 5. Jumlah Kasus Lama (L) 6. Jumlah Kunjungan (K) 7. Kelompok Umur 8. Jumlah Total(B+L+K)
Berikut ini adalah contoh data Laporan Bulanan Data Kesakitan Kunjungan Total di Puskesmas Jebed, Kabupaten Pemalang.
Gambar 3. 1 Contoh data
Data tersebut selain digunakan sebagai laporan juga digunakan untuk melakukan pengelompokan penyakit, yakni dengan mencari 10 besar penyakit yang paling banyak diderita oleh masyarakat, dan dari hasil pengelompokkan yang didapat akan digunakan sebagai acuan untuk melakukan pencegahan atau antisipasi agar tidak terjadi wabah penyakit
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
yang sama. Data ini menjadi penting untuk tugas akhir ini karena dengan data yang ada dapat digunakan atau dimanfaatkan dengan semestinya, dalam hal ini adalah untuk membantu dalam penelitian mengenai mengoptimalkan unjuk kerja OLAP.
3.3. Analisis Kebutuhan
Analisis kebutuhan digunakan untuk mengetahui apa yang sebenarnya dibutuhkan oleh user. Seperti yang telah dijelaskan sebelumnya, di puskesmas Jebed untuk melihat laporan-laporan penyakit masih menggunakan Microsoft Excel. Hal tersebut tentu akan menjadi sulit jika misal ada user ingin melihat penyakit tertentu pada kelompok umur tertentu di tahun 2012, dengan adanya gudang data ini, diharapkan user dimudahkan dalam menganalisis data laporan penyakit yang ada. Analisis kebutuhan perangkat lunak dari user dijelaskan pada diagram use case berikut ini.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
43
Gambar 3. 2 Diagram use case
3.4. Membangun Gudang Data
Pada tahap ini merupakan tahapan untuk membangun gudang data dimulai dari melakukan preprocessing hingga membuat tabel fakta. Tabel berikut ini berisi gambaran tahap yang dilakukan pada bagian ini.
Tabel 3. 1 Langkah membangun gudang data No
Langkah yang dilakukan
Penjelasan Singkat
3.4.1
Membaca data legacy
Merupakan tahap untuk menganalisis data
3.4.2
Menggabungkan data dari Merupakan tahap menggabungkan semua berbagai sumber terpisah
data, jika berbeda format maka disamakan formatnya. Tahap ini berisi ilustrasi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
bagaimana cara menggabungkan data 3.4.3
Memindahkan
data
ke Merupakan tahap memindahkan data ke
server gudang data
dalam server, tahap ini dimulai dengan membuat tabel master terlebih dahulu.
3.4.4
Memecah gudang data ke Berdasarkan pada tahap 3.4.3, dengan dalam tabel fakta dan menggunakan sumber data dari tabel dimensi
master maka dapat digunakan untuk membuat dimensi.
3.4.1. Membaca Data Legacy
Pada tahap ini melakukan analisis data kemudian melakukan pembersihan data yang tidak konsisten, menghapus atau menambah kolom yang dirasa perlu. Pada tahap ini juga dilakukan pemilihan data karena tidak semua data digunakan. Tujuan dari tahap ini adalah memudahkan ketika memindahkan data tersebut ke dalam basisdata.
3.4.2. Menggabungkan Data dari Berbagai Sumber
Dalam tahap ini yang dilakukan adalah menggabungkan semua data yang berasal dari berbagai sumber, data laporan yang ada berupa file dalam bentuk file excel dan ada yang masih berupa hasil copy berkas laporan milik puskesmas Jebed.Untuk data yang digunakan dalam tulisan ini perlu digabungkan menjadi satu file excel dengan format .xls, karena
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
45
data yang ada masih terdiri dari banyak file dengan tujuan untuk mempermudah dalam mengkonversi data ke dalam basis data . File yang telah digabungkan tersebut berisi data laporan penyakit dari tahun 2010 sampai 2012.
Gambar 3. 3 Ilustrasi menggabungkan data dari berbagai sumber
3.4.3. Memindahkan Data ke Server Gudang Data
Merupakan tahap dimana memasukkan data ke dalam server gudang data. Sebelum semua data dipindahkan, membuat terlebih dahulu tabel master yang nantinya digunakan untuk memudahkan dalam membuat
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
46
dimensi pada gudang data. Berikut ini adalah penjelasan mengenai rancangan tabel master, dimensi-dimensi, serta tabel fakta.
1. Membuat tabel master ms_penyakit
Tabel 3. 2 Proses memindahkan data ke dalam tabel ms_penyakit
Tabel 3.2 merupakan proses pembuatan tabel ms_penyakit. Sumber data dari tabel ms_penyakit berasal dari file excel data penyakit. Tabel ini berisi id_penyakit yang merupakan primary key, SP2TP, ICD_X dan jenis_penyakit.
Tabel 3. 3 Keterangan atau penjelasan isi dari data penyakit Data penyakit SP2TP
SP2TP (Sistem Pencatatan dan Pelaporan Tingkat Puskesmas). Merupakan data yang berisi no urut dari berbagai jenis penyakit.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
47
ICD-X
Merupakan kode diagnosis, ICD-X sendiri merupakan buku petunjuk dari WHO yang menjadi standar pengkodean atas penyakit dan tanda-tanda, gejala, temuan-temuan yang abnormal, keluhan, keadaan sosial dan eksternal menyebabkan cedera atau penyakit, seperti yang diklasifikasikan oleh World Health Organization (WHO)
Jenis Penyakit
Merupakan data yang berisi berbagai macam jenis penyakit atau data yang berisi nama-nama penyakit
Id Penyakit
Merupakan data yang berisi id dari masing-masing penyakit
2. Membuat tabel ms_kelompok_umur
Tabel 3. 4 Proses memindahkan data ke dalam tabel ms_kelompok_umur
Tabel
3.4
merupakan
proses
dari
pembuatan
tabel
ms_kelompok_umur, yang terdiri dari id kelompok umur yang merupakan primary key dan terdapat kolom nama dari kelompok umur. Sumber data
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
48
dari tabel ini berupa file excel yang berisi id kelompok umur dan nama kelompok umur. Penjelasan mengenai isi data kelompok umur terdapat pada Tabel 3.5.
Tabel 3. 5 Keterangan atau penjelasan isi dari data kelompok umur Data kelompok umur Id kelompok umur Nama kelompok umur
Merupakan data yang berisi id dari masingmasing kelompok umur Merupakan data yang berisi nama dari masing-masing kelompok umur. Terdiri dari 8 kelompok umur yakni 0-28 hari, 28 hari-1 tahun, 1-4 tahun, 5-14 tahun, 15-44 tahun, 45-54 tahun, 55-60 tahun, diatas 60 tahun
3.4.4. Memecah Gudang Data dalam Tabel Fakta dan Tabel Dimensi
Hal penting yang menjadi perhatian dalam perancangan gudang data adalah pengumpulan data dan tahap ini sebelumnya telah dilakukan. Kemudian tahap penting lain yang harus dilakukan adalah membuat perancangan di gudang data dalam penelitian ini perancangan gudang datanya dengan menggunakan skema bintang. Dapat dilihat pada Gambar 3.5 terdapat tiga dimensi yaitu dim waktu, dim nama penyakit dan dim kelompok umur. Ditengah- tengah skema bintang terdapat tabel fakta yang memiliki foreign key dari masingmasing dimensi, dalam tabel fakta juga terdapat measure yakni B, L dan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
K. Gambar berikut merupakan hasil perancangan dengan menggunakan data laporan dari tahun 2010 sampai 2012.
Gambar 3. 4 Skema Bintang
Setelah melakukan perancangan basis data untuk gudang data kemudian membentuk dimensi-dimensi yang dibutuhkan. Dimensi dibuat berdasarkan tabel-tabel master yang ada. Berikut ini adalah penjelasan dari masing-masing proses pembuatan dimensi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
1. Dimensi nama penyakit
Tabel 3. 6 Proses pembuatan dimensi nama penyakit
Dimensi ini terbentuk dari tabel ms_penyakit, dimensi ini terdapat kolom SP2TP, ICD_X, jenis penyakit, id penyakit serta sk nama penyakit yang merupakan primary key. Sk nama penyakit merupakan surrogate key yang bernilai integer yang ditambahkan pada dimensi nama penyakit.
2. Dimensi kelompok umur
Tabel 3. 7 Proses pembuatan dimensi kelompok umur
Dimensi ini terbentuk dari tabel ms_kelompok_umur, dimensi ini terdapat field id kelompok umur, nama kelompok umur serta sk kelompok
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
umur yang merupakan primary key dari dimensi kelompok umur. Sk kelompok umur merupakan surrogate key yang ditambahkan pada dimensi ini.
3. Dimensi waktu
Tabel 3. 8 Proses pembuatan dimensi waktu
Dimensi ini sedikit berbeda dengan dimensi nama penyakit maupun dimensi kelompok umur. Karena dimensi ini terbentuk bukan dari tabel master melainkan dari tr_penyakit. Pada dimensi waktu terdapat kolom bulan, nama bulan, id tahun, tahun serta sk waktu yang merupakan primay key serta merupakan surrogate key dari dimensi ini. Setelah semua tahap dalam membangun gudang data sudah dilakukan, maka langkah selanjutnya adalah menentukan informasi apa saja yang akan diambil atau dengan kata lain menentukan query-query yang akan digunakan pada gudang data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
3.5. Pemrosesan Efisien OLAP Query Menggunakan Cuboid
Langkah yang dilakukan dalam melakukan efisiensi pemrosesan OLAP query dengan menggunakan cuboid adalah : 1. Membentuk hirarki untuk setiap dimensi yang digunakan. Hirarki yang digunakan dalam penelitian ini dibentuk berdasarkan jumlah atribut yang berbeda. 2. Menggunakan bantuan hirarki, menentukan cuboid-cuboid yang mungkin untuk melakukan query. Berikut ini penjelasan detail dari kedua tahap tersebut.
3.5.1. Hirarki
Gambar
3.5
ini
merupakan
hasil
pembentukan
hirarki
menggunakan tiga dimensi yaitu dimensi nama penyakit, dimensi kelompok umur, dan dimensi waktu. Hirarki tersebut dibentuk berdasarkan pada jumlah atribut yang berbeda. Semakin luar level hirarki maka semakin mungkin cuboid tersebut dipilih. Hal tersebut dikarenakan jika melakukan query maka tidak perlu melakukan query terlalu dan jumlah level terluar memiliki jumlah row yang paling sedikit. Hirarki pada Gambar 3.5 digunakan untuk membantu dalam menentukan cuboid-cuboid yang mungkin.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
Gambar 3. 5 Hirarki yang terbentuk
3.5.2. Cuboid Pada Query I dan Query II
Pemilihan cuboid yang tepat jika cuboid tersebut memiliki kriteria: 1. Bukan merupakan data yang umum. 2. Memiliki level yang baik, ditentukan dengan menggunakan hirarki. 3. Sesuai dengan tujuan query.
Didalam penelitian ini menggunakan dua contoh query. Query I merupakan query yang digunakan untuk melihat data rekap tahunan, sedangkan untuk query II digunakan untuk melihat data rekap penyakit setiap bulannya. Selain menggunakan query yang dipilih berdasarkan cuboid tertentu, juga menggunakan query biasa atau query tanpa dipilih menggunakan cuboid. Untuk memudahkan penamaan query maka digunakan istilah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
54
a. Query efisien (Qef) yang dipilih menggunakan cuboid yang paling baik. b. Query biasa(Qb) atau query yang tidak dipilih menggunakan cuboid. c. Query Pembanding (Qp1, Qp2, ...., Qn) merupakan query yang terbentuk berdasarkan cuboid yang mungkin, namun bukan cuboid yang paling tepat. Qb digunakan untuk membuktikan apakah Qef merupakan query yang tercepat.
3.5.2.1.
Query I
Query ini yang digunakan untuk melihat data rekap tahunan. Pada query I terdapat query biasa dan query yang dipilih menggunakan cuboid. Berikut ini adalah query biasa untuk query I, query biasa merupakan query yang bukan didapat dari cuboid yang mungkin Qb juga merupakan query yang memenuhi tujuan dilakukannya query I yakni melihat data rekap tahunan.
Tabel 3. 9 Qb pada query I select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
55
Sebelum melakukan query digudang data, maka dengan tujuan query yang sama yaitu melihat data penyakit dengan ICD_X= A15 yaitu penyakit TB Paru BTA (+) di tahun 2010 tentukan terlebih dahulu cuboid yang mungkin. Tujuannya adalah agar mendapatkan query yang efisien dengan waktu akses cepat untuk melihat data data penyakit dengan ICD_X= A15 yaitu penyakit TB Paru BTA (+) di tahun 2010.
Tabel 3. 10 Cuboid yang mungkin pada query I Tujuan query I Melihat data penyakit dengan ICD_X= A15 yaitu penyakit TB Paru BTA (+) di tahun 2010
Cuboid yang mungkin Cuboid 1 : {Kelompok umur} where ICDX=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010 Cuboid 2 : {ICD-X, Kelompok umur } where ICD-X=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010 Cuboid 3 : { Kelompok umur, tahun } where ICD-X=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010
Berdasarkan cuboid-cuboid yang mungkin pada query I maka didapat cuboid 1 merupakan cuboid yang paling tepat digunakan untuk melakukan query. Hal ini dikarenakan jika melakukan pemrosesan query menggunakan cuboid 1 maka tidak perlu mengambil banyak row karena pada cuboid 1 hanya terdapat kelompok umur. Berikut ini ditampilkan query yang terbentuk dari masing-masing cuboid.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
Tabel 3. 11 Query yang digunakan pada query I Jenis query Qef
Cuboid yang mungkin Cuboid 1 : {Kelompok umur} where ICD-X=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010
Qp1
Cuboid 2 : {ICD-X, Kelompok umur } where ICD-X=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010
Qp2
Cuboid 3 : { Kelompok umur, tahun } where ICDX=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010
Qb
OLAP Query select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {([Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA (+)], [Waktu].[Semua Waktu].[2010])} with member [Nama Penyakit].[Semua Penyakit] as 'Aggregate({[Nama Penyakit].[Semua Penyakit]})' select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {([Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA (+)], [Waktu].[Semua Waktu].[2010])} with member [Waktu].[Semua Waktu] as 'Aggregate({[Waktu].[Semua Waktu]})' select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {([Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA (+)], [Waktu].[Semua Waktu].[2010])} select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.5.2.2.
57
Query II
Pada query II juga memiliki query biasa dan query yang dipilih menggunakan cuboid. Berikut ini adalah query biasa untuk query II.
Tabel 3. 12 Qb pada query II select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit]
Sebelum melakukan query digudang data, maka dengan tujuan query yang sama yaitu melihat melihat data nama penyakit dan kelompok umur di bulan tertentu yakni bulan oktober pada tahun 2012 dan disemua kelompok umur
tentukan terlebih dahulu cuboid yang mungkin.
Tujuannya adalah agar mendapatkan query yang efisien dengan waktu akses cepat untuk melihat data nama penyakit dan kelompok umur di bulan tertentu yakni bulan oktober pada tahun 2012 dan disemua kelompok umur.
Tabel 3. 13 Cuboid yang mungkin pada query II Tujuan query II Melihat data nama penyakit dan kelompok umur di bulan tertentu yakni bulan oktober pada tahun
Cuboid yang mungkin Cuboid 1 : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
2012 dan disemua kelompok umur Cuboid 2 : {bulan, ICD-X, Kelompok umur } where tahun=2012 and bulan=oktober Cuboid 3 : {ICD-X, Kelompok umur, tahun } where tahun=2012 and bulan=oktober
Berdasarkan cuboid-cuboid yang mungkin pada query II ini maka didapat cuboid 1 merupakan cuboid yang paling tepat digunakan untuk melakukan query. Berikut ini merupakan query yang terbentuk dari masing-masing cuboid.
Tabel 3. 14 Query yang digunakan pada query II Jenis Query Qef
Cuboid yang mungkin Cuboid 1 : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober
Qp1
Cuboid 2 : {tahun, ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober
Qb
OLAP Query select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Nama Penyakit].[Semua Penyakit], [Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit] where [Waktu].[Semua Waktu].[2012].[Oktober] with member [Waktu].[Semua Waktu] as 'Aggregate({[Waktu].[Semua Waktu]})' select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Nama Penyakit].[Semua Penyakit], [Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit] where [Waktu].[Semua Waktu].[2012].[Oktober] select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
3.6. Menerapkan Bitmap Indexing pada Qef
Setelah mempertimbangkan query mana yang dirasa cocok maka tahap selanjutnya adalah melakukan indexing pada gudang data dengan menggunakan bitmap indexing. Bitmap indexing dipilih karena sangat cocok dengan ad hoc query dan juga sangat membantu dalam melakukan pencarian data dengan cepat didalam cube. Untuk melakukan bitmap indexing ada beberapa kriteria yang harus diperhatikan diantaranya indeks ini sangat tepat digunakan pada kolom yang low cardinality. Melihat keunggulan dari bitmap indexing maka untuk membuktikan hal tersebut, dibuat bitmap indexing setiap kolom untuk setiap dimensi yang ada. Bitmap indexing yang dibuat juga bervariasi tujuannya untuk mendapatkan indeks yang terbaik yang paling cocok digunakan untuk query tertentu. Berikut
ini
adalah
tahapan
yang
akan
dilakukan
untuk
membuktikan apakah bitmap indexing cocok digunakan pada kolom tertentu pada masing-masing dimensi yakni dimensi nama penyakit, dimensi kelompok umur dan dimensi waktu dan pengaruh indeks ini terhadap query yang digunakan dalam penelitian ini. Pada dimensi kelompok umur tidak ada kolom yang dibuat bitmap indexingnya dikarenakan data pada kolom ini jumlahnya hanya sedikit sehingga tidak perlu dilakukan indexing.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
Tabel 3. 15 Bitmap indexing yang digunakan Dimensi dan Kolom
Kolom yang menggunakan Bitmap indexing
Waktu - Bulan - Nama bulan - Tahun - Id tahun - Sk waktu Nama Penyakit - SP2TP - ICD-X - Jenis penyakit - Id penyakit - Sk nama penyakit Kelompok Umur - Id kelompok umur - Nama kelompok umur - Sk kelompok umur
Tahun
Jenis penyakit ICD-X
Tabel 3.15 menunjukkan bitmap indexing yang dibuat pada masing-masing dimensi kecuali dimensi kelompok umur
3.7. Langkah Pengujian
Langkah-langkah yang dilakukan dalam pengujian sebagai berikut 1. Mencatat waktu akses dari Qb 2. Mencatat waktu akses dari Qef 3. Mencatat waktu akses Qp. 4. Mencatat waktu akses Qef yang dikombinasikan dengan bitmap indexing tertentu
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
Langkah pertama yang dilakukan adalah mencatat waktu akses dari Qb, hal ini dimaksudkan Qb akan menjadi pembanding untuk Qef yang dipilih menggunakan cuboid. Pencatatan waktu akses dari Qb dan Qf nantinya dapat digunakan untuk melakukan perbandingan waktu akses kedua query tersebut. Langkah kedua dalam pengujian adalah mencatat waktu akses dari Qef , waktu akses dari Qef akan digunakan juga untuk perbandingan waktu akses dari Qp yang merupakan query yang terbentuk dari cuboid yang mungkin. Waktu akses Qp dicatat dengan tujuan agar dapat dibuktikan
apakah Qef merupakan query yang tercepat yang
terbentuk dari cuboid yang paling tepat, pengujian ini dilakukan pada pengujian langkah ketiga. Pada tahap pengujian keempat yakni menguji Qef dengan menggunakan kombinasi bitmap indexing tertentu, kombinasi bitmap indexing yang digunakan dapat dilihat pada tabel berikut ini :
Tabel 3. 16 Kombinasi bitmap indexing No Dimensi waktu
Dimensi nama penyakit
1
TH
bulan
JP
ICD_X
2
TH
bulan
JP
ICD_X
3
TH
bulan
JP
ICD_X
4
TH
bulan
JP
ICD_X
5
TH
bulan
JP
ICD_X
Keterangan : warna kuning menunjukkan bitmap indeks yang digunakan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
Waktu akses dari Qef dengan menggunakan bitmap indexing tertentu akan dicatat, hal tersebut bertujuan untuk membandingkan waktu akses dari Qef menggunakan semua kombinasi bitmap indexing. Dari perbandingan waktu tersebut maka akan didapat Qef dengan waktu tercepat menggunakan bitmap indexing pada kolom tertentu, dari hasil yang didapat maka diharapkan dapat membantu dalam menarik kesimpulan untuk penelitian ini.
3.8. Perancangan Tampilan
Gambar 3. 6 Perancangan Tampilan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
63
Perancangan tampilan pada Gambar 3.6, merupakan tampilan aplikasi secara penuh. Terdapat menu untuk memasukkan data, atau mengupload data. Setelah data dimasukkan maka dapat dilakukan pencarian data berdasarkan waktu maupun berdasarkan dimensi nama penyakit atau kelompok umur. Jika aplikasi tersebut benar – benar diterapkan diharapkan dapat membantu mempermudah pekerjaan petugas terkait terutama dalam mencari informasi tertentu dan dengan waktu akses yang cepat.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV IMPLEMENTASI
4.1. Spesifikasi Perangkat Keras dan Lunak
Dalam penelitian ini DBMS yang digunakan adalah Oracle 11g. Perangkat keras yang digunakan untuk melakukan pengujian query dengan spesifikasi sebagai berikut : - Processor
: Intel(R) Core(TM) i3 CPU
- Memory
: 6144 MB RAM
- Sistem Operasi
: Windows 7 Ultimate 32-bit
- Browser
: Mozilla Firefox
4.2. Langkah Membangun Gudang Data
4.2.1. Membaca Data Legacy
Pada tahap ini untuk menggali informasi yang ada menggunakan tahap-tahap yang ada pada data mining dan tahap yang digunakan adalah 64
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
65
pembersihan data dan seleksi data sedangkan untuk tahap lainnya menggunakan tahap dalam membangun gudang data.
Berikut ini adalah
penjelasan tersebut.
1. Pembersihan data Pada tahap ini dilakukan dengan membuat data menjadi konsisten karena memiliki isian-isian yang tidak sempurna seperti data yang hilang, data yang tidak valid atau juga hanya sekedar salah ketik. Pada tahap ini untuk memudahkan dalam mengkonversi data ke dalam basis data maka dengan data yang ada dilakukan dengan menambah kolom bulan, tahun dan menghapus data yang bukan merupakan penyakit seperti kecelakaan. Setiap tahap dapat dilihat pada Tabel 4.1 sampai 4.3
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
66
Tabel 4. 1 Preprocessing dengan menghilangkan data yang bukan penyakit
1. Melakukan preprocessing dengan menghapus data yang bukan merupakan penyakit
Menghapus ke dua data tersebut karena bukan merupakan penyakit
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 4. 2 Preprocessing dengan menambah kolom bulan 2. Melakukan preprocessing dengan menambah kolom bulan. Agar dapat mengetahui penyakit tersebut muncul di bulan apa.
Menambah kolom BULAN
67
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 4. 3 Preprocessing dengan menambah kolom tahun Menambah kolom TAHUN 3. Melakukan preprocessing dengan menambah kolom tahun. Agar dapat mengetahui penyakit terjadi pada tahun berapa.
68
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2. Seleksi data Dari data yang ada dilakukan seleksi data karena tidak semua data digunakan. Pada kasus ini SP2TP tidak digunakan dan diganti dengan kolom nama penyakit. Karena SP2TP juga bukan merupakan data yang dirasa penting karena hanya berisi nomor urut dari nama penyakit yang digunakan untuk pelaporan. Untuk tahap selanjutnya setelah melakukan tahap preprocessing kemudian melakukan tahap menggabungkan data dari berbagai sumber terpisah.
4.2.2. Menggabungkan Data dari Berbagai Sumber Terpisah
Seperti yang telah diilustrasikan pada bab 3, penggabungan data perlu dilakukan karena data yang ada tidak seluruhnya berbentuk file Excel.
4.2.3. Memindahkan Data ke Server Gudang Data
Sebelum membuat dimensi dan tabel fakta, maka terlebih dahulu membuat tabel master yang nantinya akan menjadi sumber untuk membuat dimensi dalam gudang data. Tabel master yang dibuat meliputi ms_penyakit dan ms_kelompok_umur.
69
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
70
1. Master penyakit
Gambar 4. 1 Proses pembuatan tabel ms_penyakit di Oracle .ktr
Gambar 4.1 merupakan proses pembuatan tabel ms_penyakit di Oracle, dengan inputan berupa file excel. Sort rows berfungsi untuk mengurutkan data, karena untuk menghilangkan redundancy data dengan menggunakan unique rows data harus diurutkan terlebih dahulu. Pada id_penyakit menggunakan bantuan add sequence untuk membuat id penyakitnya mengingat data penyakit yang ada dalam jumlah besar. Select values untuk mengkonversi data dari file ke dalam format database yang diinginkan atau mengubah nama kolom atau menghapus kolom yang tidak digunakan. Table output digunakan untuk membuat tabel pada database.
Tabel 4. 4 ms_penyakit
Tabel 4.4 adalah hasil dari tabel ms_penyakit pada database, terdiri dari kolom id penyakit, SP2TP, ICD_X dan jenis penyakit.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
2. Master kelompok umur
Gambar 4. 2 Proses pembuatan tabel ms_kelompok_umur di Oracle .ktr
Gambar
4.2
merupakan
proses
pembuatan
tabel
ms_kelompok_umur, untuk membuat tabel master ini menggunakan inputan berupa file excel. Select values untuk mengkonversi data dari file ke dalam format database yang diinginkan atau mengubah nama kolom atau menghapus kolom yang tidak digunakan. Table output digunakan untuk membuat tabel pada database.
Tabel 4. 5 ms_kelompok_umur
Tabel 4.5 adalah hasil dari tabel ms_kelompok_umur pada database, terdiri dari kolom id kelompok umur dan nama kelompok umur.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
72
4.2.4. Memecah Gudang Data dalam Tabel Fakta dan Tabel Dimensi
1. Tr penyakit
Gambar 4. 3 Proses pembuatan tr_penyakit di Oracle .ktr
Sumber data dari tr_penyakit berupa data penyakit tahun 2010 sampai 2012 .xls, sumber lainnya berasal dari tabel ms_penyakit dan ms_kelompok_umur. Terdapat stream lookup pada ms kelompok umur yang digunakan untuk membaca id kelompok umur dari ms kelompok umur dan tr penyakit, demikian juga stream lookup pada ms penyakit berfungsi untuk membaca id penyakit dari tr penyakit dan ms penyakit. Add sequence digunakan untuk menambah kolom id tr pada tabel tr penyakit, id tr merupakan primary key dari tabel ini. Select values berfungsi untuk mengkonversi data ke dalam format database, kemudian tabel tr penyakit dibuat pada database dengan menggunakan tabel output.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
73
Tabel 4. 6 tr penyakit
Tabel 4.6 merupakan hasil pembuatan tr penyakit pada database.
2. Dimensi nama penyakit
Gambar 4. 4 Proses pembuatan dimensi nama penyakit di Oracle .ktr
Sumber data dari dimensi ini berasal dari tabel master ms_penyakit. Terdapat add sequence yang berfungsi untuk menambah kolom sk nama penyakit yang merupakan surrogate key dari dimensi ini. Select values digunakan untuk mengkonversi data ke dalam format database yang diinginkan atau mengubah nama kolom atau menghapus
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
74
kolom yang tidak digunakan. Table output digunakan untuk create table pada database. Tabel 4. 7 dim nama penyakit
Tabel 4.7 merupakan hasil pembuatan dim nama penyakit di Oracle.
3. Dimensi kelompok umur
Gambar 4. 5 Proses pembuatan dimensi kelompok umur di Oracle .ktr
Tabel master kelompok umur merupakan sumber data yang digunakan untuk membuat dimensi kelompok umur. Terdapat add sequence yang digunakan untuk menambah surrogate key yakni sk kelompok umur yang bertipe integer. Select values digunakan untuk mengkonversi data ke dalam format database, serta digunakan untuk memilih atau menghapus kolom. Table output digunakan untuk membuat tabel dim kelompok umur pada basis data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
75
Tabel 4. 8 dim kelompok umur
Hasil pembuatan tabel ini di Oracle dapat dilihat pada Tabel 4.8
4. Dimensi waktu
Gambar 4. 6 Proses pembuatan dimensi waktu di Oracle .ktr
Sumber data dari dimensi waktu berasal dari tr penyakit, data dari tr penyakit diurutkan terlebih dahulu menggunakan sort rows, sebelum menghilangkan redundancy data menggunakan unique rows. Sk waktu merupakan surrogate key yang ditambahkan pada dimensi waktu, sk waktu dibuat menggunakan add sequence. Untuk membuat kolom id tahun dan nama bulan menggunakan modified java script value. Select values digunakan untuk mengkonversi data ke dalam format database. Untuk membuat tabel dim waktu pada database menggunakan table output. Tabel 4.9 merupakan hasil pembuatan dimensi waktu di Oracle.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
76
Tabel 4. 9 dim waktu
5. Tabel fakta
Gambar 4. 7 Proses pembuatan tabel fakta di Oracle .ktr
Tabel fakta berisi measures yakni B,L dan K serta berisi semua sk dari masing-masing dimensi. Tabel ini sumber datanya berasal dari tr penyakit. Stream lookup pada dim kelompok umur digunakan untuk membaca id kelompok umur milik dim kelompok umur dan tr penyakit, id dari masing-masing tabel tersebut digunakan untuk mengambil sk kelompok umur. Demikian juga stream lookup yang terdapat pada dim nama penyakit dan dim waktu fungsinya sama dengan stream lookup pada dim kelompok umur. Select values digunakan untuk mengkonversi data ke dalam format database. Table output digunakan untuk membuat tabel fakta pada database. Tabel 4.10 merupakan hasil pembuatan tabel fakta.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 4. 10 tabel fakta
4.3. OLAP
Gambar 4. 8 Skema Penyakit
77
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
78
Skema penyakit ini terdiri dari tiga dimensi dan memiliki measures yakni B, L dan K. Pada dimensi nama penyakit terdapat hirarki yang didalamnya terdapat level ICD_X dan level nama penyakit. Dimensi waktu didalamnya terdapat hirarki yang didalamnya berisi level tahun dan bulan. Dimensi kelompok umur terdapat hirarki yang didalamnya terdapat level kelompok umur. Detail dari pembuatan skema penyakit dapat dilihat pada listing XML berikut ini.
Tabel 4. 11 Listing skema penyakit <Schema name="skripsi">
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
79
uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never"> <Measure name="Jumlah B" column="B" datatype="Numeric" aggregator="sum" visible="true"> <Measure name="Jumlah L" column="L" datatype="Numeric" aggregator="sum" visible="true"> <Measure name="Jumlah K" column="K" datatype="Numeric" aggregator="sum" visible="true">
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
80
4.4. Tampilan Hasil Query I
Gambar 4. 1 Tampilan Awal
Gambar 4.1 merupakan tampilan awal dari query I. Pada halaman awal ini terdapat deskripsi yang merupakan tujuan dari pemrosesan query dari semua query pada query I. Selanjutnya terdapat query yang digunakan terdiri dari empat query. Qef serta terdapat tiga query lain yang nantinya digunakan untuk pembanding dengan Qef yang telah dipilih menggunakan cuboid.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
81
Gambar 4. 2 Tampilan hasil dari Qb
Gambar 4.2 merupakan hasil pemrosesan query dari Qb, juga terdapat waktu akses dari query ini. Waktu akses ini juga terdapat pada semua query.
Gambar 4. 3 Tampilan hasil Qef
Gambar 4.3 merupakan hasil pemrosesan query dari Qef, juga terdapat waktu akses dari query ini.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
82
Gambar 4. 4 Tampilan hasil dari Qp1
Gambar 4.4 merupakan tampilan hasil dari Qp1 serta terdapat waktu akses.
Gambar 4. 5 Tampilan hasil dari Qp2
Gambar 4.5 merupakan tampilan hasil dari Qp2 beserta waktu akses.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
83
4.5. Tampilan Hasil Query II
Gambar 4. 6 Tampilan Awal dari query II
Gambar 4.6 merupakan tampilan awal dari query II. Pada halaman awal ini terdapat deskripsi yang merupakan tujuan dari pemrosesan query dari semua query pada query II. Selanjutnya terdapat query yang digunakan terdiri dari tiga query yaitu Qef serta terdapat Qb dan Qp1.
Gambar 4. 7 Tampilan hasil dari Qb
Gambar 4.7 merupakan tampilan hasil dari Qb beserta waktu aksesnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4. 8 Tampilan hasil dari Qef
Gambar 4.8 merupakan tampilan hasil dari Qef beserta waktu aksesnya.
Gambar 4. 9 Tampilan hasil dari Qp1
Gambar 4.9 merupakan tampilan hasil dari Qp1 beserta waktu aksesnya.
84
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V HASIL DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai analisis hasil dari implementasi gudang data.
5.1. Langkah Pengujian Seperti yang telah dijelaskan pada bab 1 maupun bab 3, masalah yang dihadapi adalah bagaimana cara meningkatkan unjuk kerja OLAP. Untuk menyelesaikan masalah yang ada, penulis menggunakan dua teknik yakni dengan memilih query efisien menggunakan cuboid serta membuat bitmap indexing yang tujuannya agar semakin mempercepat waktu akses query. Selain menggunakan query efisien yang ditentukan berdasarkan cuboid, digunakan juga query pembanding (Qp) dan query biasa (Qb) yang digunakan untuk pengujian tujuannya adalah membuktikan apakah query yang efisien tersebut merupakan query yang terbaik. Pengukuran yang digunakan berdasarkan waktu akses masingmasing query. Untuk menentukan query efisien maka pengujian dilakukan dengan mencatat waktu akses semua query, sedangkan untuk mencari bitmap indexing yang terbaik query yang digunakan hanya query efisien. Berikut ini adalah tahapan pengujian yang dilakukan dalam penelitian ini : 85
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
86
Langkah-langkah yang dilakukan dalam pengujian sebagai berikut 1. Mencatat waktu akses dari Qb 2. Mencatat waktu akses dari Qef 3. Mencatat waktu akses Qp. 4. Mencatat waktu akses Qef yang dikombinasikan dengan bitmap indexing tertentu
Langkah pertama yang dilakukan adalah mencatat waktu akses dari Qb, hal ini dimaksudkan Qb akan menjadi pembanding untuk Qef yang dipilih menggunakan cuboid. Pencatatan waktu akses dari Qb dan Qf nantinya dapat digunakan untuk melakukan perbandingan waktu akses kedua query tersebut. Langkah kedua dalam pengujian adalah mencatat waktu akses dari Qef , waktu akses dari Qef akan digunakan juga untuk perbandingan waktu akses dari Qp yang merupakan query yang terbentuk dari cuboid yang mungkin. Waktu akses Qp dicatat dengan tujuan agar dapat dibuktikan
apakah Qef merupakan query yang tercepat yang
terbentuk dari cuboid yang paling tepat, pengujian ini dilakukan pada pengujian langkah ketiga. Pada tahap pengujian keempat yakni menguji Qef dengan menggunakan kombinasi bitmap indexing tertentu
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
87
5.2. Menentukan Query Efisien Menggunakan Cuboid
Gambar 5. 1 Hirarki yang digunakan
Query efisien yang dimaksud dalam hal ini adalah query yang dapat mengakses data pada database dengan cepat. Oleh sebab itu pada bagian ini mencoba menjawab query efisien yang telah dipilih menggunakan cuboid merupakan query yang paling tepat. Query yang digunakan dalam penelitian ini mencoba menyesuaikan dengan kebutuhan user. Petugas di Puskesmas membutuhkan query yang dapat melihat penyakit tertentu di tahun tertentu, karena jika menggunakan excel petugas mengalami kesulitan dalam melakukan rekap data. Sebagai contoh query yang digunakan dalam penelitian ini dapat dilihat pada Tabel 5.1 dan Tabel 5.2. untuk query 1 merupakan query untuk melihat data penyakit pada tahun tertentu, sedangkan pada query 2 merupakan query untuk melihat rekapan data penyakit dibulan tertentu.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
88
5.2.1. Query I
Untuk pembahasan pada bagian ini yang digunakan adalah query I dan query II. Query dibahas pada bagian ini memiliki tujuan yaitu mencari data penyakit TB Paru BTA (+) pada tahun 2010 dan disemua kelompok umur. Pada query I ini terdapat empat query. Tabel 5.1 merupakan query yang digunakan pada query I.
Tabel 5. 1 Query I Jenis query Qef
Cuboid yang mungkin
OLAP Query
Cuboid 1 : {Kelompok umur} where ICD-X=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010
Qp1
Cuboid 2 : {ICD-X, Kelompok umur } where ICD-X=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010
Qp2
Cuboid 3 : { Kelompok umur, tahun } where ICDX=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010
select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {([Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA (+)], [Waktu].[Semua Waktu].[2010])} with member [Nama Penyakit].[Semua Penyakit] as 'Aggregate({[Nama Penyakit].[Semua Penyakit]})' select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit] where {([Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA (+)], [Waktu].[Semua Waktu].[2010])} with member [Waktu].[Semua Waktu] as 'Aggregate({[Waktu].[Semua Waktu]})' select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {[Kelompok Umur].[Semua Kelompok Umur]} ON ROWS from [penyakit]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
89
where {([Nama Penyakit].[Semua Penyakit].[A15].[TB Paru BTA (+)], [Waktu].[Semua Waktu].[2010])} select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit]
Qb
Berdasarkan pada Tabel 5.1 maka berikut ini adalah penjelasan dari masing-masing query beserta cuboid yang digunakan : 1. Qef menggunakan cuboid : {Kelompok umur} where ICD-X=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010 Query ini dipilih sebagai query efisien karena cuboid kelompok umur merupakan cuboid dengan hirarki terluar dapat dilihat pada Gambar 5.1, query ini juga paling sesuai dengan tujuan untuk melakukan query yakni mencari penyakit tertentu pada tahun tertentu. Query ini juga hanya memiliki satu cuboid sehingga ketika dijalankan maka kelompok umur hanya akan mengambil sedikit data karena hanya terdapat 8 kelompok umur.
2. Qp1 menggunakan cuboid : {ICD-X, Kelompok umur } where tahun=2010 Query ini memiliki level hirarki yang baik, karena ICDX dan kelompok umur berada pada level terluar. Namun tidak dipilih sebagai query efisien dengan alasan karena menggunakan dua cuboid. ICDX
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
90
memiliki data yang banyak sehingga ketika query dijalankan maka data yang diambil milik ICDX dan kelompok umur maka data yang diambil juga lebih banyak jika dibandingkan dengan Qef.
3. Qp2 menggunakan cuboid : { Kelompok umur, tahun } where ICDX=A15 and nama penyakit= TB Paru BTA (+) and tahun=2010 Query ini menggunakan dua cuboid yakni tahun dan kelompok umur, kedua cuboid tersebut memiliki level terluar dari hirarki, serta kedua cuboid tersebut memiliki jumlah data yang sedikit. Namun query ini tidak dipilih sebagai Qef karena jika dibandingkan dengan Qef yang menggunakan cuboid 1, cuboid yang digunakan lenih sedikit sehingga data yang diambil ketika melakukan query juga lebih sedikit.
4. Qb merupakan query biasa dan tidak dipilih menggunakan cuboid. Query ini digunakan untuk pembanding, apakah Qef yang dipilih menggunakan cuboid merupakan query yang memiliki waktu akses paling cepat. Untuk menentukan Qef apakah query yang paling tepat, dapat dilihat pada tabel berikut ini :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
91
Tabel 5. 2 Hasil pencatatan waktu semua query pada query 1
Tabel 5.2 merupakan tabel hasil pencatatan waktu dari semua query, pencatatan waktu berguna untuk menguji apakah query yang dipilih sebagai query efisien merupakan query yang terbaik. Pengujian dilakukan sebanyak sepuluh kali untuk masing-masing query. Pada uji 1 dapat dilihat Qb memiliki waktu akses yang paling cepat, diikuti dengan Qef dan Qp2. Uji 2 Qp1 memiliki waktu akses paling cepat, pada uji 3 Qb memiliki waktu akses paling cepat. Uji 4 Qp1 memiliki waktu akses paling cepat, sedangkan Qef diurutan nomor dua. Untuk uji 5 sampai uji 7 Qef memiliki waktu akses paling cepat, sedangkan pada uji 8 Qef berada pada urutan ke dua dan yang memiliki waktu akses paling cepat adalah Qp2. Pada uji 9 dan 10 Qp1 memiliki waktu akses paling cepat. Dari sepuluh uji tersebut dapat dilihat jika waktu akses dari masing-masing query sangat bervariasi, dan waktu akses dari Qef bukan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
92
merupakan waktu akses yang dominan. Untuk mendapatkan kesimpulan dari hasil pengujian pada Tabel 5.2 maka dicari rerata waktu akses dari masing-masing query, sehingga dapat dilihat query mana yang memiliki waktu akses yang paling cepat. Dari hasil pengujian tersebut, dengan menggunakan rerata waktu akses dari Qef dan Qb dapat dibuat grafik sebagai berikut:
2,5 2,495 2,49 2,485 2,48 2,475 2,47 Q EF
Qb
Grafik 5. 1 Grafik rerata waktu akses Qef dan Qb
Dari grafik 5.1 dapat dilihat waktu akses dari Qef yang diperoleh menggunakan cuboid memiliki waktu akses yang lebih cepat jika dibandingkan dengan Qb. Selisih rerata waktu akses antara Qef dan Qb adalah 0,0162 detik. Melihat hasil waktu akses tersebut maka dapat untuk melakukan pemrosesan query pada gudang data, lebih baik menggunakan Qef.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
93
2,53 2,52 2,51 2,5 2,49 2,48 2,47 2,46 Q EF
Qp1
Qp2
Grafik 5. 2 Grafik rerata pencatatan waktu semua query pada query I
Dari grafik rerata antara Qef, Qp1 dan Qp2 dapat dilihat bahwa Qp2 memiliki waktu akses paling lama, kemudian diikuti Qp1. Selisih rerata waktu akses antara Qp1 dan Qef sebanyak 0,0224 detik. Dan selisih rerata waktu akses antara Qef dan Qp2 sebanyak 0,0384 detik. Qef memiliki waktu akses yang paling rendah atau paling cepat diantara kedua query lain. Demikian dapat dikatakan jika query yang sebelumnya dipilih sebagai Qef yang dipilih menggunakan cuboid adalah query yang paling baik serta didukung dengan hasil pencatatan waktu akses, bahwa Qef adalah query yang memiliki waktu akses yang cepat. Dari kedua grafik yaitu Grafik 5.1 dan 5.2 dapat dilihat Qef memiliki rerata waktu akses yang paling cepat jika dibandingkan dengan semua query pada query I. Maka dari hasil tersebut dapat ditarik
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
94
kesimpulan bahwa Qef merupakan query yang paling tepat untuk digunakan dalam pemrosesan query pada gudang data.
5.2.2. Query II
Untuk pembahasan pada bagian ini yang digunakan adalah query II. Query ini memiliki tujuan yaitu mencari data semua data pada bulan tertentu yakni bulan oktober di tahun 2012. Tabel 5.3 berisi daftar query yang terdiri dari Qef Qp dan Qb.
Tabel 5. 3 Query II Jenis Query Qef
Cuboid yang mungkin Cuboid 1 : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober
Qp1
Cuboid 2 : {tahun, ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober
Qb
OLAP Query select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Nama Penyakit].[Semua Penyakit], [Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit] where [Waktu].[Semua Waktu].[2012].[Oktober] with member [Waktu].[Semua Waktu] as 'Aggregate({[Waktu].[Semua Waktu]})' select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Nama Penyakit].[Semua Penyakit], [Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit] where [Waktu].[Semua Waktu].[2012].[Oktober] select NON EMPTY {[Measures].[Jumlah B], [Measures].[Jumlah L], [Measures].[Jumlah K]} ON COLUMNS, {([Waktu].[Semua Waktu], [Nama Penyakit].[Semua Penyakit],[Kelompok Umur].[Semua Kelompok Umur])} ON ROWS from [penyakit]
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
95
Berdasarkan pada Tabel 5.2 maka berikut ini adalah penjelasan dari masing-masing query beserta cuboid yang digunakan : 1. Qef menggunakan cuboid : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober Query ini dipilih sebagai Qef karena cuboid ICDX dan kelompok umur merupakan cuboid dengan hirarki terluar, query ini juga paling sesuai dengan tujuan untuk melakukan query yakni mencari penyakit tertentu dibulan tertentu dan pada tahun tertentu.
2. Qp1 menggunakan cuboid : {tahun, ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober Cuboid ICDX dan kelompok umur merupakan cuboid dengan level terluar dari hirarki. Jika dibandingkan dengan Qef, pada Qp1 menggunakan tiga cuboid yaitu tahun, ICD-X dan kelompok umur sedangkan pada Qef hanya menggunakan dua cuboid. Maka jika Qp1 digunakan untuk melakukan query akan lebih banyak mengambil data jika dibandingkan dengan Qef.
3. Qb merupakan query biasa dan tidak dipilih menggunakan cuboid. Query ini digunakan untuk pembanding, apakah Qef yang dipilih menggunakan cuboid merupakan query yang memiliki waktu akses paling cepat
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
96
Tabel 5. 4 Hasil pencatatan waktu semua query pada query II
Tabel 5.3 merupakan tabel hasil pencatatan waktu dari semua query, seperti pada query I pengujian dilakukan sebanyak sepuluh kali untuk masing-masing query. Dari hasil pencatatan waktu tersebut kemudian dilakukan perbandingan kecepatan waktu akses masing-masing query , karena yang menjadi dasar pengukurannya adalah waktu akses query. Pada uji 1 dapat dilihat Qef memiliki waktu akses yang paling cepat, diikuti dengan Qp1 dan Qb. Pada uji 2 dan uji 3 Qb memiliki waktu akses yang paling cepat, sedangkan pada uji 4 Qef kembali unggul dengan memiliki waktu akses paling cepat jika dibandingkan dengan query lainnya. Uji 5 Qb memiliki waktu akses paling cepat dapa uji 6 Qp1 yang memiliki waktu akses tercepat. Uji ke 7 dan uji ke 8 Qef memiliki waktu akses yang paling cepat, sedangkan pada uji 9 dan 10 Qp1 ternyata memiliki waktu
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
97
akses tercepat. Dari sepuluh uji tersebut dapat dilihat jika waktu akses dari masing-masing query sangat bervariasi, dan waktu akses dari Qef bukan merupakan waktu akses yang dominan. Untuk mendapatkan kesimpulan dari hasil pengujian pada Tabel 5.3 maka dicari rerata waktu akses dari masing-masing query, sehingga dapat dilihat query mana yang memiliki waktu akses yang paling cepat. Dari hasil pengujian tersebut, dengan menggunakan rerata waktu akses dari Qef dan Qb dapat dibuat grafik sebagai berikut.
2,54 2,53 2,52 2,51 2,5 2,49 2,48 2,47 2,46 Q EF
Qb
Grafik 5. 3 Grafik rerata waktu akses Qef dan Qb
Dari grafik 5.3 dapat dilihat waktu akses dari Qef yang diperoleh menggunakan cuboid memiliki waktu akses yang lebih cepat jika dibandingkan dengan Qb. Selisih rerata waktu akses antara Qef dan Qb adalah 0,0466 detik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
98
2,505 2,5 2,495 2,49 2,485 2,48 2,475 Q EF
Qp1
Grafik 5. 4 Grafik rerata pencatatan waktu semua query pada query II
Dari grafik rerata diatas dilihat bahwa Qp1 memiliki waktu akses paling lama. Selisih rerata waktu akses antara Qp1 dan Qef sebanyak 0,0141 detik. Qef memiliki waktu akses yang paling rendah jika dibandingkan dengan Qp1. Demikian dapat dikatakan jika query yang sebelumnya dipilih sebagai Qef yang dipilih menggunakan cuboid adalah query yang paling baik serta didukung dengan hasil pencatatan waktu akses, bahwa Qef adalah query yang memiliki waktu akses yang cepat. Dari kedua grafik yaitu Grafik 5.3 dan 5.4 dapat dilihat Qef memiliki rerata waktu akses yang paling cepat jika dibandingkan dengan semua query pada query II. Maka dari hasil tersebut dapat ditarik kesimpulan melakukan pemrosesan data pada query II ini, lebih baik menggunakan Qef.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
99
5.3. Pengujian Qef Menggunakan Bitmap Indexing
Pada bagian ini membahas mengenai hasil pengujian dari Qef dengan menggunakan kombinasi bitmap indexing pada kolom tertentu. Berikut ini adalah kombinasi bitmap indexing yang digunakan
Tabel 5. 5 Kombinasi bitmap indexing No Dimensi waktu
Dimensi nama penyakit
1
TH
bulan
JP
ICD_X
2
TH
bulan
JP
ICD_X
3
TH
bulan
JP
ICD_X
4
TH
bulan
JP
ICD_X
5
TH
bulan
JP
ICD_X
Keterangan : warna kuning menunjukkan bitmap indeks yang digunakan Keterangan : ICDX=ICDX JP: Jenis Penyakit TH=Tahun
Hasil yang diharapkan dari pengujian ini adalah
mendapatkan
bitmap indexing yang paling baik untuk Qef yang telah didapat sebelumnya. Bitmap indexing yang digunakan sebanyak 5 kombinasi yaitu ICDX, JP, TH, TH ICDX dan TH JP. Alasan menggunakan kelima kombinasi
dengan
tujuan
untuk
pembanding,
sehingga
nantinya
didapatkan indeks yang terbaik. ICDX dipakai dalam bitmap indexing karena jika pada hirarki ICDX sering digunakan pada klausa where dan ICDX ini akan menjadi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
100
pembanding untuk indeks JP, karena jumlah data dari kedua kolom tersebut memiliki selisih yang tidak terlalu besar. TH digunakan dalam bitmap indexing karena tahun memiliki low cardinality dan sering digunakan pada klausa where. Data TH bukan merupakan data yang unik. Data unik membutuhkan jumlah space yang lebih besar jika digunakan dalam bitmap indexing. JP digunakan dalam bitmap indexing karena JP juga sering digunakan pada klausa where. Untuk indeks TH ICDX dan TH JP karena kedua kombinasi tersebut juga digunakan pada klausa where, selain itu kedua kombinasi tersebut dibandingkan untuk mencari kombinasi indeks mana yang terbaik. Berdasarkan teori yang ada pemilihan bitmap indexing berdasarkan kriteria-kriteria tertentu diantaranya sering digunakan pada where dan low cardinality. Berdasarkan teori tersebut maka bitmap indexing yang paling cocok untuk digunakan oleh Qef pada query I maupun pada query II adalah indeks TH ICDX atau TH JP. Mengapa yang dianggap bitmap indexing yang paling baik karena tahun, ICDX dan nama penyakit sering digunakan pada where. Kolom ICDX maupun kolom nama penyakit memiliki data yang jumlahnya tidak terlalu besar dan sering digunakan pada where, jika kedua kolom tersebut dikenakan bitmap indexing maka akan semakin mempercepat pencarian karena indeks ini hanya mengenal 1dan 0 serta semakin banyak kolom yang diindeks maka akan semakin memprcepat pencarian data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
101
5.3.1. Bitmap Indexing pada Query I
Tabel 5. 6 Hasil pencatatan waktu Qef menggunakan bitmap indexing pada query I
Keterangan : ICDX=ICDX JP: Jenis Penyakit TH=Tahun
Dari hasil pencatatan waktu Qef dengan menggunakan semua kombinasi bitmap indexing dapat dilihat pada uji 1 indeks ICDX memiliki waktu akses paling cepat. Pada uji 2 indeks JP paling unggul diantara indeks yang lain dengan waktu akses tercepat. Uji 3 TH ICDX memiliki waktu akses yang tercepat. Pada uji 4 JP yang memiliki waktu akses paling cepat, sedangkan uji ke 5 TH JP yang mendominasi. Uji 6 TH yang memiliki waktu akses tercepat, uji 7 TH ICDX yang memiliki waktu akses tercepat. Untuk uji 8, 9, 10 secara berurutan adalah TH, TH ICDX, TH JP yang memiliki waktu akses tercepat. Dari kesepuluh pengujian tersebut dapat diterjemahkan dalam sebuah grafik sebagai berikut ini :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
102
2,7 2,65 2,6 2,55 2,5 2,45 2,4 2,35 ICDX
JP
TH
TH ICDX
TH JP
Grafik 5. 5 Grafik rerata waktu akses Qef pada query I dengan kombinasi bitmap indexing
Dari grafik diatas dapat dilihat bahwa indeks ICDX memiliki waktu akses yang paling lama. Pada urutan berikutnya setelah ICDX adalah indeks TH kemudian diikuti oleh JP, TH JP dan TH ICDX. Seperti yang disebutkan sebelumnya, jika berdasarkan teori maka indeks TH ICDX atau TH JP yang paling cocok digunakan dalam penelitian ini. Dari pengujian yang didapat dapat dilihat bahwa indeks TH ICDX yang memiliki waktu akses yang tercepat.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
103
5.3.2. Bitmap Indexing pada Query II
Tabel 5. 7 Hasil pencatatan waktu Qef menggunakan bitmap indexing pada query II
Keterangan : ICDX=ICDX JP: Jenis Penyakit TH=Tahun
Dari hasil pencatatan waktu Qef dengan menggunakan semua kombinasi bitmap indexing dapat dilihat pada uji 1 indeks JP memiliki waktu akses tercepat kemudian diikuti oleh indeks TH JP. Uji 2 indeks dengan waktu tercepat adalah TH JP, diikuti oleh ICDX, dan JP. Uji 3 waktu akses yang tercepat adalah indeks ICDX dan JP karena memiliki waktu akses yang sama, pada uji 4 indeks TH yang memiliki waktu akses tercepat. Uji 5 indeks dengan waktu akses tercepat adalah TH JP sedangkan uji 6 dan uji 7 indeks yang tercepat adalah ICDX. Untuk uji 8 dan uji 9 indeks dengan waktu akses paling cepat adalah TH JP sedangkan untuk uji 10 indeks yang tercepat adalah TH ICDX. Dari kesepuluh
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
104
pengujian tersebut dapat dilihat bahwa waktu akses Qef dengan menggunakan kombinasi bitmap indexing sangat bervariasi. Dari Tabel 5.6 diterjemahkan dalam sebuah grafik sebagai berikut ini :
2,7 2,65 2,6 2,55 2,5 2,45 2,4 2,35 ICDX
JP
TH
TH ICDX
TH JP
Grafik 5. 6 Grafik rerata waktu akses Qef pada query II dengan kombinasi bitmap indexing
Dapat dilihat bahwa indeks JP dan indeks TH memiliki waktu akses paling lama. Pada urutan selanjutnya diikuti oleh indeks ICDX, kemudian pada posisi selanjutnya terdapat indeks TH ICDX kemudian diikuti oleh indeks TH JP. Indeks ICDX dan TH ICDX, juga memiliki selisih rerata waktu akses yang sangat sedikit. Namun tetap dicari bitmap indexing yang tercepat. Seperti yang disebutkan sebelumnya, jika berdasarkan teori yang ada maka indeks yang paling baik digunakan pada query I dan query II adalah TH ICDX atau TH
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
105
JP. Dari hasil pengujian ini, dapat dilihat pada Grafik 5.6 tersebut dapat disimpulkan bahwa bitmap indexing yang terbaik adalah bitmap indexing dengan menggunakan kolom TH JP. Dari pengujian yang telah dilakukan dapat dilihat perbandingan waktu akses dari Qef tanpa bitmap indexing maupun dengan menggunakan indeks baik pada query I maupun query II.
Tabel 5. 8 Waktu akses Qef pada query I dan query II
Pada tabel 5.7 merupakan waktu akses dari Qef tanpa indeks dan Qef dengan menggunakan bitmap indexing. Bitmap indexing pada query I dan query II pada tabel diatas merupakan indeks yang memiliki waktu akses paling cepat dibandingkan dengan kombinasi bitmap indexing lainnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
-
106
Qef pada query I tanpa menggunakan indeks memiliki rerata waktu akses 2,4808 detik sedangkan jika menggunakan indeks adalah 2,4717 detik. Maka selisih rerata waktu adalah 0,0091 detik.
-
Qef pada query II tanpa menggunakan indeks memiliki rerata waktu akses 2,4858 detik sedangkan jika menggunakan indeks adalah 2,478 detik. Maka selisih waktu adalah 0,0078 detik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB VI KESIMPULAN DAN SARAN
6.1. Kesimpulan
Kesimpulan yang dapat diambil dari penelitian ini adalah : 1. Dari kasus data laporan penyakit Puskesmas Jebed pada tahun 2010 sampai 2012, penggunaan bitmap indexing pada Qef dapat mempercepat waktu pencarian data. Semakin cepat waktu pencarian maka unjuk kerja dari OLAP semakin tinggi. 2. Dalam menentukan query efisien menggunakan cuboid untuk kasus dengan menggunakan data laporan penyakit Puskesmas Jebed pada tahun 2010 sampai 2012, hal yang harus diperhatikan adalah cuboid beserta level dari hirarki, tujuan melakukan suatu query serta penggunaan dari klausa where yang sesuai. Dengan memperhatikan aspek-aspek yang ada serta pemilihan cuboid yang sesuai maka waktu akses query semakin cepat. Seperti pada query I dapat dilihat rerata waktu akses dari Qef adalah 2,4808 detik. Penggunaan bitmap indexing yang tepat dapat mempengaruhi kecepatan query. Qef pada query I cocok menggunakan bitmap indexing TH ICDX dengan waktu akses menjadi 2,4717 detik sedangkan untuk Qef pada query II dengan menggunakan bitmap indexing TH JP waktu akses menjadi 107
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
108
2,478 detik. Bitmap indexing yang dibuat pada kolom tahun merupakan bitmap indexing yang tepat karena tahun mempunyai low cadinality, sedangkan bitmap indexing pada kolom ICDX dan JP merupakan indeks yang tepat karena ICDX berisi semua kode nama penyakit dan JP berisi semua nama penyakit sehingga jika dibuat indeks akan sangat mempercepat pencarian data terutama untuk membantu mencari nama penyakit. Dari penjelasan yang telah dijabarkan maka dapat disimpulkan bahwa Qef memiliki waktu akses yang lebih cepat jika dibandingkan dengan Qb. Qef menggunakan bitmap indexing yang sesuai maka dapat semakin mempercepat waktu akses dari Qef. Dengan demikian kedua teknik tersebut dapat membantu meningkatkan unjuk kerja OLAP.
6.2. Saran
1. Sistem dapat dikembangkan menjadi sebuah sistem penuh. 2. Perhitungan menggunakan pendekatan algebra dapat digunakan dalam menentukan query yang efisien. 3. Untuk melihat perbedaan waktu akses Qef tanpa indeks maupun menggunakan indeks, dapat menambah jumlah data sehingga perbedaan waktu dapat semakin tampak. 4. Melakukan pengujian unjuk kerja dengan menggunakan spesifikasi yang berbeda perangkat keras yang digunakan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA
__________DataMultidimensi. http://www.gudangmateri.com/2010/04/data-multidimensi.html. diakses pada 29 Desember 2012 __________Kettle/ Pentaho Data Integration. http://pentaho.phiintegration.com/kettle. diakses pada 07 Januari 2013 __________MDX). http://www.scribd.com/doc/35640387/44/MDXQuery-Syntax diakses pada 02 Januari 2013 __________Perancangan Data Warehouse dengan Skema Bintang. www.scribd.com/doc/54651008/Perancangan-Data-WarehouseDengan-Skema-Bintang. diakses pada 28 Juli 2013 __________Query Language. http://en.wikipedia.org/wiki/Query_language. diakses pada 30 Desember 2012 __________Tabel Fakta. http://www.scribd.com/doc/45100715/TabelFakta). diakses pada 29 Desember 2012 Angraini,Nenny.OLAP.http://www.docstoc.com/docs/125462717/jawaban -segera-tentang-barang-apa-yang-penjualannya-paling-baik-padabulan. diakses pada 30 Januari 2013 Han, Jiawei and Micheline Kamber. 2006. Data Mining Concepts and Techniques Second Edition. Morgan Kaufman Publishers: USA Susanto, Budi. 2007.BelajarSendiri : Administrasi & Pemrograman Database Oracle 10 g Xe. PT Elex Media Komputindo : Jakarta Susanto, Budi. 2007. Teknik Pemanfatan Data Mining untuk Keperluan Bisnis. Graha Ilmu : Yogyakarta. Syamsiar, Evara. 2004. Oracle Optimasi Database 9i. PT Elex Media Komputindo: Jakarta
109
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Utomo, Andri Budi.Pengertian Query. http://www.scribd.com/doc/94856655/Pengertian-Query. diakses pada 30 Desember 2012 Wasito, Setiawan. 2010. Implementasi Gudang Data untuk Keperluan Akademik Studi Kasus Fakultas Teknik Informatika Universitas Sanata Dharma. Yogyakarta, Universitas Sanata Dhar
110
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
111