Kamis, 30 Mei 2013

did you mean ala google dengan php

Leave a Comment
Kali ini saya ingin berbagi tutorial membuat pengkoreksi ejaan atau spalling cheker ala google dengan menggunakan PHP. Saat anda melakukan kesalahan pengetikan ketika mengetikan kata kunci, secara otomatis google akan mengoreksinya, misalkan saja anda mengetikan bloggor padahal yang anda maksud adalah blogger, maka google secara otomatis memberi anda sugesti ejaan yang benar. Dalam tutorial kita kali ini, kita akan menggunakan fungsi levenshtein () dari PHP untuk mengidentifikasi kata yang benar.


  1. Langkah pertama, membuat daftar kata yang benar kedalam array. 
  2.  <?php
    $kosakata  = array('facebook','djaksu','twitter','yahoo',
                    'microsoft','linux','google','unix','kaskus');
    
  3. Hitung jarak perbedaan antara input dengan semua daftar kata menggunakan fungsi levenshtein ().
  4.  foreach ($kosakata as $word) {
     
        $jarak = levenshtein($input, $word);
     
        if ($jarak == 0) {
     
            $output = $word;
            $terpendek = 0;
     
            break;
        }
    
        if ($jarak <= $terpendek || $terpendek < 0) {
     
            $output  = $word;
            $terpendek = $jarak;
        }
    }
     
  5. Menampilkan kata yang benar dimana saat nilai dari variabel $jarak pada kondisi minimum yang artinya tidak ada kata pada daftar kata yang benar-benar sama dengan input.
  6. if ($terpendek == 0) {
        echo "";
    } else {
        echo "Did you mean: $output?\n";
    }
      
    Berikut kode lengkapnya:
     <?php
    $input="jaksa";
    if(isset($_REQUEST['q']))$input = strtolower($_REQUEST['q']);
    $kosakata  = array('djaksu','facebook','twitter','yahoo',
                    'microsoft','linux','google','unix','kaskus');
                    echo 'masukan kata yang mirip dengan ';
            foreach($kosakata as $w){
                echo "<b>".$w .",</b>";
                }
     
    echo'
    <form>
    <input type="text" name="q" value="'.$input.'"/>
    <input type="submit" value="submit" />
    </form>
    ';
    if(isset($input)){
     
    $terpendek = -1;
     
    foreach ($kosakata as $word) {
     
        $jarak = levenshtein($input, $word);
     
        if ($jarak == 0) {
     
            $output = $word;
            $terpendek = 0;
     
            break;
        }
    
        if ($jarak <= $terpendek || $terpendek < 0) {
     
            $output  = $word;
            $terpendek = $jarak;
        }
    }
     
    if ($terpendek == 0) {
        echo "";
    } else {
        echo "mungkin anda maksud: $output?\n";
    }
    }
    ?>
    Selamat mencoba....

0 komentar:

Posting Komentar