Membangun Game Pirates Of Money

(1)

(2)

SKRIPSI

Diajukan Untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

R MOCHAMAD REZA NURHAKIM

10108567

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG


(3)

(4)

(5)

i

ABSTRAK

MEMBANGUN

GAME PIRATES OF MONEY

Oleh

R MOCHAMAD REZA NURHAKIM 10108567

Permainan video pada komputer telah dimulai sejak tahun 1950-an. Tower

defense yang merupakan subgenre dari Real Time Strategy.Tower defense juga

merupakan sebuah genre yang bersifat casual game. Casual game merupakan aplikasi permainan yang dapat dimainkan dalam waktu yang relatif singkat dan tidak berisi persyaratan dalam memainkannya, namun walaupun mudah untuk dimainkan dan tidak memerlukan waktu yang lama untuk memainkannya, aplikasi permainan dengan genre tower defense memiliki kurang peminatnya, hal ini disebabkan oleh beberapa hal, diantaranya audio yang tidak enak didengar, kurangnya jenis-jenis musuh, alur permainan yang monoton, kurang cerdasnya musuh, dan animasi yang membosankan.

Pembangunan aplikasi permainan Pirates of Money bertujuan untuk membuat aplikasi permainan dengan genre tower defense menjadi lebih menarik untuk dimainkan, terutama dalam hal tampilan grafis, kecerdasan dengan menerapkan algoritma A* (A star) pada musuh di tingkatan tertentu untuk mencari rute terpendek menuju tujuan, collision detection yang lebih baik, serta audio yang enak didengar. Pemodelan yang digunakan dalam pembangunan aplikasi permainan Pirates of Money adalah pemodelan berorientasi objek dengan menggunakan UML (Unified Modelling Language).

Pada tahap pengujian aplikasi permainan Pirates of Money, dilakukan pengujian dengan metode black box dan white box untuk menguji fungsionalitas pada aplikasi permainan yang dibangun, serta pengujian dengan teknik kuisioner secara acak kepada para pengguna aplikasi permainan khususnya penggemar

tower defense. Berdasarkan pengujian yang telah dilakukan maka dapat

disimpulkan, bahwa aplikasi permainan Pirates of Money menjadi semakin menarik untuk dimainkan, khususnya bagi para pengemar aplikasi permainan dengan jenis tower defense.

Kata kunci : Tower defense, Pirates of Money, Algoritma A * (A star), collision detection.


(6)

ii

R MOCHAMAD REZA NURHAKIM 10108567

Computer video game has been played since the 50's. Tower defense is one

of the sub-genres of Real time strategy which characterized as casual game.

Casual game is a game application which can be played in relatively short time and doesn't include any terms or requirements. However, regardless to the fact that the game is easy and doesn't take a long time to play, the tower defense game applications have less fan. It is caused by several factors, such as mediocre audio quality, less variations of enemies and monotonous game plot.

The aim of the making of Pirates of Money is to build a more interesting tower defense game application to play. The making of this game application is emphasized on the audio quality enhancement, separating the game plots into various levels of difficulties, the implementation of collision detection, and the use of A* algorithm as the shortest searching route to the enemies so that there are no enemy plots determined in certain levels. The engineering method of the software applied in Pirates of money game application is an object-oriented approach using the UML (Unified Modelling Language).

At the testing level of the game, Pirates of Money, which is executed through the blackbox method and white box to examine the functionality of the game being built, and spreading questionnaires randomly to a number of respondences, especially those who are fond of tower defense game, can be concluded that the Pirates of Money Game Application can add more interest to the users, especially to the tower defense game player.

Keywords : Tower defense, Pirates of Money, Algorithm A * (A star), collision detection.


(7)

iii

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 PIRATES OF MONEY. 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, R Mochamad Slamet dan Ibunda, Dedah Juariah, serta adik-adik tercinta, Dhea Rafika Azzahra dan Syahril Alfarizi, yang selalu sabar memberikan dukungan, senantiasa memberikan kasih sayang yang begitu besar, serta senantiasa memberikan doa setiap waktu. 2. 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.


(8)

iv

banyak masukan yang sangat berguna bagi penulis.

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

Informatika Universitas Komputer Indonesia.

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

8. Rekan-rekan mahasiswa kelas IF-12 angkatan 2008, khususnya Agung Rosamaji, Ronan D Malelak, Eka Priyambudi Utama, Ikbal Latief Iskandar, Dadang Sujana, Aris Nugraha, Nurul Akromah, Emil Solecha, Oscar Anwar Nurdin, dan Olga Dwi Hendriana.

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


(9)

v

Wassalammu’alaikum Wr.Wb Bandung, 1 Agustus 2012


(10)

vi LEMBAR PENGESAHAN

KATA PENGANTAR ... iii

DAFTAR ISI ... vi

DAFTAR TABEL ... x

DAFTAR GAMBAR ... xii

DAFTAR SIMBOL ... xvii

DAFTAR LAMPIRAN ... xxi

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 3

1.4 Metodologi Penelitian ... 3

1.5 Batasan Masalah ... 6

1.6 Sistematika Penulisan ... 7

BAB 2 TINJAUAN PUSTAKA ... 9

2.1 Permainan Video (Video Game) ... 9

2.1.1 Sejarah Singkat Video Game ... 9

2.1.2 Jenis-jenis Permainan Video ... 13

2.1.3 Konsep Permainan Video ... 18


(11)

vii

2.3.2 Teknik Pemecahan Masalah AI ... 23

2.3.2.1 Algoritma A* (A Star Algorithm) ... 25

2.3.3 Metode Collision Detection ... 31

2.4 Object Oriented Programming (OOP) ... 32

2.5 Unified Modelling Language (UML) ... 37

2.5.1 Sejarah UML ... 38

2.5.2 Diagram UML ... 39

2.6 Teknik Pengujian Perangkat Lunak ... 50

2.6.1 Pengujian Black Box ... 51

2.6.2 Pengujian White Box ... 51

2.7 Tools yang Digunakan ... 52

2.7.1 Java ... 52

2.7.2 Netbeans IDE ... 56

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 57

3.1 Analisis Sistem ... 57

