Membangun game shooter-adventure Teh Legend of Cursed Amulet berbasis desktop

(1)

(2)

(3)

(4)

(5)

BIODATA PENULIS 1. DATA PRIBADI

Nama : Iqbal Latif Iskandar Jenis kelamin : Laki-laki

Tempat, tanggal lahir : Bandung, 09 Juli 1990

Agama : Islam

Kewarganegaraan : Indonesia

Status : Belum kawin

Anak ke : Satu

Alamat : KP CILOKOTOT RT.03/02 Kec. Margahayu, Kab. Bandung

Telepon : 087821741841


(6)

2. RIWAYAT PENDIDIKAN

1. Sekolah Dasar : SDN Angkasa VI

tahun ajaran 1996 -2002 2. Sekolah Menengah Pertama : SMPN 2 Dayeuh Kolot

tahun ajaran 2002-2005

3. Sekolah Menengah Kejuruan : SMK Prakarya Internasional Bandung 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, 25 Februari 2013


(7)

MEMBANGUN GAME SHOOTER-ADVENTURE

THE LEGEND OF CURSED AMULET

SKRIPSI

Diajukan Untuk Menempuh Ujian Akhir Sarjana Program Studi S1 Teknik Informatika

Fakultas Teknik dan Ilmu Komputer

IQBAL LATIF ISKANDAR

10108587

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2013


(8)

KATA PENGANTAR

Assalammu’alaikum Wr.Wb.

Segala puji dan syukur penulis panjatkan atas kehadirat Tuhan Yang Maha Esa, Allah SWT, yang telah melimpahkan berkat, rahmat, dan inayah-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul “MEMBANGUN

GAME SHOOTER-ADVENTURE THE LEGEND OF CURSED AMULET.

Tak lupa shalawat serta salam semoga selalu tercurah kepada Baginda Rasullullah SAW, kepada para sahabatnya, dan kepada para ummatnya hingga akhir jaman.

Skripsi ini dibangun untuk memenuhi salah satu syarat dalam menyelesaikan jenjang pendidikan Strata 1 Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Penulis menyadari bahwa skripsi ini masih sangat banyak kekurangan dan berkat bantuan dari semua pihak akhirnya skripsi ini dapat terselesaikan tepat pada waktunya.

Oleh karena itu, dengan rasa syukur dan haru, penulis ingin menyampaikan rasa terima kasih yang sebesar-besarnya kepada :

1. Kedua orang tua tercinta, Ayahanda, Pepen Efendi dan Ibunda, Tati Rohaeti, serta adik dan kaka tercinta, Luthfi Tsalist dan Nurul Inayah F, Ibu Yuyun dan Bapak Dadang Iskandar, yang selalu sabar memberikan dukungan, senantiasa memberikan kasih sayang yang begitu besar, serta senantiasa memberikan doa setiap waktu.

2. Bapak Dr. Eddy Suryanto Soegoto, M. Sc, selaku Rektor Universitas Komputer Indonesia.

3. Ibu Nelly Indriani W., S.Si., M. T., selaku pembimbing yang telah memberikan pengarahan dan masukan yang sangat berguna bagi penulis dalam penyusunan skripsi ini.

4. Bapak Galih Hermawan, S.Kom., M.T., selaku penguji 1 yang telah memberikan banyak masukan yang sangat berguna bagi penulis.


(9)

5. Dian Dharmayanti, S.T., M.Kom. selaku dosen penguji 3 yang telah memberikan banyak pengarahan dalam penyusunan skripsi yang berguna bagi penulis.

6. Ibu Rani Susanto, S.Kom., selaku dosen wali kelas IF-12 angkatan 2008. 7. Ibu Mira Kania Sabariah, S.T., M.T., selaku Ketua Jurusan Teknik

Informatika Universitas Komputer Indonesia.

8. Seluruh staff dosen dan staff tata usaha Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.

9. Rekan-rekan mahasiswa kelas IF-12 angkatan 2008, khususnya Agung Rosamaji, R Moch. Reza N.H. , Ronan D Malelak, Fadli Fadlillah Sulaiman, Eka Priyambudi Utama, Dadang Sujana, Aris Nugraha, Oscar Anwar Nurdin, dan Olga Dwi Hendriana.

10. Serta semua pihak yang telah membantu dalam penyusunan skripsi ini, yang tidak bisa penulis sebutkan satu-persatu.

Semoga Allah SWT. senantiasa melimpahkan rahmat dan karunia-Nya, serta memberikan balasan berlipat ganda atas jasa dan amal baiknya.

Keterbasan kemampuan dan pengetahuan dari penulis dalam melaksanan penelitian yang hasilnya dituangkan ke dalam skripsi ini masih jauh dari kata sempurna. Oleh karena itu penulis sangat mengharapkan segala masukan dari berbagai pihak untuk menyempurnakan skripsi ini.

Akhir kata semoga skripsi ini dapat menjadi ilmu yang bermanfaat bagi penulis sendiri khususnya dan bagi pembaca pada umumnya.

Wassalammu’alaikum Wr.Wb Bandung, 22 Januari 2013


(10)

DAFTAR ISI

LEMBAR JUDUL

LEMBAR PENGESAHAN

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL... xii

DAFTAR SIMBOL ... xiv

DAFTAR PROPERTI GAME ... xviii

DAFTAR LAMPIRAN ... xxii

BAB 1 PENDAHULUAN ... 1

1.1. Latar Belakang Masalah ... 1

1.2. Rumusan Masalah ... 2

1.3. Maksud dan Tujuan... 2

1.4. Batasan Masalah ... 2

1.5. Metodologi Penelitian ... 3

1.6. Sistematika Penulisan ... 6

BAB 2 LANDASAN TEORI ... 7

2.1. Permainan Video (Video Game) ... 7

2.1.1. Sejarah Singkat Video Game ... 7

2.1.2. Jenis-jenis permainan video ... 9

2.1.3. Konsep Permainan Video ... 16

2.1.4. GameplayPlatformer... 16

2.1.5. Karakteristik Platformers... 17

2.2. AI (ARTIFICIAL INTELLIGENCE) ... 18

2.2.1. Definisi AI ... 18

2.2.2. Teknik Pemecahan Masalah AI ... 18

2.2.3. Metode Collision detection ... 27

2.2.4. Object Oriented Programming (OOP) ... 28

2.2.5. Unified Modelling Language (UML) ... 32


(11)

2.2.7. Diagram UML ... 33

2.2.8. Teknik Pengujian Perangkat Lunak ... 43

2.2.9. Pengujian Black box ... 43

2.2.10. Pengujian White Box ... 44

2.2.11. Tools yang Digunakan ... 44

2.2.12. Java ... 45

2.2.13. Greenfoot ... 48

BAB 3 ANALISIS DAN PERANCANGAN SISTEM... 49

3.1. Analisis Sistem... 49

3.2. Analisis Masalah ... 49

3.2.1. Analisis Aplikasi Permainan Sejenis ... 49

3.2.2. Analisis Algoritma ... 58

3.2.3. Analisis Metode Pada Aplikasi Permainan The Legend Of Cursed Amulet ... 62

3.2.4. Analisis dan Kebutuhan Non Fungsional ... 72

3.2.5. Analisis Kebutuhan Fungsional ... 73

3.3. Perancangan Sistem ... 96

3.3.1. Perancangan Komponen Permainan ... 96

3.3.2. Perancangan Struktur Menu ... 107

3.3.3. Perancangan Antar Muka ... 108

3.3.4. Jaringan Semantik ... 113

3.3.5. Perancangan Method ... 114

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 125

4.1. Implementasi Sistem ... 125

4.2. Perangkat Pendukung yang Digunakan ... 125

4.2.1. Perangkat Keras (Hardware) ... 125

4.2.2. Perangkat Lunak (Software) ... 126

4.2.3. Implementasi Antarmuka ... 127

4.3. Pengujian Sistem ... 131

4.3.1. Pengujian Alpha (Fungsional) ... 131


(12)

BAB 5 KESIMPULAN DAN SARAN ... 153

5.1. Kesimpulan ... 153

5.2. Saran ... 153


(13)

DaftarGambar

Gambar 1.1. Model waterfall... 5

Gambar 2.1. Contoh permainan actiongame ... 9

Gambar 2.2. Contoh permainan Platformers ... 10

Gambar 2.3. Contoh permainan Adventure ... 10

Gambar 2.4. Contoh permainan Fighting ... 11

Gambar 2.5. Contoh dari permainan First-Person Shooter ... 12

Gambar 2.6. Contoh permainan Real-Time Strategi (RTS) ... 12

Gambar 2.7. Contoh dari Role-Playing Game ... 13

Gambar 2.8. Contoh permainan Simulation ... 14

Gambar 2.9. Contoh permainan Racing ... 14

Gambar 2.10. Contoh permainan Sport ... 15

Gambar 2.11. Contoh dari permainan Puzzle ... 15

Gambar 2.12. Spesialisasi peningkatan karakteristik industri game ... 16

Gambar 2.13. Ilustrasi awal algoritma A* ... 22

Gambar 2.14. Ilustrasi kotak awal sebagai CLOSED LIST ... 23

Gambar 2.15. Ilustrasi perhitungan F pada OPEN LIST ... 24

Gambar 2.16. Ilustrasi penentuan kotak selanjutnya ... 25

Gambar 2.17. Ilustrasi perhitungan terhadap kotak unwalkable ... 26

Gambar 2.18. Ilustrasi hasil akhir pencarian rute terpendek ... 26

Gambar 2.19. Tiga jenis collision detection ... 27

Gambar 2.20. Contoh dari USE CASE DIAGRAM ... 34

Gambar 2.21. Contoh dari ACTIVITY DIAGRAM ... 35

Gambar 2.22. Contoh dari CLASS DIAGRAM ... 36


(14)

Gambar 2.24. Contoh dari OBJECT DIAGRAM ... 38

Gambar 2.25. Contoh dari COMPONENT DIAGRAM ... 39

Gambar 2.26. Contoh dari DEPLOYMENT DIAGRAM ... 40

Gambar 2.27. Contoh dari STATE MACHINE DIAGRAM... 40

Gambar 2.28. Contoh dari TIMING DIAGRAM ... 42

Gambar 2.29. Contoh dari ITERACTION OVERVIEW DIAGRAM ... 43

Gambar 2.30. Notasi Diagram Alir... 44

Gambar 2.31. Maskot Java (Duke) dan HotJava ... 46

