PEMANFAATAN TEKNIK STEMMING UNTUK APLIKASI TEXT PROCESSING BAHASA INDONESIA.

(1)

SKRIPSI

Oleh :

SEPTIAN BAGUS WAHYONO

NPM : 0734010126

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

JAWA TIMUR

2012

Hak Cipta © milik UPN "Veteran" Jatim :


(2)

SKRIPSI

Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh :

SEPTIAN BAGUS WAHYONO NPM : 0734010126

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

JAWA TIMUR

2012

Hak Cipta © milik UPN "Veteran" Jatim :


(3)

i

Puji syukur kehadirat Allah SWT, yang telah berkenan memelihara dan membimbing penulis, sehingga penulis dapat menyelesaikan pengerjaan dan penyusunan laporan ini. Tak lupa, kami ucapkan rasa terimakasih yang teramat dalam kepada semua pihak yang telah membantu penulis untuk menyelesaikan tugas akhir ini. Serta rasa terimakasih kami yang teramat dalam kepada dosen pembimbing Penulis, Bpk. Basuki Rahmat, S.Si, MT dan Ibu Dr. Ir. Ni Ketut Sari, MT yang telah membimbing Penulis dalam menyelesaikan tugas akhir ini.

Disadari bahwa dalam penulisan laporan ini masih jauh dari kata sempurna. Namun, penulis tetap berharap semoga isi dari laporan ini dapat benar-benar berguna baik untuk para penulis khususnya dan para pembaca pada umumnya, maka dari itu kritik dan saran yang membangun sangat kami harapkan.

Surabaya, 20 Februari 2012

Penulis

Hak Cipta © milik UPN "Veteran" Jatim :


(4)

ii

UCAPAN TERIMA KASIH

Ucapan terima kasih ini saya persembahkan sebagai perwujudan rasa syukur atas terselesaikannya Laporan Tugas Akhir ini. Ucapan terima kasih ini saya tujukan kepada :

1. Allah SWT, karena berkat Rahmat dan berkahNya kami dapat menyusun dan menyelesaikan Laporan Tugas Akhir ini hingga selesai.

2. Bapak Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Industri UPN “Veteran” Jawa Timur.

3. Ibu Dr. Ir. Ni Ketut Sari, MT selaku Ketua Jurusan Teknik Informatika UPN “Veteran” Jawa Timur.

4. Bapak Basuki Rahmat, S.Si, MT selaku Dosen Pembimbing Pertama yang telah meluangkan begitu banyak waktu, tenaga, dan pikiran serta sabar dalam membimbing penulis dari awal hingga terselesaikannya Laporan Tugas Akhir ini.

5. Ibu Dr. Ir. Ni Ketut Sari, MT selaku Dosen Pembimbing Kedua yang telah meluangkan begitu banyak waktu, tenaga, dan pikiran serta sabar dalam membimbing penulis dari awal hingga terselesaikannya Laporan Tugas Akhir ini.

Hak Cipta © milik UPN "Veteran" Jatim :


(5)

iii

6. Kedua orang tua tercinta atas semua doa, dukungan, serta harapan-harapannya pada saat penulis melakukan Tugas Akhir sampai terselesaikannya penyusunan Laporan Tugas Akhir ini.

7. Adikku Alfan Yuliadi yang selalu memberikan semangat serta dorongan untuk menyelesaikan Tugas Akhir ini.

8. Dian Mega Anjarwati (B_ian) yang telah berperan penting dalam memberikan Doa serta Semangat kepada penulis untuk menyelesaikan Tugas Akhir ini.

9. Lucky, Arfin, Eko Sapril, Duwi (Gondrong), Tim Futsal EMJE, Sigit 32, Rizal (Atenk), Bagus (Lek Di) dan semua teman-teman Teknik Informatika yang telah membantu penyusun dalam menyelesaikan Tugas Akhir ini.

Sebagai manusia biasa pasti penulis mempunyai keterbatasan dan banyak sekali kekurangan, terutama dalam penyusunan laporan ini. Oleh karena itu, penulis sangat membutuhkan kritik dan saran yang membangun dalam memperbaiki penulisan laporan ini.

Surabaya, 20 Februari 2012 Tim Penulis

Hak Cipta © milik UPN "Veteran" Jatim :


(6)

iv

Halaman

KATA PENGANTAR ... i

UCAPAN TERIMA KASIH ... ii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... vii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Perumusan Masalah ... 2

1.3 Batasan Masalah... 2

1.4 Tujuan ... 3

1.5 Manfaat ... 3

1.6 Metode Penelitian... 3

1.7 Sistematika Penulisan... 4

BAB II TINJAUAN PUSTAKA ... 6

2.1 Information Retrieval Text Processing (Pengolahan Teks) ... 6

2.2 Text Mining ... 10

2.3 Tokenizer ... 11

2.4 Parsing ... 12

2.5 Top Down Parsing ... 12

2.6 Bottom Up Parsing ... 14

Hak Cipta © milik UPN "Veteran" Jatim :


(7)

v

2.9 Lexical Analyzer ... 18

2.10 Stoplist ... 19

2.11 Morfologi Bahasa Indonesia ... 20

2.12 Stemming ... 23

2.13 Flow Map ... 26

2.14 Unified Modelling Language ... 27

2.15 Semantik Dalam UML ... 32

2.16 Notasi Dalam UML ... 33

2.16.1 Actor ... 33

2.16.2 Use Case ... 34

2.16.3 Class ... 35

2.16.4 Interface ... 35

2.16.5 Interaction ... 36

2.16.6 Note ... 36

2.16.7 Dependency ... 36

2.16.8 Association ... 37

2.16.9 Generalization ... 37

2.16.10 Realization... 38

2.17 Embarcadero Delphi 2010 ... 38

BAB III ANALISIS PERMASALAHAN ... 44

3.1 Analisis Masalah ... 44

3.2 Tahap Pemrosesan Data Teks ... 44

Hak Cipta © milik UPN "Veteran" Jatim :


(8)

vi

3.3.2 Peluruhan Awalan (Prefiks)... 51

3.3.3 Flowchart Proses Stemming ... 53

BAB IV PERANCANGAN DAN IMPLEMENTASI ... 55

4.1 Tahap Perancangan ... 55

4.1.1 Perancangan Proses Aplikasi ... 55

4.1.2 Penggunaan Perangkat Lunak ... 55

4.1.3 Penggunaan Perangkat Keras ... 56

4.2 Desain Antar Muka ... 56

4.3 Desain Tabel Daftar Kata Dasar ... 57

4.4 Desain Tabel Daftar Stoplist ... 58

4.5 Implementasi Algorithma Proses Stemming ... 58

BAB V HASIL PENGUJIAN APLIKASI ... 62

5.1 Tampilan Awal ... 62

5.2 Pengujian Aplikasi ... 63

5.2.1 Pengujian Dengan Input Langsung ... 63

5.2.2 Pengujian Dengan Input File Teks ... 64

BAB VI PENUTUP ... 72

6.1 Kesimpulan ... 72

6.2 Saran ... 72

DAFTAR PUSTAKA ... 74

Hak Cipta © milik UPN "Veteran" Jatim :


(9)

vii

Gambar 2.1 Cara kerja Top Down Parser... 13

Gambar 2.2 Cara kerja Bottom Up Parser ... 14

Gambar 2.3 Cara kerja Hybrid Parser ... 16

Gambar 2.4 Desain dari Porter Stemmer for Bahasa Indonesia ... 26

Gambar 2.5 Metodologi dalam UML ... 29

Gambar 2.6 Notasi Actor ... 33

Gambar 2.7 Notasi Use Case ... 34

Gambar 2.8 Notasi Class ... 35

Gambar 2.9 Notasi Interface ... 35

Gambar 2.10 Notasi Interaction... 36

Gambar 2.11 Notasi Note ... 36

Gambar 2.12 Notasi Dependency... 36

Gambar 2.13 Notasi Asociation ... 37

Gambar 2.14 Notasi Generalization ... 37

Gambar 2.15 Notasi Realization ... 38

Gambar 2.16 Tampilan awal delphi ... 40

Gambar 2.17 Daftar komponen Palet Standard delphi ... 41

Gambar 2.18 Daftar komponen Palet Additional ... 41

Gambar 2.19 Daftar komponen Palet Win 32 ... 41

Gambar 2.20 Daftar komponen Palet System ... 42

Gambar 2.21 Komponen Palet dialog ... 42

Gambar 2.22 Membuat Aplikasi sederhana dengan Delphi ... 42

Hak Cipta © milik UPN "Veteran" Jatim :


(10)

viii

Gambar 4.2 Desain daftar kata dasar ... 57

Gambar 4.3 Desain tabel Stoplist ... 58

Gambar 4.4 Source Code Proses Stemming ... 59

Gambar 4.5 Source Code Proses Stemming imbuhan yang berupa akhiran ... 59

Gambar 4.6 Source Code Proses Stemming akhiran turunan ... 60

Gambar 4.7 Source Code membuka form dialog membaca file bertipe teks ... 61

Gambar 5.1 Tampilan awal form ... 62

Gambar 5.2 Hasil uji aplikasi yang pertama ... 63

Gambar 5.3 Hasil uji aplikasi yang kedua ... 63

Gambar 5.4 Hasil uji aplikasi yang ketiga ... 64

Gambar 5.5 Hasil uji aplikasi yang keempat ... 64

Gambar 5.6 Hasil uji aplikasi yang kelima ... 65

Gambar 5.7 Hasil uji aplikasi yang keenam ... 65

Gambar 5.8 Hasil uji aplikasi yang ketujuh ... 66

Gambar 5.9 Hasil uji aplikasi yang kedelapan ... 66

Gambar 5.10 Hasil uji aplikasi yang kesembilan ... 67

Gambar 5.11 Hasil uji aplikasi yang kesepuluh ... 67

Hak Cipta © milik UPN "Veteran" Jatim :


(11)

ix

Tabel 2.1 Jenis-jenis file dalam delphi ... 43

Tabel 3.1 Kombinasi awalan dan akhiran yang tidak dibenarkan... 47

Tabel 3.2 Formula untuk aturan turunan prefiks ... 52

Tabel 4.1 Keterangan tabel kata dasar ... 58

Tabel 4.2 Keterangan tabel stoplist ... 58

Tabel 5.1 Hasil pengujian aplikasi ( Bagian I ) ... 68

Tabel 5.2 Hasil pengujian aplikasi ( Bagian II ) ... 69

Tabel 5.3 Hasil pengujian aplikasi ( Bagian III ) ... 70

Tabel 5.4 Hasil pengujian aplikasi ( Bagian IV ) ... 71

Hak Cipta © milik UPN "Veteran" Jatim :


(12)

INDONESIA

