Wednesday, April 21, 2010

MySQL Soundex

MySQL adalah database yang memiliki banyak feature selain itu  MySQL adalah database yang populer. Diantar feature-feature yang dimilki MySQL salah satunya adalah SOUNDEX.




Soundex adalah sebuah function pada MySQL yang menghasilkan kode soundex dari sebuah kata atau string, yang mana kode soundex tersebut bernilai sama untuk kata atau string bila DIUPCAPKAN SEPERTI TERDENGAR MIRIP

Soundex ini biasanya digunakan pada pencarian data, seperti contoh kasus dibawah ini. 

Pada posting ini sebagai contoh kasus adalah melakukan pencarian data pada table kamus komputer.

Tahap 1.
Membuat tabel kamus untuk menyimpan istilah komputer dan definisinya
CREATE TABLE `kamus` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `keyword` varchar(255) DEFAULT NULL,
  `description` text, 
  PRIMARY KEY (`id`)
)

Tahap 2.
Memasukan tiga buah data sebagai sample data
insert into kamus values 
(null, 'Harddisk', 'Hardisk adalah bla bla...'), 
(null, 'Keybord', 'Keybord adalah bla bla...'), 
(null, 'Mouse', 'Mouse adalah bla bla...');


select * from kamus;
+----+----------+---------------------------+
| id | keyword | description |
+----+----------+---------------------------+
| 1 | Harddisk | Hardisk adalah bla bla... |
| 2 | Keybord | Keybord adalah bla bla... |
| 3 | Mouse | Mouse adalah bla bla... |
+----+----------+---------------------------+


Tahap 3.
Melakukan Tes pecarian data menggunakan SOUNDEX. contoh disini memberikan contoh pencarian kata "Keyboard" tetapi yang diketikan adalah salah "Keybborod"


select * from kamus where soundex(keyword) = soundex('Keybborod')
+----+---------+---------------------------+
| id | keyword | description |
+----+---------+---------------------------+
| 2 | Keybord | Keybord adalah bla bla... |
+----+---------+---------------------------+

Bagian terpenting dari Sql di atas asalah  

soundex(keyword) = soundex('Keybborod')

Walaupun kata "Keybborod" tidak sama dengan "Keybord" tetapi bila diucapkan seperti terdengar sama, maka function SOUNDEX memberikan sugesti kata "Keyboard"

1 comment: