Algoritma pencarian kata pada mysql

Algoritma pencarian kata pada mysql


Pengertian Algoritma Pencarian String (String Matching)

Algoritma pencarian string atau sering disebut juga algoritma pencocokan string yaitu algoritma untuk melakukan pencarian semua kemunculan string  pendek dan dan panjang, untuk string pendek yang disebut pattern dan  string yang lebih panjang  yang disebut teks.

string pendek   =  

Algoritma pencarian kata pada mysql

string panjang  = 

Algoritma pencarian kata pada mysql

Algoritma pencarian string ini dapat juga diklasifikasikan menjadi 3 bagian menurut arah pencariannya ,berikut ini adalah  algoritma yang termasuk dalam algoritma ini.

  • Dari arah yang paling alami yaitu dari kiri ke kanan, yang merupakan arah untuk membaca, algoritma yang termasuk kategori ini adalah:
    1. Algoritma Brute Force.  Anda bisa membaca lebih detail tentang algoritma tersebut pada judul artikel ini "Algoritma Brute Force"
    2. Algoritma dari Morris dan Pratt, yang kemudian dikembangkan oleh Knuth, Morris, dan Pratt
  • Kategori kedua yaitu dari arah kanan ke kiri, arah yang biasanya menghasilkan hasil terbaik secara praktikal, contohnya adalah:
    1. Algoritma dari Boyer dan Moore, yang kemudian banyak dikembangkan, menjadi Algoritma turbo Boyer-Moore, Algoritma tuned Boyer-Moore, dan Algoritma Zhu-Takaoka;
  • Dan kategori terakhir yaitu adalah dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoritis, algoritma yang termasuk kategori ini adalah:
    1. Algoritma Colussi
    2. Algoritma Crochemore-Perrin

Persoalan Pencarian String

Diberikan:

  1. teks (text), yaitu (long) string yang panjangnya n karakter
  2. pattern, yaitu string dengan panjang m karakter (m < n) yang akan dicari di dalam teks. 

Carilah (find atau locate) lokasi pertama di dalam teks yang bersesuaian dengan pattern.untuk bisa memahami persoalan diatas maka akan saya berikan contoh dibawah ini.

Contoh 1:

Pattern: hari

Teks: kami pulang hari kamis

     target

Contoh 2:

Pattern: not

Teks: nobody noticed him

       target

Contoh 3:

Pattern: apa

Teks: Siapa yang menjemput Papa  dari kota Balikpapan?  


Contoh Pencarian String (String Matching) Dengan Algoritma Brute Force

Contoh 4:

Teks     : nobody noticed him

Pattern : not

nobody noticed him

s=0   not

s=1    not

s=2     not

s=3      not

s=4       not

s=5        not

s=6         not 

s=7          not

Pada contoh di atas berhenti pada langkah ke 7 karena sudah menemukan kata yang cocok pada langkah ke 7

Contoh 5:

Teks:     10010101001011110101010001

Pattern:  001011

10010101001011110101010001

s=0 001011

s=1  001011

s=2   001011

s=3    001011

s=4     001011

s=5      001011

s=6       001011

s=7        001011

s=8         001011 

Pada contoh di atas berhenti pada langkah ke 8 karena sudah menemukan kata yang cocok pada langkah ke 8.

Kompleksitas dengan algoritma brute-force

Kompleksitas kasus terbaik adalah O(n). 

Kasus terbaik terjadi jika yaitu bila karakter pertama pattern P tidak pernah sama dengan karakter teks T yang dicocokkan 

Pada kasus ini, jumlah perbandingan yang dilakukan paling banyak n kali misalnya: 

Teks:  String ini berakhir dengan zz

Pattern: zz

Semoga penjelasan singkat diatas membantu ya? hehe

Kata Kunci : Algoritma Pencarian String (String Matching), Contoh Algoritma Pencarian String, Contoh Skripsi Teknik Informatika, Teknik Informatika,  Contoh Skripsi, Skripsi.

Highlight multiple keywords untuk hasil pencarian pada sebuah web akan sangat membantu pengunjung untuk melihat, mengidentifikasi hasil pencarian yang sesuai dengan yang dicarinya. Pada Tutorial ini akan dibahas bagaimana cara untuk menyorot kata-kata dari hasil pencarian, dan disini kita akan coba menyoroti beberapa kata kunci dalam 1 hasil pencarian.

Gambar 1

Algoritma pencarian kata pada mysql

oke berikut langkah-langkahnya :
Buat Database artikel terlebih dahulu dan insert beberapa artikel/berita :

CREATE TABLE `berita` (
  `id_berita` int(5) NOT NULL,
  `judul` varchar(100) COLLATE latin1_general_ci NOT NULL,
  `isi_berita` longtext CHARACTER SET latin1 NOT NULL,
  `tanggal` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
ALTER TABLE `berita` ADD PRIMARY KEY (`id_berita`);

Selanjutnya masuk ke directory application/helpers/ dan buat sebuah file baru disana dengan nama highlight_helper.php selanjutnya copas code berikut kedalamnya :

$0', $text);
}

Selanjutnya Buat File “controllers/Berita.php” untuk menampilkn Berita :

load->helper('highlight'); // Load Highlight Helpers
		if ($this->input->post('kata')!=''){
			$data['record'] = $this->model_app->pencarian($this->input->post('kata'));
		}else{
			$data['record'] = $this->model_app->view('berita');
		}
		$this->load->view('view_berita',$data);
	}
}

Buat “models/Model_app.php” untuk menampilkan semua berita dan menampilkan hasil pencarian..

db->get($table);
    }

    public function pencarian($cari){
        return $this->db->query("SELECT * FROM berita where MATCH (judul, isi_berita) against ('$cari' IN BOOLEAN MODE)"); 
    }
}

Buat “views/view_berita.php” untuk interface halaman list Berita..

Semua Berita

Welcome to CodeIgniter

Semua Berita

"; echo form_close(); foreach ($record->result_array() as $row) { echo "

".highlight($row['judul'],$this->input->post('kata'))."

".highlight($row['isi_berita'],$this->input->post('kata'))."

"; } ?>

Jadi sebenarnya cukup sederhana, hanya menambahkan function highlight pada helper dan tampilkan pada file hasil pencarian, penggunaannya bisa dilihat dari file view_berita.php di atas, semoga artikel ini bermanfaat dan sampai jumpa lagi pada artikel menarik lainnya, untuk filenya bisa anda download pada link download dibawah ini salam,. 🙂

About The Author

Robby Prihandaya

Robby is an Engineer, Entrepreneur, Thinker and Founder of phpmu.com programming blog. a very popular web development site, Lives in Padang - Indonesia