Dosen pembimbing I : Basuki Rahmat, S.Si, MT. Dosen Pembimbing II : Dr. Ir. Ni Ketut Sari, MT.

Penulis : Septian Bagus Wahyono

ABSTRAK

Pencarian informasi berupa dokumen teks atau yang dikenal dengan istilah Information Retrieval (IR) merupakan proses pemisahan dokumen-dokumen yang dianggap relevan dari sekumpulan dokumen-dokumen yang tersedia.

Bertambahnya jumlah dokumen teks yang harus diakses, diikuti dengan meningkatnya kebutuhan pengguna akan perangkat pencarian informasi yang efektif dan efisien. Efektif berarti user mendapatkan dokumen yang relevan dengan query yang diinputkan. Efisien berarti waktu pencarian yang sesingkat-singkatnya. Stemming adalah salah satu cara yang digunakan untuk meningkatkan performa IR dengan cara mentransformasi kata-kata dalam sebuah dokumen teks ke kata dasarnya. Algoritma Stemming untuk bahasa yang satu berbeda dengan algoritma stemming untuk bahasa lainnya. Sebagai contoh Bahasa Inggris memiliki morfologi yang berbeda dengan Bahasa Indonesia sehingga algoritma stemming untuk kedua bahasa tersebut juga berbeda. Proses stemming pada teks berbahasa Indonesia lebih rumit dan kompleks karena terdapat variasi imbuhan yang harus dibuang untuk mendapatkan root word dari sebuah kata.

Pada Tugas Akhir kali ini membahas tentang penerapan Algoritma stemming dalam bentuk aplikasi yang dapat dijalankan di komputer sehingga mempermudah user dalam pencarian bentuk dasar suatu kata.

Kata kunci : information retrieval, temu kembali informasi, stemming bahasa indonesia.

Hak Cipta © milik UPN "Veteran" Jatim :


(13)

1

1.1. Latar Belakang

Penggunaan Data Mining secara umum diperuntukkan menggali informasi dari data mentah. Salah satu metode yang menarik adalah Text Mining, yang digunakan untuk menggali informasi dari data - data dalam bentuk teks seperti buku, makalah, paper, dan lain sebagainya. Kesulitan yang cukup dominan pada Teks Mining adalah bagaimana data - data dalam bentuk teks dapat dirubah formatnya agar informasi yang mungkin ada dalam teks-teks tersebut dapat diekstraksi dengan baik.

Dari permasalahan di atas, dikembangkan metode pengelompokan dokumen. Pengelompokan dokumen ini bertujuan untuk mengelompokan dokumen yang merepresentasikan satu topik tertentu. Dengan metode ini, user akan menemukan dokumen yang dibutuhkan dengan memilih salah satu kelompok dokumen yang berisi dokumen yang dibutuhkan pengguna tersebut.

Munculnya ide pengelompokan dokumen ini mendorong munculnya berbagai algoritma untuk mengelompokan dokumen. Algoritma-algoritma tersebut diantaranya adalah K-Means, Clustering Based on Frequent Word Sequence (CFWS), Naïve Bayes Classifier (NBC) dan Minor Component Analysis.

Sebelum dapat digunakan sebagai data input untuk proses klasifikasi, dokumen harus dilakukan tahapan preprocessing yang dikenal dengan istilah

Hak Cipta © milik UPN "Veteran" Jatim :


(14)

stemming yaitu teknik ekstraksi untuk memisahkan kalimat bahasa Indonesia menjadi struktur kata berdasarkan kata dasarnya.

Berdasarkan uraian diatas, maka pada tugas akhir ini berfokus pada pembuatan aplikasi pemrosesan teks bahasa Indonesia sebagai langkah awal dari text mining.

1.2. Perumusan Masalah

Rumusan masalah yang digunakan dalam tugas akhir ini adalah :

1. Bagaimana membangun aplikasi yang dapat memisahkan kalimat bahasa Indonesia menjadi beberapa suku kata sesuai dengan kata dasarnya ?

2. Bagaimana menganalisa hasil dari proses pemisahan suku kata tersebut ?

1.3. Batasan Masalah

Agar pembahasan dan penyusunan tugas akhir ini dapat dilakukan secara terarah dan tidak menyimpang serta sesuai dengan apa yang diharapkan, maka perlu ditetapkan batasan-batasan dari masalah yang dihadapi, yaitu :

1. Aplikasi yang dibuat dapat dijalankan pada Sistem Operasi Windows 7. 2. Perangkat lunak yang digunakan untuk membangun aplikasi ini adalah

Embarcadero Delphi 2010.

3. Proses stemming menggunakan bantuan kamus data dan algorithma porter for stemmer untuk bahasa Indonesia.

Hak Cipta © milik UPN "Veteran" Jatim :


(15)

4. Data yang dijadikan bahan input adalah berupa file dokumen yang berekstensi.txt.

5. Aplikasi yang digunakan hanya untuk pemisahan akhiran dari suatu kata yang telah di inputkan.

1.4. Tujuan

Tujuan yang ingin dicapai pada pengerjaan tugas akhir ini adalah:

1. Membangun aplikasi yang dapat memisahkan imbuhan berupa akhiran dari kalimat berbahasa Indonesia menjadi struktur kata menurut kata dasarnya.

2. Mengurangi kegagalan proses pemisahan kata pada suatu kalimat.

1.5. Manfaat

Adapun manfaat dan tujuan yang ingin diperoleh dari pengerjaan tugas akhir ini adalah dapat membuat sistem aplikasi pengolahan teks dengan teknik pemisahan akhiran suatu kata menjadi kata dasarnya, sehingga dapat digunakan untuk kebutuhan pengembangan aplikasi pengolahan kata lainnya.

1.6. Metode Penelitian

Adapun metode penelitian yang dipergunakan dalam pengerjaan tugas akhir ini adalah :

1. Studi Literatur

Mencari referensi dan bahan pustaka tentang teori-teori yang berhubungan dengan permasalahan yang akan dikerjakan dalam tugas akhir ini.

Hak Cipta © milik UPN "Veteran" Jatim :


(16)

2. Studi Kasus

Mencari contoh-contoh kasus serupa yang berhubungan dengan permasalahan dalam tugas akhir ini.

1.7. Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah, identifikasi masalah, maksud dan tujuan yang ingin dicapai, batasan masalah, metodologi penelitian yang diterapkan dalam memperoleh dan mengumpulkan data, waktu dan tempat penelitian, serta sistematika penulisan.

BAB II TINJAUAN PUSTAKA

Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik masalah yang diambil dan hal-hal yang berguna dalam proses analisis permasalahan.

BAB III ANALISIS PERMASALAHAN

Menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar variabel yang diteliti serta model matematis untuk analisisnya.

BAB IV PERANCANGAN DAN IMPLEMENTASI

Membahas mengenai perancangan dan pengimplementasian aplikasi yang telah dibuat ke perangkat yang akan digunakan.

Hak Cipta © milik UPN "Veteran" Jatim :


(17)

BAB V PENGUJIAN APLIKASI

Bab ini membahas pengujian terhadap aplikasi yang telah diimplementasikan tersebut dan hasil pengujiannya.

BAB VI PENUTUP

Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas akhir.

Hak Cipta © milik UPN "Veteran" Jatim :


(18)

6

2.1. Information Retrieval Text Processing (Pengolahan Teks)

Temu kembali informasi (information retrieval) adalah ilmu pencarian informasi pada dokumen, pencarian untuk dokumen itu sendiri, pencarian untuk metadata yang menjelaskan dokumen, atau mencari di dalam database, baik relasi database yang stand-alone atau hipertext database yang terdapat pada network seperti internet atau World Wide Web atau intranet, untuk teks, suara, gambar, atau data. Information retrieval (IR) adalah ilmu yang lahir dari berbagai disiplin ilmu, baik ilmu komputer, matematika, ilmu kepustakaan, ilmu informasi, psikologi kognitif, linguistik, statistik, maupun fisika.

Secara prinsip, penyimpanan informasi dan penemuan kembali informasi adalah hal yang sederhana. Misalkan terdapat tempat penyimpanan dokumen-dokumen dan seseorang (user) merumuskan suatu pertanyaan (request atau query) yang jawabannya adalah himpunan dokumen yang mengandung informasi yang diperlukan yang diekspresikan melalui pertanyaan user. User bisa saja memperoleh dokumen-dokumen yang diperlukannya dengan membaca semua dokumen dalam tempat penyimpanan, menyimpan dokumen-dokumen yang relevan dan membuang dokumen lainnya. Hal ini merupakan perfect retrieval, tetapi solusi ini tidak praktis. Karena user tidak memiliki waktu atau tidak ingin menghabiskan waktunya untuk membaca seluruh koleksi dokumen, terlepas dari kenyataan bahwa secara fisik user tidak mungkin dapat melakukannya. Oleh


(19)

karena itu, diperlukan suatu sistem temu kembali informasi (information retrieval system) untuk membantu user menemukan dokumen yang diperlukannya.

Sistem temu-kembali informasi pada prinsipnya adalah suatu sistem yang sederhana. Misalkan ada sebuah kumpulan dokumen dan seorang user yang memformulasikan sebuah pertanyaan (request atau query). Jawaban dari pertanyaan tersebut adalah sekumpulan dokumen yang relevan dan membuang dokumen yang tidak relevan. Secara matematis hal tersebut dapat dituliskan sebagai berikut :

Q 2n D, ( Persamaan 2.1 ) dimana

Q = pertanyaan (queri), D = dokumen,

n = jumlah dokumen,

2n = jumlah kemungkinan himpunan bagian dari dokumen yang ditemukan.

Sistem temu-kembali akan mengambil salah satu dari kemungkinan tersebut. Sistem temu-kembali informasi pada dasarnya dibagi dalam dua komponen utama yaitu sistem pengindeksan (indexing) yang menghasilkan basis data sistem dan temu-kembali yang merupakan gabungan dari user interface dan look-uptable.

Pada bagian selanjutnya akan dijelaskan berbagai macam sistem pengindeks-an dan teknik-teknik temu-kembali informasi yang telah dikembangkan.


(20)

Pada awalnya, hiperteks dan temu-kembali informasi merupakan bidang penelitian yang berbeda satu dengan yang lain. Hiperteks berkisar pada masalah user-disorientation, strategi pengembangan dokumen hiperteks, dan mekanisme konversi dokumen tekstual menjadi bentuk hiperteks (Ellist,1996). Sedangkan temu-kembali informasi bergerak pada topik manipulasi kueri, konsep basis data tekstual, dan relevansi dokumen terhadap kueri (Bodhitama,1997). Penggabungan kedua bidang ini dapat memecahkan masalah-masalah dalam bidang temu kembali informasi. Misalnya, sistem temu-kembali informasi yang didasarkan pada penggunaan operator Boolean, mengandalkan kemampuan pemakai dalam memformulasikan kueri. Hal ini sering mempersulit pengguna.

