membangun aplikasi pencocokan string …repository.amikom.ac.id/files/publikasi_08.11.2339.pdf ·...

18
MEMBANGUN APLIKASI PENCOCOKAN STRING BERDASARKAN PENULISAN DAN KEMIRIPAN PENGUCAPAN Naskah Publikasi diajukan oleh Tryas Ayu Purnamasari 08.11.2339 kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA 2012

Upload: doanhanh

Post on 03-May-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

MEMBANGUN APLIKASI PENCOCOKAN STRING

BERDASARKAN PENULISAN DAN

KEMIRIPAN PENGUCAPAN

Naskah Publikasi

diajukan oleh

Tryas Ayu Purnamasari

08.11.2339

kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

AMIKOM YOGYAKARTA

2012

BUILDING THE APLICATION STRING MATCHING BASED ON WRITING AND THE SIMILARITY

OF PRONOUNCIATION

MEMBANGUN APLIKASI PENCOCOKAN STRING

BERDASARKAN PENULISAN DAN

KEMIRIPAN PENGUCAPAN

Tryas Ayu Purnamasari Emha Taufiq Luthfi

Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA

ABSTRACT

In string matching, the use of algorithms that can provide accurate search results that are appropriate and in accordance with user preferences. Even possible to use the task of merging several algoritma. In this final task, the author will analyze and menimplementasikan algorithm Soundex and Approximate (writing). In addition, the author will also analyze and implement algorithm is merging the two.

Soundex algorithm is based on algorithms that similarity speech. There is a difference between speech and spelling make a Soundex Indonesia to become more complex, so normalization is required. This is the difference that allows a Soundex Indonesia. This difference can be a barrier in the string-matching based on Soundex in Bahasa Indonesia. And in the end of this task, soundex have used 3 soundex, namely 1 soundex and without normalization with the normalization 2 soundex but different phonetic code. Shown in this final task, that in all the vocal Soundex algorithm which is coded as a string-matching will not make a 100% optimal. For the case of spelling and dialect, normalization is very helpful.

Other algorithms, the algorithm is to compare the writing. This algorithm can help in a letter vocal problems. However, the accuracy of this algorithm in handling the problem of vowel letter, not the means to make the results match the string. Results of analysis and implementation of the merging algorithm with the Soundex algorithm is shown in the writing of this final task, consisting of 3 parts that is satisfactory, unsatisfactory, and not satisfactory. Keywords: string matching, a Soundex Indonesia, compare the Approximate (any posts).

1. Pendahuluan

Dalam kehidupan sehari-haripun banyak terdapat proses yang digambarkan

dalam suatu algoritma. Misalnya kesamaan nama-nama orang di Indonesia. Kesamaan

nama-nama ini tidak hanya terdapat di negara Indonesia, melainkan di seluruh dunia.

Maksud kata nama Indonesia dalam judul skripsi ini adalah objek analisis dan

implementasi untuk algoritma yang berdasarkan penulisan dan kemiripan pengucapan

adalah nama-nama orang yang menggunakan ejaan Bahasa Indonesia yang

disempurnakan. Bukan hanya menggunakan ejaan Bahasa Indonesia, tapi juga

menggunakan logat Bahasa Indonesia. Hal ini dikarenakan adanya beberapa nama yang

terpengaruh budaya asing. Jadi walaupun terdengar seperti nama asing, namun nama

tersebut dikategorikan sebagai nama Indonesia berdasarkan logatnya.

Dalam Bahasa Indonesia, soundex sama halnya dengan homofon. Soundex

merupakan salah satu algoritma yang mencocokan string berdasarkan kemiripan

pengucapan (phoenic string matching). Pemilihan algoritma soundex dilatarbelakangi

karena adanya sejarah soundex yang menyebutkan bahwa algoritma soundex juga

merupakan algoritma yang mengatasi masalah pengejaan nama orang. Selain itu, belum

banyaknya riset pencocokan string menggunakan algoritma soundex untuk Bahasa

Indonesia, membuat adanya keinginan untuk mengulas lebih dalam topik ini.

