BAB I PENDAHULUAN
1.1
Latar Belakang Perkembangan teknologi informasi terjadi dalam berbagai bidang[8]. Pada
awalnya perkembangan teknologi digunakan untuk membantu mempermudah pekerjaan manusia. Namun, seiring dengan bertambahnya kebutuhan manusia maka teknologi juga berkembang untuk tujuan hiburan. Salah satu bentuknya adalah perkembangan dalam bidang permainan. Permainan adalah salah satu jenis hiburan[12]. Selain itu, permainan juga dapat menjadi suatu hal yang menantang maupun untuk mengasah kemampuan otak pemain. Ada berbagai jenis permainan seperti permainan konsol, permainan papan, permainan ketrampilan, permainan teka-teki, dan lainnya. Akhir-akhir ini, banyak permainan teka-teki yang menjadi populer di kalangan masyarakat. Sudoku adalah sebuah permainan teka-teki angka yang berbasis logika[13]. Pada tahun 1979, Howard Garns, seorang arsitek berkebangsaan Amerika Serikat, mendesain sebuah puzzle modern yang diterbitkan pada majalah Dell dengan sebutan “Number Place”. Permainan ini berkembang menjadi permainan populer di Jepang dengan nama Sudoku. Kata “Sudoku” sendiri merupakan singkatan dari frasa kalimat dalam bahasa Jepang, “suji wa dokushin ni kagiru”, yang berarti “setiap digit harus tetap satu jumlahnya”. Permainan Sudoku mengharuskan pemainnya untuk berpikir secara logis sesuai dengan aturan-aturan permainan yang ada[6]. Namun demikian, para
1
2
matematikawan dan ilmuwan komputer berusaha untuk meneliti permainan ini karena tingkat kerumitan dan banyaknya variasi permainan Sudoku yang masingmasing memiliki suatu solusi unik[6]. Sampai saat ini, ada banyak buku, surat kabar, dan majalah yang berisi permainan Sudoku di dalamnya, bahkan membahas strategi dan logika dalam bermain Sudoku. Pada umumnya, sebuah permainan Sudoku terdiri dari 81 kotak yang disusun menjadi 9 baris dan 9 kolom[2]. Selain itu, 81 kotak tersebut juga dibagi menjadi 9 subbagian berukuran 3x3 kotak. Masing-masing kotak tersebut akan diisi oleh angka antara 1 sampai 9. Aturan utama dalam menyelesaikan permainan Sudoku adalah masing-masing baris, kolom, dan subbagian hanya boleh memunculkan angka 1 sampai 9 sebanyak satu kali. Pada awal permainan, terdapat beberapa kotak yang telah terisi oleh angka-angka sebagai soal. Tugas pemain adalah untuk mengisi kotak-kotak yang masih kosong dengan angkaangka yang memungkinkan. Salah satu teknik sederhana yang sering digunakan untuk menyelesaikan permainan Sudoku adalah teknik hidden single[2]. Teknik ini digunakan saat sebuah kotak dalam sebuah baris, kolom, atau subbagian memiliki beberapa kemungkinan angka. Dari beberapa kemungkinan angka tersebut, dilihat bahwa hanya sebuah angka yang tidak dapat diletakkan pada kotak lain dalam baris, kolom, atau subbagian yang sama karena tidak memenuhi aturan permainan Sudoku. Teknik hidden single merupakan teknik yang paling umum digunakan untuk menyelesaikan permainan Sudoku[16]. Meskipun begitu, pada beberapa
3
variasi permainan Sudoku tertentu tidak dapat diselesaikan hanya dengan menggunakan teknik hidden single saja. Algoritma backtracking merupakan perbaikan dari algoritma brute-force dan algoritma exhaustive-search, di mana algoritma ini membangun pohon ruang status (state-space tree) untuk menemukan sebuah solusi[5]. Pembentukan pohon ruang status pada algoritma backtracking berprinsip pada depth-first search (DFS). Prinsip dari algoritma backtracking adalah jika terjadi kesalahan dalam pencarian solusi pada sebuah node, maka akan dilakukan backtrack ke node sebelumnya. Terdapat banyak jenis permainan teka-teki yang dapat diselesaikan dengan menggunakan algoritma backtracking. Meski begitu, algoritma ini menjadi tidak efisien jika kandidat solusi yang ditemukan sama dengan kandidat solusi yang ditemukan pada algoritma exhaustive-search[5]. Berdasarkan pemaparan tersebut di atas, maka akan dilakukan penelitian untuk melakukan optimasi pada algoritma backtracking dengan menggunakan teknik hidden single dalam menyelesaikan permainan Sudoku sehingga algoritma backtracking dapat bekerja lebih optimal.
1.2
Perumusan Masalah Masalah yang diperoleh dalam penelitian ini adalah “Bagaimana melakukan
implementasi algoritma backtracking dengan optimasi menggunakan teknik hidden single pada penyelesaian permainan Sudoku?”
4
1.3
Batasan Masalah Batasan masalah dari penelitian ini antara lain sebagai berikut.
1.
Permainan Sudoku yang digunakan berukuran 9x9 kotak, dengan 9 buah subbagian di dalamnya yang masing-masing berukuran 3x3 kotak.
2.
Variasi soal dalam permainan Sudoku yang digunakan berasal dari proses generate soal secara acak.
1.4
Tujuan Penelitian Tujuan dari penelitian ini adalah untuk melakukan optimasi algoritma
backtracking dengan menggunakan teknik hidden single pada penyelesaian permainan Sudoku.
1.5
Manfaat Penelitian Manfaat penelitian ini adalah menjadi referensi dalam pengembangan
algoritma backtracking. Diharapkan dengan optimasi pada algoritma backtracking ini dapat membantu dalam menemukan solusi Sudoku dengan lebih mudah.
1.6
Sistematika Penulisan Secara umum, skripsi ini disusun dan dibagi atas 5 (lima) bab dengan
sistematika penulisan sebagai berikut. Bab I: Pendahuluan Pada bab ini berisi latar belakang yang menjelaskan alasan mengapa permainan teka-teki seperti Sudoku sangat menarik, algoritma backtracking
5
yang sering digunakan untuk menyelesaikan teka-teki, dan teknik hidden single yang digunakan untuk menyelesaikan permainan Sudoku. Selain itu, bab ini juga membahas batasan masalah, rumusan masalah, tujuan penelitian, dan manfaat penelitian. Bab II: Landasan Teori Bab ini menjelaskan teori-teori yang berkaitan dengan penelitian yang dilakukan, yaitu pengertian algoritma, pengertian algoritma depth-first search (DFS), pengertian algoritma backtracking, pengertian permainan Sudoku, dan pengertian teknik hidden single yang digunakan untuk menyelesaikan permainan Sudoku. Bab III: Metodologi Penelitian Pada bab ini berisi tentang langkah-langkah penelitian yang dilakukan, metode penelitian yang digunakan, alat dan bahan yang digunakan, flowchart, beserta rancangan layout user interface aplikasi. Bab IV: Analisis dan Pembahasan Pada bab ini berisi data-data dari hasil uji coba yang telah dilakukan. Kemudian dilakukan analisis terhadap data-data hasil uji coba yang telah berhasil dikumpulkan beserta pembahasannya. Bab V: Kesimpulan dan Saran Bab ini berisi kesimpulan dari hasil analisis data yang telah didapat beserta pembuktian dari penelitian yang telah dilakukan. Selain itu, bab ini juga berisi tentang saran yang dibutuhkan sehubungan dengan penelitian yang dilakukan dan pengembangan aplikasi di masa yang akan datang.