• Tidak ada hasil yang ditemukan

Game turn based strategy menggunakan algoritma minimax pada desktop

N/A
N/A
Protected

Academic year: 2017

Membagikan "Game turn based strategy menggunakan algoritma minimax pada desktop"

Copied!
93
0
0

Teks penuh

(1)
(2)
(3)
(4)
(5)

Jenis kelamin : Laki-laki

Tempat, tanggal lahir : Bandung, 18 Februari 1991

Agama : Islam

Kewarganegaraan : Indonesia

Status : Belum kawin

Anak ke : Satu dari dua bersaudara

Alamat : Perumahan Gading Junti Asri Blok M2 No. 22, RT 05 RW 05, Kabupaten Bandung 40971

Telepon : +6282128657075

E-mail : shendykurnia@yahoo.com

2. RIWAYAT PENDIDIKAN

1. Sekolah Dasar : SD Negeri Sejahtera 6 tahun ajaran 1996 - 2002

2. Sekolah Menengah Pertama : SMP Negeri 1 Margahayu tahun ajaran 2002 - 2005

3. Sekolah Menengah Atas : SMA Negeri 1 Margahayu tahun ajaran 2005-2008

4. Perguruan Tinggi : FTIK Unikom Bandung tahun ajaran 2008- 2013

Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.

Bandung, 23 Februari 2013

(6)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer

Shendy Kurnia

10108063

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(7)

iii

telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan

skripsi dengan judul “GAME TURN BASED STRATEGY MENGGUNAKAN ALGORITMA MINIMAX PADA DESKTOP”. Skripsi ini disusun dalam rangka memenuhi tugas akhir program strata satu Program Sturi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.

Dalam menyusun skripsi ini, penulis banyak memperoleh bantuan serta bimbingan dari berbagai pihak. Oleh karena itu, penulis ingin menyampaikan ucapan terimakasih kepada :

1. Keluarga penulis, khususnya Ibu dan Bapak penulis yang telah memberikan dukungan yang sangat besar kepada penulis.

2. Ibu Nelly Indriani W.,S.Si., M.T. selaku dosen pembimbing yang telah meluangkan waktu untuk memberikan bimbingan, saran dan nasehatnya selama penulisan skripsi ini.

3. Bapak Irawan Afrianto, S.T., M.T. dan Galih Hermawan, S.Kom, M.T. selaku dosen penguji yang telah memberikan arahan untuk penulisan skripsi ini. 4. Seluruh dosen dan staf Program Studi Teknik Informatika Universitas

Komputer Indonesia.

5. Seluruh teman-teman kelas IF-2 angkatan 2008.

6. Seluruh pihak yang membantu dan mendukung penulis dalam menyusun skripsi ini.

(8)

iv

Bandung, Agustus 2013

(9)

v

DAFTAR REFERENSI PROPERTI ... xiii

DAFTAR LAMPIRAN ... xvi

I.5 Metodologi Penelitian ... 3

I.6 Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 7

II.1 Permainan ... 7

II.2 Permainan Turn Based Strategy (TBS) ... 7

II.3 Graph ... 7

II.4 Algoritma ... 11

II.5 Algoritma pencarian ... 11

II.6 Kecerdasan buatan ... 12

(10)

vi

II.11 Algoritma minimax ... 18

II.12 Alpha-Beta Pruning ... 20

II.13 UML ... 21

II.13.1 Diagram-Diagram UML ... 21

II.14 Metode Pengujian Sistem ... 23

II.14.1 White Box... 23

II.14.2 Black Box ... 26

II.16 Game Maker ... 27

BAB III ANALISIS DAN PERANCANGAN SISTEM ... 29

III.1 Analisis Sistem ... 29

III.1.1 Analisis Masalah ... 29

III.1.3 Analisis Game Yang Dikembangkan ... 32

III.1.6 Analisis Algoritma ... 36

III.1.7 Analisis Kebutuhan Non-fungsional ... 42

III.1.8 Analisis Kebutuhan Fungsional ... 43

III.2 Perancangan Sistem ... 55

III.2.1 Karakter ... 55

III.2.2 Storyboard ... 57

III.2.3 Perancangan Struktur Menu ... 59

III.2.4 Perancangan Antar Muka ... 59

III.2.5 Jaringan Semantik ... 63

(11)

vii

IV.2 Pengujian Sistem ... 71

IV.2.1 Rencana Pengujian ... 71

IV.2.2 Pengujian White box ... 73

IV.2.3 Pengujian Black box ... 77

IV.2.4 Pengujian Beta ... 79

BAB V KESIMPULAN DAN SARAN ... 81

V.1 Kesimpulan ... 81

V.2 Saran ... 81

(12)

82

Departemen Teknik Informatika, Institut Teknologi, 2003.

[2] Negnevitsky, Michael. Artificial Intelligence A Guide to Intelligent System, 2nd ed. Addison-Wesley, 2005.

[3] Pressman, Ph.D. Roger S. Software Engineering A Practitioner Approach, 5th ed. Boston: McGraw-Hill, 2001.

[4] Russell, Stuart, and Peter Norvig. Artificial Intelligence A Modern Approach . 2nd. Upper Saddle River, New Jersey: Pearson Education, Inc, n.d.

[5] Widodo, Prabowo Pudjo. Menggunakan UML. Bandung: Informatika, 2011. [6] Wikipedia. January 28, 2012. http://id.wikipedia.org/wiki/Majapahit (accessed

February 20, 2012).

[7] ESRB. ESRB Rating Guide. [Online].

http://www.esrb.org/ratings/ratings_guide.jsp

(13)

1 I.1 Latar Belakang Masalah

Turn Based Strategy (TBS) adalah game strategi yang dimainkan secara bergiliran. Dalam permainan ini dua pemain akan saling berhadapan dan saling mengadu strategi untuk mempertahankan daerah sendiri dan mengalahkan lawan. TBS biasanya disajikan dengan menggunakan tema petualangan fiksi maupun cerita yang diangkat dari kejadian sebenarnya. Dengan karakteristik Turn Based Strategy (TBS) berupa game yang menggunakan tema dan dimainkan untuk beradu strategi, Turn Based Strategy (TBS) sangat cocok untuk digunakan pada game yang mengangkat tema sejarah, dimana dalam penyajian cerita, akan terdapat banyak pertempuran yang menggunakan strategi. Dengan model permainan seperti ini membuat daya tarik tersendiri bagi TBS sehingga sering digunakan sebagai model game baik 2D maupun 3D. Dalam pembuatannya game Turn Based Strategy biasanya hanya melibatkan satu orang pemain, yang kemudian akan dihadapkan dengan musuh berupa NPC (Non Playable Character) dalam game. Oleh karena itu dibutuhkan suatu kecerdasan buatan dalam NPC sebagai lawan yang harus dihadapi oleh pemain.

(14)

menerapkan algoritma minimax pada game dengan kategori Turn Based Strategy (TBS), langkah yang diambil oleh AI akan bervariasi, tergantung cara bermain dari pengguna.

Berdasarkan latar belakang tersebut, maka akan dibangun game Turn Based Strategy dengan basis Board games menggunakan algoritma minimax dimana NPC memiliki kemampuan berfikir dan berstrategi secara logis menggunakan AI yang terdapat di game turn-based strategy.

I.2 Rumusan Masalah

Rumusan masalah dalam penelitian ini adalah bagaimana memunculkan kemampuan berfikir dan berstrategi secara logis pada AI yang terdapat di game turn-based strategy.

I.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah untuk mengaplikasikan sebuah game Turn Based Strategy menggunakan algoritma minimax pada desktop. Sedangkan tujuan yang akan dicapai dalam penelitian ini yaitu :

1. Membangun sebuah aplikasi game turn-based strategy dengan menggunakan kecerdasan buatan pada NPC untuk menambah daya tarik pada aplikasi game. 2. Menggunakan algoritma minimax sebagai algoritma kecerdasan buatan untuk

menentukan langkah terbaik pada NPC.

I.4 Batasan Masalah

Dalam penelitian dan pengembangan game telah menghasilkan banyak perbedaan serta keunikan dalam setiap game. Dalam penelitian ini dibatasi masalah sebagai berikut :

1. Game beroperasi pada desktop dan offline.

(15)

3. Tingkatan level dengan menggunakan stage dan terdiri dari tiga stage. 4. Game bersifat turn based strategy.

5. Permodelan game menggunakan Unified Modelling Language (UML).

6. Menggunakan bahasa pemrograman Game Maker Language dengan game engine Game Maker.

7. Game dimainkan oleh 1 orang pengguna.

