Analisis Dan Implementasi Algoritma Runut Balik (Backtracking) Pada Permainan Magic Square

(1)

ANALISIS DAN IMPLEMENTASI ALGORITMA RUNUT BALIK

(BACKTRACKING) PADA PERMAINAN MAGIC SQUARE

SKRIPSI

MUHAMMAD ANGGI RIVAI NST

061401083

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

PERSETUJUAN

Judul : ANALISIS DAN IMPLEMENTASI ALGORITMA

RUNUT BALIK (BACKTRACKING) PADA PERMAINAN MAGIC SQUARE

Kategori : SKRIPSI

Nama : MUHAMMAD ANGGI RIVAI NASUTION

Nomor Induk Mahasiswa : 061401083

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs Agus Salim Harahap, M.Si. Syahril Efendi, S Si, MIT NIP 195408281981031004 NIP 196711101996021001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Prof. Dr. Muhammad Zarlis NIP 195707011986011003


(3)

PERNYATAAN

ANALISIS DAN IMPLEMENTASI ALGORITMA RUNUT BALIK

(BACKTRACKING) PADA PERMAINAN MAGIC SQUARE

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 13 Nopember 2010

Muhammad Anggi Rivai Nasution 061401083


(4)

PENGHARGAAN

Alhamdulillah, puji syukur saya ucapkan kehadirat Allah SWT yang telah memberikan rahmat dan hidayahnya, sehingga saya dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Universitas Sumatera Utara. Shalawat beriring salam saya persembahkan kepada Nabi Besar Muhammad SAW.

Ucapan terima kasih penulis sampaikan kepada Bapak Syahril Efendi, S.Si, MIT selaku pembimbing pertama dan Bapak Drs Agus Salim Harahap, M.Si selaku pembimbing kedua yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis. Ucapan terima kasih juga ditujukan kepada Ibu Maya Silvi Lydia, B.Sc, M.Sc dan Ibu Dian Rachmawati, S.Si, M.Kom yang telah bersedia menjadi dosen penguji. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Ilmu Komputer, Prof. Dr. Muhammad Zarlis dan Syahriol Sitorus, S.Si, MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer FMIPA USU.

Skripsi ini terutama saya persembahkan untuk kedua orang tua dan keluarga saya yang telah memberikan dukungan dan motivasi, ayahanda Prof Dr Ikhwanuddin Nasution dan ibunda Ema Rahima yang selalu sabar dalam mendidik saya. Untuk abang saya, Apriansyah Nasution dan adik saya, Umaya Ramadhani Putri yang selalu memberikan dorongan kepada saya selama menyelesaikan skripsi ini. Terima kasih saya ucapkan kepada teman-teman yang selalu memberikan dukungan, Rifki Respati Ahari Lubis, Gusti Alfandi, Adhhal Huda Bakri yang telah banyak sekali membantu saya dalam hal apapun, begitu juga teman-teman saya Nurman Fahkreza Nst, Yudi Dolly Siregar, Dian Puspitasari, Mhd Makmur Lubis, Denis Afriawanto, Muhammad Januar rambe, dan Teddy Adrianto serta teman-teman satu angkatan yang sama-sama berjuang dalam penyusunan skripsi. Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian tugas akhir ini yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran dan motivasi yang diberikan.


(5)

ABSTRAK

Dewasa ini, permainan sudah menjadi suatu kebutuhan dalam hal hiburan dan pendidikan. Dalam hal ini penulis lebih cenderung memfokuskan permainan di bidang pendidikan dalam hal logika matematika. Sebuah permainan yang di bangun dari perhitungan nilai matriks ordo 4x4 yang memiliki kolom, baris, dan diagonal jika dihitung setiap empat kotak memiliki hasil yang sama besar nilainya di setiap kolom, baris, dan diagonal. Maka permainan ini dapat disebut permainan magic square. Magic square merupakan sebuah permainan untuk melatih penalaran dalam memecahkan suatu permasalahan di bidang logika matematika. Penulis membuat analisis dan implementasi dari permainan magic square berdasarkan algoritma backtracking. Analisis dari algoritma backtracking ini meliputi algoritma depth first search, fungsi batas, pohon ruang status, dan beberapa kriteria yang lain. Algoritma depth first search akan melakukan pencarian nilai yang tepat untuk bisa mendapatkan hasil yang telah disesuaikan. Fungsi batas disini akan melakukan fungsinya jika nilai yang dicari dari algoritma depth first search telah berhasil diselesaikan dengan sempurna maka fungsi batas akan menghentikan pencarian dan algoritma depth first search akan mencari nilai baru lagi agar mendapatkan nilai yang telah ditentukan. Untuk pohon ruang status disini merupakan gambaran dari kerja algoritma depth first search dan fungsi batas.


(6)

ANALYSIS AND IMPLEMENTATION ALGORITMH OF BACKTRACKING TO THE MAGIC SQUARE GAME

ABSTRACT

Today, game has become a necessity in terms of entertainment and education. In this case writer is more likely to focus the game on the field of education in terms of mathematical logic. A game that is built from computed values of the order 4x4 matrix that has columns, rows, and diagonal if calculated every four boxes have the same results of great value in each column, row, and diagonal. So this game can be called a magic square game. Magic Square is a game to train reasoning to solve a problem in the field of mathematical logic. Writer makes the analysis and implementation of the magic square game based on the backtracking algorithm. Analysis of backtracking algorithms include depth-first search algorithm, the function of borders, state-space tree, and several other criteria. Depth-first search algorithm to search for an exact value to be able to get the results that have been adjusted. Function limit here will perform its function if the value is sought from the depth-first search algorithm has been successfully completed with perfect then the limit function will stop the search and depth first search algorithm will find the new value again in order to obtain predetermined value. For state-space tree here is a picture of the depth-first search algorithms work and functions of the boundary.


(7)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii Penghargaan iv Abstrak v Abstract vi Daftar Isi vii Daftar Tabel ix Daftar Gambar x Bab 1 Pendahuluan 1.1Latar Belakang 1

1.2Rumusan Masalah 2

1.3Batasan Masalah 2

1.4Tujuan Penelitian 3

1.5Manfaat Penelitian 3

1.6Metodologi Penelitian 3

1.7Sistematika Penulisan 4

Bab 2 Tinjauan Pustaka 2.1 Permainan 6

2.1.1 Sejarah Permainan 6

2.1.2 Pengertian Permainan 8

2.1.3 KlasifikasiPermainan 9

2.2 Magic Square 10

2.2.1 Karakteristik Magic Square 11

2.2.2 Metode Magic Square 11

2.2.2.1 Magic Square Untuk Ordo Ganjil 13

2.2.2.2 Magic Square Untuk Ordo Genap 15

2.3 Algoritma Depth First Search (DFS) 16

2.4 Algoritma Runut Balik (Backtracking) 19

2.4.1 Pengertian Algoritma Runut Balik (Backtracking) 20

2.4.2 Properti Umum dari Metode Runut Balik (Backtracking) 20

2.4.3 Prinsip Dasar dari Algoritma Runut Balik (Backtracking) 21

2.4.4 Prinsip Pencarian Solusi dengan Metode Runut Balik (Backtracking) 23

Bab 3 Analisis dan Perancangan Aplikasi 3.1 Analisis 27

3.1.1 Representasi Lingkungan 27


(8)

3.2 Perancangan Sistem 32

3.2.1 Perancangan Alur Permainan 32

3.2.2 Perancangan Aplikasi 34

3.2.2.1 Perancangan Konseptual 34

3.2.2.2 Fungsional Aplikasi 34

3.2.2.3 Proses Aktifitas Aplikasi 35

3.3 Perancangan Fisik 37

3.3.1 Perancangan Antarmuka Pengguna (user interface) 38 3.3.2 Perancangan Piranti Masukan 40 Bab 4 Implementasi

4.1 Implemenatasi Aplikasi 41

4.2 Spesifikasi Perangkat Lunak 41

4.3 Spesifikasi Perangkat Keras 41

4.4 Tampilan Aplikasi 41

4.4.1 Tampilan Utama 42

4.4.2 Jalannya Permainan 45

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 50

5.2 Saran 51


(9)

DAFTAR TABEL

Halaman

Tabel 2.1 Isi Stack dalam DFS 18

Tabel 3.1 Tabel Proses Bermain 35

Tabel 3.2 Tabel Proses Berdasarkan Waktu 36


(10)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Magic Square 3x3 10

Gambar 2.2 Magic Square Dengan Nilai Berbentuk Diagonal 11 Gambar 2.3 Magic Square Yang Sudah Berisi Dengan Nilai 11 Gambar 2.4 Magic Square Yang Sudah Di Transpose 12 Gambar 2.5 Magic Square Bilangan Habis Di Bagi 2 12 Gambar 2.6 Magic Square Transpose Gambar 2.5 12 Gambar 2.7 Magic Square Dari Gambar 2.3 Dan 2.5 12 Gambar 2.8 Magic Square Transpose Gambar 2.7 12

Gambar 2.9 Magic Square 3x3 13

Gambar 2.10 Magic Square 5x5 13

Gambar 2.11 Matriks Tak Beraturan 15

Gambar 2.12 Matriks Beraturan 15

Gambar 2.13 Lintasan DFS 17

Gambar 2.14 Pohon Ruang Kemungkinan Solusi Persoalan 4-Ratu 24 Gambar 2.15 Penelusuran Solusi Backtracking 4-Ratu Pada Papan Catur 25 Gambar 2.16 Pohon Pencarian Solusi Backtracking Pada Persoalan 4-Ratu 26

Gambar 3.1 Ilustrasi Magic Square 27

Gambar 3.2 Matriks A Jalannya Solusi, Matriks B Sample, Matriks C Hasil dari

Solusi 29

Gambar 3.3 Pohon Ruang Status Terhadap Nilai Horisontal 30 Gambar 3.4 Pohon Ruang Status Terhadap Nilai Vertikal 31 Gambar 3.5 Pohon Ruang Status Terhadap Nilai Diagonal 31

Gambar 3.6 Flowchart Magic Square 33

Gambar 3.7 Use case Aplikasi 34

Gambar 3.8 Form Utama Magic Square 38

Gambar 3.9 Radio Button dari Magic Square 39

Gambar 3.10 Menu Waktu 39

Gambar 3.11 Menu Lanjut Solusi 40