3.1.1 Analisis Aplikasi Permainan Sejenis ... 57

3.1.2 Analisis Masalah ... 58

3.1.3 Analisis Pembangunan Aplikasi Permainan Pirates of Money ... 59

3.1.3.1 Pengenalan ... 59


(12)

viii

3.1.7.1 Penerapan Metode Collision Detection Pirates of Money ... 79

3.1.7.2 Penerapan Algoritma A* (A star) Pirates of Money ... 71

3.1.8 Analisis dan Kebutuhan Fungsional ... 83

3.1.8.1 Diagram Use Case ... 83

3.1.8.2 Skenario Use Case ... 84

3.1.8.3 Diagram Activuty ... 93

3.1.8.4 Diagram Class ... 100

3.1.8.5 Diagram Sequence ... 100

3.1.8.6 Analisis Kebutuhan Non-Fungsional ... 104

3.2 Perancangan Sistem ... 105

3.2.1 Perancangan Arsitektur Menu ... 105

3.2.2 Perancangan Antarmuka Pirates of Money ... 106

3.2.3 Perancangan Pesan ... 109

3.2.4 Jaringan Semantik ... 109

3.2.5 Perancangan Method ... 110

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 123

4. Implementasi ... 123

4.1.1 Implementasi Perangkat Keras ... 123

4.1.2 Implementasi Perangkat Lunak ... 124


(13)

ix

4.2.1.1 Skenario Pengujian Aplikasi ... 128

4.2.1.2 Kasus dan Hasil Pengujian (Black Box) ... 129

4.2.1.3 Kasus dan Pengujian (White Box) ... 131

4.2.1.4 Kesimpulan Pengujian Alpha ... 146

4.2.2 Pengujian Beta ... 146

4.2.2.1 Kuisioner ... 146

BAB 5 KESIMPULAN DAN SARAN ... 153

5.1 Kesimpulan ... 153

5.2 Saran ... 153


(14)

1 1.1 Latar Belakang Masalah

Perkembangan aplikasi permainan pada saat ini sedang mengalami peningkatan yang cukup signifikan, khususnya peningkatan dalam hal para pengguna/pemain aplikasi tersebut. Beberapa tahun lalu, telah lahir jenis aplikasi permainan yang dinamakan casual game, menurut Jonathan S Harbour, casual game merupakan berbagai aplikasi permainan yang dapat dimainkan dalam waktu yang relatif singkat dan tidak berisi persyaratan maupun cara bermain[4]. Dan secara garis besar, salah satu yang termasuk ke dalam casual game adalah tower

defense game.

Tower defense game merupakan sub-genre dari permainan komputer Real

Time Strategy[17]. Tower defense memiliki gameplay yang cukup mudah

dipahami dan dimengerti bahkan untuk anak-anak sekalipun. Tujuan utama dari

tower defense ini adalah untuk mempertahankan goal point dengan cara

menempatkan berbagai tower yang dapat dibeli, sehingga tower yang telah ditempatkan dapat membunuh setiap musuh yang berusaha menuju goal point.

Penerapan metode collision detection (deteksi tubrukan) sudah menjadi suatu keharusan yang diterapkan oleh para developer game pada setiap aplikasi permainan yang dibuat. Selain metode tersebut, penerapan kecerdasan buatan pada aplikasi permainan yang dibuat menjadi nilai tambah, sehingga aplikasi permainan yang dibuat tersebut dapat menjadi lebih menarik dan menantang bagi


(15)

para pemainnya. Salah satunya kecerdasan buatan dalam pencarian rute terpendek, dan algoritma A* (A star) merupakan algoritma yang terbaik dalam pencarian rute terpendek[15].

Pada analisa aplikasi permainan yang ber-genre tower defense dengan

judul “simple tower defense”[18], bahwa aplikasi permainan tersebut mempunyai

catatan permainan yang lebih sedikit dimainkan dibandingkan dengan aplikasi permainan tower defense lainnya karena bersifat monoton dan kurang menarik serta masih sangat sederhana, diantaranya tidak adanya tingkatan level, tidak adanya audio pada aplikasi permainan tersebut, musuh yang berjalan pada jalur yang ditentukan karena belum diterapkannya kecerdasan berupa pencarian rute terpendek dengan algoritma A* (A star) pada musuh tersebut.

Oleh karena itu, akan dibangun sebuah aplikasi permainan agar menjadi lebih menyenangkan dengan ditambahkannya audio, tampilan yang menarik, tingkatan level, dan diterapkannya algoritma A* (A star) dalam melakukan pencarian rute terpendek pada musuh serta metode collision detection, yang berjudul Pirates of Money.

1.2 Perumusan Masalah

Berdasarkan penjelasan latar belakang di atas, maka perumusan masalah dari penelitian ini adalah bagaimana membangun gamePirates of Money.


(16)

1.3 Maksud dan Tujuan

Maksud dari penelitian tugas akhir ini adalah membangun aplikasi permainan Pirates of Money.

Tujuan yang diharapkan dari aplikasi yang dibangun yaitu :

1. Membuat tampilan grafis pada aplikasi permainan Pirates of Money lebih baik.

2. Menerapkan algoritma A* (A star) pada musuh untuk mencari jalur terpendek sehingga musuh menjadi lebih cerdas.

3. Menerapkan collision detection yang lebih baik. 4. Menerapkan audio yang lebih enak didengar.

5. Menjadikan aplikasi permainan Pirates of Money lebih menarik untuk dimainkan.

1.4 Metodologi Penelitian

Metodologi penelitian yang akan digunakan dalam pembuatan skripsi ini menggunakan metodologi analisis deskriptif, yaitu metode penelitian menggunakan studi kasus. Metodologi penelitian pada penelitian tugas akhir ini dibagi menjadi dua metode yaitu :

1. Metode Pengumpulan Data

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


(17)

a. Studi Literatur

Studi literatur adalah metode pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

b. Observasi

Observasi adalah metode pengumpulan data dengan melakukan pengamatan secara langsung terhadap objek yang diteliti, yaitu perangkat lunak yang itu sendiri.

2. Metode Pengembangan Perangkat Lunak.