8. Tampilan antarmuka pengguna dalam game adalah tampilan 2D. 9. Bertemakan sejarah berdirinya Kerajaan Majapahit.

I.5 Metodologi Penelitian

Metodologi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :

1. Tahap pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

a) Studi Literatur

Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

2. Tahap pembuatan perangkat lunak.

Dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall, yang meliputi beberapa proses diantaranya:

(16)

a. System / Information Engineering

Merupakan bagian dari sistem yang terbesar dalam pengerjaan suatu proyek, dimulai dengan menetapkan berbagai kebutuhan dari semua elemen yang diperlukan sistem dan mengalokasikannya kedalam pembentukan perangkat lunak. Tahapan ini dibagi menjadi 2 yaitu:

1. Analisis

Merupakan tahap menganalisis hal-hal yang diperlukan dalam pelaksanaan proyek pembuatan perangkat lunak.

2. Design

Tahap penerjemahan dari data yang dianalisis kedalam bentuk yang mudah dimengerti oleh pengguna.

b. Code

Tahap penerjemahan data atau pemecahan masalah yang telah dirancang keadalam bahasa pemrograman tertentu.

c. Test

Merupakan tahap pengujian terhadap perangkat lunak yang dibangun.

I.6 Sistematika Penulisan

Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Menguraikan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian, yang kemudian diikuti dengan pembatasan masalah, asumsi, serta sistematika penulisan.

(17)

Menguraikan tentang permainan, algoritma, kecerdasan buatan, algoritma minimax, graph, UML dan Game Maker.

BAB III. ANALISIS DAN PERANCANGAN

Menguraikan tentang analisis sistem, analisis game sejenis, analisis game yang akan dikembangkan, Analisis Penggunaan Algoritma minimax terhadap game Turn-based strategy, analisis kebutuhan non fungsional, analisis kebutuhan fungsional, dan perancangan sistem.

BAB IV. IMPLEMENTASI DAN PENGUJIAN

Menguraikan tentang implementasi, perangkat pendukung, implementasi aplikasi, implementasi antar muka dan pengujian sistem.

BAB V. KESIMPULAN DAN SARAN

(18)
(19)

7 II.1 Permainan

Permainan merupakan sebuah aktivitas rekreasi dengan tujuan bersenang-senang, mengisi waktu luang, atau berolahraga ringan. Permainan biasanya dilakukan sendiri atau bersama-sama. Permainan komputer adalah permainan video yang dimainkan pada komputer pribadi, dan bukan pada konsol permainan, maupun mesin ding-dong. Permainan komputer telah berevolusi dari sistem grafis sederhana sampai menjadi kompleks dan mutakhir.

II.2 Permainan Turn Based Strategy (TBS)

Permainan Turn Based Strategy (TBS) adalah permainan strategi yang biasanya bertipe game perang (wargame), dimana pemain melakukan giliran dalam permainan. TBS sendiri berasal dari permainan tradisional catur. Catur adalah permainan mental yang dimainkan oleh dua orang. Pecatur adalah orang yang memainkan catur, baik dalam pertandingan satu lawan satu maupun satu melawan banyak orang (dalam keadaan informal). Sebelum bertanding, pecatur memilih biji catur yang akan ia mainkan. Terdapat dua warna yang membedakan bidak atau biji catur, yaitu hitam dan putih. Pemegang buah putih memulai langkah pertama, yang selanjutnya diikuti oleh pemegang buah hitam secara bergantian sampai permainan selesai.

II.3 Graph

Graph merupakan struktur data yang tersusun atas simpul-simpul atau titik-titik (simpul) yang terhubung satu sama lain dengan garis-garis (edge). Secara matematis, graph dinyatakan sebagai berikut :

(20)

Dimana: G = Graph

V= Simpul atau vertex, simpul E = Sisi, busur atau edge

Terdapat banyak sekali jenis graph. Namun secara orientasi arah, graph dapat dibedakan menjadi dua, pertama graph berarah. Graph berarah merupakan graph yang mana sisinya memiliki arah. Sisi ini biasa disebut busur (arc). Pada graph berarah, urutan pasangan simpul sangat diperhatikan karena dapat menyatakan hal yang berbeda.

Gambar II. 1 Graph Berarah

(21)

Gambar II. 2 Graph Tidak Berarah

Dari Gambar II-2 dapat dilihat bahwa pasangan simpul (Bandung, Garut) dan (Garut, Bandung) menyatakan hal yang sama karena busur yang ada tidak memiliki orientasi arah. Graph dapat dinyatakan sebagai sebuah struktur data, atau secara spesifik dinamakan sebagai ADT (abstract data type) yang terdiri dari kumpulan simpul dan sisi yang membangun hubungan antar simpul. Secara umum terdapat dua macam representasi dari struktur data graph, yang pertama adjacency list dan yang kedua adjacency matri.

Adjacency list merupakan bentuk representasi dari busur atau sisi dalam suatu graph sebagai satu senarai. Simpul yang terhubung oleh busur atau sisi dinyatakan sebagai simpul yang terkait. Dalam implementasinya, tabel hash digunakan untuk menghubungkan simpul dengan senarai yang berisi simpul-simpul yang saling terkait.

(22)

Graph pada Gambar II-3 Adjency List dapat digambarkan sebagai senarai {A,B}, {A,C} dan {B,C}. Representasi dari adjacency list dapat dilihat pada Tabel II-1.

Tabel II. 1 Representasi Adjacency List

Simpul Kedekatan Senarai Dari Simpul yang Berhubungan

A Dekat dengan B,C

B Dekat dengan A,C

C Dekat dengan A,B

Salah satu kekurangan dari representasi adjacency list adalah tidak adanya tempat untuk menyimpan nilai yang melekat pada sisi yang mana contoh nilai ini adalah nilai jarak simpul.

Yang kedua adalah adjacency matrix. Adjacency matrix merupakan representasi matriks yang menyatakan hubungan antar simpul dalam graph. Kolom dan baris dari matriks merepresentasikan simpul-simpul, dan nilai entri dalam matriks ini menyatakan hubungan antar simpul. Berikut ini adalah representasi adjacency matrix dari graph tak berarah.

(23)

Gambar II. 9 Representasi Adjacency Matrix Dari Gambar II. 4

Kelebihan dari adjacency matrix ini adalah elemen matriksnya dapat diakses langsung melalui indeks. Sedangkan kekurangannya bila graph memiliki jumlah sisi atau busur yang relatif sedikit, kebutuhan ruang hash tabel untuk matriks menjadi boros dan tidak efisien karena komputer menyimpan elemen yang tidak perlu.

II.4 Algoritma

(24)

Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

II.5 Algoritma pencarian

Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah danmenghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian. Algortima pencarian brute-force atau pencarian naif/uninformed menggunakan metode yang sederhana dan sangat intuitif pada ruang pencarian, sedangkan algoritma pencarian informed menggunakan heuristik untuk menerapkan pengetahuan tentang struktur dari ruang pencarian untuk berusaha mengurangi banyaknya waktu yang dipakai dalam pencarian.Sebuah algoritma pencarian uninformed adalah algoritma yang tidak mempertimbangkan sifat alami dari permasalahan. Oleh karena itu algoritma tersebut dapat diimplementasikan secara umum, sehingga dengan implementasi yang sama dapat digunakan pada lingkup permasalahan yang luas, hal ini berkat abstraksi[1].

Kekurangannya adalah sebagian besar ruang pencarian adalah sangat besar, dan sebuah pencarian uninformed (khususnya untuk pohon) membutuhkan banyak waktu walaupun hanya untuk contoh yang kecil. Sehingga untuk mempercepat proses, kadang-kadang hanya pencarian informed yang dapat melakukannya.

II.6 Kecerdasan buatan

(25)

info, juga memproses dengan kecepatan sangat tinggi menandingi kemampuan manusia.

Pentingnya kecerdasan buatan menjadi nyata bagi negara-negara yang berperan sejak tahun 1970. Para pemimpin negara yang mengakui potensialnya kecerdasan buatan mengharap mendapat persetujuan jangka panjang untuk sumber-sumber yang memerlukan dana intensif. Jepang adalah yang pertama kali melakukan itu. Negara ini mengembangkan program yang sangat berambisi dalam penelitian kecerdasan buatan[1].

II.7 Sejarah Kecerdasan Buatan

Pada awal abad 17, Rene Descartes mengemukakan bahwa tubuh hewan bukanlah apa-apa melainkan hanya mesin-mesin yang rumit. Blaise Pascal menciptakan mesin penghitung digital mekanis pertama pada 1642. Pada 19, Charles Babbage dan Ada Lovelace bekerja pada mesin penghitung mekanis yang dapat diprogram.