Gambar 4.1 Tampilan Utama Magic Square 42

Gambar 4.2 Gambar Matriks dan Hasil 43

Gambar 4.3 Menu Pilihan 44

Gambar 4.4 Waktu 44

Gambar 4.5 Menu Solusi 45

Gambar 4.6 Gambar Tampilan awal dari Permainan Magic Square 45 Gambar 4.7 (a),(b) merupakan tampilan bermain user 46 Gambar 4.8 (a),(b),(c) Tampilan Berdasarkan Waktu 48 Gambar 4.9 Tampilan untuk Tidak Bedasarkan Waktu 49


(11)

ABSTRAK

Dewasa ini, permainan sudah menjadi suatu kebutuhan dalam hal hiburan dan pendidikan. Dalam hal ini penulis lebih cenderung memfokuskan permainan di bidang pendidikan dalam hal logika matematika. Sebuah permainan yang di bangun dari perhitungan nilai matriks ordo 4x4 yang memiliki kolom, baris, dan diagonal jika dihitung setiap empat kotak memiliki hasil yang sama besar nilainya di setiap kolom, baris, dan diagonal. Maka permainan ini dapat disebut permainan magic square. Magic square merupakan sebuah permainan untuk melatih penalaran dalam memecahkan suatu permasalahan di bidang logika matematika. Penulis membuat analisis dan implementasi dari permainan magic square berdasarkan algoritma backtracking. Analisis dari algoritma backtracking ini meliputi algoritma depth first search, fungsi batas, pohon ruang status, dan beberapa kriteria yang lain. Algoritma depth first search akan melakukan pencarian nilai yang tepat untuk bisa mendapatkan hasil yang telah disesuaikan. Fungsi batas disini akan melakukan fungsinya jika nilai yang dicari dari algoritma depth first search telah berhasil diselesaikan dengan sempurna maka fungsi batas akan menghentikan pencarian dan algoritma depth first search akan mencari nilai baru lagi agar mendapatkan nilai yang telah ditentukan. Untuk pohon ruang status disini merupakan gambaran dari kerja algoritma depth first search dan fungsi batas.


(12)

ANALYSIS AND IMPLEMENTATION ALGORITMH OF BACKTRACKING TO THE MAGIC SQUARE GAME

ABSTRACT

Today, game has become a necessity in terms of entertainment and education. In this case writer is more likely to focus the game on the field of education in terms of mathematical logic. A game that is built from computed values of the order 4x4 matrix that has columns, rows, and diagonal if calculated every four boxes have the same results of great value in each column, row, and diagonal. So this game can be called a magic square game. Magic Square is a game to train reasoning to solve a problem in the field of mathematical logic. Writer makes the analysis and implementation of the magic square game based on the backtracking algorithm. Analysis of backtracking algorithms include depth-first search algorithm, the function of borders, state-space tree, and several other criteria. Depth-first search algorithm to search for an exact value to be able to get the results that have been adjusted. Function limit here will perform its function if the value is sought from the depth-first search algorithm has been successfully completed with perfect then the limit function will stop the search and depth first search algorithm will find the new value again in order to obtain predetermined value. For state-space tree here is a picture of the depth-first search algorithms work and functions of the boundary.


(13)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Dewasa ini seiring kemajuan teknologi yang terus mengalami perkembangan pesat. Salah satunya adalah industri permainan animasi. Berangkat dari hal itu, antusiasme dalam mencetak pembuatan permainan yang mampu menciptakan permainan yang menunjukkan lokalitas bangsa dan berbasis pendidikan tentunya untuk mengatasi masalah dalam dunia permainan yang telah menjadi gaya hidup dalam masyarakat era kini. Sehingga, perlu adanya promosi untuk mengenalkan dan menanamkan gambaran di benak masyarakat karena tidak hanya sebatas menciptakan pembuatan permainan yang biasanya bersifat hiburan namun lebih ke arah pendidikan dan menunjukkan lokalitas bangsa.

Dari uraian di atas, muncul permasalahan yang dirumuskan sebagai berikut: merancang sebuah media yang dibutuhkan dalam menyampaikan media pembelajaran yang berhubungan dengan matematika. Strategi ini ditempuh dengan tujuan agar mampu menarik minat pemain sehingga menjadi sebuah media yang sangat memudahkan dalam pembelajaran. Di samping itu, banyak hal yang diketahui bahwa dalam kehidupan sehari-hari sesuatu yang berhubungan dengan matematika seseorang sangat sukar untuk memahami. Hal ini dikarenakan proses belajar yang dilakukan seseorang dalam masa pendidikan berbeda-beda.

Dari pandangan di atas, maka penelitian itu difokuskan pada rancangan untuk merancang suatu aplikasi permainan yang bernama magic square. Aplikasi ini akan dirancang dengan basis WEB dan menggunakan algoritma runut balik (backtracking).


(14)

dengan cara mengisi sel-sel tersebut dengan angka-angka yang unik dan jumlah angka-angka pada setiap baris dan kolom serta diagonal sama besar. Penyelesaian permainan ini dapat ditempuh dengan beberapa cara, salah satunya adalah dengan menggunakan algoritma runut balik (backtracking) yang berbasis pada algoritma depth first search (DFS).

Algoritma runut balik (backtracking) merupakan algoritma yang berbasis depth first search (DFS) untuk mencari solusi persoalan secara lebih terperinci. Runut balik (backtracking), yang merupakan perbaikan dari algoritma bruteforce, secara sistematis mencari solusi persoalan diantara semua kemungkinan solusi yang ada. Dengan metode ini, tidak perlu memeriksa semua kemungkinan solusi yang ada. Hanya pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan. Akibatnya, waktu pencarian dapat dihemat.

1.2Rumusan Masalah

Adapun rumusan masalah yang akan dibahas yaitu bagaimanakah analisis dan implementasi algoritma runut balik (backtracking) terhadap permainan magic square.

1.3Batasan Masalah

Adapun batasan masalah yang akan dibahas adalah : 1. Permainan ini hanya menampilkan ordo 4x4.

2. Terdiri dari 3 buah Matriks A, Matriks B, dan Matriks C. 3. Range nilai tediri dari 1 sampai 16.


(15)

1.4Tujuan Penelitian

Adapun tujuan dari penelitian ini sebagai berikut:

1. Untuk melakukan analisis algoritma runut balik (backtracking) terhadap permainan magic square.

2. Untuk memahami implementasi algoritma runut balik (backtracking) pada permainan magic square.

1.5Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah:

1. Melatih konsentrasi dan logika berpikir user untuk bisa lebih cepat lagi dalam berpikir.

2. Menambah wawasan pada bidang matematika.

1.6Metodologi Penelitian

Tahapan yang diambil dalam penelitian ini meliputi: 1. Studi literatur

Memperoleh informasi dengan mengumpulkan, mempelajari dan membaca berbagai referensi dari buku, jurnal, makalah dan tulisan ilmiah lainnya yang dibutuhkan dalam penulisan tugas akhir.

2. Analisis masalah

Melakukan identifikasi karakteristik dari masalah dan mendefinisikan kegunaan dari masalah tersebut.

3. Perancang aplikasi

Menuangkan rancangan ke dalam diagram-diagram Unified Modelling Language (UML) sehingga memberikan konsep yang jelas ketika melakukan implementasi, melakukan persiapan terhadap bahan pendukung seperti buku acuan dan perangkat lunak pengembangan yang dibutuhkan, serta melakukan tinjauan ulang terhadap


(16)

4. Implementasi/pengkodean

Setelah melakukan perancangan sistem akan dibuat dengan menggunakan javascript yang berbasis WEB

5. Menyusun laporan dan dokumentasi

Setelah semua selesai dilakukan, maka disusun dalam bentuk laporan dan dokumentasi dengan menggabungkan semua tahapan metodologi tersebut.

1.7Sistematika Penulisan

Dalam penulisan ini, penulis membuat suatu sistematika yang bertujuan untuk menggambarkan secara ringkas bab-bab yang mencakup hal-hal sebagai berikut:

BAB 1 Pendahuluan

Bab pendahuluan ini berisikan mengenai latar belakang masalah, identifikasi masalah, pembatasan masalah tentang apa yang akan diberikan didalam penulisan ini, maksud dan tujuan dari penulisan, metode penelitian serta sistematika penulisan yang merupakan konsep dasar dari penyusunan laporan skripsi.

BA 2 Tinjauan Pustaka

Bab tinjauan pustaka ini akan membahas tentang hubungan magic square dengan algoritma runut balik sebagai pendukung pembuatan skripsi.

BAB 3 Analisis Permasalahan

Bab analisis permasalahan ini membahas bagaimana magic square itu berjalan dengan menggunakan metode Algoritma runut balik.


(17)

Bab implementasi sistem ini berisikan gambaran rancangan struktur program serta memberikan gambaran dari rancang bangun yang lengkap kepada user atau pemakai komputer yang lain serta implementasinya yaitu menguji untuk menemukan kesalahan.

BAB V Kesimpulan dan Saran

Bab kesimpulan dan saran ini merupakan rangkuman dari laporan skripsi sehingga dapat melakukan perkembangan dari sistem ini.


(18)

BAB 2

TINJAUAN PUSTAKA

2.1 Permainan

Di zaman sekarang, terkadang sebagian manusia lebih memilih untuk bermain di kehidupan maya dibandingkan di kehidupan nyata. Dan mereka memilih sebagai dunia baru karena memang lebih tentram juga lebih damai walau kadang ada keributan. Dunia permainan layaknya dunia maya yang kita sering online dan chatting. Namun dunia permainan dapat membuat kita seakan menjadi nyata. Karena kita dapat membentuk karakter yang kita inginkan dan kita juga dapat menjadi karakter yang kita inginkan. Dimana di dalam dunia ini kita membentuk karakter layaknya yang ada di dalam diri kita dan terkadang kita mencerminkan apa yang ada dalam diri kita dalam dunia ini. Sehingga kita tuangkan diri kita ini ke dunia permainan tersebut.

Andaikan dibandingkan dengan dunia nyata, sakit hati yang dicerminkan akibat dunia permainan ini terasa lebih menyakitkan. Dan imbasnya dapat ke dunia nyata, sehingga merubah pola pikir kita menjadi tidak layaknya biasanya.

2.1.1 Sejarah Permainan