2. Landasan Teori

2.1 Konsep Dasar Sistem

Menurut Jerry FitzGerald, suatu sistem adalah suatu jaringan kerja dari

prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk

melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu.

Untuk membedakan dan mengembangkan suatu sistem, maka membedakan

unsur-unsur dari sistem yang di bentuknya.

2.2 Konsep Pemodelan Sistem

2.2.1 Definisi Use

Use case class digunakan untuk memodelkan dan menyatakan unit

fungsi/layanan yang disediakan oleh sistem (or bagian sistem: subsistem

atau class) ke pemakai. Use case dapat dilingkupi dengan batasan sistem

yang diberi label nama sistem.

2.2.2 Class Diagram

Sedangkan Class diagram menggambarkan struktur dan deskripsi class,

package dan objek beserta hubungan satu sama lain seperti hubungan

dinamis, pewarisan, asosiasi, dan agregasi.

2.3 Pencocokan String

1Pencocokan string menurut Dictionary of Algorithms and Data Structures,

National Institute of Standards and Technology (NIST), pencocokan string (string

matching) diartikan sebagai sebuah permasalahan untuk menemukan pola

susunan karakter string di dalam string lain atau bagian dari isi teks. Pencocokan

string merupakan bagian penting dari sebuah proses pencarian string (string

searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string alam

dokumen tergantung dari teknik atau cara pencocokan string yang digunakan.

2.4 Approximate String Matching

Merupakan pencocokan string dengan membedakan susunan karakter

dalam string yang dicocokkan, memiliki jumlah, maupun urutan karakter dalam

suatu string. Banyak algoritma bisa digunakan untuk pencocokan string dengan

metode ini. Misalnya algoritma Brute Force, Backtracking, Greedy, dan lain-lain.

2.5 Phonetic String Matching

2Fonetik (phonetics) adalah ilmu yang menyelidiki bunyi bahasa tanpa

melihat fungsi bunyi itu sebagai pembeda makna dalam suatu bahasa (language).

Kata sifat fonetik adalah fonetis (phonetic). Phonetic String Matching merupakan

suatu teknik pencocokan string yang membandingkan suatu string dengan string

yang lain berdasarkan kode fonetis masing-masing.

Beberapa contoh algoritma phonetic string matching yaitu :

1. Algoritma soundex, merupakan algoritma phonetic yang mendeteksi string

nama yang mempunyai kemiripan dalam ucapan yang menghasilkan 4 digit

kode fonetis. Dimana huruf-huruf yang mirip dalam pengucapan

dikelompokkan menjadi satu kelompok dengan ditandai kode fonetis yang

sama.

2. Algoritma metaphone, merupakan algoritma yang melakukan penangan

khusus terhadap setiap fonem (satuan bunyi bahasa) dalam kata.

1 Binstock & Rex. 1995. “Practical Algorithmsfor Programmers”. Addison Wesley. 2 Syaroni, Mukhamad dkk, 2004, “Pencocokan String Berdasakan Kemiripan Ucapan (Phonetic String

Matching) dalam Bahasa Inggris”. Departemen Teknik Informatika ITB Bandung.

3. Algoritma caverphone, merupakan algoritma yang mempunyai langkah-

langkah yang panjang dan rinci dan tidak menangani khusus untuk huruf-huruf

tertentu dalam satu kelompok langkah, tetapi sudah digabung untuk beberapa

huruf.

4. Algoritma doublemetaphone, merupakan salah satu algoritma phonetic yang

mendeteksi string nama yang mempunyai kemiripan dalam ucapan yang

menghasilkan dua buah kode fonetis, yaitu kode fonetis primer dan sekunder.

Dalam skripsi ini, akan dipilih algoritma soundex. Pemilihan algoritma

soundex dilatarbelakangi karena adanya sejarah soundex yang menyebutkan

bahwa algoritma soundex juga merupakan algoritma yang mengatasi masalah

pengejaan nama orang. Selain itu adanya versi penulisan kode fonetis yang

berbeda, juga melatarbelakangi pemilihan algoritma soundex.

Algoritma Soundex diciptakan oleh Robert Russell dan Margaret Odell yang

kemudian dipatenkan pada tahun 1918 dan 1922. Sebuah variasi yang disebut

American Soundex telah digunakan pada tahun 1930-an untuk mendukung dan

menganalisa sensus Amerika dari tahun 1890 sampai 1920.

2.5.1 Soundex 1

Langkah-langkah untuk pencocokan string dengan metode Soundex 1 :

a. Pertahankan huruf pertama dari suatu kata tersebut.

b. Ubah abjad sisanya sesuai nilai Tabel 2-1 berikut :

Tabel 2-1 : Kode Fonetis Soundex 1

Huruf Kode Fonetis

A, I, U, E, O 1

P, G, B, D 2

L, M, N, R, X, H 3

V, F, S, T, J, Z 4

Q, C, K 5

W, Y 6

c. Hapus semua pasangan dari urutan angka.

d. Tulis empat posisi pertama, yang akan mengikuti pola: <uppercase

letter> <digit> <digit> <digit>.

2.5.2 Soundex 2

Langkah-langkah untuk pencocokan string dengan metode Soundex 2 :

a. Sebuah string nama dimasukkan, huruf pertama akan diambil.

b. Berikan kode fonetis untuk masing-masing huruf, berdasarkan Tabel 2-2

Tabel 2-2 : Kode Fonetis Soundex 2

Huruf Kode Fonetis

A,E,I,O,U,H,Y /

B,P 0

C,J,S,X,Z 1

D 2

F (V) 3

G, K (Q) 4

L 5

M 6

N 7

R 8

T 9

W w

Karakter Khusus *

c. Jika terdapat dua atau lebih huruf berurutan dengan nomor (kode fonetis)

yang sama, maka ambil salah satunya saja.

d. Jika ada huruf-huruf yang tergolong dalam tabel normalisasi maka,

huruf-huruf tersebut dinormalisasikan dan kemudian baru dikodekan

e. Abaikan semua huruf berikut a, e, h, i, o, u, dan y dengan kode fonetis /

f. Outputkan 4 digit pertama termasuk huruf awal (<uppercase letter>

<digit> <digit> <digit> ), jika hasilnya kurang dari 4 digit maka digit sisa

diisi dengan karater khusus (*).

2.5.3 Soundex 3

Langkah-langkah untuk pencocokan string dengan metode Soundex 3 :

a. Sebuah string nama dimasukkan, huruf pertama akan diambil.

b. Berikan kode fonetis untuk masing-masing huruf, berdasarkan Tabel 2-3:

Tabel 2-3 : Kode Fonetis Soundex 3

Huruf Kode Fonetis

A,E,I,O,U,Y /

B 0

C,J,S,X,Z 1

c. Jika terdapat dua atau lebih huruf berurutan dengan nomor (kode

fonetis) yang sama, maka ambil salah satunya saja.

d. Jika ada huruf-huruf yang tergolong dalam tabel normalisasi maka,

huruf-huruf tersebut dinormalisasikan dan kemudian baru dikodekan.

e. Abaikan semua huruf berikut a, e, h, i, o, u, dan y dengan kode fonetis /

f. Outputkan 4 digit pertama termasuk huruf awal (<uppercase letter>

<digit> <digit> <digit> ), jika hasilnya kurang dari 4 digit maka digit sisa

diisi dengan karater khusus (*).

g. Dalam soundex hanya ada keputusan sama (jika kode dari nama

keyword dan nama pembanding sama) atau tidak sama (jika kode dari

nama keyword dan nama pembanding berbeda).

2.6 Pengirisan Algoritma Penulisan Dengan Algoritma Soundex

Pengirisan algoritma penulisan dengan algoritma soundex dilakukan selain

untuk memenuhi tujuan ke-2, juga untuk mem-filter seluruh keluaran. Hal ini

dimaksudkan untuk menjaga agar keluaran yang muncul hanya nama yang benar-

benar mirip dengan nama keyword. Dengan begitu hanya nama-nama yang sama

dari algoritma Soundex1 dan Soundex2 dan Soundex3 dan penulisan saja yang

muncul.

2.7 Sistem Perangkat Lunak Yang Digunakan

Visual basic adalah salah satu bahasa pemrograman yang berorientasi

object (Object Oriented Programming : OOP). Pemrograman berorientasi obyek

menawarkan konsep yang sederhana, dimana seorang programmer tidak dituntut

untuk membuat aplikasi dengan membangun seluruh komponennya sendiri.

D, T 2

F, P, V 3

G, K (Q) 4

L, R 5

M 6

N 7

W 8

H 9

Karakter Khusus *

Program aplikasi dapat dibuat dengan memanfaatkan obyek-obyek yang sudah

ada. Setiap obyek harus memiliki atribut/property dan event.

3. Analisis

3.1 Gambaran Umum

3Model pendekatan pengembangan perangkat lunak yang digunakan

adalah model Waterfall. Model ini melakukan pendekatan secara sistematis dan

urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain,

coding, testing / verification, dan maintenance. Disebut dengan waterfall karena

tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan

berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya

tahap sebelumnya yaitu tahap requirement.

Aplikasi ini menggunakan model waterfall karena lebih mudah, kelebihan

dari model ini adalah ketika semua kebutuhan sistem dapat didefinisikan secara

utuh, eksplisit, dan benar di awal project, maka dapat berjalan dengan baik dan

tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan

seeksplisit yang diinginkan, tetapi problem pada kebutuhan sistem di awal project

lebih ekonomis, usaha dan waktu yang terbuang lebih sedikit jika dibandingkan

problem yang muncul pada tahap-tahap selanjutnya.

3.2 Analisis Kebutuhan dan Spesifikasi

Sistem ini berbentuk aplikasi, yang mana aplikasi ini digunakan bukan oleh

seorang admin dan atau seseorang yang berkewenangan dengan hak tertentu,

melainkan user biasa.

Kebutuhan fungsional dari sistem ini hanya membutuhkan inputan data

berupa string nama sebagai keyword. String nama ini merupakan kumpulan huruf

dari a sampai z dan membentuk sebuah nama. Inputan nama tidak diperkenankan

mengandung singkatan. Inputan ini akan diproses oleh sistem menggunakan

kedua algoritma, tanpa meminta user memilih diantara kedua algoritma tersebut.

Output pada sistem ini mengeluarkan keluaran berupa daftar nama-

nama yang mirip dengan keyword yang berasal dari database, yang datanya

adalah nama siswa SMA Negeri 1 Pemalang angkatan 2011/2012, nama tokoh

Indonesia, serta nama orang terkenal Indonesia, berdasarkan kedua algoritma.

3 Roger S. Pressman. 2005. “Software Engineering : A Practitioner’s Approach

Selain itu sistem juga memberikan informasi mengenai kode fonetis yang

muncul.

3.3 Perancangan Sistem

Untuk menspesifikasikan mengenai analisis proses dari perangkat lunak

akan digunakan UML (Unified Modeling Language) karena sifatnya yang

menjamin kejelasan sistem yang digambarkan dan kelengkapan

penggambarannya.

3.3.1 Use Case Diagram

Gambar 3-1 di bawah ini adalah use case dari sistem yang dibangun

untuk menganalisa dan mengimplementasi algoritma Soundex dan

penulisan :

Gambar 3-1 : Use Case Diagram(a)

Gambar 3-2 : Use Case Diagram (b)

3.3.2 Class Diagram

Merupakan alat bantu pengembangan sistem yang menjelaskan level

terendah dari perilaku-perilaku proses yang terdapat dalam diagram aliran

data secara rinci.

Cek nama String Matching

Cek nama

String Matching

Gambar 3-3 : Class Diagram

: user

: Cek Nama : Approximate

String Matching

: Soundex : Pencocokan

String

:

GUI.HasilStringMatching

: DataNama : GUI.Input

Nama

text1_KeyPress( )

klikTombolProses( )

cek_char( )

huruf( )

posisi( )

per_huruf( )

total_huruf( )

setNamaApp( )

getNamaApp( )

Soundex1( )

Soundex2( )

Soundex3( )

setKodeFonetis1( )

setKodeFonetis2( )

setKodeFonetis3( )

getNamaS1( )

getNamaS2( )

getNamaS3( )

sama( )

mirip( )

klikTombolInputNamaLagi( )

klikTombolKeluar( )

soundex1( )

soundex2( )

soundex3( )

Form_Load( )

3.3.3 Sequence Diagram

Gambar 3-4 : Sequence Diagram

4. Hasil Penelitian dan Pembahasan

4.1 Implementasi

Implementasi sistem (system implementation) merupakan tahap meletakkan

sistem yang baru dikembangkan supaya nantinya sistem tersebut siap untuk

dioperasikan sesuai dengan yang diharapkan. Tujuan dari tahap implementasi

adalah menyiapkan semua kegiatan sistem sesuai dengan rancangan yang telah

ditentukan.

4.1.1 Implementasi Program

Program Pencocokan String ini mempunyai 2 form yaitu form input dan form

keluaran.

4.1.2 Implementasi Database

Database merupakan sekumpulan data yang saling berintegrasi satu sama

lain dan terorganisasi berdasarkan sebuah skema atau stuktur tertentu dan

tersimpan pada sebuah hardware computer.

4.2 Pemeliharaan Siistem

Untuk membuat system yang baik dan bebas dari masalah maka perlu

dilakukan pemeliharaan sistem. Pemeliharaan pada sistem yaitu pemiharaan pada

software.

4.3 Pengujian

Untuk melakukan pengujian dengan Soundex digunakan sample nama.

Langkah pengujiannya adalah mencari kode fonetis nama keyword. Kemudian

dicocokkan dengan kode fonetis dari nama-nama yang ada dalam data apakah ada

kode fonetis yang sama.

Setiap nama yang mempunyai kode fonetis yang sama akan dikelompokkan

menjadi satu. Dalam tiap kelompok tersebut, tidak menutup kemungkinan adanya

nama yang tidak sesuai. Artinya dalam satu kelompok tertentu, terdapat nama yang

seharusnya tidak termasuk kelompok tersebut karena tidak satu suara dengan nama

lain dalam kelompok tersebut. Kelompok tersebut diberi nama kelompok yang tidak

sesuai.

Pengujiannya adalah dari 5170 nama yang ada dalam database, akan diuji

satu persatu. Setelah itu keluaran yang ada akan dicek secara manual, maka

terbentuk 3 kelompok jenis keluaran. Yaitu keluaran memuasakan, kurang

memuaskan, atau tidak memuaskan.

Banyaknya jumlah keluaran yang tidak memuaskan menunjukkan bahwa

pengirisan algoritma penulisan dengan algoritma soundex kurang optimal. Namun

bukan berarti pengirisan algoritma ini tidak berhasil. Karena kalau dilihat sisi positif

dari pengirisan algoritma adalah filter yang menyebabkan keluaran tidak sebanyak

jika algoritma tidak diiriskan.

4.4 Hasil

Gambar 4-1 : Tampilan Awal Aplikasi

Form pencoccokan string di atas merupakan form yang pertama kali muncul

ketika program dijalankan. Form ini digunakan untuk menginputkan nama yang

akan diproses kemiripannya bedasarkan ejaan. Dibawah ini akan ditunjukkan

contoh ketika program dijalankan.

Gambar 4-2 : Contoh Input Keyword “abdul”

Gambar 4-3 : Hasil Keluaran Keyword “abdul”

Aplikasi ini akan muncul sebuah peringatan jika tidak menginputkan nama

atau nama kosong tetapi tetap meminta untuk memproses atau mengklik tombol

“proses” maka akan muncul gambar seperti dibawah ini :

Gambar 4-4 : Peringatan

Gambar 4-5 : Validasi

Dan jika menginputkan nama yang tidak ada pada database maka akan

muncul message box atau validasi seperti diatas. Dalam message box tersebut

ada 2 pilihan yaitu pilihan “ok” dan “cancel”. Jika memilh “Ok” maka akan menutup

jendela validasi tersebut. Tetapi jika memilih “cancel” maka akan muncul gambar

4-6 seperti dibawah ini dan inputan tetap diproses namun hsilnya tidak sama persis

karena sesuai dengan yang ada di database. Misalnya dengan menginputkan

nama “abde”. Nama tersebut tidak ada didalam database. Dan hasilnya seperti

pada gambar 4-7.

Gambar 4-6 : Informasi

Gambar 4-15 : Keyword “abde”

5. Kesimpulan

Ketiga Algoritma Soundex dapat digunakan, hanya saja harus disesuaikan

dengan kebutuhan. Misalnya, jika data yang digunakan sebagai acuan berskala kecil dan

tidak menghiraukan Ejaan Yang Disempurnakan maka dapat menggunakan algoritma

Soundex1. Sebaliknya, jika data acuan berskala besar dan memperhitungkan Ejaan

Yang Disempurnakan serta ingin menghasilkan keluaran yang lebih akurat, maka dapat

menggunakan algoritma Soundex2 maupun Soundex3.

Kelemahan dari Soundex1 adalah tidak adanya normalisasi yang menyebabkan

ketidaksempurnaan pengkodean untuk ejaan tertentu. Namun kelebihan Soundex ini yaitu

jika nama yang dicocokan sederhana tanpa mengandung huruf-huruf yang harus

dinormalisasi.

Kelemahan Soundex2 dapat dilihat dari huruf H yang tidak dikodekan akan tidak

tepat penggunaanya jika huruf H terdapat bukan di tengah dan atau di sebelah konsonan

lain melainkan di belakan dari sebuah nama. Kelebihan Soundex2 ini yaitu pembagian

kode fonetis yang cermat berdasar aturan baku berbahasa Indonesia membuat jumlah

kelompok yang sesuai paling banyak, itu berarti algoritma Soundex ini paling mudah dan

berhasil.

Kelemahan dari Soundex3 justru jika huruf H dikodekan dan terdapat di tengah

nama maka terdapat nama yang harusnya dikodekan sama namun tidak dikodekan sama.

Kelebihan Soundex3 ini terlihat jika nama yang ingin dicocokan mengandung huruf yang “

cadel “.

Keluaran pengirisan algoritma penulisan dengan algoritma soundex kurang

optimal. Namun bukan berarti pengirisan algoritma penulisan dengan algoritma soundex

ini tidak berhasil. Karena kalau dilihat sisi positif dari pengirisan algoritma penulisan

dengan algoritma soundex adalah filter yang menyebabkan keluaran tidak sebanyak jika

algoritma tidak diiriskan.

DAFTAR PUSTAKA

Binstock & Rex. 1995. Practical Algorithmsfor Programmers. Addison Wesley.

Hanif Al Fatta. 2007. Analisis & Perancangan Sistem Informasi Untuk Keunggulan Bersaing

Perusahaan & Organisasi Modern. Penerbit ANDI.

HM, Jogiyanto. 1999. Analisis dan Desain Sistem Informasi : Pendekatan Terstruktur Teori

dan Praktik Aplikasi Bisnis. Yogyakarta : Andi Offset.

Rahadian, Sukma. 2007. Tugas Akhir Perbandingan Pencocokan String Nama Dalam

Bahasa Indonesia Berdasarkan Kemiripan Ucapan. Departemen Teknik Informatika Sekolah

Tinggi Teknologi Telekomunikasi Bandung.

Roger S. Pressman. 2005. Software Engineering : A Practitioner’s Approach

Syaroni, Mukhamad dkk, 2004. Pencocokan String Berdasakan Kemiripan Ucapan (Phonetic

String Matching) dalam Bahasa Inggris. Departemen Teknik Informatika ITB Bandung.