Metode yang digunakan untuk pembangunan perangkat lunak pada aplikasi permainan Pirates of Money ini menggunakan model proses waterfall, yang secara garis besar meliputi beberapa proses diantaranya:

a. Requirements Analysis and Definition

Pada tahap ini, ditentukan pelayanan, batasan, dan tujuan sistem berdasarkan hasil konsultasi dengan pengguna sistem itu sendiri. Pada tahap ini sistem didefinisikan secara rinci yang kemudian disajikan sebagai sebuah spesifikasi sistem.

b. System and Software Design

Pada tahap ini, proses desain sistem dibagi menjadi berdasarkan kebutuhan, baik untuk perangkat keras maupun perangkat lunak. Hal itu untuk membentuk arsitektur secara keseluruhan. Desain perangkat lunak melibatkan proses mengidentifikasi dan mendeskripsikan sistem perangkat lunak yang mendasar berupa abstraksi dan hubungannya.


(18)

c. Implementation and Unit Testing

Pada tahap ini, desain perangkat lunak direalisasikan menjadi serangkaian program atau unit program. Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasinya.

d. Integration and System Testing

Pada tahap ini, unit program atau program itu sendiri diintegrasikan dan diuji sebagai sebuah sistem yang lengkap untuk memastikan bahwa semua kebutuhan sistem telah terpenuhi. Setelah dilakukan pengetesan, sistem perangkat lunak dikirim kepada pelanggan.

e. Operation and Maintenance

Tahap ini merupakan tahap yang paling lama pada fase siklus hidup. Sistem sudah terpasang dan siap digunakan. Pemeliharaan mencakup koreksi dari berbagai error yang tidak ditemukan di tahap sebelumnya pada siklus hidup, perbaikan atas implementasi unit sistem dan pengembangan pelayanan sistem dan persyaratan baru ditambahkan ke dalam sistem.

Model waterfall yang digunakan dalam pembangunan perangkat lunak pirates


(19)

Gambar 1.1 Model Waterfall[12]

1.5 Batasan Masalah

Batasan masalah dalam penelitian ini adalah sebagai berikut :

1. Game yang dibangun berjenis tower defense yang difokuskan untuk melakukan pertahanan dari serangan musuh.

2. Game dibangun dengan menggunakan bahasa pemrograman java dan berbasis desktop.

3. Game yang dibangun memiliki 4 level dengan tingkat kesulitan yang berbeda.

4. Kecerdasan buatan yang diimplementasikan di dalam game yang dibangun adalah metode collision detection pada setiap level dan algoritma A* (A star) untuk pencarian rute bagi karakter NPC dalam hal ini pihak musuh/penyerang pada level 3 dan 4.


(20)

5. Game yang dibangun hasil akhirnya akan berformat .JAR dan hanya bisa dimainkan oleh komputer yang sudah mempunyai Java Virtual Machine (JVM) di dalamnya.

6. Menggunakan pemodelan berorientasi objek dengan tools UML

(Unified Modelling Language).

1.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 1 PENDAHULUAN

Bab ini berisi uraian tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan maksud dan tujuan penelitian, metodologi penelitian yang digunakan, dan diikuti dengan pembatasan masalah, serta sistematika penulisan.

BAB 2 TINJAUAN PUSTAKA

Bab ini berisi pembahasan mengenai teori permainan video, gameplay

tower defense, kecerdasan buatan, object oriented programming (OOP), unified

modeling language (UML), dan berisi uraian tentang tools yang digunakan.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi analisis tentang sistem yang akan dibangun, analisis aplikasi permainan sejenis beserta analisis masalah pada aplikasi permainan tersebut, analisis pembangunan aplikasi permainan pirates of money, analisis dan


(21)

kebutuhan fungsional yang berupa diagram-diagram UML, serta analisis dan kebutuhan non-fungsional yang terdapat perancangan antarmuka pada aplikasi permainan yang dibuat.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi implementasi dari perangkat keras yang digunakan, perangkat lunak yang digunakan, implementasi pada aplikasi permainan Pirates of

Money, dan implementasi antarmuka, serta berisi hasil pengujian pada aplikasi

permainan Pirates of Money menggunakan metode pengujian black box dan white box dengan tahap pengujian alpha dan beta.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari hasil pengujian bahwa tujuan awal dalam pembangunan aplikasi permainan Pirates of Money telah tercapai atau tidak, serta berisi saran untuk pengembangan aplikasi permainan tersebut selanjutnya.


(22)

9 2.1 Permainan Video (Video Game)

Permainan Video merupakan sebuah permainan yang di dalamnya melibatkan interaksi manusia sebagai pemain dengan menggunakan perangkat

video. Adapun sistem elektronik yang digunakan untuk memainkan permainan

video dinamakan platform, contoh dari platform adalah Personal Computer (PC)

dan konsol video game.

Untuk melakukan perintah memanipulasi permainan video digunakan

game controller, adapun game controller dapat berupa joystick yang terdiri dari

satu tombol saja. Namun seiring perkembangan jaman, saat ini game controller

tidak hanya joystick, melainkan dengan menggunakan sebuah mouse maupun

keyboard dan juga penggunaan joystick yang memiliki beberapa tombol.

2.1.1 Sejarah Singkat Video Game

Video game pertama diciptakan oleh dua orang utama, yaitu William

Higinbotham dan Steve Russell[6]. Saat itu William Higinbotham berperan sebagai orang pertama yang mendesain dan mengimplementasikan sebuah video game, dan Steve Russell berperan sebagai orang pertama yang menciptakan sebuah game yang kemudian menginspirasikan bermilyaran dollar industri video


(23)

Berdasarkan sejarah, yang pertama kali menemukan video game ialah

United States Department of Enery. Khususnya ialah seorang pria bernama

William Higinbotham yang menjadi kepala pada bagian Instrumentation division

for Brookhaven National Laboratory. Beforen Brookhaven, William pernah

