Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

dokumen-dokumen yang mirip
Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

BFS dan DFS. Bahan Kuliah IF2151 Strategi Algoritmik. Oleh: Rinaldi Munir

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Algoritma Traversal di dalam Graf

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

Penerapan Algoritma BFS, DFS, DLS dan IDS dalam Pencarian Solusi Water Jug Problem

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

PENERAPAN ALGORITMA BFS PADA CHINESE SLIDE BLOCK PUZZLE (KLOTSKI)

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI TEKA-TEKI BATTLESHIP

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Implementasi Algoritma DFS pada permainan Monument Valley

Algoritma Puzzle Pencarian Kata

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Penyelesaian Permasalahan Knight s Tour Menggunakan Algoritma Breadth First Search (BFS)

Penerapan Algoritma BFS dan DFS dalam Permainan Ular Tangga

Penyelesaian Permasalahan Nonogram dengan Algoritma Runut Balik

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

PENERAPANAN ALGORITMA BFS, DFS, DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH ROMANIA

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

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.

Penerapan Algoritma DFS dalam Menyelesaikan Permainan Buttons & Scissors

PENERAPAN ALGORITMA BFS DFS DAN KNUTH-MORRIS-PRATT PADA PENCARIAN BERKAS DALAM KOMPUTER

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

Implementasi Intuitif Penyelesaian Labirin dengan Algoritma Depth-First Search

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Penerapan Algoritma Backtracking pada Knight s Tour Problem

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Strategi Algoritma Penyelesaian Puzzle Hanjie

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Aplikasi Branch and Bound Pada Pencarian Jalan Pada Software Navigasi

Implementasi Algoritma Backtracking untuk Memecahkan Puzzle The Tile Trial pada Permainan Final Fantasy XIII-2

Penerapan Algoritma Backtrack pada Knight s Tour

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

Penggunaan Algoritma Greedy Dalam Perancangan Papan Teka Teki Silang

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Penggunaan Algoritma Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU

Perbandingan BFS dan DFS pada Pembuatan Solusi Penyelesaian Permainan Logika

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

UNTUK PEMECAHAN MASALAH PADA PERMAINAN HASHIWOKAKERO

Penerapan Algoritma Backtracking dalam Permainan Futoshiki Puzzle

Implementasi Algoritma Greedy, BFS, Branch and Bound, dan Metode Heuristik dalam Permainan Reversi

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Zebra Puzzle

Strategi Optimized Brute Force Pada Tent Puzzle Solver

Aplikasi Pohon dalam Pencarian dan Penempatan Buku di Perpustakaan

Penerapan Algoritma Backtracking pada Game The Lonely Knight

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

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

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Penerapan Algoritma Greedy untuk Permainan Halma

Aplikasi Algoritma Brute Force dan Backtracking pada Permainan Slitherlink

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

MAKALAH STRATEGI ALGORITMIK (IF 2251) ALGORITMA RUNUT BALIK DALAM GAME LABIRIN

Penggunaan Algoritma Pathfinding pada Game

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

ANALISIS PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI PERSOALAN LOMPATAN KUDA

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Penerapan Algoritma Greedy pada Permainan Bubble Breaker

Kode MK/ Pemrograman Terstruktur 2

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Algoritma Backtracking Pada Permainan Peg Solitaire

Implementasi Algoritma Runut Balik pada Permainan Texas Hold em Poker

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

dengan Algoritma Branch and Bound

I. PENDAHULUAN. 1.1 Permainan Rush Hour

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Penerapan Algoritma Greedy dalam Permainan Connect 4

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENYELESAIAN PERMAINAN SUDOKU

