Anda di halaman 1dari 25

TUGAS AKHIR DATA MINING

APLIKASI DATA MINING UNTUK MENAMPILKAN INFORMASI TINGKAT KELULUSAN MAHASISWA (Studi Kasus di Fakultas MIPA Universitas Diponegoro)

Oleh: KELOMPOK 5

Rhizma Isva Permata P. Neny Septiana W. Nurtika Agriani M. Shohib Habibi Yanita Cahyaningtyas

(0710963018) (0810960013) (0810960015) (0810963055) (0810963075)

PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS BRAWIJAYA MALANG 2012

LATAR BELAKANG Ketersedian data saat ini bukan merupakan hal yang sulit untuk diperoleh terlebih lagi pada saat ini banyak kegiatan yang sudah dilakukan secara komputerisasi. Namun untuk memperoleh data yang dapat digunakan sebagai bahan pertimbangan maka di perlukannya pengelolaan data lebih lanjut. Data mining merupakan cabang ilmu yang digunakan untuk mengatasi masalah penggalian informasi yang penting dari sejumlah data. Penggunaan data mining ini diharapkan dapat memberikan pengetahuan yang dari data agar menjadi informasi yang berharga. Perguruan tinggi merupakan salah satu tempat untuk meningkatkan daya saing mahasiswa untuk mengasah bakat mereka. Universitas Diponegoro merupakan perguruan tinggi yang mengedepankan pendidikan untuk meningkatkan keunggulan bersaing yang memiliki beban studi sekurang-kurangnya 144 (seratus empat puluh empat) sks (satuan kredit semester) dan sebanyak-banyaknya 160 (seratus enam puluh) sks yang dijadwalkan untuk 8(delapan) semester dan dapat ditempuh dalam waktu kurang dari 8(delapan) semester dan paling lama 14(empat belas) semester. Berdasarkan buku wisuda angkatan ke-115,48 dari 80 peserta wisuda Program Sarjana (S1) reguler di Fakultas Matematika dan Ilmu Pengetahuan Alam (MIPA) menempuh masa studi lebih dari 8 semester. Hal ini menunjukkan bahwa masih banyak mahasiswa yang menempuh studi lebih dari 8 semester. RUMUSAN MASALAH Permasalahan yang dibahas pada laporan akhir ini adalah bagaimana membuat aplikasi untuk menghasilkan informasi yang berguna tentang hubungan tingkat kelulusan mahasiswa dengan data induk mahasiswa. Informasi yang ditampilkan adalah nilai support dan confidence hubungan tingkat kelulusan dan data induk mahasiswa. TUJUAN Pembuatan aplikasi data mining tingkat kelulusan mahasiswa bertujuan untuk mengetahui informasi tingkat kelulusan mahasiwa pada Universitas Diponegoro pada setiap jurusan. BATASAN MASALAH Batasan masalah pada pembahasan laporan tugas akhir ini adalah menyajikan informasi kelulusan dengan teknik data mining. Informasi yang dihasilkan berupa nilai support dan confidence antara tingkat kelulusan dan data induk mahasiswa. Data yang didapat berupa proses data mining dan analisis hasil dari ipk( indeks prestasi kumulatif) , jalur masuk dan asal kota dari mahasiswa, dimana asal kota pada data dibatasi hanya pada kota Semarang,Kudus dan Jepara. Tingkat kelulusan di ukur dari lama studi dan IPK. Implementasi program menggunaka bahasa pemrograman Java.

PERHITUNGAN DATA SET Pada aplikasi data mining sistem tingkat kelulusan mahasiswa, dataset menggunakan biodata atau atribut penting yang melekat pada setiap mahasiswa, diantaranya adalah nama, nim, ipk, jalur masuk, asal sekolah dan sebagainya. Data set untuk uji coba program dibatasi dengan 100 baris jumlah data set. Berikut pada tabel dibawah dijelaskan mengenai data set berikut dengan atribut yang digunakan sebagai data uji, dimana jurusan dibedakan dengan sekolahnya. Tabel 1 menjelaskan data mahasiswa jurusan matematika yang diambil 10 data awal pada data set uji coba: Tabel 1 Data Awal jurusan Matematika
NIM 103431467663 106431400679 106431400687 106431404012 106431404047 106431404051 106431404054 107431404064 107431404066 107431404067 NAMA RUSMIANTO ROBBY ARlE KOESWINARNO YOKANES CERVATIUS MAGOR IRMA YUNITA BAIQ RIZKA AMAUYAH SAPUTRI ARIF ABDI SISWANTO YAKMALUL KHASANAH ALDILA SEPTIANA VINA ADE HANDAYANI RISCA IRIN SETIOWATI L/P L L L P P L P P P P Stat. matematika matematika matematika matematika matematika matematika matematika matematika matematika matematika SKS 154 144 146 146 146 146 146 154 154 154 IPK 2,99 3,21 3,13 3,57 3,28 3,39 3,39 3,7 3,82 3,69 Predikat Sangat Memuaskan Sangat Memuaskan Sangat Memuaskan Dengan Pujian Sangat Memuaskan Sangat Memuaskan Sangat Memuaskan Dengan Pujian Dengan Pujian Dengan Pujian Jml. Smt 17,5 10 10 9,5 9,5 10,5 10 7,5 8 8 Jalur Masuk PSB SPMB PSB PSB PSB PSB SPMB PSB SPMB SPMB Kota Asal SEMARANG JEPARA JEPARA SEMARANG SEMARANG SEMARANG JEPARA SEMARANG SEMARANG SEMARANG

