Analisis Perbandingan Algoritma Idris Dan Algoritma Enhanced Confix Stripping (ECS) Stemmer Pada Dokumen Teks Bahasa Indonesia

(1)

1 1.1 Latar Belakang Masalah

Stemming merupakan suatu proses untuk menemukan kata dasar dari sebuah kata dengan cara menghilangkan semua imbuhan (afiks) baik itu yang terdiri dari awalan (prefiks), sisipan (infiks), akhiran (suffiks) dan kombinasi awalan-akhiran (konfiks) pada kata turunan. Stemming adalah inti dari teknik pemrosesan natural languange untuk mendapatkan informasi kembali (Information Retrieval)[5]. Information Retrieval adalah suatu sistem dimana user akan memasukan suatu query tertentu dan sistem tersebut akan mengembalikan suatu informasi, dokumen maupun data yang mempunyai relevansi terhadap query yang telah diberikan user. Saat ini kebutuhan pengguna akan pencarian informasi semakin meningkat dan jumlah dokumen teks yang dapat diakses juga semakin banyak, hal ini dapat mengakibatkan pengguna semakin sulit menemukan dokumen yang relevan dengan query yang dimasukkan[1]. Indikator yang lazim digunakan untuk menilai relevansi

hasil pencarian suatu dokumen adalah kesesuaian antara query yang diberikan dengan dokumen yang dicari. Metode stemming digunakan untuk mengatasi masalah pencarian informasi yang tersimpan didalam dokumen secara efektif dan efisien dan juga digunakan untuk mengurangi perbedaan bentuk dari suatu kata dengan mengembalikannya ke dalam bentuk kata dasar. Misal pada kasus ini dengan stemming bahasa Indonesia, dicari suatu dokumen dengan judul “baca buku” dengan menggunakan query “membaca”, dokumen yang dimaksud tidak akan pernah terdapat dalam hasil pencarian. Namun, dengan menggunakan stemming, query seperti “membaca” dan “dibaca” akan dianggap memiliki interpretasi yang sama yaitu menjadi “baca” sehingga antara kata pada dokumen dengan query bisa cocok. Dengan begini pencarian dokumen akan berhasil[3].

Stemming Bahasa Indonesia memiliki beberapa teknik pendekatan seperti Jelita Asian tahun 2005, Arifin & Setiono tahun 2002, Nazief & Adriani tahun 1996, Ahmad Yusoff Sembok tahun 1996, Vega tahun 2001, Idris tahun 2001 dan ECS Stemmer tahun 2008. Teknik stemming dikembangkan untuk alasan mereduksi term


(2)

menjadi bentuk dasarnya. Dalam penelitian ini akan dilakukan analisis perbandingan dari dua buah algoritma yang termasuk dalam metode Stemming yaitu Algoritma Idris dan Algoritma ECS (Enhanced Confix Stripping) Stemmer yang dapat diterapkan untuk pencarian dokumen teks bahasa Indonesia. Analisis performansi ini dilakukan dengan tujuan mendapatkan informasi dari kedua algoritma yaitu berupa informasi kecepatan dan akurasi serta jumlah langkah dari Algoritma Idris dan Algoritma ECS dalam penerapannya pada sebuah simulator. Adapun penelitian sebelumnya yang dilakukan oleh Eka yang berjudul “Analisis dan Implementasi Stemming Menggunakan Algoritma Idris Pada Dokumen Teks Berbahasa Indonesia”[4] dijelaskan bahwa Algoritma Idris cocok dan efektif untuk mereduksikan kata – kata yang digunakan pada dokumen teks bahasa Indonesia.

Pada penelitian yang dilakukan oleh Noverdy yang berjudul “Implementasi Modifikasi Algoritma Enhanced Confix Stripping (ECS) Stemmer Pada Teks Bahasa Indonesia”[5] dijelaskan bahwa Algoritma ECS Stemmer yang merupakan perbaikan dari algoritma Confix Stripping Stemmer, memiliki akurasi yang tinggi dalam menstemming dokumen bahasa Indonesia serta mampu menutupi kesalahan pada Confix Stripping. Tetapi tidak diketahui apakah hasil akan sama jika jumlah data serta parameter yang diteliti sama, begitu juga dengan performansinya serta tingkat kecocokan untuk stemming dokumen teks bahasa Indonesia dari kedua algoritma tersebut apakah Algoritma Idris akan tetap lebih akurat dan cepat serta memiliki performasi yang tinggi dibanding dengan Algoritma ECS Stemmer, begitu juga sebaliknya.

1.2 Identifikasi Masalah

Dari latar belakang masalah yang sudah dijelaskan maka identifikasi masalah adalah apakah performasi Algortima Idris akan lebih baik dari pada Algortima Enhanced Confix Stripping (ECS) Stemmer begitu juga sebaliknya dalam pencarian kata dalam bahasa Indonesia.


(3)

1.3 Maksud dan Tujuan 1.3.1 Maksud

Maksud dari penelitian ini adalah untuk menganalisis Algoritma Idris dan Algoritma Enhanced Confix Stripping (ECS) Stemmer dalam stemming kata pada bahasa Indonesia.

1.3.2 Tujuan

Sedangkan tujuan yang akan dicapai adalah mengetahui algoritma mana yang memiliki performasi yang paling baik dalam menstemming dokumen pada bahasa Indonesia.

1.4 Batasan Masalah

Adapun batasan masalah dalam penelitian adalah sebagai berikut:

1. Dokumen yang digunakan untuk proses stemming ini merupakan dokumen teks dengan query yang telah ditentukan sebelumnya.

2. Parameter tingkat keakuratan algoritma stemming berdasarkan nilai stem yang di stemming dengan benar.

3. Parameter output berdasarkan kata dasar dari Kamus Besar Bahasa Indonesia (KBBI).

4. Parameter tingkat kekuatan stemmer (stemmer strength) dalam mereduksi indeks term berdasarkan pada analisis icf (Index Compression Factor) serta persentase kekuatan stemmer.

5. Dokumen yang akan digunakan adalah berekstensi .txt atau .doc.

6. Dokumen yang akan digunakan merupakan novel atau kalimat yang menggunakan kata baku.

7. Sistem ini berbasis dekstop dan menggunakan bahasa pemograman C#. 8. Database yang akan digunakan adalah MySQL.

1.5 Metodologi Penelitian

Metodologi penelitian yang dimaksud adalah segala hal yang berhubungan dengan metode-metode yang digunakan dalam melakukan penelitian ini dengan cara melakukan pendekatan terhadap metode-metode yang telah ada. Dalam penelitian menggunakan beberapa tahap, yaitu tahap pengumpulan data,


(4)

menganalisis algortima, implementasi algortima, pengujian, penarikan kesimpulan yang dapat dilihat pada Gambar 1.1 sebagai berikut :

Gambar 1.1 Tahap Penelitian

Tahapan – tahapan metodologi penelitian pada Gambar 1.1 yang digunakan dalam penelitian tugas akhir ini adalah sebagai berikut :

1. Pengumpulan data

Pengumpulan data adalah cara atau prosedur yang sistematis dan standar untuk memperoleh data yang diperlukan. Adapun metode pengumpulan data pada penelitian ini yaitu studi pustaka dengan cara mengkaji buku, media, atau hasil penelitian orang lain yang memiliki keterkaitan dengan penelitian ini.

2. Menganalisis Algoritma

Pada tahap ini akan dilakukan analisis dan kebutuhan dari algortima Idris dan algortima Enhanced Confix Stripping (ECS) Stemmer, analisis ini dilakukan guna mempersiapkan hal – hal apa saja yang akan digunakan untuk dapat mengimplementasikan algoritma yang akan dibangun.

3. Implementasi Algoritma

Pada tahap ini analisis algoritma yang telah dilakukan akan diimplemetasikan kedalam sebuah simulator yang berguna untuk membantu simulasi perbandingan algoritma Idris dan algortima Enhanced Confix Stripping (ECS) Stemmer. Simulator yang dibangun menggunakan bahasa C# dengan database MySQL sesuai perencanaan atau analisis yang sudah dibuat.

4. Pengujian

Setelah simulator dibangun maka tahapan selanjutnya adalah pengujian hasil implemntasi algortima Idris dan algortima Enhanced Confix Stripping (ECS) Stemmer pada pencarian dokumen teks bahasa Indonesia. Pada tahap ini akan ditinjau mengenai bagaiman keberhasilan algortima Idris dan algortima Enhanced Confix Stripping (ECS) Stemmer dapat digunakan untuk pencarian kata dasar bahasa Indonesia. Pengujian ini dilakukan dengan memfokuskan pengujian pada


(5)

penguian akurasi data yang dihasilkan pada saat proses stemming. Pengujian pada tahap ini akan menggunakan dua skenario yaitu skenario pertama untuk melihat kekuatan stemmer dari kedua algoritma yang diujikan yaitu algoritma Idris dan algoritma ECS Stemmer. Kekuatan stemmer ini mengacu pada segi kekuatan berdasarkan nilai icf dan persentase serta melihat tingkat kecepatan juga dari kedua algoritma tersebut dalam menstemmer dokumen. Skenario kedua dilakukan untuk menguji keakuratan dari kedua algoritma yaitu algoritma Idris dan algoritma ECS Stemmer terhadap stem yang dihasilkan, skenario yang dilakukan adalah dengan menguji kedua algoritma menggunakan dokumen uji yang telah ditentukan dan akan menganalisis isi dokumen uji berdasarkan jumlah kata yang tidak berhasil distemming.

5. Penarikan Kesimpulan

Berdasarkan hasil pengujian langkah selanjutnya adalah penarikan kesimpulan berdasarkan parameter yang telah ditentukan yaitu dari nilai icf, persentase serta waktu pemrosesan dari algortima Idris dan algortima Enhanced Confix Stripping (ECS) Stemmer.

1.6 Sistematika Penulisan

Penyusunan skripsi ini dibagi ke dalam beberapa bab secara sistematis sesuai dengan pokok – pokok permasalahan yang dibahas. Sistematika penulisan secara umum adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini menjelaskan secara singkat mengenai latar belakang masalah, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, serta sistematika penulisan yang dimaksudkan agar dapat memberikan gambaran tentang urutan pemahaman dalam menyajikan laporan ini.

BAB 2 LANDASAN TEORI

Pada bab ini berisi mengenai landasan terori yang digunakan untuk menganalisis masalah dan teori yang dipakai dalam mengelolah data penelitian yaitu mengenai teori sistem temu kembali, stemming bahasa Indonesia, algorima Idris, algoritma


(6)

Enhanced Confix Stripping (ECS) Stemmer dan teori mengenai software pembangun simulator.

BAB 3 ANALISIS DAN KEBUTUHAN ALGORTIMA