Dengan adanya sistem hiperteks, hal ini dapat di permudah dengan penyediaan antar muka yang memakai pencarian dengan metode browsing.

Smeaton(1991) di dalam Ellist(1996) juga menyatakan bahwa hiperteks dan temu-kembali informasi itu saling berkomplemen satu sama lain. Hiperteks membutuhkan lebih banyak searching sedangkan temu-kembali informasi membutuhkan lebih banyak browsing. Hal yang dimaksud adalah hiperteks akan semakin baik jika disertai dengan fasilitas search, dan temu-kembali informasi membutuhkan browsing dalam melakukan pencarian yang efisien. Adapun maksud dari searching adalah berusaha mendapatkan atau mencapai tujuan spesifik sedangkan browsing adalah mengikuti suatu path sampai mencapai suatu tujuan. Menurut Brown(1988) didalam Agosti(1993), browsing itu bisa diibaratkan dengan From Where to What. Maksudnya adalah kita tahu dimana posisi kita dalam database dan kita ingin tahu apa yang ada disana (database).


(21)

Sedangkan Searching bisa diibaratkan dengan From What to Where. Maksudnya adalah kita tahu apa yang kita inginkan dan kita ingin menemukan dimana dia didalam database.

Penggabungan sistem temu-kembali kedalam basis hiperteks lebih dikenal dengan nama search engine, dimana sistem ini dapat dibagi ke-dalam dua kategori berdasarkan sumber informasinya yaitu:

1. Worldwide Search Engine

Worldwide Search Engine adalah suatu sistem temu-kembali informasi yang mengambil data-data dari berbagai server di seluruh penjuru dunia. Data-data tersebut diambil melalui program yang disebut dengan “robot” atau “bot”. Program inilah yang melakukan pencarian data pada setiap server, yang kemudian dikirim ke server pusat pada selang waktu tertentu.

2. Local Search Engine

Local search engine adalah suatu sistem temu-kembali informasi yang mengambil data-data dari server tertentu saja. Kata “local”, yang berarti lokal atau setempat, memberi penekanan akan lokasi sumber data yang akan digunakan. Local search engine tidak dirancang untuk mengarungi belantara internet seperti worlwide search engine. Tujuan implementasi local search engine dimaksudkan untuk pencarian pada objek spesifik dan lebih kecil lingkupnya dibandingkan internet sendiri.

Mengenai pemilihan penerapan sistem temu-kembali berbentuk local search engine atau worlwide search engine tergantung kepada masalah atau jenis informasi yang akan kita sediakan. Penerapan kedua kategori ini hanya akan mempengaruhi cara sistem pengindeksan dari temu-kembali. Sedangkan teknik


(22)

retrieval dan rancangan penerapan teknik pada hiperteks akan sama saja, baik pengindeksannya secara local search engine ataupun worldwide search engine.

Sistem temu-kembali yang dibangun terdiri dari berbagai macam teknik retrieval seperti teknik Boolean biasa dan Boolean berperingkat serta teknik Extended Boolean berdasarkan p-norm model. Sedangkan teknik pengindeksannya juga terdiri dari beberapa macam antara lain teknik berdasarkan frekuensi kemunculan istilah dan teknik pengindeksan yang dinormalisasi berdasarkan aturan Savoy(1993). Pada sistem ini, teknik retrieval, basis data indeks dan kumpulan dokumen berada dalam sebuah komputer server yang sama (local).

2.2. Text Mining

Text mining adalah salah satu bidang khusus dari data mining. Sesuai dengan buku The Text Mining Handbook, text mining dapat didefinisikan sebagai suatu proses menggali informasi dimana seorang user berinteraksi dengan sekumpulan dokumen menggunakan tools analisis yang merupakan komponen-komponen dalam data mining yang salah satunya adalah kategorisasi.

Tujuan dari text mining adalah untuk mendapatkan informasi yang berguna dari sekumpulan dokumen. Jadi, sumber data yang digunakan pada text mining adalah kumpulan teks yang memiliki format yang tidak terstruktur atau minimal semi terstruktur. Adapun tugas khusus dari text mining antara lain yaitu pengkategorisasian teks (text categorization) dan pengelompokan teks (text clustering).


(23)

Text Mining tidak jauh berbeda dengan Data Mining. Yang membedakannya adalah pada sumber datanya, dimana Text Mining bersumber dari kumpulan dokumen atau text. Pada Text Mining, informasi yang akan digali biasanya berisi informasi-informasi yang tidak terstruktur, tujuannya adalah mencari kata-kata yang dapat mewakili isi dari dokumen sehingga dapat dilakukan analisa keterhubungan antar dokumen. Tahapan yang dilakukan secara umum dalam Text Mining adalah: tokenizing, filtering, stemming, tagging dan analyzing.

2.3. Tokenizer

Tokenizer adalah pemrosesan suatu unit dokumen yang mempunyai hasil akhir berupa Tokens unik dan banyaknya frekuensi Tokens yang terdapat dari suatu unit dokumen. Didalam proses Tokenizer terdapat dua proses yaitu proses Tokenization dan proses Parsing.

Dengan satu urutan karakter dan satu unit dokumen yang didefinisikan, tokenization adalah pekerjaan pemotongan satu urutan karakter menjadi beberapa bagian yang dinamakan tokens yang biasanya adalah kata, pada saat bersamaan proses tokenization membuang karakter tertentu, seperti pemberian tanda baca. Tokens ini sering dengan bebas menunjuk sebagai istilah atau kata, tetapi tanda baca ini kadang-kadang penting untuk membuat satu perbedaan Tokens. Tokens adalah satu contoh (instance) dari satu urutan karakter didalam beberapa dokumen tertentu.


(24)

2.4. Parsing

Parsing adalah proses pengenalan dan pengambilan Token hasil Tokenization dari sekumpulan unit dokumen. Yang biasanya kata – kata. Proses parsing tidak hanya dapat dilakukan dalam proses Information retrieval, melainkan juga pada bidang lain seperti pada pembuatan sebuah compiler dan Bahasa Alami.

Sebelumnya perlu diketahui arti dari istilah parser yaitu program yang melakukan proses parsing. Untuk pemrosesan, dokumen dipilah menjadi unit-unit yang lebih kecil misalnya berupa kata, frasa atau kalimat. Unit pemrosesan tersebut disebut sebagai token. Parsing merujuk pada proses pengenalan token yang terdapat dalam rangkaian teks (Grossman, 2002). Oleh karena itu bagian dasar dalam parsing adalah algoritma pengambil token dari teks yang disebut tokenizer. Proses ini memerlukan pengetahuan bahasa untuk menangani karakter-karakter khusus, serta menentukan batasan satuan unit dalam dokumen.

Parser dapat diibaratkan sebagai “otak” dari sebuah kompiler: komponen inilah yang menginferensikan makna dari bahasa dalam string input berdasarkan grammar atau tata bahasa yang telah ditentukan sebelumnya oleh pemrogram. Dari makna atau nilai semantik sebuah rangkaian token, parser dapat segera memproses (interpretasi, translasi) struktur implisit dalam rangkaian token tersebut, atau menunda pemrosesan sampai didapat struktur utuh dari string input.

2.5. Top Down Parsing

Top-down parser bekerja dengan cara menguraikan sebuah kalimat mulai dari constituent yang terbesar yaitu sampai menjadi constituent yang terkecil. Hal


(25)

ini dilakukan terus-menerus sampai semua komponen yang dihasilkan ialah constituent terkecil dalam kalimat, yaitu kata.

Sebagai contoh, dengan menggunakan contoh grammar, dapat dilakukan proses top-down parsing untuk kalimat “The dog chased the cat” yang ditunjukkan pada gambar 2.1. Cara kerja top down parser. Dari gambar ini terlihat bahwa top-down parser menelusuri setiap node pada parse tree secara pre-order. Beberapa metode parsing yang bekerja secara top-down ialah :

1. Top-down parser biasa 2. Recursive-descent parser 3. Transition-network parser 4. Chart parser

Gambar 2.1. Cara kerja top down parser.

(Sumber : Agosti, Maristella. “Hypertext and Information Retrieval”. Information Processing & Management, 1993)

Top-down parser dapat diimplementasikan dengan berbagai bahasa pemrograman, namun akan lebih baik jika digunakan declarative language seperti


(26)

Prolog atau LISP. Hal ini disebabkan oleh karena pada dasarnya proses parsing ialah proses searching yang dilakukan secara rekursif dan backtracking, dimana proses ini sudah tersedia secara otomatis dalam bahasa Prolog.

Dengan demikian parser yang ditulis dalam Prolog atau bahasa deklaratif lainnya akan menjadi jauh lebih sederhana daripada parser yang dibuat dalam bahasa prosedural biasanya seperti Pascal, C dan sebagainya. Program 1 menunjukkan implementasi top-down parser biasa dalam bahasa Prolog.

2.6. Bottom Up Parsing

Bottom-up parser bekerja dengan cara mengambil satu demi satu kata dari kalimat yang diberikan, untuk dirangkaikan menjadi constituent yang lebih besar. Hal ini dilakukan terus-menerus sampai constituent yang terbentuk ialah sentence atau kalimat. Dengan demikian metode bottom-up bekerja dengan cara yang terbalik dari top-down. Cara kerja bottom-up parser ditunjukkan pada gambar 2.2.

Gambar 2.2. Cara Kerja Bottom Up Parser.

(Sumber : Agosti, Maristella. “Hypertext and Information Retrieval”. Information Processing & Management, 1993)


(27)

Metode parsing yang bekerja secara bottom-up antara lain ialah bottom-up parser biasa dan shift-reduce parser. Perhatikan bahwa parser ini tidak membedakan antara rule (grammar) dan word (lexicon) sehingga cara kerjanya sangat sederhana namun sangat "bodoh" karena akan terus mengulang-ulang kesalahan yang sama.

Kesederhanaan metode ini terletak pada predikat untuk parsing, yaitu parse yang hanya memiliki sebuah argumen. Argumen ini berisi kalimat yang akan diparse dalam bentuk list dari symbol. Kata-kata dari input kalimat akan dirangkaikan sambil mencari aturan yang lebih luas, sampai tinggal sebuah simbol saja dalam list.

2.7. Hybrid Parser

Baik top-down parsing mapun bottom-up parsing memiliki kekurangan dan kelebihannya masing-masing. Metode top-down mampu menangani grammar dengan empty production (misalnya d→ 0) namun tidak dapat menangani grammar dengan left recursion (misalnya np→ np conj np). Sedangkan metode bottom-up dapat menangani left recursion namun tidak dapat menangani empty production.

