48
Gambar 4.6 Tabel data_rekam_medis
4.2.2 Pembentukan Tabel Rekam Medis
4.2.2.1 Tabel rekam_medis
Gambar 4.7 Job rekam_medis 0.1
Pembentukan tabel
rekam_medis. Langkah
pembentukan tabel rekam_medis adalah sebagai berikut : 1. Membaca
tabel data_rekam_medis
input data_rekam_medis
Gambar 4.8 Step input data_rekam_medis
49
Proses ini bertujuan untuk membaca data pada tabel data_rekam_medis dari
database master_rekam_medis.
Koneksi menggunakan
koneksi repository
yaitu koneksi_master_rekam_medis.
Query yang
digunakan adalah
“select from
data_rekam_medis”.
2. Mengganti isi dari field sex tReplace_1
Gambar 4.9 Step tReplace_1
Proses ini bertujuan untuk mengganti isi dari field
sex. Pada proses ini sistem akan melakukan search
untuk field sex yang berisi “LK” diganti dengan “Pria” dan “PR” diganti dengan “Wanita”.
3. Membaca field dokter dari tabel data rekam_medis input dokter data_rekam_medis
Gambar 4.10 Step input dokter data_rekam_medis
Proses ini bertujuan untuk membaca field dokter pada tabel data_rekam_medis dari database
master_rekam_medis. Koneksi
menggunakan koneksi
repository yaitu
50
koneksi_master_rekam_medis. Query
yang digunakan adalah “select distinct dokter from
data_rekam_medis”.
4. Mapping hasil dari membaca field dokter tMap_2
Gambar 4.11 Step tMap_2
Proses ini bertujuan untuk mengambil field dari proses input dokter data_rekam_medis dan
menambahkan field kode_dokter. Field kode_dokter diambil dari var1 yang berisi expression Dokter
+Numeric.sequences6,1,1, fungsi
dari expression
tersebut untuk membuat variable “Dokter” dan disambung dengan angka sekuensial,
contoh : Dokter 1.
5. Mapping hasil dari tReplace_1 dan tMap_2
tMap_1
Gambar 4.12 Step tMap_1
Proses ini bertujuan untuk mengambil field yang diperlukan dari step tReplace_1 dan tMap_2.
51
Pada proses ini juga terdapat lookup antara hasil dari step tReplace_1 dan tMap_2 untuk field dokter.
Proses ini juga melakukan penambahan field no, diambil
dari var1
yang berisi
expression Numeric.sequences7,1,1, fungsi dari expression
tersebut untuk membuat variable angka sekuensial. Field
yang dihasilkan adalah no, bulan, tahun, no_rm, diagnosa, ruang, dokter, jenis_kasus,
jenis_kelamin dan cara_bayar. Khusus untuk field diagnosa hanya diambil 3 huruf dari kiri
StringHandling.LEFTrow5.kode_du,3.
6. Output tabel rekam_medis output rekam_medis
Gambar 4.13 Step output rekam_medis
Proses ini bertujuan untuk membuat output table
rekam_medis di database rekam_medis. Pada proses ini menggunakan koneksi repository yaitu
koneksi_ rekam_medis
dengan target
table rekam_medis. Action on table yang digunakan
adalah drop table if exist and create serta action on data
yang digunakan adalah insert.
Hasil dari pembentukan tabel rekam_medis seperti pada Gambar 4.14. Terdapat 10 field yaitu no, bulan, tahun,
no_rm, diagnosa, ruang, dokter, jenis_kasus, jenis_kelamin dan cara_bayar.
52
Gambar 4.14 Tabel rekam_medis
4.2.3 Pembentukan Tabel Dimensi
4.2.3.1 Tabel dim_waktu
Gambar 4.15 Job dim_waktu 0.1
Pembentukan tabel
dim_waktu. Langkah
pembentukan tabel dim_waktu adalah sebagai berikut : 1. Membaca
file excel
tabel_waktu.xls input
tabel_waktu
Gambar 4.16 Step input table_waktu
Proses ini bertujuan untuk membaca file excel
tabel_waktu.xls dari folder directory. Proses ini akan membaca semua sheets pada file serta
membuat baris pertama sebagai header hanya pada
53
sheets 1. Schema yang digunakan diambil dari
repository yaitu tabel_waktu – metadata.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.17 Step tMap_1
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_waktu, diambil dari var1 yang berisi
expression Numeric.sequences5,1,1,
fungsi dari expression tersebut untuk membuat variable
angka sekuensial. Field yang dihasilkan adalah sk_waktu, tahun dan bulan.
3. Output tabel dim_waktu output dim_waktu
Gambar 4.18 Step output dim_waktu
Proses ini bertujuan untuk membuat output table
dim_waktu di database rekam_medis. Pada proses ini menggunakan koneksi repository yaitu
koneksi_ rekam_medis
dengan target
table dim_waktu. Action on table yang digunakan adalah
54
drop table if exist and create serta action on data
yang digunakan adalah insert.
Hasil dari pembentukan tabel rekam_medis seperti pada Gambar 4.19. Terdapat 3 field yaitu sk_waktu, tahun dan
bulan.
Gambar 4.19 Tabel dim_waktu
4.2.3.2 Tabel dim_pasien
Gambar 4.20 Job dim_pasien 0.1
Pembentukan tabel
dim_pasien. Langkah
pembentukan tabel dim_pasien adalah sebagai berikut : 1. Membaca
file excel
tabel_pasien.xls input
tabel_pasien
55
Gambar 4.21 Step input tabel_pasien
Proses ini bertujuan untuk membaca file excel
tabel_pasien.xls dari folder directory. Proses ini akan membaca semua sheets pada file serta
membuat baris pertama sebagai header semua sheets
. Schema yang digunakan diambil dari repository
yaitu tabel_pasien – metadata.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.22 Step tMap_1
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_pasien, diambil dari var1 yang berisi
expression Numeric.sequences3,1,1,
fungsi dari expression tersebut untuk membuat variable
angka sekuensial. Field yang dihasilkan adalah sk_pasien, no_rm dan kecamatan.
56
3. Output tabel dim_pasien output dim_pasien
Gambar 4.23 Step output dim_pasien
Proses ini bertujuan untuk membuat output table
dim_pasien di database rekam_medis. Pada proses ini menggunakan koneksi repository yaitu
koneksi_ rekam_medis
dengan target
table dim_pasien. Action on table yang digunakan adalah
drop table if exist and create serta action on data
yang digunakan adalah insert. Hasil dari pembentukan tabel dim_pasien seperti pada
Gambar 4.24. Terdapat 3 field yaitu sk_pasien, no_rm dan kecamatan.
Gambar 4.24 Tabel dim_pasien
57
4.2.3.3 Tabel dim_diagnosa
Gambar 4.25 Job dim_diagnosa 0.1
Pembentukan tabel
dim_diagnosa. Langkah
pembentukan tabel dim_diagnosa adalah sebagai berikut : 1. Membaca file excel tabel_diagnosa.xls input
tabel_diagnosa
Gambar 4.26 Step input tabel_diagnosa
Proses ini bertujuan untuk membaca file excel
tabel_diagnosa.xls dari folder directory
. Proses ini akan membaca semua sheets pada file
serta membuat baris pertama sebagai header semua sheets
. Schema yang digunakan diambil dari repository
yaitu tabel_diagnosa – metadata.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.27 Step tMap_1
58
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_diagnosa, diambil dari var1 yang berisi expression Numeric.sequences1,1,1,
fungsi dari expression tersebut untuk membuat variable
angka sekuensial. Field yang dihasilkan adalah
sk_diagnosa, kode_diagnosa,
kategori, sub_kategori dan diagnosa.
3. Output tabel dim_diagnosa output dim_diagnosa
Gambar 4.28 Step output dim_diagnosa
Proses ini bertujuan untuk membuat output table
dim_diagnosa di database rekam_medis. Pada proses ini menggunakan koneksi repository yaitu
koneksi_ rekam_medis
dengan target
table dim_diagnosa. Action on table yang digunakan
adalah drop table if exist and create serta action on data
yang digunakan adalah insert.
59
Hasil dari pembentukan tabel dim_diagnosa seperti pada Gambar 4.29. Terdapat 5 field yaitu sk_diagnosa,
kode_diagnosa, kategori, sub_kategori dan diagnosa.
Gambar 4.29 Tabel dim_diagnosa
4.2.3.4 Tabel dim_ruang
Gambar 4.30 Job dim_ruang 0.1
Pembentukan tabel
dim_ruang. Langkah
pembentukan tabel dim_ruang adalah sebagai berikut : 1. Membaca
file excel
tabel_ruang.xls input
tabel_ruang
Gambar 4.31 Step input tabel_ruang
Proses ini bertujuan untuk membaca file excel
tabel_ruang.xls dari folder directory. Proses ini akan membaca semua sheets pada file serta
60
membuat baris pertama sebagai header semua sheets
. Schema yang digunakan diambil dari repository
yaitu tabel_ruang – metadata.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.32 Step tMap_1
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_ruang, diambil dari var1 yang berisi
expression Numeric.sequences4,1,1,
fungsi dari expression tersebut untuk membuat variable
angka sekuensial. Field yang dihasilkan adalah sk_ruang, ruang, instalasi dan kelas.
3. Output tabel dim_ruang output dim_ruang
Gambar 4.33 Step output dim_ruang
Proses ini bertujuan untuk membuat output table
dim_ruang di database rekam_medis. Pada proses ini menggunakan koneksi repository yaitu
koneksi_ rekam_medis
dengan target
table
61
dim_ruang. Action on table yang digunakan adalah drop table if exist and create
serta action on data yang digunakan adalah insert.
Hasil dari pembentukan tabel dim_ruang seperti pada Gambar 4.34. Terdapat 4 field yaitu sk_ruang, ruang,
instalasi dan kelas.
Gambar 4.34 Tabel dim_ruang
4.2.3.5 Tabel dim_dokter
Gambar 4.35 Job dim_dokter 0.1
Pembentukan tabel
dim_dokter. Langkah
pembentukan tabel dim_dokter adalah sebagai berikut : 1. Membaca tabel rekam_medis input rekam_medis
62
Gambar 4.36 Step input rekam_medis
Proses ini bertujuan untuk membaca field dokter pada tabel rekam_medis dari database
rekam_medis. Koneksi menggunakan koneksi repository
yaitu koneksi_ rekam_medis. Query yang digunakan adalah “select distinct dokter from
rekam_medis”.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.37 Step tMap_1
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_dokter, diambil dari var1 yang berisi
expression Numeric.sequences8,1,1,
fungsi dari expression tersebut untuk membuat variable
angka sekuensial. Field yang dihasilkan adalah sk_dokter dan dokter.
3. Output tabel dim_dokter output dim_dokter
63
Gambar 4.38 Step output dim_dokter
Proses ini bertujuan untuk membuat output table
dim_dokter di database rekam_medis. Pada proses ini menggunakan koneksi repository yaitu
koneksi_ rekam_medis
dengan target
table dim_dokter. Action on table yang digunakan adalah
drop table if exist and create serta action on data
yang digunakan adalah insert.
Hasil dari pembentukan tabel dim_dokter seperti pada Gambar 4.39. Terdapat 2 field yaitu sk_dokter dan
dokter.
Gambar 4.39 Tabel dim_dokter
64
4.2.3.6 Tabel dim_jenis_kasus
Gambar 4.40 Job dim_jenis_kasus 0.1
Pembentukan tabel dim_jenis_kasus. Langkah pembentukan tabel dim_jenis_kasus adalah sebagai berikut:
1. Membaca tabel rekam_medis input rekam_medis
Gambar 4.41 Step input rekam_medis
Proses ini bertujuan untuk membaca field jenis_kasus pada tabel rekam_medis dari database
rekam_medis. Koneksi menggunakan koneksi
repository yaitu koneksi_ rekam_medis. Query yang
digunakan adalah “select distinct jenis_kasus from rekam_medis”.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.42 Step tMap_1
65
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_jenis_kasus, diambil dari var1 yang
berisi expression
Numeric.sequences10,1,1, fungsi
dari expression
tersebut untuk membuat variable angka sekuensial.
Field yang
dihasilkan adalah
sk_jenis_kasus dan jenis_kasus.
3. Output tabel
dim_jenis_kasus output
dim_jenis_kasus
Gambar 4.43 Step output dim_jenis_kasus
Proses ini bertujuan untuk membuat output table
dim_jenis_kasus di database rekam_medis. Pada proses ini menggunakan koneksi repository
yaitu koneksi_ rekam_medis dengan target table dim_jenis_kasus. Action on table yang digunakan
adalah drop table if exist and create serta action on data
yang digunakan adalah insert.
Hasil dari pembentukan tabel dim_jenis_kasus seperti pada Gambar 4.44. Terdapat
2 field
yaitu sk_jenis_kasus dan jenis_kasus.
Gambar 4.44 Tabel jenis_kasus
66
4.2.3.7 Tabel dim_jenis_kelamin
Gambar 4.45 Job dim_jenis_kelamin 0.1
Pembentukan tabel dim_jenis_kelamin. Langkah pembentukan tabel dim_jenis_kelamin adalah sebagai
berikut : 1. Membaca tabel rekam_medis input rekam_medis
Gambar 4.46 Step input rekam_medis
Proses ini bertujuan untuk membaca field jenis_kelamin
pada tabel
rekam_medis dari
database rekam_medis. Koneksi menggunakan
koneksi repository yaitu koneksi_ rekam_medis. Query
yang digunakan adalah “select distinct jenis_kelamin from rekam_medis”.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.47 Step tMap_1
67
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_jenis_kelamin, diambil dari var1
yang berisi
expression Numeric.sequences9,1,1, fungsi dari expression
tersebut untuk membuat variable angka sekuensial. Field
yang dihasilkan adalah sk_jenis_kelamin dan jenis_kelamin.
3. Output tabel
dim_jenis_kelamin output
dim_jenis_kelamin
Gambar 4.48 Step output jenis_kelamin
Proses ini bertujuan untuk membuat output table
dim_jenis_kelamin di database rekam_medis. Pada proses ini menggunakan koneksi repository
yaitu koneksi_ rekam_medis dengan target table dim_jenis_kelamin. Action on table yang digunakan
adalah drop table if exist and create serta action on data
yang digunakan adalah insert.
Hasil dari pembentukan tabel dim_jenis_kelamin seperti pada Gambar 4.49. Terdapat
2 field
yaitu sk_jenis_kelamin dan jenis_kelamin.
Gambar 4.49 Tabel dim_jenis_kelamin
68
4.2.3.8 Tabel dim_cara_bayar
Gambar 4.50 Job dim_cara_bayar 0.1
Pembentukan tabel
dim_cara_bayar. Langkah
pembentukan tabel dim_cara_bayar adalah sebagai berikut : 1. Membaca tabel rekam_medis input rekam_medis
Gambar 4.51 Step input rekam_medis
Proses ini bertujuan untuk membaca field jenis_cara_bayar pada tabel rekam_medis dari
database rekam_medis. Koneksi menggunakan
koneksi repository yaitu koneksi_ rekam_medis. Query yang digunakan adalah “select distinct
cara_bayar from rekam_medis”.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.52 Step tMap_1
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
69
penambahan field sk_cara_bayar, diambil dari var1 yang
berisi expression
Numeric.sequences11,1,1, fungsi dari expression tersebut untuk membuat variable angka sekuensial.
Field yang dihasilkan adalah sk_cara_bayar dan
cara_bayar.
3. Output tabel
dim_cara_bayar output
dim_cara_bayar
Gambar 4.53 Step output dim_cara_bayar
Proses ini bertujuan untuk membuat output table
dim_cara_bayar di database rekam_medis. Pada proses ini menggunakan koneksi repository
yaitu koneksi_ rekam_medis dengan target table dim_cara_bayar. Action on table yang digunakan
adalah drop table if exist and create serta action on data
yang digunakan adalah insert.
70
Hasil dari pembentukan tabel dim_cara_bayar seperti pada Gambar 4.14. Terdapat
2 field
yaitu sk_cara_bayar dan cara_bayar.
Gambar 4.54 Tabel dim_cara_bayar
4.2.3.9 Tabel dim_kecamatan
Gambar 4.55 Job dim_kecamatana 0.1
Pembentukan tabel
dim_kecamatan. Langkah
pembentukan tabel dim_kecamatan adalah sebagai berikut : 1. Membaca tabel dim_pasien input dim_pasien
Gambar 4.56 Step input dim_pasien
71
Proses ini bertujuan untuk membaca field kecamatan pada tabel dim_pasien dari database
rekam_medis. Koneksi menggunakan koneksi repository
yaitu koneksi_ rekam_medis. Query yang digunakan adalah “select distinct kecamatan from
dim_pasien”.
2. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.57 Step dim_kecamatan
Proses ini bertujuan untuk mengambil field yang diperlukan. Proses ini juga melakukan
penambahan field sk_kecamatan, diambil dari var1 yang berisi expression Numeric.sequences2,1,1,
fungsi dari expression tersebut untuk membuat variable
angka sekuensial. Field yang dihasilkan adalah sk_kecamatan dan kecamatan.
3. Output tabel
dim_kecamatan output
dim_kecamatan
Gambar 4.58 Step output dim_kecamatan
Proses ini bertujuan untuk membuat output table
dim_kecamatan di database rekam_medis.
72
Pada proses ini menggunakan koneksi repository yaitu koneksi_ rekam_medis dengan target table
dim_kecamatan. Action on table yang digunakan adalah drop table if exist and create serta action on
data yang digunakan adalah insert.
Hasil dari pembentukan tabel dim_kecamatan seperti pada Gambar 4.59. Terdapat 2 field yaitu sk_kecamatan dan
kecamatan.
Gambar 4.59 Tabel dim_kecamatan
73
4.2.4 Pembentukan Tabel Fakta fact_rekam_medis
Gambar 4.60 fact_rekam_medis
Pembentukan tabel
fact_rekam_medis. Langkah
pembentukan tabel fact_rekam_medis adalah sebagai berikut : 1. Membaca tabel rekam_medis input rekam_medis
Gambar 4.61 Step input rekam_medis
Proses ini bertujuan untuk membaca tabel rekam_medis dari database rekam_medis. Koneksi menggunakan koneksi
repository yaitu koneksi_ rekam_medis. Query yang digunakan
adalah “select from rekam_medis”.
74
2. Membaca tabel dim_waktu input dim_waktu
Gambar 4.62 Step input dim_waktu
Proses ini bertujuan untuk membaca tabel dim_waktu dari database
rekam_medis. Koneksi menggunakan koneksi repository
yaitu koneksi_ rekam_medis. Query yang digunakan adalah “select from dim_waktu”.
3. Membaca tabel dim_pasien input dim_pasien
Gambar 4.63 Step input dim_pasien
Proses ini bertujuan untuk membaca tabel dim_pasien dari database
rekam_medis. Koneksi menggunakan koneksi repository
yaitu koneksi_ rekam_medis. Query yang digunakan adalah “select from dim_pasien”.
75
4. Membaca tabel dim_diagnosa input dim_diagnosa
Gambar 4.64 Step input dim_diagnosa
Proses ini bertujuan untuk membaca tabel dim_diagnosa dari database rekam_medis. Koneksi menggunakan koneksi
repository yaitu koneksi_ rekam_medis. Query yang digunakan
adalah “select from dim_diagnosa”.
5. Membaca tabel dim_ruang input dim_ruang
Gambar 4.65 Step input dim_ruang
Proses ini bertujuan untuk membaca tabel dim_ruang dari database
rekam_medis. Koneksi menggunakan koneksi repository
yaitu koneksi_ rekam_medis. Query yang digunakan adalah “select from dim_ruang”.
76
6. Membaca tabel dim_dokter input dim_dokter
Gambar 4.66 Step input dim_dokter
Proses ini bertujuan untuk membaca tabel dim_dokter dari database
rekam_medis. Koneksi menggunakan koneksi repository
yaitu koneksi_ rekam_medis. Query yang digunakan adalah “select from dim_dokter”.
7. Membaca tabel dim_jenis_kasus input dim_jenis_kasus
Gambar 4.67 Step input dim_jenis_kasus
Proses ini bertujuan untuk membaca tabel dim_jenis_kasus dari database rekam_medis. Koneksi menggunakan koneksi
repository yaitu koneksi_ rekam_medis. Query yang digunakan
adalah “select from dim_jenis_kasus”.
77
8. Membaca tabel dim_jenis_kelamin input dim_jenis_kelamin
Gambar 4.68 Step input dim_jenis_kelamin
Proses ini
bertujuan untuk
membaca tabel
dim_jenis_kelamin dari database
rekam_medis. Koneksi menggunakan koneksi repository yaitu koneksi_ rekam_medis.
Query yang
digunakan adalah
“select from
dim_jenis_kelamin”.
9. Membaca tabel dim_cara_bayar input dim_cara_bayar
Gambar 4.69 Step input dim_cara_bayar
Proses ini bertujuan untuk membaca tabel dim_cara_bayar dari database rekam_medis. Koneksi menggunakan koneksi
repository yaitu koneksi_ rekam_medis. Query yang digunakan
adalah “select from dim_cara_bayar”.
78
10. Membaca tabel dim_kecamatan input dim_kecamatan
Gambar 4.70 Step input dim_kecamatan
Proses ini bertujuan untuk membaca tabel dim_kecamatan dari database rekam_medis. Koneksi menggunakan koneksi
repository yaitu koneksi_ rekam_medis. Query yang digunakan
adalah “select from dim_kecamatan”.
11. Mapping untuk mendapatkan field yang dibutuhkan tMap_1
Gambar 4.71 Step tMap_1
Proses ini bertujuan untuk mengambil field
yang diperlukan. Pada proses ini dilakukan lookup tabel untuk
mengaitkan satu tabel dengan yang lainnya. Tabel 4.1 akan menjelaskan lookup tabel yang dilakukan.
79
Tabel 4.1 Lookup tMap_1
Field key Field lookup
rekam_medis bulan
dim_waktu bulan
rekam_medis tahun
dim_waktu tahun
rekam_medis no_rm
dim_pasien no_rm
rekam_medis diagnosa
dim_diagnosa kode_diagnosa
rekam_medis ruang
dim_ruang ruang
rekam_medis dokter
dim_dokter dokter
rekam_medis jenis_kasus
dim_jenis_kasus jenis_kasus
rekam_medis jenis_kelamin
dim_jenis_kelamin jenis_kelamin
rekam_medis cara_bayar
dim_cara_baya cara_bayar
dim_pasien kecamatan
dim_kecamatan kecamatan
Proses ini
juga melakukan
penambahan field
sk_fact_rekam_medis, diambil dari var1 yang berisi expression Numeric.sequences12,1,1, fungsi dari expression tersebut
untuk membuat variable angka sekuensial. Field
yang dihasilkan adalah sk_fact_rekam_medis, sk_waktu, sk_pasien,
sk_diagnosa, sk_ruang,
sk_dokter, sk_jenis_kasus,
sk_jenis_kelamin, sk_cara_bayar dan sk_kecamatan.
12. Output tabel fact_rekam_medis output fact_rekam_medis
Gambar 4.72 Step output fact_rekam_medis
80
Proses ini bertujuan untuk membuat output table
fact_rekam_medis di database rekam_medis. Pada proses ini menggunakan koneksi repository yaitu koneksi_ rekam_medis
dengan target table fact_rekam_medis. Action on table yang digunakan adalah drop table if exist and create serta action on
data yang digunakan adalah insert.
Hasil dari pembentukan tabel fact_rekam_medis seperti pada Gambar 4.72. Terdapat 10 field yaitu sk_fact_rekam_medis,
sk_waktu, sk_pasien,
sk_diagnosa, sk_ruang,
sk_dokter, sk_jenis_kasus,
sk_jenis_kelamin, sk_cara_bayar
dan sk_kecamatan.
Gambar 4.73 Tabel fact_rekam_medis
81
4.3 Implementasi Star Schema Untuk Database OLAP
4.3.1 Star Schema Cube_Rekam_Medis
Star Schema Cube_Rekam_Medis akan membaca data dari fact_rekam_medis di database rekam_medis.
Gambar 4.74 Cube_Rekam_Medis
Star Schema Cube_Rekam_Medis memiliki tabel fakta
fact_rekam_medis. Dimensi yang digunakan adalah Dimensi_Waktu,
Dimensi_Pasien, Dimensi_Diagnosa,
Dimensi_Ruang, Dimensi_Dokter,
Dimensi_Jenis_Kasus, Dimensi_Jenis_Kelamin,
Dimensi_Cara_Bayar dan
Dimensi_Kecamatan. Measure yang digunakan adalah Jumlah Kasus, Jumlah Pasien, Kasus Baru, Kasus Lama, Kasus Pria dan
Kasus Wanita.
82
1. Dimensi_Waktu
Gambar 4.75 Dimensi_Waktu
Dimensi_Waktu menggunakan tabel dim_waktu
dari database
rekam_medis. Hierarchy
yang dimiliki adalah Waktu. Level yang dimiliki adalah Tahun dan Bulan.
2. Dimensi_Pasien
Gambar 4.76 Dimensi_Pasien
Dimensi_Pasien menggunakan tabel dim_pasien
dari database
rekam_medis. Hierarchy
yang dimiliki adalah Pasien. Level yang dimiliki adalah Pasien.
3. Dimensi_Diagnosa
Gambar 4.77 Dimensi_Diagnosa
Dimensi_Diagnosa menggunakan tabel dim_diagnosa dari database
rekam_medis. Hierarchy
yang dimiliki adalah
83
Diagnosa. Level yang dimiliki adalah Kategori dan Sub Kategori.
4. Dimensi_Ruang
Gambar 4.78 Dimensi_Ruang
Dimensi_Ruang menggunakan tabel dim_ruang
dari database
rekam_medis. Hierarchy
yang dimiliki adalah Ruang. Level yang dimiliki adalah Instalasi, Kelas dan Ruang.
5. Dimensi_Dokter
Gambar 4.79 Dimensi_Dokter
Dimensi_Dokter menggunakan tabel dim_dokter
dari database
rekam_medis. Hierarchy
yang dimiliki adalah Dokter. Level yang dimiliki adalah Dokter.
6. Dimensi_Jenis_Kasus
Gambar 4.80 Dimensi_Kasus
84
Dimensi_Kasus menggunakan tabel dim_kasus
dari database
rekam_medis. Hierarchy yang dimiliki adalah Jenis Kasus. Level yang dimiliki adalah Jenis Kasus.
7. Dimensi_Jenis_Kelamin
Gambar 4.81 Dimensi Jenis Kasus
Dimensi_Jenis_Kelamin menggunakan
tabel dim_jenis_kasus dari database rekam_medis. Hierarchy yang
dimiliki adalah Jenis Kelamin. Level yang dimiliki adalah Jenis Kelamin.
8. Dimensi_Cara_Bayar
Gambar 4.82 Dimensi_Cara_Bayar
Dimensi_Cara_Bayar menggunakan tabel dim_cara_bayar dari database rekam_medis. Hierarchy yang dimiliki adalah
Cara Bayar. Level yang dimiliki adalah Cara Bayar.
9. Dimensi_Kecamatan
Gambar 4.83 Dimensi_Kecamatan
85
Dimensi_Kecamatan menggunakan tabel dim_kecamatan dari database rekam_medis. Hierarchy yang dimiliki adalah
Kecamatan. Level yang dimiliki adalah Kecamatan.
4.3.2 Skema MDX
Berdasarkan implementasi
Star Schema
Cube_Rekam_Medis, maka deskripsi skema MDX adalah sebagai berikut :
Tabel 4.2 Deskripsi Skema MDX
Atribut MDX
Nilai Atribut Tabel Database rekam_medis
Cube Cube_Rekam_Medis
fact_rekam_medis Measures
Jumlah Kasus sk_fact_rekam_medis
Jumlah Pasien sk_pasien
Kasus Baru sk_jenis_kasus
Kasus Lama sk_jenis_kasus
Kasus Pria sk_jenis_kelamin
Kasus Wanita sk_jenis_kelamin
Dimension Dimensi Waktu
dim_waktu Hierarchy
Waktu dim_waktu.sk_waktu
Level Tahun
dim_Waktu.tahun Level
Bulan dim_waktu.bulan
Dimension Dimensi Pasien
dim_pasien Hierarchy
Pasien dim_pasien.sk_pasien
Level Pasien
dim_pasien.no_rm Dimension
Dimensi Diagnosa dim_diagnosa
Hierarchy Diagnosa
dim_diagnosa.sk_diagnosa Level
Kategori dim_diagnosa.kategori
Level Sub Kategori
dim_diagnosa.sub_kategori
86
Dimension Dimensi Ruang
dim_ruang Hierarchy
Ruang dim_ruang.sk_ruang
Level Instalasi
dim_ruang.instalasi Level
Kelas dim_ruang.kelas
Level Ruang
dim_ruang.ruang Dimension
Dimensi Dokter dim_dokter
Hierarchy Dokter
dim_dokter.sk_dokter Level
Dokter dim_dokter.dokter
Dimension Dimensi Jenis Kasus
dim_jenis_kasus Hierarchy
Jenis Kasus dim_jenis_kasus.sk_jenis_kasus
Level Jenis Kasus
dim_jenis_kasus.jenis_kasus Dimension
Dimensi Jenis Kelamin dim_jenis_kelamin
Hierarchy Jenis Kelamin
dim_jenis_kelamin.sk_jenis_kelamin Level
Jenis Kelamin dim_jenis_kelamin.jenis_kelamin
Dimension Dimensi Cara Bayar
dim_cara_bayar Hierarchy
Cara Bayar dim_cara_bayar.sk_cara_bayar
Level Cara Bayar
dim_cara_bayar.cara_bayar Dimension
Dimensi Kecamatan dim_kecamatan
Hierarchy Kecamatan
dim_kecamatan.sk_kecamatan Level
Kecamatan dim_kecamatan.kecamatan
4.3.3 Schema_Rekam_Medis.xml
Schema dari Schema_Rekam_Medis.xml adalah sebagai
berikut :
Tabel 4.3 Schema_Rekam_Medis.xml
Schema name=Skema Rekam Medis Dimension type=StandardDimension visible=true highCardinality=false
name=Dimensi_Waktu
87
Hierarchy name=Waktu
visible=true hasAll=true
allMemberName=Semua Waktu primaryKey=sk_waktu Table name=dim_waktu
Table Level name=Tahun visible=true column=tahun ordinalColumn=tahun
type=String uniqueMembers=false levelType=Regular hideMemberIf=Never Level
Level name=Bulan
visible=true column=bulan
ordinalColumn=sk_waktu type=String
uniqueMembers=false levelType=Regular hideMemberIf=Never
Level Hierarchy
Dimension Dimension type=StandardDimension visible=true highCardinality=false
name=Dimensi_Pasien Hierarchy
name=Pasien visible=true
hasAll=true allMemberName=Semua Pasien primaryKey=sk_pasien
Table name=dim_pasien Table
Level name=Pasien
visible=true column=no_rm
ordinalColumn=no_rm type=String uniqueMembers=false levelType=Regular hideMemberIf=Never
Level Hierarchy
Dimension Dimension type=StandardDimension visible=true highCardinality=false
name=Dimensi_Diagnosa Hierarchy
name=Diagnosa visible=true
hasAll=true allMemberName=Semua Diagnosa primaryKey=sk_diagnosa
Table name=dim_diagnosa Table
Level name=Kategori
visible=true column=kategori
ordinalColumn=kategori type=String
uniqueMembers=false levelType=Regular hideMemberIf=Never
Level
88
Level name=Sub
Kategori visible=true
column=sub_kategori ordinalColumn=sub_kategori
type=String uniqueMembers=false
levelType=Regular hideMemberIf=Never Level
Hierarchy Dimension
Dimension type=StandardDimension visible=true highCardinality=false name=Dimensi_Ruang
Hierarchy name=Ruang
visible=true hasAll=true
allMemberName=Semua Ruang primaryKey=sk_ruang Table name=dim_ruang
Table Level
name=Instalasi visible=true
column=instalasi ordinalColumn=instalasi
type=String uniqueMembers=false
levelType=Regular hideMemberIf=Never Level
Level name=Kelas visible=true column=kelas ordinalColumn=kelas type=String uniqueMembers=false levelType=Regular hideMemberIf=Never
Level Level
name=Ruang visible=true
column=ruang ordinalColumn=ruang type=String uniqueMembers=false levelType=Regular
hideMemberIf=Never Level
Hierarchy Dimension
Dimension type=StandardDimension visible=true highCardinality=false name=Dimensi_Dokter
Hierarchy name=Dokter
visible=true hasAll=true
allMemberName=Semua Dokter primaryKey=sk_dokter Table name=dim_dokter
Table Level
name=Dokter visible=true
column=dokter ordinalColumn=dokter type=String uniqueMembers=false levelType=Regular
hideMemberIf=Never Level
89
Hierarchy Dimension
Dimension type=StandardDimension visible=true highCardinality=false name=Dimensi_Jenis_Kasus
Hierarchy name=Jenis
Kasus visible=true
hasAll=true allMemberName=Semua Jenis Kasus primaryKey=sk_jenis_kasus
Table name=dim_jenis_kasus Table
Level name=Jenis
Kasus visible=true
column=jenis_kasus ordinalColumn=jenis_kasus
type=String uniqueMembers=false
levelType=Regular hideMemberIf=Never Level
Hierarchy Dimension
Dimension type=StandardDimension visible=true highCardinality=false name=Dimensi_Jenis_Kelamin
Hierarchy name=Jenis
Kelamin visible=true
hasAll=true allMemberName=Semua Jenis Kelamin primaryKey=sk_jenis_kelamin
Table name=dim_jenis_kelamin Table
Level name=Jenis Kelamin visible=true column=jenis_kelamin ordinalColumn=jenis_kelamin
type=String uniqueMembers=false
levelType=Regular hideMemberIf=Never Level
Hierarchy Dimension
Dimension type=StandardDimension visible=true highCardinality=false name=Dimensi_Cara_Bayar
Hierarchy name=Cara
Bayar visible=true
hasAll=true allMemberName=Semua Cara Bayar primaryKey=sk_cara_bayar
Table name=dim_cara_bayar Table
Level name=Cara
Bayar visible=true
column=cara_bayar ordinalColumn=cara_bayar
type=String uniqueMembers=false
levelType=Regular hideMemberIf=Never
90
Level Hierarchy
Dimension Dimension type=StandardDimension visible=true highCardinality=false
name=Dimensi_Kecamatan Hierarchy
name=Kecamatan visible=true
hasAll=true allMemberName=Semua Kecamatan primaryKey=sk_kecamatan
Table name=dim_kecamatan Table
Level name=Kecamatan
visible=true column=kecamatan
ordinalColumn=kecamatan type=String
uniqueMembers=false levelType=Regular hideMemberIf=Never
Level Hierarchy
Dimension Cube name=Cube_Rekam_Medis visible=true cache=true enabled=true
Table name=fact_rekam_medis Table
DimensionUsage source=Dimensi_Waktu
name=Dimensi_Waktu visible=true foreignKey=sk_waktu highCardinality=false
DimensionUsage DimensionUsage
source=Dimensi_Pasien name=Dimensi_Pasien
visible=true foreignKey=sk_pasien highCardinality=false DimensionUsage
DimensionUsage source=Dimensi_Diagnosa
name=Dimensi_Diagnosa visible=true foreignKey=sk_diagnosa highCardinality=false
DimensionUsage DimensionUsage
source=Dimensi_Ruang name=Dimensi_Ruang
visible=true foreignKey=sk_ruang highCardinality=false DimensionUsage
DimensionUsage source=Dimensi_Dokter
name=Dimensi_Dokter visible=true foreignKey=sk_dokter highCardinality=false
DimensionUsage DimensionUsage
source=Dimensi_Jenis_Kasus name=Dimensi_Jenis_Kasus
visible=true foreignKey=sk_jenis_kasus
91
highCardinality=false DimensionUsage
DimensionUsage source=Dimensi_Jenis_Kelamin
name=Dimensi_Jenis_Kelamin visible=true
foreignKey=sk_jenis_kelamin highCardinality=false
DimensionUsage DimensionUsage
source=Dimensi_Cara_Bayar name=Dimensi_Cara_Bayar
visible=true foreignKey=sk_cara_bayar
highCardinality=false DimensionUsage
DimensionUsage source=Dimensi_Kecamatan name=Dimensi_Kecamatan visible=true foreignKey=sk_kecamatan highCardinality=false
DimensionUsage Measure
name=Jumlah Kasus
column=sk_fact_rekam_medis datatype=Integer aggregator=count visible=true
Measure Measure name=Jumlah Pasien column=sk_pasien datatype=Integer
aggregator=distinct count visible=true Measure
Measure name=Kasus
Baru datatype=Integer
aggregator=sum visible=true
MeasureExpression SQL dialect=generic
[CDATA[case when sk_jenis_kasus = 2 then 1 else 0 end]] SQL
MeasureExpression Measure
Measure name=Kasus
Lama datatype=Integer
aggregator=sum visible=true
MeasureExpression SQL dialect=generic
[CDATA[case when sk_jenis_kasus = 1 then 1 else 0 end]] SQL
MeasureExpression
92
Measure Measure
name=Kasus Pria
datatype=Integer aggregator=sum
visible=true MeasureExpression
SQL dialect=generic [CDATA[case when sk_jenis_kelamin = 2 then 1 else 0 end]]
SQL MeasureExpression
Measure Measure
name=Kasus Wanita
datatype=Integer aggregator=sum
visible=true MeasureExpression
SQL dialect=generic [CDATA[case when sk_jenis_kelamin = 1 then 1 else 0 end]]
SQL MeasureExpression
Measure Cube
Schema
4.4 Implementasi Proses Transfer Data
Proses transfer data pada OLAP dilakukan dengan cara mengeksekusi job transfer_data 0.1.
Gambar 4.84 Job transfer_data 0.1
93
4.5 Implementasi Antar Muka Pengguna Sistem OLAP
4.5.1 Halaman Login
Gambar 4.85 Tampilan Halaman Login
Gambar 4.85 adalah tampilan halaman Login. Proses login dilakukan dengan mengisi field username dan password kemudian
memilih tombol “Login”.
94
4.5.2 Halaman Menu Utama
Gambar 4.86 Tampilan Halaman Menu Utama
Gambar 4.86 adalah tampilan halaman Menu Utama. Pada halaman ini user dapat memilih OLAP view yang ingin dilihat.
4.5.3 Halaman View Diagnosa
Gambar 4.87 Tampilan Halaman View Diagnosa
Gambar 4.87 adalah tampilan halaman View Diagnosa. Halaman ini menampilkan OLAP view diagnosa. Query MDX yang
digunakan untuk halaman View Diagnosa adalah :
95
Tabel 4.4 Query MDX View Diagnosa
select {[Measures].[Jumlah Kasus], [Measures].[Jumlah Pasien], [Measures].[Kasus
Baru], [Measures].[Kasus
Lama], [Measures].[Kasus
Pria], [Measures].[Kasus
Wanita]} ON
COLUMNS, HierarchizeUnion{[Dimensi_Waktu.Waktu].[Semua
Waktu], [Dimensi_Diagnosa.Diagnosa].[Semua
Diagnosa]}, Crossjoin[Dimensi_Waktu.Waktu].[Semua
Waktu].Children, {[Dimensi_Diagnosa.Diagnosa].[Semua Diagnosa]} ON ROWS
from [Cube_Rekam_Medis]
4.5.4 Halaman View Ruang
Gambar 4.88 Tampilan Halaman View Ruang
Gambar 4.88 adalah tampilan halaman View Ruang. Halaman ini menampilkan OLAP view ruang. Query MDX yang
digunakan untuk halaman View Ruang adalah :
Tabel 4.5 Query MDX View Ruang
select {[Measures].[Jumlah Kasus], [Measures].[Jumlah Pasien], [Measures].[Kasus
Baru], [Measures].[Kasus
Lama],
96
[Measures].[Kasus Pria],
[Measures].[Kasus Wanita]}
ON COLUMNS,
HierarchizeUnion{[Dimensi_Waktu.Waktu].[Semua Waktu],
[Dimensi_Ruang.Ruang].[Semua Ruang]},
Crossjoin[Dimensi_Waktu.Waktu].[Semua Waktu].Children,
{[Dimensi_Ruang.Ruang].[Semua Ruang]} ON ROWS from [Cube_Rekam_Medis]
4.5.5 Halaman View Cara Bayar
Gambar 4.89 Tampilan Halaman View Cara Bayar
Gambar 4.89 adalah tampilan halaman View Cara Bayar. Halaman ini menampilkan OLAP view cara bayar. Query MDX
yang digunakan untuk halaman View Cara Bayar adalah :
Tabel 4.6 Query MDX View Cara Bayar
select {[Measures].[Jumlah Kasus], [Measures].[Jumlah Pasien], [Measures].[Kasus
Pria], [Measures].[Kasus
Wanita]} ON
COLUMNS, Crossjoin{[Dimensi_Waktu.Waktu].[Semua
Waktu], [Dimensi_Waktu.Waktu].[2011],
[Dimensi_Waktu.Waktu].[2012], [Dimensi_Waktu.Waktu].[2013],
[Dimensi_Waktu.Waktu].[2014]},
97
{[Dimensi_Cara_Bayar.Cara Bayar].[Semua Cara Bayar]} ON ROWS
from [Cube_Rekam_Medis]
4.5.6 Halaman View Kecamatan
Gambar 4.90 Tampilan Halaman View Kecamatan
Gambar 4.90 adalah tampilan halaman View Kecamatan. Halaman ini menampilkan OLAP view kecamatan. Query MDX
yang digunakan untuk halaman View Kecamatan adalah :
Tabel 4.7 Query MDX View Kecamatan
select {[Measures].[Jumlah Kasus], [Measures].[Jumlah Pasien], [Measures].[Kasus
Pria], [Measures].[Kasus
Wanita]} ON
COLUMNS, CrossjoinHierarchizeUnion{[Dimensi_Waktu.Waktu].[Semua
Waktu]}, [Dimensi_Waktu.Waktu].[Semua
Waktu].Children, {[Dimensi_Kecamatan.Kecamatan].[Semua Kecamatan]} ON ROWS
from [Cube_Rekam_Medis]