String Matching Dalam Permainan The Hunt for Gollum

dokumen-dokumen yang mirip
Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

Aplikasi String Matching Pada Fitur Auto-Correct dan Word-Suggestion

Penerapan Pencocokan String pada Aplikasi Kamusku Indonesia

Pengaplikasian Algoritma Knuth-Morris-Pratt dalam Teknik Kompresi Data

Mencari Pola dalam Gambar dengan Algoritma Pattern Matching

Aplikasi String Matching pada Plugin SMS Blocker untuk Validasi Pesan

Penggunaan String Matching Dalam Mencari Kata Dalam Permainan Mencari Kata Dari Sebuah Matriks Huruf

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

Aplikasi Algoritma Pencocokan String pada Mesin Pencari Berita

Aplikasi String Matching dalam Analisis Cap Bibir

Penerapan Pencocokan String dalam Aplikasi Duolingo

Penggunaan Algoritma Pencocokkan Pola pada Sistem Barcode

II. DASAR TEORI I. PENDAHULUAN

Penerapan Algoritma String Matching dalam Intelligent Personal Assistant Siri

Penerapan Algoritma Pencocokan String Boyer-Moore untuk Keamanan Komputer

Penerapan String Matching pada Fitur Auto Correct dan Fitur Auto Text di Smart Phones

Pattern Matching dalam Aplikasi SimSimi

Algoritma String Matching pada Mesin Pencarian

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

Penilaian Ujian Tertulis Menggunakan Algoritma Pattern Matching IF3051 Strategi Algoritma

Perbandingan Penggunaan Algoritma BM dan Algoritma Horspool pada Pencarian String dalam Bahasa Medis

Perbandingan Algoritma Knuth-Morris-Pratt dan Algoritma Boyer-Moore dalam Pencarian Teks di Bahasa Indonesia dan Inggris

Penerapan Algoritma Pattern Matching untuk Mengidentifikasi Musik Monophonic

Perbandingan Algoritma String Matching yang Digunakan dalam Pencarian pada Search Engine

Algoritma Pencarian String Knuth-Morris-Pratt Dalam Pengenalan Tulisan Tangan

Aplikasi Algoritma Pencocokan String dan Algoritma Runut Balik dalam Konversi Romaji ke Hangul

Aplikasi Algoritma String Matching dan Regex untuk Validasi Formulir

Aplikasi Algoritma BFS dan String Matching pada Tag Suggestions di Facebook

Pattern Matching dalam Aplikasi Pencarian Jodoh

Penerapan Algoritma Knuth-Morris-Pratt dalam Music Identification (Musipedia)

Penerapan Algoritma Pencocokan String Boyer-Moore dan Knuth-Morris-Pratt (KMP) dalam Pencocokkan DNA

BAB I PENDAHULUAN Latar Belakang

Pemanfaatan Algortima Boyer Moore dalam Penyaringan Teks Halaman Website Sederhana

Penerapan Algoritma Pencocokan String Knuth-Morris-Pratt Sebagai Algoritma Pencocokan DNA

Anggota Kelompok : 1. Jeremia Jason Lasiman Bervianto Leo P M. Az-zahid Adhitya Silparensi

PERBANDINGAN ALGORITMA STRING SEARCHING BRUTE FORCE, KNUTH MORRIS PRATT, BOYER MOORE, DAN KARP RABIN PADA TEKS ALKITAB BAHASA INDONESIA

Implementasi Algoritma Knuth Morris Pratt pada Alat Penerjemah Suara

APLIKASI ALGORITMA KNUTH-MORRIS-PRATT DALAM CONTENT-BASED MUSIC INFORMATION RETRIEVAL

Penerapan Algoritma Knuth Morris Pratt dalam Aplikasi Penerjemah Teks

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

A. Pencocokan String Pencocokan string adalah cara untuk mencari sebuah teks

Penggunaan Algoritma Boyer Moore untuk Memindai Berkas dari Virus

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

PENGGUNAAN ALGORITMA APOSTOLICO-CROCHEMORE PADA PROSES PENCARIAN STRING DI DALAM TEKS