Tabel di bawah menjelaskan data mahasiswa jurusan kimia yang diambil 10 data awal pada data set uji coba: Tabel 2 Data Awal jurusan Kimia
NIM NAMA L/P Stat. SKS IPK Predikat Jml. Smt Dengan Pujian Sangat Memuaskan Sangat Memuaskan Dengan Pujian Sangat Memuaskan Sangat Memuaskan Sangat Memuaskan Jalur Masuk 7.5 7.5 8 8 7.5 7.5 7.5 Kota Asal

107431407570 107431407571 107431407572 107431407573 107431407575 107431408444 107431409637

IFRATUS ZURAIDAH DWI NUR BETI TRIANA DEWI ERAWATI YUNITA ITRA SARI NOVISANA RAHMAWATI ZULFA LAILY F1TRIA WATI AMALIA AFRIYANTI

P P P P P P P

JS JS JS JS JS JS JS

154 157 154 154 154 152 154

551.8 537.6 524.6 557.8 539.2 527.5 528.6

3.58 3.42 3.41 3.62 3.5 3.47 3.43

JEPARA JEPARA SEMARANG KUDUS JEPARA JEPARA KUDUS

107431411306 107431411307 107431411308

ESTIA5MARANINGTYAS BINTI ROHMATUL LAELA LINDA WULAN PRIHANTINI

P P P

JS JS JS

154 154 154

527.7 545 556.9

3.43 3.54 3.62

Sangat Memuaskan Dengan Pujian Dengan Pujian

8 7.5 7.5

JEPARA SEMARANG KUDUS

Tabel di bawah menjelaskan data mahasiswa jurusan fisika yang diambil 10 data awal pada data set uji coba: Tabel 3 Data Awal jurusan Fisika
NIM NAMA L/P Stat. SKS IPK Predikat Jml. Smt Jalur Masuk Kota Asal

107431411360 RINDHITYA LUTFIYANTJ 107431454482 AGUNG ARDI WINATA 108431417987 VIVI APRIUA SAFEI 108431418015 DANNY KOERNIAWAN PAMUNGKAS 108431418018 PRATIDINA FITRIANI 109431427031 KUS IRAWAN PRABOWO 205431480560 META RAKHMARISKA 206431401043 WIDARA KRISNA SANTI 206431404060 ARISTYO FAJAR WICAKSONO 206431404110 TONA AKTODHIARAMA

P L P P P L P P L L

fisika fisika fisika fisika fisika fisika fisika fisika fisika fisika

152 72 75 69 62 62 151 146 61 146

3,66 Dengan Pujian 3,37 Sangat Memuaskan 3,7 Dengan Pujian 3,33 Sangat Memuaskan 3,73 Dengan Pujian 3,69 Dengan Pujian 2,77 Sangat Memuaskan 3,35 Sangat Memuaskan 3,35 Sangat Memuaskan 3,29 Sangat Memuaskan

7,5 7 5 4,5 4 3,5 12,5 9 8 9

PSB PSB

KUDUS JEPARA

PSB KUDUS SPMB KUDUS SPMB KUDUS PSB KUDUS PSB JEPARA PSB PSB JEPARA JEPARA

SPMB JEPARA

Tabel di bawah menjelaskan data mahasiswa jurusan biologi yang diambil 10 data awal pada data set uji coba: Tabel 4 Data Awal jurusan Biologi
NIM NAMA L/P Stat. SKS IPK Predikat Jml. Smt Jalur Masuk Kota Asal

207431412400 207431412402 207434408430 207434408432 207434408433 207434408439 207434408440 207434408443 207434408446

LIK ANAH PUTRA HILMY PRAYITNO ROSE EVA DAULA IMAM ARIF FENDI LIA NURFARJDAH SEVITA MEGASANTI

P L P L P P

biologi biologi biologi biologi biologi biologi biologi biologi biologi

152 152 152 152 152 152 152 152 152

3,49 3,54 3,32 3,2 3,36 3,44 3,55 3,62 3,35

Sangat Memuaskan Dengan Pujian Sangat Memuaskan Sangat Memuaskan Sangat Memuaskan Sangat Memuaskan Dengan Pujian Dengan Pujian Sangat Memuaskan

7,5 7,5 7,5 7,5 7,5 8 7,5 8,5 7,5

SPMB PSB PSB SPMB SPMB PSB SPMB PSB SPMB

KUDUS KUDUS KUDUS KUDUS KUDUS KUDUS JEPARA SEMARANG SEMARANG

DLAH AGUSTINA P RISNIATI NINDI ADITYA P KUSUMA WARDANI NURUL CHOTIJAH P

207434408448

ACEP NURDIANA

DEDI L

biologi

152

3,31

Sangat Memuaskan

7,5

PSB

KUDUS

PERHITUNGAN MANUAL A. Contoh proses mining untuk mengetahui hubungan tingkat kelulusan dengan proses masuk. Misal data seperti pada tabel 1.1 1. Matematika (10 sample data dari data awal) Tabel 1.1 Data Awal jurusan Matematika NIM
103431467663 106431400679 106431400687 106431404012 106431404047 106431404051 106431404054 107431404064 107431404066 107431404067

Kategori Kelulusan B2 B2 B2 B1 B2 B2 B2 A1 A1 A1

Proses Masuk PSB SPMB PSB PSB PSB PSB SPMB PSB SPMB SPMB

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 1.2. Tabel 1.2 Kandidat Pertama (C1) Itemset Count A1 3 B1 1 B2 6 PSB 6 SPMB 4 Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 1.3 (L1). Tabel 1.3 hasil setelah threshold ditetapkan (L1) Itemset Count A1 3 B2 6 PSB 6 SPMB 4 Dari tabel 1.3 didapat kandidat kedua (C2) seperti pada tabel 1.4 Tabel 1.4 Kandidat kedua (C2) Itemset Count A1,PSB 1 A1,SPMB 2 B2,PSB 4 B2,SPMB 2

