Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

dokumen-dokumen yang mirip
SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

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

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Penyelesaian Permainan 3 missionaries and 3 cannibals Dengan Algoritma Runut-Balik

Penerapan Algoritma Backtracking pada Knight s Tour Problem

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Pemanfaatan Algoritma Runut-balik dalam Penentuan Golongan Suara pada Dunia Paduan Suara

Penerapan Algoritma Backtrack pada Knight s Tour

ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM) PADA MASALAH KNIGHT S TOUR

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Algoritma Runut-balik (Backtracking) Bagian 1

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Algoritma Backtracking Pada Logic Game : Family Crisis (Game Penyebrangan)

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

Penerapan Algoritma Runut-balik pada Permainan Math Maze

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Pendeteksian Deadlock dengan Algoritma Runut-balik

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

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

BAB II LANDASAN TEORI

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

Penyelesaian Permainan Pacman yang disederhanakan dengan Algoritma Backtracking

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

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

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

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

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

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

Aplikasi Algoritma Runut-balik pada Penyelesaian Teka Teki Mengisi Angka

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Penerapan Algoritma Backtracking dalam Permainan Futoshiki Puzzle

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Penerapan Algoritma Runut-Balik pada Magic Square

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Oleh Lukman Hariadi

PENYELESAIAN TEKA-TEKI PENYUSUNAN ANGKA MENGGUNAKAN ALGORITMA RUNUT BALIK

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

Penggunaan Strategi Algoritma Backtracking pada Pencarian Solusi Puzzle Pentomino

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

Penerapan Algoritma Runut Balik pada Pathuku Games

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Algoritma Backtracking Pada Permainan Peg Solitaire

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Implementasi Algoritma Backtracking dalam Pencarian Solusi Flash Game Web-Based Maze

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

Perbandingan Algoritma Greedy & Bactracking Dalam Penyelesaian Permainan 2048

Aplikasi Algoritma Brute Force dan Backtracking pada Permainan Slitherlink

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Zebra Puzzle

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

I. PENDAHULUAN. 1.1 Permainan Rush Hour

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Penggunaan Algoritma Pathfinding pada Game

Penerapan Teori Graf untuk Menyelesaikan Teka-Teki Permainan The Knight's Tour

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN MATH MAZE

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

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

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Pembentukan pohon pencarian solusi dan perbandingan masingmasing algoritma pembentuknya dalam simulasi N-Puzzle

PEMBANGKIT TEKA-TEKI SILANG DENGAN ALGORITMA BACKTRACKING SERTA APLIKASI PERMAINANNYA YANG BERBASIS WEB

Algoritma Greedy pada Board Game Saboteur

Penggunaan Pohon Biner Sebagai Struktur Data untuk Pencarian

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

Analisis Penggunaan Algoritma Backtracking dalam Penjadwalan Kuliah

Penggunaan Algoritma Brute Force dan Greedy dalam Permainan Atomas

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

IMPLEMENTASI BACKTRACKING ALGORITHM UNTUK PENYELESAIAN PERMAINAN SU DOKU POLA 9X9

ALGORITMA BACKTRACKING SEBAGAI SOLUSI GAME WORD SEARCH PUZZLE BERBASIS JAVA MOBILE

ANALISIS PENYELESAIAN PUZZLE SUDOKU DENGAN MENERAPKAN ALGORITMA BACKTRACKING ABSTRAK

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENYELESAIAN PERMAINAN SUDOKU

Penerapan Algoritma Backtracking pada Pencarian Solusi Fill-in Crossnumber

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

Implementasi Algoritma DFS pada permainan Monument Valley

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Algoritma Runut-balik (Backtracking)