Dengan demikian metode parsing yang terbaik ialah metode yang dapat menggabungkan top-down dan bottom-up parsing. Ada beberapa metode yang dikembangkan yang menggabungkan kedua metode ini, di antaranya ialah leftcorner parsing serta Earley's parsing.

Cara kerja left-corner parsing ialah dengan mula-mula menerima sebuah kata, menentukan jenis constituent apa yang dimulai dengan jenis kata tersebut,


(28)

kemudian melakukan proses parsing terhadap sisa dari constituent tersebut secara top-down.

Dengan demikian proses parsing dimulai secara bottom-up dan diakhiri secara top-down, sedangkan alur kerjanya ditunjukkan pada gambar 2.3. Cara Kerja Hybrid Parser.

Gambar 2.3. Cara Kerja Hybrid Parser

(Sumber : Agosti, Maristella. “Hypertext and Information Retrieval”. Information Processing & Management, 1993)

2.8. Grammar

Pada saat kompiler membaca string input, yang ditemuinya hanyalah rangkaian karakter finit. Meskipun rangkaian tersebut dapat dipecah menjadi kelompok-kelompok kecil seperti kata atau frase, tindakan tersebut masih belum cukup bagi kompiler untuk mendapatkan makna dari string tersebut untuk kemudian memprosesnya. Lalu bagaimana kompiler melakukannya? Yaitu dengan bantuan grammar. Grammar adalah set aturan produksi yang mengendalikan urutan pemunculan kata atau frase dalam sebuah kalimat. Sebuah aturan produksi biasa ditulis sebagai pasangan a::=b, dengan a dan b berisi


(29)

kategori sintaksis (nonterminal) atau karakter (simbolterminal), dan ::=berarti “didefinisikan sebagai” atau “dapat disubstitusikan dengan”: a didefinisikan sebagai b. Sebuah nonterminal dapat berisi simbol terminal atau nonterminal lain.

Ada berbagai tingkatan kelas grammar berdasarkan kemampuan ekspresif masing-masing, namun ada dua tingkatan yang paling sering digunakan untuk kebutuhan praktis perakitan kompiler: grammar regular dan grammar bebas konteks.

Dalam hierarki-bahasa Chomsky, grammar regular (Grammar Tipe-3) adalah grammar paling restriktif yang dapat membangkitkan sebuah kalimat. Dalam hierarki tersebut, grammar regular mempunyai kemampuan pembangkitan kalimat yang sangat minimal karena:

1. Sisi kiri hanya boleh berisi sebuah nonterminal,

2. Sisi kanan dalam setiap aturan produksinya hanya boleh berisi satu nonterminal, dan posisinya hanya boleh berada di akhir atau sisi kanan rangkaian.

Deskripsi yang lebih sederhana: parser untuk grammar ini tidak dapat mengetahui konteks pemunculan nonterminal yang tengah didefinisikan, dan hanya dapat melihat symbol terminal yang ada tepat didepannya. Contoh dari grammar ini adalah pada persamaan 2.2:

T :: = „0‟ t | ‟1‟ t | Є ( Persamaan 2.2 ) Yang mengekspresikan semua rangkaian digit biner dengan panjang arbitrer (simbol terminal dibatasi dengan tanda petik tunggal). Karena ia hanya perlu dapat melihat satu simbol ke depan itulah grammar regular unggul dibanding tipe grammar lain untuk fungsi pengenalan pola.


(30)

Grammar ini sering digunakan dalam versi ringkasnya, yang disebut sebagai ekspresi regular atau regex. Grammar bebas konteks (CFG: Context-free Grammar) setingkat lebih tinggi dibanding grammar regular, karena tidak ada batasan untuk sisi kanan aturan produksi. Grammar ini lazim digunakan untuk men-spesifikasikan bahasa-bahasa yang memiliki kompleksitas moderat.

Hanya CFG dan grammar regular, kelas grammar yang dapat secara efisien diemulasikan karakteristiknya oleh program komputer; sebuah compiler dapat mengenali bahasa yang relatif kompleks, hanya dengan menggunakan kombinasi dari keduanya: CFG untuk spesifikasi grammar bahasa secara keseluruhan, dan regex untuk spesifikasi token atau simbol terminal.

2.9. Lexical Analyzer

Scanner atau lexical analyzer adalah komponen dari kompiler yang bersentuhan langsung dengan string input, mengubahnya ke dalam bentuk yang lebih mudah dikelola oleh parser. Kedua istilah tersebut umumnya merujuk pada komponen yang sama pada kompiler. Terkadang istilah satu lebih cenderung digunakan dibanding istilah lainnya untuk menyebut komponen tersebut, dengan pembedaan berdasarkan gugus tugas yang dibebankan: “scanner” membaca setiap karakter dalam string input satu-persatu dan mengumpulkan masing-masing karakter ke dalam kelompok-kelompok kecil yang disebut lexeme dan diasosiasikan dengan entitas tunggal yang disebut sebagai token, sementara “lexical analyzer” melakukan tindakan yang kurang-lebih sama, namun melakukan pengolahan lebih jauh sedemikian sehingga deretan lexeme dalam string input tidak dapat dipetakan secara linear dengan deretan token dalam string


(31)

output. Contoh termudah tentunya fasilitas preprosesor dalam bahasa pemrograman C atauC++: preprosesor mengolah setiap baris yang diawali dengan simbol „#‟ sesuai dengan makna semantik masing-masing, dan menghilangkan baris-baris komentar.

Secara umum pembedaan ini tidaklah terlalu relevan, karena pilihan pembebanan gugus tugas pada akhirnya adalah keputusan teknis yang bergantung terutama pada grammar bahasa yang akan diimplementasikan (komentar baris dapat diabaikan oleh scanner, namun komentar dalam tanda kurung mungkin membutuhkan grammar untuk menyeimbangkan delimiter dalam grammar meski harus mengorbankan unjuk kerja parser). Dalam tulisan ini, setidaknya, tidak ada pembedaan di antara kedua istilah tersebut.

2.10. Stoplist

Stoplist Adalah proses pembuangan atau menghilangkan kata-kata buang, yaitu : Kata depan, kata sambung, kata ganti, dan lain-lain seperti : di, dan, tetapi, dia, yaitu, sedangkan, dan sebagainya.

2.11. Morfologi Bahasa Indonesia

Agar dapat memahami bagaimana proses stemming dikerjakan, maka terlebih dahulu yang harus dikenal adalah morfologi atau pola khas suatu bahasa, yang dalam hal ini adalah bahasa Indonesia.

Dalam bahasa Indonesia, sebuah kata dikatakan memiliki morfologi yang dapat membuat kata tersebut berperan sebagai kata benda, kata keterangan atau kata kerja (COVNd).


(32)

Ada banyak ragam pembentukan kata dalam Bahasa Indonesia. Sebagian besar kata dibentuk dengan cara menggabungkan beberapa komponen yang berbeda. Untuk memahami cara pembentukan kata-kata tersebut kita sebaiknya mengetahui lebih dahulu beberapa konsep dasar dan istilah seperti yang dijelaskan berikut ini :

Kata dasar (akar kata), yaitu kata yang paling sederhana yang belum

memiliki imbuhan, juga dapat dikelompokkan sebagai bentuk asal (tunggal) dan bentuk dasar (kompleks), tetapi perbedaan kedua bentuk ini tidak dibahas di sini.

Afiks (imbuhan), yaitu satuan terikat (seperangkat huruf tertentu) yang

apabila ditambahkan pada kata dasar akan mengubah makna dan membentuk kata baru. Afiks tidak dapat berdiri sendiri dan harus melekat pada satuan lain seperti kata dasar. Istilah afiks termasuk prefiks, sufiks dan konfiks.

Prefiks (awalan), yaitu afiks (imbuhan) yang melekat di depan kata dasar untuk membentuk kata baru dengan arti yang berbeda.

Sufiks (akhiran), yaitu afiks (imbuhan) yang melekat di belakang kata dasar untuk membentuk kata baru dengan arti yang berbeda.

Konfiks (sirkumfiks atau simulfiks) yang secara simultan (bersamaan), yaitu satu afiks melekat di depan kata dasar dan satu afiks melekat di belakang kata dasar yang bersama-sama mendukung satu fungsi.

Kata turunan (kata jadian), yaitu kata baru yang diturunkan dari kata

dasar yang mendapat imbuhan.

Keluarga kata dasar, yaitu kelompok kata turunan yang semuanya


(33)

Imbuhan adalah suatu unsur struktural yang diikatkan pada sebuah kata dasar. Imbuhan terbagi atas : Awalan (Prefiks), Sisipan (Infiks), Akhiran (Sufiks), Imbuhan Terbelah (Konfiks).

Imbuhan yang terdapat di awal suatu kata, seperti : “me-, ber-, per-, meng-, di-, ter-, ke- dan se-“. Untuk awalan me- mempunyai aturan khusus, yaitu: 1. tetap, jika huruf pertama kata dasar adalah l, m, n, q, r, atau w.

Contoh: me- + luluh → meluluh, me- + makan → memakan. 2. me- mem-, jika huruf pertama kata dasar adalah b, f, p*, atau v.

Contoh: me- + baca → membaca, me- + pukul → memukul*, me- + vonis → memvonis, me- + fasilitas + i → memfasilitasi.

3. me- men-, jika huruf pertama kata dasar adalah c, d, j, atau t*. Contoh : me- + datang → mendatang, me- + tiup → meniup*.

4. me- meng-, jika huruf pertama kata dasar adalah huruf vokal, k*, g, h. Contoh: me- + kikis → mengikis*, me- + gotong → menggotong, me- + hias → menghias.

5. me- menge-, jika kata dasar hanya satu suku kata.

Contoh: me- + bom → mengebom, me- + tik → mengetik, me- + klik → mengeklik.

6. me- meny-, jika huruf pertama adalah s*. Contoh: me- + sapu → menyapu*.

Huruf dengan tanda * memiliki sifat-sifat khusus :

1. Dilebur jika huruf kedua kata dasar adalah huruf vokal.

Contoh : me- + tipu → menipu, me- + sapu → menyapu, me- + kira → mengira.


(34)

2. Tidak dilebur jika huruf kedua kata dasar adalah huruf konsonan. Contoh : me- + klarifikasi → mengklarifikasi.

3. Tidak dilebur jika kata dasar merupakan kata asing yang belum diserap secara sempurna.

Contoh: me- + konversi → mengkonversi.

Dalam bahasa Indonesia, terdapat empat sisipan (infiks), yaitu : -el-, -em-, -er- dan –in-. Sedangkan imbuhan di akhir kata (sufiks) terdapat delapan, yaitu : -i, -kan, -an, -man, -wan , -wati, -wi (-wiah) dan –nya. Selain itu juga terdapat sufiks yang berasal dari bahasa asing yaitu: wan, wati, in, at, isme, (is)asi, -logi dan –tas. Juga terdapat akhiran lain yang disebut partikel (P), yaitu: lah, kah, tah, pun. Sufiks juga dapat diberikan untuk menggantikan kata ganti kepunyaan (KK), misalnya: -ku, -mu, dan –nya.

