• Tidak ada hasil yang ditemukan

PENERAPAN ALGORITMA BACKTRACK DALAM MEMBANGKITKAN ELEMEN AWAL PERMAINAN SUDOKU.

N/A
N/A
Protected

Academic year: 2017

Membagikan "PENERAPAN ALGORITMA BACKTRACK DALAM MEMBANGKITKAN ELEMEN AWAL PERMAINAN SUDOKU."

Copied!
38
0
0

Teks penuh

(1)

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

PENERAPAN ALGORITMA BACKTRACK DALAM

MEMBANGKITKAN ELEMEN AWAL PERMAINAN SUDOKU

SKRIPSI

Diajukan sebagai Syarat untuk Memperoleh Gelar Sarjana Sains pada Program Studi Matematika

Oleh :

NOVITA NURALITA S.

0607176

JURUSAN PENDIDIKAN MATEMATIKA

FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS PENDIDIKAN INDONESIA

(2)

PENERAPAN ALGORITMA BACKTRACK DALAM

MEMBANGKITKAN ELEMEN AWAL PERMAINAN SUDOKU

Oleh Novita Nuralita S.

Sebuah skripsi yang diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana pada Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam

© Novita Nuralita 2013 Universitas Pendidikan Indonesia

Agustus 2013

Hak Cipta dilindungi undang-undang.

(3)

LEMBAR PENGESAHAN

PENERAPAN ALGORITMA BACKTRACK DALAM

MEMBANGKITKAN ELEMEN AWAL PERMAINAN SUDOKU

Oleh :

Novita Nuralita S.

0607176

DISETUJUI DAN DISAHKAN OLEH

Pembimbing I

Dra. Hj. Rini Marwati, M.Si NIP 196606251990012001

Pembimbing II

Khusnul Novianingsih, S.Si., M.Si.

NIP 197711282008122001

Mengetahui

Ketua Jurusan Pendidikan Matematika

Drs. Turmudi, M.Ed., M.Sc., Ph.D.

(4)

ABSTRAK

Sudoku adalah permainan teka-teki angka berbasis logika. Pada umumnya, permainan ini terdiri dari grid berukuran 9x9 yang terbagi menjadi grid berukuran 3x3 yang disebut dengan minigrid. Tujuan dari permainan ini adalah mengisikan sel-sel kotak yang kosong dengan angka dari 1 sampai dengan 9, dengan aturan dalam satu baris, satu kolom dan satu minigrid tidak ada angka yang berulang. Algoritma Backtrack merupakan algoritma perbaikan dari algoritma brute-force yang tidak menelusuri seluruh kemungkinan solusi tetapi hanya pencarian yang mengarah kepada solusi saja yang dipertimbangkan. Melalui pembahasan pada tulisan ini, algoritma Backtrack digunakan untuk membangkitkan solusi permainan Sudoku. Elemen-elemen dari solusi yang dihasilkan dieliminasi hingga hanya tersisa beberapa elemen dengan posisi yang acak, sehingga diperoleh elemen-elemen awal yang digunakan sebagai petunjuk awal bagi pemain untuk menyelesaikan permainan Sudoku. Banyaknya elemen awal yang ditampilkan tergantung dari level yang dipilih pemain pada awal permainan. Aplikasi permainan ini akan dikembangkan dengan menggunakan Adobe Flash CS5 dan actionscript 3.0 sebagai bahasa pemrograman.

(5)

ii

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

ABSTRACT

Sudoku is a number puzzle game based on logic. Generally, the game consists of a 9x9 sized grid divided into 3x3 sized called minigrid. The goal of this game is filling the empty cell boxes with a number between 1 to 9, with rules that there must be no repeated number on one row, column and minigrid. Backtrack algorithm is an improved algorithm from the brute-force algorithm that does not explore all possible solutions but only the one that leads to the solution are considered. Through the discussion on this paper, backtrack algorithm is used to generate solutions for Sudoku game. The generated solution elements eliminated so that there is only few elements left with random position, thus initial elements used for initial clue for player to finish the game acquired. The amount of initial element displayed depend on the level that is selected by player in the beginning of the game. This application will be developed using Adobe Flash CS5 and actionscript 3.0 as a programming language.

(6)

vi DAFTAR ISI

(7)

vii

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

