PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

dokumen-dokumen yang mirip
ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

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

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

PENCARIAN SOLUSI DENGAN ALGORITMA BACKTRACKING UNTUK MENYELESAIKAN PUZZLE KAKURO

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

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

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

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

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

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

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Algoritma Runut-balik (Backtracking) Bagian 1

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

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

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

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

Penerapan Algoritma Runut-Balik pada Magic Square

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

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

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

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

Penerapan Algoritma Backtracking dalam Permainan Futoshiki Puzzle

Penerapan Algoritma Backtracking pada Pewarnaan Graf

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

Penerapan Algoritma Backtracking pada Game The Lonely Knight

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Zebra Puzzle

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Algoritma Traversal di dalam Graf

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

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

Penerapan Algoritma Backtrack pada Knight s Tour

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

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Algoritma Runut-balik (Backtracking)

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

Aplikasi Algoritma Runut-balik pada Penyelesaian Teka Teki Mengisi Angka

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

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

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

PENYELESAIAN PERMAINAN SUDOKU DENGAN ALGORITMA BRUTEFORCE,BACKTRACKING,dan BACKTRACKING DENGAN OPTIMASI

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENYELESAIAN PERMAINAN SUDOKU

UNTUK PEMECAHAN MASALAH PADA PERMAINAN HASHIWOKAKERO

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Penerapan Algoritma Backtracking pada Knight s Tour Problem

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Oleh Lukman Hariadi

Penerapan Algoritma Brute Force di Permainan Nonogram

Implementasi Algoritma DFS pada permainan Monument Valley

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

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

PENERAPAN ALGORITMA BFS PADA CHINESE SLIDE BLOCK PUZZLE (KLOTSKI)

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

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

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

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

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

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

Implementasi Intuitif Penyelesaian Labirin dengan Algoritma Depth-First Search

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Penerapan Algoritma DFS dalam Menyelesaikan Permainan Buttons & Scissors

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

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

Strategi Algoritma Penyelesaian Puzzle Hanjie

PENYELESAIAN TEKA-TEKI PENYUSUNAN ANGKA MENGGUNAKAN ALGORITMA RUNUT BALIK

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

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

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

Pendeteksian Deadlock dengan Algoritma Runut-balik

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

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

Penyelesaian Permasalahan Nonogram dengan Algoritma Runut Balik

Penyusunan Jarkom HMIF ITB dengan Menggunakan Algoritma Branch and Bound

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Perbandingan Algoritma Greedy & Bactracking Dalam Penyelesaian Permainan 2048

Penerapan Pohon Untuk Menyelesaikan Masalah Labirin

Penerapan Greedy dan DFS dalam Pemecahan Solusi K- Map

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

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Pembangkit Teka-Teki Silang dengan Algoritma Backtracking serta Aplikasi Permainannya yang Berbasis Web

Algoritma Branch and Bound dalam Kegunaannya Memecahkan Assignment Problem

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

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