Sebenarnya di zaman peradaban manusia telah mengenal dan memainkan permainan. Di sahara ditemukan sebuah papan permainan terbuat dari batu yang berusia ±5000 tahun. Menurut David Fox dan Roman Verhosek (2002), permainan Go, yang popular di Negara-negara oriental, telah ada sejak 2000 BC. Bahkan permainan mirip Backgamon dicatat pada script romawi kuno.


(19)

Pada tahun 1952, seorang mahasiswa Universitas Cambridge bernama A.S Gouglas membuat permainan OXO (tic tac toe) dalam versi grafik. Permainan ini ia kembangkan ketika hendak mendemonstrasikan tesisnya tentang interaksi antara manusia dan komputer.

Memasuki era modern, pada tahun 1966 permainan digital pertama kali dibuat oleh Ralph Baer bersama timnya yang berjumlah 500 orang yang terdiri dari insinyur dan teknisi dan didanai oleh Pentagon. Permainan ini hanya dapat dimainkan dengan komputer seharga US$40.000. Unsur edukasi menjadi tujuan utama dalam permainan ini. Permainan dalam bentuk permainan antara papan dan bola tersebut diperuntukkan untuk membantu pasukan belajar strategi dan melatih kemampuan refleks pemainnya.

Pada tahun 1972, muncul permainan baru yang disebut Permainan Arcade, yang dipelopori oleh Nolan Brushnel dengan permainannya berjudul Pong. Mesin untuk memainkan permainan ini disebut mesin Arcade. Pemain yang ingin bermain diharuskan untuk memasukkan koin kedalam mesin. Pada hari kedua mesin ini diletakkan pada suatu bar, orang-orang mengantri untuk memainkan permainan Pong.

Tidak mau tertinggal dengan sistem Arcade, sistem konsol seperti Magnavox Odyssey, Atari 2006, Mattel Intelvision, Calleco Vision dan Nintendo Entertaiment Sistem menciptakan permainan yang dapat dimainkan di rumah. Permainan yang paling menghebohkan orang-orang dengan tampilan grafik dan permainan play yang luar biasa pada sistem konsol tersebut adalah Super Mario Brothers yang diciptakan oleh Nintendo.

Pada perkembangannya, permainan komputer berkembang dengan pesatnya seiring perkembangan perangkat keras yang mendukung. Hal ini dibuktikan dengan program permainan yang lebih kompleks dan tampilan grafik tiga dimensi.


(20)

2.1.2 Pengertian Permainan

Sosiolog Perancis Roger Caillois, dalam bukunya Les jeux et les Hommes (Games and Man), yang mendefinisikan permainan sebagai suatu kegiatan yang harus memiliki karakteristik berikut:

1. Menyenangkan: kegiatan yang dipilih pengguna untuk menjadikan dirinya karakter.

2. Terpisah: dibatasi dalam waktu dan tempat. 3. Kepasti: hasil kegiatan ini adalah tak terduga.

4. Partisipasi-produktif: tidak mencapai sesuatu tujuan yang berguna.

5. Diatur oleh aturan: kegiatan memiliki aturan yang berbeda dari kehidupan sehari-hari.

6. Fiktif: jika disertai kesadaran realitas yang berbeda.

Desainer Chris Crawford berusaha untuk mendefinisikan istilah permainan dengan menggunakan pembagian, diantaranya adalah:

1. Ekspresi kreatif adalah seni yang dibuat untuk kecantikan sendiri, dan hiburan jika dibuat untuk uang. (Ini adalah definisi yang paling kaku. Crawford mengakui bahwa ia sering memilih jalan yang kreatif atas kebijaksanaan bisnis konvensional, dimana hanya salah satu dari 13 game adalah sekuel game.)

2. Hiburan adalah sebuah mainan yang interaktif. Film dan buku-buku dikutip sebagai contoh hiburan non-interaktif.

3. Jika tidak ada tujuan yang terkait dengan permainan, itu adalah mainan. Cacatan dari Crawford bahwa definisinya menyatakan:

a. Mainan dapat menjadi elemen permainan jika para pemain membuat aturannya sendiri

b. The Sims dan SimCity adalah mainan, bukan permainan c. Jika memiliki tujuan, mainan adalah tantangan.

4. Jika tantangan tidak memiliki agen aktif terhadap dengan siapa anda bersaing, ini adalah teka-teki, jika ada satu, itu adalah konflik. Crawford mengakui bahwa ini adalah tes subjektif dari video game. Dengan kecerdasan buatan algoritma bisa dimainkan sebagai teka-teki, ini termasuk pola yang digunakan untuk menghindari dari permainan Pac-Man.


(21)

5. Akhirnya, jika para pemain hanya dapat mengalahkan lawan, tetapi tidak menyerang dan hanya mengganggu kinerja mereka sehingga terjadi konflik, konflik disini merupakan sebuah kompetisi. Kompetisi termasuk kecepatan dan ketangkasan dari tantangan seperti balapan dan skating gambar. Namun, Jika serangan diizinkan, kemudian konflik memenuhi syarat sebagai permainan.

Definisi Crawford demikian dapat diterjemahkan sebagai suatu kegiatan, interaktif berorientasi pada tujuan, dengan bahan aktif untuk bermain melawan, di mana pemain termasuk agen aktif dapat mengganggu satu sama lain.

2.1.3 Klasifikasi Permainan

Gameplay merupakan alat dan aturan-aturan yang mendefinisikan konteks keseluruhan permainan sehingga pada saat gilirannya, menghasilkan keterampilan, strategi, dan kesempatan.

Berdasarkan media permainannya, permainan dapat dikelompokkan menjadi beberapa bagian, yaitu:

1. Papan Permainan

Papan permainan merupakan permainan yang menggunakan sebuah media papan sebagai alat atau tempat untuk berinteraksi dan melakukan sebuah permainan . Biasanya permainan ini dilakukan dengan menggunakan strategi untuk memenangi permainan tersebut. Contohnya: Catur.

2. Permainan Kartu

Permainan kartu merupakan permainan yang menggunakan satu set kartu sebagai alat utama permainan. Permainan ini biasanya diawali dengan pengacakan kartu sehingga membutuhkan kesempatan dan keberuntungan untuk memenangi permainan ini. Contohnya: permainan kartu Uno, permainan Poker, permainan Spider Solitare dan sebagainya.


(22)

3. Permainan Dadu

Permainan dadu merupakan permainan yang menggunakan dadu sebagai elemen utama permainan. Permainan dilakukan dengan cara mengacak angka dadu kemudian angka dadu inilah yang menjadi dampak kemungkinan besar kemenangan permainan ini. Contohnya: Ludo, dadu Poker dan sebagainya.

4. Permainan Domino dan Berubin

Permainan Domino dan Berubin merupakan permainan yang menggunakan kartu berbentuk ubin sebagai alat permainannya. Permainan ini mirip dengan permainan kartu. Contohnya: Domino dan Mahjong.

5. Permainan Bergambar

Permainan Bergambar merupakan suatu permainan yang memerlukan media kertas untuk menggambar arena permainan dan pensil untuk menulis langkah permainan tersebut. Contohnya, Scrabble, Tic-tac-toe, Sudoku dan sebagainya.

2.2 Magic Square

Sebuah magic square N x N adalah array yang berisi bilangan bulat dari 1 sampai n2 diatur sedemikian rupa sehingga setiap baris, setiap kolom, dan kepala dua Diagonal-diagonal memiliki jumlah yang sama. Untuk setiap n > 2, ada banyak perbedaan dari magic square yang berurutan.


(23)

2.2.1 Karakteristik Magic Square

Sebuah magic square terdiri dari serangkaian nomor jika diatur di papan permainannya, dimana jumlah setiap baris dan kolom dan kedua sudut Diagonal-diagonal harus memiliki jumlah yang sama yang mungkin disebut penjumlahan (S). Setiap pengaturan persegi dari bilangan yang memenuhi kondisi ini benar, maka dapat disebut magic square.

2.2.2 Metode Magic Square

Menurut W.S. Andrews, dengan metode De La, Sebuah magic square yang terdiri dari 4 x 4 dapat dibangun sebagai berikut:

1. Isi kolom paling sudut secara diagonal dari persegi 4 x 4 dengan angka 1 sampai 4 secara berurutan, mulai dari sudut atas dan bawah sebelah kiri.

Gambar 2.2 Magic Square dengan nilai berbentuk diagonal

2. Isi sel kosong yang tersisa dengan jumlah yang hilang dari seri 1 -- 4 sehingga jumlah setiap kolom tegak lurus dan horizontal sama.


(24)

3. Transpose langkah no.2 yang telah menjadi bentuk matriks

Gambar 2.4 Magic Square yang sudah di Transpose

4. Bentuk bilangan baru lagi dimana hasilnya akan habis bila dibagi dengan 2 pada gambar 2.5 dan transpose pada gambar 2.6, lalu gambar 2.3 dan gambar 2.5 disubstitusikan sehingga menjadi yang utama. Dan hasilnya akan menjadi persegi terkait dari 4 x 4 ditunjukkan pada gambar 2.7. Setelah semuanya selesai maka gambar 2.7 transpose juga sehingga hasil pada gambar 2.8 dan nilai yang terjadi tidak akan pernah sama.

Gambar 2.5 Magic Square bilangan Gambar 2.6 Magic Square Transpose habis di bagi 2 gambar 2.5

Gambar 2.7 Magic Square dari Gambar 2.8 Magic Square Transpose gambar 2.3 dan 2.5 gambar 2.7


(25)

2.2.2.1 Magic Square Untuk Ordo Ganjil

Square dari 3 x 3 ditunjukkan pada gambar 2.1. Yang meliputi agregasi angka terkecil yang mampu melakukan pengaturan pada magic square, dan juga pengaturan hanya mungkin terjadi dari sembilan nomor yang berbeda. Akan terlihat bahwa jumlah masing-masing dari tiga vertikal, tiga kolom horizontal dan diagonal dua sudut di alun-alun ini adalah 15, sehingga dapat membuat dalam semua delapan kolom yang memiliki total juga, dimana jumlah dari dua nomor yang berbeda sudah kosong , yang merupakan dua kali nomor pusat, atau n2 + 1.

