Anda di halaman 1dari 11

MAKALAH

SUDOKU DAN M. COLORING PROBLEM

Ditujukan Untuk Memenuhi Tugas Salah Satu Mata Kuliah Algoritma dan
Struktur Data

Dosen Pengampu: Mezan El–Khaeri Kesuma, M.T.I

Kelompok 6

Luk Luk Ulfaturohmah : 2371020013


Putri Suciyanti : 2371020099
Rifan Nizar : 2371020108

PROGRAM STUDI SISTEM INFORMASI

UNIVERSITAS ISLAM NEGERI RADEN INTAN LAMPUNG

TAHUN AJARARAN 2023/2024


KATA PENGANTAR

Puji serta syukur kami ke hadirat Allah SWT atas rahmat dan izin-nya sehingga kami
dapat menyelesaikan tugas makalah ini dengan mudah guna memenuhi tugas kelompok untuk
mata kuliah Algoritma dan Struktur Data yang berjudul “Sudoku dan M. Coloring Problem”
dari Dosen Pengampu Bapak Mezan El-Khaeri Kesuma.

Sholawat serta salam kami tetap tercurahkan kepada nabi kita Muhammad SAW.
Terimakasih kepada anggota kelompok kami yang telah berkontribusi dalam bentuk pikiran
atau materi dalam menyelesaikan makalah ini. Kami sanggat berharap semoga makalah ini
dapat memberikan manfaat serta menambah pengetahuan bagi pembaca.

Kami menyadari bahwa masih banyak kekurangan dalam penyusunan makalah ini
karena keterbatasan pengetahuan dan pengalaman kami, maka dari itu kami sangat
mengharapkan kritik dan saran yang membangun dari pembaca demi kesempurnaan makalah
ini.

Bandar Lampung, 21 September 2023

Penyusun
Kelompok 6
DAFTAR ISI
BAB I

PENDAHULUAN

A. Latar Belakang

Sudoku merupakan sebuah permainan teka-teki yang terdiri dari sebuah kotak yang
berukuran 9×9 yang dibagi menjadi 9 sub-kotak berukuran 3×3. Permainan Sudoku
pertamakali muncul di Prancis pada abad ke-19 dengan nama “Number Place”. Namun,
popularitasnya baru meroket di Jepang pada tahun 1986 setelah diperkenalkan oleh penerbit
puzzle Jepang, Nikoli. Sudoku kemudian menyebar ke seluruh dunia dan menjadi salah satu
permaninan teka-teki yang paling populer.

Salah satu aspek yang menarik dalam permainan Sudoku adalah kemampuan untuk
memodelkan nya sebagai masalah pemetaan warna atau yang di sebut dengan M Coloring
Problem pada teori grafik. Dalam konteks ini, setiap kotak dalam permainan Sudoku dapat
dianggap sebagai simpul dalam graf, dan aturan Sudoku yang harus di penuhi dapat di
anggap sebagai aturan pemetaan warna pada graf tersebut. Tujuan dari M Coloring Problem
yaitu untuk menentukan peta warna yang memenuhi aturan-aturan tersebut.

Membahas tentang Sudoku dan M coloring Problem umumnya mencoba untuk


memahami sifat-sifat matematis dari permainan Sudoku, mengembangkan algoritma-
algoritma untuk memecahkan permainan Sudoku, atau menganalisis kompleksitas M
Coloring Problem dan juga membahas tentang teknik-teknik untuk membangkitkan papan
Sudoku dengan tingkat kesulitan tertentu.

B. Rumusan Masalah

1. Apa Pengertian dari Sudoku dan M Coloring Problem?