Dalam perkembangannya, morfologi bahasa Indonesia terdapat penambahan :

1. Konfiks (imbuhan terbelah), yaitu gabungan dari infiks dan sufiks tetapi menjadi satu kesatuan yang tidak dapat dipisahkan. Konfiks ini harus mengapit kata dasar. Terdapat beberapa konfiks yaitu: ke - an, ber - an, peng - an, per - an, se - nya.

2. Simulfiks (imbuhan gabungan), yaitu gabungan lebih dari satu awalan atau akhiran, contoh: member – kan untuk memberlakukan dan memberdayakan.

Metode stemming pada tugas akhir ini mengacu yang dibuat oleh Nazief dan Adriani yang berbasiskan pada morfologi bahasa Indonesia dengan definisi sebagai berikut :


(35)

kata = stem | kata berimbuhan infleksional | kata berimbuhan derivasional | tidak dikenal kata berimbuhan infleksional = stem Sinf | kata berimbuhan derivasional | tidak dikenal

kata berimbuhan derivasional = stem-Sdr | Pder-stem | Pder- kata berimbuhan derivasional | tidak dikenal

dimana :

Sder = Suffix atau akhiran derivasional Sinf = Suffix atau akhiran infleksional Pder = Prefix atau awalan derivasional

Setiap Sder, Sinf, Pder memiliki aturan sendiri. Metode ini menggunakan kamus untuk menentukan hasil stem. Kata yang hendak di-stem awalnya dicari dalam kamus, apabila tidak ditemukan maka selanjutnya kata tersebut diduga memiliki imbuhan infleksional. Untuk mendapatkan imbuhan infleksional digunakan struktur morfologi kedua. Dalam prosesnya struktur morfologi ketiga akan digunakan karena kata ini diduga terdiri dari imbuhan derivasional dan Sinf. Apabila kata dasar masih juga belum ditemukan maka kata ini selanjutnya diduga memiliki imbuhan derivasional. Untuk mencari kata dasar dari kata dengan imbuhan derivasional digunakan struktur aturan morfologi ketiga. Apabila kata dasar belum juga ditemukan, maka kata yang hendak di-stem yang akan dikembalikan.

2.12. Stemming

Stemming adalah proses penghilangan prefiks dan sufiks dari kueri dan istilah-istilah dokumen (Grossman, 2002). Stemming dilakukan atas dasar asumsi


(36)

bahwa kata-kata yang memiliki stem yang sama memiliki makna yang serupa sehingga pengguna tidak keberatan untuk memperoleh dokumen-dokumen yang di dalamnya terdapat kata-kata dengan stem yang sama dengan kuerinya.

Teknik-teknik stemming dapat dikategorikan menjadi: 1. Berdasarkan aturan sesuai bahasa tertentu.

2. Berdasarkan kamus.

3. Berdasarkan kemunculan bersama.

Proses ini memiliki dua tujuan. Dalam hal efisiensi, stemming mengurangi jumlah kata-kata unik dalam indeks sehingga mengurangi kebutuhan ruang penyimpanan untuk indeks dan mempercepat proses pencarian. Dalam hal ke-efektifan, stemming meningkatkan recall dengan mengurangi bentuk-bentuk kata ke bentuk dasarnya atau stem-nya. Sehingga dokumen-dokumen yang menyertakan suatu kata dalam berbagai bentuknya memiliki kecenderungan yang sama untuk ditemu-kembalikan. Hal tersebut tidak akan diperoleh jika tiap bentuk suatu kata disimpan secara terpisah dalam indeks. Akan tetapi, stemming dapat menurunkan tingkat precision jika setiap bentuk suatu stem diperoleh, sedangkan yang relevan hanyalah bentuk yang sama dengan yang digunakan dalam kueri (Liddy, 2001).

Parsing dan stemming dalam suatu IRS tergantung pada bahasa yang digunakan dalam dokumen yang akan dicari. IRS untuk Bahasa Inggris kurang optimal untuk menangani dokumen dalam Bahasa Indonesia. Bahasa Indonesia memiliki daftar kata buang (stoplist) serta sistem pembentukan kata yang sangat berbeda dengan bahasa Inggris, sehingga diperlukan IRS yang khusus untuk


(37)

Stemming untuk Bahasa Indonesia telah dikembangkan antara lain yang menggunakan aturan berdasarkan algoritme Porter (1980) oleh Akhmadi (2002) yang hanya melakukan pemotongan prefiks dan oleh Ridha (2002) yang melakukan pemotongan prefiks dan sufiks. Stemming berdasarkan kamus untuk Bahasa Indonesia juga telah dikembangkan oleh Nazief (1996) (Nazief, 2000).

Stemming adalah proses penghilangan atau pemotongan imbuhan yang terdapat pada sebuah kata yang mempunyai imbuhan menjadi bentuk kata dasarnya saja, untuk Bahasa Indonesia imbuhan mempunyai peran penting dalam suatu kalimat, karena suatu kata dapat mempunyai arti yang berbeda apabila diberi suatu imbuhan. Yang mengakibatkan setiap kata berimbuhan mempunyai arti yang berbeda dan pembentukan kata baru. Contohnya : kata “diadaptasikan” atau “beradaptasi” menjadi bentuk kata dasar “adaptasi” sebagai istilah. Algoritma ini didahului dengan pembacaan tiap kata dari file sampel. Sehingga input dari algoritma ini adalah sebuah kata yang kemudian dilakukan, pemeriksaan semua kemungkinan bentuk kata. Setiap kata diasumsikan memiliki 2 Awalan (Prefiks) dan 3 Akhiran (Sufiks). Sehingga bentuknya menjadi :

Prefiks 1 + Prefiks 2 + Kata Dasar + Akhiran 1 + Akhiran 2 + Akhiran 3.

Implementasi Porter Stemmer for Bahasa Indonesia berdasarkan English Porter Stemmer yang dikembangkan oleh W.B. Frakes pada tahun 1992. Karena bahasa Inggris datang dari kelas yang berbeda, beberapa modifikasi telah dilakukan untuk membuat Algoritma Porter dapat digunakan sesuai dengan bahasa Indonesia. Desain dari Porter Stemmer for Bahasa Indonesia dapat dilihat pada gambar 2.4. dibawah ini :


(38)

Gambar 2.4. Desain dari Porter Stemmer for Bahasa Indonesia. (Sumber : Adriani, M., Nazief, B., et.al 2007. Stemming Indonesian:A

confix-stripping approach. ACM J. Educ. Resour. December 2007).

2.13. Flow Map

Flow Map adalah diagram yang menunjukan aliran data berupa formulir-formulir ataupun keterangan berupa dokumentasi yang mengalir atau beredar dalam suatu sistem. Notasi yang digunakan dalam suatu flow map merupakan penggabungan notasi flow chart program. Hal-hal yang harus diperhatikan dalam menggambarkan flow map adalah sebagai berikut:

1. Penggambaran flow map dimulai dari atas halaman ke bagian bawah, kemudian dari kiri kebagian kanan.

2. Penggambaran flow map dilakukan berdasarkan pembagian atau sub system.

3. Dalam flow map harus jelas dimana awal suatu status informasi, kemudian dimana akhir siklus.


(39)

4. Semua bagian siklus informasi harus jelas menggunakan kertas kerja yang jelas sesuai dengan yang akan dilakukan dalam system.

5. Semua sub sistem yang digambarkan, harus mengalami siklus informasi. 6. Jika penggambaran suatu siklus informasi terpotong, maka gunakan

penghubung antar bagian.

2.14. Unified Modelling Language

Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk menentukan, visualisasi, merancang dan mendokumentasikan artifactdari sistem software, untuk memodelkan bisnis dan sistem non software lainnya. UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam memodelkan sistem yang besar dan kompleks.

Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C.

Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut


(40)

dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering).

Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi Booch, metodologi Coad, metodologi OOSE, metodologi OMT, metodologi Shlaer-Mellor, metodologi Wirfs-Brock, dan sebagainya. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerja sama dengan group/perusahaan lain yang menggunakan metodologi yang berlainan.

Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang boleh dikatakan metodologinya banyak digunakan mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.


(41)

Object Management Group, Inc. (OMG) adalah sebuah organisasi international yang dibentuk pada 1989, didukung lebih dari 800 anggota, terdiri dari perusahaan sistem informasi, software developer, dan pada user sistem komputer. organisasi ini salah satunya bertugas membuat spesifikasi “manajemen objek” untuk menetapkan kerangka bersama dalam rekayasa software.

Gambar 2.5. Metodologi dalam UML

Sasaran OMG adalah membantu perkembangan object-oriented technology dan mengarahkannya dengan mendirikan Object Management Architecture (OMA). OMA menentukan infrastruktur konseptual yang didasarkan pada seluruh spesifikasi yang dikeluarkan OMG.

OMG kemudian mengeluarkan UML, dimana dengan adanya UML ini diharapkan dapat mengurangi kekacauan dalam bahasa pemodelan yang selama ini terjadi dalam lingkungan industri. UML diharapkan juga dapat menjawab masalah penotasian dan mekanisme tukar menukar model yang terjadi selama ini. Saat ini piranti lunak semakin luas dan besar lingkupnya, sehingga tidak bisa lagi dibuat asal-asalan. Piranti lunak saat ini seharusnya dirancang dengan memperhatikan hal-hal seperti scalability, security, dan eksekusi yang robust walaupun dalam kondisi yang sulit. Selain itu arsitektur-nya harus didefinisikan


(42)

dengan jelas, agar bug mudah ditemukan dan diperbaiki, bahkan oleh orang lain selain programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang matang adalah dimungkinkannya penggunaan kembali modul atau komponen untuk aplikasi piranti lunak lain yang membutuhkan fungsionalitas yang sama.

Pemodelan (modeling) adalah proses merancang piranti lunak sebelum melakukan pengkodean (coding). Model piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik.

Dengan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian terkenal dengan sebutan segitiga sukses (the triangle for success). Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan tool yang digunakan. Memahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan membuat proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses disempurnakan dengan penggunaan tool yang tepat.

UML menyediakan beberapa notasi dan artifact standar yang bisa digunakan sebagai alat komunikasi bagi para pelaku dalam proses analisis dan desain. Artifact didalam UML didefinisikan sebagai informasi dalam bentuk yang digunakan atau dihasilkan dalam proses pengembangan perangkat. Contohnya adalah source code yang dihasilkan oleh proses pemrograman.


