• Tidak ada hasil yang ditemukan

IMPLEMENTASI ALGORITMA BACKTRACKING PADA PERMAINAN SUDOKU TIGA DIMENSI TIPE TIGA WAJAH SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "IMPLEMENTASI ALGORITMA BACKTRACKING PADA PERMAINAN SUDOKU TIGA DIMENSI TIPE TIGA WAJAH SKRIPSI"

Copied!
12
0
0

Teks penuh

(1)

IMPLEMENTASI ALGORITMA BACKTRACKING PADA PERMAINAN SUDOKU TIGA DIMENSI TIPE TIGA WAJAH

SKRIPSI

Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer (S.Kom.)

Joshua Axel Wijaya 00000013351

PROGRAM STUDI INFORMATIKA FAKULTAS TEKNIK DAN INFORMATIKA UNIVERSITAS MULTIMEDIA NUSANTARA

TANGERANG 2020

(2)

ii

LEMBAR PENGESAHAN

IMPLEMENTASI ALGORITMA BACKTRACKING PADA PERMAINAN SUDOKU TIGA DIMENSI TIPE TIGA WAJAH

Oleh

Nama : Joshua Axel Wijaya

NIM : 00000013351

Program Studi : Informatika

Fakultas : Teknik dan Informatika

Tangerang, 18 Mei 2020 Ketua Sidang

(Ito Wasito, M.Sc., Ph.D.)

Dosen Penguji

(Adhi Kusnadi, S.T, MSi.) Dosen Pembimbing I

(Julio Christian Young, M. Kom.)

Dosen Pembimbing II

(Alethea Suryadibrata, S.Kom., M.Eng.) Mengetahui,

Ketua Program Studi Informatika

(Nunik Afriliana, S.Kom., MMSI)

(3)

iii

PERNYATAAN TIDAK MELAKUKAN PLAGIAT

Dengan ini saya:

Nama : Joshua Axel Wijaya

NIM : 00000013351

Program Studi : Informatika

Fakultas : Teknik dan Informatika

menyatakan bahwa Skripsi yang berjudul “Implementasi Algoritma Backtracking Pada Permainan Sudoku Tiga Dimensi Tipe Tiga Wajah” ini adalah karya ilmiah saya sendiri, bukan plagiat dari karya ilmiah yang ditulis oleh orang lain atau lembaga lain, dan semua karya ilmiah orang lain atau lembaga lain yang dirujuk dalam Skripsi ini telah disebutkan sumber kutipannya serta dicantumkan di Daftar Pustaka.

Jika di kemudian hari terbukti ditemukan kecurangan/ penyimpangan, baik dalam pelaksanaan Skripsi maupun dalam penulisan laporan Skripsi, saya bersedia menerima konsekuensi dinyatakan TIDAK LULUS untuk mata kuliah Skripsi yang telah saya tempuh.

Tangerang, 18 Mei 2020

(Joshua Axel Wijaya)

(4)

iv

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Sebagai sivitas akademik Universitas Multimedia Nusantara, saya ya ng bertanda tangan di bawah ini:

Nama : Joshua Axel Wijaya

NIM : 00000013351

Program Studi : Informatika

Fakultas : Teknik dan Informatika

Demi pengembangan ilmu pengetahuan, menyetujui dan memberikan izin kepada Universitas Multimedia Nusantara hak Bebas Royalti Non-eksklusif (Non- exclusive Royalty-Free Right) atas karya ilmiah saya yang berjudul:

Implementasi Algoritma Backtracking Pada Permainan Sudoku Tiga Dimensi Tipe Tiga Wajah

beserta perangkat yang diperlukan.

Dengan Hak Bebas Royalti Non-eksklusif ini, pihak Universitas Multimedia Nusantara berhak menyimpan, mengalihmedia atau format-kan, mengelola dalam bentuk pangkalan data (database), merawat, dan mendistribusi dan menampilkan atau mempublikasikan karya ilmiah saya di internet atau media lain untuk kepentingan akademis, tanpa perlu meminta izin dari saya maupun memberikan royalti kepada saya, selama tetap mencantumkan nama saya sebagai penulis karya ilmiah tersebut.