bekerja sebelumnya di Manhattan Project dan telah menyaksikan ledakan atom pertama. Namun, pada tahun 1950an, masyarakat khawatir akan kekuatan atom, dan Brookhaven mencoba untuk menampilkannya untuk memasyarakatkan penelitian yang dilakukan pada acaran kunjungan tahunan. Ratusan orang berkunjung ke laboratorium setiap musim gugur untuk melihat berbagai penelitian yang sedang dilakukan disana. Pada tahun 1958, William mendapatkan ilham bagaimana membuat pengunjung agar tidak bosan pada setiap kunjungan tahunan ke laboratoriumnya, yaitu dengan cara membuat tampilan interaktif. Tampilan ini menjadi video tennis game.

Dalam waktu tiga minggu, permainan video pertama diciptakan. William menggambarkan desain asli untuk permain tersebut hanya dalam waktu beberapa jam saja, bekerja sama dengan Robert V. Dvorak, seorang spesialis teknisi, yang memasangkan patchboard. Mereka berdua menghabiskan waktu selama dua hari untuk debugging dan running permainan tersebut, akhirnya terciptalah sebuah permainan video yang diberi nama Tennis for Two dan menjadi suguhan paling menarik bagi pengunjung.

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


(24)

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, komputer menjadi barang yang sangat langka, komputer hanya dapat ditemukan di sekolah paling bergengsi pada saat itu, seperti MIT. Steve Russell merupakan murid di MIT, dan dalam masa belajarnya selama enam tahun, dan menghabiskan 200 jam, dia menciptakan permainan video two-player

yang dinamakan Spacewar pada sebuah komputer DEC PDP-1. Tujuan dari permainan tersebut adalah setiap pemain melakukan maneuver pesawatnya ketika mencoba menembak pesawat pemain lain dengan menggunakan misil. Menggunakan empat tombol yang terpisah, setiap pemain dapat melakukan putara searah jarum jam maupun berlawanan arah jarum jam, dorongan, atau menembak dengan misil.

Spacewar diciptakan pada tahun 1961, namun pada musim semi tahun

1962, permainan tersebut telah mengalami perluasan. Pete Sampson menambahkan sebuah area bintang yang akurat ke dalam layar dengan mengintegrasikan program yang telah ada, yang dinamakan Expensive

Planetarium. Kemudian, Dan Edwards mengoptimalkan permainan tersebut

dengan menambahkan perhitungan gravitasi agar lebih meningkat lagi performanya. Kemudian, ditambahkan juga kerlip matahari ke dalam pusat tampilan yang berpengaruh kepada pesawat dan menghancurkan setiap benda yang berada di dekatnya. Terakhir, J. Martin Graetz menambahkan sebuah konsep

hyperspace, yaitu sebuah kemampuan untuk seorang pemain yang dapat membuat


(25)

membuat pemain merasa panik. Dengan keadaan ini, taktik yang menarik mulai diciptakan, seperti menembak pesawat sendiri ketika dekat dengan matahari untuk mempercepat menyusul lawan yang bergerak lambat.

Pada awal tahun 1970an, dua orang utama, Ralph Baer dan Nolan Bushnell, membawa permainan video ke dalam rumah agar dapat dinikmati semua orang. Kemudian, dua orang inilah yang memberikan kelahiran industri permainan video seperti yang kita ketahui saat ini.

Pada akhir tahun 1971, perusahaan televisi yang bernama Magnavox

akhirnya menandatangani kontrak dengan Sanders. Pada tahun 1972, Magnavox

menunjukkan peralatan terbarunya yang diberi nama Magnavox Odyssey.

Pada tahun 1983, sebuah perombakan 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.

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


(26)

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[6].

A. Platformer

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

platformers yang terkenal diantaranya Super Mario Bros, Sonic the

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

Gambar 2.1 Contoh permainan platformers[6] B. Fighting

Permainan fighting, pemain bertarung dengan pemain lainnya atau dengan komputer baik menggunakan ilmu beladiri atau permainan pedang. Permainan ini berasal dari permainan arcades, dimana pemain dapat menandakan keinginan mereka untuk menantang yang lainnya dengan menempatkan tempat diatasnya[6]. Contoh dari permainan video yang berjenis fighting yang plaing terkenal diataranya Double Dragon, Street


(27)

Gambar 2.2 Contoh permainan fighting[6]

C. First-Person Shooter

First-Person Shooter merupakan sebuah action game yang menempatkan

pemain “behind the eyes” pada karakter permainan[6]. Pada 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, seperti pada gambar 2.3.

Gambar 2.3 Contoh dari permainan First-Person Shooter[6]

D. Real-Time Strategy (RTS)

Permainan real-time strategy mempunyai tujuan yaitu pemain mengoleksi berbagai sumber daya, membangun pasukan, dan mengontrol pasukannya untuk menyerang musuh. Aksi terhadap permainan ini adalah fast-paced dank arena merupakan permainan yang berlanjut, maka keputusan untuk strategi harus dibuat secara cepat[6]. Beberapa contoh dari permainan ini diantaranya


(28)

The Ancient Art of War, Command and Conquer, dan Warcraft, seperti pada gambar 2.4.

Gambar 2.4 Contoh permainan Real-Time Strategy (RTS)[6]

E. Role-Playing Game (RPG)

Permainan role-playing game mengandalkan strategi dalam setiap langkahnya dan di dalamnya terdapat cerita serta tujuan yang harus dilakukan oleh para pemainnya[6]. Salah satu contoh dari permainan ini adalah Final Fantasy

series, seperti pada gambar 2.5.

Gambar 2.5 Contoh dari Role-Playing Game[6]

F. Survival Horror

Permainan Survival Horror merupakan subgenre dari permainan

action-adventure dan first-person shotter[6]. Permainan ini memungkinkan para


(29)

macam monster dan zombies. Salah satu contoh game yang paling terkenal dalam permainan jenis ini adalah Resident Evil, seperti pada gambar 2.6.

Gambar 2.6 Contoh dari Permainan Survival Horror[6]

G. Simulation

Permainan simulasi diadaptasi dari sistem simulasi. Dalam permainan ini para pemain berada dalam sebuah scenario dimana para pemain mengontrol pergerakan secara besar-besaran atau sebagai satu karakter saja[6]. Salah satu contoh dari permainan ini adalah The Sims, seperti pada gambar 2.7.