(43)

Yang harus diperhatikan untuk menjaga konsistensi antar artifact selama proses analisis dan desain adalah bahwa setiap perubahan yang terjadi pada satu artifact harus juga dilakukan pada atifact sebelumnya.

Untuk membuat suatu model, UML memiliki diagram grafis sebagai berikut :

use case diagram class diagram behavior diagram

statechart diagram activity diagram interaction diagram

o sequence diagram o collaboration diagram  implementation diagram

component diagram deployment diagram

Diagram-diagram tersebut diberi nama berdasarkan sudut pandang yang berbeda-beda terhadap sistem dalam proses analisis atau rekayasa.

Dibuatnya berbagai jenis diagram diatas karena :

1. Setiap sistem yang kompleks selalu paling baik jika didekati melalui himpunan berbagai sudut pandang yang kecil yang satu sama lain hampir saling bebas (independent). Sudut pandang tunggal senantiasa tidak mencukupi untuk melihat sistem yang besar dan kompleks.


(44)

2. Diagram yang berbeda-beda tersebut dapat menyatakan tingkatan yang berbeda-beda dalam proses rekayasa.

3. Diagram-diagram tersebut dibuat agar model yang dibuat semakin mendekati realitas.

2.15. Semantik Dalam UML

OMG telah menetapkan semantik (makna istilah) semua notasi UML dalam model struktural dan model behavior. Model struktural (model statis), menekankan stuktur obyek dalam sebuah sistem, menyangkut kelas-kelas, interface, atribut dan hubungan antar komponen. Model behavioral (model dinamis), menekankan perilaku obyek dalam sebuah sistem, termasuk metode, interaksi, kolaborasi dan state history.

Tujuan utama UML diantaranya untuk :

1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum.

2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa.

3. Menyatukan praktek-praktek terbaik yang terdapat dalam bahasa pemodelan. Pertama, UML menggabungkan konsep Booch, OMT dan OOSE, sehingga UML merupakan suatu bahasa pemodelan tunggal yang umum dan digunakan secara luas oleh para user ketiga metode tersebut dan bahkan para user metode lainnya. Kedua, UML menekankan pada apa yang dapat dikerjakan dengan metode-meode tersebut.


(45)

Ketiga, UML berfokus pada suatu bahasa pemodelan standar, bahkan pada proses standar. Meskipun UML harus diaplikasikan dalam konteks sebuah proses, dari pengalaman, bahwa organisasi dan masalah yang berbeda juga memerlukan proses yang berbeda pula.

UML tidak mencakup : 1. Bahasa Pemrograman

UML adalah bahasa pemodelan visual, bukan dimaksudkan untuk menjadi suatu bahasa pemrograman visual, tetapi UML memberikan arah untuk bergerak kearah kode.

2. Tool (software aplikasi) pemodelan

Membuat standar sebuah bahasa diperlukan oleh tool-tool dan proses. UML mendefinisikan semantik dan notasi, bukan sebuah tool. Contoh tool yang menggunakan UML sebagai bahasanya adalah Rational Rose dan Enterprise Architect.

3. Proses rekayasa

UML digunakan sebagai bahasa dalam proyek dengan proses yang berbeda-beda. UML bebas dari proses dan mendefinisikan sebuah proses standar bukan tujuan UML atau RFP dari OMG. Dalam pembahasan ini kita akan menggunakan sebuah proses yang dikeluarkan Rational Software, yaitu Rational Unified Process (RUP)

2.16. Notasi Dalam UML 2.16.1.Actor


(46)

Actor menggambarkan segala pengguna software aplikasi (user). Actor memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software aplikasi. Sebagai contoh sebuah actor dapat memberikan input kedalam dan menerima informasi dari software aplikasi, perlu dicatat bahwa sebuah actor berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Sebuah actor mungkin seorang manusia, satu device, hardware atau sistem informasi lainnya.

2.16.2.Use Case

Gambar 2.7. Notasi Use Case

Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan, namun use case hanya menjelaskan apa yang dilakukan oleh actor dan sistem bukan bagaimana actor dan sistem melakukan kegiatan tersebut.

Use-case Konkret adalah use case yang dibuat langsung karena keperluan actor. Actor dapat melihat dan berinisiatif terhadapnya.

Use-case Abstrak adalah use case yang tidak pernah berdiri sendiri. Use case abstrak senantiasa termasuk didalam (include), diperluas dari (extend) atau memperumum (generalize) use case lainnya. Untuk menggambarkannya dalam use case model biasanya digunakan association relationship yang memiliki stereotype include, extend atau generalization relationship. Hubungan include menggambarkan bahwa suatu use case seluruhnya meliputi fungsionalitas dari use case lainnya. Hubungan extend antar use case berarti bahwa satu use case


(47)

merupakan tambahan fungsionalitas dari use case yang lain jika kondisi atau syarat tertentu terpenuhi.

2.16.3.Class

Gambar 2.8. Notasi Class

Class merupakan pembentuk utama dari sistem berorientasi obyek, karena class menunjukkan kumpulan obyek yang memiliki atribut dan operasi yang sama. Class digunakan untuk mengimplementasikan interface.

Class digunakan untuk mengabstraksikan elemen-elemen dari sistem yang sedang dibangun. Class bisa merepresentasikan baik perangkat lunak maupun perangkat keras, baik konsep maupun benda nyata.

Notasi class berbentuk persegi panjang berisi 3 bagian: persegi panjang paling atas untuk nama class, persegi panjang paling bawah untuk operasi, dan persegi panjang ditengah untuk atribut.

Atribut digunakan untuk menyimpan informasi. Nama atribut menggunakan kata benda yang bisa dengan jelas merepresentasikan informasi yang tersimpan didalamnya. Operasi menunjukkan sesuatu yang bisa dilakukan oleh obyek dan menggunakan kata kerja.

2.16.4.Interface


(48)

Interface merupakan kumpulan operasi tanpa implementasi dari suatu class. Implementasi operasi dalam interface dijabarkan oleh operasi didalam class. Oleh karena itu keberadaan interface selalu disertai oleh class yang mengimplementasikan operasinya. Interface ini merupakan salah satu cara mewujudkan prinsip enkapsulasi dalam obyek.

2.16.5.Interaction

Gambar 2.10. Notasi Interaction

Interaction digunakan untuk menunjukkan baik aliran pesan atau informasi antar obyek maupun hubungan antar obyek. Biasanya interaction ini dilengkapi juga dengan teks bernama operation signature yang tersusun dari nama operasi, parameter yang dikirim dan tipe parameter yang dikembalikan.

2.16.6.Note

Gambar 2.11. Notasi Note

Note digunakan untuk memberikan keterangan atau komentar tambahan dari suatu elemen sehingga bisa langsung terlampir dalam model. Note ini bisa disertakan ke semua elemen notasi yang lain.

2.16.7.Dependency

Gambar 2.12. Notasi Dependency

Dependency merupakan relasi yang menunjukan bahwa perubahan pada salah satu elemen memberi pengaruh pada elemen lain. Elemen yang ada di


(49)

bagian tanda panah adalah elemen yang tergantung pada elemen yang ada dibagian tanpa tanda panah.

Terdapat 2 stereotype dari dependency, yaitu include dan extend. Include menunjukkan bahwa suatu bagian dari elemen (yang ada digaris tanpa panah) memicu eksekusi bagian dari elemen lain (yang ada di garis dengan panah).

Extend menunjukkan bahwa suatu bagian dari elemen di garis tanpa panah bisa disisipkan kedalam elemen yang ada di garis dengan panah.

2.16.8.Association

Gambar 2.13. Notasi Asociation

Association menggambarkan navigasi antar class (navigation), berapa banyak obyek lain yang bisa berhubungan dengan satu obyek (multiplicity antar class) dan apakah suatu class menjadi bagian dari class lainnya (aggregation).

Navigation dilambangkan dengan penambahan tanda panah di akhir garis. Bidirectional navigation menunjukkan bahwa dengan mengetahui salah satu class bisa didapatkan informasi dari class lainnya. Sementara UniDirectional navigation hanya dengan mengetahui class diujung garis association tanpa panah kita bisa mendapatkan informasi dari class di ujung dengan panah, tetapi tidak sebaliknya. Aggregation mengacu pada hubungan “has-a”, yaitu bahwa suatu class memiliki class lain, misalnya Rumah memiliki class Kamar.

2.16.9.Generalization


(50)

Generalization menunjukkan hubungan antara elemen yang lebih umum ke elemen yang lebih spesifik. Dengan generalization, class yang lebih spesifik (subclass) akan menurunkan atribut dan operasi dari class yang lebih umum (superclass) atau “subclass is superclass”. Dengan menggunakan notasi generalization ini, konsep inheritance dari prinsip hirarki dapat dimodelkan.

2.16.10. Realization

Gambar 2.15. Notasi Realization

Realization menunjukkan hubungan bahwa elemen yang ada di bagian tanpa panah akan merealisasikan apa yang dinyatakan oleh elemen yang ada di bagian dengan panah. Misalnya class merealisasikan package, component merealisasikan class atau interface.

2.17. Embarcadero Delphi 2010

Delphi merupakan alat bantu pengembangan aplikasi yang berbasis visual. Perangkat ini merupakan hasil pengembangan dari bahasa pemrograman pascal yang diciptakan oleh Niklaus Wirth. Pada masa itu, Wirth bermaksud membuat bahasa pemrograman tingkat tinggi sebagai alat bantu mengajar logika pemrograman komputer kepada para mahasiswanya.

Bahasa pemrograman pascal ini kemudian dikembangkan oleh Borland yang merupakan salah satu perusahaan software menjadi sebuah tools dengan dibuatkan kompiler dan dijual ke pasar dengan nama TURBO PASCAL.


(51)

Seiring dengan ditemukannya metode pemrograman berorientasi obyek, bahasa pemrograman pascal berevolusi menjadi object pascal dan dikembangkan oleh Borland dengan nama Borland Delphi.

Keberhasilan Borland dalam mengembangkan Delphi menjadikan salah satu bahasa yang populer dan disukai oleh banyak programmer, disamping Visual Basic yang dikeluar Microsoft di kemudian hari.

Lingkungan pengembangan Delphi yang mudah, intuitif dan memudahkan pemakai, berhasil melampaui popularitas rivalnya, yaitu Visual Basic, sehingga pernah menyandang predikat “VB-Killer”.

Karena tuntutan perkembangan teknologi, Borland berganti nama menjadi Code Gear, tetapi tetap mempergunakan nama Delphi untuk tools yang berbasis object pascal ini. Tidak lama kemudian Code Gear diakuisisi oleh Embarcadero dan namanya pun berubah menjadi Embarcadero RAD Studio dengan tetap mempertahankan Delphi sebagai salah satu tools-nya.