Bertrand Russell dan Alfred North Whitehead menerbitkan Principia Mathematica, yang merombak logika formal. Warren McCulloch dan Walter Pitts menerbitkan "Kalkulus Logis Program AI pertama yang bekerja ditulis pada 1951 untuk menjalankan mesin Ferranti Mark di University of Manchester (UK): sebuah program permainan naskah yang ditulis oleh Christopher Strachey dan program permainan catur yang ditulis oleh Dietrich Prinz. John McCarthy membuat istilah "kecerdasan buatan " pada konferensi pertama yang disediakan untuk pokok persoalan ini, pada 1956. Dia juga menemukan bahasa pemrograman Lisp. Alan Turing memperkenalkan “Turing Test” sebagai sebuah cara untuk mengoperasionalkan test perilaku cerdas. Joseph Weizenbaum membangun ELIZA, sebuah chatterbot yang menerapkan psikoterapi Rogerian Selama tahun 1960-an dan 1970-an, Joel Moses mendemonstrasikan kekuatan pertimbangan simbolis untuk mengintegrasikan masalah di dalam program Macsyma, program berbasis pengetahuan yang sukses pertama kali dalam bidang matematika.

(26)

mengembangkan bahasa komputer Prolog. Ted Shortliffe mendemonstrasikan kekuatan sistem berbasis aturan untuk representasi pengetahuan dan inferensi dalam diagnosa dan terapi medis yang kadangkala disebut sebagai sistem pakar pertama. Hans Moravec mengembangkan kendaraan terkendali komputer pertama untuk mengatasi jalan berintang yang kusut secara mandiri.

Pada Pada tahun 1980-an, jaringan syaraf digunakan secara meluas dengan algoritma perambatan balik, pertama kali diterangkan oleh Paul John Werbos pada 1974. Tahun 1990-an ditandai perolehan besar dalam berbagai bidang AI dan demonstrasi berbagai macam aplikasi. Lebih khusus Deep Blue, sebuah computer permainan catur, mengalahkan Garry Kasparov dalam sebuah pertandingan 6 game yang terkenal pada tahun 1997. DARPA menyatakan bahwa biaya yang disimpan melalui penerapan metode AI untuk unit penjadwalan dalam Perang Teluk pertama telah mengganti seluruh investasi dalam penelitian AI sejak tahun 1950 pada pemerintah AS.

Tantangan Hebat DARPA, yang dimulai pada 2004 dan berlanjut hingga hari ini, adalah sebuah pacuan untuk hadiah $2 juta dimana kendaraan dikemudikan sendiri tanpa komunikasi dengan manusia, menggunakan GPS, komputer dan susunan sensor yang canggih, melintasi beberapa ratus mil daerah gurun yang menantang[1].

II.8 Definisi Kecerdasan Buatan

Tidak ada definisi yang memuaskan untuk kecerdasan. Kecerdasan dapat diartikan sebagai kemampuan untuk memperoleh pengetahuan dan menggunakannya atau kecerdasan adalah apa yang di ukur oleh sebuah ”test

kecerdasan”.

(27)

Kecerdasan Buatan (Artificial intelligence) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (Komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf dan robotika[1].

Walaupun Artificial intelligence memiliki konotasi fiksi ilmiah yang kuat, Artificial intelligence membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam Artificial intelligence menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.

II.9 Macam – Macam Kecerdasan Buatan

Ada banyak jenis kecerdasan buatan, setidaknya ada lima jenis kecerdasan buatan yang sering kita temui, yaitu :

1. Jaringan Syaraf Buatan (Artificial Neural Networks)

(28)

2. Logika Fuzzy (Fuzzy Logics)

Adalah peningkatan dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Di mana logika klasik menyatakan bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak), logika fuzzy menggantikan kebenaran boolean dengan tingkat kebenaran.Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti "sedikit", "lumayan", dan "sangat". Dia berhubungan dengan set fuzzy dan teori kemungkinan. Dia diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California, Berkeley pada 1965[2].

3. Algoritma Genetik (Genetic Algorithms)

Adalah teknik pencarian yang di dalam ilmu komputer untuk menemukan penyelesaian perkiraan untuk optimisasi dan masalah pencarian. Algoritma genetik adalah kelas khusus dari algoritma evolusioner dengan menggunakan teknik yang terinspirasi oleh biologi evolusioner seperti warisan, mutasi, seleksi alam dan rekombinasi (atau crossover).Algoritma Genetik biasanya digunakan dibidang kedokteran, misal untuk menganalisis DNA[2].

II.10 Depth First Search

(29)

Berikut analisis ruang dan waktu untuk metode pencarian DFS : 1. Diasumsikan :

a. Pohon pelacakan memiliki cabang yang selalu sama, yaiu sebanyak b. b. Tujuan dicapai pada level ke-d.

2. Analisis Ruang

a. Setelah berjalan 1 langkah, stack akan berisi b node.

b. Setelah berjalan 2 langkah, stack akan berisi (b-1) + b node.

c. Setelah berjalan 3 langkah, stack akan berisi (b-1) + (b-1) + b node.

d. Setelah berjalan d langkah, stack akan berisi (b-1) * d + 1 node, mencapai maksimum.

3. Analisis Waktu

a. Pada kasus terbaik, DFS akan mencapai tujuan pada kedalaman d pertama, sehingga dibutuhkan pencarian sebanyak d + 1 node.

b. Pada kasus terburuk, DFS akan mencapai tujuan pada kedalaman d pada node terakhir, sehingga dibutuhkan pencarian sebanyak 1 + b + b2 + b3

+….+ bd = (bd+1-1) / ( b-1)

Keuntungan dari metode ini adalah :

1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.

2. Secara kebetulan, metode DFS akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.

Kelemahan dari metode ini adalah :

1. Memungkinkan tidak ditemukannya tujuan yang diharapkan. 2. Hanya akan mendapatkan 1 solusi pada setiap pencarian.

(30)

4. Setelah itu simpul 5 yang bertetangga dengan simpul 1, dan terakhir simpul 6 yang bertetangga dengan simpul 5.

Gambar II. 5 Contoh Penelusuran DFS

Untuk memecahkan persoalan memaksimalkan f(H), dilakukan penelusuran terhadap semua himpunan bagian Ai yang saling lepas. Setiap simpul berisi himpunan solusi biji-biji yang akan ditaruh dan jumlah nilai dari himpunan solusi.

II.11 Algoritma minimax

Algoritma Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai maksimal. Algoritma ini diterapkan dalam permainan yang melibatkan dua pemain seperti catur, tic tac toe, checkers, go dan permainan yang menggunakan strategi atau logika lainnya. Hal ini berarti permainan-permainan tersebut dapat dijelaskan sebagai suatu rangkaian aturan dan premis.

(31)

pendapatan tersebut, dan sebaliknya. Jumlah pendapatan dari pemain yang dikurangi dengan jumlah kehilangan akan berjumlah nol[4].

Teori minimax menyatakan :

Untuk setiap dua orang pemain dalam zero-sum game, terdapat nilai V dari strategi yang dimiliki pemain seperti :

1. Stratregi yang ditentukan pemain kedua akan menghasilkan konsekuensi kemungkinan untuk pemain pertama, V

2. Strategi yang dutentukan pemain pertama akan menghasilkan konsekuensi kemungkinan untuk pemain pertama, -V

Secara setara, strategi pemain pertama akan memastikan suatu nilai V tanpa memperdulikan strategi pemain kedua, dan bersamaan dengan itu pemain kedua akan memastikan dirinya kehilangan nilai sebesar –V. Algoritma Minimax merupakan algoritma dasar pencarian DFS (Depth-First Search) untuk melakukan traversal dalam pohon. DFS akan mengekspansi simpul paling dalam terlebih dahulu. Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dst. Dalam melakukan treversal, misalkan dimulai dari suatu simpul i, maka simpul selanjutnya yang akan dikunjungi adalah simpul tetangga j, yang bertetangga dengan simpul k, selanjutnya pencarian dimulai lagi secara rekursif dari simpul j. Ketika telah mencapai simpul m, dimana semua simpul yang bertetangga dengannya telah dikunjungi, pencarian akan dirunut balik ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul yang belum dikunjungi. Selanjutnya pencarian dimulai kembali dari j. Ketika tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi maka pencarian selesai.

(32)

Gambar II. 6 Pohon Pencarian Algoritma Minimax