Transkripsi:

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma acktrack Fahmi Dumadi 13512047 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi andung, Jl. Ganesha 10 andung 40132, Indonesia 1 13512047@std.stei.itb.ac.id Abstrak Makalah ini membahas tentang pencarian solusi dalam permainan pipe puzzle atau sejenisnya dengan menggunakan algoritma backtrack. Pencarian solusi akan dijelaskan dengan suatu simbol setiap bentuk pipa dan urutan pengambilan keputusan dalam bentuk pohon serta solusi yang dihasilkan bera jalur mencapai solusi atau solusi tidak ditemukan. gambar di bawah ini. Kata Kunci backtrack, pipe puzzle, simbol pipa, jalur solusi I. PENDAHULUAN Pipe puzzle adalah suatu permainan dengan tujuan menghubungkan suatu pipa sumber ke suatu pipa tujuan. Tugas seorang permain adalah menghubungkan pipa-pipa tesebut dengan mengubah arah pipa-pipa yang menghubungkannya. [3] Gambar 1.2 Variasi dari pipe puzzle Pada makalah ini berusaha untuk menganalisis dan mencari solusi permainan pipe puzzle ini dengan cara menggunakan backtrack dengan membuat suatu simbol pada setiap bentuk pipa, memodelkan satu cara pencarian solusi pada suatu pipe puzzle dengan menggunakan pohon ruang status dan menyimpulkan solusi bisa dihasilkan atau tidak. [2] Gambar 1.1 Contoh pipe puzzle anyak variasi dari permainan pipe puzzle ini, ada yang menggunakan air atau bola sebagai objek yang bergerak mengikuti alur pipa yang pemain bentuk, jadi pemain harus segera menyelesaikan penghubung pipa tersebut sebelum objek tersebut menemukan jalur buntu. Ada juga yang menempatkan pipa penghubungnya sendiri sesuai dengan pipa yang muncul pada slot pipa yang tersedia namun permainan pipa jenis ini lebih sulit untuk pemodelan pencarian solusi menggunakan backtrack karena pipa yang muncul menggunakan fungsi random dan pemain bebas menaruh pipa-pipa tersebut dimana saja selama masih dalam kotak permainan seperti II. DASAR TEORI Menurut buku Diktat Kuliah IF2221 Strategi Algoritma [1] runut-balik atau istilah asingnya backtrack, adalah algoritma yang memiliki basis pada DFS untuk mencari solusi persoalan secra lebih mangkus. acktrack merakan perbaikan dari algoritma rute Force dan secara sistematis mencari solusi persoalan di antara semua kemungkinana yang ada. Dengan backtrack, kita tidak perlu memeriksa semua kemungkinan yang ada. Pencarian yang dilakukan hanya yang mengarah ke solusi saja yang selalu dipertimbangkan sehingga pencarian dapat dihemat dan mengurangi waktu pencarian. acktrack lebih baik dinyatakan dalam algoritma rekursif. Orang yang pertama kali memperkenalkan backtrack adalah D.H. Lehmer pada tahun 1950. Selanjutnya diuraikan secara umum oleh R.J. Walker, Golomb, dan aumert. Algoritma backtrack banyak diterapkan pada program games (seperti tic-tac-toe, maze, dll) dan