Demikian pernyataan ini saya buat dengan sebenarnya untuk dipergunakan sebagaimana mestinya.

Tangerang, 18 Mei 2020

(Joshua Axel Wijaya)

(5)

v

KATA PENGANTAR

Puji syukur kepada Tuhan Yang Maha Esa karena atas berkat dan rahmatnya skripsi yang berjudul “Implementasi Algoritma Backtracking Pada Permainan Sudoku Tiga Dimensi Tipe Tiga Wajah” dapat diselesaikan dengan tepat waktu.

Penulis juga mengucapkan terima kasih kepada:

1. Dr. Ninok Leksono, Rektor Universitas Multimedia Nusantara, yang memberi inspirasi bagi penulis untuk berprestasi,

2. Dr. Eng. Niki Prastomo, S.T., M.Sc., Dekan Fakultas Teknik dan Informatika Universitas Multimedia Nusantara,

3. Nunik Afriliana, S.Kom., MMSI, Ketua Program Studi Informatika Universitas Multimedia Nusantara, yang menerima penulis dengan baik untuk berkonsultasi,

4. Julio Christian Young, M. Kom., selaku dosen pembimbing I yang telah memberikan saran dan membimbing dalam penelitian,

5. Alethea Suryadibrata, S.Kom., M.Eng., selaku dosen pembimbing II yang telah membimbing dalam pembuatan skripsi.

Semoga laporan Kerja Magang ini dapat bermanfaat, baik sebagai sumber informasi maupun sumber inspirasi, bagi para pembaca.

Tangerang, 18 Mei 2020

(Joshua Axel Wijaya)

(6)

vi

IMPLEMENTASI ALGORITMA BACKTRACKING PADA PERMAINAN SUDOKU TIGA DIMENSI TIPE TIGA WAJAH

ABSTRAK

Seiring dengan meningkatnya popularitas sudoku, muncul berbagai varian dari sudoku, salah satunya adalah sudoku tiga dimeni (3D) tipe tiga wajah. Sudoku 3D itu sendiri memiliki aturan permaian yang serupa dengan sudoku konvensional, di mana tujuan permainan adalah memasukan angka ke dalam kotak sel tanpa ada yang berulang di satu baris, kolom atau region. Namun, dalam sudoku 3D tipe tiga wajah, pengisian angka pada baris dan kolom harus diperhatikan secara tiga dimensi, sehingga tentunya lebih rumit dibandingkan teka-teki sudoku konvensional. Dikarenakan tingkat kerumitan yang lebih tinggi, maka dilakukanlah penelitian dan pembangunan Solver yang mampu membantu pemain memecahkan teka-teki sudoku 3D tipe tiga wajah dengan tepat dan cepat, serta Generator untuk menghasilkan contoh soal teka-teki sudoku 3D tipe tiga wajah yang dapat dimainkan. Algoritma yang digunakan untuk menyelesaikan permasalahan tersebut adalah algoritma backtracking. Implementasi algoritma backtracking dilakukan dengan pendekatan deterministik dan non-deterministik untuk mendapatkan kecepatan pemecahan teka-teki sudoku 3D tipe tiga wajah yang lebih optimal.

Pembangunan aplikasi dilakukan menggunakan Unity dengan bahasa pemrograman c#. Berdasarkan hasil penelitian, aplikasi mampu menghasilkan dan menyelesaikan soal teka-teki sudoku tiga dimensi tipe tiga wajah menggunakan algoritma backtracking. Untuk pengembangan Solver, digunakan pendekatan deterministik karena algoritma backtracking dapat bekerja dengan cepat dan efisien. Namun pada pengembangan Generator, digunakan pendekatan non- determinisitik karena jumlah variasi solusi yang dihasilkan lebih banyak dibanding dengan pendekatan deterministik. Pada pendekatan non-determinisitik, digunakan pengaturan waktu dan pemakaian thread untuk menambah kecepatan algoritma backtracking.

Kata Kunci: Algoritma Backtracking, Generator, Solver, Sudoku 3D, Tiga Wajah