Dari gambar II.7, proses pencarian dimulai dari jalur paling kiri terlebih dahulu, sehingga akan ditelusuri simpul paling kiri bawah yaitu 5. Nilai 5 disimpan sebagai nilai maksimum sementara karena berada di tingkat max, kemudian dilakukan backtrack dan menelusuri simpul tetangga dari simpul 5 yaitu simpul 2. Karena nilai 5 lebih besar dari nilai 2, maka nilai 2 tidak disimpan. Lalu dilakukan backtrack ke tingkat min sehingga nilai 5 yang diperoleh akan disimpan sebagai nilai minimum sementara. Untuk simpul 1 dan 3, nilai simpul 3 akan disimpan karena merupakan nilai maksimum di tingkat max. saat mencapai tingkat min, nilai 5 sebagai nilai minimum sementara akan digantikan oleh nilai 3, karena nilai 3 lebih kecil dibandingkan nilai 5, kemudian dilakukan backtracking dan dilanjutkan dengan penelusuran ke jalur kanan hingga dihasilkan nilai 6 pada tingkat min. karena nilai maksimum sementara pada tingkat paling atas adalah 3, maka nilai 3 akan digantikan dengan nilai 6 karena nilai 6 lebih besar dari nilai 3. Dengan demikian jalur yang akan dipilih menggunakan algoritma minimax adalah jalur sebelah kanan.

II.12 Alpha-Beta Pruning

(33)

merupakan modifikasi dari algoritma Minimax, yang akan mengurangi jumlah node yang dievaluasi oleh pohon pencarian. Pencarian untuk node berikutnya akan dipikirkan terlebih dahulu. Algoritma ini akan berhenti mengevaluasi langkah ketika terdapat paling tidak satu kemungkinan yang ditemukan dan membuktikan bahwa langkah tersebut lebih buruk jika dibandingkan dengan langkah yang diperiksa sebelumnya. Sehingga, langkah berikutnya tidak perlu dievaluasi lebih jauh[4]. Dengan algoritma ini hasil optimasi dari suatu algoritma tidak akan berubah. Berikut merupakan pohon dengan algoritma alpha-beta pruning :

Gambar II. 7 Pohon Pencarian Algoritma Minimax dengan Alpha-Beta Pruning

(34)

II.13 UML

UML singkatan dari Unified Modeling Language yang berarti bahasa pemodelan standard. (Chonoles, 2003:bab 1) mengatakan sebagai bahasa, berarti UML memiliki sitak dan semantic. Ketika kita membuat model menggunakan konsep UML ada aturan-aturan yang harus diikuti. Bagaimana elemen pada model-model yang kita buat berhubungan satu dengan yang lainnya harus mengikuti standar yang ada. UML bukan hanya sekedar diagram, tetapi juga menceritakan konteksnya[5].

UML diaplikasikan untuk maksud tertentu, biasanya antara lain untuk : 1. Merancang perangkat lunak

2. Sarana komunikasi antara perangkat lunak dengan proses bisnis.

3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang diperlukan sistem.

4. Mendokumentasi sistem yang ada, proses-proses dan organisasinya.

II.13.1 Diagram-Diagram UML

Beberapa literatur menyebutkan bahwa UML menyediakan sembilan jenis diagram, yang lain menyebutkan delapan karena ada beberapa diagram yang digabung, misalnya diagram komunikasi, diagram urutan dan diagram pewaktuan digabung menjadi diagram interaksi. Namun demikian model-model itu dapat dikelompokan berdasarkan sifatnya yaitu statis atau dinamis. Jenis diagram itu antara lain :

1. Diagram Kelas. Bersifat statis. Diagram ini memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka, kolaborasi-kolaborasi, serta relasi-relasi. Diagram ini umum dijumpai pada pemodelan sistem berorientasi objek. Meskipun bersifat statis, sering pula diagram kelas memuat kelas-kelas aktif. 2. Diagram Paket (Package Diagram). Bersifat statis. Diagram ini

(35)

3. Diagram Use-Case. Bersifat statis. Diagram ini memperlihatkan himpunan use-case dan actor-aktor (suatu jenis khusus dari kelas). Diagram ini terutama sangat penting untuk mengordinasikan dan memodelkan perilaku suatu sistem yang dibutuhkan serta diharapkan pengguna.

4. Diagram interaksi dan sequence (urutan). Bersifat dinamis. Diagram urutan adalah diagram interaksi yang menekankan pada pengiriman pesan dalam suatu waktu tertentu.

5. Diagram Komunikasi (Communication Diagram). Bersifat dinamis. Diagram sebagai pengganti diagramkolaborasi UML 1.4 yang menekankan organisasi struktural dari objek-objek yang menerima serta mengirim pesan.

6. Diagram Statechart (Statechart Diagram). Bersifat dinamis. Diagram status memperlihatkan keadaan-keadaan pada sistem, memuat status (state), transisi, kejadian serta aktifitas. Diagram ini terutama penting untuk memperlihatkan sifat dinamis dari antarmuka (interface), kelas, kolaborasi dan terutama penting pada pemodelan sistem-sistem yang reaktif.

7. Diagram Aktivitas (Activity Diagram). Bersifat dinamis. Diagram aktivitas adalah tipe khusus dari diagram status yang memperlihatkan aliran dari suatu aktivitas ke aktivitas lainnya dalam suatu sistem. Diagram ini terutama penting dalam pemodelan fungsi-fungsi suatu sistem dan memberi tekanan pada aliran kendali antar objek.

8. Diagram komponen (Component Diagram). Bersifat statis. Diagram komponen ini memperlihatkan organisasi serta kebergantungan sistem/perangkat lunak pada komponen-komponen yang telah ada sebelumnya. Diagram ini berhubungan dengan diagram kelas dimana komponen secara tipikal dipetakan kedalam satu atau lebih kelas-kelas, antaramuka-antarmuka serta kolaborasi-kolaborasi.

(36)

saat aplikasi kita berlaku sebagai aplikasi yang dijalankan pada banyak mesin (distributed computing).

Kesembilan diagram ini tidak mutlak harus digunakan dalam pengembangan perangkat lunak, semuanya dibuat sesuai dengan kebutuhan. Pada UML dimungkinkan kita menggunakan diagram-diagram lain (misalnya data flow diagram, Entity Relationship diagram dan sebagainya).

II.14 Metode Pengujian Sistem

Pengujian sistem adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain dan pengkodean. Pengujian menyajikan anomali yang menarik bagi perekayasa perangkat lunak. Pada proses perangkat lunak, perekayasa pertama-tama berusaha membangun perangkat lunak dari konsep abstrak ke implementasi yang dapat dilihat, dan dilanjutkan dengan pengujian[8].

II.14.1 White Box

Pengujian white box dilakukan untuk menguji prosedur-prosedur yang ada. Lintasan lojik yang dilalui oleh setiap bagian prosedur diuji dengan memberikan kondisi/loop spesifik. Pengujian white box menjamin pengujian terhadap semua lintasan yang tidak bergantungan minimal satu kali, mencoba semua keputusan lojik dari sisi „true‟ dan „false‟, eksekusi semua loop dalam batasan kondisi dan batasan operasionalnya dan pengujian validasi data internal[8]. Konsep pengujian basis path pada white box adalah sebagai berikut:

1. Merupakan bagian dari pengujian white-box dalam hal pengujian prosedurprosedur.

2. Mempergunakan notasi aliran graph (node, link untuk merepresentasikan sequence, if, while, until dll.).

(37)

yang harus direncanakan dan dieksekusi untuk menjamin pengujian seluruh statement program.

4. Memunculkan kasus-kasus yang akan diuji dengan membuat daftar lintasan kasus pengujian berdasarkan kompleksitas dan cyclomatic yang didapat. 5. Membuat alat bantu matrik graph yang membantu pengawasan pengujian.

II.14.1.1 Notasi graf Alur (

Path Graph Notation

)

Notasi sederhana untuk merepresentasikan alur kontrol disebut graf alur (flow graph), terdiri dari edge, node dan region. Sebuah edge harus berakhir pada sebuah node walaupun tidak semua node merepresentasikan perintah prosedural. Area yang dibatasi oleh edge dan node disebut region, area diluar graph juga dihitung sebagai region[8].

Gambar II. 8 Flowgraph

II.14.1.2

Cyclomatic Complexity

(38)

konteks metode ujicoba berbasis alur, nilai yang dikomputasi untuk kompleksitas cyclomatic mendefinisikan jumlah independent path dalam himpunan basis suatu program dan menyediakan batas atas untuk sejumlah ujicoba yang harus dilakukan untuk memastikan bahwa seluruh perintah telah dieksekusi sedikitnya satu kali[8].

