54 Gambar 15. Ekstraksi dan transformasi basis data SIM RSPP
5.2. Pembangunan Model Klasifikasi
Pembuatan model klasifikasi menggunakan algoritme CPAR dengan tahapan seperti pada Gambar 8 dan Gambar 9. Pada tahap awal algoritme CPAR
membaca data dalam bentuk array dua dimensi dimana kolom terakhir menunjukkan kelas. Berdasarkan kelas tersebut data dikelompokkan menjadi
contoh positif P dan contoh negatif N. Setiap atribut pada contoh positif dan contoh negatif dihitung bobot totalnya, dimasukkan kedalam tabel PN array.
Tabel PN array berisi informasi tentang atribut serta bobot total contoh positif WP dan bobot total contoh negatif WN. Menghitung total weight threshold
TWT dengan mengalikan jumlah bobot po sitif dan konstanta yang telah ditetapkan yaitu 0.05. Proses pembentukan aturan secara berulang dilakukan
selama nilai total bobot contoh positif lebih besar dari nilai TWT. Selama proses pembentukan aturan, algoritme CPAR menyalin contoh positif P ke contoh positif
sementara P’, contoh negatif N ke contoh negatif sementara N’, atribut A ke atribut sementara A’, PN array ke PN’ array sementara. Nilai- ilai yang ada pada
PN’ array akan menjadi acuan untuk menghitung gain. Atribut-atribut yang dipilih sebagai kandidat pembentuk aturan diambil berdasarkan atribut yang memiliki
nilai gain terbesar atau yang memiliki nilai gain yang serupa gain similarity ratio. Flowchart algoritme CPAR diperlihatkan pada Gambar 15.
Basis data SIM RSPP
Ekstraksi dan Transformasi
Transaksi Pasien Mst_pasien
Catatan_medis
Hasil_lab Mst_jasa_item
55
+ −
+ =
| |
| |
| |
log |
| |
| |
| log
| |
N P
P N
P P
P p
Gain Baca Data
Tentukan contoh positif P Tentukan contoh negatif N
Tentukan bobot contoh positif WP Tentukan bobot contoh negatif WN
Tentukan daftar atribut A Tentukan daftar contoh positif dan
contoh negatif PN array
TWT = total bobot contoh positif
× 0.05
Total bobot Contoh
negatif=0
Rule_list=Rule_list_temp; Revisi bobot contoh positif
dengan decay factor ; Sesuaikan PN array
berdasarkan bobot contoh positif yang baru
Total bobot contoh positif
〉 TWT
P’ = P; N’ = N;A’ = A; PN’ array = PN array
Tentukan Gain Terbesar
Gain te rbesar 〉
TWT
Local Gain Threshold LGT =
Gain terbesar ×
0.6
Rule_list = Rule_list_temp
Baca atribut A[i] Satu persatu
EOF
GainA[i] 〉
LGT Sisipkan A[i] ke rule_list_temp
Hapus record pada P’ dan N’yang tidak mengandung A[i];
P’_temp = P’; N’_temp = N’;
Tentukan PN_temp berdasarkan P’_temp dan N’_temp
Selesai Tidak
Ya
Tidak Ya
Tidak
1
Ya Tidak
1 Hitung Gain A[i]
2 2
2
Ya 2
Ya
Tidak Mulai
Perhitungan Gain
1
Rule_list = Rule_list_temp
56 Gambar 16 Flowchart algoritme CPAR
5.2.1. Preproses Data
Pembangunan model klasifikasi dengan algoritme CPAR menggunakan PLSQL. Pada penelitian ini digunakan DBMS Oracle 9i. Pada tahap awal data
yang berasal dari relasi antara tabel mst_pasien, hasil_lab dan catatan_medis yang terdapat pada data warehouse diabetes ditransformasi ke dalam working database
sampel_data, selanjutnya diubah ke dalam bentuk kategori. Penentuan pembentukan nilai kategori terhadap data-data hasil laboratorium didasarkan atas
referensi yang ada di SIM RSPP seperti diperlihatkan pada Tabel 5. Penentuan kelas positif diabetes atau negatif diabetes ditentukan oleh diagnosa yang terdapat
pada tabel catatan_medis. Kelas ditetapkan sebagai positif diabetes jika kode ICD pada diagnosa adalah E.10 Insulin -dependent diabetes mellitus atau E.11 Non-
insulin-dependent diabetes mellitus atau E.12 Malnutrition -related diabetes mellitus atau E.13 Other specified diabetes mellitus atau E.14 Unspecified
diabetes mellitus. Pembentukan nilai kategori selengkapnya diperlihatkan pada Tabel 6.
Tabel 5. Nilai referensi hasil laboratorium Kode
Pemeriksaan Ketarangan
Satuan Nilai
Normal ACTN
Aseton Urin Puasa negatif
ACTPP Aseton Urin 2 jam PP
negatif CHOL
Kolesterol Total mgdL
200 GLUN
Glukosa Darah Puasa mgdL
70 ~ 110 GPOST
Glukosa Darah 2 jam PP mgdL 100 ~ 140
HDL Kolesterol HDL
mgdL 40 ~ 60
LDL Kolesterol LDL
mgdL 130
TG Trigliserida
mgdL 50 ~ 150
UPOST Glukosa Urin 2 jam PP
negatif URN
Glukosa Urin Puasa negatif
57 Tabel 6. Kategori untuk tabel sampel_ data
Atribut Keterangan
Nilai Kontinyu Kategori
Umur Umur Pasien
Umur 20 1
Umur Umur Pasien
20 = Umur = 40 2
Umur Umur Pasien
Umur 40 3
Sex Jenis Kelamin
Sex = Laki-Laki 4
Sex Jenis Kelamin
Sex = Perempuan 5
Glun Glukosa Darah Puasa
Glun 70 6
Glun Glukosa Darah Puasa
70 = Glun 110 7
Glun Glukosa Darah Puasa
Glun = 110 8
Gpost Glukosa Darah 2 jam PP Gpost 100
9 Gpost
Glukosa Darah 2 jam PP 110 = Gpost 140 10
Gpost Glukosa Darah 2 jam PP Gpost = 140
11 Upost
Glukosa Urin 2 jam PP Upost = 0
12 Upost
Glukosa Urin 2 jam PP Upost 0
13 Actn
Aseton Urin Puasa Actn = 0
14 Actn
Aseton Urin Puasa Actn 0
15 Urn
Glukosa Urin Puasa Urn = 0
16 Urn
Glukosa Urin Puasa Urn 0
17 Actpp
Aseton Urin 2 jam PP Actpp = 0
18 Actpp
Aseton Urin 2 jam PP Actpp 0
19 Ldl
Kolesterol LDL Ldl 130
20 Ldl
Kolesterol LDL Ldl = 130
21 Hdl
Kolesterol HDL Hdl 40
22 Hdl
Kolesterol HDL 40 = Hdl 60
23 Hdl
Kolesterol HDL Hdl = 60
24 Chol
Kolesterol Total Chol 200
25 Chol
Kolesterol Total Chol = 200
26 Tg
Trigliserida Tg 50
27 Tg
Trigliserida 50 = Tg 150
28 Tg
Trigliserida Tg = 150
29
Data yang sudah dalam bentuk kategori selanjutnya ditransformasi ke dalam bentuk array dua dimensi dan dilakukan proses cleaning dengan
menghapus baris -baris yang tidak lengkap. Sampel hasil transformasi, integrasi dan cleaning data yang berasal dari tabel mst_pasien, hasil_lab serta
catatan_medis pada data warehouse diabetes seperti pada Lampiran 5. Untuk
58 menjelaskan tahapan pembuatan model klasifikasi, digunakan contoh sampel data
yang terdiri dari 20 record sebagai data training Tabel 7. Tabel 7. Contoh sampel data.
Umur Sex Glun Gpost Upost Actn Urn Actpp Ldl Hdl Chol Tg Kelas 3
5 7
9 12
14 16
18 21
22 26
29 31
3 5
7 11
12 14
16 18
21 23
26 29
31 3
4 8
11 13
14 16
18 21
23 26
29 30
3 5
8 10
12 14
16 18
21 23
26 29
31 3
5 8
11 13
14 17
18 21
24 26
29 30
3 5
7 11
12 14
16 18
20 24
25 29
31 3
5 8
11 13
14 16
18 21
23 26
29 30
3 5
7 10
12 14
16 18
21 23
26 29
31 3
4 8
11 13
14 16
18 20
23 26
29 30
3 5
7 9
12 14
16 18
20 23
25 29
31 3
5 7
9 12
14 16
18 20
23 25
29 31
3 5
7 11
12 14
16 18
20 24
25 29
31 3
4 8
11 12
14 17
18 20
24 25
29 31
3 5
7 9
12 14
16 18
21 23
26 29
31 3
5 7
11 12
14 16
18 21
23 26
29 30
3 5
8 11
13 14
16 18
21 23
26 29
30 3
5 7
9 12
14 16
18 21
23 26
29 31
1 4
7 9
12 14
16 18
20 23
25 29
31 3
5 7
9 12
14 16
18 21
23 26
29 31
2 5
8 11
12 14
16 18
20 24
25 29
31
5.2.2. Pembentukan sampel positif dan sampel negatif
Kolom terakhir pada sampel data pada Tabel 7 menunjukkan kelas. Angka 30 menunjukkan kelas positif diabetes dan 31 menunjukkan kelas negatif
diabetes. Data training kemudian dipisahkan menjadi sampel positif data pasien dengan diagnosa positif diabetes dan sampel negatif data pasien dengan
diagnosa negatif diabetes. Sampel data positif dari Tabel 7 diberikan dalam Tabel 8, sedangkan sampel negatif diberikan dalam Tabel 9.
Kolom 1 sampai dengan kolom ke 12 pada Tabel 9 dan Tabel 10 berisi kategori 1 sampai dengan 29. Kolom ke 14 berisi bobot total setiap record dari
contoh positif P dan contoh negatif N. Tabel 8. Sampel positif dari data pada Tabel 7
Umur Sex Glun Gpost Upost Actn Urn Actpp Ldl Hdl Chol Tg Kelas Bobot
3 4
8 11 13
14 16
18 21 23
26 29
30 1.0
59
3 5
8 11 13
14 17
18 21 24
26 29
30 1.0
3 5
8 11 13
14 16
18 21 23
26 29
30 1.0
3 4
8 11 13
14 16
18 20 23
26 29
30 1.0
3 5
7 11 12
14 16
18 21 23
26 29
30 1.0
3 5
8 11 13
14 16
18 21 23
26 29
30 1.0
Tabel 9. Sampel negatif dari data pada Tabel. 7.
Umur Sex Glun Gpost Upost Actn Urn Actpp Ldl Hdl Chol Tg Kelas Bobot
3 5
7 9
12 14
16 18
21 22 26
29 31
1.0 3
5 7
11 12
14 16
18 21
23 26 29
31 1.0
3 5
8 10
12 14
16 18
21 23 26
29 31
1.0 3
5 7
11 12
14 16
18 20
24 25 29
31 1.0
3 5
7 10
12 14
16 18
21 23 26
29 31
1.0 3
5 7
9 12
14 16
18 20
23 25 29
31 1.0
3 5
7 9
12 14
16 18
20 23 25
29 31
1.0 3
5 7
11 12
14 16
18 20
24 25 29
31 1.0
3 4
8 11
12 14
17 18
20 24 25
29 31
1.0 3
5 7
9 12
14 16
18 21
23 26 29
31 1.0
3 5
7 9
12 14
16 18
21 23 26
29 31
1.0 1
4 7
9 12
14 16
18 20
23 25 29
31 1.0
3 5
7 9
12 14
16 18
21 23 26
29 31
1.0 2
5 8
11 12
14 16
18 20
24 25 29
31 1.0
5.2.3. Pembentukan PN array
Pada awal proses setiap record mempunyai bobot 1.0. Kategori 1 dan 2 tidak muncul pada sampel positif dan muncul satu kali pada sampel negatif,
sehingga bobot sampel positif Wp dan bobot sampel negatif Wn pada kategori 1 dan 2 adalah 0 dan 1. Bobot sampel positif dan bobot sampel negatif untuk
setiap kategori selengkapnya diperlihatkan pada Tabel 10. Tabel 10. PN array
Kategori Kategori
Bobot sampel
positif Bobot
sampel negatif
Bobot sampel
positif Bobot
sampel negatif
1 1
16 5
13 2
1 17
1 1
3 6
12 18
6 14
4 2
2 19
5 4
12 20
1 7
6 21
5 7
7 1
11 22
1 8
5 3
23 5
9 9
7 24
1 4
10 2
25 7
11 6
5 26
6 7
60
12 1
14 27
13 5
28 14
6 14
29 6
14 15
Jumlah record pada sampel positif pada Tabel 8 adalah 6 dan setiap record pada awal proses berbobot 1, sehingga bobot total dari sampel positif pada awal
proses adalah 6. Total Weight Threshold TWT dihitung berdas arkan rumus : TWT = total bobot sampel positif × 0.05
= 6 ×
0.05 = 0.3 Seluruh kategori pada sampel positif selanjutnya diproses satu persatu sampai
bobot totalnya lebih kecil dari nilai TWT yaitu 0.3. 5.2.4. Pembentukan
Gain
Sebagai contoh untuk menghitung Gain dipilih kategori 4 yang muncul 2 kali pada sampel positif Wp dan 2 kali pada sampel negatif Wn, sehingga
sesuai dengan formula Gain p didapat :
+ −
+ =
14 6
6 log
2 2
2 log
2 4
Gain
=
1.02
nilai Gain pada atribut 4 adalah 1.02. Bobot sampel positif, bobot sampel negatif serta nilai Gain untuk setiap kategori selengkapnya diperlihatkan pada Tabel 11.
Dalam penelitian ini decay factor ditentukan 0.3 dan global minimum threshold 0.7.
Tabel 11. Kategori dan nilai Gain
Kategori Bobot
sampel positif
Bobot sampel
negatif Gain
Kategori Bobot
sampel positif
Bobot sampel
negatif Gain
1 1
0.00 16
5 13
-0.38 2
1 0.00
17 1
1 0.51
3 6
12 0.63
18 6
14 0.00
4 2
2 1.02
19 0.00
5 4
12 -0.73
20 1
7 -0.87
6 0.00
21 5
7 1.64
7 1
11 -1.28
22 1
0.00 8
5 3
3.67 23
5 9
0.87 9
7 0.00
24 1
4 -0.41
10 2
0.00 25
7 0.00
11 6
5 3.58
26 6
7 2.58
61
12 1
14 -1.50
27 0.00
13 5
6.02 28
0.00 14
6 14
0.00 29
6 14
0.00 15
0.00
Pada Tabel 11 terlihat Gain terbesar adalah pada kategori 13 Gain = 6.02. Local Gain Threshold LGT dihitung berdasarkan rumus :
LGT = Gain terbesar × Gain _similarity_ratio = 6.02 × Gain_similarity_ratio
= 6.02 × 0.6 = 3.61
Ada dua kategori yang nilai Gain -nya di atas LGT yaitu 13 dan 8. Selanjutnya kedua kategori tersebut diproses satu persatu, yaitu dengan
menyisipkan rule 13 →
30 ke rule list sementara, menyalin sampel positif dan sampel negatif dengan menghapus baris yang tidak berisi atribut 13, sehingga
record kelima pada Tabel 8 dihapus. Sehingga sampel positif menjadi:
Umur Sex Glun Gpost Upost Actn Urn Actpp Ldl Hdl Chol Tg Kelas Bobot
3 4
8 11 13
14 16
18 21 23
26 29
30 1.0
3 5
8 11 13
14 17
18 21 24
26 29
30 1.0
3 5
8 11 13
14 16
18 21 23
26 29
30 1.0
3 4
8 11 13
14 16
18 20 23
26 29
30 1.0
3 5
8 11 13
14 16
18 21 23
26 29
30 1.0
Sedangkan untuk sampel negatif tidak memiliki anggota. Karena sampel negatif kosong, maka rule 13
→ 30 disisipkan ke dalam
rule list. Laplace accuracy LA yang berguna untuk mengetahui kekuatan prediksi dihitung berdasarkan formula :
L.A = nc+1 ntot+f Dimana nc adalah jumlah sampel yang memenuhi kelas 30 yaitu 5 jumlah
kategori 13 pada kelas 30, ntot adalah jumlah total sampel yang memenuhi body dari aturan yaitu 5 jumlah kategori 13 pada keseluruhan sampel , f adalah jumlah
kelas yaitu 2 kelas 30 dan 31. Sehingga didapat LA= 5+15+2=0.86. Bobot sampel positif selanjutnya direvisi dengan menggunakan decay factor.
Bobot sampel positif yang baru adalah:
62
Umur Sex Glun Gpost Upost Actn Urn Actpp Ldl Hdl Chol Tg Kelas Bobot
3 4
8 11 13
14 16
18 21 23
26 29
30 0.33
3 5
8 11 13
14 17
18 21 24
26 29
30 0.33
3 5
8 11 13
14 16
18 21 23
26 29
30 0.33
3 4
8 11 13
14 16
18 20 23
26 29
30 0.33
3 5
7 11 12
14 16
18 21 23
26 29
30 1.0
3 5
8 11 13
14 16
18 21 23
26 29
30 0.33
Nilai bobot sampel positif sekarang adalah 2.65, masih lebih besar dari 0.3, sehingga kategori berikutnya yaitu 8 yang memiliki nilai Gain diatas LGT
diproses den gan menyisipkan atribut 8 →
30 ke rule list sementara dan menyalin sampel positif dan sampel negatif sebelumnya dengan menghapus baris yang tidak
berisi kategori 8. Sampel positif setelah dilakukan penghapusan baris yang tidak
berisi kategori 8 adalah:
Umur Sex Glun Gpost Upost Actn Urn Actpp Ldl Hdl Chol Tg Kelas Bobot
3 4
8 11 13
14 16
18 21 23
26 29
30 1.0
3 5
8 11 13
14 17
18 21 24
26 29
30 1.0
3 5
8 11 13
14 16
18 21 23
26 29
30 1.0
3 4
8 11 13
14 16
18 20 23
26 29
30 1.0
3 5
8 11 13
14 16
18 21 23
26 29
30 1.0
Sedangkan untuk sampel negatif tidak memiliki anggota. Karena sampel negatif kosong, maka kategori 8
→ 30 disisipkan ke dalam
rule list. Laplace accuracy untuk aturan tersebut adalah: LA= 5+18+2=0.60.
Bobot sampel positif selanjutnya direvisi dengan menggunakan decay factor. Bobot sampel positif yang baru adalah:
Umur Sex Glun Gpost Upost Actn Urn Actpp Ldl Hdl Chol Tg Kelas Bobot
3 4
8 11
13 14
16 18
21 23 26
29 30
0.11 3
5 8
11 13
14 17
18 21 24
26 29
30 0.11
3 5
8 11
13 14
16 18
21 23 26
29 30
0.11 3
4 8
11 13
14 16
18 20 23
26 29
30 0.11
3 5
7 11
12 14
16 18
21 23 26
29 30
1.0 3
5 8
11 13
14 16
18 21 23
26 29
30 0.11
63 Setelah kedua kategori 13 dan 8 d iproses, langkah selanjutnya menghitung
Gain dengan bobot sampel yang sudah disesuaikan . Hasil perhitungan Gain tersebut diberikan pada Tabel 12.
Tabel 12. Hasil perhitungan Gain setelah kategori 13 dan 8 diproses .
Kategori Bobot
sampel positif
Bobot sampel
negatif Gain
Kategori Bobot
sampel positif
Bobot sampel
negatif Gain
1 1
0.00 16
2.32 13
-1.58 2
1 0.00
17 0.33
1 -0.06
3 2.65
12 -1.34
18 2.65
14 -1.68
4 0.66
2 -0.13
19 0.00
5 1.99
12 -1.48
20 0.33
7 -0.63
6 0.00
21 2.32
7 -0.43
7 1
11 -1.28
22 1
0.00 8
1.65 3
0.28 23
2.32 9
-0.88 9
7 0.00
24 0.33
4 -0.45
10 2
0.00 25
7 0.00
11 2.65
5 0.38
26 2.65
7 -0.23
12 1
14 -1.50
27 0.00
13 1.65
1.99 28
0.00 14
2.65 14
-1.68 29
2.65 14
-1.68 15
0.00
Kategori 13 dan 8 tidak disertakan pada proses selanjutnya sehingga nilai Gain pada kategori 13 dan 8 diabaikan, Gain maksimum sekarang adalah 0.38
yang berarti lebih kecil dari global minimu m 0.7, sehingga proses dihentikan. Cara yang sama digunakan untuk kelas 31. Pada akhir proses semua rule d isisipkan ke
dalam rule list, dan dihitung akurasinya menggunakan Laplace accuracy LA sehingga didapat :
No. Rule LA
1 13
→ 30
0.86 2
8 →
30 0.60
3 7
∧ 12
→ 31
0.88 4
9 →
31 0.89
5 25
→ 31
0.89
5.3. Program Aplikasi