2.1.4 Manfaat Sudoku ... Error! Bookmark not defined. 2.2 Algoritma ... Error! Bookmark not defined. 2.2.1 Sejarah Algoritma ... Error! Bookmark not defined. 2.2.2 Ciri Algoritma ... Error! Bookmark not defined. 2.3 Algoritma Backtrack ... Error! Bookmark not defined. 2.3.1 Pengertian ... Error! Bookmark not defined. 2.3.2 Teori Pendukung ... Error! Bookmark not defined. 2.3.3 Properti Umum Metode Backtrack ... Error! Bookmark not defined. 2.3.4 Cara Kerja ... Error! Bookmark not defined. 2.4 Adobe Flash dan Actionscript 3 ... Error! Bookmark not defined. 2.4.1 Sejarah dan Perkembangan ... Error! Bookmark not defined. 2.4.2 Struktur Dasar Algoritma pada Actionscript 3.0 .. Error! Bookmark not defined.

(8)

viii

(9)

ix

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

DAFTAR GAMBAR

Halaman Gambar 2.1 Contoh soal Sudoku ukuran 9x9. ... Error! Bookmark not defined. Gambar 2.2 Contoh Latin Square. ... Error! Bookmark not defined. Gambar 2.3 Carre Magique de a Compartiments Egaux. ... Error! Bookmark not defined.

Gambar 2.4 Carre Magique Diabolique pada Surat Kabar La France, 6 Juli 1895. ... Error! Bookmark not defined. Gambar 2.5 Sudoku pada surat kabar Pikiran Rakyat, 24 Februari 2013. ... Error! Bookmark not defined.

Gambar 2.6 Representasi Graf Algoritma Depth First Search (DFS) ... Error! Bookmark not defined.

(10)

x

(11)

x

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

DAFTAR TABEL

Halaman Tabel 3.1 Tabel banyaknya elemen awal yang ditampilkan pada setiap Level ... Error! Bookmark not defined.

Tabel 4.1 Hasil Pengujian Proses pada Tampilan Menu Utama Error! Bookmark not defined.

Tabel 4.2 Hasil Pengujian Proses pada Tampilan Menu Level . Error! Bookmark not defined.

Tabel 4.3 Hasil Pengujian Proses pada Tampilan Menu Permainan Error! Bookmark not defined.

Tabel 4.4 Hasil Pengujian Proses pada Tampilan Menu Help ... Error! Bookmark not defined.

Tabel 4.5 Hasil Pengujian Proses pada Tampilan Menu About Error! Bookmark not defined.

(12)

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Puzzle game merupakan permainan yang tidak hanya berfungsi sebagai hiburan, tetapi juga dapat melatih kemampuan otak. Salah satu puzzle game yang populer adalah Sudoku. Berdasarkan penelitian seorang ahli saraf bernama Ian Robertson, Sudoku dapat meningkatkan kemampuan mental. Selain itu, permainan ini juga dapat mencegah penyakit Alzheimer dan hilang ingatan (Baras, 2010).

Sudoku merupakan permainan teka-teki angka berbasis logika. Aturan permainannya cukup sederhana, akan tetapi untuk menyelesaikannya cukup rumit. Pada umumnya, permainan ini terdiri dari grid berukuran 9x9 yang terbagi menjadi grid berukuran 3x3 yang disebut dengan minigrid. Tujuan dari permainan ini adalah mengisikan sel-sel kotak yang kosong dengan angka dari 1 sampai dengan 9, dengan aturan dalam satu baris, satu kolom dan satu minigrid tidak ada angka yang berulang.

Permainan Sudoku diciptakan oleh seorang arsitek, Howard Garns. Pada tahun 1979, Sudoku pertama kali diterbitkan oleh majalah Dell, dengan nama Number Place. Pada tahun 1984, permainan ini diterbitkan oleh Nikoli, sebuah perusahaan penerbitan di Jepang. Masyarakat Jepang menamakannya dengan "Suuji wa dokushin ni kagiru" ( 数字は独身に限る), yang kemudian disingkat menjadi

(13)

2

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

lain di Inggris juga ikut mempublikasikan permainan Sudoku ini. Sejak saat itulah, Sudoku mulai populer di berbagai belahan dunia (Jussien, 2007).

Pada awal permainan Sudoku, pemain akan diberikan grid Sudoku berukuran 9x9, yang beberapa elemennya diketahui pada beberapa sel, dinamakan elemen awal. Elemen awal tersebut merupakan bilangan bantuan yang bernilai 1 sampai dengan 9. Pemain diharuskan mengisi sel-sel yang kosong dengan angka dari 1 sampai dengan 9 sedemikian sehingga setiap baris, kolom dan minigrid tidak terdapat angka yang berulang atau tepat satu kali. Pemain dinyatakan menang jika seluruh sel pada grid Sudoku terisi penuh dan memenuhi aturan Sudoku.