Independent path adalah alur manapun dalam program yang memperkenalkan sedikitnya satu kumpulan perintah pemrosesan atau kondisi baru. Contoh independent path dari gambar II.8 :

Path 1 : 1 – 11

Path 2 : 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11 Path 3 : 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11 Path 4 : 1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11

Misalkan setip path yang baru memunculkan edge yang baru, dengan path : 1 - 2 – 3 – 4 – 5 – 10 - 1 - 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11

path diatas tidak dianggap sebagai independent path karena kombinasi path diatas telah didefinisikan sebelumnya Ketika ditetapkan dalam graf alur, maka independent path harus bergerak sedikitnya 1 edge yang belum pernah dilewati sebelumnya. Kompleksitas cyclomatic dapat dicari dengan salah satu dari 3 cara berikut :

1. Jumlah region dari graf alur mengacu kepada komplesitas cyclomatic 2. Kompleksitas cyclomatic untuk graf alur G didefinisikan :

V(G) = E – N + 2

Dimana E = jumlah edge, dan N = jumlah node

3. Kompleksitas cyclomatic untuk graf alur G didefinisikan : V(G) = P + 1

Dimana P = jumlah predicates nodes

II.14.1.3

Graph Matrix

(39)

ujicoba berbasis alur, struktur data yang disebut graph matrix. Graph matrix merupakan matrik persegi yang jumlah baris dan kolomnya sesuai dengan jumlah node pada graf alur. Setiap baris dan kolom mengacu kepada sebuah node dan isi dari matrix mengacu kepada edge[8].

Graph Matrix merupakan representasi tabular dari flow graph, dengan menambahkan link weight untuk setiap input pada matrik, maka matrik graf menjadi alat bantu yang lebih berguna untuk mengevaluasi struktur kontrol program selama ujicoba. link weight menyediakan informasi tambahan mengenai aliran kontrol. Dengan bentuk sederhana, yaitu berikan nilai 1 jika ada koneksi antar node dan nilai 0 jika tidak ada koneksi. Hal lain yang dapat diketahui melalui matrik graf :

1. Kemungkinan suatu link/ edge akan dieksekusi

2. Waktu proses yang dibutuhkan selama traversal suatu link 3. Memori yang diperlukan selama traversal suatu link 4. Sumber daya yang diperlukan selama traversal suatu link

II.14.2 Black Box

Pengujian yang dilakukan untuk antarmuka perangkat lunak, pengujian ini dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja dengan baik dalam arti masukan yang diterima dengan benar dan keluaran yang dihasilkan benar-benar tepat, pengintegrasian dari eksternal data berjalan dengan baik. Metode pengujian black-box memfokuskan pada requirement fungsi dari perangkat lunak, pengujian ini merupakan komplenetari dari pengujian white-box[8].

Pengujian white-box dilakukan terlebih dahulu pada proses pengujian, sedangkan pengujian black-box dilakukan pada tahap akhir dari pengujian perangkat lunak. Proses yang terdapat dalam proses pengujian black-box antara lain sebagaiberikut: 1. Pembagian kelas data untuk pengujian setiap kasus yang muncul pada

pengujian white-box.

(40)

II.16 Game Maker

Game Maker adalah game engine yang sangat populer untuk membuat sebuah game karena adanya sistem drag and drop. Game Maker memungkinkan pengguna untuk membuat video game tanpa memiliki pengetahuan mengenai bahasa pemrograman. Game Maker memberikan resource yang cukup banyak, dari segi grafis 2D hingga 3D, sprite maker, sound, script, path dan sebagainya.

(41)

29 BAB III

ANALISIS DAN PERANCANGAN SISTEM

III.1 Analisis Sistem

Analisis sistem merupakan kegiatan penguraian suatu sistem informasi yang utuh dan nyata ke dalam bagian-bagian atau komponen-komponen komputer yang bertujuan untuk mengidentifikasi serta mengevaluasi masalah-masalah yang muncul, hambatan-hambatan yang mungkin terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga mengarah kepada solusi dengan kebutuhan serta perkembangan teknologi.

III.1.1 Analisis Masalah

Kecerdasan dalam mengatur strategi adalah faktor terpenting dalam game turn-based strategy (TBS). Kemampuan dalam mengambil satu dari banyak keputusan harus dimiliki oleh AI yang digunakan pada game TBS. Ada banyak algoritma yang dapat diterapkan dalam game sebagai AI, namun setiap algoritma memiliki kelebihan tersendiri tergantung pada jenis game. Tingkat kesulitan yang dimiliki NPC juga perlu untuk diperhatikan, karena NPC yang terlalu pintar membuat game menjadi sulit untuk dimainkan, begitu pula sebaliknya, NPC yang berfikir lambat akan membuat game menjadi terlalu mudah untuk dimainkan

Solusi yang dapat memecahkan masalah tersebut adalah penerapan algoritma minimax dengan Alpha-Beta Pruning pada game turn-based strategy (TBS) sebagai pemilih keputusan pada AI.

III.1.2 Analisis Game Sejenis

(42)

III.1.2.1 Deskripsi Game Gadget Trial

Gadget Trial adalah game yang mengkombinasikan game turn-based strategy dan visual novel. Diterbitkan di jepang tanggal 23 Juni 2006 oleh KOGADO

Studio’s Kuma-san Team. Gadget Trial menggunakan desain anime untuk desain

karakternya, dan hanya dapat dimainkan oleh 1 orang pemain (single player). Pada game Gadget Trial, seorang pemain memiliki sejumlah unit yang memiliki karakteristik yang berbeda, baik dalam jarak serang maupun dalam jumlah langkah yang dapat ditempuh dalam sekali giliran. Pemain harus dapat merebut bangunan utama milik musuh. Dalam hal pergerakan unit, gadget trial tidak mengelompokkannya dalam satu kali giliran, tetapi mengurutkan giliran gerak setiap unit berdasarkan tingkat kecepatan gerak unitnya, sehingga pergerakan unit milik pemain dan unit yang digerakkan oleh AI akan tercampur dan pergantian giliran tidak begitu terasa. Analisis pergerakan unit pada setiap stage dapat dilihat dalam bentuk activity diagram pada Gambar III.2.

(43)
(44)

III.1.3 Analisis Game Yang Dikembangkan

Analisis game yang akan dikembangkan merupakan bagian yang mendeskripsikan game yang akan dikembangkan. Pada bagian ini terdiri dari pengenalan game, story line, gameplay dan tingkat kesulitan.

III.1.3.1 Pengenalan

Game yang akan dibuat berjudul Rise of Majapahit, dengan menggunakan model Board games (Permainan Papan) yang membutuhkan suatu papan atau media yang terbagi dalam sektor-sektor tertentu (dengan garis-garis) dan didalamnya terdapat sejumlah unit yang dapat digerakkan. Game ini menggunakan sistem Turn Based Strategy dimana pengguna melakukan penyerangan secara bergiliran dengan lawan. Pada dasarnya mirip dengan permainan catur, namun kelebihan game ini dibandingkan dengan permainan catur biasa adalah :

1. Setiap unit dapat bergerak bebas dalam ruang lingkup posisi awal unit tersebut, tidak seperti pada permainan catur biasa yang memiliki aturan pergerakan seperti pion yang hanya bisa bergerak maju 1 langkah atau knight/kuda yang hanya bisa berjalan dengan membentuk huruf L. 2. Setiap unit memiliki Health Point dimana ketika setiap kali

penyerangan oleh musuh, unit yang terkena serangan tidak akan langsung kalah, tetapi setiap besar serangan yang dilakukan penyerang akan mengurangi jumlah Health Point milik unit yang diserang.

3. Untuk mendapat kemenangan, setiap unit musuh harus dikalahkan, tidak seperti pada catur biasa yang menggunakan unit raja sebagai kunci kemenangan.

(45)

III.1.4.2 Storyline

Game Rise of Majapahit ini menceritakan Raden Wijaya sebelum berdirinya Majapahit. Singhasari telah menjadi kerajaan paling kuat di Jawa. Hal ini menjadi perhatian Kubilai Khan, penguasa Dinasti Yuan di Tiongkok. Ia mengirim utusan yang bernama Meng Chi ke Singhasari yang menuntut upeti. Kertanagara, penguasa kerajaan Singhasari yang terakhir menolak untuk membayar upeti dan mempermalukan utusan tersebut dengan merusak wajahnya dan memotong telinganya. Kublai Khan marah dan lalu memberangkatkan ekspedisi besar ke Jawa tahun 1293.

