BAB II. KAJIAN PUSTAKA A. Algoritma Backtracking - Abdul Kadir Hasan BAB II

A. Algoritma Backtracking

  Graf merupakan cikal bakal dari Depth First Search, Depth First Search merupakan graf khusus atau sering disebut dengan pohon pencarian.

  1. Pengertian depth first search Depth First Search pertama kali diperkenalkan oleh Tarjan dan Hopcrof

  22 tahun yang lalu, depth first search dapat digunakan untuk membangun sejumlah algoritma graf yang efisien. Pencarian mendalam pertama (Depth

  First Search) adalah Pencarian dilakukan pada suatu simpul dalam setiap level dari yang paling kiri (Suyanto, 2007).

  Gambar 1. Depth First Search.

  2. Algoritma depth first seacrh (Kusumadewi, 2003) : a.

  Jika keadaan awal merupakan tujuan, keluar (sukses).

  b.

  Jika tidak demikian, kerjakan langkah-langkah berikut ini sampai tercapai keadaan sukses atau gagal.

  Bangkitkan succesor E dari kedaan awal. Jika tidak ada succesor, - maka akan terjadi kegagalan. Panggil depth first search dengan E sebagai kedaan awal. - Jika sukses berikan tanda sukses. Namun jika tidak, ulangi

  • langkah-2.
pada tahun 1950.

  1. Pengertian algoritma backtraking

  Mencari solusi dari persoalaan di antara semua kemungkinan yang ada merupakan penjelasan sistematis dari algoritma brute force, algoritma

  backtracking dikenal sebagai perbaikkan dari algoritma brute force.

  Algoritma backtracking adalah algoritma yang berbasis pada DFS untuk mencari solusi persoalan secara lebih mangkus (Munir, 2006).

  2. Perbedaan algoritma brute force dan backtracking

  Perbedaan mendasar algoritma burte force dan algoritma backtracking adalah waktu pencariannya. Algoritma algoritma backtracking dalam pencarian solusinya menghemat waktu dikarenakan tidak perlu membentuk kemungkinan solusi untuk dicari solusi, sedangkan brute force menentukan kemungkinan solusinya terlebih dahulu, lalu mencari solusi dari kemungkinan solusi tersebut.

3. Langkah-langkah pencarian solusi : a.

  Solusi dicari membentuk lintasan dari akar kedaun. Simpul yang sudah dilahirkan dinamakan simpul hidup dan simpul hidup diperluas dinamakan simpul-E (Expand-node).

  b. Jika lintasan yang diperoleh dari perluasan simpul-E tidak mengarah ke solusi maka, simpul itu akan menjadi simpul mati dimana simpul itu tidak akan diperluas lagi.

  c.

  Jika posisi terakhir ada di simpul mati, maka pencarian dilakukan dengan membangkitkan simpul anak yang lainnya dan jika tidak ada simpul anak maka dilakukan runut balik (backtrackking) kesimpul induk.

  d. Pencarian dihentikan jika telah menemukan solusi atau tidak ada simpul hidup yang dapat di perlukan.

  Gambar 2. Algoritma Backtracking.

B. Jenis-Jenis Puzzle

  Ada beberapa jenis puzzle, antara lain: 1.

   Logika puzzle

  Logika puzzle adalah permainan puzzle yang mengutamakan logika dalam hal penyelesaiannya. Puzzle jenis ini pertama kali diproduksi oleh Charles Lutwidge, salah satu contoh logika puzzle yaitu sudoku, seperti yang tersaji pada Gambar 3 berikut.

  Gambar 3. Puzzle Sudoku angka, kemudian pemain mengisi sel kemudian pemain mengisi sel-sel kosong dengan angka antara 1 sel kosong dengan angka antara 1 sampai dengan 9 sampai dengan 9, sesuai dengan petunjuk berikut: a.

  a. Angka hanya dapat muncul satu kali dalam setiap baris. Angka hanya dapat muncul satu kali dalam setiap baris.

  b. Angka hanya dapat muncul satu kali dalam setiap kolom. Angka hanya dapat muncul satu kali dalam setiap kolom.

  b.

  c. Angka hanya dapat muncul satu kali dalam setiap region. Angka hanya dapat muncul satu kali dalam setiap region.

  c.

