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