Pembangunan Model Klasifikasi PENDAHULUAN

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