MySQL Full-Text Searching

dokumen-dokumen yang mirip
Modul 3. Oleh : Mohammad Sholikin. 1

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

Tutorial PHP Metode Searching - Multiple Keyword

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Pengenalan Structured Query Language

Praktikum Basis Data (Database Server MySQL) Bekerja Dengan Tabel

PERINTAH DASAR MySQL

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

1. Memulai pengelolaan database Menampilkan daftar database Sintaks : show databases;

MODUL 1 Pengenalan MySQL, DDL, DML

Untung Subagyo

Database. Danu Wira Pangestu 1. Mengenal Database. Lisensi Dokumen:

Untuk menjalankan Mysql secara konpensional jalankan Mysql.exe pada direktori Mysql\Bin. Akan tampak tampilan sebagai berikut:

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

Seri 01 : Belajar Database MySQL

Konsep Sistem Informasi B. BAB 2 - SQL Overview

PENGERTIAN DATABASE MySQL

Tutorial Singkat MySQL

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

MySQL J A M K E T I G A

Pertemuan 12 Pengenalan Structured Query Language

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

Pemrograman Web Lanjut 2017

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

Modul 3 : Query Penggabungan Tabel

MySQL AL AZHAR COMPUTER CLUB

PENGENALAN SINTAKS DASAR DALAM MySQL

MODUL I PENGENALAN MYSQL

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

TUGAS PRAKTIKUM SISTEM BASIS DATA

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

Operasi Dasar MySQL Menggunakan CLI(Command Line Interface)

Mudafiq Riyan Pratama

PRAKTIKUM SISTEM BASISDATA

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL

MySQL. Setelah Anda melakukan tahapan-tahapan di atas Anda akan dapatkan screen seperti ini

MODUL PRAKTIKUM PEMROGRAMAN BASIS DATA

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

Pemrograman Web. Koneksi dan Manipulasi Basis Data. Adam Hendra Brata

Mudafiq Riyan Pratama

LAPORAN TUGAS BASIS DATA I

Database MySql. Mata Pelajaran: Database SMK Qamarul Huda Jurusan TKJ Kelas XII. Disusun oleh: Heru Minandar,ST.

LAPORAN PRAKTIKUM BASIS DATA

MODUL 4 INTERNET PROGRAMMING DATABASE

Pemrograman Web 1. Akademi Manajemen Informatika dan Komputer AMIK Royal Kisaran. Modul 2 Revisi 2. Tahun Akademik 2012/2013

Untuk mengakses MySQL dengan mode text dari Console (Command Prompt = Microsoft Windows), dapat dilakukan dengan cara : 1.

BAB II PEMBUATAN DAN MANAJEMEN TABLE

Basis Data Spasial Modul 2

STUPID LOGIC PROGRAMMING II

Praktikum Basis Data 14 Structure Query Language 2

Proses normalisasi model data dapat diringkas sebagai berikut: 3. Tentukan atribut yang dimiliki masing-masing entitas.

Riyanto

7 VARIASI INSERT YANG TERLUPAKAN

DESAIN DATABASE. Pertemuan 06 3 SKS

Database Systems: Lab. Actvity 1: Database Design. Merancang Database. Merancang Database. Tipe Tabel MySQL.

Riyanto

Membuat Database mysql dengan PhpMyAdmin

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

MODUL II. Instalasi OracleXE Dan SQL

SISTEM BASIS DATA 1. WAHYU PRATAMA, S.Kom., MMSI.

Modul 2. Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA

Otodidak. MySQL untuk Pemula

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

DATA DEFINITION LANGUAGE

Kontrak Kuliah. Dasar-dasar MySQL. Edi Sugiarto, S.Kom, M.Kom

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

BAB IV IMPLEMENTASI DAN PENGUJIAN

MODUL PENGENALAN MYSQL SMK MAHADHIKA 4 TEKNIK KOMPUTER DAN JARINGAN

STRUCTURE QUERY LANGUAGE (SQL)

MODUL II SQL A. TUJUAN

Menampilkan Data MySql Menggunakan Dreamweaver

Mengenal Operasi Dasar SQL

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

Tahap Instalasi PostgreSQL di Windows

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

Nama : Parisaktiana Fathonah NIM : Kelas : Prak Sistem Basis Data TI-2 B malam

LAPORAN PRAKTIKUM SISTEM BASIS DATA

PRAKTIKUM SISTEM BASIS DATA

MODUL 8 MEMBUAT USER DAN MENGAKSES DATABASE

Membuat sendiri active record sederhana ala framework