Ketika itu, Jayakatwang, adipati Kediri, sudah menggulingkan dan membunuh Kertanegara. Atas saran Aria Wiraraja, Jayakatwang memberikan pengampunan kepada Raden Wijaya, menantu Kertanegara, yang datang menyerahkan diri. Raden Wijaya kemudian diberi hutan Tarik. Ia membuka hutan itu dan membangun desa baru. Desa itu dinamai Majapahit, yang namanya diambil dari buah maja, dan rasa "pahit" dari buah tersebut. Ketika pasukan Mongol tiba, Wijaya bersekutu dengan pasukan Mongol untuk bertempur melawan Jayakatwang. Setelah berhasil menjatuhkan Jayakatwang, Raden Wijaya berbalik menyerang sekutu Mongol sehingga memaksa mereka menarik pulang kembali pasukannya. Cerita dibagi menjadi 3 stage, yang masing-masing menceritakan usaha Raden Wijaya untuk mendapatkan kekuasaan adipati Kediri.

1. Pada stage pertama, menceritakan usaha Raden wijaya pada pertama kalidibebaskan Jayakatwang dan diberi huntan tarik, yang kemudian digunakan untuk membangun sebuah desa baru.

2. Pada stage kedua, menceritakan persekutuan Raden Wijaya dengan pasukan Mongol utusan Kublai Khan untuk menjatuhkan kekuasaan Jayakatwang.

(46)

III.1.5.3 Gameplay

Dalam aplikasi game ini, player memiliki tugas untuk menghadapi strategi musuh pada setiap stage, dimana dalam setiap stage, jumlah musuh akan terus bertambah. Bagi player pemula, stage yang dapat dimainkan hanya stage 1, dan apabila menyelesaikan stage 1, akan dilanjutkan dengan stage 2, kemudian stage 3. Apabila player sudah pernah menyelesaikan stage 1 atau stage 3, maka player dapat memainkan stage tersebut kembali tanpa harus melewati stage 1.

Gambar III. 3 Alur Permainan

Ketika memulai permainan pada setiap stage, player diberi giliran pertama dalam mengatur strategi, dan menjalankan semua unitnya. Setelah player selesai menggerakkan seluruh unitnya , dilanjutkan dengan penggerakan unit musuh oleh AI. Unit dapat menyerang musuh apabila musuh sudah berada di area serang unit. Player akan meneruskan permainan apabila telah mengalahkan semua unit musuh, tetapi player akan mengalami kekalahan apabila Raden Wijaya (hero) mati. Pada setiap stage terdapat peraturan seperti berikut:

1. Player memilih piece atau unit yang akan digerakkan, diantaranya prajurit, menggerakan piece, yang kemudian dilanjutkan kembali dengan pergerakan piece milik player

(47)

III.1.5.4 Tingkat Kesulitan

Game ini memiliki tingkat kesulitan yang berbeda pada setiap stage. Tingkat kesulitan terdapat pada keadaan awal yang diberikan pada player. Tingkat kesulitan yang akan dihadapi oleh player adalah sebagai berikut :

1. Stage 1

Detail tingkat kesulitan pada stage 1 ditunjukan pada Tabel III.1. Tabel III. 1 Detail Tingkat Kesulitan Pada Stage 1

Jumlah Keterangan

Jumlah unit player 6 Terdiri dari 3 prajurit, 2 pemanah dan 1 hero

Jumlah unit musuh 6 Terdiri dari 4 prajurit dan 2 pemanah

Jenis terrain 2 Terdiri dari hutan dan gunung, hutan bisa

dilewati oleh prajurit, pemanah dan hero

sedangkan gunung hanya dapat dilewati oleh

prajurit dan hero

2. Stage 2

Detail tingkat kesulitan pada stage 2 ditunjukan pada Tabel III.2. Tabel III. 2 Detail Tingkat Kesulitan Pada Stage 2

Jumlah Keterangan

Jumlah unit player 10 Terdiri dari 4 prajurit, 2 pemanah, 3

penunggang kuda dan 1 hero

Jumlah unit musuh 10 Terdiri dari 4 prajurit, 2 pemanah, 3

penunggang kuda dan 1 hero

Jenis terrain 2 Terdiri dari hutan dan gunung, hutan bisa

dilewati oleh prajurit, pemanah dan hero

sedangkan gunung hanya dapat dilewati oleh

(48)

3. Stage 3

Detail tingkat kesulitan pada stage 3 ditunjukan pada Tabel III.3. Tabel III. 3 Detail Tingkat Kesulitan Pada Stage 3

Jumlah Keterangan

Jumlah unit player 16 Terdiri dari 7 prajurit, 5 pemanah, 3

penunggang kuda dan 1 hero

Jumlah unit musuh 16 Terdiri dari 9 prajurit, 3 pemanah, 3

penunggang kuda dan 1 hero

Jenis terrain 2 Terdiri dari hutan dan gunung, hutan bisa

dilewati oleh prajurit, pemanah dan hero

sedangkan gunung hanya dapat dilewati oleh

prajurit dan hero

III.1.6 Analisis Algoritma

Algoritma ini mulai dikembangkan dari teori game zero-sum. Teori ini mendeskripsikan situasi dimana jika terdapat pemain yang mengalami pendapatan, pemain lain akan mengalami kehilangan dengan nilai yang sama dari pendapatan tersebut, dan sebaliknya. Jumlah pendapatan dari pemain yang dikurangi dengan jumlah kehilangan akan berjumlah nol[4].

Teori minimax menyatakan :

Untuk setiap dua orang pemain dalam zero-sum game, terdapat nilai V dari strategi yang dimiliki pemain seperti :

1. Stratregi yang ditentukan pemain kedua akan menghasilkan konsekuensi kemungkinan untuk pemain pertama, V

2. Strategi yang dutentukan pemain pertama akan menghasilkan konsekuensi kemungkinan untuk pemain pertama, -V

(49)

traversal dalam pohon. DFS akan mengekspansi simpul paling dalam terlebih dahulu. Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dst. Dalam melakukan treversal, misalkan dimulai dari suatu simpul i, maka simpul selanjutnya yang akan dikunjungi adalah simpul tetangga j, yang bertetangga dengan simpul k, selanjutnya pencarian dimulai lagi secara rekursif dari simpul j. Ketika telah mencapai simpul m, dimana semua simpul yang bertetangga dengannya telah dikunjungi, pencarian akan dirunut balik ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul yang belum dikunjungi. Selanjutnya pencarian dimulai kembali dari j. Ketika tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi maka pencarian selesai.

III.1.6.1 Kasus Algoritma Minimax

Diumpamakan terdapat satu piece milik player ditunjukkan oleh simpul B dan satu piece milik NPC ditunjukkan oleh simpul A yang terhalangi oleh kotak berwarna hitam, dimana kotak tersebut tidak dapat dilewati oleh seluruh piece seperti ditunjukkan pada Gambar III.2.

Gambar III. 4Posisi Simpul A dan Simpul B

(50)

Bangkitkan seluruh wilayah gerak yang dimiliki oleh simpul A. wilayah gerak yang dimiliki oleh simpul A ditunjukkan oleh warna biru seperti ditunjukkan pada Gambar III.5, kemudian hitung bobot yang dimiliki oleh setiap wilayah gerak.

Gambar III. 5 Wilayah Pergerakan Simpul A

Bangkitkan seluruh wilayah gerak yang dimiliki oleh simpul B. wilayah gerak yang dimiliki oleh simpul B ditunjukkan oleh warna merah seperti ditunjukkan pada Gambar III.6, kemudian hitung bobot yang dimiliki oleh setiap wilayah gerak.

Gambar III. 6 Wilayah Pergerakan Simpul B

(51)

Gambar III. 7 Dua Pola Pergerakan Simpul A

Setiap pola pergerakan dievaluasi kembali menggunakan langkah 2 dan tiga hingga membentuk sebuah pohon kemungkinan. Pola-pola pergerakan tersebut dihitung hingga menghasilkan nilai maksimum dan minimum. Berikut adalah perhitungan-perhitungan dari beberapa kondisi.

1. jumlah tile gerak

h1 = tile – tileObjWall keterangan :

h1 = jumlah tile yang dapat dilalui pada area gerak tile = jumlah keseluruhan tile dalam area gerak

tileObjWall = jumlah tile yang memiliki obstacle berupa gunung atau hutan

2. jumlah musuh

h2 = jumlah musuh keterangan :

h2 = jumlah unit musuh yang berada dalam area gerak

3. jarak terdekat

h3 = (abs(finish.x - start.x) + abs(finish.y - start.y))/GRID_SIDE keterangan :