(7)

vii

IMPLEMENTATION OF BACKTRACKING ALGORITHM IN THREE FACES TYPE THREE-DIMENSIONAL SUDOKU

GAME

ABSTRACT

Along with the increasing popularity of sudoku, various variants of sudoku have emerged, one of them is the three-faces type three dimensional (3D) sudoku.

3D Sudoku itself has rules similar to conventional sudoku, where the aim of the game is to enter numbers into cell boxes without repetition in a row, column or region. However, in three-faces type 3D sudoku, inserting numbers in rows and columns must be considered in three dimensions, so it is certainly more complicated than conventional sudoku puzzles. Due to the higher complexity, research and development of the Solver is carried out to help players solve 3D sudoku type puzzles correctly and quickly, and the Generator to produce examples of 3D sudoku puzzles that can be played. The algorithm used to solve these problems is the backtracking algorithm. The backtracking algorithm is implemented using a deterministic and non-deterministic approach to get a more optimal solution for solving the three-faces type 3D sudoku puzzle. The Application is developed using Unity with the c # programming language. Based on the results of the study, the application is able to generate and solve three-faces type 3D sudoku puzzle using the backtracking algorithm. For the Solver, a deterministic approach is used because the backtracking algorithm can work quickly and efficiently. However, for the Generator, a non-deterministic approach is used because it produces a greater number of solution variations than the deterministic approach. In the non- deterministic approach, timer and thread usage is used to increase the speed of the backtracking algorithm.

Keyword: Backtracking Algorithm, Generator, Solver, Sudoku 3D, Three Faces

(8)

viii DAFTAR ISI

Halaman

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN/PENGESAHAN ... ii

HALAMAN PERNYATAAN TIDAK MELAKUKAN PLAGIAT... iii

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH ... iv

KATA PENGANTAR ... v

ABSTRAK ... vi

ABSTRACT ... vii

DAFTAR ISI ... viii

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... xi

DAFTAR LAMPIRAN ... xii

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah... 4

1.3. Batasan Masalah ... 4

1.4. Tujuan Penelitian ... 5

1.5. Manfaat Penelitian ... 5

1.6. Sistematika Penulisan ... 5

BAB II Landasan Teori ... 7

2.1. Sudoku ... 7

2.2. Sudoku Tiga Dimensi ... 9

2.3. Algoritma Backtracking ... 14

BAB III METODOLOGI PENELITIAN DAN PERANCANGAN APLIKASI ... 18

3.1. Metodologi Penelitian ... 18

3.2. Perancangan Aplikasi ... 19

3.2.1. Flowchart ... 19

3.2.2. Rancangan Antarmuka ... 30

BAB IV IMPLEMENTASI DAN ANALISIS ... 35

4.1. Spesifikasi Perangkat ... 35

4.2. Implementasi Aplikasi ... 36

4.2.1. Antarmuka Aplikasi ... 36

4.2.2. Kode Aplikasi ... 45

4.3. Uji Coba Aplikasi ... 64

4.3.1. Pendekatan Deterministik ... 66

4.3.2. Pendekatan Non-Deterministik ... 69

4.4. Analisis Hasil ... 78

BAB V SIMPULAN DAN SARAN ... 81

5.1. Simpulan ... 81

5.2. Saran ... 82

DAFTAR PUSTAKA ... 83

(9)

ix

DAFTAR GAMBAR

Halaman

Gambar 1.1 Contoh Sudoku Tiga Dimensi Tipe Tiga Wajah ... 2

Gambar 2.1 Contoh Sudoku ... 8

Gambar 2.2 Sudoku Dion Curch ... 9

Gambar 2.3 Sudoku Tiga Dimensi Model Six-Face ... 11

Gambar 2.4 Hyper Sudoku ... 12

Gambar 2.5 Snowflake Sudoku ... 12

Gambar 2.6 Sudoku Tiga dimensi raksasa ... 13

Gambar 2.7 Aturan Sudoku Tiga dimensi... 14

Gambar 2.8 DFS Tree ... 15

Gambar 3.1 Flowchart Main Utama ... 20

