SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
YOSEP AMIN
10111648
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan kepada yang Mahakuasa Allah
Subhanahu wa ta'ala
atas rahmat dan karunia-Nya sehingga penulis dapat
menyelesaikan tugas akhir yang berjudul
“
Implementasi Algoritma
Fuzzy
K-Nearest Neighbour
(
Fuzzy
K-NN) Untuk Klasifikasi Proposal Skripsi
Berdasarkan Kelompok Keilmuan Di Teknik Informatika Unikom
”
, yang
diajukan untuk menempuh ujian akhir sarjana Program Strata I pada Jurusan Teknik
Informatika Universitas Komputer Indonesia. Sholawat serta salam semoga selalu
terlimpah kepada junjungan kita, Rasulullah Muhammad
Shallallahu
‘alaihi
wasallam
, kepada keluarga yang beriman, para
shahabat
,
tabi’in
,
tabi’ut
,
tabi’in
serta umatnya yang senantiasa mengamalkan dan mengemban risalah Islam hingga
akhir zaman.
Dalam melakukan penelitiannya, penulis di dukung oleh berbagai pihak
yang mendukung sehingga penelitian ini dapat terealisasi. Maka penulis ingin
berterima kasih kepada :
1.
Keluarga tercinta, Ibunda Iski binti sayad, Ayahanda Taryono bin Kodir, dan
Kakanda Yuli ani, Yeni, dan Roy Sobana
yang selalu memberikan do’a, kasih
sayang, semangat serta dorongan moril maupun materiil.
2.
Bapak Irawan Afrianto, S.T, M.T., selaku Ketua Jurusan Teknik Informatika
Universitas Komputer Indonesia yang telah memberikan izin untuk melakukan
penelitian Tugas Akhir di jurusan Teknik Informatika.
3.
Ibu Nelly Indriani Widiastuti, S.Si., M.T., selaku pembimbing yang telah
mengarahkan serta membimbing penulis dalam menyelesaikan Penulisan
Laporan Tugas Akhir ini.
4.
Ibu Kania Evita Dewi, SPd., M.Si. selaku Dosen Penguji Satu.
5.
Ibu Gentisya Tri Mardiani, S.Kom., M.Kom., selaku Dosen Wali IF-14
angkatan 2011.
iv
9.
Sahabat sekaligus keluarga yang selalu memberikan banyak warna dan
kenangan di hidup penulis. Para sahabat Amburadoel, F4, Badminton Sport
Club, Best Brother Forever dan Ourway Badminton Club.
10.
Pihak-pihak lain yang membantu penulis untuk dapat menyelesaikan tugas
akhir ini yang tidak dapat disebutkan satu per satu.
Penulis menyadari bahwa penulisan laporan ini masih jauh dari sempurna
maka kritik dan saran dari semua pihak dibutuhkan untuk menambah wawasan
penulis.
Akhir kata semoga Allah
Subhanahu wa ta'ala
membalas segala kebaikan
yang telah penulis terima dan harapan penulis semoga laporan tugas akhir ini dapat
bermanfaat bagi pihak yang membutuhkan.
Bandung, 27 Februari 2016
v
DAFTAR ISI
ABSTRAK ... i
ABSTRACT
... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... ix
DAFTAR SIMBOL ... xii
DAFTAR LAMPIRAN ... xiv
BAB 1 PENDAHULUAN ... 1
1.1
Latar Belakang Masalah ... 1
1.2
Rumusan Masalah ... 2
1.3
Maksud dan Tujuan ... 2
1.4
Batasan Masalah ... 3
1.5
Metodologi Penelitian ... 3
1.5.1
Pengumpulan Data ... 4
1.5.2
Analisis ... 5
1.5.3
Implementasi ... 5
1.5.4
Pengujian ... 6
1.5.5
Penarikan Kesimpulan ... 6
1.6
Sistematika Penulisan ... 6
BAB 2 LANDASAN TEORI ... 9
2.1
Proposal Skripsi ... 9
vi
2.4.1
Konsep
Fuzzy Logic
... 19
2.5
Algoritma
K-Nearest Neighbour
... 22
2.6
Fuzzy K- Nearest Neighbour
... 25
2.7
Metode
Linear
... 27
2.8
Pemrograman Terstruktur ... 29
2.8.1
Entity Relationship Diagram
(ERD) ... 30
2.8.2
Data Flow Diagram
(DFD) ... 31
2.8.3
Kamus Data ... 32
2.9
C# ... 32
2.10
Confusion Matrix
... 34
BAB 3 ANALISIS DAN PERANCANGAN ... 35
3.1
Analisis Masalah ... 35
3.2
Analisis Proses ... 36
3.2.1
Preprocessing
... 37
3.2.2
Term Weigthing
... 41
3.2.3
Klasifikasi ... 43
3.3
Analisis Data ... 45
3.3.1
Analisis Data Masukan ... 45
3.3.2
Analisis Data Keluaran ... 45
3.4
Analisis Metode ... 46
3.4.1
Analisis Tahap Pelatihan ... 46
vii
3.5
Analisis Kebutuhan Perangkat Lunak ... 58
3.5.1
Analisis Kebutuhan Non Fungsional ... 58
3.5.2
Analisis Kebutuhan Fungsional ... 58
3.6
Perancangan Sistem ... 73
3.6.1
Perancangan Antarmuka ... 76
3.6.2
Jaringan Semantik ... 79
BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 81
4.1
Implementasi ... 81
4.2
Pengujian Performansi ... 84
4.3
Kesimpulan Pengujian ... 97
BAB 5 KESIMPULAN DAN SARAN ... 99
5.1
Kesimpulan ... 99
5.2
Saran ... 99
101
FIKOM UMB, hal 21
[2] Prasetyo, Dimas. Muflikhah, Laili. Ridok, Achmad.
“
klasifikasi genre film
berdasarkan judul dan sinopsis menggunakan fuzzy k-nearest neighbour (Fuzzy
K-NN)
”, Prodi ilmu komputer, Program teknologi informasi dan ilmu komputer,
Universitas Brawijaya.
[3] Nazir, Moh.
Ph.D, “
Metode Penelitian
”, Edisi Ketujuh, Bogor : Ghalia
Indonesia, 2011.
[4] Pressman, Roger S, Ph.D,”
Rekayasa Perangkat Lunak
”, Edisi 7,Yogyakarta:
ANDI, 2012.
[5]
S.A, Rosa, Shalahudin.M. “
Rekayasa Perangkat Lunak: Tertruktur dan
Berorientasi Objek
”. Bandung: Informatika. 2015.
[6] Sianipar, R., H. “
Panduan Praktis Pemrograman C# Bagi Pemula
”.
Yogyakarta: ANDI. 2014.
[7] Raymond J. Mooney. CS 391L:
Machine Learning Text Categorization.
University Of Texas at Austin, 2006.
[8] Gregorius, S. Gunawan, Ibnu.
Yunono, Ferry. “
Algoritma Porter Stemmer For
Bahasa Indonesia untuk pre-processing text mining berbasis Metode Market Basket
Analysis
”. Jurusan Teknik Informatika, UK.
[9] Lasmedi, Afuan.”
Stemming Dokumen Teks Bahasa Indonesia Menggunakan
Algoritma Porter
”, Prodi Teknik Informatika, Fakultas Sains dan Teknik,
Universitas Jendral Sudirman.
[10] Budiharto,W., and Suharton
o, D.,”
Artificial Intelligence
”, Yogyakarta : Andi,
102
[11] Keller JM, Gray MR, Givens J.A. A Fuzzy K-Nearest Neighbor .Algorithm
IEEE Transaction on Systems, Man, and Cybernetics. Vol SMC-15. No 4. 1985.
[12] Prasetyo, Eko.
Fuzzy K-Nearest Neighbor In Every Class Untuk Klasifikasi
Data
. Seminar Nasional Teknik Informatika. Jurusan Teknik Informatika Fakultas
Teknologi Industri Universitaas Pembangunan Nasional Veteran Jawa Timur. Pp
57-60. 2012.
[13] Wisdarianto, Ardhy. Ridok, Achmad. Rahman, Arif, Muh.
“
Penerapan
Metode
fuzzy k-nearest neighbour (Fuzzy K-NN) untuk Pengklasifikasian Spam
”, Prodi ilmu komputer, Program teknologi informasi dan ilmu komputer,
Universitas Brawijaya.
[14] W., Teguh, Hardika. Mardji. Furqon, Tanzil, M.
“
Penerapan Metode
fuzzy
k-nearest neighbour (Fuzzy K-NN) untuk Diagnosa Penderita Liver Berdasarkan
Indian Patient Dataset(ILPD)
”, Prodi ilmu komputer, Program teknologi informasi
dan ilmu komputer, Universitas Brawijaya.
[15] M.,Selly, Yanita. Ridok, Achmad. Muflikhah, Laili.
“
Perbandingan K-Nearest
Neighbor dan
fuzzy k-nearest neighbour (Fuzzy K-NN) Pada Diagnosis Penyakit
diabetes Melitus
”, Prodi ilmu komputer, Program teknologi informasi dan ilmu
komputer, Universitas Brawijaya.
[16] S., Amiratus, Rahmi. Ridok, Achmad. Muflikhah, Laili.
“
Penerapan Metode
fuzzy k-nearest neighbour (Fuzzy K-NN) untuk menentukan Kualitas Hasil
Rendemen Tanaman Tebu
”, Prodi ilmu komputer, Program teknologi informasi dan
ilmu komputer, Universitas Brawijaya.
[17] Puspasari, Maslikha. Dewi, Candra. Rahman, Arif, Muh.
“
Prediksi Tingkat
Resiko Penyakit Jantung Koroner(PJK) Menggunakan Metode
fuzzy k-nearest
neighbour (Fuzzy K-NN)
”, Prodi ilmu komputer, Program teknologi informasi dan
[18] Lestiyanto, Yudha, Dony.
“
Stemming Bahasa Indonesia Sebagai Media
Belajar Siswa Sekolah Menggunakan Algoritma Porter
”. Sistem Informasi.
Universitas Dian Nuswantoro. Semarang. 2014.
[19]
Agusta, Ledy, “
Perbandingan Algoritma Stemming Porter dengan algoritma
nazief & adriani untuk stemming dokumen teks bahasa indonesia
”
konferensi
nasional sistem dan informatika 2009. Fakultas Teknologi Informasi. Universitas
Kristen Satya Wacana. KSN&109-036. 2009.
[20
] Herman; Andani Achmad; dan Amil ahmad ilham, “
klasifikasi dokumen
naskah dinas menggunakan algorita term frequency-inversed document frequency
dan vector space model
”, balai besar pengkajian dan pengembangan komunikasi
dan informatika makassar, kemkominfo & Jurusan elektro, prodi informatika,
fakultas teknik, UNHAS.
[21] Indriani, Aida, “
Klasifikasi Data Forum dengan menggunakan Metode Naive
Bayes Classifier
”, Seminar Nasional Aplikasi Teknologi Informasi(SNATI) 2014,
1
1.1
Latar Belakang Masalah
Skripsi
merupakan
matakuliah
penutup
yang
diambil
oleh
mahasiswa/mahasiswi yang sedang menempuh jenjang pendidikan strata 1 di
perguruan tinggi negeri atau pun perguruan tinggi swasta, skripsi menjadi salah satu
syarat untuk kelulusannya. Skripsi merupakan istilah yang digunakan di indonesia
untuk mengilustrasikan suatu karya tulis ilmiah berupa paparan tulisan hasil
penelitian sarjana S1 yang membahas permasalahan/fenomena dalam bidang ilmu
tertentu dengan menggunakan kaidah
–
kaidah
yang berlaku[1]. Karya
tulis/penelitian ilmiah ini akan dilaporkan kedalam laporan skripsi, sebelum
melakukan skripsi, biasanya para mahasiswa/mahasiswi akan membuat terlebih
dahulu usulan penelitian atau biasanya disebut proposal skripsi yang akan diajukan
ke panitia sidang proposal skripsi untuk disidangkan.
Metode
Fuzzy k-Nearest Neighbour
merupakan salah satu metode yang digunakan
untuk klasifikasi, metode ini dikembangkan pertama kali oleh James M. Keller
dasar dari algoritma ini adalah pemberian nilai
membership
sebagai fungsi nilai
pola jarak dari sejumlah himpunan
k-Nearest Neighbour
dan pemberian nilai
keanggotaan
Neighbour
pada kelas tertentu[2]. Pada penelitian yang pernah
dilakukan yang berhubungan dengan kasus ini yaitu berjudul
Web Document
Classification Based on Fuzzy k-NN Algorithm
yang dilakukan oleh Zhang, Yi Niu,
dan Huabei nie[2]. Mengatakan kelebihan dari metode
fuzzy
k-NN terletak pada
tingkat keakurasian yang dihasilkan lebih baik daripada metode klasifikasi lain
seperti k-
Nearest Neighbour
(k-NN), dan
Support Vektor Machine
(SVM). Pada
penelitian tersebut juga mengatakan bahwa kekurangan yang dimiliki oleh
Fuzzy
k-NN ini, yakni terletak pada kecepatan pengklasifikasian yang lebih lambat
dibandingkan dua metode klasifikasi pembanding diatas[2].
Berdasarkan penjelasan diatas, dalam penelitian ini akan dilakukan
implementasi algoritma fuzzy k-
Nearest Neighbour
untuk menyelesaikan
permasalahan kasus klasifikasi proposal skripsi. Diambil studi kasus di program
studi Teknik Informatika UNIKOM.
1.2
Rumusan Masalah
Berdasarkan pemaparan latar belakang diatas dapat dirumuskan masalahnya,
antara lain : Bagaimana implementasi metode
Fuzzy k-Nearest Neighbour
untuk
melakukan klasifikasi proposal skripsi.
1.3
Maksud dan Tujuan
Maksud dari penelitian ini adalah untuk implementasi
Fuzzy k-Nearest
Neighbour
dalam melakukan klasifikasi Proposal Skripsi.
Tujuan dari penelitian ini adalah untuk mengetahui keakuratan metode
Fuzzy
k-Nearest Neighbour
dalam melakukan klasifikasi proposal skripsi.
1.4
Batasan Masalah
Adapun batasan masalah yang dapat dijelaskan adalah sebagai berikut:
1.
Data
training
dan data
testing
diperoleh dari proposal skripsi
mahasiswa/mahasiswi Teknik Informatika UNIKOM.
3.
Sumber data diambil dari situs if.unikom.ac.id/skripsi dan disimpan dalam
format
file text
dengan ekstensi txt (*.txt).
4.
Pengelompokan dokumen proposal skripsi mengikuti pengelompokan yang
sudah ditetapkan pada prodi Teknik Informatika yang disebut dengan
kelompok keilmuan.
5.
Term Frequency Inverse Document Fequency (TF-IDF)
sebagai metode
pembobotan
term.
[2]
6.
porter stemmer
sebagai algortima yang digunakan untuk proses
stemming.
[19]
7.
euclidean distance
digunakan sebagai metode penghitungan jarak antara
dokumen
testing
dan dokumen
training
[11].
1.5
Metodologi Penelitian
Preprocessing (tokenizing, filtering,
stemming, weighting) Pelatih an
Preprocessing (tokenizing, filtering,
stemming, weighting) Pengujian
Klasifikasi Analisis
Implementasi
Pengujian
Penarikan Kesimpulan Pengumpulan
[image:17.595.131.438.101.611.2]Data
Gambar 1.1 Alur Penelitian
1.5.1
Pengumpulan Data
1.
Studi Literatur
Pengumpulan data yang dilakukan dengan cara mempelajari sumber
kepustakaan diantaranya hasil penelitian, buku referensi, dan
bacaan-bacaan yang berkaitan dengan penelitian.
2.
Observasi
Teknik pengumpulan data observasi dilakukan dengan mengadakan
pengamatan atau penelitian langsung terhadap objek penelitian.
1.5.2
Analisis
Analisis dilakukan untuk mendapat gambaran secara mendetail mengenai
tahapan-tahapan apa saja yang akan dilakukan. Dalam hal ini tahapan analisis
terbagi menjadi dua sub yakni tahap pelatihan dan tahapan pengujian yang masing
memiliki sub lain yakni tahapan
preprocessing
yang terdapat pada pelatihan dan
pengujian serta tahap klasifikasi yang terdapat pada pengujian. Kemudian
dilakukan perhitungan manual untuk masing-masing tahapan yang bertujuan
sebagai simulasi yang nantinya akan diterapkan pada tahap selanjutnya yakni
implementasi.
1.5.3
Implementasi
Implementasi merupakan tahap pembangunan perangkat lunak yang
kontennya disesuaikan dengan tahap analisis. Metode pembangunan perangkat
lunak yang akan digunakan yakni metode skuensial linier yang sudah disesuaikan
dengan kebutuhan penelitian, fase
–
fasenya antara lain:
1.
Analisis
Pada fase ini pengumpulan kebutuhan diintensifkan dan difokuskan pada
sistem yang akan dibangun meliputi identifikasi domain informasi, tingkah
laku sistem, unjuk kerja, dan antarmuka sistem.
2.
Desain
Fase ini difokuskan pada proses desain struktur data, arsitektur sistem,
representasi interface, dan algoritma program.
3.
Kode
6
proses desain akan diterjemahkan kedalam suatu bahasa pemrograman
tertentu untuk menghasilkan sebuah sistem.
4.
Test
Fase ini dilakukan untuk menemukan kesalahan-kesalahan yang mungkin
terjadi pada proses pengkodean serta memastikan bahwa input yang dibatasi
memberikan hasil yang sesuai dengan kebutuhan.
1.5.4
Pengujian
Fase ini adalah fase untuk menghitung keakuratan dari metode
Fuzzy
k-nearest neighbour
yang diimplementasikan untuk klasifikasi proposal skripsi.
1.5.5
Penarikan Kesimpulan
Fase ini akan menyajikan hasil penelitian dan nilai keakuratan dari metode
Fuzzy
k-
nearest neighbour
serta kesimpulan terkait hasil pengujian yang telah
dilakukan.
1.6
Sistematika Penulisan
Sistematika penulisan skripsi ini disusun untuk memberikan gambaran umum
tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah
sebagai berikut:
BAB 1 PENDAHULUAN
Bab ini berisi latar belakang, rumusan masalah, maksud dan tujuan, batasan
masalah, metodologi penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini berisi uraian tentang proposal, skripsi, proposal skripsi,
text
preprocessing,
tokenizing
,
filtering, stemming, weighting
, Logika
Fuzzy,
Algoritma
K-
nearest neighbour
, dan
Fuzzy
k-
nearest neighbour
, teori mengenai
Pemrograman Terstruktur,
Entity Relationship Digram, Data Flow Diagram
,
bahasa c#, dan
confusion matrix.
Analisis
Desain
Kode
Test
[image:20.595.115.437.241.314.2]Pemodelan Sistem
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini membahas mengenai analisis masalah, analisis metode yang
digunakan, analisis penyelesaian masalah, analisis simulasi (perhitungan metode
Fuzzy
K-
Nearest Neighbour
) klasifikasi dan analisis perancangan sistem.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini membahas tentang pengujian akurasi algoritma
fuzzy
k
-nearest
neighbour
(FK-NN) pada klasifikasi proposal skripsi dengan menggunakan
program simulasi yang telah dibangun.
BAB 5 KESIMPULAN DAN SARAN
9
2.1
Proposal Skripsi
Skripsi adalah istilah yang digunakan di Indonesia untuk mengilustrasikan
suatu karya tulis ilmiah berupa paparan tulisan hasil penelitian sarjana S1 yang
membahas suatu permasalahan/fenomena dalam bidang ilmu tertentu dengan
menggunakan kaidah-kaidah yang berlaku[1]. Proposal skripsi sendiri merupakan
Suatu permintaan, pengajuan ide kepada pihak lain untuk mendapatkan perizinan
topik, tempat penelitian, dan lain sebagainya yang diajukan oleh seorang
mahasiswa dalam usahanya untuk melakukan skripsi sebagai syarat kelulusannya
sebagai sarjana.
Fungsi porposal skripsi penting untuk seorang mahasiswa tingkat akhir yang
akan melakukan penelitian sebagai syarat kelulusannya, antara lain:
1.
Untuk mengajukan persetujuan topik tugas akhir.
2.
Untuk mengajukan tempat penelitian.
3.
Untuk mendapatkan perizinan yang menunjang penelitian seperti akses
data, melakukan observasi, melakukan wawancara, dan lain sebagainya
di tempat penelitian.
Dalam menyusun proposal skripsi harus memperhatikan sistematika
penulisannya, sistematika penulisan sendiri disusun untuk memberikan gambaran
umum tentang penelitian yang akan dilakukan. Sistematika penulisan proposal
tergantung pada jenis penelitiannya, tapi pada umumnya isi dari sistematika
penulisan seperti dibawah ini:
1.
Halaman Judul
Berisi judul dari proposal skripsi, logo universitas, dan keterangan
fakultas, program studi dan nama universitas beserta tahun penyusunan.
2.
Daftar Isi
10
3.
Daftar Tabel
Berisi daftar tabel yang digunakan pada proposal skripsi.
4.
Daftar Gambar
Berisi daftar gambar yang terdapat pada proposal skripsiDaftar Lampiran
Berisi daftar data penunjang penelitian.
5.
Bab I Pendahuluan
Berisi latar belakang, rumusan masalah, maksud dan tujuan, batasan
masalah, metodologi penelitian dan sistematika penulisan.
6.
Bab II Landasan Teori
Berisi pembahasan seluruh buku
–
buku, jurnal ilmiah, dan ataupun
sumber lain yang menjadi materi pembangun penelitian.
7.
Bab III Metode Penelitian
Berisi pembahasan metode penelitian yang digunakan pada penelitian
yang akan dilakukan, meliputi metode pengumpulan data dan metode
analisis data,
8.
Daftar Pustaka
Berisi seluruh kepustakaan yang digunakan dalam penyusunan proposal.
Dicantumkan dibagian ini kemudian disusun secara alfabet dari A
–
Z.
2.2
Text Mining
Text Mining
merupakan penerapan konsep dan teknik data
mining
untuk
mencari pola dalam teks, proses penganalisisan teks guna menyarikan informasi
yang bermanfaat untuk tujuan tertentu. Proses data mining untuk data dokumen atau
teks memerlukan lebih banyak tahapan, mengingat data teks memiliki karakteristik
yang lebih kompleks dari pada data biasa. Tujuannya yakni mencari kata
–
kata
yang dapat mewakili isi dari dokumen sehingga dapat dilakukan analisa
keterhubungan antar dokumen diproses[7]. Langkah
–
langkah yang dilakukan pada
2.2.1
Text Preprocessing
Pada Tahap
text preprocessing
dilakukan beberapa proses menyiapkan judul
dan deksripsi proposal skripsi agar menjadi dokumen teks yang siap diolah ditahap
selanjutnya, umumnya pada tahap ini terdapat beberapa proses , diantaranya:
tokenizing, filtering, stemming.
2.2.1.1
Tokenizing
Tahap
tokenizing
adalah tahap pemotongan
string
input
berdasarkan tiap
kata yang menyusunnya. Setiap kalimat yang ada di dokumen akan disusun menjadi
kata per kata, semua tanda baca dan tanda hubung akan dihapuskan. Contoh dari
tahap ini adalah sebagai berikut:
Teks
Input
:
Teknik Informatika adalah sebuah program studi di unikom.
Hasil Token:
Teknik
Informatika
Adalah
Sebuah
Program
Studi
Di
Unikom
2.2.1.2
Filtering
Tahap
Filtering
adalah tahap mengambil kata
–
kata penting dari hasil
token, dalam proses ini bisa menggunakan algoritma
stop list
(membuang kata yang
kurang penting) atau
word list
(menyimpan kata penting).
stop list
adalah daftar kata
yang sering digunakan dan tidak menjelaskan isi dari dokumen atau
stopword.
12
Teknik
unikom
Informatika
Adalah
Sebuah
Program
Studi
Di
Hasil
Filter
:
Teknik
Informatika
Program
Studi
Unikom
2.2.1.3
Stemming
Tahap
Stemming
adalah tahap dimana kata hasil filtering akan dirubah
kedalam bentuk dasarnya(
Stem
). Untuk kata dalam bahasa inggris, metode
stemming
yang paling populer adalah menggunakan alg
oritma Martin porter’s
stammer
atau biasa disebut
porter stemmer.
Algoritma ini juga bisa diaplikasikan
untuk bahasa selain inggris, dalam hal ini akan diterapkan pada bahasa indonesia
juga.
Porter stemmer for
Bahasa Indonesia dikembangkan oleh Fasillah Z. Tala
pada tahun 2003. Implementasi
porter stemmer for
Bahasa Indonesia berdasarkan
Gambar 2.1 Algoritma
Porter Stemmer
[8]
Adapun langkah
–
langkah pada algortima porter[9] adalah sebagai berikut:
1.
Hapus
Particle
,
2.
Hapus Possesive Pronoun.
3.
Hapus awalan pertama. Jika tidak ada lanjutkan ke langkah 4a, jika ada
cari maka lanjutkan ke langkah 4b.
4.
a. Hapus awalan kedua, lanjutkan ke langkah 5a.
b.Hapus akhiran, jika tidak ditemukan maka kata tersebut diasumsikan
sebagai
root word.
Jika ditemukan maka lanjutkan ke langkah 5b.
5.
a. Hapus akhiran. Kemudian kata akhir diasumsikan sebagai
root word
b.Hapus awalan kedua. Kemudian kata akhir diasumsikan sebagai
root
word
.
14
Tabel 2.1 Aturan untuk
Inflectional Particel
Tabel 2.2 Aturan untuk
inflectional possesive pronoun
Akhiran Replacement Measure Condition Additional Condition Contoh
-kah NULL 2 NULL Bukukah
-lah NULL 2 NULL Pergilah
-pun NULL 2 NULL Bukupun
Akhiran Replacement Measure Condition Additional Condition Contoh
-ku NULL 2 NULL Bukuku
-mu NULL 2 NULL Bukumu
[image:28.595.87.488.276.373.2]Tabel 2.3 Aturan untuk
first order derivational prefix
Tabel 2.4 Aturan untuk
second order derivational prefix
Awalan Replacement Measure Condition Additional Condition Contoh
Meng- NULL 2 NULL Mengukur > ukur
Meny- S 2 V... Menyapu > sapu
Men- NULL 2 NULL Menduga > duga
Mem- P 2 V... Memaksa > Paksa
Mem- NULL 2 NULL Membaca > baca
Me- NULL 2 NULL Merusak > rusak
Peng- NULL 2 NULL Pengukur > ukur
Peny- S 2 V... Penyapu > sapu
Pen- NULL 2 NULL Penduga > duga
Pem- P 2 V... Pemaksa > paksa
Pem- NULL 2 NULL Pembaca > baca
di- NULL 2 NULL Diukur > ukur
Ter- NULL 2 NULL Tersapu > sapu
Ke- NULL 2 NULL Kekasih > kasih
Awalan Replacement Measure Condition Additional Condition Contoh
Ber- NULL 2 NULL Berlari > lari
Bel- NULL 2 Ajar Belajar > ajar
Be- NULL 2 Ker Bekerja > kerja
Per- NULL 2 NULL Perjelas > jelas
Pel- NULL 2 Ajar Pelajar > ajar
[image:29.595.112.511.528.704.2]16
Tabel 2.5 Aturan untuk
derivational suffix
Contoh umum dari tahap ini adalah sebagai berikut:
Hasil
Filter
:
Membacakan
Membersihkan
Dikurangi
Pandangan
mining
text
Hasil
Stemming
:
Baca
Bersih
Kurang
Pandang
Mine
Text
Akhiran Replacement Measure
Condition
Additional Condition Contoh
-kan NULL 2 Prefix bukan anggota {ke,
peng}
Tarikkan > tarik,
Mengambilkan > ambil
-an NULL 2 Prefix bukan anggota {di,
meng, ter}
Makanan > makan,
Perjanjian > janji.
-i NULL 2 Prefix bukan anggota
{ber, ke, peng}
Tandai > tanda, mendapati
2.3
Term Weighting
Tahap
Term
weighting
adalah tahap pembobotan kata yang dihasilkan dari
proses
stemming.
Metode yang sering digunakan yaitu menggunakan metode
TF-IDF (
Term Frequency - Inverse Document Frequency
). Pada metode ini,
perhitungan bobot
term
(kata) dalam sebuah dokumen dilakukan dengan
mengalikan nilai
Term Frequency
dengan
Inverse Document Frequency
.
Term Frequency
(TF) adalah faktor yang menentukan bobot
term
pada suatu
dokumen berdasarkan jumlah kemunculannya dalam dokumen tersebut. Nilai
jumlah kemunculan suatu kata (
term frequency
) diperhitungkan dalam pemberian
bobot terhadap suatu kata. Semakin besar jumlah kemunculan suatu term dalam
dokumen, semakin besar pula bobotnya dalam dokumen atau akan memberikan
nilai kesesuian yang semakin besar.
Inverse Document Frequency
(IDF) adalah pengurangan dominansi
term
yang sering muncul di berbagai dokumen. Hal ini diperlukan karena term yang
banyak muncul di berbagai dokumen, dapat dianggap sebagai term umum (
common
term
) sehingga tidak penting nilainya. Sebaliknya faktor kejarangmunculan kata
(
term scarcity
) dalam koleksi dokumen harus diperhatikan dalam pemberian bobot.
Kata yang muncul pada sedikit dokumen harus dipandang sebagai kata yang lebih
penting (
uncommon term
) daripada kata yang muncul pada banyak dokumen.
Pembobotan akan memperhitungkan faktor kebalikan frekuensi dokumen yang
mengandung suatu kata (
inverse document frequency
). Hal ini merupakan usulan
dari George Zipf. Zipf mengamati bahwa frekuensi dari sesuatu cenderung
kebalikan secara proposional dengan urutannya[2].
Untuk menghitung bobot kata (Wi) dalam dokumen dihitung dengan
menggunakan rumus:
= �� , � × ���
(2.1)
Dimana:
18
= indeks kata (
term).
�� , �
= banyaknya kata (
term
) yang muncul dalam dokumen
�
.
���
=
inverse document frequency
dari kata (
term
) .
Untuk menghitung
���
dapat menggunakan rumus:
���
= log
�� ��(2.2)
Dimana:
���
=
inverse document frequency
dari kata (
term
)
.
�
= jumlah dokumen keseluruhan.
��
= jumlah dokumen
yang memiliki kata (
term
)
.
2.4
Logika
Fuzzy
Dasar logika
fuzzy
adalah teori himpunan
fuzzy
. Pada teori himpunan
fuzzy
,
peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu
himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau
membership function
menjadi ciri utama dari penalaran dengan logika fuzzy
tersebut.
Logika fuzzy digunakan untuk menerjemahkan suatu besaran yang
diekspresikan menggunakan bahasa (
linguistik
). Misalnya besaran kecepatan laju
kendaraan yang diekspresikan dengan pelan , agak cepat, cepat, dan sangat
cepat[10].
Fuzzy logic
pertama kali diperkenalkan oleh Jan Lukasiewicz pada tahun
1920-an sebagai teori kemungkinan. Logika kemungkinan ini memperluas
jangkauan dari nilai kebenaran untuk semua bilangan riil pada interval antara 0 dan
1. Pada tahun 1965, profesor dan kepala departemen teknik elektrik di university of
california, Berkeley, yaitu Lotfi Zadeh, menemukan kembali , mengidentifikasi,
mengeksplorasi, mempromosikan, dan berjuang untuk
fuzzy logic
. Beliau
memperluas ruang kerja teori kemungkinan menjadi sistem logika matematika
formal dan konsep baru untuk mengaplikasikan istilah bahasa alami pada
penelitiannya, yaitu ‘
Fuzzy sets
’. Logika baru ini dinamakan
fuzzy logic, fuzzy logic
2.4.1
Konsep
Fuzzy Logic
Fuzzy logic
berkaitan dengan kebenaran proporsional, namun terkadang
didunia nyata sering tidak didefinisikan secara jelas. Contohnya sulit untuk
memberikan gambaran kebenaran
“amin sudah tua” berbeda dengan menentukan
nilai benar atau salah pada frasa “jika john berumur 60 tahun”. Karena dalam
beberapa kasus umur 60 tahun sudah cukup tua untuk memenuhi syarat mendapat
keuntungan warga senior diberbagai segi. Tetapi, bila dilihat dari segi yang lain
umur 60 tahun tidak cukup tua karena tidak memenuhi syarat jaminan sosial. Jadi,
diperlukan nilai kebenaran untuk memahami frasa “amin sudah tua” guna mendapat
nilai antara [0,1], tidak hanya 0 atau 1.
Fuzzy logic
memiliki banyak nilai, tidak seperti logika boolean yang memiliki
2 nilai.
Fuzzy logic
menangani derajat keanggotaan dan derajat kebenaran.
Fuzzy
logic
menangani nilai yang berkelanjutan dari 0(sepenuhnya salah) sampai
1(sepenuhnya benar).
2.4.1.1
Himpunan
Fuzzy
Himpunan
fuzzy
merupakan kumpulan prinsip matematik sebagai
penggambaran pengetahuan berdasarkan derajat keanggotaan. Sebuah himpunan
20
Gambar 2.2 Perbedaan
fuzzy logic
dengan
boolean logic
2.4.1.2
Fungsi Keanggotaan
Tingkat keanggotaan
�
�memetakan objek atau atributnya
ke
bilangan riil positif pada interval [0,1]. Karena karakteristik pemetaannya seperti
sebuah fungsi, maka disebut sebagai fungsi kenaggotaan. Definisi formalnya
adalah:
“sebuah fungsi keanggotaan
�
�dikarakteristikkan dengan pemetaan
�
�∶
→
[ , ], ∈
dimana x sebuah bilangan riil yang mendeskripsikan sebuah objek
atau atributnya dan X adalah semesta pembicaraan dan A adalah himpunan bagian
Gambar 2.3 fungsi keanggotaan dari variabel linguistik kecepatan
fungsi keanggotaan adalah pemetaan sebuah elemen x pada semesta nilai
keanggotaan menggunakan sebuah bentuk fungsi teoritis. Beberapa fungsi
keanggotaan
fuzzy
:
1.
Representasi Linear
Pemetaan input ke derajat keanggotaannya digambarkan sebagai
suatu garis lurus. Terdapat 2 bentuk yaitu representasi liner naik dan
turun.
a.
Kurva representasi linear naik
Himpunan dimulai pada nilai dominan yang memiliki derajat
keanggotaan[0] dan bergerak ke kanan menuju domain dengan
derajat keanggotaan yang lebih tinggi. Fungsi keanggotaannya
adalah:
�
= {
;
�
�−−
; �
;
(2.3)
b.
Kurva representasi linear turun
22
�
= {
−−�; �
:
(2.4)
2.
Representasi Kurva Segitiga
Representasi kurva segitiga merupakan gabungan antara 2 garis
(linear). Fungsi keanggotaannya adalah:
�
= {
;
� � �
�−−
; �
−�−
;
(2.5)
3.
Representasi Kurva Trapesium
Representasi kurva trapesium menyerupai bentuk segitiga, namun
memiliki beberapa titik dengan derajat keanggotaan 1. Fungsi
keanggotaannya adalah:
�
=
{
;
� � � �
�−−
; �
:
−�−
;
�
(2.6)
4.
Representasi Kurva Betuk Bahu
Daerah yang terletak pada sisi kanan dan kiri yang tidak mengalami
perubahan, digunakan untuk mengakhiri variabel suatu daerah
fuzzy
. Pada
bahu kiri kurva bergerak dari benar ke salah, dan pada bahu kanan kurva
bergerak dari salah ke benar.
2.5
Algoritma
K-Nearest Neighbour
Klasifikasi menggunakan algoritma K-
nearest neighbour
adalah dengan
menentukan jarak untuk mengukur seberapa dekat jarak kesamaan data
pembelajaran dengan objek tersebut. Berdasarkan konsep “
learning by
analogy
”,
data
learning
dideskripsikan dengan atribut numerik
n
-dimensi. Tiap data
learning
merepresentasikan sebuah titik yang ditandai dengan c, dalam ruang
n
-dimensi. Jika sebuah data
query
yang labelnya tidak diketahui diinputkan, maka
K-nearest neighbour
akan mencari
k
buah data
learning
yang berjarak paling dekat
dengan data
query
dalam ruang
n
-dimensi. Jarak antara data
query
dengan data
data
query
dengan semua titik yang merepresentasikan data
learning
dengan rumus
euclidean distance
.
Pada fase
training
, algoritma ini hanya akan melakukan penyimpanan vektor
–
vektor fitur dan kasifikasi data
training sample
. Pada fase klasifikasi, fitur
–
fitur
yang sama dihitung untuk data
testing
(klasifikasinya belum diketahui). Jarak dari
vektor yang baru ini terhadap seluruh vektor
training sample
dihitung dan sejumlah
k
buah yang paling dekat diambil. Titik yang baru klasifikasinya diprediksikan
termasuk pada klasifikasi terbanyak dari titik
–
titik tersebut.
Nilai
k
yang terbaik untuk algoritma ini tergantung pada data; secara
umumnya nilai
k
yang tinggi akan mengurangi efek
noise
pada klasifikasinya, tetapi
membuat batasan antara setiap klasifikasi menjadi lebih kabut, nilai
k
yang bagus
dapat dipilih dengan optimasi paramater, misalnya dengan menggunakan
cross-validation. Kasus khusus dimana klasifikasi diprediksi berdasarkan data
pembelajaran yang paling dekat (dengan kata lain,
k
= 1) disebut algoritma
nearest
neighbour
.
Tepat atau tidaknya algoritma K-
nearest neighbour
dipengaruhi
oleh ada
atau tidaknya fitur
–
fitur yang tidak relevan atau jika bobot fitur tersebut tidak
setara dengan relevansinya terhadap klasifikasi. Riset yang dilakukan terhadap
algoritma ini sebagian besar membahas bagaimana memilih dan memberi bobot
terhadap fitur, agar performa klasifikasi menjadi lebih baik.
K
buah data
learning
terdekat akan melakukan
voting
untuk menentukan label
mayoritas. Label data
query
akan ditentukan berdasarkan label mayoritas dan jika
ada lebih dari satu label mayoritas maka label data query dapat dipilih secara acak
di antara label
–
label mayoritas yang ada.
Untuk dapat menentukan hasil dari klasifikasi menggunakan algoritma
24
menggunakan metode pengukuran kesamaan (
similarity
) yang digunakan untuk
mengukur kemiripan antara data
training
dan data
testing
, nama metode tersebut
adalah
cosine similarity
[2]. Rumusnya adalah sebagai berikut:
, � =
∑ �
� �,� . ��,�√∑ �
� �,�. √∑ �
� �,�(2.7)
Dimana:
, �
= kemiripan (
similarity
) antara data
testing
dan data
training.
= data
testing.
�
= data
training.
�,
= nilai bobot
term
data
training
.
�,
= nilai bobot
term
data
testing
.
= indeks
term.
Gambar 2.4 FlowChart Algoritma K-NN
2.6
Fuzzy K- Nearest Neighbour
Algoritma ini memberikan nilai membership sebagai fungsi pola jarak dari
sejumlah himpunan K-
nearest neighbour
dan pemberian nilai keanggotaan
neighbour
pada kelas tertentu. Sehingga pada algoritma ini data
testing
yang akan
diklasifikasikan akan memiliki nilai keanggotaan pada semua kelas. Klasifikasi
algoritma ini nantinya akan memilih nilai keanggotaan kelas pada data
testing
yang
paling tinggi[2]. Berikut merupakan persamaan untuk memberikan nilai
keanggotaan pada data
testing x
dengan menggunkan metode
euclidean distance
.
Jarak
eucidean distance
antara vektor data
testing xi
dengan vektor data
training xj
dihitung menggunakan rumus dibawah ini:
‖ − ‖ = ∑ |� − � |
�
=
/
(2.8)
Start
Tentukan jumlah terdekat k (k = ditentukan oleh user)
Hitung jarak test data ke
training data
Urut data berdasarkan data yang mempunyai jarak euclid
terkecil
Tentukan kelompok test data berdasarkan label mayoritas
pada k
26
Dimana :
‖ − ‖
= jarak e
uclidean
vektor data
testing
dan dokumen
training
k-
j
.
Ni
= bobot
term
dalam dokumen
testing
.
�
= bobot
term
pada dokumen
training
ke-
j
.
= index
term
ke-
i.
�
= jumlah
term
keseluruhan hasil
text preprocessing
.
Untuk penentuan nilai keanggotaan kelas ke-
i
pada tetangga ke-
j
dihitung
menggunakan rumus dibawah ini:
� = {
, ≠
, =
(2.9)
Dimana :
�
= nilai keanggotaan kelas ke-
i
pada tetangga ke-
j
.
i =
kelas
genre
.
j =
Tetangga terdekat (K).
Penentuan nilai membership kelas pada data testing x dengan metode
euclidean distance
dihitung menggunakan rumus dibawah ini:
�
=
∑
�
‖� − � ‖ / �− =
∑
‖� − � ‖ / �− =
(2.10)
Dimana:
�
= nilai keanggotaan kelas ke-
i
pada data
testing x
.
m =
bobot pangkat (
weight exponent
).
Jika jarak yang digunakan adalah Euclidean maka m = 2.
Jika jarak yang digunakan adalah Chebyshev m =
∞
maka.
Sedangkan untuk memberikan nilai keanggotaan pada data
testing
x, dengan
menggunakan metode
cosine similiarity
dihitung dengan menggunakan rumus
dibawah ini:
�
=
∑
=
�
,
∑
=
,
(2.11)
Dimana:
�
= nilai keanggotaan kelas ke-
i
pada data
testing x
.
�
= nilai keanggotaan kelas ke-
i
pada tetangga ke-
j
yang telah dihitung
dengan menggunakan rumus 2.9.
, �
= kemiripan (
similarity
) antara data
testing
q dengan data
training
d yang telah dihitung dengan menggunakan rumus 3.
2.7
Metode
Linear
Model Sekuensial Linier atau sering disebut Model Pengembangan Air
Terjun, merupakan paradigma model pengembangan perangkat lunak paling tua,
dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan
perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada
tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain , kode, dan
pengujian.
1.
Analisis
28
2.
Desain
Fase ini difokuskan pada proses desain struktur data, arsitektur sistem,
representasi interface, dan algoritma program.
3.
Kode
Fase ini dilakukan setelah menyelesaikan proses desain, hasil yang ada di
4.
proses desain akan diterjemahkan kedalam suatu bahasa pemrograman
tertentu untuk menghasilkan sebuah sistem.
5.
Test
Pengujian dilakukan untuk menemukan kesalahan-kesalahan yang mungkin
terjadi
6.
pada proses pengkodean serta memastikan bahwa input yang dibatasi
memberikan hasil yang sesuai dengan kebutuhan.
Kelebihan:
1.
Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan
prosesnya teratur.
2.
Cocok digunakan untuk produk software/program yang sudah jelas
kebutuhannya di awal, sehingga minim kesalahannya.
3.
Software yang dikembangkan dengan metode ini biasanya menghasilkan
kualitas yang baik.
4.
Documen pengembangan sistem sangat terorganisir, karena setiap fase
harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
Kelemahan:
1.
Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan,
sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah
Kode
Test
Pemodelan Sistem
[image:42.595.107.474.372.444.2]Analisis
Desain
didapatkan tim pengembang harus diubah kembali/iterasi sering
menyebabkan masalah baru.
2.
Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel,
karena komitmen harus dilakukan pada tahap awal proses.
3.
Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh
customer/pelanggan.
4.
Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim
pengembang yang sedang membuat produk.
5.
Adanya waktu kosong (menganggur) bagi pengembang, karena harus
menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
2.8
Pemrograman Terstruktur
Pemrograman terstruktur adalah konsep atau paradigma atau sudut pandang
pemrograman yang membagi-bagi program berdasarkan fungsi-fungsi atau
prosedur-prosedur yang dibutuhkan program komputer. Modul-modul (pembagian
program ) biasanya dibuat dengan mengelompokkan fungsi-fungsi dan
prosedur-prosedur yang diperlukan sebuah proses tertentu.
30
fungsi
prosedur
fungsi
fungsi
prosedur File kode program
fungsi
prosedur
fungsi
fungsi
prosedur File kode program
fungsi
prosedur
fungsi
fungsi
prosedur File kode program
Program utama Include atau uses sebagai mekanisme menyatukan kode agar dapat
[image:44.595.168.430.120.418.2]saling akses
Gambar 2.6 ilustrasi pemrograman terstruktur[5]
Pemodulan pada pemrograman terstruktur dibagi berdasarkan fungsi-fungsi
dan prosedur-prosedur. Oleh karena itu, pemodelan pada pemrograman terstruktur
lebih fokus bagaimana memodelkan data dan fungsi-fungsi dan prosedur-prosedur
yang harus dibuat. Jenis paradigma pemrograman yang digunakan dapat dideteksi
dari bahasa pemrograman apa yang akan digunakan untuk membuat program, baru
setelah itu ditentukan paradigma pemrograman apa yang akan digunakan.
2.8.1
Entity Relationship Diagram (ERD)
matematika. ERD digunakan untuk pemodelan basis data relasional. Sehingga jika
penyimpanan basis data menggunakan OODBMS maka perancangan basis data
tidak perlu menggunakan ERD. ERD memiliki beberapa aliran notasi seperti notasi
Chen (dikembangkan oleh peter chen), Barker (dikembangkan oleh Richard Barker,
Ian Parmer, Harry Ellis), notasi Crow
’s Foot, dan beberapa notasi lain. Namun yang
banyak digunakan adalah notasi dari Chen. Berikut adalah contohnya:
Pustaka
dipinjam
Anggota
Peminjaman melakukan
N N
id judul id nama
[image:45.595.167.497.244.376.2]Tgl_pinjam Tgl_kembali
Gambar 2.7 ERD notasi Chen
2.8.2
Data Flow Diagram (DFD)
Informasi yang ada di dalam perangkat lunak dimodifikasi dengan beberapa
transformasi yang dibutuhkan.
Data flow diagram
(DFD) atau dalam bahasa
indonesia menjadi diagram alir data (DAD) adalah representasi grafik yang
menggambarkan aliran informasi dan transformasi informasi yang diaplikasikan
sebagai data yang mengalir dari masukan (
input
) dan keluaran (
output
)[5].
DFD dapat digunakan untuk merepresentasikan sebuah sistem atau
perangkat lunak pada beberapa level abstraksi. DFD dapat dibagi menjadi beberapa
level yang lebih detail. DFD menyediakan mekanisme untuk pemodelan fungsional
ataupun pemodelan aliran informasi. Oleh karena itu, DFD lebih sesuai digunakan
untuk memodelkan fungsi-fungsi perangkat lunak yang akan diimplementasikan
menggunakan pemrograman terstruktur karena pemrograman terstruktur
membagi-bagi membagi-bagiannya dengan fungsi-fungsi dan prosedur-prosedur[5].
32
Anggota Perpustakaan
Petugas perputakaan Mengelola sistem
infomatika manajemen perpustakaan Pencarian pustakan
pustakan
Kelola pustaka
[image:46.595.136.472.117.257.2]Kelola pustaka
Gambar 2.8 DFD Edward Yourdon dan Tom DeMarco[5]
2.8.3
Kamus Data
Kamus data (data dictionary) dipergunakan untuk memperjelas aliran data
yang digambarkan pada DFD. Kamus data adalah kumpulan daftar elemen data
yang mengalir pada sistem perangkat lunak sehingga masukan (inputan) dan
keluaran (output) dapat dipahami secara umum (memiliki standar secara penulisan).
Kamus data dalam imlementasi program dapat menjadi parameter masukan dan
keluaran dari sebuah fungsi atau prosedur.
2.9
C#
C# adalah bahasa pemrograman yang dikembangkan oleh perusahaan
pengembang perangkat lunak besar dunia yakni microsoft. Bahasa pemrograman
C# sudah distandarisasi dengan standar internasional oleh ECMA. Seperti halnya
bahasa pemrograman lain bahasa pemrograman C# bisa digunakan untuk
membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis dekstop,
aplikasi berbasis web, ataupun aplikasi berbasis web service.
Ada beberapa alasan seorang programmer memilih C# untuk digunakan
dalam mengembangkan program, alasan
–
alasannya antara lain:
1.
Sederhana(
Simple
)
menyebabkan kebingungan pada saat menggunakannya dan juga
berpotensi dapat menjadi masalah bagi para programmer C++.
2.
Modern
Adanya beberapa fitur seperti
exception handling, garbage
collection, extensible data types
, dan
code security
menjadikan bahasa C#
menjadi bahasa pemrograman yang modern.
3.
Object Oriented Language
Kunci dari bahasa pemrograman yang bersifat
Object Oriented
Language
adalah adanya
encapsulation, inheritance,
dan
polymorphism.
Dan sifat
–
sifat tersebut telah dimiliki oleh bahas C#. Sehingga C#
merupakan bahasa pemrograman yang bersifat
Object Oriented
Language
.
4.
Powerful
dan Fleksibel
C# dapat digunakan untuk mebangun berbagai macam aplikasi,
seperti aplikasi pengolahan kata, grafik, spreadsheets, atau bahkan
membuat
compiler
untuk sebuah bahasa pemrograman.
5.
Efisien
C# adalah bahasa pemrograman yang menggunakan jumlah kata
–
kata yang tidak terlalu banyak. C# hanya berisi kata
–
kata yang disebut
dengan
keyword.
Keyword
ini digunakan untuk menjelaskan berbagai
macam informasi. Jika kita berpikir bahwa dengan menggunakan banyak
keyword
kemudian akan membuat aplikasi lebih
powerful
itu tak selalu
benar, karena justru akan membuat pengembang lain menjadi kesulitan
saat membangun aplikasi.
6.
Modular
Kode C# ditulis dengan pembagian masing class
–
class yang terdiri
dari beberapa
routines
yang disebut dengan
member methods
. Class
–
class dan metode
–
metode ini dapat digunakan kembali oleh program
atau aplikasi lain.
34
Dengan dukungan penuh dari microsoft yang akan mengeluarkan
produk
–
produk utamanya dengan dukungan framework.NET, maka
masa depan bahasa C# sebagai salah satu bahasa pemrograman yang ada
di dalam lingkungan framework.NET akan lebih baik.
2.10
Confusion Matrix
[image:48.595.125.404.331.436.2]Confusion matrix
merupakan sebuah metode perhitungan yang digunakan
untuk mencari keakuratan pada hasil klasifikasi. Berikut merupakan tabel
confusion
matrix
:
Tabel 2.6
Confusion Matrix
Kelas
Prediksi
1
0
Kelas sebenarnya
1
TP
FN
0
FP
TN
Keterangan:
a.
True Positive
(TP), merupakan jumlah dokumen dari kelas 1 yang benar
diklasifikasikan sebagai kelas 1.
b.
False Positive
(FP), merupakan jumlah dokumen dari kelas 0 yang salah
diklasifikasikan sebagai kelas 1.
c.
False Negative
(FN), merupakan jumlah dokumen dari kelas 1 yang salah
diklasifikasikan sebagai kelas 0.
d.
True Negative
(TN), merupakan jumlah dokumen dari kelas 0 yang benar
diklasifikasikan sebagai kelas 0. [12]
Kemudian akan dihitung akurasinya, akurasi merupakan perhitungan antara
jumlah prediksi benar dan dibagikan dengan jumlah prediksi yang dilakukan yang
mempunyai tujuan untuk mengetahui berapa presentase keberhasilan suatu sistem
melakukan klasifikasi, untuk menghitung akurasi digunakan rumus sebagai berikut:
99
BAB 5
KESIMPULAN DAN SARAN
5.1
Kesimpulan
Berasarkan hasil penelitian, analisis, pelatihan dan pengujian algoritma
Fuzzy
K
-nearest neighbour
untuk klasifikasi proposal skripsi berdasarkan kelompok
keilmuan di Teknik Informatika unikom, didapatkan nilai keakuratan yang terbesar
yakni dengan presentase sebesar 51% pada nilai K=7 dan K=8, maka dari itu dapat
disimpulkan bahwa dalam penelitian yang dilakukan nilai K yang yang
menghasilkan keakuratan terbaik yakni pada nilai K=7 dan K=8.
5.2
Saran
Dalam pembuatan tugas akhir ini, masih terdapat banyak kekurangan yang
dapat diperbaiki untuk pengembangan selanjutnya. Beberapa saran yang dapat
diberikan adalah sebagai berikut:
1.
Menggunakan metode penghitungan jarak lain seperti
cosine similarity.
2.
Menggunakan algoritma stemming lain seperti algoritma nazief & adriani
untuk stemming bahasa indonesia karena algoritma porter stemmer belum
menunjukan hasil yang akurat.
3.
Menggunakan aplikasi bantuan untuk membenarkan penulisan yang salah
(tipo) yang terdapat pada data latih atau data uji agar membuat hasil
tokenizing, filtering
, dan
stemming
lebih baik.
4.
Menggunakan data latih yang banyak dan beragam untuk setiap kelasnya.
Sehingga presentase keakuratan klasifikasi menjadi lebih baik.
NIM
: 10111648
Tempat / Tgl Lahir
: Indramayu, 23 Nopember 1994
Jenis Kelamin
: Laki-laki
Alamat
: Jl. Raya Patrol
–
Haurgeulis gang mawar Rt/Rw 25/10
Blok Wanguk Lor Timur Desa Kedungwungu Kec.
Anjatan Kab.Indramayu 45256
Telepon
: 089631155491
Pendidikan
1.
1999
–
2005
: MI N Anjatan - Indramayu
2.
2005
–
2008
: SMP N 1 Anjatan - Indramayu
3.
2008
–
20011
: SMK Muhammadiyah Kandanghaur - Indramayu
4.
20011
–
2016
: Program Studi S1 Jurusan Teknik Informatika Fakultas
Teknik dan Ilmu Komputer Universitas Komputer
Indonesia
Bandung, 27 Februari 2016
Penulis
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
1Edisi...Volume..., Bulan 20..ISSN :2089-9033
Implementasi Algoritma
Fuzzy
K-
Nearest Neighbour
(
Fuzzy
K-NN) Untuk
Klasifikasi Proposal Skripsi Berdasarkan Kelompok Keilmuan Di Teknik
Informatika UNIKOM
Yosep Amin
Teknik Informatika – Universitas Komputer Indonesia
Jl. Dipatiukur 112-114 Bandung
Email : [email protected]
ABSTRAK
Skripsi merupakan mata kuliah penutup yang
diambil oleh mahasiswa/mahasiswi yang sedang menempuh jenjang pendidikan strata 1 di perguruan tinggi negeri atau pun perguruan tinggi swasta, skripsi menjadi salah satu syarat untuk kelulusannya. Berkembangnya ilmu pengetahuan setiap waktunya
membuat semakin beragamnya tema – tema skripsi
yang bermunculan, sehingga menimbulkan adanya
keanekaragaman proposal skripsi. Sehingga pihak
akademik membuat sebuah pengelompokan kepada
tema – tema skripsi tersebut Walaupun demikian
masih saja terjadi kesalahan pengelompokan proposal skripsi. Faktor pemicu salah memilih kelompok keilmuan karena masih berkaitannya satu kelompok keilmuan dengan kelompok keilmuan
yang lain. Untuk melakukan identifikasi proposal
skripsi dapat dilakukan dengan memanfaatkan metode klasifikasi.
Dalam penelitian ini metode fuzzy k-nearest
neighbour (FK-NN) diimplementasikan untuk klasifikasi proposal skripsi berdasarkan kelompok keilmuan. Dengan melakukan pengolahan kata sebelumnya serta menggunakan TFIDF sebagai metode pembobotan kata sehingga kata input dapat diolah sesuai kebutuhan. Parameter yang digunakan sebagai faktor penilaian yakni dilihat dari judul dan deskripsi proposal skripsi.
Berdasarkan hasil pengujian didapatkan niai keakuratan yang terbesar yakni dengan presentase sebesar 51% pada nilai K=7 dan K=8, maka dari itu dapat disimpulkan bahwa dalam penelitian yang dilakukan nilai K yang menghasilkan keakuratan terbaik yakni pada nilai K=7 dan K=8.
Kata kunci : proposal skripsi, Fuzzy K-Nearest
Neighbour, TF-IDF, Klasifikasi.
1. PENDAHULUAN 1.1 Latar Belakang
Skripsi merupakan matakuliah penutup yang diambil oleh mahasiswa/mahasiswi yang sedang menempuh jenjang pendidikan strata 1 di perguruan tinggi negeri atau pun perguruan tinggi swasta,
skripsi menjadi salah satu syarat untuk kelulusannya. Skripsi merupakan istilah yang digunakan di indonesia untuk mengilustrasikan suatu karya tulis ilmiah berupa paparan tulisan hasil penelitian sarjana S1 yang membahas permasalahan/fenomena dalam bidang ilmu tertentu dengan menggunakan
kaidah–kaidah yang berlaku[1]. Karya
tulis/penelitian ilmiah ini akan dilaporkan kedalam
laporan skripsi, sebelum melakukan skripsi,
biasanya para mahasiswa/mahasiswi akan membuat terlebih dahulu usulan penelitian atau biasanya disebut proposal skripsi yang akan diajukan ke panitia sidang proposal skripsi untuk disidangkan.
Berkembangnya ilmu pengetahuan setiap
waktunya membuat semakin beragamnya tema –
tema skripsi yang dibermunculan yang diajukan sebagai tema penelitian, yang kemudian dituangkan dalam proposal skripsi, dari perbedaan tema proposal skripsi yang dibuat oleh mahasiswa, menimbulkan adanya keanekaragaman proposal skripsi baik dari segi latar belakang, tujuan, metodologi, atau data penelitian. Sehingga pihak akademik membuat sebuah pengelompokan kepada
tema – tema skripsi tersebut, ini dilakukan agar
proposal skripsi dapat dikenali dan membantu
menempatkan proposal skripsi ke kelompok
keilmuan yang sesuai. Walaupun demikian masih saja terjadi kesalahan pengelompokan proposal
skripsi, mahasiswa terkadang salah memilih
kelompok keilmuan. Jika ini terjadi maka
penanganan terhadap proposal skripsi seperti masukan untuk arah pengerjaan skripsi tersebut akan tidak maksimal, karena proposal skripsi tidak ditangani oleh penguji yang ahli di bidangnya. Faktor pemicu salah memilih kelompok keilmuan karena masih berkaitannya satu kelompok keilmuan dengan kelompok keilmuan yang lain. Untuk melakukan identifikasi proposal skripsi dapat dilakukan dengan memanfaatkan metode klasifikasi.
Metode Fuzzy k-Nearest Neighbour merupakan
salah satu metode yang digunakan untuk klasifikasi, metode ini dikembangkan pertama kali oleh James M. Keller dasar dari algoritma ini adalah pemberian
nilai membership sebagai fungsi nilai pola jarak dari
sejumlah himpunan k-Nearest Neighbour dan
Algorithm yang dilakukan oleh Zhang, Yi Niu, dan Huabei nie[2]. Mengatakan kelebihan dari metode
fuzzy k-NN terletak pada tingkat keakurasian yang dihasilkan lebih baik daripada metode klasifikasi
lain seperti k-Nearest Neighbour (k-NN), dan
Support Vektor Machine(SVM). Pada penelitian tersebut juga mengatakan bahwa kekurangan yang
dimiliki oleh Fuzzy k-NN ini, yakni terletak pada
kecepatan pengklasifikasian yang lebih lambat dibandingkan dua metode klasifikasi pembanding diatas[2].
Berdasarkan penjelasan diatas, dalam
penelitian ini akan dilakukan implementasi
algoritma fuzzy k-Nearest Neighbour untuk
menyelesaikan permasalahan kasus klasifikasi
proposal skripsi. Diambil studi kasus di program studi Teknik Informatika UNIKOM.
1.2 Rumusan Masalah
Berdasarkan pemaparan latar belakang diatas dapat dirumuskan masalahnya, antara lain :
Bagaimana implementasi metode Fuzzy k-Nearest
Neighbour untuk melakukan klasifikasi proposal skripsi.
1.3 Maksud
Maksud dari penelitian ini adalah untuk
implementasi Fuzzy k-Nearest Neighbour dalam
melakukan klasifikasi Proposal Skripsi.
1.4 Tujuan
Tujuan dari penelitian ini adalah untuk
mengetahui keakuratan metode Fuzzy k-Nearest
Neighbour dalam melakukan klasifikasi proposal skripsi.
1.5 Metodologi Penelitian
Metode penelitian yang digunakan dalam penelitian ini yaitu metode penelitian deskriptif. Merupakan suatu metode dalam meneliti status sekelopok manusia, suatu objek, suatu set kondisi, suatu sistem pemikiran, ataupun suatu kelas peristiwa pada masa sekarang. Tujuan dari penelitian deskriptif ini adalah untuk membuat deskripsi, gambaran atau lukisan secara sistematis, faktual dan
akurat mengenai fakta-fakta, sifat-sifat serta
hubungan antar fenomena yang diselidiki. Serta memiliki ciri-ciri menerangkan hubungan, menguji
hipotesis-hipotesis, membuat prediksi serta
mendapatkan makna(kesimpulan) dan implikasi dari suatu masalah yang ingin dipecahkan[3]. alur penelitan yang akan dilakukan pada penelitian ini dapat dilihat pada gambar 1.1 sebagai berikut:
[image:55.595.323.499.87.357.2]Preprocessing (tokenizing, filtering, stemming, weighting) Pelatih an Preprocessing (tokenizing, filtering, stemming, weighting) Pengujian Klasifikasi Analisis Implementasi Pengujian Penarikan Kesimpulan
Gambar 1 Alur Penelitian
2. ISI PENELITIAN 2.1 Landasan Teori 2.1.1 Proposal Skripsi
Skripsi adalah istilah yang digunakan di Indonesia untuk mengilustrasikan suatu karya tulis ilmiah berupa paparan tulisan hasil penelitian
sarjana S1 yang membahas suatu
permasalahan/fenomena dalam bidang ilmu tertentu
dengan menggunakan kaidah-kaidah yang
berlaku[1]. Proposal skripsi sendiri merupakan Suatu permintaan, pengajuan ide kepada pihak lain
untuk mendapatkan perizinan topik, tempat
penelitian, dan lain sebagainya yang diajukan oleh
seorang mahasiswa dalam usahanya untuk
melakukan skripsi sebagai syarat kelulusannya sebagai sarjana.
2.1.2 Text Mining
Text Mining merupakan penerapan konsep dan teknik data mining untuk mencari pola dalam teks,
proses penganalisisan teks guna menyarikan
informasi yang bermanfaat untuk tujuan tertentu. Proses data mining untuk data dokumen atau teks memerlukan lebih banyak tahapan, mengingat data teks memiliki karakteristik yang lebih kompleks dari
pada data biasa. Tujuannya yakni mencari kata –
kata yang dapat mewakili isi dari dokumen sehingga dapat dilakukan analisa keterhubungan antar
dokumen diproses[7]. Langkah – langkah yang
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
3Edisi...Volume..., Bulan 20..ISSN :2089-9033
2.1.2.1 Text Preprocessing
Pada Tahap text preprocessing dilakukan
beberapa proses menyiapkan judul dan deksripsi proposal skripsi agar menjadi dokumen teks yang siap diolah ditahap selanjutnya, umumnya pada tahap ini terdapat beberapa proses , diantaranya:
tokenizing, filtering, stemming.
2.1.2.2 Tokenizing
Tahap tokenizing adalah tahap pemotongan
string input berdasarkan tiap kata yang menyusunnya. Setiap kalimat yang ada di dokumen akan disusun menjadi kata per kata, semua tanda baca dan tanda hubung akan dihapuskan.
2.1.2.3 Filtering
Tahap Filtering adalah tahap mengambil kata
– kata penting dari hasil token, dalam proses ini bisa
menggunakan algoritma stop list (membuang kata
yang kurang penting) atau word list(menyimpan kata
penting). Stop list adalah daftar kata yang sering
digunakan dan tidak menjelaskan isi dari dokumen
atau stopword.
2.1.2.4 Stemming
Tahap Stemming adalah tahap dimana kata
hasil filtering akan dirubah kedalam bentuk
dasarnya(Stem). Untuk kata dalam bahasa inggris,
metode stemming yang paling populer adalah
menggunakan algoritma Martin porter’s stammer
atau biasa disebut porter stemmer. Algoritma ini
juga bisa diaplikasikan untuk bahasa selain inggris, dalam hal ini akan diterapkan pada bahasa indonesia juga.
Porter stemmer for Bahasa Indonesia dikembangkan oleh Fasillah Z. Tala pada tahun
2003. Implementasi porter stemmer for Bahasa
Indonesia berdasarkan