Bab ini menerangkan analisis yang dilakukan terhadap cara kerja aplikasi yang dibuat yaitu menerangkan tentang analisis perbandingan algoritma Idris dengan algoritma Enhanced Confix Stripping (ECS) Stemmer pada dokumen teks bahasa Indonesia.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Pada bab ini berisi tentang implementasi perbandingan algortima Idris dengan algoritma Enhanced Confix Stripping (ECS) Stemmer dalam menentukan perbandingan performansi pada dokumen teks bahasa Indonesia dari kedua algortima tersebut sehingga dapat terlihat hasilnya.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi hal-hal yang bisa disimpulkan dari hasil analisis perbandingan algoritma Idris dengan algortima Enhanced Confix Stripping (ECS) Stemmer, serta saran untuk pengembangan aplikasi ini ke depannya.


(7)

7

BAB 2

LANDASAN TEORI

2.1 Information Retrieval (IR)

Information Retrieval (IR) adalah suatu bidang penelitian yang menargetkan pencarian informasi secara efektif dan efisien dalam dokumen teks dan multimedia. Information Retrieval digunakan untuk menemukan kembali informasi yang relevan terhadap kebutuhan pengguna dari suatu kumpulan informasi secara otomatis berdasarkan query yang diinputkan oleh pengguna. Query adalah kebutuhan informasi pengguna yang biasanya direpresentasikan dengan satu atau beberapa kata.

Gambar 2.1 Gambaran besar sistem Information Retrieval[7]

Pada Gambar 2.1 dapat dilihat bahwa Information Retrieval System akan menyaring atau mencari suatu data berdasarkan query yang diinputkan oleh user. Information Retrieval System terdiri dari dua bagian utama, yaitu Indexing subsytem dan Searching subsystem (matching system).[7]

a. Indexing Subsystem


(8)

Pada gambar 2.2 dapat dilihat bahwa ada beberapa tahapan untuk melakukan indexing sampai tersimpang didalam database antara lain menyimpan ID dokumen dan menyimpan term index melalui memecah isi dokumen kedalam token (break into token), melakukan stoplist, stemming, term indexing.

1. Break Into Token

Merupakan proses memecah (parsing) dokumen menjadi token-token yaitu dengan memotong menjadi term (kata, frase).

2. StopList

Merupakan proses menghilangkan kata-kata umum. Misalkan dalam, dan, karena, mana, untuk dan lainnya. Dalam pembahasan ini kita batasi hanya dilakukan pada bahasa Indonesia saja. Pada proses selanjutnya juga akan dibatasi hanya untuk bahasa Indonesia.

3. Stemming

Merupakan proses pengelompokan kata secara morfologis sesuai dengan kelompoknya. Ada pengertian lain yaitu proses ini merubah kata-kata yang berimbuhan menjadi kata dasar dengan menghilangkan imbuhan, sisipan maupun akhiran. Sebagai contoh kata ”memakan”, ”dimakan”, ”termakan”, ”makan -makan” akan dikelompokkan kedalam kata ”-makan”. Kata ”cinta” memiliki turunan kata ”pecinta”, ”mencintai”, ”dicintai” dan lain sebagainya, sehingga


(9)

ketika orang memasukkan kata-kata turunan tersebut akan keluar dokumen yang relevan.

4. Term Weighting

Term weighting adalah proses pembobotan term yang ada di dokumen (seberapa sering kemunculan term pada dokumen).

b. Searching Subsystem

Searching merupakan suatu proses mencari atau melakukan query ke dalam database berdasarkan key word yang dimasukkan oleh user. Alur dari searching subsystem dapat dilihat pada gambar 2.3 berikut :

Pada gambar 2.3 dapat dijelaskan bahwa tahapan dalam melakukan serching pada information retrieval yaitu :

1. Parse query

Tahap awal dalam melakukan searching adalah memarsing query, key word yang diinputkan user dijadikan sebagi query untuk melakukan pencarian ke dalam database.

2. Stop list Hasil dari proses parse query adalah query token (berisi query yang sudah dipotong berdasarkan token), kemudian dilakukan proses stoplist yaitu menghilangkan kata-kata yang umum.


(10)

3. Stemming

Setelah query tersebut melewati proses stoplist, kemudian query tersebut melalui proses stemming yaitu suatu proses mengembalikan menjadi kata dasar dengan cara membuang awalan, akhiran atau sisipan. Hal ini dilakukan karena yang disimpan di dalam index database adalah kata dasar saja.

4. Boolean operation

Setelah mendapatkan dokumen yang relevan dengan key word yang dicari maka proses berikutnya mengecek operator boolean.

5. Ranking

Tahap yang terakhir adalah melakukan perangkingan, dari dokumen – dokumen yang di dapatkan. Perangkingan disusun berdasarkan tingkat kemiripan dokumen dengan query, dokumen yang paling besar tingkat kemiripanya dengan query menjadi dokumen dengan ranking teratas.

2.2 Model Information Retrieval

Model sisterm temu kembali informasi menentukan detail dari sistem temu kembali informasi, yaitu meliputi representasi dokumen maupun query, fungsi pencarian (retrieval function) dan notasi kesesuaian (relevance notation) dokumen terhadap query. Salah satu model sistem temu kembali informasi yang paling awal digunakan adalah model Boolean. Model Boolean merepresentasikan dokumen sebagai suatu himpunan kata kunci (set of keywords), sedangkan query direpresentasikan sebagai ekspresi Boolean. Query dalam ekspresi Boolean merupakan kumpulan kata kunci yang saling dihubungkan melalui operator Boolean seperti AND, OR, dan NOT, serta menggunakan tanda kurung untuk menentukan scope operator. Hasil pencarian dokumen dari model Boolean adalah himpunan dokumen yang relevan. Kekurangan model Boolean antara lain[4] :

1. Hasil pencarian dokumen berupa himpunan, sehingga tidak dapat dikenali dokumen-dokumen yang paling relevan atau agak relevan (partial match).


(11)

2. Query dalam ekspresi boolean dapat menyulitkan pengguna yang tidak mengerti tentang ekspresi boolean.

2.3 Arsitektur Sistem Information Rerieval

Secara garis besar arsitektur sistem IR mempunyai dua pekerjaan yang ditangani oleh sistem, yaitu melakukan pre-processing terhadap database dan kemudian menerapkan metode tertentu untuk menghitung kedekatan (relevansi atau similarity) antara dokumen di dalam database yang telah dipreprocess dengan query pengguna. Pada tahapan preprocessing, sistem yang berurusan dengan dokumen semi-structured biasanya memberikan tag tertentu pada term-term atau bagian dari dokumen; sedangkan pada dokumen tidak terstruktur proses ini dilewati dan membiarkan term tanpa imbuhan tag. Query yang dimasukkan pengguna dikonversi sesuai aturan tertentu untuk mengekstrak term penting yang sejalan dengan term-term yang sebelumnya telah diekstrak dari dokumen dan menghitung relevansi antara query dan dokumen berdasarkan pada term-term tersebut. Sebagai hasilnya, sistem mengembalikan suatu daftar dokumen terurut descending (ranking) sesuai nilai kemiripannya dengan query pengguna[4].

Setiap dokumen (termasuk query) direpresentasikan menggunakan model bag-of-words yang mengabaikan urutan dari kata-kata di dalam dokumen, struktur sintaktis dari dokumen dan kalimat. Dokumen ditransformasi ke dalam suatu “tas“ berisi kata -kata independen. Term disimpan dalam suatu database pencarian khusus yang ditata sebagai sebuah inverted index. Indeks ini merupakan konversi dari dokumen asli yang mengandung sekumpulan kata ke dalam daftar kata yang berasosiasi dengan dokumen terkait dimana kata-kata tersebut muncul.

2.4 Stemming

Stemming merupakan suatu proses pembuangan atau pemotongan afiks (baik prefiks maupun sufiks) untuk mendapatkan bentuk akar atau dasar dari suatu term (berupa kata). Dalam konteks information retrieval, stemming digunakan untuk mereduksi bentuk term untuk menghindari ketidakcocokan. Hal ini dikarenakan afiks


(12)

dapat mengandung informasi seperti bagian dari percakapan, plurarity, dan sebagainya. Perlu diingat bahwa proses stemming di sini bukan merupakan pekerjaan dalam etimologi grammar, sehingga dapat ditoleransi apabila algoritma stemming menghasilkan kata yang tidak bermakna. Algoritma stemming dapat dibedakan menjadi context-free dan context-sensitive. Context-free membuang akhiran tanpa adanya suatu batasan, sedangkan context-sensitive melibatkan banyak batasan kontekstual untuk mencegah pembuangan akhiran yang mengakibatkan stem yang dihasilkan menjadi rusak.

2.4.1 Stemming Bahasa Indonesia

Morfologi adalah bagian dari ilmu bahasa yang membicarakan atau mempelajari seluk-beluk bentuk kata serta pengaruh perubahan bentuk kata terhadap golongan dan arti kata. Kata yang dibentuk dari kata lain pada umumnya mengalami tambahan bentuk pada kata dasarnya. Perubahan-perubahan bentuk kata menyebabkan adanya perubahan golongan dan arti kata. Tiga macam proses morfologis, yaitu pertama, bergabungnya morfem bebas dengan morfem terikat disebut afiksasi. Kedua, pengulangan morfem bebas disebut reduplikasi, dan ketiga, bergabungnya morfem bebas dengan morfem bebas disebut pemajemukan. Pada proses yang pertama menghasilkan kata berimbuhan, yang kedua menghasilkan kata ulang, dan yang ketiga menghasilkan kata majemuk. Imbuhan (afiks) adalah bentuk (morfem) terikat yang dipakai untuk menurunkan kata.Pada umumnya imbuhan (afiks) hanya dikenal ada empat, yaitu awalan (prefiks), sisipan (infiks), akhiran (sufiks), awalan dan akhiran (konfiks)[1].

Penggunaan afiks dalam teks berbahasa Indonesia termasuk dalam kategori yang kompleks. Afiks yang dimaksud dalam konteks ini adalah prefiks (awalan), sufiks (akhiran), infiks (sisipan), konfiks, bentuk perulangan, dan kombinasi dari afiks-afiks tersebut. Penghapusan afiks untuk mengubah sebuah kata menjadi kata dasarnya, dapat menggunakan rule-rule tertentu yang dipertimbangkan secara cermat agar dapat


(13)

menghasilkan proses stemming yang baik. Efektifitas algoritma stemming dipengaruhi oleh beberapa faktor[8]:

a. Kesalahan dalam proses pemenggalan imbuhan dari kata dasarnya. Kesalahan ini dapat berupa:

1. Overstemming: yaitu pemenggalan imbuahan yang melebihi dari yang seharusnya. Contoh: kata masalah menjadi masa. Kesalahan ini dapat timbul karena bentuk kata dasar yang menyerupai imbuhan.

2. Understemming: yaitu pemenggalan imbuhan yang terlalu sedikit dari yang seharusnya. Contoh: kata belajar menjadi lajar. Kesalahan ini dapat timbul karena kekurangan pada aturan pola imbuhan yang didefinisikan.

3. Unchange: yaitu kasus khusus dari understemming, dimana tidak terjadi pemenggalan imbuhan sama sekali. Contoh: telapak, yang memiliki kata dasar tapak tetapi setelah pemenggalan kata dasar yang didapat tetap telapak. Kesalahan ini dapat ditimbulkan karena kekurangan pada aturan pola imbuhan yang didefinisikan.