Beberapa kelebihan yang dimiliki oleh Embarcadero Delphi 2010 ini antara lain :

1. Delphi dibangun dengan menggunakan arsitektur native compiler, sehingga proses kompilasi instruksi menjadi bahasa mesin menjadi lebih cepat.

2. Semua file yang disertakan saat proses kompilasi, digabungkan menjadi satu sesuai dengan arsitektur native compiler, sehingga mengurangi ketergantungan terhadap library ataupun file-file pendukung lainya, sesuai dengan prinsip build once, runs everywhere.

3. Delphi mempunyai kemampuan selective object linking, sehingga apabila terdapat pemanggilan sebuah library dan ternyata tidak terdapat instruksi


(52)

dalam library tersebut yang dipergunakan dalam system, maka secara otomatis, kompiler tidak akan menyertakan library tersebut dalam proses kompilasinya. Hal ini berbeda dengan tools lain yang tidak mempunyai kemampuan seperi itu. Dengan adanya kemampuan tersebut, maka file eksekusi yang dihasilkan delphi menjadi lebih optimal.

4. Lingkungan pengembangan Delphi sangat intuitif karena semua komponen yang menjadi alat utama desain visual telah ditampilkan saat pertama kali langsung dapat diamati oleh user dan dapat digunakan secara langsung.

Berikut ini adalah tampilan Delphi :

Gambar 2.16. Tampilan awal Delphi

Dalam delphi seperti halnya bahasa visual lainnya menyediakan komponen. Komponen adalah “jantung” bagi pemograman visual. Componen Palette telah terbagi menjadi berbagai jenis komponen, diantaranya adalah Standard, Additional, Win32, System, dan beberapa lainnya. Berikut ini adalah uraian yang komponen palet yang paling sering dipergunakan, termasuk dalam tugas akhir ini.


(53)

Gambar 2.17. Daftar komponen palet standard Delphi

Tampak pada palet standard diatas (dengan urutan dari kiri ke kanan), adalah frame, main menu, pop up menu, label, edit text, memo, button, check box, radio button, list box, combo box, scroll bar, group box, radio group, panel dan action list.

Gambar 2.18. Daftar komponen palet additional

Pada palet additional terdapat komponen bit button, speed button, mask edit, string grid, draw grid, image, shape, bevel, scroll box, list box, splitter, static text, tlink label, control bar, application events, value list edit, labeled edit, buttoned edit, color box, color list box, category button, button group, dock tab set, tab set, tray icon, flow panel, grid panel, balloon hint, category group dan action manager.

Gambar 2.19. Daftar komponen palet win 32

Pada palet win 32 terdapat komponen tab control, page control, image list, rich edit, track bar, progress bar, up down, hot key, animate, date time picker, month calendar, tree view, list view, header control, status bar, tool bar, cool bar, page scroller, Combo Box Ex, XP Manifest, Shell Resource.


(54)

Gambar 2.20. Daftar komponen palet system

Komponen yang terdapat dalam palet system adalah timer, paint box, media player, ole container, comadmin dialog, DDE Client Conv, DDE Client Item, DDE Server Conv dan DDE Server Item.

Gambar 2.21. Komponen Palet Dialog

Komponen yang terdapat dalam palet dialog adalah open dialog, save dialog, open picture dialog, save picture dialog, open text file dialog, save text file dialog, font dialog, color dialog, print dialog, printer setup dialog, find dialog, replace dialog, page setup dialog.

Gambar 2.22. Membuat aplikasi sederhana dengan Delphi

Sebuah proyek Delphi akan terdiri dari berberapa file. Ada file yang menyimpan program dan ada file lain yang menyimpan binari, gambar. Karena setiap aplikasi terdiri dari beberapa file. Sangat disarankan agar menyimpan, sebuah aplikasi pada sebuah folder. Berbagai jenis file yang dibuat saat membangun aplikasi menggunakan Delphi adalah sebagai berikut :


(55)

Tabel 2.1. Jenis-jenis file dalam Delphi Jenis File Keterangan

.dproj File proyek, fungsinya untuk linking object

.dfm File form, fungsinya menyimpan nilai properti form .pas File unit, berisi source code prosedur dan fungsi .dpk File package, berisi instalasi komponen

.res File resource

.cfg File konfigurasi proyek .dof File pilihan proyek .dcu Hasil kompilasi file .pas

.exe File executable (yang dapat dijalankan) .~* File cadangan (back up)


(56)

44

Analisis dan perancangan berfungsi untuk mempermudah, memahami dan menyusun perancangan pada bab selanjutnya. Selain itu juga berfungsi untuk memberikan gambaran dan solusi pada pembuatan solusi ini.

3.1. Analisis Masalah

Secara garis besar, program ini terdiri atas 4 (empat) proses, yaitu : a. Proses input data, baik berupa file teks ataupun dientry (diketik) secara

langsung oleh pengguna.

b. Proses Tokenizer, yaitu unit pemrosesan dokumen menghasilkan token dan proses parsing dokumen untuk pengenalan token, yang terdapat di dalam data teks yang sudah diinputkan.

c. Proses Stoplist, yaitu proses menghilangkan kata-kata buang yang didapat dari data teks.

d. Proses Stemming, yaitu proses untuk menghilangkan imbuhan, awalan dan akhiran dari hasil stoplist.

3.2. Tahap Pemrosesan Data Teks

Tokenizer adalah pemrosesan suatu unit dokumen yang mempunyai hasil akhir berupa Tokens unik dan banyaknya frekuensi Tokens yang terdapat dari suatu unit dokumen. Didalam proses Tokenizer terdapat dua proses yaitu proses Tokenization dan proses Parsing.


(57)

Dengan satu urutan karakter dan satu unit dokumen yang didefinisikan, tokenization adalah pekerjaan pemotongan satu urutan karakter menjadi beberapa bagian yang dinamakan tokens yang biasanya adalah kata, pada saat bersamaan proses tokenization membuang karakter tertentu, seperti pemberian tanda baca.

Tokens ini sering dengan bebas menunjuk sebagai istilah atau kata, tetapi tanda baca ini kadang-kadang penting untuk membuat satu perbedaan Tokens. Tokens adalah satu contoh (instance) dari satu urutan karakter didalam beberapa dokumen tertentu.

Salah satu contoh dari Tokenization :

Input :

Bersyukurlah kita bangsa Indonesia yang begitu memasuki pintu gerbang kemerdekaan, telah memiliki bahasa kesatuan yang sekaligus menjadi bahasa nasional.

Hasilnya adalah :

Bersyukurlah kita bangsa Indonesia yang begitu memasuki pintu gerbang kemerdekaan telah memiliki bahasa kesatuan yang sekaligus menjadi bahasa nasional

Contoh disini dilakukan pemotongan setiap satu kata dan menghilangkan semua karakter tanda baca.

Langkah berikutnya adalah dilakukan proses parsing. Parsing adalah proses pengenalan dan pengambilan Token hasil Tokenization dari sekumpulan unit dokumen. Yang biasanya kata – kata. Proses parsing tidak hanya dapat dilakukan dalam proses Information retrieval, melainkan juga pada bidang lain seperti pada pembuatan sebuah compiler dan Bahasa Alami.


(58)

Sebelumnya perlu diketahui arti dari istilah parser yaitu program yang melakukan proses parsing. Parser dapat diibaratkan sebagai “otak” dari sebuah kompiler: komponen inilah yang menginferensikan makna dari bahasa dalam string input berdasarkan grammar/tata bahasa yang telah ditentukan sebelumnya oleh pemrogram. Dari makna atau nilai semantik sebuah rangkaian token, parser dapat segera memproses (interpretasi, translasi) struktur implisit dalam rangkaian token tersebut, atau menunda pemrosesan sampai didapat struktur utuh dari string input. Contoh proses parsing dapat dilihat pada bagian lampiran.

Stoplist Adalah proses pembuangan atau menghilangkan kata-kata buang, yaitu : Kata depan, kata sambung, kata ganti, dan lain-lain. seperti : di, dan, tetapi, dia, yaitu, sedangkan, dan sebagainya.

Contoh :

Bersyukurlah kita bangsa Indonesia yang begitu memasuki pintu gerbang kemerdekaan, telah memiliki bahasa kesatuan yang sekaligus menjadi bahasa nasional.

Menjadi :

Bersyukurlah bangsa Indonesia memasuki pintu gerbang kemerdekaan, memiliki bahasa kesatuan sekaligus menjadi bahasa nasional.

3.3. Algorithma Stemming

Berdasarkan pembentukan kata-kata yang sudah dibahas didalam bab II, Algoritma Stemming Bahasa Indonesia M. Adriani dan B Nazief ini mempunyai aturan imbuhan sendiri dengan model, seperti :


(59)

AW : Awalan AK : Akhiran

KK : Kata Ganti kepunyaan P : Partikel

Tanda kurung besar menandakan bahwa imbuhan adalah opsional.

Tabel 3.1, kombinasi Awalan dan Akhiran yang tidak dibenarkan. Kecuali kata

dasar “tahu”dibolehkan dengan awalan “ke-“ dan Akhiran “-i” yang menjadi

“ketahui”.

Definisi sebelumnya membentuk aturan yang digunakan, namun ada perkecualian dan batasan yang disatukan dalam aturan.

a. Tiga kata atau sedikit karakter yang tidak mempunyai imbuhan, maka tidak akan dilakukan proses stemming pada kata tersebut.

b. Imbuhan yang sama tidak pernah diulangi, sebagai contoh, setelah Awalan

“te-“ atau dengan variasinya. Maka tidak akan mungkin Awalan “te-“ tersebut

akan diulang kembali.

c. Kita bisa menggunakan pembatasan konfiks dalam proses stemming untuk menghindari kombinasi imbuhan yang salah berdasarkan Tabel 3.1. Sebagai

contoh, kata dasar yang mempunyai awalan “di-“, maka kata tersebut tidak


(60)

d. Menambahkan satu awalan dapat mengubah kata dasar atau sebelumnya sudah mempunyai awalan; dengan mendiskusikan ini lebih lanjut dalam uraian dari

aturan untuk menggambarkan, mempertimbangkan “meng-" yang mempunyai

variasi “mem-", “meng-", “meny-", dan “men-". Salah satu imbuhan ini dapat

mengubah satu kata, sebagai contoh, untuk kata dasar “sapu", variasi yang

diterapkan adalah “meny-" untuk menghasilkan kata “menyapu" dimana “s"

dihilangkan.

e. Karakter akan dikembalikan setelah proses penghilangan awalan.