Gambar 3.2 Flowchart Permainan ... 21

Gambar 3.3 Flowchart Init Backtrack ... 23

Gambar 3.4 Flowchart Backtrack ... 26

Gambar 3.5 Flowchart Solver... 27

Gambar 3.6 Flowchart Generator ... 28

Gambar 3.7 Contoh Tampilan Main Menu ... 30

Gambar 3.8 Contoh Tampilan Menu Ukuran Sudoku Tiga Dimensi ... 31

Gambar 3.9 Contoh Tampilan Menu How to Play ... 31

Gambar 3.10 Contoh Tampilan Menu Credit ... 32

Gambar 3.11 Contoh Tampilan Menu Quit ... 32

Gambar 3.12 Contoh Tampilan Permainan ... 33

Gambar 3.13 Contoh Tampilan Input ... 34

Gambar 4.1 Main Menu ... 36

Gambar 4.2 Menu Mode Sudoku ... 37

Gambar 4.3 Menu Ukuran Sudoku ... 37

Gambar 4.4 How to Play ... 38

Gambar 4.5 Credit... 38

Gambar 4.6 Menu Keluar ... 39

Gambar 4.7 Mode Generator ... 40

Gambar 4.8 Mode Solver ... 40

Gambar 4.9 Papan Sudoku Tiga Dimensi yang telah diberikan Input oleh Pemain ... 41

Gambar 4.10 Permainan Loading ... 42

Gambar 4.11 Hasil Generator ... 42

Gambar 4.12 Permainan Selesai ... 43

Gambar 4.13 Notifikasi Solver Sukses ... 44

Gambar 4.14 Notifikasi Sudoku Tidak Valid ... 44

Gambar 4.15 Notifikasi Jumlah Sel Awal Cukup ... 44

Gambar 4.16 Kelas Menu... 45

Gambar 4.17 Properti dan Kode Fungsi Start dalam Kelas Board ... 46

Gambar 4.18 Kode Fungsi generateBoard dalam Kelas Board ... 47

Gambar 4.19 Kode Fungsi clear, scanBoard, dan printBoard dalam Kelas Board 48 Gambar 4.20 Kode Fungsi generateInput dalam Kelas Board ... 49

Gambar 4.21 Kode Fungsi Update, slotClick, inputClick, dan undo dalam Kelas Board ... 50

(10)

x

Gambar 4.22 Kode Fungsi runSolver dalam Kelas Board ... 51

Gambar 4.23 Kode Fungsi runGenerator dalam Kelas Board... 52

Gambar 4.24 Kode Fungsi getRomeState dan getShuffleState dalam Kelas Board ... 53

Gambar 4.25 Kode Fungsi waitSecond dan disposeTask dalam Kelas Board ... 54

Gambar 4.26 Kode Fungsi initBacktrack dalam Kelas Board ... 54

Gambar 4.27 Kode Fungsi saveState dalam Kelas Board... 54

Gambar 4.28 Kode Fungsi checkState dan isSafe dalam Kelas Board... 55

Gambar 4.29 Properti dan Konstruktor dalam Kelas Backtrack ... 56

Gambar 4.30 Kode Fungsi setState dan getState dalam Kelas Backtrack ... 57

Gambar 4.31 Properti dan Konstruktor Kelas Cell ... 57

Gambar 4.32 Kode Fungsi run dan backtrack dalam Kelas Backtrack ... 58

Gambar 4.33 Kode Fungsi isSafe dalam Kelas Backtrack ... 59

Gambar 4.34 Kode Fungsi generateStack dalam Kelas Backtrack ... 60

Gambar 4.35 Kelas CellSlot ... 61

Gambar 4.36 Kelas Inputx ... 62

Gambar 4.37 Kelas CubeTexture ... 63

Gambar 4.38 Kelas Timer ... 64

(11)

xi

DAFTAR TABEL

Halaman

Tabel 4.1 Waktu Backtrack Deterministik Ukuran 4x4x4 ... 67

Tabel 4.2 Waktu Backtrack Deterministik Ukuran 6x6x6 ... 67