Gambar 2.7 Contoh permainan Simulation[6]

H. Racing

Permainan racing melibatkan kompetisi balap kendaraan mulai dari balap motor, mobil, maupun go-karts[6]. Jenis permainan ini sedikit berbeda dibanding permainan lainnya. Salah satu contoh dari permainan ini Need for


(30)

Gambar 2.8 Contoh permainan Racing[6]

I. Sports

Permainan ini merupakan jenis yang mensimulasi olahraga yang ada pada dunia nyata[6]. Salah satu contohnya adalah Tiger Woods Golf, seperti pada gambar 2.9.

Gambar 2.9 Contoh permainan Sport[6]

J. Puzzle

Permainan ini merupakan penggabungan dari berbagai elemen, diantaranya pencocokan, logika, strategi, dan keberuntungan[6]. Salah satu contoh dari jenis permainan ini adalah Tetris, seperti pada gambar 2.10.


(31)

Gambar 2.10 Contoh dari permainan Puzzle[6]

2.1.3 Konsep Permainan Video

Menurut J. P. Flynt dan O. Salem dalam bukunya[18], 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.11.


(32)

Gambar 2.11 Spesialisasi peningkatan karakteristik industri game[18]

2.2 Gameplay Tower Defense

Tower Defense merupakan sebuah sub-genre dari permainan komputer

real-time strategy[17]. Dalam permainan tower defense setiap pemain

menggunakan media mouse untuk melakukan interaksi terhadap permainan tersebut.

Gameplay dari permainan dengan jenis tower defense adalah mencegah

setiap musuh yang muncul untuk menuju goal point, dimana apabila musuh mencapai goal point tersebut maka darah atau nyawa dari pemain akan berkurang dan apabila habis maka pemain dinyatakan kalah. Setiap pemain dapat menempatkan tower untuk melakukan pertahanan dan secara otomatis akan menembak musuh yang berada di dalam jangkauannya, dalam beberapa permainan dengan jenis tower defense terdapat berbagai macam tower dengan harga yang beragam. Adapun uang yang digunakan untuk membeli tower


(33)

sukses apabila pemain dapat mempertahankan darah atau nyawa nya sampai waktu yang ditentukan habis atau berdasarkan jumlah musuh yang dibunuh.

2.2.1 Karakteristik Tower Defense

Karakteristik yang terdapat di dalam aplikasi permainan yang berjenis

tower defense adalah sebagai berikut[17] :

A. Terdiri dari dua point, yaitu point awal tempat keluarnya musuh dan point

akhir yang merupakan tujuan akhir musuh

B. Adanya shop yang digunakan untuk membeli tower, sehingga tower yang bisa digunakan bervariasi

C. Metode interaksi antara pemain dan aplikasi permainan dengan menggunakan

mouse

D. Terdapat nyawa dan jumlah coin pemain

E. Terdapat jalur yang telah ditentukan sehingga musuh berjalan melewati jalur tersebut

2.3 Kecerdasan Buatan (Artificial Intelligence) 2.3.1 Definisi AI

Sebagian kalangan menerjemahkan Artificial Intelligence sebagai kecerdasan buatan, kecerdasan artifisial, intelijensia artifisial, atau intelejensia buatan. Pada bukunya[15], Suyanto sengaja tidak menerjemahkan istilah Artificial


(34)

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[15], yaitu :

A. Thinking humanly : the cognitive modeling approach

Pendekatan ini dilakukan dengan dua cara sebagai berikut :

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.

2. Melalui eksperimen-eksperimen psikologi. 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


(35)

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 :

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


(36)

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.3.2 Teknik Pemecahan Masalah AI

Terdapat empat teknik dasar pemecahan masalah yang terdapat pada bidang academic/traditional artificial intelligence (AI)[15], 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[15] :

1. Blind/Un-informed Search


(37)

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)

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


(38)

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.

2.3.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[15]. Biaya yang diperhitungkan didapat dari biaya sebenarnya ditambah dengan biaya perkiraan, dalam notasi matematika dituliskan sebagai berikut :

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

Dengan perhitungan biaya seperti diatas, algoritma A* adalah complete

dan optimal[15]. 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


(39)

berwarna biru merupakan dinding yang menghalangi rute point A menuju point

B[6], untuk lebih jelasnya terdapat pada gambar 2.12.

Gambar 2.12 Ilustrasi awal algoritma A*[6]

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.

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 :


(40)

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


(41)

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

F = G + H...[6] 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.14.


(42)

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.

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.


(43)

Gambar 2.16 Ilustrasi perhitungan terhadap kotak unwalkable[6]

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


(44)

2.3.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[2], dengan jarak respon yang telah diaplikasikan

secara spesifik. Dalam collision detection, terdapat banyak sekali jenis dari

collision detection itu sendiri, pada gambar 2.18 merupakan tiga tipe dari collision

detection.

Gambar 2.18 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,


(45)

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

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.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)[10]. 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.


(46)

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[10], 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[10], yaitu :

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


(47)

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


(48)

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


(49)

interface Java yang akan d2mplementasikan 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[10].

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


(50)

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)[10].

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)[10]. Akan tetapi hal itu tentunya bergantung juga pada access specifier (yaitu, public dan private) yang diberikan dalam proses penurunan kelas.

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[11].


(51)

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.5.1 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 d2kuti 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, d2kuti oleh Grady Booch, James R. Rumbaugh, Michael R. Blaha, William Lorensen, Frederick Eddy, William Premerlani, dan masih banyak lagi.


(52)

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.5.2 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[11] :


(53)

A. Use Case Diagram

Use Case atau diagram use case merupakan pemodelan yang digunakan

untuk menggambarkan kelakuan (behavior) dari sistem yang akan dibuat[11].

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.

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[11].

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


(54)

Gambar 2.19 Contoh dari Use Case Diagram[11]

B. Activity Diagram

Diagram aktivitas atau activity diagram adalah sebuah diagram yang menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis[11]. 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[11] :

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.


(55)

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

Gambar 2.20 Contoh dari Activity Diagram[11]

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[11].

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


(56)