Setelah ditetapkan threshold menghasilkan data seperti pada tabel 1.5 Tabel 1.5 Hasil kedua (L2) Itemset Count B2,PSB 4 Dari pada tabel 1.5 dapat diambil hasil sebagai berikut : Support B2, PSB = Count (B2,PSB)/jumlah transaksi = 4/10 Confidence B2, PSB = Count(B2,PSB)/Count (B2) = 4/6 2. Kimia (10 sample data dari data awal) Tabel 2.1 Data Awal jurusan Kimia NIM 107431407570 107431407571 107431407572 107431407573 107431407575 107431408444 107431409637 107431411306 107431411307 107431411308 Kategori Kelulusan A2 A1 A2 A2 A2 A2 A1 B1 A2 A2 Proses Masuk SPMB PSB PSB SPMB SPMB PSB SPMB PSB SPMB PSB

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 2.2. Tabel 2.2 Kandidat Pertama (C1) Itemset Count A1 2 A2 7 B1 1 PSB 5 SPMB 5 Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 2.3 (L1). Tabel 2.3 hasil setelah threshold ditetapkan (L1) Itemset Count A2 7 PSB 5 SPMB 5 Dari tabel 2.3 didapat kandidat kedua (C2) seperti pada tabel 2.4 Tabel 2.4 Kandidat kedua (C2) Itemset Count A2,PSB 3 A2,SPMB 4

Setelah ditetapkan threshold menghasilkan data seperti pada tabel 2.5 Tabel 2.5 Hasil kedua (L2) Itemset Count A2,PSB 3 A2,SPMB 4 Dari pada tabel 2.5 dapat diambil hasil sebagai berikut : Support A2, PSB = Count (A2,PSB)/jumlah transaksi = 3/10 Support A2, SPMB = Count (A2,SPMB)/jumlah transaksi = 4/10 Confidence A2, PSB = Count(A2,PSB)/Count (A2) = 3/7 Confidence A2, SPMB = Count(A2,SPMB)/Count (A2) = 4/7 3. Fisika (10 sample data dari data awal) Tabel 3.1 Data Awal jurusan Kimia NIM
107431411360 107431454482 108431417987 108431418015 108431418018 109431427031 205431480560 206431401043 206431404060 206431404110

Kategori Kelulusan A1 A2 A2 A1 A2 A2 A2 A2 A1 A1

Proses Masuk PSB PSB PSB PSB PSB PSB SPMB SPMB SPMB SPMB

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 3.2. Tabel 3.2 Kandidat Pertama (C1) Itemset Count A1 4 A2 6 PSB 6 SPMB 4 Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 3.3 (L1). Tabel 3.3 hasil setelah threshold ditetapkan (L1) Itemset Count A1 4 A2 6 PSB 6 SPMB 4 Dari tabel 3.3 didapat kandidat kedua (C2) seperti pada tabel 3.4 Tabel 3.4 Kandidat kedua (C2) Itemset Count A1,PSB 2 A1,SPMB 2

A2,PSB 4 A2,SPMB 2 Setelah ditetapkan threshold menghasilkan data seperti pada tabel 3.5 Tabel 3.5 Hasil kedua (L2) Itemset Count A2,PSB 4 Dari pada tabel 3.5 dapat diambil hasil sebagai berikut : Support A2, PSB = Count (A2,PSB)/jumlah transaksi = 4/10 Confidence A2, PSB = Count(A2,PSB)/Count (A2) = 4/6 4. Biologi (10 sample data dari data awal) Tabel 4.1 Data Awal jurusan Kimia NIM
207431412400 207431412402 207434408430 207434408432 207434408433 207434408439 207434408440 207434408443 207434408446 207434408448

Kategori Kelulusan A1 A2 A1 A2 A1 A1 B2 B2 A2 B2

Proses Masuk PSB PSB PSB SPMB SPMB PSB PSB PSB PSB SPMB

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 4.2. Tabel 4.2 Kandidat Pertama (C1) Itemset Count A1 4 A2 3 B2 3 PSB 7 SPMB 3 Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 4.3 (L1). Tabel 4.3 hasil setelah threshold ditetapkan (L1) Itemset Count A1 4 A2 3 B2 3 PSB 7 SPMB 3

Dari tabel 4.3 didapat kandidat kedua (C2) seperti pada tabel 4.4 Tabel 4.4 Kandidat kedua (C2) Itemset Count A1,PSB 3 A1,SPMB 2 A2,PSB 2 A2,SPMB 1 B2,SPMB 2 B2,SPMB 1 Setelah ditetapkan threshold menghasilkan data seperti pada tabel 4.5 Tabel 4.5 Hasil kedua (L2) Itemset Count A1,PSB 3 Dari pada tabel 4.5 dapat diambil hasil sebagai berikut : Support A1, PSB = Count (A1,PSB)/jumlah transaksi = 3/10 Confidence A1, PSB = Count(A1,PSB)/Count (A1) = 3/4