Untuk membangkitkan elemen awal permainan Sudoku, dibutuhkan suatu algoritma yang dapat menentukan solusi permainan Sudoku. Algoritma yang dapat digunakan dalam menentukan solusi permainan, antara lain adalah algoritma Brute Force, Branch and Bound, Backtrack, Dancing Links dan Genetika. Beberapa elemen dari solusi yang diperoleh kemudian dieliminasi sedemikian sehingga diperoleh grid Sudoku yang berisi beberapa elemen awal yang diketahui sesuai dengan level yang dipilih pemain dengan posisi yang acak. Pada Skripsi ini, hanya akan dibahas bagaimana membangkitkan elemen-elemen awal pada permainan sudoku dengan menggunakan algoritma Backtrack.

Algoritma Backtrack (Munir, 2004) adalah algoritma yang berbasis pada Depth First Search (DFS) untuk mencari solusi persoalan yang lebih efektif. Selain itu, algoritma ini merupakan perbaikan dari algoritma Brute Force, secara sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada, namun hanya yang mengarah pada solusi saja yang dipertimbangkan. Dengan begitu, waktu pencarian dapat dihemat.

(14)

3

Backtrack. Aplikasi ini akan dikembangkan dengan menggunakan bahasa pemrograman Actionscript 3.0. pada framework Adobe Flash CS5 Professional.

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah yang telah diuraikan sebelumnya, permasalahan yang akan dibahas dalam Skripsi ini adalah sebagai berikut:

1. Bagaimana penerapan algoritma Backtrack dalam menentukan elemen-elemen awal permainan Sudoku?

2. Bagaimana penerapan algoritma Backtrack dalam menentukan elemen-elemen awal permainan ke dalam bahasa pemrograman actionscript 3.0 pada Flash?

1.3 Tujuan

Adapun tujuan dari Skripsi ini antara lain adalah

1. Mengetahui penerapan algoritma Backtrack dalam menentukan elemen-elemen awal permainan Sudoku.

2. Mengetahui penerapan algoritma Backtrack dalam menentukan elemen-elemen awal permainan ke dalam bahasa pemrograman actionscript 3.0 pada Flash.

1.4 Manfaat Penelitian

(15)

4

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu 1.5 Batasan Masalah

Ruang lingkup permasalahan dalam merancang aplikasi permainan Sudoku ini dibatasi sebagai berikut :

a. Grid Sudoku yang dibahas berukuran 9 x 9 dengan minigrid berukuran 3x3. b. Aplikasi ini akan dibangun dengan menggunakan bahasa pemrograman

Actionscript 3.0 pada framework Adobe Flash CS5 Professional.

c. Teknik yang digunakan dalam membangkitkan elemen awal pada permainan Sudoku adalah dengan membangkitkan solusi permainan Sudoku, kemudian satu persatu dieliminasi hingga pada grid Sudoku hanya ditampilkan beberapa elemen awal sesuai dengan level yang dipilih pemain dengan posisi yang acak.

d. Maksimal banyaknya elemen yang dibacktrack ketika nilai pada sel tidak mengarah pada solusi adalah lima elemen.

1.6 Sistematika Penulisan

Sistematika penulisan yang akan diuraikan dalam Skripsi ini terbagi menjadi 5 bab, yaitu:

BAB I PENDAHULUAN

Pada bab ini akan dibahas latar belakang, rumusan masalah, tujuan penelitian, manfaat penelitian, batasan masalah serta sistematika penulisan.

BAB II LANDASAN TEORI

(16)

5

BAB III ANALISIS DAN PERANCANGAN

Pada bab ini menguraikan cara pemecahan masalah dengan menggunakan algoritma Backtrack serta menganalisis algoritma tersebut dalam menyelesaikan masalah. Selain itu akan diuraikan bagaimana merancang prosedur yang digunakan algoritma Backtrack dalam memecahkan masalah.

BAB IV HASIL DAN PENGUJIAN

Pada bab ini berisi tentang implementasi setiap prosedur yang telah dirancang ke dalam bentuk aplikasi, kemudian akan dibahas mengenai hasil dan pengujian dari aplikasi yang dirancang.

BAB V KESIMPULAN DAN SARAN

(17)

29

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

BAB III

ANALISIS DAN PERANCANGAN

Pada bab ini akan dibahas mengenai analisis dan perancangan pada sistem yang dibangun, yaitu penerapan algoritma Backtrack dalam membangkitkan elemen awal permainan Sudoku.

3.1 Analisis

3.1.1 Analisis Arena Permainan

Pada sistem yang diberi nama Sudoku Break ini, diharapkan pemain dapat menyelesaikan permainan Sudoku yang beberapa elemen awalnya diketahui. Permainan sudoku ini hanya dapat dimainkan oleh satu pemain (single player). Papan permainan ini berupa grid berukuran 9x9 yang terdiri dari 81 sel, sembilan baris, sembilan kolom dan sembilan minigrid berukuran 3x3.