Gambar 2.21 Contoh dari Class Diagram[11]

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[11]. 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.22.


(57)

Gambar 2.22 Contoh dari Sequence Diagram[11]

E. Object Diagram

Diagram objek menggambarkan struktur system dari segi penamaan objek dan jalannya objek dalam sistem[11]. 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.


(58)

Gambar 2.23 Contoh dari Object Diagram[11]

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[11]. Diagram komponen juga dapat digunakan untuk memodelkan hal-hal berikut[11] :

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[11] :


(59)

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

3. Komponen data yang menangani manipulasi data 4. Komponen security yang menangani keamanan sistem Contoh dari component diagram dapat dilihat pada gambar 2.24.

Gambar 2.24 Contoh dari Component Diagram[11]

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[11]. 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


(60)

I. Deployment Diagram

Diagram deployment atau deployment diagram menunjukkan konfigurasi komponen dalam proses eksekusi aplikasi[11]. 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

Contoh dari deployment diagram dapat dilihat pada gambar 2.25.

Gambar 2.25 Contoh dari Deployment Diagram[11]

J. State Machine Diagram

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


(61)

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

Contoh dari state machine diagram dapat dilihat pada gambar 2.26.

Gambar 2.26 Contoh dari State Machine Diagram[11]

K. Communication Diagram

Diagram komunikasi merupakan penyederhanaan dari diagram kolaborasi

(collaboration diagram)[11]. 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


(62)

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[11]. 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.27.

Gambar 2.27 Contoh dari Timing Diagram[11]

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


(63)

diagram sekuen, diagram komunikasi, interaction overview diagram, dan

timing diagram.

Hampir semua notasi pada interaction overview 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.

Contoh dari overview diagram dapat dilihat pada gambar 2.28.

Gambar 2.28 Contoh dari Iteraction Overview Diagram[11]

2.6 Teknik Pengujian Perangkat Lunak

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


(64)

2.6.1 Pengujian Black Box

Menurut Roger S. Pressman[7], 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

C. Kesalahan dalam struktur data atau akses database eksternal D. Kesalahan kinerja

E. Inisialisasi dan kesalahan terminasi

2.6.2 Pengujian White Box

Menurut Roger S. Pressman[17], pengujian white box, yang kadang-kadang disebut pengujian glass box, adalah metode desain test case yang menggunakan struktur kontrol desain procedural untuk memperoleh test case. Dengan menggunakan metode pengujian white box, perekayasa sistem dapat melakukan test case sebagai berikut :


(65)

A. Memberikan jaminan bahwa semua jalur independen pada suatu modul telah digunakan paling tidak satu kali

B. Menggunakan semua keputusan logis pada sisi true dan false

C. Mengeksekusi semua loop pada batasan mereka dan pada batas operasional mereka

D. Menggunakan struktur data internal untuk menjamin validitasnya.

Pengujian white box yang berupa notasi diagram alir dapat dilihat pada gambar 2.29.

Gambar 2.29 Notasi Diagram Alir[7]

2.7 Tools yang Digunakan

Dalam pembuatan sebuah aplikasi tentu dibutuhkan satu atau beberapa

tools yang dalam hal ini berupa software (perangkat lunak). Berikut merupakan

beberapa perangkat lunak yang digunakan untuk membangun sebuah aplikasi permainan pirates of money.

2.7.1 Java

Java adalah salah satu bahasa pemrograman komputer yang berorientasi objek[13], yang diciptakan oleh satu tim dari perusahaan Sun Microsystem, perusahaan workstation UNIX (Sparc) yang cukup terkenal. Java diciptakan


(66)

berdasarkan bahasa C++, dengan tujuan platform independent (dapat dijalankan pada berbagai jenis hardwaretanpa kompilasi ulang), dengan slogan “Write Once,

Run Anywhere (WORA), dan Java pada hakikatnya lebih sederhana dan memakai

objek secara murni dibanding dengan bahasa pemrograman C++.

Asal usul java dimulai pada tahun 1991 ketika Sun Microsystem

melakukan penelitian terhadap berbagai produk elektronika. James Gosling (kepala proyek penelitian) beserta Patrick Naughton ditugaskan untuk merancang perangkat lunak aplikasi yang independen, tidak bergantung pada jenis perangkat keras, agar bisa dipakai pada berbagai peralatan elektronik itu. James Gosling kemudian memakai bahasa pemrograman C++ untuk menulis beberapa aplikasi untuk peralatan mikro, namun ternyata dia mengalami banyak kesulitan. Setiap kali sebuah peralatan mikro menggunakan jenis microchip yang berbeda, program yang digunakannya harus dikompilasi ulang. Berdasarkan hal itu kemudian munculah ide dari James Gosling untuk menciptakan sebuah bahasa baru, yang ditulis berdasarkan C++ namun dengan beberapa perbaikan. Bahasa ini kemudian disebut Oak (nama pohon yang terlihat dari jendela ruangan kerja James Gosling), yang digunakan untuk membuat perangkat lunak cerdas bagi peralatan elektronika buatan Sun Mirosystem.

Pada tahun 1994, ketika Web mulai popiler nama bahasa Oak kemudian diganti menjadi Java (salah satu sebabnya ternyata nama Oak telah terlebih dahulu dipakai untuk hal lain). Menurut gosip, Gosling bingung mencari nama untuk bahasa baru tersebut karena setiap nama yang dipikirkannya untuk nama bahasa pemrogramannya ternyata sudah ada yang memakai, sampai suatu ketika


(67)

dia mampir di sebuah kafe untuk minum kopi, dan ia meminta “Java”. Timbullah idenya untuk memakai nama Java. Menurut Gosling nama ini cukup cool.

Java kemudian dipakai untuk membuat sebuah browser yang bernama

WebRunner. Setelah berhasil maka browser ini kemudian dinamakan HotJava

dengan simbol secangkir kopi panas, seperti pada gambar 2.30.

Gambar 2.30 Maskot Java (Duke) dan HotJava[13]

Menurut Definisi yang diberikan oleh Sun Microsystem, Java adalah bahasa pemrograman simple, object oriented, distributed, robust, secure,

