PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PENCARIAN KARAKTERISTIK CALON MAHASISWA BARU UNIVERSITAS SANATA DHARMA YANG TIDAK MENDAFTAR ULANG DENGAN MENGGUNAKAN ALGORITMA POHON KEPUTUSAN Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains Program Studi Ilmu Komputer
Oleh: Lilik Haryanto NIM: 033124010
PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2008
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINDING CHARACTERISTICS OF SANATA DHARMA UNIVERSITY NOT-ENROLLING-APPLICANTS USING DECISION TREE ALGORITHM A Final Thesis Presented as Partial Fulfillment of The Requirements for the Degree of Sarjana Sains in Computer Science
By: Lilik Haryanto Student Number: 033124010
COMPUTER SCIENCE STUDY PROGRAM DEPARTMENT OF MATHEMATICS FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2008
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
“ Akirametakunai, Fuan ni naru to te wo nigiri, Issho ni ayunde kita “ -Kiroro-
Kupersembahkan untuk: Jesus Christ Ibu, Bapak (Alm), Budhe, mas Hari, Pam-Pam Sahabat-Sahabatku...
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK Penambangan data merupakan suatu teknik untuk mengestraksi pola yang penting atau informasi yang menarik dari basis data yang berukuran besar. Penambangan data memberikan informasi yang digunakan sebagai penunjang dalam melakukan pengambilan keputusan. Teknik yang digunakan dalam melakukan penambangan data diantaranya adalah klasifikasi, yaitu teknik yang menentukan kelas-kelas ataupun kategori dari suatu objek berdasarkan sifat/atribut yang dimilikinya. Salah satu metode klasifikasi adalah algoritma pohon keputusan. Dalam
penulisan
tugas
akhir
ini,
algoritma
pohon
keputusan
diimplementasikan untuk mengenali karakteristik calon mahasiswa yang tidak melakukan daftar ulang. Data-data yang digunakan merupakan data penerimaan mahasiswa baru Universitas Sanata Dharma dari tahun 2005 sampai dengan 2006. Seluruh data yang digunakan berisi informasi tentang gelombang masuk, prioritas pilihan program studi di mana calon mahasiswa tersebut diterima, jenis_kelamin, jenis sma, program studi tempat calon mahasiswa diterima dan status daftar ulang yang dilakukan serta nilai finalnya. Data-data ini digunakan sebagai himpunan data pelatihan dan himpunan data tes dalam proses penambangan data. Pengujian dilakukan terhadap himpunan data pelatihan dan himpunan data tes. Hasil pengujian menggunakan fivefold cross-validation dengan sampel data sebanyak 1400 record adalah 61.64 %.
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT Data mining is a way to extract important pattern or interesting information from large databases. Data mining gives information that is used to make a decision. Classification is one of technique that can be applied on data mining. The technique will define classes or categories of an object based on its characteristics. One of classification technique is decision tree algorithm. On this undergraduate thesis, the decision tree algorithm is applied to recognize characteristics of new student candidates of Sanata Dharma University that do not perform her-registration. The data that is used is new student candidates of 2005 to 2006 academic year, which consists of registration periods, the priority of applied study program, sex, the type of their high school, the study program where the new student are accepted, her-registration status and the final score of acceptance test. The data’s are used as training set and test set on data mining process. The experiment is done to test training set and test set. The result of experiment with 1400 records using fivefold cross-validation method is 61.64 %.
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Dalam nama Bapa Putera dan Roh Kudus, penulis selalu diberi kekuatan untuk berkembang dan menjadi lebih. Puji dan syukur penulis panjatkan kepadaNya atas segala kesehatan, keselamatan, keberuntungan, berkat, rahmat, kasih dan bimbingan-Nya sehingga dapat menyelesaikan penyusunan skripsi yang berjudul “ Penambangan Data Penerimaan Mahasiswa Baru Universitas Sanata Dharma untuk Mencari Pola Karakteristik Calon Mahasiswa yang tidak Mendaftar Ulang dengan Menggunakan Algoritma Pohon Keputusan”. Dalam kesempatan ini, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang turut memberikan dukungan, semangat dan bantuan hingga selesainya skripsi ini : 1. Jesus Christ….Makasih untuk selalu mendampingi dan menuntunku di saat apapun….Engkau selalu ada di saat tak seorangpun menemani setiap langkahku….Bersama-Mu segalanya menjadi lebih mudah dan begitu indah…. 2. Keluargaku….Ibu Th. Kasyati, Bpk. Marjuki (Alm), Budhe, Masku Hari, adikku Pam-Pam. Terima kasih atas semua cinta, kasih dan semangat yang diberikan sehingga aku dapat lebih baik….Bu… akhirnya lulus… 3. Ibu P.H Prima Rosa, S.Si., M.Sc. selaku dosen pembimbing dan Kaprodi, atas segala kesabaran, waktu, bimbingan dan saran yang diberikan. 4. Staf BAPSI USD atas data-data mahasiswa yang diberikan. 5. Romo Dr. C. Kuntoro Adi SJ., MA., M.Sc. selaku dosen penguji 6. Bapak St. Eko Hari Parmadi, S.Si., M.Kom. selaku dosen penguji
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7. Bapak Drs. H. Haris Sriwindono, M.Kom selaku dosen pembimbing akademik atas bimbingannya selama kuliah. 8. Pak Tukijo dan mbak Linda, maaf telah banyak merepotkan 9. Mas Susilo selaku pegawai laboran 10. Anak-anak program studi Ilmu Komputer: Oneng, Ina, Teguh, Iin, Toto, Elis, Frans, Citra, Josephine, Vika, Ika, Kelik, Gondez, Suryo, Rey, Vitri, Kadek, Henry, Doni, Teteh, Dimas, Andi, Anjar, Clara, Hendro, Beni Aji, Iyus, Guritno, Wiwid, Rano, Aris, Wawan, Kornel, Beni, Ferry, Puguh, Bayu, Fatso, Fani, Prity 11. Teman-teman, yang selalu ada dan tidak dapat penulis sebutkan satu persatu, yang telah memberikan semangat dalam penulisan skripsi ini. Penulis menyadari bahwa penyusunan skripsi ini masih jauh dari sempurna karena keterbatasan kemampuan dan pengetahuan yang dimiliki serta terbatasnya waktu yang ada. Oleh karena itu, dengan kerendahan hati, penulis mengharapkan segala kritik maupun saran yang berguna dan membangun bagi perbaikan skripsi ini. Akhir kata, penulis berharap semoga skripsi ini dapat bermanfaat bagi pembaca dan pihak lain yang membutuhkannya.
Penulis
Lilik Haryanto
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
HALAMAN JUDUL ..........................................................................................
i
HALAMAN PERSETUJUAN PEMBIMBING ..............................................
ii
HALAMAN PENGESAHAN ............................................................................
iii
HALAMAN PERSEMBAHAN
iv
PERNYATAAN KEASLIAN KARYA ............................................................
v
ABSTRAK ..........................................................................................................
vi
ABSTRACT ........................................................................................................
vii
LEMBAR PERNYATAAN PERSETUJUAN
viii
KATA PENGANTAR ........................................................................................
ix
DAFTAR ISI .......................................................................................................
xi
DAFTAR TABEL ..............................................................................................
xiii
DAFTAR GAMBAR ..........................................................................................
xiv
BAB I
BAB II
PENDAHULUAN ...........................................................................
1
A. Latar Belakang .....................................................................
1
B. Perumusan Masalah ..............................................................
3
C. Batasan Masalah ...................................................................
3
D. Tujuan ...................................................................................
4
E. Manfaat .................................................................................
4
F. Metodologi ...........................................................................
4
G. Sistematika Pembahasan ......................................................
5
LANDASAN TEORI ......................................................................
6
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
A. Penambangan Data ...............................................................
6
B. Proses Penambangan Data ...................................................
6
C. Teknik Klasifikasi ................................................................
10
D. Pohon Keputusan ..................................................................
11
E. Contoh Penerapan Algoritma Pohon Keputusan …..............
20
PERANCANGAN SISTEM ..........................................................
40
A. Identifikasi Sistem ................................................................
40
B. Pembersihan Data .................................................................
41
C. Integrasi Data .......................................................................
41
D. Transformasi Data ................................................................
42
E. Perancangan Umum Sistem .................................................
42
1. Masukan Sistem .........................................................
42
2. Proses Sistem .............................................................
44
3. Keluaran Sistem .........................................................
48
4. Perancangan Struktur Data .........................................
50
5. Perancangan Antarmuka ............................................
51
IMPLEMENTASI SISTEM ..........................................................
63
A. Jalannya Program dan Pembahasannya ................................
63
B. Analisa Hasil Program..........................................................
84
KESIMPULAN DAN SARAN ......................................................
89
A. Kesimpulan ...........................................................................
89
B. Saran .....................................................................................
89
DAFTAR PUSTAKA .........................................................................................
91
LAMPIRAN ........................................................................................................
93
BAB III
BAB IV
BAB V
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Tabel 2.1
Tabel Kontingensi 2 x 2...........................................................
16
Tabel 2.2
Data Nasabah...........................................................................
20
Tabel 2.3
Nilai information gain data nasabah 1.....................................
27
Tabel 2.4
Nilai information gain data nasabah 2.....................................
31
Tabel 2.5
Aturan Klasifikasi yang diperoleh............................................ 32
Tabel 2.6
Tabel Kotingensi Untuk Kekayaan..........................................
33
Tabel 2.7
Tabel Nilai Frekuensi Harapan Untuk Kekayaan....................
34
Tabel 2.8
Tabel Kotingensi Untuk abungan............................................. 36
Tabel 2.9
Tabel Nilai Frekuensi Harapan Untuk Tabungan....................
37
Tabel 2.10
Aturan Yang Paling Sederhana................................................
38
Tabel 2.11
Hasil Prediksi...........................................................................
39
Tabel 3.1
Deskripsi Atribut-Atribut Tabel Data Pelatihan....................... 34
Tabel 3.2
Deskripsi Atribut-Atribut Tabel Data Tes................................ 34
Tabel 3.3
Keluaran Contoh ArrayList……………..................................
51
Tabel 4.1
Confusion Matrix Pengujian I…..............................................
85
Tabel 4.2
Confusion Matrix Pengujian II.................................................
85
Tabel 4.3
Confusion Matrix Pengujian III................................................ 86
Tabel 4.4
Confusion Matrix Pengujian IV...............................................
Tabel 4.5
Confusion Matrix Pengujian V................................................. 86
Tabel 4.6
Pengujian Cross-validation......................................................
xiii
86
87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
Gambar 2.1
Langkah-langkah dalam Penambangan Data...........................
Gambar 2.2
Penambangan data dan teknologi database lainnya................. 9
Gambar 2.3
Pohon Keputusan...................................................................... 11
Gambar 2.4
Contoh Pohon Keputusan......................................................... 12
Gambar 2.5
Nilai positif dan negatif kejadian atribut tabungan..................
Gambar 2.6
Nilai positif dan negatif kejadian atribut kekayaan.................. 23
Gambar 2.7
Nilai positif dan negatif kejadian atribut pendapatan............... 25
Gambar 2.8
Pohon Awal..............................................................................
27
Gambar 2.9
Nilai positif dan negatif kejadian atribut tabungan..................
28
Gambar 2.10
Nilai positif dan negatif kejadian atribut pendapatan............... 30
Gambar 2.11
Pohon Percabangan..................................................................
Gambar 3.1
Desain Antarmuka Form Input Data Tabel.............................. 51
Gambar 3.2
Desain Antarmuka Form Detail Tabel.....................................
52
Gambar 3.3
Desain Antarmuka Form Penentuan Node Awal.....................
53
Gambar 3.4
Desain Antarmuka Form Pembuatan Pohon............................
54
Gambar 3.5
Desain Antarmuka Form Unpruned Aturan............................. 55
Gambar 3.6
Desain Antarmuka Form Aturan Default................................. 56
Gambar 3.7
Desain Antarmuka Form Simulasi...........................................
Gambar 3.8
Desain Antarmuka Form Pengujian Aturan............................. 58
Gambar 3.9
Desain Antarmuka Form Detail Sampel..................................
xiv
8
22
32
57
60
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 3.10
Desain Antarmuka Form Aturan-Aturan.................................
Gambar 3.11
Desain Antarmuka Form Aturan-Aturan Sederhana................ 61
Gambar 3.12
Desain Antarmuka Form Prediksi Sampel............................... 61
Gambar 4.1
Form Menu dan Form Input Data Tabel.................................
63
Gambar 4.2
Form Aturan Himpunan Tabel Pelatihan dan Tes...................
64
Gambar 4.3
Form Tentang Program Penambangan Data............................
64
Gambar 4.4
Kotak Peringatan 1...................................................................
65
Gambar 4.5
Kotak Peringatan 2...................................................................
65
Gambar 4.6
Form Data Tabel (Tabel Pelatihan) ......................................... 66
Gambar 4.7
Form Data Tabel (Tabel Tes) .................................................. 66
Gambar 4.8
Form Penentuan Node Awal....................................................
67
Gambar 4.9
Form Pembuatan Pohon..........................................................
70
Gambar 4.10
Progress Bar Proses Pembuatan Pohon...................................
71
Gambar 4.11
Gambar 4.11 Kotak Pesan 1................................................... 72
Gambar 4.12
Form Unpruned Aturan............................................................ 72
Gambar 4.13
Status Progress Bar Unpruned Aturan....................................
Gambar 4.14
Form Aturan Default................................................................ 75
Gambar 4.15
Kotak Pesan 2........................................................................... 76
Gambar 4.16
Kotak Pesan 3........................................................................... 76
Gambar 4.17
Form Simulasi..........................................................................
Gambar 4.18
Form Simulasi Setelah Tombol Buat Simulasi diklik.............. 78
Gambar 4.19
Form Detail Sampel.................................................................
Gambar 4.20
Kotak Pesan 4........................................................................... 78
xv
60
75
77
78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.21
Form Pengujian Aturan............................................................
79
Gambar 4.22
Form Pengujian Aturan Setelah Tombol Uji Aturan diklik.....
80
Gambar 4.23
Form Detail Simulasi Aturan...................................................
81
Gambar 4.24
Kotak Pesan 5........................................................................... 81
Gambar 4.25
Kotak Pesan 6........................................................................... 82
Gambar 4.26
Form Aturan-Aturan Sederhana............................................... 82
Gambar 4.27
Form Prediksi Sampel..............................................................
Gambar 4.28
Form Prediksi Sampel Setelah Proses Prediksi........................ 84
xvi
83
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN
A. Latar Belakang Dalam proses Penerimaan Mahasiswa Baru (PMB), calon mahasiswa harus menjalani serangkaian tes tertulis terlebih dahulu sebelum mereka dinyatakan diterima sebagai mahasiswa Universitas Sanata Dharma. Setelah mengikuti tes dan dinyatakan lulus, maka data calon mahasiswa yang bersangkutan disimpan dalam suatu basis data tersendiri. Untuk melengkapi persyaratan dan bukti bahwa calon mahasiswa yang telah dinyatakan lulus tes tersebut benar-benar terdaftar sebagai mahasiswa Universitas Sanata Dharma, maka calon mahasiswa diwajibkan untuk melakukan daftar ulang. Setelah melakukan daftar ulang, seorang mahasiswa secara resmi menjadi civitas academica di Universitas Sanata Dharma. Yang menjadi masalah disini adalah bagaimana jika mahasiswa yang telah dinyatakan lulus tersebut tidak melakukan daftar ulang. Hal ini akan sangat merugikan bagi Universitas Sanata Dharma. Suatu program studi pasti mempunyai jumlah kuota tertentu dalam setiap periode penerimaan mahasiswa baru. Kuota ditentukan sebagai hasil kesepakatan antara Ketua program studi (Kaprodi) dengan pimpinan universitas. Untuk memenuhi kuota tersebut, Kaprodi menerima sejumlah mahasiswa berdasar kuota yang ditetapkan. Pada kenyataannya tidak
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
seluruh mahasiswa yang diterima, mendaftar ulang kembali sehingga kuota tidak terpenuhi. Namun, ketika ditetapkan jumlah mahasiswa yang diterima lebih dari kuota agar mahasiswa yang tidak mendaftar ulang dapat terantisipasi, ada akibat jumlah pendaftar ulang melebihi kuota. Masalah yang muncul adalah bagaimana menetapkan jumlah mahasiswa yang diterima agar kuota yang ditetapkan bisa terpenuhi secara relatif tetap. Sebenarnya ada banyak solusi untuk mengatasi hal tersebut. Salah satu caranya dengan penambangan data (data mining). Penambangan data merupakan teknik untuk mengekstraksi informasi atau menemukan pola yang penting atau menarik dari data yang ada dalam basis data yang besar. Pendekatannya memakai algoritma pohon keputusan (decision trees). Algoritma ini merupakan salah satu pendekatan klasifikasi, yaitu proses pengelompokan data yang dipergunakan sebagai tujuan penambangan data. Dengan mempergunakan penambangan data ini diharapkan Kaprodi
bisa
memprediksi
kuota
secara
lebih
tepat
dengan
memperhitungkan mahasiswa-mahasiswa yang diperkirakan tidak akan melakukan daftar ulang. Kerugian akibat melesetnya prediksi jumlah mahasiswa pendaftar ulang dan kesulitan dalam menangani masalah inipun dapat dikurangi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
B. Perumusan Masalah Berangkat dari latar belakang masalah yang telah dikemukakan di atas, maka perumusan masalah dalam penelitian ini adalah bagaimana mengimplementasikan Universitas Sanata
penambangan Dharma
untuk
data
pada
mengenali
basis
data
PMB
karakteristik
calon
mahasiswa yang tidak melakukan daftar ulang dengan mempergunakan algoritma pohon keputusan ?
C. Batasan Masalah Berdasarkan rumusan masalah yang akan diteliti, diperlukan adanya pembatasan masalah. Hal ini dilakukan supaya penelitian lebih terfokus pada inti dari permasalah yang akan diteliti. Oleh karena itu, penulis memberi batasan penelitian sebagai berikut: 1. Pendekatan yang digunakan berupa pendekatan klasifikasi dengan hanya memakai algoritma pohon keputusan (ID3 Quinland). 2. Input adalah data PMB yang diperoleh dari Biro Administrasi dan Perencanaan Sistem Informasi (BAPSI). Universitas Sanata Dharma dari tahun 2005 sampai 2006. 3. Program diimplementasikan menggunakan bahasa Visual Basic.net dan MySQL 4. Outputnya berupa perkiraan atau prediksi siapa saja mahasiswa yang tidak melakukan daftar ulang serta tingkat keberhasilan prediksi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
D. Tujuan Dapat mengenali karakteristik calon mahasiswa yang tidak melakukan daftar ulang.
E. Manfaat Hasil klasifikasi dari penambangan data dapat digunakan oleh Kaprodi
untuk
memprediksi
kuota
secara
lebih
tepat
dengan
memperhitungkan mahasiswa-mahasiswa yang diperkirakan tidak akan melakukan daftar ulang.
F. Metodologi 1. Mencari data PMB Universitas Sanata Dharma dari tahun 2005 sampai 2006. 2. Melakukan pembersihan data terhadap data yang tidak konsisten ataupun data yang kosong. 3. Implementasi teknik pohon keputusan pada data PMB dengan cara: a.
Mengubah bentuk data menjadi model pohon.
b.
Mengubah node pohon menjadi aturan.
c.
Menyederhanakan aturan.
4. Uji coba Program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
G. Sistematika Pembahasan BAB I. PENDAHULUAN Pada bab ini akan dibahas mengenai latar belakang masalah, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi, dan sistematika laporan. BAB II. LANDASAN TEORI Pada
bab
ini
disajikan
landasan
teori
yang
berisi
konsep/teori/temuan penelitian terdahulu/yang direplikasi yang berkaitan dengan implementasi penambangan data. Secara khusus akan dibahas algoritma pohon keputusan. BAB III. PERANCANGAN SISTEM Bab ini berisi tentang identifikasi sistem, pembersihan data, integrasi data, transformasi data dan perancangan sistem secara umum. BAB IV. IMPLEMENTASI PROGRAM Bab ini berisi implementasi program penambangan data dan analisis terhadap hasil penelitian yang telah dilakukan. BAB V. KESIMPULAN DAN SARAN Pada bab ini penulis memaparkan kesimpulan terhadap hasil penelitian yang dilakukan serta memberikan saran-saran.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI
A. Penambangan Data Beberapa pengertian penambangan data menurut sejumlah penulis adalah sebagai berikut : 1. Definisi sederhana dari penambangan data adalah ekstraksi informasi atau pola yang penting atau menarik dari data yang berada di basis data yang besar (Yudho, 2003:1). 2. Penambangan data adalah suatu percobaan untuk memperoleh informasi yang berguna yang tersimpan di dalam basis data yang sangat besar (Mitra & Acharya, 2003:1). 3. Suatu proses yang mengidentifikasi hubungan dan pola-pola tersembunyi dalam suatu data (Groth, 1998:4). Dari pengertian-pengertian diatas, penambangan data dapat diartikan sebagai suatu proses untuk mencari pola-pola yang tersembunyi dari basis data yang besar sehingga didapatkan informasi yang menarik.
B. Proses Penambangan Data Proses penambangan data tidak dapat dipisahkan dengan Knowledge Discovery in Databases (KDD), karena penambangan data merupakan salah satu tahap dari proses KDD yang mempergunakan analisa data dan penggunaan algoritma, sehingga menghasilkan pola-pola
6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
khusus dalam basis data yang besar (Fayyad, Piatetsky-shapiro & Smyth, 1996: 40). Berikut ini merupakan langkah-langkah dalam membangun penambangan data : 1. Pembersihan Data. Proses ini dilakukan untuk membuang data yang tidak konsisten dan derau yang ada dalam data tersebut, seperti data yang tidak relevan, data yang salah ketik maupun data kosong yang tidak diperlukan. 2. Integrasi data merupakan penggabungan tabel dari beberapa sumber agar seluruh data terangkum dalam satu tabel utuh (denormalisasi). 3. Seleksi dan transformasi data. Pada proses ini data yang ada dipilih untuk selanjutnya diubah menjadi bentuk yang sesuai untuk ditambang. 4. Penerapan teknik penambangan data adalah menerapkan algoritma untuk mencari pola yang menarik 5. Evaluasi pola. Pola yang sudah didapat direpresentasikan kepada pengguna akhir ke dalam bentuk yang menarik ataupun bentuk yang mudah dipahami.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
Tahap-tahap tersebut diilustrasikan ke dalam gambar berikut ini :
Pengetahuan Evaluasi Pola
Data Mining Tugas Data yang Relevan Seleksi dan Transformasi Data Warehouse Pembersihan Data Integrasi Data
Databases
Gambar 2.1 Langkah-langkah dalam Penambangan Data Sumber: Jiawei Han and Micheline Kamber http://www.cs.sfu.ca/~han/dmbook
Tidak dapat dipungkiri bahwa penambangan data
berkaitan erat
dengan data warehouse dan OLAP (Online Analytical Processing). Hal ini dikarenakan teknologi yang ada pada data warehouse dan OLAP digunakan
sepenuhnya
untuk
melakukan
penambangan
data
(Yudho,2003:2). Data warehouse merupakan sistem gudang data sedangkan OLAP merupakan basis data khusus yang digunakan untuk menunjang proses pengambilan keputusan. Berikut ini merupakan gambar yang menunjukkan posisi masing-masing teknologi :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
Increasing potential to support business decisions
End User
Making Decisions Data Presentation Visualization Techniques Data Mining Information Discovery
Business Analyst Data Analyst
Data Exploration Statistical Analysis, Querying and Reporting Data Warehouses / Data Marts OLAP, MDA Data Sources Paper, Files, Information Providers, Database Systems, OLTP
DBA
Gambar 2.2 Penambangan data dan teknologi database lainnya Sumber: Jiawei Han and Micheline Kamber http://www.cs.sfu.ca/~han/dmbook
Dari gambar di atas terlihat
bahwa teknologi data warehouse
digunakan untuk melakukan OLAP sedangkan penambangan data digunakan untuk melakukan information discovery yang informasinya lebih ditujukan untuk seorang Data Analysist dan Business Analysist. Menurut Iko(2003;3) data warehouse merupakan data mentah untuk penambangan data. Data warehouse sendiri secara periodik diisi data dari OLTP(Online Transaction Processing) setelah menjalani pembersihan dan integrasi data. OLTP merupakan basis data yang dipakai perusahaanperusahaan dalam melakukan operasi sehari-harinya seperti pencatatan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
transaksi jual-beli, administrasi pengiriman barang, inventori, penggajian, dan lain sebagainya.
C. Teknik Klasifikasi Salah
satu
metode
yang
digunakan
dalam
membangun
penambangan data adalah teknik klasifikasi. Klasifikasi merupakan suatu teknik yang menentukan kelas-kelas ataupun kategori dari suatu objek berdasarkan sifat/atribut yang dimilikinya. Algoritma teknik klasifikasi terdiri dari dua langkah, yaitu : 1. Membangun model Tahap ini menggambarkan satu himpunan data dari kelas-kelas yang telah ditentukan sebelumnya. Masing-masing sampel diasumsikan sebagai kepunyaan suatu kelas yang sudah diketahui berdasarkan nilainilai
atributnya.
membangun
Sampel-sampel
model
disebut
data
himpunan
yang
digunakan
untuk
data
pelatihan.
Model
direpresentasikan sebagai clasification rules, pohon keputusan, atau formula matematis. 2. Penggunaan model Tujuan dari penggunaan model ini adalah untuk melakukan klasifikasi suatu objek yang akan datang atau yang tidak dikenal. Penilaian tingkat akurasi model menggunakan himpunan data tes. Label yang sudah diketahui dari contoh himpunan data tes dibandingkan dengan hasil klasifikasi dari model. Tingkat akurasi merupakan persentase dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
contoh himpunan data tes yang diklasifikasikan secara benar oleh model.
D. Pohon Keputusan Ada beberapa model yang dapat dibangun pada teknik klasifikasi, salah satunya adalah pohon keputusan. Pohon keputusan adalah suatu diagram alir seperti struktur pohon, yang mana setiap titik (node) bagian dalam merupakan sebuah atribut, setiap cabang (branch) menggambarkan keluaran dari suatu logikal tes dan daun-daun (leaf node) menggambarkan kelas-kelas atau suatu kelas distribusi. Node yang paling atas disebut akar (root node). Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini.
Gambar 2.3 Pohon Keputusan Sumber:http://www2.cs.uregina.ca/~hamilton/courses/831/notes/ml/dtrees/ 4_dtrees1.html
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
Di bawah ini merupakan contoh dari suatu pohon keputusan yang mempunyai konsep tentang pembelian komputer dari suatu toko elektronik, yang mengindikasikan kemungkinan seorang pelanggan membeli komputer atau tidak.
umur? <= 30
31…40
mahasiswa? tidak
> 40
credit_rating?
ya ya
tidak
baik sekali
ya
tidak
cukup
ya
Gambar 2.4 Contoh Pohon Keputusan Sumber: Jiawei Han and Micheline Kamber http://www.cs.sfu.ca/~han/dmbook Ada banyak algoritma yang dapat digunakan dalam membuat pohon keputusan. Salah satu algoritma yang dapat digunakan untuk membuat pohon keputusan adalah algoritma ID3 Quinland (Hamilton,2000). Langkah–langkah untuk melakukan prediksi dalam pohon keputusan dengan menggunakan algoritma ID3 Quinland adalah sebagai berikut : 1. Mengubah bentuk data menjadi bentuk model pohon Langkah-langkah dalam mengubah model data menjadi model pohon adalah sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
a. Menentukan node terpilih/node awal Atribut mana yang harus dipilih sebagai node awal adalah atribut yang memungkinkan untuk mendapatkan pohon keputusan yang paling kecil ukurannya atau atribut yang bisa memisahkan objek menurut
kelasnya.
Secara
heuristik
dipilih
atribut
yang
menghasilkan node yang paling ”purest” (paling bersih). Jika dalam satu cabang anggotanya berasal dari satu kelas maka cabang ini disebut pure. Semakin pure suatu cabang semakin baik. Ukuran purity dinyatakan dengan tingkat impurity. Salah satu kriteria impurity adalah information gain. Jadi dalam memilih atribut untuk memecah objek dalam beberapa kelas harus dipilih atribut yang menghasilkan information gain paling besar. Untuk menghitung information gain perlu dihitung dahulu nilai informasi dalam satuan bits dari suatu kumpulan obyek. Cara penghitungan dilakukan dengan menggunakan konsep entropi. Entropi menyatakan impurity suatu kumpulan obyek. Berikut ini merupakan definisi dari entropi suatu ruang sampel data (S) : entropi(S) = − P+ log2 P+ − P- log2 P- .......................2.1 dimana : S = ruang sampel data yang digunakan untuk data pelatihan P+ = jumlah yang bersolusi positif (mendukung) pada sampel data P- = jumlah yang bersolusi negatif (tidak mendukung) pada sampel data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
Nilai rata-rata terbobot entropi suatu atribut dapat dirumuskan sebagai berikut : E(A)=
inst
⎛ ⎛ ni ⎞
⎞
∑ ⎜⎜ ⎜⎝ n ⎟⎠ × e ⎟⎟ ............................................................2.2 i =1
⎝
t
i
⎠
dimana : inst = jumlah kejadian ni
= jumlah data kejadian ke-i
nt = jumlah total data keseluruhan ei
= nilai entropi kejadian ke-i
Sehingga information gain dapat di hitung dengan rumus: Gain(A) = entropi(S) – E(A).......................................2.3 dimana : entropi(S) = nilai entropi total dari atribut keputusan dalam ruang sampel data S. E(A)
= nilai rata-rata terbobot entropi suatu atribut
b. Menyusun Pohon Penyusunan pohon dimulai dari node yang terpilih. Node yang terpilih tersebut menjadi akar (root leaf) dari pohon yang akan disusun. Langkah selanjutnya adalah memilih node daun (leaf node) selanjutnya. Langkah yang dilakukan adalah : 1) Memilih node dari sampel data yang tidak homogen 2) Mencari nilai gain dari setiap atribut kecuali atribut yang telah menjadi node diatasnya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
3) Pilih atribut yang mempunyai nilai gain paling besar sebagai node daun selanjutnya. Proses ini dilakukan secara terus menerus sampai setiap node daun mempunyai sampel data yang homogen atau sampel data yang ada kosong atau jika sampel masih tidak homogen (heterogen) tetapi tidak ada lagi atribut yang tersisa. 2. Mengubah node pohon menjadi aturan Pada tahap ini pohon yang telah selesai dibangun diubah menjadi aturan if...then. Menurut Han dan Kamber (1998), node-node yang ada merupakan anteseden pada suatu aturan, sedangkan nilai anteseden merupakan
cabang-cabang
yang
terbentuk
pada
node.
Nilai
konsekuennya adalah :
Jika sampel sudah homogen, maka nilai konsekuennya adalah kejadian atribut target/keputusan pada sampel data tersebut.
Jika sampel kosong, maka nilai konsekuennya merupakan kejadian paling banyak dari atribut target pada keseluruhan sampel.
Jika sampel masih heterogen tetapi atribut kondisi sudah habis, maka nilai konsekuennya adalah kejadian pada atribut target yang mempunyai jumlah kejadian paling banyak pada sampel yang tersisa (Han dan Kamber, 1998)
3. Menyederhanakan aturan (pruning) Tahap ini bertujuan untuk mengidentifikasi dan menghilangkan anteseden atau aturan yang tidak diperlukan atau yang tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
meningkatkan akurasi klasifikasi. Aturan yang terbentuk menjadi lebih sederhana dan lebih akurat. Menurut Hamilton (2000), langkahlangkah dalam penyederhanaan aturan adalah : a. Menyederhanakan aturan dengan menghilangkan anteseden yang tidak perlu. Langkah-langkah untuk menghilangkan anteseden adalah sebagai berikut : 1) Membangun tabel kontingensi untuk setiap aturan yang mengandung lebih dari satu anteseden. Aturan yang hanya memiliki satu anteseden tidak dapat disederhanakan lebih lanjut, jadi hanya aturan yang terdiri dari dua atau lebih anteseden yang dapat disederhanakan. Tabel kontingensi merupakan nilai frekuensi yang teramati. Tabel kontingensi terdiri dari r baris dan c kolom. Total r baris dan c kolom dalam tabel kontingensi disebut frekuensi marjinal. Untuk lebih jelasnya, dapat dilihat pada tabel berikut ini : Tabel 2.1 Tabel Kontingensi 2 x 2
R1 R2 Jumlah Marjinal
C1 x11 x21 CT1 = x11+ x21
C2 x12 x22 CT2 = x1+x22
Jumlah Marjinal R1T = x11 + x12 R2T = x21 + x22 T = x11+x12+x21+x22
Keterangan : R1, R2, C1, C2 : nilai-nilai dari salah satu anteseden atau kejadian pada atribut target
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
x11, x12, x21, x22 : merepresentasikan frekuensi dari setiap pasangan anteseden dengan konsekuen R1T, R2T : jumlah marjinal dari baris CT1, CT2 : jumlah marjinal dari kolom T : jumlah keseluruhan frekuensi marjinal
2) Menguji data-data dari kriteria tertentu dengan menggunakan uji kebaikan suai. Uji kebaikan suai ini berguna untuk menentukan tingkat independensi pada suatu kriteria. Uji ini didasarkan pada seberapa baik kesesuaian antara frekuensi yang teramati dalam data dengan frekuensi harapan yang didasarkan pada sebaran yang dihipotesiskan. Berikut ini merupakan rumus untuk menghitung frekuensi harapan bagi sembarang sel : eij =
RiT • CTj ...........................................................2.4 T
dimana : eij = nilai frekuensi harapan baris ke-i kolom ke-j RiT = total baris ke-i CTj = total kolom ke-j T = jumlah keseluruhan frekuensi marjinal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
Uji kebaikan suai yang teramati dengan frekuensi harapan didasarkan pada besaran : baris kolom
χ =∑ 2
i
∑ j
2
(oij − eij ) ..........................................2.5 eij
dimana :
χ 2 = nilai bagi peubah acak χ 2 yang sebaran penarikan contohnya sangat menghampiri sebaran chi-square i = baris j = kolom oij = nilai frekuensi teramati baris ke-i kolom ke-j eij = nilai frekuensi harapan baris ke-i kolom ke-j
Jika frekuensi yang teramati sangat dekat dengan frekuensi harapannya, nilai χ 2
akan kecil, hal ini menunjukkan
kesesuaian yang baik. Namun bila frekuensi yang teramati berbeda cukup besar dari frekuensi harapannya, nilai χ 2 akan besar sehingga kesesuaiannya buruk. Kesesuaian yang terjadi akan mempengaruhi penerimaan atau penolakan hipotesis nol atau Ho. Hipotesis nol atau Ho merupakan pernyataan atau dugaan mengenai satu atau lebih populasi yang dirumuskan dengan harapan akan ditolak. Kesesuaian yang baik akan membawa pada penerimaan Ho, sedangkan kesesuaian yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
buruk akan membawa pada penolakan Ho. Penolakan Ho mengakibatkan
penerimaan
hipotesis
alternatif,
yang
dilambangkan dengan H1 (Walpole, 1995). 3) Menghitung derajat kebebasan Untuk menghitung derajat kebebasan digunakan rumus : dk = (baris - 1)(kolom - 1)........................................2.6 4) Gunakan tabel chi-square dengan χ 2 dan derajat kebebasan untuk
menentukan
apakah
anteseden
secara
individual
independen dengan konsekuennya. Untuk kepercayaan sebesar
α , jika :
χ 2 > χ 2α dengan derajat kebebasan dk : tolak hipotesis nol dan menerima alternatif hipotesis yaitu anteseden secara individual dependen dengan konsekuen.
χ 2 ≤ χ 2α dengan derajat kebebasan dk : terima hipotesis nol yaitu anteseden yang secara individual independen dengan konsekuen. χ 2α dapat diperoleh pada tabel chisquare.
b. Menyederhanakan aturan dengan membuang aturan-aturan yang tidak perlu Penyederhanaan aturan dilakukan untuk menghapus aturan yang memiliki anteseden-anteseden yang sama dimana konsekuennya sama dan untuk membuang aturan yang tidak perlu. Sebagai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
contoh penyederhanaan aturan adalah dengan membuat aturan default. Aturan default ini dibentuk dengan mencari konsekuen paling banyak pada aturan tersebut. Aturan-aturan yang memiliki konsekuen inilah yang nanti dijadikan aturan default.
E. Contoh Penerapan Algoritma Pohon Keputusan
Berikut ini merupakan contoh penyelesaian suatu kasus dengan menggunakan algoritma pohon keputusan. Pada kasus ini data yang digunakan adalah data nasabah (Daniel, 2005). Permasalahan yang ada disini adalah bagaimana mengklasifikasi resiko kredit seorang nasabah. Data nasabah ini terdiri dari empat kategori atribut, yaitu tabungan, kekayaan,
pendapatan
dan
atribut
resiko
kredit
sebagai
atribut
keputusannya. Di bawah ini adalah data nasabah tersebut : Tabel 2.2 Data Nasabah Nasabah
1 2 3 4 5 6 7 8
Tabungan
Sedang Rendah Tinggi Sedang Rendah Tinggi Rendah Sedang
Langkah-langkah
yang
Kekayaan
Tinggi Rendah Sedang Sedang Sedang Tinggi Rendah Sedang harus
Pendapatan ($ 1000s) 75 50 25 50 100 25 25 75
dilakukan
untuk
Resiko kredit
Baik Buruk Buruk Baik Baik Baik Buruk Baik menyelesaikan
permasalahan tersebut menggunakan algoritma pohon keputusan adalah :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Langkah 1 : mengubah bentuk data menjadi bentuk model pohon
1. Menentukan node terpilih Hal yang harus dilakukan pada tahap ini adalah menghitung nilai entropi atribut keputusan yaitu atribut resiko kredit dan nilai entropi setiap kejadian dengan rumus 2.1, selanjutnya menghitung nilai ratarata terbobot entropi setiap atribut menggunakan rumus 2.2 dan selanjutnya menghitung nilai information gain dengan rumus 2.3. Pilihlah atribut yang mempunyai nilai information gain paling besar, atribut inilah yang akan menjadi node awal. Berikut ini merupakan penghitungan information gain dari setiap atribut. Langkah awal adalah menghitung nilai entropi total dari atribut keputusan, yaitu : Pada data nasabah terdapat dua keputusan yaitu baik atau buruk. Ada 5 keputusan resiko kredit baik dan ada 3 keputusan resiko kredit buruk. Dimisalkan bahwa keputusan resiko kredit baik adalah positif sedangkan keputusan resiko kredit buruk adalah negatif, maka dapat dihitung entropinya : entropi(S) = − P+ log2 P+ − P- log2 P-
5 5 3 3 = − log 2 − log 2 8 8 8 8 = 0.423795 + 0.530639 = 0.954
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
a. Atribut tabungan 1) Cari jumlah nilai positif dan negatif dari setiap kejadian pada atribut tabungan, berikut ini penggambarannya :
Tabungan
Tinggi
1 positif 1 negatif
Sedang
3 positif
Rendah
1 positif 2 negatif
Gambar 2.5 Nilai positif dan negatif kejadian atribut tabungan
2) Hitung nilai entropi dari setiap kejadian, yaitu:
Tabungan = Tinggi (e1) e1 = − P+ log2 P+ − P- log2 P1 1 1 1 e1 = − log 2 − log 2 2 2 2 2 e1 = 0.5 + 0.5 e1 = 1
Tabungan = Sedang (e2) e2 = − P+ log2 P+ − P- log2 P3 3 e2 = − log 2 − 0 3 3 e2 = 0
Tabungan = Rendah (e3) e3 = − P+ log2 P+ − P- log2 P-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
1 1 2 2 e3 = − log 2 − log 2 3 3 3 3 e3 = 0.528321 + 0.389975 e3 = 0.918 3) Hitung nilai rata-rata terbobot entropi atribut tabungan, yaitu: E=
inst
⎛ ⎛ ni ⎞
⎞
∑ ⎜⎜ ⎜⎝ n ⎟⎠ × e ⎟⎟ i =1
⎝
t
i
⎠
⎛2 ⎞ ⎛3 ⎞ ⎛3 ⎞ E = ⎜ × e1⎟ + ⎜ × e2 ⎟ + ⎜ × e3 ⎟ ⎝8 ⎠ ⎝8 ⎠ ⎝8 ⎠ E = 0.25 + 0 + 0.3444 E = 0.594 4) Hitung information gain dari atribut tabungan, yaitu: Gain(A) = entropi(S) – E(A) = 0.954 – 0.594 = 0.36 b. Atribut kekayaan 1) Cari jumlah nilai positif dan negatif dari setiap kejadian pada atribut kekayaan, berikut ini penggambarannya :
Tinggi
Kekayaan
Sedang Rendah
2 positif 3 positif 1 negatif 2 negatif
Gambar 2.6 Nilai positif dan negatif kejadian atribut kekayaan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
2) Hitung nilai entropi dari setiap kejadian, yaitu:
Kekayaan = Tinggi (e1) e1 = − P+ log2 P+ − P- log2 P2 2 e1 = − log 2 − 0 2 2 e1 = 0
Kekayaan = Sedang (e2) e2 = − P+ log2 P+ − P- log2 P-
3 1 1 3 e2 = − log 2 − log 2 4 4 4 4 e2 = 0.311278 + 0.5 e2 = 0.811
Kekayaan = Rendah (e3) e3 = − P+ log2 P+ − P- log2 P2 2 e3 = 0 − log 2 2 2 e3 = 0
3) Hitung nilai rata-rata terbobot entropi atribut kekayaan, yaitu: E=
inst
⎛ ⎛ ni ⎞
⎞
∑ ⎜⎜ ⎜⎝ n ⎟⎠ × e ⎟⎟ i =1
⎝
t
i
⎠
⎞ ⎞ ⎛2 ⎛2 ⎞ ⎛4 E = ⎜ × e1⎟ + ⎜ × e2 ⎟ + ⎜ × e3 ⎟ ⎠ ⎠ ⎝8 ⎝8 ⎠ ⎝8 E = 0 + 0.3934 + 0 E = 0.406
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
4) Hitung information gain dari atribut kekayaan, yaitu: Gain(A) = entropi(S) – E(A) = 0.954 – 0.406 = 0.548 c. Atribut pendapatan 1) Cari jumlah nilai positif dan negatif dari setiap kejadian pada atribut pendapatan, berikut ini penggambarannya :
Pendapatan
25
1 positif 2 negatif
50
1 positif 1 negatif
75 100
2 positif 1 positif
Gambar 2.7 Nilai positif dan negatif kejadian atribut pendapatan
2) Hitung nilai entropi dari setiap kejadian, yaitu:
Pendapatan = 25 (e1) e1 = − P+ log2 P+ − P- log2 P1 1 2 2 e1 = − log 2 − log 2 3 3 3 3 e1 = 0.528321 + 0.389975 e1 = 0.918
Pendapatan = 50 (e2) e2 = − P+ log2 P+ − P- log2 P1 1 1 1 e2 = − log 2 − log 2 2 2 2 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
e2 = 0.5 + 0.5 e2 = 1
Pendapatan = 75 (e3) e3 = − P+ log2 P+ − P- log2 P2 2 e3 = − log 2 − 0 2 2 e3 = 0
Pendapatan = 100 (e4) e4 = − P+ log2 P+ − P- log2 P1 1 e4 = − log 2 − 0 1 1 e4 = 0
3) Hitung nilai rata-rata terbobot entropi atribut pendapatan, yaitu: E=
inst
⎛ ⎛ ni ⎞
⎞
∑ ⎜⎜ ⎜⎝ n ⎟⎠ × e ⎟⎟ i =1
⎝
t
i
⎠
⎞ ⎞ ⎛1 ⎞ ⎛2 ⎛3 ⎞ ⎛2 E = ⎜ × e1⎟ + ⎜ × e2 ⎟ + ⎜ × e3 ⎟ + ⎜ × e4 ⎟ ⎠ ⎠ ⎝8 ⎠ ⎝8 ⎝8 ⎠ ⎝8 E = 0.34425 + 0.25 + 0 + 0 E = 0.594 4) Hitung information gain dari atribut pendapatan, yaitu: Gain(A) = entropi(S) – E(A) = 0.954 – 0.594 = 0.36
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Dari penghitungan nilai information gain setiap atribut tersebut, didapatkan tabel information gain sebagai berikut : Tabel 2.3 Nilai information gain data nasabah 1 Atribut Tabungan Kekayaan Pendapatan
Nilai information gain 0.360 0.548 0.360
Pada tabel tersebut terlihat bahwa nilai information gain paling besar dimiliki oleh atribut kekayaan sebesar 0.548. Atribut kekayaan inilah yang menjadi node awal dalam penyusunan pohon keputusan. 2. Menyusun pohon Untuk menyusun suatu pohon ditentukan suatu atribut sebagai node awal. Dalam kasus ini, didapatkan node awal yaitu atribut kekayaan. Berikut ini merupakan pohon awal yang terbentuk :
Kekayaan
Tinggi
Sedang
Rendah
baik baik
baik baik baik buruk
buruk buruk
Gambar 2.8 Pohon Awal
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Langkah selanjutnya adalah mencari atribut lain untuk menjadi node selanjutnya. Dari pohon awal tersebut, terdapat sampel data yang tidak homogen yaitu atribut kekayaan dengan kejadian sedang. Maka yang menjadi node percabangan adalah node pada kejadian ini. Untuk mencari node selanjutnya, dilakukan penghitungan untuk mencari nilai information gain setiap atribut kecuali atribut yang menjadi node diatasnya. Berikut ini penghitungannya : a. Atribut tabungan 1) Cari jumlah nilai positif dan negatif dari setiap kejadian pada atribut tabungan, berikut ini penggambarannya :
Tinggi
Tabungan
Sedang Rendah
1 negatif 2 positif
1 positif
Gambar 2.9 Nilai positif dan negatif kejadian atribut tabungan
2) Hitung nilai entropi dari setiap kejadian, yaitu:
Tabungan = Tinggi (e1) e1 = − P+ log2 P+ − P- log2 P1 1 e1 = 0 − log 2 1 1 e1 = 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Tabungan = Sedang (e2) e2 = − P+ log2 P+ − P- log2 P2 2 e2 = − log 2 − 0 2 2 e2 = 0
Tabungan = Rendah (e3) e3 = − P+ log2 P+ − P- log2 P1 1 e3 = − log 2 − 0 1 1 e3 = 0
3) Hitung nilai rata-rata terbobot entropi atribut tabungan, yaitu: E=
inst
⎛ ⎛ ni ⎞
⎞
∑ ⎜⎜ ⎜⎝ n ⎟⎠ × e ⎟⎟ i =1
⎝
i
t
⎠
⎛1 ⎞ ⎛2 ⎞ ⎛1 ⎞ E = ⎜ × e1⎟ + ⎜ × e2 ⎟ + ⎜ × e3 ⎟ ⎝4 ⎠ ⎝4 ⎠ ⎝4 ⎠ E=0+0+0 E=0 4) Hitung information gain dari atribut tabungan, yaitu: Gain(A) = entropi(S) – E(A) = 0.954 – 0 = 0.954 b. Atribut pendapatan 1) Cari jumlah nilai positif dan negatif dari setiap kejadian pada atribut pendapatan, berikut ini penggambarannya :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
25 50 Pendapatan
75 100
1 negatif
1 positif
1 positif 1 positif
Gambar 2.10 Nilai positif dan negatif kejadian atribut pendapatan
2) Hitung nilai entropi dari setiap kejadian, yaitu:
Pendapatan = 25 (e1) e1 = − P+ log2 P+ − P- log2 P1 1 e1 = 0 − log 2 1 1 e1 = 0
Pendapatan = 50 (e2) e2 = − P+ log2 P+ − P- log2 P1 1 e2 = − log 2 − 0 1 1 e2 = 0
Pendapatan = 75 (e3) e3 = − P+ log2 P+ − P- log2 P1 1 e3 = − log 2 − 0 1 1 e3 = 0
Pendapatan = 100 (e4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
e4 = − P+ log2 P+ − P- log2 P1 1 e4 = − log 2 − 0 1 1 e4 = 0 3) Hitung nilai rata-rata terbobot entropi atribut pendapatan, yaitu: E=
inst
⎛ ⎛ ni ⎞
⎞
∑ ⎜⎜ ⎜⎝ n ⎟⎠ × e ⎟⎟ i =1
⎝
i
t
⎠
⎞ ⎞ ⎛1 ⎞ ⎛1 ⎛1 ⎞ ⎛1 E = ⎜ × e1⎟ + ⎜ × e2 ⎟ + ⎜ × e3 ⎟ + ⎜ × e4 ⎟ ⎠ ⎠ ⎝4 ⎠ ⎝4 ⎝4 ⎠ ⎝4 E=0+0+0+0 E=0 4) Hitung information gain dari atribut pendapatan, yaitu: Gain(A) = entropi(S) – E(A) = 0.954 – 0 = 0.954 Dari penghitungan nilai information gain tersebut didapat suatu tabel sebagai berikut : Tabel 2.4 Nilai information gain data nasabah 2 Atribut Tabungan Pendapatan
Nilai information gain 0.954 0.954
Pada tabel tersebut terlihat bahwa nilai information gain paling besar dimiliki oleh atribut yaitu sebesar 0.954, dipilih salah satu atribut yaitu tabungan sebagai node berikutnya, sehingga pohon keputusannya menjadi sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Kekayaan
Tinggi
Sedang
baik baik
Rendah
buruk buruk
Tabungan
Tinggi
Sedang
buruk
baik baik
Rendah baik
Gambar 2.11 Pohon Percabangan
Langkah 2 : mengubah node pohon menjadi aturan
Pada tahap ini, node pohon yang terbentuk di ubah ke dalam aturan if...then, yaitu : Tabel 2.5 Aturan Klasifikasi yang diperoleh Aturan 1 2 3 4 5
If
Kekayaan = Tinggi Kekayaan = Rendah Kekayaan = Sedang ^ Tabungan = Tinggi Kekayaan = Sedang ^ Tabungan = Sedang Kekayaan = Sedang ^ Tabungan = Rendah
Then Baik Buruk Buruk Baik Baik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Langkah 3 : menyederhanakan aturan
1. Menyederhanakan aturan dengan menghilangkan anteseden yang tidak perlu Aturan yang perlu disederhanakan adalah aturan yang memiliki anteseden lebih dari satu yaitu aturan nomor 3 sampai dengan nomor 5 yang melibatkan anteseden kekayaan dan tabungan. Pada tahap ini, tabel Chi-Square digunakan untuk melakukan uji hipotesis. Data yang ada telah dikalikan dengan nilai lima (5) agar data dapat digunakan pada
uji
tabel
Chi-Square
dan
diasumsikan
nilai
tingkat
kepercayaannya ( α ) sebesar 0.05. a. Hipotesis Ho : kekayaan dan resiko kredit independen 1) Membuat tabel kotingensi Tabel 2.6 Tabel Kotingensi Untuk Kekayaan
Tinggi Sedang Rendah Jumlah Marjinal
Resiko kredit Resiko kredit (Baik) (Buruk) 10 0 15 5 0 10 25 15
Jumlah Marjinal 10 20 10 40
2) Nilai Frekuensi Harapan (eij)
Selanjutnya menggunakan rumus 2.4.3 untuk menghitung nilai frekuensi harapan tiap sel, yaitu : Frekuensi harapan pada sel X11 : e11 =
10 × 25 = 6.25 40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Frekuensi harapan pada sel X12 : e12 =
10 × 15 = 3.75 40
Frekuensi harapan pada sel X21 : e21 =
20 × 25 = 12.5 40
Frekuensi harapan pada sel X22 : e22 =
20 × 15 = 7.5 40
Frekuensi harapan pada sel X31 : e31 =
10 × 25 = 6.25 40
Frekuensi harapan pada sel X32 : e32 =
10 × 15 = 3.75 40
Berikut ini merupakan tabel nilai frekuensi harapan dari penghitungan di atas : Tabel 2.7 Tabel Nilai Frekuensi Harapan Untuk Kekayaan
Tinggi Sedang Rendah
Resiko kredit Resiko kredit (Baik) (Buruk) 6.25 3.75 12.5 7.5 6.25 3.75
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
3) Nilai χ 2
Untuk menghitung nilai χ 2 digunakan rumus 2.4.4, berikut penghitunggannya : baris kolom
χ =∑ 2
i
∑ j
(oij − eij ) eij
2
(10 − 6.25)2 + (0 − 3.75)2 + (15 − 12.5)2
χ2=
6.25 3.75 12.5 2 2 (5 − 7.5) + (0 − 6.25) + (10 − 3.75)2 + 7 .5 6.25 3.75
χ 2 = 2.25 + 3.75 + 0.5 + 0.833 + 6.25 + 10.417 χ 2 = 23.99967
4) Nilai derajat kebebasan
Nilai ini dihitung dengan menggunakan rumus 2.4.5, yaitu : dk = (baris - 1)(kolom - 1) = (3 - 1)(2 - 1) = 2 5) Nilai χ 2α
Nilai χ 2α pada tabel Chi-Square dengan derajat kebebasan 2 adalah 5.991. 6) Kesimpulan :
Karena nilai χ 2 > χ 2α , maka hipotesis nol independensi Ho ditolak dan H1 diterima yang berarti kekayaan dan resiko kredit tidak independen. Maka anteseden kekayaan tidak dapat dieliminasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
b. Hipotesis Ho : tabungan dan resiko kredit independen 1) Membuat tabel kotingensi Tabel 2.8 Tabel Kotingensi Untuk Tabungan
Tinggi Sedang Rendah Jumlah Marjinal
Resiko kredit Resiko kredit (Baik) (Buruk) 5 5 15 0 5 10 25 15
Jumlah Marjinal 10 15 15 40
2) Nilai Frekuensi Harapan (eij)
Selanjutnya menggunakan rumus 2.4.3 untuk menghitung nilai frekuensi harapan tiap sel, yaitu : Frekuensi harapan pada sel X11 : e11 =
10 × 25 = 6.25 40
Frekuensi harapan pada sel X12 : e12 =
10 × 15 = 3.75 40
Frekuensi harapan pada sel X21 : e21 =
15 × 25 = 9.75 40
Frekuensi harapan pada sel X22 : e22 =
15 × 15 = 5.625 40
Frekuensi harapan pada sel X31 : e31 =
15 × 25 = 9.75 40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Frekuensi harapan pada sel X32 : e32 =
15 × 15 = 5.625 40
Berikut ini merupakan tabel nilai frekuensi harapan dari penghitungan di atas : Tabel 2.9 Tabel Nilai Frekuensi Harapan Untuk Tabungan Resiko kredit Resiko kredit (Baik) (Buruk) 6.25 3.75 9.75 5.625 9.75 5.625
Tinggi Sedang Rendah 3) Nilai χ 2
Untuk menghitung nilai χ 2 digunakan rumus 2.4.4, berikut penghitunggannya : baris kolom
χ =∑ 2
i
∑ j
(oij − eij ) eij
2
(5 − 6.25)2 + (5 − 3.75)2 + (15 − 9.75)2
χ2=
6.25 3.75 9.75 2 2 2 ( ( ( 0 − 5.625) 5 − 9.75) 10 − 5.625) + + + 5.625 9.75 5.625
χ 2 = 0.25 + 0.4167 + 2.827 + 5.625 + 2.314 + 3.403 χ 2 = 14.835
4) Nilai derajat kebebasan
Nilai ini dihitung dengan menggunakan rumus 2.4.5, yaitu : dk = (baris - 1)(kolom - 1) = (3 - 1)(2 - 1) = 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
5) Nilai χ 2α
Nilai χ 2α pada tabel Chi-Square dengan derajat kebebasan 2 adalah 5.991. 6) Kesimpulan :
Karena nilai χ 2 > χ 2α , maka hipotesis nol independensi Ho ditolak dan H1 diterima yang berarti tabungan dan resiko kredit tidak independen. Maka anteseden tabungan tidak dapat dieliminasi dan aturan klasifikasi masih tetap seperti pada tabel 2.7.
2. Menyederhanakan aturan dengan membuang aturan Setelah menyederhanakan aturan dengan menggunakan langkah pertama, maka dilanjutkan dengan mencari konsekuen yang paling banyak. Pada aturan diatas konsekuen yang paling banyak berjumlah 3, yaitu Baik. Ketiga aturan ini dijadikan default aturan, sehingga aturan-aturan tersebut menjadi : Tabel 2.10 Aturan Yang Paling Sederhana Aturan If 1 Kekayaan = Rendah 2 Kekayaan = Sedang ^ Tabungan = Tinggi Default Aturan
Then Buruk Buruk Baik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
Langkah 4 : hasil prediksi himpunan data pelatihan Tabel 2.11 Hasil Prediksi Nasabah Tabungan
1 2 3 4 5 6 7 8
Sedang Rendah Tinggi Sedang Rendah Tinggi Rendah Sedang
Kekayaan
Tinggi Rendah Sedang Sedang Sedang Tinggi Rendah Sedang
Pendapatan ($ 1000s) 75 50 25 50 100 25 25 75
Resiko kredit Baik Buruk Buruk Baik Baik Baik Buruk Baik
Prediksi
Baik Buruk Buruk Baik Baik Baik Buruk Baik
Dari hasil prediksi pada data pelatihan di atas tidak ditemukan adanya kesalahan prediksi, sehingga persentase keberhasilan prediksi adalah 100 %.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III PERANCANGAN SISTEM
A. Identifikasi Sistem
Setiap pergantian tahun akademik baru, Universitas Sanata Dharma selalu melakukan Penerimaan Mahasiswa Baru (PMB). Calon mahasiswa baru ini harus melakukan serangkaian tes tertulis terlebih dahulu. Setiap tahun pula program studi menyediakan kuota untuk mahasiswa baru yang diterima. Calon mahasiswa yang diterima belum tentu melakukan daftar ulang, untuk itulah Ketua Program Studi (Kaprodi) harus benar-benar selektif dalam memilih mahasiswa mana yang pasti melakukan daftar ulang, sehingga kuota yang ditetapkan dapat terisi relatif tepat. Masalah tersebut dapat diatasi dengan menggunakan metode penambangan data, karena penambangan data ini dapat digunakan untuk mengenali karakteristik mahasiswa yang tidak melakukan daftar ulang. Data-data mahasiswa diambil dari data calon mahasiswa baru mulai dari angkatan tahun 2005 sampai dengan 2006. Data ini mencakup seluruh program studi yang ada di Universitas Sanata Dharma yang diperoleh dari Biro Administrasi dan Perencanaan Sistem Informasi (BAPSI) Universitas Sanata Dharma Yogyakarta. Seluruh data yang diambil berisi informasi tentang gelombang masuk, prioritas pilihan program studi di mana calon mahasiswa tersebut diterima, jenis kelamin, jenis sma, program studi tempat calon mahasiswa diterima dan status daftar ulang yang dilakukan serta nilai
40
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
finalnya. Data yang didapat akan dibagi dua secara acak, kemudian digunakan sebagai himpunan data pelatihan dan himpunan data tes dengan proporsi yang bervariasi.
B. Pembersihan Data
Data calon penerimaan mahasiswa baru yang didapat dari BAPSI, dibersihkan terlebih dahulu sebelum data tersebut ditambang. Proses pembersihan data ini berfungsi untuk menghilangkan data yang tidak konsisten dan derau seperti data tidak relevan, data yang salah ketik maupun data kosong yang tidak diperlukan. Data yang tidak konsisten ini dapat berupa jenis SMA yang mempunyai arti sama, tapi penulisannya berbeda-beda. Misalnya IPA ada yang menuliskan SMA IPA ataupun IPA, jadi dalam proses ini dilakukan penyeragaman nama terhadap data yang tidak konsisten.
C. Integrasi Data
Sesudah data itu bersih, maka data yang ada di tabel mahasiswa dari tiap tahun angkatan tersebut digabungkan dengan data dari tabel angkatan yang lain sehingga seluruh data terangkum dalam satu tabel yang utuh. Proses ini disebut integrasi data. Seluruh data yang sudah terangkum, kemudian dipilih dan diubah menjadi bentuk yang sesuai untuk ditambang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
D. Transformasi Data
Dalam proses ini dilakukan klasifikasi data nilai final yang bertipe numerik dan berkisar dalam rentang 0 sampai 10. Berikut ini klasifikasinya : o N≤3 o 3
8
E. Perancangan Umum Sistem 1. Masukan Sistem
Masukan sistem yang akan dibuat adalah tabel himpunan data pelatihan dan tabel himpunan data tes. Pada tabel himpunan data pelatihan, yang menjadi atribut keputusan adalah atribut status yang terdiri dari dua kondisi yaitu daftar ulang dan tidak daftar ulang. Terdapat kolom tambahan pada tabel himpunan data tes yaitu kolom prediksi, yang digunakan untuk menyimpan data hasil pengujian aturan. Berikut ini merupakan deskripsi dari atribut-atribut pada tabel data pelatihan beserta nilai kejadian dari atribut-atribut tersebut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Tabel 3.1 Deskripsi Atribut-Atribut Tabel Data Pelatihan No Nama Atribut 1 gelombang 2 pilihan
Deskripsi Gelombang masuk Prioritas pilihan pada program studi tempat calon mahasiswa tersebut diterima Program studi tempat mahasiswa diterima
3
prodi
4 5
jenis_kelamin jenis_sma
Jenis kelamin mahasiswa Jenis SMA mahasiswa
6
final
Nilai final tes masuk berdasarkan program studi dimana mahasiswa tersebut diterima
7
status
Status mahasiswa yang melakukan daftar ulang atau tidak
Nilai Kejadian 1, 2, 3 1, 2 ,3
AKT, BK, FAR, FIS, IND, IPAK, MAN, MAT, MEKA, PAK, PBI, PBI, PBSID, PEK, PFIS, PGSD, PMAT, PSEJ, PSI, SEJ, SING, TE, TI, TM L, P IPA, IPS, Bahasa, SMK, STM, SMF, SPG/SGO, LAIN-LAIN N ≤ 3, 3 < N ≤ 4, 4 < N ≤ 5, 5 < N ≤ 6, 6 < N ≤ 7, 7 < N ≤ 8, N>8 Daftar Ulang, tidak DU
Berikut ini merupakan deskripsi dari atribut-atribut pada tabel data tes beserta nilai kejadian dari atribut-atribut tersebut : Tabel 3.2 Deskripsi Atribut-Atribut Tabel Data Tes No Nama Atribut 1 gelombang 2 pilihan
3
prodi
Deskripsi Nilai Kejadian Gelombang masuk 1, 2, 3 Prioritas pilihan pada 1, 2, 3 program studi tempat calon mahasiswa tersebut diterima Program studi tempat AKT, BK, FAR,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
mahasiswa diterima
FIS, IND, IPAK, MAN, MAT, MEKA, PAK, PBI, PBI, PBSID, PEK, PFIS, PGSD, PMAT, PSEJ, PSI, SEJ, SING, TE, TI, TM L, P IPA, IPS, Bahasa, SMK, STM, SMF, SPG/SGO, LAIN-LAIN N ≤ 3, 3 < N ≤ 4, 4 < N ≤ 5, 5 < N ≤ 6, 6 < N ≤ 7, 7 < N ≤ 8, N>8 Daftar Ulang, tidak DU
4 5
jenis_kelamin jenis_sma
Jenis kelamin mahasiswa Jenis SMA mahasiswa
6
final
Nilai keseluruhan tes berdasarkan program studi dimana mahasiswa tersebut diterima
7
status
8
prediksi
Status mahasiswa yang melakukan daftar ulang atau tidak Nilai awalnya kosong, Daftar Ulang, nantinya akan berisi tidak DU prediksi status mahasiswa yang melakukan daftar ulang atau tidak
2. Proses Sistem
Proses-proses yang dilakukan pada sistem yang dibangun adalah : a. Mengubah bentuk data menjadi bentuk pohon 1) Menentukan node awal Langkah yang dilakukan untuk menentukan node awal adalah menghitung nilai gain tiap atribut kecuali atribut keputusan. Berikut merupakan langkah-langkah penghitungannya : a) Hitung jumlah baris pada sampel data b) Hitung entropi atribut keputusan dengan rumus 2.1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
c) Cari atribut-atribut dan hitung jumlah atribut yang akan dihitung nilai gainnya d) Hitung jumlah kejadian untuk atribut ke-i e) Untuk atribut ke-i, kejadian ke-j •
Hitung jumlah sampel yang memenuhi syarat kejadian dengan atribut ke-i = kejadian ke-j dan status = Daftar Ulang.
•
Hitung jumlah sampel yang memenuhi syarat kejadian dengan atribut ke-i = kejadian ke-j dan status = tidak DU.
f) Kemudian hitung nilai entropi pada kejadian ke-j dengan rumus 2.1 g) Lakukan langkah e dan f untuk keseluruhan atribut ke-i h) Hitung rata-rata terbobot entropi atribut ke-i dengan rumus 2.2 i) Hitung nilai gain atribut ke-i dengan mengurangkan entropi atribut keputusan dengan rata-rata terbobot entropi atribut ke-i. j) Cari nilai gain atribut paling besar. Atribut inilah yang akan menjadi node awal. 2) Menyusun pohon Setelah node awal didapat, langkah selanjutnya adalah menyusun pohon. Hal pertama yang harus dilakukan adalah mencari kejadian-kejadian yang ada pada node awal. Kejadiankejadian ini yang akan menjadi cabang-cabang pada pohon. Langkah selanjutnya, mencari sampel data pada setiap cabang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
dimana harus memenuhi nilai dari cabang tersebut dan nilai dari cabang-cabang di atasnya (jika ada). Proses dibawah ini dilakukan pada setiap cabang-cabang tersebut. Hitung jumlah sampel yang memenuhi syarat di atas dan setiap kejadian pada atribut keputusan yaitu dalam hal ini adalah atribut status. Selanjutnya dilakukan proses
pengecekan
untuk
menentukan
ada
atau
tidaknya
percabangan, proses tersebut berupa :
Jika sampel tidak ada, maka cari kejadian paling banyak pada atribut keputusan untuk keseluruhan sampel. Kejadian paling banyak inilah yang menjadi nilai hasil.
Jika sampel sudah homogen, maka hasilnya berupa kejadian atribut keputusan pada sampel ini, dan tidak dilakukan percabangan lagi.
Jika sampel masih heterogen dan sampel tidak kosong serta atribut kondisi masih ada maka dilakukan percabangan lagi. Proses ini dilakukan dengan menentukan node selanjutnya. Proses penentuan node selanjutnya hampir sama dengan proses penentuan node awal, yang membedakan adalah tidak dilakukannya penghitungan nilai gain pada atribut yang menjadi node di atasnya. Setelah itu lakukan lagi langkahlangkah di atas. Namun jika atribut kondisi sudah habis, maka tidak dilakukan percabangan lagi, kemudian cari nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
hasil dengan melakukan pencarian terhadap kejadian paling banyak pada atibut keputusan pada sampel yang tersisa. b. Mengubah node pohon menjadi aturan Langkah-langkah untuk mengubah node pohon menjadi aturan yang dimulai dari node pertama adalah sebagai berikut : 1) Pada node tersebut, cari cabang-cabang (kejadian-kejadian) dari pohon. Setiap cabang akan menjadi aturan dengan anteseden berupa node = cabang ke-j. 2) Selanjutnya untuk setiap cabang dilakukan pengecekan apakah ada node lagi (hasil kosong) atau tidak (hasil berupa Daftar Ulang atau tidak DU).
Jika tidak, maka nilai hasil akan menjadi konsekuen
Jika ada, maka cari anteseden selanjutnya dengan melakukan langkah 1 dan seterusnya.
c. Menyederhanakan aturan-aturan 1) Menyederhanakan aturan dengan menghilangkan antesedenanteseden yang tidak perlu Pada langkah ini, aturan-aturan yang memiliki anteseden lebih dari satu diuji independensi dengan atribut keputusan dan atribut yang lain didalam aturan tersebut. Dalam tugas akhir ini, langkah ini tidak dilakukan karena ukuran matrix tabel kontingensi yang terbentuk terlalu besar. Besarnya ukuran matrix ini akan mempengaruhi besarnya nilai derajat kebebasan. Ketika digunakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
tabel chi-square untuk menguji suatu hipotesis, nilai derajat kebebasan yang terbentuk melebihi batas maksimal nilai derajat kebebasan pada tabel chi-square, sehingga dibutuhkan dasar-dasar teori teknik uji independensi tingkat lanjut. 2) Menyederhanakan aturan dengan membuang aturan-aturan yang tidak perlu Langkah ini mencari jumlah konsekuen yang paling banyak dan selanjutnya aturan-aturan dengan konsekuen ini diubah menjadi aturan default. d. Menguji aturan-aturan pada himpunan data tes Aturan–aturan yang sudah terbentuk diujikan pada himpunan data tes. Nilai prediksi setiap data sampel yang dihasilkan dibandingkan dengan nilai
atribut
keputusannya.
Sesudah
itu
dihitung
persentase
keberhasilan prediksi. Hasil penghitungan dari keberhasilan prediksi ini akan disimpan sehingga pemakai program dapat membandingkan hasilnya dengan hasil dari simulasi aturan yang akan dibuat selanjutnya.
3. Keluaran Sistem
Sistem yang dibuat akan menampilkan keluaran sebagai berikut : a. Menampilkan himpunan data pelatihan dan himpunan data tes beserta detail atribut keputusan dan atribut yang lain dengan jumlah sampel pada masing-masing kejadian.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
b. Keluaran pada penentuan node awal adalah nilai gain pada tiap atribut beserta atribut yang dipilih sebagai node awal. c. Pada proses pembuatan pohon, keluarannya adalah tabel pohon yang di dalamnya berisi informasi nomor, tingkat pohon, nomor akar atasnya, atribut-atribut yang menjadi node, cabang-cabang berupa nama kejadian-kejadian dan hasilnya. d. Pada proses unpruned aturan yaitu proses mengubah pohon menjadi aturan, keluarannya ada dua tabel yaitu tabel pertama yang berisi nomor aturan, konsekuen, banyaknya anteseden dan total sampel sedangkan tabel kedua berupa anteseden-anteseden beserta nomor aturannya. e. Pada proses penyederhanaan aturan Proses penyederhanaan aturan dengan membuang aturan-aturan yang tidak perlu, keluarannya adalah konsekuen dengan jumlah paling banyak dan mengeliminasi aturan-aturan dengan konsekuen tersebut serta aturan yang telah disederhanakan. f. Keluaran pada pengujian aturan adalah himpunan data tes beserta hasil pengujian aturan dan informasi yang berisi persentase keberhasilan prediksi, hasil simulasi berupa jumlah benar, jumlah salah dan jumlah yang tidak dapat diprediksi g. Keluaran pada proses prediksi suatu sampel berupa hasil prediksi yang berisi nomor aturan dan prediksinya apakah daftar ulang atau tidak daftar ulang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
4. Perancangan Struktur Data
Dalam proses pembuatan pohon, data pohon disimpan dalam 6 ArrayList. ArrayList merupakan versi array yang berbentuk list. Jumlah data pohon yang disimpan tidak dapat diperkirakan sebelumnya dalam proses pembuatan pohon. ArrayList menjadi solusi karena tidak diperlukan pendeklarasian seberapa banyak kuota yang harus disediakan untuk menampung data. Kapasitas ArrayList akan bertambah secara otomatis sesuai dengan jumlah data yang disimpan. ArrayList pertama menyimpan nomor akar pohon, ArrayList kedua menyimpan tingkat pohon, ArrayList ketiga menyimpan nomor akar atasnya,
ArrayList
keempat
menyimpan
node,
ArrayList
kelima
menyimpan cabang, ArrayList keenam menyimpan hasil. Tipe data yang dapat digunakan dalam ArrayList hanya tipe data objek. Tipe data objek dapat berupa tipe data lain, misalnya string, numeric, booelan, char, date dan sebagainya. Berikut ini contoh penggunaan ArrayList : Public Class ContohArrayList Public Shared Sub Main() 'deklarasi ArrayList Dim tingkat, noAkar, node, cabang, _ hasil As New ArrayList 'Menyimpan data ke ArrayList tingkat.Insert(0, 1) tingkat.Insert(1, 1) noAkar.Insert(0, 0) noAkar.Insert(1, 0) node.Insert(0, "prodi") node.Insert(1, "prodi") cabang.Insert(0, "IKOM") cabang.Insert(1, "PSI") hasil.Insert(0, "Daftar Ulang") hasil.Insert(1, "tidak DU")
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
'menampilkan dalam DataGridView Dim i As Integer For i = 0 To 1 DataGridView1.Rows.Add() DataGridView1.Rows(i).Cells(0).Value DataGridView1.Rows(i).Cells(1).Value DataGridView1.Rows(i).Cells(2).Value DataGridView1.Rows(i).Cells(3).Value DataGridView1.Rows(i).Cells(4).Value DataGridView1.Rows(i).Cells(5).Value Next End Sub End Class
= = = = = =
i + 1 tingkat(i) noAkar(i) node(i) cabang(i) hasil(i)
Keluarannya : Tabel 3.3 Keluaran Contoh ArrayList No 1 2
Tingkat No Akar Atasnya 1 0 1 0
Node prodi prodi
Cabang IKOM PSI
Hasil Daftar Ulang Tidak DU
5. Perancangan Antarmuka
Perancangan antarmuka sistem adalah sebagai berikut : a. Form Input Data Tabel
Gambar 3.1 Desain Antarmuka Form Input Data Tabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Form di atas merupakan form awal dimana tabel data pelatihan dan tabel data tes digunakan sebagai masukan untuk sistem. Ada dua tombol dalam form ini yaitu :
Reset, digunakan untuk menghapus tabel data pelatihan dan tabel data tes yang telah dimasukan sebelumnya
Ok, digunakan untuk melanjutkan ke form berikutnya yaitu form detail tabel.
b. Form Detail Tabel
Gambar 3.2 Desain Antarmuka Form Detail Tabel
Form ini untuk menampilkan detail tabel yang telah dimasukkan sebelumnya, baik itu tabel pelatihan maupun tabel tes. Informasi yang diberikan berupa himpunan data sampel, jumlah atribut, jumlah data, atribut keputusan, jumlah dan nama kejadian atribut keputusan, dan atribut yang lain dengan jumlah sampel pada masing-masing kejadian. Ada tiga tombol dalam form ini yaitu :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Tampil tabel, digunakan untuk menampilkan himpunan data sampel, beserta informasi detail tabel tersebut yang telah dijelaskan di atas.
Proses ID3, untuk melanjutkan ke proses atau form selanjutnya yaitu form penentuan node awal.
c. Form Penentuan Node Awal
Gambar 3.3 Desain Antarmuka Form Penentuan Node Awal
Form di atas untuk menampilkan nama atribut serta nilai gain masingmasing atribut dan menampilkan atribut yang dipilih menjadi node awal beserta nilai gainnya. Ada dua tombol dalam form ini yaitu:
Cari Node Awal, tombol ini digunakan untuk mencari atribut yang dipilih menjadi node awal beserta nilai gainnya, serta mencari nilai gain atribut yang lain.
Lanjut, untuk melanjutkan ke proses atau form selanjutnya yaitu form pembuatan pohon.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
d. Form Pembuatan Pohon
Gambar 3.4 Desain Antarmuka Form Pembuatan Pohon
Form di atas digunakan untuk melakukan proses pembentukan pohon dan menampilkan tabel pohon yang sudah terbentuk yang berisi informasi tentang tingkat pohon, nomor akar atasnya, atribut-atribut yang menjadi node, cabang-cabang berupa nama kejadian-kejadiannya dan hasilnya. Ada dua tombol yaitu :
Buat Pohon, digunakan untuk melakukan proses pembentukan pohon dan menampilkan tabel pohon yang terbentuk.
Lanjut, untuk melanjutkan ke proses atau form selanjutnya yaitu form unpruned aturan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
e. Form Unpruned Aturan
Gambar 3.5 Desain Antarmuka Form Unpruned Aturan
Form di atas digunakan untuk proses penentuan aturan dan menampilkan aturan tersebut serta jumlahnya. Dalam form tersebut terdapat combo box klasifikasi yang digunakan untuk menampilkan aturan-aturan
berdasarkan
klasifikasi
yang
dipilih.
Informasi
ditampilkan dalam dua tabel, tabel pertama menampilkan informasi tentang nomor aturan, konsekuen, total anteseden dan total sampel, sedangkan tabel kedua menampilkan informasi anteseden yang berisi nomor aturan dan anteseden. Ada dua tombol yaitu :
Unpruned, tombol ini digunakan untuk melakukan proses penentuan
aturan-aturan
dari
pohon
yang
telah
sebelumnya dan menampilkan combo box klasifikasi.
dibentuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Lanjut, untuk melanjutkan ke proses atau form selanjutnya yaitu form Aturan Default
f. Form Aturan Default
Gambar 3.6 Desain Antarmuka Form Aturan Default
Form di atas digunakan untuk membuat aturan default. Dalam form tersebut terdapat combo box klasifikasi yang digunakan untuk menampilkan aturan-aturan berdasarkan klasifikasi yang dipilih. Ada dua tombol dalam form ini yaitu
Aturan Default, digunakan untuk membuat aturan default.
Lanjut, untuk melanjutkan ke proses atau form selanjutnya yaitu form simulasi dan pengujian aturan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
g. Form Simulasi dan Pengujian Aturan o Form Simulasi
Gambar 3.7 Desain Antarmuka Form Simulasi
Form simulasi ini digunakan untuk membuat simulasi aturan, menghapus aturan-aturan yang diinginkan dan menampilkan informasi tentang aturan beserta anteseden yang dihapus. Informasi tersebut berisi tentang nomor aturan, konsekuen, total anteseden dan nama antesedennya. Dalam form tersebut terdapat combo box klasifikasi yang digunakan untuk menampilkan aturan-aturan berdasarkan klasifikasi yang dipilih dan jumlah aturan. Tomboltombol yang ada yaitu :
Buat Simulasi, tombol ini digunakan untuk membuat simulasi aturan dan menampilkan aturan-aturan yang terbentuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Pengujian Aturan, digunakan untuk melanjutkan ke form pengujian aturan.
Lihat Sampel, tombol ini digunakan untuk menjalankan form detail sampel.
Hapus Aturan, tombol ini digunakan untuk menghapus aturan yang telah dipilih
Selesai, tombol ini digunakan untuk menyelesaikan pembuatan simulasi dan menyimpan aturan-aturan yang termasuk dalam simulasi ini.
Batal, digunakan untuk membatalkan aturan yang telah dihapus.
o Form Pengujian Aturan
Gambar 3.8 Desain Antarmuka Form Pengujian Aturan
Form pengujian aturan ini digunakan untuk menguji aturan-aturan dalam simulasi pada himpunan data tes dan menampilkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
informasi yang berupa persentase keberhasilan prediksi dan detail hasil simulasi yang berisi nomor simulasi, jumlah benar, jumlah salah dan jumlah yang tidak dapat diprediksi. Tombol-tombol yang ada dalam form ini yaitu :
Data Tes, digunakan untuk menampilkan tabel tes dan detail atribut keputusan pada tabel tes
Uji Aturan, tombol ini digunakan untuk menampilkan hasil uji yang terdapat pada atribut prediksi dan persentase keberhasilan prediksi serta menampilkan detail hasil simulasi yang dibuat.
Aturan-Aturan, digunakan untuk menampilkan aturan-aturan pada simulasi yang telah dibuat dengan menjalankan form aturan-aturan.
Pilih Simulasi, digunakan untuk memilih salah satu simulasi dimana aturan-aturan yang ada pada simulasi tersebut merupakan aturan-aturan yang paling sederhana dan akan melanjutkan ke Form aturan-aturan sederhana dan prediksi sampel.
Hapus Simulasi, digunakan untuk menhapus simulasi yang telah dibuat.
Buat Simulasi, tombol ini digunakan untuk menjalankan form simulasi dan pengujian aturan dimana pemakai program ingin membuat simulasi aturan dan melakukan pengujian aturan lagi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
o Form Detail Sampel
Gambar 3.9 Desain Antarmuka Form Detail Sampel
Form di atas digunakan untuk menampilkan informasi yang berisi tentang jumlah sampel masing-masing kejadian pada atribut keputusan dan detail sampelnya. o Form Aturan-Aturan
Gambar 3.10 Desain Antarmuka Form Aturan-Aturan
Form di atas digunakan untuk menampilkan aturan-aturan yang ada pada suatu simulasi yang telah dipilih.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
h. Form Aturan-Aturan Sederhana dan Prediksi Sampel o Form Aturan-Aturan Sederhana
Gambar 3.11 Desain Antarmuka Form Aturan-Aturan Sederhana
Form di atas digunakan untuk menampilkan aturan-aturan yang merupakan aturan paling sederhana. o Form Prediksi Sampel
Gambar 3.12 Desain Antarmuka Form Prediksi Sampel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
Form di atas digunakan untuk melakukan prediksi terhadap suatu sampel yaitu dengan memasukkan data yang ada pada kedua combo box dan menampilkan hasil prediksi. Tombol-tombol yang ada pada form ini yaitu :
Prediksi, digunakan untuk memprediksi suatu sampel
Hasil Prediksi, tombol ini digunakan untuk memprediksi sampel berdasarkan data yang telah dimasukkan dari kedua combo box dan menampilkan hasil prediksi berupa nomor aturan dan prediksinya.
Reset, tombol ini digunakan untuk mengganti keseluruhan nilai-nilai kejadian yang telah dipilih
Selesai, digunakan untuk mengakhiri ataupun menutup program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV IMPLEMENTASI PROGRAM A. Jalannya Program dan Pembahasannya
Program ini meminta masukan berupa himpunan data pelatihan yang digunakan untuk membuat pohon keputusan dan aturan-aturan serta himpunan data tes yang digunakan untuk menguji aturan-aturan yang telah dibuat. Dari pengujian tersebut dapat diketahui seberapa besar ketepatan prediksi dari aturan-aturan yang telah dibuat. Berikut ini merupakan penjabaran proses jalannya program. Pada saat program dijalankan, form yang pertama kali ditampilkan adalah form berikut ini :
Gambar 4.1 Form Menu dan Form Input Data Tabel
Pada form menu terdapat menu File, Window dan Help. Masingmasing menu memiliki fungsi sendiri-sendiri. Di dalam menu file terdapat
63
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
submenu-submenu yaitu Program Penambangan Data (menu untuk melakukan proses penentuan data) dan Keluar (menu untuk keluar dari program). Menu Window untuk menampilkan form yang aktif atau yang sudah ditampilkan. Menu Bantuan terdiri dari submenu Aturan yaitu menu untuk menampilkan aturan-aturan tentang himpunan data pelatihan dan himpunan data tes dan submenu Tentang Program Penambangan Data yaitu menu untuk menampilkan informasi tentang program ini. Untuk lebih jelasnya, lihat gambar berikut ini :
Gambar 4.2 Form Aturan Himpunan Tabel Pelatihan dan Tes
Gambar 4.3 Form Tentang Program Penambangan Data
Dalam
form input data tabel, pertama-tama pemakai program
diminta memilih tabel data pelatihan yang sudah ditampilkan dalam combo box pelatihan sewaktu form ini aktif dan memilih tabel data tes.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
Jika pemakai program belum memilih kedua tabel, maka program akan menampilkan kotak peringatan :
Gambar 4.4 Kotak Peringatan 1
Jika tabel data tes belum dipilih, maka program akan menampilkan kotak peringatan :
Gambar 4.5 Kotak Peringatan 2
Tombol Reset digunakan jika pemakai program ingin mengulang pemilihan tabel. Jika pemilihan tabel sudah selesai, maka untuk melanjutkan ke proses selanjutnya pengguna dapat menekan tombol OK. Tombol ini akan menampilkan form Data Tabel, dimana dalam form ini akan ditampilkan detail tabel data pelatihan dan tabel data tes yang telah dipilih sebelumnya. Pada program ini dipilih tabel training sebagai tabel data pelatihan dan tabel test sebagai tabel data tes. Di bawah ini merupakan form data tabel (Tabel Pelatihan) :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
Gambar 4.6 Form Data Tabel (Tabel Pelatihan)
Berikut ini merupakan form data tabel (Tabel Tes) :
Gambar 4.7 Form Data Tabel (Tabel Tes)
Jika pemakai program memilih tab control untuk Tabel Pelatihan, maka akan ditampilkan tabcontrol tabel pelatihan yang di dalamnya terdapat tombol tampil tabel. Jika tombol ini ditekan, maka informasi detail tabel akan ditampilkan. Informasi ini berisi tentang jumlah atibut, jumlah data, nama atribut keputusan, jumlah dan nama kejadian atribut
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
keputusan dan informasi tentang detail atribut yang lain beserta jumlah sampel setiap kejadian suatu atribut. Untuk menampilkan informasi tentang detail atribut yang lain, pemakai program dapat memilih nama atribut yang sudah ditampilkan di combo box. Informasi yang ada pada tabel tes sebagian besar sama dengan informasi yang ada pada tabel pelatihan. Yang membedakan adalah penambahan informasi tentang nama atribut hasil. Tombol Tampil Tabel juga akan mengaktifkan tombol Proses ID3 yang berguna untuk menampilkan form penentuan node awal. Berikut ini adalah form Penentuan Node Awal :
Gambar 4.8 Form Penentuan Node Awal
Jika tombol Cari Node Awal ditekan, maka proses pencarian node awal akan dilakukan. Proses ini memilih atribut dengan nilai gain paling besar sebagai node awalnya. Dalam form ini juga terdapat progressbar
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
yang berfungsi untuk menunjukkan bahwa proses penentuan node awal sedang berlangsung. Konstruksi programnya adalah sebagai berikut : entropi_awal = 0 For i = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 q1 = "select count(" & MDI_utama.field_akhir & ") from " & _ MDI_utama.tbl_training & " where " & MDI_utama.field_akhir & _ "='" & MDI_utama.temp_sq1_akhir.Rows(i).Item(0) & "'" Dim ambil_p As New MySqlDataAdapter(q1, konek) Dim temp As New DataTable ambil_p.Fill(temp) PA = temp.Rows(0).Item(0) / objDt.Rows.Count PAlog = Math.Log(PA, 2) ea_p = (-1 * (PA * PAlog)) entropi_awal = entropi_awal + ea_p Next
* Fungsi di atas adalah untuk mencari nilai entropi total dari atribut keputusan untuk keseluruhan data sample. atribut = 0 j = 0 Do While j <= tempfields.Rows.Count - 3 qkejadian = "select distinct(" & arrkej(j) & ") from " & MDI_utama.tbl_training & "" Dim ambil_kej As New MySqlDataAdapter(qkejadian, konek) Dim tempkej As New DataTable ambil_kej.Fill(tempkej) Dim total_akhir(tempkej.Rows.Count - 1), entropi(tempkej.Rows.Count - 1) As Double rt_entropi = 0 For i = 0 To tempkej.Rows.Count - 1 tot_akhir = 0 Dim jum_target(1) For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 q2 = "select count(*) from " & MDI_utama.tbl_training & " where (" MDI_utama.field_akhir & "='" & MDI_utama.temp_sq1_akhir.Rows(x).Item(0) & "' and " & arrkej(j) & "='" & tempkej.Rows(i).Item(0) & "')" Dim tot_entr1 As New MySqlDataAdapter(q2, konek) Dim qa1 As New DataTable tot_entr1.Fill(qa1) jum_target(x) = qa1.Rows(0).Item(0) tot_akhir = tot_akhir + jum_target(x) Next total_akhir(i) = tot_akhir etot_at = 0 For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 If jum_target(x) > 0 Then
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Ptot = jum_target(x) / tot_akhir logPtot = Math.Log((Ptot), 2) End If If jum_target(x) = 0 Then Ptot = 0 logPtot = 0 End If entrp = (-1 * (Ptot * logPtot)) etot_at = etot_at + entrp Next entropi(i) = etot_at rt_entropi = rt_entropi + ((total_akhir(i) / objDt.Rows.Count)* entropi(i)) Next gain = entropi_awal - rt_entropi gain_field(j) = gain gain = 0 j = j + 1 Loop
* Fungsi di atas adalah untuk menghitung nilai gain setiap atribut besar = gain_field(0) For i = 0 To tempfields.Rows.Count - 3 If besar <= gain_field(i) Then besar = gain_field(i) besar_i = i End If Next MDI_utama.node_awal = tempfields.Rows(besar_i + 1).Item(0) 'menyimpan atribut yang menjadi node awal gain_awal = gain_field(besar_i)
* Fungsi ini adalah untuk mencari nilai gain yang paling besar dan memilih atribut dengan nilai gain ini sebagai node awal. Tombol Cari Node Awal ini harus ditekan terlebih dahulu sebelum melanjutkan ke proses selanjutnya. Tombol ini juga akan mengaktifkan tombol Lanjut yaitu tombol untuk melanjutkan ke form pembuatan pohon. Tombol ini menjadi tidak aktif ketika hasil penentuan node awal sudah ditampilkan. Di bawah ini merupakan form Pembuatan Pohon :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Gambar 4.9 Form Pembuatan Pohon
Proses pembuatan pohon ini akan dilakukan ketika tombol Buat Pohon ditekan. Proses ini akan menampilkan informasi tentang nomor akar, tingkat pohon, no akar atasnya, node, cabang dan hasil pohon. Konstruksi program untuk pembuatan pohon dapat dilihat di lampiran. Pada konstruksi program tersebut proses yang dilakukan pertama adalah mencari kejadian-kejadian yang ada pada node awal, kemudian menyimpannya dalam array. Dalam program ini digunakan arrayList untuk menyimpan nomor akar, tingkat pohon, nomor akar atasnya, node, cabang dan hasil. Berikut ini pendeklarasian dari arrayList : Public no, tingkat_phn, noakaratas_phn, cabang_phn, _ hsl_phn As New ArrayList
node_phn,
Proses selanjutnya mencari sampel tiap cabang (kejadian) dari node awal tersebut. Dari pencarian tersebut dilakukan pengecekan homogenitasnya. Jika sampel homogen, maka program akan menyimpan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
kejadiannya sebagai hasil. Jika sampel tidak ada, maka program akan menyimpan kejadian paling banyak pada atribut keputusan sebagai hasil. Jika sampel masih heterogen, maka program akan mencari node lagi dan menyimpan sampel beserta nomor recordnya dalam arrayList sampel dan menyimpan node ini sebagai atribut yang tidak diikutkan dalam proses penentuan node selanjutnya. Jika sudah selesai, maka program akan melakukan
pengecekan
untuk
MDI_utama.hsl_phn(jfor) = "^^"
mencari
anak
cabang.
Jika
, maka program akan melakukan
proses pembuatan anak cabang. Pada proses ini juga terdapat proses penghitungan nilai gain untuk memperoleh atribut dengan nilai gain terbesar. Proses selengkapnya dapat dilihat dalam konstruksi programnya di lampiran. Selama proses pembuatan pohon dilakukan, program akan menampilkan progress bar yang berfungsi sebagai indikator untuk mengetahui proses pembuatan pohon sedang berlangsung. Berikut ini progress bar tersebut :
Gambar 4.10 Progress Bar Proses Pembuatan Pohon
Jika dilakukan double klik pada salah satu cabang yang mempunyai hasil = “^^”, maka program akan menunjukkan anak cabangnya. Jika hasil tidak sama dengan “^^”, maka program akan menampilkan kotak pesan :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
Gambar 4.11 Kotak Pesan 1
Ketika tabel pohon ditampilkan dalam datagridview, maka tombol Buat Pohon menjadi tidak aktif sedangkan tombol Lanjut menjadi aktif. Jika tombol Lanjut ditekan, maka
form Unpruned Aturan akan
ditampilkan. Berikut ini form Unpruned Aturan tersebut :
Gambar 4.12 Form Unpruned Aturan
Proses unpruned aturan dilakukan jika tombol Unpruned ditekan. Proses ini dimulai dari indeks yang sudah pasti tidak ada anak cabangnya yaitu indeks yang terbesar sehingga program akan mencari indeks akar atasnya saja. Selanjutnya dilakukan pengecekan apakah hasil sama dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
“^^”. Jika tidak, maka program akan menyimpan aturan dengan hasil sebagai
konsekuennya
sedangkan
atribut
dan
cabang
sebagai
antesedennya. Anteseden-anteseden akan terus dicari sampai akar paling atas atau indeks akar bernilai 0. untuk lebih jelasnya, berikut ini konstruksi programnya : '*********fungsi untuk mencari rule*********** 'menyimpan nomor rule no_rule = 0 'menyimpan anteseden MDI_utama.i_rule = -1 'indeks rule MDI_utama.i_prediksi = -1 'indeks data sampel i_dtSampel = -1 'dimulai dari indeks pohon paling besar Dim awal = MDI_utama.indx_phn Dim xyz, q As Integer Do While awal >= 0 Dim hasilX = MDI_utama.hsl_phn(awal) Dim i_akar = MDI_utama.noakaratas_phn(awal) Dim jml_Sampel = MDI_utama.sampelsisa_phn(awal) If hasilX = "^^" Then Else If i_akar > 0 Then 'jika belum mrpk akar plg atas 'menyimpan rule no_rule = no_rule + 1 MDI_utama.i_prediksi = MDI_utama.i_prediksi + 1 prediksi_A.Insert(MDI_utama.i_prediksi, no_rule) prediksi_B.Insert(MDI_utama.i_prediksi, hasilX) prediksi_C.Insert(MDI_utama.i_prediksi, jml_Sampel) 'mencari atribut & cabang yg akan mjd anteseden 'sampai akar plg atas Dim i_Phn = awal Do While i_akar > 0 'menyimpan anteseden2 MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, _ MDI_utama.node_phn(i_Phn)) rule_C.Insert(MDI_utama.i_rule, _ MDI_utama.cabang_phn(i_Phn)) xyz = i_akar 'menentukan akar atasnya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
i_akar = MDI_utama.noakaratas_phn(xyz) i_Phn = xyz Loop 'menyimpan anteseden2 'yg mrpk atributakar plg atas MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, _ MDI_utama.node_phn(xyz)) rule_C.Insert(MDI_utama.i_rule, _ MDI_utama.cabang_phn(xyz)) Else 'jika sudah mrpk akar plg atas 'menyimpan rule no_rule = no_rule + 1 MDI_utama.i_prediksi = MDI_utama.i_prediksi + 1 prediksi_A.Insert(MDI_utama.i_prediksi, no_rule) prediksi_B.Insert(MDI_utama.i_prediksi, hasilX) prediksi_C.Insert(MDI_utama.i_prediksi, jml_Sampel) 'menyimpan anteseden MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, _ MDI_utama.node_phn(awal)) rule_C.Insert(MDI_utama.i_rule, _ MDI_utama.cabang_phn(awal)) End If 'menyimpan data sampel u/ suatu rule Dim sdsdsd = MDI_utama.indx_sampel2 For q = 0 To MDI_utama.indx_sampel2 If awal = MDI_utama.sampel2_A(q) Then i_dtSampel = i_dtSampel + 1 MDI_utama.dt_sampel_A.Insert(i_dtSampel, _ prediksi_A(MDI_utama.i_prediksi)) MDI_utama.dt_sampel_B.Insert(i_dtSampel, _ MDI_utama.sampel2_B(q)) End If Next End If awal = awal - 1 Loop '*********************************************
*Fungsi di atas adalah untuk mencari aturan dari tabel pohon yang telah dibuat sebelumnya Selama proses unpruned aturan berlangsung, program akan menampilkan status progress bar :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
Gambar 4.13 Status Progress Bar Unpruned Aturan
Pada saat hasil proses unpruned aturan ditampilkan, maka tombol Unpruned menjadi tidak aktif dan tombol Lanjut menjadi aktif. Proses akan dilanjutkan dengan menekan tombol Lanjut dan form Aturan Default akan ditampilkan. Berikut ini form Aturan Default:
Gambar 4.14 Form Aturan Default
Pada form tersebut proses pembuatan aturan default dapat dilakukan dengan menekan tombol aturan default. Jika pemakai program menekan tombol ini, maka program akan menampilkan kotak pesan yang berisi konsekuen paling banyak yaitu :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
Gambar 4.15 Kotak Pesan 2
Jika memilih tombol ‘Yes’, maka aturan-aturan dengan konsekuen tersebut akan dieliminasi atau dengan kata lain dijadikan aturan default. Jika memilih tombol ‘No’, maka aturan-aturan dengan konsekuen tersebut tidak dieliminasi. Aturan-aturan dapat ditampilkan dengan memilih konsekuen yang ada pada combo box klasifikasi. Jika konsekuen yang dipilih merupakan konsekuen yang menjadi aturan default, maka akan ditampilkan kotak pesan :
Gambar 4.16 Kotak Pesan 3
Untuk melanjutkan ke proses selanjutnya, maka pengguna program dapat menekan tombol Lanjut. Tombol ini akan menampilkan form Simulasi dan Pengujian Aturan. Dalam form ini, yang pertama kali ditampilkan adalah form simulasi :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Gambar 4.17 Form Simulasi
Pada form di atas proses pembuatan simulasi dapat dilakukan dengan menekan tombol Buat Simulasi. Proses pembuatan simulasi merupakan proses dimana pengguna dapat membuat variasi simulasi aturan. Proses ini dilakukan dengan cara menghapus aturan yang tidak diinginkan. Simulasi yang terbentuk memberikan hasil persentase keberhasilan prediksi yang bervariasi, sesuai dengan aturan-aturan yang dihapus sebelumnya. Jika tombol Buat Simulasi ditekan maka, akan memunculkan tombol Pengujian Aturan, Lihat Sampel, Hapus Sampel dan Selesai. Untuk lebih jelasnya dapat melihat gambar di bawah ini :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
Gambar 4.18 Form Simulasi Setelah Tombol Buat Simulasi diklik
Tombol Lihat Sampel ditekan akan menampilkan form Detail Sampel (lihat gambar di bawah)
Gambar 4.19 Form Detail Sampel
Tombol Hapus Aturan ditekan, maka aturan yang terseleksi akan dihapus dan ditampilkan pada tabel Aturan yang Dihapus. Tombol Selesai ditekan, maka akan ditampilkan kotak pesan :
Gambar 4.20 Kotak Pesan 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
Jika memilih tombol ‘Yes’, maka proses pembuatan simulasi telah selesai dan akan menampilkan tombol Pengujian Aturan. Jika memilih tombol ‘No’, maka akan kembali ke proses sebelumnya. Ada dua pilihan dalam proses ini, yaitu program memberikan fasilitas untuk melakukan penghapusan terhadap aturan-aturan sederhana yang tidak diinginkan, kemudian melakukan pengujian aturan atau langsung melakukan pengujian aturan terhadap himpunan data tes. Jika langsung melakukan pengujian aturan, maka dapat menekan tombol Pengujian Aturan. Tombol ini akan menampilkan form selanjutnya, yaitu form Pengujian Aturan. Berikut ini form Pengujian Aturan :
Gambar 4.21 Form Pengujian Aturan
Pada form tersebut, tombol Data Test digunakan untuk menampilkan tabel tes dan detail atribut keputusan pada tabel tes. Pengguna dapat melakukan pengujian aturan dengan menekan tombol Uji Aturan. Program akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
menyimpan hasil pengujian aturan dan menampilkan hasil prediksi pada tabel Pengujian Aturan beserta persentase keberhasilan prediksi. Program juga akan menampilkan Hasil Simulasi. Untuk lebih jelasnya dapat dilihat gambar di bawah ini :
Gambar 4.22 Form Pengujian Aturan Setelah Tombol Uji Aturan diklik
Pada tabel Hasil Simulasi terdapat tombol Aturan-Aturan, Pilih Simulasi, Hapus Simulasi dan Buat Simulasi. Untuk melihat aturanaturan yang ada pada suatu simulasi tekan tombol Aturan-Aturan (lihat gambar di bawah ini).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
Gambar 4.23 Form Detail Simulasi Aturan
Untuk membuat simulasi lagi tekan tombol Buat Simulasi. Tekan tombol Hapus Simulasi untuk menghapus simulasi yang diinginkan dan menampilkan kotak pesan sebagai berikut :
Gambar 4.24 Kotak Pesan 5
Jika memilih tombol ‘Yes’, maka simulasi yang dipilih akan dihapus. Jika memilih tombol ‘No’, maka akan kembali ke proses sebelumnya. Tekan tombol Pilih Simulasi untuk memilih simulasi yang diinginkan dan menampilkan kotak pesan :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
Gambar 4.25 Kotak Pesan 6
Jika memilih tombol ‘Yes’, maka akan dilanjutkan ke form Aturan-Aturan Sederhana dan Prediksi Sampel. Jika memilih tombol ‘No’, maka akan kembali ke proses sebelumnya. Berikut ini form Aturan-Aturan Sederhana:
Gambar 4.26 Form Aturan-Aturan Sederhana
Form
di atas untuk mengetahui aturan-aturan yang paling sederhana
berdasarkan simulasi yang telah dipilih sebelumnya. Untuk melakukan prediksi terhadap suatu sampel, tekan tab control Prediksi Sampel (lihat gambar di bawah).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
Gambar 4.27 Form Prediksi Sampel
Untuk melakukan prediksi suatu sampel tekan tombol prediksi, maka combo box Nama Atribut akan aktif. Pemakai program dapat memilih atribut dari combo box tersebut. Setelah atribut dipilih maka combo box Nama Kejadian akan aktif. Combo box ini akan menampilkan nama-nama kejadian sesuai atribut yang dipilih sebelumnya. Proses ini dilakukan terus sampai nama atribut habis. Tombol Reset digunakan jika pengguna ingin mengulang pemilihan atribut yang sebelumnya telah dimasukkan. Kemudian tekan tombol Hasil Prediksi untuk menampilkan hasil prediksi berdasarkan nama-nama atribut dan kejadian yang telah dimasukan (lihat gambar di bawah).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
Gambar 4.28 Form Prediksi Sampel Setelah Proses Prediksi
Tekan tombol Prediksi untuk melakukan prediksi lagi dan tekan tombol Selesai untuk keluar dari program.
B. Analisa Hasil Program
Untuk menganalisa hasil program, penulis melakukan pengujian menggunakan metode cross-validation (Witten & Frank, 2005:149). Metode ini membagi data keseluruhan menjadi beberapa partisi. Pendekatan yang dilakukan menggunakan fivefold cross-validation, yaitu membagi sampel data menjadi lima partisi dengan jumlah data masingmasing partisi sama banyak. Setiap partisi menjadi himpunan data tes dan partisi yang lain menjadi himpunan data pelatihan. Misalkan partisi 1 sebagai himpunan data tes, maka partisi 2, 3, 4 dan 5 menjadi himpunan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
data pelatihan. Langkah ini diulangi sampai setiap partisi digunakan tepat satu kali sebagai himpunan data tes. Dalam pengujian ini sampel data yang digunakan sebanyak 1400 record. Masing-masing partisi mempunyai sampel data sebanyak 280 record Berikut ini merupakan pengujian cross-validation: •
Pengujian I Data pelatihan adalah partisi ke 2, 3, 4, 5 sedangkan data tes merupakan partisi ke 1. Berikut confusion matrix yang terbentuk : Tabel 4.1 Confusion Matrix Pengujian I
Kelas Daftar Ulang Sebenarnya Tidak DU Total •
Kelas Prediksi Daftar Ulang Tidak DU 134 40 61 45 195 85
Total 174 106
Pengujian II Data pelatihan adalah partisi ke 1, 3, 4, 5 sedangkan data tes merupakan partisi ke 2. Berikut confusion matrix yang terbentuk : Tabel 4.2 Confusion Matrix Pengujian II
Kelas Daftar Ulang Sebenarnya Tidak DU Total •
Kelas Prediksi Daftar Ulang Tidak DU 135 47 56 42 191 89
Total 182 98
Pengujian III Data pelatihan adalah partisi ke 1, 2, 4, 5 sedangkan data tes merupakan partisi ke 3. Berikut confusion matrix yang terbentuk :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
Tabel 4.3 Confusion Matrix Pengujian III
Kelas Daftar Ulang Sebenarnya Tidak DU Total •
Kelas Prediksi Daftar Ulang Tidak DU 125 45 57 53 182 98
Total 170 101
Pengujian IV Data pelatihan adalah partisi ke 1, 2, 3, 5 sedangkan data tes merupakan partisi ke 4. Berikut confusion matrix yang terbentuk : Tabel 4.4 Confusion Matrix Pengujian IV
Kelas Daftar Ulang Sebenarnya Tidak DU Total •
Kelas Prediksi Daftar Ulang Tidak DU 122 43 71 44 193 87
Total 165 115
Pengujian V Data pelatihan adalah partisi ke 1, 2, 3, 4 sedangkan data tes merupakan partisi ke 5. Berikut confusion matrix yang terbentuk : Tabel 4.5 Confusion Matrix Pengujian V
Kelas Daftar Ulang Sebenarnya Tidak DU Total
Kelas Prediksi Daftar Ulang Tidak DU 121 55 62 42 183 97
Total 176 104
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
Berikut ini merupakan tabel dari pengujian-pengujian di atas : Tabel 4.6 Pengujian Cross-validation Pengujian
I II III IV V Total
Data Pelatihan 2, 3, 4, 5 1, 3, 4, 5 1, 2, 4, 5 1, 2, 3, 5 1, 2, 3, 4
Data Tes
1 2 3 4 5
Jumlah Benar 179 177 178 166 163 863
Jumlah Salah 101 103 102 114 117 537
Dari tabel di atas, jumlah data pengujian yang benar untuk keseluruhan pengujian sebanyak 863 record dan jumlah data pengujian yang salah sebanyak 537 record sehingga persentase keberhasilan prediksi yang didapat sebesar,
863 × 100% = 61.64% . 1400
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V KESIMPULAN DAN SARAN
C. Kesimpulan
Kesimpulan yang dapat diperoleh sebagai hasil dari penyelesaian tugas akhir ini adalah : Pengujian menggunakan metode fivefold cross-validation dengan jumlah data sebanyak 1400 sampel dapat memprediksi mahasiswa yang tidak melakukan daftar ulang dengan tingkat keberhasilan prediksi sebesar 61.64 %
D. Saran
Berangkat dari hasil analisa tugas akhir, penulis memberikan saran untuk perbaikan dan pengembangan program lebih lanjut, antara lain : 1)
Program tidak melakukan uji independensi karena ukuran matrik untuk tabel kontingensi terlalu besar. Untuk itu program dapat dikembangkan lagi agar dapat menangani ukuran matrik yang besar sehingga uji independensi dapat dilakukan.
2)
Karena lamanya waktu proses pembuatan pohon maka program dapat dikembangkan untuk memberikan fasilitas penyimpanan aturan-aturan yang telah terbentuk, sehingga
88
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
aturan-aturan ini dapat diujikan pada himpunan data tes yang lain tanpa perlu mengulangi proses dari awal. 3)
Program dapat dikembangkan untuk menangani data yang bertipe numerik secara langsung tanpa perlu mengubahnya menjadi data yang bertipe string terlebih dahulu, misalnya menggunakan metode C4.5 (Daniel, 2005).
4)
Pemilihan atribut tidak ditentukan secara intuitif namun menggunakan feature analysis sehingga akurasi keberhasilan dapat ditingkatkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
Dzeroski, Saso & Lavrac, Nada. Relational Data Mining. Berlin: Springer. 2001 Fayyad, Usama & Shapiro, Gregory Piatetsky & Smyth, Padhraic. From Data Mining to Knowledge Discovery in Databases. http:// www.kdnuggets.com/gpspubs/aimag-kdd-overview-1996-Fayyad.pdf Groth, Robert. Data Mining: A Hands-on Approach for Business Professionals. New Jersey: Prentice Hall PTR. 1998 Hamilton, Howard & Gurak, Ergun & Findlander, Leah & Olive, Wayne. Overview of Decision Trees. http://www2.cs.uregina.ca/~hamilton/courses/831/notes/ml/dtrees/4_dtrees1. html Hamilton, Howard & Gurak, Ergun & Findlander, Leah & Olive, Wayne. Decision Tree Contruction. http://www2.cs.uregina.ca/~hamilton/courses/831/notes/ml/dtrees/4_dtrees2. html.2000 Hamilton, Howard & Gurak, Ergun & Findlander, Leah & Olive, Wayne. Decision Tree Rules & Pruning. http://www2.cs.uregina.ca/~hamilton/courses/831/notes/ml/dtrees/4_dtrees3. html. Han, Jiawei. & Kamber, Micheline. Data Mining: Concepts And Techniques. http://www.cs.sfu.ca/~han/dmbook Larose, Daniel T. Discovering Knowledge in Data: An Introduction to Data Mining. Canada: Wiley-Interscience. 2005 Mitra, Sushmita & Acharya, Tinku. Data Mining: Multimedia, Soft Computing, and Bioinformatics. Canada: Wiley-Interscience. 2003
90
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
Rosa, Paulina H.Prima. (2003, 7 Mei). Data Mining: Pemaknaan Data Secara Komprehensif. Makalah “Seminar Rumpun MIPA Universitas Sanata Dharma Yogyakarta”. Sucahyo, Yudho Giri, Data Mining Menggali Informasi yang Terpendam. http://ilmukomputer.com/populer/yudho-datamining.php.2003 Sucahyo, Yudho Giri, Penerapan Data Mining: Permasalahan Apa Saja yang Bisa Diselesaikan. http://ilmukomputer.com/populer/yudho-datamining.php.2003 Witen, Ian H. & Frank, Eibe. Data Mining: Practical Machine Learning Tools and Techniques. California: Morgan Kaufmann Publishers. 2005 Witen, Ian H. & Frank, Eibe. Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. California: Morgan Kaufmann Publishers. 2000 http://www.cs.sfu.ca/~han/bk/7class.ppt
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN Listing Program Pembuatan Pohon : '******membuat cabang pada node awal******* tingkat = 1 MDI_utama.indx_phn = -1 indx_sampel = -1 indx_attr = -1 MDI_utama.indx_sampel2 = -1 Dim kejdo, akhir, total_jum_target, no_kejadian As Integer Dim jum_target_akhir(1) 'mencari total kejadian pd node awal Dim qr2 As String 'mencari kejadian2 yang ada pada node awal qr2 = "select distinct(" & MDI_utama.node_awal & ") from " & MDI_utama.tbl_training & "" Dim ambil_qr2 As New MySqlDataAdapter(qr2, konek) Dim temp_qr2 As New DataTable ambil_qr2.Fill(temp_qr2) kejdo = 0 nmr_phn = 0 Do While kejdo <= temp_qr2.Rows.Count - 1 MDI_utama.indx_phn = MDI_utama.indx_phn + 1 nmr_phn = nmr_phn + 1 'menyimpan nomor no_phn.Insert(MDI_utama.indx_phn, nmr_phn) 'menyimpan tingkat tingkat_phn.Insert(MDI_utama.indx_phn, tingkat) 'menyimpan node MDI_utama.node_phn.Insert(MDI_utama.indx_phn, MDI_utama.node_awal) 'menyimpan cabang MDI_utama.cabang_phn.Insert(MDI_utama.indx_phn, temp_qr2.Rows(MDI_utama.indx_phn).Item(0)) total_jum_target = 0 Dim qr3 As String For akhir = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 qr3 = "select count(*) from " & MDI_utama.tbl_training & " where " & MDI_utama.node_awal & " = '" & temp_qr2.Rows(kejdo).Item(0) & "' and status = '" & MDI_utama.temp_sq1_akhir.Rows(akhir).Item(0) & "'" Dim ambil_qr3 As New MySqlDataAdapter(qr3, konek) Dim temp_qr3 As New DataTable ambil_qr3.Fill(temp_qr3) jum_target_akhir(akhir) = temp_qr3.Rows(0).Item(0) total_jum_target = total_jum_target + jum_target_akhir(akhir) Next
92
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
'cek homogenitasnya Dim jum_nol = 0 Dim jum_tak_nol = 0 For akhir = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 If jum_target_akhir(akhir) = 0 Then jum_nol = jum_nol + 1 End If If jum_target_akhir(akhir) > 0 Then jum_tak_nol = jum_tak_nol + 1 no_kejadian = akhir End If Next If jum_nol = MDI_utama.temp_sq1_akhir.Rows.Count Then '*******jika sampel tidak ada******* 'jumlah sampel sisa MDI_utama.sampelsisa_phn.Insert(MDI_utama.indx_phn, 0) 'menyimpan hasil MDI_utama.hsl_phn.Insert(MDI_utama.indx_phn, MDI_utama.kej_jum_max) ElseIf jum_tak_nol = 1 Then '****jika sampel homogen*** '---menyimpan hasil--MDI_utama.hsl_phn.Insert(MDI_utama.indx_phn, MDI_utama.temp_sq1_akhir.Rows(no_kejadian).Item(0)) '---menyimpan jumlah sampel tersisa MDI_utama.sampelsisa_phn.Insert(MDI_utama.indx_phn, jum_target_akhir(no_kejadian)) '---Mencari Sampel--'::mencari jumlah sampel:: Dim qr5 As String '::mencari nomor record:: qr5 = "select no from " & MDI_utama.tbl_training & " where "_ & MDI_utama.node_awal & "= '" & temp_qr2.Rows(kejdo).Item(0) & "'" Dim ambil_qr5 As New MySqlDataAdapter(qr5, konek) Dim temp_qr5 As New DataTable ambil_qr5.Fill(temp_qr5) 'menyimpan data sampel Dim sfor As Integer For sfor = 0 To temp_qr5.Rows.Count - 1 MDI_utama.indx_sampel2 = MDI_utama.indx_sampel2 + 1 MDI_utama.sampel2_A.Insert(MDI_utama.indx_sampel2, MDI_utama.indx_phn) MDI_utama.sampel2_B.Insert(MDI_utama.indx_sampel2, temp_qr5.Rows(sfor).Item(0)) Next Else '***jika sampel masih heterogen dan sampel tidak kosong*** 'menyimpan hasil MDI_utama.hsl_phn.Insert(MDI_utama.indx_phn, "^^")
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
'menyimpan jumlah sampel tersisa MDI_utama.sampelsisa_phn.Insert(MDI_utama.indx_phn, -1) Dim qr5 As String '::mencari nomor record:: qr5 = "select no from " & MDI_utama.tbl_training & " where "_ & MDI_utama.node_awal & "= '" & temp_qr2.Rows(kejdo).Item(0) & "'" Dim ambil_qr5 As New MySqlDataAdapter(qr5, konek) Dim temp_qr5 As New DataTable ambil_qr5.Fill(temp_qr5) 'menyimpan data sampel Dim sfor As Integer For sfor = 0 To temp_qr5.Rows.Count - 1 indx_sampel = indx_sampel + 1 sampel_A.Insert(indx_sampel, MDI_utama.indx_phn) sampel_B.Insert(indx_sampel, temp_qr5.Rows(sfor).Item(0)) Next 'mencari atribut tdk ikut proses penghitungan gain indx_attr = indx_attr + 1 attr_g_ikut1.Insert(indx_attr, MDI_utama.indx_phn) attr_g_ikut2.Insert(indx_attr, MDI_utama.node_awal) End If 'menyimpan indeks akar atasnya MDI_utama.noakaratas_phn.Insert(MDI_utama.indx_phn, 0) 'akar paling atas kejdo = kejdo + 1 Loop 'memanggil function cek() fcek() ProgressBar1.Value = 95 'menampilkan(pohon) Dim tfor As Integer For tfor = 0 To MDI_utama.indx_phn grid_phn.Rows.Add() grid_phn.Rows(tfor).Cells(0).Value grid_phn.Rows(tfor).Cells(1).Value grid_phn.Rows(tfor).Cells(2).Value MDI_utama.noakaratas_phn(tfor) grid_phn.Rows(tfor).Cells(3).Value grid_phn.Rows(tfor).Cells(4).Value grid_phn.Rows(tfor).Cells(5).Value Next ProgressBar1.Value = 100 ProgressBar1.Visible = False
= no_phn.Item(tfor) = tingkat_phn(tfor) = = MDI_utama.node_phn(tfor) = MDI_utama.cabang_phn(tfor) = MDI_utama.hsl_phn(tfor)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
Public Function fcek() '********function untuk mencari anak cabang (jika ada)******** Dim afor, jfor, x, xfor, jml_phn, nx, no_fields, calc As Integer Dim nilai_etr, tot_akhir2, etot_at, entrp, Ptot, logPtot, _ etot_at2, entrp2, Ptot2, logPtot2, rt_entropi, gainS As Double Dim node1, sqr2, sqr3, sqr4 As String jfor = 0 jml_phn = MDI_utama.indx_phn 'menyimpan atribut Dim qr_kolom = "show fields from " & MDI_utama.tbl_training & "" Dim ambil_qr_kolom As New MySqlDataAdapter(qr_kolom, konek) Dim temp_qr_kolom As New DataTable ambil_qr_kolom.Fill(temp_qr_kolom) Dim arr_kolom_ikut(temp_qr_kolom.Rows.Count - 3) As String For afor = 0 To temp_qr_kolom.Rows.Count - 3 arr_kolom_ikut(afor) = temp_qr_kolom.Rows(afor + 1).Item(0) Next Do While jfor <= jml_phn If MDI_utama.hsl_phn(jfor) = "^^" Then 'jika mempunyai anak cabang Dim indxs_pohon = jfor 'mencari node selanjutnya(sebagai anak cabang) Dim jml_atribut_ikut = MDI_utama.jml_atribut tingkat_phn(indxs_pohon) '---mencari nilai gain--Dim N_gainS(jml_atribut_ikut - 1, 1) As String Dim noNilai_etr = -1 nx = 0 Dim jum_target(1) Do While nx < MDI_utama.jml_atribut Dim ikut = 0 For no_fields = 0 To indx_attr If attr_g_ikut1(no_fields) = indxs_pohon Then If (arr_kolom_ikut(nx)) = (attr_g_ikut2(no_fields)) Then ikut = ikut + 1 End If End If Next If ikut = 0 Then noNilai_etr = noNilai_etr + 1 N_gainS(noNilai_etr, 0) = arr_kolom_ikut(nx) 'mencariEntropiPada atribut temp_qr_kolom.Rows(nx).Item(0) rt_entropi = 0 nilai_etr = 0 sqr2 = "select distinct(" & arr_kolom_ikut(nx) & ") from " & MDI_utama.tbl_training & "" Dim ambil_sqr2 As New MySqlDataAdapter(sqr2, konek) Dim temp_sqr2 As New DataTable ambil_sqr2.Fill(temp_sqr2) Dim re = 0 Dim jum_target2(1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
Do While re <= temp_sqr2.Rows.Count - 1 For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 jum_target(x) = 0 jum_target2(x) = 0 Next Dim tot_record = 0 sqr3 = "select no," & MDI_utama.field_akhir & " from " & MDI_utama.tbl_training & " where " _ & arr_kolom_ikut(nx) & "='" & temp_sqr2.Rows(re).Item(0) & "'" Dim ambil_sqr3 As New MySqlDataAdapter(sqr3, konek) Dim temp_sqr3 As New DataTable ambil_sqr3.Fill(temp_sqr3) sqr4 = "select no," & MDI_utama.field_akhir & " from " & MDI_utama.tbl_training & "" Dim ambil_sqr4 As New MySqlDataAdapter(sqr4, konek) Dim temp_sqr4 As New DataTable ambil_sqr4.Fill(temp_sqr4) tot_akhir2 = 0 calc = 0 Dim no_indx, no_indx2 As Integer Do While calc <= indx_sampel If sampel_A(calc) = indxs_pohon Then tot_record = tot_record + 1 'untuk mencari jumlah (+) dan (-) pada cabang For no_indx2 = 0 To temp_sqr4.Rows.Count - 1 Dim noMhs2 = temp_sqr4.Rows(no_indx2).Item(0) Dim at_target2 = temp_sqr4.Rows(no_indx2).Item(1) If sampel_B(calc) = noMhs2 Then For xfor=0 To MDI_utama.temp_sq1_akhir.Rows.Count-1 If at_target2 = MDI_utama.temp_sq1_akhir.Rows(xfor).Item(0) Then jum_target2(xfor) = jum_target2(xfor) + 1 End If Next End If Next 'mencari (+) dan (-) tiap kejadian pada atribut For no_indx = 0 To temp_sqr3.Rows.Count - 1 Dim noMhs = temp_sqr3.Rows(no_indx).Item(0) Dim at_target = temp_sqr3.Rows(no_indx).Item(1) If sampel_B(calc) = noMhs Then tot_akhir2 = tot_akhir2 + 1 For x=0 To MDI_utama.temp_sq1_akhir.Rows.Count-1 If at_target = MDI_utama.temp_sq1_akhir.Rows(x).Item(0) Then jum_target(x) = jum_target(x) + 1 End If Next End If Next
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
End If calc = calc + 1 Loop 'hitung entropi awal etot_at2 = 0 For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 If jum_target2(x) > 0 Then Ptot2 = jum_target2(x) / tot_record logPtot2 = Math.Log((Ptot2), 2) End If If jum_target2(x) = 0 Then Ptot2 = 0 logPtot2 = 0 End If entrp2 = (-1 * (Ptot2 * logPtot2)) etot_at2 = etot_at2 + entrp2 Next 'hitung rata-rata entropi tiap atribut etot_at = 0 For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 If jum_target(x) > 0 Then Ptot = jum_target(x) / tot_akhir2 logPtot = Math.Log((Ptot), 2) End If If jum_target(x) = 0 Then Ptot = 0 logPtot = 0 End If entrp = (-1 * (Ptot * logPtot)) etot_at = etot_at + entrp Next rt_entropi=rt_entropi+((tot_akhir2/tot_record)* etot_at) re = re + 1 Loop gainS = etot_at2 - rt_entropi N_gainS(noNilai_etr, 1) = gainS gainS = 0 End If nx = nx + 1 Loop 'mencari nilai gain paling besar sebagai node selanjutnya '================================================= Dim i, besar_indk As Integer Dim Attr_besar = N_gainS(0, 1) For i = 0 To jml_atribut_ikut - 1 If Attr_besar <= N_gainS(i, 1) Then Attr_besar = N_gainS(i, 1) besar_indk = i End If Next node1 = N_gainS(besar_indk, 0)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
'********Buat cabang pada node1*********** 'mencari kejadian-kejadian pada node1 Dim sqr_n1, sqr_n2 As String Dim tt As Integer sqr_n1 = "select distinct(" & node1 & ") from " & MDI_utama.tbl_training & "" Dim ambil_sqr_n1 As New MySqlDataAdapter(sqr_n1, konek) Dim temp_sqr_n1 As New DataTable ambil_sqr_n1.Fill(temp_sqr_n1) Dim jum_sampel = indx_sampel Dim jum_attr = indx_attr tt = 0 Do While tt <= temp_sqr_n1.Rows.Count - 1 MDI_utama.indx_phn = MDI_utama.indx_phn + 1 nmr_phn = nmr_phn + 1 'menyimpan no pohon no_phn.Insert(MDI_utama.indx_phn, nmr_phn) 'menyimpan tingkat tingkat_phn.Insert(MDI_utama.indx_phn, tingkat_phn(indxs_pohon) + 1) 'menyimpan node MDI_utama.node_phn.Insert(MDI_utama.indx_phn, node1) 'menyimpan cabang MDI_utama.cabang_phn.Insert(MDI_utama.indx_phn, temp_sqr_n1.Rows(tt).Item(0)) sqr_n2 = "select no, " & MDI_utama.field_akhir & " from " & MDI_utama.tbl_training _ & " where " & node1 & "='" & temp_sqr_n1.Rows(tt).Item(0) & "'" Dim ambil_sqr_n2 As New MySqlDataAdapter(sqr_n2, konek) Dim temp_sqr_n2 As New DataTable ambil_sqr_n2.Fill(temp_sqr_n2) For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 jum_target(x) = 0 Next 'mencari jumlah kejadian -kejadian pada field akhir Dim tq = 0 Dim kk As Integer Do While tq <= temp_sqr_n2.Rows.Count - 1 Dim nobaru = temp_sqr_n2.Rows(tq).Item(0) For kk = 0 To jum_sampel If sampel_A(kk) = indxs_pohon And sampel_B(kk) = nobaru Then Dim hsl = temp_sqr_n2.Rows(tq).Item(1) For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 If hsl=MDI_utama.temp_sq1_akhir.Rows(x).Item(0) Then jum_target(x) = jum_target(x) + 1 End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
99
Next End If Next tq = tq + 1 Loop 'cek homogenitasnya Dim jum_nol = 0 Dim jum_tak_nol = 0 Dim akhir, no_kejadian As Integer For akhir = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 If jum_target(akhir) = 0 Then jum_nol = jum_nol + 1 End If If jum_target(akhir) > 0 Then jum_tak_nol = jum_tak_nol + 1 no_kejadian = akhir End If Next If jum_nol = MDI_utama.temp_sq1_akhir.Rows.Count Then '*******jika sampel tidak ada******* 'jumlah sampel sisa MDI_utama.sampelsisa_phn.Insert(MDI_utama.indx_phn, 0) 'menyimpan hasil MDI_utama.hsl_phn.Insert(MDI_utama.indx_phn, MDI_utama.kej_jum_max) ElseIf jum_tak_nol = 1 Then '****jika sampel homogen*** '---menyimpan hasil--MDI_utama.hsl_phn.Insert(MDI_utama.indx_phn, MDI_utama.temp_sq1_akhir.Rows(no_kejadian).Item(0)) '---menyimpan jumlah sampel tersisa MDI_utama.sampelsisa_phn.Insert(MDI_utama.indx_phn, jum_target(no_kejadian))
'menyimpan data sampel berupa nomor record Dim aa = 0, bb As Integer Do While aa <= temp_sqr_n2.Rows.Count - 1 Dim nobaru = temp_sqr_n2.Rows(aa).Item(0) For bb = 0 To jum_sampel If sampel_A(bb) = indxs_pohon Then If sampel_B(bb) = nobaru Then MDI_utama.indx_sampel2 = MDI_utama.indx_sampel2 + 1 MDI_utama.sampel2_A.Insert(MDI_utama.indx_sampel2, MDI_utama.indx_phn) MDI_utama.sampel2_B.Insert(MDI_utama.indx_sampel2, nobaru) End If End If Next aa = aa + 1 Loop
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
100
Else '***jika sampel masih heterogen dan sampel tidak kosong*** If tingkat_phn(MDI_utama.indx_phn) < MDI_utama.jml_atribut Then '--jika atribut masih ada-‘menyimpan hasil MDI_utama.hsl_phn.Insert(MDI_utama.indx_phn, "^^") 'menyimpan jumlah sampel tersisa MDI_utama.sampelsisa_phn.Insert(MDI_utama.indx_phn, -1)
'***Mencari Sampel*** Dim aa = 0, bb, ss As Integer Do While aa <= temp_sqr_n2.Rows.Count - 1 Dim nobaru = temp_sqr_n2.Rows(aa).Item(0) For bb = 0 To jum_sampel If sampel_A(bb) = indxs_pohon Then If sampel_B(bb) = nobaru Then indx_sampel = indx_sampel + 1 sampel_A.Insert(indx_sampel, MDI_utama.indx_phn) sampel_B.Insert(indx_sampel, nobaru) End If End If Next aa = aa + 1 Loop If ProgressBar1.Value < 90 Then ProgressBar1.PerformStep() Else End If 'mencari atibut tdk ikut proses penghitungan gain For ss = 0 To jum_attr If attr_g_ikut1(ss) = indxs_pohon Then indx_attr = indx_attr + 1 attr_g_ikut1.Insert(indx_attr, MDI_utama.indx_phn) attr_g_ikut2.Insert(indx_attr, attr_g_ikut2(ss)) End If Next indx_attr = indx_attr + 1 attr_g_ikut1.Insert(indx_attr, MDI_utama.indx_phn) attr_g_ikut2.Insert(indx_attr, node1) Else '***jika atribut kondisi sudah habis*** '---mencari kejadian paling banyak pada sampel--Dim jml_maks = jum_target(0) Dim vfor, ah As Integer For vfor = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 If jml_maks <= jum_target(vfor) Then jml_maks = jum_target(vfor) ah = vfor End If Next
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
101
'menyimpan hasil MDI_utama.hsl_phn.Insert(MDI_utama.indx_phn, MDI_utama.jml_kej_akhir(ah)) Dim total1 = 0 For x = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 total1 = total1 + jum_target(x) Next ‘menyimpan jumlah sampel tersisa MDI_utama.sampelsisa_phn.Insert(MDI_utama.indx_phn, total1) ‘---Mencari Sampel--Dim aa = 0, bb As Integer Do While aa <= temp_sqr_n2.Rows.Count - 1 Dim nobaru = temp_sqr_n2.Rows(aa).Item(0) For bb = 0 To jum_sampel If sampel_A(bb) = indxs_pohon Then If sampel_B(bb) = nobaru Then MDI_utama.indx_sampel2=MDI_utama.indx_sampel2 + 1 MDI_utama.sampel2_A.Insert(MDI_utama.indx_sampel2, MDI_utama.indx_phn) MDI_utama.sampel2_B.Insert(MDI_utama.indx_sampel2, nobaru) End If End If Next aa = aa + 1 Loop End If End If ‘menyimpan indeks akar atasnya MDI_utama.noakaratas_phn.Insert(MDI_utama.indx_phn, indxs_pohon + 1) 'akar paling atas tt = tt + 1 Loop 'menghapus sampel yg mempunyai nilai sampel_A(...)=indxs_pohon Dim tempSampel(indx_sampel, 1) As String Dim rave1 = 0 Dim rave As Integer For rave = 0 To indx_sampel If sampel_A(rave) <> indxs_pohon Then rave1 = rave1 + 1 tempSampel(rave1, 0) = sampel_A(rave) tempSampel(rave1, 1) = sampel_B(rave) End If Next indx_sampel = rave1 For rave = 0 To indx_sampel sampel_A.Insert(rave, tempSampel(rave, 0)) sampel_B.Insert(rave, tempSampel(rave, 1)) Next
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
'menghapus atribut yang mempunyai nilai kolom1= indxs_pohon Dim tempAttr(indx_attr, 1) As String rave1 = 0 For rave = 0 To indx_attr If attr_g_ikut1(rave) <> indxs_pohon Then rave1 = rave1 + 1 tempAttr(rave1, 0) = attr_g_ikut1(rave) tempAttr(rave1, 1) = attr_g_ikut2(rave) End If Next indx_attr = rave1 For rave = 0 To indx_attr attr_g_ikut1.Insert(rave, tempAttr(rave, 0)) attr_g_ikut2.Insert(rave, tempAttr(rave, 1)) Next '***********Cabang Selanjutnya************** jfor = indxs_pohon + 1 jml_phn = MDI_utama.indx_phn Else jfor = jfor + 1 End If Loop Return 0 End Function
Listing Program Untuk Unpruned Aturan : '*********fungsi untuk mencari rule*********** 'menyimpan nomor rule no_rule = -1 'menyimpan anteseden MDI_utama.i_rule = -1 'indeks rule MDI_utama.i_prediksi = -1 'indeks data sampel i_dtSampel = -1 'dimulai dari indeks pohon paling besar ToolStripProgressBar1.Value = 5 Dim awal = MDI_utama.indx_phn Dim xyz, q As Integer Do While awal >= 0 ToolStripProgressBar1.Value = +1 Dim hasilX = MDI_utama.hsl_phn(awal) Dim i_akar = MDI_utama.noakaratas_phn(awal) Dim i_akarX = i_akar - 1 Dim jml_Sampel = MDI_utama.sampelsisa_phn(awal)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
If hasilX = "^^" Then Else If i_akarX > 0 Then 'jika belum mrpk akar plg atas 'menyimpan rule no_rule = no_rule + 1 MDI_utama.i_prediksi = MDI_utama.i_prediksi + 1 prediksi_A.Insert(MDI_utama.i_prediksi, no_rule) prediksi_B.Insert(MDI_utama.i_prediksi, hasilX) prediksi_C.Insert(MDI_utama.i_prediksi, jml_Sampel) 'mencari atribut & cabang yg akan mjd anteseden 'sampai akar plg atas Dim i_Phn = awal Do While i_akarX > 0 'menyimpan anteseden2 MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, MDI_utama.node_phn(i_Phn)) rule_C.Insert(MDI_utama.i_rule, MDI_utama.cabang_phn(i_Phn)) xyz = i_akarX 'menentukan akar atasnya i_akarX = MDI_utama.noakaratas_phn(xyz) - 1 i_Phn = xyz Loop 'menyimpan anteseden2 yg mrpk atributakar plg atas MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, MDI_utama.node_phn(xyz)) rule_C.Insert(MDI_utama.i_rule, MDI_utama.cabang_phn(xyz)) If i_akarX = 0 Then MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, MDI_utama.node_phn(i_akarX)) rule_C.Insert(MDI_utama.i_rule, MDI_utama.cabang_phn(i_akarX)) End If Else 'jika sudah mrpk akar plg atas 'menyimpan rule no_rule = no_rule + 1 MDI_utama.i_prediksi = MDI_utama.i_prediksi + 1 prediksi_A.Insert(MDI_utama.i_prediksi, no_rule) prediksi_B.Insert(MDI_utama.i_prediksi, hasilX) prediksi_C.Insert(MDI_utama.i_prediksi, jml_Sampel) 'menyimpan anteseden MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, MDI_utama.node_phn(awal)) rule_C.Insert(MDI_utama.i_rule, MDI_utama.cabang_phn(awal))
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
If i_akarX = 0 Then MDI_utama.i_rule = MDI_utama.i_rule + 1 rule_A.Insert(MDI_utama.i_rule, no_rule) rule_B.Insert(MDI_utama.i_rule, MDI_utama.node_phn(i_akarX)) rule_C.Insert(MDI_utama.i_rule, MDI_utama.cabang_phn(i_akarX)) End If End If 'menyimpan data sampel u/ suatu rule Dim sdsdsd = MDI_utama.indx_sampel2 For q = 0 To MDI_utama.indx_sampel2 If awal = MDI_utama.sampel2_A(q) Then i_dtSampel = i_dtSampel + 1 MDI_utama.dt_sampel_A.Insert(i_dtSampel, prediksi_A(MDI_utama.i_prediksi)) MDI_utama.dt_sampel_B.Insert(i_dtSampel, MDI_utama.sampel2_B(q)) End If Next End If awal = awal - 1 Loop '********************************************* ToolStripProgressBar1.Value = 50 'tukar posisi prediksi & ganti no rule Dim no1 = -1 'indeks un_prediksi Dim no2 = -1 'indeks no_ruleAll Dim no_Rbaru As Integer 'no rule baru no_Rbaru = -1 Dim jm = MDI_utama.i_prediksi Dim p, km As Integer km = -1 Do While jm >= 0 no_Rbaru = no_Rbaru + 1 no1 = no1 + 1 'menyimpan no rule MDI_utama.un_prediksi_A.Insert(no1, no_Rbaru) 'menyimpan prediksi MDI_utama.un_prediksi_B.Insert(no1, prediksi_B(jm)) 'menyimpan jum sampel jml_sampelSisa.Insert(no1, prediksi_C(jm)) For p = 0 To i_dtSampel If MDI_utama.dt_sampel_A(p) = prediksi_A(jm) Then km = km + 1 dt_sampel2_A.Insert(km, MDI_utama.un_prediksi_A(no1)) dt_sampel2_B.Insert(km, MDI_utama.dt_sampel_B(p)) End If Next
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
105
Dim jml = 0 'jumlah syarat pd tiap no rule Dim pfor As Integer For pfor = 0 To MDI_utama.i_rule If rule_A(pfor) = prediksi_A(jm) Then no2 = no2 + 1 jml = jml + 1 no_ruleAll_A.Insert(no2, pfor) no_ruleAll_B.Insert(no2, no_Rbaru) End If Next 'menyimpan jumlah anteseden pd suatu rule MDI_utama.un_prediksi_C.Insert(no1, jml) jm = jm - 1 Loop ToolStripProgressBar1.Value = 60 'tukar posisi anteseden Dim x = -1 Dim kol = MDI_utama.i_rule Dim v, indw As Integer Do While kol >= 0 For v = 0 To MDI_utama.i_rule If no_ruleAll_A(v) = kol Then indw = v End If Next x = x + 1 MDI_utama.un_rule_A.Insert(x, no_ruleAll_B(indw)) MDI_utama.un_rule_B.Insert(x, rule_B(kol)) MDI_utama.un_rule_C.Insert(x, rule_C(kol)) kol = kol - 1 Loop ToolStripProgressBar1.Value = 80 Dim xfor, yfor, y2, totalSam As Integer y2 = -1 totalSam = 0 For xfor = 0 To MDI_utama.i_prediksi grid_unpruned.Rows.Add() grid_unpruned.Rows(xfor).Cells(0).Value = MDI_utama.un_prediksi_A(xfor) grid_unpruned.Rows(xfor).Cells(1).Value = MDI_utama.un_prediksi_B(xfor) grid_unpruned.Rows(xfor).Cells(2).Value = MDI_utama.un_prediksi_C(xfor) grid_unpruned.Rows(xfor).Cells(3).Value = jml_sampelSisa(xfor) totalSam = totalSam + jml_sampelSisa(xfor) For yfor = 0 To MDI_utama.i_rule If MDI_utama.un_rule_A(yfor) = MDI_utama.un_prediksi_A(xfor) Then y2 = y2 + 1 grid_unpruned2.Rows.Add() grid_unpruned2.Rows(y2).Cells(0).Value = MDI_utama.un_rule_A(yfor)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
Dim syarat = MDI_utama.un_rule_B(yfor) + "=" + MDI_utama.un_rule_C(yfor) grid_unpruned2.Rows(y2).Cells(1).Value = syarat End If Next Next Label3.Text = MDI_utama.i_prediksi + 1 Label4.Text = MDI_utama.i_rule + 1 Label5.Text = totalSam 'menampilkan konsekuen dlm combobox Dim lo, lo2 As Integer lo2 = 0 Dim result_pre(MDI_utama.temp_sq1_akhir.Rows.Count) As String result_pre(lo2) = "Semua Aturan" For lo = 0 To MDI_utama.temp_sq1_akhir.Rows.Count - 1 lo2 = lo2 + 1 result_pre(lo2) = MDI_utama.temp_sq1_akhir.Rows(lo).Item(0) Next ComboBox1.DataSource = result_pre ToolStripProgressBar1.Value = 100