enhanced confix stripping termodifikasikc.umn.ac.id/4979/1/skripsi.pdf · vi implementasi algoritma...
TRANSCRIPT
Team project ©2017 Dony Pratidana S. Hum | Bima Agus Setyawan S. IIP
Hak cipta dan penggunaan kembali:
Lisensi ini mengizinkan setiap orang untuk menggubah, memperbaiki, dan membuat ciptaan turunan bukan untuk kepentingan komersial, selama anda mencantumkan nama penulis dan melisensikan ciptaan turunan dengan syarat yang serupa dengan ciptaan asli.
Copyright and reuse:
This license lets you remix, tweak, and build upon work non-commercially, as long as you credit the origin creator and license it on your new creations under the identical terms.
IMPLEMENTASI ALGORITMA STEMMING
ENHANCED CONFIX STRIPPING TERMODIFIKASI
PADA SEARCH ENGINE LAMAN FAQ GRAMEDIA DIGITAL
SKRIPSI
Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana
Komputer (S.kom.)
Hans Rafael
13110110062
PROGRAM STUDI INFORMATIKA
FAKULTAS TEKNIK DAN INFORMATIKA
UNIVERSITAS MULTIMEDIA NUSANTARA
TANGERANG
2018
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
iv
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa, karena atas berkat dan rahmat-Nya,
skripsi dengan judul “Implementasi Algoritma Stemming Enhanced Confix Strippin
Termodifikasi Pada Search Engine Laman FAQ Gramedia Digital” ini dapat
terselesaikan dengan baik. Laporan ini dibuat sebagai salah satu syarat kelulusan mata
kuliah skripsi pada Program Studi Teknik Informatika, Fakultas Teknik Informatika.
Skripsi ini juga bisa diselesaikan karena adanya peran dan dukungan dari
beberapa pihak. Maka dari itu, ucapan terima kasih layak diucapkan kepada:
1. Dr. Ninok Leksono, selaku Rektor Universitas Multimedia Nusantara yang
memberikan kesempatan bagi penulis untuk berprestasi.
2. Seng Hansun, S.Si., M.Cs., selaku Ketua Program Studi Teknik Informatika
Universitas Multimedia Nusantara, yang telah mengajarkan banyak hal selama
berkuliah di UMN.
3. Dr. Ir. P.M. Winarno, M.Sc., selaku dosen pembimbing skripsi yang telah dengan
sabar memberikan masukan dan mendukung penulis dalam menyelesaikan
skripsi dengan baik.
4. Keluarga dan sahabat-sahabat penulis yang selalu mendukung penyelesaian
skripsi.
5. Shelly yang telah mendukung dan memberikan motivasi untuk menyelesaikan
skripsi.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
vi
IMPLEMENTASI ALGORITMA STEMMING ENHANCED
CONFIX STRIPPING TERMODIFIKASI PADA SEARCH
ENGINE LAMAN FAQ GRAMEDIA DIGITAL
ABSTRAK
Dalam era digital yang berkembang pesat, tentu tidak lepas dari Web
Search Engine yang menjadi alat praktis untuk mencari informasi yang kita
inginkan tanpa perlu mencari dari tumpukan informasi yang tidak relevan terlebih
dahulu. Kebutuhan dari pengguna website Gramedia Digital yang merasa
pentingnya Web Search Engine tersebut membuat perlu adanya pengembangan
untuk memudahkan pencarian informasi terutama dalam Bahasa Indonesia. Tentu
dalam pengembangannya, Web Search Engine didukung oleh banyak elemen yang
yang dapat mendorong pengambilan informasi yang lebih baik. Salah satunya
adalah Stemming. Stemming yang merupakan elemen yang berada pada awal
proses pencarian informasi. Stemming melakukan penyederhanaan kata menjadi
kata dasarnya sebelum dilakukan pencarian. Menggunakan elemen stemming
terhadap Bahasa Indonesia bukanlah hal yang mudah, karena tatanan Bahasa
Indonesia yang begitu kompleks dan acak. Maka dikembangkanlah aplikasi Web
Search Engine berbahasa Indonesia dengan algoritma Stemming Enhanced Confix
Stripping Termodifikasi untuk menjawab permasalahan tersebut.
Kata kunci: Stemming, Enhanced Confix Stripping Termodifikasi, Search Engine,
Paice Evaluation Method
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
vii
IMPLEMENTATION OF MODIFIED STEMMING
ENHANCED CONFIX STRIPPING ALGORITHM ON
GRAMEDIA DIGITAL FAQ SEARCH ENGINE SITE
ABSTRACT
In this fast-paced digital era, Web Search Engine become a handy tool to
search for the information that we needed, without the need to search through pile
of other unused information first. The need for Web Search Engine from the user
of Gramedia Digital makes the importance of development of the website to make
the information retrieval from the website easier. There are many things that vital
that can help the development of Web Search Engine in Indonesian language. One
of those things is Stemming. Stemming held an important task to simplify the
query that user give before the information retrieval process. Using stemming for
Indonesian language information retrieval is much of a challenge because the
complex and random language form. So, the implementation of Modified
Enhanced Confix Stripping Stemming algorithm on Gramedia Digital made to
answer the need to solve the problem.
keywords: Stemming, Enhanced Confix Stripping Termodifikasi, Search Engine,
Paice Evaluation Method
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
viii
DAFTAR ISI
HALAMAN JUDUL ................................................................................................ i
PERNYATAAN TIDAK MELAKUKAN PLAGIAT ........................................... ii
HALAMAN PERSETUJUAN ............................................................................... iii
KATA PENGANTAR ........................................................................................... iv
ABSTRAK ............................................................................................................. vi
ABSTRACT .......................................................................................................... vii
DAFTAR ISI ........................................................................................................ viii
DAFTAR TABEL ................................................................................................... x
DAFTAR GAMBAR ............................................................................................. xi
BAB I PENDAHULUAN ....................................................................................... 1
1.1 Latar Belakang Masalah ........................................................................... 1
1.2 Rumusan Masalah .................................................................................... 5
1.3 Batasan Masalah ....................................................................................... 5
1.4 Tujuan Penelitian ...................................................................................... 6
1.5 Manfaat Penelitian .................................................................................... 6
1.6 Sistematika Penulisan ............................................................................... 6
BAB II TINJAUAN PUSTAKA ............................................................................. 8
2.1 Web Search Engine .................................................................................. 8
2.2 Web Scraping ........................................................................................... 9
2.3 Whoosh ................................................................................................... 10
2.4 Stemming ................................................................................................ 12
2.5 Algoritma Enhanced Confix Stripping Termodifikasi ........................... 13
2.6 Metode Evaluasi Paice ........................................................................... 21
BAB III METODOLOGI DAN PERANCANGAN APLIKASI .......................... 26
3.1 Metodologi Penelitian ............................................................................ 26
3.2 Pengumpulan dan Preprocessing Data ................................................... 27
3.3 Perancangan Sistem ................................................................................ 28
3.2.1 Flowchart ........................................................................................ 28
3.2.2 Tampilan Antarmuka ...................................................................... 34
BAB IV IMPLEMENTASI DAN UJI COBA ...................................................... 36
4.1 Spesifikasi Sistem ................................................................................... 36
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
ix
4.2 Implementasi Sistem .............................................................................. 36
4.2.1 Implementasi Algoritma.................................................................. 37
4.2.2 Tampilan ......................................................................................... 41
4.3 Skenario Uji Coba .................................................................................. 43
4.4 Analisis ................................................................................................... 48
BAB V SIMPULAN DAN SARAN ..................................................................... 50
5.1 Simpulan ................................................................................................. 50
5.2 Saran ....................................................................................................... 50
Daftar Pustaka ..................................................................................................... 511
LAMPIRAN .......................................................................................................... 53
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
x
DAFTAR TABEL
Tabel 2.1 Aturan pemenggalan awalan ................................................................. 16
Tabel 2.2 Penambahan dan perubahan aturan pemenggalan awalan .................... 19
Tabel 2.3 Penambahan dan perubahan aturan pemenggalan awalan .................... 20
Tabel 2.4 Kesalahan pada stemming Enhanced Confix Stripping ........................ 20
Tabel 4.1 Hasil stemming kata dari kelompok semantik g11 ............................... 44
Tabel 4.2 Hasil stemming kata dari kelompok semantik g32 ............................... 45
Tabel 4.3 Hasil stemming kata dari kelompok semantik g ................................... 46
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
xi
DAFTAR GAMBAR
Gambar 1.1 Hasil survey umpan balik layanan FAQ Gramedia Digital (Gramedia,
2017) ................................................................................................................ 4
Gambar 2.1 Source Code pendefinisian schema ................................................... 10
Gambar 2.2 Source code pembuatan index ........................................................... 10
Gambar 2.3 Source code pembukaan index .......................................................... 11
Gambar 2.4 Source code input informasi dokumen ke dalam index..................... 11
Gambar 2.5 Contoh source code tokenization ...................................................... 11
Gambar 2.6 Contoh source code stemming........................................................... 12
Gambar 2.7 Source code pencarian query............................................................. 12
Gambar 3.1 Flowchart Sistem Pencarian .............................................................. 29
Gambar 3.2 Flowchart Stemming ......................................................................... 30
Gambar 3.3 Flowchart Enhanced Confix Stripping Termodifikasi ...................... 32
Gambar 3.4 Flowchart Hilangkan Awalan............................................................ 33
Gambar 3.5 Flowchart Hilangkan Akhiran ........................................................... 33
Gambar 3.6 Flowchart Searching .......................................................................... 34
Gambar 3.7 Rancangan Tampilan Antarmuka Stemmer ...................................... 35
Gambar 3.8 Rancangan Tampilan Antarmuka Search .......................................... 35
Gambar 4.1 Potongan kode Tahap Stemming....................................................... 37
Gambar 4.2 Potongan Kode tahap Enhanced Confix Stripping Termodifikasi .... 39
Gambar 4.3 Potongan Code Aturan ...................................................................... 40
Gambar 4.4 Potongan Kode Searching ................................................................. 40
Gambar 4.5 Tampilan Stemmer ............................................................................ 41
Gambar 4.6 Tampilan Stemmer Memberikan Kata Dasar .................................... 41
Gambar 4.7 Screenshot Tampilan Halaman Utama .............................................. 42
Gambar 4.8 Screenshot Tampilan halaman utama saat pencarian ........................ 43
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Information retrieval (IR) memiliki pengertian yang sangat luas. Melihat
nomor kartu kredit yang dikeluarkan dari dompet sudah merupakan salah satu
bentuk dari information retrieval. Information retrieval dapat didefinisikan
sebagai aktivitas menemukan materi (biasanya dokumen) tidak terstruktur yang
memenuhi kebutuhan akan informasi pada ruang lingkup yang besar. Dulunya
information retrieval hanya menjadi aktivitas yang ditekuni oleh pustakawan,
notaris, filsuf, dan profesi sejenis lainnya (Manning, 2008).
Kemunculan World Wide Web (WWW) pada 1990 mematahkan persepsi
bahwa area information retrieval hanya berpusat pada bidang perpustakaan dan
ahli informatika saja. Web menjadi penyimpanan universal bagi pengetahuan dan
budaya manusia, menyebabkan revolusi dalam penggunaan komputer, kegiatan
beraktivitas manusia, seperti home shopping dan home banking. Meskipun
terbilang sukses, web pun memiliki masalah baru. Menemukan informasi yang
tepat dan berguna menjadi hal yang sulit karena internet sangat luas dan karena
tidak adanya model data standar yang mendasarinya. Kesulitan ini akhirnya
menjadi alasan berkembangnya teknologi search engine, yaitu information
retrieval system yang digunakan khusus untuk mencari informasi yang tepat dan
berguna pada suatu website tertentu (Baeza-Yates, 2011).
Salah satu bentuk dari search engine ini adalah in-house search engine,
yaitu search engine yang dibuat spesifik untuk melaksanakan information
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
2
retrieval khusus pada suatu website tertentu saja. Berbeda dengan penggunaan
web search engine popular seperti Google, Bing, atau Yahoo!, in-house search
engine dapat melakukan scraping terhadap website dengan lebih baik, karena
scraper dapat memahami struktur HTML dari website tersebut dengan lebih baik
dan spesifik (Lindsey, 2012).
Stemming adalah salah satu bagian dari aktivitas yang terdapat di dalam
sebuah search engine, Stemming digunakan untuk menyederhanakan kata ke
bentuk kata dasarnya. Tentu proses stemming tiap bahasa berbeda dengan bahasa
lainnya. Stemming pada bahasa indonesia menggunakan kata dasar sebagai
akarnya, sehingga sebagian besar memiliki dependensi terhadap kamus. Prosesnya
pun tergolong rumit secara morfologis karena hampir setiap kata memiliki variasi
imbuhan yang sangat beragam dengan metode penyederhanaan yang berbeda-
beda (Suhartono, 2014).
Penelitian sebelumnya dilakukan oleh Johan Sebastian (2013) yang berjudul
Implementasi Algoritma Stemming Enhanced Confix Stripping Pada Web Search
Engine (Studi Kasus: Situs Sindo Weekly Magazine). Penelitian yang dilakukan
dapat diimplementasikan dengan baik, namun masih terdapat kesalahan yang
terdapat pada algoritma stemming tersebut terhadap beberapa kata yang diberikan.
Algoritma stemming Enhanced Confix Stripping (ECS) yang merupakan algoritma
perbaikan dari Confix Stripping (yang dikembangkan oleh Jelita Asian
berdasarkan algoritma stemming Nazief-Andriani dan Arifin Setiono) dapat
dibuktikan sebagai algoritma terbaik untuk stemming bahasa Indonesia. Algoritma
ECS lalu diperbaiki kembali agar mampu meningkatkan keakuratan stemming
yang pada saat ini disebut sebagai ECS termodifikasi.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
3
Sesuai dengan perkembangan jaman, informasi yang terdapat pada website-
website semakin banyak sehingga menyebabkan munculnya kebutuhan akan in-
house search engine yang khusus untuk digunakan pengguna di dalam website
untuk mencari informasi tertentu. Gramedia Digital (ebooks.gramedia.com)
adalah salah satu aplikasi berbasis website, Android, dan iOS yang berada di
bawah naungan Kompas Gramedia. Gramedia Digital menyediakan majalah,
buku, dan koran dalam format digital (Digital, 2018). Gramedia Digital memiliki
laman frequently asked question (FAQ) yang merupakan kumpulan pertanyaan
dan jawaban yang sering ditanyakan oleh pengguna. Laman ini ditujukan untuk
memudahkan pengguna mencari tahu informasi mendasar terkait Gramedia
Digital.
Menurut survey umpan balik pelanggan terhadap layanan FAQ yang
dilayangkan melalui email pada tahun 2017 kepada 5000 orang pelanggan, dari 50
orang yang menjawab, 36% setuju dan 18% sangat setuju bahwa sulit untuk
menemukan artikel di halaman FAQ yang sesuai dengan masalah yang dihadapi.
46% setuju, dan 46% lainnya sangat setuju bahwa perlu adanya kotak pencarian,
agar dapat langsung menuliskan masalah dan menemukan artikel terkait
(Gramedia, 2017).
Berdasarkan kekurangan yang terdapat pada FAQ Gramedia Digital, fitur
search engine ditambahkan dengan implementasi stemming Enhanced Confix
Stripping Termodifikasi.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
4
Gambar 1.1 Hasil survey umpan balik layanan FAQ Gramedia
Digital (Gramedia, 2017)
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
5
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dikemukakan, berikut rumusan
masalah yang diajukan dalam penelitian ini.
1. Bagaimana cara mengimplementasikan algoritma Enhanced Confix Stripping
termodifikasi pada web search engine laman FAQ Gramedia Digital?
2. Bagaimana hasil query yang telah melalui proses stemming dengan
menggunakan algoritma Enhanced Confix Stripping termodifikasi dalam
meningkatkan hasil pencarian?
1.3 Batasan Masalah
Untuk membatasi agar permasalahan yang diteliti tidak meluas dari sasaran
serta tema pokok permasalahan, maka berikut merupakan batasan masalah dalam
penelitian ini.
1. Algoritma stemming ini diimplementasikan hanya untuk Web search engine
laman frequently asked question pada website https://ebooks.gramedia.com.
2. Web search engine akan menggunakan web application sebagai platform-nya.
3. Web search engine akan menggunakan bahasa pemrograman Python dan
library pemrograman Whoosh.
4. Sumber data yang dikelola oleh web search engine berasal dari laman
frequently asked question pada website https://ebooks.gramedia.com.
5. Pencarian yang dilakukan harus bersangkutan dengan laman frequently asked
question dan berupa teks dalam bahasa Indonesia.
6. Variabel penelitian menggunakan metode evaluasi Paice yang berdasarkan
pada nilai understemming index dan overstemming index
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
6
1.4 Tujuan Penelitian
Berdasarkan rumusan masalah yang telah dikemukakan, tujuan penelitian ini
dijabarkan sebagai berikut.
1. Mengimplementasikan algoritma stemming Enhanced Confix Stripping
termodifikasi ke dalam web search engine laman FAQ Gramedia Digital.
2. Menghasilkan query yang telah melalui proses stemming dengan
menggunakan algoritma Enhanced Confix Stripping termodifikasi untuk
meningkatkan hasil pencarian.
1.5 Manfaat Penelitian
Manfaat yang diharapkan dari perancangan dan pembangunan web search
engine ini adalah sebagai berikut.
1. Memudahkan pengguna website untuk menemukan konten pada laman
frequently asked question.
2. Meningkatkan layanan pencarian informasi website Gramedia Digital.
1.6 Sistematika Penulisan
Sistematika penulisan skripsi ini dijelaskan sebagai berikut.
BAB I PENDAHULUAN
Bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan
penelitian, manfaat penelitian, dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Bab ini menjelaskan beberapa teori dan konsep dasar yang mendukung
penelitian ini, yaitu Web Search Engine, Web Scraping, Whoosh, Stemming,
Algoritma Enhanced Confix Stripping Termodifikasi, dan Metode Evaluasi Paice.
BAB III METODOLOGI DAN PERANCANGAN APLIKASI
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
7
Bab ini berisi metode penelitian, rancangan aplikasi, pengumpulan dan
preprocessing data, dan flowchart.
BAB IV IMPLEMENTASI DAN UJI COBA
Bab ini berisi implementasi sistem, data hasil penelitian yang dilakukan
beserta hasil analisis data tersebut.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi simpulan dari hasil penelitian terhadap tujuan penelitian dan
saran untuk pengembangan penelitian ini lebih lanjut.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
8
BAB II
TINJAUAN PUSTAKA
2.1 Web Search Engine
Web search engine adalah sebuah program perangkat lunak pencari
informasi yang menemukan, mengupas, mengubah, dan menyimpan informasi
dari dokumen-dokumen web tertentu untuk nantinya digunakan untuk
pengambilan dan penyajian informasi tersebut secara cepat sesuai permintaan
pengguna.
Web search engine biasanya terdiri dari 4 komponen, yaitu:
1. Search Interface
Merupakan tampilan yang akan digunakan oleh pengguna untuk
memasukkan data yang akan dicari oleh web search engine dan
menampilkan daftar hasil pencarian data tersebut.
2. Crawler/Spider
Crawler digunakan untuk menjelahi dokumen-dokumen web, menata ulang
teks dokumen serta atributnya sesuai dengan bentuk yang diinginkan
(scraping), dan kemudian disimpan di dalam indeks web search engine
untuk nantinya dipanggil kembali.
3. Indexer
Indexer digunakan untuk menyusun informasi-informasi yang telah
dikumpulkan dan diolah oleh crawler menjadi indeks dari dokumen web
tersebut. hal ini dilakukan untuk mengoptimalkan kecepatan dan kinerja
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
9
dalam menemukan dokumen informasi yang relevan untuk pengguna web
search engine.
4. Database
Tempat penyimpanan indeks yang telah dibuat.
2.2 Web Scraping
Web scraping adalah kegiatan mengekstrak data dari website, dapat
dilakukan dengan mengakses WWW dengan menggunakan Hypertext Transfer
Protocol (HTTP), atau web browser (Boeing, 2016). Web scraping dapat
dilakukan secara manual dengan menggunakan aplikasi tertentu, atau secara
otomatis dengan menggunakan web crawler/spider. Web scraping terdiri dari 2
aktivitas, yaitu:
1. Fetching
Fetching adalah kegiatan mengunduh laman dari website yang kita inginkan, yang
biasanya dilakukan oleh web browser disaat kita melihat laman tersebut. Setelah
laman diunduh, data laman dapat disimpan untuk pemrosesan berikutnya.
2. Extracting
Setelah dilakukan fetching, data laman diurai, disusun ulang, atau ditambah
dengan informasi lain sesuai dengan sistematika yang dipakai pelaku web
scraping untuk tujuan penggunaan data selanjutnya.
Maka dari itu, web scraping merupakan salah satu bagian penting dari web
search engine yang dilakukan untuk mengambil data dari laman FAQ untuk
disimpan ke dalam bentuk dokumen yang dapat dimasukkan pada web search
engine nantinya. Dalam pengerjaannya akan menggunakan text pattern matching
dengan memakai regular expression pada bahasa pemrograman Python.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
10
import os.path from whoosh.index import create_in if not os.path.exists("index"): os.mkdir("index") ix = create_in("index", schema)
2.3 Whoosh
Whoosh adalah web search engine programming library berbahasa Python
yang dibuat oleh Matt Chaput untuk dokumentasi online Houdini 3D software
yang akhirnya dijadikan open-source agar dapat berguna bagi komunitas lain yang
membutuhkan.Whoosh dapat mengindekskan dokumen sistematis maupun tidak
sistematis, dan menemukan dokumen-dokumen pada indeks tersebut yang
didasari pada kriteria pencarian yang sederhana maupun kompleks (Chaput,
2017). Whoosh memiliki fungsi yang terdiri dari beberapa kegiatan utama, yaitu:
1. Mendefinisikan schema
Schema adalah daftar informasi yang terdapat pada index, informasi ini dapat
berupa judul, isi, tanggal pembuatan, url path, dan informasi tambahan lainnya
yang dapat dimasukkan ke dalam index. Schema dibuat dengan import schema.
2. Membuat index
Index dibuat berdasarkan schema, dan berisi informasi dari dokumen-
dokumen yang akan dimasukkan ke dalam index, hal ini dilakukan dengan
menggunakan create_in(nama index). Setelah dibuat, index akan dibuka
dengan open_dir(nama index)
from whoosh.fields import Schema, STORED, ID, KEYWORD, TEXT schema = Schema(title=TEXT(stored=True), content=TEXT, path=ID(stored=True), tags=KEYWORD, icon=STORED)
Gambar 2.1 Source Code pendefinisian schema
Gambar 2.2 Source code pembuatan index
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
11
3. Mengindekskan dokumen
Setelah index dibuat, informasi dari dokumen-dokumen akan dimasukkan ke
dalam index. Hal ini dilakukan dengan menggunakan index writer, add_document.
4. Tokenization/Analyzer
Tokenization dilakukan dengan menyederhanakan konten yang terdapat di
dalam dokumen agar memudahkan pencarian. Hal ini dapat dilakukan dengan
melakukan penghilangan spasi, merubah semua huruf menjadi huruf kecil,
menghilangkan stopwords (kata-kata tidak penting berulang seperti atau, dan,
adalah, dan lain-lain), melakukan stemming (menghilangkan imbuhan).
Kelemahan pada stemming ini adalah terbatasnya penguraian kata sesuai dengan
library bahasa tertentu, karena penghilangan imbuhan dan menyederhanakan kata
setiap bahasa berbeda.
writer = ix.writer() writer.add_document(title=u"My document", content=u"This is my document!", path=u"/a", tags=u"first short", icon=u"/icons/star.png") writer.add_document(title=u"Second try", content=u"This is the second example.", path=u"/b", tags=u"second short", icon=u"/icons/sheep.png") writer.add_document(title=u"Third time's the charm", content=u"Examples are many.", path=u"/c", tags=u"short", icon=u"/icons/book.png") writer.commit()
>>> from whoosh.analysis import RegexTokenizer >>> tokenizer = RegexTokenizer() >>> for token in tokenizer(u"Hello there my friend!"): ... print repr(token.text) u'Hello' u'there' u'my' u'friend'
from whoosh.index import open_dir ix = open_dir("index")
Gambar 2.3 Source code pembukaan index
Gambar 2.4 Source code input informasi dokumen ke dalam index
Gambar 2.5 Contoh source code tokenization
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
12
5. Pencarian
Setelah index terisi dengan informasi dokumen, pengguna dapat mulai
mencari dokumen dengan memasukkan input teks sesuai dengan dokumen
yang ingin dicari. Dengan menggunakan qparser, pengguna dapat mengurai
setiap kata pencarian dan menyaring pencarian dokumen melalui field
tertentu, contohnya hanya pada field content.
2.4 Stemming
Stemming merupakan proses mengubah kata pada sebuah dokumen untuk
mendapatkan kata dasarnya dengan aturan tertentu. Stemming dilakukan pada saat
pembuatan indeks dari suatu dokumen (Tahitoe, 2010). Stemming digunakan
untuk meningkatkan jumlah dokumen yang relevan terhadap pencarian.
Implementasi stemming berbeda-beda antar satu Bahasa dengan Bahasa yang lain,
seperti contohnya pada Bahasa Inggris hanya memiliki sufiks, sedangkan pada
Bahasa Indonesia juga terdapat prefix dan konfiks.
>>> with ix.searcher() as searcher: ... query = QueryParser("content", ix.schema).parse("first") ... results = searcher.search(query) ... results[0]
>>> from whoosh.lang.porter import stem >>> stem("rendering") 'render'
Gambar 2.6 Contoh source code stemming
Gambar 2.7 Source code pencarian query
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
13
2.5 Algoritma Enhanced Confix Stripping Termodifikasi
Algoritma Enhanced Confix Stripping Termodifikasi yang digunakan untuk
memproses kata bahasa Indonesia dikembangkan dari berbagai algoritma
stemming sebelumnya yang dijabarkan sebagai berikut.
2.5.1 Algoritma Nazief dan Adriani
Algoritma stemming Nazief dan Adriani dijelaskan pada makalah yang
tidak diterbitkan di Universitas Indonesia. Algoritma ini didasarkan pada aturan
morfologi menyeluruh yang mengelompokkan imbuhan (afiks) yang diizinkan
dan tidak diizinkan, termasuk awalan (prefiks), sisipan (infiks), akhiran (sufiks),
dan gabungan dari awalan dan akhiran (konfiks) (Jelita Asian H. E., 2007).
Algoritma ini juga mendukung recoding, yang digunakan untuk menyusun
kembali huruf awal yang sebelumnya diduga sebagai imbuhan. Sebagai tambahan,
algoritma ini menggunakan kamus kata dasar yang digunakan untuk memeriksa
hasilnya. Berikut dijelaskan pengelompokan imbuhan yang menjadi dasar dari
algoritma ini.
a. Inflection Suffixes, yaitu kumpulan imbuhan akhiran yang tidak merubah
kata dasarnya, dibagi menjadi dua jenis yaitu sebagai berikut.
• Particles (P), yang merupakan “-lah”, “-kah”, “-tah”, dan “-pun”.
• Possessive Pronouns (PP), yang merupakan “-ku”, “-mu”, dan “-nya”.
b. Derivation Suffixes (DS), yaitu kumpulan imbuhan akhiran yang langsung
diberikan pada kata dasar seperti “-i", “-kan”, dan “-an”.
c. Derivation Prefixes (DP), yaitu kumpulan imbuhan awalan yang langsung
diberikan pada kata dasar, dibagi menjadi dua jenis yaitu sebagai berikut.
• Awalan yang dapat berubah (“me-”, “be-”, “pe-”, dan “te-”).
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
14
• Awalan yang tidak berubah (“di-”, “ke-”, dan “se-”).
Berdasarkan pengelompokan imbuhan yang telah dibuat dapat digambarkan
sebagai berikut.
[𝐷𝑃 + [𝐷𝑃 + [𝐷𝑃]]] + 𝑘𝑎𝑡𝑎 𝑑𝑎𝑠𝑎𝑟 + [𝐷𝑆] + [𝑃𝑃] + [𝑃] …(5.1)
Dengan didasari pada rumus tersebut, aturan yang terdapat pada algoritma ini
dijelaskan sebagai berikut.
1. Terdapat beberapa gabungan imbuhan yang tidak diizinkan, seperti “be-i”,
“di-an”, “ke-i”, “ke-kan”, “me-an”, “se-i”, “se-kan”, dan “te-an”.
2. Dilarang untuk mengulang imbuhan yang sama.
3. Tidak melakukan stemming jika kata tidak lebih dari dua huruf.
4. Beberapa awalan bisa merubah bentuk asli kata dasar, ataupun awalan yang
telah diberikan sebelumnya pada kata dasar, seperti “me-” yang dapat
menjadi “men-”, “meng-”, “mem-”, dan “meny-“.
Berdasarkan rumus dan aturan diatas, maka algoritma Nazief dan Adriani akan
dijelaskan sebagai berikut.
1. Kata yang belum di stemming akan langsung dicocokkan dengan kamus
kata dasar. Jika cocok maka kata dianggap sebagai kata dasar dan proses
stemming dihentikan.
2. Menghilangkan inflectional suffixes, jika yang berhasil dihilangkan adalah
particle, maka akan kembali dilakukan proses ini untuk menghilangkan possessive
pronoun.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
15
3. Menghilangkan derivation suffixes (“-i” atau “-an”), jika berhasil
dilanjutkan ke langkah keempat. Jika langkah keempat tidak berhasil akan
dilakukan langkah berikut.
a. Jika “-an” dihilangkan dan huruf terakhir “k”, maka huruf terakhir
tersebut dihilangkan lalu mengulang langkah keempat.
b. Mengembalikan akhiran yang dihilangkan.
4. Menghilangkan derivation prefixes, dibagi menjadi beberapa bagian sebagai
berikut.
a. Jika ada akhiran yang dihilangkan pada langkah ketiga, maka
melakukan pengecekan terhadap gabungan imbuhan yang tidak
diizinkan, jika cocok maka proses dihentikan.
b. Jika awalan cocok dengan awalan sebelumnya, maka proses
dilanjutkan.
c. Jika awalan telah dihilangkan sebanyak tiga kali, maka proses
dilanjutkan.
d. Penghilangan awalan dibagi menjadi beberapa langkah berikut.
i. Jika awalan adalah “di-”, “ke-”, atau “se-”, maka jenis awalan
secara berurutan adalah “di”, “ke”, atau “se”.
ii. Jika awalan adalah “te-”, “be-”, “me-”, atau “pe-”, maka
dilakukan algoritma sesuai dengan aturan pada tabel 2.1 yang
merupakan aturan pemenggalan awalan.
iii. Jika langkah i dan ii tidak cocok maka proses akan dilanjutkan.
e. Jika langkah diatas sudah dilakukan dan masih gagal, maka akan
dilakukan recoding tergantung dari jenis awalannya.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
16
5. Jika kata dasar masih belum bisa ditentukan, maka algoritma berhenti, dan
me-return kata asli.
Tabel 2.1 Aturan pemenggalan awalan
No. Format Kata Pemenggalan
1 berV... ber-V... | be-rV...
2 berCAP... ber-CAP... dimana C!=’r’ & P!=’er’
3 ber CAerV ... ber-CAerV... dimana C!=’r’
4 belajar bel-ajar
5 beC1erC2 be-C1erC2… dimana C1!={‘r’ | ‘l’}
6 terV… ter-V… | te-rV…
7 terCerV… ter-CerV… dimana C!=’r’
8 terCP… ter-CP… dimana C!=‘r’ and P!=‘er’
9 teC1erC2… te-C1erC2… dimana C1!=‘r’
10 me{ l | r | w | y }V… me-{ l | r | w | y }V…
11 mem{ b | f | v }… mem-{ b | f | v }…
12 mempe{ r | l }… mem-pe…
13 mem{ rV | V }… me-m{ rV | V }… | me-p{ rV | V }…
14 men{ c | d | j | z }... men-{ c | d | j | z }...
15 menV... me-nV... | me-tV...
16 meng{ g | h | q }... meng-{ g | h | q }...
17 mengV... meng-V... | meng-kV...
18 menyV... meny-sV...
19 mempV... mem-pV... dimana V!=‘e’
20 pe{ w | y }V... pe-{ w | y }V...
21 perV... per-V... | pe-rV...
23 perCAP... per-CAP... dimana C!=‘r’ and P!=‘er’
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
17
24 perCAerV... per-CAerV... dimana C!=‘r’
25 pem{ b | f | v }... pem-{ b | f | v }...
26 pem{ rV | V }... pe-m{ rV | V }... | pe-p{ rV | V }...
27 pen{ c | d | j | z }... pen-{ c | d | j | z }...
28 penV... pe-nV... | pe-tV...
29 peng{ g | h | q }... peng-{ g | h | q }...
30 pengV... peng-V... | peng-kV...
31 penyV... peny-sV...
32 pelV... pe-lV... | “pelajar” return ajar
33 peCerV... per-erV... dimana C!={ r | w | y | l | m | n }
34 peCP... pe-CP... dimana C!={ r | w | y | l | m | n }
and P!=‘er’
Pada tabel aturan pemenggalan awalan, terdapat beberapa simbol yang digunakan
yaitu C sebagai huruf konsonan, B sebagai huruf vokal, A sebagai huruf vokal
atau konsonan, P sebagai Partikel atau fragmen.
Pada algoritma ini juga dijelaskan mengenai Prefix disambiguation yang
merupakan kelemahan dari stemming pada umumnya. Hal ini terjadi ketika men-
stemming kata yang ambigu. contohnya, kata “mengaku” dalam aturan nomor 17
untuk awalan “-mengV” dapat menghasilkan “meng-aku” dengan kata dasar aku,
ataupun “meng-kaku” dengan kata dasar kaku. Keduanya merupakan kata yang
terdapat pada kamus kata dasar, dan kita hanya dapat menentukan kata dasarnya
dari konteks kalimat tersebut.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
18
2.5.2 Algoritma Confix Stripping (CS)
Algoritma ini dikembangkan dari algoritma Nazief dan Adriani dengan
penambahan beberapa perbaikan dari kesalahan stemming algoritma tersebut.
Penambahan aturan yang dilakukan akan dijelaskan sebagai berikut.
1. Menggunakan kamus yang lebih lengkap
2. Penambahan aturan terkait hyphenated word¸ yaitu kata dengan tanda
penghubung (“-“). Kata yang memiliki tanda penghubung akan dipisahkan dan
dianggap benar apabila keduanya memiliki kata dasar yang sama. Sebagai contoh,
kata “berbalas-balasan”, antara “berbalas” dan “balasan” memiliki kata dasar yang
sama yaitu “balas”, maka algoritma akan mengembalikan kata “balas”. Berbeda
dengan “bolak-balik” yang tidak memiliki kata dasar yang sama, algoritma akan
mengembalikan kata “bolak-balik”.
3. Menambahkan awalan “-pun” sebagai particle (inflection suffix), akhiran,
dan aturan tambahan, yang dapat dilihat pada tabel 2.2.
4. Menambahkan rule precedence, yang ditambahkan karena beberapa kasus
yang memiliki awalan dan particle tertentu yang gagal stemming. Sebagai contoh,
kata “bertingkah” yang kata dasarnya “tingkah”. Algoritma sebelumnya akan
menghilangkan akhiran “-kah” terlebih dahulu, dan menghilangkan awalan “ber-“
sehingga mendapatkan kata yang kurang benar yaitu “ting” meskipun terdapat
pada kamus kata dasar. Maka dari itu diberlakukan aturan penghilangan awalan
sebelum akhiran pada kata dengan gabungan awalan dan akhiran “be-“ “-lah”
(contoh: bersekolah), “be-“ “-an” (contoh: “bertahan”), “me-“ “-i” (contoh:
“mencapai”), “di-“ “-i” (contoh: “dimulai”), “pe-“ “-i” (contoh: “petani”), “ter-“
“-i” (contoh: “terabai”) (Jelita Asian B. , 2007).
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
19
Tabel 2.2 Penambahan dan perubahan aturan pemenggalan awalan
No. Format kata Pemenggalan
Aturan baru
35 terC1erC2… ter-C1erC2… dimana C1!=‘r’
36 peC1erC2… pe-C1erC2… dimana C1!={ r | w | y | l |
m | n }
Aturan yang mengalami perubahan
12 mempe… mem-pe…
16 meng{ g | h | q | k }… meng-{ g | h | q | k } …
2.5.3 Algoritma Enhanced Confix Stripping (ECS)
Algoritma ini dikembangkan dari algoritma Confix stripping dengan
penambahan beberapa perbaikan dari algoritma sebelumnya. Penambahan aturan
akan dijelaskan sebagai berikut.
1. Menambahkan dan merubah beberapa aturan yang terdapat pada aturan
pemenggalan awalan yang dijabarkan pada table 2.3
2. Penambahan langkah tambahan loopPengembalianAkhiran pada algoritma
jika proses recoding gagal. Langkah ini akan dijelaskan sebagai berikut.
a. Mengembalikan kata yang telah di-recoding, dan mengembalikan
semua awalan yang telah dihilangkan. Jika proses menghilangkan awalan
berhasil, maka algoritma dihentikan
b. Mengembalikan akhiran yang telah dihilangkan satu-persatu sambil
dilakukan pengecekan, mulai dari Derivation suffix, Possessive Pronoun,
dan particle. Khusus untuk Derivation suffix akhiran “-kan”, huruf “k”
dicek terlebih dahulu, baru ditambahkan “an”.
c. Melakukan penghilangan awalan.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
20
d. Melakukan recoding.
Tabel 2.3 Penambahan dan perubahan aturan pemenggalan awalan
No. Format kata Pemenggalan
Aturan yang mengalami perubahan
14 men{ c | d | j | s | z }… men-{ c | d | j | s | z }…
17 mengV… meng-V… | meng-kV… | (mengV-… jika
V=‘e’)
19 mempA… mem-pA... dimana A!= ‘e’
29 pengC… peng-C…
30 pengV… peng-V… | peng-kV… | (pengV-… jika
V=‘e’)
2.5.1 Algoritma Enhanced Confix Stripping Termodifikasi
Algoritma ini dikembangkan dari algoritma Enhanced Confix Stripping
dengan perbaikan terhadap beberapa kesalahan yang dilakukan sebelumnya
(Tahitoe, 2010). Kesalahan yang dilakukan akan dijabarkan pada table 2.4.
Tabel 2.4 Kesalahan pada stemming Enhanced Confix Stripping
Tipe Kesalahan Contoh kata Hasil stemming ECS Koreksi
sisipan kinerja kinerja kerja
overstemming penyidikan idi sidik
understemming mengalami mengalami alam
nama orang umai uma umai
kesalahan aturan pemenggalan
awalan no.18
menyatakan menyatakan nyata
kesalahan aturan pemenggalan
awalan no.31
penyanyi penyanyi nyanyi
Perbaikan yang dilakukan atas kesalahan stemming yang dijabarkan, dapat
dilihat pada lampiran, dan dijelaskan sebagai berikut.
1. Sisipan
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
21
Sisipan merupakan salah satu imbuhan dalam bahasa Indonesia. karena
tidak adanya aturan ini pada algoritma sebelumnya, maka dilakukan penambahan
aturan stemming sisipan (“-er-“, “-el-“, “-em-“, “-in-“). Aturan ini dilakukan
setelah proses stemming awalan dan akhiran selesai dilakukan.
2. Kesalahan aturan pemenggalan nomor 18 dan 31
Menambahkan aturan 18 menjadi menyV… -> me-nyV… | meny-sV… dan
menambahkan aturan 31 menjadi penyV... -> pe-nyV… | peny-sV...
3. Akhiran serapan Bahasa asing
Menambahkan serapan bahasa asing “-is”, “-isme”, “-isasi” pada aturan
stemming Derivational suffix.
2.6 Metode Evaluasi Paice
Metode evaluasi Paice adalah metode yang digunakan untuk mengevaluasi
kualitas dari hasil algoritma stemming dengan menghitung segala bentuk
kesalahan yang dilakukan selama proses stemming. Algoritma stemming yang
berjalan dengan baik akan mengelompokkan semua kata secara semantik pada
kata dasar yang sama. Tetapi pada dasarnya setiap bahasa memiliki faktor
ketidakteraturan, sehingga algoritma stemming tidak akan bisa terhindar dari
kesalahan meskipun menggunakan daftar kosakata (Tala, 2003).
Terdapat 2 jenis kesalahan yang akan diukur pada metode evaluasi paice,
yaitu sebagai berikut (Paice, 1994).
• Understemming
Terjadi dimana kata tidak dikelompokkan pada kata dasar yang seharusnya
karena kurangnya pemenggalan imbuhan.
• Overstemming
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
22
Terjadi dimana kata tidak dikelompokkan pada kata dasar yang seharusnya
karena pemenggalan imbuhan yang tidak sesuai, sehingga menyebabkan arti
dari kata tidak sesuai dengan kelompok kata.
Terdapat 3 kelas dari hubungan antar pasangan kata, yaitu sebagai berikut
(Tala, 2003).
• Tipe 0
2 kata yang berbentuk identik dan tergabung dengan mengabaikan
kemungkinan homograf(duplikasi)
• Tipe 1
2 kata yang berbeda bentuk namun memiliki semantik yang sama
• Tipe 2
2 kata yang berbeda bentuk dan memiliki semantik yang berbeda
Perhitungan kesalahan understemming dan overstemming dilakukan
dengan menggunakan UI (understemming) sebagai proporsi pasangan tipe 1 yang
tidak berhasil digabung oleh algoritma stemming, dan OI (overstemming) sebagai
proporsi pasangan tipe 2 yang berhasil digabung oleh prosedur stemming. Setelah
semua kata dikelompokkan secara semantik, dilakukan perhitungan
penggabungan kata untuk kelompok g yang disebut sebagai Desired Merge Total
(DMT) dimana Ng adalah jumlah kata dari kelompok g
𝐷𝑀𝑇𝑔 = 0.5 𝑁𝑔(𝑁𝑔 − 1) …(6.1)
Gabungan nilai dalam semua kelompok pada sampel teks dinamakan Global
Desired Merge Total (GDMT) yang didefinisikan sebagai berikut.
𝐺𝐷𝑀𝑇 = ∑ 𝐷𝑀𝑇𝑔𝑖𝑖∈𝑛𝑔 …(6.2)
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
23
Dimana 𝑛𝑔 adalah jumlah total kelompok semantik.
Setelah proses stemming, semua kata telah direduksi menjadi kata dasar.
Dalam kelompok yang tidak tergabung secara keseluruhan, akan ada lebih dari
satu bentuk kata dasar dalam kelompok tersebut. Ini berarti tidak semua kata
dalam kelompok tersebut dikelompokkan pada kata dasar yang sama. Algoritma
stemming yang digunakan tidak dapat mengabungkan kata-kata tersebut.
Ketidakmampuan sebuah stemmer dalam menggabungkan kata-kata dalam sebuah
kelompok semantik g pada stem yang sama dapat dihitung dengan menggunakan
rumus Unachieved Merge Total (UMT)
𝑈𝑀𝑇𝑔 = 0.5 ∑ 𝑛𝑔𝑖(𝑁𝑔 − 𝑛𝑔𝑖
)𝑖∈[1..𝑓𝑔] …(6.3)
Dimana 𝑓𝑔 adalah jumlah stem yang berbeda dalam kelompok semantik,
dan 𝑛𝑔𝑖 adalah jumlah kata dalam kelompok tersebut yang telah menjadi stem i.
Nilai total UMT dari semua kelompok dari sampel teks dinamakan Global
Unachieved Merge Total (GUMT)
𝐺𝑈𝑀𝑇 = ∑ 𝑈𝑀𝑇𝑔𝑖𝑖∈𝑛𝑔 …(6.4)
Dan didapatkanlah Understemming Index (UI) dengan rumus sebagai
berikut.
𝑈𝐼 =𝐺𝑈𝑀𝑇
𝐺𝐷𝑀𝑇 …(6.5)
Sebuah stemmer mungkin mengubah banyak pasangan kata yang berasal
dari kelompok-kelompok semantik yang berbeda ke dalam stem yang identik.
Setiap stem mendefinisikan sebuah kelompok stem yang anggotanya mungkin
berasal dari sejumlah kelompok semantik yang berbeda. Jika semua kata dari
kelompok stem tertentu berasal dari kelompok semantik awal yang sama, maka
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
24
kelompok stem tidak mengandung kesalahan, sebaliknya jika kelompok stem
tertentu berisi anggota yang berasal dari kelompok-kelompok semantik yang
berbeda, ini berarti bahwa telah terjadi kesalahan penggabungan. Jumlah
kesalahan penggabungan dalam sebuah kelompok stem, yang mengandung stem
yang berasal dari 𝑓𝑠 kelompok semantik awal yang berbeda, dinamakan Wrongly-
Merged Total (WMT)
𝑊𝑀𝑇𝑔 = 0.5 ∑ 𝑛𝑠𝑖(𝑁𝑠 − 𝑛𝑠𝑖
)𝑖∈[1..𝑓𝑠] …(6.6)
Dimana 𝑁𝑠 adalah jumlah item dalam kelompok stem, 𝑛𝑠𝑖 adalah jumlah
stem yang berasal dari kelompok semantik awal ke-i. Jumlah wrongly-merged
untuk semua kata-kata dalam sampel teks setelah proses stemming dinamakan
Global Wrongly-Merged Total (GWMT).
𝐺𝑊𝑀𝑇 = ∑ 𝑊𝑀𝑇𝑠𝑖𝑖∈𝑛𝑠 …(6.7)
Dimana 𝑛𝑠 adalah jumlah kelompok stem setelah proses stemming. Setiap
kata dalam kelompok semantik tertentu memiliki kemungkinan untuk
digabungkan dengan kata-kata dari kelompok semantik yang berbeda, yang harus
dihindari. Untuk sebuah kelompok tertentu, nilai ini disebut Desired Nonmerged
Total (DNT).
𝐷𝑁𝑇𝑔 = 0.5 𝑁𝑔(𝑊 − 𝑁𝑔) …(6.8)
Dimana W adalah jumlah total kata dalam sampel teks. Jumlah
kemungkinan untuk semua kata dalam sampel teks dinamakan Global Desired
Non-Merge Total (GDNT)
𝐺𝐷𝑁𝑇 = ∑ 𝐷𝑁𝑇𝑔𝑖∈[1..𝑁𝑔] …(6.9)
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
25
Dan didapatkanlah Overstemming Index (OI) dengan rumus sebagai
berikut.
𝑂𝐼 =𝐺𝑊𝑀𝑇
𝐺𝐷𝑁𝑇 …(6.10)
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
26
BAB III
METODOLOGI DAN PERANCANGAN APLIKASI
3.1 Metodologi Penelitian
Metode penelitian yang digunakan dalam penelitian ini adalah sebagai
berikut.
a. Studi Fisibilitas
Studi fisibilitas atau disebut juga sebagai studi kelayakan, dilakukan untuk
mengukur tingkat efektifitas dari web search engine laman FAQ sebagai
sumber informasi untuk membantu menyelesaikan masalah bagi pengguna
website Gramedia Digital. Dalam studi ini dilakukan pengumpulan data dan
informasi. Teknik pengumpulan informasi yang dilakukan adalah survey.
b. Studi Literatur
Tahap studi literatur merupakan studi yang mempelajari teori-teori dasar
yang berhubungan dengan search engine, whoosh library, website scraping,
stemming, dan metode evaluasi Paice. Teori-teori tersebut akan menjadi
acuan atau pedoman dalam pengerjaan laporan ini. Studi literatur dapat
diambil dari berbagai sumber, diantaranya buku, jurnal ilmiah, tugas akhir
dari mahasiswa sarjana maupun pascasarjana dan artikel dari akademisi
secara cetak maupun online.
c. Perancangan Sistem
Sebelum sampai kepada tahap implementasi, dilakukan perancangan sistem
dengan merancang alur kerja sistem dalam bentuk Flowchart, dan
Rancangan tampilan akan digunakan sebagai antarmuka aplikasi.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
27
d. Implementasi
Pada tahap ini akan dibangun stemmer dan web search engine dengan
mengimplementasikan algoritma stemming Enhanced Confix Stripping
dengan rancangan dan tampilan yang sudah ditetapkan pada proses
perancangan. Implementasi akan menggunakan bahasa pemrograman
Python.
e. Pengujian Sistem dan Evaluasi
Pengujian sistem akan dilakukan untuk menentukan keberhasilan proses
sistem dan dilanjutkan dengan evaluasi keberhasilan Stemmer terhadap Web
Search engine dengan menggunakan metode evaluasi Paice.
3.2 Pengumpulan dan Preprocessing Data
Sebelum melakukan implementasi terhadap sistem, dilakukan pengumpulan
data-data yang diperlukan untuk mendukung proses berjalannya sistem. Data yang
diperlukan berupa kamus kata dasar, yaitu list kata dasar yang berjumlah 30.000
kata, data akan disimpan dalam bentuk txt, dan digunakan untuk mencocokkan
kata yang dicari dengan kata dasar.
Data lain yang dibutuhkan adalah konten FAQ Gramedia Digital, yang
didapat dari melakukan scraping, pada situs Gramedia digital. Teknik scraping
yang dilakukan menggunakan Bahasa pemrograman python, dibantu dengan
BeautifulSoup package menarik data dari dokumen HTML dan XML. Konten
FAQ yang telah melalui proses scraping akan dirubah ke dalam bentuk JSON
sehingga dapat dimasukkan ke dalam index Whoosh, yang digunakan sebagai
corpus untuk pencarian berdasarkan kata dasar.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
28
Selain itu juga dilakukan penarikan informasi 10.000 judul buku dalam
bentuk JSON dari API Gramedia digital. dokumen ini juga akan diproses dan
dimasukkan ke dalam index Whoosh, yang digunakan sebagai corpus untuk
pencarian berdasarkan kata dasar. Hal ini dilakukan menambahkan data index
yang terbatas pada FAQ saja, sehingga pencarian menjadi lebih relevan.
3.3 Perancangan Sistem
Terdapat flowchart, dan rancangan tampilan yang akan dijelaskan sebagai
berikut.
3.2.1 Flowchart
Alur jalannya Web Search Engine ini akan dijelaskan sebagai berikut.
A. Flowchart Sistem
Gambar 3.1 merupakan penjabaran alur kerja utama dari sistem Web Search
Engine berbasis algoritma stemming secara umum. Dimulai dari menampilkan
halaman utama yang berisi search bar. Pengguna dapat memasukkan query pada
kolom pencarian yang sudah disediakan, dan menekan tombol search yang
terdapat disebelahnya. Masukan dari Pengguna tersebut akan masuk ke dalam
proses stemming yang nantinya akan dijelaskan pada flowchart berikutnya, dan
hasil dari penyederhanaan menjadi kata dasar ini akan dilanjutkan dengan proses
searching.
Proses searching dilakukan untuk mencari kata dasar pada dokumen
sehingga mendapatkan hasil yang relevan. Proses ini akan memberikan keluaran
berupa hasil pencarian, dan menampilkannya pada halaman utama. Hasil
pencarian ini akan berisi judul FAQ/buku dan link dari konten tersebut, yang
relevan dengan masukan pengguna
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
29
Gambar 3.1 Flowchart Sistem Pencarian
B. Flowchart Stemming
Pada Gambar 3.2 Dijelaskan alur proses stemming secara umum. Proses ini
melakukan pengerjaan kalimat yang masukan dari pengguna, dan
dinormalisasikan. Proses normalisasi dilakukan untuk menyisihkan simbol, dan
merapikan kalimat menjadi huruf kecil secara keseluruhan. Lalu kalimat dipecah
menjadi kata-kata dan dilanjutkan ke proses berikutnya.
Apabila kata memiliki tanda penghubung (‘-‘), maka kata tersebut
merupakan kata hyphenated, kata tersebut pun dipisah berdasarkan kata hubung
dan dilakukan stemming terhadap keduanya. Bila kedua kata tersebut memiliki
kata dasar yang sama, maka kata dasar tersebut akan masuk ke dalam baris hasil
kata dasar. Sebaliknya, bila kedua kata tersebut tidak memiliki kata dasar yang
sama, maka kata asli akan dimasukkan ke baris hasil kata dasar.
Bila kata tidak memiliki tanda penghubung, maka akan langsung dilakukan
proses stemming Enhanced Confix Stripping Termodifikasi yang akan dijelaskan
pada gambar berikutnya. Kata yang dihasilkan oleh proses ini akan dimasukkan
ke dalam baris hasil kata dasar.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
30
Apabila kata yang dapat diproses dari kalimat tersebut sudah habis, maka
proses ini akan memberikan output berupa baris hasil kata dasar, yang akan
digunakan untuk proses searching nantinya.
Gambar 3.2 Flowchart Stemming
C. Flowchart Enhanced Confix Stripping Termodifikasi
Pada flow chart ini dijelaskan alur algoritma stemming Enhanced Confix
Stripping Termodifikasi yang digunakan untuk stemming kata menjadi kata dasar
pada web search engine. Alur dimulai dengan langsung mengecek apakah kata
tersebut merupakan kata dasar. Bila betul kata akan langsung masuk ke hasil kata
dasar dan alur selesai. Tetapi bila kata belum merupakan kata dasar, akan dicek
apakah kata lebih dari 3, bila tidak berarti kata tidak layak untuk di-stem sehingga
akan langsung masuk ke hasil kata dasar.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
31
Selanjutnya akan dilakukan pengecekan terhadap aturan kata precedence,
kata ini memiliki imbuhan awalan dan akhiran “be-“ “-lah” (contoh: bersekolah),
“be-“ “-an” (contoh: “bertahan”), “me-“ “-i” (contoh: “mencapai”), “di-“ “-i”
(contoh: “dimulai”), “pe-“ “-i” (contoh: “petani”), “ter-“ “-i” (contoh: “terabai”).
Apabila benar, akan dilakukan penghilangan awalan terlebih dahulu, dan dicek
lagi apakah kata merupakan kata dasar, lalu dilakukan penghilangan akhiran yang
disusul dengan pengecekan kata dasar. Apabila kata tersebut bukan merupakan
kata dasar, kata tersebut akan dikembalikan menjadi bentuk asli.
Kata yang telah dikembalikan akan dilakukan penghilangan akhiran terlebih
dahulu, dan penghilangan awalan. Apabila kata belum merupakan kata dasar akan
dilakukan metode pengembalian akhiran. Sistem akan mengembalikan akhiran
terakhir sebelum dilakukan penghilangan awalan. Apabila terdapat akhiran “-
kan”, kata akan dihilangkan akhiran “-an” terlebih dahulu, baru ditambahkan
kembali menjadi akhiran “-kan”. Setelah itu akan dilakukan penghilangan awalan
kembali, untuk melihat apakah akhirannya memang merupakan bagian dari kata
dasar kata tersebut.
Apabila kata tersebut bukan juga merupakan kata dasar, maka kata awal
akan dikembalikan, dan dianggap sebagai kata dasar. Penjelasan mengenai
hilangkan awalan dan akhiran akan dibahas pada gambar berikutnya
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
32
Gambar 3.3 Flowchart Enhanced Confix Stripping Termodifikasi
D. Flowchart Hilangkan Awalan
Gambar 3.4 menjelaskan flowchart yang digunakan untuk menghilangkan
awalan dari suatu kata. kata akan dicek jika memiliki awalan yang dapat
dihilangkan, dan terdapat batasan untuk menghapus awalan sebanyak tiga kali.
Lalu secara berturut-turut akan dilakukan penghilangan awalan yang tidak
merubah bentuk kata dasarnya, yaitu “di-“, “ke-“, “se-“. Dilanjutkan dengan
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
33
penghapusan awalan yang dapat merubah kata dasarnya, yaitu “te-“, “be-“, “me-“,
“pe-“.
Gambar 3.4 Flowchart Hilangkan Awalan
E. Flowchart Hilangkan Akhiran
Pada Gambar 3.5 dijelaskan alur penghilangan akhiran. Alur penghilangan
akhiran lebih sederhana dibandingkan dengan penghilangan awalan. Penghilangan
akhiran memiliki tiga tahap yaitu penghilangan particle, yang dilanjutkan dengan
possessive pronouns, dan terakhir adalah derivational suffixes.
Gambar 3.5 Flowchart Hilangkan Akhiran
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
34
F. Flowchart Searching
Gambar 3.6 merupakan flowchart searching yang dilakukan dengan
melakukan pencarian dokumen yang relevan dengan baris kata yang didapat dari
proses stemming. Pencarian akan dilakukan dengan keseluruhan baris kata, dan
secara per kata. Dokumen yang telah ditemukan akan memberikan keluaran
sebagai daftar dokumen yang memiliki link dan penjelasan yang relevan dengan
baris kata. Bila tidak ditemukan, pencarian akan dihentikan dan memberikan
keluaran bahwa pencarian tidak ditemukan.
Gambar 3.6 Flowchart Searching
3.2.2 Tampilan Antarmuka
Sistem Web Search Engine yang diimplementasi perlu adanya rancangan
tampilan antarmuka sehingga dapat digambarkan dengan mudah dan jelas pada
saat mengimplementasikannya.
Gambar 3.7 adalah rancangan tampilan dari halaman stemmer yang
memang hanya digunakan untuk melakukan uji coba evaluasi Paice, sehingga
tidak dimasukkan pada aplikasi. Tampilan berisi penjelasan dan kolom yang
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
35
digunakan untuk memasukkan query yang akan dicari kata dasarnya. Masukan
oleh pengguna dapat berupa kata maupun kalimat, dan mengeluarkan kata dasar
dalam bentuk kata atau kalimat juga.
Gambar 3.7 Rancangan Tampilan Antarmuka Stemmer
Gambar 3.8 adalah tampilan dari halaman utama aplikasi Web Search
Engine. Halaman ini terdiri dari kolom search. Dan baris hasil pencarian yang
relevan terhadap FAQ atau buku yang akan muncul jika pengguna memasukkan
kata/kalimat untuk ke dalam kolom search. Hasil pencarian ini akan berbentuk
judul FAQ atau buku yang bertautan dengan link menuju konten tersebut yang
berada pada Gramedia Digital.
Gambar 3.8 Rancangan Tampilan Antarmuka Search
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
36
BAB IV
IMPLEMENTASI DAN UJI COBA
4.1 Spesifikasi Sistem
Pada tahap perancangan dan pembangunan sistem, perincian spesifikasi
sistem yang digunakan sebagai berikut.
a. Perangkat Keras
Berikut dijabarkan perangkat keras yang terdapat pada notebook Dell
Inspiron 3421 yang digunakan untuk mengembangkan sistem ini.
• Processor Intel Core i3-3217U 1.8GHz
• RAM 6,00 GB
• NVIDIA GeForce GT 625M
• HDD 470 GB
b. Perangkat Lunak
• Python 3.5
• Virtualenv
• PyCharm
• Beautifulsoup
• Google Chrome atau Mozilla Firefox
• Sistem Operasi: Windows 10 64-bit
4.2 Implementasi Sistem
Aplikasi Web Search Engine diimplementasikan menggunakan Bahasa
pemgrograman python. Aplikasi ini terdiri dari 2 algoritma utama, yaitu stemming
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
37
dan searching. Stemming digunakan untuk menemukan kata dasar dari suatu kata.
Kata dasar yang telah ditemukan akan digunakan untuk meningkatkan hasil yang
relevan dari searching pada Web Search Engine.
4.2.1 Implementasi Algoritma
A. Potongan Kode Stem
Pada kelas Stem terdapat inisialisasi kamus dan aturan, yang akan menjadi
landasan proses stemming. Kamus berisi kumpulan kata dasar yang digunakan
untuk mencocokkan dengan masukan pengguna yang akan melalui proses
stemming. Aturan berisi kumpulan aturan yang digunakan untuk proses stemming.
Proses dimulai dengan menormalisasikan query yang masuk, dan melakukan
proses split() berdasarkan spasi untuk mendapatkan masing-masing kata.
Kemudian setiap kata akan di Stemming, dan hasilnya akan disatukan kembali
menjadi kalimat dengan kata dasar.
Gambar 4.1 Potongan kode Tahap Stemming
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
38
Pada kode ini juga akan dilakukan fungsi pembagian antara kata tunggal dan
bertanda penghubung (hyphenated word). Kata tunggal akan langsung masuk ke
proses stemming, sedangkan kata bertanda hubung akan dilakukan pemisahan
terlebih dahulu. hasil dari pemisahan akan dicocokkan, bila hasil kata dasar dari
kedua kata yang dipisah sama, maka kata dasar dimasukkan ke dalam list hasil
kata dasar. Proses ini akan berjalan hingga kata habis.
B. Potongan Kode Enhance Confix Stripping Termodifikasi
Pada kelas Stemming, memiliki fungsi start_stemming_process yang
merupakan salah satu fungsi utama stemming. Pada awalnya langsung dilakukan
pengecekan apabila kata cocok dengan kata dasar yang terdapat pada kamus. Lalu
accept_visitors juga digunakan untuk melaksanakan aturan umum. Jika kata
termasuk dalam aturan is_precedence, kata akan dilakukan penghapusan awalan
terlebih dahulu (remove_prefixes()), setelah itu akan dilakukan penghapusan
akhiran (remove_suffixes()). Jika ternyata aturan precedence tidak terpenuhi, kata
akan dikembalikan ke bentuk awal dan melanjutkan alur program biasa.
Setelah kata dikembalikan ke bentuk awal, kata kembali dilakukan
penghilangan dimulai dari akhiran dan lalu awalan. Terakhir, bila masih gagal,
akan dilakukan loop_pengembalian_akhiran() yang berfungsi untuk
mengembalikan akhiran terakhir sebelum dilakukan penghapusan awalan, dan
dilanjutkan dengan penghapusan awalan. Fungsi ini dilakukan untuk mencegah
overstemming akhiran.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
39
Gambar 4.2 Potongan Kode tahap Enhanced Confix Stripping Termodifikasi
C. Potongan Kode Aturan
Gambar 4.3 merupakan potongan kode dari kelas aturan. Kelas ini hanya
bertugas untuk memberikan aturan-aturan yang digunakan kepada kelas stem
utama. Terdapat fungsi kata pendek yang digunakan untuk mengukur panjang
kata, bila tidak lebih dari 3, maka kata tidak akan di stem. Fungsi hapus P
(particle), PP (possessive pronouns), dan DS (derivational Suffix), yang
digunakan untuk menghilangkan akhiran. Fungsi aturan prefix1a sampai atuarn
prefix42 yang digunakan untuk menghilangkan awalan. Proses penghilangan
awalan akhiran ini sangat bergantung pada regular expression operations yang
merupakan fungsi python yang berguna untuk memanipulasi string dengan pola-
pola tertentu. Fungsi ini digunakan untuk mencari awalan atau akhiran dengan
pola tertentu, menghapusnya dari kata, dan menambahkannya pada removal, yang
menjadi catatan penghilangan imbuhan.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
40
Gambar 4.3 Potongan Code Aturan
D. Potongan Kode Searching
Gambar 4.4 merupakan potongan kode dari kelas searching, yang terdapat
fungsi search_index(). Fungsi ini digunakan untuk mencari kalimat input yang
dimasukkan oleh pengguna ke dalam dokumen yang terdapat di dalam index
Whoosh.
Gambar 4.4 Potongan Kode Searching
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
41
4.2.2 Tampilan
Pada bagian ini dijelaskan bagaimana rancangan dari tampilan aplikasi
setelah dilakukan implementasi pada sistem.
A. Tampilan Stemmer
Stemmer Pada gambar 4.5 digambarkan tampilan dari Aplikasi Stemmer,
Aplikasi stemmer tidak terdapat pada halaman utama. Karena hanya digunakan
untuk mencari kata dasar yang akan dipakai untuk uji coba stemmer, dimana akan
dilakukan evaluasi dengan metode Paice.
Gambar 4.5 Tampilan Stemmer
Setelah pengguna memasukkan kata atau kalimat pada stemmer, aplikasi
akan mengemberikan keluaran berupa kata dasar, atau kata awal apabila tidak bisa
menemukan kata dasar setelah proses pemenggalan dilakukan.
Gambar 4.6 Tampilan Stemmer Memberikan Kata Dasar
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
42
B. Tampilan Web Search Engine
Pada gambar 4.7 digambarkan tampilan dari halaman utama yang telah
diimplementasikan Web Search Engine dan Stemmer Enhanced Confix Stripping
Termodifikasi. Pada bagian tengah halaman, terdapat kolom pencarian yang dapat
digunakan pengguna untuk melakukan stemming dan pencarian FAQ dan buku
terhadap suatu kalimat atau kata berbahasa Indonesia.
Gambar 4.7 Screenshot Tampilan Halaman Utama
Pada Gambar 4.8 digambarkan halaman utama yang telah diberikan query
oleh pengguna yaitu “Pembayaran”. Pembayaran berhasil di-stem menjadi kata
dasar “bayar” dan dilakukan pencarian pada index FAQ dan buku. Keluaran yang
dihasilkan adalah judul FAQ dan buku yang relevan dengan hasil pencarian. Hasil
dari pencarian ini disertai URL, sehingga pengguna dapat langsung membuka
laman dari FAQ atau buku tersebut.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
43
Gambar 4.8 Screenshot Tampilan halaman utama saat pencarian
4.3 Skenario Uji Coba
Setelah berhasil melakukan implementasi Stemmer terhadap Web Search
Engine, dilakukan skenario uji coba untuk mengevaluasi metode Stemming
Enhanced Confix Stripping termodifikasi dengan metode evaluasi Paice.
Pengujian ini dilakukan dengan melakukan stemming terhadap sampel kata
berimbuhan. Kumpulan kata akan dikelompokkan berdasarkan kelompok (g)
menurut kata dasarnya. Hasil pengujian secara berurutan adalah mencangkup nilai
Desired Merge Total (DMT), Unachieved Merge Total (UWT), Desired Non-
Merge Total (DNT), dan Wrongly-Merged Total (WWT), untuk mendapatkan
nilai Understemming Index (UI) dan Overstemming Index (OI).
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
44
Kelompok kata berimbuhan ini akan dibuat dalam bentuk tabel kelompok
semantik, yang dikelompokkan berdasarkan kata dasar. Kata yang dijadikan
sample terdiri dari 100 kelompok g dengan total 500 kata. Akan dijelaskan
perhitungan dalam evaluasi ini dengan contoh sebagai berikut.
Pengambilan kelompok yang memiliki hasil stemming yang gagal, berikut
akan dijelaskan perhitungannya. Dari tabel 4.1 dapat dilihat pada kelompok
semantik g11, kata “bernilai” telah mengalami kegagalan stemming, yang
seharusnya menjadi kata nilai. Perhitungan dari kelompok g11 adalah sebagai
berikut.
Tabel 4.1 Hasil stemming kata dari kelompok semantik g11
Kelompok Kata Awal Hasil
g11
nilai nilai
menilai nilai
bernilai nila
penilaian nilai
dinilai nilai
Jumlah kata pada kelompok semantik 11:
Ng11 = 5
Jumlah kata yang berhasil menjadi kata dasar:
ng11 = 4
DMTg11 = 0,5 Ng11 (Ng11 – 1)
DMTg11 = 0,5 x 5 (5-1)
DMTg11 = 10
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
45
UMTg11 = 0.5 ∑ 𝑛11𝑖(𝑁11 − 𝑛11𝑖
)𝑖∈[1..𝑓11]
UMTg11 = 0.5 x ( 𝑛111(𝑁11 − 𝑛111
) + 𝑛112(𝑁11 − 𝑛112
))
UMTg11 = 0.5 x (4 (5-4) + 1 (5-1)
UMTg11 = 4
Pada tabel 4.2 terdapat kelompok semantik g32 yang mengalami 2
kegagalan stemming dengan hasil kata yang sama, perhitungannya adalah sebagai
berikut.
Tabel 4.2 Hasil stemming kata dari kelompok semantik g32
Kelompok Kata Awal Hasil
g32
ketik ketik
mengetik etik
pengetik etik
berketik ketik
diketikkan ketik
Jumlah kata pada kelompok semantik 32:
Ng32 = 5
Jumlah kata yang berhasil menjadi kata dasar:
ng32 = 3
DMTg32 = 0,5 Ng32 (Ng32 – 1)
DMTg32 = 0,5 x 5 (5-1)
DMTg32 = 10
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
46
UMTg32 = 0.5 ∑ 𝑛32𝑖(𝑁32 − 𝑛32𝑖
)𝑖∈[1..𝑓32]
UMTg32 = 0.5 x ( 𝑛321(𝑁32 − 𝑛321
) + 𝑛322(𝑁32 − 𝑛322
))
UMTg32 = 0.5 x (3 (5 – 3) + 2 (5 - 2))
UMTg32 = 6
Setelah melakukan penghitungan UMT dan DMT, selanjutnya dilakukan
penyusunan ulang dari kelompok kata yang telah melalui proses stemming.
Tabel 4.3 Hasil stemming kata dari kelompok semantik g
Kata Awal Hasil Asal Kelompok Ns ns WMT
diminati mati g8 2 1 0,5
mati mati g101
bernilai nila g11 2 1 0,5
nila nila g102
beruang beruang g16 1 1 0
rang rang g103 2 1 0,5
dikurangi rang g16
etik etik g104
3 1 2 mengetik etik g32
pengetik etik g32
Dilihat dari tabel 4.3, setiap kata akan bergabung dengan kata lain yang
memiliki hasil kata dasar yang sama. Selanjutnya akan dihitung WMT dari g101,
g102, g103, yang akan dijelaskan sebagai berikut.
𝑊𝑀𝑇𝑠 = 0.5 ∑ 𝑛𝑠𝑖(𝑁𝑠 − 𝑛𝑠𝑖
)𝑖∈[1..𝑓𝑠]
𝑊𝑀𝑇𝑠1 = 0,5 (1 (2 – 1))
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
47
𝑊𝑀𝑇𝑠1 = 0,5
Perhitungan dari g104 akan dijelaskan sebagai berikut.
𝑊𝑀𝑇𝑠 = 0.5 ∑ 𝑛𝑠𝑖(𝑁𝑠 − 𝑛𝑠𝑖
)𝑖∈[1..𝑓𝑠]
𝑊𝑀𝑇𝑠 = 0,5 (1 (3 – 1) + 2 (3 – 2))
𝑊𝑀𝑇𝑠 = 2
Selanjutnya akan dilakukan penghitungan DNT adalah sebagai berikut.
W = 504 kata
DNT = 0,5 Ng (W – Ng)
DNT = 0,5 x 5 (504 -5)
DNT =1247,5
DNT jumlah kelompok g1 - g100 = 1247,5 x 100 = 124750
DNT dari masing-masing 101 – 104:
DNT = 0,5 x 1 (504 – 1)
DNT = 251,5
DNT jumlah kelompok g101 - g10 = 251,5 x 4 = 1006
GDNT = 125756
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
48
4.4 Analisis
Dari data hasil perhitungan DMT dan UMT yang terdapat pada lampiran,
dapat diperoleh dari tiap-tiap nilai yang disebutkan menjadi GDMT dan GUMT.
Dari perhitungan tersebut dapat diperoleh understemming index (UI)
𝐺𝐷𝑀𝑇 = ∑ 𝐷𝑀𝑇𝑔𝑖𝑖∈𝑛𝑔
GDMT = 1000
𝐺𝑈𝑀𝑇 = ∑ 𝑈𝑀𝑇𝑔𝑖𝑖∈𝑛𝑔
GUMT = 22
UI = GDMT / GUMT = 22/1000 = 2,2 x 10-4
OI = GWMT / GDNT = 3,5/125756 = 2,78 x 10-5
Dari hasil pengujian stemming di atas, telah berhasil dilakukan. Nilai
Understemming index berupa 2,2 x 10-4 dan Overstemming index berupa 2,78 x
10-5 yang mendekati nol menunjukkan bahwa stemmer berhasil memproses kata
berimbuhan menjadi kata dasar dengan sedikit kesalahan stemming.
Namun masih terdapat kesalahan stemming, seperti kata “nilai” menjadi
“nila”, kata “uang” menjadi “beruang”, kata “ketik” menjadi “etik”. Contoh
kesalahan stemming tersebut sebenarnya tidak jauh dari keambiguan yang
terrdapat dalam proses stemming. Karena sesuai dengan berjalannya proses
algoritma stemming, terdapat kelemahan sistem yang tidak bisa membaca konteks
dari kalimat/kumpulan kata tersebut. Meskipun pada saat di stem, memang benar
bahwa kata beruang, etik, dan nila merupakan kata dasar. Namun terkadang tidak
sesuai dengan maksud kalimat terdapat pada konteks apa.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
49
Pengembangan pada algoritma stemming dilakukan untuk mengerucutkan
kesalahan pada saat stemming, namun tidak menutup kemungkinan terjadinya
kesalahan
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
50
BAB V
SIMPULAN DAN SARAN
5.1 Simpulan
Dari hasil penelitian yang dilakukan, dapat disimpulkan sebagai berikut.
1. Metode Stemming Enhanced Confix Stripping Termodifikasi telah berhasil
diimplementasikan pada Web Search Engine. Aplikasi ini dapat menampilkan
kata dasar yang benar, dan menampilkan informasi FAQ dan buku yang relevan
dengan query pencarian.
2. Algoritma Enhanced Confix Stripping Termodifikasi telah berhasil
melakukan uji dengan menggunakan 100 kelompok kata. Dari hasil evaluasi Paice
didapatkan Understemming index berupa 2,2 x 10-4 dan Overstemming index
berupa 2,78 x 10-5 .
5.2 Saran
Aplikasi Web Search Engine yang dibuat memiliki kekurangan dan
keterbatasan. Saran untuk pengembangan aplikasi ini adalah sebagai berikut.
1. Mengembangkan algoritma stemming dengan menambahkan nilai konteks
penulisan kata. Penambahan Elemen konteks dalam algoritma disebabkan
adanya ambiguitas dari kata yang bisa memiliki beberapa kemungkinan kata
dasar. Penambahan elemen ini akan menambahkan tingkat akurasi stemming
dari kata yang ambigu.
2. Menggunakan algoritma tambahan lainnya, seperti Page Rank, dan Link
Popularity untuk mengurutkan hasil pencarian dari yang paling akurat.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
51
DAFTAR PUSTAKA
Baeza-Yates, R. (2011). Modern Information Retrieval: The Concepts and
Technology Behind Search. Santiago, Chile: Addison Wesley Longman.
Broder, A. Z. (1997). Syntactic clustering of the web. Computer Networks and
ISDN Systems, 1157-1166.
Chaput, M. (2017, June 30). Whoosh Documentation release 2.7.4. Diambil
kembali dari https://whoosh.readthedocs.io/en/latest/:
https://media.readthedocs.org/pdf/whoosh/latest/whoosh.pdf
Cording, P. H. (2011). Algorithms for Web Scraping. Diambil kembali dari
Danmarks Tekniske Universitet:
www2.imm.dtu.dk/pubdb/views/edoc_download.php/6183/pdf/imm6183.p
df
Digital, G. (2018). Bantuan. Diambil kembali dari Gramedia Digital:
https://ebooks.gramedia.com/
Dinda. (2017). Pentingnya Search Engine untuk laman FAQ. (H. Rafael,
Pewawancara)
Dunning, T. (1994). Statistical Identification of Language. Mexico: New Mexico
State University.
Gramedia. (2017). Survey Umpan Balik Pelanggan Terhadap Pelayanan
Frequently Asked Question. Jakarta: Gramedia Digital.
Jarvelin, K. (2000). IR evaluation methods for retrieving highly relevant
documents. Athens: University of Tampere.
Jelita Asian, B. (2007). Effective Techniques for Indonesian Text Retrieval.
Melbourne: RMIT University.
Jelita Asian, H. E. (2007). Stemming Indonesian. ACM Transactions on Asian
Language Information Processing (TALIP), 1-33.
Jurafsky, D. (2014). Speech and Language Processing. New Jersey: Prentice Hall,
Pearson Education International.
Lindsley, D. (2012). Pycon US - Building A Python-Based Search Engine. Santa
Clara, California, United States of America.
Manning, C. D. (2008). An Introduction to Information Retrieval. Cambridge:
Cambridge University Press.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
52
RIJSBERGEN, C. J. (1979). Information Retrieval. Butterworths, London:
Glasglow University Press.
Satria, R. (2017). Customer Support Report 2017 Bulan Januari dan Februari.
Jakarta: SCOOP.
Sebastian, J. (2013). Implementasi Algoritma Stemming Enhanced Confix
Stripping Pada Web Search Engine (Studi Kasus: Situs Sindo Weekly
Magazine). Tangerang: Universitas Multimedia Nusantara.
Suhartono, D. (2014). Lemmatization Technique in Bahasa: Indonesian language.
JOURNAL OF SOFTWARE, vol. 9, no.5, May, 1202.
Tahitoe, A. D. (2010). Implementasi modifikasi enhanced confix stripping
stemmer untuk bahasa indonesia dengan metode corpus based stemming.
Surabaya: Institut Teknologi Sepuluh Nopember.
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
53
LAMPIRAN
1. Gambar Screenshot perbaikan kesalahan stemming Enhanced Confix
Stripping
2. Tabel hasil stemming
3. Data Riwayat Hidup
4. Form bimbingan skripsi (scan)
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Gambar Screenshot perbaikan kesalahan stemming Enhanced Confix
Stripping
Gambar 1 Screenshot Contoh Kata Sisipan
Gambar 2 Screenshot Contoh Kata dalam aturan 18
Gambar 3 Screenshot Contoh Kata dalam aturan 31
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Gambar 4 Screenshot Contoh kata Derivational Suffix (is|isme|isasi)
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya
Kelompok Kata Awal Hasil Ng ng DMT UMT
g1
bicara Bicara
5 5 10 0
berbicara Bicara
pembicaraan Bicara
membicarakan Bicara
dibicarakan Bicara
g2
wujud Wujud
5 5 10 0
perwujudan Wujud
mewujudkan wujud
terwujud wujud
diwujudkan wujud
g3
tarik tarik
5 5 10 0
ditarik tarik
menarik tarik
penarik tarik
tarikkan tarik
g4
sapu sapu
5 5 10 0
menyapu sapu
penyapu sapu
tersapu sapu
disapu sapu
g5
gagal gagal
5 5 10 0
penggagalan gagal
digagalkan gagal
menggagalkan gagal
kegagalan gagal
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g6
jelas jelas
5 5 10 0
menjelaskan jelas
penjelasan jelas
dijelaskan jelas
kejelasan jelas
g7
tembus tembus
5 5 10 0
menembus tembus
tertembus tembus
ditembus tembus
penembus tembus
g8
minat minat
5 4 10 4
diminati mati
berminat minat
peminatan minat
peminat minat
g9
harga harga
5 5 10 0
menghargai harga
penghargaan harga
dihargai harga
berharga harga
g10
murah murah
5 5 10 0
pemurah murah
bermurah murah
dimurahi murah
termurah murah
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g11
nilai nilai
5 4 10 4
menilai nilai
bernilai nila
penilaian nilai
dinilai nilai
g12
wakil wakil
5 5 10 0
perwakilan wakil
mewakili wakil
diwakili wakil
diwakilkan wakil
g13
hasil hasil
5 5 10 0
berhasil hasil
menghasilkan hasil
penghasil hasil
dihasilkan hasil
g14
dekat dekat
5 5 10 0
didekati dekat
pendekatan dekat
berdekatan dekat
mendekatkan dekat
g15
tingkat tingkat
5 5 10 0
meningkatkan tingkat
ditingkatkan tingkat
peningkatan tingkat
tingkatan tingkat
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g16
kurang kurang
5 4 10 4
mengurangi kurang
kekurangan kurang
dikurangi rang
kurangi kurang
g17
tampar tampar
5 5 10 0
ditampar tampar
menampar tampar
penamparan tampar
tamparan tampar
g18
untung untung
5 5 10 0
menguntungkan untung
diuntungkan untung
keuntungan untung
beruntung untung
g19
ajak ajak
5 5 10 0
mengajak ajak
diajak ajak
pengajak ajak
terajak ajak
g20
kumpul kumpul
5 5 10 0
mengumpulkan kumpul
dikumpulkan kumpul
terkumpul kumpul
kumpulan kumpul
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g21
raih raih
5 5 10 0
meraih raih
diraih raih
peraih raih
teraih raih
g22
tempat tempat
5 5 10 0
ditempati tempat
menempatkan tempat
penempatan tempat
ditempatkan tempat
g23
uang uang
5 4 10 4
keuangan uang
menguangkan uang
beruang beruang
diuangkan uang
g24
belanja belanja
5 5 10 0
berbelanja belanja
membelanjakan belanja
belanjaan belanja
perbelanjaan belanja
g25
gerak gerak
5 5 10 0
Menggerakkan gerak
penggerak gerak
digerakkan gerak
menggerakkan gerak
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g26
pilih pilih
5 5 10 0
memilih pilih
pemilihan pilih
terpilih pilih
dipilih pilih
g27
cari cari
5 5 10 0
pencarian cari
mencarikan cari
pencari cari
dicarikan cari
g28
tua tua
5 5 10 0
tertua tua
menua tua
penuaan tua
setua tua
g29
sama sama
5 5 10 0
persamaan sama
menyamakan sama
bersama sama
persamaan sama
g30
rebut rebut
5 5 10 0
merebut rebut
direbutkan rebut
perebutan rebut
diperebutkan rebut
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g31
bisnis bisnis
5 5 10 0
pebisnis bisnis
berbisnis bisnis
membisniskan bisnis
dibisniskan bisnis
g32
ketik ketik
5 3 10 6
mengetik etik
pengetik etik
berketik ketik
diketikkan ketik
g33
bantu bantu
5 5 10 0
bantuan bantu
dibantu bantu
pembantu bantu
membantu bantu
g34
proses proses
5 5 10 0
prosesan proses
diproses proses
berproses proses
memproses proses
g35
terus terus
5 5 10 0
diteruskan terus
meneruskan terus
seterusnya terus
keterusan terus
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g36
selenggara selenggara
5 5 10 0
diselenggarakan selenggara
menyelenggarakan selenggara
terselenggara selenggara
berselenggara selenggara
g37
juara juara
5 5 10 0
Kejuaraan juara
menjuarai juara
berjuara juara
dijuarai juara
g38
latih latih
5 5 10 0
melatih latih
pelatih latih
latihan latih
dilatih latih
g39
teladan teladan
5 5 10 0
meneladani teladan
keteladanan teladan
diteladani teladan
teladannya teladan
g40
tentu tentu
5 5 10 0
penentuan tentu
ditentukan tentu
menentukan tentu
ketentuan tentu
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g41
lulus lulus
5 5 10 0
lulusan lulus
diluluskan lulus
berkelulusan lulus
meluluskan lulus
g42
bersih bersih
5 5 10 0
membersihkan bersih
dibersihkan bersih
kebersihan bersih
pembersih bersih
g43
cipta cipta
5 5 10 0
pencipta cipta
menciptakan cipta
diciptakan cipta
ciptaan cipta
g44
peran peran
5 5 10 0
berperan peran
diperankan peran
peranan peran
memerankan peran
g45
sesuai sesuai
5 5 10 0
penyesuaian sesuai
disesuaikan sesuai
menyesuaikan sesuai
berkesesuaian sesuai
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g46
lantik lantik
5 5 10 0
dilantik lantik
melantik lantik
pelantikan lantik
terlantik lantik
g47
kembang kembang
5 5 10 0
perkembangan kembang
dikembangkan kembang
mengembangkan kembang
pengembang kembang
g48
cinta cinta
5 5 10 0
mencintai cinta
dicintai cinta
percintaan cinta
kecintaan cinta
g49
sekolah sekolah
5 5 10 0
bersekolah sekolah
menyekolahkan sekolah
disekolahkan sekolah
persekolahan sekolah
g50
adil adil
5 5 10 0
peradilan adil
mengadili adil
pengadilan adil
keadilan adil
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g51
capai capai
5 5 10 0
mencapai capai
pencapaian capai
tercapai capai
dicapai capai
g52
tari tari
5 5 10 0
tarian tari
penari tari
menarikan tari
ditarikan tari
g53
milik milik
5 5 10 0
memiliki milik
dimiliki milik
pemilik milik
kepemilikan milik
g54
siram siram
5 5 10 0
siraman siram
menyirami siram
disiram siram
tersiram siram
g55
tahu tahu
5 5 10 0
pengetahuan tahu
diketahui tahu
mengetahui tahu
berpengetahuan tahu
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g56
tembak tembak
5 5 10 0
penembak tembak
ditembak tembak
menembak tembak
tertembak tembak
g57
butuh butuh
5 5 10 0
kebutuhan butuh
dibutuhkan butuh
membutuhkan butuh
sebutuhnya butuh
g58
usaha usaha
5 5 10 0
pengusaha usaha
mengusahakan usaha
diusahakan usaha
berusaha usaha
g59
tinggal tinggal
5 5 10 0
peninggalan tinggal
meninggal tinggal
ditinggal tinggal
tertinggal tinggal
g60
mahal mahal
5 5 10 0
dimahalkan mahal
kemahalan mahal
termahal mahal
memahalkan mahal
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g61
jauh jauh
5 5 10 0
Menjauhi jauh
dijauhi jauh
berjauhan jauh
kejauhan jauh
g62
serbu serbu
5 5 10 0
diserbu serbu
menyerbu serbu
penyerbuan serbu
serbuan serbu
g63
tanam tanam
5 5 10 0
tanaman tanam
menanam tanam
ditanam tanam
penanaman tanam
g64
dingin dingin
5 5 10 0
pendingin dingin
kedinginan dingin
terdingin dingin
mendinginkan dingin
g65
manfaat manfaat
5 5 10 0
bermanfaat manfaat
dimanfaatkan manfaat
memanfaatkan manfaat
pemanfaatan manfaat
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g66
tambah tambah
5 5 10 0
menambahkan tambah
bertambah tambah
ditambahkan tambah
tambahan tambah
g67
resmi resmi
5 5 10 0
meresmikan resmi
peresmian resmi
diresmikan resmi
keresmiannya resmi
g68
beda beda
5 5 10 0
membedakan beda
dibedakan beda
berbeda beda
pembedaan beda
g69
main main
5 5 10 0
permainan main
mainan main
bermain main
memainkan main
g70
ukur ukur
5 5 10 0
diukur ukur
terukur ukur
pengukuran ukur
mengukur ukur
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g71
tema tema
5 5 10 0
bertema tema
ditemakan tema
menemakan tema
bertemakan tema
g72
putus putus
5 5 10 0
memutuskan putus
diputuskan putus
keputusan putus
terputusnya putus
g73
masalah masalah
5 5 10 0
bermasalah masalah
dipermasalahkan masalah
mempermasalahkan masalah
permasalahan masalah
g74
umum umum
5 5 10 0
pengumuman umum
diumumkan umum
mengumumkan umum
umumnya umum
g75
tegur tegur
5 5 10 0
menegur tegur
ditegur tegur
teguran tegur
penegur tegur
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g76
tampil tampil
5 5 10 0
menampilkan tampil
penampilan tampil
ditampilkan tampil
bertampilan tampil
g77
merah merah
5 5 10 0
memerah merah
dimerahkan merah
pemerah merah
kemerahan merah
g78
muda muda
5 5 10 0
termuda muda
kemudaan muda
memuda muda
semuda muda
g79
hitung hitung
5 5 10 0
menghitung hitung
dihitung hitung
perhitungan hitung
penghitung hitung
g80
beri beri
5 5 10 0
pemberi beri
memberi beri
pemberian beri
diberi beri
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g81
tulis tulis
5 5 10 0
menulis tulis
ditulis tulis
penulis tulis
tertulis tulis
g82
pesan pesan
5 5 10 0
dipesankan pesan
berpesan pesan
pesanan pesan
pesankan pesan
g83
lomba lomba
5 5 10 0
perlombaan lomba
melombakan lomba
dilombakan lomba
memperlombakan lomba
g84
harus harus
5 5 10 0
keharusan harus
seharusnya harus
mengharuskan harus
diharuskan harus
g85
ulang ulang
5 5 10 0
ulangan ulang
mengulangi ulang
diulang ulang
pengulangan ulang
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g86
daftar daftar
5 5 10 0
pendaftaran daftar
mendaftar daftar
terdaftar daftar
didaftarkan daftar
g87
tarif tarif
5 5 10 0
bertarif tarif
menarifkan tarif
ditarifkan tarif
bertarifkan tarif
g88
nikmat nikmat
5 5 10 0
penikmat nikmat
kenikmatan nikmat
dinikmati nikmat
nikmati nikmat
g89
tetap tetap
5 5 10 0
ditetapkan tetap
menetapkan tetap
ketetapan tetap
penetapan tetap
g90
kirim kirim
5 5 10 0
kiriman kirim
terkirim kirim
pengirim kirim
dikirimi kirim
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g91
daya daya
5 5 10 0
pemberdayaan daya
diberdayakan daya
terperdaya daya
berdaya daya
g92
datang datang
5 5 10 0
berdatangan datang
didatangkan datang
kedatangan datang
pendatang datang
g93
gandeng gandeng
5 5 10 0
bergandengan gandeng
menggandeng gandeng
digandeng gandeng
penggandengan gandeng
g94
kenal kenal
5 5 10 0
terkenal kenal
mengenal kenal
dikenal kenal
perkenalan kenal
g95
kejar kejar
5 5 10 0
mengejar kejar
dikejar kejar
terkejar kejar
pengejaran kejar
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Tabel kelompok semantik dan hasil perhitungannya (lanjutan)
Kelompok Kata Awal Hasil Ng ng DMT UMT
g96
kerja kerja
5 5 10 0
pekerjaan kerja
dipekerjakan kerja
pengerjaan kerja
bekerja kerja
g97
guru guru
5 5 10 0
berguru guru
perguruan guru
digurui guru
menggurui guru
g98
sukses sukses
5 5 10 0
kesuksesan sukses
disukseskan sukses
tersukses sukses
menyukseskan sukses
g99
angkut angkut
5 5 10 0
angkutan angkut
pengangkut angkut
diangkut angkut
mengangkut angkut
g100
ajar ajar
5 5 10 0
belajar ajar
pengajar ajar
diajarkan ajar
pembelajaran ajar
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
DAFTAR RIWAYAT HIDUP
A. Data Pribadi
1. Nama : Hans Rafael
2. Tempat, Tanggal Lahir : Jakarta, 27 September 1995
3. Jenis Kelamin : Laki-laki
4. Kewarganegaraan : Indonesia
5. Agama : Katholik
6. Status : Belum Menikah
7. Alamat : Blok N1/33, Taman Harapan Baru, Bekasi Barat
8. Telepon : 082112438998
9. Email : [email protected]
B. Latar Belakang Pendidikan
1. (2013-Sekarang): Program Kuliah Sarjana Komputer Universitas
Multimedia Nusantara
2. (2010-2013) : SMA Santo Yoseph
3. (2007-2010) : SMP Cahaya Harapan
4. (2001-2007) : SD Cahaya Harapan
C. Pengalaman Kerja
1. Internship sebagai web developer pada Elven Digital tahun 2016.
D. Kemampuan
1. Bahasa pemograman C, C++, C#, Java.
2. Pemrograman web (HTML, CSS, Javascript, XML, AJAX, dan PHP).
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018
Implementasi Algoritma Stemming..., Hans Rafael, FTI UMN, 2018