Transkripsi:

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle Stefan Lauren / 13510034 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1 13510034@std.stei.itb.ac.id Abstract Banyak strategi algoritma yang diciptakan untuk mempermudah penyelesaian masalah. Pada makalah ini strategi algoritma yang dipilih adalah DFS(Depth First Search) dan BFS(Breadth First Search). Kedua strategi algoritma ini akan diimplementasikan terhadap sebuah permainan berjenis puzzle yang bernama wordsearch. Tujuan dari makalah ini adalah untuk membandingkan langkah kerja yang dilakukan masing-masing antara DFS dan BFS untuk menyelesaikan permainan wordsearch tersebut. II. PERMAINAN WORDSEARCH Wordsearch puzzle adalah sebuah permainan kata dengan banyak huruf diletakkan pada sebuah papan yang biasanya memiliki bentuk persegi atau persegi panjang. Tujuan dari permainan puzzle ini adalah untuk menemukan dan menandai semua kata-kata yang tersembunyi di dalam papan. Kata-kata tersebut dapat tersusun secara horizontal, vertikal, atau diagonal. Index Terms BFS, DFS, puzzle, Wordsearch. I. PENDAHULUAN Perkembangan industri permainan meningkat dengan pesat setiap tahunnya. Bermacam-macam jenis permainan bermunculan dari jenis permainan klasik sampai gabungan dari jenis-jenis permainan lainnya. Salah satu jenis permainan yang cukup digemari oleh banyak orang di segala usia adalah puzzle. Setiap permainan berjenis puzzle ini membutuhkan waktu dan pikiran untuk menyelesaikannya. Hal inilah yang menjadi tantangan dan daya tarik dari jenis permainan ini. Daya tarik lain dari permainan ini adalah terdapat wujud nyata dari permainan. Salah satu contoh permainan puzzle adalah teka-teki silang(tts) yang dengan mudah diwujudkan secara nyata biasanya melalui media cetak. Banyak permainan berjenis puzzle yang dapat dibuat bentuk nyatanya seperti wordsearch puzzle, tic-tac-toe, sudoku, kakuro, dan lain sebagainya. Seiring perkembangan permainan tersebut, banyak orang yang tertarik untuk dapat menyelesaikan permainan tersebut dengan cepat. Pola pikir untuk menyelesaikan setiap permainan berjenis puzzle ini biasanya unik untuk setiap permainan. Oleh sebab itu pola penyelesaian dapat direpresentasikan menggunakan banyak strategi algoritma. Pada permainan wordsearch puzzle akan digunakan dua buah strategi algoritma yang terkenal yaitu DFS dan BFS. Kedua algoritma ini diharapkan dapat memberikan solusi yang sama meskipun dengan pola pikir algoritma yang cukup berbeda. (Sumber: en.wikipedia.org) Biasanya terdapat daftar kata tersembunyi yang harus dicari. Tetapi terdapat variasi permainan wordsearch yang tidak memberikan daftar kata sehingga lebih menantang bagi pemain untuk menemukan semua kata-kata yang ada. Variasi lainnya dari permainan ini adalah adanya tema untuk kata-kata maupun tampilan yang sesuai dengan temanya. Permainan ini biasanya ditemukan pada koran harian dan buku puzzle. Bahkan wordsearch dapat dijadikan sebagai salah satu metoda pengajaran untuk anak-anak sebagai sarana untuk mengingat arti kata, pengejaan kata, dan rekreasi. Sejarahnya adalah permainan wordsearch ini dirancang oleh Norman E. Gibat dan dimunculkan pada sebuah majalah di tahun 1968 pada kota Norman, Oklahoma. Permainan puzzle ini langsung digemari oleh banyak orang dan menjadi terkenal. Penyebarannya sangat pesat terutama didukung oleh para guru yang memberikan salinannya ke sekolah-sekolah terdekatnya. Perkembangannya setelah itu adalah banyak orang yang berusaha menirukan permainan wordsearch yang asli