architecture neutral, portable, high-performance, multithreaded, dan dynamic.

A. Java bahasa yang simple : Rancangan bahasa Java dibuat sedemikian rupa sehingga dengan cepat dapat dikenali dan dipahami oleh pemrogram pemula sekalipun karena mirip dengan bahasa C / C++ dan kedua lebih sederhana dari C/C++ dalam beberapa hal mengingat berbagai hal yang sulit pada C/C++ sudah tidak ada pada Java, misalnya pemakaian pointer.

B. Java adalah bahsa yang object-oriented : Konsep objek diterapkan pada pembuatan program Java, bahkan Java menggunakan konsep objek secara murnni sehingga tidak mungkin seseorang membuat program Java tanpa mendefinisikan kelas dan menggunakan objek.

C. Java adalah bahasa yang distributed : Bahasa Java dirancang sedemikian rupa sehingga mendukung pembuatan aplikasi dalam jaringan komputer. Java


(68)

menyediakan beberapa kelas objek untuk mendukung aplikasi jaringan yang dihimpun dalam paket java.net.

D. Java adalah bahasa yang robust : Rancangan Java dibuat sedemikian rupa

hingga mengurangi kemungkinan menjadi beku (freeze) ketika dijalankan. Kemungkinan error pun diminimalkan, misalnya dengan menerapkan strong-type sehingga program bisa terhindar dari kesalahan karena tipe data yang keliru, Java juga menerapkan model memori yang dapat mencegah memori

corrupt dan overwrited, misalnya dengan membuang pemakaian pointer.

E. Java adalah bahasa yang secure : Secara otomatis Java menerapkan pengamanan terhadap aplikasi sehingga mengurangi kemungkinan terjadinya serangan dari pengguna jaringan.

F. Java adalah bahasa yang architecture neutral : Program Java yang telah

dikompilasi dapat dijalankan pada berbagai mesin dan tidak hanya bergantung pada satu arsitektur komputer saja.

G. Java adalah bahasa yang portable : Program Java sangat mudah dipindahkan

dari satu mesin ke mesin lain tanpa harus dikompilasi ulang.

H. Java adalah bahasa yang high-performance : Pada hakikatnya program C

yang telah dikompilasi berjalan jauh lebih cepat dari Java, karena hasil kompilasi C adalah bahasa mesin dari komputer yang dipakai untuk mengompilasi, namun hasil kompilasi ini belum tentu bisa jalan pada komputer yang berbeda arsitektur. Program Java dikompilasi menjadi

bytecode yang bisa berjalan di berbagai mesin, namun ketika dijalankan


(69)

sesuai, sehingga lebih lambat dari C, namun karena Java dapat digunakan pada jaringan komputer yang kenyataannya tidak terlalu cepat karena hambatan saluran komunikasi maka program Java masih terasa cukup cepat.

I. Java adalah bahasa yang multithreaded : Java dirancang untuk menangani

berbagai aplikasi yang berjalan secara bersamaan, misalnya memainkan lagu, sambil melakukan download, dan pengguna sedang melakukan scrolling pada

window yang diamatinya.

J. Java adalah bahasa yang dynamic : Bahasa Java dirancang untuk beradaptasi dengan lingkungan yang dapat berubah dengan cepat. Java dapat memanggil berbagai kelas objek pada saat dibutuhkan, walaupun harus melalui jaringan. Di samping itu Java memiliki tepresentasi run-time sehingga objek yang sedang digunakan oleh suatu aplikasi dapat diperiksa berasal dari kelas yang mana melalui informasi run-time.

2.7.2 NetBeans IDE

NetBeans adalah sebuah proyek open source yang didedikasikan untuk

menyediakan produk pengembang perangkat lunak yang handal (Netbeans IDE

dan Netbeans Platform) yang ditujukan untuk kebutuhan para pengembang,

pengguna dan bisnis yang mengandalkan netbeans sebagai dasar produk mereka. Pada bulan Juli 2000, netbeans dibuat open source oleh Sun Microsystems, yang menjadi sponsor proyek ini sampai Januari 2010 ketika Sun Microsystems


(70)

58 3.1 Analisis Sistem

Pada bagian analisis sistem ini, akan dilakukan berbagai macam analisis yang berhubungan dengan game yang akan dibangun, mulai dari analisis terhadap game sejenis analisis berbagai kebutuhan baik fungsional maupun non-fungsional.

3.1.1 Analisis Aplikasi Permainan Sejenis

Dalam hal ini diperlukan sebuah analisis yang dilakukan terhadap aplikasi permainan lain yang sejenis untuk menentukan dimana letak kekurangan aplikasi permainan tersebut, sehingga dapat kita kembangkan dengan membuat aplikasi permainan baru agar semakin menarik dibandingkan dengan aplikasi permainan yang dianalisis. Aplikasi permainan sejenis yang akan dianalisis adalah aplikasi permainan yang berjudul Simple Tower Defense, seperti pada gambar 3.1.


(71)

Simple Tower Defense menawarkan sebuah permainan game ber-genre

tower defense. Pada game tersebut, musuh terdiri dari 3 jenis dengan kekuatan

yang berbeda-beda, musuh sendiri dibedakan dari warnanya. Musuh diharuskan untuk terus maju sampai goal line yang berupa bangunan, ketika musuh tersebut sampai pada goal line maka nyawa yang tertera di atas bangunan akan berkurang seiring banyaknya musuh yang berhasil masuk ke dalam bangunan.

Pada game ini disediakan tiga jenis tower yang berbeda-beda, baik itu dalam hal kekuatan serang maupun dalam jarak jangkauan serang terhadap musuh. Setiap tower mempunyai harga yang berbeda-beda untuk dapat dipakai oleh player, untuk memperoleh uang yang digunakan membeli tower, maka

player harus membunuh setiap musuh yang ada, dan setiap musuh datang secara

bergelombang (wave).

3.1.2 Analisis Masalah

Berdasarkan analisis yang dilakukan terhadap game sejenis yang berjudul

Simple Tower Defense” dapat disimpulkan bahwa dalam game tersebut, dalam

