repository.usd.ac.idrepository.usd.ac.id/32385/2/055314017_full.pdf · v halaman motto “ jika...
TRANSCRIPT
i
KLASIFIKASI DOKUMEN SKRIPSI
TEKNIK INFORMATIKA
MENGGUNAKAN METODE ROCCHIO
SKRIPSI
Diajukan untuk memenuhi salah satu syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Disusun oleh:
Andreas Hemawan Tri Nurdianto
NIM : 055314017
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS dan TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010
ii
CLASSIFICATION OF INFORMATIC ENGINEERING
FINAL PROJECT DOCUMENT
USING ROCCHIO METHOD
A THESIS
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Informatics Engineering Department
By :
Andreas Hemawan Tri Nurdianto
NIM : 055314017
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
iii
iv
v
HALAMAN MOTTO
“ Jika permainan telah dimulai janganlah mundur walaupun sering gagal
dalam melewati tiap level dalam permainan, tetaplah mencoba dan jangan
menyerah karena semua pasti akan ada jalan menuju ke kebahagiaan “
Bocah bagus anakku lanang,
Aja wedi , goleko pepadhange dalan, ora kendhat anggonku ngengudhang,
Duh bocah bagus anakku lanang,
Wong tua dudu raja, sing dak wariske dudu bandha donya,
Sangumu mung isi pitutur , muga dadi titah kang luhur.
Anak lanang bagusing ati,
Aja lali anggonmu memuji, Marang Gusti kang murbeng dumadi,
Mugo dadi padhange ati.
Urip ing ndonya iku sadhelo,
Urip ing kono koyo samudro,
Mula ngger, ojo wegah podho tetanen, ing kono mbesuk bakal panen.
Bocah bagus anakku lanang,
Aja nganti ninggal piwulang, mumpung jembar goleko pepadhang,
Ojo jirih ing pepalang.
Sejatine ora ono opo – opo,
Sejatine jagad awujud suwung, ora warno lan ora rupo,
Sing ana mung awing – uwung.
Akehing bandha dudu ukuran,
Drajat lan pangkat dudu takeran,
Lan pepujane rasa dudu anak, pagering jiwo dudu sanak.
Wong tuwamu dudu dewo, ora wenang nulis garise manungso,
Sangumu mung isi pitutur, mugo dadi titah kang luhur.
“People’s Dreams have no end”
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya orang lain kecuali telah disebutkan dalam kutipan atau daftar
pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, September 2010
Penulis,
Andreas Hemawan T. N
vii
PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Andreas Hemawan Tri Nurdianto
NIM : 055314107
Demi pengembangan ilmu pengetahuan,saya memberikan kepada perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
KLASIFIKASI DOKUMEN SKRIPSI
TEKNIK INFORMATIKA
MENGGUNAKAN METODE ROCCHIO
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan
dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data,
mendistribusikannya secara terbatas dan mempublikasikannya di internet atau media
lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun
memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai
penulis. Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta,
Pada tanggal : September 2010
Yang menyatakan
(Andreas Hemawan Tri Nurdianto)
viii
ABSTRAK
Skripsi merupakan tugas akhir mahasiswa sebagai syarat kelulusan. Setiap
tahun skripsi akan terus bertambah banyak seiring dengan kelulusan mahasiswa.
Sebagai akibatnya jumlah informasi yang didapat dari skripsi akan terus
bertambah banyak. Skripsi ini bertujuan membuat suatu aplikasi yang dapat
mengklasifikasikan skripsi berdasarkan dokumen – dokumen abstrak yang telah
ada. Menggunakan teknik sistem temu kembali informasi .
Sistem temu kembali informasi (information retrieval system) digunakan
untuk menemukan kembali (retrieve) informasi - informasi yang relevan terhadap
kebutuhan pengguna dari suatu kumpulan informasi secara otomatis. Dengan
sistem informasi temu kembali, terdapat dua proses penting yaitu proses indexing
dan pencarian dokumen. Proses indexing adalah proses pemberian bobot kata
berdasarkan frekuensi kemunculan kata pada satu dokumen dan menyimpannya
kedalam koleksi dalam database yang disebut index. Index yang terbentuk dapat
digunakan untuk pencarian dokumen yang sesuai dengan query user, dimana hasil
pencarian disusun berdasarkan tingkat kemiripan dokumen. Proses pencarian
kemiripan inilah yang digunakan untuk melakukan klasifikasi dokumen atau teks.
Untuk melakukan klasifikasi digunakan vector space model dengan term
(kata) sebagai pembentuk ruang vektor. Setiap vektor term mengandung bobot
yang digunakan untuk menghitung tingkat kemiripan dokumen. Tingkat
kemiripan dokumen dihitung menggunkan cosinus similarty. Untuk klasifikasi
dokumen menggunakan algoritma rocchio. Dalam algoritma rocchio terdapat 2
proses penting yaitu training dan testing. Proses training dilakukan secara
manual, betujuan untuk membetuk model dokumen yang merupakan centroid dari
sebuah kategori dokumen. Kategori dokumen yang digunakan adalah basisdata,
jaringan dan komputasi. Proses testing adalah proses pengujian dimana dokumen
akan secara otomatis diklasifikasikan oleh sistem.
Skripsi ini menggunakan 60 dokumen abstrak skripsi sebagai model
training dan 10 dokumen abstrak skripsi untuk pengujian. Untuk menghitung
tingkat precision dilakukan dengan membandingkan hasil quisioner dan hasil
klasifikasi sistem. Dari hasil perhitungan tingkat precision didapatkan precision
terendah 80% dan precision tertinggi 100% dari kuisioner yang dibagikan kepada
responden sebanyak 30 orang. Precision rata – rata adalah 93.67% dan hasil ini
baik.
ix
ABSTRACT Thesis is the final project, students as a condition of graduation. Each year
the paper will continue to grow much in line with the graduation of students. As a
result of information obtained from theses will continue to increase. This thesis
aims to create an application that can classify the thesis based on the document -
the document has no abstract. The methodology used is the information retrieval
system.
Information retrieval system (information retrieval system) used to find the
back (retrieve) information - information that is relevant to the needs of users
from a collection of information automatically. With information retrieval
systems, there are two important processes: process indexing and searching
documents. Indexing process is the process of weighting by frequency of
occurrence of words in a word document and save it into a collection in a database
called the index. Index that is formed can be used to search according to user
queries, where search results have been prepared based on the similarity of the
relevant documents to irrelevant documents based on similarities in the training
documents with user queries. Similarity search process is used to perform the
classification of documents or texts.
This thesis documents menggunkan 60 abstract theses as a model training
and 10 thesis abstracts documents for testing. Precision is done by comparing the
results of questionnaires and the results of the classification system. Number of is
respondents 30 people and the lowest precision is 80% and the highest precision is
100%. Precision - average is 93.67% and show the good result.
x
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa karena atas segala berkat dan
rahmat-Nya penulis dapat menyelesaikan skripsi dengan judul “Klasifikasi
Dokumen Skripsi Teknik Informatika Menggunakan Metode Rocchio”.
Penulisan skripsi ini diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik Program Studi Teknik Informatika Universitas
Sanata Dharma Yogyakarta.
Dengan terselesaikannya penulisan skripsi ini, penulis mengucapkan
terima kasih kepada pihak-pihak yang telah membantu memberikan dukungan
baik berupa masukan ataupun berupa saran. Ucapan terima kasih ditujukan kepada
:
1. Bapak dan Ibu yang telah memberi dukungan kepada penulis baik moral,
spiritual maupun material selama masa studi.
2. Bapak Puspaningtyas Sanjaya Adi, S.T., M.T. selaku Ketua Jurusan
Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata
Dharma Yogyakarta dan dosen pembimbing yang telah memberikan
dukungan, bantuan dan dorongan kepada penulis selama mengikuti proses
perkuliahan sampai dengan penyelesaian skripsi ini.
3. Bapak Yosef Agung Cahyanta,.S.T,M.T. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
4. Kakak dan Adik tersayang atas doa dan dukungannya.
5. Y.Yeni Setiawan, Hendri Cahyana, Ig. Dimas Sukma Sadewa, Cahyo
Herdian, Nikolas Niko, Charli Saragih, Y.F Dyna Sulistiyowati, Y. Santo
Dwi, Agung Pratnyawan, Andrianto, Adi Susila, semua teman-teman
Teknik Informatika angkatan 2005 dan 2006 yang telah menemani dan
memberi semangat yang sangat berarti sehingga akhirnya skripsi ini dapat
terselesaikan.
xi
Dalam penulisan skripsi ini, pastilah masih banyak kekurangan dan hal
yang perlu diperbaiki. Oleh karena itu saran dan kritik dari pembaca yang
sekiranya dapat membangun sangat penulis harapkan.
Akhir kata, semoga penulisan skripsi ini berguna untuk menambah
wawasan ataupun menjadi referensi bagi para pembaca sekalian khususnya pada
mahasiswa Teknik Informatika.
Yogyakarta, 17 September 2010
Penulis
xii
DAFTAR ISI
HALAMAN JUDUL INDONESIA ........................................................................ .i
HALAMAN JUDUL ENGLISH............................................................................ .ii
HALAMAN PERSETUJUAN .............................................................................. .iii
HALAMAN PENGESAHAN ................................................................................ iv
HALAMAN MOTTO ............................................................................................. v
PERNYATAAN KEASLIAN KARYA ................................................................ vi
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS ............................................................................ vii
ABSTRAK ........................................................................................................... viii
ABSTRACT ........................................................................................................... ix
KATA PENGANTAR ............................................................................................ x
DAFTAR ISI ......................................................................................................... xii
DAFTAR TABEL ................................................................................................. xv
DAFTAR GAMBAR ........................................................................................... xvi
BAB I ...................................................................................................................... 1
PENDAHULUAN .................................................................................................. 1
1.1 Latar Belakang ......................................................................................... 1
1.2 Rumusan Masalah .................................................................................... 2
1.3 Batasan Masalah ....................................................................................... 2
1.4 Tujuan Penelitian ...................................................................................... 3
1.5 Metodologi Penelitian .............................................................................. 3
1.6 Sistematika Penulisan ............................................................................... 4
BAB II ..................................................................................................................... 6
LANDASAN TEORI .............................................................................................. 6
2.1 Pengertian Sistem Temu-kembali Informasi ................................................. 6
2.2 Pengindeksan (Indexing) Dalam Sistem Temu-Kembali Informasi ............. 6
2.3 Model Ruang Vektor .................................................................................. 14
2.4 Algoritma Rocchio Clasification................................................................. 16
2.5 Evaluasi Pengujian Sistem ......................................................................... 23
xiii
BAB III ................................................................................................................. 24
ANALISIS DAN PERANCANGAN SISTEM .................................................... 24
3.1 Gambaran Umum Sistem ............................................................................ 24
3.1.1 Analisis Kebutuhan .............................................................................. 29
3.2 Analisa Sistem ............................................................................................. 30
3.2.1 Model Use Case ................................................................................... 30
3.2.1.1 Actor ............................................................................................... 30
3.2.1.2 Diagram Use Case.......................................................................... 31
3.2.1.3 Tabel Use Case .............................................................................. 31
3.2.2 Skenario Use Case ............................................................................... 33
3.2.3 Model Analisis .................................................................................... 34
3.2.3.1 Realisasi Use case ......................................................................... 34
3.2.3.2 Diagram Kelas Keseluruhan ......................................................... 35
3.3 Desain Sistem ............................................................................................ 35
3.3.1 Kelas Perancangan .............................................................................. 35
3.3.2 Atribut dan Method ............................................................................. 41
3.3.3 Prototype Antarmuka ......................................................................... 41
3.3.4 Desain Database ................................................................................. 41
3.3.5 Rencana Pengujian dan Evaluasi ........................................................ 45
BAB IV ................................................................................................................. 46
IMPLEMENTASI ................................................................................................. 46
4.1 Implementasi .............................................................................................. 46
4.1.1 Implementasi Antarmuka / View ......................................................... 46
4.1.2 Implementasi Contro ............................................................................ 48
4.1.3 Implementasi Model............................................................................. 48
4.1.4 Implementasi Entitas / Tabel ................................................................ 51
4.2 Pengujian Hasil Rekomendasi.................................................................... 51
BAB V ................................................................................................................... 55
ANALISIS HASIL ................................................................................................ 55
5.1 Kesimpulan ................................................................................................. 55
5.2 Saran ............................................................................................................ 55
xiv
Daftar Pustaka ....................................................................................................... 58
Lampiran 1 ……………….……………………………………………...…….....60
Lampiran 2 ……………….……………………………………………...……......73
Lampiran 3 ……………….……………………………………………...……......92
Lampiran 4 ……………….……………………………………………...……......93
Lampiran 5 ……………….……………………………………………...……....125
Lampiran 6 ……………….……………………………………………...……....133
Lampiran 7 ……………….……………………………………………...……....143
Lampiran 8 ……………….……………………………………………...……....148
xv
DAFTAR TABEL
Tabel 2.1. Kombinasi Awalan Akhiran yang Tidak Diijinkan ............................. 10
Tabel 2.2. Cara Menentukan Tipe Awalan Untuk Kata yang Diawali dengan “te-”
........................................................................................................................ 11
Tabel 2.3. Jenis Awalan Berdasarkan Tipe Awalannya ........................................ 11
Tabel 2.4. Pembobotan (TF/IDF) Dokumen ......................................................... 13
Tabel 2.5 Pencarian centroid kategori .................................................................. 18
Tabel 2.6 Contoh dokumen query ......................................................................... 20
Tabel 2.7 Dasar perhitungan Similarity ................................................................ 20
Tabel 3.8 Tabel aktor yang terlibat ....................................................................... 30
Tabel 3.9 Tabel Use Case...................................................................................... 31
Tabel 3.10 Tabel Skenario Use Case .................................................................... 33
Tabel 3.11 Tabel Realisasi Use Case .................................................................... 34
Tabel 3.12 Tabel Kelas Perancangan .................................................................... 36
Tabel 3.13 Tabel Prototype Antarmuka ................................................................ 41
Tabel 4.14 Implemantasi antarmuka ..................................................................... 46
Tabel 4.15 Implemantasi Kontrol ......................................................................... 48
Tabel 4.16 Implementasi Model ........................................................................... 48
Tabel 4.17 Implementasi Entity / Tabel ................................................................ 51
Tabel 4.18 Hasil perhitungan similarity sistem..................................................... 52
Tabel 4.19 Hasil kuisioner responden ................................................................... 52
Tabel 4.20 Hasil Precision .................................................................................... 53
Tabel 4.21 Daftar term yang masuk dalam 3 kategori .......................................... 53
Tabel 4.22 Daftar term yang masuk dalam 3 kategori …………………...……....53
Tabel 5.23 Atribut dan Metode…………………………………………...…….....53
Tabel 5.24 Daftar Call Procedur ………………………………………………...146
xvi
DAFTAR GAMBAR
Gambar 2.1 Proses parsing kata .............................................................................. 7
Gambar 2.2 Proses stoplist ...................................................................................... 8
Gambar 2.3 Ilustrasi Algoritma TF-IDF ............................................................... 13
Gambar 2.4 Ilustrasi perhitungan centroid ............................................................ 18
Gambar 3.5 Gambar proses klasifikasi keseluruhan ............................................. 25
Gambar 3.6 Gambar Proses indexing(a), pembuatan model(b) ............................ 26
Gambar 3.7 Gambar Proses Klasifikasi ................................................................ 27
Gambar 3.8 Gambar model proses indexing ......................................................... 27
Gambar 3.9 Gambar model klasifikasi dokumen .................................................. 28
Gambar 3.10 Gambar Proses Pencarian Dokumen ............................................... 29
Gambar 3.11 Diagram Use Case ........................................................................... 31
Gambar 3.12 Class diagram ................................................................................. 42
Gambar 3.13 Rancangan database ........................................................................ 43
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Skripsi merupakan tugas akhir mahasiswa sebagai syarat kelulusan. Setiap
tahun skripsi akan terus bertambah banyak seiring dengan kelulusan mahasiswa.
Sebagai akibatnya jumlah informasi yang didapat dari skripsi akan terus
bertambah banyak.
Banyaknya informasi seharusnya memberikan manfaat bagi user. Namun
terkadang tidak mudah untuk mengetahui informasi yang berkaitan. Kerterbatasan
waktu atau mungkin perangkat bisa menjadi penyebabnya. Oleh karena itu,
dibutuhkan suatu metode pengelompokkan dokumen skripsi untuk mempermudah
dalam pengambilan informasi sesuai kebutuhan user. Klasifikasi merupakan salah
satu metode yang dapat digunakan untuk menemukan keterkaitan antar dokumen.
Tujuan klasifikasi adalah untuk memisahkan sekumpulan dokumen ke dalam
beberapa kelompok atau kelas dengan menilai kemiripan antar dokumen dari segi
konten. Pengelompokan skripsi - skripsi yang saling berkait ini, akan membantu
user untuk menemukan informasi yang dibutuhkan.
Ada banyak metode klasifikasi dokumen. Disini penulis menggunakan
metode klasifikasi berbasis vector space yang merepresentasikan dokumen
sebagai fitur vector dari term yang muncul pada semua dokumen. Setiap fitur
vector mengandung bobot term atau frekuensi term yang ada pada dokumen
2
tersebut. Kesamaan antar dokumen dihitung menggunakan perhitungan yang
berbasis fitur vector seperti cosine measure.
Pada skripsi ini basis vector space yang digunakan untuk melakukan
klasifikasi adalah Rocchio Clasification yang menghitung term dalam suatu
dokumen, centroid dari tiap term dalam suatu kategori / kelompok dan juga
menghitung tingkat kemiripan dokumen.
Penggunaan algoritma Rocchio sebagai algoritma klasifikasi, diharapkan
menghasilkan aplikasi yang dapat bermanfaat dalam teknologi informasi,
misalnya aplikasi klasifikasi dokumen skripsi teknik informatika yang dapat
mempermudah pencarian informasi mengenai suatu kategori tertentu.
1.2 Rumusan Masalah
Bagaimana membangun applikasi klasifikasi dokumen skripsi di Teknik
Informatika?
1.3 Batasan Masalah
Adapun batasan aplikasi klasifikasi dokumen skripsi Teknik Informatika adalah
sebagai berikut :
1. Dokumen yang dapat diproses adalah dokumen teks (*.txt).
2. Data dokumen diambil dari judul, abstrak skripsi dari Fakultas Teknik
Informatika Sanata Dharma dan Universitas Kristen Duta Wacana
(http://lecturer.ukdw.ac.id/katalog/).
3
3. Jenis pengklasifikasian skripsi untuk pengujian dibagi menjadi 3 kategori
yaitu basisdata, komputasi dan jaringan.
1.4 Tujuan Penelitian
Adapun tujuan penulisan skripsi adalah sebagai berikut:
1. Membangun sistem klasifikasi dokumen skripsi Teknik Informatika.
2. Membangun sistem yang dapat membantu mahasiswa dalam pencarian
dokumen skripsi.
1.5 Metodologi Penelitian
Dalam penyusunan skripsi dan pembuatan aplikasi klasifikasi dokumen skripsi
Teknik Informatika, dipakai beberapa metode untuk mencari informasi yang
diperlukan, yaitu:
1. Metode pengumpulan data :
a. Studi literatur
Mencari dan mengumpulkan literatur - litaratur yang berkaitan
dengan permasalahan yang dikerjakan, yaitu mengenai klasifikasi
dokumen dengan menggunakan algoritma Rocchio.
b. Pembagian kuisioner untuk melakukan uji presisi aplikasi
2. Metode pengembangan sistem
Metode perancangan sistem yang digunakan adalah metode berorientasi
objek Rational Unified Process (Building Web Applications with UML,
Jim Conallen). Adapun langkah-langkahnya adalah :
4
a. Inception
Mempelajari masalah-masalah yang timbul dan menentukan
kebutuhan-kebutuhan bagi pemakai sistem untuk mengidentifikasi
pemecahan yang beralasan.
b. Elaboration
Menggambarkan bagaimana suatu sistem dibentuk termasuk
menyangkut konfigurasi dari komponen-komponen perangkat
lunak dari suatu sistem.
c. Construction
Merupakan tahapan pembangunan sistem sesuai dengan model
analisis dan perancangan pada fase-fase berikutnya.
d. Transistion
Membuat apa yang sudah dimodelkan menjadi suatu produk jadi.
1.6 Sistematika Penulisan
Bab I Pendahuluan
Memberikan gambaran secara umum tentang isi skripsi yang meliputi:
latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat, metode
penelitian dan sistematika penulisan.
Bab II Landasan Teori
Berisi konsep dasar sistem temu-kembali informasi (information retrieval
system), bagian-bagian dari sistem temu kembali informasi, teknik-teknik temu-
kembali informasi dan metode klasifikasi rocchio.
5
Bab III Analisa dan Perancangan
Berisi gambaran umum sistem, metode pengumpulan data, usecase
diagram, sekenario perancangan, analisa peracangan, perancangan basis data,
perancangan tampilan masukan dan keluaran untuk pengguna.
Bab IV Implementasi dan Pengujian
Bab ini menjelaskan tentang implementasi ke dalam bentuk program
berdasarkan desain yang telah dibuat dan pengujian applikasi dalam bentuk olah
hasil kuisioner.
Bab V Kesimpulan dan Saran
Bab ini berisi semua kesimpulan yang didapatkan dari penelitian yang
telah dilakukan. Kesimpulan menjawab rumusan masalah yang dituliskan pada
bab pendahuluan secara ringkas dan jelas.
DAFTAR PUSTAKA
LAMPIRAN
6
BAB II
LANDASAN TEORI
2.1 Pengertian Sistem Temu-kembali Informasi
Sistem temu-kembali informasi adalah suatu proses untuk
mengidentifikasi, kemudian memanggil (retrieve) suatu dokumen dari suatu
simpanan (file), sebagai jawaban atas pemintaan informasi. Menurut Lancaster
(1968) dalam Rijsbergen (1979): “Sebuah information retrieval system (Sistem
Temu-kembali Informasi) tidak memberitahu (yakni tidak mengubah
pengetahuan) pengguna mengenai masalah yang ditanyakannya. Sistem tersebut
hanya memberi-tahukan keberadaan (atau ketidakberadaan) dan keterangan
dokumen-dokumen yang berhubungan dengan permintaannya”.
2.2 Pengindeksan (Indexing) Dalam Sistem Temu-Kembali
Informasi
Indexing merupakan sebuah proses untuk melakukan pengindeksan terhadap
kumpulan dokumen yang akan disediakan sebagai informasi kepada pemakai.
Proses pengindeksan bisa secara manual ataupun secara otomatis. Dewasa ini,
sistem pengindeksan secara manual mulai digantikan oleh sistem pengindeksan
otomatis. Adapun tahapan dari pengindeksan adalah sebagai berikut :
Parsing Dokumen yaitu proses pengambilan kata-kata dari kumpulan
dokumen.
Stoplist yaitu proses pembuangan kata buang seperti: tetapi, yaitu,
sedangkan, dan sebagainya.
7
Stemming yaitu proses penghilangan/ pemotongan dari suatu kata
menjadi bentuk dasar. Kata “diadaptasikan” atau “beradaptasi” mejadi
kata “adaptasi” sebagai istilah.
Term Weighting dan Inverted File yaitu proses pemberian bobot pada
istilah.
Berikut ini adalah penjelasan tiap tahap pengindeksan dokumen :
Parsing
Untuk pemrosesan, dokumen dipilah menjadi unit-unit yang lebih kecil
misalnya berupa kata. Unit pemrosesan tersebut disebut sebagai token. Parsing
merujuk pada proses pengenalan token yang terdapat dalam rangkaian teks
(Grossman, 2002). Dalam proses parsing memerlukan suatu pengetahuan bahasa
untuk menangani karakter-karakter khusus, serta menentukan batasan satuan unit
dalam dokumen.
Gambaran proses parsing adalah sebagai berikut :
Gambar 2.1 Proses parsing kata
Proses parsing juga mengunakan daftar kata buang (stoplist) yakni daftar
kata-kata yang tidak digunakan (dibuang) karena tidak signifikan dalam
Dokumen
Kalkulus Mahasiswa mengerti dan menguasai:
konsep pendiferensialan dan
pengintegralan; penerapan konsep itu dalam berbagai
kegiatan teknik.
Fungsi, limit dan kontinuitas Operasi pendiferensialan dan
penerapannya;
Token
Kalkulus
Mahasiswa
Mengerti
Dan
Menguasai
…
Fungsi
Limit
8
membedakan dokumen atau kueri misalnya kata-kata tugas seperti yang, dan,
hingga, dan dengan. Berikut ini adalah gambaran proses stoplist :
Gambar 2.2 Proses stoplist
Stemming
Stemming yaitu proses penghilangan/ pemotongan dari suatu kata menjadi
bentuk dasar. Kata “diadaptasikan” atau “beradaptasi” mejadi kata “adaptasi”
sebagai istilah. Stemming dilakukan dengan membandingkan kata yang telah
dihilangkan imbuhannya dengan kata dasar dalam kamus. Stemming yang
digunkan adalah stemming Nazief and Adriani’s. Algoritma skema yang berasal
Adriani dan Nazief digambarkan dalam laporan teknis yang tidak dipublikasikan
dari Universitas Indonesia (1996).
Berikut adalaherikut adalah algortima stemming Nazief and Adriani’s :
a) Cari kata yang akan distem dalam kamus. Jika ditemukan maka
diasumsikan bahwa kata tesebut adalah root word. Maka algoritma
berhenti.
Dokumen Mahasiswa dapat membuat program komputer dengan
menggunakan pendekatan
terstruktur menggunakan
konsep fungsi dan library
Token
Mahasiswa
Dapat
Membuat
Program
komputer
Dengan
Menggunakan
… Stopword
Dengan
Dan Dapat
Yang
…
Hasil dari
stopword
Mahasiswa
Membuat
Program
komputer
Menggunakan
…
9
b) Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”) dibuang.
Jika berupa particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini
diulangi lagi untuk menghapus Possesive Pronouns (“-ku”, “-mu”, atau “-
nya”), jika ada.
c) Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di
kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a
I. Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah
“-k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan
dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka
lakukan langkah 3b.
II. Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan,
lanjut ke langkah 4.
d) Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus
maka pergi ke langkah 4a, jika tidak pergi ke langkah 4b.
I. Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika
ditemukan maka algoritma berhenti, jika tidak pergi ke langkah
4b.
II. For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika
root word belum juga ditemukan lakukan langkah 5, jika sudah
maka algoritma berhenti. Catatan: jika awalan kedua sama dengan
awalan pertama algoritma berhenti.
e) Melakukan Recoding.
10
f) Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal
diasumsikan sebagai root word. Proses selesai.
Tipe awalan ditentukan melalui langkah-langkah berikut:
1. Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya
secara berturut-turut adalah “di-”, “ke-”, atau “se-”.
2. Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan
sebuah proses tambahan untuk menentukan tipe awalannya.
3. Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”,
atau “pe-” maka berhenti.
4. Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah
bukan “none” maka awalan dapat dilihat pada Tabel 2.2. Hapus awalan
jika ditemukan.
Tabel 2.1. Kombinasi Awalan Akhiran yang Tidak Diijinkan
Awalan Akhiran yang tidak diijinkan
be- -i
di- -an
ke- -i, -kan
me- -an
se- -i, -kan
11
Tabel 2.2. Cara Menentukan Tipe Awalan Untuk Kata yang Diawali dengan “te-”
Following Characters Tipe
Awalan Set 1 Set 2 Set 3 Set 4
“-r-“ “-r-“ - - None
“-r-“ Vowel ter-luluh
“-r-“ not (vowel or
“-r-”)
“-er-“ vowel Ter
“-r-“ not (vowel or
“-r-”)
“-er-“ not vowel ter-
“-r-“ not (vowel or
“-r-”)
not “-er-“ - Ter
not (vowel or
“-r-”)
“-er-“ vowel - None
not (vowel or
“-r-”)
“-er-“ not vowel - Te
Tabel 2.3. Jenis Awalan Berdasarkan Tipe Awalannya
Tipe Awalan Awalan yang harus dihapus
di- di-
ke- ke-
se- se-
te- te-
Ter ter
ter-luluh ter
Pembobotan kata
Dalam menentukan bobot suatu istilah tidak hanya berdasarkan frekuensi
kemunculan istilah di satu dokumen, tetapi juga memperhatikan frekuensi terbesar
pada suatu istilah yang dimiliki oleh dokumen bersangkutan. Hal ini untuk
12
menentukan posisi relatif bobot dari istilah dibanding dengan istilah-istilah lain di
dokumen yang sama. Didalam memberikan bobot pada sebuah istilah teknik yang
paling sering digunakan adalah TF/IDF (term frequency (tf), dan inverse dokumen
frequency (idf)). Term Frequency (tf) adalah jumlah kemunculan suatu kata
dalam sebuah dokumen dan Inverse document frequency (idf) adalah inverse
document frequency dari suatu kata.
Adapun rumus pembobotan Salton (1989) adalah sebagai berikut:
w(t,d) = tft,d * idft = tf(t,d )* log2(N/nt) ……….. (2.1)
Dimana :
w(t,d) = bobot dari term(kata) t dalam dokumen d.
tf(t,d) = frekuensi kemunculan term(kata) t dalam dokumen d.
Idfd = Inverse document frequency dari kata t
N = jumlah seluruh dokumen
nt = jumlah dari dokumen yang ditraining yang mengandung nilai t.
Algoritma TF-IDF dalam sistem temu kembali dapat diilustrasikan pada
gambar berikut :
13
D = 5
tf (t) = 4 tf (t) = 3 tf (t) = 0 tf (t) = 0 tf (t) = 1
df(t) = 3
IDF(t) = log2(D/df(t)) = log2(5/3) =1.3219
Wt,d = (tft,d * IDFt)
W(D1) = (4 * 1.3219) = 5.2877
W(D2) = (3 * 1.3219) = 3.9658
W(D3) = (0 * 1.3219) = 0
W(D4) = (0 * 1.3219) = 0
W(D5) = (1 * 1.3219) = 1.3219
..basisdata..
..basisdata..
..basisdata..
…………..
...basisdata
D1
..basisdata..
…………...
..basisdata..
…………..
...basisdata
D2
……….....
…………...
..……….....
…………..
…………..
D3
…………...
…………...
…………...
…………..
………….
D4
…………...
..basisdata..
…………..
D5
Gambar 2.3 Ilustrasi Algoritma TF-IDF
Fungsi metode ini adalah untuk mencari representasi nilai dari tiap-tiap
dokumen dari suatu kumpulan data training (training set).
Berikut contoh pembobotan dokumen yang telah diindekskan :
Tabel 2.4. Pembobotan (TF/IDF) Dokumen
Kategori Dokumen Term Tf df Idf W
C1 D1 basisdata 3 2 1.584963 4.754888
D1 DBMS 2 2 1.584963 3.169925
D1 relational 1 2 1.584963 1.584963
D1 constraint 1 2 1.584963 1.584963
D1 view 1 1 2.584963 2.584963
D1 algebra 1 2 1.584963 1.584963
D1 data 2 1 2.584963 5.169925
D1 Normalization 1 1 2.584963 2.584963
D2 aman 1 1 2.584963 2.584963
D2 basisdata 2 2 1.584963 3.169925
D2 Query 2 1 2.584963 5.169925
D2 constraint 2 2 1.584963 3.169925
D2 relational 2 2 1.584963 3.169925
D2 DBMS 1 2 1.584963 1.584963
D2 algebra 1 2 1.584963 1.584963
14
D2 model 1 1 2.584963 2.584963
D2 Kontrol 1 1 2.584963 2.584963
Kategori Dokumen Term Tf Df Idf W
C2 D3 jaringan 4 2 1.584963 6.33985
D3 yaitu 1 1 2.584963 2.584963
D3 Ethernet 2 1 2.584963 5.169925
D3 Kabling 1 1 2.584963 2.584963
D3 IP 2 2 1.584963 3.169925
D3 Layer 2 1 2.584963 5.169925
D3 Protocol 2 2 1.584963 3.169925
D3 Routing 1 1 2.584963 2.584963
D3 Port 1 2 1.584963 1.584963
D4 jaringan 2 2 1.584963 3.169925
D4 IP 2 2 1.584963 3.169925
D4 Protocol 1 2 1.584963 1.584963
D4 Port 2 2 1.584963 3.169925
D4 DHCP 1 1 2.584963 2.584963
D4 UDP 1 1 2.584963 2.584963
Kategori Dokumen Term Tf Df Idf W
C3 D5 limit 2 1 2.584963 5.169925
D5 Baris 1 1 2.584963 2.584963
D5 deret 1 1 2.584963 2.584963
D5 Differential 2 2 1.584963 3.169925
D5 konsep 1 2 1.584963 1.584963
D5 integral 2 2 1.584963 3.169925
D5 konvergensi 1 1 2.584963 2.584963
D6 Bilangan 1 1 2.584963 2.584963
D6 Linear 1 1 2.584963 2.584963
D6 Matriks 1 1 2.584963 2.584963
D6 Differential 2 2 1.584963 3.169925
D6 Integral 2 2 1.584963 3.169925
D6 komputasi 2 1 2.584963 5.169925
D6 Determinan 2 1 2.584963 5.169925
D6 konsep 1 2 1.584963 1.584963
Keterangan : C1 = basisdata C2 = jaringan C3 = komputasi
2.3 Model Ruang Vektor
Koleksi dokumen direpresentasi dalam ruang vektor sebagai matriks kata-
dokumen (terms-documents matrix). Nilai dari elemen matriks wij adalah bobot
15
kata i dalam dokumen j. Misalkan terdapat sekumpulan kata T sejumlah n, yaitu T
= (T1, T2, … , Tn) dan sekumpulan dokumen D sejumlah m, yaitu D = (D1, D2, …
, Dm) serta wij adalah bobot kata i pada dokumen j. Maka representasi matriks
kata-dokumen adalah :
T1 T2 …. Tn
D1 w11 w21 … wn1
D2 w12 w22 … wn2
: : : :
: : : :
Dm w1m w2m … wnm
Penentuan relevansi dokumen dengan query dipandang sebagai pengukuran
kesamaan (similarity measure) antara vektor dokumen dengan vektor query.
Semakin “sama” suatu vektor dokumen dengan vektor query maka dokumen
dapat dipandang semakin relevan dengan query. Salah satu pengukuran
kesesuaian yang baik adalah dengan memperhatikan perbedaan arah (direction
difference) dari kedua vektor tersebut.
q
?
t3
t1
t2
D1
D2
Q
q
? 1
2
Jika Q adalah vektor query dan D adalah vektor dokumen, yang
merupakan dua buah vektor dalam ruang berdimensi-n, dan θ adalah sudut yang
dibentuk oleh kedua vektor tersebut. Maka :
16
θcosDQDQ
QD adalah hasil perkalian dalam (inner product) kedua vektor, sedangkan
n
iDiD
1
2 dan
n
i
QiQ
1
2
Rumus yang digunakan untuk memgukur jarak kedekatan antar vektor adalah
sebagai berikut :
),cos(),( DQDQSimDQ
DQ
n
i
DiQiDQ 1
1
Kedekatan query dan dokumen diindikasikan dengan sudut yang dibentuk. Nilai
cosinus yang cenderung besar mengindikasikan bahwa dokumen cenderung sesuai
query. Nilai cosinus sama dengan 1 mengindikasikan bahwa dokumen sesuai
dengan dengan query.
2.4 Algoritma Rocchio Clasification
Rocchio classifiers merupakan salah satu metode pembelajaran supervised
dokumen classification. Metode klasifikasi rocchio membandingkan kesamaan isi
antara data training dan data test dengan merepresentasikan semua data ke dalam
vektor. Setiap bobot kata merupakan dimensi dalam ruang vektor. Kedekatan
kesamaan isi dihitung dari kedekatan sudut yang terbentuk antara bobot data
training dan bobot data test menggunakan aturan cosine. Untuk menghitung bobot
setiap kata dalam dokumen digunakan skema pembobotan TF/IDF (Term
Frequency / Invers dokumen Frequency). Karena komponen heuristic / utama dari
17
klasifikasi rocchio adalah skema pembobotan TFIDF, metode pembelajaran
rocchio disebut juga dengan TF/IDF Classifiers [Joachims Thorsten].
Dalam membandingkan kesamaan isi antara data training dan data test,
TF/IDF classifiers menggunakan prototipe vektor untuk merepresentasikan
kategori yang terbentuk dari data training, dengan kata lain prototipe vektor
merupakan vektor yang mewakili seluruh vektor data training dalam setiap
kategori. Tiga hal utama yang dipakai dalam klasifikasi TF/IDF yaitu:
1. Pembobotan TF/IDF untuk merepresentasikan dokumen ke dalam vektor.
2. Merepresentasikan prototipe setiap kategori dengan menjumlahkan vektor-
vektor dalam satu kategori dari data training
3. Membandingkan kedekatan sudut antara vektor data test dengan semua
prototipe vektor.
Untuk mengklasifikasikan dokumen menggunakan algoritma rocchio harus
mengetahui centroids dari tiap kelas. Centroids kelas adalah jumlah dari rata –
rata vektor dokumen keseluruhan dalam suatu kelas (massa pusat dari kelas).
Centroids inilah yang digunakan untuk mengukur kedekatan suatu dokumen uji
dengan kelas (kategori) dalam klasifikasi. Adapun rumus yang digunakan untuk
menghitung centroid suatu kelas adalah sebagai berikut :
Dcd
dDc
c 1
….…………………. (2.2)
Dimana :
c
= vector centroid dari kelas c
Dc = jumlah dokumen dalam kelas c
d
= vektor dokumen d
18
Ilustrasi perhitungan centroid kata dalam suatu kategori adalah sebagai berikut :
Dcd
dDc
c 1
(t1,C1) = ½ * (4.754888+2.584963) = 3.669925
(t2,C1) = (1/1) * 3.169925 = 3.169925
(t3,C1) = ½ * (2.584963+4.754888) = 3.669925
(t4,C1) = (1/1) * 5.169925 = 5.169925
W(d1,t1,C1) = 4.754888 , Dc=2
W(d1,t2,C1) = 3.169925 , Dc=1
W(d2,t3,C1) = 2.584963 , Dc=2
W(d2,t4,C1) = 5.169925 , Dc=1
Basisdata
DBMS
basisdata
query
C1
Gambar 2.4 Ilustrasi perhitungan centroid
Berikut ini adalah contoh pencarian nilai centroid suatu kategori :
Tabel 2.5 Pencarian centroid kategori
Kategori Dokumen Term df Idf W centroid
C1 D1 basisdata 2 1.584963 4.754888 3.962406
D1 DBMS 2 1.584963 3.169925 2.377444
D1 relational 2 1.584963 1.584963 2.377444
D1 constraint 2 1.584963 1.584963 2.377444
D1 view 1 2.584963 2.584963 2.584963
D1 algebra 2 1.584963 1.584963 1.584963
D1 data 1 2.584963 5.169925 5.169925
D1 Normalization 1 2.584963 2.584963 2.584963
D2 aman 1 2.584963 2.584963 2.584963
D2 basisdata 2 1.584963 3.169925 3.962406
D2 Query 1 2.584963 5.169925 5.169925
D2 constraint 2 1.584963 3.169925 2.377444
D2 relational 2 1.584963 3.169925 2.377444
D2 DBMS 2 1.584963 1.584963 2.377444
D2 algebra 2 1.584963 1.584963 1.584963
D2 model 1 2.584963 2.584963 2.584963
D2 Kontrol 1 2.584963 2.584963 2.584963
Kategori Dokumen Term Df Idf W centroid
C2 D3 jaringan 2 1.584963 6.33985 4.754888
D3 yaitu 1 2.584963 2.584963 2.584963
D3 Ethernet 1 2.584963 5.169925 5.169925
D3 Kabling 1 2.584963 2.584963 2.584963
D3 IP 2 1.584963 3.169925 3.169925
D3 Layer 1 2.584963 5.169925 5.169925
19
D3 Protocol 2 1.584963 3.169925 2.377444
D3 Routing 1 2.584963 2.584963 2.584963
D3 Port 2 1.584963 1.584963 2.377444
D4 jaringan 2 1.584963 3.169925 4.754888
D4 IP 2 1.584963 3.169925 3.169925
D4 Protocol 2 1.584963 1.584963 2.377444
D4 Port 2 1.584963 3.169925 2.377444
D4 DHCP 1 2.584963 2.584963 2.584963
D4 UDP 1 2.584963 2.584963 2.584963
Kategori Dokumen Term Df Idf W centroid
C3 D5 limit 1 2.584963 5.169925 5.169925
D5 Baris 1 2.584963 2.584963 2.584963
D5 deret 1 2.584963 2.584963 2.584963
D5 Differential 2 1.584963 3.169925 3.169925
D5 konsep 2 1.584963 1.584963 1.584963
D5 integral 2 1.584963 3.169925 3.169925
D5 konvergensi 1 2.584963 2.584963 2.584963
D6 Bilangan 1 2.584963 2.584963 2.584963
D6 Linear 1 2.584963 2.584963 2.584963
D6 Matriks 1 2.584963 2.584963 2.584963
D6 Differential 2 1.584963 3.169925 3.169925
D6 Integral 2 1.584963 3.169925 3.169923
D6 komputasi 1 2.584963 5.169925 5.169925
D6 Determinan 1 2.584963 5.169925 5.169925
D6 konsep 2 1.584963 1.584963 1.584963
Untuk mencari kedekatan dokumen digunakan cosine similarity, dengan
rumus sebagai berikut :
))(),(cos(maxarg),( dCCdsim jj
……………….(2.3)
Dimana :
),( jCdsim = tingkat kemiripan dokumen uji dengan kelas j
d = dokumen
Cj = kelas j
)( jC
= vector centroid kelas Cj
)(d
= vector dokumen
))(),(cos(maxarg dC j
= mencari nilai maksimum antar kelas Cj dan dokumen
Contoh mencari cosinus similarity suatu dokumen dengan dokumen query
= “IP dan Routing, sehingga dapat membangun sebuah Jaringan Komputer,
20
keamanan jaringan , DHCP, IP ”.Contoh query pencarian cosines similarity dapat
dirangkum seperti pada tabel 2.6 berikut ini :
Tabel 2.6 Contoh dokumen query
Query tf
IP 2
routing 1
jaringan 2
komputer 1
DHCP 1
aman 1
Pada tabel 2.7 berikut ini adalah contoh Perhitungan Similarity :
Tabel 2.7 Dasar perhitungan Similarity
C1 term centroid centroid2
algebra 1.58496 2.512098
aman 2.58496 6.682018
basisdata 3.9624 15.70061
constraint 2.37744 5.652221
data 5.16992 26.72807
dbms 2.37744 5.652221
kontrol 2.58496 6.682018
model 2.58496 6.682018
normalization 2.58496 6.682018
query 5.16992 26.72807
relational 2.37744 5.652221
view 2.58496 6.682018
C2 term centroid centroid2
jaring 4.75488 22.60888
yaitu 2.58496 6.682018
ethernet 5.16992 26.72807
kabling 2.58496 6.682018
ip 3.16992 10.04839
layer 5.16992 26.72807
protocol 2.37744 5.652221
routing 2.58496 6.682018
port 2.37744 5.652221
dhcp 2.58496 6.682018
udp 2.58496 6.682018
C3 term centroid centroid2
baris 2.58496 6.682018
bilang 2.58496 6.682018
deret 2.58496 6.682018
21
determin 5.16992 26.72807
differential 3.16992 10.04839
integral 3.16992 10.04839
komputas 5.16992 26.72807
konsep 1.58496 2.512098
konvergensi 2.58496 6.682018
limit 5.16992 26.72807
linear 2.58496 6.682018
matriks 2.58496 6.682018
Query tf idf centroid Wquery Wik*Centroidjk centroid2 Wquery
2
IP 2 1.584963 3.169925 3.169926 10.04842768 10.048425 10.04843
routing 1 2.584963 2.584963 2.584963 6.682033711 6.6820337 6.682034
jaringan 2 1.584963 4.754888 3.169926 15.0726431 22.60896 10.04843
komputer 1 0 0 0 0 0 0
DHCP 1 2.584963 2.377444 2.584963 6.145604775 5.65224 6.682034
aman 1 2.584963 2.584963 2.584963 6.682033711 6.6820337 6.682034
n
1k
n
1k
n
1k
ik
ji
22ik )(W
)(*W
)C ,(Q Similarity
jk
jk
C
C
…………....(2.3.1)
Dimana :
ikW = bobot term query.
)( jkC
= bobot centroid term dalam kategori.
Perhitungan nilai similarity :
6.686.68010.056.6810.055.656.6826.736.686.686.685.6526.735.6515.706.682.51
6.68),1(
QCSim
6.3411.05
68.6
70.057
68.6
0.0953
6.686.68010.056.6810.056.686.685.656.685.6526.7310.056.6826.736.6822.61
6.1515.0726.6810.05),2(
QCSim
6.3411.44
37.95
22
72.53
37.95
0.523
6.686.68010.056.6810.05 6.686.686.6826.7351.226.7310.0510.0526.736.686.686.68
0),3(
QCSim
0
Kesimpulan : Dokumen query lebih mirip dengan kategori C2 dengan nilai
0.523lebih besar dibandingkan dengan nilai similarity pada kategori C1 yaitu
0.0953, dapat disimpulkan dokumen query termasuk dalam kategori C2.
Berikut adalah langkah – langkah implementasi algoritma Rocchio
TrainRocchio (C,D)
1 for each Cc j
2 do DcddD jj ),(:
3
jDdj
j dD
1
4 return { 1
, . . . , j
}
Dimana :
C = semua kelas { 1c ,…, jc }
D = semua dokumen { 11,cd , … , nn cd , }
Pertama – tama dilakukan training dokumen, dimana training dokumen ini
dilakukan untuk membuat model klasifikasi. Dokumen training dicari bobot tiap
term dan telah ditentukan termasuk dalam suatu kategori, setelah didapat bobot
dokumen maka dari tiap term dokumen yang ada dalam kategori dicari
centroidnya.
ApplyRocchio ({ 1
, . . . , j
}, d
)
5 ))(),(cos(maxarg),( dCCdsim jj
Untuk menetukan suatu dokumen query termasuk dalam suatu kategori yang ada,
maka harus mencari kesamaan term yang ada dari dokumen training yang ada
dalam suatu kategori dengan term dokumen query. Setelah didapat kesamaan,
23
kemudian dicari kemiripan dokumen query dengan centroid dokumen (cosinus
similarity dokumen) yang ada dalam kategori. Jika hasil kemiripan dokumen
mendekati nilai 1 maka dokumen akan semakin mirip.
Hasil pembahasan dari jurnal yang ditulis oleh Thorsten Joachims yang
berjudul “A Probabilistic Analysis of the Rocchio Algorithm with TFIDF for Text
Categorization”, disimpulkan bahwa dengan algoritma rocchio (TFIDF classifier)
dihasilkan rata – rata akurasinya sebesar 90%.
2.5 Evaluasi Pengujian Sistem
Untuk mengetahui suatu perbandingan keefektifan metode yang
digunakan, maka dibutuhkan pengujian hasil klasifikasi.
Untuk pengujian hasil klasifikasi hanya menentukan tingkat precision
sistem yang dapat dicari dari kesesuaian sistem dengan hasil dari kuisioner
terhadap responden.
Berikut adalah cara mencari precision :
precision dinyatakan sebagai bagian dokumen relevan yang disesuai:
dokumenseluruh Jumlah
sistemdengan sesuai yangdokumen Jumlah precision
24
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Dalam bab ini akan dijelaskan mengenai rancangan sistem aplikasi yag
hendak dibuat oleh penulis. Diantaranya gambaran sistem secara umum, analisa
kebutuhan sistem, metode pengumpulan data dan perancangan sistem.
3.1 Gambaran Umum Sistem
Secara umum sistem aplikasi yang akan dibuat oleh penulis bertujuan untuk
mengklasifikasikan dokumen skripsi teknik informatika menggunakan proses
information retrieval. Berikut ini adalah gambaran klasifikasi dokumen secara umum
:
25
Indexing
Pembuatan Model
Klasifikasi
Koleksi
Dokumen
Tentukan kategori
Operasi teks
(parsing, steming )
Daftar term
Pencaraian bobot
vektor (TF/IDF)
Dokumen,(query)
Operasi teks
(parsing, steming)
Pencarian bobot
vektor
dokumen(query)
Pencarian tingkat
kemiripan
dokumen
klasifikasi
dokumen
C1 = dok1, dok 2, …
C2 = dok3, dok 4, …
C3 = dok5, dok6, …
...
Term
Hitung term
frekuensi
Filtering
Jumlah
Kumpulan Term
Term
Hitung term
frekuensi
Jumlah
Kumpulan Term
Bobot term dalam
setiap kategori
Bobot term
dokumen query
Kemiripan
Dokumen query
dengan dokumen
dalam kategori
klasifikasi
Pencaraian
Centroid tiap
kategori
Centroid term
dalam setiap
kategori
Gambar 3.5 Gambar proses klasifikasi keseluruhan
Untuk lebih jelasnya proses dibagi menjadi beberapa bagian sebagai berikut
ini :
26
Indexing
Parsing
Stoplist
Steming
Hitung Term
Frekuensi
Hitung IDF
Simpan term
Simpan TF/IDF
index
Dokumen
Gambar 3.6 Gambar Proses indexing(a), pembuatan model(b)
Untuk mendapatkan bobot term / kata , dokumen harus melalui proses
indexing terlebih dahulu. Proses indexing digambarkan seperti gambar 3.6 a. dan
telah dibahas dalam bab 2. Proses pembuatan model digunakan untuk membuat suatu
model klasifikasi.
Pada gambar 3.6 b dokumen ditentukan terlebih dahulu termasuk dalam suatu
kategori kemudian dilakukan pemrosesan indexing dan pencarian bobot centroid tiap
term dalam tiap kelas / kelompok kategori.
b
a
Dokumen
Tentukan Kategori
indexing
Pencarian centroid
kategori
Pembuatan Model
27
Gambar 3.7 Gambar Proses Klasifikasi
Pada gambar 3.7 adalah proses pengklasifikasian dokumen, dokumen yang
akan diklasifikasikan (dokumen query) dilakukan proses indexing untuk memperoleh
bobot term dokumen yang nantinya digunakan untuk proses pencarian kemiripan
dokumen (cosinus similarity).
Berikut adalah gambaran model proses indexing dokumen :
Dokumen term
dan indeks
Dokumen terlabelBuat model dan
indeks
Tentukan klasifikasi
Input dokumen
Simpan
Gambar 3.8 Gambar model proses indexing
28
Dari gambar 3.8 model indexing tersebut diatas dapat dijelaskan sistem harus
mempunyai suatu model untuk melakukan klasifikasi. Pembuatan model klasifikasi
ditentukan oleh user, jadi user harus menentukan suatu dokumen kedalam kategori –
ketegori yang ada sebagai dasar suatu klasifikasi. Dokumen yang ditentukan haruslah
valid sesuai dengan kategori.
Berikut adalah gambaran model proses klasifikasi dokumen :
Dokumen belum
terlabelKlasifikasi
Dokumen
Input dokumen
Hasil
Dokumen term
dan indeks
Dokumen
terklasifikasi
Gambar 3.9 Gambar model klasifikasi dokumen
Dari gambar 3.9 gambar model klasifikasi, dapat dijelaskan user memasukan
dokumen baru yang belum terklasifikasi, kemudian dilakukan proses klasifikasi dari
dokumen yang telah terklasifikasi. Jadi dokumen yang belum terklasifikasi dicari
kecocokan dengan dokumen yang telah terklasifikasi. Hasil dari proses klasifikasi
dokumen adalah dokumen menjadi bagian dari suatu kategori dokumen yang
terklasifikasi.
29
Gambar 3.10 Gambar Proses Pencarian Dokumen
Pada gambar 3.10 adalah gambaran proses pencarian dokumen, pencarian
dokumen berdasarkan besarnya bobot kata kunci (query pencarian). Hasil pencarian
dokumen akan menampilkan urutan dokumen dari dokumen yang mempunyai bobot
paling besar ke bobot yang paling kecil berdasarkan kata kunci pencarian.
3.1.1 Analisis Kebutuhan
Kebutuhan yang dibutuhkan oleh pengguna / user dari aplikasi klasifikasi
Skripsi di Teknik Informatika Sanata Dharma Yogyakarta adalah :
1. User membutuhkan program untuk membantu dalam mengklasifikasikan
skripsi teknik informatika, dimana satu dokumen yang di kategorikan
mewakili satu judul skripsi.
2. Klasifikasi dilakukan oleh administrator dan kategori dapat ditambahkan oleh
administrator, tetapi harus melakukan training data terhadap kategori
tambahan.
30
3. User membutuhkan program yang dapat secara otomatis melakukan proses
indexing ketika user menambahkan dokumen baru ke dalam koleksi dokumen
silabus mata kuliah.
4. User membutuhkan program yang dapat mengelola daftar stoplist, baik untuk
menambah daftar stoplist, merubah daftar stoplist, atau menghapus daftar
stoplist.
3.2 Analisa Sistem
3.2.1 Model Use Case
3.2.1.1 Actor
Dalam aplikasi kategorisasi silabus teknik informatika Sanata Dharma
terdapat 2 aktor yang terlibat yaitu seperti pada tabel 3.8 berikut ini:
Tabel 3.8 Tabel aktor yang terlibat
Aktor Hak Akses
Administrator Login
Menambah, mengedit dan menghapus data stopword
Menambah, mengedit dan menghapus data kategori
Menambah, mengedit dan menghapus data kamus
Menambah, mengedit dan menghapus user.
Pembuatan Model.
Klasifikasi dokumen.
Lihat dokumen
Logout
Pengguna
(User)
Mencari dokumen.
Mencari klasifikasi dokumen
31
3.2.1.2 Diagram Use Case
Gambaran use case diagram sistem dapat dilihat pada gambar 3.11 berikut ini
:
Administrator
Kelola kategori
Tambah kategori
Edit kategori
Hapus kategori
Kelola stoplist
Tambah stopword
Edit stoplist
Hapus stopword
Login
Depend on
Depend o
n
Kelola kamus
Tambah kata_dasar
Edit kamus
Hapus kata_dasar
Depend on
klasifikasi dokumen Pembuatan model
Depend on
Depend on
Logout
Depend on
lihat dokumen
klasifikasi
Depend o
n
cari dokumen
User
Cari Klasifikasi
Dokumen
Kelola User
Tambah user
Edit User
Hapus user
Depend on
Gambar 3.11 Diagram Use Case
3.2.1.3 Tabel Use Case
Dari gambar use case diagram 3.9 dapat dijelaskan tiap – tiap use case pada
tabel 3.2 berikut ini :
Tabel 3.9 Tabel Use Case
No Nama Use Case Deskripsi use case Aktor
1 Login Verifikasi untuk mengakses menu
administrator dengan cara
memasukkan username dan
password
Administrator
32
2 Logout Use case ini menggambarkan proses
untuk keluar dari sistem
administrator
Administrator
3 Klasifkasi dokumen Use case ini menggambarkan proses
klasifikasi dokumen. Dokumen
inputan akan ditentukan kategorinya
secara otomatis.
Administrator
4 Pembuatan Model dan
indeks
Use case ini menggambarkan proses
pengindekkan dokumen yang akan
digunakan sebagai dasar klasifikasi
dokumen.
Administrator
5 Lihat dokumen Use case ini menggambarkan proses
untuk menampilkan dokumen yang
telah terindeks
Administrator
6 Tambah stopword Use case ini menggambarkan proses
untuk penambahan data stopword.
Administrator
7 Edit stoplist Use case ini menggambarkan proses
proses perubahan data stopword.
Proses ini dapat berupa perubahan
detail stopword.
Administrator
8 Hapus stopword Use case ini menggambarkan proses
penghapusan data stopword.
Administrator
9 Tambah kategori Use case ini menggambarkan proses
untuk menambah daftar kategori.
Administrator
10 Edit kategori Use case ini menggambarkan proses
perubahan detail kategori.
Administrator
11 Hapus kategori Use case ini menggambarkan proses
penghapusan kategori beserta data
dokumen yang termasuk dalam
kategori yang dihapus.
Administrator
12 Tambah kata_dasar Use case ini menggambarkan proses
penambahan data kata dasar.
Administrator
13 Edit kamus Use case ini menggambarkan proses
perubahan detail data kamus
Administrator
14 Hapus kata_dasar Use case ini menggambarkan proses
penghapusan data kata dasar kamus.
Administrator
15 Tambah user Use case ini menggambarkan proses
untuk menambah user yang berhak
masuk ke sistem utama.
Administrator
16 Edit user Use case ini menggambarkan proses
untuk mengedit nama user dan
password.
Administrator
17 Hapus user Use case ini menggambarkan proses
untuk menghapus user.
Administrator
18 Cari dokumen Use case ini menggambarkan proses User
33
pencarian dokumen. Proses ini
berupa daftar urutan dokumen yang
sesuai dengan inputan pencarian dan
termasuk dalam kategori manakah
dokumen yang dicari. Dengan
berdasarkan bobot dari kata kunci
yang dicari.
(pengguna)
19 Cari klasifikasi
dokumen
Use case ini menggambarkan proses
pencarian kategori. Abstrasi
dokumen yang dimasukkan
termasuk dalam kelas/kategori
apakah.
User
(pengguna)
3.2.2 Skenario Use Case
Setiap use case pada bagian sebelumnya akan dirinci dalam sebuah
skenario yang merupakan deskripsi tekstual dari suatu proses dan bagaimana
pengguna berinteraksi dengan sistem. Untuk lebih jelsnya dapat dilihat pada
tabel 3.10 berikut ini :
Tabel 3.10 Tabel Skenario Use Case
Use Case Skenario Use Case
Login Lampiran 1.1
Logout Lampiran 1.2
Klasifkasi dokumen Lampiran 1.3
Pembuatan Model dan indeks Lampiran 1.4
Lihat dokumen Lampiran 1.5
Tambah stopword Lampiran 1.6
Edit stoplist Lampiran 1.7
Hapus stopword Lampiran 1.8
Tambah kategori Lampiran 1.9
Edit kategori Lampiran 1.10
Hapus kategori Lampiran 1.11
Tambah kata_dasar Lampiran 1.12
Edit kamus Lampiran 1.13
Hapus kata_dasar Lampiran 1.14
Tambah user Lampiran 1.15
34
Edit user Lampiran 1.16
Hapus user Lampiran 1.17
Cari dokumen Lampiran 1.18
Cari klasifikasi dokumen Lampiran 1.19
3.2.3 Model Analisis
Model Analisis adalah salah satu proses untuk menterjemahkan
skenario use case menjadi kelas analisis. Dalam kelas analisis terdapat 3
jenis, yakni: Form / boundery, Controller, dan Entitas.
3.2.3.1 Realisasi Use case
Pada tahap ini, analisis kelas dilakukan setiap use case. Setiap use
case dicari kelas analisis sehingga kebutuhan kelas dapat ditentukan. untuk
lebih lengkapnya dapat dilihat pada tabel 3.11 berikut ini :
Tabel 3.11 Tabel Realisasi Use Case
Use Case Realisasi Use Case
Login Lampiran 2.1
Logout Lampiran 2.2
Klasifkasi dokumen Lampiran 2.3
Pembuatan Model dan indeks Lampiran 2.4
Lihat dokumen Lampiran 2.5
Tambah stopword Lampiran 2.6
Edit stoplist Lampiran 2.7
Hapus stopword Lampiran 2.8
Tambah kategori Lampiran 2.9
Edit kategori Lampiran 2.10
Hapus kategori Lampiran 2.11
Tambah kata_dasar Lampiran 2.12
Edit kamus Lampiran 2.13
Hapus kata_dasar Lampiran 2.14
Tambah user Lampiran 2.15
Edit user Lampiran 2.16
35
Hapus user Lampiran 2.17
Cari dokumen Lampiran 2.18
Cari klasifikasi dokumen Lampiran 2.19
3.2.3.2 Diagram Kelas Keseluruhan
Diagram Kelas keseluruhan dari realisisi use case dapat dilihat di
lampiran 3.
3.3 Desain Sistem
3.3.1 Kelas Perancangan
Berikut merupakan perancangan kelas yang digunakan. Perancangan
menggunakan MVC model 2 dibagi dalam 3 layer yaitu layer View , Controller
dan Model.
View merupakan layer presentasi (tampilan untuk semua pengguna web)
direpresentasikan oleh halaman JSP.
Contoh : Halaman LoginAdmin, Halaman Utama, dsb. (semua halaman
JSP)
Controller merupakan intermediet layer antara Model dan View.
Direpresentasikan menggunakan kelas Java turunan kelas action (dan
turunan kelas action)
Contoh : Kontrol Cari, Kontrol Indexing Admin, dsb.
Model berisi logika program dan koneksi database.
Contoh : Kamus, Kategori, Word, dsb.
36
Kelas perancangan sistem dari kelas analisi dapat dilihat pada tabel 3.5 berikut ini :
Tabel 3.12 Tabel Kelas Perancangan
No Kelas Analisis Kelas Perancangan Use Case
1 Halaman Login Admin Halaman Login Admin Login
2 Halaman menu user Halaman menu user Login
Cari dokumen
Cari klasifikasi dokumen
3 Halaman Menu Admin Halaman Menu Admin logout
Klasifkasi dokumen
Pembuatan Model dan indeks
Lihat dokumen
Tambah stopword
Edit stoplist
Hapus stopword
Tambah kategori
Edit kategori
Hapus kategori
Tambah kata_dasar
Hapus kamus
37
Edit kata dasar
Tambah user
Edit user
Hapus user
4 Form Manage User Form Manage User Tambah user
Edit user
Hapus user
5 Form Indexing Dokumen Form Indexing Dokumen Pembuatan Model dan indeks
6 Form Klasifikasi Dokumen Form Klasifikasi Dokumen Klasifkasi dokumen
7 Form Manage Kamus Form Manage Kamus Tambah kata_dasar
Hapus kamus
Edit kata dasar
8 Form Manage Stoplist Form Manage Stoplist Tambah stopword
Edit stoplist
Hapus stopword
9 Form Manage Kategori Form Manage Kategori Tambah kategori
Edit kategori
Hapus kategori
38
10 Form List Data Skripsi Form List Data Skripsi Lihat dokumen
11 Halaman Pencarian Klasifikasi Halaman Pencarian Klasifikasi Cari klasifikasi dokumen
12 AutentifikasiLogin Control login
13 AutentifikasiLogOut Control logout
14 ControlIndexing Control Pembuatan Model dan indeks
15 ControlKlasifikasi Control Klasifkasi dokumen
16 ControlCari Control Cari dokumen
17 ControlCariKlas Control Cari klasifikasi dokumen
18 KamusManajemenControl Control Tambah kata_dasar
Hapus kamus
Edit kata dasar
19 StopwordManajemenController Control Tambah stopword
Edit stoplist
Hapus stopword
20 KategoriManajemenController Control Tambah kategori
Edit kategori
Hapus kategori
21 UserManageController Control Tambah user
39
Edit user
Hapus user
22 Kamus Entity
Model
Tambah kata_dasar
Hapus kamus
Edit kata dasar
23 Kategori Entity
Model
Tambah kategori
Edit kategori
Hapus kategori
24 Stoplist Entity
Model
Tambah stopword
Edit stoplist
Hapus stopword
25 Skripsi Entity
Model
Pembuatan Model dan indeks
26 centroidKlass Entity
Model
Klasifkasi dokumen
Cari klasifikasi dokumen
Cari dokumen
27 Word Model Cari dokumen
Cari klasifikasi dokumen
40
Pembuatan Model dan indeks
Klasifkasi dokumen
Pembuatan Model dan indeks
28 User Entity
Model
Tambah user
Edit user
Hapus user
29 Tokenizer Model Cari dokumen
Cari klasifikasi dokumen
Pembuatan Model dan indeks
Klasifkasi dokumen
Pembuatan Model dan indeks
30 Term Model
Entity
Cari dokumen
Cari klasifikasi dokumen
Pembuatan Model dan indeks
Klasifkasi dokumen
31 IndekTerm Model
Entity
Cari dokumen
Cari klasifikasi dokumen
Pembuatan Model dan indeks
Klasifkasi dokumen
41
3.3.2 Atribut dan Method
Bagian ini akan menjelaskan lebih detail mengenai attribut dan
method dari kelas desain. Daftar detail mengenai attribut dan method
tersebut dapat dilihat pada Lampiran 4
3.3.3 Prototype Antarmuka
Dari analisa attribut dan method pada tahap sebelumnya, maka
akan ditentukan kelas yang akan dijadikan user interface. Kemudian dari
kelas tersebut dibuat suatu rancangan antarmuka yang akan digunakan
dalam implementasi program. Rancangan prototype antar muka dapat
dilihat pada tabel 3.13 berikut ini :
Tabel 3.13 Tabel Prototype Antarmuka
No Kelas Analisis Lampiran
1 Halaman Menu User ( Halaman
Cari Dokumen )
Lampiran 5.1
2 Halaman Login Admin Lampiran 5.2
3 Halaman Menu Admin Lampiran 5.3
4 Form Manage User Lampiran 5.4
5 Form Manage Kategori Lampiran 5.5
6 Form Manage Stoplist Lampiran 5.6
7 Form Manage Kamus Lampiran 5.7
8 Form indexing Lampiran 5.8
9 Form Klasifikasi Lampiran 5.9
10 Form List Data Skripsi Lampiran 5.10
11 Halaman Pencarian Klasifikasi Lampiran 5.11
3.3.4 Desain Database
1. Class Diagram
Class diagram dilihat pada gambar 3.12 berikut ini :
42
Skripsi
Kategori
TermindexTerm
Jenis_kategoriId_kategori
Id_skripsiJudul
Id_indexId_term term
idf
tf
Id_term Id_dokumen
bobot
JudulDok
centroid
df
centroidKlass
Id_term Id_kategori
Id_centroid
stoplist
Id_stopword stopword
User
Id_user User_name
password
Kamus
Kata_dasar
Gambar 3.12 Class diagram
Keterangan :
Terdapat 8 class yaitu : class kategori, class skripsi, class
indexTerm, class centroidKlass, class term, class user, class stoplist,
class kamus. Dimana class user, class stoplist, class kamus tidak
memiliki relasi.
2. Mapping Class
Penjelasan lebih detail dari database yang dibuat, dapat dilihat pada
tabel fisik di
43
user
PK id_user
username
password
stoplist
PK id_stopword
stopword
kamus
PK kata_dasar
skripsi
PK id_skripsi
judul
judulDok
FK1 id_kategori
kategori
PK id_kategori
jenis_kategori
indexTerm
PK id_index
tf
bobot
FK1 id_term
FK2 id_skripsi
term
PK id_term
term
df
idf
centroidKlass
PK id_centroid
PK,FK1 id_kategori
centroid
FK2 id_term
Gambar 3.13 Rancangan database
Berikut adalah penjelasan tentang table yang digunakan untuk
mendesain sistem :
1. Tabel Kategori
Field Tipe Data Keterangan
Id_kategori Integer (10) Primary key
Jenis_kategori Varchar (35) Nama kategori
2. Tabel Skripsi
Field Tipe Data Keterangan
Id_skripsi Integer (255) Primary key
Judul Varchar (1000) Nama dokumen
JudulDok Varchar(1000) Judul Dokumen
3. Tabel User
Field Tipe Data Keterangan
Id_User Integer (255) Primary key
Username Varchar (255) Nama user untuk login
password Double (255) Password dari user
44
4. Tabel indexTerm
Field Tipe Data Keterangan
Id_index Integer (255) Primary key.
Id_skripsi Integer (255) Sebagai Foreign key dari tabel
skripsi.
Id_term Integer (255) Sebagai Foreign key dari tabel
term.
Tf Integer (255) Jumlah term frekuensi atau
jumlah kemunculan kata
penting dalam suatu dokumen.
Bobot Decimal(10,6) Bobot dokumen.
5. Tabel term
Field Tipe Data Keterangan
Id_term Integer (255) Primary key
Term Varchar (255) Nama dokumen
Df Integer(255) Jumlah kemunculan kata
dalam beberapa dokumen.
Idf Double (6,5) Infevers dokumen frekuensi
atau log 2 (jumlah dokumen
dibagi dengan jumlah
frekuensi kata yang terkandung
dalam seluruh dokumen ).
6. Tabel centroidKlass
Field Tipe Data Keterangan
Id_centoid Integer (255) Primary key
Integer (255) Integer (255) Nama dokumen
Id_kategori Integer(255) Jumlah kemunculan kata
dalam beberapa dokumen.
centroid Decimal(10,6) Bobot pusat term dalam satu
kategori.
7. Tabel Stoplist
Field Tipe Data Keterangan
Id_stopword Integer (255) Primary key
stopword Varchar (255) Daftar kata buang
45
8. Tabel kamus
Field Tipe Data Keterangan
Kata_dasar varchar (255) Primary key.
Kata dasar dalam kamus
3.3.5 Rencana Pengujian dan Evaluasi
Pengujian menggunakan dokumen Skripsi dari bagian abstrak. Pengujian
dapat juga dari dokumen lain selain dokumen skripsi untuk menguji seberapa
relevan penggunaan algoritma Rocchio untuk mengetahui tingkat presisinya.
Pengujian terhadap hasil rekomendasi dilakukan untuk mengukur
informasi yang diinformasikan kepada user atau pengguna.
a. Persiapan
Menyiapkan dokumen testing.
b. Pengolahan hasil kusioner
Memilih metode.
Menentukan hal yang diuji.
Membuat kuisioner
Mencari responden.
Menarik kesimpulan hasil analisa kuisioner.
46
BAB IV
IMPLEMENTASI
4.1 Implementasi
4.1.1 Implementasi Antarmuka / View
Implementasi antarmuka / view dari kelas analisis menjadi file fisik dapat dilihat pada tabel 4.14 berikut ini :
Tabel 4.14 Implemantasi antarmuka
No Kelas Analisis File Fisik URL Lampiran
1 Halaman Login Admin indexLogin.jsp .. /indexLogin.jsp Lampiran 6.1
2 Halaman menu user index.jsp
indek2.jsp
../ indek2.jsp Lampiran 6.2
4 Halaman Menu Admin IndexAdmin.jsp ../IndexAdmin.jsp Lampiran 6.3
5 Form Manage user FormListUser.jsp
FormInsertUser.jsp
FormEditUser.jsp
../IndexAdmin.jsp?userManage=true
../IndexAdmin.jsp?edit=true&id=
Lampiran 6.4
6 Form Indexing Dokumen formIndexing.jsp ../IndexAdmin.jsp?Indexing=true Lampiran 6.5
7 Form Klasifikasi Dokumen formKlasifikasi.jsp .. /IndexAdmin.jsp?Klasifikasi=true Lampiran 6.6
47
8 Form Manage Kamus IframeListKamus.jsp
FormListKamus.jsp
FormInsertKamus.jsp
FormEditKamus.jsp
../ IndexAdmin.jsp?kamusManage=true
../IndexAdmin.jsp?editKamus=true&id=
Lampiran 6.7
9 Form Manage Stoplist IframeStoplist.jsp
FormListStoplist.jsp
FormInsertStopWord.jsp
FormEditStoplist.jsp
.. /IndexAdmin.jsp?stoplistManage=true
../IndexAdmin.jsp?editStoplist=true&id=
Lampiran 6.8
10 Form Manage Kategori FormListKategori.jsp
FormInsertKategori.jsp
FormEditKategori.jsp
../ IndexAdmin.jsp?kategoriManage=true
../IndexAdmin.jsp?editKategori=true&id=
Lampiran 6.9
11 Form list Data Skripsi IframeListDokumen.jsp
FormListDokumen.jsp
../IndexAdmin.jsp?skripManage=true Lampiran 6.10
12 Halaman Pencarian Klasifikasi index3.jsp
pencarianKlas.jsp
../index3.jsp Lampiran 6.11
48
4.1.2 Implementasi Contro
Implementasi dari kelas control dari rancangan kelas analisi
menjadi realisasi file fisik dapa dilihat pada tabel 4.15 berikut ini :
Tabel 4.15 Implemantasi Kontrol
No Kelas Analisis File Fisik
1 AutentifikasiLogin cekLogin.java
2 AutentifikasiLogout cekLogout.java
4 ControlIndexing controlIndexing.java
5 ControlKlasifikasi controlKlasifikasi.java
6 ControlCari controlCari.java
7 ControlCariKlas controlCariKlas.java
8 KamusManajemenControl controlKamus.java
10 StopwordManajemenController controlStopWord.java
11 KategoriManajemenController controlManageKategori.j
ava
12 UserManageController controlManageUser.java
4.1.3 Implementasi Model
Implementasi dari kelas model dari rancangan kelas analisi
menjadi realisasi file fisik dapa dilihat pada tabel 4.16 berikut ini :
Tabel 4.16 Implementasi Model
No Kelas Analisis File Fisik
1 Kamus Kamus.java
2 Kategori Kategori.java
4 User User.java
5 Skripsi Skripsi.java
49
6 Word Word.java
7 centroidKlass centroidKlass.java
8 Tokenizer Tokenizer.java
9 Term Term.java
10 IndexTerm IndexTerm.java
4.1.4 Implementasi Entitas / Tabel
Implementasi dari kelas entity dari rancangan kelas analisi menjadi
realisasi file fisik dapa dilihat pada tabel 4.17 berikut ini :
Tabel 4.17 Implementasi Entity / Tabel
No Kelas Analisis Tabel Lampiran
1 Skripsi Skripsi Lampiran 6.12
2 Kategori Kategori Lampiran 6.13
4 Term Term Lampiran 6.14
4 User User Lampiran 6.15
5 Stoplist Stoplist Lampiran 6.16
6 Kamus Kamus Lampiran 6.17
7 IndekTerm IndekTerm Lampiran 6.18
8 centroidKlass centroidKlass Lampiran 6.19
4.2 Pengujian Hasil Rekomendasi
a. Persiapan
Mencari dokumen abstrak skripsi teknik informatika yang
telah didapat dari Universitas Sanata Dharma Yogyakarta
(angkatan 2003-2005) dan Universitas Kristen Duta
Wacana (http://lecturer.ukdw.ac.id/katalog/).
50
b. Pengolahan hasil kuisioner
Memilih metode untuk pengolahan kuisioner.
Metode dalam pengolah hasil kuisioner ini adalah
precision. Dari hasil pengolahan tersebut pembuat sistem
dapat mengukur hasil informasi presisi.
Menentukan hal yang diuji
Hal hal yang di uji :
1. Dokumen yang sesuai dengan sistem dan dokumen
yang tidak sesuai dengan sistem.
Membuat kuisioner
Contoh kuisioner terdapat pada lampiran 7.
Mencari responden.
Karakteristik dari responden yang pilih untuk mengisikan
kuisioner ini adalah mahasiswa semester 5 keatas. Jumlah
responden yang menguji sistem ini adalah 30 responden
yang dari mahasiswa Teknik informatika Sanata Dharma.
Menarik kesimpulan dari analisa kuisioner
51
Hasil rekomendasi sistem dari dokumen test sebanyak 10 abstrak dokumen yang dibagikan kepada responden :
Tabel 4.18 Hasil perhitungan similarity sistem
No dokumen
test Judul abstrak
Similarity Kategori
Basisdata Jaringan Komputasi
1 sistem informasi inventori toko asesoris telephon seluler 0.20999 0.02533 0.06209 Basisdata
2 sistem informasi penjualan mobil ( tunai / kredit ) 0.18982 0.06989 0.13351 Basisdata
3 sistem administrasi firewall secara remote untuk keamanan
jaringan pada server berbasis linux menggunakan webmin 0.11106
0.16327
0.06249
Jaringan
4 penerapan spanning tree protocol pada vlan 0.07702 0.15489 0.04969 Jaringan
5 pencarian turunan pertama fungsi linier dan non-linier 0.08492 0.06504 0.11793 Komputasi
6 segmentasi citra dengan algoritma fuzzy c-means clustering 0.04353 0.03572 0.18866 Komputasi
7 implementasi algoritma dijkstra untuk pencarian lokasi ruangan
studi kasus : rs. bethesda yogyakarta 0.08998
0.03518
0.11663
Komputasi
8 aplikasi remote webcam pada lan (local area network) 0.12067 0.14833 0.09507 Jaringan
9 sistem informasi penjualan barang model mlm studi kasus
business centre tempo direct solo 0.16189 0.06347 0.06931 Basisdata
10 sistem informasi kredit barang rumah tangga 0.19397 0.09017 0.03139 Basisdata
52
Survei pengklasifikasian abstrak dokumen skripsi sebanyak 10 abstrak ke 30 responden (mahasiswa Teknik Informatika USD
angkatan 2005 - 2006) secara random .
Tabel 4.19 Hasil kuisioner responden
No
dokumen
test
Judul abstrak
Orang yang memilih
Basisdata (B) Jaringan (J) Komputasi (K)
1 sistem informasi inventori toko asesoris telephon seluler 30 0 0
2 sistem informasi penjualan mobil ( tunai / kredit ) 24 1 5
3 sistem administrasi firewall secara remote untuk keamanan
jaringan pada server berbasis linux menggunakan webmin
1 29 0
4 penerapan spanning tree protocol pada vlan 1 29 0
5 pencarian turunan pertama fungsi linier dan non-linier 1 0 29
6 segmentasi citra dengan algoritma fuzzy c-means clustering 1 1 28
7 implementasi algoritma dijkstra untuk pencarian lokasi ruangan
studi kasus : rs. bethesda yogyakarta
3 0 27
8 aplikasi remote webcam pada lan (local area network) 0 28 2
9 sistem informasi penjualan barang model mlm studi kasus
business centre tempo direct solo
28 1 1
10 sistem informasi kredit barang rumah tangga 29 1 0
53
Pengolahan hasil kuisioner untuk mencari precision :
Tabel 4.20 Hasil Precision
No
dokumen
test
Judul abstrak
Orang yang memilih
Precision Klasifikasi
Sistem Setuju
Tidak
Setuju pembagian
1 sistem informasi inventori toko asesoris telephon seluler Basisdata 30 0 30/30 100%
2 sistem informasi penjualan mobil ( tunai / kredit ) Basisdata 24 6 24/30 80%
3 sistem administrasi firewall secara remote untuk keamanan
jaringan pada server berbasis linux menggunakan webmin Jaringan 29 1 29/30 96.67%
4 penerapan spanning tree protocol pada vlan Jaringan 29 1 29/30 96.67%
5 pencarian turunan pertama fungsi linier dan non-linier Komputasi 29 1 29/30 96.67%
6 segmentasi citra dengan algoritma fuzzy c-means clustering Komputasi 28 2 28/30 93.33%
7 implementasi algoritma dijkstra untuk pencarian lokasi
ruangan studi kasus : rs. bethesda yogyakarta Komputasi 27 3 27/30 90%
8 aplikasi remote webcam pada lan (local area network) Jaringan 28 2 28/30 93.33%
9 sistem informasi penjualan barang model mlm studi kasus
business centre tempo direct solo Basisdata 28 2 28/30 93.33%
10 sistem informasi kredit barang rumah tangga Basisdata 29 1 29/30 96.67%
Total rata - rata 281 19 281/300 93.67%
54
Daftar term yang termasuk kedalam ketiga kategori adalah sebagai berikut :
Tabel 4.21 Daftar term yang masuk dalam 3 kategori
Daftar term diatas diurutkan berdasarkan bobot centroid terbesar yang terdapat
dalam ketiga kategori
Term Bobot centorid
Basisdata Jaringan Komputasi
kirim 3.32193 9.99999 4.9829
internet 9.99999 4.73909 2.58496
file 6.19908 4.64931 9.99999
fitur 9.99999 4.32193 9.99999
suara 3.90689 3.90689 9.99999
pesan 9.99999 4.32193 4.32193
peta 4.32193 4.32193 9.99999
batas 7.81378 3.90689 9.99999
basisdata 9.76722 3.90689 3.90689
aplikasi 5.29548 9.56128 6.61935
hitung 3.32193 3.32193 8.85848
server 6.17806 8.8258 2.20645
batas 7.81378 3.90689 9.99999
basis 4.43136 7.75488 2.58496
model 6.78274 2.90689 5.08706
lunak 6.64386 6.64386 5.53655
jaringan 5.89957 6.33984 1.58496
java 4.06965 5.81378 2.90689
informasi 4.49582 3.45832 3.68888
55
Daftar term yang termasuk kedalam ketiga kategori adalah sebagai berikut :
Tabel 4.222 Daftar term yang masuk dalam 3 kategori
Daftar term diatas diurutkan berdasarkan bobot centroid terkecil yang terdapat
dalam ketiga kategori
Term Bobot centorid
Basisdata Jaringan Komputasi
data 2.48463 1.1624 2.55728
komputer 2 4.44444 4
simpan 3.78249 2.20645 2.20645
guna 5.30727 6.38531 2.32193
mysql 3.80716 2.44746 2.44746
analisis 2.44746 2.44746 3.42644
sistem 4.82499 3.29657 2.54735
metode 2.72623 2.6505 4.92235
teknologi 4.36034 3.87585 2.90689
program 3.40778 3.93788 3.21846
system 3.32193 4.42924 4.9829
uji 3.32193 3.32193 4.9829
masuk 3.32193 3.32193 5.53655
banding 3.90689 3.90689 3.90689
aman 4.64386 4.64386 4.64386
perangkat (angkat) 6.19908 6.19908 5.1659
56
Pembahasan :
Dari dari tabel 4.18 , 4.19 dan 4.20 dapat ditarik suatu kesimpulan :
Dari dokumen test no 1 ( pada tabel 4.18 ) nilai similarity terbesar adalah
0.20999 pada kategori Basisdata sedangkan nilai similarity terendah
adalah 0.06209 dan responden yang memilih Basisdata adalah 30 orang
dari jumlah keseluruhan responden 30 (pada tabel 4.19 no dokumen 1)
sehingga dapat dihasilkan precision 100% .
Dari keseluruhan dokumen test nilai rata-rata similarity yang dapat
mengklasifikasikan dokumen dengan menggunakan 60 dokumen untuk
model pada skripsi ini adalah diatas 0.11.
Dari dari tabel 4.21 dapat ditarik suatu analisa :
Kata / term yang dominan dalam berdasarkan besarnya centroid :
o Basisdata kata yang dominan antara lain : internet, pesan,
basisdata , model , informasi.
o Jaringan kata yang dominan antara lain : kirim, aplikasi, basis,
server, jaringan, java.
o Komputasi kata yang dominan antara lain : file, suara, peta, batas,
hitung.
Terdapat juga kata – kata yang hampir merata di 2 kategori yaitu pada
kategori basis data dan jaringan. Kata – kata tersebut yaitu : lunak. Pada
kategori basisdata dan komputasi yaitu : fitur.
Dari dari tabel 4.22 dapat ditarik suatu analisa :
Semakin kecil nilai centroid maka kata tersebut akan semakin merata di
beberapa kategori, contoh nya kata aman dan banding bobot centroidnya
merata di ke-3 kategori
57
BAB V
ANALISIS HASIL
5.1 Kesimpulan
Kesimpulan yang diambil setelah melakukan impelementasi
Klasifikasi Dokumen Skripsi Teknik Informatika Menggunakan Metode
Rocchio :
1. User dapat melakukan pencarian klasifikasi suatu abstrak
dokumen skripsi.
2. User dapat melakukan pencarian dokumen skripsi sesuai
dengan kata kunci.
3. Hasil nilai precision rata-rata yang dikeluarkan sistem
berdasarkan abstrak dokumen testing sebanyak 10 dokumen
adalah 93.67%.
4. Hasil precision dari 10 dokumen yang diuji dengan precision
terendah 80% precision tertinggi 100% berdasarkan 30
responden.
5.2 Saran
Dari hasil analisa saran yang dapat diberikan :
1. Penambahan kamus kata dasar dapat memperbaiki hasil
keluaran klasifikasi dari sistem.
2. Untuk memperoleh hasil yang lebih akurat disarankan
dokumen model (dokumen untuk menentukan klasifikasi) lebih
baik menggunakan dokumen yang benar-benar termasuk dalam
kategori / kelas dokumen.
58
Daftar Pustaka
Mandala, Ria dan Setiawan, Hendra, Improving Information Retrieval
System Perfomance by Automatic Query Expansion, Makalah, Departemen
Teknik Informatika, Institut Teknologi Bandung, 2001.
Tala, Z Fadila, A Study of Stemming Effects on Information Retrieval in
Bahasa Indonesia, Paper, Master of Logic Project, Institute for Logic,
Language and Computation, Universiteit van Amsterdam , The
Netherlands, 2001.
Nazief Bobby dan Mirna Adriani, Confix-Stripping: Approach to
Stemming Algorithm for Bahasa Indonesia, Faculty of Computer Science
University of Indonesia, 1996.
Zainal, Agus A dan Novam, Ari S, Klasifikasi Dokumen Berita Kejadian
Berbahasa Indonesia dengan Algoritma Single Pass Clustering, Makalah,
Teknik Informatika, Institut Teknologi Sepuluh Nopember, 2002.
Hasibuan, Zainal A dan Andri Yofi, Penerapan Berbagai Teknik Temu-
Kembali Informasi Berbasis Hiperteks, Makalah, Fakultas Ilmu
Komputer, Universitas Indonesia, 1998.
Christopher D. Manning,Prabhakar Raghavan, Hinrich Schütze, An
Introduction to Information Retrieval, Cambridge University Press
Cambridge, England, 2008.
Thorsten Joachims, A Probabilistic Analysis of the Rocchio Algorithm with
TFIDF for Text Categorization, Jurnal (makalah), Universitat Dortmun,
Germany, 1997.
59
Savoy, J. “A Learning Scheme for Information Retrieval in Hypertext”.
Information Processing & Management, 30(4), 515-533. 1993.
Salton, Gerard. 1989. Automatic Text Processing: The Transformation,
Analysis, and Retrieval of Information by Computer. AddisonWesley. 46,
194, 530.
Grossman, David A., and Ophir Frieder. 2004. Information Retrieval:
Algorithms and Heuristics, 2nd edition. Springer. xxii, 84, 217, 523.
Lancaster , F. W. “Vocabulary Control for Information Retrieval, 2nd
ed”.
Arlington, VA: Information Resources Press, 1986.
Rational Software ,“Rational Unified Process Best Practices for Software
Development Teams”. 20 Maguire Road Lexington, MA 02421. 1998.
60
LAMPIRAN 1
Lampiran 1.1 Skenario Usecase Login
Use Case : Login
Pra Kondisi : -
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses verifikasi hak akses
administrator untuk masuk ke sistem admin.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan login)
1. Aktor meng-klik tombol login
2. Sistem menampilkan menu login
yang berupa inputan username dan
password , serta tombol login.
3. Aktor mengisi username dan
password
4. Aktor menekan tombol login.
5. Sistem melakukan pengecekan
password dan username.
6. Sistem menampilkan menampilkan
halaman menu administrator.
Skenario Alternatif (melakukan login)
3. Aktor mengisi username dan
password.
5. Sistem memvalidasi username dan
password. Jika username dan
password salah maka sistem akan
menampilkan halaman index user.
6. Kembali kelangkah 1 sekenario
normal.
Lampiran 1.2 Skenario Usecase Logout
Use Case : Logout
Pra Kondisi : sistem telah login
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses keluar dari sistem.
61
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan logout)
1. Aktor berada pada halaman
administrator, kemudian aktor meng-
klik link logout.
2. Sistem akan keluar dari menu
administrator kembali ke halaman
indeks user.
Lampiran 1.3 Skenario Usecase Klasifikasi Dokumen
Use Case : Klasifikasi dokumen
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses menggambarkan proses
klasifikasi dokumen.
Aksi Aktor Reaksi Sistem
1.Aktor meng-klik link klasifikasi
dokumen.
2. Sistem akan menampilkan menu
klasifikasi dokumen. Berupa insert
dokumen yang akan diklasifikasikan
, tombol cari (browse) , tombol
keluar, dan tombol klasifikasi.
3. Aktor memasukkan dokumen yang
akan diklasifikasikan, kemudian
menekan tombol klasifikasi.
4. Sistem melakukan proses klasifikasi.
Dan memberikan hasil dari
klasifikasi dokumen.
Lampiran 1.4 Skenario Usecase Pembuatan Model dan indeks
Use Case : Pembuatan Model dan indeks
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses pengindekkan dokumen dan
pengklasifikasian dokumen kedalam kelas/kategori.
62
Aksi Aktor Reaksi Sistem
1.Aktor berada di menu admin,
kemudian meng-klik link Indexing
dokumen.
2. Sistem akan menampilkan form
Indexing dokumen. Berupa input teks
unutk judul dokumen, insert
dokumen yang akan diindekkan ,
dropdown menu untuk kategori
dokumen, tombol cari (browse) , dan
tombol indexing.
3. Aktor mengetikan judul dokumen,
memasukkan dokumen yang akan
diindekkan dengan meng-klik tombol
cari(browse), kemudian memilih
termasuk dalam kategori apakah
dokumen tersebut, dengan memilih
kategori dokumen dari dropdown
menu kategori. Aktor menekan
tombol indexing.
4. Sistem melakukan proses indexing
dokumen. Dan memberikan hasil
konfirmasi proses indexing.
Lampiran 1.5 Skenario Usecase Lihat dokumen
Use Case : Lihat dokumen
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses melihat dokumen yang telah
terindeks.
Aksi Aktor Reaksi Sistem
1.Aktor meng-klik link list data skripsi.
2. Sistem akan menampilkan form list
data skripsi, yang berisi tampilan
data skripsi yang telah terindeks.
Lampiran 1.6 Skenario Usecase Tambah stopword
Use Case : Tambah stopword
63
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penambahan stopword.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan tambah stopword)
1.Aktor meng-klik link Manage
Stoplist.
2. Sistem akan menampilkan form
stoplist. Berupa insert teks stoplist
untuk menambahkan stopword,
tombol tambah, daftar stoplist, link
edit , link hapus dan tombol .
3. Aktor memasukkan stopword pada
insert teks stopword. Kemudian aktor
menekan tombol save.
4. Sistem melakukan penyimpanan data
stopword yang baru. Sistem
memberikan konfirmasi penambahan
stopword.
Skenario Alternatif (melakukan tambah stopword)
3. Jika aktor tidak jadi melakukan
tambah stopword. Aktor menekan
tombol cancel.
4. Sistem kembali ke menu utama
Administrator.
Lampiran 1.7 Skenario Usecase Edit stoplist
Use Case : Edit stoplist
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses perubahan detail stopword
jika terjadi kesalahan pengetikan.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan edit stoplist)
1.Aktor meng-klik link manage
Stoplist.
64
2. Sistem akan menampilkan form
stoplist. Berupa insert teks stoplist
untuk menambahkan stopword,
tombol tambah, daftar stoplist , link
edit , link hapus dan tombol cancel.
3. Aktor meng-klik link edit pada salah
satu data yang ada dalam daftar
stoplist yang akan diedit.
4. Sistem menampilkan data yang akan
diedit dalam edit teks.
5. Aktor melakukan editing stopword ,
kemudian aktor menekan tombol edit.
6. Sistem melakukan penyimpanan
ulang data yang telah diubah/ diedit.
Dan memberikan konfirmasi
perubahan data.
Skenario Alternatif (melakukan edit stoplist)
3. Jika aktor tidak jadi melakukan edit
stopword. Aktor menekan tombol
cancel.
4. Sistem kembali ke menu utama
Administrator.
Lampiran 1.8 Skenario Usecase Hapus stopword
Use Case : Hapus stopword
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penghapusan data
stopword.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan hapus stopword)
1.Aktor meng-klik link manage
Stoplist.
2. Sistem akan menampilkan menu
stoplist. Berupa insert teks stoplist
untuk menambahkan stopword,
tombol tambah, daftar stoplist, link
edit , link hapus.
65
3. Aktor meng-klik link hapus pada
salah satu data yang ada dalam daftar
stoplist yang akan dihapus.
4. Sistem melakukan penghapusan data
stopword. Dan memberikan
konfirmasi penghapusan data.
5. Aktor meng-klik link kembali
6. sistem kembali ke menu admin
Lampiran 1.9 Skenario Usecase Tambah kategori
Use Case : Tambah kategori
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penambahan kategori.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan tambah kategori)
1.Aktor meng-klik link manage
Kategori.
2. Sistem akan menampilkan form
kategori. Berupa insert teks kategori
untuk menambahkan kategori,
tombol tambah, daftar kategori, link
edit , link hapus .
3. Aktor memasukkan kategori baru
pada teks tambah kategori.
Kemudian aktor menekan tombol
save.
4. Sistem melakukan penyimpanan data
kategori yang baru. Sistem
memberikan konfirmasi penambahan
kategori.
Skenario Alternatif (melakukan tambah kategori)
3. Jika aktor tidak jadi melakukan
tambah stopword. Aktor menekan
tombol cancel.
4. Sistem kembali ke menu utama
Administrator.
66
Lampiran 1.10 Skenario Usecase Edit kategori
Use Case : Edit kategori
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses perubahan detail kategori
jika terjadi kesalahan pengetikan.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan edit kategori)
1.Aktor meng-klik link manage
kategori.
2. Sistem akan menampilkan menu
kelola kategori. Berupa insert teks
kategori untuk menambahkan
kategori, tombol save, daftar
kategori, link edit , link hapus dan
tombol cancel.
3. Aktor meng-klik link edit pada salah
satu kategori yang ada dalam daftar
kategori yang akan diedit.
4. Sistem menampilkan form edit data
yang akan diedit dalam edit teks.
5. Aktor melakukan editing kategori .
kemudian aktor menekan tombol edit
6. Sistem melakukan penyimpanan
ulang data yang telah diubah/ diedit.
Dan memberikan konfirmasi
perubahan data. Skenario Alternatif (melakukan edit kategori)
3. Jika aktor tidak jadi melakukan edit
kategori. Aktor menekan tombol
cencel.
4. Sistem kembali ke menu utama
Administrator.
Lampiran 1.11 Skenario Usecase Hapus kategori
Use Case : Hapus kategori
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penghapusan data kategori.
67
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan hapus kategori)
1.Aktor meng-klik link Manage
kategori.
2. Sistem akan menampilkan menu
kelola kategori. Berupa insert teks
kategori untuk menambahkan
kategori, tombol save, daftar kategori
, link edit , link hapus dan tombol
cancel.
3. Aktor meng-klik link hapus pada
salah satu data yang ada dalam daftar
kategori yang akan dihapus.
4. Sistem menampilkan konfimasi
penghapusan data.
5. Aktor menekan link kembali.
6. Sistem kembali ke menu admin.
Lampiran 1.12 Skenario Usecase Tambah kata dasar
Use Case : Tambah kata dasar
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penambahan data kata
dasar.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan tambah kata dasar)
1.Aktor meng-klik link manage kamus.
2. Sistem akan menampilkan menu
kelola kamus. Berupa insert teks kata
dasar untuk menambahkan kata
dalam kamus, tombol tambah, daftar
kata dalam kamus, link edit , link
hapus.
3. Aktor memasukkan kata dasar baru
pada teks tambah kata dasar.
Kemudian aktor menekan tombol
save.
68
4. Sistem melakukan penyimpanan data
kata dasar yang baru. Sistem
memberikan konfirmasi penambahan
kata dalam kamus.
Skenario Alternatif (melakukan tambah katadasar)
3. Jika aktor tidak jadi melakukan
tambah kata dasar. Aktor menekan
tombol cancel.
4. Sistem kembali ke menu utama
Administrator.
Lampiran 1.13 Skenario Usecase Edit kamus
Use Case : Edit kamus
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses perubahan detail data kata
dasar.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan edit kamus)
1.Aktor meng-klik link manage kamus.
2. Sistem akan menampilkan menu
kelola kamus. Berupa insert teks kata
dasar untuk menambahkan kata
dalam kamus, tombol tambah, daftar
kata dalam kamus, link edit , link
hapus.
3. Aktor menekan link edit pada list
kata dasar.
4. sistem menapilkan form edit kata
dasar.
5. Kemudian aktor melakukan editing
kata setelah itu menekan tombol
edit.
6. Sistem melakukan penyimpanan
ulang data kata dasar yang baru.
Sistem memberikan konfirmasi
penambahan kata dalam kamus.
Skenario Alternatif (melakukan edit kamus)
69
5. Jika aktor tidak jadi melakukan edit
kata dasar. Aktor menekan tombol
cancel.
6. Sistem kembali ke menu utama
Administrator.
Lampiran 1.14 Skenario Usecase Hapus kata dasar
Use Case : Hapus kata dasar
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penghapusan data kategori.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan hapus kategori)
1.Aktor meng-klik link Manage kamus.
2 Sistem akan menampilkan form
kelola kamus. Berupa insert teks kata
dasar untuk menambahkan kata
dalam kamus, tombol tambah, daftar
kata dalam kamus, link edit , tombol
link dan tombol cancel.
3. Aktor meng-klik link hapus pada
salah satu data yang ada dalam daftar
kata yang akan dihapus.
4. Sistem melakukan penghapusan data
kata dalam kamus. Dan memberikan
konfirmasi perubahan data.
5. Aktor menekan link kembali.
6. sistem kembali ke menu admin
Lampiran 1.15 Skenario Usecase Tambah user
Use Case : Tambah user
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penambahan user.
70
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan tambah kata dasar)
1.Aktor meng-klik tombol manage
user.
2. Sistem akan menampilkan menu
kelola user. Berupa insert username
dan password untuk menambahkan
user, tombol save, daftar user,link
edit , link hapus.
3. Aktor memasukkan username dan
password .Kemudian aktor menekan
tombol save.
4. Sistem melakukan penyimpanan data
username dan password . Sistem
memberikan konfirmasi penambahan
user .
Skenario Alternatif (melakukan tambah katadasar)
3. Jika aktor tidak jadi melakukan
tambah kata dasar. Aktor menekan
tombol cancel.
4. Sistem kembali ke menu utama
Administrator.
Lampiran 1.16 Skenario Usecase user
Use Case : Edit user
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses perubahan detail user.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan edit kamus)
1.Aktor meng-klik tombol manage
user.
2. Sistem akan menampilkan menu
kelola user. Berupa insert username
dan password untuk menambahkan
user, tombol save, daftar user,link
edit , link hapus.
3. Aktor menekan link edit pada list
user.
71
4. sistem menapilkan form edit use.
6. Kemudian aktor melakukan editing
kata setelah itu menekan tombol
edit.
6. Sistem melakukan penyimpanan
ulang data user yang baru. Sistem
memberikan konfirmasi.
Skenario Alternatif (melakukan edit kamus)
5. Jika aktor tidak jadi melakukan edit
user. Aktor menekan tombol cancel.
6. Sistem kembali ke menu utama
Administrator.
Lampiran 1.17 Skenario Usecase Hapus user
Use Case : Hapus user
Pra Kondisi : aktor telah masuk dalam menu utama administrator
Aktor : Administrator
Deskripsi : Use Case ini menggambarkan proses penghapusan data user.
Aksi Aktor Reaksi Sistem
Skenario Normal (melakukan hapus kategori)
1.Aktor meng-klik tombol manage
user.
2. Sistem akan menampilkan menu
kelola user. Berupa insert username
dan password untuk menambahkan
user, tombol save, daftar user,link
edit , link hapus.
3. Aktor meng-klik link hapus pada
salah satu data yang ada dalam daftar
user yang akan dihapus.
4. Sistem melakukan penghapusan data
user. Dan memberikan konfirmasi
perubahan data.
5. Aktor menekan link kembali.
6. sistem kembali ke menu admin
72
Lampiran 1.18 Skenario Usecase cari dokumen
Use Case : Cari dokumen
Pra Kondisi : aktor telah dalam halaman user (halaman pencarian dokumen)
Aktor : User / pengguna
Deskripsi : Use Case ini menggambarkan proses pencarian kata dalam
dokumen.
Aksi Aktor Reaksi Sistem
1.Aktor memasukan kata kunci
pencarian(query). Kemudian aktor
menekan tombol cari.
2 Sistem akan melakukan pencarian
data yang sesuai dengan query / kata
kunci aktor.
3. sistem menampilkan hasil dokumen
yang relevan dengan kata kunci dan
termasuk dalam kategori yang telah
ditentukan.
Lampiran 1.19 Skenario Usecase cari klasifikasi dokumen
Use Case : Cari klasifikasi dokumen
Pra Kondisi : aktor telah dalam halaman pencarian klasifiksi dokumen
Aktor : User / pengguna
Deskripsi : Use Case ini menggambarkan proses pencarian kategori / kelas
dokumen.
Aksi Aktor Reaksi Sistem
1.Aktor memasukan kata kunci
pencarian(query). Kemudian aktor
menekan tombol cari.
2 Sistem akan melakukan
membandingkan data yang sesuai
dengan query / kata kunci.
3. sistem menampilkan kelas/kategori
dari kata kunci yang dimasukkan.
73
LAMPIRAN 2 Lampiran 2.1 Realisasi Use Case Login
Halaman Menu User Halaman Login Admin AutentifikasiLogin User
Kelas Analisis
Dinamika Obyek
User
4. Aktor menekan tombol login
Halaman Login Admin AtentifikasiLogin
2. Sistem menampilkan form login3. Aktor menginputkan username dan
password
5. Sistem mengatentifikasi username
dan password
Sistem border
username, password
isAuthentic()
Select result
username dan password
show()
Login key
Halaman menu user
1. Aktor mengklik link login klik link login
No Nama Kelas Tipe Deskripsi
1 Halaman Menu User Interface /
Boundary
Kelas ini berfungsi untuk
menampilkan halaman indeks
user.
2 Halaman Login Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form Login
3 AutentifikasiLogin Control Kelas ini berfungsi untuk
mengautentifikasi /
memvalidasi username dan
password.
4 User Entity/model Kelas ini berfungsi untuk
menyimpan data-data User
(username dan password)
74
Lampiran 2.2 Realisasi Use Case Logout
Halaman Menu Admin AutentifikasiLogout User
Kelas Analisis
Dinamika Obyek
1. Aktor telah login
3. Sistem keluar halaman Admin
UserHalaman Menu admin AtentifikasiLogout
2. Aktor menekan tombol logout
Sistem border
AutentifikasiLogout
Keluar halaman admin
Logout key
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi penampilan
halaman administrator
2 AutentifikasiLogout Control Kelas ini berfungsi untuk
menghilangkan password dan
user name. untuk menjaga
keamanan password dan user
name.
3 User Entity/model Kelas ini berfungsi untuk
menyimpan data-data User (user
name dan password)
75
Lampiran 2.3 Realisasi Use Case Klasifkasi Dokumen
Halaman Menu Admin Form Kasifikasi Dokumen
indekTerm
Term
centroidKlass
Word
ControlKlasifikasi
Tokenizer
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form klasifikasi
dokumen
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form klasifikasi.
3 ControlKlasifikasi Control Kelas ini berfungsi untuk
menentukan termasuk kategori
apakah dokumen masukan
(inputan). Dalam
ControlKlasifikasi terdapat
beberapa proses yaitu proses
stoplist, steming, pembobotan,
similarity dan klasifikasi.
4 IndekTerm Entity/model Kelas ini berfungsi untuk
menyimpan menghitung term
frekuensi.
5 Term Entity/model Kelas ini berfungsi untuk
menampung data term, hitung
dokumen frekuensi, indexing
data, update bobot, update
centroid.
6 centroidKlass Entity/model Kelas ini berfungsi untuk
menampung kata yang sama
76
Dinamika Obyek
3. Aktor menekan tombol
klasifikasi
1. Aktor menekan tombol menu
Klasifikasi dokumen
TokenizerHalaman administrator ControlKlasifiaksi
2. Aktor memasukkan dokumen
yang akan diklasifikasikan
Sistem border
Proses klasifikasi()
Menu klasifikasi key
Term IndekTerm centroidKlass
show()
klasifikasi key stopword()
stemeToIndonesia()
Form Klasifikasi
input dokumen
Word
getSimilarityAllKategory()
getAllSimilarity() getSimilarityKategory()
itungTF()
Hasil klasifikasi
Term()
Term()
4. sistem menampilkan hasil
klasifikasi
tf
Lampiran 2.4 Realisasi Use Case Pembuatan Model
Halaman Menu Admin form indexing
indekTerm
Term
Word
Skripsi
kategori
Tokenizer
ControlIndexing
untuk perhitungan centroid
dalam suatu kategori.
8 Word Model Kelas ini berfungsi untuk
melakukan steming kata / term
(merupakan bagian dari
steming yang telah dibuat oleh
Puspaningtyas Sanjaya Adi,
S.T, M.T)
9 Tokenizer Model Kelas ini berfungsi untuk
menyaring daftar kata yang ada
dalam stoplist kata.
77
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form indexing Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form indexing
dokumen
3 ControlIndexing Control Kelas ini berfungsi untuk
melakukan proses indexing
dokumen. Didalam proses ini
terdapar proses stoplist , proses
steming, pembobotan dokumen,
penghitungan centroid, insert
term, update term, update
centoid.
4 Skripsi Entity/model Kelas ini berfungsi untuk
menyimpan data – data
dokumen skripsi.
5 indekTerm Entity/model Kelas ini berfungsi untuk
menyimpan menghitung term
frekuensi.
6 Term Entity/model Kelas ini berfungsi untuk
menampung data term, hitung
dokumen frekuensi, indexing
data, update bobot, update
centroid.
7 Kategori Entity/model Kelas ini berfungsi untuk
menyimpan data kategori.
8 Word Model Kelas ini berfungsi untuk
menyimpan kata dasar yang
digunakan untuk mengecek
steming
9 Tokenizer Model Kelas ini berfungsi untuk
menyaring daftar kata yang ada
dalam stoplist kata.
78
Dinamika Obyek
kategori
5. Aktor menekan tombol indexing
Halaman Menu admin ControlIndexing
1. Aktor menekan link Indexing
dokumen
3. Aktor memasukkan dokumen
yang akan diindekkan
Sistem border
Proses indexing()
Menu indexing
form indexing Term IndekTerm Tokenizer Word
show()
Jenis klasifikasi
dokumen
stopword()
stemeToIndonesia()
4. Aktor memilih jenis klasifikasi
dokumen
kategori
Indexing key
2. Aktor mengetikan judul dokumen Judul dokumen
Informasi indexing
termitungTF()
insertTerm()
term
term
tf
insertSkripsi()6. sistem menampilkan informasi
indexing
Lampiran 2.5 Realisasi Use Case Lihat Dokumen
Halaman Menu Admin
kategori
form list data Skripsi
Skripsi
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Halaman Administrator
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form
administrator
2 Form list data Skripsi Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form lihat
dokumen yang telah
terindek
3 Kategori Entity Kelas ini berfungsi untuk
menyimpan data kategori.
4 Skripsi Entity Kelas ini berfungsi untuk
menyimpan data – data
dokumen.
79
Dinamika Obyek
Halaman menu admin Kategori
1. Aktor menekan link list data skripsi
Sistem border
List data skripsi
Form list data skripsi Skripsi
show()idKategori, kategori
Show(judul skripsi, kategori)
select(judul, kategori)
2. sistem menampilkan data skripsi
Lampiran 2.6 Realisasi Use Case Tambah Stopword
Halaman Menu Admin Form manage stoplist stopwordManajemenController stoplist
Kelas Analisis
Dinamika Obyek
Halaman menu admin StopWordManajemenController
1. Aktor menekan tombol menu kelola
stoplist
2. Aktor memasukkan data stopword
Sistem border
Menu kelola stoplist
form manage stoplist stoplist
show()
Tambah key
stopword
3. Aktor menekan tombol tambah Insert()
result
tambah stopword
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage stoplist Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
stoplist
3 StopwordManajemenController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data stopword.
4 Stoplist Entity/model Kelas ini berfungsi untuk
menyimpan data – data
stopword.
80
Lampiran 2.7 Realisasi Use Case Edit Stoplist
Halaman Menu Admin Form manage stoplist stopwordManajemenController stoplist
Kelas Analisis
Dinamika Obyek
Halaman menu admin StopWordManajemenController
1. Aktor menekan tombol menu kelola
stoplist
2. Aktor memilih data stopword
Sistem border
Menu kelola stoplist
Form manage stoplist stoplist
show()
edit key
stopword
3. Aktor menekan tombol edit
Edit stopword
update
result
Lampiran 2.8 Realisasi Use Case Hapus Stopword
Halaman Menu Admin Form manage stoplist stopwordManajemenController stoplist
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage stoplist Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
stoplist
3 StopwordManajemenController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data stopword.
4 Stoplist Entity/model Kelas ini berfungsi untuk
menyimpan data – data
stopword.
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin Interface / Kelas ini berfungsi untuk
81
Dinamika Obyek
Halaman menu admin StopWordManajemenController
1. Aktor menekan tombol menu kelola
stoplist
2. Aktor memilih data stopword
Sistem border
Menu kelola stoplist
form manage stoplist stoplist
show()
hapus key
stopword
3. Aktor menekan tombol hapus
Hapus stopword
Delete()
result
Lampiran 2.9 Realisasi Use Case Tambah Kategori
Halaman Menu Admin Form manage kategoriKategoriManajementController
kategori
Kelas Analisis
Boundary menyediakan fungsi
penampilan halaman
administrator
2 Form manage stoplist Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
stoplist
3 StopwordManajemenController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data stopword.
4 Stoplist Entity/model Kelas ini berfungsi untuk
menyimpan data – data
stopword.
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage kategori Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
kategori.
3 KategoriManajemenController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kategori.
4 Kategori Entity/model Kelas ini berfungsi untuk
82
Dinamika Obyek
Halaman menu admin kategoriManajemenController
1. Aktor menekan tombol menu kelola
Kategori
2. Aktor memilih data kategori
Sistem border
Menu kelola kategori
Form manage kategori Kategori
show()
edit key
kategori
3. Aktor menekan tombol edit
Edit kategori
Update()
result
Lampiran 2.10 Realisasi Use Case Edit Kategori
Halaman Menu Admin Form manage kategoriKategoriManajementController
kategori
Kelas Analisis
menyimpan data – data
kategori.
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage kategori Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
kategori.
3 KategoriManajemenController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kategori.
4 Kategori Entity/model Kelas ini berfungsi untuk
menyimpan data – data
kategori.
83
Dinamika Obyek
Halaman menu admin kategoriManajemenController
1. Aktor menekan tombol menu kelola
Kategori
2. Aktor memilih data kategori
Sistem border
Menu kelola kategori
Form manage kategori Kategori
show()
edit key
kategori
3. Aktor menekan tombol edit
Edit kategori
Update()
result
Lampiran 2.11 Realisasi Use Case Hapus Kategori
Halaman Menu Admin Form manage kategoriKategoriManajementController
kategori
Kelas Analisis
Dinamika Obyek
Halaman menu admin kategoriManajemenController
1. Aktor menekan tombol menu kelola
Kategori
2. Aktor memilih data kategori
Sistem border
Menu kelola kategori
Form manage kategori Kategori
show()
hapus key
kategori
3. Aktor menekan tombol hapus
Hapus Kategori
Delete()
result
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage kategori Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
kategori.
3 KategoriManajemenController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kategori.
4 Kategori Entity/model Kelas ini berfungsi untuk
menyimpan data – data
kategori.
84
Lampiran 2.12 Realisasi Use Case Tambah Kata Dasar
Halaman Menu Admin KamusForm manage kamusKamusManajemenControl
Kelas Analisis
Dinamika Obyek
Halaman menu admin KamusManajemenController
1. Aktor menekan tombol menu kelola
Kamus
2. Aktor memasukkan data kamus
Sistem border
Menu kelola kamus
form manage kamus Kamus
show()
Tambah key
word
3. Aktor menekan tombol tambah
tambah kamus
Insert()
result
Lampiran 2.13 Realisasi Use Case Edit Kamus
Halaman Menu Admin KamusForm manage kamusKamusManajemenControl
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage kamus Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
kamus.
3 KamusManajemenControl Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kamus.
4 Kamus Entity/model Kelas ini berfungsi untuk
menyimpan data – data
kamus (kata dasar).
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
85
Dinamika Obyek
Halaman menu admin KamusManajemenController
1. Aktor menekan tombol menu kelola
Kamus
2. Aktor memilih data kategori
Sistem border
Menu kelola kamus
form manage Kamus Kamus
show()
edit key
word
3. Aktor menekan tombol edit
Edit word
Update()
result
Lampiran 2.14 Realisasi Use Case Hapus Kata Dasar
Halaman Menu Admin KamusForm manage kamusKamusManajemenControl
Kelas Analisis
penampilan halaman
administrator
2 Form manage kamus Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
kamus.
3 KamusManajemenControl Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kamus.
4 Kamus Entity/model Kelas ini berfungsi untuk
menyimpan data – data
kamus (kata dasar).
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage kamus Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
kamus.
3 KamusManajemenControl Control Kelas ini berfungsi untuk
menambah, mengedit atau
86
Dinamika Obyek
Halaman menu admin KamusManajemenController
1. Aktor menekan tombol menu kelola
Kamus
2. Aktor memilih data kategori
Sistem border
Menu kelola kamus
Form manage Kamus Kamus
show()
Hapus key
word
3. Aktor menekan tombol hapus
Hapus Word
Delete()
result
Lampiran 2.15 Realisasi Use Case Tambah user
Halaman Menu Admin Form Manage User UserManageController User
Kelas Analisis
menghapus data kamus.
4 Kamus Entity/model Kelas ini berfungsi untuk
menyimpan data – data
kamus (kata dasar).
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage user Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
user.
3 UserManageController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kamus.
4 User Entity/model Kelas ini berfungsi untuk
menyimpan data – data user
( username, password ).
87
Dinamika Obyek
Halaman Menu UserManageController
1. Aktor menekan link manage user
2. Aktor memasukkan data username
dan password
Sistem border
Menu manage user
Form manage user User
show()
Tambah key
Username, password
3. Aktor menekan tombol saveInsert(username,password)
result
tambah user
Lampiran 2.16 Realisasi Use Case Edit user
Halaman Menu Admin Form Manage User UserManageController User
Kelas Analisis
Dinamika Obyek
Halaman Menu UserManageController
1. Aktor menekan link manage user
2. Aktor menekan link edit
Sistem border
Menu manage user
Form manage user User
show()
Username password
Link edit
4. Aktor menekan tombol edit update(username,password)
changePassword()
result
edit user3. aktor mengedit username, password
edit key
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage user Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
user.
3 UserManageController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kamus.
4 User Entity/model Kelas ini berfungsi untuk
menyimpan data – data user
( username, password ).
88
Lampiran 2.17 Realisasi Use Case Hapus user
Halaman Menu Admin Form Manage User UserManageController User
Kelas Analisis
Dinamika Obyek
Halaman Menu UserManageController
1. Aktor menekan link manage user
2. Aktor menekan link hapus
Sistem border
Menu manage user
Form manage user User
show()
Link hapus
hapus(idusername)
result
hapus user
No Nama Kelas Tipe Deskripsi
1 Halaman Menu Admin
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman
administrator
2 Form manage user Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan form manage
user.
3 UserManageController Control Kelas ini berfungsi untuk
menambah, mengedit atau
menghapus data kamus.
4 User Entity/model Kelas ini berfungsi untuk
menyimpan data – data user
( username, password ).
89
Lampiran 2.18 Realisasi Use Case Cari dokumen
Halaman Menu User
Term
indekTerm
Tokenizer
Word
ControlCari
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Halaman menu user
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi penampilan
halaman user
2 ControlCari Control Kelas ini berfungsi untuk mencari
data yang sesuai dengan kata kunci /
query dari user.
3 indekTerm Entity /model Kelas ini berfungsi untuk
menyimpan menghitung term
frekuensi, fungsi untuk menghitung
jumlah bobot dalam dokumen yang
sesuai dengan kata kunci.
4 Term Entity /model Kelas ini berfungsi untuk
menampung data term, hitung
dokumen frekuensi.
5 Word model Kelas ini berfungsi untuk melakukan
steming kata / term (merupakan
bagian dari steming yang telah
dibuat oleh Puspaningtyas Sanjaya
Adi, S.T, M.T)
6 Tokenizer model Kelas ini berfungsi untuk menyaring
daftar kata yang ada dalam stoplist
kata.
90
Dinamika Obyek
1. Aktor memasukkan kata kunci
pencarian
TokenizerHalaman menu user ControlCari
2. Aktor menekan tombol cari
Sistem border
Key cari Proses klasifikasi()
Term indekTerm
stopword()
stemeToIndonesia()
input dokumen
Word
getCariKata()
itungTF()
Hasil pencarian
Term()
3. sistem menampilkan hasil pencarian
tf
term
term
hasil pencarian
Lampiran 2.19 Realisasi Use Case cari klasifikasi dokumen
Word
Term
Tokenizer
indekTerm
centroidKlassHalaman Menu User ControlCariKlasHalaman Pencarian Klasifikasi
Kelas Analisis
No Nama Kelas Tipe Deskripsi
1 Halaman menu user
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman user
2 Halaman pencarian
klasifikasi
Interface /
Boundary
Kelas ini berfungsi untuk
menyediakan fungsi
penampilan halaman pencarian
klasifikasi.
3 ControlCariKlas Control Kelas ini berfungsi untuk
menentukan termasuk kategori
apakah dokumen masukan
(inputan). Dalam
ControlCariKlas terdapat
beberapa proses yaitu proses
91
Dinamika Obyek
3. Aktor menekan tombol cari
1. Aktor menekan tombol link
pencarian Klasifikasi
TokenizerHalaman Menu user ControlCariKlas
2. Aktor memasukkan katakunci
abstrak dokumen skripsi
Sistem border
Proses pencarian klas()
Link pencarian klas
Term indekTerm
cari key stopword()
stemeToIndonesia()
Halaman pencarian
klasifikasi
input abstrak dokumen
Word
getSimilarityAllKategory()
getAllSimilarity() getSimilarityKategory()
itungTF()
hasilSimilarityHasil klasifikasi
Term()
Term()
4. sistem menampilkan hasil
klasifikasi
tf
show()
centroidKlass
stoplist, steming, pembobotan,
similarity dan klasifikasi.
4 indekTerm Entity Kelas ini berfungsi untuk
menyimpan menghitung term
frekuensi.
5 Term Entity Kelas ini berfungsi untuk
menampung data term, hitung
dokumen frekuensi, indexing
data, update bobot, update
centroid.
6 centroidKlass Entity Kelas ini berfungsi untuk
menghitung kemiripan
dokumen, fungsi pencarian
dokumen.
7 Word Entity Kelas ini berfungsi untuk
melakukan steming kata / term
(merupakan bagian dari
steming yang telah dibuat oleh
Puspaningtyas Sanjaya Adi,
S.T, M.T)
8 Tokenizer Entity Kelas ini berfungsi untuk
menyaring daftar kata yang ada
dalam stoplist kata.
92
LAMPIRAN 3
Berikut ini adalah tabel realisai kelas desain yang digunakan dalam pembuatan sistem ini:
Diagram Kelas Keseluruhan
stoplist
Kamus
stopwordManajemenCon
troller
KategoriManajementCon
troller
KamusManajemenContr
ol
Form manage stoplist
Form manage kategoriForm manage kamus
f orm list data Skripsi
Halaman Menu Admin
Form Manage User
Autentif ikasiLogin
Autentif ikasiLogout
UserManageController
User
Halaman Login Admin
Skripsi
kategori
f orm indexing
Halaman Menu User
Form Kasif ikasi Dokumen
Word
Tokenizer
centroidKlassHalaman Pencarian Klasif ikasi
Term
ControlIndexing
ControlCari
ControlKlasif ikasi
ControlCariKlas
indekTerm
93
Lampiran 4
Tabel 5.22 Tabel Atribut dan Metode
1 AutentifikasiLogin Lampiran 4.1
2 AutentifikasiLogOut Lampiran 4.2
3 ControlIndexing Lampiran 4.3
4 ControlKlasifikasi Lampiran 4.4
5 ControlCari Lampiran 4.5
6 ControlCariKlas Lampiran 4.6
7 KamusManajemenControl Lampiran 4.7
8 StopwordManajemenController Lampiran 4.8
9 KategoriManajemenController Lampiran 4.9
10 UserManageController Lampiran 4.10
11 Kamus Lampiran 4.11
12 Kategori Lampiran 4.12
13 Stoplist Lampiran 4.13
14 Skripsi Lampiran 4.14
15 centroidKlass Lampiran 4.15
16 Word Lampiran 4.16
17 User Lampiran 4.17
18 Tokenizer Lampiran 4.18
19 Term Lampiran 4.19
20 indekTerm Lampiran 4.20
21 Halaman Login Admin Lampiran 4.21
22 Halaman menu user Lampiran 4.22
23 Halaman Menu Admin Lampiran 4.23
24 Form Manage User Lampiran 4.24
25 Form Indexing Dokumen Lampiran 4.25
26 Form Klasifikasi Dokumen Lampiran 4.26
27 Form Manage Kamus Lampiran 4.27
28 Form Manage Stoplist Lampiran 4.28
29 Form Manage Kategori Lampiran 4.29
30 Halaman Pencarian Klasifikasi Lampiran 4.30
94
Lampiran 4.1 AutentifikasiLogin
Attribut
Tidak Ada
Method
A. processRequest () Input:
String username = request.getParameter("username")
String password = request.getParameter("password")
Output:
Void
Algoritma:
a. if( “username”== Null || “password” == Null ||“username”== “” ||
“password” == “”) then
kembali ke index
endif
b. else then
if (User.isAuthentic(username, password)) then
Login ke indek admin
Endif
else
kembali ke indek
end
endif
Lampiran 4.2 AutentifikasiLogOut
Attribut
Tidak Ada
Method
A. processRequest () Input:
String edit = request.getParameter("edit")
Output:
Void
Algoritma:
a. User user = (User) session.getAttribute("user"); ambil session user
b. if( user == Null) then
kembali ke index
endif
c. else then
remove session user
if (edit != null) then
konfirmasi edit true
Endif
else
kembali ke indek
end
Lampiran 4.3 ControlIndexing
Attribut
Tidak Ada
Method
A. processRequest ()
95
Input:
indexing= "indexing"
judulDok = “txtJudul”
kategori = “kategori”
words = “”
Output:
Void
Algoritma:
a. K = null ← K adalah kategori dari form Indexing
J =null ← J adalah Judul dokumen dari form Indexing
words ← tampung teks inputan dalam (data yang akan diindeks)
termcek ← buat objek termcek dari model Term
b. if (!termcek.isCekFile(namafile, J)then
token ← buat obyek dari kelas Tokenizer
token.setData(words)
token.makeTokens()
termTmp ← buat List termTmp yang menampung hasil token
term ← buat List term
c. for x=0 to termTmp.size()
trm ← buat object trm dari Term
kata ← kata = variable yang menampung termTmp
d. if(!token.isStoplist(kata)) then
kata = word.stemToIndonesian() ← steaming kata
trm.setTerm(kata) trm.setDoc(namafile)
trm.setTf(1)
trm.setDf(1)
trm.setKategori(K)
trm.setJudulDok(J)
term.add(trm)
Endif
Endfor
e. hitung← buat object untuk hitung term frekuensi dari model
itungTF
f. term = hitung.hitungTF(term)
//insert variable judul, kategori, namafile ke entitas Skripsi
g. boolean kode = skripsi.insert(namafile, K, J)
if(kode) then
for z=0 to term.size()
trm.insertTerm() ← proses penyimpanan buat indeks
endfor
pesan proses indexing sukses
endif
endif then
else
pesan file sudah ada
end
Lampiran 4.4 ControlKlasifikasi
Attribut
Tidak Ada
Method
A. processRequest () Input:
96
data
Output:
Void
Algoritma:
a. words ← tampung teks inputan dalam (data yang akan diindeks)
token ← buat obyek dari kelas Tokenizer
token.setData(words)
token.makeTokens()
termTmp ← buat List termTmp yang menampung hasil token
term ← buat List term
b. for x=0 to termTmp.size()
trm ← buat object trm dari Term
kata ← kata = variable yang menampung termTmp
if(!token.isStoplist(kata)) then
kata = word.stemToIndonesian() ← steaming kata
trm.setTerm(kata) trm.setDoc(namafile)
trm.setTf(1)
trm.setDf(1)
term.add(trm)
Endif
Endfor
c. hitung← buat object untuk hitung frekuensi term dari model
itungTF
term = hitung.hitungTF(term)
coba ← list untuk menampung term
kondisi ← buat variable kondisi=”” untuk kondisi query
trm2 ← buat object trm2 = null dari model Term
d. if ( coba.size() > 0 ) then
kondisi = trm2.getTerm()
for z = 0 to coba.size()
kondisi = kondisi + trm2.getTerm()
end for
end if
//Proses pengambilan data ke data base
e. sim ← buat object dari similartyKlass
kategori ← buat object Kategori
kategoriList ← buat list kategoriList=Kategori.getKategoriList();
allSim ← buat object yang menampung kondisi
allSim=sim.getAllSimilarity(kondisi)
hasilSimilarity ← list untuk menampung hasil similarity
trm3 ← buat object Term
allSImTmp ← buat list allSImTmp
f. if (coba.size() > 0) then
for J=0 to allSim.size()
simTmp ← object dari similartyKlassyang berisi allSim.get(j)
for Z=0 to coba.size()
cek ← variable untuk menampung trm3.getTerm()
if (simTmp.getTerm() = cek)
simTmp.settF(trm3.getTf())
allSImTmp.add(simTmp)
endif
endfor
endfor
endif
97
g. bobotAtas ← bobotAtas = 0;
h. bobotBawah ← bobotBawah = 0;
i. centroidAtas ← centroidAtas = 0;
j. centroidBawah ← centroidBawah = 0;
k. bilPokok ← bilPokok = 0;
l. similarity ← similarity = 0
m. //Hitung Bobot Bawah
for a = 0 to allSImTmp.size()
simTmp = allSImTmp.get(a)
bobotBawah = bobotBawah + ( simTmp.getBobot() *
simTmp.getBobot() )
endfor
n. for i=0 to jumlahKategori
tmp ← untuk menampung kategoriList dari model Kategori
simKat ← buat list yang menampung
sim.getSimilarityKategory(kondisi, tmp.getIdkat( ))
simAllKat ← buat list yang menampung
sim.getSimilarityAllKategory(tmp.getIdkat())
o. for b =0 to simKat.size()
simCek ← buat object yang menampung simKat.get(b)
for d=0 to allSImTmp.size()
simTmp ← buat object yang menampung allSImTmp.get(d)
if (simCek.getTerm() = simTmp.getTerm())
bobotAtas = simTmp.getBobot();
centroidAtas = simTmp.getCentroid();
bilPokok = bilPokok + (bobotAtas * centroidAtas);
endif
endfor
end for
p. //Hitung centroidBawah
for g =0 to simAllKat.size()
simTmp2 ← buat object yang menampung simAllKat.get(g)
centroidBawah = centroidBawah + (simTmp2.getCentroid() *
simTmp2.getCentroid())
endfor
q. // Hitung Similarity
similarity = bilPokok / (Math.sqrt(bobotBawah) *
Math.sqrt(centroidBawah))
r. tampilkan hasil similarity
s. simpan hasil similarity dalam object hasil
t. //mencari similarity terbesar
has ← buat object yang menampung hasil similarity
tmp ← buat variable yang menampung nilai similarity
kar ← buat variable kar=0 for S=1 to hasilSimilarity.size()
has2 ← object yang menampung hasil similarity
tmp2 ← buat variable tmp2 = has2.getSimmilarity()
if (tmp < tmp2) then
tmp = tmp2
kar = s
endif else if (tmp == tmp2)
tmp = tmp2
kar = s
end
endfor
98
pesan Hasil Klasifikasi
Lampiran 4.5 ControlCari
Attribut
Tidak Ada
Method
A. processRequest () Input:
String inputCari = request.getParameter("txtCari")
Output:
Void
Algoritma:
a. if(cari !=null) then
if(inputCari = “ ”) then
pesan masukkan kata kunci
endif
endif
b. else
token ← buat obyek dari kelas Tokenizer
token.setData(words)
token.makeTokens()
termTmp ← buat List termTmp yang menampung hasil token
termCari ← buat List term buat nampung term
c. for x=0 to termTmp.size()
trm ← buat object trm dari Term
kata ← kata = variable yang menampung termTmp
d. if(!token.isStoplist(kata)) then
kata = word.stemToIndonesian() ← steaming kata
trm.setTerm(kata) termCari.add(trm)
Endif
Endfor
hitung← buat object untuk hitung term frekuensi dari model
itungTF
cobaCari← buat list cobaCari untuk nampung
hitung.hitungTF(term)
cariKata ← buat variable cariKata=””
trm2 ← buat object trm2 dari model Term trm2 = null
e. if ( coba.size() > 0 ) then
cariKata = trm2.getTerm()
for z = 0 to coba.size()
cariKata = cariKata + trm2.getTerm()
end for
end if
//Proses pengambilan data ke data base
f. simCari ← buat object dari similartyKlass
simCariKata = simCari.getCariKata(cariKata)
hasilSimilarity ← list untuk menampung hasil similarity
trm3 ← buat object Term
allCariTmp ← buat list allCariTmp
g. if (cobaCari.size() > 0) then
for J=0 to simCariKata.size()
simTmp ← object dari similartyKlassyang berisi
simCariKata.get(j)
for Z=0 to coba.size()
99
cek ← variable untuk menampung trm3.getTerm()
if (simTmp.getTerm() = cek)
simTmp.settF(trm3.getTf())
allCariTmp.add(simTmp)
endif
endfor
endfor
endif
h. if (allCariTmp.size() == 0) then
pesan data tidak ada
endif
i. else then
for a = 0 to allCariTmp.size()
tampilkan data hasil pencarian yang tertampung pada object
simTmp
endfor
Lampiran 4.6 ControlCariKlas
Attribut
Tidak Ada
Method
A. processRequest () Input:
String cariKlasifikasi = request.getParameter("cariKlas")
Output:
Void
Algoritma:
a. token ← buat obyek dari kelas Tokenizer
token.setData(cariKlasifikasi)
token.makeTokens()
termTmp ← buat List termTmp yang menampung hasil token
term ← buat List term
b. for x=0 to termTmp.size()
trm ← buat object trm dari Term
kata ← kata = variable yang menampung termTmp
if(!token.isStoplist(kata)) then
kata = word.stemToIndonesian() ← steaming kata
trm.setTerm(kata) trm.setTf(1)
trm.setDf(1)
term.add(trm)
Endif
Endfor
c. hitung← buat object untuk hitung frekuensi term dari model
itungTF
term = hitung.hitungTF(term)
coba ← list untuk menampung term
kondisi ← buat variable kondisi=”” untuk kondisi query
trm2 ← buat object trm2 = null dari model Term
d. if ( coba.size() > 0 ) then
kondisi = trm2.getTerm()
for z = 0 to coba.size()
kondisi = kondisi + trm2.getTerm()
end for
end if
100
//Proses pengambilan data ke data base
e. sim ← buat object dari similartyKlass
kategori ← buat object Kategori
kategoriList ← buat list kategoriList=Kategori.getKategoriList();
allSim ← buat object yang menampung kondisi
allSim=sim.getAllSimilarity(kondisi)
hasilSimilarity ← list untuk menampung hasil similarity
trm3 ← buat object Term
allSImTmp ← buat list allSImTmp
f. if (coba.size() > 0) then
for J=0 to allSim.size()
simTmp ← object dari similartyKlassyang berisi allSim.get(j)
for Z=0 to coba.size()
cek ← variable untuk menampung trm3.getTerm()
if (simTmp.getTerm() = cek)
simTmp.settF(trm3.getTf())
allSImTmp.add(simTmp)
endif
endfor
endfor
endif
g. bobotAtas ← bobotAtas = 0;
h. bobotBawah ← bobotBawah = 0;
i. centroidAtas ← centroidAtas = 0;
j. centroidBawah ← centroidBawah = 0;
k. bilPokok ← bilPokok = 0;
l. similarity ← similarity = 0
m. //Hitung Bobot Bawah
for a = 0 to allSImTmp.size()
simTmp = allSImTmp.get(a)
bobotBawah = bobotBawah + ( simTmp.getBobot() *
simTmp.getBobot() )
endfor
n. for i=0 to jumlahKategori
tmp ← untuk menampung kategoriList dari model Kategori
simKat ← buat list yang menampung
sim.getSimilarityKategory(kondisi, tmp.getIdkat( ))
simAllKat ← buat list yang menampung
sim.getSimilarityAllKategory(tmp.getIdkat())
o. for b =0 to simKat.size()
simCek ← buat object yang menampung simKat.get(b)
for d=0 to allSImTmp.size()
simTmp ← buat object yang menampung allSImTmp.get(d)
if (simCek.getTerm() = simTmp.getTerm())
bobotAtas = simTmp.getBobot();
centroidAtas = simTmp.getCentroid();
bilPokok = bilPokok + (bobotAtas * centroidAtas);
endif
endfor
end for
p. //Hitung centroidBawah
for g =0 to simAllKat.size()
simTmp2 ← buat object yang menampung simAllKat.get(g)
centroidBawah = centroidBawah + (simTmp2.getCentroid() *
simTmp2.getCentroid())
101
endfor
q. // Hitung Similarity
similarity = bilPokok / (Math.sqrt(bobotBawah) *
Math.sqrt(centroidBawah))
r. tampilkan hasil similarity
s. simpan hasil similarity dalam object hasil
t. //mencari similarity terbesar
has ← buat object yang menampung hasil similarity
tmp ← buat variable yang menampung nilai similarity
kar ← buat variable kar=0 for S=1 to hasilSimilarity.size()
has2 ← object yang menampung hasil similarity
tmp2 ← buat variable tmp2 = has2.getSimmilarity()
if (tmp < tmp2) then
tmp = tmp2
kar = s
endif else if (tmp == tmp2)
tmp = tmp2
kar = s
end
endfor
pesan Hasil Klasifikasi
Lampiran 4.7 KamusManajemenControl
Attribut
Tidak Ada
Method
A. processRequest () Input:
kata
Output:
Void
Algoritma:
a. if( add == Null) then
b. if( kata = “”) then
pesan konfirmasi gagal
endif
c. else then
kataDasar = null
kataDasar = kata
insert ← buat variable boolean insert =
model.Kamus.insert(kataDasar)
d. if (insert = true) then
pesan insert data berhasil
endif
else then
pesan insert data gagal
end
endif
e. else if (edit != null) then
if( kata = “”) then
pesan konfirmasi gagal
endif
else
102
kataDasar ← kataDasar = null
kata2 ← kata2 = null
update ← buat variable boolean update =
model.Kamus.update(kataDasar, kata2)
if (update = true) then
pesan update data berhasil
endif
else then
pesan update data gagal
end
endif
f. else if (cancel != null)
if(cancel == null)
kembali ke indek admin
endif
else
kembali ke indek admin
end
endif
g. else if (action != null)
kata ← variable id
boolean delete = model.Kamus.delete(kata)
if (delete = true) then
pesan Delete data berhasil
endif
else then
pesan Delete data gagal
end
endif
Lampiran 4.8 StopwordManajemenController
Attribut
Tidak Ada
Method
A. processRequest () Input:
String stopword = request.getParameter("Stopword")
Output:
Void
Algoritma:
a. if( add == Null) then
b. if( Stopword = “”) then
pesan konfirmasi gagal
endif
c. else then
stopword = null
insert ← buat variable boolean insert =
model.Stoplist.insert(stopword)
d. if (insert = true) then
pesan insert data berhasil
endif
else then
pesan insert data gagal
end
103
endif
e. else if (edit != null) then
if(stopword = “” || idStopword=””) then
pesan konfirmasi gagal
endif
else
idStopword ← idStopword =0
stopword ← stopword = null
update ← buat variable boolean update = model.
Stoplist.update(idStopword, stopword)
if (update = true) then
pesan update data berhasil
endif
else then
pesan update data gagal
end
endif
f. else if (cancel != null)
if(cancel == null)
kembali ke indek admin
endif
else
kembali ke indek admin
end
endif
g. else if (action != null)
idStopword ← variable id
boolean delete = model. Stoplist.delete(idStopword)
if (delete = true) then
pesan Delete data berhasil
endif
else then
pesan Delete data gagal
end
endif
Lampiran 4.9 KategoriManajemenController
Attribut
Tidak Ada
Method
A. processRequest () Input:
String kategori = request.getParameter("kategori")
Output:
Void
Algoritma:
a. if( add == Null) then
b. if(kategori = “”) then
pesan konfirmasi gagal
endif
c. else then
kategori = null
insert ← buat variable boolean insert = model. Kategori.insert
(kategori)
104
d. if (insert = true) then
pesan insert data berhasil
endif
else then
pesan insert data gagal
end
endif
e. else if (edit != null) then
if(kategori = “” || idKategori =””) then
pesan konfirmasi gagal
endif
else
idKategori ← idKategori =0
kategori ← kategori = null
update ← buat variable boolean update = model.
Kategori.update(idKategori, kategori)
if (update = true) then
pesan update data berhasil
endif
else then
pesan update data gagal
end
endif
f. else if (cancel != null)
if(cancel == null)
kembali ke indek admin
endif
else
kembali ke indek admin
end
endif
g. else if (action != null)
idKategori ← variable id
boolean delete = model. Kategori.delete(idKategori)
if (delete = true) then
pesan Delete data berhasil
endif
else then
pesan Delete data gagal
end
endif
Lampiran 4.10 UserManageController
Attribut
Tidak Ada
Method
A. processRequest () Input:
String username = request.getParameter("username")
String password = request.getParameter("password") String password2 = request.getParameter("passwordRetype")
Output:
Void
Algoritma:
105
a. if( add == Null) then
b. if(username = “”||password=””|| passwordRetype=”") then
pesan konfirmasi gagal
endif
c. else then
username = null
password= null
passwordRetype= null
insert ← buat variable boolean insert = model. User.insert(username, password)
d. if (insert = true) then
pesan insert data berhasil
endif
else then
pesan insert data gagal
end
endif
e. else if (edit != null) then
username = null
password= null
if(username = “” || password =””) then
pesan konfirmasi gagal
endif
else
update ← buat variable boolean update = model.
User.update(username, password)
if (update = true) then
pesan update data berhasil
endif
else then
pesan update data gagal
end
endif
f. else if (cancel != null)
if(cancel == null)
kembali ke indek admin
endif
else
kembali ke indek admin
end
endif
g. else if (action != null)
username ← variable id
boolean delete = model. User.delete(username)
if (delete = true) then
pesan Delete data berhasil
endif
else then
pesan Delete data gagal
end
endif
Lampiran 4.11 Kamus
Attribut:
106
String namaKata = request.getParameter("Kata")
Method:
A. Kamus(namaKata)
Input:
namaKata
Output:
contruktor
Algoritma:
a. kon← buat objek koneksi
b. query ← buat variable String query = "call spSelectKamus(?)"
memanggil procedur query
c. while (result.next) then
d. set.NamaKata(namaKata)
e. end while
B. getListKamus(koneksi)
Input:
koneksi
Output:
ResultSet
Algoritma:
a. query ← buat variable String query
b. query = “call SpListKamus” ← memanggil procedur query
c. return result
C. insert( kata)
Input:
kata
Output:
boolean
Algoritma:
a. query ← buat variable String query
b. query = "call SpInsert_kamus(?,?)"← memanggil procedur query
c. tampung hasil select query dalam variable s statement.setString(1,
kata)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(2)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
D. update (kata, inkata)
Input:
kata
inkata
Output
Boolean
Algoritma:
107
a. query ← buat variable String query
b. query = "call SpUpdate_Kamus(?,?,?)" ← memanggil
procedur query
c. tampung hasil select query dalam variable s statement.setString(1, kata) dan statement.setString(2, inkata)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(3)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
E. delete(kata);
Input:
kata
Output:
Boolean
Algoritma:
a. query ← buat variable String query
b. query = "call SpInsert_kamus(?,?)"← memanggil procedur
query
c. tampung hasil select query dalam variable s statement.setString(1, kata)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(2)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
Lampiran 4.12 Kategori
Attribut:
String jenisKat
int idKat
Method:
A. Kategori(idKat)
Input:
idKat
Output:
contruktor
Algoritma:
a. query ← buat variable String query = "call
Sp_SelectId_kat(?)"memanggil procedur query
b. while (result.next) then
setIdkat(result.getInt("id_kategori"))
setJenisKat(result.getString("jenis_kategori"))
c. end while
108
B. getListKamus()
Input:
Output:
list
Algoritma:
a. query ← buat variable String query
b. kat ← buat variable List kat = new ArrayList();
c. query = “call SpListKat()” ← memanggil procedur query
d. while (result.next())
e. buat obyek tmp dari model Kategori
f. setIdkat(result.getInt(1) dalam tmp
g. setJenisKat(result.getString(2) dalam tmp
h. return kat
C. insert( jeniskat)
Input:
jeniskat
Output:
boolean
Algoritma:
a. query ← buat variable String query
b. query = "call SpInsert_kategori(?,?)"← memanggil procedur query
c. tampung hasil select query dalam variable s setString(1,jeniskat)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(2)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
D. update (idKat, jenisKat)
Input:
idKat
jenisKat
Output
Boolean
Algoritma:
a. query ← buat variable String query
b. query = "call SpUpdate_kategori(?,?,?)" ← memanggil procedur
query
c. tampung hasil select query dalam variable s statement. setLong(1,idKat) dan statement. setString(2,jeniskat) tampung
hasil nilai balik Boolean dalam String hasil =
statement.getString(3)
d. if (hasil=”sukses”)then
e. return true
f. end if
g. else return false
h. end
E. delete(idKat);
109
Input:
idKat
Output:
Boolean
Algoritma:
a. query ← buat variable String query
b. query = "call SpDelete_kategori(?,?)"← memanggil procedur
query
c. tampung hasil select query dalam variable s statement. setLong(1,idkat)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(2)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
Lampiran 4.13 Stoplist
Attribut:
long idStop
String Stopword
Method:
A. Stoplist(idStop)
Input:
idStop
Output:
contruktor
Algoritma:
a. kon← buat objek koneksi
b. query ← buat variable String query = " call
Sp_SelectId_stoplist(?)" memanggil procedur query
c. while (result.next) then
d. setIdStop(result.getInt("id_stoplist"))
e. setStopword(result.getString("Stoplist"))
f. end while
B. getStopwordList(koneksi)
Input:
koneksi
Output:
ResultSet
Algoritma:
a. query ← buat variable String query
b. query = “call SpListStopword()” ← memanggil procedur query
c. return result
C. insert( stopword)
Input:
110
stopword
Output:
boolean
Algoritma:
a. query ← buat variable String query
b. query = " call SpInsert_stoplist(?,?)"← memanggil procedur query
c. tampung hasil select query dalam variable s statement.setString(1,
Stopword)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(2)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
D. update (idStop, stopword)
Input:
idStop
stopword
Output
Boolean
Algoritma:
a. query ← buat variable String query
b. query = " call SpUpdate_stopword(?,?,?) " ← memanggil
procedur query
c. tampung hasil select query dalam variable s statement.setLong(1,idStop) dan
statement.setString(2,Stopword)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(3)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
E. delete(idStop);
Input:
idStop
Output:
Boolean
Algoritma:
a. query ← buat variable String query
b. query = "call spDelete_stoplist(?,?) "← memanggil procedur
query
c. tampung hasil select query dalam variable s statement.setLong(1,idStop)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(2)
e. if (hasil=”sukses”)then
111
f. return true
g. end if
h. else return false
i. end
Lampiran 4.14 Skripsi
Attribut:
long idkat
long idSkrip
String judul
String judulDok
Method:
A. skripsi (idSkrip)
Input:
idStop
Output:
contruktor
Algoritma:
a. kon← buat objek koneksi
b. query ← buat variable String query = " call SpSelectId_Skrip(?) “
memanggil procedur query
c. while (result.next) then
d. setIdSkrip(result.getInt("id_skripsi"))
e. setJudul(result.getString("judul"))
f. setIdkat(result.getInt("id_kategori"))
g. setJudulDok(result.getString("judulDok"))
h. end while
B. insert(judul, idkat, judulDok)
Input:
stopword
Output:
boolean
Algoritma:
a. query ← buat variable String query
b. query = " call SpInsert_Judul(?,?,?,?) "← memanggil procedur
query
c. tampung hasil select query dalam variable s statement.setString(1,judul)
statement.setInt(2, idKat)
statement.setString(3, judulDok)
d. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(4)
e. if (hasil=”sukses”)then
f. return true
g. end if
h. else return false
i. end
112
Lampiran 4.15 centroidKlass
Attribut:
String term
int idKat
double idf
double centroid
int tF
String JudulDok
Method:
A. getAllSimilarity(kondisi)
Input:
kondisi
Output:
List
Algoritma:
a. hasil ← buat list hasil, List hasil = new ArrayList()
b. sql ← buat variable string sql
c. String sql = " select (t.term) , t.idf , c.centroidKlass ,
i.id_kategori
From indek i INNER JOIN term t on i.id_term = t.id_term INNER
JOIN centroidKlass c on i.id_kategori = c.id_kategori AND
i.id_term = c.id_term
where t.term IN (" kondisi ")
group by t.term
ORDER by id_Skripsi, id_kategori"
d. rs = stmt.executeQuery(sql)
e. while (rs.next) then
f. tmp← buat objek tmp untuk menampung
tmp.setTerm(rs.getString(1));
tmp.setIdf(rs.getDouble(2));
tmp.setCentroid(rs.getDouble(3));
tmp.setIdKat(rs.getInt(4));
hasil.add(tmp)
g. end
B. getSimilarityKategory(kondisi, kategori)
Input:
kondisi
kategori
Output:
List
Algoritma:
a. hasil ← buat list hasil, List hasil = new ArrayList()
b. sql ← buat variable string sql
c. String sql = " select t.term , t.idf , c.centroidKlass , i.id_kategori
From indek i INNER JOIN term t on i.id_term = t.id_term and
i.id_kategori=(”kategori ”)
INNER JOIN centroidKlass c on i.id_kategori = c.id_kategori
AND i.id_term = c.id_term
where t.term IN (" kondisi ")
113
group by t.term
ORDER by id_Skripsi, id_kategori";
d. rs = stmt.executeQuery(sql)
e. while (rs.next) then
f. tmp← buat objek tmp untuk menampung
tmp.setTerm(rs.getString(1));
tmp.setIdf(rs.getDouble(2));
tmp.setCentroid(rs.getDouble(3));
tmp.setIdKat(rs.getInt(4));
hasil.add(tmp)
g. end
C. getSimilarityAllKategory(kategori)
Input:
kategori
Output:
List
Algoritma:
a. hasil ← buat list hasil, List hasil = new ArrayList()
b. sql ← buat variable string sql
c. String sql = " select (t.term) , t.idf , c.centroidKlass ,
(i.id_kategori)
From indek i INNER JOIN term t on i.id_term = t.id_term
INNER JOIN centroidKlass c on i.id_kategori = c.id_kategori
AND i.id_term = c.id_term
where i.id_kategori=" kategori "
group by t.term
ORDER by id_Skripsi, id_kategori "
d. rs = stmt.executeQuery(sql)
e. while (rs.next) then
f. tmp← buat objek tmp untuk menampung
tmp.setTerm(rs.getString(1));
tmp.setIdf(rs.getDouble(2));
tmp.setCentroid(rs.getDouble(3));
tmp.setIdKat(rs.getInt(4));
hasil.add(tmp)
g. end
Lampiran 4.16 Word
Klass Word merupakan kelas yang diambil dari projek bapak Puspaning
Tyas Sanjaya Adi.
Method yang digunakan
Nama Method Fungsi stemToIndonesian() Untuk melakukan steaming kata dalam bahasa indonesai
Lampiran 4.17 User
Attribut:
int id_user
String username
114
String password
Method:
A. User(username)
Input:
username
Output:
Contruktor
Algoritma:
a. query ← buat variable String query = " call SpSelectUser(?,?,?,?)
memanggil procedur query
b. while (result.next) then
setString(1,username)
setId_user(statement.getInt(2))
setUsername(statement.getString(3))
setPassword(statement.getString(4))
c. end while
B. isAuthentic(username, password)
Input:
username
password
Output:
Contruktor
Algoritma:
a. result← buat variable boolean result=false
b. query ← buat variable String query = " call call SpLogin(?,?,?)”
memanggil procedur query
c. try then
statement.setString(1,username)
statement.setString(2,password)
if (statement.getBoolean(3) == true) then
result true
end if
end try
C. insert(username, password)
Input:
username
password
Output:
boolean
Algoritma:
a. query ← buat variable String query
b. query = " call SpInsert_User(?,?,?)” memanggil procedur query
c. tampung hasil select query dalam variable s statement.setString(1,username);
statement.setString(2,password);
d. tampung hasil nilai balik Boolean dalam int hasil =
statement.getInt(3)
e. if (hasil=1) then
115
return true
f. end if
g. else return false
end
D. update(username, password)
Input:
username
password
Output
Boolean
Algoritma:
a. query ← buat variable String query
b. query = " call SpEdit_User(?,?,?) " ← memanggil procedur query
c. tampung hasil select query dalam variable s statement.setLong(1,idStop) dan statement.setString(2,Stopword)
d. tampung hasil select query dalam variable s statement.setString(1,username)
statement.setString(2,password)
e. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(3)
if (hasil=”sukses”) then
return true
end if
f. else return false
end
E. delete(username)
Input:
idKat
Output:
Boolean
Algoritma:
a. query ← buat variable String query
b. query = " call SpDelete_User(?)"← memanggil procedur
query
c. tampung hasil select query dalam variable s statement.setString(1,username)
d. return true
F. getUserList(koneksi)
Input: koneksi
Output:
result set
Algoritma:
a. query ← buat variable String query
b. query = “call SpListUser()← memanggil procedur query
c. return resultSet
G. changePassword(oldPassword, newPassword)
Input:
String oldPassword
116
String newPassword
Output
Boolean
Algoritma:
g. query ← buat variable String query
h. query = " call SpGantiPassword(?,?,?,?) " ← memanggil procedur
query
i. tampung hasil select query dalam variable s statement.setString(1,this.getUsername());
statement.setString(2,oldPassword);
statement.setString(3,newPassword);
j. tampung hasil nilai balik Boolean dalam String hasil =
statement.getString(4)
if (hasil=”sukses”) then
return true
end if
k. else return false
end
Lampiran 4.18 Tokenizer
Klass Word merupakan kelas yang diambil dari projek bapak Puspaning
Tyas Sanjaya Adi.
Method
Nama Method Fungsi
isStoplist() Untuk membuang kata yang tidak perlu. kata yang ada dalam
stoplist tidak akan disimpan.
Lampiran 4.19 Term
Attribut:
String term
String doc
int kategori
int df
int tf
String JudulDok
Method:
A. Term(term, doc)
Input:
doc
term
Algoritma:
a. setTerm(term);
b. setDoc(doc)
B. insertTerm()
Output:
Void
117
Algoritma:
a. sql ← buat variable string sql
b. String sql = " insert into term(term,df,idf) values(?,?,?) "
c. buat java.sql.Statement stmt = kon.createStatement() dan
PreparedStatement prs = kon.prepareStatement(sql)
//untuk mengecek term sudah ada apa belum
ResultSet rs = stmt.executeQuery("select * from term where term
= '" getTerm()"'")
d. if (rs.next) then
stmtUpd ← buat objek stmtUpt dari Statement
stmtUpd.executeUpdate("Update term set df = "(rs.getInt(3) + 1) “
where id_term = " rs.getInt(1))
end if
e. else then
CallableStatement clsTmp = kon.prepareCall("call
SpHitungIDF(?,?)")
clsTmp.setString(1, getTerm())
Double idf = clsTmp.getDouble(2)
prs.setDouble(3, idf)
end
//jalankan fungsi
UpdateIDF();
insertIndex();
UpdateBobot();
UpdateCentroid();
C. insertIndex()
Output:
Void
Algoritma:
a. sql ← buat variable string sql
b. String sql = “ insert into indek (id_term,id_skripsi,tf, id_kategori)
values ( (select id_term from term where term = ?)
(select id_skripsi from skripsi where judul = ?),?,?)”
c. PreparedStatement stmt = kon.prepareStatement(sql)
stmt.setString(1, getTerm())
stmt.setString(2, getDoc())
stmt.setInt(3, getTf())
stmt.setInt(4, getKategori())
stmt.execute()
d. end
D. UpdateIDF()
Output:
Void
Algoritma:
a. sql ← buat variable string sql
b. String sql = “Select * from term”
c. Statement stmt = kon.createStatement();
d. ResultSet rs = stmt.executeQuery(sql);
e. while (rs.next()) then
CallableStatement clsTmp = kon.prepareCall("call
SpHitungIDF(?,?)")
clsTmp.setString(1, rs.getString(2))
Double idf = clsTmp.getDouble(2)
118
Statement stmtUpd = kon.createStatement()
stmtUpd.executeUpdate("Update term set idf = " + idf + " where
id_term = " + rs.getInt(1))
f. end
E. UpdateBobot()
Output:
Void
Algoritma:
a. sql ← buat variable string sql
b. String sql = “select i.id_index , (i.tf * t.idf) bobot
from indek i
inner join term t on i.id_term = t.id_term”
c. Statement stmt = kon.createStatement();
d. ResultSet rs = stmt.executeQuery(sql);
e. while (rs.next()) then
Statement stmtUpd = kon.createStatement()
stmtUpd.executeUpdate("update indek set bobot = "
rs.getDouble(2) " where id_index = " rs.getInt(1))
end
F. UpdateCentroid()
Output:
Void
Algoritma:
a. sql ← buat variable string sql
b. String sql = “select k.id_index,id_kategori,t.id_term, t.term from
indek k
inner join term t on k.id_term = t.id_term
group by id_kategori, t.id_term”
String Sql2= “INSERT INTO centroidKlass
(id_kategori,id_term,centroidKlass) values(?,?,?)”
c. Statement stmt = kon.createStatement();
d. ResultSet rs = stmt.executeQuery(sql);
e. while (rs.next()) then
CallableStatement clsTmp = kon.prepareCall("call "call
SpCentroid(?,?,?)"")
clsTmp.setString(1, rs.getString(3))
clsTmp.setInt(2, rs.getInt(2))
Double centroi = clsTmp.getDouble(3)
Statement stmtUpd = kon.createStatement()
stmtUpd.executeUpdate("Update indek set centoid = " centroi "
where id_index = " rs.getInt(1))
f. end
G. isCekFile(String namaFile, String judulDok)
Input:
namaFile
judulDok
Output:
bolean
Algoritma:
a. result ← buat variable boolean result = false
119
b. query ← buat variable string sql
c. String sql = “call SpCekFile(?,?,?)"
d. statement.setString(1, namaFile);
e. statement.setString(2, judulDok);
f. if(statement.getBoolean(3) == true) then
result true
g. end if
h. return result
i. end
Lampiran 4.20 IndekTerm
Attribut:
String Output = null
String termAmbil = null
Integer termfrek = 0
String cari
String JudulCari
Double JumlahBobotCari
String KategoriCari
double BobotCari
Method:
A. hitungTF (list)
Input:
list
Output :
List
Algoritma:
a. tmp← buat List tmp List tmpList = new ArrayList()
b. term ← buat objek term datimodel Term
c. termTmp ← buat objek termTmp=null dati model Term
d. set term = (Term) list.get(0)
e. kode ← buat variable boolean kode = true
f. set term tF = 0 ← term.setTf(1)
g. tampung term dalam termTmp ←tmpList.add(term)
h. for i=1 to list.size() then
set term = (Term) list.get(i)
i. for j=0 to termList.size() then
set termTmp = (Term) tmpList.get(j)
j. if(term.getTerm() =termTmp.getTerm()) then
termTmp.setTf(termTmp.getTf() + 1)
tmpList.remove(j);
tmpList.add(j, termTmp);
kode = false
k. end if
l. end for
m. if(kode=true) then
term.setTf(1);
tmpList.add(term)
n. end if
o. kode = true
p. end for
120
q. return tmpList
B. getCariKata(cari)
Input:
cari
Output:
List
Algoritma:
a. hasilCari ← buat list hasil, List hasilCari= new ArrayList()
b. sql ← buat variable string sql
c. String sql = “select t.term, i.bobot, s.judul, s.JudulDok,
k.jenis_kategori, sum(i.bobot)
From indek i INNER JOIN term t on i.id_term = t.id_term
INNER JOIN skripsi s ON i.id_Skripsi=s.id_skripsi
INNER join kategori k on i.id_kategori = k.id_kategori
where t.term IN (" cari ")
group by judul
ORDER by bobot DESC"
d. rs = stmt.executeQuery(sql)
e. while (rs.next) then
f. tmp← buat objek tmp untuk menampung
tmp.setTerm(rs.getString(1))
tmp.setBobotCari(rs.getDouble(2))
tmp.setJudulCari(rs.getString(3))
tmp.setJudulDok(rs.getString(4));
tmp.setKategoriCari(rs.getString(5));
tmp.setJumlahBobotCari(rs.getDouble(6))
hasil.add(tmp)
end
Lampiran 4.21 Halaman Login Admin
Attribut
Username: TextField Hidden
Password: Password
Login: button
Action :
AutentifikasiLogin (kontrol login)
Lampiran 4.22 Halaman Menu user
No Nama Attribut Deskripsi
1 txtCari Teksfield Untuk input kata kunci pencarian
2 Cari Button Untuk melakukan proses cari
3 Pencarian
Dokumen
Link Untuk menampilkan halaman utama user
(halaman pencarian dokumen).
4 Pencarian Klas Link Untuk menampilkan halaman pencarian
klasifikasi
5 Login Link Untuk menampilkan halaman login admin Action :
ControlCari
Lampiran 4.23 Halaman Menu Administrator
121
No Nama Attribut Deskripsi
1 Manage user Link Untuk menampilkan form manage user
2 Indexing
dokumen Link
Untuk menampilkan form indexing
3 Klasifikasi
dokumen Link
Untuk menampilkan form klasifikasi
4 Manage kamus Link Untuk menampilkan form manage kamus
5 Manage stoplist Link Untuk menampilkan form manage stoplist
6 Manage kategori Link Untuk menampilkan form manage kategori
7 List data skripsi Link Untuk menampilkan form list data skripsi
8 Logout Link Untuk melakukan proses logout (keluar dari
menu admin)
Lampiran 4.24 Form Manage User
Daftar user
untuk menampilkan daftar user dengan memanggil model dari =
model.User.getUserList(kon)
Attribut
hapus: link
edit: link
Action :
UserManageController (untuk memproses hapus user)
Edit User Attribut
EditUsername : Teksfield
EditPassword : Teksfield
Edit : button
Batal : Button
Action :
UserManageController (untuk memproses edit user)
Tambah User Attribut
Username : Teksfield
Password : password
RetypePassword Edit : password
Batal : Button
Tambah : button
Action :
UserManageController (untuk memproses tambah user)
Lampiran 4.25 Form Indexing
No Nama Attribut Deskripsi
1 JudulDokumen Teksfield Untuk inputan judul dari file yang akan
dilakukan proses indexing.
2 Indekdata File Untuk mengambil data file yang akan
122
dilakukan indeksing.
3 Jenis kategori Dropdown
menu
Untuk memilih kategori dokumen yang
akan diindeksing
4 Indexing Button Untuk melakukan proses indexing data. Action :
ControlIndexing (untul melakukan proses indexing data dari form indexing
)
Lampiran 4.26 Form Klasifikasi
No Nama Jenis Deskripsi
1 Data File Untuk mengambil data file yang akan dilakukan
klasifikasi.
2 Klasifikasi Button Untuk melakukan proses klasifikasi data. Action :
ControlKlasifikasi (untuk memproses data )
Lampiran 4.27 Form Manage Kamus
Daftar Kamus
untuk menampilkan daftar kata dasar
Attribut
hapus: link
edit: link
Action :
KamusManajemenControl (untuk memproses hapus kata dasar)
Edit Kamus Attribut
editKata: Teksfield
Edit : button
Batal : Button
Action :
KamusManajemenControl (untuk memproses edit kata dasar)
Tambah Kamus Attribut
katadasar : Teksfield
Cancel : Button
Save : button
Action :
KamusManajemenControl (untuk memproses tambah kata dasar)
Lampiran 4.28 Form Manage Stoplist
Daftar Stoplist
untuk menampilkan daftar Stoplist
123
Attribut
hapus: link
edit: link
Action :
StopwordManajemenController (untuk memproses hapus stopword)
Edit Stoplist Attribut
editStoplist : Teksfield
Edit : button
Batal : Button
Action :
StopwordManajemenController (untuk memproses edit stopword)
Tambah Stoplist Attribut
stopword : Teksfield
Cancel : Button
Save : button
Action :
StopwordManajemenController (untuk memproses tambah stopword)
Lampiran 4.29 Form Manage Kategori
Daftar kategori
untuk menampilkan daftar kategori
Attribut
hapus: link
edit: link
Action :
KategoriManajemenController (untuk memproses hapus kategori)
Edit Kategori Attribut
editKategori : Teksfield
Edit : button
Batal : Button
Action :
KategoriManajemenController (untuk memproses edit kategori)
Tambah Kategori Attribut
kategori : Teksfield
Save : button
Cancel : Button
Action :
KategoriManajemenController (untuk memproses tambah kategori)
Lampiran 4.30 Halaman Pencarian Klasifikasi
No Nama Jenis Deskripsi
1 txtCari Klas TeksArea Untuk input kata kunci pencarian
2 Cari Button Untuk melakukan proses cari
3 Pencarian Link Untuk menampilkan halaman utama user
124
Dokumen (halaman pencarian dokumen).
4 Pencarian Klas Link Untuk menampilkan halaman pencarian
klasifikasi
5 Login Link Untuk menampilkan halaman login admin Action :
ControlCariKlas (untuk memproses data inputan)
125
LAMPIRAN 5 Lampiran 5.1 Halaman Menu User (Halaman Cari Dokumen)
Halaman user ini untuk menampilkan pencarian dokumen oleh user
berdasarkan suatu kata kunci.
Lampiran 5.2 Halaman Login Admin
Form login berfunsi untuk user masuk kedalam halaman administrator
dengan memasukkan username dan password yang sesuai dengan username dan
password yang ada pada tabel database User menekan tombol login
Cari Kata Kunci
Pencarian Dokumen | Pencarian Klas |Login
Username
Password
Login
126
Lampiran 5.3 Halaman Menu Administrator
Dari halaman administrator ini admin dapat melakukan suatu
proses sesuai dengan menu yang tersedia dengan cara memilih menu yang
ada.
Lampiran 5.4 Form Manage User
Form ini digunakan untuk melakukan penambahan, perubahan, atau
penghapusan data user. Setiap perubahan yang dilakukan akan merubah data yang
tersimpan pada tabel User.
Untuk tambah kategori :
BANNER
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
BANNER
Daftar User
Username Action
A Edit|hapus
B Edit|hapus
TAMBAH USER Username
Password
Manage
User
Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
Save Cance
l
127
Untuk Edit kategori :
Lampiran 5.5 Form Manage Kategori
Form ini digunakan untuk melakukan penambahan, perubahan, atau
penghapusan data kategori. Setiap perubahan yang dilakukan akan merubah data
yang tersimpan pada tabel kategori.
Untuk tambah kategori :
BANNER
Daftar kategori
Kategori Action
A Edit|hapus
B Edit|hapus
TAMBAH KATEGORI Kategori
Save Cance
l
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
BANNER
EDIT USER
Username
Password
Edit Cance
l
Manage
User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
128
Untuk Edit kategori :
Lampiran 5.6 Form Manage Stoplist
Form ini digunakan untuk melakukan penambahan, perubahan, atau
penghapusan daftar stopword. Setiap perubahan yang dilakukan pada halaman ini
akan merubah tabel Stoplist pada basis data.
Untuk tambah data stopword :
Untuk edit Stopword :
BANNER
Daftar Stopword
Stopword Action
A Edit|hapus
B Edit|hapus
TAMBAH Stopword Stopword
Save Cance
l
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage
Stoplist Manage
Kategori List Data
Skripsi Logout
BANNER
EDIT KATEGORI Kategori
Edit Cance
l
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
129
Lampiran 5.7 Form Manage Kamus
Form ini digunakan untuk melakukan penambahan, perubahan, atau
penghapusan daftar kata dasar yang telah tersimpan dalam basis data tabel word.
Untuk tambah data Kamus:
Untuk edit Kamus :
BANNER
Daftar Kamus
Kamus Action
A Edit|hapus
B Edit|hapus
TAMBAH KAMUS Kata Dasar
Save Cance
l
Manage User Indexing dokumen Klasifikasi
dokumen Manage
Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
BANNER
EDIT Stopword Stopword
Edit Cance
l
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage
Stoplist Manage
Kategori List Data
Skripsi Logout
130
Lampiran 5.8 Form Indexing
Pada form indexing ini dilakukan proses pembuatan model dan proses
klasifikasi, disini user menetukan dokumen yang digunakan sebagai dasar
klasifikasi. Data yang dilakukan proses indexing akan tersimpan pada tabel term ,
tabel index, dan table skripsi.
BANNER
EDIT KAMUS Kata Dasar
Edit Cance
l
Manage User Indexing dokumen Klasifikasi
dokumen Manage
Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
BANNER
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage Kategori List Data Skripsi Logout
Judul Dokumen
Data
Kategor
i
Browse.
.
Indexing
131
Lampiran 5.9 Form Klasifikasi
Pada form klasifikasi ini, user melakukan proses klasifikasi dokumen baru
(dokumen query/ belum terlabel) untuk ditentukan kategorinya.
Lampiran 4.9
Lampiran 4.10
Lampiran 5.10 Form List Data Skripsi
Form list data skripsi digunakan untuk mengetahui dokumen – dokumen
yang telah teindek.
BANNER
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage Kategori List Data Skripsi Logout
Klasifikas
i
Data Browse.
.
BANNER
Daftar kategori
Namadokumen Kategori
A.txt xxx
B.txt Xxx
Manage User Indexing dokumen Klasifikasi
dokumen Manage Kamus Manage Stoplist Manage
Kategori List Data
Skripsi Logout
132
Lampiran 5.11 Halaman Pencarian Klasifikasi (Halaman Cari Dokumen)
Halaman user ini untuk menampilkan pencarian klasifikasi / kategori
dokumen oleh user berdasarkan suatu kata kunci.
Cari
Abstrak Dokumen
Pencarian Dokumen | Pencarian Klas |Login
133
LAMPIRAN 6
6.1. Halaman Login Admin
Halaman ini merupakan halaman login untuk administrator. Administrator
diwajibkan mengisi username dan password.
6.2. Halaman Menu User
Halaman ini merupakan default halaman yang ditampilkan saat web
dipanggil. Ini merupakan halaman pencarian dokumen. Dokumen hasil pencarian
yang ditampilkan hanya dokumen yang telah terindek dan sesuai dengan kata
kunci yang dimasukkan oleh user. Disebelah pojok kanan halaman terdapat 3
buah link link pencarian dokumen terhubung dengan halaman yang seperti
ditampilkan ini, link pencarian dokumen terhubung dengan halaman pencarian
134
klasifikasi, dan link login terhubung dengan halaman login admin. Hasil
pencarian dokumen akan ditamplikan dibawah form pencarian.
6.3. Halaman Menu Admin
Halaman ini merupakan halaman menu administrator setelah user
melakukan login.
6.4. Form Manage user
135
Halaman ini merupakan halaman untuk me-manage user seperti
menambah menghapus nama user. Dan tampilan untuk mengedit user ditampilkan
pada gambar dibawah ini :
6.5. Form Indexing Dokumen
Halaman ini menampikan dari halaman untuk melakukan indeksing data
abstrak skripsi.
136
6.6. Form Klasifikasi Dokumen
Halaman ini digunakan unutuk melakukan klasifikasi dokumen abstrak
skripsi.
6.7. Form Manage Kamus
Halaman ini merupakan halaman untuk me-manage kamus seperti
menambah menghapus kata dasar. Dan tampilan untuk mengedit kata dasar
ditampilkan pada gambar dibawah ini :
137
6.8. Form Manage Stoplist
Halaman ini merupakan halaman untuk me-manage stopword seperti
menambah menghapus daftar stopword. Dan tampilan untuk mengedit stopword
ditampilkan pada gambar dibawah ini :
138
6.9. Form Manage Kategori
Halaman ini merupakan halaman untuk me-manage kategori seperti
menambah menghapus jenis kategori Dan tampilan untuk mengedit kategori
ditampilkan pada gambar dibawah ini :
139
6.10. Form list Data Skripsi
Halaman ini merupakan halaman untuk menampilkan data-data abstrak
skripsi yang telah diindeks oleh administrator.
6.11. Halaman Pencarian Klasifikasi
140
Halaman ini merupakan halaman pencarian kategori dokumen. Hasil dari
pencarian kategori adalah keterangan termasuk kategori apakah abstrak dokumen
yang diuji. Disebelah pojok kanan halaman terdapat 3 buah link link pencarian
dokumen terhubung dengan halaman yang seperti ditampilkan ini, link pencarian
dokumen terhubung dengan halaman pencarian klasifikasi, dan link login
terhubung dengan halaman login admin. Hasil pencarian dokumen akan
ditamplikan dibawah form pencarian.
6.12. Tabel Skripsi
6.13. Tabel Kategori
CREATE TABLE `kategori` (
`id_kategori` int(100) NOT NULL AUTO_INCREMENT,
`jenis_kategori` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id_kategori`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `skripsi` (
`id_skripsi` int(255) NOT NULL AUTO_INCREMENT,
`judul` varchar(1000) NOT NULL DEFAULT '',
`id_kategori` int(10) NOT NULL,
`JudulDok` varchar(1000) NOT NULL,
PRIMARY KEY (`id_skripsi`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
141
6.14. Tabel Term
6.15. Tabel User
6.16. Tabel Stoplist
6.17. Tabel Kamus
6.18. Tabel IndekTerm
CREATE TABLE `indekTerm` (
`id_index` int(255) NOT NULL AUTO_INCREMENT,
`id_Skripsi` int(255) NOT NULL,
`id_kategori` int(255) NOT NULL,
`id_term` int(255) NOT NULL,
`tf` int(255) NOT NULL DEFAULT '0',
`bobot` decimal(10,6) NOT NULL DEFAULT '0.000000',
PRIMARY KEY (`id_index`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `kamus` (
`kata_dasar` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`kata_dasar`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `stoplist` (
`id_stoplist` int(255) NOT NULL AUTO_INCREMENT,
`Stoplist` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id_stoplist`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `user` (
`id_user` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id_user`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `term` (
`id_term` int(255) NOT NULL AUTO_INCREMENT,
`term` varchar(255) NOT NULL,
`df` int(255) NOT NULL DEFAULT '0',
`idf` double(6,5) NOT NULL DEFAULT '0.00000',
PRIMARY KEY (`id_term`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
142
6.19. Tabel centroidKlass
CREATE TABLE `centroidklass` (
`id_centroid` int(255) NOT NULL AUTO_INCREMENT,
`id_kategori` int(255) DEFAULT NULL,
`id_term` int(255) DEFAULT NULL,
`centroidKlass` decimal(10,6) unsigned zerofill NOT NULL,
PRIMARY KEY (`id_centroid`)
) ENGINE=InnoDB AUTO_INCREMENT=1064 DEFAULT
CHARSET=latin1
143
LAMPIRAN 7
Kuisioner Penentuan Kategori
DATA PENGISI
Nama :___________________________________________
Pekerjaan :___________________________________________
Keterangan :
Tentukan dokumen termasuk dalam kategori dokumen apakah dengan memberikan tanda
silang (X) pada kode
o Untuk kode B = Basisdata / Sistem informasi
o Untuk kode J = Jaringan
o Untuk kode K = Komputasi
1. SISTEM INFORMASI INVENTORI TOKO ASESORIS TELEPHON SELULER
Latar belakang dari penyusunan sistem aplikasi ini adalah untuk membantu
sistem manajemen yang ada untuk melakukan pengawasan terhadap pemasukan barang,
pembelian, penjualan, retur pembelian dan retur penjualan. Masalah-masalah tersebut
bisa diatasi dengan kerjasama yang baik antara karyawan bagian kasir dan bagian gudang.
Selain itu sistem informasi yang dibuat harus memudahkan karyawan. Sistem yang dibuat
nantinya bisa mengupdate stok secara langsung tiap kali transaksi penjualan terjadi.
Selain itu, sistem ini juga harus bisa mengetahui berapa jumlah stok jenis barang,
sehingga jika ingin mengetahui apakah jenis barang yang diinginkan masih ada atau
tidak, begitu diketahui lewat sistem bahwa barang tersebut masih ada, baru memberitahu
bagian gudang untuk mengambil barang dengan kode tersebut. Dengan sistem ini maka
pekerjaannya akan lebih mudah dan efisien.
Dari Sistem Informasi Toko Asesoris ini didapatlah nanti hasil akhirnya berupa nota
transaksi penjualan, laporan penjualan, laporan pembelian, laporan pendapatan dan
laporan stok barang.
Jenis Kategori : B J K
2. SISTEM INFORMASI PENJUALAN MOBIL ( TUNAI / KREDIT )
Suatu perusahaan yang bergerak di bidang jasa pemasaran mobil baru , dengan
satu merek tertentu ,yang menempatkan bagian penjualan sebagai ujung tombak
perusahaan , mengalami peningkatan volume transaksi penjualan sehingga penanganan
data - data ( file ) transaksi penjualan mobil menjadi semakin kompleks . Sistem
manajemen file tradisional yang diterapkan di masa - masa awal pendirian perusahaan
tidak lagi mampu menangani kompleksitas masalah yang muncul. Pengambilan
keputusan dan pelayanan terhadap pelanggan cenderung menjadi lebih lambat , serta
potensi kesalahan akibat human-error semakin tinggi . Dengan mengoptimalkan sumber
daya yang ada , maka dibuat suatu sistem informasi penjualan yang mampu mencatat data
- data yang terkait dengan proses transaksi penjualan mobil , baik secara kredit maupun
tunai . Sistem juga diharapkan mampu mengelola proses sebelum dan sesudah terjadinya
transaksi penjualan , yaitu : proses pengadaan mobil siap jual , proses pemesanan mobil ,
proses pembayaran cicilan kredit mobil sesuai paket penjualan kredit yang ditawarkan ,
144
proses pelayanan garansi servis dan penggantian oli selama masa garansi , serta klaim
pengembalian ( return ) mobil baik berupa return penjualan maupun return pengadaan
mobil . Implementasi sistem informasi penjualan mobil ( tunai / kredit ) ini akan
memperbaiki keadaan . Proses manajemen penjualan dapat dilakukan dengan lebih efektif
dan efisien , pelayanan pelanggan dapat dioptimalkan melalui dukungan informasi yang
lebih cepat dan akurat . Informasi berupa pesan - pesan yang ditambahkan pada setiap
dokumen transaksi turut memberikan kontribusi positif bagi peningkatan layanan
terhadap pelanggan
Jenis Kategori : B J K
3. SISTEM ADMINISTRASI FIREWALL SECARA REMOTE UNTUK KEAMANAN
JARINGAN PADA SERVER BERBASIS LINUX MENGGUNAKAN WEBMIN
Aplikasi webmin dapat menunjang fleksibilitas seorang admin dalam mengelola beberapa
server.Kebijakan keamanan berdasarkan keamanan dan manfaat dan seorang admin tidak
harus menghafal sintaks dan konfigurasi iptables.Dengan jaringan seorang admin dapat
dengan mudah mengelola beberapa jaringan.Pengembangan aplikasi webmin yang
digunakan pada system operasi berbasis Microsoft Windows.Administrasi firewall pada
server linux secara langsung pada jaringan internet untuk mengetahui sejauh mana
manfaat pada webmin.Aplikasi IDS untuk menunjang keamanan dan implementasi yang
dilakukan iptables apabila server diletakkan pada daerah DMZ.
Jenis Kategori : B J K
4. PENERAPAN SPANNING TREE PROTOCOL PADA VLAN
Dalam mendesain jaringan komputer , khususnya LAN ada perbedaan mendasar antara
desain LAN tradisional dan desain LAN dengan VLAN . Pada desain LAN tradisional ,
interkoneksi host - host bersifat statis karena dibatasi oleh lokasi dan koneksi fisik dari
peralatan jaringan yang dibentuk . Sedangkan pada VLAN interkoneksi host - host
bersifat dinamis dan fleksibel karena tidak dibatasi oleh lokasi dan koneksi fisik peralatan
. Cara untuk menentukan keanggotaan VLAN pada penelitian ini dilakukan dengan
mengelompokkan VLAN menurut unit kerja secara fungsional . Berdasarkan
pengelompokkan ini , digunakan dua pendekatan dalam implementasi VLAN yakni
pendekatan simulasi dan studi kasus dengan membuat konfigurasi pada switch .
Konfigurasi untuk membuat VLAN dengan memetakan port demi port yang digunakan
untuk mengakses VLAN-VLAN yang dibentuk . Setiap VLAN baru tersebut bisa berada
pada switch yang sama ataupun pada switch yang berbeda . Dengan demikian pada
VLAN dimungkinkan untuk membuat segmentasi LAN secara logika . VLAN juga dapat
me-manage jaringan dengan membatasi boadcast domain dan mengontrol broadcast mac
address hanya pada VLAN yang sama. Keuntungan VLAN adalah sebagai berikut :
memberi kemudahan bagi administrator jaringan dalam mengatur jaringan , membuat
konfigurasi jaringan , meningkatkan kinerja , menyediakan sekuriti jaringan dengan
membatasi akses hanya bagi user yang bernaung dalam VLAN yang sama
Jenis Kategori : B J K
5. PENCARIAN TURUNAN PERTAMA FUNGSI LINIER DAN NON-LINIER
Sistem pencarian turunan pertama fungsi linier dan non-linier ini mengimplementasikan
perhitungan turunan menggunakan program bantu yang terkomputerisasi . Dengan sistem
145
ini , proses pencarian turunan pertama fungsi linier dan non-linier dapat dilakukan dengan
mudah dan cepat . Pada sistem ini , user hanya memasukan perhitungan logikanya saja (
bentuk persamaannya ). Kemudian sistem langsung menerapkan metode parsing atas
bawah ( top-down parsing ) guna membaca input dan selanjutnya dilakukan proses
penyimpanan larik / array . Untuk mengembalikan ekspresi agar diperoleh output , sistem
kembali menerapkan metode parsing sehingga sistem dapat menampilkan tururnan
pertama dari persamaan yang diinputkan , yang bernilai benar . Dengan demikian , proses
pencarian turunan pertama fungsi linier dan non-linier dapat dilakukan dengan mudah .
Jenis Kategori : B J K
6. SEGMENTASI CITRA DENGAN ALGORITMA FUZZY C-MEANS CLUSTERING
Sebuah citra bisa terdiri dari berbagai macam objek yang ada. Ada kalanya
sebuah citra harus diproses dengan cara tertentu dahulu sebagai awal untuk melakukan
proses selanjutnya yang mungkin lebih rumit. Salah satu contohnya adalah pada
pengenalan pola atau pattern recognition. Biasanya langkah awal dalam pengenalan pola
atau pattern recognition adalah proses segmentasi citra, tujuannya untuk “memperjelas”
citra yang ada dengan menyederhanakan warna objek, sehingga objek-objek yang ada
pada citra menjadi lebih terlihat.
Metode Fuzzy C-Means Clustering melakukan segmentasi dengan membentuk sebuah
matriks derajat keanggotaan. Dimensi matriks tergantung pada ukuran citra dan jumlah
segmen yang ditentukan. Baris menggambarkan jumlah data yang ada dan kolom
menggambarkan jumlah segmen. Nilai derajat keanggotaan dalam satu baris
menggambarkan tingkat ”kepemilikan” sebuah segmen terhadap data. Semakin tinggi
nilai derajat (digambarkan sebagai kolom pada matriks derajat keanggotaan), maka
semakin cenderung data tersebut masuk menjadi anggota segmen tersebut. Dalam satu
baris matriks derajat keanggotaan nilai derajat harus berjumlah 1. Kemudian dengan
menggunakan nilai derajat keanggotaan, nilai RGB (tiap piksel), dan nilai koefisien
fuzzier akan dihitung secara iteratif nilai cluster center tiap segmen dan nilai derajat
keanggotaan hingga mencapai suatu kondisi optimal, sesuai dengan batasan yang telah
ditentukan.
Dengan melakukan langkah-langkah algoritma Fuzzy C-Means Clustering, sebuah citra
akan dibagi kedalam segmen-segmen berdasarkan kemiripan warna tiap pikselnya. Hasil
dari proses segmentasi adalah citra yang menampilkan segmen-segmen dari sebuah citra.
Tiap piksel akan diberikan warna sesuai dengan nilai cluster center segmen-nya yang
berupa nilai RGB.
Jenis Kategori : B J K
7. IMPLEMENTASI ALGORITMA DIJKSTRA UNTUK PENCARIAN LOKASI
RUANGAN Studi Kasus : RS. Bethesda Yogyakarta
Pencarian lokasi ruangan di rumah sakit, khususnya RS. Bethesda, merupakan suatu
masalah yang dihadapi pengunjung awam pada umumnya. Dalam skripsi ini di buat suatu
program bantu dengan mengimplementasikan algoritma dijkstra untuk pencarian lokasi
ruangan di rumah sakit dengan studi kasus di RS. Bethesda. Algoritma dijkstra ini,
diimplementasikan dengan bahasa pemrograman Visual Basic 6.0 dan untuk
penyimpanan data-data ruangannya, di gunakan MySQL 5.0.
Masukan untuk program bantu ini, berupa nama ruangan yang ingin di tuju dan pintu
masuk. Keluaran dari program bantu ini berupa letak ruangan tersebut, lengkap dengan
146
petunjuk berupa gambar denah yang disertai dengan jalur terpendek untuk sampai ke
ruangan tersebut.
Jenis Kategori : B J K
8. APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA NETWORK)
Dalam sebuah warnet dibutuhkan pengawasan ekstra untuk mencegah
terjadinya tindak kejahatan pencurian terhadap perangkat warnet oleh pengguna. Hingga
saat ini, solusi yang diambil hanyalah menggunakan kamera pengawas atau CCTV
(Closed-Circuit Television), dan ini membutuhkan biaya yang lebih. Untuk menangani
hal ini penyusun mencoba memanfaatkan webcam sebagai kamera pengawas. Dengan
menggunakan webcam, dapat menekan biaya yang digunakan karena pada umumnya
warnet sudah memiliki webcam disetiap komputer workstationnya yang selama ini hanya
digunakan sebagai fasilitas pendukung saja.
Aplikasi yang bersifat client-server ini diharapkan mampu untuk mendukung
tujuan diatas, dimana komputer workstation menjalankan aplikasi server dan komputer
operator menjalankan aplikasi client. Server akan merespon request client berupa
pengiriman citra yang telah ditangkap lalu diproses oleh server kepada client. Proses
pengambilan citra dan mengirimkannya secara. periodik inilah yang akan dilakukan terus
menerus selama client melakukan request kepada server.
Aplikasi ini menggunakan Microsoft® Visual Basic® 6.0 sebagai compilernya dan
webcam yang telah terintegrasi ke dalam sistem operasi dengan baik sebagai perangkat
yang akan mengambil citra
Jenis Kategori : B J K
9. SISTEM INFORMASI PENJUALAN BARANG MODEL MLM STUDI KASUS
BUSINESS CENTRE TEMPO DIRECT SOLO
Di zaman sekarang ini segala sesuatunya dituntut serba cepat dan akurat. Kemajuan
teknologi komputer memberikan sumbangan yang sangat besar dalam berbagai bidang
termasuk dalam bidang sistem informasi. Pembuatan Sistem Informasi Penjualan Barang
berbasis komputer merupakan salah satu solusi bagi perbaikan sistem kerja dalam
menyelesaikan sistem penjualan barang dan sistem perubahan jenjang distributor di
Business Centre Tempo Direct Solo. Business Centre Tempo Direct Solo mengalami
masalah dalam pengolahan data kenaikan jenjang distributor dan perhitungan selisih
perubahan harga barang yang yang banyak memakan waktu. Selama ini masalah yang
terjadi masih dilakukan secara manual. Dengan komputerisasi yang dilakukan diharapkan
akan menjadi solusi bagi permasalahan yang dialami Business Centre Tempo Direct Solo
yang nantinya dapat meningkatkan kinerja dari Business Centre Tempo Direct Solo
dimasa mendatang.
Jenis Kategori : B J K
10. SISTEM INFORMASI KREDIT BARANG RUMAH TANGGA
Aktifitas transaksi angsuran kredit yang dilakukan setiap hari secara berkelanjtuan
memerlukan sebuah pengaturan yang sistematis. Dalam Sistem Informasi Kredit Barang
Elektronik dengan sistem bunga flat dan menurun yang diutamakan adalah pencatatan
transaksi dan pembayaran angsuran kredit. Pembayaran angsuran secara manual
menggunakan buku catatan atau lembar kerja pada Microsoft Excel dirasa merepotkan
147
ketika terjadi banyak transaksi dan pembuatan laporan sewaktu-waktu. Pencatatan dengan
cara ini memiliki tingkat ketelitian yang rendah dan waktu pencatatan cukup lama
sehingga kurang efisien. Untuk mengatasi masalah tersebut diatas, maka dibuatlah sebuah
aplikasi Sistem Informasi Kredit Barang Rumah Tangga. Dengan sistem ini pengguna
dapat mudah melakukan pencatatan barang yang akan dijual, pencatatan konsumen,
pencatatan data-data kredit yang diambil konsumen, pencatatan pembayaran angsuran
dan pembuatan laporan-laporan. Di samping cara pembayaran dengan kredit sistem bunga
flat atau menurun, sistem aplikasi ini juga menyediakan alternatif pembayaran secara
tunai. Dengan aplikasi ini tingkat ketelitian dapat dijaga dengan baik dan efisiensi waktu
juga dapat tercapai. Aplikasi ini dibangun dengan menggunakan bahasa pemrograman
Visual Fox Pro9.
Jenis Kategori : B J K
148
LAMPIRAN 8
Tabel 5.23 Daftar Call Procedur
No Nama Call Precedure Keterangan
1 SpCekFile Lampiran 8.1
2 SpCentroid Lampiran 8.2
3 SpDelete_kamus Lampiran 8.3
4 SpDelete_kategori Lampiran 8.4
5 SpDelete_stoplist Lampiran 8.5
6 SpDelete_user Lampiran 8.6
7 SpEdit_user Lampiran 8.7
8 SpGantiPassword Lampiran 8.8
9 SpHitungIDF Lampiran 8.9
10 SpInsertTerm Lampiran 8.10
11 SpInsert_Judul Lampiran 8.11
12 SpInsert_kamus Lampiran 8.12
13 SpInsert_kategori Lampiran 8.13
14 SpInsert_stoplist Lampiran 8.14
15 SpInsert_user Lampiran 8.15
16 SpListKamus Lampiran 8.16
17 SpListKat Lampiran 8.17
18 SpListStopword Lampiran 8.18
19 SpListUser Lampiran 8.19
20 SpLogin Lampiran 8.20
21 SpSelectId_skrip Lampiran 8.21
22 SpSelectKamus Lampiran 8.22
23 SpSelectUser Lampiran 8.23
24 SpUpdate_kamus Lampiran 8.24
25 SpUpdate_kategori Lampiran 8.25
26 SpUpdate_stopword Lampiran 8.26
27 Sp_SelectId_kat Lampiran 8.27
28 Sp_SelectId_stoplist Lampiran 8.28
149
Lampiran 8.1 SpCekFile
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpCekFile`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpCekFile`( namaFile
VARCHAR(1000),p_judulDok VARCHAR(1000),out o_result BOOLEAN)
BEGIN
DECLARE test varchar(1000);
select count(judul) into test
from skripsi
where judul = namaFile and judulDok = p_judulDok;
select if(test=0,false,true) into o_result;
END$$
DELIMITER ;
Lampiran 8.2 SpCentroid
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpCentroid`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpCentroid`(p_term VARCHAR(50),
p_kategori INT , OUT centro DOUBLE(6,5))
BEGIn
SELECT SUM(k.bobot) * (1/count(s.id_skripsi)) inTo centro
from indek k INNER JOIN skripsi s on k.id_Skripsi= s.id_skripsi and s.id_kategori
=p_kategori
INNER JOIN term t on k.id_term = t.id_term
where t.term = p_term;
END$$
DELIMITER ;
Lampiran 8.3 SpDelete_kamus
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpDelete_kamus`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpDelete_kamus`(p_kata
varchar(50),Out p_pesan VARCHAR(20))
150
BEGIN
DECLARE cek int;
select count(*) into cek
FROM kamus
where kata_dasar = p_kata;
if(cek = 1 ) then
delete from kamus where kata_dasar = p_kata;
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.4 SpDelete_kategori
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpDelete_kategori`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpDelete_kategori`(p_idKat bigint(20),
out p_pesan varchar(6))
BEGIN
declare cek bigint(20);
SELECT count(id_kategori) into cek
from kategori
where id_kategori = p_idKat;
if(cek = 1 ) then
delete from kategori where id_kategori = p_idKat;
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
151
Lampiran 8.5 SpDelete_stoplist
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpDelete_stoplist`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpDelete_stoplist`(p_idStoplist
bigint(20), out p_pesan varchar(6))
BEGIN
declare cek bigint(20);
SELECT count(id_stoplist) into cek
from stoplist
where id_stoplist = p_idStoplist;
if(cek = 1 ) then
delete from stoplist where id_stoplist = p_idStoplist;
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.6 SpDelete_user
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpDelete_user`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpDelete_user`(p_username
varchar(50))
BEGIN
delete from user where username = p_username;
END$$
DELIMITER ;
Lampiran 8.7 SpEdit_user
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpEdit_user`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpEdit_user`(in p_username
varchar(50),
152
in p_password_baru varchar(50), out p_pesan varchar(6))
BEGIN
declare cek varchar(50) default null;
select username into cek from user
where username = p_username;
if(cek is not null) then
update user
set password = md5(p_password_baru)
where username = p_username;
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.8 SpGantiPassword
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpGantiPassword`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpGantiPassword`(in p_username
varchar(50),
in p_password_lama varchar(50), in p_password_baru varchar(50), out output varchar(6))
BEGIN
declare cek varchar(20) default null;
select username into cek from user
where username = p_username and password = md5(p_password_lama);
if(cek is not null) then
update user
set password = md5(p_password_baru)
where username = p_username;
set output = "sukses";
else
set output = "gagal";
end if;
END$$
153
DELIMITER ;
Lampiran 8.9 SpHitungIDF
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpHitungIDF`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpHitungIDF`(p_term VARCHAR(50),
Out idf DOUBLE(6,5))
BEGIN
SELECT LOG2(COUNT(dok.id_skripsi)/t.df) into idf
from skripsi dok, term t
where t.term = p_term;
END$$
DELIMITER ;
Lampiran 8.10 SpInsertTerm
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpInsertTerm`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpInsertTerm`(p_term varchar(255))
BEGIN
DECLARE v_term varchar(255);
SELECT term into v_term from term where term = p_term;
if ( isnull(v_term)) then
insert into term(term) values (p_term);
end if;
END$$
DELIMITER ;
Lampiran 8.11 SpInsert_judul
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpInsert_Judul`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpInsert_Judul`(p_judul
VARCHAR(1000), p_idKat INT , p_judulDok VARCHAR(1000),OUT pesan VARCHAR(6) )
BEGIN
declare cek_id VARCHAR(1000);
select judul into cek_id
154
from skripsi
where judul = p_judul;
if(cek_id is null) then
insert into
skripsi(judul,id_kategori,judulDok)values(p_judul,p_idkat,p_judulDok);
set pesan = "sukses";
else
set pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.12 SpInsert_kamus
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpInsert_kamus`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpInsert_kamus`(p_kata
VARCHAR(50), OUT p_pesan varchar(6))
BEGIN
declare cek_id VARCHAR(50);
select kata_dasar into cek_id
from kamus
where kata_dasar = p_kata;
if(cek_id is null) then
insert into kamus(kata_dasar) values(p_kata);
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.13 SpInsert_ kategori
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpInsert_kategori`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpInsert_kategori`(p_kategori
Varchar(100), Out p_pesan varchar(6))
155
BEGIN
declare cek_id int(20);
select id_kategori into cek_id
from kategori
where jenis_kategori= p_kategori;
if(cek_id is null) then
insert into kategori(jenis_kategori) values(p_kategori);
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.14 SpInsert_ stoplist user
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpInsert_stoplist`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpInsert_stoplist`(p_Stopword
varchar(20), out p_pesan varchar(6))
BEGIN
declare cek_id int(200);
select id_stoplist into cek_id
from stoplist
where Stoplist = p_Stopword;
if(cek_id is null) then
insert into stoplist(Stoplist) values(p_Stopword);
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.15 SpInsert_ user
156
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpInsert_user`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpInsert_user`(in p_username
varchar(50),in p_password varchar(50), out p_cek int)
BEGIN
declare v_username varchar(50);
select username into v_username from user where username like p_username;
if (v_username is null) then
insert into user(username,password) values(p_username,md5(p_password));
set p_cek=1;
else
set p_cek=0;
end if;
END$$
DELIMITER ;
Lampiran 8.16 SpListKamus
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpListKamus`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpListKamus`()
BEGIN
select * from kamus;
END$$
DELIMITER ;
Lampiran 8.17 SpListKat
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpListKat`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpListKat`()
BEGIN
select * from kategori;
END$$
DELIMITER ;
Lampiran 8.18 SpListStopword
157
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpListStopword`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpListStopword`()
BEGIN
select * from stoplist;
END$$
DELIMITER ;
Lampiran 8.19 SpListUser
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpListUser`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpListUser`()
BEGIN
select * from user;
END$$
DELIMITER ;
Lampiran 8.20 SpLogin
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpLogin`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpLogin`(in p_username varchar(50), in
p_password varchar(50),
out o_result boolean)
BEGIN
DECLARE test int;
select id_user into test
from user
where username like p_username and password like MD5(p_password);
select if(test is null,false,true) into o_result;
END$$
DELIMITER ;
Lampiran 8.21 SpSelectId_skrip
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpSelectId_Skrip`$$
158
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpSelectId_Skrip`(p_idSkrip bigint)
BEGIN
select * from skripsi
where id_skripsi = p_idSkrip;
END$$
DELIMITER ;
Lampiran 8.22 SpSelectKamus
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpSelectKamus`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpSelectKamus`(p_Kamus varchar(50))
BEGIN
select kata_dasar from kamus
where kata_dasar = p_Kamus;
END$$
DELIMITER ;
Lampiran 8.23 SpSelectUser
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpSelectUser`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpSelectUser`(in p_username
varchar(50),
out o_id_user int(11),out o_username varchar(50), out o_password varchar(50))
BEGIN
select id_user, username, password into o_id_user, o_username, o_password
from user
where username like p_username;
END$$
DELIMITER ;
Lampiran 8.24 SpUpdate_kamus
DELIMITER $$
159
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpUpdate_Kamus`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpUpdate_Kamus`(p_kamus
varchar(50), p_in_kamus varchar(50), out p_pesan varchar(20))
BEGIN
DECLARE cek int;
select count(*) into cek
from kamus
where kata_dasar like p_kamus ;
if(cek = 1 ) then
update kamus
set kata_dasar = p_in_kamus
where kata_dasar like p_kamus
;
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.25 SpUpdate_kategori
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpUpdate_kategori`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpUpdate_kategori`( p_id_kat int(100),
p_jenis_kat varchar(100), out p_pesan varchar(20))
BEGIN
DECLARE cek_id bigint(20);
select id_kategori into cek_id
from kategori
where jenis_kategori = p_jenis_kat and id_kategori <> p_id_kat;
if(cek_id is null) then
update kategori
set jenis_kategori = p_jenis_kat
where id_kategori = p_id_kat;
160
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.26 SpUpdate_stopword
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`SpUpdate_Stopword`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SpUpdate_Stopword`(p_id_stop
int(200), p_stopword varchar(20), out p_pesan varchar(20))
BEGIN
DECLARE cek_id bigint(20);
select id_stoplist into cek_id
from stoplist
where Stoplist= p_stopword and id_stoplist <> p_id_stop;
if(cek_id is null) then
update stoplist
set Stoplist= p_stopword
where id_stoplist = p_id_stop;
set p_pesan = "sukses";
else
set p_pesan = "gagal";
end if;
END$$
DELIMITER ;
Lampiran 8.27 Sp_SelectId_kat
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`Sp_SelectId_kat`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `Sp_SelectId_kat`(p_id_kat bigint(20))
BEGIN
select * from kategori
where id_kategori = p_id_kat;
161
END$$
DELIMITER ;
Lampiran 8.28 Sp_SelectId_stoplist
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbklasifikasi`.`Sp_SelectId_stoplist`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `Sp_SelectId_stoplist`(p_id_stop
bigint(20))
BEGIN
select * from stoplist
where id_stoplist = p_id_stop;
END$$
DELIMITER ;