Gambar 3.1. Screenshot TILEGAME Platformer ... 49

Gambar 3.2. Sistem pada TILEGAME Platformer ... 52

Gambar 3.3. Alur permainan pada TILEGAMEPlatformer ... 63

Gambar 3.4. Arena Pada Aplikasi Permainan The Legend Of Cursed Amulet ... 62

Gambar 3.5. Kondisi Perhitugan yang Akan Diperiksa Algoritma A* ... 64

Gambar 3.6. Langkah Awal perhitungan pada koordinat (1,1), koordinat (1,0), dan koordinat (0,1) ... 65

Gambar 3.7. Hasil Langkah Pertama Perhitungan pada koordinat (1,1), koordinat (1,0), dan koordinat (0,1) ... 67

Gambar 3.8. Langkah kedua perhitungan pada koordinat (2,1), koordinat (2,2), dan koordinat (1,2) ... 67

Gambar 3.9. Hasil Perhitungan Langkah kedua perhitungan pada koordinat (2,1), koordinat (2,2), dan koordinat (1,2) ... 70

Gambar 3.10. Jalur Terpendek Yang dilalui musuh untuk mencari posisi Pemain ... 70

Gambar 3.11. Flowchart algoritma A*The Legend Of Cursed Amulet ... 71


(15)

Gambar 3.13. Diagram Activity Mulai Permainan pada Permainan The

Legend Of Cursed Amulet ... 81

Gambar 3.14. Diagram Activity Tampil Petunjuk The Legend Of Cursed Amulet ... 82

Gambar 3.15. Diagram Activity Mulai Permainan Level1 The Legend Of Cursed Amulet... 83

Gambar 3.16. Diagram Activity Mulai Permainan Level2 The Legend Of Cursed Amulet... 85

Gambar 3.17. Diagram Activity Mulai Permainan Level 3The Legend Of Cursed Amulet... 87

Gambar 3.18. Diagram Class Permainan The Legend Of Cursed Amulet ... 89

Gambar 3.19. Diagram Sequence untuk Use Case Mulai ... 91

Gambar 3.20. Diagram Sequence untuk Use Case Petunjuk ... 92

Gambar 3.21. Diagram Sequence untuk Use CaseLevel 1 ... 93

Gambar 3.22. Diagram Sequence untuk Use CaseLevel 2 ... 94

Gambar 3.23. Diagram Sequence untuk Use CaseLevel 3 ... 95

Gambar 3.24. STORYBOARDlevel 1 ... 105

Gambar 3.25. STORYBOARDlevel 2 ... 106

Gambar 3.26. STORYBOARDlevel 3 ... 107

Gambar 3.27. Struktur Menu The Legend Of Cursed Amulet ... 108

Gambar 3.28. Perancangan Antarmuka Menu UtamaThe Legend Of Cursed Amulet ... 109

Gambar 3.29. Perancangan Antarmuka PetunjukThe Legend Of Cursed Amulet ... 110

Gambar 3.30. Perancangan Antarmuka lihat petunjuk The Legend Of Cursed Amulet ... 111


(16)

Gambar 3.31. Perancangan Antarmuka Permainan Berakhir The Legend Of

Cursed Amulet... 112

Gambar 3.32. Jaringan Semantik The Legend Of Cursed Amulet ... 113

Gambar 3.33. FlowchartMethod drawHeart() ... 118

Gambar 3.34. FlowchartMethod loadTileMap() ... 119

Gambar 3.35. Flowchart Method loadLevel() ... 120

Gambar 3.36. FlowchartMethod loadMusic() ... 121

Gambar 3.37. Flowchart Method getTileCollision() ... 122

Gambar 3.38. FlowchartMethod checkShooting() ... 123

Gambar 4.1. Tampilan Menu Selamat Datang ... 127

Gambar 4.2. Tampilan Petunjuk ... 128

Gambar 4.3. Tampilan Intro ... 129

Gambar 4.4. Tampilan Level 1 ... 130

Gambar 4.5. TampilanGameOver... 130

Gambar 4.6. Flowchart Pengujian Collision detection Peluru dengan Musuh ... 136

Gambar 4.7. FLOW GRAPH Collision detection Peluru dengan Musuh .... 137

Gambar 4.8. FLOW GRAPH A *... 141

Gambar 4.9. Kualifikasi Skala Pengukuran ... 147

Gambar 4.10. Interpretasi Skor Pernyataan ke-1 ... 148

Gambar 4.11. Interpretasi Skor Pernyataan ke-2 ... 149

Gambar 4.12. Interpretasi Skor Pernyataan ke-3 ... 150

Gambar 4.13. Interpretasi Skor Pernyataan ke-4 ... 151


(17)

DAFTAR TABEL

Tabel 3.1. Kelebihan Aplikasi Permainan... 54

Tabel 3.2. Alur Aplikasi Permainan ... 55

Tabel 3.3. Analisis Tingkat Kesulitan Permainan ... 66

Tabel 3.4. Analisis Gameplay Permainan ... 67

Tabel 3.5. Source Code metode collision Peluru dengan Musuh The Legend Of Cursed Amulet ... 70

Tabel 3.6. Source Code metode collision Musuhdengan Hero The Legend Of Cursed Amulet ... 71

Tabel 3.7. Spesifikasi Perangkat Keras Developer ... 85

Tabel 3.8. Spesifikasi Perangkat Keras Pengguna ... 85

Tabel 3.9. Spesifikasi Perangkat Lunak Pengguna ... 86

Tabel 3.10. Analisis Kebutuhan Perangkat Pikir ... 86

Tabel 3.11. Skenario Use CaseLevel 1... 88

Tabel 3.12. Skenario Use CaseLevel 1... 89

Tabel 3.13. Skenario Use CaseLevel 2... 90

Tabel 3.14. Skenario Use CaseLevel 3... 92

Tabel 3.15. Skenario Use Case Tampil Petunjuk ... 94

Tabel 3.16. Entitas karakter dan item... 106

Tabel 4.1. Rencana Pengujian Aplikasi ... 132

Tabel 4.2. Kasus dan Hasil Uji... 132

Tabel 4.3. Pseudo code collision ... 136

Tabel 4.4. Graph Matriks Collision detection Peluru dengan Musuh ... 139

Tabel 4.5. Pseudo Algoritma A* ... 140

Tabel 4.6. Graph Matrices ... 144


(18)

Tabel 4.8. Bobot Jawaban Pernyataan Positif ... 146

Tabel 4.9. Bobot Jawaban Pernyataan Negatif ... 146

Tabel 4.10. Hasil Kuisioner Tampilan Aplikasi Permainan ... 148

Tabel 4.11. Hasil kuisioner perilaku musuh pada aplikasi permainan ... 149

Tabel 4.12. Hasil kuisioner NPC pada aplikasi permainan ... 150

Tabel 4.13. Hasil kuisioner kontrol pada aplikasi permainan ... 151


(19)

DAFTAR SYMBOL

1. Flowchart

Simbol Nama Keterangan

Terminator

Simbol yang menunjukkan tempat memulai / mengakhiri suatu program GarisAlir

(Flow Line)

Arahaliran program

Preparation

Proses inisialisasi / pemberian harga awal

Proses

Proses perhitungan / pengolahan data

Input/OutputData Proses prameter, informasi input / output data,

Decision

Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya

On Page Connector

Penghubungbagian-bagian

flowchart yang berada

pada satu halaman

Off Page Connector

Penghubung bagian-bagian flowchart yang berada pada halaman berbeda

Procedure/Subroutine

Berfungsi sebagai modul yang ada di dalam program


(20)

2. FLOW GRAPH

Simbol Nama Keterangan

Simpul/Node

Simbol yang

merepresentasikan satu atausekumpulan aktivitas berdasarkan pada diagram yang dirujuknya

Tepi/Edge

Simbol yang

menggambarkan transisi antar simpul pada FLOW GRAPH

3. USE CASE DIAGRAM

Simbol Nama Keterangan

Use Case

Fungsionalitas yang digunakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor

Aktor / Actor

Orang, proses atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri.

Asosiasi / Association

Komunikasi antara aktor dan Use Case yang berpartisipasi pada usecase atau Use Case memiliki interaksi dengan aktor <<extend >>

Ekstensi / Extend

Relasi Use Case tambahan ke sebuah Use Case dimana Use Case yang ditambahkan dapat berdiri sendiri walau tanpa Use Case tambahan itu

<<include>>

Include / Uses

Relasi tambahan ke sebuah Use Case dimana usecase yang ditambahkan memerlukan

nama usecase


(21)

4. ACTIVITY DIAGRAM

Simbol Nama Keterangan

Status Awal

Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal

Aktivitas

Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja

Percabangan / Decision

Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu Penggabungan / join

Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu

Status Akhir

Asosiasi penggabungan diamana lebih dari satu aktivitas digabungkan menjadi satu

5. CLASS DIAGRAM

Simbol Nama Keterangan

Kelas

Kelas pada struktur sistem

Asosiasi / association

Relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga

disertai dengan

multiplicity Aktivitas


(22)

6. SEQUENCE DIAGRAM

Simbol Nama Keterangan

Objek

Menyatakan Objek yang berinteraksi pesan

1: nama_metode()

Pesan tipe send

Menyatakan suatu objek memanggil operasi / metode yang ada pada objek lain atau dirinya sendiri

1: masukan

Pesan tipe send

Menyatakan bahwa suatu objek mengirimkan data / masukan / informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi

1: keluaran

Pesan tipe return

Menyatakan bahwa suatu objek yang telah menjalankan suatu operasi atau metode menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek

yang menerima

kembalian nama objek : nama kelas


(23)

DAFTAR PROPERTI GAME

1.

Karakter Dan Item

NO NAMA PENJELASAN SUMBER

1 Hero Karakter hero ini, merupakan karakter utama

http://spriters-resource.com/snes/sni

njakun/

(diakses pada tanggal 17 September 2012).

2 Warg Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 1

HP = 2

http://spriters-resource.com/snes/ (diakses pada tanggal

17 September 2012).

3 Bad Bird Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 1

HP = 2

http://spriters-resource.com/pc_com

puter/

(diakses pada tanggal 17 September 2012).

4 Slime Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 1

HP = 2

http://spriters-resource.com/snes/ (diakses pada tanggal


(24)

5 Lizardman Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 1

HP = 2

http://spriters-resource.com/pc_com puter/ragnarokonline/ (diakses pada tanggal 17 September 2012).

6 Fire Spirit Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 2

HP = 3