2. Bagaimana algoritma pencarian solusi yang efektif dapat diterapkan dalam permainan
Sudoku untuk menyelesaikan teka-teki dengan cepat dan efisien?
3. Bagaimana kemungkinan solusi yang berbeda pada Sudoku?
4. Bagaimana penggunaan algoritma graf dalam M Coloring Problem dapat digunakan
secara efisien menentukan jumlah minimum warna yang diperlukan untuk mewarnai
setiap simpul dalam sebuah graf, tanpa ada dua simpul yang berwarna sama jika
mereka terhubung?
5. Apa saja penerapan M Coloring Problem?
C. Tujuan Penulisan
1. Untuk mengetahui Apa Pengertian Dari Sudoku dan M Coloring Problem.
2. Untuk mengetahui Bagaimana Algoritma Pencarian Solusi yang Efektif Dapat
Diterapkan Dalam Permainan Sudoku Untuk Menyelesaikan Teka-Teki Dengan Cepat
dan Efisien.
3. Untuk mengetahui Bagaimana Kemungkinan Solusi Yang Berbeda Pada Sudoku.
4. Untuk mengetahui Bagaimana penggunaan algoritma graf dalam M Coloring Problem
dapat digunakan untuk secara efisien menentukan jumlah minimum warna yang
diperlukan untuk mewarnai setiap simpul dalam sebuah graf, tanpa ada dua simpul
yang berwarna sama jika mereka terhubung
5. Untuk mengetahui Apa saja Penerapan M Coloring Problem.
BAB II
PEMBAHASAN

A. Pengertian Sudoku dan M Coloring Problem


Sudoku adalah sebuah permainan teka teki yang terdiri dari sebuah kotak berukuran
9×9 yang dibagi menjadi 9 sub-kotak berukuran 3×3. Tujuan dari permainan ini adalah untuk
mengisi setiap kotak dengan angka dari 1 hingga 9 sedemikian rupa sehingga setiap baris,
setiap kolom, dan setiap sub-kotak 3×3 hanya berisi angka yang berbeda.

Sudoku tidak memerlukan pengetahuan matematika yang khusus, tetapi melibatkan


pemikiran yang logis dan pemecahan masalah. Permainan ini menarik karena setiap teka-teki
memiliki solusi yang unik dan dapat diselesaikan hanya dengan menggunakan logika.

M Coloring Problem adalah masalah dalam teori graf yang melibatkan pewarnaan
simpul-simpul graf dengan m warna sedemikian rupa sehingga tidak ada kedua simpul yang
bersebelahan memiliki warna yang sama. Tujuan dari masalah ini yaitu untuk menentukan
apakah graf tertentu dapat diwarnai dengan m warna atau tidak dan menentukan jumlah
minimum warna yang diperlukan untuk mewarnai setiap simpul dalam graf.

B. Algoritma yang Digunakan Dalam Pemecahan Sudoku

Teka-teki Sudoku termasuk ke dalam permasalahan kombinatorial (Np complate).


Solusi untuk teka-teki ini dapat dicari dengan bermacam-macam cara dan pendekatan, ada
beberapa pendekatan yang umum digunakan untuk pencarian solusi yang efektif untuk
menyelesaikan permainan sudoku. Beberapa algoritma beserta teknik yang dapat digunakan
bermacam-macam seperti algoritma genetik, heuristik, simulated annealing, dan lain
sebagainya.
Secara umum permainan Sudoku dapat diselesaikan dengan kombinasi teknik
pemindaian, penandaan, dan analisa. Beberapa teka-teki Sudoku yang tergolong mudah dapat
diselesaikan hanya dengan salah satu proses, namun kita harus mengkombinasikan ketiga
teknik tersebut.

1. Pemindaian
Berupa proses memindai baris atau kolom untuk mengidentifikasi baris mana dalam
satu blok yang terdapat angka-angka tertentu. Proses ini kemudian diulang pada setiap
kolom secara sistematis. Kemudian menentukan nilai dari satu sel dengan membuang
nilai yang tidak mungkin.
2. Penandaan
Berupa analisa logika, dengan menandai kandidat angka yang dapat di masukan
kedalam sebuah sel.
3. Analisa
Beberapa eliminasi kandidat, dimana kemajuan dicapai dengan mengeliminasi
kandidat angka secara berturut-turut hingga sebuah sel hanya punya 1 kandidat.

Penyelesaian teka-teki Sudoku n2×n2 pada dasar nya, penyelesaian permainan Sudoku
juga dapat dipandang sebagai masalah pewarnaan graf yaitu mewarnai graf dengan simpul n2
×n2 dimana warna yang digunakan dipresentasikan dalam angka 1-9, yang seluruhnya harus
digunakan.

Pada pembahasan ini akan dilakukan suatu pendekatan yang berbeda untuk pencarian
solusi dari permainan Sudoku, yaitu dengan menggunakan pendekatan Implementasi
Algoritma Backtracking untuk Menyelesaikan Teka-teki Sudoku.