hal cara bermain masih terlalu monoton, hal ini dibuktikan pada alur permainannya yang masih sederhana, mulai dari tingkatan kesulitan yang hanya dibedakan dalam bentuk gelombang dan misi dari permainan ini yang masih belum jelas akhirnya.


(72)

3.1.3 Analisis Pembangunan Aplikasi Permainan Pirates of Money 3.1.3.1 Pengenalan

Pirates of Money merupakan nama aplikasi permainan ber-genre tower

defense yang akan dibuat. Kata Pirates dalam aplikasi permainan ini berarti

pembajak, dan kata Money yang berarti uang. Dalam pemberian nama pada aplikasi permainan ini bertujuan selain memberikan hiburan kepada para pemain, juga memberikan sebuah pengajaran bahwa para pemain dapat menerapkan apa yang ada di dalam aplikasi permainan ini ke dalam dunia nyata, yaitu dengan memerangi setiap pembajak uang yang berusaha menguras habis keuangan negara. Aplikasi permainan ini dibangun dalam bentuk dua dimensi (2D), adapun kelebihan-kelebihan yang terdapat di dalam aplikasi permainan pirates of money

terdapat pada tabel 3.1.

Tabel 3.1 Kelebihan Aplikasi Permainan Kelebihan Aplikasi Permainan Pirates of Money

1. Terdapat bermacam-macam musuh dan hero

2. Penerapan konsep AI pada musuh di aplikasi permainan tersebut pada tingkatan tertentu

3. Terdapat tambahan uang jika hero yang ditempatkan oleh pemain berhasil membunuh musuh dan dapat membeli hero yang telah disediakan di shop sesuai dengan jumlah uang yang dimiliki


(73)

3.1.4 Story Line Game

Negara mengalami krisis uang yang berkepanjangan, semua kekayaan lenyap hanya dalam waktu beberapa tahun, dan saat ini yang tersisa hanya sejumlah uang di dalam tempat penyimpanan uang yang disimpan pada brankas besi besar. Namun, disaat keadaan seperti itu muncul penyerangan besar-besaran dari sekelompok musuh, yaitu manusia tikus. Manusia tikus ini sangat menyukai uang dan tujuan utamanya adalah menghabiskan seluruh cadangan kekayaan yang masih ada di negara tersebut. Oleh karena itu, pihak keamanan yang terdiri dari pemuda dan para aparat negara berusaha mempertahankan satu-satunya kekayaan yang tersisa dari negara tersebut agar tidak di ambil oleh para manusia tikus tersebut.

Alur dan misi dari aplikasi permainan Pirates of Money, yaitu : A. Alur Aplikasi Permainan Pirates of Money

Alur permainan merupakan ketentuan-ketentuan yang terdapat pada sebuah aplikasi permainan agar setiap pemain dapat mengetahui bagaimana cara untuk memainkan permainan ini dan untuk menyelesaikan misi pada aplikasi permaianan tersebut.

Alur permainan dari aplikasi permainan Pirates of Money terdapat pada tabel 3.2.

Tabel 3.2 Alur Aplikasi Permainan Alur Permainan

1. Musuh bergerak dari point A(markas musuh) menuju point B(tempat penyimpanan uang) sesuai dengan jalur yang telah disediakan


(74)

2. Pada level tertentu musuh bergerak dengan menentukan rute terpendek untuk mencapai tujuannya

3. Hero yang sudah ditempatkan pada petak otomatis akan menembak musuh yang berada di dekatnya

4. Jika hero berhasil membunuh musuh, maka uang permainan akan bertambah dan musuh akan lenyap

5. Jika musuh mencapai tempat penyimpanan uang (brankas), maka darah pemain akan berkurang sesuai dengan kekuatan musuh yang masuk

6. Jika darah pemain menjadi 0 (nol) maka permainan dinyatakan berakhir.

7. Jika musuh berhasil dibunuh sesuai dengan banyaknya musuh yang harus dibunuh sebelum darah pemain menjadi 0 (nol) maka permainan dapat dilanjutkan ke level berikutnya

B. Misi Aplikasi Permainan Pirates of Money

Misi yang harus diselesaikan pada aplikasi permainan Pirates of Money ini yaitu dengan melakukan pertahanan selama waktu yang telah ditentukan, pertahanan yang dilakukan agar musuh yang menyerang tidak mencapai tempat penyimpanan uang (goal point).


(75)

3.1.5 Storyboard

Storyboard merupakan sketsa gambar yang disusun berurutan sesuai

naskah yang ada, dan dengan storyboard kita dapat menyampaikan ide cerita kita kepada orang lain dengan mudah.

Storyboard level 1 dari aplikasi game Pirates of Money, terdapat pada

gambar 3.2.

Gambar 3.2 Storyboard level 1

Pada level 1 ini, musuh akan keluar secara secara berurutan dari point

A(markas musuh) menuju point B(tempat menyimpan uang) sesuai dengan jalur yang telah disediakan, musuh yang muncul pada level ini yaitu musuh level 1. Setiap pemain pada level ini dapat menggunakan semua jenis hero untuk melakukan pertahanan dengan cara membeli hero yang akan digunakan pada shop

yang telah tersedia sesuai dengan jumlah uang yang dimiliki. Hero yang digunakan hanya bisa ditempatkan pada jalur selain dari jalur yang dilewati musuh.

Storyboard level 2 dari aplikasi game Pirates of Money, terdapat pada


(1)

 Alpha  Beta


(2)

 Menu Utama

 Menu Mulai Permainan  Menu Petunjuk

 Menu Kredit  Menu Keluar

Collision Detection

 Algoritma A* (A

star

)


(3)

(4)

 Aplikasi permainan telah menerapkan audio yang lebih enak didengar

 Tampilan grafis yang lebih menarik  Musuh yang bervariasi

 Metode

collision detection

dan algoritma A* (A

star

) pada musuh

Sehingga membuat aplikasi permainan dengan

genre tower defense

khususnya

Pirates of Money

menjadi lebih menarik untuk dimainkan.


(5)

Dapat menambahkan tingkat kesulitan atau level Dapat menambahkan variasi terhadap musuh dan

mengembangkan kemampuan masing-masing musuh yang ada


(6)