Professional Documents
Culture Documents
disusun oleh: 1. 2. 3. 4. Abdul Rahman Imam Fachmi Nasrullah Windia Widianto Gilang Ramadhan (0808733) (0902306) (0608554) (0905653)
Program Studi Ilmu Komputer dan Pendidikan Ilmu Komputer Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam UNIVERSITAS PENDIDIKAN INDONESIA 2010
KATA PENGANTAR
Rasa syukur yang dalam kami sampaikan kehadirat ALLAH SWT, karena berkat kemurahanNya makalah ini dapat kami selesaikan. Dalam makalah ini kami membahas Algoritma Backtracking serta Implementasinya, suatu permasalahan para programmer sekaligus solusi dalam pembuatan algoritma yang ingin dibuatnya di antara berbagai algoritmaalgoritma yang ada. Makalah ini dibuat dalam rangka memperdalam pemahaman terkait algoritma yang sangat diperlukan dalam membuat suatu program yang efektif dan efisien dalam memanfaatkan teknologi informasi terutama untuk para programmer dan sekaligus melakukan apa yang menjadi tugas mahasiswa yang mengikuti mata kuliah Algoritma dan Pemrograman II Dalam proses pendalaman materi Backtracking ini, tentunya kami mendapatkan bimbingan, arahan, koreksi dan saran, untuk itu rasa terima kasih yang dalam-dalamnya kami sampaikan : Dr. Dedi Rohendi, MT. selaku dosen mata kuliah Algoritma dan Pemrograman II Rekan-rekan mahasiwa yang telah banyak memberikan masukan untuk makalah ini.
Semoga makalah ini dapat memberikan wawasan yang lebih luas kepada pembaca. Walaupun makalah ini memiliki kelebihan dan kekurangan. Penyusun mohon untuk saran dan kritiknya. Terima kasih.
Penyusun
DAFTAR ISI
Algoritma Backtracking serta Implementasinya ........................................................................................... 1 KATA PENGANTAR......................................................................................................................................... 2 DAFTAR ISI..................................................................................................................................................... 3 BAB I .............................................................................................................................................................. 4 PENDAHULUAN ............................................................................................................................................. 4 Latar Belakang Masalah ............................................................................................................................ 4 Perumusan Masalah.............................................................................................................................. 5 Maksud dan Tujuan............................................................................................................................... 5 1.3.1 1.3.2 Maksud Pembahasan ........................................................................................................ 5 Tujuan Pembahasan .......................................................................................................... 5
BAB II ............................................................................................................................................................. 6 PEMBAHASAN ............................................................................................................................................... 6 2.1 Algoritma Runut Balik (Backtracking) ........................................................................................... 6 2.2 Properti Umum Metode runut balik (Backtracking) ..................................................................... 7 2.3 Pengorganisasian Solusi ................................................................................................................ 7 2.4 Skema Umum Algoritma Backtracking ......................................................................................... 9 2.5 Implementasi Algoritma runut balik ............................................................................................... 9 BAB III ............................................................................................................................................................ 9 PENUTUP ....................................................................................................................................................... 9 Kesimpulan.............................................................................................................................................. 10 Saran-saran ......................................................................................................................................... 10 Daftar Pustaka............................................................................................................................................. 11
BAB I PENDAHULUAN
1. Strategi solusi langsung, metode yang termasuk ke dalam strategi ini adalah: Algoritma Brute Force dan Algoritma Greedy 2. Strategi berbasis pencarian pada ruang status, metode yang termasuk ke dalam strategi ini adalah: Algoritma Backtracking dan Algoritma Brach and Bound 3. Strategi solusi atas-bawah, metode yang termasuk ke dalam strategi ini adalah Algoritma Divide and Conquer. 4. Strategi solusi bawah-atas, metode yang termasuk ke dalam strategi ini adalah Dynamic Programming. Strategi yang akan dibahas pada makalah ini adalah strategi berbasis pencarian pada ruang status. Secara spesifik, metode yang dibahas adalah Algoritma runut balik (Backtracking). Permasalahan ini akan dibahas lebih lanjut dalam bab selanjutnya.
Perumusan Masalah
Dari latar belakang yang telah diuraikan, maka timbul beberapa pertanyaan yang merupakan rumusan masalah, yakni sebagai berikut: 1. Apakah yang dimaksud dengan algoritma runut balik (Backtracking) ? 2. Apa keunggulan serta kelemahan algoritma runut balik (Backtracking) dibandingkan dengan algoritma-algoritma yang ada? 3. Bagaimana prosedur algoritma runut balik (Backtracking) ? 4. Bagaimana Implementasi algoritma runut balik (Backtracking) dalam pemrograman ?
Berdasarkan uraian latar belakang dan rumusan masalah di atas, maka maksud dari pembahasan ini adalah untuk mengetahui dengan jelas hal-hal yang berkaitan dengan sebuah algoritma yang dinamakan dengan algoritma runut balik (Backtracking).
1.3.2
Tujuan Pembahasan
Tujuan pembahasan ini dapat dirumuskan untuk: 1. Menganalisis definisi yang dimiliki oleh algoritma runut balik (Backtracking). 2. Menganalisis prosedur algoritma dalam algoritma runut balik (Backtracking). 3. Menganalisis implementasi algoritma runut balik (Backtracking).
BAB II PEMBAHASAN
Algoritma Backtracking mempunyai prinsip dasar yang sama seperti brute-force yaitu mencoba segala kemungkinan solusi. Perbedaan utamanya adalah pada ide dasarnya, semua solusi dibuat dalam bentuk pohon solusi (pohon ini tentunya berbentuk abstrak) dan algoritma akan menelusuri pohon tersebut secara DFS (depth field search) sampai ditemukan solusi yang layak.
Jika xi Si, maka S1 S2 Sn disebut ruang solusi. Jumlah anggota di dalam ruang solusi adalah | S1| | S2| | Sn |. Tinjau persoalan Knapsack 0/1 untuk n = 3. Solusi persoalan dinyatakan sebagai vektor (x1, x2, x3) dengan xi {0,1}. Ruang solusinya adalah {0,1} {0,1} {0,1} = {(0, 0, 0), (0, 1, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0), (1, 0, 1), (0, 1, 1), (1, 1, 1)}. Pada persoalan Knapsack 0/1 dengan n = 3 terdapat 2n = 23 = 8 kemungkinan solusi, yaitu: (0, 0, 0), (0, 1, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0), (1, 0, 1), (0, 1, 1), dan (1, 1, 1). Penyelesaian secara exhaustive search adalah dengan menguji setiap kemungkinan solusi. Ruang solusi diorganisasikan ke dalam struktur pohon. Tiap simpul pohon menyatakan status (state) persoalan, sedangkan sisi (cabang) dilabeli dengan nilai-nilai xi. Lintasan dari akar ke daun menyatakan solusi yang mungkin. Seluruh lintasan dari akar ke daun membentuk ruang solusi. Pengorganisasian pohon ruang solusi diacu sebagai pohon ruang status (state space tree). Tinjau kembali persoalan Knapsack 1/0 untuk n = 3. Ruang solusinya:
1 x1 =1 x1 =0
2 x2 =1 x2 =0 x2 =1
9 x2 =0
10
13
x3 =1 4
x3 =0 5
x3 =1 7
x3 =0 8
x3 =1
11
x3 =0
12
x3 =1
14
x3 =0
15
Kesimpulan
1. Algoritma runut balik (Backtracking algorithm) merupakan algoritma yang digunakan untuk mencari solusi persoalan secara lebih mangkus daripada menggunakan algoritma brute force. 2. Algoritma ini akan mencari solusi berdasarkan ruang solusi yang ada secara sistematis namun tidak semua ruang solusi akan diperiksa, hanya pencarian yang mengarah kepada solusi yang akan diproses. 3. Dengan menggunakan algoritma Backtracking ini kita dapat menyelesaikan persoalan untuk penyelesaian berbagai macam permainan, seperti : Game Sudoku, Game Kuda Menyebrang Jembatan, Game Labirin, dan Permainan Knights Tour.
Saran-saran
1. Algoritma Backtracking dapat dijadikan salahsatu alternatif pilihan dalam menyelesaikan sebuah permasalahan yang membutuhkan waktu singkat. 2. Untuk menyelesaikan sebuah permainan game yang membutuhkan algoritma, algoritma Backtracking ini bisa dimanfaatkan
10
Daftar Pustaka
[1] Mumtaz, Fahmi. Aplikasi Teori Graf pada Knights Tour, 2007. [2] Munir, Rinaldi. Diktat Kuliah IF2251 Strategi Algoritmik, Program Studi Teknik Informatika STEI ITB, 2006. [3] Lewandowski, Gary. Project 1: The Knights Tour Gary Lewandowski, CSCI 220, fall 2001 [4] http://www.informatika.org/~rinaldi/Stmik/Makalah/MakalahStmik26.pdf Tanggal akses: 18 desember 2010 pukul 10.30 [5] http://www.informatika.org/~rinaldi/Stmik/2007-2008/Makalah2008/MakalahIF22512008-109.pdf Tanggal akses: 18 desember 2010 pukul 10.45 [6] http://www.csc.liv.ac.uk/%7Eped/algor_complete.html Tanggal akses: 20 Desember 2010 pukul 12:23 [7] http://www.daniweb.com/forums/post609524.html Tanggal akses: 20 Desember 2010 pukul 13:12 [8] http://web.telia.com/~u85905224/knight/eknight.htm Tanggal akses: 20 Desember 2010 pukul 13:30
11