2. Kombinasi Kombinasi puzzle

  Kombinasi binasi puzzle adalah puzzle yang dapat diselesaikan melalui dapat diselesaikan melalui beberapa kombinasi yang berbeda. beberapa kombinasi yang berbeda. Salah satu contoh kombinasi Salah satu contoh kombinasi puzzle yaitu rubic cube seperti yang tersaji pada Gambar 4 berikut.

  rubic cube, seperti yang tersaji pada Gambar 4 berikut.

  Gambar 4. Rubic Cube Pada Gambar 4 merupakan Pada Gambar 4 merupakan rubic cube berukuran tiga kali tiga yang berukuran tiga kali tiga yang mempunyai enam sisi dan mempunayi enam warna, pemain dikatakan mpunyai enam sisi dan mempunayi enam warna, pemain dikatakan mpunyai enam sisi dan mempunayi enam warna, pemain dikatakan berhasil menyelesaikan permainan berhasil menyelesaikan permainan rubic cube jika setiap sisi pada jika setiap sisi pada rubic hanya berisi satu jenis warna, seperti yang tersaji pada Gambar 5 hanya berisi satu jenis warna, seperti yang tersaji pada Gambar 5

  

cube hanya berisi satu jenis warna, seperti yang tersaji pada Gambar 5

berikut.

  Gambar 5. Hasil Penyelesaian Rubic Cube 3.

   Jigsaw puzzle Jigsaw puzzle adalah puzzle yang dapat diselesaikan dengan cara

  menyatukan kepingan-kepingan. Jigsaw puzzle pertama kali diproduksi pada tahun 1766 oleh John Spilsbury, nama jigsaw diambil dari alat untuk memotong menjadi kepingan-kepingan puzzle tersebut. Salah satu contoh

  

jigsaw puzzle yaitu puzzle peta buatan John Spilsbury, seperti yang tersaji

pada Gambar 6 berikut.

  Gambar 6. Puzzle Peta Buatan John Spilsbury Untuk menyelesaikan puzzle peta buatan pada Gambar 6, pemain harus menyusun kepingan-kepengian puzzle peta tersebut sehingga menjadi sebuah bentuk peta secara utuh, seperti yang tersaji pada Gambar 7 berikut. Gambar 7. Bentuk Utuh Peta Buatan John Spilsbury C.

   Bahasa Pemrograman Java

  Sun Microsystem Inc merupakan perusahan yang membuat bahasa pemrograman java ini, java dalam level beta dirilis secara resmi pada November 1995. Asal mulanya bahasa pemrograman java ditunjukkan untuk pemrograman

  applet di web browser, tapi bahasa pemrograman java berkembang begitu

  pesat, hingga sekarang aplikasi untuk smartphone bisa dibuat menggunakan bahasa pemrograman java. Pemrograman Berorientasi Objek adalah suatu cara baru dalam berfikir dan berlogika dalam menghadapi masalah-masalah dengan bantuan komputer, sehingga kita dapat membuat program yang mencerminkan fakta yang sesungguhnya yang memang kita jumpai dalam kehidupan sehari-hari melalui bahasa pemrograman java (Nugroho,2008).