Algoritma ini mempunyai tiga komponen : pengelompokan Imbuhan, urutan menggunakan aturan (dan perkecualiannya), dan kamus. Kamus di cek setelah semua aturan stemming berhasil. Jika kata yang dimaksud ditemukan dalam kamus, dan proses stemming berhasil menemukan kata dasarnya, algoritma kembali mencek kamus, dan algoritma berhenti.selain itu, beberapa langkah mencek kata yang kurang dari dua karakter dalam panjangnya, jika demikian tidak akan dilakukan proses stemming pada kata tersebut.

3.3.1. Penjabaran Proses Stemming Untuk Sebuah Kata

Berikut ini adalah proses stemming yang harus dilalui sebuah kata : 1. Kata yang belum di Stemming dicari dalam kamus. Jika ketemu maka

diasumsikan kata tersebut adalah kata dasar, maka kata tersebut dikembalikan dan algoritma berhenti.

2. Hilangkan sufiks untuk (“-lah", “-kah", “-ku", “-mu", atau “-nya"). Pertama

hilangkan (P) (“-lah",”-kah”,”-tah”,“-pun"). Setelah itu hilangkan juga (KK)


(61)

pertama menjadi “bajumu” dan proses stemming kedua menjadi “baju”.jika

kata “baju” ada didalam kamus maka algoritma berhenti. Sesuai dengan model

imbuhan, menjadi :

[[[AW+]AW+]AW+] Kata-Dasar [+AK]

3. Hilangkan juga (AK) sufiks (“-i",”-an”, dan “-kan"), jika berhasil maka jalankan langkah 4. Dengan model :

[[[AW+]AW+]AW+] Kata-Dasar

Contoh : kata “membelikan” distemming menjadi “membeli”, jika tidak ada

dalam kamus maka dilakukan proses penghilangan prefiks pada langkah 4. 4. Penghilangan prefiks mengikuti langkah-langkah berikut ini:

a. Jika sufiks telah dihilangkan pada langkah 3 maka aturan pelarangan kombinasi prefiks-sufiks dicek sesuai dengan aturan pada tabel 3.1. Jika aturan sesuai maka algoritma kembali.

b. Jika prefiks yang sekarang sesuai dengan prefiks sebelumnya maka algoritma kembali.

c. Jika 3 prefiks telah sebelumnya dihapus maka algoritma kembali. d. Jenis prefiks ditentukan dengan salah satu langkah berikut ini:

i. Jika prefiks dari kata adalah “di-", “ke-", atau “se-", maka maka dapat langsung dihilangkan.

ii. Jika prefiks adalah {“te-", “be-", “me-", atau “pe-"}, mempunyai variasi yang berbeda. Yang menggunakan aturan peluruhan yang akan dijelaskan pada tabel 3.2. Dengan contoh, prefiks “me-“ dapat meluruh menjadi “mem-“, “men-“, “meny-“, atau “meng-“


(62)

tergantung pada huruf awal dari kata dasar tersebut. Langkah sebelumnya menstemming kata “membelikan” menjadi “membeli”. Sekarang menstemming prefiks “mem-“ menjadi “beli”. Ini adalah kata yang terdapat dalam kamus, maka proses berhenti. Dan jika tidak ada prefiks yang cocok, maka proses berhenti, dan algoritma menunjukan bahwa kata dasar tidak ditemukan.

iii. Jika pencarian kata dalam kamus saat ini gagal, algoritma mengulang kembali pada langkah 4 (ini adalah proses reckursif). Jika kata tersebut ditemukan dalam kamus, maka proses berhenti. 5. Jika setelah rekursif penghilangan prefiks, kata dasar tetap tidak ditemukan.

Maka recoding menguji kolom aturan dari aturan tabel 3.2. kolom ini menunjukan variasi prefiks dan recoding karakter untuk digunakan pada saat kata dasar diawali dengan huruf tertentu, atau pada suku kata pertama dari akhir kata dasar dengan huruf tertentu. Recoding karakter ditunjukan sebagai huruf kecil tertentu diikuti dengan tanda hubung sebagai kaitan. Tidak semua prefiks mempunyai karakter recoding.

Sebagai contoh, kata “menangkap” mengikuti aturan 15 untuk prefiks “me-“

(diawali dengan prefiks “men-” diikuti dengan huruf hidup/vokal “- a”).

Setelah menghilangkan “men-“ seperti pada langkah 4, didapatkan “angkap”,

ini bukan kata dasar.

Untuk aturan 15, terdapat dua aturan recoding karakter yang memungkinkan,

“n” (sebagai “men-nV...”) dan “t” (sebagai “men-tV...”). ini adalah suatu

pengecualian; dimana hanya satu recoding karakter dari banyak kasus.


(63)

kembali pada langkah 4. Karena bukan kata dasar yang benar, sebagai

gantinya “t” mendapatkan “tangkap”, dan kembali pada langkah 4. Dan

“tangkap” sebagai kata dasar yang benar. Algoritma berhenti.

6. Jika semua langkah gagal, algoritma mengembalikan kata asli yang tidak distemming.

3.3.2. Peluruhan Awalan (Prefiks)

Saat kita menemukan awalan yang kompleks, kita menentukan batas menurut aturan yang ditunjukkan pada tabel 3.2. seperti kata “menangkap”. Dengan melihat aturan untuk prefiks “me-“, kita melihat huruf ketiga dari kata tersebut adalah “n” sebagai ganti dari “m”, dan tidak akan menggunakan aturan 10, aturan 11, aturan 12, aturan 13, dan aturan 14 dengan huruf ke empatnya dari kata adalah “a” bukan “c”, “d”, “j”, atau “z”. Dan akhirnya yang dipilih adalah aturan 15, dengan menunjukkan prefiks yang dihilangkan adalah “me-“. Dengan salah satu hasil stem “nangkap”, yang tidak terdapat didalam kamus. Dan

“tangkap” yang terdapat didalam kamus.

Beberapa sisa aturan peluruhan, contoh : seperti aturan 17 untuk prefiks

“me- “, dengan kata “mengaku” dapat menjadi “meng-aku” dengan kata dasar

“aku” atau menjadi “meng-kaku” dengan kata dasar “kaku”. Keduanya adalah

kata yang benar, dan kita menentukan kata dasar yang benar tergantung dari konteks.

Tabel 3.2. Formula untuk aturan turunan prefiks. Huruf “V”

menunjukkan vokal, huruf “C” menunjukkan konsonan, huruf “A” menunjukkan

huruf apapun, dan huruf “P”menunjukkan pecahan kata pendek seperti “er”.


(64)

penghubung. Huruf kecil diikuti tanda penghubung dan keterkaitan luar adalah karakter recoding. Jika karakter awal dari kata tidak cocok dengan aturan yang ada ini, maka prefiks tidak akan dihilangkan. Aturan imbuhan ini tidak menitik beratkan seperti didefinisikan dalam buku tata bahasa Moeliono dan Dardjowidjojo [1988] dan Sneddon [1996].

Tabel 3.2. Formula untuk aturan turunan prefiks.


(65)

3.3.3. Flowchart Proses Stemming


(66)

Contoh Stemming Algoritma pada sebuah kalimat, dapat dilihat dibawah ini : Input :

Bersyukurlah bangsa Indonesia memasuki pintu gerbang kemerdekaan, memiliki bahasa kesatuan sekaligus menjadi bahasa nasional.

Output :

syukur bangsa Indonesia masuk pintu gerbang merdeka, milik bahasa satu sekaligus jadi bahasa nasional.


(1)

71


(2)

(3)

72 BAB VI PENUTUP

6.1. Kesimpulan

Berdasarkan hasil uji coba aplikasi stemmer untuk bahasa Indonesia ini dapat diambil kesimpulan sebagai berikut :

1. Algorithma stemming yang sekarang digunakan cukup untuk menangani masalah pemisahan akhiran pada suatu kata dasar yang mendapat imbuhan dengan syarat semua aturan dipenuhi dengan baik, karena tidak semua kata mempunyai bentuk yang konsisten.

2. Hasil implementasi sistem pemisahan akhiran dapat berjalan lancar, baik melewati pemeriksaan database maupun tanpa pemeriksaan pada database.

6.2. Saran

Untuk mengembangkan penelitian ini, dapat dipertimbangkan hal-hal sebagai berikut :

1. Dikembangkan berbasis web, sehingga dapat diakses secara online ataupun berbasis mobile, sehingga lebih banyak pihak yang dapat memanfaatkannya. 2. Perbaikan pada antar muka sehingga lebih menarik.

3. Penambahan fitur yang memungkinkan hasil stemming dapat disimpan dan dapat dilakukan batch processing dalam proses stemming untuk mempermudah user jika melakukan proses stemming lebih dari satu kali. 4. Untuk mengurangi ketergantungan pada database, sebaiknya perlu dilakukan


(4)

73

5. Saran untuk menambahkan file berupa Word serta PDF sebagai pengembangan apabila nantinya ada yang berkenan untuk mengembangkannya.


(5)

74

DAFTAR PUSTAKA

Adriani, M., Nazief, B., Asian, J., Tahaghoghi, S. M. M., and Williams, H. E. 2007. Stemming Indonesian:A confix-stripping approach. ACM J. Educ. Resour. Comput. 6, 4, Article 13 (December 2007), 33 pages.

Adriani, M., Nazief, B., et.al 2007. Stemming Indonesian:A confix-stripping approach. ACM J. Educ. Resour. December 2007

Agosti, Maristella. “Hypertext and Information Retrieval”. InformationProcessing & Management, 1993

Andi. 2010, Delphi 2010 Programming konsep dan implementasi, Yogyakarta: WAHANA KOMPUTER. Semarang.

Andi. 2010, Step by step DELPHI 2010 Programming, Yogyakarta: WAHANA KOMPUTER. Semarang.

Asian J., Williams H. E. dan Tahaghogi, S.M.M.. (2005). Stemming Indonesian, Melbourne, RMIT University, http://crpit.com/confpapers/CRPITV38Asian.pdf, ( Diakses on-line pada tanggal 14 oktober 2011 )

Chaer, Abdul. 2008, Morfologi Bahasa Indonesia: Pendekatan proses, Jakarta: Rineka Cipta.

Frakes, W.B., R. Baeza, 1992, Information Retrieval, Data Structures and Algorithms. Prentice Hall.

http://liyantanto.wordpress.com/2010/12/06/kata-dasar-bahasa-indonesia/ ( Diakses on-line pada tanggal 29 November 2011 )


(6)

75

Pohan, Husni dan Kusnassriyanto, Pengantar Perancangan Sistem I & II, KPC LPPM ITB, Bandung, 2002.

Pressman, Roger S, 2002, Rekayasa Perangkat Lunak: Pendekatan Praktisi (Buku I), Andi, Yogyakarta.

Tala, Fadillah Z., 2003, A Study of Stemming Effects on Information Retrieval in Bahasa Indonesia. Institute for Logic, Language and Computation Universeit Van Amsterdam