Gambar 3.1 Ilustrasi papan permainan Sudoku

minigrid baris ke-x sel(x,y)

kolom ke-y

(18)

30

3.1.2 Analisis Algoritma

Seperti yang sudah dipaparkan dalam bab-bab sebelumnya, algoritma yang akan digunakan dalam membangun aplikasi ini adalah algoritma Backtrack. Penerapan algoritma Backtrack dalam menentukan elemen awal permainan Sudoku adalah sebagai berikut:

1. Algoritma dimulai dari sel kosong di baris pertama (x=0) dan kolom pertama (y=0) pada matriks Sudoku berukuran 9x9.

2. Pilih nilai num secara acak, dengan num {1, 2, 3, 4, 5, 6, 7, 8, 9}.

3. Jika nilai num yang dipilih memenuhi aturan sudoku (valid), maka isilah sel kosong tersebut dengan nilai num, dan lanjutkan pemeriksaan ke sel kosong berikutnya.

4. Jika nilai num yang dipilih tidak memenuhi aturan sudoku, uji kembali dengan nilai num acak lainnya yang belum terpilih.

5. Jika seluruh nilai num telah teruji, dan tidak ada nilai num yang memenuhi aturan sudoku, maka lakukan backtrack ke sel sebelumnya.

6. Sel ini akan diuji kembali dengan nilai num baru berdasarkan aturan sudoku. 7. Lakukan cara yang sama dengan poin nomor 3.

8. Proses di atas akan dilakukan terus menerus secara rekursif hingga seluruh sel kosong pada matriks berisi nilai-nilai num yang valid.

9. Pilih posisi sel secara acak, kemudian hapus nilai num pada sel tersebut. 10.Lakukan poin nomor 9 secara terus menerus, hingga diperoleh matriks

(19)

31

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

berfungsi sebagai petunjuk awal bagi pemain untuk dapat menyelesaikan permainan Sudoku.

Tabel 3.1 Tabel banyaknya elemen awal yang ditampilkan pada setiap Level

Berikut ini merupakan pseudocode pembangkitan elemen awal permainan Sudoku, yaitu:

1. Deklarasi konstanta umum DEKLARASI (umum)

grid : array[0..NBaris-1] of array[0..NKolom-1] of integer

selGrid : array[0..Nbaris*Nkolom-1] of integer NBaris : integer = 9

NKolom : integer = 9

Bagian ini merupakan deklarasi variabel umum yang akan digunakan, yaitu:

a. grid merupakan array dua dimensi bertipe integer berupa matriks berukuran

NBaris x NKolom = 9x9. Indeks array pada grid dimulai dari 0.

b. selGrid merupakan array berukuran NBaris*NKolom = 9*9 = 81 buah

elemen yang bertipe integer. Indeks array pada selGrid dimulai dari 0.

c. NBaris menyatakan jumlah atau ukuran baris pada matriks Sudoku.

d. NKolom menyatakan jumlah atau ukuran kolom pada matriks Sudoku.

No.

Level

Jumlah Elemen Awal

1

Easy

35-40

2

Medium

29-34

(20)

32

2. Implementasi fungsi pembatas

Fungsi SesuaiAturanSudoku merupakan fungsi untuk memeriksa apakah nilai num yang diberikan sesuai dengan fungsi pembatas atau tidak. Fungsi pembatas ini berdasarkan batasan-batasan pada aturan permainan Sudoku, yaitu:

1. Tidak boleh ada angka yang berulang pada baris. 2. Tidak boleh ada angka yang berulang pada kolom. 3. Tidak boleh ada angka yang berulang pada minigrid.

FUNCTION sesuaiAturanSudoku(input baris, kolom, num : integer) → boolean

{fungsi untuk menentukan apakah nilai num yang dimasukkan pada sel memenuhi aturan Sudoku atau tidak. bernilai false jika tidak sesuai aturan, true jika sesuai aturan}

DEKLARASI (lokal)

x, y, i, j : integer

minigrid, startBarisMini, startKolomMini : integer

Bagian ini merupakan deklarasi lokal yang akan digunakan pada fungsi sesuaiAturanSudoku, yaitu:

a. minigrid merupakan bagian dari grid Sudoku dengan ukuran yang lebih kecil yaitu 3x3.

b. startBarisMini merupakan posisi awal baris minigrid di dalam grid.

c. startKolomMini merupakan posisi awal kolom minigrid di dalam grid.

ALGORITMA

1. {memeriksa baris}