D. Bendera Negara

  Bendera Negara berperan sebagai pembawa identias negara di mata dunia, bendera negara didesain secara teliti dan hati-hati. Warna dan pola bendera dipikirkan secara mendalam agar mampu menggambarkan karakter dan ciri khas suatu negara. Berikut gambar bendera negara pada sembilan bagian benua :

  Asia Tenggara Nama Negara dan Bendera Negara bagian Benua Asia bagian Benua Asia

  Tenggara yang akan digunakan dalam permainan, tersaji pada permainan, tersaji pada Tabel 1.

  Tabel 1. Bendera Negara di Asia Tenggara Asia Tenggara Nama Negara Bendera Negara Bendera Negara

  Indonesia Brunei

  Filipina Kamboja

  Laos Malaysia

  Myanmar Singapura

  Thailand Timor Leste Asia Barat Nama Negara dan Bendera Negara bagian Benua A gara dan Bendera Negara bagian Benua Asia

  Barat yang akan digunakan dalam permainan, tersaji pada permainan, tersaji pada Tabel 2.

  Tabel 2. Bendera Negara di Asia Barat Asia Barat Nama Negara Bendera Negara Bendera Negara

  Arab Saudi Bahrain

  Irak Israel

  Kuwait Lebanon

  Palestina Turki

  Oman Siprus 3.

  Amerika Utara Nama Negara dan Bendera Negara bagian Benua Nama Negara dan Bendera Negara bagian Benua

  Amerika Utara yang akan digunakan dalam permainan, tersaji permainan, tersaji pada Tabel 3.

  4. Nama Negara Bendera Negara Amerika Serikat

  Kanada Bermuda

  Greenland Amerika Selatan atau Amerika Latin

  Nama Negara dan Bendera Negara bagian Benua Amerika Latin yang akan digunakan dalam permainan, tersaji pada Tabel 4.

  Tabel 4. Bendera Negara di Amerika Latin Nama Negara Bendera Negara

  Suriname Argentina

  Brazil Chili

  Ekuador Kolombia

  Paraguay Bendera Negara gara dan Bendera Negara bagian Benua permainan, tersaji

  Amerika Latin Bendera Negara Peru Uruguay

  Guyana Venezuela

  5. Eropa Barat Nama Negara dan Bendera Negara bagian B Bendera Negara bagian Benua Eropa

  Barat yang akan digunakan dalam permainan permainan, tersaji pada Tabel 5.

  Tabel 5. Bendera Negara di Eropa Barat Eropa Barat Nama Negara Bendera Negara Bendera Negara

  Austria Belanda

  Belgia Jerman

  Liechtenstein Perancis

  Swiss Eropa Selatan Nama Negara dan Bendera Negara bagian B

  Selatan yang akan digunakan dalam permainan Tabel 6.

  Tabel 6. Bendera Negara di Eropa Selatan Nama Negara Bendera Negara

  Yunani Spanyol

  Portugal Kroasia

  Italia Bosnia

  San Morino Malta

  Andorra gara dan Bendera Negara bagian Benua Eropa permainan, tersaji pada

  Eropa Selatan Bendera Negara Afrika Utara Nama Negara dan Bendera Negara bagian Benua Afrika gara dan Bendera Negara bagian Benua Afrika

  Utara yang akan digunakan dalam permainan permainan, tersaji pada Tabel 7.

  Tabel 7. Bendera Negara di Afrika Utara Afrika Utara Nama Negara Bendera Negara Bendera Negara

  Aljazair Libya

  Maroko Mesir

  Sahara Barat Sudan

  Tunisia

  8. Afrika Tengah Nama Negara dan Bendera Negara bagian Benua Afrika gara dan Bendera Negara bagian Benua Afrika

  Tengah yang akan digunakan dalam permainan permainan, tersaji pada Tabel 8.

  Tabel 8. Bendera Negara di Afrika Tengah Afrika Tengah Nama Negara Bendera Negara Bendera Negara

  Angola Chad

  Gabon Kamerun

  Kongo Republik Afrika Tengah

  Republik Demokratik Kongo 9. Oseania ggap dengan luas benua terkecil.

  Oseania sering dianggap dengan luas benua terkecil

  Nama Negara dan Bendera Negara bagian Benua enua Oseania yang akan digunakan dalam permainan, tersaji pada , tersaji pada Tabel 9.

  Tabel 9. Bendera Negara di Oseania Oseania Nama Negara Bendera Negara Bendera Negara

  Australia Selandia Baru

  Papua Nugini Pulau Norflok

  Kepulauan Solomon

  1. Sirait (2013) telah mengembangkan aplikasi permainan labirin dengan menggunakan algoritma backtracking. Labirin adalah sebuah permainan mencari yang jalan keluar, dimana dalam perjalanan labirin ini banyak mendapat rintangan atau halangan untuk sampai pada tujuan. Algoritma

  backtracking pada aplikasi permainan ini digunakan untuk mencari solusi, agar bisa mencapai tujuan.

  2. Handayani, dkk. (2012) telah mengembangkan aplikasi permainan othello berbasis android menggunakan algoritma Depth First Search. Pengembangan aplikasi othello difokuskan kepada bagaimana membuat agen cerdasnya. Agen adalah suatu yang dapat menerima kesan dari lingkungannya dan melakukan tindakan terhadap lingkungannya. Hasil dari pengembangan aplikasi ini menentukan pilihan langkah yang cerdas sehingga membuat para pemain terlibat mengasah dan mengatur strategi untuk mengalahkan agen cerdas tersebut. Agen cerdas dirangcang menggunakan algoritma Depth First Search.

  3. Pribadi, dkk. (2010) telah mengembangkan sistem pencarian rute terpendek dengan menggunakan algoritma Depth First, Breath First dan Hill Climbing (Study Comparetive). Pada penelitian ini memfokuskan pada penerapan 3 algoritma pencarian dalam penentuan rute terpendek yang paling optimum untuk dicapai. Tujuan dari penelitian ini untuk menemukan rute yang efektif dan efisien dengan penerapan algoritma pencarian yang tepat sehingga rute yang disarankan akan benar-benar menjadi rute yang terbaik.