Magic square selanjutnya adalah 5 x 5, dan terdapat berbagai pengaturan besar dari dua puluh lima nomor, yang akan menampilkan hasil magic juga, setiap pengaturan sebagai produksi dari metode konstruktif yang berbeda. Gambar 2.10 berikut menggambarkan salah satu pengaturan dan paling terkenal dari persegi ini. Jumlah dari masing-masing kelima horizontal, kelima kolom vertikal dan diagonal dua sudut adalah 65, dan jumlah dari dua nomor yang diametris berjarak sama dari nomor pusat, adalah 26 atau dua kali nomor pusat.

Gambar 2.9 Magic Square 3x3 Gambar 2.10 Magic Square 5x5

Mengacu pada gambar 2.10, maka akan terlihat bahwa square dimulai dengan menulis kesatuan di tengah sel baris atas, dimana nomor secara berturut-turut melanjutkan diagonal dari arah tangan kanan. Menggunakan konsep silinder yang horisontal, dan keduanya akan terletak di baris bawah, diikuti dengan tiga di atas sel di sebelah kanan. Di sini pembentukan silinder secara vertikal yang dikandungnya, sel atas berikutnya dimana empat sudah tertera, maka dilanjutkan yang kelima secara


(26)

lebih lanjut di sini diblokir oleh kesatuan yang sudah menempati sel atas berikutnya secara diagonal.

Ketika pemblokan terjadi sehingga dalam jarak reguler (dimana di setiap nomor lima di sebuah square 5 x 5) dengan nomor berikutnya, dalam hal ini harus ditulis dalam sel secara vertikal di bawah dan terakhir diisi, sehingga enam ditulis dalam sel di bawah lima, dan tangan kanan secara diagonal agar dilanjutkan dalam sel ditempati oleh tujuh dan delapan. Di sini silinder horizontal dibayangkan, menunjukkan lokasi dari sembilan, maka konsepsi dari silinder vertikal akan menunjukkan lokasi sepuluh, pengembangan reguler lebih lanjut di sini sekali lagi diblokir oleh enam angka, jadi sebelas adalah tertulis di bawah sepuluh dan diagonal agar terus lanjut adalah lima belas. Sebuah gambaran dari kombinasi silinder vertikal dan horizontal di sini akan menunjukkan bahwa kemajuan diagonal lebih lanjut diblokir oleh sebelas, jadi enamabelas adalah tertulis di bawah limabelas. silinder vertikal kemudian akan menunjukkan sel di mana tujuhbelas harus terletak, dan silinder horisontal akan menampilkan sel berikutnya secara diagonal ke atas ke kanan yang akan ditempati oleh delapanbelas, dan seterusnya sampai jumlah akhir dua lima sudah tercapai dan square selesai.

Prinsip-prinsip umum yang mengatur pembentukkan magic square dengan metode ini, sekarang bisa dirumuskan.

1. Sel pusat di muat persegi selalu berisi nomor tengah serangkaian nomor yang digunakan, misalnya, nomor yang sama dengan satu setengah jumlah pertama dan terakhir nomor seri, atau n2 + 1.

2. Tidak ada magic square yang terkait sehingga dapat dimulai dari sel pusatnya, tapi mungkin bisa dimulai dari semua sel yang lain dari pusat.

3. Dengan pengecualian khusus tertentu yang akan disebut nanti, magic square aneh mungkin dibangun oleh salah satu tangan kanan atau kiri urutan diagonal, atau oleh sejumlah gerakan asing yang disebut itu, variasi dalam semua kasus dengan keberangkatan berkala dan terdefinisi dengan baik dari jarak normal. Arah dan


(27)

dimensi ini dimulai dari jarak normal, atau "awal bergerak" karena mungkin akan disebut yang diatur oleh jarak relatif dari sel yang ditempati oleh angka pertama dan terakhir dari seri ini, dan dapat ditentukan sebagai berikut:

“Tempatkan nomor pertama dari seri dalam sel yang diinginkan (kecuali pusat satu) dan angka terakhir dari seri di sel yang diametris berlawanan dengan sel yang berisi nomor pertama. Jarak relatif antara sel yang berisi nomor terakhir dari seri dan sel yang berisi nomor pertama dari seri maka harus diulang setiap kali blok terjadi dalam perkembangan biasa.”

2.2.2.2 Magic Square Untuk Ordo Genap

Angka dalam kolom dua diagonal dalam magic square dapat ditentukan dengan menulis jumlah dari bilangan aritmatika dalam barisan horizontal, dimulai dengan nomor pertama di sel tangan kiri baris atas dan menulis baris demi baris seperti di buku W. S Andrew yaitu “Magic Squares and Cubes”, yang diakhiri dengan nomor terakhir di sel sebelah kanan garis bawah. Nomor-nomor kemudian ditemukan dalam dua kolom diagonal dalam magic square, tetapi posisi dari nomor-nomor lain pada umumnya harus diubah.

Gambar 2.11 Matriks tak beraturan Gambar 2.12 Matriks beraturan

Kuadrat terkecil dari square yang dapat dibangun adalah 4 x 4, dan salah satu bentuk ditampilkan pada gambar 2.11. Akan terlihat bahwa jumlah masing-masing adalah empat horisontal, empat kolom vertikal dan dua diagonal pada square ini adalah 34, sehingga semuanya dapat dihitung totalnya, juga bahwa jumlah dari dua


(28)

nomor diametris berlawanan adalah 17, yang merupakan jumlah dari angka pertama dan terakhir dari seri.

Matriks pada magic square berukuran n x n, dengan elemen yang berbeda satu sama lain berupa bilangan bulat dari 1 hingga n2 . Jumlah dari deret 1+2+3+…+n2 dapat ditentukan melalui persamaan :

Dari persamaan (1), maka dapat ditentukan pula bahwa jumlah angka-angka pada tiap baris, kolom, dan diagonal adalah :

Jumlah tersebut menghasilkan angka yang disebut dengan konstanta magic square (Munir, 2007).

2.3 Algoritma Depth First Search (DFS)

Algoritma Depth First Search (DFS) menggunakan struktur data stack untuk mengingat kemana seharusnya Depth First Search (DFS) pergi saat ia mencapai suatu simpul tertentu.

Istilah “depth first” artinya melewati sebuah lintasan sejauh (sedalam) mungkin. Hanya pada titik tertentu yang tidak dapat ditelusuri, maka dilakukan runut balik (backtracking) dan menelusuri lintasan alternatif lain. Metode ini dapat dijelaskan dalam bentuk pseudocode berikut:

Algorithm DFS(Vertex v):

if v has already been visited: return


(29)

mark v as visited process(v)

for each edge e that leaves v: let u be the other endpoint of e call DFS(u)

Algoritma ini akan mengunjungi dan memproses setiap simpul yang dapat dicapai dari v dan yang belum pernah dikunjungi. Hal ini dilakukan dengan mengikuti setiap sisi yang terhubung dengan v dan menggunakan prosedur yang sama secara rekursif untuk endpoint lain dari sisi tersebut.

Menurut Robert Laforce (1998) pada Adi dalam buku algoritma dan struktur data dengan C# di halaman 499, menyatakan algoritma Depth First Search (DFS) memiliki beberapa aturan, yaitu:

1. Jika mungkin, lakukan kunjungan pada simpul-simpul pendamping (adjacent vertex) yang belum pernah dikunjungi, tandai, dan masukkan (push) ke stack. Sebagai contoh, pada gambar 9 dan tabel 1, aturan ini dapat diterapkan pada simpul-simpul sebelum simpul H. Pada langkah terakhir ini kita perlu melakukan sesuatu karena tidak ada simpul pendamping yang belum dikunjungi. Dalam hal ini kita bisa masuk ke aturan 2 di bawah ini.

Gambar 2.13 Lintasan DFS

A

D B

E C

G F

I H


(30)

Tabel 2.1 Isi Stack dalam DFS

Event Isi Stack

Visit A A

Visit B AB

Visit F ABF

Visit H ABFH

Pop H ABF

Pop F AB

Pop B A

Visit C AC

Pop C A

Visit D AD

Visit G ADG

Visit I ADGI

Pop I ADG

Pop G AD

Pop D A

Visit E AE

Pop E A

Pop A -

FINISH

2. Jika saat kita melakukan aturan di atas kita mengalami kesulitan, kita keluarkan (popped off) simpul dari stack. Mengikuti aturan ini, jika kita mengeluarkan suatu simpul dari suatu stack, kita akan sampai ke simpul di bawahnya. Jika simpul di bawahnya ini bukan simpul pendamping yang belum dikunjungi, kita keluarkan lagi. Demikian selanjutnya hingga kita tidak bisa melakukannya lagi dan kita harus masuk ke aturan 3 di bawah ini.

3. Jika kita tidak bisa lagi mengikuti baik aturan 1 maupun 2 di atas, berarti kita telah menyelesaikan algoritma Depth First Search (DFS).


(31)

Beberapa kelebihan dari Depth First Search adalah :

1. Pemakaian memori hanya sedikit, berbeda dengan BFS (Breadth First Search) yang harus menyimpan semua simpul yang pernah dibangkitkan.

2. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka akan ditemukan solusi secara cepat.

Dan beberapa kelemahan dari Depth First Searh adalah :

1. Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka solusi pun sulit untuk ditemukan.

2. Tidak memiliki titik optimal jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda.

2.4 Algoritma Runut Balik (Backtracking)

Istilah runut balik pertama kali diperkenalkan oleh D.H. Lehmer pada tahun 1950. Selanjutnya di tahun 1960, R. J. Walker, Golomb, dan Baumert menyajikan uraian umum tentang runut balik dan penerapannya pada berbagai persoalan.

Pada berbagai masalah real world, solusi diperoleh dengan memproses rangkaian titik keputusan dimana setiap kandidat memiliki beberapa lintasan yang dapat ditelusuri. Jika lintasan yang ditelusuri mengarah kepada solusi, maka penelusuran dihentikan dan solusi ditemukan. Namun, jika lintasan yang ditelusuri tidak mengarah kepada solusi, maka harus dilakukan runut balik ke titik keputusan sebelumnya dan mencoba lintasan yang lain. Metode yang digunakan pada proses tersebut adalah metode backtracking.

Teknik runut balik (backtracking) merupakan salah satu teknik dalam penyelesaian masalah secara umum (General Problem Solving). Adapun dasar dari teknik ini adalah suatu teknik pencarian (Teknik Searching). Teknik pencarian ini