2. for y ← 0 to (Nkolom-1) do 3. if grid[baris][y] = num then 4. return false

(21)

33

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

6. endfor

Pada baris 2-6, fungsi akan memeriksa apakah terdapat nilai num yang sama pada baris yang sama atau tidak. Jika ya, maka nilai num tersebut tidak memenuhi aturan Sudoku dan fungsi akan mengembalikan nilai false. Jika tidak, maka nilai num tersebut memenuhi aturan Sudoku dan fungsi akan

Pada baris 8-12, fungsi akan memeriksa apakah terdapat nilai num yang sama pada kolom yang sama atau tidak. Jika ya, maka nilai num tersebut tidak memenuhi aturan Sudoku dan fungsi akan mengembalikan nilai false. Jika tidak, maka nilai num tersebut memenuhi aturan Sudoku dan fungsi akan mengembalikan nilai true.

13. {cek posisi angka pada minigrid} 14. if (kolom < 3) then

(22)
(23)

35

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

56. minigrid ← 7

57. startBarisMini ← 0 58. startKolomMini ← 6 59. endif

60. else

61. if (baris >= 3 & baris < 6) then 62. minigrid ← 8

63. startBarisMini ← 3 64. startKolomMini ← 6 65. endif

66. else

67. if (baris >= 6) then 68. minigrid ← 9

69. startBarisMini ← 6 70. startKolomMini ← 6 71. endif

72. endif

(24)

36

Gambar 3.2 Posisi Minigrid pada Grid Sudoku

73. {memeriksa minigrid}

74. for i ← startBarisMini to startBarisMini+2 do 75. for j ← startKolomMini to startKolomMini+2 do 76. if grid[i][j] = num then

77. return false 78. endif

79. endfor 80. endfor

(25)

37

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

Jika semua batasan telah diperiksa dan ternyata nilai num tersebut memenuhi semua aturan Sudoku, maka fungsi akan mengembalikan nilai true.

3. Implementasi fungsi generator Sudoku

Fungsi generateSudoku merupakan fungsi untuk membangkitkan elemen-elemen awal permainan Sudoku.

FUNCTION generateSudoku()

{fungsi untuk membangkitkan elemen awal yang diketahui pada permainan Sudoku dengan menggunakan algoritma Backtrack} DEKLARASI

values : array [0..8] of integer index, i : integer

num : integer

z, zindex : integer

maxbacktrack, backtrack, backtracked : integer NElemenAwal : integer

level : String

fungsi sesuaiAturanSudoku(input baris, kolom, num : integer, output boolean)

Bagian ini merupakan deklarasi lokal yang akan digunakan pada fungsi generateSudoku, yaitu:

a. values merupakan variabel penampung berupa array berukuran 9.

b. num merupakan nilai elemen yang mungkin pada sel Sudoku.

c. NElemenAwal merupakan banyaknya elemen awal yang akan ditampilkan pada soal permainan Sudoku.

d. level merupakan tingkat kerumitan soal yang dipilih oleh pemain. e. fungsi sesuaiAturanSudoku merupakan fungsi yang telah

(26)

38

ALGORITMA

1. index ← 0 2.

3. while (index < Nbaris*NKolom) do 4. num ← 0

5. for i ← 0 to 8 do 6. values[i] ← i+1 7. i++

8. endfor

Pada baris 1-8, inisialisasi index dengan nilai 0. Selama index < 81, inisialisasi num dengan nilai 0. Pada baris 5-8, dilakukan pengisian nilai pada array values, sehingga diperoleh values = [1, 2, 3, 4, 5, 6,7, 8, 9].

9. while (num = 0 & values.length > 0) do 10. zindex ← random(0, values.length) 11. z ← values[zindex]

12. values[zindex] = “ ”

Pada baris 9-12, fungsi akan memilih angka secara acak antara 0 sampai dengan banyaknya angka pada values. Angka acak yang diperoleh akan dimasukkan ke dalam variabel penampung zindex dan nilai dari elemen

ke-zindex dari values dimasukkan ke dalam variabel penampung z. Untuk

menghindari terpilihnya nilai yang sama jika ternyata nilai z tidak memenuhi aturan Sudoku, maka nilai pada elemen ke-zindex pada values harus dihapus.

13. {cek apakah z pada selGrid[index] memenuhi aturan Sudoku atau tidak}

14. if (sesuaiAturanSudoku(z, selGrid[index]) = true) then

(27)

39

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

16. else

17. num ← 0 18. endif 19. endwhile