4. Spelling exception: yaitu huruf pertama kata dasar yang didapat tidak benar yang diakibatkan dari pemenggalan awalan. Contoh: kata memukul menjadi ukul. Kesalahan ini dapat ditimbulkan karena ada beberapa imbuhan yang berubah bentuk ketika ditempelkan pada suatu kata dasar. Misalnya awalan beR-, meN-, teR-, peR-, akan bergantung pada huruf pertama kata dasar dimana imbuhan tersebut ditempelkan (Contoh: ber- + ajar = belajar, pen- + lihat = penglihatan, pen- + sakit = penyakit). Atau sebaliknya ada imbuhan yang mengakibatkan huruf pertama kata dasar yang ditempelinya menjadi luluh. Misalnya meng- / peng- meluluhkan huruf ‘k’ ( Contoh: mengarang dari meng- dan karang) atau men- / pen- meluluhkan huruf ‘p’ (Contoh: menuai dari men- dan tuai).


(14)

b. Kekurangan dalam perumusan aturan penambahan imbuhan pada kata dasar. Hal ini dapat terjadi karena morfologi bahasa Indonesia yang kompleks, sehingga sangat sulit atau bahkan tidak mungkin untuk merumuskan aturan yang sempurna. c. Jumlah total aturan imbuhan yang didapat berhubungan dengan efektifitas proses temu kembali. Dimana semakin banyak pola penambahan imbuhan yang dapat dirumuskan, maka proses temu kembali akan semakin efektif.

Untuk kasus stemming bahasa Indonesia ada beberapa pendekatan yang digunakan. Teknik pendekatan untuk proses stemming tersebut, ada yang menggunakan kamus, namun ada juga yang tidak menggunakan kamus. Contoh teknik stemming yang tidak menggunakan kamus adalah algoritma Vega, sedangkan stemming yang menggunakalan kamus adalah algoritma Nazief dan Adriani tahun 1996, algoritma Idris tahun 2001 dan yang terakhir algoritma Enhanced Confix Stripping Stemmer tahun 2008. Algoritma Enhanced Confix Stripping Stemmer dikembangkan oleh Putu Adhi Kerta Mahendra pada tahun 2008 sebagai hasil evaluasi penelitian sebelumnya, yaitu memperbaiki kekurangan pada algoritma Confix Stripping Stemmer. Perbaikan dilakukan dengan menambah dan memodifikasi tabel aturan pemenggalan, lalu menambah fungsionalitas pengembalian akhiran untuk mengantisipasi kesalahan pemenggalan yang seharusnya tidak dilakukan.

Secara struktur morfologi Bahasa Indonesia, proses stemming Bahasa Indonesia dapat dilakukan hal-hal berikut :

1. Pembuangan partikel

Dalam proses ini, dapat dilakukan pembuangan partikel, seperti –lah, -kah, dan –pun. Contohnya adalah adalah, siapakah, dan walaupun dapat dilihat pada tabel 2.1 dibawah ini :

Tabel 2.1 Pembuangan Partikel

Kata awal Partikel Kata setelah stemming

apalah -lah apa


(15)

siapapun -pun siapa 2. Pembuangan possessive pronoun

Pembuangan possessive pronoun adalah penghilangan suatu kata yang mengacu pada kepemilikan sesuatu. Contohnya adalah kau-, ku-, -ku, -mu, dan –nya yang dapat dilihat pada tabel 2.2 dibawah ini :

Tabel 2.2 Pembuangan Possesive Pronoun

Kata awal Posessive pronoun Kata setelah stemming

kaurasa kau rasa

kusinggah ku- singgah

rumahku -ku rumah

padamu -mu pada

segalanya -nya segala

3. Pembuangan circumfix

Dalam proses stemming ini akan dilakukan pembuangan circumfix (kombinasi awalan dan akhiran). Berikut adalah contoh dari circumfix yang dapar dilihat pada tabel 2.3 dibawah ini :

Tabel 2.3 Pembuangan circumfix

Kata awal Circumfix Kata setelah stemming

bertahtakan ber – kan tahta

dihujani di – i hujan

dihapuskan di – kan hapus

kecepatan ke – an cepat

memperbarui memper – i baru

mempertanyakan memper – kan tanya

mempunyai mem – i punya


(16)

melawannya me – nya lawan

persatui per – i satu

pertaruhan per – an taruh

pembelajaran pe – an belajar

4. Pembuangan prefiks

Prefiks adalah nama lain dari awalan. Pada proses stemming Bahasa Indonesia akan dilakukan pemotongan prefiks. Berikut ini beberapa contoh prefiks yang dilihat pada tabel 2.4 dibawah ini :

Tabel 2.4 Pembuangan Prefiks

Kata awal Prefiks Kata setelah stemming

berusaha ber- usaha

dicoba di- coba

kemana ke- mana

memperkuat memper- kuat

merayu me- rayu

5. Kombinasi Terlarang

Kombinasi terlarang adalah kombinasi antara awalan dan akhiran yang menyebabkan kata dasar mendapat bentuk baru ketika diberi imbuhan tersebut tetapi menjadi kata yang tidak baku. Berikut adalah kombinasi terlarang dapat dilihat pada tabel 2.5 dibawah ini :

Tabel 2.5 Kombinasi awalan-akhiran yang tidak diperbolehkan

Awalan Akhiran

be- -i

di- -an

ke- -i,-kan

me- -an

se- -i,-kan


(17)

2.4.2 Algortima Idris

Algoritma Idris merupakan pengembangan dari algoritma sebelumnya, yaitu algoritma Ahmad, Yusoff, dan Sembok yang awalnya dikembangkan untuk Bahasa Melayu[9]. Algoritma ini memperluas skema algoritma Ahmad, Yusuf dan Sembok untuk stemming dan recoding dalam dokumen teks Bahasa Melayu. Kemiripannya dengan dokumen teks Bahasa Indonesia, membuat algoritma Idris dapat diterapkan juga untuk dokumen teks berbahasa Indonesia. Algoritma ini menghapus prefiks dan sufiks sampai akar kata ditemukan dalam kamus. Dalam tugas akhir ini, algoritma Idris mengadopsi asumsi Arifin dan Setiono bahwa kata-kata bahasa Indonesia dapat memiliki paling banyak dua awalan (prefiks) dan tiga akhiran (sufiks)[10]. Aturan-aturan (rules) dalam algoritma Idris, diadopsi dari rules pada algoritma Othman, yaitu[11] :

(1) Prefiks rules format : Prefiks+ Contoh : di + jajah dijajah (2) Suffiks rules format : +Suffiks

Contoh : jajah + an jajahan (3) Infix rules format : +Infix+

Contoh : tapak (+el+) telapak

(4) Prefiks-Suffiks pair rules format : Prefiks+Suffiks Contoh : meN + takluk menakluki

Jika dalam kenyataannya, hasil stemming dari rules di atas tidak lengkap, maka cek huruf pertama dari kata tersebut. Aturan ini biasa disebut Rule 2. Jika huruf pertama adalah huruf hidup (vokal), maka :

(1) Tambahkan t setelah menghilangkan imbuhan men- atau pen- (2) Tambahkan k setelah menghilangkan imbuhan meng- atau peng- (3) Tambahkan s setelah menghilangkan imbuhan meny- atau peny- (4) Tambahkan f atau p setelah menghilangkan imbuhan mem- atau pem-


(18)

Fitur dari algoritma ini adalah menggunakan dua buah kamus: kamus umum dan kamus khusus untuk konten dokumen, misalnya yang mengandung istilah medis atau hukum[4]. Dua varian dari algoritma ini, prefiks diubah sebelum recoding dan prefiks diubah setelah recoding. Asumsi yang digunakan adalah kata-kata yang digunakan mempunyai prefiks yang berbeda. Sebagai contoh, kata “memasukkan” yang berasal dari kata “masuk”, dapat menjadi “mem-asuk-kan” atau “me masukkan”. Varian kedua, mengecek recoding dahulu. Contoh, setelah menghapus prefiks “mem-”, diperoleh “asuk” yang tidak ada dalam kamus. Dalam aturan recoding, dapat diketahui bahwa prefiks “mem-”, huruf “p” dapat dihilangkan, sehingga menambahkan huruf “p” menjadi kata yang salah dan tidak berada dalam kamus “pasuk”.

Penghapusan afiks yang salah dapat menyebabkan overstemming. Contoh, untuk kata “medannya” yang berasal dari kata “medan” (daerah, lapangan, atau tempat). Dalam algoritma ini, prefiks “me-” akan dihapus menjadi “dannya” dimana kata tersebut tidak berada dalam kamus. Maka, algoritma akan mengecek dan menghapus akhirannya (sufiks) “-nya” menjadi “dan”. Kata tersebut memang benar berada dalam kamus, namun kata tersebut bukan kata yang dimaksud. Karena didesain untuk Bahasa Melayu, algoritma ini menggunakan prefiks dan sufiks yang sedikit berbeda dari Bahasa Indonesia, yang dapat berpeluang menjadi overstemming. Secara garis besar, skema algoritma Idris dapat dilihat pada gambar 2.4.


(19)

Start

Input Kata

Apakah kata ada di kamus umum?

Apakah kata ada di kamus lokal?

Apakah kata sesuai dengan aturan prefiks?

Cek apakah pernah dicek dikamus 3 kali?

TIDAK TIDAK Kata tersebut adalah kata dasar STOP YA Tentukan pola prefiks & huruf pertama dari

stem word

Apakah memenuhi dengan rule 2?

Apakah memenuhi rule 2

nomer 4?

TIDAK

Terapkan rule 2 (1/2/3) YA YA Stem word +F Apakah new

stem word di kamus? Stem word +P TIDAK Hapus Prefiks TIDAK

Apakah kata ada dikamus? Apakah sesuai aturan sufiks? YA Hapus sufiks TIDAK Bukan merupakan kata dasar YA YA ADA TIDAK TIDAK TIDAK YA YA


(20)

Berdasarkan skema pada gambar 2.4 dapat dijelaskan bahwa skema dari Algoritma Idris adalah :

(1) Cek kata yang dicari dalam kamus umum. Jika kata tersebut ada dalam kamus umum,maka kata tersebut merupakan kata akar (kata dasar) dan keluar dari algoritma. Jika tidak ada, maka dilanjutkan ke langkah (2).

(2) Cek kata yang dicari dalam kamus khusus. Jika kata tersebut ada dalam kamus khusus, maka kata tersebut merupakan kata akar (kata dasar) dan keluar dari algoritma. Jika tidak ada, maka dilanjutkan ke langkah (3).

(3) Cek kata pada aturan prefiks. Jika kata tersebut cocok dengan aturan prefiks, cek pola dari prefiks tersebut dan huruf pertama dari kata yang akan di-stem. Jika tidak cocok, makan dilanjutkan ke langkah (4).

(4) Jika pola prefiks pada kata cocok dengan Rules 2, maka ubah kata tersebut sesuai dengan rule. Jika tidak cocok, maka hilangkan prefiks dan lanjutkan ke langkah (7).