(32)

himpunan penyelesaian yang mungkin ini akan diperoleh solusi optimal atau memuaskan (Astuti, 2006).

2.4.1 Pengertian Algoritma Runut Balik (Backtracking)

Runut balik (backtracking) adalah algoritma yang berbasis pada Depth First Search (DFS) untuk mencari solusi persoalan secara lebih mangkus. Runut balik, yang merupakan perbaikan dari algoritma brute-force, secara sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada. Dengan metode runut balik, kita tidak perlu memeriksa semua kemungkinan solusi yang ada. Hanya pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan. Akibatnya, waktu pencarian dapat dihemat. Saat ini algoritma runut balik banyak diterapkan untuk program permainan (seperti permainan tic-tac-toe, menemukan jalan keluar dalam sebuah labirin, catur, dll) dan masalah-masalah pada bidang kecerdasan buatan (artificial intelligence) (Munir, 2004).

2.4.2 Properti Umum dari Metode Runut Balik (Backtracking)

Untuk menerapkan metode runut balik, properti berikut didefinisikan: 1. Solusi persoalan.

Solusi dinyatakan sebagai vektor n-tuple: Contoh: Si = {0,1}

Si = 0 atau 1

2. Fungsi pembangkit nilai xk Dinyatakan sebagai: T(k)

T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor solusi

3. Fungsi pembatas (fungsi kriteria) Dinyatakan sebagai:


(33)

B(x1, x2, ..., xk)

Fungsi pembatas menentukan apakah (x1, x2, ..., xk) mengarah ke solusi. Jika ya, maka pembangkitan nilai untuk xk+1 dilanjutkan, tetapi jika tidak, maka (x1, x2, ..., xk) dibuang dan tidak dipertimbangkan lagi dalam pencarian solusi. Terdapat metode dalam pengisian elemen-elemen matriks, yakni elemen pertama yang akan diisi adalah elemen pada baris dan kolom pertama, kemudian dilanjutkan pada elemen kolom berikutnya dan setelah selesai mengisi satu baris, maka akan dilanjutkan pada kolom pertama pada baris selanjutnya. Elemen-elemen/kotak yang diisi direpresentasikan sebagai tingkatan dalam pembentukan pohon ruang status secara dinamis. Sedangkan angka-angka yang mungkin untuk diisi, direpresentasikan sebagai daun pada pohon ruang status. Selanjutnya akan dibahas mengenai fungsi batas yang digunakan dalam implementasi algoritma runut balik pada penyelesaian persoalan magic square tersebut.

Proses runut balik terjadi ketika daun yang dibangkitkan oleh program pada suatu tingkatan tidak sesuai dengan fungsi batas. Untuk persoalan magic square, fungsi batas terdiri dari beberapa kasus. Kasus yang pertama adalah ketika tingkatan yang dicapai merupakan elemen terakhir yang akan diisi pada suatu baris dan/atau kolom dan/atau diagonal. Fungsi batas mengharuskan kolom tersebut untuk diisi dengan elemen, sedemikian sehingga elemen tesebut menjadikan baris, kolom, atau diagonal tersebut berjumlah sama dengan konstanta magic square yang ditentukan sesuai dengan ordo matriks. Kasus kedua adalah ketika daun yang dibangkitkan untuk mengisi elemen matriks sudah berada pada elemen matriks lainnya. Fungsi batas mengharuskan setiap elemen memiliki nilai yang berbeda satu sama lain. Kasus ketiga adalah ketika pada suatu tingkatan daun yang telah dibangkitkan telah mencapai nilai maksimum, yakni jika matriks memiliki ordo n, maka nilai maksimum dari suatu elemen adalah n2, sehingga harus melakukan proses runut balik ke akar.

2.4.3 Prinsip Dasar dari Algoritma Runut Balik (Backtracking)


(34)

seterusnya. Jika pencarian sampai ke daun, maka selanjutnya dilakukan backtracking ke simpul orang tua. Pencarian dihentikan jika solusi ditemukan atau tidak dapat dilakukan backtracking lagi.

Berikut ini adalah algoritma (pseudocode) untuk melakukan backtracking dari simpul n:

boolean solve(Node n) { if n is a leaf node {

if the leaf is a goal node, return true else return false

} else {

for each child c of n {

if solve(c) succeeds, return true }

return false }

}

Algoritma tersebut diekspresikan dengan fungsi boolean. Jika solve(n) benar, maka simpul n adalah bagian dari solusi, yaitu simpul n adalah salah satu simpul pada jalur dari root ke beberapa simpul tujuan. Sehingga dapat dikatakan bahwa n dapat diselesaikan. Jika solve(n) salah, maka tidak ada jalur yang termasuk simpul n yang mengarah ke simpul tujuan.

Maka, untuk menentukan adanya simpul n, yang bukan leaf, dapat diselesaikan, yang harus dilakukan adalah mengecek adanya cabang dari n yang dapat diselesaikan. Ini dilakukan secara rekursif pada setiap cabang dari n. Pada pseudocode tersebut, dikerjakan oleh baris:

for each child c of n {

if solve(c) succeeds, return true }


(35)

Pada akhirnya, proses rekursif akan berada pada simpul leaf. Jika simpul leaf adalah simpul tujuan, maka dapat diselesaikan; jika simpul leaf bukan simpul tujuan, maka tidak dapat diselesaikan. Pada pseudocode tersebut, dikerjakan oleh baris:

if n is a leaf node {

if the leaf is a goal node, return true else return false

}

2.4.4 Prinsip Pencarian Solusi dengan Metode Runut Balik (Backtracking)

Langkah-langkah pencarian solusi dapat dilakukan dengan metode sebagai berikut:

1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah mengikuti aturan pencarian mendalam (DFS). Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup (live node). Simpul hidup yang sedang diperluas dinamakan simpul-E (Expand-node).

2. Tiap kali simpul-E diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E tersebut “dibunuh” sehingga 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 pernah diperluas lagi.

3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan runut balik ke simpul hidup terdekat (simpul orangtua). Selanjutnya simpul ini menjadi simpul-E yang baru.

Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul hidup untuk runut balik.


(36)

Berikut ini adalah contoh penerapan algoritma Backtracking pada persoalan N-Ratu (The N-Queens Problem).

Persoalan: Diberikan sebuah papan catur yang berukuran NxN dan empat buah ratu. Bagaimanakah menempatkan N buah ratu (Q) itu pada petak-petak papan catur sedemikian sehingga tidak ada dua ratu atau lebih yang terletak pada satu baris yang sama, atau pada satu kolom yang sama atau pada satu diagonal yang sama.

Berdasarkan pada “Bahan Kuliah ke- 10 : Algoritma Runut-Balik (Backtracking) Lanjutan” karangan Rinaldi Munir, solusi dari permasalahan tersebut adalah sebagai berikut:

X = (x1,x2,x3,x4), dimana X merupakan vektor dan xi ∈ Si

S = {1,2,3,4}, S menyatakan kolom pada papan catur.

Dari hal ini, dapat dibentuk pohon ruang solusi persoalan 4-Ratu yang terlihat pada Gambar 2.7 sebagai berikut:

Gambar 2.14 Pohon ruang kemungkinan solusi persoalan 4-Ratu

1

5 7 10 12 15 17 21 23 26 28 31 33 37 39 42 44 47 49 53 55 58 60 63 65

4 6 9 11 14 16 20 22 25 27 30 32 36 38 41 43 46 48 52 54 57 59 62 64

3 8 13 19 24 29 35 40 45 51 56 61

2 18 34 50

x1=1 x1=2 x1=3 x1=4

x2=2

x2=3 x2=4 x2=1

x2=4

x1=1

x2=1 x2=2 x2=4 x2=1 x2=2 x2=3

x3=3 x3=4 x3=2 x3=4

x3=2 x3=3

x3=3 x3=4

x3=3 x3=4

x3=1 x3=3

x3=2 x3=4

x3=1 x3=4

x3=1 x3=2

x3=2 x3=3

x3=1 x3=3

x3=1 x3=2

x4=4

x4=3

x4=4

x4=2

x4=3

x4=2

x4=4

x4=3

x4=4

x4=3

x4=3

x4=1

x4=4

x4=2

x4=4

x4=1

x4=2

x4=1

x4=3

x4=2

x4=3

x4=1

x4=2


(37)

Dari gambar, dapat dilihat ruang seluruh solusi yang mungkin diterapkan pada persoalan 4-Ratu pada papan catur tersebut. Langkah-langkah solusi dengan menggunakan backtracking adalah berikut :

1. Menelusuri node dari akar sampai ke daun yang membentuk ruang solusi secara DFS. Penelusuran dilakukan dengan mempertimbangkan setiap batasan atau kriteria yang telah ditetapkan.

2. Apabila node yang dikunjungi memenuhi kriteria, maka akan dilakukan penulusuran menuju node berikutnya. Sebaliknya, apabila node yang dikunjungi tidak memenuhi kriteria, maka akan dilakukan backtracking menuju node yang berada di atas dan node tersebut sampai ke bawahnya tidak dipertimbangkan lagi.

3. Pencarian berhenti apabila ditemukan solusi atau tidak ada node hidup pada pohon tersebut.

Dari langkah-langkah tersebut, dapat dilihat contoh solusi pada Gambar 2.8 dan pohon solusi persoalan 4-Ratu pada papan catur pada Gambar2.9.

1 (a) 1 2 1 2 1 3 2 1 3 2 1 1 2 1 3 2 4

(b) (c) (d)

(e) (f) (g) (h)


(38)

1

15 31

9 11 14 16 30

3 8 13 19 24 29

2 18

x1=1

x2=4 x2=2

x2=3 x2=4

x1=2

x2=1

x2=3

x3=2 x3=4

x3=2 x3=3

x3=1

x4=3 x

4=3

B

B B

B B

B B


(39)

BAB 3

ANALISIS DAN PERANCANGAN APLIKASI

3.1 Analisis

Dalam merancang suatu sistem diperlukan analisis terhadap sistem yang akan dirancang, dengan tujuan agar sistem yang dirancang nantinya akan menjadi tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga. Di samping itu dengan dilakukannya analisis kita akan dapat mempermudah kerja kita dalam membuat sistem.

3.1.1 Representasi Lingkungan