B. Contoh kedua dari proses mining untuk mengetahui hubungan tingkat kelulusan dengan proses masuk dan asal sekolah. Misalkan data seperti pada tabel 1.6. 1. Matematika (10 sample data dari data awal) Tabel 1.6 Data Awal jurusan Matematika NIM 103431467663 106431400679 106431400687 106431404012 106431404047 106431404051 106431404054 107431404064 107431404066 107431404067 Kategori Kelulusan B2 B2 B2 B1 B2 B2 B2 A1 A1 A1 Proses Masuk PSB SPMB PSB PSB PSB PSB SPMB PSB SPMB SPMB Asal Sekolah SEMARANG JEPARA JEPARA SEMARANG SEMARANG SEMARANG JEPARA SEMARANG SEMARANG SEMARANG

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 1.7. Tabel 1.7 Kandidat Pertama (C1) contoh kedua Itemset Count A1 3 B1 1 B2 6 PSB 6 SPMB 4 JEPARA 3 SEMARANG 7

Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 1.8 (L1) : Tabel 1.8 hasil setelah threshold ditetapkan (L1) contoh kedua Itemset Count A1 3 B2 6 PSB 6 SPMB 4 JEPARA 3 SEMARANG 7 Dari tabel 1.8 didapat kandidat kedua (C2) seperti pada tabel 1.9 Tabel 1.9 Kandidat kedua (C2) contoh kedua Itemset Count A1,PSB 1 A1,SPMB 2 A1,SEMARANG 3 A1,JEPARA 0 B2,PSB 4 B2,SPMB 2 B2,SEMARANG 3 B2,JEPARA 3 PSB,SEMARANG 5 PSB,JEPARA 1 SPMB,SEMARANG 2 SPMB,JEPARA 2 Setelah ditetapkan threshold menghasilkan data seperti pada tabel 1.10 Tabel 1.10 Hasil kedua (L2) contoh kedua Itemset Count A1,SEMARANG 3 B2,PSB 4 B2,SEMARANG 3 B2,JEPARA 3 PSB,SEMARANG 5 Dari tabel 1.10 didapat kandidat ketiga (C3) seperti pada tabel 1.11 Tabel 1.11 Kandidat ketiga (C3) Itemset Count A1,PSB,SEMARANG 1 B2,PSB,SEMARANG 3 B2,PSB,JEPARA 1 Setelah ditetapkan threshold menghasilkan data seperti pada tabel 1.12 Tabel 1.12 Hasil kedua (L3) contoh kedua Itemset Count B2,PSB,SEMARANG 3

Dari data-data tersebut dapat diambil hasil sebagai berikut : Support (B2, PSB, SEMARANG) = Count(B2,PSB, SEMARANG)/jumlah transaksi = 3/10 Confidence (B2, PSB, SEMARANG) = Count(B2,PSB, SEMARANG)/Count(B2) = 3/6 2. Kimia (10 sample data dari data awal) Tabel 2.6 Data Awal jurusan Kimia NIM 107431407570 107431407571 107431407572 107431407573 107431407575 107431408444 107431409637 107431411306 107431411307 107431411308 Kategori Kelulusan A2 A1 A2 A2 A2 A2 A1 B1 A2 A2 Proses Masuk SPMB PSB PSB SPMB SPMB PSB SPMB PSB SPMB PSB Asal Sekolah KUDUS KUDUS KUDUS KUDUS KUDUS KUDUS JEPARA SEMARANG SEMARANG KUDUS

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 2.7. Tabel 2.7 Kandidat Pertama (C1) contoh kedua Itemset Count A1 2 A2 7 B1 1 PSB 5 SPMB 5 JEPARA 1 KUDUS 7 SEMARANG 2 Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 2.8 (L1) : Tabel 2.8 hasil setelah threshold ditetapkan (L1) contoh kedua Itemset Count A2 7 PSB 5 SPMB 5 KUDUS 7 Dari tabel 2.8 didapat kandidat kedua (C2) seperti pada tabel 2.9 Tabel 2.9 Kandidat kedua (C2) contoh kedua Itemset Count A2,PSB 3 A2,SPMB 4 A2,KUDUS 6 PSB,KUDUS 4

SPMB,KUDUS 3 Setelah ditetapkan threshold menghasilkan data seperti pada tabel 2.10 Tabel 2.10 Hasil kedua (L2) contoh kedua Itemset Count A2,PSB 3 A2,SPMB 4 A2,KUDUS 6 PSB,KUDUS 4 SPMB,KUDUS 3 Dari tabel 2.10 didapat kandidat ketiga (C3) seperti pada tabel 2.11 Tabel 2.11 Kandidat ketiga (C3) Itemset Count A2,PSB,KUDUS 3 A2,SPMB,KUDUS 3 Dari data-data tersebut dapat diambil hasil sebagai berikut : Support (A2, PSB, KUDUS) = Count(A2,PSB, KUDUS)/jumlah transaksi = 3/10 Support (A2, SPMB, KUDUS)= Count(A2,SPMB, KUDUS)/jumlah transaksi = 3/10 Confidence (A2, PSB, KUDUS) = Count(A2,PSB, KUDUS)/Count(A2) = 3/7 Confidence (A2, SPMB, KUDUS) = Count(A2,SPMB, KUDUS)/Count(A2) = 3/7 3. Fisika (10 sample data dari data awal) Tabel 3.6 Data Awal jurusan Kimia NIM
107431411360 107431454482 108431417987 108431418015 108431418018 109431427031 205431480560 206431401043 206431404060 206431404110

Kategori Kelulusan A1 A2 A2 A1 A2 A2 A2 A2 A1 A1

Proses Masuk PSB PSB PSB PSB PSB PSB SPMB SPMB SPMB SPMB