berbagai masalah pada bidang kecerdasan buatan (artificial intelligence). Untuk menerapkan metode backtracking, didefinisikan : 1. Solusi Persoalan Solusi dinyatakan sebagai vektor dengan n-tle: X =(x 1, x 2,,x n), x i himpunan berhingga Si. Mungkin saja S1 = S2 = = S4. Contoh: S i = {0, 1} x i = 0 atau 1 2. Fungsi pembangkit nilai x k Dinyatakan sebagai : T(k) T(k) membangkitkan nilai untuk xk, yang merakan komponen vektor solusi. 3. Fungsi pembatas Dinyatakan sebagai (x 1, x 2,,x k) Fungsi pembatas menentukan apakah (x 1, x 2,,x k) mengarah ke solusi. Jika ya maka pembangkitan nilai untuk x k+1 dilanjutkan, jika tidak maka (x 1, x 2,,x k) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi. Fungsi pembatas tidak selalu dinyatakan sebagai fungsi matematis, Ia dapat dinyatakan sebagai predikat yang bernilai true atau false, atau dalam bentuk lain yang ekivalen. Langkah-langkah pencarian solusi dengan menggunakan pohon ruang status adalah sebagai berikut. 1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah mengikuti metode DFS (Depth First Search). Simpul-simpul yang sudah dilahirkan dinamakan dengan simpul hid (live node). Simpul hid yang sedang diperluas dinamakan simpul-e (Expand mode). Simpul dinomori dari atas ke bawah sesuai dengan urutan kelahirannya. 2. Setiap kali simpul-e diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-e tersebut dibunuh sehingga menjadi simpul mati (dead node). Fungsi yang digunakan untuk membunuh simpul-e adalah dengan menerapkan fungsi pembatas (bounding function). Simpul mati tidak akan pernah diperluas lagi. 3. Jika pembentukan lintasan berakhir dengan simpul mati, proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya. ila tidak ada simpul anak yang dibangkitkan, maka pencatian solusi dilanjutkan dengan melakukan backtrack ke simpul hid terdekat (simpul orangtua). Selanjutnya simpul ini menjadi simpul-e yang baru. Lintasan baru dibangun kembali sampai lintasan tersebut membentuk solusi. 4. Pencarian dihentikan bila telah menemukan solusi atau tidak ada lagi simpul hid untuk backtrack. III. PENCARIAN SOLUSI PERMAINAN PIPE PUZZLE MENGGUNAKAN ALGORITMA ACKTRACK A. Penggunaan Simbol Pada Pipa entuk pipa pada permainan Pipe puzzle bermacammacam. Ada pipa sumber, pipa tujuan, dan pipa penghubung. (a) (b) [4] Gambar 3.1 (a) pipa sumber, (b) pipa tujuan Pipa sumber bisa kita simbolkan menjadi <0, arah> dengan arah adalah arah awal saluran pipa yaitu,,, dan left. egitu juga dengan pipa tujuan bisa kita simbolkan menjadi <1, arah> dengan arah adalah arah akhir pipa terakhir kali. Pipa penghubung bermacam, macam juga bentuknya, ada yang belok, lurus, pertigaan dan perempatan. erikut penjelasannya. 1. Pipa elok Ada 4 posisi pipa belok yang bisa kita pilih. Pipa belok berfungsi menggabungkan saluran pipa dengan membelokkan arahnya, maka bisa kita simbolkan menjadi <AX, arah1, arah2> dengan X adalah posisi pipa belok, arah1 adalah arah awal, dan arah2 adalah arah saluran pipa dibelokkan. erikut pendefinisian simbol pada pipa belok. <A1,, > <A1, left, > <A3,, > <A3,, left> <A2,, > <A2,, left> <A4,, > <A4, left, > [4] Gambar 3.2 Pendefinisian simbol pada pipa belok