Praktikum Basis Data 2017 TE UM

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

TUGAS PRAKTIKUM SISTEM BASIS DATA

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

MODUL 5 INTERNET PROGRAMMING : MySQL

Basis Data Relational

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

INTERNET PROGRAMMING DATABASE

RANGKUMAN PHP dan MYSQL

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

Transkripsi:

MySQL Full-Text Searching Didik Setiawan di2k.setiawan@gmail.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. Sebuah metode pencarian pada sebuah sistem aplikasi atau database harus mampu memberikan hasil sebagaimana harapan pengguna. Kecepatan dan relevansi hasil pencarian merupakan syarat mutlak yang harus dipenuhi. Terdapat beberapa metode dalam pencarian, baik dari sisi aplikasi atau pun berdasarkan fungsionalitas yang tertanam dalam sebuah sistem database. Full-text Searching adalah salah satu fungsi yang terdapat dalam database MySQL yang dapat digunakan untuk mengoptimalkan proses dan hasil pencarian. Pendahuluan Penggunaan direktori dalam sebuah situs website dengan cara mengelompokkan artikel berdasarkan kategori untuk kemudian dikelompokkan pada direktori merupakan salah satu upaya untuk memudahkan pengguna (user) menemukan artikel yang dikehendakinya diantara banyaknya artikel yang ada. Permasalahan akan timbul saat artikel yang dikehendaki tidak terdapat pada kelompok direktori tertentu yang sesuai dengan topik yang ada atau artikel yang bersesuaian tersebar di banyak direktori, disinilah fungsi pencarian dapat membantu pengguna dalam memecahkan masalah tersebut. Salah satu metode yang dapat digunakan untuk melakukan proses pencarian adalah dengan memanfaatkan fungsi indexing pada database. Tulisan ini memperkenalkan fungsi Full- Text Searching pada database MySQL untuk proses pencarian data. 1

Definisi Berikut adalah definisi atau pengertian dari beberapa istilah yang sering digunakan dalam tulisan ini : a. MySQL, adalah sebuah perangkat lunak sistem manajemen basis data SQL atau DBMS yang bersifat multithread dan multiuser yang dikembangkan pertama kali oleh Michael Wildenius, bersifat free software dengan lisensi dibawah GPU/GPL (General Public license). b. Full- Text, adalah fungsionalitas yang terdapat pada database (dalam hal ini database MySQL) yang memungkinkan user untuk melakukan pencarian tertentu dalam tabel dengan cara melakukan perbandingan string. c. Boolean Search, adalah sebuah metode pencarian yang memungkinkan pengguna untuk mempersempit hasil pencarian dengan menggunakan operator Boolean. d. Boolean Operator, adalah sistem logis deduktif yang digunakan untuk mempersempit hasil pencarian dengan menggunakan operator AND, OR, XOR dan lainnya. Prasyarat Sebelum mengenal lebih jauh mengenai Full- Text Searching ada beberapa hal (prasyarat) yang perlu diketahui bersama : a. Full- Text Searching pada tulisan ini mengacu pada fungsionalitas yang terdapat pada database MySQL; b. Full- text index pada MySQL adalah index dengan tipe FULLTEXT; c. Full-text index hanya dapat digunakan pada database MyISAM dan dapat digunakan untuk kolom dengan tipe CHAR, VARCHAR, atau TEXT; d. Full- text index dapat dibuat saat proses pembuatan tabel dengan perintah CREATE TABLE atau saat perubahan struktur table yang sudah ada dengan menggunakan perintah ALTER TABLE atau CREATE INDEX. 2