Asal Sekolah JEPARA JEPARA SEMARANG KUDUS JEPARA JEPARA KUDUS JEPARA SEMARANG KUDUS

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 3.7. Tabel 3.7 Kandidat Pertama (C1) contoh kedua Itemset Count A1 4 A2 6 PSB 6 SPMB 4 JEPARA 5 KUDUS 3 SEMARANG 2

Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 3.8 (L1) : Tabel 3.8 hasil setelah threshold ditetapkan (L1) contoh kedua Itemset Count A1 4 A2 6 PSB 6 SPMB 4 JEPARA 5 KUDUS 3 Dari tabel 3.8 didapat kandidat kedua (C2) seperti pada tabel 3.9 Tabel 3.9 Kandidat kedua (C2) contoh kedua Itemset Count A1,PSB 2 A1,SPMB 2 A1,JEPARA 1 A1,KUDUS 2 A1,SEMARANG 1 A2,PSB 4 A2,SPMB 2 A2,JEPARA 4 A2,KUDUS 2 A2,SEMARANG 1 PSB,JEPARA 4 PSB,KUDUS 1 PSB,SEMARANG 1 SPMB,JEPARA 1 SPMB,KUDUS 2 SPMB,SEMARANG 1 Setelah ditetapkan threshold menghasilkan data seperti pada tabel 3.10 Tabel 3.10 Hasil kedua (L2) contoh kedua Itemset Count A2,PSB 4 A2,JEPARA 4 PSB,JEPARA 4 Dari tabel 3.10 didapat kandidat ketiga (C3) seperti pada tabel 3.11 Tabel 3.11 Kandidat ketiga (C3) Itemset Count A2,PSB,JEPARA 3 Dari data-data tersebut dapat diambil hasil sebagai berikut : Support (A2, PSB, JEPARA) = Count(A2,PSB,JEPARA)/jumlah transaksi = 3/10 Confidence (A2, PSB,JEPARA) = Count(A2,PSB,JEPARA)/Count(A2) = 3/6

4. Biologi (10 sample data dari data awal) Tabel 4.6 Data Awal jurusan Kimia NIM 207431412400 207431412402 207434408430 207434408432 207434408433 207434408439 207434408440 207434408443 207434408446 207434408448 Kategori Kelulusan A1 A2 A1 A2 A1 A1 B2 B2 A2 B2 Proses Masuk PSB PSB PSB SPMB SPMB PSB PSB PSB PSB SPMB Asal Sekolah KUDUS JEPARA KUDUS KUDUS KUDUS KUDUS JEPARA JEPARA JEPARA JEPARA

Dari data awal tersebut didapat kandidat pertama (C1) seperti pada tabel 4.7. Tabel 4.7 Kandidat Pertama (C1) contoh kedua Itemset Count A1 4 A2 3 B2 3 PSB 7 SPMB 3 KUDUS 4 JEPARA 5 Ditetapkan threshold = 3, maka kandidat yang nilainya kurang dari 3 akan dihapus. Sehingga, didapat hasil seperti pada tabel 4.8 (L1) : Tabel 4.8 hasil setelah threshold ditetapkan (L1) contoh kedua Itemset Count A1 4 A2 3 B2 3 PSB 7 SPMB 3 KUDUS 4 JEPARA 5 Dari tabel 4.8 didapat kandidat kedua (C2) seperti pada tabel 4.9 Tabel 4.10 Kandidat kedua (C2) contoh kedua Itemset Count A1,PSB 3 A1,SPMB 2 A2,PSB 2 A2,SPMB 1 B2,PSB 2 B2,SPMB 1 A1,KUDUS 4 A1,JEPARA 1

A1,SEMARANG A2,KUDUS A2,JEPARA A2,SEMARANG B2,KUDUS B2,JEPARA B2,SEMARANG

1 1 1 0 0 3 0

Setelah ditetapkan threshold menghasilkan data seperti pada tabel 4.11 Tabel 4.11 Hasil kedua (L2) contoh kedua Itemset Count A1,PSB 3 A1,KUDUS 4 B2,JEPARA 3 Dari tabel 4.11 didapat kandidat ketiga (C3) seperti pada tabel 4.12 Tabel 4.12 Kandidat ketiga (C3) Itemset Count A1,PSB,KUDUS 3 Dari data-data tersebut dapat diambil hasil sebagai berikut : Support (A1, PSB,KUDUS) = Count(A1,PSB, KUDUS)/jumlah transaksi = 3/10 Confidence (A1, PSB, KUDUS) = Count(A1,PSB, KUDUS)/Count(A1) = 3/4

IMPLEMENTASI SISTEM Antarmuka Pada gambar dibawah ini dijelakan bentuk antar muka aplikasi data mining untuk mengetahui jumlah kelulusan mahasiswa pada fakultas MIPA Universitas Diponegoro.

Penjelasan Source Code Aplikasi di buat dengan menggunakan bahasa pemrograman java dimana pada aplikasi yang kita bangun terdapat dua class yaitu readfile,java dan gui.java. Class readfile.java berfungsi untuk membaca file .txt yang menampung sejumlah dataset ujicoba sedangkan pada class gui.java berfungsi untuk menjalan perhitungan maupun proses pengklasifikasian setiap data set. Source code readfile.java dapat dijelaskan pada tabel dibawah ini, yaitu :
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. package datmin; import import import import import java.io.BufferedReader; java.io.DataInputStream; java.io.File; java.io.FileInputStream; java.io.InputStreamReader;