Setiap posisi memiliki 2 simbol karena arah saluran bisa berbeda tergantung lubang pipa yang pertama kali dimasuki. 2. Pipa Lurus Ada 2 posisi pipa lurus yang bisa kita pilih. Pipa lurus berfungsi menggabungkan saluran pipa tanpa dibelokkan (arah diteruskan), maka bisa kita simbolkan menjadi <X, arah> dengan X adalah posisi pipa lurus dan arah adalah arah saluran pipa diteruskan. erikut pendefinisian simbol pada pipa lurus. <1, > <1, > <2, > <2, left,> [4] Gambar 3.3 Pendefinisian simbol pada pipa lurus Sama seperti pada pipa belok, setiap posisi memiliki 2 simbol. 3. Pipa Pertigaan Ada 4 posisi pipa belok yang bisa kita pilih. Pipa pertigaan berfungsi menggabungkan saluran pipa dan meneruskannya ke 2 arah yang berbeda, bisa dibelokkan atau diteruskan. Pipa pertigaan kita simbolkan menjadi <CX, arah1, arah2 arah3> dengan X adalah posisi pipa pertigaan, arah1 adalah arah awal, dan arah2 atau arah3 adalah arah saluran pipa dibelokkan atau diteruskan. erikut pendefinisian simbol pada pipa pertigaan. <C1,, left> <C1,, > <C1, left, left > <C3,, left> <C3,, > <C3, left, left > <C2,, > <C2,, > <C2, left, > <C4,, left> <C4,, left> <C4,, > [4] Gambar 3.4 Pendefinisian simbol pada pipa pertigaan Pada pipa pertigaan setiap posisi memiliki 3 simbol karena lubang saluran pipa ada 3 sehingga arah akhirnya ada 2. 4. Pipa Perempatan Pipa perempatan adalah pipa yang unik karena hanya ada 1 posisi dan bisa dilewati dua kali karena pipa ini sebenarnya adalah 2 pipa lurus yang saling menumpuk, jadi pipa perempatan ini hanya meneruskan saluran pipa. Namun ada juga yang mendefinisikan pipa perempatan itu adalah pipa yang bisa meneruskan ke segala arah selain arah awalnya. Pipa perempatan bisa kita simbolkan menjadi <D, arah> dengan arah adalah arah saluran pipa diteruskan dan satu lagi simbol untuk pipa perempatan yang meneruskan ke segala arah cuk dinyatakan dengan <D>. erikut pendefinisian simbol pada pipa perempatan. <D, > <D, > <D, left> <D, > <D> (a) (b) [4] Gambar 3.5 Pendefinisian simbol pada pipa perempatan Simbol pipa perempatan (a) adalah gabungan dari simbol-simbol pada pipa lurus.. Pencarian Solusi Menggunakan acktrack Pencarian solusi pada pipe puzzle akan dipaparkan sebagai berikut. Pertama-tama kita tentukan dulu fungsi pembatasnya, yaitu arah awal simpul anak yang akan dibangkitkan harus sama arah simpul orangtuanya, jadi simpul anak yang berbeda arahnya tidak perlu dibangkitkan karena tidak akan mengarah pada solusi. Lalu untuk urutan prioritas arah yang akan dipakai adalah tergantung posisi pipa sumber dan pipa tujuan berada. Jika posisi pipa sumber berada di samping kiri pipa tujuan maka lebih diprioritaskan dibanding left, dan sebaliknya. Jika posisi pipa sumber berada di atas pipa tujuan maka lebih diprioritaskan dibanding. Jadi jika posisi pipa sumber berada di kiri bawah area permainan dan pipa tujuan ada di kanan atas area permainan, urutannya adalah,,left,. Posisi pipa berubah sesuai urutan angka, jika sudah mencapai posisi akhir, posisi kembali ke posisi pertama. Setelah menentukan fungsi pembatas, maka pencarian solusi dilakukan dengan membuat pohon ruang status, agar terlihat urutan pembangkitan simpul sesuai pipa yang ditemui dan fungsi pembatas. Agar lebih jelas, akan kita