1. Implementasi Algoritma Backtracking untuk Menyelesaikan Teka-teki Sudoku

Backtracking Algorithm merupakan teknik yang digunaka untuk memecahkan


masalah dengan membangun solusi secara bertahap dan menghilangkan solusi yang gagal.
Algoritma ini adalah pendekatan rekursif dimana algoritma mencoba menemukan solusi
dengan mengeksplorasi semua kemungkinan jalur dan kemunduran ketika mencapai jalan
buntu atau solusi yang tidak valid.

D.H. Lehmer adalah orang pertama yang memperkenalkan algoritma Backtracking


pada tahun 1950. Algoritma Backtracking adalah salah satu metode pemecahan masalah yang
termasuk dalam strategi yang didasarkan pada pencarian ruang solusi, tetapi tidak harus
memeriksa semua kemungkinan, hanya yang mengarah pada solusi saja yang akan diproses.
Algoritma Backtracking juga merupakan algoritma yang bekerja secara rekursif, dimana
proses pencarian nya berdasarkan algoritma Depth-Frist Search (DFS), yaitu mencari solusi
secara sistematis terhadap semua solusi yang mungkin dan pencarian jawaban dilakukan
dengan cara menelusuri struktur bentuk pohon yang berakar.

Oleh karena itu algoritma ini cukup kuat dan sangat baik untuk diterapkan dalam
penyelesaian masalah dan untuk memberikan kecerdasan buatan dalam game, hingga sudoku
dapat dicarikan solusinya dengan mengimplementasikan algoritma Backtracking. Disini
hanya akan meninjau pencarian solusi pada pohon ruang status yang di bangun secara
dinamis. Langkah-langkah pencarian solusi adalah sebagai berikut:

1. Solusi dicari dengan membentuk lintasan dari akan ke daun. Aturan


pembentukan yang dipakai adalah mengikuti metode pencarian mendalam
(DFS). Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup (Live
Node). Simpul hidup yang sedang diperluas dinamakan simpul-E (Expand
Node). Simpul diberi nomer sesuai dengan urutan kelahiran nya.
2. Tiap kali simpul-E diperluas, lintasan yang dibangun olehnya bertambah
panjang. Jika lintasan yang sedang di bentuk tidak mengarah kesolusi, maka
simpul-E tersebut dibunuh hingga menjadi simpul mati (Dead Node). Fungsi
yang digunakan untuk membunuh simpul-E adalah dengan menerapkan fungsi
pembatas (Bounding Function). Simpul yang sudah mati tidak akan diperluas
lagi.

3. Jika pembentukan lintasan berakhir dengan simpul mati, maka


prosespencarian diteruskan dengan membangkitkan simpul anak yang lainnya.
Bila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian
solusi dilanjutkan dengan melakukan runtut balik ke simpul hidup terdekat
(simpul orangtua). Selanjutnya, simpul ini menjadi simpul-E yang baru.
Lintasan baru dibangun kembali sampai lintasan tersebut membentuk solusi.
4. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi
simpul hidup untuk runtut balik.
C. Kemungkinan Solusi Yang Berbeda Pada Sudoku

Jumlah kemungkinan solusi yang berbeda pada Sudoku bisa sangat besar. Menurut
perhitungan, ada sebanyak 6,670,903,752,021,072,936,960 jumlah kemungkinan status untuk
teka-teki Sudoku berukuran 9×9. Artinya terdapat banyak cara yang berbeda untuk mengisi
kotak-kotak pada teka-teki sudoku.

Namun, penting untuk dicatat bahwa tidak semua status yang mungkin akan
menghasilkan solusi yang valid. Solusi yang valid harus memenuhi aturan bahwa setiap baris,
kolom, dan sub-kotak 3×3 hanya berisi satu angka dari 1-9. Meskipun ada banyak
kemungkinan solusi yang berbeda pada Sudoku, pemain biasanya tidak perlu
mempertimbangkan semua kemungkinan tersebut. Mereka dapat menggunakan strategi dan
teknik yang dapat untuk mencapai solusi yang valid.

Deklarasi Global
D. Algoritma yang Digunakan Dalam M Coloring Problem

Penggunaan algoritma graf dalam menyelesaikan M Coloring Problem terdapat


