[Algoritma fonetik](http://en.wikipedia.org/wiki/Phonetic_algorithm) adalah algoritma untuk mengelompokkan kata-kata berdasarkan cara pengucapannya. Jika fungsi *F()* adalah sebuah algoritma fonetik, maka *F(“andy”)* akan memiliki hasil yang sama dengan *F(“andi”)*, karena ‘andy’ dan ‘andi’ memiliki cara pengucapan yang sama. Untuk Bahasa Inggris, algoritma yang populer adalah [Soundex](http://en.wikipedia.org/wiki/Soundex) dan [Metaphone](http://en.wikipedia.org/wiki/Metaphone).
Bagaimana dengan Bahasa Indonesia?
Algoritma fonetik untuk Bahasa Indonesia seharusnya jauh lebih sederhana daripada algoritma fonetik untuk Bahasa Inggris karena Bahasa Indonesia adalah bahasa yang fonetik: pengucapannya relatif konsisten dengan penulisan. Algoritma metaphone seharusnya dapat dimodifikasi menjadi jauh lebih sederhana untuk dapat digunakan dalam Bahasa Indonesia.
Tetapi karena saya terlalu malas untuk mempelajarinya, berikut adalah algoritma fonetik Bahasa Indonesia tanpa basisdata hasil rekaan dari saya sendiri:
1. Ubah ejaan lama menjadi ejaan baru: ubah **oe** menjadi **u**, **tj** menjadi **c**, **dj** menjadi **j**. Untuk menghindari *false positive*, jangan ubah **j** menjadi **y** kecuali jika ada pengubahan ejaan lama menjadi ejaan baru yang lain. Hati-hati dengan urutan pengubahan, jangan sampai **dj** berubah menjadi **y**.
2. Ganti konsonan yang berderet menjadi satu konsonan saja. Misalnya ‘anni’ menjadi ‘ani’.
3. Normalkan diftong: ubah **ai** di akhir kata menjadi **ay**, **au** di akhir kata menjadi **aw** dan **oi** di akhir kata menjadi **oy**.
4. Normalkan semivokal: ubah **konsonan-y** menjadi **konsonan-i**, **iy** menjadi **i** dan **uw** menjadi **u**
5. Normalkan konsonan yang berbunyi nyaris sama: ubah **kh** dan **q** menjadi **k**, **sy** menjadi **s**, **v** menjadi **f**, **z** menjadi **j**, **d** menjadi **t**, **b** menjadi **p** (mungkin masih ada yang kurang atau salah).
6. Normalkan ‘x’: ubah **x** menjadi **ks**
7. Ubah konsonan *compound* yang tersisa menjadi satu karakter: **ng** menjadi **d** dan **ny** menjadi **b**.
8. Normalkan h diam: ubah **konsonan-h-vokal** menjadi **konsonan-vokal** saja.
9. Hapus semua huruf vokal.
Untuk memuaskan ego saya, maka algoritma yang sama sekali belum pernah dicoba ini saya namakan: Algoritma Priyadi™. Ha! >:)
Khusus untuk nama orang, mungkin akan lebih baik jika algoritma fonetik Bahasa Indonesia (apapun algoritmanya, tentunya bukan Algoritma Priyadiâ„¢) dicampur dengan algoritma fonetik Bahasa Inggris. Hal ini akibat banyaknya nama orang Indonesia yang menganut pengucapan Bahasa Asing.
Selain itu, karena Bahasa Indonesia relatif sangat fonetik, kemiripan pengucapan bisa saja berbanding terbalik dengan [jarak Levenshtein](http://en.wikipedia.org/wiki/Levenshtein_distance). Semakin mirip pengucapan dua buah kata, maka semakin dekat jarak Levenshtein-nya. Hanya saja, metoda ini akan membutuhkan tempat penyimpanan yang jauh lebih besar daripada jika menggunakan algoritma fonetik.
Mungkin saya sedang *reinventing the wheel*. Mungkin sudah ada algoritma lain yang lebih baik dan tentunya lebih terbukti? Atau mungkin sudah ada yang sudah mempelajari efektivitas algoritma fonetik Bahasa Inggris jika diterapkan pada Bahasa Indonesia? Jika belum ada, mungkin ini topik yang baik untuk tugas akhir mahasiswa S1 teknik atau sastra.
Pesan saya, namakan algoritma anda dengan nama anda sendiri, jangan nama dosen pembimbing anda, kecuali kalau nama anda adalah ‘Priyadi’ :D.
if (PriyadiAlgorithm(“Roy Suryo”)==PriyadiAlgorithm(“Roi Soerjo”)) {
printf(“Horeeeee!!!!”);
}
:D
yah…kedua…:(
mmm..anne jd ane :)..priyadi jd priadi..:)
Tapi… bagaimana kalau nama dosennya: Priyadi? :D
kalo algoritma/kaidah “Unsur Serapan” dari bhs asing ke bhs Indonesia, ada tuh.
eh..nyambung nggak ya :-?
Coool :)>-
Wah, tumben gue ke pilem :-??
Coba cari2 yg bahasa Italian Pri, mungkin bisa diadaptasi, soale rada mirip2.
keren
“jangan ubah j menjadi y kecuali jika ada pengubahan ejaan lama menjadi ejaan baru yang lain.”
yulian adalah jay menjadi yulian adalah yay … hi..hi…
#-o
Agar sejalan dengan algoritma ini bagaimana kalau ejaan bahasa Indonesia disempurnakan sekali lagi (EYD tahap 2).
#10 Hi YAY (Hi Jay maksudnyah) :x
pak pri hmmmmssss
cerdas…….
pintar…..
matang…
mapan……
sosok pria yg mendekati kesempurnaan.
btw, anda bukan anggota lsm-kan?…
yg bergerak kalo ada titipan :d
doeljoni harusnya duljoni donk
:)>-
#13: heh, salah dong. kalo ‘jay adalah yulian’ gak berubah jadi ‘yay adalah yulian’, beda kalau ‘jay adalah joelian’, maka berubah jadi ‘yay adalah yulian’.
—–
Normalkan diftong: ubah ai menjadi ay, au menjadi aw dan oi menjadi oy.
—–
1. baik menjadi bayk? (bayek)
2. baur menjadi bawr? (bawer)
/:) mumet aku?????
#16: hmm, gimana ya cara bedain diftong dan vokal yang terpisah. jangan2 harus pakai database juga :(
#18, mestinya pakai database.
Tapi gue heran, kok omPri gak pake contoh “standar”. Misalnya dalam paragraf pertama:
>Jika fungsi F() adalah sebuah algoritma fonetik,
>maka F(â€andyâ€) akan memiliki hasil yang sama
>dengan F(â€andiâ€), karena ‘andy’ dan ‘andi’
>memiliki cara pengucapan yang sama.
Mestinya ditulis
>Jika fungsi F() adalah sebuah algoritma fonetik,
>maka F(â€royâ€) akan memiliki hasil yang sama
>dengan F(â€roiâ€), karena ‘roy’ dan ‘roi’
>memiliki cara pengucapan yang sama.
Atau sebagai contoh di point 1:
>Ubah ejaan lama menjadi ejaan baru:
>ubah oe menjadi u
Maka F(“Roy Soeryo”) akan sama dengan F(“Roi Suryo”).
Dengan begini artikel omPri akan 68% lebih baik daripada yang sekarang. Sekarang ini gue kira nilai untuk artikel omPri hanya 68. Karena 68% dari isi artikel itu cuma menunjukkan omPri lagi kurang kerjaan, seperti halnya 68% dari komentator di blog ini :d
busted! polisiEYD wannabe! hihihihi..
oke deh.. algoritma priyadi™ saya simpan,
untuk bahan cerita ke anak cucu. :D
hmmm…
jadi inget orang-orang latin
yang berbahasa Inggris,
di pilem-pilem Huliwud.
kata orang,
bahasa itu untuk memudahkan,
untuk memahami,
jadi ksimpulannya :
gunakan bahasa dengan menikmatinya.
:o
Hi Pri! ™
salam kenal.
Algoritma Priyadi :-? keren tuh, ngikut ah..
Bagaimana kalau EYD disempurnakan sekali lagi supaya algoritma ini menjadi lebih mudah untuk dipakai?
kok beda ya sama pelajaran algoritma yang gw dapet di kampus !
Mulay sekarang URLku dah ganti Oom, kalaw bisa disewaikan ya (yang di sidebar pakay yang baru..) \:d/
algoritma yang ganteng, sama ama yang bikin.. :x
#19
=))
68% gw setubuh ama lu :))
btw, ohm pri dah baca tulisan idban barusan ???
Asli gw jadi ingat pelajaran jaman SMP :))
asli gw ngga nyambung :((
*liat kiri – kanan*
bingung!
bwuheheheh, gw juga pernah bikin algoritma ngasal, yaitu stemming bahasa indonesia, kapan2x posting di blog ah, jadi algoritma jefri =))
Walah….
Lalu bagaimana dengan blog-ku yang jadul™?? /:)
Harus bikin database versi jadul™ juga dunk
:-? something new, with bright idea.
ooh…ternyata gitu toh, ya, ya… *manggut2*
*padahal ga ngerti*
Kenapa juga ai harus berubah jadi ay, gimana kalo ai berubah jadi e, jadi if PriyadiAlgorithm(“pandai”) then PriyadiAlgorithm(“pande”), oke??? tapi asyik juga isengnya (dari pada mikirin yang jorok n g jelas, be creative…. :-) )
#35: masuk akal kan? karena ‘pandai’ pengucapannya mirip dengan ‘pande’.
dipikirnya alogoritma mat…. :((
gk taunya………….
malah bahasan diftong dkk
tp cool jga ne:)
lam kenal wat pak priadi(gt ya)
hehehe:d
/:) mmmmm… bingung jg tuh!!! but,good idea man…;)
pusing:-?:((
Teman-teman == Temen-temen
Pak bos… kalo aku beli hosting murahin dikit napa…. masa dah lama jadi pelangan ga dapat potongan harga sech…
MaksUd L pa c?w g ngerTi tucH…Ko anEh y?
By: cHa_cHa(ceNtRaL):)8-x
saya telah membuat algoritma Anda ke dalam bhs pemrograman Delphi 7. Silahkan lihat ke blog saya untuk download source codenya. (kemungkinan algoritma pemrograman saya masih kurang)
http://achmadz.blogspot.com/2007/12/algoritma-fonetik-bahasa-indonesia.html
kueren…….
tapi lumayan bikin gue pusing
Saya telah menuangkan algoritma anda dalam bahasa pemrograman Delphi 7, secara kebetulan sudah di buat oleh Achmad Zaenuri, namun saya membuat versi saya sendiri.
Algoritma ini saya pakai untuk Tugas Akhir kuliah saya yang berjudul Aplikasi Pemeriksa Ejaan Kata Bahasa Indonesia. Dimana memadukan antara algoritma fonetik dengan algoritma levensthein. Saya sudah mencantumkan algoritma ini pada program dan laporan TA saya sebagai Algoritma Priyadi.Dengan ini saya memohon ijin untuk memakai algoritma anda, sebelumnya saya ucapkan terima kasih. :)
#44: waduh. posting saya ini cuma brainstorming aja. algoritmanya belum tentu akurat karena memang belum pernah dicoba. saya posting ini siapa tahu ada yang tertarik untuk ngembangin :). jadi, saya harap jangan dicontek mentah2. soal nama, jangan pake nama saya deh hehehe :)
hmm..ditanggepin serius tu,om pri..XP