Pada baris 14-19, fungsi akan memeriksa apakah nilai z memenuhi aturan Sudoku atau tidak dengan menggunakan fungsi yang sebelumnya telah didefinisikan, yaitu fungsi sesuaiAturanSudoku(baris, kolom,

num). Jika fungsi sesuaiAturanSudoku bernilai true maka num = z

sehingga proses pada fungsi akan dilanjutkan ke baris 35-36. Tetapi jika fungsi sesuaiAturanSudoku bernilai false, maka num = 0. Selama num = 0

dan banyaknya angka pada values lebih dari 0, maka lakukan kembali algoritma pada baris 10-19.

20. if num = 0 then

(28)

40

maxbacktrack = 5, sedangkan jika index ≤ 5 maka maxbacktrack = index. Kemudian, pilih secara acak antara 1 sampai dengan maxbacktrack untuk memperoleh banyaknya elemen pada selGrid yang akan dibacktrack. Nilai-nilai pada selGrid ke-index yang dibacktrack kemudian dikembalikan nilainya menjadi nol.

34. else

35. selGrid[index] ← num 36. index++

37. endif 38. endwhile

Proses fungsi pada baris 35-36 dilakukan apabila num = z, sehingga diperoleh nilai pada elemen selGrid ke-index adalah num. Kemudian proses dimulai lagi dari algoritma baris ke-3 dengan index = index+1. Proses ini akan terus berulang selama index < 81.

39. {menampilkan elemen-elemen awal Sudoku} 40. read(level)

41. case level

42. „Easy‟: NElemenAwal = Acak(35, 40) 43. „Medium‟: NElemenAwal = Acak(29, 34) 44. „Hard‟: NElemenAwal = Acak(23, 28) 45. endcase

46.

47. while(NElemenAwal > 0) do

48. var baris = Random(0,Nbaris-1) 49. var kolom = Random(0,Nkolom-1) 50. write(grid[baris][kolom]) 51. NElemenAwal--

(29)

41

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

Pada baris 40-44, fungsi akan menerima input level yang dipilih pemain. level yang dipilih akan mempengaruhi banyaknya elemen awal yang ditampilkan, ketentuannya dapat dilihat pada tabel sebelumnya, yaitu tabel 3.1. Pada baris 47-52, fungsi akan mengeliminasi elemen-elemen pada solusi Sudoku hingga diperoleh sejumlah elemen awal yang harus ditampilkan sesuai dengan level yang dipilih, dengan posisi baris dan kolom bernilai acak antara 0 sampai dengan 8.

Gambar 3.3 Flowchart Solusi Sudoku

Proses yang terjadi pada aplikasi SudokuBreak ini dapat disederhanakan ke dalam bentuk flowchart seperti pada gambar 3.3 dan gambar 3.4. Gambar 3.3 menunjukkan proses diperolehnya solusi permainan Sudoku dengan menggunakan algoritma Backtrack. Solusi permainan Sudoku yang diperoleh, kemudian diproses kembali (lih. gambar 3.4) sehingga diperoleh elemen-elemen

(30)

42

awal yang merupakan petunjuk awal dalam permainan Sudoku. Banyaknya elemen awal yang ditampilkan tergantung dari level yang dipilih. Semakin sulit level yang dipilih, maka banyaknya elemen awal yang ditampilkan akan semakin sedikit, begitupun sebaliknya.

Gambar 3.4 Flowchart Elemen Awal Sudoku

3.2 Perancangan Sistem

Perancangan sistem yang akan dibahas meliputi perancangan aplikasi permainan dan perancangan antarmuka:

3.2.1 Perancangan Aplikasi Permainan

Perancangan aplikasi permainan merupakan perancangan interaksi yang dapat dilakukan pemain terhadap aplikasi yang dibangun. Aplikasi ini akan dimulai dengan menampilkan form Menu Utama, yang berisi menu pilihan yaitu Menu

Solusi Sudoku

Level

Easy Medium Hard

NElemen awal = 35-40

NElemen awal = 29-34

NElemen awal = 23-28

Eliminasi

(31)

43

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

Permainan, Menu Help dan Menu About. Pada setiap pilihan menu yang dipilih akan ditampilkan form-form yang ingin ditampilkan pemain.

Gambar 3.5 Flowchart Aplikasi

(32)

44

akan ditampilkan pada permainan Sudoku. Semakin banyak elemen awal yang ditampilkan, maka tingkat kerumitan soal permainan Sudoku akan semakin mudah.

Setelah pemain memilih Menu Level yang diinginkan, maka akan ditampilkan form menu permainan. Aplikasi ini akan berhenti jika pemain menekan tombol exit. Gambar 3.5 menunjukkan proses yang terjadi pada aplikasi yang dirancang.

3.2.2 Perancangan Antarmuka

