membangun aplikasi pencocokan string …repository.amikom.ac.id/files/publikasi_08.11.2339.pdf ·...
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
: 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.