Transkripsi:

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU Aditia Dwiperdana 13505014 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung deepest_peak@yahoo.com ABSTRAK Makalah ini membahas tentang algoritma backtrack dan penggunaannya dalam mencari solusi permainan sudoku. Algoritma backtrack adalah algoritma pencari solusi yang berdasarkan kepada algoritma DFS atau Depth First Search. Namun pada algoritma backtrack ini terdapat suatu nilai batas yang dapat menentukan apakah suatu simpul mengarah menuju solusi atau tidak. Sudoku adalah permainan yang memiliki ruang solusi yang sangat banyak, yaitu sebanyak (n n*n -1) / (n-1). Jumlah ruang solusi tersebut didapat dari rumus deret geometrik. Dengan ruang solusi sebanyak itu, maka mencari solusi dengan algoritma brute force akan sangat tidak mangkus. Begitu pula dengan metode exhaustive search. Dalam makalah ini akan digunakan dua versi algoritma backtrack, dimana keduanya berbeda pada fungsi pembatasnya, fungsi maju ke elemen berikutnya, dan fungsi mundur(backtrack). Algoritma backtrack versi pertama menggunakan pendekatan pengisian berurutan dalam mencari solusi, yaitu dimulai dari kotak kiri atas sampai ke kotak kanan bawah. Sedangkan versi kedua menggunakan pendekatan kepastian, yaitu mengisi mulai dari kotak yang memiliki kemungkinan jawaban paling sedikit. Kata Kunci : Sudoku, DFS, Backtrack 1. PENDAHULUAN Banyak sekali jenis permainan yang membutuhkan pemainnya untuk berpikir keras dalam menemukan jawaban. Umumnya permainan-permainan tersebut memiliki aturan yang jelas, sehingga dapat dipecahkan dengan logika. Sudoku adalah salah satu permainan yang membutuhkan pemainnya memeriksa aturan setiap melakukan pengisian jawaban. Permainan sudoku dan aturan-aturannya akan dijelaskan di bagian selanjutnya. Untuk mencari solusi permainan sudoku dengan komputasi, dapat digunakan berbagai algoritma pencarian solusi. Diantaranya adalah algoritma backtrack. Dengan menggunakan algoritma ini, pencarian solusi dapat dilakukan dengan mangkus. Algoritma backtrack adalah algoritma DFS atau Depth First search yang memiliki fungsi pembatas. Algoritma DFS dan algoritma backtrack akan dijelaskan pada bagian lain. 2. DASAR TEORI 2.1 Sudoku Sudoku adalah suatu permainan teka-teki yang berasal dari Jepang. Permainan ini mengharuskan pemain mengisi sejumlah kotak-kotak kecil sebanyak n 2 x n 2 dengan angka dari 1 sampai n 2 dengan memenuhi syarat permainan. Syarat pengisian kotak-kotak tersebut adalah : 1. Tidak boleh ada angka yang berulang dalam suatu baris, dan dalam satu baris harus ada angka 1 sampai n 2. 2. Tidak boleh ada angka yang berulang dalam suatu kolom, dan dalam satu kolom harus ada angka 1 sampai n 2. 3. Tidak boleh ada angka yang berulang dalam kotak besar, dan dalam satu kotak besar harus ada angka dari 1 sampai n 2. 4. Sebuah kotak besar adalah kumpulan n 2 kotak kecil yang membentuk kotak yang lebih besar. Dalam permainan terdapat n 2 kotak besar. 2 1 2 Gambar 1. Contoh papan Sudoku 2 1 2 3 Gambar 2. Contoh masukan jawaban yang salah 4 1 2 3 2 3 4 1 3 4 1 2 1 2 3 4 Gambar 3. Contoh papan sudoku yang sudah dipecahkan 3 3 Makalah IF2251 Strategi Algoritmik 2007 Halaman 1 dari 4