Lingkungan merupakan suatu interaksi dari sebuah wadah atau tempat yang berkumpul sehingga terjadi tindakan saling timbal-balik. Gambar berikut merupakan ilustrasi dari Magic square.

1 2 3 4

A B C D

Gambar 3.1 Ilustrasi Magic square

Dari ilustrasi diatas kita dapat melihat bahwa nantinya akan ada berkumpul beberapa nilai atau bilangan sebagai hasil dari suatu interaksi antara manusia (user) dengan komputer sehingga terbentuknya suatu Magic square.


(40)

3.1.2 Analisis Algoritma

Seperti yang telah dipaparkan pada bab sebelumnya, algoritma yang digunakan untuk membangun aplikasi ini adalah algoritma Runut-balik (Backtraking).

Pada algoritma Backtracking, ada beberapa properti yang perlu dipertimbangkan yaitu properti solusi persoalan, properti komponen vektor solusi dan properti kriteria pembatas. Berikut ini adalah penjabaran properti-properti tersebut.

1. Properti Solusi Persoalan

Properti solusi persoalan merupakan properti yang berisikan simpul-simpul solusi dari persoalan. Pada permainan magic square ini, simpul-simpul persoalan merupakan kotak permainan yang tersedia pada papan matriks A, B, dan C. Kotak-kotak tersebut berisikan nilai dari 1-16.

S = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}

2. Properti Komponen Vektor Solusi

Properti komponen vektor sulusi merupakan parameter yang digunakan untuk mengarahkan penelusuran simpul menuju ke arah solusi. Parameter ini terdiri atas m, dan k. m untuk menyatakan titik koordinat dari matriks B dan k menyatakan titik koordinat pada matriks A. Dimana m memiliki parameter untuk menentukan kolom dan baris yaitu x, dan y. x disini merupakan kolom dan y merupakan baris sehingga terjadi titik koordinat m(x,y). Begitu juga untuk parameter k, juga memiliki parameter untuk kolom dan baris yaitu i, dan j. Dimana I merupakan kolom dan j merupakan baris dan titik koordinat k(i,j).

3. Properti Kriteria Pembatas

Properti kriteria pembatas merupakan properti yang berupa fungsi untuk menentukan apakah simpul-simpul mengarah ke solusi. Kriteria pembatas yang diterapkan pada algoritma Backtracking ini, mengacu pada strategi yang akan


(41)

dipakai pada permainan magic square. Strategi tersebut adalah memindahkan semua nilai yang ada pada matriks B ke matriks A dengan mencari nilai yang tepat pada kriteria yang telah ditentukan sistem yaitu 34 sehingga terjadi urutan nilai yang acak.

Berikut ini adalah pseudocode penerapan algoritma runut balik (backtracking) pada permainan magic square.

procedure Backtrack(input n: integer) {mencari solusi persoalan versi iteratif; Masukan : n, yaitu panjang vektor solusi Keluaran : solusi x =(x[1],…, x[n]) }

Deklarasi: k : integer Algoritma:

k ←1

while k > 0 do if

