IMPLEMENTASI ALGORITMA K-MEANS UNTUK
MEMPREDIKSI NILAI MAHASISWA
Studi Kasus Mahasiswa Teknik Informatika Universitas Sanata Dharma
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh:
Tri Rahayu Widiarti
NIM : 025314077
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
PREDICTING THE STUDENTS GRADE
Case Study The Informatics Engineering Students of Sanata Dharma University
A Thesis
Presented as Partial Fulfillment of the Requirements To Obtain the Engineering Degree
In Informatics Engineering
By:
Tri Rahayu Widiarti Student Number : 025314077
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SAINS AND TECHNOLOGY SANATA DHARMA UNIVERSITY
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 13 September 2007 Penulis
vi
Janganlah takut, sebab Aku menyertai engkau, janganlah bimbang, sebab Aku ini
Allahmu: Aku akan meneguhkan, bahkan akan menolong engkau; Aku akan
memegang engkau dengan tangan
kanan-Ku yang membawa kemenangan ( Yesaya 41:10 )
Percayalah kepada TUHAN dengan segenap hatimu, dan janganlah bersandar
kepada pengertianmu sendiri. Akuilah Dia dalam segala lakumu, maka Ia akan
meluruskan jalanmu. (Amsal 3:5-6)
Jagalah hatimu dengan segala kewaspadaan, karena dari situlah terpancar
kehidupan. (Amsal 4:23)
Karena masa depan sungguh ada, dan harapanmu tidak akan hilang.
HALAMAN PERSEMBAHAN
Kupersembahkan karya tulis ini kepada
!
" #
viii
Tugas Akhir ini membahas tentang prediksi nilai mahasiswa Teknik Informatika Universitas Sanata Dharma. Prediksi ini dilakukan menggunakan algoritma K-means. Faktor yang mempengaruhi prediksi nilai adalah nilai mata kuliah prasyarat.
Algoritma K-means diimplementasikan untuk mengelompokkan nilai-nilai yang sama dengan nilai yang dimiliki oleh seorang mahasiswa pada mata kuliah prasyarat, dari hasil pengelompokkan tersebut dapat diketahui nilai-nilai mata kuliah yang akan diambil oleh seorang mahsiswa yang didapat oleh sekelompok mahasiwa tersebut. Nilai-nilai yang didapat mungkin berbeda-beda kemudian dirata-rata dan hasilnya merupakan prediksi nilai yang akan didapat oleh seorang mahasiswa.
ix ABSTRACT
This final assignment discussing the prediction of Sanata Dharma University Informatics Engineering students grade. This prediction was performed using K-means algorithm. The factor influencing the grade prediction was the grades of prerequisite subjects.
K-means algorithm was implemented to categorizing the same grades with grade obtained by a student in the prerequisite subjects. From the categorization results, it can be recognized the grade of the subject preferred by a student that obtained by his/her group. The grades achieved, which might be varied, were averaged and the result was the predicting the grades that will be obtain by a student.
x
Segala puji syukur saya panjatkan kepada Tuhan Yang Maha Esa, karena atas berkat rahmat dan kasih_Nya saya dapat menyelesaikan tugas akhir ini dengan baik dan lancar.
Dalam proses penulisan tugas akhir ini saya meyadari bahwa ada begitu banyak pihak yang telah memberikan perhatian dan bantuan dengan caranya masing-masing sehingga tugas akhir ini dapat selesai tepat waktu dan lancar. Oleh karena itu saya ingin mengucapkan terima kasih antara lain kepada :
1. Bapak Drs. J.J. Siang, M. Sc., selaku Dosen Pembimbing, yang telah memberikan bimbingan, dukungan, dan fasilitas yang mendukung, sehingga saya dapat menyelesaikan tugas akhir ini dengan baik.
2. Bapak Ir. Gregorius Heliarko SJ, SS, BST, MA, M.Sc selaku Dekan Fakultas Teknik Universitas Sanata Dharma.
3. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik Informatika Universitas Sanata Dharma dan selaku dosen pembimbing angkatan 2002.
4. Bapak St. Wisnu Wijaya, S.T., M.T. selaku panitia penguji yang telah memberikan banyak kritik dan saran demi sempurnanya tugas akhir saya. 5. Pak Jito, Pak Bele, Mas Danang, dan seluruh staff sekretariat Teknik, yang
xi
6. Terima kasih buat seluruh staff BAPSI atas bantuannya dalam pengambilan data.
7. Bapak dan Ibu tercinta. Terima kasih atas doa, semangat, dukungan dan cintanya sehingga saya bisa menyelesaikan studi dengan lancar.
8. Kakak-kakakku tercinta : Mbak Ning dan Mbak Tutik terima kasih atas cinta dan rasa persaudaraan.
9. Buat Andhika terima kasih atas segala perhatian, kesetiaan, kesabaran terutama cinta dan kasih sayangnya dalam menemani saya menyelesaikan tugas akhir ini sehingga rasa putus asa itu terasa hampir tidak ada.
10. Calon kakak iparku, Roy dan Pak Dhe bahagiakanlah kakak-kakaku OK! 11. Keluarga besar Pak Lukas, terima kasih buat dukungan doa dan semangat
yang diberikan.
12. Keluarga besar Abu Yono, terima kasih atas doa, perhatian dan dukungannya selama ini.
13. Anak-anak Kost Pohon waru : Mbak Cicil, Mbak Sari, Mbak Pipit, Mbak Yanti, Mbak Pitri, dan Mbak Tucil terima kasih atas dukungan, semangat dan pertemanan kalian selama kita bersama.
14. Wiwik, Melin dan Dian makasih buat persahabatan kaliah selama berjuang di Jurusan Teknik Informatika.
15. Vagabone makasih buat lagu-lagunya, McD, Albert makasih udah nungguin aku ujian. Buat Santo, Budi, Tono dan Avu makasih udah nemenin ngobrol. 16. Teman-teman Teknik Informatika khususnya angkatan 2002 atas dukungan
xii
ini yang tidak bisa saya sebutkan satu per satu.
Dengan rendah hati saya menyadari bahwa tugas akhir ini masih jauh dari sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini sangat saya harapkan. Akhir kata, semoga tugas akhir ini bermanfaat bagi semua pihak. Terima kasih.
Yogyakarta, 13 September 2007
xiii DAFTAR ISI
JUDUL ...
HALAMAN PERSETUJUAN ...
HALAMAN PENGESAHAN ...
PERNYATAAN KEASLIAN KARYA ...
HALAMAN MOTTO ...
HALAMAN PERSEMBAHAN ...
INTISARI ...
ABSTRACT ...
KATA PENGANTAR ...
DAFTAR ISI ...
DAFTAR GAMBAR ...
DAFTAR TABEL ... i iii iv v vi vii viii ix x xiii xvii xix
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah ...
1.2 Rumusan Masalah ...
1.3 Batasan Masalah...
1.4 Tujuan Penelitian ...
1.5 Metodologi Penelitian...
xiv
2.1 Data Mining ...
2.1.1 Clusterimg ……….
2.1.2 K-means ...
2.2 SQL Server 2000 ...
2.3 Visual Basic...
2.4 Use Case Diagram...
2.5 DFD (Data Flow Diagram) ...
2.6 Entity-Relationship (E-R diagram) ...
BAB III. ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem ...
3.1.1 Gambaran Umum Sistem…...
3.1.1.1 Ruang Lingkup Sistem………
3.1.2 Pemodelan Sistem
3.1.2.1 Use Case Diagram……….
3.1.2.2 Data Flow Diagram (DFD)...
3.1.2.2.1 Kesatuan Luar………..
3.1.2.2.1 Diagram Konteks………
3.1.2.2.3 Diagram Berjenjang………
xv
3.1.2.3 Entity-Relationship Diagram (ERD)………
3.1.2.3.1 Context Diagram…...
3.1.2.3.2 The Key-Based Attribut………
3.1.2.3.3 Fully Attribut ………..
3.2 Perancangan Sistem ...
3.2.1 Disain Database………...
3.2.2 Perancangan Struktur Tabel………...
3.2.3 Disain User Interface………
3.1.3.1 Tampilan pembuka dan menu utama...
3.1.3.2 User interface untuk user...
BAB IV. IMPLEMENTASI SISTEM
4.1 Pembuatan Database...
4.2 Koneksi Database...
4.3 Pembuatan Antar Muka Pemakai (User Interface)...
4.4 Uji Coba Program...
BAB V. ANALISA HASIL
5.1 Analisa Manfaat...
5.2 Kelebihan Sistem yang Dibuat...
xvi
6.1 Kesimpulan...
6.2 Saran...
DAFTAR PUSTAKA
LAMPIRAN
56
xvii
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Gambar Pengelompokkan Data Mahasiswa 14
2.2 Antarmuka Visual Basic 6.0 18
2.3 Simbol Use Case 19
2.4 Simbol Actor 20
2.5 Simbol Data Flow Diagram 21
2.6 Lambang Entity 21
2.7 Lambang Atribut 21
2.8 Lambang Relationship 22
2.9 Notasi dari Cardinality 22
3.1 Use Case Diagram 24
3.2 Diagram Konteks 26
3.3 Diagram Berjenjang 27
3.4 DAD level 0 (Overview Diagram) 28
3.5 Context Diagram 29
3.6 The-Key Based Attribut 29
3.7 Fully Attribut 29
3.8 Disain Database 30
3.9 Disain Tampilan Pembuka 32
3.10 Disain Form Login User 32
3.11 Disain Form Utama User 32
3.12 Disain Form Prediksi 33
3.13 Disain Form Pilih Semester 33
3.14 Disain Form Pilih Matakuliah Semester Ganjil 33 3.15 Disain Form Pilih Matakuliah Semester Genap 34
3.16 Disain Form Hasil Prediksi 34
3.17 Disain From Ubah Password 35
3.18 Disain Form About 35
xviii
4.3 Halaman Login User 40
4.4 Halaman Menu User 41
4.5 Halaman Ubah Password 42
4.6 Halaman Prediksi 44
4.7 Halaman Pilih Semester 45
4.8 Halaman Pilih Matakuliah 46
4.9 Halaman About 48
4.10 Mahasiswa Memilih Matakuliah 49
4.11 Hasil Prediksi Matakuliah 50
xix
DAFTAR TABEL
Tabel Keterangan Halaman
2.1 Tabel Sampel Data Mahasiswa 8
2.2 Tabel Cluster Akhir 13
2.3 Tabel Pusat Cluster 13
3.1 Tabel Kesatuan Luar Sistem 26
3.2 Tabel Mahasiswa 31
3.3 Tabel KRS 31
3.4 Tabel Mata Kuliah 31
1
PENDAHULUAN
1.1 Latar Belakang Masalah
Mahasiswa terkadang ingin mengetahui berapa nilai yang akan
diperolehnya pada saat akhir semester, namun ada beberapa faktor yang
mempengaruhi prediksi nilai, seperti mata kuliah prasyarat, mata kuliah
sejenis, dan dosen yang mengajar. Sehingga mahasiswa akan kesulitan
didalam memprediksi nilai.
1.2 Rumusan Masalah
Dari latar belakang masalah di atas dapat dirumuskan menjadi
masalah sebagai berikut :
Bagaimana megimplementasikan algoritma K-means untuk
mengelompokkan nilai mahasiswa dalam prediksi nilai ?
1.3 Batasan Masalah
Batasan masalah di dalam tugas akhir ini adalah sebagai berikut :
1. Data yang diolah dibatasi hanya untuk mahasiswa Teknik Informatika
Universitas Sanata Dharma..
2. Prediksi yang dilakukan hanyalah merupakan hasil dari pengolahan
prediksi nilai tiap mata kuliah menggunakan algoritma K-means.
2
4. Implementasi tugas akhir ini akan menggunakan VB 6.0 dan database
yaitu SQL Server 2000..
1.4 Tujuan Penelitian
Tujuan dari penulisan tugas akhir ini adalah untuk
mengimplementasikan algoritma K-means didalam memprediksi nilai
mahasiswa.
1.5 Metodologi Penelitian
Metodologi penelitian yang digunakan adalah studi kasus pada
program studi Teknik Informatika Universitas Sanata Dharma.
Langkah-langkah yang dilakukan :
1. Library Research (Penelitian Kepustakaan)
Dilakukan dengan mempelajari bahan-bahan tertulis seperti buku,
tutorial, dan jurnal yang ada kaitannya dengan pengimplementasian
algoritma K-means untuk prediksi nilai.
2. Wawancara (Interview)
Dilakukan dengan cara tanya jawab dan bertatap muka langsung dengan
pihak pengelola database Universitas Sanata Dharma (BAPSI).
3. Pembangunan Aplikasi Skripsi Implementasi Algoritma K-means untuk
Memprediksi Nilai Mahasiswa dengan metode Rekayasa Perangkat
Lunak (RPL) secara terstruktur (Structured Analysis and Design
A Analisis sistem
Pada tahap ini dilakukan pemodelan sistem kedalam bentuk use case,
Data Flow Diagram (DFD), dan Entity Relationship Diagram
(ERD).
B Disain sistem
Pada tahap ini dilakukan disain sistem secara umum, yang meliputi
disain database, disain user interface, dan disain struktur menu.
C Implementasi
Pada tahap ini dilakukan pengimplementasian sistem berdasarkan
analisis dan disain sistem yang telah dibuat.
D Uji coba sistem
Pada tahap ini dilakukan uji coba terhadap sistem untuk mengetahui
apakah hasil sudah sesuai dengan rancangan yang diinginkan dan
4
1.6 Sistematika Penulisan
Struktur penulisan tugas akhir ini adalah sebagai berikut :
BAB I : PENDAHULUAN
Berisi tentang latar belakang, rumusan masalah, batasan masalah,
tujuan penelitian, metodologi penulisan, dan sistematika
penulisan dari pembuatan tugas akhir ini.
BAB II : LANDASAN TEORI
Berisi tentang dasar teori yang mendukung dalam pembuatan
tugas akhir ini, antara lain tentang data mining, clustering,
algoritma K-means, Visual Basic 6, SQL server 2000, Use Case
Diagram, DFD, E-R Diagram.
BAB III : ANALISIS DAN PERANCANGAN SISTEM
Berisi tentang analisis sistem, meliputi pendefinisian dan
pemodelan sistem dalam bentuk use case, diagram konteks, dan
Data Flow Diagram (DFD). Dan juga berisi tentang desain
sistem yang menjelaskan tentang disain database, disain user
interface, dan disain struktur menu dari sistem yang akan dibuat.
BAB IV : IMPLEMENTASI
Berisi tentang implementasi sistem dari perancangan yang telah
dibuat sebelumnya beserta pengkodean dan penjelasannya.
BAB V : ANALISIS HASIL
Dalam bab ini berisi hasil-hasil dari analisa manfaat, kelebihan
BAB VI : KESIMPULAN DAN SARAN
Berisi kesimpulan yang dapat diambil dari penulisan tugas akhir
6 BAB II
LANDASAN TEORI
2.1Data Mining
Data Mining merupakan satu bidang yang berkembang pesat karena adanya kebutuhan akan nilai tambah dari database skala besar yang makin banyak
terakumulasi sejalan dengan berkembangnya teknologi informasi. Dengan
bertumbuhnya dari akumulasi data menciptakan suatu kondisi yang sering disebut
“Rich of data but poor information” karena data yang terkumpul tidak dapat digunakan untuk aplikasi yang berguna. Definisi secara umum dari Data Mining
adalah serangkaian proses untuk menggali nilai tambah berupa pengetahuan yang
selama ini tidak diketahui secara manual dari suatu kumpulan data.
2.1.1 Clustering
Digunakan untuk mengidentifikasikan kelompok item yang sama-sama memiliki karakteristik tertentu. Pendekatan clustering menekankan masalah segmentasi.
2.1.2 K-means
populasi menugaskannya kesalah satu dari cluster yang jaraknya paling dekat atau
minimum, dimana untuk fungsi jarak dapat digunakan fungsi Manhattan, d(i,j) = |xi1-xj1| + |xi2-xj2| +….+|xin-xjn|. Posisi centroid dihitung kembali setiap komponen
ditambahkan ke cluster dan melanjutkan sampai semua komponen dikelompokkan
ke dalam sejumlah cluster akhir yang diperlukan. Ini dikerjakan sampai tidak ada
lagi perubahan ketika cluster dihitung kembali.
Algoritma K-means
Iterasikan sampai stabil (= tidak ada objek yang berpindah kelompok)
1. Menentukan pusat cluster.
2. Menentukan jarak setiap objek ke pusat cluster.
3. Mengelompokkan setiap objek berdasarkan jarak terkecil.
Contoh penerapan algoritma clustering K-means.
Mahasiswa X mengambil mata kuliah Matematika Diskret yang mempunyai mata
kuliah prasyarat Logika dan Kalkulus.
Nilai Logika Mahasiswa X = B
Nilai Kalkulus Mahasiswa X = B
Untuk mengetahui nilai yang akan diperoleh Mahasiswa X maka dilakukan
prediksi Nilai. Prediksi yang dilakukan berdasarkan pada data nilai prasyarat mata
kuliah Matematika Diskret mahasiswa tahun sebelumnya. Untuk pengelompokkan
8
Sampel data Mahasiswa angkatan sebelumnya :
No Mahasiswa Nilai Logika Nilai Kalkulus Nilai Matematika Diskret
1 D C D
2 C D C
3 A A C
4 C D C
5 B B B
6 C C B
7 B B C
Untuk memudahkan perhitungan maka nilai-nilia huruf tersebut di jadikan nilai
angka : A = 4; B = 3; C = 2; D = 1; E = F = K = 0
Langkah-langkah pengklusteran dengan algoritma K-means :
1. Menentukan pusat cluster
Dipilih 5 objek pertama sebagai pusat cluster, yaitu : C1={(4,4)}, C2={(3,3)}, C3={(2,2)}, C4={(1,1)}, C5={(0,0)}
2. Menghitung jarak antara masing-masing objek dan masing-masing pusat
cluster dan menempatkan objek ke pusat cluster terdekat. Dengan menggunakan fungsi jarak Manhattan, maka diperoleh matrik jarak pada iterasi 0 seperti dibawah ini:
1 2 3 4 5 6 7 1 2 4 2 3 2 3 X 2 1 4 1 3 2 3 Y
D0 = 5 5 0 5 2 4 2 C1 = (4,4) cluster-1 3 3 2 3 0 2 0 C2 = (3,3) cluster-2 1 1 4 1 2 0 2 C3 = (2,2) cluster-3 1 1 6 1 4 2 4 C4 = (1,1) cluster-4 3 3 8 3 6 4 6 C5 = (0,0) cluster-5
Setiap kolom dalam matrik jarak menggambarkan objek. Baris pertama
dari matrik jarak merupakan hasil perhitungan jarak setiap objek dengan
pusat cluster pertama, baris kedua merupakan hasil perhitungan jarak setiap objek dengan pusat cluster kedua, baris ketiga merupakan hasil perhitungan jarak dengan pusat cluster ketiga, baris keempat merupakan hasil perhitungan jarak dengan pusat cluster keempat dan baris kelima merupakan hasil perhitungan jarak dengan pusat cluster kelima.
Di bawah ini merupakan perhitungan setiap objek dengan pusat cluster :
Dis(1,1) = |1-4| + |2-4| = 5
Dis(1,2) = |2-4| + |1-4| = 5
Dis(1,3) = |4-4| + |4-4| = 0
Dis(1,4) = |2-4| + |1-4| = 5
Dis(1,5) = |3-4| + |3-4| = 2
Dis(1,6) = |2-4| + |2-4| = 4
Dis(1,7) = |3-4| + |3-4| = 2
Dis(2,1) = |1-3| + |2-3| = 3
Dis(2,2) = |2-3| + |1-3| = 3
Dis(2,3) = |4-3| + |4-3| = 2
Dis(2,4) = |2-3| + |1-3| = 3
Dis(2,5) = |3-3| + |3-3| = 0
Dis(2,6) = |2-3| + |2-3| = 2
Dis(2,7) = |3-3| + |3-3| = 0
Dis(3,1) = |1-2| + |2-2| = 1
Dis(3,2) = |2-2| + |1-2| = 1
Dis(3,3) = |4-2| + |4-2| = 4
10
Dis(3,5) = |3-2| + |3-2| = 2
Dis(3,6) = |2-2| + |2-2| = 0
Dis(3,7) = |3-2| + |3-2| = 2
Dis(4,1) = |1-1| + |2-1| = 1
Dis(4,2) = |2-1| + |1-1| = 1
Dis(4,3) = |4-1| + |4-1| = 6
Dis(4,4) = |2-1| + |1-1| = 1
Dis(4,5) = |3-1| + |3-1| = 4
Dis(4,6) = |2-1| + |2-1| = 2
Dis(4,7) = |3-1| + |3-1| = 4
Dis(5,1) = |1-0| + |2-0| = 3
Dis(5,2) = |2-0| + |1-0| = 3
Dis(5,3) = |4-0| + |4-0| = 8
Dis(5,4) = |2-0| + |1-0| = 3
Dis(5,5) = |3-0| + |3-0| = 6
Dis(5,6) = |2-0| + |2-0| = 4
Dis(5,7) = |3-0| + |3-0| = 6
3. Mengelompokkan objek dengan menandai setiap objek berdasarkan jarak
terkecil. Elemen dari pengelompokkan matrik di bawah ini bernilai 1 jika
dan hanya jika objek berada dalam kelompok tersebut.
G0 = 0 0 1 0 0 0 0 C1 0 0 0 0 1 0 1 C2 1 1 0 1 0 1 0 C3 0 0 0 0 0 0 0 C4 0 0 0 0 0 0 0 C5
4. Menentukkan pusat cluster yang baru. Setelah mengetahui anggota dari masing-masing kelompok kemudian dilakukkan perhitungan pusat cluster baru dari masing-masing kelompok berdasarkan anggota-anggota baru dari
kelompok tersebut.
Cluster 1 mempunyai 1 anggota, maka pusat cluster-nya: C1 =( (4+4)/2, (4+4)/2) = (4,4)
Cluster 2 mempunyai 2 anggota, maka pusat cluster-nya: C2 = ((3+3+3)/3, (3+3+3)/3) = (3,3)
Cluster 3 mempunyai 4 anggota, maka pusat cluste-rnya: C3 = ((2+1+2+2+2)/5, (2+2+1+1+2)/5) = (1.8, 1.6)
Cluster 4 tidak mempunyai anggota maka pusat cluster-nya tetap: C4 = (1,1)
Cluster 5 tidak mempunyai anggota maka pusat cluster-nya tetap: C5 = (0,0)
5. Menentukkan jarak objek ke pusat cluster yang baru. Sama seperti langkah
kedua, maka diperoleh matrik jarak pada iterasi 1 adalah :
1 2 3 4 5 6 7 1 2 4 2 3 2 3 X 2 1 4 1 3 2 3 Y
D1 = 5 5 0 5 2 4 2 C1 = (4,4) cluster-1 3 3 2 3 0 2 0 C2 = (3,3) cluster-2 1,2 0,8 4,6 0,8 1,6 0,6 1,6 C3 = (1.8, 1.6) cluster-3 1 1 6 1 4 2 4 C4 = (1,1) cluster-4 3 3 8 3 6 4 6 C5 = (0,0) cluster-5
6. Pengelompokkan objek, seperti pada langkah ketiga. Diperoleh hasil
12
G1 = 0 0 1 0 0 0 0 C1 0 0 0 0 1 0 1 C2 0 1 0 1 0 1 0 C3 1 0 0 0 0 0 0 C4 0 0 0 0 0 0 0 C5
1 2 3 4 5 6 7
7. Menentukkan pusat cluster yang baru. Sama seperti langkah keempat.
Cluster 1 mempunyai 1 anggota, maka pusat cluster-nya: C1 =( (4+4)/2, (4+4)/2) = (4,4)
Cluster 2 mempunyai 2 anggota, maka pusat cluster-nya: C2 = ((3+3+3)/3, (3+3+3)/3) = (3,3)
Cluster 3 mempunyai 3 anggota, maka pusat cluster-nya: C3 = ((1.8+2+2+2)/4, (1.6+1+1+2)/4) = (1.95, 1.4)
Cluster 4 mempunyai 1 anggota maka pusat cluster-nya tetap: C4 = ((1+1)/2,(1+2)/2)= (1,1.5)
Cluster 5 tidak mempunyai anggota maka pusat cluster-nya tetap: C5 = (0,0)
8. Menghitung jarak obejek ke pusat cluster yang baru, sama seperti pada langkah 2. Diperoleh matrik jarak pada iterasi 2 seperti dibawah ini :
1 2 3 4 5 6 7 1 2 4 2 3 2 3 X 2 1 4 1 3 2 3 Y
9. Pengelompokkan objek seperti pada langkah ketiga. Diperoleh hasil
seperti di bawah ini :
G2 = 0 0 1 0 0 0 0 C1 0 0 0 0 1 0 1 C2 0 1 0 1 0 1 0 C3 1 0 0 0 0 0 0 C4 0 0 0 0 0 0 0 C5
1 2 3 4 5 6 7
Diperoleh hasil bahwa G2 = G1, maka iterasi dihentikan karena masing-masing
objek sudah tidak berpindah kelompok lagi, hal ini menandakan bahwa
perhitungan dari algoritma K-means telah mencapai tingkat kestabilan dan tidak membutuhkan iterasi berikutnya. Didapatkan pengelompokkan akhir
sebagai berikut :
No
Mahasiswa
Nilai Logika Nilai Kalkulus Cluster
1 D C C4
2 C D C3
3 A A C1
4 C D C3
5 B B C2
6 C C C3
7 B B C2
Tabel Pusat cluster
Cluster Number Nilai Logika Nilai kalkulus
C1 4 4
C2 3 3
C3 1.95 1.4
C4 1 1,5
C5 0 0
Tabel 2.2 Tabel Cluster Akhir
14
Menghitung jarak nilai Logika dan Kalkulus dengan pusat cluster yang telah didapat :
Jarak dengan C1: |3-4| + |3-4| = 2
Jarak dengan C2: |3-3| + |3-3| = 0
Jarak dengan C3: |3-1,95| + |3-1,4| = 2,65
Jarak dengan C4: |3-1| + |3-1,5| = 3,5
Jarak dengan C5: |3-0| + |3-0| = 6
Dapat dilihat bahwa nilai Logika B dan nilai Kalkulus B yang didapat mahasiswa
X dekat dengan cluster kedua, dimana cluster kedua beranggotakan mahasiswa kelima dan ketujuh.
Sehingga prediksi nilai Matematika Diskret yang diperoleh oleh Mahasiswa X
adalah rata-rata Matematika Diskret mahasiswa kelima (nilai B) dan mahasiswa
ketujuh (nilai C).
Prediksi nilai Matematika Diskret Mahasiswa X
= (nilai Matematika Diskret mahasiswa kelima + nilai Matematika Diskret mahasiswa ketujuh) / 2
= ( 3+2) / 2 = 2,5 ~ 3
Prediksi nilai Matematika Diskret mahasiswa X adalah B
2.2SQL Server 2000
SQL Server 2000 merupakan sebuah program Relational Database Management System (RDBMS) yang didesain untuk mendukung proses transaksi yang besar.
Fasilitas yang diberikan oleh SQL Server 2000 adalah sebagai berikut :
1. Fasilitas Service Manager
Fasilitas ini digunakan untuk mengaktifkan (start) atau menghentikan
(stop) aktivitas dan layanan Server, yang dimaksud server yaitu SQL Server 2000 sebagai database server yang menyimpan dan mengolah database. Service Manager dapat dijalankan dengan mengklik Start pada desktop computer > Program > Microsoft Sql Server > Service Manager. 2. Fasilitas Enterprise Manager.
Fasilitas ini merupakan fasilitas utama dari SQL Server 2000. Hampir semua kegiatan administratif database dilakukan menggunakan Enterprise
Manager. Enterprise manager dapat digunakan untuk membuat dan mengolah database, menambah dan menghapus table, membuat View, menambah User, mengatur hak pengguna, dan lain-lain.
3. Fasilitas Query Analyzer
16
4. Fasilitas Import dan Export Data
Fasilitas ini digunakan untuk mengimpor database dari aplikasi lain ke SQL Server 2000 atau mengekspor database dari SQL Server 2000 ke aplikasi database lain.
5. Fasilitas Books Online
Fasilitas ini digunakan sebagai sarana referensi bagi para pengguna SQL Server 2000.
Dalam SQL Server 2000, Data Definition Language (DDL) biasanya digunakan untuk mendefinisikan sebuah database atau table. Bentuk perintah
DDL yang umum digunakan adalah : a. CREATE
Perintah ini digunakan untuk membuat objek database atau table.
b. ALTER
Perintah ini digunakan untuk mengubah definisi database atau table.
c. DROP
Perintah ini digunakan untuk menghapus database atau table.
Perintah Data Manipulation Language (DML) terdiri atas SELECT, INSERT,
UPDATE dan DELETE. Perintah SELECT digunakan untuk mengambil dan menampilkan data dari satu atau lebih tabel dalam database. Aturan penulisan
perintah SELECT adalah sebagai berikut :
[GROUP BY <daftarkolom>] [HAVING <kondisi>]
[ORDER BY <daftarkolom>]
perintah yang dibatasi kurung siku “[“ dan “]” adalah perintah opsional.
Perintah INSERT digunakan untuk menambahkan baris data baru ke dalam tabel. Aturan penulisan perintah INSERT adalah sebagai berikut :
INSERT [INTO] <namatabel> [(<daftarkolom>)] VALUES (<daftar_nilai_data>)
Perintah UPDATE digunakan untuk mengubah nilai baris data dalam tabel. Aturan penulisan perintah UPDATE adalah sebagai berikut :
UPDATE <namatabel> SET <namakolom=nilai> [WHERE kondisi]
Perintah DELETE digunakan untuk menghapus beberapa baris data dari sebuah tabel. Aturan penulisan perintah DELETE adalah sebagai berikut :
DELETE FROM <namatabel> [WHERE <kondisi>]
2.3Visual Basic
Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintah-perintah yang dimengerti oleh komputer untuk
18
komputer, khususnya yang menggunakan sistem operasi Windows. Visual Basic 6.0 biasanya mempunyai antarmuka seperti Gambar 2.2.
Gambar 2.2. Antarmuka Visual Basic 6.0
Title Bar, menunjukkan nama Project yang sedang dibuat.
Menu Bar, berisi menu-menu utama yang dimiliki Visual Basic 6.0, misalnya menu File, Edit, View, Project, Run dan lain-lain. Pada masing-masing menu terdapat submenu yang berbeda.
Main Toolbar, adalah toolbar utama yang berisi ikon-ikon yang dapat diklik oleh pengguna untuk melakukan perintah khusus secara cepat.
Title Bar
Menu Bar Form
Toolbox Code Window Form Layout Window
Project Explorer Window
Form, tempat untuk merancang tampilan program aplikasi yang sedang dibuat.
Project Explorer Window, jendela untuk menapilkan projek-projek, form-form, atau modul-modul yang terlibat dalam proses pembuatan program
aplikasi.
Properties Window, jendela untuk melihat dan mengubah properti-properti yang dimiliki sebuah objek.
Toolbox, terdiri dari beberapa class objek yang dapat digunakan untuk menanamkan objek ke dalam proses pembuataan aplikasi.
Code Window, jendela yang digunakan untuk melihat atau mengetikkan kode program. Setiap form memiliki satu buah Code Window sendiri.
Form Layaout Window, jendela yang menunjukkan posisi relative Form terhadap layer monitor saat Form tersebut ditampilkan di layar monitor.
2.4Use Case Diagram
Use Case Diagram digunakan untuk menggambarkan interaksi antara sistem dan eksternal sistem dan user.
Use case merupakan bagian dari seluruh fungsi sistem. Digambarkan dengan elips horisontal dengan nama use case tertera di atas, di bawah, atau di
dalam elips. Simbol Use case terlihat pada Gambar 2.3.
Use Case
20
Actor adalah segala sesuatu yang dibutuhkan untuk berinterasi dengan sistem untuk mengubah informasi, dapat berupa orang, organisasi, atau sistem
informasi yang lain, atau dapat juga berupa suatu waktu kejadian. Simbol actor terlihat pada Gambar 2.4.
Gambar 2.4 Simbol Actor
2.5DFD (Data Flow Diagram)
Data Flow Diagram (DFD) digunakan untuk menggambarkan suatu sistem yang telah ada atau sistem baru yang akan dikembangkan secara logika
tanpa mempertimbangkan lingkungan fisik dimana data tersebut mengalir atau
lingkungan fisik dimana data tersebut akan disimpan. DFD merupakan alat yang
digunakan pada metodologi penegembangan sistem yang terstruktur (Structured
Analysis and Design).
Ada beberapa simbol DFD yang dipakai untuk menggambarkan data beserta
proses transformasi data, adalah seperti yang diilustrasikan pada Gambar 2.5.
Entiti, sumber atau tujuan dari aliaran data dari atau ke
sistem dan merupakan lingkungan luar sistem.
Arus data, menggambarkan aliran data dari suatu proses ke
Proses, merepresentasikan proses yang terjadi pada data atau
fungsi yang berada dalam sistem yang dimodelkan.
Penyimpanan Data, komponen yang berfungsi untuk
menyimpan data atau file.
Gambar 2.5 Simbol Data Flow Diagram
2.6Entity Relationship (E-R Diagram)
Cara pemodelan data yang memanfaatkan beberapa notasi untuk
menggambarkan data dalam entity dan relasi yang dijelaskan oleh data.
Entity adalah sebuah kumpulan dari orang, tempat, objek, kejadian atau konsep yang diperlukan untuk menyimpan data. Lambang entitas terlihat pada
Gambar 2.6.
Gambar 2.6 Lambang Entity
Atribut merupakan sebuah properti yang deskriptif atau karakteristik dari sebuah entity. Sinonimnya adalah element, property, dan field. Misalnya atribut dari entitas user adalah NIM, dan password. Lambang Atribut terlihat pada Gambar 2.7.
Entity
user
NIM password
22
Relationship adalah sebuah asosiasi bisnis normal yang ada antara satu atau lebih entity. Relasi mungkin juga mewakili suatu kejadian yang menghubungkan antara entity atau logika gabungan antara entity. Lambang dari relationship terlihat pada Gambar 2.8.
Hubungan
Gambar 2.8 Lambang Relationship
Cardinality merupakan minimum dan maksimum kejadian dari sebuah entity yang dihubungkan dengan kejadian tunggal dari entity yang lain. Karena seluruh relasi adalah bidirectional maka cardinality harus didefinisikan pada kedua direction untuk setiap relasi. Gambar 2.9 merupakan notasi dari cardinality.
Gambar 2.9 Notasi dari Cardinality
23
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Pada tahapan ini dihasilkan pemodelan sistem dalam bentuk Use Case
Diagram, ERD dan Diagram Alir Data (DAD) yang menjadi dasar untuk
membangun desain sistem.
3.1.1 Gambaran Umum Sistem
Sistem ini dibuat untuk membantu mahasiswa mengetahui nilai apa
yang akan didapatnya pada akhir semester, khususnya mahasiswa program
studi Teknik Informatika Universitas Sanata Dharma. Untuk mengetahui
nilai tersebut maka dilakukan prediksi nilai berdasarkan nilai mata kuliah
prasyarat. Dalam memprediksi nilai digunakan algoritma K-means yang
pada akhirnya akan menghasilkan nilai yang akan didapat oleh seorang
mahasiswa.
3.1.1.1 Ruang Lingkup Sistem
Sistem ini hanya mempunyai satu buah subsistem yaitu user
(mahasiswa Teknik Informatika Universitas Sanata Dharma). Dimana
dengan melalukan login terlebih dahulu user bisa melakukan prediksi,
melihat informasi akademik, dan juga bisa mengubah data tentang
24
3.1.2 Pemodelan Sistem
Pemodelan sistem yang dipaparkan pada bagian ini berupa:
1. Use Case Diagram, yaitu sebuah diagram yang menggambarkan
interaksi antara sistem dan eksternal sistem dan user.
2. Data Flow Diagram (DFD), menggambarkan representasi grafik dari
pemrosesan data dalam sistem. Dengan DFD kita dapat memahami
bagaimana pergerakan data dalam sistem, bagaimana proses
transformasi yang dialamai data dan apa output yang dihasilkan.
3. Entity-Relationship Diagram (ERD), menggambarkan relasi antar
data. Atribut dari masing-masing data yang tergambar dalam ERD
dideskripsikan dalam data object description.
3.1.2.1 Use Case Diagram
Ilustrasi use case diagram untuk sistem prediksi nilai mahasiswa
Teknik Informatika Universitas Sanata Dharma dapat dilihat pada
Gambar 3.1
Keterangan Use Case Diagram :
Pada Use Case Diagram di atas terdapat satu aktor yang
berperan dalam sistem, yaitu User.
Peran User antara lain:
a Melakukan Login dengan nim dan password yang telah
terdaftar. User yang tidak terdaftar tidak bisa login.
b Melakukan proses prediksi nilai. Proses ini bisa dilakukan jika
user telah login.
c Melakukan proses ubah password.
d Melakukan proses about yaitu melihat informasi tentang
sistem.
e Logout.
3.1.2.2 Data Flow Diagram (DFD)
3.1.2.2.1 Kesatuan Luar
Kesatuan Luar (external entity) merupakan kesatuan (entity) di
lingkungan luar sistem yang berinteraksi “(memberikan input atau
menerima output)” dengan sistem dapat berupa orang, unit organisasi atau
sistem lainnya. Kesatuan luar untuk pengimplementasian prediksi nilai
pada mahasiswa Teknik Informatika Universitas Sanata Dharma
26
Tabel 3.1 Kesatuan Luar Sistem
Kesatuan Luar Input Output
User nim dan passworduser,
data mata kuliah yang akan diprediksi,
passworduser yang baru
informasi prediksi nilai,
informasi ubah password
user, informasi verifikasi
mata kuliah prasyarat,
konfirmasi logout
3.1.2.2.2 Diagram Konteks
Diagram konteks menggambarkan sistem secara umum sebagai
sebuah proses tunggal dengan input dan output data yang ditunjukkan
dengan panah masuk dan keluar. Diagram konteks sistem prediksi nilai
mahasiswa Teknik Informatika Universitas Sanata Dharma terlihat pada
Gambar 3.2
3.1.2.2.3 Diagram Berjenjang
Diagram berjenjang digunakan untuk mempersiapkan
penggambaran DAD ke level-level lebih bawah lagi. Diagram Berjenjang
untuk sistem prediksi nilai mahasiswa Teknik Informatika Universitas
Sanata Dharma terlihat pada Gambar 3.3
Gambar 3.3 Diagram Berjenjang
Gambar 3.3 menggambarkan aplikasi prediksi nilai pada mahasiswa
Teknik Informatika Universitas Sanata Dharma. Proses yang terjadi pada
sistem diawali dengan proses login user (proses 1p). User yang telah
melakukan login dapat melakukan proses prediksi nilai (proses 2p) dan
proses ubah password (proses 3p). User yang ingin keluar dari sistem
dapat melakukan proses logout (proses 4p).
3.1.2.2.4 DAD level 0 (Overview Diagram)
DAD Level 0 digunakan untuk menggambarkan sistem yang akan
dibuat. Diagram ini menekankan pada logika dan kebutuhan-kebutuhan
sistem. DAD level 0 untuk sistem prediksi nilai mahasiswa Teknik
28
Gambar 3.4 Overview Diagram Level 0
Gambar 3.4 menunjukkan interaksi di dalam sistem yang dihubungkan
oleh aliran data. Untuk berinteraksi dengan sistem user harus melakukan login
(proses 1p) dengan menginputkan nim dan password. Setelah login sukses user
dapat melakukan proses prediksi nilai (proses 2p) dengan memilih mata kuliah
yang akan diprediksi. Proses prediksi nilai akan menghasilkan informasi prediksi
nilai dan verifikasi mata kuliah prasyarat. User juga bisa melakukan proses ubah
password (proses 3p) dengan menginputkan data password yang baru yang akan
disimpan dalam data store yang diberi nama Tabel Mahasiswa (D2). User yang
ingin keluar dari sistem dapat melakukan proses logout (proses 4p).
3.1.2.3 Entity-Relationship Diagram (ERD)
Gambaran E-R Diagram untuk sistem prediksi nilai mahasiswa
Teknik Informatika Universitas Sanata Dharma diperlihatkan pada
3.1.2.3.1 Context Diagram
Gambar 3.5 Context Diagram
3.1.2.3.2 The Key-Based Atribut
Gambar 3.6 The Key-Based Atribut
3.1.2.3.3 Fully Atribut
30
3.2 Perancangan Sistem
3.2.1 Disain Database
Pada disain database dari Sistem Prediksi nilai menggunakan 4 tabel
yaitu tabel KRS sebagai fact tabel, tabel Mahasiswa, tabel Mata Kuliah, dan
tabel MK_prasyarat sebagai dimension tabel. Relasi antar tabel di dalam
disain database dapat dilihat pada Gambar 3.8 berikut :
keterangan :
* primary key
** foreign key
Gambar 3.8 Desain database
3.2.2 Perancangan Struktur Tabel
Perancangan struktur tabel untuk sistem prediksi nilai mahasiswa
1. Tabel Mahasiswa
Tabel 3.2 Tabel Mahasiswa
Nama kolom Tipe data Ukuran field
NIM Varchar 10
Password Varchar 15
2. Tabel KRS
Tabel 3.3 Tabel KRS
Nama kolom Tipe data Ukuran field
NIM Varchar 10
Kode_MK Varchar 8
Kode_dosen Varchar 3
Semester Varchar 6 Thn_ajaran Varchar 10 Nilai_angka Integer 1
3. Tabel Mata Kuliah
Tabel 3.4 Tabel Mata Kuliah
Nama kolom Tipe data Ukuran field
Kode_MK Varchar 8
Nama_MK Varchar 40
SKS Integer 1
semester Char 2
4. Tabel MK Prasyarat
Tabel 3.5 Tabel MK Prasyarat
Nama kolom Tipe data Ukuran field
Kode_MK Varchar 10
Kode_prasyarat Varchar 10
3.2.3 Disain User Interface
Disain user interface implementasi algoritma K-means untuk
32
3.2.3.1. Tampilan pembuka dan menu utama
Gambar 3.9 Disain Tampilan pembuka
3.2.3.2. User interface untuk user.
• Form loginUser
• Form utama User
FORM LOGIN USER
NIM PASSWORD
LOGIN BATAL
SISTEM INFORMASI PREDIKSI IP MAHASISWA
IMPLEMENTASI ALGORITMA K-MEANS UNTUK MEMPREDIKSI NILAI STUDI KASUS MAHASISWA TEKNIK INFORMATIKA
UNIVERSITAS SANTA DHARMA
TRI RAHAYU WIDIARTI 025314077
TEKNIK INFORMATIKA UNIVERSITAS SANTA DHARMA LOGO USD
Gambar 3.10 Disain Form Login User
NIM
PREDIKSI
UBAH PASSWORD
ABOUT LOGOUT
MENU
• Form Prediksi
• Form Pilih Semester
• Form Pilih matakuliah Semester Ganjil
PREDIKSI
Mata Kuliah yang sudah diambil
Kode Nama Mata Kuliah SKS Nilai
Prediksi Batal
Gambar 3.12 Disain Form Prediksi NIM SKS yang telah ditempuh IPK :
PILIH Pilih Semester
Mata Kuliah yang ditawarkan :
Pilih Kode Nama Mata Kuliah SKS
Kode Nama Mata Kuliah SKS TAMBAH
CANCEL PREDIKSI
BATAL Gambar 3.13 Disain Form Pilih Semester
34
• Form Pilih matakuliah semester Genap
Gambar 3.15 Disain Form Pilih Matakuliah Semester Genap
• Form Hasil Prediksi
Gambar 3.16 Disain Form Hasil Prediksi Mata Kuliah yang ditawarkan :
Pilih Kode Nama Mata Kuliah SKS
Kode Nama Mata Kuliah SKS TAMBAH
CANCEL PREDIKSI
BATAL
HASIL PREDIKSI
Hasil Prediksi Nilai Anda :
Prediksi nilai untuk mata kuliah ………. adalah :
Prediksi nilai angka : ……… Prediksi nilai mutu : ………
• Form Ubah Password
Gambar 3.17 Disain Form Ubah Password
• Form About
Gambar 3.18 Disain Form About FORM UBAH PASSWORD
Identitas User
NIM : Password lama :
Ubah password
Password baru :
Verifikasi password :
EDIT BATAL
IMPLEMENTASI ALGORITMA K-MEANS UNTUK MEMPREDIKSI NILAI STUDI KASUS MAHASISWA
TEKNIK INFORMATIKA UNIVERSITAS SANTA DHARMA
36 BAB IV
IMPLEMENTASI SISTEM
Setelah selesai merancang dan menganalisa sistem yang akan dibuat,
langkah selanjutnya adalah mencoba mengimplementasikan ke dalam bahasa yang
dapat dimengerti oleh mesin.
Sistem ini dibuat dengan spesifikasi Software dan Hardware sebagai
berikut :
Spesifikasi Software
1. Sistem Operasi Windows XP.
2. Adope Photoshop 7.0
3. SQL server 2000
4. Visual Basic 6.0
Spesifikasi Hardware
1. Prosessor AMD Sempron 2800+
2. Memory 256 MB
3. HardDisk 40 GB
4.1 Pembuatan Database
Pertama-tama yang dilakukan dalam pembangunan implementasi
algoritma K-means untuk memprediksi indeks prestasi mahasiswa adalah
membuat database dahulu dengan menggunakan database SQL server 2000.
Jadi sistem yang dibuat hanya mengacu pada satu database yang diberi
Adapun langkah pembuatan database Prediksi adalah sebagai
berikut :
Database terdiri dari empat tabel utama. Struktur tabel-tabel dalam
implementasi algoritma K-means untuk memprediksi nilai mahasiswa adalah
sebagai berikut :
a. Tabel mahasiswa, tabel dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE mahasiswa (
nim varchar (10) NOT NULL , password varchar (15) NULL , angkatan varchar (50) NULL ,
CONSTRAINT PK_mahasiswa PRIMARY KEY (nim) ) ;
b. Tabel krs, tabel dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE krs (
nim varchar (10) NOT NULL , kode_MK varchar (8) NOT NULL , kode_dosen int NOT NULL ,
semester varchar (7) NOT NULL , Thn_ajaran varchar (10) NOT NULL , nilai_angka int NULL ,
CONSTRAINT FK_krs_dosen FOREIGN KEY(kode_dosen) REFERENCES dosen (kode_dosen),
CONSTRAINT FK_krs_mahasiswa FOREIGN KEY(nim) REFERENCES mahasiswa (nim),
CONSTRAINT FK_krs_mata_kuliah FOREIGN KEY (kode_MK) REFERENCES mata_kuliah (kode_MK) ) ;
c. Tabel mata
_
kuliah,
tabel dibuat dengan sintak SQL sebagai berikut:CREATE TABLE mata_kuliah (
kode_MK varchar (8)NOT NULL , nama_MK varchar (40)NOT NULL , sks int NULL ,
semester char (2) NULL ,
CONSTRAINT PK_mata_kuliah PRIMARY KEY (kode_MK)
38
d. Tabel MK_prasyarat, tabel dibuat dengan sintak SQL sebagai berikut:
CREATE TABLE MK_prasyarat (
kode_MK varchar (8) NOT NULL ,
kode_prasyarat varchar (8) NOT NULL , CONSTRAINT FK_MK_prasyarat_mata_kuliah
FOREIGN KEY (kode_MK) REFERENCES mata_kuliah
(kode_MK )
) ;
4.2 Koneksi Database
Tabel-tabel yang telah dibuat belum dapat terhubung dengan
sistem. Untuk menghubungkan database dengan sistem dengan
menambahkan data environment pada project, dan menghubungkan ke
server dan basis data di server, maka koneksi dapat dilakukan seperti
gambar di bawah ini :
4.3 Pembuatan Antar Muka Pemakai (User Interface)
Di sini akan dijelaskan bagaimana pembuatan antar muka pemakai
(user interface) implementasi algoritma K-means untuk memprediksi nilai
mahasiswa. Pada sistem ini hanya ada satu pengguna, yaitu user (dalam
hal ini yaitu mahasiswa) yang berhak untuk melalukan prediksi, mengubah
password dan mengetahui tentang sistem.
Saat pertama kali sistem dijalankan akan menampilkan tampilan
pembuka, sebagai berikut:
Setelah itu, sistem akan meminta aktivasi dengan mengisi form
login. Untuk login user diminta memasukkan identitas berupa nim dan
password (Gambar 4.3).
40
Dengan menekan tombol LOGIN, keabsahan data yang dimasukkan akan
dicek kecocokannya (verifikasi) .
Kode program pada form Login adalah sebagai berikut:
Option Explicit
Dim conP As ADODB.Connection
Private Sub cmdBatal_Click() Unload LOGIN_USER End Sub
Private Sub cmdLogin_Click() If in_nim.Text = "" Then
MsgBox "NIM blm diinputkan", 0, "Peringatan" in_nim.SetFocus
ElseIf in_password.Text = "" Then
MsgBox "Password belum diinputkan", 0, "Peringatan" in_password.SetFocus
Else
With DE.rsLOGIN_USER
.Filter = "[nim]='" & in_nim.Text & "'" If .EOF And .BOF Then
MsgBox "Data tidak ditemukan", vbInformation, "DOR!" ElseIf in_password.Text = ![Password] Then
Me.Hide Load MENU_USER
MENU_USER.Show Else
MsgBox "Login anda salah, silahkan anda mengulangi kembali!", vbInformation, "Peringatan"
in_nim = "" in_password = "" in_nim.SetFocus End If
End With End If End Sub
Private Sub Form_Activate() in_nim.SetFocus
End Sub
Private Sub in_nim_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And _ KeyAscii <> vbKeyBack Then
KeyAscii = 0 End If
If Len(in_nim.Text) = 10 Then in_password.SetFocus
End If End Sub
Kemudian jika login berhasil maka user dapat masuk ke menu user
(Gambar 4.4).
Halaman Menu User memperlihatkan semua menu yang dapat
diakses oleh user diantaranya adalah:
1. Prediksi
2. Ubah Password.
3. Abaout (Mengetahui bagaimana sistem digunakan)
4. Logout (jika user ingin keluar dari sistem)
42
Kode program pada Menu Utama adalah sebagai berikut :
Halaman Ubah Password digunakan oleh user untuk mengubah
data password yang sudah ada dalam database. Untuk mengubah
password user diminta untuk memasukkan data password baru dan
verifikasi password. Dengan menekan tombol EDIT maka secara otomatis
data password baru akan disimpan dalam database menggantikan Private Sub cmdLogout_Click()
End End Sub
Private Sub cmdPrediksi_Click() Unload Me
Load FORM_PREDIKSI FORM_PREDIKSI.Show End Sub
Private Sub Command2_Click() Load UBAH_PASSWORD UBAH_PASSWORD.Show End Sub
Private Sub cmd_about_Click() Unload Me
Load ABOUT ABOUT.Show End Sub
password yang lama, hal ini terjadi jika data password baru yang
dimasukkan sama dengan data verifikasi password.
Kode program pada form Ubah Password, adalah sebagai berikut:
Private Sub cmdBatal_Click() Unload Me
Load MENU_USER MENU_USER.Show End Sub
Private Sub cmdEdit_Click()
If Text1.Text = "" Then
MsgBox "Data belum diinputkan", vbInformation, "Peringatan" Text1.SetFocus
ElseIf Text2.Text = "" Then
MsgBox "data belum diinputkan", vbInformation, "Peringatan" Text2.SetFocus
Else
With DE.rsLOGIN_USER
.Filter = "[nim]='" & txtnim.Text & "'" If Text1.Text = Text2.Text Then
dbLog = " Update mahasiswa " & _
"Set [password] ='" & Text1.Text & "'" & _ "Where [nim]='" & txtnim.Text & "'" DE.DE_Prediksi.Execute (dbLog) DE.rsLOGIN_USER.Requery Unload UBAH_PASSWORD Load UBAH_PASSWORD Label3.ForeColor = &HC0& Label3.BackColor = &HE0E0E0 UBAH_PASSWORD.Show
Else
MsgBox "data verifikasi salah, Ulangi lagi", vbInformation, "Peringatan"
Text2 = "" Text2.SetFocus End If End With End If End Sub
Private Sub Form_Activate()
Text1.SetFocus
44
Pada form prediksi ini ditampilkan semua mata kuliah yang sudah
diambil oleh mahasiswa beserta dengan nilai yang didapat, juga ditampilkan
jumlah SKS yang telah ditempuh dan IPK mahasiswa. Saat menekan tombol
PREDIKSI maka akan ditampilkan form pilih semester (Gambar 4.7).
kode program pada form Prediksi, adalah sebagai berikut:
Private Sub cmd_batal_Click() Unload Me
MENU_USER.Show End Sub
Private Sub cmd_prediksi_Click() PILIH_SEMESTER.Show End Sub
Private Sub Form_Activate() End Sub
Private Sub Form_Load() Dim ipk As Double
ipk = Round(txtjum_nilai.Text / txtjum_sks.Text, 2)
txt_IPK.Text = ipk
End Sub
Pada form pilih semester terdapat dua pilihan yaitu semester genap
dan ganjil. Saat memilih semester genap maka akan ditampilkan matakuliah yang
ditawarkan pada saat semester genap (Gambar 4.9), begitu juga saat memilih
semester ganjil maka akan ditampilkan matakuliah yang ditawarkan pada semester
ganjil (Gambar 4.8).
Kode program pada halaman pilih semester, adalah sebagai berikut:
Private Sub cmb_semester_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii)))
If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And _ KeyAscii <> vbKeyBack Or _
Not (KeyAscii < vbKey0 Or KeyAscii > vbKey9) Then
KeyAscii = 0
End If End Sub
Private Sub cmd_pilih_Click() Me.Hide
Unload FORM_PREDIKSI
If cmb_semester.ListIndex = 0 Then PILIH_MATAKULIAH_Ganjil.Show
ElseIf cmb_semester.ListIndex = 1 Then PILIH_MATAKULIAH_Genap.Show
Else
MsgBox "Pilih Dulu", vbInformation, "Pemberitahuan"
Load Me
Me.Show
End If End Sub
Private Sub Form_Activate() Dim pil As ComboItem cmb_semester = ""
cmb_semester.DataChanged = False End Sub
Private Sub Form_Load()
cmb_semester.AddItem ("Ganjil") cmb_semester.AddItem ("Genap") End Sub
46
Pada form ini mahasiswa bisa memilih matakuliah apa saja yang
akan diprediksi, tentunya matakuliah yang ditawarkan berdasarkan pilihan
semester. Setelah memilih matakuliah, untuk memprediksinya tekan tombol
prediksi.
Kode program pada halaman pilih matakuliah, adalah sebagai berikut:
Private Sub cmd_prediksi_Click() Dim error As Boolean
List3.Clear List7.Clear
For i = 0 To List1.ListCount - 1 With DE.rsMK_PRASYARAT
.Filter = "[kode_MK]='" & CStr(List1.List(i)) & "'" If .EOF And .BOF Then
Exit Sub Else
If .RecordCount > 0 Then .MoveFirst
Do Until .EOF With DE.rsCommand4
.Filter = "([nim]='" & txtnim.Text & "') And ([kode_prasyarat]='" & DE.rsMK_PRASYARAT.Fields("kode_prasyarat") & "')"
If .EOF And .BOF Then
MsgBox "prasyarat mata kuliah" & vbCrLf & _ CStr(List1.List(i)) & _
vbTab & "yaitu" & vbCrLf &
DE.rsMK_PRASYARAT.Fields("kode_prasyarat").Value & _
vbTab & "belum diambil", vbInformation, "Pemberitahuan" List1.RemoveItem (i)
List2.RemoveItem (i) List4.RemoveItem (i) List7.RemoveItem (i) error = True
Else List3.AddItem CStr(DE.rsMK_PRASYARAT.Fields("kode_prasyarat")) List7.AddItem CStr(DE.rsMK_PRASYARAT.Fields("nama_MK")) 'Call kmeans End If End With .MoveNext Loop End If End If End With Next i
If error = True Then Exit Sub
Else
If List1.ListCount = 0 Then
MsgBox "Pilih dahulu mata kuliah yang akan diprediksi !", vbInformation, "DOR!"
ElseIf List1.ListCount > 1 Then
MsgBox "Pilih satu mata kuliah saja !", vbInformation, "DOR!" Else Me.Hide 'prediksi_ganjil.Show hasil_prediksi_ganjil.Show End If End If End Sub
Private Sub cmd_Tambah_Click() Dim X As Object
Dim i As Integer Dim clm As ColumnHeader
'If ListView1.SelectedItem Is Nothing Then Exit Sub If ListView1.Checkboxes = False Then Exit Sub List1.Clear List2.Clear List4.Clear List5.Clear List7.Clear
For i = 1 To ListView1.ListItems.Count
If ListView1.ListItems(i).Checked = True Then
List1.AddItem CStr(ListView1.ListItems(i).ListSubItems(1).Text) List2.AddItem CStr(ListView1.ListItems(i).ListSubItems(2).Text) List4.AddItem CStr(ListView1.ListItems(i).ListSubItems(3).Text)
End If
'ListView1.ListItems(i).Checked = False Next i
48
Pada form ini ditampilkan bagaimana menggunakan sistem. Kode
program pada halaman about, adalah sebagai berikut:
4.4 Uji Coba Program
Pada simulasi program dilakukan prediksi nilai mahasiswa dengan nim
“04001” untuk mata kuliah Rekayasa Perangkat Lunak II (TIF 340) pada Gambar 4.9 Halaman About
Private Sub Command1_Click() Unload Me
Load MENU_USER MENU_USER.Show End Sub
semester ganjil yang mempunyai mata kuliah prasyarat Rekayasa Perangkat
Lunak I (TIF 240) dan Basis Data I (TIF 232).
Gambar 4.10 Mahasiswa memilih mata kuliah
Setelah memilih mata kuliah maka untuk melakukan prediksi dipilih
50
Gambar 4.11 Hasil prediksi mata kuliah
Didapatkan bahwa prediksi nilai mutu mahasiswa dengan nim “04001” untuk
mata kuliah Rekayasa Perangkat Lunak II (TIF 340) adalah nilai E. Kemudian
untuk melihat proses perhitungan dipilih tombol Lihat perhitungan. Maka
Gambar 4.12 Hasil lihat perhitungan
Pada gambar 4.12 dapat diketahui mengenai data nilai mata kuliah prasyarat RPL
II yaitu RPL I dan Basis Data, hasil perhitungan pusat kluster yang terakhir,
pengelompokkan data nilai prasyarat mahasiswa sebelumnya, nilai prasyarat dan
pengelompokkan untuk mahasiswa dengan nim “04001”, dan prediksi nilai untuk
mahasiswa tersebut. Setelah itu dipilih tombol Keluar untuk kembali ke menu
utama dan memilih tombol Logout
Adapun kode program algoritma K-means yang digunakan untuk
melakukan perhitungan diatas adalah sebagai berikut :
Public Sub kMean(dataNilaiX As Variant, dataNilaiY As Variant, totalData As Integer, numCluster As Integer)
Dim i As Integer Dim j As Integer Dim X
Dim Y
Dim min As Single Dim cluster As Integer Dim d As Double Dim sumXY() As Double
52
perGerakanCluster = True
'mendefinisikan titik pusat cluster Centroid(1, 1) = 4
Centroid(2, 1) = 4 Centroid(1, 2) = 3 Centroid(2, 2) = 3 Centroid(1, 3) = 2 Centroid(2, 3) = 2 Centroid(1, 4) = 1 Centroid(2, 4) = 1 Centroid(1, 5) = 0 Centroid(2, 5) = 0
'---
'memasukkan data
ReDim Preserve data(0 To 2, 1 To totalData) 'Baris : 0 = cluster, 1 =X, 2= Y ~~> kolom : data
For dt = 1 To totalData
data(1, dt) = dataNilaiX(dt - 1) data(2, dt) = dataNilaiY(dt - 1) Next dt
'---
'menghitung jarak tiap data terhadap cluster For k = 1 To totalData
min = 100 X = data(1, k) Y = data(2, k)
For i = 1 To numCluster
d = dist(X, Y, Centroid(1, i), Centroid(2, i)) If d < min Then
min = d cluster = i End If
Next i
data(0, k) = cluster Next k
'---
Do While perGerakanCluster 'lakukan hingga tidak ada pergerakan cluster (perGerakanCluster = false)
'Menghitung centroid baru
ReDim sumXY(1 To 3, 1 To numCluster) ' 1 =X, 2=Y, 3= jumlah data For i = 1 To totalData
sumXY(1, data(0, i)) = data(1, i) + sumXY(1, data(0, i)) sumXY(2, data(0, i)) = data(2, i) + sumXY(2, data(0, i)) sumXY(3, data(0, i)) = 1 + sumXY(3, data(0, i))
Next i
For i = 1 To numCluster If sumXY(3, i) = 0 Then
Centroid(1, i) = Centroid(1, i) Centroid(2, i) = Centroid(2, i) Else
jumAnggota = sumXY(3, i) + 1
totalJumlahX = sumXY(1, i) + Centroid(1, i) totalJumlahY = sumXY(2, i) + Centroid(2, i) Centroid(1, i) = totalJumlahX / jumAnggota Centroid(2, i) = totalJumlahY / jumAnggota End If
Next i
'---
'mengelompokkan data kedalam cluster baru perGerakanCluster = False
For i = 1 To totalData min = 100
Y = data(2, i)
For j = 1 To numCluster
d = dist(X, Y, Centroid(1, j), Centroid(2, j)) If d < min Then
min = d cluster = j End If
Next j
If data(0, i) <> cluster Then data(0, i) = cluster perGerakanCluster = True End If
Next i
'--- Loop
End Sub
Fungsi kMean ini memerlukan sebuah fungsi lagi untuk melakukan
perhitungan jarak yang menggunakan fungsi Manhattan. Berikut ini adalah kode
program fungsi perhitungan jarak menggunakan Manhattan.
Public Function dist(X1, Y1, X2, Y2) As Double
'menggunakan manhattan
dist = Abs(Y2 - Y1) + Abs(X2 - X1)
End Function
Untuk menjalankan algoritma K-Means digunakan pemanggilan fungsi
kMean(dataNilaiX, dataNilaiY, totalData, numCluster) . untuk memanggil fungsi
tersebut digunakan perintah Call kMean(dataNilaiX, dataNilaiY, totalData,
numCluster).
Pertama-tama pada saat penggunaan fungsi kMean hal yang pertama kali
dilakukan adalah mendefinisikan pusat kluster dengan perintah :
'mendefinisikan titik pusat kluster Centroid(1, 1) = 4
Centroid(2, 1) = 4 Centroid(1, 2) = 3 Centroid(2, 2) = 3 Centroid(1, 3) = 2 Centroid(2, 3) = 2 Centroid(1, 4) = 1 Centroid(2, 4) = 1 Centroid(1, 5) = 0 Centroid(2, 5) = 0
54
Kemudian akan dilakukan penghitungan jarak terhadap obyek titik yang
dimasukkan (dataNilaiX dan dataNilaiY) dengan kelima kluster diatas dan
dilakukan pengelompokan terhadap titik-titik obyek.
Setelah itu algoritma K-Mean akan melakukan iterasi atau perulangan
didalam menghitung letak centroid baru dan mengelompokkan data kedalam
kluster baru tersebut hingga algoritma K-Mean mencapai kestabilan dan tidak ada
lagi perpindahan atau pergerakan kluster (perGerakanCluster = false).
Setelah mendapatkan titik pusat kluster yang stabil, barulah dihitung prediksi nilai
55
ANALISIS HASIL
5.1
Analisa Manfaat
1.
Dengan implementasi algoritma
K-Means
didalam memprediksi nilai
mahasiswa ini dapat memperdalam pengetahuan seputar algoritma
K-Means
.
2.
Bisa dengan cepat memprediksi nilai mahasiswa berdasarkan pengelompokan
mata kuliah prasyaratnya.
5.2
Kelebihan Sistem yang Dibuat
1.
User interface yang
user friendly
(mudah digunakan oleh user).
2.
Bisa mengetahui IPK mahasiswa saat ini dan mata kuliah apa aja yang sudah
diambil.
3.
memiliki
error handling
cukup baik.
5.3
Kekurangan Sistem yang Dibuat
1.
Sistem ini masih belum bisa menangani perhitungan prediksi mata kuliah
yang memiliki 3 atau lebih mata kuliah prasyarat.
2.
Sistem ini belum bisa menangani permasalahan mengenai dosen pengampu
mata kuliah.
3.
Sistem ini masih melakukan perhitungan prediksi mata kuliah secara
satu-persatu.
56
BAB VI
PENUTUP
6.1
Kesimpulan
Dari hasil analisa dan implementasi dapat disimpulkan bahwa :
1.
Pada algoritma
K-Means jika jumlah datanya tidak terlalu banyak maka,
pengelompokan dapat dilakukan dengan cepat dan mudah.
2.
Pada algoritma
K-Means Jumlah
cluster harus ditentukan sebelum
perhitungan dimulai.
3.
Hasil dari perhitungan algoritma K-Means adalah cluster yang bulat atau oval
karena berdasarkan pada pada jarak.
4.
Algoritma
K-means dapat diimplementasikan untuk mengelompokkan nilai
dalam prediksi nilai mahasiswa.
6.2
Saran
1.
Perhitungan algoritma
K-Means didalam sistem ini dikembangkan lagi
menjadi lebih spesifik sehingga bisa menangani mata kuliah yang memiliki
prasyarat lebih dari dua dan juga bisa menangani perhitungan mengenai dosen
pengampu mata kuliah.
2.
Sistem ini bisa dikembangkan untuk diimplementasikan dengan algoritma
pengelompokan (clustering) selain algoritma K-Means.
Gunawan, Ridowati,
Diktat Kuliah Rekayasa Perangkat Lunak II Teknik Informatika
Universitas Sanata Dharma
, Yogyakarta, 2004.
Gunawan, Ridowati,
Diktat Kuliah Data Mining dan Data Warehousing Teknik
Informatika Universitas Sanata Dharma
, Yogyakarta, 2005.
Kurniawathi, Ni Made Yuni,
Implementasi Email Marketing Dengan Menggunakan
Algoritma Decision Tree untuk Situs Bisnis pada Toko Buku
, Universitas Sanata
Dharma , Yogyakarta, 2005.
Polina, A.M, Diktat Kuliah Basis Data I Teknik informatika Universitas Sanata Dharma,
Yogyakarta, 2003.
Pramudiono, Iko,
Kuliah Umum Ilmu Komputer.Com
, www.ilmukomputer.com, 2003.
Ramadhan, Arief,
Seri Penuntun Praktis SQL Server 2000 dan VB6
, PT. Elex Media
Komputindo, Jakarta, 2005.
Santoso, Harip,
Pemrograman Client-Server Menggunakan SQL Server 2000 dan Visual
Basik 6
, PT. Elex Media Komputindo, Jakarta, 2003.
Teknomo,
Kardi,
K-Mean
Clustering
Tutorials
,
http://people.revoledu.com/kardi/tutorial/kMean/index.html, [ 13 Maret 2007 ].
Whitten, Bentley Dittman,
System Analysis and Design Method 6
thEdition
,