Deteksi Plagiarisme Gambar menggunakan Algoritma Pencocokan Pola Rabin-Karp

Penerapan Algoritma Pencocokan String dalam Perangkat Lunak Pemblokir Akses Situs Negatif

Algoritma Pencocokan String dalam Permainan Hangman

Analisis Plagiarisme dalam Dua Buah Lagu Yang Berbeda dengan Algoritma Pattern Matching

APLIKASI PATTERN MATCHING UNTUK VALIDASI PESAN PADA GAME ONLINE DAN SOCIAL NETWORK

Perbandingan dan Pengujian Beberapa Algoritma Pencocokan String

Kombinasi Algoritma Pattern Matching dan BFS-DFS pada aplikasi Music Discovery

Strategi Algoritma Penyelesaian Puzzle Hanjie

Penerapan Algoritma Brute Force di Permainan Nonogram

ANALISIS STRING MATCHING PADA JUDUL SKRIPSI DENGAN ALGORITMA KNUTH-MORRIS PRATT (KMP)

Pendeteksian Plagiarisme Musik dengan Algoritma Boyer- Moore

Algoritma Cepat Pencocokkan String

BAB 2 TINJAUAN PUSTAKA

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

IMPLEMENTASI ALGORITMA BOYER-MOORE PADA PERMAINAN WORD SEARCH PUZZLE

Penerapan Algoritma Boyer Moore-Dynamic Programming untuk Layanan Auto-Complete dan Auto-Correct

BAB 2 LANDASAN TEORI

Penggunaan Algoritma Pencocokkan Pola pada Aplikasi How-Old.net

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

APLIKASI ALGORITMA KNUTH-MORRIS-PRATT PADA MESIN PENCARI KATA UNTUK LINGKUNGAN WEBSITE MAHASISWA INFORMATIKA 2005

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Aplikasi Pencocokan String pada Penyaringan Spam

Implementasi Algoritma KMP dan Boyer-Moore dalam Aplikasi Search Engine Sederhana

Implementasi Algoritma Boyer-Moore untuk Memanipulasi Foto dengan Magic Color

PERBANDINGAN ALGORITMA KNUTH-MORRIS-PRATT, STRING MATCHING ON ORDERED ALPHABET, dan BOYER-MOORE dalam PENCARIAN UNTAI DNA

Algoritma Puzzle Pencarian Kata

Suffix Array dan Kegunaannya Dalam Memecahkan Berbagai Persoalan String


Implementasi Algoritma Pencocokan String dalam Penentuan Tombol Respons Facebook

TECHNICAL REPORT PENGGUNAAN ALGORITMA PENCOCOKAN STRING BOYER-MOORE DALAM MENDETEKSI PENGAKSESAN SITUS INTERNET TERLARANG

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

Pencocokan String dengan Algoritma Reverse Colussi

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

THE WAY OF LONGEST PALINDROME

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Pencarian Potongan Gambar Menggunakan Algoritma Boyer Moore

BAB II TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN I.1. Latar Belakang [1] [2] [3] [4] [5]

Analisis Karakteristik Pemain fighting game dengan Algoritma pattern matching

Visualisasi Data Kawasan Pariwisata yang Sering Dikunjungi di Bali dengan Pendekatan Pencocokan String pada Postingan Akun Instagram

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

PENCARIAN BARANG DALAM BASIS DATA ONLINE SHOP MENGGUNAKAN ALGORITMA BFS, DFS, DAN KMP

BAB I PENDAHULUAN. terjadi diberbagai kalangan. Dalam Kamus Besar Bahasa Indonesia, definisi

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Penggunaan Algoritma Boyer Moore Untuk Pencarian Arsip Multimedia Pada Perangkat Lunak Pemutar Media

Variasi-Variasi Algoritma Boyer-Moore dan perbandingannya dalam pencarian String

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB II LANDASAN TEORI

Penerapan String Matching Pada Auto-Correct Berbasis Algoritma Levenshtein Distance

Transkripsi:

String Matching Dalam Permainan The Hunt for Gollum Ligar Mugi Syahid (10111053) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia ligar@s.itb.ac.id Abstrak - Pecocokan String merupakan algoritma yang penting dengan tujuan mencari lokasi String tertentu (Pattern) pada String (Text) yang lain. Contoh algoritma pencocokan String, Naïve String search (Brute Force), Knuth-Morris-Pratt (KMP) dan Booyer-Moore. Pencocokan String sangat banyak di kehidupan sehari-hari, contohnya mencari suatu sub dalam buku, mencari buku daru nomer ISBN, dll. Input Program : Text file berisi : Moore Kata kunci: String Matching, KMP, Booyer- 1. Ukuran matriks dari peta, dengan urutan baris kolom 2. Matriks peta karakter I.1 Peraturan Permainan I. Pendahuluan Permainan ini diambil dari http://www.spoj.com/problems/arda1/ dengan deskripsi sebagai berikut, Aragorn telah memulai perburuan Gollum, setelah beberapa hari, dia telah tiba di Rawa Kematian dan percaya Gollum berada di sana. Rawa Kematian tersebut sangat gelap, basah dan mengerikan. Namun Aragorn telah memiliki peta seluruh Rawa. Dengan kemampuan dan pengalamanya selama ini, Aragorn tahu karateristik Rawa yang di sukai Gollum. Peta yang dimiliki Aragorn adalah matriks dari karakter berukuran M 1 xm 2. Dan karakteristik rawa yang di sukai Gollum juga matriks dengan ukuran N 1 xn 2. Sebagai Peta Gollum : Peta seluruh rawa : aba 3 3 aba output Program : setiap baris output merupakan index dari Peta Gollum yang terdapat pada Peta Aragorn. Jika tidak ada, print Tidak di temukan contoh : (1,2) (1,4) (2,1) (2,3) (5,1) (5,3)

II.1 String Matching II. Metode Misalkan n, jumlah karakter pada pattern dan m, jumlah karakter pada text. II.1.1 Algoritma Brute Force Secara sederhana Brute Force membandingkan tiap karakter pada Pattern ke Text dimulai dari huruf pertama pada Pattern dan Text. Jika terjadi kesalahan geser 1 huruf, begitu seterusnya hingga Pattern ditemukan dalam Text atau tidak di temukan dan sudah sampai ke ujung Text. Untuk kasus terburuk : Tiap perbandingan n-1 karakter Pattern pada Text menghasilkan true, namun perbandingan yang ke n, false. Dan Pattern berada di ujung Text. Maka, a. akan ada (m-n) pergeseran b. tiap pergeseran ada n perbandingan c. total perbandinga (m-n)*n = mn-n^2. jadi kompleksitasnya : O(mn) II.1.2 Algoritma Knuth-Morris-Pratt (KMP) Perbaikan dari Brute Force. Tidak seperti Brute Force, Algoitma ini menggeser Pattern pada Text berdasarkan Border Function, array of integer yang menyimpan ukuran terbesar dari Prefix Pattern yang juga Suffix Pattern. Pattern : 0 0 1 1 0 0 0 1 Border Function : 0 1 0 0 1 2 2 II.1.3 Algoritma Boyer-Moore (BM) Algoritma ini didasarkan pada 2 teknik. 1. Teknik looking-glass Yaitu mencari Pattern pada Text dimulai dari ujung akhir Pattern 2. Teknik character-jump Misalkan T[i] adalah karakter Text ke i. P[i] adalah karakter Pattern ke i. Jika terjadi perbandingan karakter yang salah, maka ada 3 kasus. a. Jika ada kejadian terakhir karakter T[i] dalam Pattern, misal P[k], geser hingga membandingkan P[k] = T[i]. b. Jika tidak dapat di geser, geser Pattern ke T[i+1]. c. Jika tidak dapat melakukan point a dan c, geser hingga membandingkan P[1] = T[i+1] Untuk itu kita membutuhkan array, missal LastOccurent, yang menyimpan kejadian terakhir suatu karakter. Pattern : 0 0 1 1 0 0 0 1 Karakter 0 1 2 LastOccurent 6 7-1 Tabel 1. LastOccurent Kompleksitasnya untuk kasus rata-ratanya : O(m+n). Kasus Terburuk : O(mn+A). dengan A jumlah alphabet berbeda pada Pattern. Misalkan Border Function : BF[i], dengan i adalah index. Maka BF[5], adalah prefix 0 0 1 1 0 yang mengandung suffix terbesar, yaitu 0 1 1 0 maka BF[5] = 1. Maka kompleksitas dari KMP ini, O(m+n). Untuk kasus rata-rata, O(m+n).