(5) Cek prefiks dari kata tersebut, cocokkan polanya pada rules 2. Jika cocok dengan keempat rule tersebut, lalu cek kata yang telah di-stem pada kamus dan lanjutkan ke langkah (6). Jika tidak cocok, maka hilangkan prefiks dan lanjutkan ke langkah (7).

(6) Cek prefiks dari kata tersebut, cocokkan polanya pada rules 2. Jika cocok dengan keempat rule tersebut, lalu cek kata yang telah di-stem pada kamus dan lanjutkan ke langkah (6). Jika tidak cocok, maka hilangkan prefiks dan lanjutkan ke langkah (7). Jika kata tersebut tidak ada pada kamus, maka kembali ke langkah (5). Jika cocok, maka hilangkan prefiks dan lanjutkan ke langkah (7).

(7) Cek kata telah cocok pada kamus, lalu kata tersebut merupakan kata dasar, lalu keluar dari algoritma. Jika tidak cocok, maka lanjutkan ke langkah (8).

(8) Cek kata pada aturan suffiks. Jika cocok dengan aturan tersebut, maka hilangkan suffiks dan lanjutkan ke langkah (1). Jika tidak cocok, lanjutkan juga ke langkah (1).


(21)

Rule-rule yang digunakan pada algortima Idris dapat dilihat pada tabel 2.6 berikut : Tabel 2.6 Tabel Rule Algoritma Idris

Kelas Affiks Affixes Contoh kata

Prefiks

di- dirantau

ke- kemana

ber- berlari

men- mencari

ter- terdapat

pen- pendapat

per- pertanda

Suffiks

-an jalanan

-i jalani

-kan jalankan

-nya punyanya

-lah apalah

-kah inikah

Prefiks - Suffiks

ber – an bertaburan

ber – kan berdasarkan

di – i dijauhi

ke – an kedatangan

men – kan mendengarkan

men – i mendapati

memper – i mempertanyai

memper – kan memperdengarkan

per – an perdagangan

se – nya seharusnya

Infiks el telapak


(22)

er serabut

in kinerja

Langkah-langkah yang dilakukan oleh algoritma Idris adalah :

(1) a. Kata yang belum di-stemming dicari pada kamus umum atau KBBI. Jika kata itu langsung ditemukan, berarti kata tersebut adalah kata dasar. Kata tersebut dikembalikan dan algoritma dihentikan.

b. Kata yang belum di-stemming dicari pada kamus lokal. Jika kata itu langsung ditemukan, berarti kata tersebut adalah kata dasar. Kata tersebut dikembalikan dan algoritma dihentikan.

(2) Derivational prefix kemudian dihilangkan. Langkah ini terus dilakukan sampai tidak ada lagi derivational prefix. Jika tidak ada lagi, maka lanjutkan ke langkah berikutnya. Untuk beberapa kombinasi imbuhan, dilakuan penghilangan prefiks terlebih dahulu. Yaitu pada kombinasi imbuhan “berlah”, “ber-an”, “men-i”, “di-i”, “pe-i”, “ter-i”.

(3) Hilangkan Inflectional suffix terlebih dahulu. Jika hal ini berhasil dan suffiks adalah partikel (“lah” dan ”kah”), langkah ini dilakukan lagi untuk menghilangkan inflectional possessive pronoun suffix (“ku”, “mu” atau ”nya”). (4) Derivational suffix kemudian dihilangkan. Langkah ini terus dilakukan sampai tidak ada lagi derivational suffix. Jika tidak ada lagi, maka lanjutkan ke langkah berikutnya.

(5) Setelah setiap penghilangan imbuhan dilakukan, maka lakukan pengecekan menggunakan kamus. Jika kata ditemukan, maka algoritma berhenti dan tidak perlu dilakukan pengecekan terhadap imbuhan lainnya. Jika sampai selesai penghilangan imbuhan masih belum menemukan kata dasar, maka dilakukan recoding.

(6) Jika semua langkah sudah dilakukan termasuk recoding dan tidak juga ditemukan dalam kamus, maka algoritma ini akan mengembalikan kata yang


(23)

2.4.3 Algoritma Enhanced Confix Stripping (ECS) Stemmer

Stemming dapat dimanfaatkan untuk berbagai sistem yang membutuhkan term preprocessing sebagai awal prosesnya. Perkembangan stemming bermula pada algortima Porter Stemmer tahun 1980, lalu Algoritma Nazief-Adriani tahun 1996, Confix Stripping Stemmer tahun 2007 dan terakhir Enhanced Confix Stripping Stemmer tahun 2008. Algoritma Enhanced Confix Stripping Stemmer dikembangkan oleh Putu Adhi Kerta Mahendra pada tahun 2008 sebagai hasil evaluasi penelitian sebelumnya, yaitu memperbaiki kekurangan pada algoritma Confix Stripping Stemmer. Perbaikan dilakukan dengan menambah dan memodifikasi tabel aturan pemenggalan, lalu menambah fungsionalitas pengembalian akhiran untuk mengantisipasi kesalahan pemenggalan yang seharusnya tidak dilakukan. Aturan morfologi Bahasa Indonesia mengelompokan imbuhan menjadi beberapa kategori sebagai berikut[5]:

1. Inflection Suffixes (IS), yaitu kelompok-kelompok akhiran yang tidak mengubah kata dasar. Kelompok akhiran ini dapat dibagi lagi menjadi 2, yaitu :

a. Particle (P), atau partikel, diantaranya “-lah”, “-kah”, “-tah” dan “-pun”. b. Possessive Pronoun (PP), atau akhiran yang menambahkan arti sebagai kepunyaan, diantaranya “-ku”, “-mu” dan “-nya”.

2. Derivation Suffixes (DS), yaitu kumpulan akhiran yang secara langsung ditambahkan pada kata dasar, diantaranya “-i”, “-kan”, dan “-an”.

3. Derivation Prefixes (DP), yaitu kumpulan awalan yang dapat langsung diberikan pada kata dasar murni, atau pada kata dasar yang sudah mendapatkan penambahan sampai dengan 2 awalan. Berdasarkan perubahan bentuknya awalan dibagi menjadi 2 :

a. Awalan yang bermorfologi, diantaranya “me-”, “be-”, “pe-”, dan “te-” b. Awalan yang tidak bermorfologi , diantaranya “di-”, “ke-” dan “se-”.

Gabungan awalan dan akhiran menjadi imbuhan membentuk kata dasar menjadi kata baru yang memiliki makna berbeda dari kata dasar sebelumnya, tetapi tidak semua kombinasi diperbolehkan. Kombinasi yang tidak diperbolehkan diantaranya “be


(24)

-i”,”di- -an”,”ke- -i”, “ke- -kan”, “me- -an”, “se- -i”, “se- -kan”, dan “te- -an”[5]. Kombinasi terlarang menyebabkan kata dasar menjadi kata baru yang tidak baku. Dengan model kata bahasa Indonesia, aturan-aturan dasar morfologi pada bahasa Indonesia serta pengklasifikasian imbuhan-imbuhan seperti di atas, maka bentuk kata berimbuhan dalam bahasa Indonesia dapat dimodelkan sebagai berikut :

[ DP+ [ DP+ [ DP+] ] ] Kata Dasar [ [+DS] [+PP] [+P] ]

Berikut adalah tahapan algoritma Enhanced Confix Stripping Stemmer yang dapat dilihat pada gambar 2.5.


(25)

Start

Term dari doc uji

Check corpus

Tidak ada

Pemotongan inflection sufiks

(P & PP)

Term tanpa P&PP Pemotongan derivation sufiks Term tanpa DS Check corpus Kembalikan derivation sufiks Term tanpa P&PP Pemotongan derivetion prefiks Term tanpa DP Check corpus Pemotongan inflection sufiks (P&PP) Term tanpa P&PP Check corpus Kata tak terdeteksi

Kata dasar (kata terdeteksi & tak terdeteksi) Finish Tidak ada Pemotongan derivetion prefiks Term tanpa DP Check corpus Pemotongan derivation sufiks Check corpus Kembalikan semua imbuhan

Term awal

Kata terdeteksi Tidak ada ada ada ada ada Tidak ada Tidak ada ada ada Tidak ada


(26)

Dari gambar 2.5 dapat diuraikan bahwa skema algortima Enhanced Confix Stripping Stemmer adalah sebagai berikut[5] :

1. Kata dalam dokumen uji sudah mengalami proses preprocessing dan berbentuk kata yang tunggal. Lakukan pengecekan terhadap kata, cari kata dalam kamus, jika kata ditemukan sebagai kata yang valid dalam kamus maka kata tesebut dianggap sudah berbentuk kata dasar, jika tidak maka lakukan langkah 2.

2. Hapus Inflection Suffixes . Akhiran yang pertama dihilangkan adalah akhiran yang termasuk Particles (P) yaitu “-lah”, “-kah”, “-tah” atau “-pun”. Setelah itu langkah selanjutnya penghilangan akhiran yang termasuk Possesive Pronouns (PP) yaitu “ -ku”, “-mu” atau “-nya”.

3. Hapus Derivation Suffixes (DS) yaitu “-i”, “-kan”, atau “-an”.

4. Hapus Derivation Prefixes (DP) yaitu “di-”, “ke-”, “se-”,“me-”, “be-”, “pe-”, atau “te-”. Langkah empat memiliki keadaan khusus dimana jika mengalami keadaan khusus maka langkah tambahan dilakukan. Langkah tambahan adalah sebagai berikut:

a. Langkah 4 akan terhenti jika penghilangan awalan sudah 3 kali. b. Proses penghilangan DP:

- Standar, penghilangan awalan yang tidak bermorfologi, awalan dapat langsung dihilangkan karena tidak merubah kata dasar.

- Kompleks, penghilangan awalan yang bermorfologi, awalan yang mengalami perubahan bentuk sesuai dengan huruf awal kata dasar, penghilangan awalan sesuai dengan tabel aturan pemenggalan imbuhan.

c. Cek kombinasi terlarang. Jika kata memiliki kombinasi terlarang maka proses stemming berhenti dan kata dikelompokkan menjadi kata tak terdeteksi karena kata tersebut tidak baku.

d. Cari kata dalam kamus, apabila ditemukan maka proses dihentikan dengan status kata sudah ditemukan, apabila tidak ditemukan maka langkah 4 diulang kembali


(27)

sebanyak 3 kali. Jika proses berhenti tetapi kata belum ditemukan maka dilanjutkan pada langkah 5.

5. Lakukan Recoding, proses mengacu pada tabel aturan pemenggalan imbuhan. Recoding adalah penambahan karakter di awal kata yang dipenggal, karakter recoding adalah karakter serelah tanda hubung (“-“) atau bentuk lain setelah tanda (“ | “). Sebagai contoh kata “menunda” setelah dipenggal menjadi “nunda”, karena kata “nunda” tidak valid maka direcoding sehingga kata “nunda” menjadi “tunda” dan valid ketika dicek pada kamus kata dasar.

6. Menambahkan suatu fungsionalitas tambahan untuk mengatasi kesalahan pemenggalan akhiran yang seharusnya tidak dilakukan. Fungsionalitas ini disebut loop Pengembalian Akhiran. Fungsionalitas Loop Pengembalian Akhiran dideskripsikan sebagai berikut:

a. Kembalikan seluruh awalan yang telah dihilangkan sebelumnya, sehingga menghasilkan model kata seperti berikut:

[DP+[DP+[DP]]] + Kata Dasar

Pemenggalan awalan dilanjutkan dengan proses pencarian di kamus kemudian dilakukan pada kata yang telah dikembalikan menjadi model tersebut.

b. Kembalikan akhiran sesuai dengan urutan model pada bahasa Indonesia. Ini berarti bahwa pengembalian dimulai dari DS (“-i”, “- kan”, “-an”), lalu PP (“-ku”, “-mu”, “-nya”), dan terakhir adalah P (“- lah”, “-kah”, “-tah”, “-pun”). Khusus untuk akhiran “-kan”, pengembalian pertama dimulai dengan “k”, baru kemudian dilanjutkan dengan “an”.

c. Lakukan pengecekan di kamus kata dasar. Apabila ditemukan, proses dihentikan. Apabila gagal, maka lakukan proses pemenggalan awalan berdasarkan tabel aturan pemenggalan imbuhan.


(28)

e. Apabila semua langkah diatas telah dilakukan lalu kata tidak ditemukan setelah pengecekan pada kamus, maka kata dikembalikan dengan semua imbuhan dan kata dimasukkan dalam kelompok kata tak terdeteksi.

7. Jika kata tidak ditemukan setelah semua langkah dilakukan maka kata tersebut dikelompokan pada kata tak terdeteksi. Pada tabel 2.6 dapat dilihat aturan ECS.

Tabel 2.7 Aturan Pemenggalan Awalan Stemming ECS Stemmer [5]

Aturan Format kata Pemenggalan

1. berV... ber-V... | be-rV...

2. berCAP... ber-CAP... dimana C!=”r”& P!=”er”

3. berCAerV... ber-CaerV... dimana C!=”r”

4. Beajar bel-ajar

5. beClerC2... be-C!erV... dimana C1!={“r”|”1”}

6. terV... ter-V... | te-rV...

7. terCerV... ter-CerV.. dimana C!=”r”

8. terCP... terCP... dimana C!=”r” dan P!=”er”

9. terC!erC2... te-ClerC2... dimana C1!=”r”

10. me{1|r|w|y|}V... me-{1|r|w|y|}V...

11. mem{b|f|v}... mem-{b|f|v}...

12. mempe... mem-pe...

13. mem{rV|V}... me-m{rV|V}... | me-p{rV|V}...

14. men{c|d|j|t|z}... men-{c|d|j|t|z}...

15. menV... me-nV... | me-tV...

16. meng{g|h|q|k}... meng-{g|h|q|k}...

17. mengV... me-ngV.. | meng-V... | meng-kV... |

mengV-…jika v=”e”

18. menyV... me-nyV... | meny-sV...

19. mempA... mem-pA dimana A!=”e”

20. pe{w|y}V... pe-{w|y}V...

21. perV... per-V... | pe-rV...


(29)

23. perCAerV... per-CAerV... dimana C!=”r”

24. pem{b|f|v}... pem-{b|f|v}...

25. pem{rV|V}... pe-m{rV|V}... | pe-p{rV|V}...

26. pen{c|d|j|z}... pen-{c|d|j|z}...

27. penV... pen-V... | pe-tV...

28. pengC... peng-C...

29. pengV... Pe-ngV..| peng-V…| peng-kV…| pengV

-…jika V=”e”

30 penyV... pe-nyV...| peny-sV...

31. pelV... pe-1V... kecuali “pelajar” yang menghasilkan

“ajar”

32. peCerV... peC-erV... dimana C!={r|w|y|1|m|n}

33. peCP... pe-CP... dimana C!={r|w|y|1|m|n} dan P!=”er”

34. terC1erC2.. ter-C1erC2.. dimana C1!=”r”

35. peC1erC2.. pe-C1erC2.. dimana C!={r|w|y|1|m|n}

36. CerV... CerV...| CV...

37. CelV... CelV...| CV...

38. CemV... CemV...|CV...

Keterangan dari tabel 2.7 adalah : Huruf “C” menandakan huruf konsonan Huruf “V” menandakan huruf vokal Huruf “A” menandakan huruf apa saja

Huruf “P” menandakan fragmen kata yang pendek seperti “er” 2.5 Kekuatan Stemmer

Untuk mengukur performa kompresinya yang digunakan adalah nilai icf (index compression factor) dan persentase. Icf merepresentasikan tingkat dimana sebuah koleksi kata direduksi oleh stemming. Persentase adalah ukuran dari keberhasilan stem kata dalam bentuk % . Jika conflation class ada 10000 kata yang berbeda dihasilkan 2500 distinct stem, maka icf = 10000-2500/10000 = 0,75 (75%). Semakin rendah


(30)

nilai-nilai icf mengindikasikan sebuah stemmer yang bagus dalam melakukan kompresi term yang akan dimasukkan ke dalam index database[10].

Berikut rumus matematisnya[10] :

� � � =�1�1 * 100

�� =�−� Keterangan :

N = menunjukkan jumlah kata sebelum dilakukan stemming. S = menunjukkan jumlah kata setelah dilakukan stemming.

N1= menunjukkan jumlah huruf pada saat akan dilakukan stemming. S1 = menunjukkan jumlah kata pada saat akan dilakukan stemming. 2.6 UML (Unified Modeling Language)

Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.

UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dam mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat, ini merupakan standar


(31)

terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.

Dalam UML terdapat banyak diagram yang digunakan untuk melakukan pemodelan, disini penulis hanya menjelaskan beberapa diagram sesuai yang digunakan pada tahap perancangan. Berikut diagram-diagram yang ada pada UML, antara lain : a. Use Case Diagram

Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi.

Use case merepresentasikan operasi-operasi yang dilakukan oleh actor. Use case digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya. Actor yang melakukan operasi dihubungkan dengan garis lurus ke use case. Berikut contoh use case diagram :

Gambar 2.6 Contoh Use Case Diagram

Pada gambar 2.6 tersebut administrator merupakan actor, bisa dibilang user atau pengguna sistem. Kemudian garis tersebut merupakan garis asosiasi yang menghubungkan user dengan fungsional sistem. Gambar yang membentuk seperti persegi yang bertuliskan sistem disudut kanan atas merupakan sistem yang dimiliki dan yang berbentuk oval bertuliskan “membuat blog baru” merupakan use case atau fungsional atau menu yang terdapat pada sistem.

b. Activity Diagram

System

Membuat blog baru Administrator


(32)

Diagram aktivitas atau dalam bahasa inggris Activity Diagram adalah representasi grafis dari seluruh tahapan alur kerja. Diagram ini mengandung aktivitas, pilihan tindakan, perulangan dan hasil dari aktivitas tersebut.

c. Class Diagram

Class Diagram adalah diagram yang menunjukan kelas - kelas yang ada dari sebuah sistem dan hubungannya secara logika. Class diagram menggambarkan struktur statis dari sebuah sistem. Karena itu class diagram merupakan tulang punggung atau kekuatan dasar dari hampir setiap metode berorientasi objek termasuk UML.

d. Sequence Diagram

Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek – obyek yang melakukan suatu tugas atau aksi tertentu. Obyek – obyek tersebut kemudian diurutkan dari kiri ke kanan, aktor yang menginisiasi interaksi biasanya diletakkan dipaling kiri dari diagram. Pada diagram ini, dimensi vertikal merepresentasikan waktu. Bagian paling atas dari diagram menjadi titik awal dan waktu berjalan ke bawah sampai dengan bagian dasar dari diagram. Garis vertikal disebut lifeline, dilekatkan pada setiap obyek atau aktor. Kemudian lifeline tersebut digambarkan menjadi kotak ketika obyek melakukan suatu operasi , kotak tersebut disebut activation box. Obyek dikatakan mempunyai live activation pada saat tersebut. Pesan yang dipertukarkan antar obyek digambarkan sebagai sebuah anak panah antara activation box pengirim dan penerima. Kemudian diatasnya diberikan label pesan[13].

2.7 C# (C Sharp)

C# (dibaca “See-Sharp”) adalah bahasa pemrograman baru yang diciptakan oleh Microsoft (dikembangkan dibawah kepemimpinan Anders Hejlsberg yang notabene juga telah menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo C++ dan Borland Delphi). Bahasa C# juga telah di standarisasi secara internasional oleh ECMA. Seperti halnya bahasa pemrograman yang lain, C# bisa


(33)

digunakan untuk membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis windows (desktop) dan aplikasi berbasis web serta aplikasi berbasis web services[12]. 2.8 Microsoft Visual Studio

Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe[12].

Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas .NET Framework). Selain itu, Visual Studio juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di atas .NET Compact Framework).

Untuk membuat suatu program aplikasi pada visual studio, maka diperlukan suatu struktur aplikasi atau komponen yang digunakan, berikut beberapa aplikasi yang penulis gunakan pada visual studio antara lain :

a. Toolbar

Terdiri atas beberapa komponen yang digunakan untuk membuat objek pada form dan dapat mempercepat pengaksesan perintah-perintah yang ada dalam pemrograman, berikut gambar toolbar visual studio seperti gambar 2.7 dibawah ini.


(34)

b. Toolbox

Toolbox Adalah sebuah jendela yang berisi tombol kontrol yang akan user gunakan untuk mendesain atau membangun sebuah form atau report. Toolbox terdiri atas beberapa tombol untuk mengendalikan tampilan, berikut gambar toolbox pada visual studio seperti gambar 2.8 dibawah ini.

Gambar 2.8 Tampilan Toolbox Visual Studio

c. Jendela Properties Jendela properties adalah jendela yang berfungsi sebagai tempat mengedit properti pada suatu objek yang terpilih pada saat mendesain atau membangun aplikasi bagi user. Berikut gambar jendela properties, seperti pada gambar 2.9 dibawah ini.


(35)

d. Form

Form merupakan tempat untuk mendesain atau membangun sebuah program, didalamnya bisa ditanamkan sebuah koding agar form tersebut dapat menjalankan program yang telah didesain oleh user. Berikut gambar form, seperti gambar 2.10 dibawah ini.

Gambar 2.10 Tampilan Form

2.9 MySQL

MySQL merupakan software yang tergolong sebagai DBMS (Database Management System) yang bersifat open source. Open source menyatakan bahwa software ini dilengkapi dengan source code (kode yang dipakai untuk membuat MySQL), selain tentu saja bentuk executable-nya atau kode yang dapat dijalankan secara langsung dalam sistem operasi[10].

Sebagai software DBMS, MySQL memiliki sejumlah fitur seperti : a. Multiplatform

MySQL tersedia pada beberapa platform yaitu Windows, Linux, Unix, dan lain-lain.

b. Andal, cepat, dan mudah digunakan

MySQL termasuk sebagai database server yang andal, dapat menangani database yang besar dengan kecepatan tinggi, mendukung banyak sekali fungsi untuk


(36)

mengakses database, dan sekaligus mudah digunakan. MySQL dapat menangani sebuah tabel yang berukuran dalam terabyte (1 terabyte = 1024 gigabyte).