public class readFile { String[][] data; public String[][] getData() { return data; } public void proses(String a) { bacaData1 baca = new bacaData1(new File(a)); data = baca.data(); } } class bacaData1{ String str=""; bacaData1(File file){ try{ FileInputStream baca = new FileInputStream(file);

26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77.

DataInputStream in = new DataInputStream(baca); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line; while((line=br.readLine())!=null){ str+=line; } }catch(Exception e){} } int getCol(){ int col=0; for(int i=0;i<str.length();i++){ if(str.charAt(i)=='|') col++; else if(str.charAt(i)=='#'){ col++; break; } } return col; } int getRow(){ int row=0; for(int i=0;i<str.length();i++){ if(str.charAt(i)=='#'){ row++; } } return row; } String [][] data(){ String [][] x=new String[getRow()][getCol()]; int n=0,m=0; String temp=""; for(int i=0;i<str.length();i++){ if(str.charAt(i)=='|'){ x[n][m]=temp; temp=""; m++; } else if(str.charAt(i)=='#'){ x[n][m]=temp; temp=""; m=0;n++; } else{ temp+=str.charAt(i); } } return x; } }

Pada class readfile ini, proses yang dilakukan adalah membaca setiap row dan baris dari dataset dimana untuk pembacaan kolom pada file .txt dibatasi oleh simbol | dan untuk pergantian baris di batasi oleh simbol # Pada class gui.java terdapat bebarapa method diantaranya adalah 1. Methode proses Methode ini bertujuan untuk membuat sebuah table untuk menampilkan hasil dari pembacaan dataset.txt. Diama pada tabel induk dibuat beberapa kolom yaitu

nim,nama,jenis kelamin,sks,ipk,predikat,jumlah semester,jalur masuk, dan kota asal. Dimana untuk setiap data yang masuk pada colom ditampung pada sebuah array.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. public void proses() { tabelInduk.setModel(new DefaultTableModel(new Object[][]{}, new String[]{"NIM", "Nama", "Jenis Kelamin", "Jurusan", "SKS", "IPK", "Predikat", "Jumlah Semester","Jalur Masuk", "Kota Asal"})); dt = (DefaultTableModel) tabelInduk.getModel(); c.proses("dataset.txt"); data = c.getData(); for (int i = 0; i < data.length; i++) { dt.addRow(new Object[]{data[i][0], data[i][1], data[i][2], data[i][3], data[i][4], data[i][5], data[i][6], data[i][7], data[i][8],data[i][9]}); } }

2. Methode Hasil Methode ini digunakan untuk menjalankan proses ketika beberapa tombol dijalankan diantara adalah ketika kita memilih combo box jurusan maka dia akan menghitung jurusan [0], begitu juga untuk pemilihan atribut. Pada fungsi proses ini juga kita dapat menentukan tabel keluaran yaitu ditampilkannya nilai itemset,support count ,support % dan %confidence.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. public void hasil() { labelThreshold.setText(batasText.getText()); if(ComboBoxJurusan.getSelectedItem().equals(jurusan[0])){ labelJurusan.setText("semua jurusan"); } else { labelJurusan.setText(ComboBoxJurusan.getSelectedItem().toString()); } if(ComboBoxAtribut.getSelectedItem().equals(atribut[0])){ labelAtribut.setText("proses masuk"); } else { labelAtribut.setText(ComboBoxAtribut.getSelectedItem().toString()); } tabelHasil.setModel(new DefaultTableModel(new Object[][]{}, new String[]{"Itemset", "Support", "Support %", "Confidence %"})); dt2 = (DefaultTableModel) tabelHasil.getModel(); for (int i = 0; i < frequenset2.size(); i++) { dt2.addRow(new Object[]{nameFrequenset2.get(i), frequenset2.get(i), support[i], confidence[i]}); } }

3. Methode Kategorisasi Methode ini digunakan untuk membuat beberapa rule diantaranya adalah pembuatan rule untuk pengkategorian nilai A1 hingga B3 yang menyatakan range nilai IPK mahasiswa.

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

public void kategorisasi(){ lama = new double[data.length]; ipk = new double[data.length]; kategori = new String[data.length]; for(int i = 0; i < data.length; i++){ ipk[i] = Double.parseDouble(data[i][5]); lama[i] = Double.parseDouble(data[i][7]); if(lama[i] <= 8 && ipk[i] > 3.5){ kategori[i] = "A1"; } else if(lama[i] <= 8 && (ipk[i] > 2.75 && ipk[i] < 3.51)){ kategori[i] = "A2"; } else if(lama[i] <= 8 && (ipk[i] > 0 && ipk[i] < 2.76)){ kategori[i] = "A3"; } else if(lama[i] > 8 && ipk[i] > 3.5){ kategori[i] = "B1"; } else if(lama[i] > 8 && (ipk[i] > 2.75 && ipk[i] < 3.51)){ kategori[i] = "B2"; } else if(lama[i] > 8 && (ipk[i] > 0 && ipk[i] < 2.76)){ kategori[i] = "B3"; } else { kategori[i] = "Undifined"; } } }

4. Methode hitungKota Digunakan untuk menghitung jumlah kota pada dataset.


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. public void hitungKota(int indexAwal, int indexAkhir){ for (int i = indexAwal; i <= indexAkhir; i++){ if(data[i][9].equals("JEPARA")){ countJepara++; } else if(data[i][9].equals("KUDUS")){ countKudus++; } else if(data[i][9].equals("SEMARANG")){ countSemarang++; } } }

5. Methode Hitung Kategori Digunakan untuk menghitung masing-masing kategori


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. public void hitungKategori(int indexAwal, int indexAkhir){ kategorisasi(); for (int i = indexAwal; i <= indexAkhir; i++){ if(kategori[i].equals("A1")){ countA1++; } else if(kategori[i].equals("A2")){ countA2++; } else if(kategori[i].equals("A3")){ countA3++;

12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

} else if(kategori[i].equals("B1")){ countB1++; } else if(kategori[i].equals("B2")){ countB2++; } else if(kategori[i].equals("B3")){ countB3++; } } }