III.1 Strategi III. Implementasi Pada permainan ini, Kita diminta mencari lokasi dari submatriks karakter (Peta Gollum) pada matriks karakter (Peta Aragorn). Strategi pemecahan masalah, 1. Buat array of string dari Peta Gollum sebagai pattern dan Peta Aragorn sebagai text. Menggunakan contoh pada sub I.1 a. Peta Gollum P[0]= P[1]= Dst b. Peta Aragorn M[0] = aba M[1] = Dst Batasan string input 100 untuk masing-masing peta. 2. Selanjutnya cari pattern pada text dengan index yang bersesuaian. a. Untuk Peta Gollum ukuran N 1 xn 2 (baris x kolom), misal P dan Peta Aragorn ukuran M 1 xm 2, missal M. b. Mula-mula counter i =0. c. Selanjutnya akan di cari Posisi (x,y) untuk pattern pertama(p[0]) pada M(i). misal pada baris ke i dan karakter ke y ditemukan P(0). Maka tinggal mencocokan M(i+1) dengan P(1), dan seterusnya hingga P(N 1 ). d. Jika di temukan. memberikan solusi (i, y). e. Jika tidak increase i +1. Kembali ke c. f. Jika i > (M 1. - N 1) program berhenti. Skema Program procedure Solve(input P, M : array of string, m : integer) { Mencari seluruh index kiri atas dari P pada M dengan algoritma / mode tertentu. Input : P, M : aray of string problem. m : mode 1 Brute, mode 2 KMP, mode 3 BM Output : koordinat P pada M, (x,y) } Kamus : i, prec : integer rowp : integer{ukuran baris P} Algoritma : Untuk mode m While( i<(baris M baris P +1)) If(found P[0] in M[i]) Prec = AlgoStringMatchmode(m); {koordinat y} {cek untuk P, M selanjutnya} While (found P[k] in M[m]) {k=1, 2..rowP, m=i+k} Found = true; If found Print (i,prec);

IV. Hasil dan Analisis Input Output 3 3 aba 3 2 ba ab ba aba Hasil belum cukup memuaskan, semua solusi belum berhasil di temukan. Sedangkan untuk perbandingan algoritma, telah di hitung sebelumnya KMP dan BM memiliki kompleksitas yang sama. Namun pada praktiknya jumlah perbandingan karakter pattern dan text pada BM lebih sedikit dibanding KMP.

V. Kesimpulan Masalah pencocokan string sering ditemukan dimana-mana. Pada perkuliahan Strategi Algoritma telah diajarkan pencocokan string dengan Brute Force, KMP, dan BM. Namun masih banyak lagi algoritma string pencocokan string yang lain seperti Rabin-Karp. Ratarata, algoritma pencocokan string memiliki kompleksitas yang sama yaitu, O(m+n). Permainan The Hunt for Gollum adalah contoh kecil apabila kita ingin mencari daerah dengan kriteria tertentu pada suatu wilayah. Misalkan, daerah dengan tanah yang paling subur terluas pada suatu propinsi tertentu atau mencari lokasi dengan kandungan mineral logam tertentu. PeRNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 20 Desember 2013 Untuk kedepannya diharapkan penulis dapat menyelesaikan permainan ini. VI.REFERENSI [1] Slide perkuliah Strategi Algoritma 2013/2014 http://informatika.stei.itb.ac.id/~rinaldi.munir/stmik/2013-2014/pencocokan%20string%20(2013).ppt Ligar Mugi Syahid 10111053 [2] http://www.spoj.com/problems/arda1/