dengan sedikit modifikasi. (Sumber: nierocks.areavoices.com) Strategi penyelesaian permainan ini yang umum adalah dengan membaca huruf satu per satu dari kiri ke kanan dan mencari huruf pertama dari kata yang dicari. Setelah mendapatkan huruf yang dimaksud, pemain dapat mencari huruf kedua dengan melihat ke delapan arah yang mengelilingi huruf pertama tersebut. Metoda ini terus dilakukan sampai seluruh huruf pada kata ditemukan. Strategi lainnya adalah dengan mencari huruf-huruf unik seperti Q, O, U, X, Z jika ada pada kata yang dicari. Biasanya kelima huruf ini akan langsung terlihat pada papan permainan. Strategi lainnya adalah dengan langsung mencari dua huruf pertama pada kata yang dicari. Strategi ini cukup efektif karena lebih mudah mencari dua huruf yang berdampingan. Jika daftar kata tidak diberikan maka salah satu cara penyelesaiannya adalah dengan mencari kata per baris dengan variasi horizontal, vertikal, dan diagonal secara bergantian. Biasanya puzzle memberikan kemudahan kepada pemain dengan adanya pola penempatan kata yang mirip. Wordsearch juga dapat digunakan untuk menyampaikan pesan tersembunyi. Cara pertama adalah dengan menggabungkan kata-kata yang ditulis secara terbalik (kanan ke kiri). Cara lainnya adalah dengan menggabungkan seluruh huruf yang tidak digunakan oleh kata apapun dari papan permainan tersebut. Pesan juga dapat disampaikan dengan tidak adanya kata-kata pada pesan yang ingin disampaikan pada daftar kata yang harus dicari. Ada juga variasi permainan ini yang memperbolehkan kata yang dicari dapat disusun dengan adanya belokan sebesar 90 o pada huruf apapun. III. ALGORITMA DFS Misalkan kita mempunyai graf G yang mempunyai n buah simpul. Kita akan melakukan traversal di dalam graf, dan misalkan traversal dimulai dari simpul v. Algoritma DFS adalah sebagai berikut: Misalkan penelusuran dimulai dari simpul v. Simpul berikutnya yang dikunjungi adalah simpul w yang bertetangga dengan simpul v, lalu pencarian mendalam dimulai lagi secara rekursif dari simpul w. Ketika mencapai simpul u sedemikian sehingga semua simpul yang bertetangga dengannya telah dikunjungi, pencarian dirunut-balik ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul w yang belum dikunjungi. Pencarian mendalam dimulai lagi dari w. Pencarian berakhir bila tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi. Algoritma DFS yang lengkap adalah sebagai berikut: procedure DFS (input v: integer) {Mengunjungi seluruh simpul graf dengan algoritma pencarian DFS. Masukan: v adalah simpul awal kunjungan. Keluaran: semua simpul yang dikunjungi ditulis ke layar.} Deklarasi w : integer Algoritma: write(v) dikunjungi[v] true for w 1 to n do if A[v,w] = 1 then {simpul v dan w bertetangga} if not dikunjungi[w] then DFS(w) endif endif endfor IV. ALGORITMA BFS Misalkan kita mempunyai graf G yang mempunyai n buah simpul. Kita akan melakukan traversal di dalam graf, dan misalkan traversal dimulai dari simpul v. Algoritma BFS adalah sebagai berikut: Kunjungi simpul v, kemudian semua simpul yang bertetangga dengan simpul v dikunjungi terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan simpul-simpul tadi dikunjungi, demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi lebih dahulu sebelum simpul-simpul pada aras d + 1. Algoritma BFS yang lengkap adalah sebagai berikut: procedure BFS (input v: integer) {Traversal graf dengan algoritma pencarian BFS. Masukkan: v adalah simpul awal kunjungan.

Keluaran: semua simpul yang dikunjungi dicetak ke layar.} Deklarasi: w: integer q : antrian; akan dicari adalah SIP. Pencarian dimulai dari kotak paling kiri dan paling atas. Papan awal: procedure BuatAntrian (input/output q : antrian) {membuat antrian kosong, kepala(q) diisi 0} procedure MasukAntrian (input/output q : antrian, input v : integer) {memasukkan v ke dalam antrian q pada posisi belakang} procedure HapusAntrian (input/output q : antrian, output v : integer) {menghapus v dari kepala antrian q} function AntrianKosong (input q : antrian) boolean {true jika antrian q kosong, false jika sebaliknya} Algoritma BuatAntrian(q); {buat antrian kosong} Langkah 1: Kotak pertama berisi A tidak sesuai dengan huruf pertama pada kata yang dicari S. Pemeriksaan selesai, dilanjutkan ke kotak dengan prioritas tertinggi yaitu kotak di sebelah kanan. write(v) {cetak simpul awal yang dikunjungi} dikunjungi[v] true {simpul v telah dikunjungi, tandai dengan true} MasukAntrian(q,v) {masukkan simpul awal kunjungan ke dalam antrian} {kunjungi semua simpul graf selama antrian belum kosong} while not AntrianKosong(q) do HapusAntrian(q,v) {simpul v telah dikunjungi, hapus dari antrian} for w 1 to n do if A[v,w] = 1 then {v dan w bertetangga} if not dikunjungi[w] then write(w) {cetak simpul yang dikunjungi} MasukAntrian(q,w) dikunjungi([w] true endif endif endfor endwhile {AntrianKosong(q)} Langkah 2: Kotak kedua berisi S yang sesuai dengan huruf pada pencarian kata pertama. Kotak ini akan disimpan untuk sementara dan pencarian berlanjut V. PENYELESAIAN WORDSEARCH DENGAN DFS Penyelesaian dengan DFS akan menggunakan contoh kasus. Pada penyelesaian ini, prioritas arah secara berurutan adalah kiri, kiri-atas, atas, kanan-atas, kanan, kanan-bawah, bawah, dan kiri-bawah. Asumsi lainnya adalah pencarian pada arah yang bersangkutan akan dihentikan ketika huruf sudah tidak sama lagi. Kata yang

Langkah 3: A tidak sama dengan I, pencarian dilanjutkan. Langkah 6: T tidak sama dengan P, pencarian dilanjutkan. Langkah 4: N tidak sama dengan I, pencarian dilanjutkan. Langkah 7: N tidak sama dengan P, pencarian dilanjutkan. Langkah 5: I sama dengan I untuk kata yang dicari. Kotak ini akan disimpan dan pencarian dilanjutkan. Langkah 8: C tidak sama dengan P, pencarian dilanjutkan.

Langkah 9: O tidak sama dengan P, pencarian dilanjutkan. Langkah 1: A tidak sama dengan S, pencarian dilanjutkan. Langkah 10: P sama dengan P pada kata yang dicari. Seluruh huruf pada kata sudah ditemukan, pencarian dihentikan. Langkah 2: S sama dengan S yang dicari, kotak disimpan dan pencarian dilanjutkan. Pada proses pencarian, DFS membutuhkan 10 langkah perbandingan. VI. PENYELESAIAN WORDSEARCH DENGAN BFS Penyelesaian dengan BFS akan menggunakan contoh kasus yang sama denghan DFS. Papan awal: Langkah 3: A tidak sama dengan I, pencarian dilanjutkan.

Langkah 4: N tidak sama dengan I, pencarian dilanjutkan. Langkah 7: M tidak sama dengan I, pencarian dilanjutkan. Langkah 5: I sama dengan I pada kata yang dicari, kotak disimpan dan pencarian dilanjutkan. Langkah 8: T tidak sama dengan P, pencarian dilanjutkan. Langkah 6: T tidak sama dengan I, pencarian dilanjutkan. Langkah 9: N tidak sama dengan P, pencarian dilanjutkan.

P sama dengan P pada kata yang dicari. Kata yang dicari sudah ditemukan namun pencarian menyebar masih berlanjut. Langkah 10: C tidak sama dengan P, pencarian dilanjutkan. Langkah 13: C tidak sama dengan P, pencarian dilanjutkan. Langkah 11: O tidak sama dengan P, pencarian dilanjutkan. Langkah 14: U tidak sama dengan P, pencarian berhenti. Langkah 12:

Pada proses pencarian, BFS membutuhkan 14 langkah perbandingan. VII. KESIMPULAN Pada permainan Wordsearch algoritma yang lebih mangkus dalam pencarian kata adalah algoritma DFS. Hal ini dikarenakan pada algoritma DFS pencarian dapat berhenti langsung jika sudah menemukan huruf yang diinginkan sedangkan pada BFS diharuskan mencari huruf-huruf selanjutnya yang masih berada pada tingkat yang sama. Biarpun pada kasus terburuk, DFS dapat menghasilkan jumlah perbandingan yang sama dengan BFS. REFERENCES [1] Munir, Rinaldi, Diktat Kuliah IF3051 Strategi Algoritma,Institut Teknologi Bandung,2009. [2] http://www.dmoz.org/games/puzzles/word_search/ (diakses pada 17/12/2012 13:24) [3] http://asia.gamespot.com/word-puzzle/platform/xbox360/ (diakses pada 17/12/2012 13:26) 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 2012 Stefan Lauren 13510034