http://spriters-resource.com/pc_com puter/ragnarokonline/ (diakses pada tanggal 17 September 2012).

7 Ghost Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 2

HP = 3

http://spriters-resource.com/pc_com puter/ragnarokonline/ (diakses pada tanggal 17 September 2012).

8 Evil Ghost Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 2

HP = 3

http://spriters-resource.com/pc_com puter/ragnarokonline/ (diakses pada tanggal 17 September 2012).


(25)

9 Skeleton Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 2

HP = 3

http://spriters-resource.com/pc_com puter/ragnarokonline/

(diakses pada tanggal 3 Februari 2013).

10 Boar Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 2

HP = 3

http://spriters-resource.com/snes/ (diakses pada tanggal

3 Februari 2013).

11 Assassin Karakter NPC (Non-player

characters) ini, merupakan

karakter Boss yang terdapat pada level 3

HP = 20

http://spriters-resource.com/snes/ (diakses pada tanggal


(26)

12 Whisper Karakter NPC (Non-player

characters) ini, merupakan

karakter musuh yang terdapat pada level 3

HP = 10

http://spriters-resource.com/snes/ (diakses pada tanggal

3 Februari 2013

13 Scroll Sebuah item yang berfungsi untuk menambah poin

poin = 50

http://spriters-resource.com/ds/narut

ocouncil3/ (diakses pada tanggal

22 Oktober 2012).

14 Health Potion Sebuah item yang berfungsi untuk menambah health poin Pemain

http://spriters-resource.com/pc_com

puter/

(diakses pada tanggal 22 Oktober 2012).

15 Star Potion Sebuah item yang berfungsi untuk membuat karakter kebal untuk beberapa detik

http://spriters-resource.com/snes/ (diakses pada tanggal

22 Oktober 2012).

16 Shuriken Jenis peluru yang di tembakkan oleh hero

http://spriters-resource.com/ds/narut