c. Jaminan keamanan akses

MySQL mendukung pengamanan database dengan berbagai kriteria pengaksesan. Sebagai gambaran, dimungkinkan untuk mengatur user tertentu agar bias mengkases data yang bersifat rahasia, sedangkan user lain tidak boleh. MySQL juga mendukung konektivitas ke berbagai software, ODBC (Open Database Connectivity), JDBC (Java Database Connectivity), PHP dan lain sebagainya. d. Dukungan SQL

MySQL mendukung perintah SQL (Structured Query Language). Sebagaimana diketahui, SQL merupakan standar dalam pengaksesan database relasional. Pengetahuan akan SQL akan memudahkan siapa pun untuk menggunakan MySQL.


(37)

37

Beberapa hal dari penjabaran latar belakang yang telah diuraikan pada bab 1, maka didapat analisis masalah yang terjadi dalam penelitian ini adalah sebagai berikut. Dengan semakin banyaknya dokumen teks yang akan diakses serta meningkatnya pencarian informasi, pengguna semakin kesulitan untuk menemukan dokumen yang relevan sesuai dnegan query yang diinputkan serta adanya kebutuhan untuk mendapatkan metode stemming yang memiliki performansi paling baik untuk menemukan kata dasar bahasa Indonesia antara Algoritma Idris dan Algoritma ECS Stemmer.

3.2 Analisis Sistem

Analisis sistem didefinisikan sebagai penguraian dari sistem utama ke dalam sub – sub sistem dengan tujuan untuk mengidentifikasi permasalahan – permasalahan yang ada dan kebutuhan – kebutuhan yang diperlukan agar dapat diciptakan suatu simulator yang baik. Dalam mengimplementasikan algoritma Idris dan Algoritma Enhanced Confix Stripping Stemmer akan dibangun sebuah simulator dengan gambaran sistem yang akan tertera pada gambar 3.1.

Simulator yang akan dibangun memiliki 3 (tiga) tahap yaitu tokenizing, filtering dan stemming. Untuk penjelasannya setiap tahapan dapat dilihat sebagi berikut ini:

1. Tahap pertama adalah tahap dimana akan dilakukan penghapusan tanda baca, angka, serta pengubahan huruf besar menjadi huruf kecil. Kemudian akan dilakukan pemecah kalimat menjadi kata – kata, karena tanda baca sudah dihilangkan sebelumnya maka pemisahan kata – kata dalam kalimat ini dilakukan berdasarkan adanya spasi.

2. Tahapan yang kedua adalah melakukan penghapusan kata – kata umum sesuai dengan kamus stopword, misalnya dalam, dan, karena, mana, untuk dan lainnya.


(38)

3. Tahapan ketiga yaitu proses stemming merupakan pengelompokan kata secara morfologis sesuai dengan kelompoknya. Pada tahapan ini akan dilakukan perubahan kata – kata yang berimbuhan menjadi kata dasar dengan cara menghilangkan imbuhan depan, sisipan maupun akhiran. Pada tahapan stemming akan dilakukan dengan dua algoritma yaitu algoritma Idris dan algoritma Enhanced Confix Stripping Stemmer. Hasil stemming merupakan kata dasar dari dua algoritma tersebut yang hasilnya akan dibandingkan guna mengetahui algoritma mana yang paling baik performansinya untuk dokumen teks bahasa Indonesia.

Sistem

1

Break into token

3

Dokumen/Kata

2

Stop List

Hasil kata dasar

Stemming

Algoritma ECS Stemmer

Hasil kata dasar Algoritma Idris

Gambar 3.1 Gambaran Umum Sistem 3.3 Analisis Data Masukkan

Data yang digunakan dalam stemming sebagi data masukkan merupakan kata dasar yang dapat berbentuk kalimat atau paragraf. Jumlah dokumen yang diinputkan minimal memiliki 100 kata, tiap kata tersebut akan diolah untuk mendapatkan hasil akhir berupa kata dasar.

Dalam penelitian tugas akhir ini data pengolahan kata yang akan digunakan untuk analisis data adalah sebagai berikut :

1. Data masukkan berupa sebuah kata yang dapat berdiri sendiri yang diinputkan langsung kedalam simulator.

2. Data masukkan dapat berupa sebuah kalimat yang terdiri dari beberapa kata, atau sebuah paragraf yang terdiri dari beberapa kalimat.


(39)

3. Kalimat merupakan sebuah gabungan dari kata-kata yang berawalan huruf besar dan diakhir kalimat diakhiri dengan tanda titik (.).

4. Data dari teks atau dokumen yang diinputkan berekstensi .txt.

5. Kemudian data yang selain kata pada dokumen yang diinputkan akan dihilangkan dengan menggunakan tahapan tokenizing, filtering dan kamus sebagai pembanding kata yang akan distemming.

3.4 Analisis Metode

Analisis metode menjelaskan bagaimana stemming itu terjadi dan menjelaskan tentang tahap-tahap yang dilakukan untuk melakukan proses stemming. Secara umum sistem ini terdiri dari beberapa proses, proses – proses tersebut adalah sebagai berikut :

1. Proses Tokenizing. 2. Proses Filtering.

3. Proses Stemming yaitu terdiri dari stemming dengan algoritma Idris dan stemming algoritma ECS Stemmer.

Tahapan dari analisis metode dapat dilihat pada gambar 3.2 berikut.

Tokenizing Filtering Stemming

Stemming dengan Algoritma Idris

Stemming dengan Algoritma ECS

Stemmer

Gambar 3.2 Tahapan analisis metode dalam stemming

Berikut pemaparan yang lebih jelas dari tahapan-tahapan stemming pada gambar 3.2 sebagai berikut :

1. Proses Tokenizing

Dalam proses dilakukan penghapusan terhadap tanda baca, angka serta pengubahan huruf besar menjadi huruf kecil. Kemudian memecah dokumen menjadi


(40)

token-token dengan memotongnya menjadi term (kata). Berikut adalah langkah-langkah untuk melakukan tokenizing pada sebuah kalimat dapat dilihat pada gambar 3.3.

Start

Menghilangkan tanda baca dan

angka

Ubah huruf kapital ke huruf kecil

Pisahkan kalimat atau paragraf ke

bentuk kata

Hasil tokenizing

Input data

1

Gambar 3.3 FlowchartTokenizing

Contoh kalimat yang akan melewati tahapan tokenizing :

“Sebuah bunyi letusan keras yang menggemakan memecahkan keheningan.” Penjelasan mengenai proses tokenizing dapat dilihat pada tabel 3.1.

a. “Sebuah bunyi letusan keras yang menggemakan memecahkan keheningan.”


(41)

Tabel 3.1 Proses Tokenizing

c. |sebuah|bunyi|letusan|keras|yang|menggemakan|memecahkan|keheningan| Keterangan dari tabel 3.1 diatas adalah sebagai berikut :

a. Pada tahap ini tokenizing akan menghilangkan tanda baca, angka dan merubah huruf kapital menjadi huruf kecil.

b. Setelah itu proses terakhir dari tokenizing adalah memecah kalimat menjadi term (kata).

2. Proses Filtering

Proses filtering merupakan proses mengambil kata-kata penting yang terdapat dari hasil tokenizing. Untuk melakukan filtering bisa menggunakan stoplist atau word list atau stopword. Data hasil tokenizing akan dibandingkan dengan kamus. Jika tidak terdapat terdapat dalam kamus maka kata tersebut akan dihapus. Kata-kata yang tersisa merupakan Kata-kata yang dianggap penting. flowchart dari proses filtering dapat dilihat pada gambar 3.4 dibawah ini.

Hilangkan kalimat-kalimat yang ada di

list stopword

Hasil tokenizing

Cek daftar

stopword

Hasil Stopword

ya

tidak 1

2


(42)

Untuk lebih jelasnya tahapan proses filtering adalah sebagai berikut :

a. Kata hasil proses tokenizing dibandingkan dengan tabel stopword. Pada tabel stopword peneliti memilih 57 kata yang sering muncul dan dianggap tidak penting, stopword ini akan dimasukkan ke program dalam bentuk class.

b. Jika data hasil tokenizing sama dengan kata di tabel stopword maka akan dihapus.

c. Jika tidak sama dengan tabel stopword maka kata tersebut akan disimpan. Berikut adalah contoh dari proses filtering:

Daftar stopword : yang, akan, pada, itu. Contoh langkah dari filtering dapat dilihat pada tabel 3.2 berikut.

Tabel 3.2 Proses Filtering

a.|sebuah|bunyi|letusan|keras|yang|menggemakan|memecahkan|keheningan

b.|sebuah|bunyi|letusan|keras|menggemakan|memecahkan|keheningan|

Keterangan dari tabel 3.2 diatas adalah sebagai berikut :

a. Pada baris a merupakan kalimat yang telah melewati tahapan tokenizing. b. Selanjutnya dilakukan filtering yaitu menghapus kalimat – kalimat umum

atau disebut stopword. 3. Proses Stemming

Proses stemming merupakan pengelolaan kata hasil filtering menjadi kata dasar yaitu dengan cara menghilangkan imbuhan yang diantaranya adalah ”di”, “ke”, “me”, “meng”, “-an”, “-kan” untuk lebih jelasnya tahapan dari proses stemming adalah sebagai berikut:

a. Data hasil filtering diperiksa apakah mengandung imbuhan atau tidak. Jika terdapat imbuhan maka akan dilakukan pembuangan imbuhan,terus diulang sampai kata tersebut tidak mengandung imbuhan.

b. Jika sudah tidak mengandung imbuhan maka akan disimpan. Contoh dari proses stemming dapat dilihat pada tabel 3.3 berikut.

Tabel 3.3 Kata yang siap melewati proses stemming


(43)

Adapun flowchart dari proses stemming dapat dilihat pada gambar 3.5.

Lakukan pengecekan kamus

Perbandingan

Hapus derivatonal prefiks Hilangkan inflection suffix Hapus Derivational Suffiks Kata Dasar Idris Hapus inflection suffix Hapus Derivstionsl suffiks Hapus derivationall prefiks Kata Dasar ECS Stemmer ya ya Cek kamus tidak tidak Cek kamus tidak Cek kamus tidak Cek kamus ya Hasil Filtering ya End 2

Gambar 3.5 Flowchart Stemming

3.4.1 Stemming dengan Algoritma Idris

Setelah melalui tahapan tokenizing dan filtering langkah selanjutnya adalah proses stemming. Berikut proses stemming dengan algoritma Idris.


(44)

Melanjutkan proses stemming yang dilakukan seperti tabel 3.3 diatas maka selanjutnya adalah melakukan pengecekan atau pencarian kedalam kamus umum. Kata – kata yang valid dengan kamus umum akan dikeluarkan dari algoritma, karena dianggap sudah merupakan kata dasar. Maka kata – kata tersebut akan menjadi seperti tabel 3.4 dibawah ini.

Tabel 3.4 Mengeluarkan kata dasar

a.|sebuah|bunyi|letusan|keras|menggemakan|memecahkan|keheningan| b.|sebuah|letusan|menggemakan|memecahkan|keheningan| b) Langkah 2