6. Methode Hitung Jalur masuk Methode ini digunakan untuk menghitung nilai data set berdasar jumlah jalur masuk.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. public void hitungJalurMasuk(int indexAwal, int indexAkhir){ for (int i = indexAwal; i <= indexAkhir; i++){ if(data[i][8].equals("PSB")){ countPSB++; } else if(data[i][8].equals("SPMB")){ countSPMB++; } } }

7. Methode Apriori Methode ini digunakan untuk memproses perhitungan apriori, langkahnya adalah setelah dilakukan pembacaan data pada dataset.txt maka di hitung nilai masing jumlah masing-masing item set kemudian dilakukan pengecekan nilai tracehold dengan jumlah setiap item set, jika nilai itemset kurang dari nilai tracehold maka dilakukan penghapusan. Langkah berikutnya adalah menggabungkan kategori dengan jalur masuk atau menggabungkannya dengan kota asal untuk dihitung nilai support dan confidence nya.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. public void prosesApriori(int indexAwal, int indexAkhir){ int b = Integer.parseInt(batasText.getText()); // ambil nilai threshold if(ComboBoxAtribut.getSelectedItem().equals(atribut[0]) || ComboBoxAtribut.getSelectedItem().equals(atribut[1])){ nameFrequenset1Kategori.add("A1"); nameFrequenset1Kategori.add("A2"); nameFrequenset1Kategori.add("A3"); nameFrequenset1Kategori.add("B1"); nameFrequenset1Kategori.add("B2"); nameFrequenset1Kategori.add("B3"); nameFrequenset1JalurMasuk.add("PSB"); nameFrequenset1JalurMasuk.add("SPMB"); hitungKategori(indexAwal, indexAkhir); frequenset1Kategori.add(countA1); frequenset1Kategori.add(countA2); frequenset1Kategori.add(countA3); frequenset1Kategori.add(countB1); frequenset1Kategori.add(countB2); frequenset1Kategori.add(countB3); hitungJalurMasuk(indexAwal, indexAkhir); frequenset1JalurMasuk.add(countPSB); frequenset1JalurMasuk.add(countSPMB);

24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.

itemsetArea.append("\nItemset Awal :"); for(int i = 0; i < frequenset1Kategori.size(); i++){ itemsetArea.append("\n" +nameFrequenset1Kategori.get(i)+" dengan count support "+frequenset1Kategori.get(i)); } for(int i = 0; i < frequenset1JalurMasuk.size(); i++){ itemsetArea.append("\n" +nameFrequenset1JalurMasuk.get(i)+" dengan count support "+frequenset1JalurMasuk.get(i)); } // menghapus nilai kalo kurang dari threshold for(int i = 0; i<frequenset1Kategori.size(); i++){ double item Integer.parseInt(frequenset1Kategori.get(i).toString()); if( item < b){ nameFrequenset1Kategori.remove(i); frequenset1Kategori.remove(i); i--; } } for(int i = 0; i<frequenset1JalurMasuk.size(); i++){ double item Integer.parseInt(frequenset1JalurMasuk.get(i).toString()); if( item < b){ nameFrequenset1JalurMasuk.remove(i); frequenset1JalurMasuk.remove(i); i--; } }

itemsetArea.append("\nItemset 1 :"); for(int i = 0; i < frequenset1Kategori.size(); i++){ itemsetArea.append("\n" +nameFrequenset1Kategori.get(i)+" dengan count support "+frequenset1Kategori.get(i)); } for(int i = 0; i < frequenset1JalurMasuk.size(); i++){ itemsetArea.append("\n" +nameFrequenset1JalurMasuk.get(i)+" dengan count support "+frequenset1JalurMasuk.get(i)); } // gabungin 2 itemset c2 if(frequenset1Kategori.size() != 0 && frequenset1JalurMasuk.size() != 0){ for(int i = 0; i<frequenset1Kategori.size(); i++){ for(int j = 0; j<frequenset1JalurMasuk.size(); j++){ nameFrequenset2.add(nameFrequenset1Kategori.get(i).toString()+","+nam eFrequenset1JalurMasuk.get(j).toString()); int count = 0; for(int a = indexAwal; a < indexAkhir; a++){ if(nameFrequenset1Kategori.get(i).toString().equals(kategori[a]) nameFrequenset1JalurMasuk.get(j).toString().equals(data[a][8])){ count++; } &&

85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145.

} frequenset2.add(count); } } } // menghapus yg nilainya kurang dari threshold for(int i = 0; i<frequenset2.size(); i++){ double item Integer.parseInt(frequenset2.get(i).toString()); if( item < b){ nameFrequenset2.remove(i); frequenset2.remove(i); i--; } }