Permainan sudoku ini memiliki ruang solusi yang sangat banyak, yaitu (n n*n -1) / (n-1). Jadi untuk papan sudoku dengan sisi 4 akan memiliki 1.431.655.765 simpul dalam ruang solusi. Sedangkan untuk papan sudoku dengan sisi 9 memiliki lebih dari 10 77 simpul dalam ruang solusi. 2.2 Depth First Search DFS adalah algoritma yang digunakan dalam melakukan traversal dalam sebuah graf, yang dalam masalah kita adalah graf ruang solusi. Misalkan penelusuran dimulai dari simpul A. Simpul berikutya yang dikunjungi adalah simpul B yang bertetangga dengan A. Lalu penelusuran dimulai lagi secara rekursif dari simpul B. Ketika mencapai simpul X sedemikian sehingga semua simpul yang bertetangga dengannya telah dikunjungi, pencarian dirunut-balik ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul Y yang belum dikunjungi. Pencarian mendalam dimulai lagi dari simpul Y. Pencarian berakhir bila tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi. Algoritma DFS procedure DFS(input v:integer) Deklarasi: w:integer Algoritma: Write(v) dikunjungi[v]<-true for tiap simpul w yang bertetangga dengan simpul v do if not dikunjungi then DFS(w) endif endfor 2.3 Backtrack Backtrack adalah algoritma yang berbasis pada DFS untuk mencari solusi persoalan secara lebih mangkus. Selain itu, backtrack merupakan perbaikan dari algoritma brute force, secara sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada. Dalam metode ini, kita tidak perlu memeriksa semua kemungkinan solusi yang ada, namun hanya yang mengarah pada solusi saja yang dipertimbangkan. Dengan begitu, waktu pencarian dapat dihemat. Properti metode runut-balik: a. Solusi persoalan Solusi dinyatakan sebagai vektor dengan n-tuple : X={x1,x2,,xn x adalah elemen berhingga dari S b. Fungsi Pembangkit nilai xk Dinyatakan sebagai : T(k) T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor solusi c. Fungsi Pembatas Dinyatakan sebagai : B(x1,x2,,xk) Fungsi pembatas menentukan apakah (x1,x2,,xk) mengarah ke solusi. Jika ya, maka pembangkitan nilai untik xk-1 dilanjutkan, tapi jika tidak, maka (x1,x2,,xk) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi. Fungsi pembatas tidak selalu dinyatakan sebagai fungsi matematis, dapat juga dinyatakan sebagai fungsi sebagai predikat true atau false, atau dalam bentuk lain yang ekivalen. Langkah-langkah pencarian solusi : a. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah metode pencarian mendalam atau DFS. Simpul-simpul yang sudah dibangkitkan disebut simpul hidup, Simpul hidup yang sedang diperluas disebut simpul-e. Simpul dinomori dari atas ke bawah sesuai urutan kelahirannya. b. Tiap kali simpul-e diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpu-e tersebut dibunuh sehingga menjadi simpul mati. Fungsi yang digunakan untuk membunuh simpul-e adalah dengan menerapkan fungsi pembatas. Simpul yang sudah mati tidak akan pernah diperluas lagi. c. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada lagi simpul anak ayng dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan runutbalik ke simpul hidup terdekat (simpul orangtua). Selanjutnya simpul ini menjadi simpul-e yang baru. Lintasan baru dibangun kenmbali sampai lintasan tersebut membentuk solusi. d. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul hidup untuk runut-balik. 3. ALGORITMA VERSI 1 Dalam algoritma versi 1 ini, ada beberapa hal penting yang akan dijelaskan, yaitu : a. Pengisian jawaban dilakukan secara berurutan dari kotak kiri atas sampai kotak kanan bawah. Dalam aplikasinya, digunakan metode iterasi yang lebih mudah digunakan. b. Jawaban yang dimasukkan selalu merupakan jawaban yang valid, yaitu valid terhadap baris, kolom, dan kotak besar dari kotak yang bersangkutan. Jawaban yang dimasukkan mulai dari jawaban valid yang paling kecil. c. Jika pengisian jawaban gagal dilakukan dan harus terjadi runut-balik, maka mundur sampai kotak sebelumnya yang memiliki nilai valid untuk dimasukkan. d. Pencarian solusi dinyatakan berhasil jika mencapai kotak kanan bawah. Makalah IF2251 Strategi Algoritmik 2007 Halaman 2 dari 4

e. Pencarian solusi dinyatakan gagal jika terjadi runut balik sampai melewati kotak kiri atas. Algoritma versi 1 dalam bahasa Java public static void backtrack(point p){ int brs=p.x; int klm=p.y; int val; boolean ansfound,nextfound; counter=0; while(!stop){ counter++; val=matrix.getgridvalue(brs,klm); if(val==0){ matrix.generatevalid(brs,klm); if(!matrix.isemptyvalidgrid(brs,klm)){ matrix.setgridvalue(matrix. getgridvalid (brs, klm), brs, klm); else{ else{ if(!matrix.isemptyvalidgrid(brs,klm)){ matrix.setgridvalue(matrix. getgridvalid(brs, klm), brs, klm); else{ nextfound=false; if(ansfound){while(brs<matrix.getsize() *matrix.getsize()&&!nextfound){ klm++; if(klm==matrix.getsize() *matrix.getsize()){ klm=0; brs++; if(brs==matrix.getsize() *matrix.getsize()){ solusi=true; if(!nextfound&&matrix. getgridlock(brs, klm)==0){ else{ matrix.setgridvalue(0, brs, klm); while(brs>=0&&!nextfound){ klm--; if(klm<0){ klm=matrix.getsize() *matrix.getsize()-1; brs--; if(brs<0){ solusi=false; if(!nextfound&&matrix. getgridlock(brs, klm)==0){ Pohon solusi yang dihasilkan dengan alrogitma versi 1 ini untuk contoh papan sudoku pada Gambar 1 adalah sebagai berikut (0.0)<-4 (0.1)<-1 (0.3)<-2 / (1.1)<-3 (1.2)<-4 (1.2)<-1 (1.3)<-1 (2.0)<-3 (2.0)<-3 (2.1)<-4 (2.1)<-4 backtrack (2.2)<-1 (2.3)<-2 (3.2)<-3 (3.3)<-4 Gambar 4. Pohon solusi untuk algoritma versi 1 Dari berbagai percobaan dengan berbagai ukuran matriks dan berbagai kerumitan soal, algoritma ini mampu menyelesaikan semua persoalan. Namun waktu yang diperlukan untuk memecahkan masalah masih cukup lama. Sehingga perlu dilakukan optimasi pada algoritmanya. Optimasi tersebut direalisasikan pada algoritma versi 2. 4. ALGORITMA VERSI 2 Algoritma ini merupakan optimasi dari algoritma versi 1, yaitu dengan mengubah beberapa pendekatan dalam mencari solusi. Hal yang perlu diperhatikan dari algoritma versi 2 ini adalah : a. Pengisian jawaban dilakukan untuk kotak dengan kemungkinan nilai valid terkecil. Kemungkinan nilai valid ini dibangkitkan setiap iterasi backtrack. b. Jawaban yang dimasukkan selalu merupakan jawaban yang valid, yaitu valid terhadap baris, kolom, dan kotak besar dari kotak yang bersangkutan. Jawaban yang dimasukkan mulai dari jawaban valid yang paling kecil. c. Setiap pengisian kotak, kotak yang bersangkutan dimasukkan ke dalam stack simpulhidup. Makalah IF2251 Strategi Algoritmik 2007 Halaman 3 dari 4

d. Jika pengisian berhasil dilakukan, pengisian selanjutnya dilakukan untuk kotak dengan kemungkinan nilai valid terkecil. e. Jika pengisian jawaban menyebabkan ada kotak kosong yang memiliki kemungkinan nilai validnya nol, maka harus dilakukan backtrack. f. Pencarian dihentikan jika tidak ada lagi kotak kosong yang tersisa atau stack simpul hidup menjadi kosong. Algoritma Versi 2 dalam bahasa Java public int backtrack(point p){ int brs=p.x; int klm=p.y; int val; int counter=0; Point temp; boolean ansfound; boolean stop=false; Stack<Point> simpulhidup=new Stack <Point>(); while(!stop){ counter++; val=getvaluegrid(brs,klm); if(val==0){ generatevalid(brs,klm); setvaluegrid(brs, klm, getgrid(brs, klm).getnextval()); if(getminnum()==0){ else{ simpulhidup.push(new Point(brs,klm)); else{ if(!isemptyvalidgrid(brs, klm)){ setvaluegrid(brs, klm, getgrid(brs, klm).getnextval()); if(getminnum()==0){ else{ simpulhidup.push(new Point(brs, klm)); else{ if(ansfound){ if(!isfull()){ brs=getminpoint().x; klm=getminpoint().y; else{ else{ setvaluegrid(brs,klm,0); if(simpulhidup.empty()){ else{ temp=simpulhidup.pop(); brs=temp.x; klm=temp.y; return counter; Pohon solusi yang dihasilkan dengan alrogitma versi 2 ini untuk contoh papan sudoku pada Gambar 1 adalah sebagai berikut (0.0)<-4 (0.1)<-1 (0.2)<-2 (1.1)<-3 (2.0)<-3 (2.1)<-4 (2.2)<-1 (1.2)<-4 (1.3)<-1 (2.3)<-2 (3.2)<-3 (3.3)<-4 Gambar 5. Pohon solusi untuk algoritma versi 2 Terlihat dari pohon solusi yang dihasilkan, algoritma ini lebih mangkus ketimbang algoritma sebelumnya. Perlu diperhatikan bahwa tidak terjadi runut-balik pada pohon solusi diatas, karena algoritma versi 2 ini sudah memperkecil kemungkinan terjadi runut-balik. 5. KESIMPULAN Dari hasil percobaan dapat disimpulkan bahwa oprtimasi yang dilakukan terhadap algoritma versi 1 yang diterapkan pada algoritma versi 2 berhasil dan dapat memecahkan persoalan sudoku dengan lebih mengkus. REFERENSI [1] Munir,Rinaldi. Strategi Algoritmik. 2007. Makalah IF2251 Strategi Algoritmik 2007 Halaman 4 dari 4

This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.