Anda di halaman 1dari 4

Analisis Algoritma Backtracking Untuk Pencarian Solusi Puzzle Su Doku

Edwi Wahid Sutama<113020168>1, Rendy Adrian <113020224>2

Jurusan Teknik Informatika, Sekolah Tinggi Teknologi Telkom


Jl. Telekomunikasi, Bandung
1
coffee_header@yahoo.com, 2 piscesmail@yahoo.com

Abstrak

Su Doku adalah puzzle menempatkan angka yang berasal dari Jepang. Saat ini, kepopuleran Su Doku
telah merambah hingga ke Amerika dan Eropa. Para pecinta Su Doku juga telah menciptakan beberapa
algoritma yang dapat membantu pencarian solusi dari puzzle ini, salah satunya dengan menggunakan
algoritma tanpa nama yang akan dibahas berikut. Algoritma ini bisa dikategorikan sebagai kelompok
dari algoritma runut-balik (backtracking).

Kata kunci: Su Doku, puzzle, algoritma runut-balik


Abstract

Su Doku is a number-placing puzzle invented by Japan. Today, the Su Doku’s popularity has reached the
continent of America and Europe. Those who love Su Doku also have created some algorithms to help
finding the solution of this puzzle, one of those is this no-name algorithm which will be reported next. This
so-called algorithm can be categorized into the family of backtracking algorithm.

Keywords: Su Doku, puzzle, backtracking algorithm

1. Pendahuluan ambil dari situs www.eddaardvark.co.uk.


Seluruh isi pembahasan telah kami parafrasekan
Su Doku adalah suatu jenis permainan untuk kemudahan dalam memahami algoritma
menempatkan angka yang diyakini pertama kali tersebut. Dalam tulisan berikut, seluruh tulisan
ditemukan oleh bangsa Jepang yang notabene gemar mengenai pembahasan algoritma yang kami sadur
olahraga olah otak. telah turut kami gabungkan dengan kata dan
Nama Su Doku sendiri berasal dari bahasa pemikiran kami sendiri. Gambar – gambar yang
Jepang. Su artinya angka dan Doku berarti jomblo terdapat pada tulisan ini berasal dari situs tersebut.
alias sendiri. Maksudnya, hanya boleh ada satu Kini kita akan membahas langkah – langkah
angka dalam satu baris, satu kolom dan kotak yang perlu dilakukan untuk menyelesaikan suatu
parsial. soal Su Doku
Aturan permainannya pun tak sulit. Suatu soal Kita akan mulai dengan sebuah soal.
Su Doku adalah satu kotak bujursangkar yang terdiri
dari 9 kolom dan 9 baris. Kotak besar itu dibagi lagi
menjadi 9 kotak parsial dengan ukuran 3x3. Dari 81
kotak yang tersedia, telah diberikan beberapa angka
sebagai bantuan. Selanjutnya, kita dipersilakan
untuk memasukkan angka dari 1-9, tetapi tetap
merunut dari definisi nama Su Doku di atas, setiap
angka tidak boleh berulang, baik dalam satu baris,
satu kolom, maupun satu kotak parsial. Oleh karena
itu, jawaban yang dihasilkan hampir selalu satu
buah, walau dalam beberapa kasus bisa lebih. Algoritma ini bekerja dengan menuliskan
seluruh kemungkinan jawaban dan kemudian
2. Pembahasan Masalah mengeliminasi jawaban yang tidak mungkin,
berdasarkan angka yang telah tertulis di dalam
Algoritma ini adalah salah satu dari sekian kotak.
banyak algoritma yang ditawarkan untuk
menyelesaikan permasalahan Su Doku. Algoritma
ini sendiri ditulis dalam script Python.
Berikut adalah pembahasan mengenai
algoritma pemecahan masalah Su Doku yang kami

1
Kondisi awal adalah setiap kotak dapat berisi kita akan memperoleh kotak dengan isi sebagai
angka 1-9. berikut.

Masukkan Angka Masih terlihat, solusi belum tercapai. Tapi,


Langkah pertama yang harus kita lakukan langkah pertama kita telah selesai sampai di sini.
adalah memasukkan angka yang telah diberikan Maka kita masuk ke langkah berikutnya.
sebelumnya ke dalam kotak kondisi awal dan
mengeliminasi semua angka yang tidak mungkin. Mencari “singleton”
Atau mencari angka yang frekuensi
kemunculannya hanya sekali dari sejumlah angka
yang belum jomblo.
Jika kita mulai dari kolom 1, angka – angka
yang belum pasti adalah ‘236’, ’1239’, ’36’, ’1246’,
’239’ dan ‘34’. Jika kita menghitung jumlah
kemunculan dari angka – angka yang belum pasti
ini, kita memperoleh hasil sebagai berikut

Selanjutnya, setelah memasukkan angka –


angka pada 3 kotak parsial teratas, kita akan
memperoleh keadaan berikut
Karena setiap angka muncul lebih dari sekali,
maka hal ini tidak akan membantu. Melihat ke
kolom 2 dan 3, hasilnya pun nihil. Tapi ketika
memeriksa kolom 4, kita memperoleh

Karena ‘9’ hanya muncul sekali, maka kita