Langkah berikutnya adalah melakukan cek kata pada aturan prefiks yaitu menghilangkan imbuhan – imbuhan seperti di-, men -, ber-. Maka kata – kata tersebut akan menjadi seperti tabel 3.5 dibawah ini.

Tabel 3.5 Menghapus awalan (prefiks) b.|sebuah|letusan|menggemakan|memecahkan|keheningan|

c.|buah|letusan|gemakan|fecahkan|heningan| c) Langkah 3

Langkah selanjutnya mengecek dikamus apabila sudah sesuai dengan kamus maka keluarkan dari proses, selanjutnya adalah menghapus suffiks (akhiran) yaitu menghilangkan akhiran seperti –an, -nya, -lah, -kah dan lainnya. Maka kata akan tampil seperti tabel 3.6 dibawah ini.

Tabel 3.6 Menghapus akhiran (suffiks) c.|buah|letusan|gemakan|ecahkan|heningan|

c. |letus|gema|fecah|hening| d) Langkah 4

Langkah berikutnya adalah melakukan pengecekan dikamus apabila cocok maka keluarkan dari kamus. Dalam contoh ini terdapat contoh kata rule 2 yaitu “memecahkan” dimana setelah pemotongan imbuhan mem- akan ditambahkan huruf “f” atau “p”, yang pertama dilakukan adalah menambahkan huruf “f” dan akan dilakukan pengecekan dengan kamus apa bila cocok maka sudah benar


(45)

penambahan hurufnya bila tidak langkah selanjutnya adalah mengganti dengan huruf “p”. Setelah dilakukan pengecekan dikamus tidak terdapat kata dasar “fecah” maka akan diganti dengan “pecah” dan terdapat dalam kamus maka kata tersebut merupakan kata dasar. Apabila semua kata sudah valid dengan kamus umum maka kata – kata tersebut merupakan kata dasar dan telah berhasil di stemming dengan algoritma Idris akan seperti tabel 3.7 dibawah ini.

Tabel 3.7 Hasil stemming dengan menggunakan Algoritma Idris a. |letus|gema|fecah|hening|

b. |fecah| c. |pecah|

d.|buah|bunyi|letus|keras|gema|pecah|hening| Perhitungan kekuatan stemmer ICF = (N-S)/N = (8-7)/8 = 0,125 3.4.2 Stemming dengan Algoritma Enhanced Confix Stripping Stemmer

Setelah melalui tahapan tokenizing dan filtering langkah selanjutnya adalah proses stemming. Berikut proses stemming dengan algoritma Enhanced Confix Stripping Stemmer.

a. Langkah 1

Melanjutkan proses stemming yang dilakukan seperti tabel 3.3 diatas maka selanjutnya adalah melakukan pengecekan atau pencarian kedalam kamus umum. Kata – kata yang valid dengan kamus umum akan dikeluarkan dari algoritma, karena dianggap sudah merupakan kata dasar. Maka kata – kata tersebut akan menjadi seperti tabel 3.8 dibawah ini.

Tabel 3.8 Mengeluarkan kata dasar

a.|sebuah|bunyi|letusan|keras|menggemakan|memecahkan|keheningan| b.|sebuah|letusan|menggemakan|memecahkan|keheningan| b. Langkah 2

Jika masih terdapat kata – kata yang tidak sesuai bukan kata dasar langkah selanjutnya adalah hapus inflection suffixes yaitu akhiran pertama dalam kata yang termasuk particles dihilangkan seperti –lah, -kah, -tah, -pun. Setelah itu


(46)

menghilangkan akhiran yang termasuk possesive pronouns seperti –nya, -mu, -ku. Pada contoh kaliamt ini tidak terdapat particles maupun possesive pronoun. Maka kata-kata tersebut akan menjadi seperti tabel 3.9 dibawah ini.

Tabel 3.9 Menghapus akhiran(suffiks)

a.|sebuah|letusan|menggemakan|memecahkan|keheningan| c. Langkah 3

Dilakukan pengecekan apa bila sudah valid dengan kamus maka kata tersebut dikeluarkan dari algortima, bila masih terdapat kata – kata yang belum valid dengan kamus. Langkah selanjutnya dalah menghapus derivation suffixes yaitu ,-i,-kan, atau, -an. Selanjutnya dilakukan pengecekan didalam sebuah kamus apabila sudah sesuai dengan kamus maka akan dikeluarkan dari proses. Berikutnya hapus derivation prefixes yaitu di-, ke-, me-, atau pe-. Maka kata – kata tersebut akan menjadi seperti pada tabel 3.10 berikut.

Tabel 3.10 Menghapus awalan (prefiks) a.|sebuah|letusan|menggemakan|memecahkan|keheningan|

b.|sebuah|letus|menggema|memecah|kehening| b.|buah| gema|pecah|hening|

d. Langkah 4

Langkah selanjutnya adalah melakukan pengecekan terhadap kata dengan kamus dan kata tersebut valid maka proses dihentikan dan kata tersebut merupakan kata dasar dan telah berhasil di stemming dengan algortima Enhanced Confix Stripping Stemmer seperti pada tabel 3.11 dibawah ini. Tabel 3.11 Hasil stemming dengan algortima Enhanced Confix Stripping

Stemmer

Perhitungan kekuatan stemmer ICF = (N-S)/N = (8-7)/8 = 0,125 3.5 Spesifikasi Kebutuhan Perangkat Lunak

Spesifikasi kebutuhan perangkat lunak yang akan dibangun berdasarkan pada kebutuhan pengguna pada jurnal dan artikel yang ada. Spesifikasi kebutuhan


(47)

perangkat lunak akan dibagi ke dalam dua bagian, yaitu SKPL – F (Spesifikasi Kebutuhan Perangkat Lunak Fungsional) dan SKPL – NF (Spesifikasi Kebutuhan Perangkat Lunak Non Fungsional). Berikut ini adalah tabel dari spesifikasi kebutuhan perangkat lunak dalam penelitian ini dapat dilihat pada tabel 3.12 dibawah ini.

Tabel 3.12 Spesifikasi kebutuhan perangkat lunak fungsional

Kode Kebutuhan

SKPL – F001 Sistem harus dapat mengambil dokumen dari direktori komputer pengguna.

SKPL – F002 Sistem harus dapat memproses kata yang diinputkan SKPL – F003 Sistem harus dapat melakukan stemming kata dengan

Algoritma Idris.

SKPL – F004 Sistem harus dapat melakukan stemming kata dengan Algoritma ECS Stemmer.

SKPL – F005 Sistem harus dapat menambahkan dokumen. SKPL – F005 Sistem harus dapat menghapus dokumen.

Spesifikasi kebutuhan perangkat lunak non fungsional untuk perangkat lunak yang akan dibangun dapat dilihat pada tabel 3.13 berikut.

Tabel 3.13 Spesifikasi kebutuhan perangkat lunak non fungsional

Kode Kebutuhan

SKPL – NF001 Perangkat lunak yang dibangun berbasis desktop. SKPL – NF002 Prosessor yang digunakan minimal intel core i3. SKPL – NF003 Memori komputer yang tersedia minimal 2GB. SKPL – NF004 Sistem operasi yang digunakan minimal Win XP/7

SKPL – NF005 Pembangunan perangkat lunak menggunakan Microsoft Visual Studio 2012

3.6 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non fungsional dilakukan untuk mengetahui spesifikasi kebutuhan untuk simulator. Spesifikasi kebutuhan melibatkan komponen-komponen yang dibutuhkan simulator sampai dengan simulator diimplementasikan. Analisis ini juga menentukan spesifikasi masukan yang diperlukan simulator, proses yang dibutuhkan untuk mengolah masukan, dan


(48)

keluaran yang dihasilkan oleh simulator. Kebutuhan non fungsional meliputi analisis perangkat keras dan analisis perangkat lunak.

3.6.1 Kebutuhan Perangkat Keras

Perangkat keras merupakan bagian dari komputer yang menerima instruksi dari perangkat lunak untuk menjalankan instruksi agar dapat menjalankan suatu sistem didalamnya. Adapun minimum kebutuhan perangkat keras yang digunakan untuk membangun simulator ini adalah sebagai berikut.

a. Prosessor : Intel Core i3 @1.8 GHz b. Monitor : 14”

c. Harddisk : 160 GB d. VGA : 512 MB e. Memory : 2 GB f. Mouse

g. Keyboard

3.6.2 Kebutuhan Perangkat Lunak

Perangkat lunak merupakan bagian dari komputer yang memberikan instruksi kepada perangkat keras untuk menjalankan instruksi agar dapat menjalankan suatu sistem didalamnya. Adapun minimum kebutuhan perangkat lunak yang digunakan untuk membangun simulator ini adalah sebagai berikut.

a. Sistem Operasi : Windows XP/7 b. Microsoft Visual Studio 2010 c. WAMP Server

d. Notepad ++ e. MySQL

3.7 Analisis Kebutuhan Fungsional

Spesifikasi kebutuhan fungsional adalah spesifikasi tentang hal – hal yang akan dilakukan simulator ketika diimplementasikan. Analisis kebutuhan ini diperlukan untuk menentukan keluaran yang akan dihasilkan simulator, masukkan yang diperlukan simulator, lingkup proses yang digunakan untuk mengolah


(49)

masukan menjadi keluaran diantaranya Usecase diagram, diagram scenario, activity diagram, sequence diagram, collaboration diagram dan class diagram. 3.7.1 Usecase Diagram

Usecase diagram ini memperlihatkan pada kita hubungan antara aktor dengan usecase dalam simulator. Usecase diagram pada simulator yang akan dibangun dapat dilihat pada gambar 3.6 berikut.

Gambar 3.6 Usecase Diagram

3.7.1.1 Definisi Aktor

Bagian ini diisi dengan daftar aktor dan deksripsi role untuk aktor tersebut. Deksripsi role harus menjelaskan wewenang role tersebut dalam perangkat lunak. Bisa dibuat dalam bentuk tabel seperti pada tabel 3.14 dibawah ini:

Tabel 3.14 Definisi aktor

No Aktor Deskripsi

1 Pengguna Pengguna menembahkan dokumen, pengguna menambahkan kata secara manual, pengguna merefresh dokumen dan pengguna melakukan perbandingan hasil algoritma Idris dan algoritma Enhanced Confix Stripping Stemmer.

System

Pengguna

ambil dokumen

stemming dng Idris stemming dng ECS Stemmer

input kata hapus dokumen

<<extend>>

<<extend>> <<extend>>

<<extend>> <<extend>>


(50)

3.7.1.2 Definisi Usecase

Bagian ini diisi dengan daftar usecase dan deskripsi singkat mengenai usecase pada simulator yang akan dibangun seperti pada tabel 3.15 dibawah ini.

Tabel 3.15 Deskripsi usecase

No Usecase Deskripsi

1 Ambil dokumen Fungsionalitas yang digunakan pengguna untuk menambahkan dokumen kata didalam simulator. 2 Menginputkan kata Fungsionalitas yang digunakan pengguna untuk

menginputkan kata ke dalam simulator. 3 Stemming dengan

Idris