Skenario Tulisan ini menggunakan tabel article sebagai contoh untuk menggambarkan penggunaan Full-text Searching di database MySQL, adapun struktur tabel article yang digunakan adalah sebagai berikut : CREATE TABLE IF NOT EXISTS article (id int(10) NOT NULL AUTO_INCREMENT, title varchar(150) NOT NULL, body text NOT NULL, PRIMARY KEY (id)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Adapun contoh data yang digunakan adalah sebagai berikut : INSERT INTO `article` (`id`, `title`, `body`) VALUES (1, 'PHP & Mysql : Tutorial Dasar', 'Pada tutorial kali ini, kita akan mencoba melakuka...'), (2, 'MySQL - Pengenalan', 'Tutorial MySQL di situs ini memang buat kamu-kamu...'), (3, 'Mysql', 'Tutorial penggunaan database masa kini...'), (4, 'Mysql & Oracle Database', 'Database masa kini...'), (5, 'Implementasi Oracle', 'Bagaimana menggunakan oracle...'), (6, 'SqlLite Database', 'Penggunaan SqlLite dan cpanel...'), (7, 'let it be', 'by The Beatles...'); Pencarian data secara konvensional biasanya dilakukan dengan menggunakan perintah SQL LIKE. Contoh : pencarian artikel yang mengandung kata MySQL dapat dilakukan dengan perintah : SELECT * FROM article WHERE title like'%mysql%'; Penggunaan operator like pada MySQL untuk jumlah data yang besar akan menyebabkan turunnya performa. Implementasi Full- Text Searching dapat menjadi pilihan untuk melakukan fungsi pencarian pada database MySQL. Syarat untuk dapat menjalankan fungsi Full- Text Searching adalah dengan menambahkan index dengan tipe FULLTEXT pada field yang ingin dicari. Berikut perintah untuk menambahkan Full-Text Indexing pada field title dan body pada tabel article : ALTER TABLE article ADD FULLTEXT(title); ALTER TABLE article ADD FULLTEXT(body, title); 3

Berikut beberapa tipe penggunaan Full-Tex Searching dengan menggunakan data contoh pada tabel article : a. Natural Language Secara default penggunaan Full-Text Searching termasuk dalam tipe Natural Language. Berikut beberapa contoh penggunaan Full-Text Searching tipe Natural Language : Contoh 1 : SELECT * FROM article WHERE MATCH (title) AGAINST ('tutorial'); Query diatas menghasilkan data pada field title yang mengandung kata tutorial. 1 PHP & Mysql : Tutorial Dasar Pada tutorial kali ini, kita akan mencoba melakuka... Contoh 2 : SELECT * FROM article WHERE MATCH (title) AGAINST ('tutor') Perintah diatas tidak akan menghasilkan data, karena pencarian tutor tidak sama dengan pencarian tutorial. Contoh 3 : Pencarian pada 2 field (title dan body) dapat dilakukan dengan menggunakan perintah : SELECT * FROM article WHERE MATCH (title, body) AGAINST ('tutorial ); 1 PHP & Mysql : Tutorial Dasar Pada tutorial kali ini, kita akan mencoba melakuka... 3 Mysql Tutorial penggunaan database masa kini... 2 MySQL - Pengenalan Tutorial MySQL di situs ini memang buat kamu-kamu... 3 rows in set Contoh 4 : SELECT *, MATCH (title, body) AGAINST ('tutorial') as Score FROM article WHERE MATCH (title, body) AGAINST ('tutorial'); 4

+----+------------------------+-------------------------------+-----------------+ Score +----+------------------------+-------------------------------+-----------------+ 1 PHP & Mysql : Tutorial Pada tutorial kali ini, 0.40983861684799 dasar kita akan mencoba melakuka... 3 Mysql Tutorial penggunaan database 0.26911327242851 masa kini... 2 MySQL - Pengenalan Tutorial MySQL di situs ini 0.22223679721355 memang buat kamu-kamu... +----+------------------------+-------------------------------+-----------------+ 3 rows in set Data yang diperoleh diurutkan berdasarkan urutan skor relevansi pencarian. Contoh 5 : SELECT * FROM article WHERE MATCH (title) AGAINST ('mysql'); Perintah diatas tidak menghasilkan data karena MySQL mengimplementasikan Stopword atau Skipword untuk setiap hasil pencarian yang tampil pada 50% atau lebih dari total seluruh data. Stopword adalah mekanisme untuk membatasi pencarian dengan tidak menampilkan hasil pencarian berdasarkan daftar atau list kata-kata yang sering digunakan dalam bahasa inggris. Pengaturan Stopword dapat dilihat pada file konfigurasi MySQL (my.ini). b. Boolean Tipe Boolean mengijinkan penggunaan operator pada keyword pencarian seperti atau +. Berikut daftar operator yang dapat digunakan : [non operator] secara default memiliki arti atau / or ; + keyword harus terdapat pada semua hasil yang didapat; - keyword tidak boleh ada pada hasil yang didapat; > keyword termasuk pada hasil yang didapat dengan urutan berdasar ranking secara increase; < keyword termasuk pada hasil yang didapat dengan urutan berdasar ranking secara decrease; () digunakan untuk melakukan grouping/pengelompokan dan dapat menambahkan operator lain untuk meningkatkan relevansi hasil pencarian; ~ berfungsi sebagai operator negasi, jika sebuah keyword diberikan tanda ~, mengakibatkan relevansi/score minus; * merupakan operator wildcard; digunakan pada awal dan akhir keyword yang terdiri dari dua kata atau lebih. Contoh 1 : SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+mysql -database' IN BOOLEAN MODE); 5

+----+-----------------------+-------------------------------------+ +----+-----------------------+-------------------------------------+ 2 How To Use MySQL Well After you went through a... 3 Optimizing MySQL In this tutorial we will show... 4 1001 MySQL Tricks 1. Never run mysqld as root. 2.... 6 MySQL Security When configured properly, MySQL... +----+-----------------------+-------------------------------------+ 4 rows in Hasil yang diperoleh harus mengandung kata mysql dan tidak boleh mengandung kata database pada field title dan body. Contoh 2 : SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('tutor*' IN BOOLEAN MODE); +----+-------------------------+----------------------------------------------+ +----+-------------------------+----------------------------------------------+ 1 MySQL Tutorial DBMS stands for DataBase... 3 Optimizing MySQL In this tutorial we will show... +----+-------------------------+----------------------------------------------+ 2 rows in set Penambahan asterisk (*) pada awal atau akhir keyword berfungsi seperti perintah LIKE tutor%. Contoh 3 : SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+mysql +(>tutorial <database)' IN BOOLEAN MODE); +----+-------------------+---------------------------------------+ id title body +----+-------------------+---------------------------------------+ 1 MySQL Tutorial DBMS stands for DataBase... 3 Optimizing MySQL In this tutorial we will show... 5 MySQL vs. YourSQL In the following database comparison... +----+-------------------+---------------------------------------+ 3 rows in set Penggunaan operator > dan < menghasilkan data yang mengandung kata mysql dan tutorial memiliki score relevansi yang lebih tinggi dibandingkan data yang mengandung 6

kata mysql dan database, dan seluruh hasil harus mengandung kata mysql+tutorial atau database. Contoh 4 : SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('"mysql tutorial"' IN BOOLEAN MODE); +----+---------------------+------------------------------------------+ +----+---------------------+------------------------------------------+ 1 MySQL Tutorial DBMS stands for DataBase... +----+---------------------+------------------------------------------+ 1 row in set Hasil pencarian harus mengandung kata mysql yang kemudian diikuti kata tutorial. c. Query Expansion Query Expansion merupakan salah satu fitur yang bias digunakan ketika pencarian hanya mengandung keyword yang sedikit (hanya satu kata). Contoh : ketika user mencari keyword database, kemungkinan hasil yang diinginkan adalah yang berkaitan dengan MySQL atau Oracle atau SQLite, dengan menggunakan Query Expansion, result yang dihasilkan diproses dua kali dengan mempelajari result pencarian pertama kemudian digabungkan dengan result pencarian kedua dengan tambahan keyword yang paling relevan terhadap pencarian pertama. Berikut perbandingan hasil pencarian dengan menggunakan tipe Natural Language dengan hasil pencarian dengan menggunakan tipe Query Expansion : 1. Pencarian dengan menggunakan tipe Natural Language : SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('database'); Diperoleh hasil sebagai berikut : +----+-------------------+------------------------------------------+ +----+-------------------+------------------------------------------+ 5 MySQL vs. YourSQL In the following database comparison... 1 MySQL Tutorial DBMS stands for DataBase... +----+-------------------+------------------------------------------+ 2 rows in set 7

2. Pencarian dengan menggunakan tipe Query Expansion : SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('database' WITH QUERY EXPANSION); Diperoleh hasil sebagai berikut : +----+------------------+----------------------------------------+ id title body +----+------------------+----------------------------------------+ 1 MySQL Tutorial DBMS stands for DataBase... 5 MySQL vs. YourSQL In the following database comparison... 3 Optimizing MySQL In this tutorial we will show... +----+------------------+----------------------------------------+ 3 rows in set Tampak bahwa result pertama keyword mysql selalu muncul, maka keyword mysql dianggap sebagai keyword dengan relevansi tinggi pada pencarian database sehingga hasil yang diperoleh juga memunculkan semua data yang mengandung kata mysql. Catatan : penggunaan Query Expansion pada keyword yang panjang akan mengakibatkan penambahan hasil yang tidak relevan. Referensi 1. Jim Ferrara, Using MySQL Full- text Searching, http://devzone.zend.com 2. MySQL Fulltext Search, http://logcode.net/content/mysql- fulltextsearch 3. http://www.mysqltutorial.org Biografi Penulis Didik Setiawan Pranata Komputer Kementerian Keuangan RI 8