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
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,
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
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.
ABSTRAK
ANALYSIS AND IMPLEMENTATION ALGORITMH OF BACKTRACKING TO THE MAGIC SQUARE GAME
ABSTRACT
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
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
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
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
ABSTRAK
ANALYSIS AND IMPLEMENTATION ALGORITMH OF BACKTRACKING TO THE MAGIC SQUARE GAME
ABSTRACT
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).
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.
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
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.
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
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
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
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
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
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.
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.
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
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
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
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
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
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.
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
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
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)
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)
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 }
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
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
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
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
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)
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
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.
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:
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.
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
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
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
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),
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.
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.
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
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
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.
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
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
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
(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
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)
(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
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
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
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.
Putra, Dhamma Nibbana, et all. Penerapan dan Implementasi Algoritma
Backtracking
Wahid, Fathul. 2004. Dasar-Dasar Algoritma dan Pemrograman. Yogyakarta: Andi
April 2010.
h