• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2016

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

Copied!
65
0
0

Teks penuh

(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

(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,

(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

(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

(6)

ANALYSIS AND IMPLEMENTATION ALGORITMH OF BACKTRACKING TO THE MAGIC SQUARE GAME

ABSTRACT

(7)

DAFTAR ISI Bab 1 Pendahuluan 1.1Latar Belakang 1

Bab 2 Tinjauan Pustaka 2.1 Permainan 6

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

(11)

ABSTRAK

(12)

ANALYSIS AND IMPLEMENTATION ALGORITMH OF BACKTRACKING TO THE MAGIC SQUARE GAME

ABSTRACT

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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.

(30)

Tabel 2.1 Isi Stack dalam DFS

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

(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

(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)

(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

(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

(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

(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)

(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

(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]) lintasan akar ke daun) then

Berikut ini adalah contoh kasus untuk penelusuran algoritma runut balik

(backtrackinng) pada permainan magic square.

(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:

(43)
(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.

(45)
(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

(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

(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

(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),

(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

(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

(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

(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

(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

(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

(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

(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

(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.

(65)

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

Backtracking

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

April 2010.

h

Gambar

Gambar 2.2 Magic Square dengan nilai berbentuk diagonal
Gambar 2.5 Magic Square bilangan         Gambar 2.6 Magic Square Transpose              habis di bagi 2                                              gambar 2.5
Gambar 2.11 Matriks tak beraturan                    Gambar 2.12 Matriks beraturan
Tabel 2.1 Isi Stack dalam DFS
+7

Referensi

Dokumen terkait

Algoritma Linear Search dapat diimplementasikan pada permainan ini untuk mencocokkan jawaban dan tidak perlu dilakukan pengurutan data sehingga penelusuran dapat langsung

Pada gambar 4.27 menunjukkan pencarian solusi permainan dengan algoritma Depth First Search berhasil dilakukan dengan variable button id 1=100 dengan indeks acuan 1,0, yang

Selain itu untuk variasi sudoku kata, sebelum grid itu dibangkitkan permainan akan mengacak posisi dari deretan huruf yang membentuk suatu kata.. Pada awal

Algoritma Warnsdorff adalah salah satu algoritma yang dapat mempercepat proses pencarian simpul secara backtracking yang akan dipilih dalam proses pencarian solusi pada

Penerapan algoritma Depth Limited Search pada hint permainan Peg Solitaire di papan permainan versi inggris ukuran 3 x 3 dan triangular berukuran 4 x 4, 5 x 5, serta 7 x 7,

Algoritma ini menggunakan teknik depth-first search untuk melakukan proses pencarian dengan tingkat kedalaman yang terbatas dan fungsi evaluasi yang digunakan adalah

Kode Sumber 4.12 Implementasi Fungsi UpdateNodeGruopDFS Untuk setiap node yang belum memiliki kelompok, fungsi UpdateNodeGroupDFS melakukan depth-first search pada graph

Penggunaan fuzzy sendiri, mengalami kesulitan jika tidak dikatahui batas-batas dan bentuk keanggotaan yang tepat, untuk itu digunakan algoritma genetika, sehingga proses untuk