Fungsionalitas yang digunakan pengguna untuk melakukan pengujian kata guna perbandingan dengan menggunakan algortima Idris.

4 Stemming dengan ECS Stemmer

Fungsionalitas yang digunakan pengguna untuk melakukan pengujian kata guna perbandingan dengan menggunakan algortima ECS Stemmer. 5 Menghapus

dokumen

Fungsionalitas yang digunakan pengguna untuk menghapus dokumen kata yang sudah terdapat didalam simulator.

3.7.2 Diagram Skenario

Bagian ini diisi dengan skenario untuk setiap usecase pada rancangan yang menggambarkan urutan interaksi aktor dengan simulator seperti pada tabel 3.16, tabel 3.17, tabel 3.18, tabel 3.19 dan tabel 3.20 dibawah ini.

Tabel 3.16 Tambahdokumen

Use case Name Ambil dokumen

Related Requirements

Dokumen sudah tersedia dalam bentuk .txt atau .doc

Goal In Context Mengambil file berekstensi .txt atau .doc

Preconditions Menampilkan cari file

Succsessful End Condition

Teks berhasil diproses

Failed End

Condition

Teks tidak berhasil diproses

Primary Actors Pengguna

Trigger Aplikasi aktif


(51)

Tabel 3.17 Menginputkan kata

Pengguna Simulator

1 Pengguna memilih

dokumen yang akan diproses.

2

Mengambil dokumen

berekstensi .txt atau .doc

ke directori komputer

3 Setelah dokumen berhasil

dimasukkan maka

simulator akan

menghitung jumlah kata dan karakter dari dokumen

4 sistem mengaktifkan

pilihan untuk stemming

Extensions Step Branching Action

3 Memilih jenis dokumen yang tersedia

Use case Name Menginputkan kata

Related Requirements

Pengguna menginputkan kata secara manual

Goal In Context Kata berhasil diinputkan

Preconditions Masuk ke menu kata

Succsessful End Condition

Berhasil melakukan stemming

Failed End

Condition

Gagal melakukan stemming

Primary Actors Pengguna

Trigger Aplikasi aktif

Main Flow Step Action

Pengguna Simulator

1 Pengguna memasukkan

kata yang ingin

distemming

2 simulator menghitung

jumlah karakter dan

jumlah kata yang

dimasukkan

3 sistem mengaktifkan

pilihan untuk stemming


(52)

Tabel 3.18 Stemming dengan Idris

Use case Name Stemming denganIdris

Related Requirements

dokumen atau kata telah diinputkan

Goal In Context Dapat merubah suatu kata berimbuhan menjadi kata dasar sesuai

dengan kamus KBBI

Preconditions Kata dasar telah tersedia didatabase

Succsessful End Condition

Menampilkan kata – kata dasar

Failed End

Condition

tidak dapat menampilkan kata dasar

Primary Actors Pengguna

Trigger Aplikasi aktif

Main Flow Step Action

Pengguna Simulator

1 Pengguna memilih

menstemming dokumen/ kata dengan algoritma ECS

Stemmer

2 sistem memproses

dokumen/kata

dengan stemming

algoritma ECS

Stemmer.

4 Melakukan proses

preprocessing.

Melakukan proses

tokenizing

Melakukan proses

stemming

kemudian melakukan

perhitungan bobot

terhadap kata - kata Simulator

menampilkan hasil


(53)

Tabel 3.19 Stemming dengan ECS Stemmer

Use case Name Stemming dengan ECS Stemmer

Related Requirements

dokumen atau kata telah diinputkan

Goal In Context Dapat merubah suatu kata berimbuhan menjadi kata dasar sesuai

dengan kamus KBBI

Preconditions Kata dasar telah tersedia didatabase

Succsessful End Condition

Menampilkan kata – kata dasar

Failed End

Condition

tidak dapat menampilkan kata dasar

Primary Actors Pengguna

Trigger Aplikasi aktif

Main Flow Step Action

Pengguna Simulator

1 Pengguna memilih

menstemming dokumen/ kata dengan algoritma

ECS Stemmer

2 sistem memproses

dokumen/kata dengan

stemming algoritma

ECS Stemmer.

3 Melakukan proses

preprocessing.

Melakukan proses

tokenizing

Melakukan proses

stemming

kemudian melakukan

perhitungan bobot

terhadap kata - kata Simulator

menampilkan hasil


(54)

Tabel 3.20 Hapus Dokumen

3.7.3 Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan aliran kerja atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing).

Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Adapun diagram aktivitas pada simulator yang akan dibangun dapat dilihat pada gambar 3.7, gambar 3.8, gambar 3.9, gambar 3.10 dan gambar 3.111 sebagai berikut.

Use case Name Hapus Dokumen

Related Requirements Dokumen yang akan dihapus sudah tersedia disimulator

Goal In Context Melakukan proses hapus dari dokumen inputan

Preconditions Proses hapus berhasil dilakukan

Succsessful End

Condition

Proses hapus berhasil dilakukan

Failed End Condition Proses hapus gagal dilakukan

Primary Actors Pengguna

Trigger Aplikasi aktif

Main Flow Step Action

Pengguna Simulator

1 pengguna memilih

hapus

2 simulator menghapus data

masukkan

Extensions Step Branching Action

1.1 Menampilkan kata yang telah distemming


(55)

Gambar 3.7 Activity diagram tambah dokumen

Pengguna Simulator

memilih dokumen yang akan diproses mengambil dokumen yang dipilih

menampilkan dokume yang dipilih berada dalam menu


(56)

Gambar 3.8 Activity diagram menginputkan kata

Pengguna Simulator

berada dalam menu kata


(57)

Gambar 3.9 Activity diagram algortima Idris

Pengguna Simulator

memilih stemming dengan idris melakukan proses tokenizing

melakukan proses stemming

menampilkan hasil berada pada menu stemming

kata/dokumen telah tersedia


(58)

Gambar 3.10 Activity diagram algortima ECS Stemmer

Pengguna Simulator

memilih stemming dengan ECS Stemmer

menghapus stopword melakukan proses tokenizing

melakukan proses stemming

menampilkan hasil berada pada menu dokumen/kata


(59)

Gambar 3.11 Activity diagram hapus dokumen 3.7.4 Class Diagram

Class diagram adalah diagam yang digunakan untuk menampilkan beberapa kelas serta paket-paket yang ada dalam sistem/perangkat lunak yang sedang kita gunakan. Class diagram memberi kita gambaran (diagram statis) tentang sistem/perangkat lunak dan relas-relasi yang ada didalamnya. Berikut adalah class diagram dari simulator yang dibangun dapat dilihat pada gambar 3.12.


(60)

Gambar 3.12 Class diagram

3.7.5 Sequance Diagram

Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek-obyek yang melakukan suatu tugas atau aksi tertentu. Obyek-obyek-obyek tersebut kemudian diurutkan dari kiri ke kanan, aktor yang menginisiasi interaksi biasanya ditaruh di paling kiri dari diagram. Berikut merupakan Sequence diagram dari simulator yang akan dibangun dapat dilihat pada gambar 3.13, gambar 3.14, gambar 3.15, gambar 3.16 dan gambar 3.17

.

Gambar 3.13 Sequence diagram ambil dokumen

Stopword

+Stopword()

FormStemmer +kekuatan_stemmer: string +form()

+ambil() +case_folding() +tokenizing() +filtering() +stemming_idris() +stemming_ecs() +hapus() +hapus2()

koneksi

+mysqlconnection getkoneksi()

ALT sd

Pengguna FormStemmer

1 : tambah file()

2 : ambil file()

3 : file gagal dimasukkan()

4 : file tidak dapat diambil

5 : file berhasil dimsukkan()

6 : file tampil 7 : pilihan untuk stemming aktif


(61)

Gambar 3.14 Sequence diagram input kata

Gambar 3.15 Sequence diagram stemming dengan algoritma Idris

pengguna formstemmer koneksidatabase stopword

1 : klik stemming idris()

2 : cektokenizing()

3 : hapusstopword()

4 : hasil() 5 : cekkamus()

6 : hasil cek kamus()

7 : prosesstemming()

8 : menampilkan hasil stemming dngn idris

pengguna formStemmer

1 : input kata()

2 : kata()

3 : cek inputan kata()

4 : berhasil tampil kata 5 : pilihan stemming aktif


(1)

vii

4.2 Pengujian Metode... 75

4.2.1 Skenario Pengujian 1... 76

4.2.2 Skenario Pengujian 2... 98

4.3 Kesimpulan ... 100

BAB 5 KESIMPULAN DAN SARAN ... 101

5.1 Kesimpulan ... 101

5.2 Saran ... 101


(2)

103

DAFTAR PUSTAKA

[1] Mardi Siswo Utomo. Januari 2013. “Implementasi Stemmer Tala pada Aplikasi Berbasis Web” Diakses 20 Agustus 2015.

[2] Yonissa Qamilla Intan Atazsu. 2012. “Analisis Dan Implementasi Perbandingan Stemming Menggunakan Algoritma Nazief & Adriani Dengan Algoritma Ahmad Yusoff Sembok Pada Information Retrieval” Diakses 20 Agustus 2015.

[3] Fadillah Z. Tala. 2009. “A Study of Stemming Effect on Information Retrieval

in Bahasa Indonesia”. Netherland, Universiteit van Amsterdam.

[4] Eka Sandra Paramitha. “Analisis Dan Implementasi Stemming Menggunakan Algoritma Idris Pada Dokumen Teks Berbahasa Indonesia. Diakses 19 Agustus 2015

[5] Novendry Anggara. “Implementasi Modifikasi Algoritma Enhanced Confix

Stripping (ECS) Stemmer Pada Teks Bahasa Indonesia”. Diakses 23 Agustus 2015 [6] Gregorius S Budhi, Ibnu Gunawan, and Ferry Yuwono, "Algoritma Stemmer For Bahasa Indonesia Untuk Processing Text Minning Berbasis Metode Basket Analysis," p. 63.

[7] Rila Mandala, Erry Koryanti, Rinaldi Munir dan Harlili, 2004. Sistem Stemming Otomatis untuk Kata dalam Bahasa Indonesia. Institut Teknologi Bandung.

[8] F. Ahmad, M. Yusoff and T. M. T. Sembok, 1996. Experiments with a Stemming Algorithm for Malay Words, Journal of the American Society for Information Science, 47(12):909-918.

[9] Arifin, A. Z. & Setiono, A. N. 2002, Classification of Event News Documents in Indonesian Language Using Single Pass Clustering Algorithm, in `Proceedings of the Seminar on Intelligent Technology and its Applications (SITIA)', Teknik Elektro,Sepuluh Nopember Institute of Technology, Surabaya, Indonesia.

[10] N. Idris and S. M. F. D. Syed Mustapha, 2001. Stemming for Term Conflation in Malay Texts. University of Malaya.


(3)

104

[11] Agus Kurniawan, Risman Adnan, Panji Aryaputra, Norman Sasono, Ali Ahmad Heryana, M. Fathur Rahman, I Wayan Saryada, Adi Wirasta, 2004. Pengenalan Bahasa C# (CSH101). Jakarta.


(4)

(5)

(6)