pecahkan salah satu pipe puzzle yang ada pada sebuah game. erikut gambar area permainan pipe puzzle yang akan dipecahkan. permainan maka simpul (9) tidak mendekati solusi sehingga simpul tersebut dibunuh dan melakukan backtrack ke simpul (8). Di simpul (8) tidak ada lagi anak yang bisa dibangkitkan karena tidak ada posisi pipa lurus yang terhubung pada simpul (8), sehingga kembali melakukan backtrack. Di simpul (7) dibangkitkan simpul (10) yaitu <A3,, > sampai seperti ini. 7 <A4,, > [4] Gambar 3.6 Contoh area permainan pipe puzzle isa kita lihat bahwa pipa tujuan berada di kanan bawah pipa sumber. Jadi urutan prioritas arahnya adalah,,, left. Up lebih diprioritaskan dibanding left karena arah pipa tujuannya adalah. Kita simbolkan pipa sumber dengan <0, > dan pipa tujuan dengan <1, >. Simpul pertama (1) yang dihidkan adalah pipa sumber dengan <0, >. Lalu kita cek bentuk pipa yang ada di bawah pipa sumber yaitu pipa perempatan <D> dan kita hidkan simpul anaknya (2). Karena simpul (2) hanya 1 posisi maka langsung saja dibangkitkan anaknya sesuai prioritas arah. Di samping kanan ada pipa pertigaan dengan bentuk sudah terhubung, jadi posisi tidak perlu diubah. Karena dari kanan, maka simpul anak (3) dibangkitkan dengan simbol <C3,, >. Lalu ke kanan lagi dan mengecek bentuk pipa yaitu pipa belok. Karena posisinya tidak terhubung maka posisinya diubah menjadi <A2,, > karena prioritasnya lebih tinggi dibanding. Simpul anak(4) dibangkitkan dari simpul(3). Sekarang arahnya menjadi ke bawah dan dicek pipa di bawahnya yaitu pipa lurus. Simpul anak(5) dibangkitkan dengan simbol <1, >. 8 9 <A2,, > <1, > 10 11 12 13 <A3,, > <A1,, > <A2,, > <1, > Gambar 3.8 Ruang Status 2 Simpul (13) dibunuh juga karena di bawahnya ada penut pipa yang menut jalur menuju solusi, sehingga dilakukan kembali backtrack ke simpul (12). Di simpul tersebut tidak ada anak lagi yang bisa dibangkitkan sehingga backtrack kembali ke simpul (11). Simpul (11) membangkitkan simpul anaknya (14) yaitu <A3,, > sampai seperti ini. 11 <A1,, > 1 <0, > 12 <A2,, > 14 <A3,, > 6 <1, > 2 <D> 13 <1, > 15 <A2,, left> 7 <A4,, > left 3 <C3,, > 16 <A4, left, > 8 <A2,, > 4 <A2,, > 5 <1, > 9 <1, > 17 18 <A1,, > <2, > Gambar 3.7 Ruang Status 1 Karena di bawah simpul (9) merakan batas area Gambar 3.9 Ruang Status 3.1