(x[k] belum dicoba sampai x[k]_T[(k)) and (B(x[1], x[2], ..., x[n]) = true) then

if((x[1],x[2],...,x[k])adalah lintasan akar ke daun) then

CetakSolusi(x) endif

k ←k+1 else

k ←k-1 endif

endwhile {k=0}

Berikut ini adalah contoh kasus untuk penelusuran algoritma runut balik (backtrackinng) pada permainan magic square.

Matriks A Matriks B Matriks C

Gambar 3.2 Matriks A Jalannya Solusi, Matriks B Sample, Matriks C Hasil dari Solusi 1 2 3 4

5 6 7 8 9 10 11 12 13 14 15 16


(42)

Gambar 3.2 diatas merupakan gambar keadaan awal dari papan matriks A, matriks B, dan Matriks C. Berdasarkan gambar diatas, maka penelusuran pertama berjalan dimulai dari m(1,1) yang nilainya 1 dan akan masuk ke k(1,1) jika nilai tersebut dapat memenuhi kriteria yang telah ditentukan sistem dan berlanjut penelusuran untuk k(1,2) dan nilai pada m(1,2) masih memenuhi kriteria maka akan dipindahkan sampai ke tingkat tertinggi sehingga untuk nilai k(1,3) = m(4,3) dan k(1,4) = m(4,4). Penelusuran yang terjadi sebenarnya masih mencari nilai horisontal saja sebagai contoh untuk penelusuran vertical dan penelusuran diagonal karena kedua penelusuran ini memiliki sifat menunggu dari penelusuran horisontal.

Pada penelusuran selanjutnya untuk mendapatkan nilai k(2,1), maka yang berjalan disini adalah penelusuran horisontal dan penelusuran vertikal untuk mendapatkan nilai maksimal sehingga didapat nilai dari matriks B adalah m(3,4). Untuk penelusuran pada k(2,2) yang berjalan adalah penelusuran horisontal, penelusuran vertikal dan penelusuran diagonal. Untuk memperjelas semua nilai yang berpindah kita lihat gambar pohon ruang status di bawah ini:

1. Penelusuran Horisontal

Gambar 3.3 Pohon Ruang Status Terhadap Nilai Horisontal 34

12 13 8

1

2 14 7 11

15 3 10 6

16 5 4 9

m=1

m=1+2

m=1+2+15

m=1+2+15+16

m=12 m=13

m=8 m=12+14 m=12+14+3 m=12+14+3+5 m=13+7 m=13+7+10 m=13+7+10+4 m=8+11 m=8+11+6 m=8+11+6+9


(43)

2. Penelusuran Vertikal

Gambar 3.4 Pohon Ruang Status Terhadap Nilai Vertikal

3. Penelusuran Diagnoal

Gambar 3.5 Pohon Ruang Status Terhadap Nilai Diagonal 34

2 15 16

1

12 14 3 5

13 7 10 4

8 11 6 9

m=1

m=1+12

m=1+12+13

m=1+12+13+8

m=2 m=15

m=16 m=2+14 m=2+14+7 m=2+14+7+11 m=15+3 m=15+3+10 m=15+3+10+6 m=16+5 m=16+5+4 m=16+5+4+9 m=1 m=1+14 m=1+14+10 m=1+14+10+9 m=16 m=16+3 m=16+3+7 m=16+3+7+8 34 16 1

14 3

10 7


(44)

3.2Perancangan Sistem

Perancangan sistem yang akan dibahas meliputi perancangan alur permainan pada permainan magic square, perancangan aplikasi permainan dan perancangan antarmuka.

3.2.1 Perancangan Alur Permainan

Pada perancangan alur permainan ini, akan dirancang langkah – langkah bermain pada permainan magic square dengan flowchart berdasarkan peraturan permainan magic square tersebut. Peraturan magic square ini telah dibahas pada bab sebelumnya. Gambar 3.6 berikut adalah gambar flowchart permainan magic square.


(45)

mulai 4 3 2 1 4 1 m m m m m i + + + =

= 8 7 6 5 8 5 m m m m m i + + + =

= m(x,y), l ? 34 4 1 =

i= m

? 34

8

5

=

i= m

12 11 10 9 12 9 m m m m m i + + + =

= ? 34 12 9 =

i= m

selesai ya ya ya ya 16 15 14 13 16 13 m m m m m i + + + =

= ? 34 16 13 =

= i m tidak tidak tidak tidak


(46)

3.2.2 Perancangan Aplikasi

Perancangan sistem dapat dibagi menjadi dua tahap yaitu perancangan konseptual dan perancangan fisik yang tujuan utamanya adalah menghasilkan suatu rancangan yang mampu memenuhi kebutuhan pengguna aplikasi.

3.2.2.1 Perancangan Konseptual

Tahapan perancangan ini menitikberatkan pada perencanaan konsep, misalnya sistem kontrol, rancangan modul dan aliran data. Disini penulisan untuk membuat perencanaan konsep tersebut menggunakan cara dengan fungsional aplikasi yaitu dengan use case dan akan dijelaskan juga proses aplikasi tersebut.

3.2.2.2 Fungsional Aplikasi

Use case adalah teknik untuk mendeskripsikan persyaratan fungsional sebuah sistem. Fungsi use case adalah mendeskripsikan interaksi antara user dan aplikasi secara eksternal, mirip dengan diagram konteks pada DFD sehingga tidak dijumpai adanya hubungan antara use case dengan class-class. Berikut adalah diagram use case aplikasi Magic Square.

Gambar3.7 Use case Aplikasi Player

Waktu

Tanpa Waktu Main


(47)

3.2.2.3 Proses Akitivitas Aplikasi

Proses yang akan dideskripsikan adalah proses yang terdapat pada diagram use case di atas, yaitu Main, Waktu, dan Tanpa Waktu. Berikut ini adalah tabel proses aktivitas aplikasi untuk use case di atas.

1. Bermain

Bermain merupakan suatu proses yang dijalankan oleh user untuk dapat bermain. Dibawah ini merupakan table proses aplikasi.

Tabel 3.1 Tabel Proses Bermain

Hal Deskripsi

Use case Name Bermain

Brief Description Player menjalankan aplikasi dan langsung mulai bermain.

Precondition Aplikasi aktif

Flow of Events 1. Player menjalankan aplikasi

Magic square.

2. Sistem menampilkan interface aplikasi.

3. Player memindahkan nilai yang ada di matriks B ke matriks A yang kosong.

4. Aplikasi membaca inputan player.

Post Condition -

Alternative Flows and Exception Jika permainan belum berakhir maka proses akan kembali berulang.


(48)

2. Waktu

Waktu Merupakan bagian Radio Button dari suatu permainan ini untuk mencari solusi yang terjadi berdasarkan waktu yang tersedia.

Tabel 3.2 Tabel Proses Waktu

Hal Deskripsi

Use case Name Waktu

Brief Description Proses ini berfungsi untuk melihat jalannya penelusuran dari magic square.

Precondition Tidak ada

Flow of Events 1. Aplikasi menampilkan 3 papan permainan.

2. Aplikasi ini bermain dengan

sendirinya dengan memindahkan semua nilai yang

ada di matriks B ke matriks A dan di implementasikan ke matriks C.

3. Kita dapat melihat jalannya permainan tersebut

Post Condition Tampilan 3 papan Permainan Alternative Flows and Exception Tidak ada


(49)

3. Tanpa Waktu

Tanpa waktu ini merupakan pilihan untuk melihat penelusuran secara cepat sehingga hamper tidak dapat terbaca oleh mata user.

Tabel 3.3 Tabel Proses Tanpa Waktu

Hal Deskripsi

Use case Name Tanpa Waktu

Brief Description Proses ini berfungsi untuk penelusuran solusi secara cepat

Precondition Tidak ada

Flow of Events 1. Aplikasi ini menampilkan 3

buah matriks A, B, danC

2. Komputer akan meletakkan nilai yang sesuai pada tempatnya secepat mungkin.

Post Condition Tampilan Papan Permainan Alternative Flows and Exception Tidak ada

3.3 Perancangan Fisik

Pada tahap ini rancangan yang telah dibuat para perancangan konseptual diterjemahkan ke dalam bentuk fisik sehingga terbentuk spesifikasi yang lengkap. Tahapan ini menitikberatkan pada proses rancang bangun antarmuka (interface), rancangan basis data dan sebagainya.


(50)

3.3.1 Perancangan Antarmuka Pengguna (user interface)

Perancangan antarmuka merupakan tahap penting, sebab di sini user akan melakukan interaksi dengan aplikasi. Antarmuka yang akan dibangun harus sederhana namun cukup menarik dalam arti tidak berlebihan sehingga mudah dipahami dan dipelajari user.

1. Form dari Magic square

Berikut adalah gambar rancangan antarmuka aplikasi Magic square.

Gambar 3.8 Form Utama Magic Square

Form utama dari permainan ini berupa 3 buah matriks yaitu A, B, dan C yang akan menunjukkan bagaimana penelusuran dari tiap kolom dan baris dijalankan dan di implementasikan sehingga terjadinya nilai hasil yang maksimal. Layar antarmuka ini akan langsung ditampilkan begitu user mengeksekusi program aplikasi. Form ini akan menampilkan Radio Button, waktu dalam detik, penelusuran, dan nilai solusi.


(51)

2. Menu Pilihan

Menu Pilihan disini berguna untuk menjalankan solusi dari tiap-tiap kemungkinan yang terjadi baik itu kita yang menjalankannya atau komputer yang menjalankan berdasarkan waktu yang telah ditentukan atau pun secara cepat tanpa berdasarkan waktu.lihat gambar di bawah

Gambar 3.9 Radio Button dari Magic Square

Gambar diatas merupakan radio button pemilihan, jika kita sebagai user memilih main, maka user harus menyusun semua nilai yang di matriks B ke matriks A, dengan cara memindahkan semua nilai yang terurut dari 1-16 dan disusun secara acak sehingga memiliki hasil yang magic. Jika user memilih berdasarkan waktu atau tidak berdasarkan waktu maka user hanya melihat solusi-solusi yang terdapat pada 3 buah matriks tersebut.

3. Waktu

Waktu berguna untuk melihat jalannya solusi sehingga kita mengetahui bagaimana sebuah magic square ini terbentuk dengan menggunakan algoritma runut balik (backtracking). Awal waktu yang ditentukan adalah 250 detik sehingga kita dapat melihat jalannya solusi dengan cukup baik dan bagaimana magic square terbentuk.


(52)

4. Solusi

Solusi berguna untuk melihat berapa banyak solusi yang dapat terjadi pada matriks yang berordo 4x4 dan membentuk hasil yang magic. Tombol lanjut solusi ini berfungsi untuk melanjutkan penelusuran yang di cari dari matriks-matriks tersebut. Solusi merupakan hasil yang telah tercapai dantanda checklist merupakan tanda untuk kita bisa melihat slusi secara manual. Jika kita tidak checklist tanda solusi maka penelusuran akan dicari terus sampai habis secara otomatis.

Gambar 3.11 Menu Lanjut Solusi

3.3.2 Perancangan Piranti Masukan

Piranti interaksi merupakan alat bantu bagi user ketika menggunakan suatu aplikasi. Untuk itu penulis berusaha merancang aplikasi dengan beberapa piranti masukan yaitu mouse dan keyboard. Dengan adanya dukungan aplikasi terhadap kedua jenis piranti ini maka diharapkan user akan lebih merasa mudah dan nyaman saat berinteraksi dengan aplikasi permainan ini.


(53)

BAB 4

IMPLEMENTASI

4.1 Implementasi Aplikasi

Tahap implementasi merupakan lanjutan dari tahap perancangan. Pada tahap ini seluruh spesifikasi dari aplikasi yang dirancang akan diterjemahkan ke dalam bahasa pemrograman sehingga menghasilkan sebuah perangkat lunak.

4.2 Spesifikasi Perangkat Lunak

Perangkat lunak yang digunakan dalam pembuatan aplikasi permainan ini adalah Macromedia Dreamweaver 8.0 yang di bangun oleh Macromedia sendiri dan hanya menggunakan basis .html dan javascript.

4.3 Spesifikasi Perangkat Keras

Spesifikasi perangkat keras yang dibutuhkan untuk bisa menjalankan aplikasi dari permainan ini adalah:

1. Processor Intel Core 2 duo 2.0 GHz 2. Memori (RAM) sebesar 512 MB 3. Hardisk yang digunakan 80 GB

4. Monitor 14.1” dengan resolusi layar 1204 x 768 pixel 5. Mouse dan Keyboard


(54)

4.4.1 Tampilan Utama

Tampilan utama dari aplikasi permainan magic square ini dapat dilihat pada gambar di bawah ini. Gambar tersebut memperlihatkan tampilan 3 buah matriks A, matriks B, dan matriks C. Ketika permainan dimulai, matriks A dan C dalam keadaan kosong, sedangkan pada matriks B berisikan nilai 1 sampai 16. Perhatikan gambar 4.1 dibawah ini.

Gambar 4.1 Tampilan Utama Magic Square

Dari gambar 4.1 merupakan tampilan utama dari permainan magic square ini. Dibawah ini merupakan keterangan dari tampilan utama magic Square.

1. Matriks dan Hasil

Pada aplikasi ini penulis merancang tiga buah matriks yaitu matriks A, matriks B, dan matriks C.


(55)

Matriks A berfungsi untuk mencari solusi yang ada berdasarkan algoritma runut balik (backtracking) sehingga kita mengetahui nilai apa saja yang pertama sekali seharusnya dipindahkan dari matriks B ke matriks A.

b. Matriks B

Matriks B merupakan matriks yang memiliki himpunan semesta yang memiliki nilai dari 1 sampai 16 yang tersusun secara berurut dimulai dari (1,1) sampai (4,4).

c. Matriks C

Matriks C merupakan implementasi dari penelusuran matriks A.

Berdasarkan pada penjelasan bab sebelumnya dimana ordo matriks n x n, dan elemen di dalamnya berbeda yaitu 1,2,3,…,n2, maka hasil untuk magic square adalah

Berdasarkan rumus diatas, maka hasil magic square adalah 34.

Gambar 4.2 Gambar Matriks dan Hasil

2. Menu Pilihan

Menu pilihan berfungsi untuk memilih apakah user yang ingin bermain atau komputer yang bermain untuk mencari berapa banyak solusi yang ada. Menu pilihan ini terdiri dari:


(56)

Menu pilihan main merupakan menu untuk user bermain sendiri dan bermain dengan logikanya sendiri, sehingga didapat solusi dengan baik.

b. Berdasarkan waktu

Menu pilihan berdasarkan waktu merupakan menu untuk mencari solusi berdasarkan waktu yang telah ditentukan untuk mendapatkan beberapa solusi. c. Tidak berdasarkan waktu

Menu pilihan tidak berdasarkan waktu merupakan menu untuk mencari solusi secara cepat sehingga kita kurang tahu bagaimana proses algoritma runut balik (backtracking) ini bekerja.

Gambar 4.3 Menu Pilihan

3. Waktu

Waktu merupakan tempat melihat jalannya solusi yang terjadi di tiap penelusuran, jika waktu awal yang ditentukan adalah 250 detik maka user akan dapat melihat jalannya penelusuran yang terjadi pada matriks B dan matriks A, tetapi jika waktu yang ditentukan hanya berkisar 1 atau 10 detik user tidak akan dapat melihat bagaimana penelusuran itu berjalan.

Gambar 4.4 Waktu

4. Solusi

Solusi berguna untuk melihat berapa banyak solusi yang terjadi dari penelusuran yang dijalankan pada matriks yang berordo 4x4 dan membentuk nilai penjumlahan yang magic yaitu 34. Tombol lanjut solusi ini berfungsi untuk melanjutkan penelusuran yang di cari dari matriks-matriks tersebut. Solusi merupakan hasil yang telah tercapai dan tanda checklist merupakan tanda untuk user bisa melihat


(57)

solusi secara manual. Jika user tidak checklist tanda solusi maka penelusuran akan dicari terus sampai habis secara otomatis.

Gambar 4.5 Menu Solusi

4.4.2 Jalannya Permainan

Sebagai implementasi dari permainan maka dapat dilihat bagaimana proses permainan ini berjalan. Perhatikan gambar dibawah sebagai tampilan awal dari permainan.

Gambar 4.6 Gambar Tampilan awal dari Permainan Magic Square 1. Jika user yang bermain

Jika user yang akan bermain maka button yang di pilih adalah radio batton main. Disini user akan mencari nilai mana yang akan di pindahkan dari matriks B ke matriks A. Disini sebenarnya user yang bermain akan di pandu oleh komputer untuk memilih nilai mana yang tepat untuk dimasukkan. Perhatikan gambar dibawah ini.


(58)

(a)

(b)

Gambar 4.7 (a),(b) merupakan tampilan bermain user

Pada gambar 4.7 diatas merupakan tampilan user bermain, dimana user menginputkan nilai satu terlebih dahulu setelah itu komputer akan memandu user untuk nilai apa saja yang selanjutnya akan di pindahkan dengan memberikan tanda berwarna hijau. Jika kotak yang berisikan warna hijau tersebut habis dan permainan belum selesai maka penelusuran dari user akan gagal sebelum kotak berpindah dan akan dikembalikan lagi nilai-nilai tersebut ke tempatnya dengan


(59)

manual dalam istilah backtrack dan mencari penelusuran yang benar sehingga terjadinya nilai yang magic.

2. Jika bermain berdasarkan waktu

Jika user ingin mengetahui bagaimana jalannya magic square ini, maka user akan memilih button berdasarkan waktu karena jika waktu yang user tentukan sekitar 100 detik lebih, maka user akan dapat melihat bagaimana cara permainan ini sebenarnya terjadi dengan menelusuri nilai-nilai yang tersedia di matriks B. Perhatikan gambar di bawah ini.

(a)


(60)

(c)

Gambar 4.8 (a),(b),(c) Tampilan Berdasarkan Waktu

Berdasarkan gamabar 4.8 terlihat jelas bahwa nilai pada kolom 2 baris 1 selalu bertukar untuk mencari nilai yang tepat dengan cara menelusuri semua nilai yang tersedia pada matriks B. jika nilai didapat maka nilai tersebut akan disimpan pada tempatnya di matriks A dan pada kolom-kolom berikutnya pun akan seperti itu, akan ditelusuri semua nilai yang terjadi dan akan kembali jika nilai tetap tidak ditemukan. Jika selesai melakukan penelusuran maka solusi yang dicari akan selesai tetapi disini yang selesai baru nilai solusi pertama. Masih banyak solusi yang terjadi pada matriks-matriks tersebut.

3. Jika bermain tidak berdasarkan waktu

Jika permainan tanpa berdasarkan waktu, maka proses ini akan berjalan dengan sangat cepat sehingga kita tidak mengetahui apakah ini memenuhi algoritma runut balik (backtracking) atau tidak. Karena cepatnya permainan yang terjadi maka matriks B seperti terlihat dipindahkan sembarang saja tanpa ada aturan ke tempat matriks A dan langsung di implementasikan ke matriks C. perhatikan gambar dibawah ini.


(61)

(62)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan penelitian yang telah dipaparkan pada bab-bab sebelumnya maka dapat diambil kesimpulan seperti berikut ini.

1. Dalam pembuatan permainan magic square dapat terbukti jika di analisis dengan menggunakan Algoritma Runut Balik (Backtracking).

2. Dalam melakukan pembuktian untuk analisis dari algoritma runut balik (backtracking) dengan menggunakan pohon penelusuran dapat terbukti bahwa range angka 1 samapai 16 dapat diselesaikan dengan kedalaman 4.

3. Algoritma Runut Balik (Backtracking) ini menjalankan fungsinya dengan baik dengan melakukan pencarian sehingga dapat membentuk ruangnya masing-masing.

4. Permainan magic square ini merupakan bagian dari pelatihan untuk menigkatkan kemampuan dalam bidang matematika dan juga meningkatkan nilai logika.


(63)

5.2 Saran

Berikut ini adalah beberapa saran yang perlu dipertimbangkan untuk menjadi landasan penelitian selanjutnya.

1. Permainan ini perlu dikembangkan agar nantinya permainan ini dapat membentuk permainan yang familiar dikalangan masyarakat.

2. Ukuran dari permainan ini sebenarnya bisa ditambahkan lagi, permainan magic square ini tidak hanya membentuk Matrix 4x4, tetapi dapat juga lebih kecil dan lebih besar lagi, yang penting memiliki ordo yang sama sehingga berbentuk bujursangkar.


(64)

DAFTAR PUSTAKA

Astuti, Yuni Dwi. 2006. “Logika dan Algoritma”: http://yuni_dwi.staff.

gunadarma.ac.id/Downloads/files/12677/Bab+7+-+Teknik+Backtracking.pdf.

Diakses tanggal 10 Maret 2010.

Andrews, W.S. 1917. “Magic Squares and Cubes”. Second Edition:

tanggal 2 April 2010.

Caillois, Roger, 1958. Les Jeux Et Les Hommes (Games dan man).

diakses tanggal 7 Juni 2010

Crawford, Chris, 2003. On Game Design

Dyw4sC&printsec=frontcover&dq=chris+crawford+on+game+design&source =bl&ots=7RlvMSwDSu&sig=KWq1vwB3bnP6pSAV5MepUYwtaXU&hl=id &ei=GggMTb7ODYP_8Abh0ZGEDg&sa=X&oi=book_result&ct=result&res num=5&ved=0CEUQ6AEwBA#v=onepage&q&f=false. Diakses tanggal 18 Juni 2010.

Dimond, Jonathan. “Magic Squares”.

Fox, David dan Roman Verhosek, 2002. Micro Java™ Game Development. Indianapolis : Pearson Education.

H, Thomas, et all. 1990. Introduction to Algorithms. Cambridge : The MIT Press. Kristanto, Andri. 2003. Algoritma dan Pemrograman dengan C++. Yogyakarta:

Graha Ilmu.

Munir, Rinaldi. 2004. “Diktat Kuliah IF2251 Strategi Algoritmik”. Program Studi Teknik Informatika STEI ITB.

Munir, Rinaldi. 2006. Penerapan BFS dan DFS pada Pencarian Solusi.

Munir, Rinaldi. 2007. “Makalah IF2251 Strategi Algoritmik”. Program Studi Teknik Informatika STEI ITB.

Nugroho, Adi. 2009. Robert Laforce: Algoritma dan Struktur Data dengan C#. Yogyakarta: Andi.


(65)

Putra, Dhamma Nibbana, et all. Penerapan dan Implementasi Algoritma

Backtracking

Wahid, Fathul. 2004. Dasar-Dasar Algoritma dan Pemrograman. Yogyakarta: Andi

April 2010.

h


(1)

(c)

Gambar 4.8 (a),(b),(c) Tampilan Berdasarkan Waktu

Berdasarkan gamabar 4.8 terlihat jelas bahwa nilai pada kolom 2 baris 1 selalu bertukar untuk mencari nilai yang tepat dengan cara menelusuri semua nilai yang tersedia pada matriks B. jika nilai didapat maka nilai tersebut akan disimpan pada tempatnya di matriks A dan pada kolom-kolom berikutnya pun akan seperti itu, akan ditelusuri semua nilai yang terjadi dan akan kembali jika nilai tetap tidak ditemukan. Jika selesai melakukan penelusuran maka solusi yang dicari akan selesai tetapi disini yang selesai baru nilai solusi pertama. Masih banyak solusi yang terjadi pada matriks-matriks tersebut.

3. Jika bermain tidak berdasarkan waktu

Jika permainan tanpa berdasarkan waktu, maka proses ini akan berjalan dengan sangat cepat sehingga kita tidak mengetahui apakah ini memenuhi algoritma runut balik (backtracking) atau tidak. Karena cepatnya permainan yang terjadi maka matriks B seperti terlihat dipindahkan sembarang saja tanpa ada aturan ke tempat matriks A dan langsung di implementasikan ke matriks C. perhatikan gambar dibawah ini.


(2)

(3)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan penelitian yang telah dipaparkan pada bab-bab sebelumnya maka dapat diambil kesimpulan seperti berikut ini.

1. Dalam pembuatan permainan magic square dapat terbukti jika di analisis dengan menggunakan Algoritma Runut Balik (Backtracking).

2. Dalam melakukan pembuktian untuk analisis dari algoritma runut balik (backtracking) dengan menggunakan pohon penelusuran dapat terbukti bahwa range angka 1 samapai 16 dapat diselesaikan dengan kedalaman 4.

3. Algoritma Runut Balik (Backtracking) ini menjalankan fungsinya dengan baik dengan melakukan pencarian sehingga dapat membentuk ruangnya masing-masing.

4. Permainan magic square ini merupakan bagian dari pelatihan untuk menigkatkan kemampuan dalam bidang matematika dan juga meningkatkan nilai logika.


(4)

5.2 Saran

Berikut ini adalah beberapa saran yang perlu dipertimbangkan untuk menjadi landasan penelitian selanjutnya.

1. Permainan ini perlu dikembangkan agar nantinya permainan ini dapat membentuk permainan yang familiar dikalangan masyarakat.

2. Ukuran dari permainan ini sebenarnya bisa ditambahkan lagi, permainan magic square ini tidak hanya membentuk Matrix 4x4, tetapi dapat juga lebih kecil dan lebih besar lagi, yang penting memiliki ordo yang sama sehingga berbentuk bujursangkar.


(5)

DAFTAR PUSTAKA

Astuti, Yuni Dwi. 2006. “Logika dan Algoritma”: http://yuni_dwi.staff.

gunadarma.ac.id/Downloads/files/12677/Bab+7+-+Teknik+Backtracking.pdf.

Diakses tanggal 10 Maret 2010.

Andrews, W.S. 1917. “Magic Squares and Cubes”. Second Edition: tanggal 2 April 2010.

Caillois, Roger, 1958. Les Jeux Et Les Hommes (Games dan man). diakses tanggal 7 Juni 2010

Crawford, Chris, 2003. On Game Design Dyw4sC&printsec=frontcover&dq=chris+crawford+on+game+design&source =bl&ots=7RlvMSwDSu&sig=KWq1vwB3bnP6pSAV5MepUYwtaXU&hl=id &ei=GggMTb7ODYP_8Abh0ZGEDg&sa=X&oi=book_result&ct=result&res num=5&ved=0CEUQ6AEwBA#v=onepage&q&f=false. Diakses tanggal 18 Juni 2010.

Dimond, Jonathan. “Magic Squares”.

Fox, David dan Roman Verhosek, 2002. Micro Java™ Game Development. Indianapolis : Pearson Education.

H, Thomas, et all. 1990. Introduction to Algorithms. Cambridge : The MIT Press.

Kristanto, Andri. 2003. Algoritma dan Pemrograman dengan C++. Yogyakarta: Graha Ilmu.

Munir, Rinaldi. 2004. “Diktat Kuliah IF2251 Strategi Algoritmik”. Program Studi Teknik Informatika STEI ITB.

Munir, Rinaldi. 2006. Penerapan BFS dan DFS pada Pencarian Solusi.

Munir, Rinaldi. 2007. “Makalah IF2251 Strategi Algoritmik”. Program Studi Teknik Informatika STEI ITB.

Nugroho, Adi. 2009. Robert Laforce: Algoritma dan Struktur Data dengan C#. Yogyakarta: Andi.


(6)

Putra, Dhamma Nibbana, et all. Penerapan dan Implementasi Algoritma Backtracking

Wahid, Fathul. 2004. Dasar-Dasar Algoritma dan Pemrograman. Yogyakarta: Andi

April 2010.

h