support = new double[frequenset2.size()]; confidence = new double[frequenset2.size()]; for (int i = 0; i < frequenset2.size(); i++){ support[i] = Double.parseDouble(frequenset2.get(i).toString()) / jumlah_transaksi * 100; String anteseden = nameFrequenset2.get(i).toString().substring(0, 2); confidence[i] = Double.parseDouble(frequenset2.get(i).toString()) / counter(anteseden) * 100; System.out.println(jumlah_transaksi); System.out.println(anteseden); System.out.println(counter(anteseden)); System.out.println(support[i]); System.out.println(confidence[i]); } hasil(); System.out.println(nameFrequenset2); System.out.println(frequenset2); System.out.println(support); System.out.println(confidence); } else if(ComboBoxAtribut.getSelectedItem().equals(atribut[2])){ nameFrequenset1Kategori.add("A1"); nameFrequenset1Kategori.add("A2"); nameFrequenset1Kategori.add("A3"); nameFrequenset1Kategori.add("B1"); nameFrequenset1Kategori.add("B2"); nameFrequenset1Kategori.add("B3"); nameFrequenset1JalurMasuk.add("PSB"); nameFrequenset1JalurMasuk.add("SPMB"); nameFrequenset1Kota.add("JEPARA"); nameFrequenset1Kota.add("KUDUS"); nameFrequenset1Kota.add("SEMARANG"); hitungKategori(indexAwal, indexAkhir); frequenset1Kategori.add(countA1); frequenset1Kategori.add(countA2); frequenset1Kategori.add(countA3); frequenset1Kategori.add(countB1);

146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206.

frequenset1Kategori.add(countB2); frequenset1Kategori.add(countB3); hitungJalurMasuk(indexAwal, indexAkhir); frequenset1JalurMasuk.add(countPSB); frequenset1JalurMasuk.add(countSPMB); hitungKota(indexAwal, indexAkhir); frequenset1Kota.add(countJepara); frequenset1Kota.add(countKudus); frequenset1Kota.add(countSemarang); System.out.println(nameFrequenset1Kategori); System.out.println(frequenset1Kategori); System.out.println(nameFrequenset1JalurMasuk); System.out.println(frequenset1JalurMasuk); System.out.println(nameFrequenset1Kota); System.out.println(frequenset1Kota); for(int i = 0; i<frequenset1Kategori.size(); i++){ double item Integer.parseInt(frequenset1Kategori.get(i).toString()); if( item < b){ nameFrequenset1Kategori.remove(i); frequenset1Kategori.remove(i); i--; } } for(int i = 0; i<frequenset1JalurMasuk.size(); i++){ double item Integer.parseInt(frequenset1JalurMasuk.get(i).toString()); if( item < b){ nameFrequenset1JalurMasuk.remove(i); frequenset1JalurMasuk.remove(i); i--; } } for(int i = 0; i<frequenset1Kota.size(); i++){ double item Integer.parseInt(frequenset1Kota.get(i).toString()); if( item < b){ nameFrequenset1Kota.remove(i); frequenset1Kota.remove(i); i--; } } System.out.println(nameFrequenset1Kategori); System.out.println(frequenset1Kategori); System.out.println(nameFrequenset1JalurMasuk); System.out.println(frequenset1JalurMasuk); System.out.println(nameFrequenset1Kota); System.out.println(frequenset1Kota); if(frequenset1Kategori.size() != 0 && frequenset1JalurMasuk.size() != 0 && frequenset1Kota.size() != 0){ for(int i = 0; i< frequenset1Kategori.size(); i++){ for(int j = 0; j< frequenset1JalurMasuk.size(); j++){ for(int k = 0; k < frequenset1Kota.size(); k++){ nameFrequenset2.add(nameFrequenset1Kategori.get(i).toString()+","+nam eFrequenset1JalurMasuk.get(j).toString()+","+nameFrequenset1Kota.get( k).toString()); =

207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256.

int count = 0; for(int a = indexAwal; a < indexAkhir; a++){ if(nameFrequenset1Kategori.get(i).toString().equals(kategori[a]) nameFrequenset1JalurMasuk.get(j).toString().equals(data[a][8]) nameFrequenset1Kota.get(k).toString().equals(data[a][9])){ count++; } } frequenset2.add(count); } } } } for(int i = 0; i<frequenset2.size(); i++){ double item Integer.parseInt(frequenset2.get(i).toString()); if( item < b){ nameFrequenset2.remove(i); frequenset2.remove(i); i--; } } && &&

support = new double[frequenset2.size()]; confidence = new double[frequenset2.size()]; for (int i = 0; i < frequenset2.size(); i++){ support[i] = Double.parseDouble(frequenset2.get(i).toString()) / jumlah_transaksi * 100; String anteseden = nameFrequenset2.get(i).toString().substring(0, 2); confidence[i] = Double.parseDouble(frequenset2.get(i).toString()) / counter(anteseden) * 100; System.out.println(anteseden); System.out.println(counter(anteseden)); System.out.println(support[i]); System.out.println(confidence[i]); } hasil(); System.out.println(nameFrequenset2); System.out.println(frequenset2); } }

KESIMPULAN Kesimpulan yang dapat diambil dalam pengerjaan laporan akhir ini adalah Aplikasi Data Mining ini dapat digunakan untuk menampilkan informasi tingkat kelulusan. Informasi yang ditampilkan berupa nilai support dan confidence hubungan antara tingkat kelulusan dengan data induk mahasiswa. Semakin tinggi nilai confidence dan support maka semakin kuat nilai hubungan antar atribut. Data induk mahasiswa yang diproses mining meliputi data proses masuk dan data kota mahasiswa. Hasil dari proses data mining ini dapat digunakan sebagai pertimbangan dalam mengambil keputusan lebih lanjut tentang faktor yang mempengaruhi tingkat kelulusan khususnya faktor dalam data induk mahasiswa. SARAN Untuk pengembangan Aplikasi Data Mining lebih lanjut, dapat menggunakan algoritma lain, misal algoritma FP-Growth. Perbedaannya adalah algoritma apriori harus melakukan scan database setiap kali iterasi, sedangkan algoritma FP-Growth hanya melakukan satu kali scan database diawal.