18 19 20 21 <2, > 22 <1, > <A3,,> 23 <1, > <A1,, > 24 <A3,,left> left <A2,, > 25 <2, left> Gambar 3.10 Ruang Status 3.2 <A2,, > <A3,, > 33 4 3 <C3,, > 26 <A2,, > 31 32 50 <C2,, > <2, > <A3,, > Pada simpul (25) tidak ada pipa yang bisa dihubungkan karena pipa di sebelah kirinya telah menjadi simpul sehingga dilakukan backtrack hingga simpul (16). Pada simpul (16) tidak bisa membangkitkan simpul anaknya karena pipa sebelah kiri simpul (17) telah dipakai juga, sehingga dilakukan backtrack kembali hingga simpul (3). Pada simpul (3) dibangkitkan simpul anak (26) yaitu <A3,, >, hingga seperti berikut. 35 36 37 38 <A3,, left> <2, left> <C3, left, left > 48 <A1, left, > 34 <C1, left, left > <A4,, > 49 <C2, left, > 3 <C3,, > 39 <1, > 40 <A4,, > 47 <A3,, left> 4 <A2,, > 26 <A3,, > 41 <2, > 27 28 <C3,, left> 29 30 <C4,, left> <C2,, > <2, > Gambar 3.11 Ruang Status 4 42 43 <C4,, > <A1,,> 44 45 <C1,, > 46 <C3,, > <2, > Gambar 3.12 Ruang Status 5 Pada simpul (28) jalur mengalami kebuntuan karena calon simpul anak merakan objek penut pipa. acktrack dilakukan ke simpul (26). Pada simpul (29) tidak ditemukan calon simpul anak yang bisa diperluas, karena hanya ada objek penut pipa dan batas area permainan. Pada simpul (30) calon simpul anak <2, > tidak dibangkitkan karena jalur tersebut sudah pernah dilewati. Oleh karena itu simpul (30) dibunuh menjadi simpul mati. acktrack dilakukan sampai simpul (3) dan membangkitkan simpul anak (31) yaitu <C2,, >. Simpul (31) menjadi simpul-e dan melakukan perluasan ke sebelah kanan. Hasilnya seperti berikut. Pada simpul (43) tidak dilakukan perluasan karena calon simpul anak merakan jalur yang sudah diambil, sehingga dilakukan backtrack. Pada simpul (45) tidak dilakukan perluasan karena jalur terhalangi oleh objek penut pipa sehingga dilakukan backtrack lagi. Pada simpul (46) tidak dilakukan perluasan karena sudah pernah dilewati. Pada simpul (47) tidak dilakikan perluasan karena jalur menjauhi pipa tujuan (dilihat pada posisi calon simpul anak lebih jauh dibanding posisi pipa sumber secara horizontal. Simpul (48), (49), dan (50) sama seperti penjelasan sebelumnya yaitu calon simpul anak merakan jalur yang sudah pernah dilewati.

4 <A2,, > 1 <0, > 2 <D> 3 <C3,, > 26 <A3,, > 31 <C2,, > sumber dengan pipa tujuan atau fungsi cost dapat didefinisikan juga dengan banyaknya pemain mengubah posisi pipa dengan cara mengklik mouse atau semacamnya. IV. KESIMPULAN Permainan pipe puzzle dapat dicari solusinya dengan cara algoritma backtrack. Fungsi pembatas pada algoritma backtrack sangat berpengaruh kepada kemangkusan pencarian solusi. Pembahasan makalah ini dapat dikembangkan lagi dengan mencari algoritma yang lebih mangkus untuk mendapatkan solusi 32 51 52 <C1,, left > VII. PENGAKUAN <C4,, left> 53 54 55 56 57 <2, > <A2,, > <A4,, > <2, > <A2,, > Pertama, penulis mengucapkan terima kasih kepada Allah SWT yang telah mengizinkan penulis untuk menyelesaikan makalah ini. Kedua, penulis mengucapkan terima kasih kepada orang tua penulis yang telah membesarkan dan mendidik penulis hingga saat ini. Ketiga, penulis mengucapkan terima kasih kepada para dosen dan asisten mata kuliah IF2211 Strategi Algoritma yang telah memberikan banyak hal yang sangat bermanfaat. Semoga segala kegiatan yang telah terjadi pada proses belajar mengajar ini menjadi pahala yang yang terus mengalir sampai akhir zaman. Akhir kata penulis mengucapkan mohon maaf bila ada kesalahan dalam penulisan. Sekian dan terima kasih. 58 <A4,, > DAFTAR PUSTAKA 59 60 <A3,, > <1, > Gambar 3.13 Solusi Pohon Ruang Status Solusi jalur yang tepat untuk dapat menghubungkan pipa sumber dengan pipa tujuan bisa dilihat pada gambar di atas. Fungsi pembatas sangatlah berpengaruh pada pencarian solusi backtrack. Tanpa fungsi pembatas, jalur yang harus diperiksa akan lebih banyak dari solusi ini, hal ini biasa dikenal dengan algoritma brute-force. Pendefinisian fungsi pembatas juga sangat berpengaruh pada pencarian solusi. Jika kita memprioritaskan terlebih dahulu dibanding, solusi pipe puzzle ini bisa kita dapatkan hanya dengan membangkitkan 13 simpul saja dan angka tersebut sama dengan jumlah langkah dari pipa sumber sampai dengan pipa tujuan. Pencarian solusi dapat lebih mangkus dengan algoritma lain seperti ranch & ound atau Program Dinamis karena algoritma tersebut menggunakan fungsi biaya (cost). Jika dalam permainan ini fungsi cost dapat didefinsikan sebagai jarak antara pipa [1] Munir, Rinaldi. Diktat Kuliah IF2211 Strategi Algoritma. andung : Penerbit Teknik Informatika Institut Teknologi andung. 2009. ab 7. [2] http://www.funnygames.in/game/the_plumber.html diakses tanggal 18 Mei 2014 pukul 08.10 [3] http://www.engineering.com/gamespuzzles/pipes/tabid/4683/defa ult.aspx diakses tanggal 18 Mei 2014 pukul 08.20 [4] http://www.freeonlinegames.name/en/games/plumber-boy-2.html diakses tanggal 18 Mei 2014 pukul 17.33 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. andung, 19 Mei 2014 Fahmi Dumadi 13512047