h3 = jarak unit musuh terdekat

start.x = nilai koordinat horizontal untuk gerak awal start.y = nilai koordinat vertikal untuk gerak awal

(52)

finish.y = nilai koordinat vertikal untuk unit musuh terdekat

dari ketiga nilai heuristik dapat dihasilkan nilai untuk setiap simpul dengan perhitungan berikut.

h = h1 + h2 + h3

Kemudian didapat nilai minimum dan maksimum pada setiap anak simpul hingga didapatkan jalur dari anak simpul terbawah menuju simpul teratas seperti ditunjukkan pada gambar III.8.

Gambar III. 8 Pohon Keputusan

Membandingkan nilai heuristik pada minimax dilakukan dengan mengasumsikan Max sebagai langkah yang diambil oleh NPC sedangkan Min diasumsikan sebagai langkah yang diambil oleh pemain. Penelusurannya akan dilakukan secara DFS yaitu dimulai dari atas ke kiri kemudian menuju ke simpul yang lebih dalam hingga ke akar yang kemudian dibandingkan nilai heuristik setiap simpul yang sejajar kemudian naik kembali ke simpul di atasnya kemudian penelusuran diulang kembali pada simpul sebelah kanan hingga mendapatkan solusi.

(53)

kedua yaitu h=11 akan menggantikan nilai parent yang bernilai h=10 karena max selalu menghasilkan nilai terbesar.

Kemudian nilai simpul pada level 3 dibandingkan kembali dimana nilai pada simpul pertama pada level 3 bernilai h=11 dan simpul kedua. Sebelumnya akan ditelusuri terlebih dahulu anak dari simpul kedua, dilakukan perbandingan seperti pada simpul pertama hingga didapatkan nilai untuk simpul kedua yaitu h=12 Pada level 3 nilai yang dihasilkan adalah nilai min maka dicari nilai terkecil, yaitu nilai simpul pertama yaitu h=11. Nilai simpul pertama akan diambil sebagai nilai parent sementara pada satu level diatasnya yaitu level 2. Pada level 2 dilakukan evaluasi perbandingan untuk mencari nilai max. dimana simpul pertama memiliki nilai h=11 dan untuk simpul kedua dilakukan penelusuran pada anak simpulnya hingga menghasilkan nilai h=12. Nilai dari simpul kedua yaitu h=12 diambil sebagai nilai parent, karena memiliki nilai lebih besar dari simpul pertama yaitu h=11. Penelusuran berlanjut pada level 1 dimana nilai simpul pertama yaitu h=12 dibandingkan dengan nilai simpul kedua. Nilai simpul kedua pada level 1 didapat dari hasil penelusuran dan pembandingan terlebih dahulu pada anak-anak simpul kedua, hingga dihasilkan nilai simpul kedua pada level 1 adalah h=16. Pada level 1 menghasilkan nilai min sehingga nilai simpul pertama yaitu 12 akan menjadi nilai parent, karena nilai simpul pertama lebih kecil dari nilai simpul kedua yaitu h=16. Penelusuran berhenti ketika simpul telah mencapai simpul teratas, sehingga nilai h=12 pada level 0 menjadi nilai solusi untuk menentukan langkah terbaik pada NPC.

(54)

parent sementara yaitu h=10 dan simbul tetangganya yaitu h=12 tidak akan ditelusuri kembali. begitu seterusnya hingga didapat sebuah solusi. Perbedaan dalam langkah penelusurannya ditunjukkan oleh gambar III.9.

Gambar III. 9 Phohon Keputusan Minimax Menggunakan Alpha-beta Pruning

III.1.7 Analisis Kebutuhan Non-fungsional

Analisis kebutuhan non fungsional dilakukan untuk mengetahui spesifikasi kebutuhan untuk sistem. Spesifikasi kebutuhan melibatkan analisis perangkat keras / hardware, analisis perangkat lunak / software.

III.1.7.1 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak digunakan dalam sebuah sistem merupakan perintah perintah yang diberikan kepada perangkat keras agar bisa saling berinteraksi diantara keduanya. Perangkat lunak yang digunakan dalam pembangunan aplikasi game ini adalah sebagai berikut :

(55)

III.1.7.2 Analisis Kebutuhan Perangkat Keras

Komputer terdiri dari perangkat keras dan perangkat lunak yang saling berinteraksi. Perangkat lunak memberikan instruksi-instruksi kepada perangkat keras untuk melakukan suatu tugas tertentu, sehingga dapat menjalankan suatu sistem di dalamnya.

Pada aplikasi ini, perangkat keras yang digunakan adalah sebagai berikut :

1. Intel® Core™ i3-2310M CPU @ 2.10GHz

III.1.7.3 Analisis Kebutuhan Perangkat Pikir

Analisis kebutuhan perangkat piker dilakukan untuk mengetahui kemampuan pengguna (player) yang dapat memaikan game ini. Berikut adalah analisis kebutuhan perangkat pikir pada game ini :

Tabel III. 4 Tabel Kebutuhan Perangkat Pikir

Karakteristik Pengguna Keterangan

Computer Literacy Kemampuan menggunakan komputer tingkat pemula

Application Experience Tidak dibutuhkan

Education Tidak dibutuhkan

Reading Level Bahasa Indonesia dan Bahasa Inggris tingkat pemula

Typing Skill Tidak dibutuhkan

Age 12 tahun keatas [7]

Gender Pria dan Wanita

(56)

III.1.8 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional dilakukan untuk mengetahui gambaran sistem yang akan dibangun. Analisis kebutuhan fungsional terdiri dari pendefinisan fungsi game dengan menggunakan use case diagram, definisi aktor pada use case, definisi use case dan skenario use case.

1. Use Case Diagram

Berikut adalah penggambaran fungsi game berdasarkan interaksi antar aktor dan objek pada sistem dengan menggunakan diagram use case.

Gambar III. 10 Use Case Diagram

2. Definisi Aktor

Definisi aktor berfungsi menjelaskan peran setiap aktor yang terdapat pada use case.

Tabel III. 5 Definisi Aktor

No. Aktor Deskripsi

(57)

3. Definisi Use Case

Definisi Use Case berfungsi untuk menjelaskan proses yang terdapat pada setiap Use Case.

Tabel III. 6 Definisi Use Case

No. Use Case Deskripsi

1 Penyajian Stage 1 Proses permainan pada stage 1

2 Penyajian Stage 2 Proses permainan pada stage 2

3 Penyajian Stage 3 Proses permainan pada stage 3

4. Skenario Use Case

Skenario setiap bagian pada use case menunjukkan proses apa yang terjadi pada setiap bagian didalam use case tersebut, dimana user memberikan perintah pada setiap bagian dan respon apa yang diberikan oleh sistem kepada user setelah user memberikan perintah pada setiap bagian – bagian use case.

Tabel III. 7 Skenario Use Case Penyajian Stage 1

Identifikasi

Nomor 1

Nama Penyajian Stage 1

Tujuan Memainkan stage 1

Deskripsi Proses permainan pada stage 1

Aktor Player

Skenario Utama

(58)

Aksi Aktor Reaksi Sistem

1. Memilih stage 1 2. Menampilkan room stage 1

3. Memilih pathfinder milik aktor 4. Menampilkan wilayah gerak dan wilayah serang

5. Menekan tombol end turn 6. Menjalankan proser end turn

7. Menekan tombol keluar 8. Menampilkan pesan keluar dari

game

9. Memilih cell dalam wilayah gerak 10. Menggerakkan pathfinder

11. Memilih pathfinder musuh dalam wilayah serang

12. Menjalankan proses perhitungan

Skenario Tambahan

Kondisi Awal Aktor berada di pesan keluar dari game

1. Menekan tombol Ya 2. Menampilkan menu utama

3. Menekan tombol Tidak 4. Menampilkan room stage 1

Tabel III. 8 Skenario Use Case Penyajian Stage 2

Identifikasi

Nomor 2

Nama Penyajian Stage 2

Tujuan Memainkan stage 2

Deskripsi Proses permainan pada stage 2

Aktor Player

Skenario Utama

Kondisi Awal Aktor berada di dalam permainan pada stage 2

Aksi Aktor Reaksi Sistem

(59)

3. Memilih pathfinder milik aktor 4. Menampilkan wilayah gerak dan wilayah serang

5. Menekan tombol end turn 6. Menjalankan proser end turn

7. Menekan tombol keluar 8. Menampilkan pesan keluar dari

game

9. Memilih cell dalam wilayah gerak 10. Menggerakkan pathfinder

11. Memilih pathfinder musuh dalam wilayah serang