Tabel 4. 3 Waktu Backtrack Deterministik Ukuran 8x8x8 ... 67

Tabel 4.4 Node Backtrack Deterministik ... 68

Tabel 4.5 Waktu Backtrack Non-Deterministik Ukuran 4x4x4 ... 69

Tabel 4.6 Waktu Backtrack Non-Deterministik Ukuran 6x6x6 ... 70

Tabel 4.7 Waktu Backtrack Non-Deterministik Ukuran 8x8x8 ... 70

Tabel 4. 8 Node Backtrack Non-Deterministik ... 70

Tabel 4. 9 Node Backtrack Non-Deterministik (Lanjutan) ... 71

Tabel 4.10 Waktu Backtrack Non-Deterministik ukuran 4x4x4 dengan Timer ... 72

Tabel 4.11 Waktu Backtrack Non-Deterministik ukuran 6x6x6 dengan Timer ... 72

Tabel 4.12 Waktu Backtrack Non-Deterministik ukuran 8x8x8 dengan Timer ... 73

Tabel 4.13 Node Backtrack Non-Deterministik dengan Timer ... 73

Tabel 4.14 Waktu Backtrack Non-Deterministik ukuran 4x4x4 dengan 2 Thread dan Timer ... 75

Tabel 4.15 Waktu Backtrack Non-Deterministik ukuran 6x6x6 dengan 2 Thread dan Timer ... 75

Tabel 4.16 Waktu Backtrack Non-Deterministik ukuran 8x8x8 dengan 2 Thread dan Timer ... 75

Tabel 4.17 Node Backtrack Non-Deterministik dengan 2 Thread dan Timer ... 76

Tabel 4.18 Waktu Backtrack Non-Deterministik ukuran 4x4x4 dengan 3 Thread dan Timer ... 77

Tabel 4.19 Waktu Backtrack Non-Deterministik ukuran 6x6x6 dengan 3 Thread dan Timer ... 77

Tabel 4.20 Waktu Backtrack Non-Deterministik ukuran 8x8x8 dengan 3 Thread dan Timer ... 77

Tabel 4.21 Node Backtrack Non-Deterministik dengan 3 Thread dan Timer ... 78

(12)

xii

DAFTAR LAMPIRAN

Halaman Riwayat Hidup ... 85 Formulir Konsultasi Skripsi Dosen Pembimbing I ... 86 Formulir Konsultasi Skripsi Dosen Pembimbing II ... 87

Referensi

Dokumen terkait

Dalam skripsi ini, data yang akan di kumpulkan adalah mengenai peran masing-masing pemerintah dalam mengelola budaya pop yang mereka punya, serta dampak dari fenomena

Peraturan menteri ini mewajibkan setiap kapal penangkap ikan berbendera Indonesia yang berukuran di atas 5 gross tonnage (GT) dan beroperasi di Wilayah

menyatakan bahwa skripsi yang berjudul “Rancang Bangun Permainan Endless Running Berbasis Android Menggunakan Algoritma Pembangkit Diagram Voronoi” ini adalah karya ilmiah

a) Klien mengikuti TAK dari awal sampai akhir. b) Jika akan keluar kelompok, klien harus meminta izin terapis. Terapis menjelaskan kegiatan yang akan dilaksanakan yaitu menggambar

penyediaan stock ikan bagi pemenuhan kebutuhan bahan pangan serta kesejahteraan bagi masyarakat. Diharapkan kondisi ini menjadi suatu dorongan agar masyarakat

23 Bahwa kegiatan pembelajaran terhadap suatu mata pelajaran (mata kuliah) terkait sekali dengan masalah-masalah minat, motivasi dan tingkat kecemasan, agar dapat

Instrumen yang digunakan dalam penelitian ini adalah Pittsburgh Sleep Quality Index (PSQI) dengan nilai cronbach’s alpha 0,707, yang dikembangkan oleh Buysse,

Penyelesaian Sistem Persamaan Linear Tiga Variabel dengan menggunakan metode subsitusi dilakukan dengan cara menggantikan salah satu variabel dari dua persamaan lain