Perancangan antarmuka merupakan salah satu tahapan yang penting, karena pemain akan melakukan interaksi dengan aplikasi. Antarmuka yang dibangun haruslah sederhana dan menarik, sehingga mudah dipahami oleh pemain. Antarmuka pada aplikasi permainan Sudoku Break ini terdiri dari beberapa form yaitu form menu utama, form menu permainan, form menu help, form menu about, dan form menu level.

1. Form Menu Utama

Form menu utama merupakan form yang ditampilkan pertama kali pada saat aplikasi dijalankan. Form ini terdiri dari beberapa menu yang dapat dipilih oleh pemain, yaitu menu play, help dan about. Form ini dapat dilihat pada gambar 3.6

.

Gambar 3.6 Form Menu Utama

Keterangan (Gambar 3.6):

(33)

45

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

1. Tombol ini merupakan tombol menu yang berfungsi untuk keluar dari aplikasi.

2. SUDOKU BREAK merupakan judul dari aplikasi.

3. Tombol Play merupakan tombol menu yang berfungsi untuk menampilkan form Menu Permainan.

4. Tombol Help merupakan tombol menu yang berfungsi untuk menampilkan form Menu Help yang berisi tentang panduan cara bermain Sudoku.

5. Tombol About merupakan tombol menu yang berfungsi untuk menampilkan form Menu About yang berisi tentang author aplikasi.

2. Form Menu Level

Form Menu Level merupakan form yang berisi beberapa pilihan Level yang diberikan kepada pemain. Apapun tombol level yang dipilih, nantinya akan sama-sama menampilkan form menu Permainan.

Gambar 3.7 Form Menu Level

Keterangan (Gambar 3.7):

Menu Level

SELECT LEVEL 1

Hard 4 Easy 2

(34)

46

1. SELECT LEVEL merupakan judul dari form menu Level. 2. Tombol Easy merupakan tombol level yang paling mudah. 3. Tombol Medium merupakan tombol level sedang.

4. Tombol Hard merupakan tombol level yang paling sulit.

3. Form Menu Permainan

Form menu permainan merupakan form yang digunakan dalam bermain permainan Sudoku. Form ini dapat dilihat pada gambar 3.8.

Gambar 3.8 Form Menu Permainan

Keterangan (Gambar 3.8):

1. Tombol ini merupakan tombol yang berfungsi untuk menampilkan form menu utama.

2. Papan permainan Sudoku berukuran 9x9.

3. Tombol New Game merupakan tombol yang berfungsi untuk menampilkan soal permainan yang berbeda.

-

x

New Game

Hint

Solve Menu Permainan

1

2

3

4

(35)

47

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

4. Tombol Hint merupakan tombol yang berfungsi untuk memberikan satu angka bantuan kepada pemain untuk dapat menyelesaikan permainan Sudoku.

5. Tombol Solve merupakan tombol yang berfungsi untuk menampilkan seluruh solusi permainan yang valid kepada pemain.

4. Form Menu Help

Form Menu Help merupakan form yang berisikan informasi mengenai aturan dan cara bermain Sudoku. Form ini dapat dilihat pada gambar 3.9.

Gambar 3.9 Form Menu Help

Keterangan (Gambar 3.9):

1. HOW TO PLAY merupakan judul dari form menu Help.

2. Textbox ini berisi informasi mengenai cara bermain SUDOKU BREAK. 3. Tombol OK berfungsi untuk menampilkan form menu utama.

-

x

Menu Help

HOW TO PLAY

1

2

(36)

48

5. Form Menu About

Form Menu About merupakan form yang berisikan informasi mengenai author aplikasi. Form ini dapat dilihat pada gambar 3.10.

Gambar 3.10 Form Menu About

Keterangan (Gambar 3.10):

1. ABOUT merupakan judul dari form menu About.

2. Textbox ini berisi informasi mengenai author aplikasi SUDOKU BREAK. 3. Tombol OK berfungsi untuk menampilkan form menu utama.

Menu About

ABOUT

1

2

(37)

60

Novita Nuralita Suprijatna, 2013

Penerapan Algoritma Backtrack Dalam Membangkitkan elemen Awal Permainan Sudoku Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan penelitian yang telah dipaparkan pada bab-bab sebelumnya, maka dapat diperoleh kesimpulan bahwa:

1. Algoritma Backtrack cukup mangkus dalam membangkitkan elemen-elemen awal permainan Sudoku.

2. Algoritma Backtrack untuk menentukan elemen-elemen awal dari permainan Sudoku dapat diimplementasikan ke dalam bahasa pemrograman Actionscript 3.0.

5.2 Saran

