BIODATA
Nama : Agus Mustaram
NIM : 10109518
T.T.L : Sumedang, 14 September 1991
Jenis Kelamin : Laki-laki
Agama : Islam
Alamat di Bandung : Jl. Siliwangi Dalem III No 75, Bandung
No. Hp : 087827793787
Email : agusmustaram@gmail.com
Judul Skripsi : Pembangunan Game Tradisional Damdaman
Berbasis Desktop
Jurusan : Teknik Informatika
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer
AGUS MUSTARAM
10109518
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
KATA PENGANTAR
Assalaamu’alaikum wr. wb,
Puji syukur penulis panjatkan kepada Allah SWT yang telah melimpahkan
rahmat hidayah dan karunia-Nya, shalawat serta salam semoga selalu tercurah
kepada Rasulullah SAW, sehingga penulis dapat menyelesaikan skripsi yang berjudul “Pembangunan Game Tradisional Damdaman Berbasis Desktop”.
Adapun tujuan dari penyusunan skripsi ini adalah untuk memenuhi salah
satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi
Teknik Informatika, Universitas Komputer Indonesia.
Dengan keterbatasan ilmu dan pengetahuan yang dimiliki oleh penulis,
maka penulis membutuhkan peran serta dari pihak lain dalam proses penyelesaian
skripsi ini. Oleh karena itu ijinkanlah penulis untuk menyampaikan ucapan terima
kasih yang sebesar-besarnya kepada :
1. Allah SWT, yang telah memberikan rahmat, hidayah, dan karunia-Nya
kepada penulis sehingga dapat menyelesaikan skripsi dengan baik.
2. Nabi Muhammad Rasulullah SAW yang telah menyampaikan wahyu
Allah.
3. Kedua Orang Tua Bapak Endang Suryana Dan ibu Roswati yang telah
memberikan kasih sayang, doa dan dorongan baik moril dan materil yang
tiada henti.
4. Bapak Dr. Ir. Eddy Soeryanto Soegoto, M.Sc., selaku rektor Universitas
Komputer Indonesia.
5. Bapak Prof. Dr. H Denny Kurniadie, Ir., M.Sc., selaku Dekan Fakultas
Teknik dan Ilmu Komputer.
6. Bapak Irawan Afrianto, S.T., M.T., selaku Ketua Jurusan Program Studi
iv
telah meluangkan waktu untuk memberikan nasehat, kritik dan saran
selama penyusunan skripsi ini.
9. Bapak Galih Hermawan, S.Kom., M.T. Selaku penguji II. Terima kasih
karena telah meluangkan waktu untuk memberikan nasehat, kritik dan
saran selama penyusunan skripsi ini.
10.Ibu Utami Dewi W, S.Kom., selaku dosen wali kelas IF-12 Angkatan
2009.
11.Seluruh staf dosen jurusan Teknik Informatika Universitas Komputer
Indonesia.
12.Sekretariat jurusan Teknik Informatika Universitas Komputer Indonesia.
13.Teman-teman di Jurusan Teknik Informatika Angkatan 2009 khususnya
kelas IF-12 terima kasih atas doa, bantuan dan dorongannya.
14.Serta semua pihak yang telah turut membantu dalam penyusunan skripsi
ini, yang tidak bisa disebutkan satu persatu.
Didalam penulisan skripsi ini, penulis telah berusaha semaksimal mungkin
walaupun demikian penulis menyadari bahwa skripsi ini jauh dari sempurna.
Untuk itu penulis akan selalu menerima segala masukan yang ditujukan untuk
menyempurnakan skripsi ini. Akhir kata, penulis berharap semoga skripsi ini
dapat bermanfaat bagi penulis pada khususnya dan pembaca pada umumnya.
Wassalamualaikum Wr. Wb.
Bandung, 27 Agustus 2013
v
DAFTAR ISI
LEMBAR JUDUL
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... ix
DAFTAR TABEL ... xiii
DAFTAR SIMBOL ... xiv
DAFTAR LAMPIRAN ... xv
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Maksud Dan Tujuan ... 2
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 3
1.5.1 Metode pengumpulan data ... 4
1.5.2 Metode Pembangunan Perangkat Lunak. ... 4
1.6 Sistematika Penulisan ... 5
BAB 2 LANDASAN TEORI ... 7
2.1 Permainan (Game) ... 7
vi
2.3.2 Langkah Bidak Pada Permainan Damdaman ... 13
2.3.3 Aturan Permainan Damdaman ... 14
2.4 AI (artificial Intellegence) ... 15
2.5 Graph ... 16
2.5.1 Implementasi Graph ... 17
2.5.1.1 Matrik Tetangga ... 18
2.5.1.2 Matrik Jalur ... 19
2.5.1.3 Matrik Beban ... 20
2.6 Pohon Permainan ... 22
2.7 Algoritma Minimax ... 24
2.8 Negascout ... 28
2.8.1 Pemotongan Alpha ... 29
2.8.2 Pemotongan Beta ... 30
2.8.3 Pemotongan Alpha Beta ... 30
2.8.4 Zero-Width Test ... 30
2.9 Diagram Konteks ... 31
2.10 Data Flow Diagram (DFD) ... 32
2.11 Pengujian ... 33
2.11.1 Blackbox Testing ... 33
2.11.2 Whitebox Testing ... 34
2.11 Tools Yang Digunakan ... 39
vii
2.11.2 ActionScript ... 40
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 41
3.1 Analisis Sistem ... 41
3.1.2. Analisis game Sejenis ... 41
3.1.3. Analisis GamePlay Damdaman ... 43
3.1.4 Analisis Tingkat Kesulitan ... 46
3.1.5 Analisis Algoritma ... 46
3.1.5.1 Struktur Data game Damdaman ... 46
3.1.5.2 Fungsi Evaluasi Damdaman ... 48
3.1.5.3 Contoh Kasus Gerak Bidak NPC ... 50
3.1.5.4 Penentuan Kemungkinan Langkah Bidak ... 51
3.1.5.5 Membandingkan Nilai Evaluasi Pada Algoritma Negascout ... 65
3.2 Spesifikasi Kebutuhan Perangkat Lunak ... 70
3.3 Analisis Kebutuhan Non Fungsional ... 71
3.3.1 Analisis Pengguna ... 71
3.3.2 Analisis Perangkat Lunak ... 72
3.3.3 Analisis Perangkat Keras ... 72
3.4 Kebutuhan Fungsional ... 72
3.4.1 Diagram Konteks ... 73
3.4.2 Data Flow Diagram (DFD) ... 73
3.4.2.1 DFD Level 1 game Damdaman ... 73
3.4.2.2 DFD Level 2 Proses Penyajian Menu Utama Game Damdaman ... 74
3.4.2.2 DFD Level 3 Proses Penyajian Permainan ... 75
3.4.2.2 DFD Level 4 Proses Pengolahan Gerak Bidak ... 76
viii
3.6.2 Perancangan Struktur Menu ... 84
2.6.3 Perancangan Antarmuka ... 85
3.6.4 Perancangan Antarmuka Pesan ... 93
3.6.5 Jaringan Semantik ... 95
3.6.5 Perancangan Prosedural ... 96
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM... 105
4.1 Implementasi Sistem ... 105
4.1.1 Perangkat Keras yang Digunakan ... 105
4.1.2 Perangkat Lunak yang Digunakan ... 106
4.2 Implementasi Aplikasi ... 106
4.2.1 Implementasi Antarmuka ... 107
4.3 Pengujian Sistem ... 113
4.3.1 Kasus dan Hasil Pengujian Black-box ... 114
4.3.2 Kasus dan Hasil Pengujian White-box ... 116
4.3.3 Kesimpulan Hasil Pengujian White-Box dan Black-box ... 121
4.3.2 Kuesioner ... 121
4.3.2.1 Hasil Kuesioner ... 123
4.3.2.2 Kesimpulan Kuesioner ... 128
BAB 5 KESIMPULAN DAN SARAN ... 131
5.1 Kesimpulan ... 131
5.2 Saran ... 131
133
DAFTAR PUSTAKA
[1] Dharmamulya,Sukirman. 2005. Permainan Tradisional Jawa. Yogyakarta: Penerbit Kepel Press.
[2] Husna. 2009. 100+ permainan Indonesia untuk kreativitas,ketangkasan dan keakraban. Yogyakarta : PenerbitAndi.
[3] Roger S, Pressman. 2010. Software Engineering, A Practitioner's Approach, Seventh Edition. McGraw-Hill Inc.
[4] Andang Ismail. 2009. Pengertian Game. Diakses 12 Pebruari 2013, dari http://belajarpsikologi.com/metode-permainan-dalam-pembelajaran.
[5] Zaini,Muhammad .1988. Permainan Tradisional Indonesia.
[6] Coppin, B. 2004. Artificial Intelligence Illuminated, Jones and Bartlett. Diakses 12 Pebruari 2013, dari
http://ftmk.utem.edu.my/bachelor-of-computer-science (artificial_intelligence).pdf .
[7] Actionsript. Pengertian actionsript. Diakses 12 Pebruari 2013, dari
http://www.ilmugrafis.com/flash.php?page=dasar-pembuatan-games-flash.
[8] Jogiyanto Hartono. 2005. Pengertian Data Flow Diagram (DFD). Diakses
12 Pebruari 2013, dari
http://mohamadkemaludin.wordpress.com/2012/10/18/tugas-softskill-2-1-data-flow-diagram.
[9] Millington, Ian. 2006. Artificial Intelligence For Games. United States of America: Morgan Kaufmann. Diakses 18 Pebruari 2013, dari
http://ftmk.utem.edu.my/bachelor-of-computer-science
(artificial_intelligence).pdf.
[10] Jones, M., Dkk. 2008. Artificial Intelligence : A System Approach. Infinity Science Press LLC:Massachusetts.
[12] Bruin, D.A., Wim,Pijls., Aske,Plaat.1994. Solution Trees as a Basis for Game Tree Search. Technical Report EUR-CS-94-04, Department of Computer Science, Erasmus University Rotterdam. Diakses 20 Pebruari
2013, dari http://repub.eur.nl/res/pub/1456/eur-few-cs-94-04.pdf.
[13] Reinfelf, F.2011.How to Win at Checkers. Diakses 20 Pebruari 2013, dari http://www.bobnewell.t/checkers/howtowin.pdf.
[14]Stuart, Russel., Peter, Norvig.2000. Artificial inteligen edition. United States Of Amerika : Prentice Hall. Di akses 3 Maret 2013, dari
http://www.scribd.com/doc/43344403.
[15]Meilir, Jones. 1988. The Practical Guide to Structured Systems Design, Second Edition. Yourdon Press. Prentice Hall
1 BAB 1 PENDAHULUAN
1.1 Latar Belakang
Permainan tradisional merupakan kekayaan khasanah budaya lokal, ragam
permainan tradisional sangat banyak ditemukan di Indonesia sehingga permainan
tradisional ini seharusnya dipertahankan dan dilestarikan sebagai warisan budaya bangsa. Salah satu permainan tradisional adalah Damdaman, permainan ini
berasal dari daerah jawa sekalipun di daerah lain ada [1].
Damdaman biasanya dimainkan oleh anak laki-laki walaupun tidak ada
larangan anak perempuan untuk memainkankannya karena termasuk permainan
kompetitif, mengasah otak, ada yang kalah dan menang. Permainan ini dimainkan
oleh dua orang pemain. Tujuan permainan ini adalah untuk menghabiskan bidak
lawan dengan aturan yang telah disepakati bersama sebagai akhir permainannya
[1]. Damdaman dimainkan oleh dua orang pemain, dan arena permainan
Damdaman dimainkan di atas papan yang telah diberi arena bermain, dan sebagai
bidaknya menggunakan batu atau krikil dengan jumlah yang telah ditentukan.
Berdasarkan pengamatan melalui kuesioner dengan jumlah 40 orang
responden, 54,60 % responden menyatakan permainan tradisional Damdaman
kurang menarik dan membosankan, 71,79% responden menjawab adanya
permainan modern yang lebih praktis dalam penyajiannya sehingga mengurangi
ketertarikan anak anak di zaman sekarang untuk memainankan permainan
tradisional Damdaman, 40% responden menyatakan peran orang dewasa untuk
memperkenalkan permainan tradisional Damdaman pada anak zaman sekarang
dirasakan kurang sehingga anak-anak zaman sekarang merasa asing dengan
permainan tradisional ini sehinga mengurangi minat anak-anak di zaman sekarang
untuk memainkan permainan ini, dan 52,77 % menyatakan sarana permainan yang
sudah semakin dijumpai karena begitu pesatnya perkembangan teknologi yang
Dari fakta yang telah didapatkan, permainan ini perlu dikenalkan kembali
pada anak-anak di zaman sekarang, karena suatu tradisi tidak akan hidup jika
tidak diturunkan secara baik oleh generasi sebelumnya dan dilaksanakan oleh
generasi penerus. Selain dengan berkembangnya permainan modern yang lebih
menarik, bisa jadi pudarnya perhatian terhadap permainan tradisional merupakan
akibat dari tidak diturunkan atau diwariskannya permainan tradisional secara baik
oleh generasi sebelumnya dalam hal ini orangtua terhadap generasi penerus
(anak), sehingga tidak terjadi keberlangsungan terhadap permainan tradisional
tersebut.
Implementasi permainan Damdaman pada perangkat lunak komputer
diharapkan memudahkan anak-anak zaman sekarang memainkan permainan ini,
karena memiliki kelebihan tidak diharuskan untuk mencari lawan tanding dan
menyiapkan sarana permainan yang kini telah sudah jarang ditemui, karena sarana
permainan disajikan dalam bentuk digital dan salah satu pemain dapat dimainkan
oleh komputer yang telah diterapkan artificial intellegence (AI) sehingga komputer mampu menentukan pemilihan langkah optimal untuk mengimbangi
atau setidaknya memberikan hambatan pemain untuk memenangkan permainan.
Berdasarkan uraian diatas, akan dibangun aplikasi game tradisional Damdaman berbasis desktop, dengan tujuan game tradisional Damdaman ini dapat dimainkan dengan kecanggihan teknologi saat ini, sehinga anak-anak pada
zaman sekarang tetap bisa memainkan permainan ini dengan bentuk digital karena
kini sarana asli permainan ini sudah jarang ditemui.
1.2 Rumusan Masalah
Dari uraian latar belakang didapat rumusan masalah yaitu bagaimana
membangun aplikasi game tradisional Damdaman berbasis desktop.
1.3 Maksud Dan Tujuan
Maksud penyusunan tugas akhir ini adalah untuk membangun aplikasi
3
Tujuan yang akan dicapai dalam pembangunan game Damdaman berbasis
desktop adalah :
1. Untuk mengenalkan permainan tradisional Damdaman dalam bentuk game
digital.
2. Memberikan sarana permainan tradisional Damdaman dengan bentuk
game digital.
1.4 Batasan Masalah
Batasan masalah dalam pembangunan aplikasi ini sebagai berikut :
1. Permainan yang dibuat berbasis dekstop.
2. Tampilan permainan berupa 2D.
3. Permainan ditujukan untuk usia 9 tahun ke atas. 4. Permainan bersifat single player atau double player.
5. Untuk permainan bersifat single player level permainan dibagi menjadi 2 kategori yaitu kategori level mudah dan level sulit.
6. Untuk permainan bersifat double player tidak ada pilihan level, tingkat kesulitan ditentukan oleh siapa yang menjadi lawan main.
7. Pembangunan aplikasi game menggunakan adobe flash cs6. 8. Bahasa pemograman yang digunakan actionscript 2.0.
9. Algoritma yang diterapkan pada permainan ini adalah Negascout untuk
menentukan langkah yang lebih optimal.
10.Penerapan algoritma diterapkan pada tipe permainan bersifat single player. 11. Metode analisis yang digunakan adalah metode aliran data terstruktur,
sedangkan untuk menggambarkan proses digunakan Data Flow Diagram
(DFD).
1.5 Metodologi Penelitian
Metodologi yang digunakan dalam penelitian ini adalah metode deskriptif
yang jelas tentang hal-hal yang dibutuhkan dan berusaha menggambarkan serta
menginterpretasi objek yang sesuai dengan fakta secara sistematis dan faktual.
Pengumpulan data dan pengembangan perangkat lunak dalam penelitian
ini menggunakan metode sebagai berikut :
1.5.1 Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :
a. Studi pustaka
Studi Pustaka yang dilakukan ialah dengan mempelajari berbagai literatur,
seperti buku-buku, artikel-artikel, e-book, website, dan sumber – sumber yang berkaitan dengan game yang akan dibangun, meliputi kecerdasan buatan, desain, tools dan juga pemodelan dengan DFD
b. Kuesioner
Pengumpulan data melalui kuesioner dilakukaan dengan memberikan pertanyaan seputar game tradisional Damdaman kepada pengguna, hal ini dilakukan pada saat pembangunan dan saat pengujian aplikasi untuk mengetahui tanggapan dan respon mengenai pembanguan game Damdaman.
1.5.2 Metode Pembangunan Perangkat Lunak.
Metode pembangunan perangkat lunak menggunakan model waterfall, yang digambarkan pada Gambar 1.1. Metode ini disebut dengan waterfall karena tahap yang pertama harus dilalui dan diselesaikan terlebih dahulu untuk dapat
melanjutkan ke tahapan selanjutnya. Tahap dari model ini adalah sebagai berikut :
a. Communication
Pada tahap ini dilakukan pengumpulan data dengan melakukan penyebaran
kuesioner kepada pengguna untuk mengetahui tanggapan dan harapan user
terhadap game yang akan dibangun dan mengumpulkan data tambahan yang ada pada jurnal, artikel maupun internet yang berkaitan dengan aplikasi yang
5
b. Planning
Pada tahap ini data yang dikumpulkan pada tahap sebelumnya diidentifikasi
dan menghasilkan dokumen user requirment untuk pembuatan aplikasi c. Modeling
Pada tahap ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan
software yang dapat diperkirakan sebelum dibuat coding. Pada tahap ini dilakukan perancangan struktur data, arsitektur perangkat lunak yang
digambarkan dengan DFD (Data Flow Diagram) , representasi Antarmuka aplikasi, dan detail (algoritma) prosedural.
d. Construction
Pada tahap ini akan mengimplementasikan sebuah model perangkat lunak
kedalam bahasa komputer melalui proses coding kemudian dilakukan pengujian untuk menghindari terjadinya kesalahan (error)
e. Deployment
Tahapan ini bisa dikatakan akhir dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang
sudah jadi akan digunakan oleh user.
Gambar 1. 1 Diagram Waterfall [3]
1.6 Sistematika Penulisan
Sistematika penulisan laporan penelitian ini disusun untuk memberikan
gambaran umum tentang penelitian yang dilakukan. Adapun sistematika penulisan
BAB I PENDAHULUAN
Bab ini bersisikan tentang latar belakang permasalahan pembangunan
game tradisional Damdaman, perumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian serta sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisikan tentang konsep dasar dan teori yang mendukung dalam
pembangunan game, pengertian game, klasifikasi game, pengertian game
tradisional, Damdaman, aturan permainan Damdaman, AI, algoritma Minimax,
algoritma Negascout, Diagram konteks, DFD, dan tools yang digunakan untuk pembangunan game.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisikan tentang analisis sistem yang berhubungan dengan
pembangunan game Damdaman, meliputi analisis game sejenis, analisis game
yang dikembangkan, analisis kebutuhan fungsional, analisis dan kebutuhan
non-fungsional, perancangan, Diagram Konteks, DFD (Data Flow Diagram), perancangan antar muka, dan perancangan prosedural.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini berisikan tentang implementasi perancangan game tradisional Damdaman yang dibahas di Bab III, meliputi implementasi antarmuka aplikasi,
dan pengujian sistem yang telah dibangun dengan metode pengujian Black box
dan White Box untuk mengetahui fungsionalitas pada game yang dibangun.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang merupakan rangkuman dari hasil pengujian
perangkat lunak dan saran yang perlu diperhatikan bagi pengembangan perangkat
7 BAB 2
LANDASAN TEORI
2.1 Permainan (Game)
Game berasal dari kata bahasa inggris yang berarti dasar permainan. Permainan dalam hal ini merujuk pada pengertian kelincahan intelektual ( Intellectual Playability Game) yang juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Dalam game, ada target-target yang ingin dicapai pemainnya.
Permainan adalah kegiatan yang kompleks yang didalamnya terdapat
peraturan, play dan budaya. Sebuah permainan adalah sebuah sistem dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi dengan sistem dan
konflik dalam permainan merupakan rekayasa atau buatan, dalam permainan
terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan
menentukan permainan [4].
Game bertujuan untuk menghibur, game banyak disukai oleh anak – anak hingga orang dewasa. Game sebenarnya penting untuk perkembangan otak, untuk meningkatkan konsentrasi dan melatih untuk memecahkan masalah dengan tepat
dan cepat karena dalam game terdapat berbagai konflik atau masalah yang menuntut kita untuk menyelesaikannya dengan cepat dan tepat. Game juga bisa merugikan karena apabila kita sudah kecanduan game kita akan lupa waktu dan akan mengganggu kegiatan atau aktivitas yang sedang kita lakukan.
2.1.1 Kriteria Game
Pada sebuah game ada penggolongan jenis game, baik game tradisional maupun game modern. Pada game modern penggolongan jenis game dibagi menjadi beberapa jenis yaitu [4]:
1. Petualangan (Adventure)
eksplorasi dan pemecahan teka-teki. Terkadang meliputi masalah konseptual,
dan tantangan fisik namun sangat jarang. Game adventure telah berkembang jauh hingga menjadi genre campuran (Action bebat-em). Dalam game lebih menekankan pada jalan cerita dan kemampuan berpikir pemain untuk
menganalisa tempat secara visual, memeccahkan teka-teki maupun
menyimpulkan rangkaian peristiwa dan percakapan. Salah satu game adventure
adalah game Super Mario. 2. RPG (Role Playing Game)
Pada tipeRPG pemain memainkan tokoh khayalan dan berkolaborasi untuk
merajut sebuah cerita bersama. Para pemain memilih tokoh – tokoh mereka
berdasarkan karakteristik tokoh tersebut, dan keberhasilan aksi mereka
tergantung dari sistem peraturan yang telah ditentukan. Cerita dalam game ini kebanyakan berceritakan tentang sejarah, kebudayaan sesuatu tempat. Karena
sebagian besar game tipe ini berawal dari Asia timur, khususnya Jepang, maka secara pengembangan game ini bisanya membuat cerita dengan arah linear. Contoh dari game ini adalah final fantasy, megaman X: command Mission, dan Ninja saga.
3. Strategy
Game strategi adalah jenis permaian seperti simulasi, dengan tujuan jelas, sehingga pemain harus pintar mengolah strategi dalam memecahkan tipe game
ini. Game strategi merupakan kebalikan dari game action yang berjalan cepat dan perlu refleks secepat kilat, akan tetapi game ini pemain dituntun untuk berhati hati karena bisa jadi salah menerapkan strategi bermain permainan
menuju game over. Game strategi biasanya memberikan pemain atas kendali tidak hanya satu orang tapi minimal dua tang atau kelompok. Game strategi dibagi menjadi dua yaitu [4]:
a. Real Time strategy
Real Time strategy merupakan game berjalan dalam waktu sebenarnya dan serentak antara semua pihak dan pemain harus
memutuskan setiap langkah yang diambil saat itu juga berbarengan
9
Contoh game ini adalah Company of heroes (2006), Cage Empire II : The Cage of Kings (1999), Rome : total bar (2004) dan sebagainya.
b. Turn based strategy
Game ini dilakukan secara bergiliran, saat kita mengambil keputusan dan menyegerakan pasukan, saat itu isak lawan menunggu,
begitu pula sebaliknya. Contoh : Catur, Chekers, Gunrox, Silent Strom,
dan advance War.
4. Puzzle
Game ini sesuai bercerita mengenai pemecahan teka-teki, baik itu menyusun blok, menyamakan warna bola, memecahkan perhitungan
matematika, melewati labirin, sampai mendorong-dorong kotak sampai masuk
ke tempatnya. Contoh dari game ini adalah Mahjong-Naga, Square Freenzy, dan Typer Shark Deluxe.
5. Arcade
Game arcade adalah jenis permainan game dengan objek yang bergerak
cepat, “membahayakan” atau “menyerang” pemaian. Game disajikan dalam dua dimensi, sangat ringan untuk dimainkan sehingga sering disebut mini game.
Game arcade digolongkan berdasarkan beberapa aspek didalamnya yaitu : kecepatan reaksi (Speed), kepintaran (cleverness), pengalaman (experience), pemahaman (insight), surprise, dan emosi.
2.2 Permainan Tradisional
Permainan tradisional adalah suatu jenis permainan yang ada pada satu
daerah tertentu yang berdasarkan kepada kultur atau budaya daerah tersebut.
Permainan tradisional biasanya dimainkan oleh orang-orang pada daerahnya
tertentu dengan aturan dan konsep yang tradisional pada jaman dulu [5]. Permainan
tradisional kurang begitu dikenal oleh anak-anak pada jaman sekarang kebanyakan
orang tua jaman dulu yang masih sangat tahu bagaimana memainkan permainan ini
khususnya mengenang masa kecil mereka bermain permainan tradisional ini.
Permainan tradisional merupakan unsur-unsur kebudayaan yang tidak dapat
terhadap perkembangan kejiwaan, sifat, dan kehidupan sosial anak dikemudian
hari. Permainan tradisonal mendapat pengaruh yang kuat dari budaya setempat,
oleh karena itu permainan tradisonal mengalami perubahan baik berupa pergantian,
penambahan maupun pengurangan sesuai dengan kondisi daerah setempat [1].
Dengan demikian, permainan tradisional meskipun nama permainannya berbeda
antar daerah, namun memiliki persamaan atau kemiripan dalam cara
memainkannya.
Salah satu pengaruh Permainan tradisional besar untuk pemainnya seperti
Mengembangkan kecerdasan logika anak, anak dituntut untuk menyelesaikan
permainan dengan urutan yang sesuai dan menentukan langkah yang harus
dilaluinya. Beberapa contoh permainannya anatara lain Damdaman, Congklak,
Lompat tali atau Sapintrong, dan Sondah [1].
2.3 Damdaman
Damdaman merupakan salah satu permainan tradisional yang mampu
mengembangkan kecerdasan logika anak. Permainan Damdaman berasal dari
daerah Jawa sekalipun di daerah lain ada. Nama permainan ini beragam disetiap
daerah seperti di masyarakat yogya mengenal dengan macanan, kemudian di
masyarakat Betawi permainan ini dikenal dengan nama damdas, dan di jawabarat
permaian ini dikenal dengan Damdaman. Dengan berbedanya sebutan disetiap
daerah, maka dalam aturan yang digunakan sedikit berbeda, karena tidak adanya
aturan yang jelas tertulis [5].
Mayoritas anak masyarakat Jawa, setidaknya yang berada di daerah
Yogyakarta, yang hidup di era tahun 1970-an mengenal sebuah permainan
tradisional yang bernama Macanan. permainan ini banyak digemari oleh anak
laki-laki karena bermasuk permainan kompetitif, mengasah otak, ada yang kalah dan
menang. Walaupun tidak ada larangan bagi anak wanita untuk bermain, namun
kebanyakan dimainkan oleh anak laki-laki. Permainan Damdaman sudah dikenal
sejak sebelum Perang Dunia (PD) II. Hanya saja untuk saat sekarang sudah sangat
jarang dimainkan karena tergeser dolanan modern lain, seperti halma dan lainnya
11
Permainan Damdaman dimainkan oleh 2 orang, setiap pemain memiliki 16
bidak yang disusun di arena main, adapun arena main yang digunakan bisa diatas
papan atau pun diatas kertas karton yang telah diberi arena main. Pemain harus
berpikir bagaimana menyusun strategi untuk menyusun bidaknya agar bisa
bergerak menyerang ke daerah lawan dengan tujuan menghabiskan bidak lawan
dengan aturan yang disepakati sebagai akhir permainannya. Permainan ini
bertujuan untuk melatih daya ingat dan kepekaan indera serta melatih ketelitian dan
kecermatan dalam menentukan keputusan.
2.3.1 Pelaksanaan Permainan Damdaman
Pada permainan tradisional selain pemain dituntut untuk bisa memainkan
permainan, pemain pun dituntut untuk kreatif menentukan tempat permainan.
Berikut akan dijelaskan pelaksanaan permainan Damdaman [1].
a. Apabila ada dua anak, misalkan pemain A dan B, atau lebih (dalam
kelompok) yang ingin bermain Damdaman, maka mereka segera bersepakat
untuk menentukan tempat bermain. Tidak lupa masing-masing pemain juga
sudah harus mempersiapkan orang-orangan berupa kerikil dan sejenisnya.
Setiap orang dalam memilih orang-orangan bebas, asalkan satu pemain
dengan pemain lain tidak boleh sama. Artinya jika pemain A telah memilih
orang-orangan berupa kecik tanjung, maka pemain B harus menggunakan
kerikil. Pembedaan orang-orangan ini hanya untuk memudahkan permainan
agar tidak keliru. Setiap pemain harus mencari orang-orangan sebanyak 16
buah.
b. Setelah itu mereka membuat arena bermain yang berbentuk seperti pada
Gambar 2. 1 Papan Permainan Damdaman [1]
c. Langkah pertama, kedua pemain menyusun 16 bidak pada arena main, mulai
dari daerah segitiga hingga daerah kotak. Sehingga bidak tersusun seperti
pada gambar 2.2.
Gambar 2. 2 Susunan Bidak Pada Permainan Damdaman
d. Setelah kedua pemain menyusun bidak, maka pemain membuat kesepakatan
untuk menentukan yang terlebih dalu main.
e. Permainan berakhir jika salah satu bidak dari pemain dan menghasilkan satu
13
2.3.2 Langkah Bidak Pada Permainan Damdaman
Langkah bidak pada permainan Damdaman terdiri dari dua langkah yang
berbeda, yaitu langkah bidak biasa dan langkah bidak raja. pada gambar 2.3 akan
dijelaskan langkah bidak biasa.
Gambar 2. 3 Langkah Bidak Biasa
Bidak biasa bergerak maju, kekiri, kanan, miring satu langkah ke daerah
lawan. Sedangkan untuk bidak raja langkah bisa lebih dari satu langkah, seperti
gambar 2.4 dan gambar 2.5.
Gambar 2. 4 Langkah Bidak Raja Satu Langkah
Gambar 2. 6 langkah Bidak A memakan Bidak B
Kesempatan bidak untuk memakan bidak lawan sesuai dengan kondisi
papan, seperti diilustrasikan pada gambar 2.6. bidak A akan memakan bidak B
maka bidak A akan melewati bidak B, jika pada jalur yang dilangkahi ada bidak
lawan yang dekat satu langkah dengan jalur yang dilangkahi maka bidak A bisa
mekan bidak B di jalur tersebut, dan begitu seterusnya.
2.3.3 Aturan Permainan Damdaman
Aturan permainan yang digunakan disetiap daerah sangat beragam, berikut
akan dijelas aturan permainan dari daerah jawabarat [1].
a. Bidak dibagi menjadi 2 yaitu bidak biasa dan bidak raja.
b. Pada awal permainan, status bidak adalah bidak biasa.
c. Bidak biasa bisa menjadi bidak raja, jika bidak biasa telah berhasil masuk
darah segitiga lawan.
d. Langkah bidak biasa melangkah satu langkah maju, ke kiri, kanan, dan miring
sesuai dengan kondisi papan.
e. Langkah bidak raja melangkah lebih dari satu langkah ke semua arah, selama
pada jalur tersebut tidak ada bidak kawan.
Gambar 2. 7 Langkah Makan Bidak A
15
f. Cara memakan bidak lawan adalah melangkahkan bidak melewati bidak
lawan. Dan bidak bisa memakan bidak lawan jika bidak lawan ada satu
langkah bidaknya.
g. Permainan berakhir jika salah satu bidak pemain habis.
2.4 AI (artificial Intellegence)
Para ahli mendefinisikan AI secara bebeda-beda tergantung pada sudut pandang mereka asing-masing. Ada yang fokus pada logika berpikir manusia saja.
Tetapi ada juga yang mendefinisikan AI secara lebih luas pada tingkah laku
manusia. Pengelompokan definisi AI ada empat kategori [14], yaitu :
1. Thinking Humanly : The Cognitive Modeling Approach
Pendekatan ini dilakukan dengan dua cara yaitu :
a. Melalui introjeksi : mencoba menangkap pemikiran – pemikiran kita sendiri
saat berpikir.
b. Melalui eksperimen-eksperimen psikologi.
2. Actual Humanly : The Turing Test Approach
Kecerdasan buatan dalam kategori ini dirancang oleh Alan Turing, pada tahun
1950 beliau merancang sebuah komputer berintelejensia dengan tujuan apakah
komputer tersebut mampu mengelabui seorang manusia yang
mengintrograsinya melalui teletype (komunikasi berbasis pesan jarak jauh).
Jika integrator tidak dapat membedakan yang diintrograsi adalah manusia atau
komputer maka komputer tersebut lulus dari turing Test. Untuk menerapkan kelompok AI ini komputer harus memiliki kemampuan mengolah bahasa
secara natural, perangkat belajar berdasarkan kondisi apapun, representasi
pengetahuan, pengambilan keputusan, Computer Vision, robotics. turing Test sengaja menghindari interaksi fisik antara integrator dan komputer karena
3. Thinking Rationally : The Laws Of Trought Approach
Masalah pada pendekatan ini diantaranya :
a. Tidak mudah untuk membuat pengetahuan informasi dan menyatakan
pengetahuan tersebut ke dalam kondisi formal yang diperlukan oleh notasi
logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang
dari 100%.
b. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam
prinsip” dan memecahkannya “dalam dunia maya”.
4. Acting Rationally : The Rational Agen Approach
Membuat tindakan berdasarkan kesimpulan yang diambilsecara logis merupakan
bagian dari satu rational agent. Aksi rasional harus dilakukan dengan cara menalar secara logis, dengan menalar secara logis maka bisa didapatkan kesimpulan aksi
apa yang harus dilakukan untuk mencapai tujuan, sehingga agent memiliki aksi yang tepat.
Thinking Humanly dan acting humanly adalah dua definisi dam arti yang sangat luas. Sampai saat ini, pemikiran manusia diluar rasio, yakni refleks dan
intuitif (berhubungan dengan perasaan), belum dapat ditirukan sepenuhnya oleh
komputer. Dengan demikian, kedua definisi ini dirasa kurang tepat untuk saat ini.
Jika kita menggunakan definisi ini makabanyak produk komputasi cerdas saat ini
tidak layak disebut sebagai produk AI.
Definisi thingking rationally terasa lebih sempit dari pada acting rationally
dengan pendekatan rational agent. Didasari dengan pemikiaran komputer yang mampu melakukan penalaran secara logis dan juga bisa melakukan aksi secara
rasional dengan pengambilan keputusan dengan menyimpulkan penalaran logis
yang dilakukan komputer.
2.5 Graph
Graph adalah sebuah struktur data yang terdiri dari kumpulan simpul (node)
17
A
G
B
C
D
F
E g
h
j i d
f c
a
b
e
Gambar 2. 8 Contoh Graph
Karena sebuah garis diawali dan diakhiri sebuah simpul maka sebuah garis
misalnya untuk garis a dinyatakan dengan a = [A,B] dalam hal ini diartikan bahwa
garis a diawali dengan simpul A dan diakhri dengan simpul B sedangkan simpul
yang terhubung dengan sebuah garis disebut simpul tetangga sehingga dapat
dikatakan simpul A bertetangga dengan simpul B.
Pada sebuah graph ada istilah yang disebut dengan jalur (Path ). Jalur adalah kumpulan garis dan simpul yang saling berhubungan satu sama lainnya
dengan simpul awal dan simpul akhir yang ditentukan, misalnya Z adalah sebuah
jalur dari simpul A ke simpul D, maka dapat dinyatakan bahwa Z=( A,B,D). Sebuah
jalur yang memiliki simpul akhir samadengan simpul awal disebut jalur tertutup
(Close Path ) sedangkan jalur yang terbentuk dari simpul-simpul yang berbeda disebut dengan jalursederhana (Simple Path ) seperti halnya jalur dari simpul A ke simpul D.
2.5.1 Implementasi Graph
2.5.1.1 Matrik Tetangga
Matrik tetangga merupakan salah satu cara untuk merepresentasikan graph
berarah dengan meenggunkan array [15]. Berikut adalah representasi graph pada gambar 2.9 dengan menggunkan matrik tetangga berikut :
S
imp
u
l awal
Simpul Tujuan
A B C D E F
A 0 1 0 0 0 0
B 0 0 0 1 1 0
C 1 0 0 0 0 0
D 1 0 1 0 0 0
E 0 0 0 1 0 1
F 0 0 0 1 0 0
Gambar 2. 9 Matrik Tetangga
Angka 1 (satu) menyatakan bahwa simpul awal memiliki jalur ke simpul
tujuan, dan angka 0 (nol) menyatakan bahwa simpul awal tidak memiliki jalur ke
simpul tujuan. Dari representasi pada gambar 2.9 dapat dilihat bahwa
simpul-simpul yang memiliki jalur sebagai berikut.
a. simpul A memiliki jalur dan bertetangga dengan simpul B
b. simpul B memiliki jalur dan bertetangga dengan simpul D dan E
c. simpul C memiliki jalur dan bertetangga dengan simpul A
d. simpul D memiliki jalur dan bertetangga dengan simpul A dan C
e. simpul E memiliki jalur dan bertetangga dengan simpul D dan F
f. simpul F memiliki jalur dan bertetangga dengan simpul D
Implemetasi dengan bahasa algoritmik sebagi berikut :
Array [1...6, 1...6] of integer matGraf = {
{0, 1, 0, 0, 0, 0},
19
{1, 0, 0, 0, 0, 0},
{1, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 1},
{0, 0, 0, 1, 0, 0}
}
Untuk mengakses simpul, dapat digunkan indeks array, misalnya simpul A ke simpul B maka yang diakses adalah matGraph2,1.
2.5.1.2 Matrik Jalur
Matriks jalur merupakan salah satu cara untuk merepresentasikan graph
berarah menggunakan array [15]. Berikut adalah representasi graph pada gambar
2.10. dengan menggunakan matriks jalur berikut :
S
im
pul aw
al
Simpul Tujuan
A B C D E F
A 1 1 1 1 1 1
B 1 1 1 1 1 1
C 1 1 1 1 1 1
D 1 1 1 1 1 1
E 1 1 1 1 1 1
F 1 1 1 1 1 1
Gambar 2. 10 Matrik Jalur
Angka 1 (satu) menyatakan bahwa simpul awal memiliki jalur ke simpul
tujuan, dan 0 (nol) meyatakan bahwa simpul awal tidak memiliki jalur ke simpul
tujuan, bedanya dengan matrik tetangga, angka 1 menyatakan jika simpul awal
bertetangga secara langsung dengan simpul tujuan, sedangkan pada matriks jalur,
simpul awal tidak harus bertetangga secara langsung dengan simpul tujuan, asalkan
ada jalur yang di simpul awal ke simpul tujuan melewati simpul manapun maka
simpul dapat ditempuh dari simpul manapun. Implementasi dengan bahasa
algoritma sebagai berikut :
Array [1...6, 1...6] of integer matGraf = {
{1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1}
}
Untuk mengakses simpul, dapat digunkan indeks array, misalnya simpul A
ke simpul B maka yang diakses adalah matGraph2,1.
2.5.1.3 Matrik Beban
Matrik beban merupakan salah satu cara untuk merepresentasikan graph
berarah yang memiliki beban dengan menggunakan array. Matriks beban biasanya digunakan untuk merepresentasikan graph berarah pada jalur yang dilewatinya ada beban atau jarak tempuh dengan nilai tertentu. Graph berarah yang memiliki beban biasanya digunakan untuk menentukan letak kota-kota beserta jarak tempuh [15].
21
B
D A
E
C F
3
3
7
4
3 3
8
4
2
Gambar 2. 11 Contoh Graph Berarah dengan Beban
Berikut adalah representasi graph pada gambar 2.11 dengan menggunkan matriks beban seperti pada gambar 2.12.
S
im
pul aw
al
Simpul Tujuan
A B C D E F
A 0 3 0 0 0 0
B 0 0 0 3 7 0
C 3 0 0 0 0 0
D 8 0 3 0 0 0
E 0 0 0 4 0 4
F 0 0 0 2 0 0
Gambar 2. 12 Matrik Beban
Angka bukan nol menyatakan bahwa simpul awal memiliki jalur ke simpul
tujuan dengan beban yang dituliskan pada matriks, dan angka 0 (nol) menyatakan
bahwa simpul awal tidak memiliki jalur ke simpul tujuan. Pada dasarnya matriks
beban sama dengan matrik tetangga hanya berbeda penanda adanya jalur, angka 1
(satu) pada matriks tetangga dan nilai beban pada matriks beban. Implementasi
Array [1...6, 1...6] of integer matGraf = {
{0, 3, 0, 0, 0, 0},
{0, 0, 0, 3, 7, 0},
{3, 0, 0, 0, 0, 0},
{8, 0, 3, 0, 0, 0},
{0, 0, 0, 4, 0, 4},
{0, 0, 0, 2, 0, 0}
}
Untuk mengakses simpul, dapat digunkan indeks array, misalnya simpul A
ke simpul B maka yang diakses adalah matGraph2,1.
2.6 Pohon Permainan
Pohon permainan mempresentasikan kepada pemain kondisi – kondisi yang
mungkin dihadapi pada permainan dimulai dari kondisi yang sedang dihadapi
sekarang hingga beberapa kondisi ke depan. Sebuah pohon permainan merupakan
representasi grafis dari contoh permainan. Pohon permainan menyediakan
informasi pemain, hasil, strategi, dan pilihan langkah .
Pohon permainan dapat direpresentasikan dengan baik pada permainan
yang dilakukan secara giliran (turn-based-game). Pohon permaian memiliki root
yang merupakan representasi dari kondisi langkah yang belum diambil, node pada pohon mempresentasikan keadaan-keadaan yang mungkin diambil pada permainan,
dan Arcs yang mempresentasikan langkah.
Pengguna pohon permainan pada permainan yang dimainkan oleh dua
pemain direpresentasikan dengan cara bergantian. Untuk edges dari tingkat pertama keringat kedua mempresentasikan langkah – langkah yang dapat diambil oleh
pemain pertama, sedangkan untuk edges dari tingkat kedua ketingkat ketiga mempresentasikan langkah-langkah yang diambil oleh pemain kedua, dan begitu
23
Leaf node pada pohon permainan mempresentasikan keadaan akhir pada permainan, Diana pemain tersebut dimenangkan, dikalahkan ataupun seri. Pada
permainan sederhana, untuk mencapai leaf node mungkin dapat direpresentasikan, tetapi untuk permainan yang rumit seperti Damdaman, pencapaian leaf node sangat tidak memungkinkan karena percabangan pada pohon permainan yang sangat
besar.
Gambar 2. 13 Contoh Pohon Permainan Tic-Tac-Toe [6]
Berikut penjelasan pohon permainan tictactoe pada gambar 2.13 :
1. Terdapat root yang merupakan keadaan awal Dimana pemain belum mulai bermain dan langkah belum diambil.
2. Edges yang menghubungkan tingkat pertama (root) dengan tingkat kedua merupakan langkah pemain pertama dan begitu seterusnya. Sehingga pohon
permainan tersebut merepresentasikan langkah kedua pemain secara bergantian.
4. Percabangan pertama yang dihasilkan adalah 9, kemudian untuk
percabangan berikutnya adalah 8, dan begitu seterusnya hingga mencapai
keadaan akhir (leaf nodes).
2.7 Algoritma Minimax
Pada permainan yang tidak terlalu kompleks, terdapat algoritma yang
yangdigunakan untuk mencari langkah terbaik dari situasi sekarang. Algoritma yang paling terkenal ialah algoritma Minimax. Algoritma Minimax ialah satu
metode yang sangat bermanfaat untuk tipe permainan bergiliran dengan 2 pemain.
Metode ini memilih langkah terbaik yang diberikan, Dimana kedua pemain
berusaha mengatur sebuah strategi untuk memenangkan permainan. Sehingga
semua langkah selanjutnya akan dapat diketahui [10].
Minimax merupakan algoritma yang digunakan untuk menentukan pilihan
agar kemungkinan kehilangan nilai maksimal dapat diminalisir. Algoritma ini dapat
diterapkan dengan baik pada permainan yang melibatkan dua pemain yangsaling
bergantian seperti atid-tac-toe, chekers, catur, dan permainan yang menggunakan
strategi atau logika lainnya [11]. Permainan tersebut memiliki karakteristik yang
sama yakni “permainan dengan informasi lengkap”. Setiap pemain mengetahui
kemungkinan langkah yang akan dilakukan lawan. Sehingga pemain bisa tetap
“memantau” kondisi permainan sewaktu permainan sedang berlangsung.
Jika pemain memilih satu langkah, maka pemain akan memilih yang
terbaik. Sehingga secara nalar pemain akan mentukan posisi yang terbaik untuk
melangkah. Dengan kata lain , ketika pemain mendapat giliran bermain maka
pemain akan mencoba memaksimalkan nilainya, perhatikan gambar 2.14.
25
Ketika lawan mendapat giliran bermain, pemain akan mengganggap bahwa
lawan akan memilih langkah yang akan memberikan pemain posisi terburuk yang
tersedia. Lawan sedang berusaha meminimalisir nilai dari pemain, perhatikan
gambar 2.15.
Gambar 2. 15 Langkah Lawan pada Algoritma Minimax [6]
Algoritma Minimax adalah salah satu implementasi dari pencarian DFS
(Dept-First Search), sehingga dalam melakukan pencarian pada pohon Minimax mirip dengan apa yang dilakukan dengan DFS. DFS akan melakukan penelusuran
simpul paling dalam terlebih dahulu, setelah simpul akar dibangkitkan, algoritma
ini akan membangkitkan simpul pada tingkat kedua, yang akandilanjutkan pada
tingkat ketiga, dst.
Dalam representasi pohon pada algoritma Minimax, terdapat dua jenis node, yaitu node min dan node Max. Mak akan memilih langkah dengan nilai tertinggi dan min akan memilih langkah dengan nilai tererendah. Untuk proses dan cara kerja
algoritma yang lebih jelasnya lagi, dapat dilihat pada gambar 2.16 yang
Gambar 2. 16 Illustrasi Cara Kerja Algoritma Minimax [6]
Dari gambar 2.11, proses pencarian dimulai dari jalur paling kiri terlebih
dahulu, sehingga DFS akan menelusuri simpul paling kiri bawah yaitu 5. Nilai 5
disimpan sebagai nilai maksimum sementara karena berada ditingkat oma,
kemudian DFS melakukan backtrak dan menelusuri simpul berteangga dengan simpul 5 yaitu 2. Karena nilai 5 lebih besar dari nilai 2, maka nilai 2 tidak disimpan.
Lalu DFS akan melakukan backtrack keringat min sehingga nilai 5 yang diperoleh akan disimpan sebagai nilai minimum sementara. Untuk simpul 1 dan 3, nilai 3
akan disimpan di node min karena merupakan nilai maksimum di tingkat max. Saat mencapai tingkat min, sudah ada nilai minimum sementara yaitu 5,namun karena
nilai 3 lebih kecil dari nilai 5, maka nilai 5 akan digantikan dengan nilai 3. Nilai 3
akan disimpan sebagia nilai maksimum sementara di tingkat paling atas karena
merupakan tingkat max. Lalu penelusuranjalur kanan akan dilakukan dengan cara
yang sama dengan jalur kiri, sehingga diperoleh nilai 6. Karena nilai maksimum
menara pada tingkat paling atas adalah 3, maka nilai 3 akan digantikan dengan nilai
6 karena nilai 6 lebih besar dari pada 3.dengan demikian, jalur yang akan dipilih
menggunakan algoritma Minimax adalah jalur belah kanan karena untuk kondisi
terburuknya, pemain akan mendpat nilai 6 sedangkan jika pemain memilih jalur
27
Pada dasarnya, algoritma Minimax sangat handal untuk menyelesaikan
segala masalah dalam pencarian langkah untuk permainan komputer dengan jumlah
kemungkinan penyelesaian yang kecil. Tetapi jika, algoritma Minimax digunakan
untuk permainan dengan jumlah kemungkinan penyelesaian yang besar seperti
permainan Damdaman, algoritma Minimax ini memelukan waktu lama untuk
membangun pohon penyelesaian.
Oleh karena itu, beberapa metode lanjutan dari algoritma Minimax telah
dikembangkan untuk membatasi melonjaknya jumlah simpul dalam pembangunan
pohon penyelesaian. Berbagai jenis metode telah ditemukan untuk meningkatkan
kinerja algoritma Minimax, salah satunya adalah Negascout. Dengan menggunakan
metode ini maka diharapkan sistem dapat bekerja lebih baik. Pseudocode Minimax Dapat dilihat pada gambar 2.17.
Gambar 2. 17 Pseudocode Minimax
1 function minimax(node,depth)
2 if depth <= 0 then
3 {positive values are good for the maximizing player}
4 {negative values are good for the minimizing player}
5 return objective_value(node)
6 end
7 {maximizing player is (+1)}
8 {minimizing player is (-1)}
9 local alpha = -node.player * INFINITY
10 local child = next_child(node,nil) 11 while child ~= nil do
12 local score = minimax(child,depth-1)
13 alpha = node.player==1 and math.max(alpha,score) or math.min(alpha,score)
14 child = next_child(node,child)
15 end
16 return alpha
2.8 Negascout
Negascout adalah salah satu metode pencarian Minimax dengan berasumsi
bahwa langkah pertama yang diambil merupakan langkah terbaik, sedangkan
sisanya merupakan langkah terburuk. Namun jika ternyata ada langkah yang lebih
baik dari langkah pertama, maka akan terjadi proses Research atau proses pencarian ulang [12].
Dalam memperkecil jendela pencarian agar mendapat jendela pencarian
dengan lebar nol. Negascout akan memotong hampir semua cabang-cabang dari
pohon, untuk membuat suatu pencarian yang sangat tepat. Tetapi sayangnya, ia
akan memotong semua cabang-cabang berguna bersamaan dengan yang tidak
berguna. Hal ini tidak berlaku jika algoritma dimulai dengan hasil yang benar. Satu
jendela nol dapat dilihat sebagai uji coba. Uji coba dilakukan jika nilai sebenarnya
sama dengan nilai yang ditebak [6].
Algoritma negascout cukup efisien, tetapi melakukan pemeriksaan posisi
papan lebih dari yang diperlukan. Pemotongan cabang memungkinkan algoritma
untuk mengabaikan bagian dari pohon yang tidak mungkin berisi langkah terbaik.
Ini menghasilkan dua jenis pemotongan yaitu pemotongan alpha dan pemotongan
beta. pada gambar 2.18 dapat dilihat pseudocode Negascout.
29
1 5
n := max (alpha, m) +1; 1
6
END; 1
7
RETURN (m); 1
8
END; 1
9
END;
Gambar 2. 18 pseudocode Negascout
Keterangan pseudo code: p = kondisi papan
d = kedalaman maksimum dari pohon yang ditelusuri
b = lebar pohon (banyak langkah yang mungkin terjadi pada papan)
evaluate(p ) = merupakan fungsi yang memberikan nilai evaluasi pada kondisi
papan “p”.
2.8.1 Pemotongan Alpha
Gambar 2.19 menunjukan satu pohon permainan sebelum proses
pemotongan dilakukan. Untuk lebih mudah melihat bagaimana nilai nilai di proses,
akan dicoba dlakukan dengan algoritma Minimax untuk ilustrasi ini.
Gambar 2. 19 Pohon Permainan dengan Proses Pemotongan Alpha [6]
Untuk proses pertama, sama halnya dengan algoritma Minimax. Jika
pemain memilih langkah A, maka lawan akan membirakan respons dengan langkah
C, dan memberikan pemain nilai 5. Maka nilai 5 naik pada tingkat min. Jika pemain
mendapat nilai 4. Setelah melihat kondisi demikian pemain akan menyadari nilai
yang didapatkan lebih rendah dari nilai sementara di tingkat max. Sehingga pemain
akan menyimpulkan ini adalah langkah yang salah.
Untuk melakukan pemotongan dengan cara ini, perlu dilakukan pencarian
nilai terbaik yang pasti akan tercapai. Bahkan, nilai ini membentuk batas bawah
pada nilai yang akan tercapai. Sehingga urutan langkah yang lebih baik dapat
ditemukan dalam pencarian, namun nilai yang paling rendah akan mustahil untuk
didapatkan. Batas bawah ini dinamakan nilai alpa dan pemotongannya dinamakan
dengan pemotongan alpa.
2.8.2 Pemotongan Beta
Pemotongan beta bekerja dengan cara yang sama. Nilai beta terus melacak
nilai batas tertinggi dari nilai yang diharapkan. Nilai beta berubah ketika ditemukan
satu langkah yang dipaksakan oleh lawan.
Pada posisi itu pemain mengetahui tidak ada nilai yang lebih besar dari beta.
Jika urutan langkah yang bernilai lebih besar dari nilai beta ditemukan maka dari
kondisi ini dapat diabaikan, karena kesempatan untuk mendapatkannya lebih kecil.
2.8.3 Pemotongan Alpha Beta
Bersamaan nilai – nilai dari alpa dan beta memberikan satu jendela
kemungkinan langkah. Pemain etika pernah memilih untuk melakukan langkah
yang dinilainya lebih kecil dari alpaha, dan lawan tidak akan pernah membiarkan
ada langkah yang lebih besar dari beta. Nilai pada akhirnya harus terletak antara
alpa dan beta. Ketika pencarian mulai dilakukan pada pohon, nilai - nilai dari alpha
dan beta diperbaharui. Jika cabang dari pohon yang ditemukan di luar nilai – nilai
ini, maka akan dilakukan pemotongan pada cabang.
2.8.4 Zero-Width Test
Pada algoritma negascout ada yang disebut dengan kondisi failsoft, kondisi ini menggambarkan pemotongan alpa dan beta yang telah diketahui. Pada dasarnya
31
sebagai nilai jika gagal berdasarkan gagal karena nilai yang didapatkan lebih tinggi
atau lebih rendah dari nilai maksimum sementara pada tingkat pencarian tertentu.
Dengan kondisi fail soft dapat membantu untuk menemukan satu solusi. Dengan kondisi ini memungkinkan untuk menebak nilai awal dan megulangi pencarian
dengan jendela yang lebih masuk akal (Zero width test).
Pada dasarnya algoritma negascout menggabungkan pencarian Minimax
dengan pemotongan alpa beta dan pemanggilan zero-width Test. Negascout tidak selebar pencarian algoritma Minimax. Negascout menggunakan pemotongan alpa
dan beta untuk uji coba tersebut.
Negascout bekerja dengan melakukan pemerikasaan secara menyeluruh
pada langkah pertama dalam setiap posisi papan. Hal ini dilakukan pada satu
jendela pencarian luas, sehingga algoritma tidak gagal. Berturut-turut langkah diuji
menggunakan satu jalur berdasarkan nilai dari langkah pertama, jika berhasil, maka
akan diulangi pada jendela dengan lebar sebenarnya, perhatikan gambar 2.20.
Gambar 2. 20 Pohon Permainan dengan Algoritma Negascout [6].
2.9 Diagram Konteks
Diagram konteks merupakan alat pemodelan atau suatu diagram yang
menggambarkan sistem berbasis komputer yang dirancang secara global dan
ini menggambarkan seluruh jaringan, baik masukan maupun sebuah keluaran
sebuah sistem [8].
Diagram konteks terdiri dari sebuah simbol proses tunggal yang
menggambarkan sebuah sistem dan menunjukan data aliran utama untuk dan dari
terminator. Diagram ini merupakan dasar yang digunakan untuk menentukan aliran data yang mengalir menuju sistem (input system) dan keluar dari sistem (output system), yang meliputi objek berupa kesatuan luar (eksternal entity). Diagram konteks dapat mendefinisikan jangkauan proses penurunan sistem informasi yaitu
menentukan apa yang menjadi bagian dari sistem informasi dan apa yang tidak
menjadi bagian sistem informasi.
2.10 Data Flow Diagram (DFD)
Pengertian Data Flow Diagram (DFD) menurut Jogiyanto Hartono adalah:
“Diagram yang menggunakan notasi simbol untuk menggambarkan arus data
system” [8].
DFD sering digunakan untuk menggambarkan suatu sistem yang telah ada
atau sistem yang baru yang akan dikembangkan secara logika dan menjelaskan
arus data dari mulai pemasukan sampai dengan keluaran data tingkatan diagram
arus data mulai dari diagram konteks yang menjelaskan secara umum suatu system
atau batasan system dari level 0 dikembangkan menjadi level 1 sampai system tergambarkan secara rinci. Gambaran ini tidak tergantung pada perangkat keras,
perangkat lunak, struktur data atau organisasi file.
Menurut Jogiyanto Hartono, tahun 2005 dalam bukunya Basia Data ada
beberapa simbol digunakan pada DFD untuk mewakili :
a) Kesatuan Luar (External Entity)
Kesatuan luar (external entity) merupakan kesatuan (entity) di lingkungan luar sistem yang dapat berupa orang, organisasi, atau sistem lain yang berada pada
33
b) Arus Data (Data Flow)
Arus Data (data flow) di DFD diberi simbol suatu panah. Arus data ini mengalir di antara proses, simpan data dan kesatuan luar. Arus data ini
menunjukan arus dari data yang dapat berupa masukan untuk sistem atau hasil dari
proses sistem.
c) Proses (Process)
Proses (process) menunjukan pada bagian yang mengubah input menjadi
output, yaitu menunjukan bagaimana satu atau lebih input diubah menjadi beberapa output. Setiap proses mempunyai nama, nama dari proses ini menunjukan apa yang dikerjakan proses.
d) Simpanan Data (Data Store)
Data Store merupakan simpanan dari data yang dapat berupa suatu file atau
database pada sistem komputer.
2.11 Pengujian
Pengujian perangkat lunak (bahasa Inggris: software testing) merupakan suatu investigasi yang dilakukan untuk mendapatkan informasi mengenai kualitas
dari produk atau layanan yang sedang diuji (under test) [16]. Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak secara obyektif dan
independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkat
risiko pada implementasinya. Teknik-teknik pengujian mencakup, namun tidak
terbatas pada, proses mengeksekusi suatu bagian program atau keseluruhan aplikasi
dengan tujuan untuk menemukan bug perangkat lunak (kesalahan atau cacat lainnya).
Pengujian perangkat lunak dapat dinyatakan sebagai
proses validasi dan verifikasi bahwa sebuah program :
1. Memenuhi kebutuhan (requirement) yang mendasari perancangan dan pengembangan perangkat lunak tersebut;
3. Dapat diterapkan menggunakan karakteristik yang sama;
4. Memenuhi kebutuhan semua pihak yang berkepentingan.
2.11.1 Blackbox Testing
Test case ini bertujuan untuk menunjukkan fungsi Perangkat Lunak tentang cara beroperasinya, apakah pemasukan data keluaran telah berjalan sebagaimana
yang diharapkan dan apakah informasi yang disimpan secara eksternal selalu dijaga
kemutakhirannya.
2.11.2 Whitebox Testing
White box Testing atau pengujian glass box adalah metode desain test case
menggunakan struktur kontrol desain prosedural untuk mendapatkan test case. Dengan menggunakan metode White box analisis sistem akan memperoleh Test case sebagai berikut:
1. Menjamin seluruh independent path di dalam modul yang dikerjakan sekurang-kurangnya sekali
2. Mengerjakan seluruh keputusan logika
3. Mengerjakan seluruh loop yang sesuai dengan batasannya
4. Mengerjakan seluruh struktur data internal yang menjamin validitas.
1. Uji Coba Basis Path
Merupakan teknik uji coba white box yang diusulkan Tom McCabe. Metode ini memungkinkan perancang test case mendapatkan ukuran kekompleksan logical dari perancangan prosedural dan menggunakan
ukuran ini sebagai petunjuk untuk mendefinisikan basis set dari jalur
pengerjaan. Test case yang didapat digunakan untuk mengerjakan basis set yang menjamin pengerjaan setiap perintah minimal satu kali selama uji
35
Gambar 2. 21 Notasi Diagram Alir
Lingkaran (node), menggambarkan satu/lebih perintah prosedural. Urutan proses dan keputusan dapat dipetakan dalam satu node. Tanda panah (edge), menggambarkan aliran kontrol. Setiap node harus mempunyai tujuan node.
Region adalah daerah yang dibatasi oleh edge dan node. Termasuk daerah diluar grafik alir. Contoh menterjemahkan pseudocode pada gambar 2.21 ke grafik alir akan ditunjukan pada gambar 2.22.
Gambar 2. 22 Contoh pseudocode
1 do while record masih ada baca record
2 if record ke 1 = 0
3 then proses record simpan di buffer naikan counter
4 else if record ke 2 = 0
5 then riser counter
6 proses record simpan pada file
7 endif
8 endif
9 end do
Gambar 2. 23 Diagram Alir
Nomor pada pseudocode berhubungan dengan nomor node. Apabila ditemukan kondisi majemuk (compound condition) pada pseudocode pembuatan grafik alir menjadi rumit. Kondisi majemuk mungkin terjadi pada operator Boolean
(AND, OR, NAND, NOR) yang dipakai pada perintah if. Berikut contoh gambar akan ditunjukan pada gambar 2.24 berikut :
37
if A or B
then procedure x
else procedure y
endif
Node dibuat terpisah untuk masing-masing kondisi A dan B dari pernyataan
IF A OR B. Masing-masing node berisi kondisi yang disebut pridicate node dan mempunyai karakteristik dua atau lebih edge darinya.
2. Cyclomatic complexity
Cyclomatic complexity adalah metrik software yang menyediakan ukuran kuantitatif dari kekompleksan logikal program. Apabila digunakan dalam konteks
metode uji coba basis path , nilai yang dihitung untuk cyclomatic complexity
menentukan jumlah jalur independen dalam basis set suatu program dan memberi
batas atas untuk jumlah uji coba yang harus dikerjakan untuk menjamin bahwa
seluruh perintah sekurang-kurangnya telah dikerjakan sekali.
Jalur independent adalah jalur yang melintasi atau melalui program dimana
sekurang-kurangnya terdapat proses perintah yang baru atau kondisi yang baru.
Gambar 2. 25 Contoh Flowgraph
Path 1 = 1 - 11
Path 3 = 1 - 2 - 3 - 6 - 8 - 9 ...: 10 - 1 - 11
Path 4 = 1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 - 11
Path 1,2,3,4 yang telah didefinisikan diatas merupakan basis set untuk diagram alir.
Cyclomatic complexity digunakan untuk mencari jumlah path dalam satu
flowgraph. Dapat dipergunakan rumusan sebagai berikut :
1. Jumlah region grafik alir sesuai dengan cyclomatic complexity.
2. Cyclomatix complexity V(G) untuk grafik alir dihitung dengan rumus: V(G) = E - N + 2
Dimana:
E = jumlah edge pada grafik alir N = jumlah node pada grafik alir
3. Cyclomatix complexity V(G) juga dapat dihitung dengan rumus:
V(G) = P + 1
Dimana P = jumlah predicate node pada grafik alir Pada gambar 2.5 dapat dihitung cyclomatic complexity: 1. Flowgraph mempunyai 4 region
2. V(G) = 11 edge - 9 node + 2 = 4 3. V(G) = 3 predicate node + 1 = 4
Jadi cyclomatic complexity untuk flowgraph adalah 4.
3. Graph Metrik
39
node. Berikut ini adalah contoh sederhana pemakaian graph metrik dapat digambarkan pada gambar 2.26.
Gambar 2. 26 Penggunaan Graph Metrik
Hubungan bobot menyediakan tambahan informasi tentang aliran kontrol.
Secara simpel hubungan bobot dapat diberi nilai 1 jika ada hubungan antara node
atau nilai 0 jika tidak ada hubungan. Dapat juga hubungan bobot diberi tanda
dengan:
a. Kemungkinan link (edge) dikerjakan
b. Waktu yang digunakan untuk proses selama traversal dari link
c. Memori yang diperlukan selama traversallink
d. Sumber daya yang diperlukan selama traversal link
2.11 Tools Yang Digunakan
Adapun perangkat lunak yang digunakan untuk Pembangunan game
Damdaman yaitu adobe flash dan menggunakan bahasa pemograman
menggunakan ActionScript 2.0. dan untuk versi adobe flash yang digunakan versi CS6.
2.11.1 Adobe Flash
Flash adalah salah satu perangkat lunak komputer yang digunakan untuk
popular untuk membuat animasi, iklan, multimedia interaktif, integrasi video pada
halaman Web.
Sama halnya dengan aplikasi grafik lainnya Flash dapat memanipulasi
vektor dan bitmap, namun Flash dapat diisi dengan pemprograman yang rumit dan dapat menghasilkan animasi yang ringan apabila dikerjakan dengan mode vektor
yang sederhana. Keunggulan Flash lainnya adalah dapat mendukung streaming audio maupun video, hal yang tidak dapat dilakukan oleh aplikasi grafik lainnya.
Flash bekerja dengan bahasa pemprograman yang dinamakan ActionScript. Bahasa ini telah mengalami beberapa kali perkembangan sejak pertama kali
diperkenalkan. Versi terakhir adalah ActionScript 3.0 atau disingkat AS3, dengan struktur bahasa yang sangat menyerupai javascript.
Dengan dukungan ActionScript, maka aplikasi yang dibangun dengan Flash dapat ditampilkan secara online di internet. Sebuah game yang ditulis dalam format Flash boleh menghasilkan file SWF berukuran beberapa kilobyte saja. SWF adalah
kependekan dari “ShockWave Flash”, kata lain yang biasanya dipergunakan untuk
menyebutkan file swf adalah Flash Movie. File Flash Movie memiliki ekstensi .swf, yang hanya dapat ditampilkan apabila komputer yang menjalankan aplikasi
tersebut telah memiliki plug-in“Flash Player”.
2.11.2 ActionScript
ActionScript adalah bahasa pemrograman yang dibuat berdasarkan ECMAScript, yang digunakan dalam pengembangan situs web dan perangkat lunak menggunakan platform Adobe Flash Player. ActionScript juga dipakai pada beberapa aplikasi basis data, seperti Alpha Five. Bahasa ini awalnya dikembangkan oleh Macromedia, tapi kini sudah dimiliki dan dilanjutkan perkembangannya oleh
Adobe, yang membeli Macromedia pada tahun 2005.
ActionScript terbaru saat ini adalah ActionScript 3.0. ActionScript 3.0 adalah bahasa terbaru dari edisi yang sebelumnya dikenal dengan ActionScript 2.0.
ActionScript 3.0 memiliki beberapa kelebihan dibanding pendahulunya, antara lain fitur yang ditawarkan adalah file pada ActionScript 3.0 dapat dibuat terpisah saat
131
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil implementasi game Damdaman, maka dapat diambil kesimpulan sebagai berikut :
1. Pembangunan game Damdaman dapat mengenalkan kembali permainan tradisional Damdaman yang sebelumnya kurang dikenal oleh anak-anak
jaman sekarang.
2. Pembangunan game Damdaman memudahkan anak-anak untuk
memainkan permainan tradisional Damdaman, karena lebih praktis dalam
penyajiannya dan dapat dimainkan single player.
5.2 Saran
Saran untuk pengembangan aplikasi ini agar lebih baik yaitu :
1. Penambahan level permainan, agar user lebih tertantang untuk memainkan
game Damdaman.