ocouncil3/ (diakses pada tanggal


(27)

17 Crystal Amulet Item kristal yang harus diambil oleh pemain disetiap level agar bisa melanjutkan ke level berikutnya

http://spriters-resource.com/pc_com

puter/

(diakses pada tanggal 22 Oktober 2012).

2. Musik

No Nama Keterangan Sumber

1. Music1.mid BG Level 1 www.vgmusic.com

2. Music2.mid BG Level 2 www.vgmusic.com

3. Music3.mid BG Level 3 www.vgmusic.com

4. Sound.mid BG Intro www.vgmusic.com

5. Eat.wav BG Item www.vgmusic.com

6. Jump.wav BG Jump www.vgmusic.com


(28)

DAFTAR LAMPIRAN

Lampiran A Tampilan Antar Muka... A-1 Lampiran B Listing Program ... B-1 Lampiran C Hasil Kuesioner ... C-1


(29)

(30)

Daftar Pustaka

[1] David A. Clearwater (2008),Defines Video Game Genre, Dept. of New Media,University of Lethbridge.

[2] Davison, Andrew (2005), Killer Game Programming in Java, O’Reilly Media, Sebastopol.

[3] Flynt, John P. and Omar Salem (2005), Software Engineering for Game

Developers, Thomson Course Technology, Boston.

[4] Harbour, Jonathan S. (2008), Beginning Java Programming : Second Edition, Thomson Course Technology PTR, Boston.

[5] Pressman, Roger S. (2010), Software Engineering: A Practitioner's Approach, McGraw-Hill Higher Education.

[6] Riyanto, Suprapto, danHendiIndelarko (2008), Pengembangan Aplikasi Manajemen Database dengan Java 2 (SE/ME/EE), Gava Media, Yogyakarta. [7] Shalahuddin, M dan Rosa A. S (2011), Rekayasa Perangkat Lunak

(TerstrukturdanBerorientasiObjek), Modula, Bandung.

[8] Leonard Herman, JerHorwitz, Steve Kent, and SkylerMiller.Originally (2002),Serialkiller:The History of Video Games, published on Gamespot, [9] Sommerville, Ian (2007), SoftwareEngineering – Eight Edition, Addison

Wesley, Massachussets.

[10] Steven L. Kent (2001), The Ultimate History of Video Games, Three Rivers Press, New York.

[11] Suarga (2009), Dasar Pemrograman Komputer dalam Bahasa Java, Andi Offset, Yogyakarta.

[12] Sugiyono (2010), Metode Penelitian Kuantitatif, Kualitatif, dan R&D,ALFABETA, cv., Bandung.

[13] Suyanto (2010) , Artificial Intellegency, informatika, bandung

[14] _________ (____), Develoving Games In Java,[Online], Tersedia http://www.brackeen.com/javagamebook/#play (diakses pada tanggal 10 September 2012).

[15] _________(____), Perkembangan game, [Online], Tersedia http://wartawarga.gunadarma.ac.id/2010/03/perkembangan-game/ (diakses pada tanggal 10 September 2012).


(31)

[16] _________ (____), Fairy FootSteps, [Online], Tersedia http://www.greenfoot.org/scenarios/4851 (diakses pada tanggal 17 September 2012).

[17] _________ (____), The Spriters Resource, [Online], Tersedia http://spriters-resource.com/4851 (diakses pada tanggal 17 September 2012).

[18] _________ (____), A* Pathfinding for Beginners, [Online], Tersedia http://www.policyalmanac.org/games/aStarTutorial.htm (diakses pada tanggal 3 Oktober 2012).

[19] _________ (____), Gamespeak: A glossary of gaming terms, [Online], Tersediahttp://www.specusphere.com/joomla/index.php?option=com_content &task=view&id=232&Itemid=32 (diakses pada tanggal 3 Oktober 2012). [20] _________ (____), Efficient Path Finding For 2D Games, [Online], Tersedia

http://wlv.openrepository.com/wlv/ (diakses pada tanggal 7 Oktober 2012). [21] _________ (____), Software Engineering – Eight Edition, [Online], Tersedia

http://www.Software-engin.com/ (diakses pada tanggal 7 Oktober 2012). [22] _________ (____), Definition of the Platformer Video Game Genre,

[Online],Tersediahttp://compACTIONgames.about.com/od/gameindex/a/Platfo rmer def.htm (diakses pada tanggal 7 Oktober 2012).

[23] _________ (____), Interactive Visual World, [Online],Tersedia http://www.greenfoot.org/OVERview (diakses pada tanggal 7 Oktober 2012).


(32)

BAB 1

PENDAHULUAN

1.1. Latar Belakang Masalah

Game merupakan salah satu aplikasi yang banyak diminati oleh anak kecil maupun orang dewasa. Ada beberapa faktor yang melatari seseorang bermain games: adanya tawaran kebebasan, keberagaman pilihan, daya tarik elemen-elemen game, antarmuka (interface), tantangan dan aksesibilitasnya [8]. Salah satu game yang banyak diminati adalah game berjenis Platformer.

Game Shooter-adventure merupakan genre dari game yang bersifat

Platformer. Game jenis ini memiliki Gameplay yang cukup mudah dimengerti dan dimainkan oleh anak kecil sekalipun. Tujuan utama dari game Shooter-adventure adalah untuk membuat karakter pemain diutamakan bisa menembak, melompat ke dan dari rintangan yang menjadi hambatan dalam game. Berdasarkan analisis dari game yang di rilis oleh David Breckeen[14] bahwa di dalam game ini masih terdapat kelemahan, diantaranya yaitu perilaku terhadap NPC (non-player character) masih bersifat pasif dalam bergerak maupun menyerang, tidak terdapat info yang spesifik dalam penggunaan kontrol terhadap karakter pemain yaitu pengenalan terhadap Gameplay-control dan interface pada item ketika game mulai dinyalakan.

Berdasarkan tujuan utama dari pembuatan game ini adalah untuk membuat karakter NPC dapat bergerak lebih aktif atau menyerang lebih agresif terhadap karakter utama dengan menambahkan fitur mengejar terhadap NPC untuk mencegah karakter utama menyelesaikan permainan dengan mudah. Oleh karena itu, akan dibangun aplikasi game yang menggunakan algoritma A*(A star)[13] terhadap musuh agar bisa lebih agresif, menambahkan karakter bos pada akhir

level, dan membuat karakter musuh dapat menyerang pemain jika pemain berada

dalam radius jangkauan musuh, agar permainan lebih menarik dan menantang, pada game yang berjudul The Legend Of Cursed Amulet.


(33)

2

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah di sampaikan, maka perumusan masalah dari penelitian ini adalah bagaimana mengembangkan game dengan perilaku NPC yang berbeda dari game yang dianalisis.

1.3. Maksud dan Tujuan

Berdasarkan permasalahan yang akan diteliti, maka maksud dari penelitian ini adalah untuk membangun game The Legend Of Cursed Amulet. Sedangkan tujuan yang hendak dicapai dalam penelitian ini diantaranya adalah sebagai berikut :

1. Untuk membuat NPC lebih aktif dengan menerapkan algoritma sehingga prilaku NPC menjadi lebih agresif dan permainan menjadi lebih menarik.

2. Untuk membuat tampilan yang lebih spesifik terhadap informasi penggunaan Gameplay-control.

1.4. Batasan Masalah

Masalah yang terjadi dalam membangun aplikasi ini, adalah sebagai berikut: 1. Level yang di batasi adalah 3 level, dimana level 2 tingkat kesulitan lebih

tinggi dibanding level 1, dan akan melawan bos di level 3.

2. AI yang digunakan pada NPC dengan Algoritma A* (A star) untuk menentukan rute terpendek.

3. Aksi yang dapat dilakukan yaitu melompat, menembak dan mengambil barang.

4. Musuh yang ada berupa monster dengan kondisi tertentu.

5. Komponen-komponen penyusun aplikasi permainan ini diarsipkan menjadi file .JAR pada tahap akhirnya.

6. Aplikasi ini dibuat menggunakan bahasa pemrograman JAVA dengan GREENFOOT sebagai game engine.


(34)

3

1.5. Metodologi Penelitian

Metodologi yang digunakan dalam penelitian ini adalah deskriptif dengan pendekatan kuantitatif metodologi ini terbagi menjadi dua tahap yaitu pengumpulan data dan pembangunan aplikasi.

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, makalah dan bacaan-bacaan yang ada kaitannya dengan penelitian yang dilakukan.

b. Observasi

Pengumpulan data dengan mengadakan peninjauan terhadap game yang di analisa secara langsung maupun tidak langsung dan melakukan pengamatan terhadap hal-hal yang berkaitan dengan penelitian.

c. Wawancara

Pengumpulan data dengan mengadakan kegiatan tanya-jawab terhadap interface dan Gameplay dari game yang di analisa baik secara langsung maupun tidak langsung kepada responden yang dipandang memiliki peranan dalam kelangsungan kegiatan penelitian.

2. Tahap pembangunan perangkat lunak

Metode pembangunan perangkat lunak yang digunakan dalam membangun game The Legend Of Cursed Amulet menggunakan paradigma model WATERFALL, yang meliputi beberapa proses diantaranya :


(35)

4

a. Requirements Analysis and Definition

Kegiatan yang dilakukan adalah menganalisis data yang telah dikumpulkan untuk kemudian dijadikan bahan acuan dalam membangun aplikasi game.

b. System and Software Desain

Kegiatan yang dilakukan adalah menyusun rancangan yang dibutuhkan untuk membuat aplikasi sesuai dari data hasil proses analisis.

c. Implementation and Unit Testing

Kegiatan yang dilakukan adalah mengimplementasikan rancangan aplikasi game dengan bahasa pemrograman JAVA dengan GREENFOOT.

d. Integration and System Testing

Kegiatan yang dilakukan adalah menguji game The Legend Of Cursed Amulet yang telah dibangun.

e. Operation and Maintenance

Kegiatan yang dilakukan adalah melakukan pemeliharaan terhadap sistem menkoreksi berbagai error yang tidak ditemukan di tahap sebelumnya, perbaikan terhadap implementasi unit sistem dan pengembangan sistem, dan persyaratan baru ditambahkan ke dalam sistem.

Model Waterfall yang digunakan dalam pembangunan perangkat lunak The Legend Of Cursed Amulet dapat dilihat pada gambar 1.1.


(36)

5

Gambar 1.1. Model Waterfall[9] 1.6. Sistematika Penulisan

Sistematika penulisan proposal ini disusun untuk memberikan gambaran umum mengenai penelitian yang dilakukan. Sitematika penulisan dalam penelitian ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Menguraikan tentang latar belakang masalah seputar hal-hal yang menjadi kajian penelitian, merumuskan inti permasalannya, menentukan batasan masalahnya, mengutarakan maksud dan tujuannya serta menjelasakan mengenai metode penelitian dan sistematika penulisannya.

BAB 2 LANDASAN TEORI

Menguraikan tentang teori-teori yang relevan dengan kajian penelitian dan hal-hal lainnya yang mendukung penelitian serta berguna dalam membangun aplikasi gameThe Legend Of Cursed Amulet.


(37)

6

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini menguraikan tentang proses rekayasa balik dari aplikasi permainan yang dijadikan acuan kemudian menganalisis hasilnya untuk kebutuhan membangun aplikasi. Selain itu diuraikan pula mengenai tahap perancangan aplikasi berdasarkan dari hasil analisisnya.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini menguraikan implementasi dari membangun aplikasi game The Legend Of Cursed Amulet sesuai dari hasil analisis dan perancangan. Selanjutnya tahap pengujiannya juga diuraikan pada bab ini.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan tentang keseluruhan hasil dari proses penelitian yang telah dilakukanya itu mengenai membangun aplikasi game The Legend Of Cursed Amulet dan disertai saran dari penulis.


(38)

BAB 2

LANDASAN TEORI

2.1. Permainan Video (Video Game)

Permainan Video (Video Game) merupakan sebuah permainan elektronik yang di dalamnya melibatkan interaksi manusia dengan user-interface sebagai pemain dengan menggunakan perangkat video. System elektronik yang digunakan untuk memainkan permainan video dinamakan platform, contoh dari platform adalah Personal Computer (PC) dan konsol video game.

Perangkat input yang digunakan untuk menggerakkan Video Game disebut game controller. Controller sangat bervariasi pada setiap platform misalnya, pada konsol video game biasanya terdiri dari tombol dan joystick. Pada awal permainnan komputer sering menggunakan keyboard dan mouse untuk Gameplay, atau lebih umum diperlukan untuk membeli joystick secara terpisah.

2.1.1. Sejarah Singkat Video Game

Video game pertama kali di temukan pada tahun 1958 oleh William Higinbotham[10] seorang kepala pada bagian Instrumentation division for Brookhaven National Laboratory. William adalah orang pertama yang mendesain dan menciptakan permainan sangat sederhana berbentuk tenis menggunakan osiloskop sebagai interface. Dijalankan pada komputer analog dan dihubungkan ke osiloskop, permainan ini terlihat jelas dan cepat, yang mengejutkan adalah permainan ini tidak hanya top-down perspective seperti Pong, namun menampilkan dua sudut seperti lapangan tenis. Dua pemain harus melakukan pukulan terhadap bola secara bergantian dengan bola yang memantul ke tanah dan net searah gravitasi.

Pada tahun 1961, seorang siswa MIT bernama Steve, dia menciptakan permainan video two-player yang dinamakan Spacewar pada sebuah komputer DEC PDP-1[8]. Russell butuh hampir enam bulan dan 200 jam untuk menyelesaikan versi pertama permainan: duel sederhana antara kapal roket.


(39)

8

Tujuan dari permainan tersebut adalah setiap pemain melakukan maneuver pesawatnya ketika mencoba menembak pesawat pemain lain dengan menggunakan misil Menggunakan switch toggle dibangun ke dalam PDP-I, pemain mengendalikan kecepatan dan arah dari kedua kapal dan menembakkan torpedo satu sama lain.

Video game pertama diciptakan oleh para insinyur di Sanders Associates, sebuah Baru Hampshire berbasis kontraktor pertahanan. Seperti kontraktor besar banyak, Sanders memiliki pangsa kegiatan sensitif dan rahasia. Namun pada tahun 1967, beberapa suara yang keluar dari salah satu Sanders penelitian laboratorium memiliki banyak orang bertanya-tanya apa yang sedang terjadi.

Pada awal tahun 1966, seorang enginer muda bernama Ralph Baer, mengembangkan kembali idenya dengan membawa permainan video pada media sekunder untuk televisi. Baer dan timnya berhasil menciptakan sebuah game interaktif yang dapat dimainkan di layar televisi. Mereka mengembangkan permainan mengejar dan mengikutinya dengan permainan tenis video. Mereka juga memodifikasi pistol mainan sehingga dapat membedakan bintik-bintik cahaya di layar.

Pada tahun 1971, Magnavox menyewa anggota tim RCA yang proyeknya hampir dibeli. Kemudian mengatakan kepada para eksekutif Magnavox lainnya tentang permainan televisi yang dilihatnya di Sanders. Magnavox mengatur untuk demonstrasi dari permainan televisi dan segera melihat manfaat dalam idenya itu. Setelah berbulan-bulan tim bekerja secara detail, negosiasi telah diselesaikan dan kontrak ditandatangani pada akhir tahun ini. Produksi dimulai pada musim gugur, dan unit awal yang ditampilkan di dealer Magnavox pada tahun 1972. Produk yang sudah selesai itu disebut Magnavox Odyssey.

Pada tahun 1983, sebuah pembaruan besar-besaran terjadi pada industri permainan video yang mengakibatkan hal serius terhadap pasar pada saat itu. Ada beberapa faktor utama yang menyebabkan terjadinya crash, diantaranya : ekonomi yang miskin, siklus hidup alami pasar, dan persepsi pemakai yang hanya untuk main-main saja.


(40)

9

Pada tahun selanjutnya, berbagai perusahan pembuat permainan video berlomba-lomba untuk menciptakan perangkat dan permainan bagi para penggemar permainan video dan merupakan awal dari kebangkitan permainan video hingga saat ini.

2.1.2. Jenis-jenis permainan video

Dalam permainan video terdapat beberapa jenis permainan yang dapat dimainkan, hal ini dibedakan berdasarkan cara bermain yang dapat dilakukan oleh para pemain.

A. ACTION Game

Permainan ACTION adalah permainan yang memberikan intensitas aksi sebagai daya tarik utama. Respon refleks adalah keterampilan utama yang dibutuhkan untuk memainkan permainan ini dengan baik[19]. GameACTION yang paling umum adalah shooter (Doom) dan stealth (Metal Gear). Game

ACTION juga termasuk dalam kategori SPORTs, meskipun beberapa kategori

SPORTs lebih sering jatuh ke dalam kategori simulasi. Contoh Game

ACTION seperti pada gambar 2.1.


(41)

10

B. Platformer

Permainan platform asli terdiri dari karakter yang berlari dan melompat pada arena bermain dengan mode side-scrolling[19]. Beberapa contoh dari

Platformers yang terkenal diantaranya Super Mario Bros, Sonic the

Hedgehog, Pitfall!, dan Super Mario 64, seperti pada gambar 2.2.

Gambar 2.2. Contoh permainan Platformers[19]

C. ADVENTURE

Permainan ADVENTURE adalah permainan yang menawarkan eksplorasi dan memecahkan teka-teki sebagai daya tarik utama[19]. Permainan ini menawarkan histori cerita yang paling mengasyikkan, meskipun popularitas mereka telah menurun dalam 2 dekade terakhir. Penalaran, kreativitas, dan rasa ingin tahu adalah keterampilan yang paling umum yang diperlukan dari pemain game petualangan yang baik. Contoh dari game ACTION

-ADVENTURE adalah Assassin Creed seperti pada gambar 2.3.


(42)

11

D. FIGHTING

Permainan FIGHTING adalah permainan yang bergenre dimana pemain mengontrol karakter di layar dan terlibat dalam pertempuran jarak dekat dengan lawan[19]. Karakter ini cenderung memiliki kekuatan yang seimbang dan ronde dari pertandingan ini terdiri dari beberapa putaran, yang berlangsung di arena. Pemain harus menguasai teknik seperti memblokir, counter-attacking, dan chaining bersama-sama urutan serangan yang dikenal sebagai "combo". Contoh dari permainan video yang berjenis FIGHTING yang plaing terkenal diataranya Double Dragon, Street Fighter, dan Mortal Kombat, seperti pada gambar 2.4.

Gambar 2.4. Contoh permainan FIGHTING[19]

E. FIRST-PERSON SHOOTER

FIRST-PERSON SHOOTER (FPS) merupakan sebuah ACTION game yang

menempatkan pemain sudut pandang orang pertama,yaitu si pemain itu sendiri pada karakter permainan[19]. Karakter pada layar monitor tidak akan terlihat dalam game FPS, biasanya yang akan terlihat pada layar monitor biasanya hanya tangan yang memegang senjata. permainan ini, pemain diijinkan untuk memilih berbagai senjata dan membunuh musuh dengan menembaki mereka. Salah satu contoh dari jenis permainan ini yang terkenal adalah Doom dan counter strike, seperti pada gambar 2.5.


(43)

12

Gambar 2.5. Contoh dari permainan FIRST-PERSON SHOOTER[19]

F. REAL-TIME STRATEGY (RTS)

Permainan REAL-TIME STRATEGY mempunyai tujuan yaitu Strategi permainan yang menghibur pemain melalui penalaran dan pemecahan masalah[19]. Awal permainan strategi (romance of three kingdom) tidak menggunakan cerita yang banyak, meskipun game yang lebih baru sangat bergantung pada narasi berkualitas. Permainan seperti Command and Conquer adalah contoh dari game strategi berbasis cerita. Dalam game REAL-TIME STRATEGY biasanya pemain di haruskan untuk mengoleksi berbagai sumber daya, membangun pasukan, dan mengontrol pasukannya untuk menyerang musuh. Aksi terhadap permainan ini adalah fast-paced dan arena merupakan permainan yang berlanjut, maka keputusan untuk strategi harus dibuat secara cepat. Beberapa contoh dari permainan ini diantaranya The Ancient Art of War, Command and Conquer, dan Age Of Empires, seperti pada gambar 2.6.


(44)

13

G. ROLE-PLAYING GAME (RPG)

Permainan ROLE-PLAYING GAME merupakan permainan yang menawarkan pemain kesempatan untuk inspirasikan diri dalam situasi karakter pemain[19]. ROLE-PLAYING GAME (RPG) membuat permainan menjadi inovatif dan bervariasi dalam menyelesaikan tujuan tertentu. Contoh RPG meliputi, Fire Emblem, Final Fantasy, Luminous Arc, dan World of Warcraft. seperti pada gambar 2.7.

Gambar 2.7. Contoh dari ROLE-PLAYING GAME[19]

H. SIMULATION

Permainan simulasi diadaptasikan dari sistem simulasi. Elemen utama dari permainan simulasi adalah kemampuannya untuk mencocokkan situasi seperti di dunia nyata[19]. Simulasi berusaha untuk memberikan kenikmatan melalui pemeragaan. Simulasi peperangan dan simulasi balapan mobil relatif populer dalam jenis permainan. Simulasi juga dapat mencakup simulasi situasi sosial seperti Sims. Salah satu contoh dari permainan ini adalah The Sims, seperti pada gambar 2.8.


(45)

14

Gambar 2.8. Contoh permainan SIMULATION[19]

I. RACING

Permainan RACING adalah genre video game, baik dalam sudut pandang orang pertama atau orang ketiga, di mana turut pemain dalam kompetisi balap dengan semua jenis balapan di daratan, udara, atau kendaraan laut. Secara umum. Game balap juga dapat jatuh di bawah kategori permainan olahraga[19]. melibatkan kompetisi balap kendaraan mulai dari balap BMX maupun ice skating. Jenis permainan ini sedikit berbeda dibanding permainan lainnya. Salah satu contoh dari permainan ini Need for Speed dan Nascar, seperti pada gambar 2.9.


(46)

15

J. SPORTS

Permainan ini merupakan jenis yang mensimulasi olahraga yang ada pada dunia nyata[19]. Salah satu contohnya adalah Pro Evolution Soccer, seperti pada gambar 2.10.

Gambar 2.10.Contoh permainan SPORT[19]

K. PUZZLE

Permainan PUZZLE merupakan permainan yang menawarkan teka-teki sebagai daya tarik utama untuk game[19]. Permainan ini paling sering dirilis pada anggaran yang rendah melalui web. Orang-orang yang bermain game -game ini cenderung menjadi populasi tertua dari permainan bermain masyarakat. Salah satu permainan PUZZLE paling sukses dan terkenal adalah Tetris, Lemmings dan Minesweeper. I.Q. Cube cerdas adalah lain PUZZLE. Contoh gamePUZZLE seperti pada gambar 2.11.


(47)

16

2.1.3. Konsep Permainan Video

Menurut J. P. Flynt dan O. Salem dalam bukunya[3], terdapat beberapa syarat yang dibutuhkan dalam membangun sebuah aplikasi permainan (game production) sehingga aplikasi permainan yang dibangun memiliki karakteristik tersendiri, diantaranya diterapkannya Audio yang membuat sebuah aplikasi permainan semakin menarik saat dimainkan, sebuah algoritma yang menangani deteksi tubrukan (collision detection) antara objek yang satu dengan yang lainnya, 3D/2D komponen yang digunakan, aplikasi yang digunakan untuk melakukan design berbagai objek yang ada pada aplikasi permainan tersebut, dan lain-lain.

Gambaran secara umum tentang apa saja yang dibutuhkan dalam membangun sebuah permainan (game production) terdapat pada gambar 2.12.

Gambar 2.12.Spesialisasi peningkatan karakteristik industri game[3] 2.1.4. Gameplay Platformer

Platformer adalah video game di mana game-play bersifat berlari, melompat, mengayun, naik tangga, dan sebagainya terhadap benda lain yang digambarkan pada tampilan layar permainan single atau scrolling-screen. Pertama kali dikembangkan kembali di awal 1980-an, Platformers adalah salah satu genre paling awal dari video game. Sementara itu diperdebatkan permainan mana yang benar-benar awal-mula dari genre Platformer, jelas bahwa awal dari game klasik seperti Donkey Kong, Panic Space, dan Mario Bros yang sangat berpengaruh dan semua memiliki krtiteria dalam membentuk genre Platformer[22].


(48)

17

 Single Screen Platformers

Single Screen Platformer, seperti namanya, yang dimainkan pada layar permainan tunggal dan biasanya berisi hambatan yang harus pemain hindari dan tujuannya ialah untuk menyelesaikan permainan. Contoh terbaik dari Platformer layar tunggal Donkey Kong, dimana Mario berjalan pada lantai baja sementara menghindari dan melompat barel yang dilemparkan ke arahnya. Setelah tujuan layar tunggal selesai pemain biasanya bergerak ke layar yang berbeda dengan tujuan yang sama atau baru[22].

 Side and Vertical Scrolling Platformers

Side and game Platformer vertical di sisi lain, memiliki layar permainan / latar belakang yang bergerak atau mengikuti pemain secara bersamaan bergerak ke arah tepi layar. Platformers banyak side scrolling juga ditandai dengan memiliki beberapa tingkatan, masing-masing berakhir dengan melawan bos sebelum maju ke tingkat berikutnya. Contoh Platformers side scrolling termasuk game klasik seperti Super Mario Bros, Castlevania, Sonic the Hedgehog, dan Pitfall![22]

2.1.5. Karakteristik Platformers

Karakteristik yang terdapat di dalam aplikasi permainan yang berjenis Platformers adalah sebagai berikut :

A. Terdiri dari dua point, yaitu point awal tempat dimana karakter utama memulai pertarungan dan point akhir yang merupakan tujuan akhir permainan.

B. Adanya item yang dapat digunakan untuk membantu menambah live dan item lain yang harus dikoleksi, sehingga pemain bisa melanjutkan ke level selanjutnya.

C. Metode interaksi antara pemain dan aplikasi permainan dengan menggunakan keyboard


(49)

18

E. Terdapat jalur yang telah ditentukan sehingga dapat melewati rintangan dalam berjalan melewati jalur tersebut

2.2. AI (ARTIFICIAL INTELLIGENCE)

2.2.1. Definisi AI

Sebagian kalangan menerjemahkan ARTIFICIAL INTELLIGENCE sebagai kecerdasan buatan, kecerdasan artifisial, intelijensia artifisial, atau intelejensia buatan. Pada bukunya[9], Suyanto sengaja tidak menerjemahkan istilah ARTIFICIAL INTELLIGENCE ke bahasa Indonesia karena istilah tersebut sudah sangat akrab bagi orang Indonesia. Begitu juga dengan singkatan istilah tersebut, yaitu AI, sudah sangat melekat di berbagai media ilmiah maupun non ilmiah.

Para ahli mendefinisikan AI secara berbeda-beda tergantung pada sudut pandang mereka masing-masing. Ada yang focus pada logika berpikir manusia saja, tetapi ada juga yang mendefinisikan AI secara lebih luas pada tingkah laku manusia. Stuart Russel dan Peter Norvig mengelompokkan definisi AI, yang diperoleh dari beberapa textbook berbeda, ke dalam empat kategori[9], yaitu :

A. Thinking humanly : the cognitive modeling approach

Pendekatan ini dilakukan dengan dua cara sebagai berikut[9] :

1. Melalui introspeksi : mencoba menangkap pemikiran-pemikiran kita sendiri pada saat kita berpikir. Tetapi, seorang psikolog Barat mengatakan “how do you know that you understand?” Bagaimana anda tahu bahwa anda mengerti? Karena pada saat anda menyadari pemikiran anda. Sehingga definisi ini terkesan mengada-ngada dan tidak mungkin dilakukan.


(50)

19

B. Acting humanly : the Turing test approach

Pada tahun 1950, Alan Turing merancang suatu ujian bagi komputer berintelijensia untuk menguji apakah komputer tersebut mampu mengelabui seorang manusia yang menginterogasinya melalui teletype (komunikasi berbasis teks jarak jauh). Jika interrogator tidak dapat membedakan yang d2nterogasi adalah manusia atau komputer, maka komputer berintelijensia tersebut lolos dari Turning test. Komputer tersebut perlu memiliki kemampuan : Natural Language Processing, Knowledge Representation, Automated Reasoning, Machine Learning, Computer Vision, Robotics. Turing test sengaja menghindari interaksi fisik antara interrogator dan komputer karena simulasi fisik manusia tidak memerlukan intelijensia.

C. Thinking rationally : the laws of thought approach Terdapat dua masalah dalam pendekatan ini, yaitu [9]:

1. Tidak mudah untuk membuat pengetahuan informal dan menyatakan pengetahuan tersebut ke dalam formal term yang diperlukan oleh notasi logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang dari 100%.

2. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam prinsip” dan memecahkannya “dalam dunia nyata”.

D. Acting rationally : the rational agent approach

Membuat inferensi yang logis merupakan bagian dari suatu rational agent. Hal ini disebabkan satu-satunya cara untuk melakukan aksi secara rasional adalah dengan menalar secara logis. Dengan menalar secara logis, maka bisa didapatkan kesimpulan bahwa aksi yang diberikan akan mencapai tujuan atau tidak. Jika mencapai tujuan, maka agent dapat melakukan aksi berdasarkan kesimpulan tersebut.

Thinking humanly dan acting humanly adalah dua definisi dalam arti yang sangat luas. Sampai saat ini, pemikiran manusia yang diluar rasio, yakni reflex dan intuitif (berhubungan dengan perasaan), belum dapat ditirukan sepenuhnya


(51)

20

oleh komputer. Dengan demikian, kedua definisi ini dirasa kurang tepat untuk saat ini. Jika kita menggunakan definisi ini, maka banyak produk komputasi cerdas saat ini yang tidak layak disebut sebagai produk AI.

Definisi thinking rationally terasa lebih sempit daripada acting rationally. Oleh karena itu, definisi AI yang paling tepat untuk saat ini adalah acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional berdasarkan hasil penalaran tersebut.

2.2.2. Teknik Pemecahan Masalah AI

Terdapat empat teknik dasar pemecahan masalah yang terdapat pada bidang academic/traditional ARTIFICIAL INTELLIGENCE (AI)[9], diantaranya adalah sebagai berikut :

A. Searching

Pada teknik searching atau pencarian ini terdiri dari beberapa langkah untuk merealisasikannya. Langkah pertama adalah mendefinisikan ruang masalah untuk suatu masalah yang dihadapi. Langkah kedua adalah mendefinisikan aturan produksi yang digunakan untuk mengubah suatu keadaan ke keadaan lainnya. Langkah terakhir adalah memilih metode pencarian yang tepat sehingga dapat menemukan solusi terbaik.

Metode-metode pencarian pada teknik searching diantaranya[9] : 1. Blind/Un-informed Search

a. Breadth-First Search (BFS) b. Depth-First Search (DFS) c. Depth-Limited Search (DLS) d. Uniform Cost Search (USC) e. Iterative-Deepening Search (IDS) f. Bi-Directional Search (BDS)


(52)

21

2. Metode Pencarian Heuristik a. Generate-and-Test b. Hill Climbing

c. Simulated Annealing d. Best-First Search (BFS) e. Greedy Best-First Search f. A* (A star)

B. Reasoning

Teknik reasoning atau penalaran merupakan teknik penyelesaian masalah dengan cara merepresentasikan masalah ke dalam basis pengetahuan (knowledge base) menggunakan logic atau bahasa formal (bahasa yang dipahami komputer). Teknik ini melakukan proses penalaran berdasarkan basis pengetahuannya untuk menemukan solusi.

C. Planning

Planning adalah suatu metode penyelesaian masalah dengan cara memecah masalah ke dalam sub-sub masalah yang lebih kecil, menyelesaikan sub-sub masalah satu demi satu kemudian menggabungkan solusi-solusi dari sub-sub masalah tersebut menjadi sebuah solusi lengkap dengan tetap mengingat dan menangani interaksi yang terdapat pada sub-sub masalah tersebut.

D. Learning

Pada ketiga teknik sebelumnya, seseorang harus mengetahui aturan yang berlaku untuk sistem yang akan dibangunnya. Tetapi, pada masalah tertentu terkadang suatu aturan tidak bisa didefinisikan secara benar ataupun lengkap. Hal tersebut mungkin dikarenakan data-data yang didapat tidak lengkap. Melalui teknik yang disebut learning ini, secara otomatis aturan yang diharapkan bisa berlaku umum untuk data-data yang belum pernah diketahui dapat ditemukan.


(53)

22

2.2.2.1. Algoritma A* (A star Algorithm)

Algoritma A* (A star) merupakan algoritma Best First Search yang menggabungkan Uniform Cost Search dan Greedy Best-First Search[13]. Biaya yang diperhitungkan didapat dari biaya sebenarnya ditambah dengan biaya perkiraan, dalam notasi matematika dituliskan sebagai berikut :

f(n) = g(n) + h(n)...[13]

Dengan perhitungan biaya seperti diatas, algoritma A* adalah complete dan optimal[13]. Untuk lebih jelasnya berikut merupakan gambaran dari penggunaan algoritma A* dalam pencarian rute terpendek dari point A menuju point B :

Asumsikan ada seseorang yang pergi dari point A menuju point B dan rute yang akan dilewati dihalangi sebuah dinding. Pada ilustrasi ini kotak berwarna hijau merupakan point A, kotak berwarna merah merupakan point B, dan kotak berwarna biru merupakan dinding yang menghalangi rute point A menuju point B[18], untuk lebih jelasnya terdapat pada gambar 2.13.

Gambar 2.13.Ilustrasi awal algoritma A*[18]

Hal pertama yang harus dilakukan adalah membuat sebuah grid layout, karena dalam pencarian rute pada algoritma A* akan lebih mudah apabila peta yang ada berbentuk kotak-kotak kecil, metode ini memudahkan pencarian dalam area yang didefinisikan sebagai array dua dimensi, setiap kotak memiliki status walkable dan unwalkable.


(54)

23

Pusat point pada algoritma A* dinamakan node, hal ini dikarenakan area yang dapat digunakan algoritma A* tidak hanya berbentuk kotak, akan tetapi dapat berbentuk yang lainnya, namun terkadang untuk memudahkan dalam perhitungan maka digunakanlah bentuk kotak.

Langkah-langkah yang dilakukan pada algoritma A* dalam melakukan pencarian rute terpendek dibagi menjadi beberapa tahap, yaitu :

A. Dimulai dari point A awal dan masukkan ke dalam kotak “OPEN LIST”.

OPEN LIST” merupakan sebuah kotak yang berfungsi untuk menyimpan

setiap nod, baik yang akan kita lewati maupun yang tidak kita lewati, pada dasarnya setiap kotak yang ada pada “OPEN LIST” akan dilakukan perhitungan jarak untuk menentukan arah mana yang akan diambil menuju point B.

B. Lihat semua kotak yang memungkinkan untuk dilewati dari point awal, abaikan kotak yang terdapat penghalang seperti tembok, air, dan lain-lain. Masukan kotak-kotak tersebut ke dalam OPEN LIST, dan untuk setiap kotak ini, simpan point A sebagai induk kotak.

C. Keluarkan kotak point awal dari OPEN LIST kemudian masukkan ke dalam

CLOSED LIST. CLOSED LIST berfungsi untuk menyimpan kotak yang tidak

akan pernah dipakai ataupun dilihat lagi.

Kotak berwarna hijau merupakan pusat dari point awal, pada sisinya dikelilingi oleh garis berwarna biru yang berarti bahwa kotak tersebut telah dimasukkan ke dalam CLOSED LIST, dan untuk setiap garis disekeliling kotak awal menunjukkan setiap jalur yang dapat ditempuh dimulai dari kotak pada point awal, perhatikan pada gambar 2.14.


(55)

24

Perhitungan yang terdapat pada algoritma A* untuk melakukan pencarian rute terpendek adalah dengan menggunakan rumus sebagai berikut :

F = G + H...[18] dimana,

G : nilai yang dibutuhkan untuk menempuh jarak dari point awal menuju kotak selanjutnya

H : estimasi nilai yang dibutuhkan untuk menempuh jarak dari kotak selanjutnya untuk menempuh point tujuan.

Dalam proses perhitungannya dapat dimisalkan sebuah nilai untuk G baik yang terdapat pada kotak horizontal, vertikal, dan diagonal. Pada kasus ini dimisalkan nilai horizontal dan vertikal dari point awal untuk menuju kotak selanjutnya ialah 10, dan untuk nilai diagonalnya ialah 14.

Setiap kotak memiliki nilai F, G, dan H masing-masing, jadi perhitungan tersebut berlaku bagi setiap kotak yang berada di sekitar kotak induk, untuk nilai F ditulis di atas sebelah kiri, nilai G ditulis di bawah sebelah kiri, dan nilai H ditulis di bawah sebelah kanan, seperti pada gambar 2.15.

Gambar 2.15.Ilustrasi perhitungan F pada OPEN LIST[18] Langkah selanjutnya yang harus dilakukan adalah sebagai berikut :

D. Pilih nilai F yang terkecil dari setiap kotak yang telah dihitung nilai F nya, kemudian keluarkan dari OPEN LIST dan masukkan ke dalam CLOSED LIST.


(56)

25

E. Cek semua kotak yang berada di sekitar, abaikan kotak yang unwalkable dan kotak yang terdapat pada CLOSED LIST, masukkan kotak yang belum ada di dalam OPEN LIST dan jadikan kotak selanjutnya menjadi kotak induk untuk melakukan perhitungan ulang untuk setiap kotak disekitarnya.

F. Ketika sebuah kotak sekitar telah berada di dalam OPEN LIST, cek apakah jalur kotak tersebut adalah yang terbaik dibanding yang jalur kotak yang lainnya. Di lain pihak, ketika nilai G untuk jalur yang baru itu paling kecil, ganti induk kotak pada kotak sekitarnya menjadi kotak yang telah terpilih, dan terakhir hitung ulang nilai F, G, dan H untuk kotak tersebut, seperti pada gambar 2.15 dan perhitungan selanjutnya pada gambar 2.16.


(57)

26

Gambar 2.17.Ilustrasi perhitungan terhadap kotak unwalkable[18]

Setelah mengulangi setiap langkah yang ada di atas, perhitungan dapat dihentikan ketika point akhir atau yang disebut kotak target telah dimasukkan ke dalam CLOSED LIST, perhatikan gambar 2.18.


(58)

27

2.2.3. Metode Collision detection

Hampir setiap permainan video yang ada sudah menerapkan collision detection (deteksi tabrakan), baik itu dalam hal tabrakan antara sprite dengan sprite maupun antara sprite dengan peluru dan lain-lain. Dalam aplikasi permainan ada beberapa reaksi yang ditunjukkan dari collision detection, yaitu reaksi dari spirte yang berupa berkurangnya nyawa, berkurangnya darah, meledak, dan lain-lain.

Proses collision dapat dibagi menjadi dua kategori dasar, yaitu collision detection dan collision response[4], dengan jarak respon yang telah diaplikasikan secara spesifik. Dalam collision detection, terdapat banyak sekali jenis dari collision detection itu sendiri, pada gambar 2.19 merupakan tiga tipe dari collision detection.

Gambar 2.19.Tiga jenis collision detection[2]

Setiap objek diberi sebuah kotak sebagai acuan jika collision itu terjadi. Untuk gambar yang pertama, collision detection terjadi ketika objek buruh bertabrakan dengan kotak yang memuat objek keledai, pada jenis collision detection ini rentan terhadap ketidaktelitian[2], untuk gambar yang kedua, collision detection terjadi ketika kotak dari kedua objek tersebut bersinggungan, pada jenis collision detection ini sudah lebih akurat dibanding jenis yang pertama, namun untuk memilih factor reduksi yang cocok itu sulit[2], dan untuk gambar yang ketiga, collision detection akan terjadi ketika objek saling bersinggungan tanpa memperdulikan kotak secara keseluruhan, pada jenis collision detection ini adalah yang paling akurat dibandingkan dengan jenis yang lainnya[2].

Selain itu pada sumber lain[4] disebutkan bahwa collision detection terbagi menjadi dua jenis, yaitu collision detection object to object dan collision


(59)

28

detection object to world. Pada object to object yang terjadi adalah adanya tubrukan antara satu objek dengan objek lainnya yang berada di dalam satu frame, baik itu objek tersebut bertubrukan secara langsung ataupun bertubrukan antara kotak maupun lingkaran yang mengandung objek tersebut, sedangkan pada object to world yang terjadi adalah adanya tubrukan antara objek dengan frame itu sendiri, contohnya adalah tubrukan antara sprite dengan dinding pada aplikasi permainan itu sendiri sehingga apabila terjadi, maka sprite tersebut tidak dapat melewati dinding tersebut.

2.2.4. Object Oriented Programming (OOP)

Object Oriented Programming (OOP) menerapkan sifat yang lebih

modular agar setiap program dapat lebih mudah dikembangkan. Dalam OOP dibutuhkan memori lebih besar dibandingkan dengan program procedural (tradisional)[6]. Dua objek yang identik akan memerlukan dua area memori berbeda walaupun dari sisi data dan proses keduanya memiliki jumlah dan jenis yang sama. Hal ini disebabkan karena data dan proses pada kedua objek tersebut dipisahkan oleh komputer.

Secara garis besar yang menjadi ciri dari OOP adalah adanya proses abstraksi (abstrACTION), pengkapsulan (encapsulation), penurunan sifat (inheritance), dan polimorfisme (polymorphism) pada objek-objek yang dibentuk.

Object Oriented Programming (OOP) dibagi menjadi beberapa cirri

utama[6], yaitu: A. Kelas

Kelas (Class) merupakan contoh abstrak dari sebuah objek yang telah terbentuk dari proses penyederhanaan, dengan kata lain kelas (Class) merupakan cikal bakal dari objek (object), kemudian contoh nyata atau perwujudan dari sebuah objek dinamakan instance. Sehingga apabila kita mempunyai sebuah kelas manusia, maka beberapa instances (wujud nyata) dari kelas manusia adalah Prima, Aulia, Dewi, dan masih banyak yang lainnya.

Perbedaan antara kelas (Class) dengan objek (object) dalam OOP dibagi menjadi dua[6], yaitu :


(60)

29

1. Class merupakan rancangan (design) dan object merupakan perwujudan dari suatu Class.

2. Class bersifat abstrak sementara object bersifat konkrit (atau nyata).

Di dalam kelas, terdapat access modifier, Class modifier, dan Class body, dibawah ini merupakan penjelasan tentang isi dari sebuah kelas.

1. Access Modifier

Access modifier merupakan keyword yang digunakan untuk menentukan spesifikasi tingkat akses suatu variable atau method (anggota kelas). Pengaksesan yang dimaksud bisa berupa pengaksesan dalam kelas yang sama, turunan, maupun di luar kelas di mana variable dan method dideklarasikan. Dalam Java, access modifier terdiri atas :

a. Default

Access modifier ini hanya menspesifikasikan kelas-kelas (Classes) di paket yang sama yang bisa mengakses variable dan method suatu kelas. Anggota kelas dengan default access bisa melihat kelas lain di paket yang sama. Apabila tidak ada access modifier pada suatu pendeklarasian kelas, berarti yang dimaksud adalah default access.

b. Public

Apabila suatu anggota kelas (Class member) dideklarasikan sebagai public, maka anggota tersebut akan bisa digunakan oleh siapa saja, yaitu baik oleh kelas yang sama, kelas lain, maupun lingkungan luar kelas. c. Protected

Access modifier protected menspesifikasikan atau menentukan anggota kelas (Class member) yang hanya bisa diakses oleh method-method yang ada di dalam kelas yang sama dan subkelas-subkelas turunan dari kelas tersebut.

d. Private

Access modifier private merupakan tingkatan akses yang sangat terbatas. Pada keadaan ini tidak ada kelas lain yang dapat mengakses anggota kelas private, sekaligus termasuk subkelas-subkelasnya.


(61)

30

2. Class Modifier a. Public

Apabila suatu kelas (Class) dideklarasikan sebagai public, maka kelas tersebut akan bisa digunakan oleh kelas lain maupun (termasuk dari lingkungan luar) tanpa memperhatikan apakah kelas lain tersebut berasal dari paket (package) yang sama atau tidak.

b. Abstract

Apabila suatu kelas (Class) dideklarasikan sebagai abstract, maka kelas tersebut tidak akan bisa diwujudkan menjadi suatu objek. Kelas ini disusun dari satu atau lebih metode abstrak, artinya method-method dalam kelas ini dideklarasikan akan tetapi tanpa badan (tidak d2mplementasikan).

c. Final

Apabila suatu kelas (Class) dideklarasikan sebagai final, maka kelas tersebut tidak akan bisa diturunkan lagi menjadi kelas turunan yang lain. Dengan kata lain sudah selesai atau berakhir (final). Tujuannya adalah untuk mencegah perluasan yang tidak diinginkan.

d. Extends

Class modifier extends digunakan untuk mendeklarasikan kelas turunan dari kelas yang lainnya.

e. Implements

Class modifier implements digunakan untuk mendeklarasikan sebuah

kelas yang akan mengimplementasikan satu atau lebih interface Java. Apabila interface Java yang akan dimplementasikan lebih dari satu, maka pendeklarasiannya dipisahkan dengan tanda koma “,”.

B. Objek

Dalam kenyataannya, sebuah objek dalam OOP adalah sebuah persilangan yang berbagi-pakai (share) sejumlah ciri dari objek umum dengan fitur (feature) dari sebuah bentuk komputer[6].


(62)

31

Sebuah objek secara praktis pemrograman berorientasi objek bisa didefinisikan sebagai berikut :

1. Setiap objek dimiliki oleh kelas objek, sehingga sebuah objek tidak bisa hadir tanpa sebuah kelas yang mendefinisikannya. Dengan kata lain objek adalah wujud (instance) dari sebuah kelas.

2. Sebuah objek (dan kelas yang memuatnya) adalah sebuah pengkapsulan (encapsulation) yang memasukkan data dan operasi untuk pemrosesannya. 3. Atribut-atribut (attributes) objek membantu untuk menyimpan dan

menjaga status objek. Atribut-atribut ini menentukan apa yang d2ngat mengenai objek. Methode objek adalah satu-satunya cara untuk mengakses data dan memodifikasi statusnya. Cara pengaksesan dan pemodifikasian data dilakukan dengan mengirimkan sebuah pesan ke objek tersebut.

C. Abstraksi

Abstraksi dapat didefinisikan sebagai suatu proses melakukan desain Class dan menentukan data dan method yang akan dimiliki oleh sebuah Class[6].

Sebuah method abstrak mendefinisikan sebuah antarmuka dalam kelas dasar dan meninggalkan implementasi pada kelas turunan. Kelas abstrak adalah sebuah kelas yang berisi satu atau beberapa method abstrak.

D. Pengkapsulan

Pengkapsulan (encapsulation) merupakan proses pembungkusan atau penyederhanaan dari beberapa data atau method menjadi sebuah objek (object) atau kelas (Class)[6].

E. Pewarisan Sifat

Penurunan atau pewarisan sifat (inheritance) ini merupakan cirri utama dari OOP dimana sifat-sifat yang terdapat pada kelas induk (base Class) akan dimiliki oleh kelas turunannya (derived Class)[6]. Akan tetapi hal itu tentunya bergantung juga pada access specifier (yaitu, public dan private) yang diberikan dalam proses penurunan kelas.


(63)

32

2.2.5. Unified Modelling Language (UML)

Pada perkembangan teknik pemrograman berorientasi objek, muncul sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu

Unified Modelling Language (UML). Adapun pengertian dari UML adalah salah

satu standar bahasa yang banyak digunakan di dunia industri untuk mendefinisikan requirement, membuat analisis dan desain, serta menggambarkan arsitektur dalam pemrograman berorientasi objek[7].

UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. Dalam hal ini UML merupakan suatu bahasa visual untuk melakukan pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung.

2.2.6. Sejarah UML

Bahasa pemrograman berorientasi objek yang pertama dikembangkan dikenal dengan nama Simula-67 yang dikembangkan pada tahun 1967. Bahasa pemrograman ini kurang berkembang dan dikembangkan lebih lanjut, namun dengan kemunculannya telah memberikan sumbangan yang besar pada developer pengembang bahasa pemrograman berorientasi objek selanjutnya.

Perkembangan aktif dari pemrograman berorientasi objek mulai menggeliat ketika berkembangnya bahasa pemrograman Smalltalk pada awal 1980-an yang kemudian dikuti dengan perkembangan bahasa pemrograman berorientasi objek yang lainnya seperti C objek, C++, Eiffel, dan CLOS. Secara actual, penggunaan bahasa pemrograman berorientasi objek pada saat itu masih terbatas, namun telah banyak menarik perhatian di saat itu. Sekitar lima tahun setelah Smalltalk berkembang, maka berkembang puka metode pengembangan berorientasi objek. Metode yang pertama diperkenalkan oleh Sally Shalaer dan Edward Yourdon, diikuti oleh Grady Booch, James R. Rumbaugh, Michael R. Blaha, William Lorensen, Frederick Eddy, William Premerlani, dan masih banyak lagi.


(64)

33

Karena banyaknya metodologi-metodologi yang berkembang pesat saat itu, maka muncullah ide untuk membuat sebuah bahasa yang dapat dimengerti semua orang. Usaha penyatuan ini banyak mengambil dari metodologi-metodologi yang berkembang pada saat itu. Maka dibuat bahasa yang merupakan gabungan dari beberapa konsep seperti konsep Object Modelling Technique (OMT) dari Rumbaugh dan Booch, konsep The Classes, Responsibilities, Collaborators (CRC) dari Rebecca Wirfs-Brock, konsep pemikiran Ivar Jacobson, dan beberapa konsep lainnya dimana James R. Rumbaugh, Grady Booch, dan Ivan Jacobson bergabung dalam sebuah perusahaan yang bernama Rational

Software Corporation menghasilkan bahasa yang disebut dengan Unified

Modeling Language (UML).

Pada 1996, Object Management Group (OMG) mengajukan proposal agar adanya standarisasi pemodelan berorientasi objek dan pada bulan September 1997 UML diakomodasi oleh OMG sehingga sampai saat ini UML telah memberikan kontribusinya yang cukup besar di dalam metodologi berorientasi objek dan hal-hal hanya terkait di dalamnya.

2.2.7. Diagram UML

UML menggunakan berbagai macam diagram dengan fungsi masing-masing untuk menggambarkan setiap proses dari sistem berorientasi objek. Berikut merupakan beberapa diagram UML diantaranya[7] :

1. USE CASE DIAGRAM

Use Case atau diagram Use Case merupakan pemodelan yang digunakan untuk menggambarkan kelakuan (behavior) dari sistem yang akan dibuat[7]. Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Secara kasar, Use Case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.


(65)

34

Syarat penamaan pada Use Case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada Use Case yaitu pendefinisian apa yang disebut aktor dan Use Case[7].

1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem yang akan dibuat diluar sistem yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.

2. Use Case merupakan fungsionalitas yang disediakan sistem sebagai

unit-unit yang saling bertukar pesar antarunit-unit atau aktor.

Contoh dari USE CASE DIAGRAM dapat dilihat pada gambar 2.20.

Gambar 2.20.Contoh dari USE CASE DIAGRAM[7]

B. ACTIVITY DIAGRAM

Diagram aktivitas atau ACTIVITY DIAGRAM adalah sebuah diagram yang menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis[6]. Dalam diagram aktivitas yang perlu diperhatikan adalah bahwa diagram aktivitas menggambarkan aktivitas sistem, bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.

Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut[7] :


(66)

35

1. Rancangan proses bisnis di mana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan.

2. Urutan aau pengelompokan tampilan dari sistem/user interface di mana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan.

3. Rancangan pengunjian di mana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.

Contoh dari ACTIVITY DIAGRAM dapat dilihat pada gambar 2.21.

Gambar 2.21.Contoh dari ACTIVITY DIAGRAM[7]

C. 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[7]. 1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas 2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas Contoh dari CLASS DIAGRAM dapat dilihat pada gambar 2.22.


(67)

36

Gambar 2.22.Contoh dari CLASS DIAGRAM[7]

D. SEQUENCE DIAGRAM

Diagram sekuen adalah diagram yang menggambarkan kelakuan objek pada Use Case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antarobjek[7]. Oleh karena itu untuk menggambarkan diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah Use Case beserta metode-metode yang dimiliki kelas yang d2nstansiasi menjadi objek itu.

Banyaknya diagram sekuen yang harus digambarkan adalah sebanyak pendefinisian Use Case yang memiliki prose situ sendiri atau yang penting semua Use Case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak Use Case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. Contoh dari SEQUENCE DIAGRAM dapat dilihat pada gambar 2.23.


(68)

37

Gambar 2.23.Contoh dari SEQUENCE DIAGRAM[7]

E. OBJECT DIAGRAM

Diagram objek menggambarkan struktur system dari segi penamaan objek dan jalannya objek dalam sistem[7]. Pada diagram objek harus dipastikan semua kelas yang sudah didefinisikan pada diagram kelas harus dipakai objeknya, karena jika tidak, pendefinisian kelas itu tidak dapat dipertanggungjawabkan.

Untuk apa mendefinisikan sebuah kelas sedangkan pada jalannya sistem, objeknya tidak pernah dipakai. Hubungan link pada diagram objek merupakan hubungan memakai dan dipakai di mana dua buah objek akan dihubungkan oleh link jika ada objek yang dipakai oleh objek lainnya.


(69)

38

Gambar 2.24.Contoh dari OBJECT DIAGRAM[7]

F. COMPONENT DIAGRAM

Diagram komponen dibuat untuk menunjukkan organisasi dan kebergantungan di antara kumpulan komponen dalam sebuah sistem. Diagram komponen focus pada komponen sistem yang dibutuhkan dan ada di dalam sistem[7]. Diagram komponen juga dapat digunakan untuk memodelkan hal-hal berikut[7] :

1. Source code program perangkat lunak 2. Komponen executable yang dilepas ke user 3. Basis data secara fisik

4. Sistem yang harus beradaptasi dengan sistem lain 5. Framework sistem

Adapun komponen-komponen dasar yang biasanya ada dalam suatu sistem adalah sebagai berikut[7] :

1. Komponen user interface yang menangani tampilan

2. Komponen business processing yang menangani fungsi-fungsi proses bisnis

3. Komponen data yang menangani manipulasi data 4. Komponen security yang menangani keamanan sistem


(70)

39

Gambar 2.25.Contoh dari COMPONENT DIAGRAM[7]

G. Composite Structure Diagram

Diagram ini dapat digunakan untuk menggambarkan struktur dari bagian-bagian yang saling terhubung maupun mendeskripsikan struktur pada saat berjalan (runtime) dari instance yang saling terhubung[7]. Contoh penggunaan diagram ini misalnya untuk menggambarkan deskripsi dari setiap bagian mesin yang saling terkait router pada jaringan komputer, dll.

H. Package Diagram

Package diagram menyediakan cara mengumpulkan elemen-elemen yang saling terkait dalam diagram UML[7].

I. DEPLOYMENT DIAGRAM

Diagram deployment atau DEPLOYMENT DIAGRAM menunjukkan konfigurasi komponen dalam proses eksekusi aplikasi[7]. Diagram deployment juga dapat digunkan untuk memodelkan hal-hal berikut :

1. Sistem tambahan (embedded system) yang menggambarkan rancangan device, node, dan selanjutnya

2. Sistem client/server 3. Sistem terdistribusi murni 4. Rekayasa ulang aplikasi


(71)

40

Contoh dari DEPLOYMENT DIAGRAM dapat dilihat pada gambar 2.26.

Gambar 2.26.Contoh dari DEPLOYMENT DIAGRAM[7]

J. STATE MACHINE DIAGRAM

Diagram mesin status digunakan untuk menggambarkan perubahan status atau transisi status dari sebuah mesin atau sistem[7]. Perubahan tersebut digambarkan dalam suatu graf berarah. STATE MACHINE DIAGRAM merupakan pengembangan dari diagram Finite State Automata dengan penambahan beberapa fitur dan konsep baru.

Diagram ini cocok digunakan untuk menggambarkan alur interaksi pengguna dengan sistem[7].

Contoh dari STATE MACHINE DIAGRAM dapat dilihat pada gambar 2.27.


(72)

41

K. Communication Diagram

Diagram komunikasi merupakan penyederhanaan dari diagram kolaborasi (collaboration diagram)[7]. Diagram ini menggambarkan interaksi antarobjek/bagian dalam bentuk urutan pengiriman pesan. Diagram komunikasi merepresentasikan informasi yang diperoleh dari Diagram Kelas, Diagram Sekuen, dan Diagram Use Case untuk mendeskripsikan gabungan antara struktur statis dan tingkah laku dinamis dari suatu sistem.

Diagram komunikasi mengelompokkan message pada kumpulan diagram sekuen menjadi sebuah diagram. Dalam diagram komunikasi yang dituliskan adalah operasi/metode yang dijalankan antara objek yang satu dan objek yang lainnya secara keseluruhan, oleh karena itu dapat diambil dari jalannya interaksi pada semua diagram sekuen. Penomoran metode dapat dilakukan berdasarkan urutan dijalankannya metode/operasi di antara objek yang satu dengan objek yang lainnya atau objek itu sendiri.

L. TIMING DIAGRAM

TIMING DIAGRAM merupakan diagram yang focus pada penggambaran

terkait batasan waktu. TIMING DIAGRAM digunakan untuk menggambarkan tingkah laku sistem dalam periode waktu tertentu[7]. TIMING DIAGRAM biasanya digunakan untuk mendeskripsikan operasi dari alat digital karena penggambaran secara visual akan lebih mudah dipahami daripada dengan kata-kata. Aliran waktu pada TIMING DIAGRAM dibaca dari kiri ke kanan. Contoh dari TIMING DIAGRAM dapat dilihat pada gambar 2.28.


(73)

42

Gambar 2.28.Contoh dari TIMING DIAGRAM[7]

M. ITERACTION OVERVIEW DIAGRAM

ITERACTION OVERVIEW DIAGRAM mirip dengan diagram aktivitas

yang berfungsi untuk menggambarkan sekumpulan urutan aktivitas. IterrACTION OVERview diagram adalah bentuk aktivitas diagram yang setiap titik merepresentasikan diagram interaksi[7]. Interaksi diagram dapat meliputi diagram sekuen, diagram komunikasi, interACTION OVERview diagram, dan TIMING DIAGRAM.

Hampir semua notasi pada interACTIONOVERview diagram sama dengan notasi pada diagram aktivitas. Sebagai contoh initial, final, decision, merge, fork, dan join nodes sama seperti pada diagram aktivitas. Tambahan pada interACTION OVERview diagram adalah interACTION accurrence dan interACTION element.


(74)

43

Gambar 2.29.Contoh dari ITERACTION OVERVIEW DIAGRAM[7]

2.2.8. Teknik Pengujian Perangkat Lunak

Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean[5].

2.2.9. Pengujian Black box

Menurut Roger S. Pressman[5], pengujian black box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black box menungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box bukan merupakan alternatif dari teknik White Box, tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan daripada metode White Box.

Pengujian black box berusaha menemukan kesalahan dalam kategori sebagai berikut :

A. Fungsi-fungsi yang tidak benar atau hilang B. Kesalahan dalam interface


(1)

IMPLEMENTASI

Implementasi Perangkat Keras

Implementasi Perangkat Lunak


(2)

(3)

P

ENGUJIAN

Pengujian terdiri dari 2 tahap yaitu:

 Pengujian Alpha


(4)

P

ENGUJIAN

A

LPHA  Menu Utama

 Menu Petunjuk

 Menampilkan Intro

 Menampilkan Arena Level 1  Menampilkan Game Over  Collision Detection


(5)

P

ENGUJIAN

B

ETA

 Apakah aplikasi permainan The Legend Of


(6)