Berikut ini merupakan beberapa saran yang perlu dipertimbangkan untuk menjadi penelitian selanjutnya, yaitu:

1. Menggunakan algoritma lain selain algoritma Backtrack, seperti algoritma Brute Force, Branch and Bound, Backtrack, Dancing Links dan Genetika. 2. Menggunakan variasi sudoku lainnya, dengan ukuran, isi elemen atau bentuk

minigrid yang berbeda. Ukurannya bisa lebih besar atau lebih kecil, misal 4x4 atau 16x16. Isi elemen bisa berupa gambar, huruf atau bisa juga suara. Bentuk minigrid bisa berupa pentomino atau heptomino.

3. Menambahkan aturan tambahan dengan tetap mempertahankan aturan dasar Sudoku. Misalnya, pada diagonal harus berisi angka dari 1 sampai dengan 9. 4. Menambahkan fitur-fitur lain yang lebih menarik, seperti fitur highscore yang

(38)

DAFTAR PUSTAKA

Anton, H. (2000). Dasar-Dasar Aljabar Linear Jilid 1. Edisi ke-7. Interaksara:Batam Bakri, A.H. (2010). Analisis dan Implementasi Algoritma Backtracking pada

Permainan Congklak. Medan: Universitas Sumatera Utara.

Baras, R. (2010). Sudoku. [Online]. Tersedia: http://www.ronitbaras.com/education-learning/sudoku/#.Ug7QCpLQmY0 [17 Agustus 2013]

Hariyanto, B. (2004). Rekayasa Sistem Berorientasi Objek. Bandung:Informatika Jussien, N. (2007). A-Z of Sudoku. London: ISTE.

Lee, Wei-Meng. (2006). Programming Sudoku. New York:Apress.

Lowry, B. (2009). Creating Sudoku in Flash [Online]. Tersedia: http://www.kongregate.com/games/5minutesoff/learn-how-to-create-sudoku-in-flash-as3 [14 Februari 2012]

Munir, R. (2004). Diktat Kuliah IF2251 Strategi Algoritmik. Bandung: Institut Teknologi Bandung.

Munir, R. (2007). Algoritma dan Pemrograman dalam Bahasa Pascal dan C. Edisi ke-3. Bandung:Informatika.

Radion, K. (2012). Easy Game Programming using Flash and ActionScript 3.0. Yogyakarta:Andi.

Rosenzwelg, G. (2011). Actionscript 3.0 Game Programming University Second Edition. Indianapolis: QUE.

Sutarno, H; Priatna, N dan Nurjanah. (2005). Matematika Diskrit. Malang:UM Press. Wikipedia. (2012). Sudoku [Online]. Tersedia: http://en.wikipedia.org/wiki/Sudoku

Gambar

Gambar 4.6 Tampilan Menu Win ............................... Error! Bookmark not defined.
Tabel 3.1 Tabel banyaknya elemen awal yang ditampilkan pada setiap Level ... Error!
Gambar 3.1 Ilustrasi papan permainan Sudoku
Tabel 3.1 Tabel banyaknya elemen awal yang ditampilkan pada setiap Level
+7

Referensi

Dokumen terkait

memilih judul skripsi “ Penerapan Persamaan Navier-Stokes pada Pergerakan Fluida dalam Tabung dengan Metode Elemen Hingga ”.

[3] Gambar 1.2 Variasi dari pipe puzzle Pada makalah ini berusaha untuk menganalisis dan mencari solusi permainan pipe puzzle ini dengan cara menggunakan backtrack

Melalui pembahasan dalam makalah ini, algoritma runut-balik (backtracking) digunakan pada saat program diminta untuk menyelesaikan permainan dengan mengisikan

Tensor energi-momentum kemudian digunakan dalam persamaan medan Einstein untuk mencari solusi persamaan ini dalam kerangka kerja geometri FRW untuk awal alam semesta pada

Algoritma greedy tersusun oleh beberapa elemen, yaitu himpunan kandidat (C) yang berisi elemen pembentuk solusi, himpunan solusi (S) yang berisi kandidat yang

Walaupun, pada umumnya algoritma Brute Force tidak efektif dan efisien, akan tetapi, pada penyelesaian solusi permainan kartu 24, yang tergolong memiliki kompleksitas

Visualisasi Greedy pada labirin simulasi Pac-Man Sedangkan algoritma Greedy mencapai sebuah solusi yang kurang optimum (berjarak 17 petak) tetapi dengan membangkitkan hanya

Meninjau hal ini, langkah penyelesaian permainan SET dimulai dengan mendefinisikan kartu SET, kemudian mendefinisikan dek sebagai list of kartu, kemudian dari dek