beberapa algoritma yang dapat digunakan, seperti algoritma Greedy, algoritma Backtracking,
algoritma pemroggraman linier, dan algoritma Genetika Hybrid. Setiap algoritma memiliki
kelebihan dan kekurangan masing-masing dalam menyelesaikan masalah ini.
Algoritma graf dapat digunakan untuk penyelesaian pewarnaan graf, dimana tujuan
utamanya adalah untuk mewarnai setiap simpul dalam sebuah graf sedemikian rupa sehingga
tidak ada dua simpul yang terhubung dengan warna yang sama. Dalam konteks ini
menentukan jumlah warna minimum yang diperlukan untuk mewarnai setiap simpul dalam
sebuah graf.
Salah satu algoritma yang dapat digunakan untuk menyelesaikan masalah ini adalah
algoritma pewarnaan graf dengan pendekatan Genetika Hybrid yang di dasarkan pada
heuristik pencarian lokal yang di sebut DBG untuk memberikan nilai perkiraan v(G) untuk
GPC. Algoritma ini dievaluasi pada tolak ukur DIMACS dan hasil numerik menunjukan
bahwa pendekatan yang dievaluasi mencapai hasil yang sangat kompetitif, dibandingkan
algoritma terbaik yang sudah ada.

1. Memecahkan Masalah Pewarnaan Graf Melalui Algoritma Genetika Hybrid


Algoritma Genetika Hybrid merupakan pendekatan yang menghubungkan dua atau
lebih metode algoritma Genetika dengan tujuan untuk meningkatkan kinerja dan efisiensi
dalam menyelesaikan masalah optimasi. Pendekatan ini mengambil pendekatan dari
kelebihan masing-masing metode yang digabungkan, sehingga dapat menghasilkan solusi
yang lebih baik.
Masalah pewarnaan graf adalah memberikan warna pada setiap sisi sehingga kedua
simpul yang berdekatan tidak memiliki warna yang sama. Jika graf berisi sisi ( x , y ¿, maka x
dan y akan memiliki warna yang berbeda. Jika ( x , y ) ∈ E dan c ( x )=c ( y ) kita mengatakan
bahwa x dan y berkonflik. Simpul-simpul dengan warna yang sama mendefinisikan sebuah
kelas warna, sehingga tidak ada sisi di antara dua simpul dengan kelas yang sama. Karena
setiap kelas menginduksi sebuah himpunan independen dari G , sebuah pewarnaan juga dapat
dilihat sebagai sebuah partisi dari V yang independen. Bilangan Kromatik dari sebuah graf G
yang dilambangkan dengan v(G) adalah jumlah warna terkecil yang digunakan untuk
mewarnai semua simpul G dengan pewarnaan yang valid.
2. Memecahkan Masalah Pewarnaan Graf Melalui Algoritma Backtracking
Tetapkan warna satu persatu pada simpul yang berbeda, dimulai dari simpul 0.
Sebelum memberi warna, periksa keamanan nya dengan mempertimbangkan warna yang
sudah ditetapkan pada simpul yang berdekatan yaitu periksa apakah simpul yang berdekatan
memiliki warna yang sama atau tidak. Jika ada penempatan warna yang tidak sesuai
ketentuan, tandai penetapan warna tersebut sebagai bagian dari solusi jika ada penempatan
warna yang memungkinkan, mundur dan kembalikan false.
Langkah-langkah yang diberikan untuk menyelesaikan masalah:
1. Buat fungsi rekursif yang mengambil grafik, indeks saat ini sama dengan jumlah
simpul. Cetak konfigurasi warna dalam susunan warna.
2. Tetapkan warna pada satu titik dari rentan 1 sampai m.
3. Untuk warna yang ditetapkan priksa apakah konfigurasinya aman, yaitu priksa apakah
simpul yang berdekatan tidak memiliki warna yang sama dan panggil fungsi secara
rekursif dengan indeks berikutnya dan jumlah simpul jika tidak, kembalikan false.
4. Jika ada fungsi rekursif yang mengembalikan nilai true, maka kembalikan nilai true.
5. Jika tidak ada fungsi rekursif yang mengembalikan nilai benar, maka kembalikan
false.

E. Penerapan M Coloring Problem

Anda mungkin juga menyukai