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