Analisis Kebutuhan Menerapkan ANALISIS DAN PERANCANGAN

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. 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 berbagai sumber terpisah Merupakan tahap menggabungkan semua data, jika berbeda format maka disamakan formatnya. Tahap ini berisi ilustrasi bagaimana cara menggabungkan data 3.4.3 Memindahkan data ke server gudang data Merupakan tahap memindahkan data ke dalam server, tahap ini dimulai dengan membuat tabel master terlebih dahulu. 3.4.4 Memecah gudang data ke dalam tabel fakta dan dimensi Berdasarkan pada tahap 3.4.3, dengan menggunakan sumber data dari tabel 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 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 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. 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 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 Merupakan data yang berisi id dari masing- masing kelompok umur Nama 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 masing- masing dimensi, dalam tabel fakta juga terdapat measure yakni B, L dan 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.

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 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.

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. 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 a. Query efisien Qef yang dipilih menggunakan cuboid yang paling baik. b. Query biasaQb 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] 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 Cuboid yang mungkin Melihat data penyakit dengan ICD_X= A15 yaitu penyakit TB Paru BTA + di tahun 2010 Cuboid 1 : {Kelompok umur} where ICD- X=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. Tabel 3. 11 Query yang digunakan pada query I Jenis query Cuboid yang mungkin OLAP Query Qef Cuboid 1 : {Kelompok umur} where ICD-X=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]} Qp1 Cuboid 2 : {ICD-X, Kelompok umur } where ICD-X=A15 and nama penyakit= TB Paru BTA + and tahun=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]} Qp2 Cuboid 3 : { Kelompok umur, tahun } where ICD- X=A15 and nama penyakit= TB Paru BTA + and tahun=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]} Qb 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] 3.5.2.2. 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 Cuboid yang mungkin Melihat data nama penyakit dan kelompok umur di bulan tertentu yakni bulan oktober pada tahun Cuboid 1 : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober 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 Cuboid yang mungkin OLAP Query Qef Cuboid 1 : {ICD-X, Kelompok umur} where tahun=2012 and bulan=oktober 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] Qp1 Cuboid 2 : {tahun, ICD-X, Kelompok umur} where tahun=2012 and bulan=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] Qb 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]

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 indexing nya dikarenakan data pada kolom ini jumlahnya hanya sedikit sehingga tidak perlu dilakukan indexing. Tabel 3. 15 Bitmap indexing yang digunakan Dimensi dan Kolom Kolom yang menggunakan Bitmap indexing Waktu - Bulan - Nama bulan - Tahun - Id tahun - Sk waktu Tahun Nama Penyakit - SP2TP - ICD-X - Jenis penyakit - Id penyakit - Sk nama penyakit Jenis penyakit ICD-X Kelompok Umur - Id kelompok umur - Nama kelompok umur - Sk kelompok umur Tabel 3.15 menunjukkan bitmap indexing yang dibuat pada masing-masing dimensi kecuali dimensi kelompok umur

3.7. Langkah Pengujian