Hal tersebut tidak berpengaruh pada 6 kotak di dapat menyimpulkan bahwa inilah penghuni asli dari
bawahnya, karena sampai sejauh ini, kita hanya sel (5,4).
memasukkan satu angka pada tiap kolom yang ada.
Tapi setelah kita memasukkan 18 angka sisanya,
akan ditemukan hal berbeda. Seperti ketika
memasukkan angka ‘6’ pada kolom 6 dan baris 6,
kita akan menemukan bahwa angka – angka
masukan akan saling bersilangan, sehingga pada
kolom 6 baris 3 angka yang cocok hanyalah ‘4’
(warna hijau)

Dengan bekal ini, kita dapat kembali


melakukan langkah pertama.
Setelah mengulang proses langkah 1 dan 2
untuk setiap kolom, maka diperoleh solusi sebagai
berikut.

Setelah kita memasukkan seluruh angka dan


mengeliminasi semua angka yang tidak mungkin,

2
Karena 3 sekarang sudah menjadi penghuni
satu sel, maka kita dapat mengeliminasi
kemungkinan 3 yang lain berdasarkannya.

Persoalan yang dibahas di atas adalah salah


satu contoh mudah. Berikut adalah contoh soal yang
tidak dapat diselesaikan hanya dengan dua langkah
di atas Cari kembali seluruh pasangan seperti pada
contoh di atas. Lakukan kembali langkah 1 dan 2
jika diperlukan. Tapi pada kasus ini, kebetulan tidak
ada lagi pasangan yang bisa dijadikan acuan untuk
mengeliminasi. Maka kita dapat maju ke langkah
berikutnya.

Eliminasi “Bad Guesses”


Pada tahap ini, diperlukan tebakan – tebakan
Setelah melakukan langkah 1 dan 2, kita masih
terhadap angka – angka yang belum pasti. Dipilih
memperoleh hasil yang jauh dari solusi
salah satu angka, kemudian kita lihat bagaimana
akhirnya.
Secara garis besar, ada 3 kemungkinan yang
dapat muncul setelah kita melakukan tebakan :
• Searching berakhir pada solusi
• Searching berakhir dengan kontradiksi
• Searching tidak / belum memberikan solusi
Karena kemungkinan pertama sulit untuk
diprediksikan, maka kita hanya akan melihat
Oleh karena itu, kita maju ke langkah kemungkinan 2 dan 3 saja.
berikutnya Kita ambil contoh sel (1,1). Di sana masih ada
angka 1, 3 dan 4. Jika kita ambil angka 1 sebagai
Pasangan Angka tebakan calon penghuni, kita mendapati searching
Jika kita mengambil contoh kolom 2, kita berakhir dengan kontradiksi. Begitu pula dengan 4.
menemukan beberapa fakta menarik : Maka, kita berkesimpulan bahwa penghuni sel (1,1)
• Angka 7 dan 9 muncul masing – masing 2 adalah angka 3.
kali, dan ketika muncul, mereka muncul Setelah itu, kita dapat kembali mengulang
bersama. langkah – langkah sebelumnya untuk memperoleh
• Ada dua sel yang hanya bisa berisi 2 dan 8. solusi dari puzzle kita.
Dari fakta pertama, kita dapat melihat bahwa Hasil akhir yang dapat kita peroleh setelah
pada kolom 2, angka 7 dan 9 hanya bisa muncul melakukan keempat langkah di atas adalah sebagai
pada sel (1,2) dan (3,2). Maka kita dapat menghapus berikut
kemungkinan kemunculan angka 2 dan 3 pada sel
tersebut.
Pada fakta kedua dinyatakan bahwa sel (6,2)
dan (9,2) hanya dapat berisi angka 2 atau 8. Maka
aman jika kita menghapus kemungkinan
kemunculan angka 2 selain dari sel tersebut.
Sekarang tabel kita akan berisi seperti ini

Jika ternyata setelah melakukan keempat


langkah di atas, solusi akhir belum juga dapat
ditemukan, kemungkinan besar solusi yang
ditawarkan bisa lebih dari satu. Contoh soal :

3
Langkah penyelesaian akhir yang dapat
ditawarkan adalah pencarian hasil secara rekursif
pada sel yang belum memiliki angka pasti. Angka
yang ditebak akan terus ditelusuri hingga mencapai
solusi atau kontradiksi. Pada contoh soal tersebut,
akan diperoleh 32 buah jawaban yang mungkin.
Demikian hasil pembahasan dari algoritma
untuk penyelesaian permasalahan puzzle Su Doku.

3. Kesimpulan dan Saran

Kesimpulan yang dapat kami tarik berdasarkan


makalah yang telah kami tulis, kami berpendapat
bahwa algoritma ini telah dapat menyelesaikan
tugasnya dengan baik untuk memberikan solusi atas
permasalahan dari puzzle Su Doku.
Tapi untuk menyelesaikan puzzle dengan
format awal kurang dari 25 angka, algoritma akan
cukup sering berakhir dengan pencarian solusi
secara rekursif (tahap 5) sehingga membutuhkan
cukup banyak waktu. Tapi algoritma akan
memberikan seluruh kemungkinan jawaban dari
puzzle.
Sebagai saran, mungkin akan lebih baik jika
algoritma ditulis dalam script yang penggunaannya
lebih luas, seperti Java.

4. Daftar Pustaka

[1] en.wikipedia.org
eddaardvark.co.uk/python_patterns/code/SuSolver

Anda mungkin juga menyukai