Pencarian karakteristik calon mahasiswa baru Universitas Sanata Dharma yang tidak mendaftar ulang dengan menggunakan algoritma pohon.
vi
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 %.
(2)
vii
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 %.
(3)
i
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
(4)
i
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
(5)
(6)
(7)
iv
“ 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...
(8)
(9)
vi
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 %.
(10)
vii
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 %.
(11)
(12)
ix
KATA PENGANTAR
Dalam nama Bapa Putera dan Roh Kudus, penulis selalu diberi kekuatan
untuk berkembang dan menjadi lebih. Puji dan syukur penulis panjatkan
kepada-Nya 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
(13)
x
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
(14)
xi
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 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
(15)
xii
A. Penambangan Data ... 6
B. Proses Penambangan Data ... 6
C. Teknik Klasifikasi ... 10
D. Pohon Keputusan ... 11
E. Contoh Penerapan Algoritma Pohon Keputusan …... 20
BAB III 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
BAB IV IMPLEMENTASI SISTEM ... 63
A. Jalannya Program dan Pembahasannya ... 63
B. Analisa Hasil Program... 84
BAB V KESIMPULAN DAN SARAN ... 89
A. Kesimpulan ... 89
B. Saran ... 89
DAFTAR PUSTAKA ... 91
(16)
xiii
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... 86
Tabel 4.5 Confusion Matrix Pengujian V... 86
(17)
xiv
DAFTAR GAMBAR
Gambar 2.1 Langkah-langkah dalam Penambangan Data... 8
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... 22
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... 32
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... 57
Gambar 3.8 Desain Antarmuka Form Pengujian Aturan... 58
(18)
xv
Gambar 3.10 Desain Antarmuka Form Aturan-Aturan... 60
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... 75
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... 77
Gambar 4.18 Form Simulasi Setelah Tombol Buat Simulasi diklik... 78
Gambar 4.19 Form Detail Sampel... 78
(19)
xvi
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... 83
(20)
1
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
(21)
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
(22)
B. Perumusan Masalah
Berangkat dari latar belakang masalah yang telah dikemukakan di
atas, maka perumusan masalah dalam penelitian ini adalah bagaimana
mengimplementasikan penambangan data pada basis data PMB
Universitas Sanata Dharma untuk mengenali 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.
(23)
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.
(24)
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
(25)
6
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
(26)
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
(27)
Tahap-tahap tersebut diilustrasikan ke dalam gambar berikut ini :
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 : Pembersihan
Data
Integrasi Data Databases
Data Warehouse
Tugas Data yang Relevan Seleksi dan Transformasi
Data Mining
Evaluasi Pola
Pengetahuan
Pembersihan Data
Integrasi Data Databases
Data Warehouse
Tugas Data yang Relevan Seleksi dan Transformasi
Data Mining
Evaluasi Pola
(28)
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
perusahaan-perusahaan dalam melakukan operasi sehari-harinya seperti pencatatan
Increasing potential to support
business decisions End User
Business Analyst Data Analyst DBA Making Decisions Data Presentation Visualization Techniques Data Mining Information Discovery Data Exploration OLAP, MDA
Statistical Analysis, Querying and Reporting
Data Warehouses / Data Marts Data Sources
Paper, Files, Information Providers, Database Systems, OLTP
Increasing potential to support
business decisions End User
Business Analyst Data Analyst DBA Making Decisions Data Presentation Visualization Techniques Data Mining Information Discovery Data Exploration OLAP, MDA
Statistical Analysis, Querying and Reporting
Data Warehouses / Data Marts Data Sources
(29)
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
nilai-nilai atributnya. Sampel-sampel data yang digunakan untuk
membangun model disebut himpunan 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
(30)
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
(31)
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.
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 :
umur?
mahasiswa? credit_rating?
ya tidak
ya
ya tidak
baik sekali cukup ya
tidak
(32)
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
(33)
Nilai rata-rata terbobot entropi suatu atribut dapat dirumuskan
sebagai berikut :
E(A)=
∑
= ⎟⎟⎠ ⎞ ⎜⎜ ⎝ ⎛ × ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ inst i t i e n n 1
i ...2.2
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
(34)
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
(35)
meningkatkan akurasi klasifikasi. Aturan yang terbentuk menjadi lebih
sederhana dan lebih akurat. Menurut Hamilton (2000),
langkah-langkah 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
C1 C2 Jumlah Marjinal
R1 x11 x12 R1T = x11 + x12
R2 x21 x22 R2T = x21 + x22 Jumlah
Marjinal
CT1 = x11+ x21 CT2 = x1+x22 T = x11+x12+x21+x22
Keterangan :
R1, R2, C1, C2 : nilai-nilai dari salah satu anteseden atau
(36)
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 = T
C RiT• Tj
...2.4
dimana :
eij = nilai frekuensi harapan baris ke-i kolom ke-j
RiT = total baris ke-i
CTj = total kolom ke-j
(37)
Uji kebaikan suai yang teramati dengan frekuensi harapan
didasarkan pada besaran :
2
χ =
2
) (
∑ ∑
−baris
i kolom
j ij
ij ij
e e o
...2.5
dimana :
2
χ = nilai bagi peubah acak χ2 yang sebaran penarikan
contohnya sangat menghampiri sebaran chi-square
i = baris
j = kolom
ij
o = nilai frekuensi teramati baris ke-i kolom ke-j
ij
e = 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
(38)
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 chi-square.
b. Menyederhanakan aturan dengan membuang aturan-aturan yang
tidak perlu
Penyederhanaan aturan dilakukan untuk menghapus aturan yang
memiliki anteseden-anteseden yang sama dimana konsekuennya
(39)
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 Tabungan Kekayaan Pendapatan
($ 1000s)
Resiko kredit
1 Sedang Tinggi 75 Baik
2 Rendah Rendah 50 Buruk
3 Tinggi Sedang 25 Buruk
4 Sedang Sedang 50 Baik
5 Rendah Sedang 100 Baik
6 Tinggi Tinggi 25 Baik
7 Rendah Rendah 25 Buruk
8 Sedang Sedang 75 Baik
Langkah-langkah yang harus dilakukan untuk menyelesaikan
(40)
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
rata-rata 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-
=
8 3 log 8 3 8 5 log 8 5
2 2 −
−
= 0.423795 + 0.530639
(41)
a. Atribut tabungan
1) Cari jumlah nilai positif dan negatif dari setiap kejadian pada
atribut tabungan, berikut ini penggambarannya :
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 P
-e1 = 2 1 log 2 1 2 1 log 2 1 2 2 − −
e1 = 0.5 + 0.5
e1 = 1
Tabungan = Sedang (e2) e2 = − P+ log2 P+−P- log2 P
-e2 = 0
3 3 log 3 3 2 − − e2 = 0
Tabungan = Rendah (e3) e3 = − P+ log2 P+−P- log2 P
-Tabungan 3 positif
1 positif 2 negatif Tinggi Sedang Rendah 1 positif 1 negatif
(42)
e3 = 3 2 log 3 2 3 1 log 3 1 2 2 − −
e3 = 0.528321 + 0.389975
e3 = 0.918
3) Hitung nilai rata-rata terbobot entropi atribut tabungan, yaitu:
E =
∑
= ⎟⎟⎠ ⎞ ⎜⎜ ⎝ ⎛ × ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ inst i t i e n n 1 i
E = ⎟
⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝
⎛ × 3
8 3 2 8 3 1 8 2 e e e
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 :
Gambar 2.6 Nilai positif dan negatif kejadian atribut kekayaan
Kekayaan 3 positif
1 negatif 2 negatif Tinggi Sedang Rendah 2 positif
(43)
2) Hitung nilai entropi dari setiap kejadian, yaitu: Kekayaan = Tinggi (e1)
e1 = − P+ log2 P+−P- log2 P
-e1 = 0
2 2 log 2 2 2 − − e1 = 0
Kekayaan = Sedang (e2) e2 = − P+ log2 P+−P- log2 P
-e2 = 4 1 log 4 1 4 3 log 4 3 2 2 − −
e2 = 0.311278 + 0.5
e2 = 0.811
Kekayaan = Rendah (e3) e3 = − P+ log2 P+−P- log2 P
-e3 = 2 2 log 2 2
0− 2
e3 = 0
3) Hitung nilai rata-rata terbobot entropi atribut kekayaan, yaitu:
E =
∑
= ⎟⎟⎠ ⎞ ⎜⎜ ⎝ ⎛ × ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ inst i t i e n n 1 i
E = ⎟
⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝
⎛ × 3
8 2 2 8 4 1 8 2 e e e
E = 0 + 0.3934 + 0
(44)
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 :
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 P
-e1 = 3 2 log 3 2 3 1 log 3 1 2 2 − −
e1 = 0.528321 + 0.389975
e1 = 0.918
Pendapatan = 50 (e2) e2 = − P+ log2 P+−P- log2 P
-e2 = 2 1 log 2 1 2 1 log 2 1 2 2 − − Pendapatan 1 positif 1 negatif 2 positif 25 50 75 1 positif 2 negatif 100 1 positif
(45)
e2 = 0.5 + 0.5
e2 = 1
Pendapatan = 75 (e3) e3 = − P+ log2 P+−P- log2 P
-e3 = 0
2 2 log 2 2 2 − − e3 = 0
Pendapatan = 100 (e4) e4 = − P+ log2 P+−P- log2 P
-e4 = 0
1 1 log 1 1 2 − − e4 = 0
3) Hitung nilai rata-rata terbobot entropi atribut pendapatan, yaitu:
E =
∑
= ⎟⎟⎠ ⎞ ⎜⎜ ⎝ ⎛ × ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ inst i t i e n n 1 i
E = ⎟
⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝
⎛ × 4
8 1 3 8 2 2 8 2 1 8 3 e e e e
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
(46)
Dari penghitungan nilai information gain setiap atribut tersebut,
didapatkan tabel information gain sebagai berikut :
Tabel 2.3 Nilai information gain data nasabah 1 Atribut Nilai information gain
Tabungan 0.360 Kekayaan 0.548 Pendapatan 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 :
Gambar 2.8 Pohon Awal
Tinggi Sedang Rendah
Kekayaan
baik baik
baik baik baik buruk
buruk buruk
(47)
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 :
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 P
-e1 =
1 1 log 1 1
0− 2
e1 = 0
Tabungan 2 positif
1 positif
Tinggi
Sedang
Rendah
(48)
Tabungan = Sedang (e2) e2 = − P+ log2 P+−P- log2 P
-e2 = 0
2 2 log 2 2 2 − − e2 = 0
Tabungan = Rendah (e3) e3 = − P+ log2 P+−P- log2 P
-e3 = 0
1 1 log 1 1 2 − − e3 = 0
3) Hitung nilai rata-rata terbobot entropi atribut tabungan, yaitu:
E =
∑
= ⎟⎟⎠ ⎞ ⎜⎜ ⎝ ⎛ × ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ inst i t i e n n 1 i
E = ⎟
⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝
⎛ × 3
4 1 2 4 2 1 4 1 e e e
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
(49)
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 P
-e1 = 1 1 log 1 1
0− 2
e1 = 0
Pendapatan = 50 (e2) e2 = − P+ log2 P+−P- log2 P
-e2 = 0
1 1 log 1 1 2 − − e2 = 0
Pendapatan = 75 (e3) e3 = − P+ log2 P+−P- log2 P
-e3 = 0
1 1 log 1 1 2 − − e3 = 0
Pendapatan = 100 (e4) Pendapatan 1 positif 1 positif 25 50 75 1 negatif 100 1 positif
(50)
e4 = − P+ log2 P+−P- log2 P
-e4 = 0
1 1 log 1 1 2 − − e4 = 0
3) Hitung nilai rata-rata terbobot entropi atribut pendapatan, yaitu:
E =
∑
= ⎟⎟⎠ ⎞ ⎜⎜ ⎝ ⎛ × ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ inst i t i e n n 1 i
E = ⎟
⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ × + ⎟ ⎠ ⎞ ⎜ ⎝
⎛ × 4
4 1 3 4 1 2 4 1 1 4 1 e e e e
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 Nilai information gain Tabungan 0.954
Pendapatan 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
(51)
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 If Then
1 Kekayaan = Tinggi Baik
2 Kekayaan = Rendah Buruk
3 Kekayaan = Sedang ^ Tabungan = Tinggi Buruk 4 Kekayaan = Sedang ^ Tabungan = Sedang Baik 5 Kekayaan = Sedang ^ Tabungan = Rendah Baik
Tinggi Rendah Kekayaan
baik baik
buruk buruk Sedang
Tinggi Sedang Rendah Tabungan
buruk baik baik
(52)
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
Resiko kredit
(Baik)
Resiko kredit (Buruk)
Jumlah Marjinal
Tinggi 10 0 10
Sedang 15 5 20
Rendah 0 10 10
Jumlah Marjinal 25 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 = 40
25 10×
(53)
Frekuensi harapan pada sel X12 :
e12 = 40
15 10×
= 3.75
Frekuensi harapan pada sel X21 :
e21 = 40
25 20×
= 12.5
Frekuensi harapan pada sel X22 :
e22 = 40
15 20×
= 7.5
Frekuensi harapan pada sel X31 :
e31 = 40
25 10×
= 6.25
Frekuensi harapan pada sel X32 :
e32 = 40
15 10×
= 3.75
Berikut ini merupakan tabel nilai frekuensi harapan dari
penghitungan di atas :
Tabel 2.7 Tabel Nilai Frekuensi Harapan Untuk Kekayaan
Resiko kredit
(Baik)
Resiko kredit (Buruk)
Tinggi 6.25 3.75
Sedang 12.5 7.5
(54)
3) Nilai χ2
Untuk menghitung nilai χ2 digunakan rumus 2.4.4, berikut penghitunggannya : 2 χ = 2 ) (
∑ ∑
− baris i kolom j ij ij ij e e o 2 χ =(
) (
) (
)
(
) (
) (
)
75 . 3 75 . 3 10 25 . 6 25 . 6 0 5 . 7 5 . 7 5 5 . 12 5 . 12 15 75 . 3 75 . 3 0 25 . 6 25 . 6 10 2 2 2 2 2 2 − + − + − + − + − + − 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
(55)
b. Hipotesis Ho : tabungan dan resiko kredit independen 1) Membuat tabel kotingensi
Tabel 2.8 Tabel Kotingensi Untuk Tabungan
Resiko kredit
(Baik)
Resiko kredit (Buruk)
Jumlah Marjinal
Tinggi 5 5 10
Sedang 15 0 15
Rendah 5 10 15
Jumlah Marjinal 25 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 = 40
25 10×
= 6.25
Frekuensi harapan pada sel X12 :
e12 = 40
15 10×
= 3.75
Frekuensi harapan pada sel X21 :
e21 = 40
25 15×
= 9.75
Frekuensi harapan pada sel X22 :
e22 = 40
15 15×
= 5.625
Frekuensi harapan pada sel X31 :
e31 = 40
25 15×
(56)
Frekuensi harapan pada sel X32 :
e32 = 40
15 15×
= 5.625
Berikut ini merupakan tabel nilai frekuensi harapan dari
penghitungan di atas :
Tabel 2.9 Tabel Nilai Frekuensi Harapan Untuk Tabungan
Resiko kredit
(Baik)
Resiko kredit (Buruk)
Tinggi 6.25 3.75
Sedang 9.75 5.625
Rendah 9.75 5.625
3) Nilai χ2
Untuk menghitung nilai χ2 digunakan rumus 2.4.4, berikut penghitunggannya : 2 χ = 2 ) (
∑ ∑
− baris i kolom j ij ij ij e e o 2 χ =(
) (
) (
)
(
) (
) (
)
625 . 5 625 . 5 10 75 . 9 75 . 9 5 625 . 5 625 . 5 0 75 . 9 75 . 9 15 75 . 3 75 . 3 5 25 . 6 25 . 6 5 2 2 2 2 2 2 − + − + − + − + − + − 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 :
(57)
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 Then
1 Kekayaan = Rendah Buruk
2 Kekayaan = Sedang ^ Tabungan = Tinggi Buruk Default Aturan Baik
(58)
Langkah 4 : hasil prediksi himpunan data pelatihan Tabel 2.11 Hasil Prediksi Nasabah Tabungan Kekayaan Pendapatan
($ 1000s)
Resiko kredit
Prediksi
1 Sedang Tinggi 75 Baik Baik
2 Rendah Rendah 50 Buruk Buruk
3 Tinggi Sedang 25 Buruk Buruk
4 Sedang Sedang 50 Baik Baik
5 Rendah Sedang 100 Baik Baik
6 Tinggi Tinggi 25 Baik Baik
7 Rendah Rendah 25 Buruk Buruk
8 Sedang Sedang 75 Baik Baik
Dari hasil prediksi pada data pelatihan di atas tidak ditemukan adanya
kesalahan prediksi, sehingga persentase keberhasilan prediksi adalah 100
(59)
40
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
(60)
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
(61)
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 < N ≤ 4
o 4 < N ≤ 5
o 5 < N ≤ 6
o 6 < N ≤ 7
o 7 < N ≤ 8
o N > 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
(62)
Tabel 3.1 Deskripsi Atribut-Atribut Tabel Data Pelatihan No Nama Atribut Deskripsi Nilai Kejadian
1 gelombang Gelombang masuk 1, 2, 3 2 pilihan Prioritas pilihan pada
program studi tempat calon
mahasiswa tersebut diterima
1, 2 ,3
3 prodi Program studi tempat
mahasiswa diterima
AKT, BK, FAR, FIS, IND, IPAK, MAN, MAT, MEKA, PAK, PBI, PBI, PBSID, PEK, PFIS, PGSD, PMAT, PSEJ, PSI, SEJ, SING, TE, TI, TM
4 jenis_kelamin Jenis kelamin mahasiswa L, P
5 jenis_sma Jenis SMA mahasiswa IPA, IPS, Bahasa, SMK, STM, SMF, SPG/SGO,
LAIN-LAIN
6 final Nilai final tes masuk
berdasarkan program studi dimana mahasiswa tersebut diterima
N ≤ 3, 3 < N ≤ 4, 4 < N ≤ 5, 5 < N ≤ 6, 6 < N ≤ 7, 7 < N ≤ 8, N > 8 7 status Status mahasiswa yang
melakukan daftar ulang atau tidak
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 Deskripsi Nilai Kejadian
1 gelombang Gelombang masuk 1, 2, 3 2 pilihan Prioritas pilihan pada
program studi tempat calon
mahasiswa tersebut diterima
1, 2, 3
(63)
mahasiswa diterima FIS, IND, IPAK, MAN, MAT, MEKA, PAK, PBI, PBI, PBSID, PEK, PFIS, PGSD, PMAT, PSEJ, PSI, SEJ, SING, TE, TI, TM
4 jenis_kelamin Jenis kelamin mahasiswa L, P
5 jenis_sma Jenis SMA mahasiswa IPA, IPS, Bahasa, SMK, STM, SMF, SPG/SGO,
LAIN-LAIN 6 final Nilai keseluruhan tes
berdasarkan program studi dimana mahasiswa tersebut diterima
N ≤ 3, 3 < N ≤ 4, 4 < N ≤ 5, 5 < N ≤ 6, 6 < N ≤ 7, 7 < N ≤ 8, N > 8 7 status Status mahasiswa yang
melakukan daftar ulang atau tidak
Daftar Ulang, tidak DU
8 prediksi Nilai awalnya kosong, nantinya akan berisi prediksi status mahasiswa yang melakukan daftar ulang atau tidak
Daftar Ulang, tidak DU
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
(64)
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.
Kejadian-kejadian ini yang akan menjadi cabang-cabang pada pohon.
(65)
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
langkah-langkah di atas. Namun jika atribut kondisi sudah habis,
(66)
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
anteseden-anteseden 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
(67)
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
(68)
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
(69)
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")
(70)
'menampilkan dalam DataGridView Dim i As Integer
For i = 0 To 1
DataGridView1.Rows.Add()
DataGridView1.Rows(i).Cells(0).Value = i + 1 DataGridView1.Rows(i).Cells(1).Value = tingkat(i) DataGridView1.Rows(i).Cells(2).Value = noAkar(i) DataGridView1.Rows(i).Cells(3).Value = node(i) DataGridView1.Rows(i).Cells(4).Value = cabang(i) DataGridView1.Rows(i).Cells(5).Value = hasil(i) Next
End Sub End Class
Keluarannya :
Tabel 3.3 Keluaran Contoh ArrayList
No Tingkat No Akar Atasnya Node Cabang Hasil
1 1 0 prodi IKOM Daftar Ulang
2 1 0 prodi PSI Tidak DU
5. Perancangan Antarmuka
Perancangan antarmuka sistem adalah sebagai berikut :
a. Form Input Data Tabel
(71)
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.
(72)
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 masing-masing 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.
(73)
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.
(74)
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 dibentuk
(75)
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.
(1)
'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
(2)
'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
(3)
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))
(4)
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
(5)
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)
(6)
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