12. Menjalankan proses perhitungan

Skenario Tambahan

Kondisi Awal Aktor berada di pesan keluar dari game

5. Menekan tombol Ya 6. Menampilkan menu utama

7. Menekan tombol Tidak 8. Menampilkan room stage 2

Tabel III. 9 Skenario Use Case Pilihan Mulai Baru

Identifikasi

Nomor 3

Nama Penyajian Stage 3

Tujuan Memainkan stage 3

Deskripsi Proses permainan pada stage 3

Aktor Player

Skenario Utama

Kondisi Awal Aktor berada di dalam permainan pada stage 3

Aksi Aktor Reaksi Sistem

1. Memilih stage 3 2. Menampilkan room stage 3

3. Memilih pathfinder milik aktor 4. Menampilkan wilayah gerak dan wilayah serang

5. Menekan tombol end turn 6. Menjalankan proser end turn

(60)

game

9. Memilih cell dalam wilayah gerak 10. Menggerakkan pathfinder

11. Memilih pathfinder musuh dalam wilayah serang

12. Menjalankan proses perhitungan

Skenario Tambahan

Kondisi Awal Aktor berada di pesan keluar dari game

9. Menekan tombol Ya 10. Menampilkan menu utama

11. Menekan tombol Tidak 12. Menampilkan room stage 3

5. Activity Diagram

(61)
(62)
(63)
(64)

6. Class Diagram

Perancangan kelas digambarkan dengan class diagram. Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Class diagram ditunjukan pada Gambar III-16. Pendefinisian kelas ditunjukan pada Tabel III-20.

Tabel III. 10 Tabel Pendefinisian Kelas

Jenis Kelas Nama Kelas

Boundary

CUtama

CPermainan

CStage

CQuit

CStage1

CStage2

CStage3

CPlayerPathfinder

CEnemyPathfinder

Entity CMinimax

(65)

Gambar III. 14 Class Diagram

7. Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan disekitar sistem (termasuk pengguna, display, dan sebagainya). Sequence diagram terdiri atas dimensi vertical (waktu) dan dimensi horizontal (objek-objek yang terkait).

(66)

Gambar III. 15 Sequence Diagram Penyajian Stage 1

(67)

Gambar III. 17 Sequence Diagram Penyajian Stage 3

III.2 Perancangan Sistem

Tahap perancangan merupakan kelanjutan dari proses analisis dimana dilakukan perubahan-perubahan terhadap sistem yang sedang berjalan. Hal ini dilakukan untuk mengatasi kekurangan yang ada, memudahkan pekerjaan yang dilakukan oleh orang yang terlibat dan menghemat waktu pekerjaan.

Perancangan game ini meliputi perancangan struktur menu, perancangan antarmuka, perancangan pesan, jaringan semantik, perancangan prosedural. Semua perancangan yang telah disebutkan diatas harus saling berhubungan agar menciptakan suatu sistem yang baik.

III.2.1 Karakter

(68)

Tabel III. 11 Karakter

No. Tampilan Karakter Nama

(69)

6 Penunggang

Kuda

2

Kotak 1

Kotak

Playable

Character

(berwarna

biru)/NPC

(berwarna

merah)

III.2.2 Storyboard

Storyboard adalah sketsa gambar yang disusun berurutan sesuai dengan naskah, dengan storyboard, ide cerita dapat disampaikan kepada pengguna aplikasi dengan lebih mudah, sehingga menghasilkan persepsi yang sama pada ide cerita.

Berikut merupakan storyboard dari Aplikasi Rise of Majapahit :

(70)

Gambar III. 19 Storyboard Stage 2

(71)

III.2.3 Perancangan Struktur Menu

Dalam pembangunan aplikasi diperlukan sebuah struktur menu untuk menunjukan keterkaitan dan tingkatan antara menu utama dan sub menu, sehingga dapat lebih mudah di mengerti. Berikut struktur menu dari game yang akan di bangun :

Gambar III. 21 Struktur Menu Dalam Game

III.2.4 Perancangan Antar Muka

(72)

Gambar III. 22 Perancangan Antarmuka Menu Utama

(73)

Gambar III. 24 Perancangan Antarmuka Petunjuk

(74)

Gambar III. 26 Perancangan Antarmuka Stage 2

(75)

III.2.5 Jaringan Semantik

Jaringan semantik merupakan alat efektif untuk merepresentasikan pemetaan data, yang bertujuan mencegah terjadinya duplikasi data. Berikut adalah jaringan semantik pada game ini :

Gambar III. 28 Jaringan Semantik

III.2.6 Perancangan Method

Perancangan method merupakan pemaparan proses pada method-method yang digunakan pada setiap kelas. Perancangan method digambarkan dengan menggunakan Flow Chart.

a. Method FindPathSection()

(76)

berdasarkan nilai best move dari seluruh move. Method ini digambarkan pada Gambar III.22.

b. Method Attack()

(77)
(78)
(79)

81 V.1 Kesimpulan

Berdasarkan hasil pengujian beta pada lingkungan pengguna didapatkan kesimpulan berupa :

1. Implementasi AI pada game menambah daya tarik pengguna untuk menggunakan aplikasi game.

2. Langkah yang diambil oleh NPC menjadi lebih sulit diprediksi langkahnya serta menjadi semakin sulit dikalahkan bagi sebagian pemain ketika algoritma minimax diaplikasikan pada NPC.

V.2 Saran

Saran yang dapat diberikan oleh peneliti pada penelitian ini adalah :

1. Memperdalam pola fikir AI sehingga menghasilkan lawan yang lebih baik 2. Jenis misi pada game lebih bervariasi

3. Memiliki tampilan antarmuka yang lebih menarik

(80)

67 IV.1 Implementasi Sistem

Implementasi system adalah tahap pengujian kelayakan pada system yang dibuat sehingga aplikasi yang dibuat tidak menyimpang dari perancangan sistemnya. Game ini dibuat menggunakan Game Maker 8.0. perangkat keras yang digunakan untuk mengimplementasikan dan menguji game ini memiliki spesifikasi sebagai berikut :

1. Processor core i3 dengan kecepatan 2.1GHz 2. Memori 6GB

3. Harddisk 640GB

4. Video Card dengan memori 2GB 5. Monitor

6. Mouse dan Keyboard 7. Speaker

Sedangkan perangkat lunak yang digunakan untuk mengimplimentasikan dan menguji game ini adalah :

1. Windows 7 Ultimate sebagai system operasi

2. Game Maker 8.0 sebagai perangkat lunak pembangun game

IV.1.1 Implementasi Antar Muka

Implementasi antar muka adalah bagian yang menunjuk bentuk tampilan setiap antar muka pada aplikasi yang sudah dibangun. Implementasi antar muka pada game ini ditunjukkan pada gambar IV.1 sampai gambar IV.6

1. Antarmuka Menu Utama

Gambar

Gambar II. 5 Contoh Penelusuran DFS
Gambar II. 8 Flowgraph
Gambar III. 1 Tampilan game Gadget Trial
Gambar III. 10 Use Case Diagram
+7

Referensi

Dokumen terkait

peraturan, menyerahkan surat ijin tidak mengikuti perkuliahan dari Program studi kepada dosen atau Bagian akademik, penanggung jawab mata kuliah selambat-lambatnya

Yang perlu diperhatikan oleh para calon investor adalah kinerja perusahaan yang dapat dilihat melalui laporan keuangan khususnya tingkat investasi dalam kaitannya dengan

Dari hasil penelitian dan telaah dokumen maka dapat disimpulkan bahwa metode yang digunakan oleh pihak rumah sakit KH Daud Arif Tanjung jabung Barat sudah

Dari paparan diatas diketahui bahwa respon getaran baik lateral maupun torsional pada poros turbin sumbu vertikal tipe darrieus dengan mekanisme fixed blade

Dengan demikian, pemaafan yang dilakukan tidak hanya sekedar berdamai pada perasaan negatif atau yang disebut dengan pemaafan sepihak (McCullough, 2000), tapi juga

Dari penelitian yang telah dilakukan tentang penerapan Algoritma Jaringan Syaraf Tiruan Propagasi Balik Pada Klasifikasi Data Penggunaan Daya Listrik dapat ditarik

Tata ruang yang ada di Apotek Farma Record diatur sedemikian rupa sehingga dapat memberikan kenyamanan bagi pengunjung, dan memberi kemudahan bagi dokter, apoteker

Dari permasalahan di atas dapat disimpulkan bahwa klasifikasi tingkat keganasan kanker payudara dapat diselesaikan menggunakan teknik data mining, yaitu