• Tidak ada hasil yang ditemukan

Pembangunan Game 2D Gatotkaca Evolution

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangunan Game 2D Gatotkaca Evolution"

Copied!
115
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ABIDIN SATYA WIRAWAN

10109406

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(2)
(3)
(4)

1. DATA PRIBADI

Nama : Abidin Satya Wirawan

Jenis Kelamin : Laki-laki

Tempat, tanggal lahir : Sleman, 9 Juli 1988

Agama : Islam

Kewarganegaraan : Indonesia

Status : Belum kawin

Anak ke : Pertama dari dua bersaudara

Alamat : Asrama Kavaleri Denkavkud, Kecamatan Parongpong, Kabupaten Bandung – 40559

Telepon : 08997989395

E-mail : abidinsatya@yahoo.co.id

2. RIWAYAT PENDIDIKAN

1. Sekolah Dasar : SD Sangkuriang tahun ajaran 1994 – 2000 2. Sekolah Menengah Pertama : SMP Negeri 1 Lembang tahun ajaran

2000 – 2003

3. Sekolah Menengah Atas : SMA Negeri 1 Lembang tahun ajaran 2003 – 2006

4. Perguruan Tinggi : FTIK Unikom Bandung tahun ajaran 2009 – 2014

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

Bandung, 18 Juli 2014

(5)

v

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... xi

DAFTAR SIMBOL ... xii

DAFTAR LAMPIRAN ... xiv

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 3

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 4

1.6 Sistematika Penulisan ... 7

BAB II LANDASAN TEORI ... 9

2.1 Game ... 9

2.1.1 Pengertian Game ... 9

2.1.2 Klasifikasi Game ... 10

2.2 Wayang ... 12

2.2.1 Penjelasan Kesenian Wayang ... 12

2.2.2 Sejarah Gatotkaca ... 13

(6)

vi

2.4 Tools ... 17

2.4.1 Objek Oriented Programing ... 17

2.4.2 Unified Modeling Language (UML) ... 18

2.4.3 Java ... 24

2.4.4 Java 2 Software Development Kit (Java SDK) ... 24

2.4.5 Eclipse IDE ... 25

2.4.6 Slick2D ... 26

2.4.7 Adobe Photoshop ... 26

BAB III ANALISIS DAN PERANCANGAN ... 27

3.1 Analisis Sistem ... 27

3.1.1 Analisis Game Sejenis yang Sudah Ada ... 27

3.1.2 Analisis game yang akan dibangun ... 28

3.1.3 Analisis Algoritma ... 31

3.1.4 Analisis Kebutuhan Non-Fungsional ... 35

3.1.5 Analisis Kebutuhan Fungsional ... 37

3.2 Perancangan Sistem ... 61

3.2.1 Perancangan Komponen Permainan ... 61

3.2.2 Perancangan Struktur Menu ... 69

3.2.3 Perancangan Antarmuka ... 70

3.2.4 Jaringan Semantik ... 74

3.2.5 Perancangan Method ... 75

BAB IV IMPLEMENTASI DAN PENGUJIAN ... 81

4.1 Implementasi ... 81

4.1.1 Implementasi Perangkat Keras ... 81

(7)

vii

4.1.3 Implementasi Antarmuka ... 82

4.1.4 Implementasi Pesan ... 86

4.2 Pengujian Sistem ... 89

4.2.1 Pengujian Alpha ... 89

4.2.2 Pengujian Beta ... 96

BAB V KESIMPULAN DAN SARAN ... 103

5.1 Kesimpulan ... 103

5.2 Saran ... 103

(8)

104

[1] Tom. What Makes Games Good. [Online]. Diakses 17 Maret 2014. http://www.pentadact.com/2011-05-27-what-makes-games-good/

[2] Abdurrahman, Umar.,2013.”Pengaruh Budaya Kesenian Wayang Terhadap Industri Kreatif di Indonesia”.

[3] Fibri Aryanto. Minimnya Film Animasi dan Tokoh Superhero Indonesia.

[Online]. Diakses 6 Oktober 2013.

http://fibri.wordpress.com/2012/12/05/minimnya-film-animasi-dan-tokoh superhero-indonesia/

[4] Sommerville, Ian. 2003, Software Enginering (Rekayasa Perangkat Lunak). Penerbit:Erlangga.Jakarta.

[5] Lestari, Dewi.,2012. “DefinisiGame”. Universitas Muhammadiyah. Sukabumi.

[6] W, Wandah.,2007.”Dasar Pemrograman Flash Game”.

[7] Wayangpedia Indonesian Culture. [Online]. Diakses 7 Maret 2014. http://www.wayangpedia.com/sejarah-wayang

[8] Wayangpedia Indonesian Culture. [Online]. Diakses 6 Maret 2014. http://www.wayangpedia.com/gatotkaca.html

[9] Nurwitasari, Meyla., A, Purbasari, Indah., & Dwiyanti, Erna.”Analisis Penerapan Algoritma Brute-Force Dalam Pencarian Solusi Game "Castle Escape"”.STT Telkom.Bandung.

(9)

[11] Fauzan, Ahmad.,2012.”Penggunaan Algoritma Pathfinding pada Game”.Bandung.

[12] S,A, Rosa., & Shalahuddin, M.,2011.Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur Dan Berorientasi Objek).Penerbit

Modula.Bandung.

[13] Widodo, Pudjo, Prabowo., & Herlawati.,2011.Menggunakan UML.Penerbit: Informatika.Bandung.

[14] Wijono, S.M., Wijono, H.S.G., & Suharto, H.B.(2004).Java 2 SE dengan Jbuilder, Yogyakarta: Penerbit:ANDI.

[15] Eclipse IDE. [Online]. Diakses 2 April 2014. http://java.lyracc.com/belajar/java-untuk-pemula/eclipse-ide

[16] Bevilacqua, Jacob.2013.Slick2D Game Development.Penerbit: PACKT.Inggris.

(10)

iii

Puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta hidayah-Nya sehingga penulis dapat menyelesaikan

penulisan skripsi dengan judul “PEMBANGUNAN GAME 2D GATOTKACA

EVOLUTION” sebagai salah satu syarat kelulusan pada Program Strata 1

Program Studi Teknik Informatika Fakultas Ilmu dan Teknik Komputer di Universitas Komputer Indonesia.

Penyusunan skripsi ini tidak akan terwujud tanpa mendapat dukungan, bantuan dan masukan dari berbagai pihak. Untuk itu, penulis ingin menyampaikan terima kasih yang sebesar-besarnya kepada :

1. Allah SWT atas rahmat, berkah dan izin-Nya saya bisa menyelesaikan penulisan skripsi ini

2. Ibu Kunarwasih dan Bapak Murjiyo sebagai orangtua serta Ajeng Aulia yang telah memberikan dukungan baik secara moril maupun materil dan doa yang tiada hentinya sehingga penulis bisa bertahan hingga saat ini. 3. Bapak Eko Budi Setiawan, S.Kom., M.T. selaku pembimbing, yang telah

membimbing penulis dalam menyelesaikan tugas akhir

4. Ibu Rani Susanto, S.Kom. selaku reviewer yang telah banyak memberikan masukan dan arahan

5. Bapak Galih Hermawan, S.Kom., M.T. selaku penguji sidang yang telah banyak memberikan masukan dan arahan

6. Ibu Sufa’atin, S.T., M.Kom. selaku dosen wali IF-10 2009 selama penulis

menempuh pendidikan di UNIKOM

(11)

iv

terdapat kekurangan. Penulis juga berharap agar skripsi ini dapat bermanfaat bagi semua pihak khususnya bagi penulis dan umumnya bagi pembaca.

Bandung, Juli 2014

(12)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Game dapat diartikan sebagai segala bentuk kegiatan yang memerlukan pemikiran, kelincahan intelektual dan pencapaian terhadap target tertentu. Saat ini sudah banyak jenis game yang ada khususnya di Indonesia. Setiap orang dapat memainkan berbagai jenis game yang mereka sukai. Mulai dari jenis game perang, strategi, hingga game yang bersifat edukasi dapat dimainkan saat ini. Game dapat dikatakan bagus apabila terdapat beberapa unsur di dalamnya yang diantaranya adalah unsur interaktif dan unsur tantangannya. Untuk unsur tantangan misalnya penggunaan AI atau kecerdasan buatan pada karakter NPC. Sedangkan untuk unsur Interaktif misalnya efek suara tembakan, efek animasi dan lain-lain. Unsur ini apabila terpenuhi akan membuat pemain memiliki rasa kepuasan tersendiri dalam memainkan game tersebut [1]. Khususnya pada game jenis side-scrolling di Indonesia sebagian besar permasalahan yang ditemukan adalah kurang maksimalnya efek animasi yang digunakan sehingga unsur interaktif kurang dirasakan pemain.

(13)

Tokoh pahlawan super atau superhero asal luar negeri yang masuk ke Indonesia semakin banyak, baik melalui industri perfilman maupun industri game. Tokoh-tokoh superhero Indonesia dapat digali dari berbagai cerita rakyat yang ada di Indonesia. Kalaupun harus menciptakan tokoh superhero Indonesia diharapkan juga memiliki karakter budaya Indonesia Permasalahannya adalah minimnya tokoh superhero asal Indonesia yang menjadi karakter utama dalam industri game di Indonesia [3].

Oleh karena itu, tokoh Gatotkaca digunakan sebagai karakter utama pada game yang akan dibangun. Gatotkaca merupakan tokoh pewayangan asal Indonesia yang memiliki ciri khas bertubuh kekar dan berkekuatan super. Diharapkan game ini dapat mengenalkan Gatotkaca sebagai tokoh superhero asal Indonesia.

1.2 Perumusan Masalah

Berdasarkan latar belakang masalah yang telah diuraikan di atas, yang menjadi permasalahan dalam penelitian ini adalah :

1. Bagaimana membuat tokoh superhero asal Indonesia yang dapat dikenal oleh masyarakat Indonesia khususnya anak-anak.

2. Bagaimana agar unsur interaktif dalam game dapat lebih dirasakan oleh pemain.

(14)

1.3 Maksud dan Tujuan

Berdasarkan perumusan masalah, penulis bermaksud untuk membuat suatu permainan untuk melestarikan tokoh pahlawan Indonesia dengan tujuan :

1. Membuat game dengan tokoh utama Gatotkaca sehingga anak-anak memiliki karakter superhero asal dalam negeri.

2. Menampilkan efek animasi sehingga game lebih menarik untuk dimainkan sehingga unsur interaktif dapat dirasakan oleh pemain. 3. Membuat Game dengan menggunakan karakter pewayangan di

dalamnya sehingga masyarakat Indonesia khususnya anak-anak mengenal tokoh-tokoh dalam pewayangan.

1.4 Batasan Masalah

Agar permasalahan yang ditinjau tidak terlalu luas dan sesuai dengan maksud dan tujuan yang dicapai, maka penulis membatasi masalah sebagai berikut :

1. Game dibuat berbasis Desktop 2. Game bersifat offline

3. Game bergenre Arcade

4. Grafik permainan ini bersifat 2D 5. Permainan bersifat single player 6. Game terdiri dari 3 level.

7. Target user untuk permainan ini adalah untuk usia 6 tahun ke atas. 8. Pemodelan yang digunakan adalah pemodelan berorientasi objek

(15)

10.Aplikasi yang digunakan untuk membangun permainan ini adalah:

a. Aplikasi pembangunan permainan ini menggunakan bahasa pemrograman Java dan Eclipse IDE.

b. Aplikasi Pembuatan karakter 2D menggunakan Adobe Photoshop CS5.

11.Pemodelan perancangan sistem menggunakan Object Oriented Analysis Design (OOAD) dengan tools Unified Modelling Language (UML).

1.5 Metodologi Penelitian

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

1. Tahap pengumpulan data a. Studi Literatur.

Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper, dan pencarian data yang bersumber dari internet yang berkaitannya dengan aplikasi yang akan dibangun.

b. Observasi

Observasi dilakukan pada game sejenis yang sudah ada untuk mengamati kelebihan dan kekurangan yang ada pada game tersebut.

c. Kuisioner

Pembagian kuisioner dilakukan pada tahap pengujian dan hasilnya akan menjadi kesimpulan dari penelitian ini.

2. Metode Pengembangan Perangkat Lunak

(16)

Gambar 1.1 Model Waterfall [4]

a. System Engineering

Pada tahap ini dilakukan perencanaan game seperti apa yang akan dibuat dan tools yang akan digunakan. Tahap ini meliputi menentukan karakter pemain, karakter musuh, latar game dan lain-lain. Selain itu, menetukan bahasa pemrograman dan Algoritma yang akan digunakan.

b. System Analysis

(17)

c. System Design

Pada tahap ini dilakukan perancangan baik pemodelan maupun interface permainan. Pada perancangan pemodelan digambarkan sebagai Use Case, Activity Diagram, Sequence Diagram dan lain-lain. Sedangkan pada

perancangan interface permainan digambarkan bagaimana tampilan permainan yang nanti akan dibuat.

d. System Coding

Pengkodean mengimplementaskan hasil desain ke dalam kode atau bahasa yang dimengerti oleh mesin komputer dengan menggunakan bahasa pemograman Java. Pada tahap ini pula Algoritma yang akan digunakan dapat diimplementasikan.

e. System Testing

Pada tahap ini akan dilakukan pengujian untuk mendapatkan kesimpulan apakah permainan sudah cukup bagus atau masih terdapat kekurangan. Pengujian dilakukan menggunakan kuisioner dan meminta beberapa orang untuk mencoba memainkan game ini.

f. System Maintenance

(18)

1.6 Sistematika Penulisan

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

BAB I PENDAHULUAN

Bab ini berisi uraian latar belakang masalah, rumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, tahap pengumpulan data, model pengembangan perangkat lunak dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini menguraikan tentang teori-teori yang digunakan untuk marancang dan membangun aplikasi game Gatotkaca Evolution. Mulai dari pengertian Game dan penjelasannya,

sejarah Gatotkaca, penjelasan Algoritma Brute Force, dan penjelasan tools yang dipakai dalam pembuatan Game.

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelaskan analisis terhadap seluruh spesifikasi sistem yang mencakup masalah dalam game Gatotkaca Evolution. Menganalisis Game sejenis yang sudah ada, menganalisis game yang akan dibangun mulai dari analisa kebutuhan non-fungsional dan analisa kebutuhan non-fungsional.

BAB IV IMPLEMENTASI DAN PENGUJIAN

(19)

merupakan pengujian secara langsung terhadap pengguna menggunakan kuesioner.

BAB V KESIMPULAN DAN SARAN

(20)

9

BAB II

LANDASAN TEORI

2.1 Game

Dalam bagian ini akan dibahas mengenai definisi Game, klasifikasi Game berdasarkan genre-nya yang terdiri dari Role Playing Game, First Person Shooting, Third Person Shooter, Strategy, Simulation, Tycon, Racing, Action

Adventure, Arcade, Fighting Game, Sport.

2.1.1 Pengertian Game

Dalam kamus bahasa Indonesia “Game” adalah permainan. Permainan

(21)

2.1.2 Klasifikasi Game

Klasifikasi Game berdasarkan genre-nya terbagi menjadi 10 jenis, yaitu Board Game, Arcade, Action, Strategy, Shooting, Fighting, Racing, Simulation,

Real Time Strategy, Role Playing Game, Masive Multiplayer Online [6].

1. Board Game

Board game atau dapat kita istilahkan sebagai “permainan papan”.

Pada jenis game ini, pemain diberikan sebuah tampilan yang berisi tentang masalah untuk diselesaikan. Contoh dari game ini antara lain : Pipe dream, Catur, permainan kartu dan sebagainya.

2. Arcade

Game bertipe arcade merupakan game yang menguji kecepatan

tangan pemainnya. Pada permainan bertipe arcade, semakin tinggi level permainan, permainan akan berjalan semakin cepat dan sulit. Contoh dari game bertipe arcade adalah zuma, pacman, Arcanoid dan sebagainya.

3. Action

Berbeda dengan game bertipe arcade, game bertipe action menjadikan pemain mengendalikan karakter utama dalam game tersebut melakukan beberapa kegiatan seperti melompat, menembak dan sebagainya. Contoh dari game bertipe action adalah super mario, petualangan paddle pop dan sebagainya.

4. Shooting

Game bertipe shooting sebagian besar menggunakan mouse

sebagai alat pengendalinya. Pada game ini pemain seolah-olah berperan sebagai penembak atau pemain mengendalikan seorang penembak. Contoh game bertipe shooting adalah Duck Hunt, Counter Strike dan sebagainya.

5. Fighting

Game bertipe fighting pada dasarnya sama dengan game bertipe

action, hanya saja game bertipe fighting pemain mengendalikan sebuah

(22)

6. Racing

Game bertipe racing pada dasarnya adalah sebuah permainan

menggerakkan kamera. Pemain diberikan sebuah kendaraan atau sejenisnya untu menempuh rute tertentu. Contoh dari game bertipe racing adalah Need For Speed.

7. Simulation

Game bertipe simulasi adalah sebuah game yang mensimulasikan

suatu kegiatan yang sesungguhnya. Contoh dari game bertipe simulasi adalah tycoon, simulator pesawat, burger empire dan sebagainya.

8. Real Time Strategy

Game bertipe RTS memposisikan pemain sebagai seorang pemimpin yang mengatur sesuatu (bisa berupa pasukan, koloni, kerajaan dan sebagainya). Contoh dari game bertipe RTS antara lain war commander, empire earth dan sebagainya.

9. Role Playing Game

Pada game bertipe RPG pemain memerankan sebuah karakter dalam game. Berbeda dengan game bertipe action, pada game RPG hal yang diutamakan adalah cerita dalam game. Selain itu di dalam game bertipe RPG biasanya terdapat subgame dengan tipe lain. Contoh game RPG adalah Zelda, Megaman dan sebagainya.

10. MMO

(23)

2.2 Wayang

Dalam bagian ini akan dibahas mengenai penjelasan tentang kesenian wayang yang menjadi kebudayaan tradisional di Indonesia dan sejarah Gatotkaca dari mulai beliau lahir hingga wafat di medan perang.

2.2.1 Penjelasan Kesenian Wayang

Asal-usul dan perkembangan wayang tidak tercatat secara akurat seperti sejarah. Namun orang selalu ingat dan merasakan kehadiran wayang dalam kehidupan masyarakat. Wayang akrab dengan masyarakat sejak dahulu hingga sekarang, karena memang wayang merupakan salah satu buah usaha akal budu bangsa Indonesia. Wayang tampil sebagai seni budaya tradisional, dan merupakan puncak budaya daerah.

Periodisasi perkembangan budaya wayang bermula ketika nenek moyang bangsa Indonesia masih menganut animisme dan dinamisme. Dalam alam kepercayaan animisme dan dinamisme ini diyakini roh orang yang sudah meninggal masih tetap hidup, dan semua benda itu bernyawa serta memiliki kekuatan roh-roh itu bisa bersemayam di kayu-kayu besar, batu, sungai, gunung dan lain-lain.

(24)

2.2.2 Sejarah Gatotkaca

Gatotkaca adalah putra dari Bima dan Arimbi. Karena menurun dari wujud ibunya, maka separuh badannya merupakan raksasa yang mana hal ini banyak memberi kesaktian dan membuat dirinya menjadi seorang ksatria penting di medan perang. Pada masa kecil Gatotkaca, yang bernama Bambang Tetuka dijadikan jago para Dewa untuk menghadapi penyerang nirwana. Gatotkaca lalu dimasukkan oleh batara Narada ke kawah Candradimuka bersama dengan berbagai pusaka baja kahyangan, sehingga saat keluar dari kawah, Gatotkaca yang tadinya berwujud raksasa berubah menjadi ksatria yang gagah.

Gatotkaca lalu menjadi raja menggantikan ibunya di negara Pringgondani. Gatotkaca menikah dengan Dewi Pergiwa dan mempunyai putra bernama Sasikirana. Dari istri yang lain, Ahilawati, Gatotkaca memiliki anak bernama Barbarika. Gatotkaca memiliki beberapa ajian yaitu Aji Narantaka, Aji Brajadenta, Aji Brajamusti. Selain itu, dia menjadi penanggung jawab keamanan udara di kerajaan amarta, karena kemampuannya yang bisa terbang.

(25)

2.3 Brute-Force

Algoritma brute force merupakan salah satu algoritma pemecahan masalah dengan strategi solusi langsung (direct solution strategies). Dengan kata lain algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way). Brute force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan [9].

Kelemahan Algoritma Brute Force yaitu lemah dalam sisi penggunaan memori pada komputer jika data yang diinginkan berada dalam titik tengah ke atas (> n/2). Yang dimaksud dengan titik tengah ke atas yaitu titik dimana ketika data yang akan dicari berjumlah 10.000 dan brute force melakukan perulangan pencarian data lebih dari 10.000/2 = 5.000 kali. Brute Force menjadi sangat efektif ketika data yang akan dicari berada pada titik

tengah ke bawah ( < n/2 ).

Implementasi Algoritma Brute Force dalam pencocokan pola string sederhana dengan memeriksa dan membandingkan Pattern yang dicari dengan Pattern yang ada di String. Bila hasil cocok, maka program melakukan keluaran

(26)
(27)

Maka cara kerja Algoritma Brute Force dijelaskan pada gambar berikut ini :

Gambar 2.1. Cara kerja Algoritma Brute Force

Penyelesaian pada algoritma Brute-Force dalam pembuatan game terbilang cukup mudah dipahami. Perbandingan posisi dan menentukan langkah selanjutnya [11]. Algoritma :

1. Cek apakah tujuan ada disebelah kanan atau tidak, 2. Jika ya, bergerak ke kanan,

3. Jika tidak, bergerak ke kiri,

4. Cek apakah tujuan ada disebelah atas atau tidak, 5. jika ya, bergerak ke atas,

(28)

Karakteristik dari Algoritma Brute-Force antara lain :

1. Algoritma Brute-Force umumnya tidak “cerdas” dan tidak mangkus, karena ia membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang-kadang algoritma Brute-Force disebut juga algoritma naif.

2. Algoritma Brute-Force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola-pola yang mendasar, keteraturan, atau trik-trik khusus, biasanya akan membantu dalam menemukan algoritma yang lebih cerdas dan lebih mangkus.

3. Untuk masalah yang ukurannya kecil, kesederhanaan Brute-Force biasanya lebih diperhitungkan daripada ketidakmangkusannya

4. Algoritma Brute-Force seringkali lebih mudah diimplementasikan daripada algoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadang algoritma Brute-Force dapat lebih mangkus.

2.4 Tools

Pada sub bab ini akan dijelaskan tools yang digunakan dalam Pembangunan Game 2D Gatotkaca Evolution ini antara lain penjelasan mengenai OOP, UML, Java, Java SDK dan Eclipse.

2.4.1 Objek Oriented Programing

(29)

Keuntungan menggunakan metodologi berorientasi objek adalah :

1. Meningkatkan produktivitas karena kelas dan objek yang ditemukan dalam suatu masalah masih dapat dipakai ulang untuk masalah lainnya yang melibatkan objek tersebut.

2. Kecepatan pengembangan karena sistem yang dibangun dengan baik dan benar pada saat analisis dan perancangan akan menyebabkan berkurangnya kesalahan pada saat pengkodean.

3. Kemudahan pemeliharaan karena dengan model objek, pola-pola yang cenderung tetap dan stabil dapat dipisahkan dan pola-pola yang mungkin sering berubah-ubah.

4. Adanya konsistensi karena sifat pewarisan dan penggunaan notasi yang sama pada saat analisis, perancangan maupun pengkodeaan.

5. Meningkatkan kualitas perangkat lunak karena pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya konsistensi pada saat pengembangannya, perangkat lunak yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.

2.4.2 Unified Modeling Language (UML)

Unified Modeling Language (UML) adalah bahasa pemodelan standar.

(Chonoles, 2003: bab 1) mengatakan sebagai bahasa, berarti UML memiliki sintaks dan semantik. UML bukan hanya sekedar diagram, tetapi juga menceritakan konteksnya. UML diaplikasikan antara lain untuk :

1. Merancang perangkat lunak

2. Sarana komunikasi antara perangkat lunak dengan proses bisnis 3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa

yang diperlukan sistem

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

(30)

mengaplikasikan beragam sistem. Intinya, UML merupakan alat komunikasi yang konsisten dalam mensuport para pengembang sistem [13].

UML menyediakan sembilan jenis diagram, antara lain :

1. Diagram Kelas : diagram ini memperlihatkan himpunan kelas-kelas, antarmuka-antarmuka, kolaborasi-kolaborasi, serta relasi-relasi.

Gambar 2.2. Diagram Kelas

(31)

Gambar 2.3. Diagram Paket

3. Diagram Use-Case : diagram ini memperlihatkan himpunan use-case dan aktor-aktor.

(32)

4. Diagram Sequence : diagram ini adalah diagram interaksi yang menekankan pada pengiriman pesan dalam suatu waktu tertentu.

Gambar 2.5. Diagram Sequence

5. Diagram Komunikasi : diagram ini menekankan organisasi struktural dari objek-objek yang menerima serta mengirim pesan.

Gambar 2.6. Diagram Komunikasi

Pemain MenuUtama PlayMenu

1 : permainan

2 : tombol play menu()

(33)

6. Diagram Statechart : diagram ini memperlihatkan keadaan-keadaan pada sistem, memuat status, transisi, kejadian serta aktivitas.

Gambar 2.7. Diagram Statechart

7. Diagram Aktivitas : diagram ini adalah tipe khusus dari diagram status yang memperlihatkan aliran dari suatu aktivitas ke aktivitas lainnya dalam suatu sistem.

Gambar 2.8. Diagram Aktivitas

Pemain Sistem

Memilih tombol Play Menu Menampilkan Menu Utama

start

Menampilkan halaman Play Menu

(34)

8. Diagram Komponen : diagram ini memperlihatkan organisasi serta kebergantungan sistem/perangkat lunak pada komponen-komponen yang telah ada sebelumnya.

Gambar 2.9. Diagram Komponen

9. Diagram Deployment : diagram ini memperlihatkan konfigurasi saat aplikasi dijalankan.

(35)

2.4.3 Java

Java merupakan bahasa murni object oriented. Dalam Java struktur program berada di dalam class. Java memiliki syntax yang pada dasarnya sama dengan bahasa C/C++, namun Java lebih sederhana karena kemampuan multiple inheritance, overload operator, preprocessor, serta pointer telah dihilangkan di

dalam bahasa Java. Java adalah bahasa multi-platform yang artinya dapat dijalankan oleh bermacam-macam platform dengan sistem operasi yang berbeda-beda. Bahasa Java juga mendukung multithreading yaitu program dapat dibuat untuk dijalankan oleh thread tertentu [14].

Pada dasarnya terdapat tiga garis besar kelompok program yang dapat dibuat menggunakan bahasa Java, yaitu :

1. Applet sering disebut sebagai aplikasi mini. 2. Aplikasi Java, dibagi menjadi :

a. Aplikasi GUI (Graphical User Interface) yaitu aplikasi yang tampilannya memakai grafik. Aplikasi ini dapat dijalankan di komputer lokal.

b. Aplikasi Command-Line yaitu aplikasi yang tampilannya sebatas teks.

3. Package atau disebut juga library Java. Package sendiri tidak untuk dijalankan, ia hanya menyediakan sekumpulan class-class Java yang dianggap berguna dan umum dipakai kembali.

2.4.4 Java 2 Software Development Kit (Java SDK)

Java 2 SDK adalah satu set perangkat lunak yang digunakan untuk manajemen dan membangun berbagai macam aplikasi Java [14]. Java 2 SDK mempunyai file-file berupa tool dasar, diantaranya :

1. Compiler bernama javac.

2. Launcher atau interpreter untuk menjalankan aplikasi Java bernama java. 3. Debugger Java bernama jdb.

(36)

6. Generator untuk dokumentasi API bernama javadoc. 7. Manajer file-file JAR (Java Archive) bernama jar. 8. Utility untuk mendeteksi konflik Jar bernama extcheck. 9. Generator file header dan stub bernama javah.

2.4.5 Eclipse IDE

Eclipse merupakan komunitas open source yang bertujuan menghasilkan

platform pemrograman terbuka. Eclipse terdiri dari framework yang dapat

dikembangkan lebih lanjut, peralatan bantu untuk membuat dan memanage software sejak awal hingga diluncurkan. Platform Eclipse didukung oleh

ekosistem besar yang terdiri dari vendor teknologi, start-up inovatif, universitas, riset institusi serta individu. Banyak orang mengenal Eclipse sebagai IDE (integrated development environment) untuk bahasa Java, tapi Eclipse lebih dari sekedar IDE untuk Java [15]. Komunitas Eclipse memiliki lebih dari 60 proyek open source. Proyek-proyek ini secara konsep terbagi menjadi 7 categori :

1. Enterprise Development

2. Embedded and Device Development 3. Rich Client Platform

4. Rich Internet Applications 5. Application Frameworks

6. Application Lifecycle Management (ALM) 7. Service Oriented Architecture (SOA)

(37)

2.4.6 Slick2D

Slick2D adalah multi-platform library untuk pengembangan game dua dimensi yang berada di bawah naungan LWJGL(Light-Weight Java Game Library). Slick2D menyederhanakan proses pengembangan game seperti loop, rendering, updating, frame setup dan pembuatan basis permainan. Slick2D juga

menawarkan beberapa fitur yang LWJGL tidak berikan, seperti pembuatan partikel dan integrasi dengan Tiled. Pengembang dari semua tingkatan dapat menggunakan library Slick2D, karena kesederhanaan yang tidak dapat ditemukan disebagian besar library lainnya, sehingga seseorang yang tidak memiliki pengetahuan teknis dalam membuat game pun terbantu dengan library ini jika ingin belajar membuat game [16].

2.4.7 Adobe Photoshop

Adobe Photoshop adalah software pengolah foto yang sangat populer dan telah banyak para pengguna program ini yang mengakui kehebatan dari Adobe Photoshop. Dengan Photoshop kita dapat memamnipulasi sebuah foto agar terlihat lebih menarik dan mengesankan, dengan fasilitas-fasilitas yang ada pada Photoshop, kita juga dapat menggabung foto serta memberikan efek-efek khusus untuk mempercantik tampilan foto.

Tampilan lembar kerja Photoshop terdiri dari Menu Bar, Panel Control dan Panel Tools. Menu Bar adalah baris paling atas yang berisi perintah yang disediakan oleh sebuah program yang mendukung kinerja dari program tersebut. Panel Control adalah bagian yang berisi sekumpulan tombol atau pilihan yang

(38)
(39)

27

BAB III

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem yang utuh kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan - perbaikannya.

3.1.1 Analisis Game Sejenis yang Sudah Ada

Sebelum merancang game yang akan dibuat, terlebih dahulu dilakukan analisis pada game sejenis yang sudah ada. Ini bertujuan agar game yang sudah dibuat nanti memiliki solusi dari permasalahan game yang sudah ada.

Game yang memiliki tipe permainan yang hampir sama dengan Game 2D Gatotkaca Evolution sudah ada beberapa, diantaranya Game Plane Fighter Menggunakan Flash [16], Fighter Plane Using Python [17], Game hybrid shooter side-scrolling destroyer Garuda [18]. Setelah melakukan observasi terhadap tiga

game tersebut, didapat kesimpulan seperti yang bisa dilihat pada tabel III.1

Tabel 3.1. Analisis Game yang Sudah Ada

Nama Game Kelebihan Kekurangan Tampilan

Plane Fighter

- Terdapat menu pengaturan suara

- Terdapat simpan High Score

- Efek animasi belum maksimal

(40)

3.1.2 Analisis game yang akan dibangun

Game yang akan dibangun berupa game Arcade dengan menggunakan karakter utamanya yaitu tokoh perwayangan Gatotkaca. Game ini dibangun sebagai sarana untuk melestarikan tokoh Gatotkaca dan menciptakan karakter superhero asal Indonesia melalui aplikasi game. Dengan grafik tampilan yang cukup halus, efek-efek animasi yang digunakan dan setiap level yang berbeda baik tingkat kesulitannya maupun lokasinya, diharapkan dapat menjadi alternatif solusi dari permasalahan yang ada di game sejenis yang sudah ada.

Fitur-fitur yang akan dibuat pada game ini : 1. Game Arcade

2. Menggunakan Gatotkaca sebagai karakter utama 3. Efek animasi

4. Setiap level mengambil lokasi di kota-kota Indonesia

3.1.2.1 Storyline

Seorang Mahasiswa yang bernama Gatot melakukan pendakian ke Gunung Jamurdipa bersama kawan-kawannya. Namun dalam perjalanan, Gatot terpisah dari rombongannya. Hari sudah mulai gelap namun Gatot belum juga bertemu dengan kawan-kawannya. Tiba-tiba saja Gatot melihat Gamma Bros

- Terdapat efek ledakan

- Tampilan game kurang menarik

- Efek animasi masih kurang

Cloud Soldier

- Terdapat simpan High Score

(41)

sebuah benda yang bersinar terang. Gatotpun mengambil benda tersebut yang ternyata adalah pusaka mastaba peninggalan Raden Gatotkaca. Kekuatan Gatotkaca yang terdapat dalam pustaka mastaba akhirnya masuk ke dalam tubuh Gatot yang membuat Gatot memiliki kekuatan super.

Di lain tempat, seorang ilmuwan yang memiliki ambisi menguasai Indonesia, berusaha menciptakan mahluk yang memiliki kekuatan super yang akan ia gunakan untuk menaklukan kota-kota besar di Indonesia. Gatot yang mendengar hal itu, berusaha untuk menghentikan niat ilmuwan tersebut. Namun, ilmuwan jahat sudah terlanjur melepaskan mahluk ciptaannya ke beberapa kota besar di Indonesia. Gatotpun harus bekerja keras untuk menghancurkan mahluk-mahluk ciptaan ilmuwan jahat itu.

1. Level 1

Pemain akan berada di Kota Jakarta dengan misi menghancurkan musuh. Setelah berhasil mengalahkan musuh sesuai jumlah yang telah ditentukan maka pemain dapat melanjutkan ke level berikutnya.

2. Level 2

Sama seperti level 1, dimana pemain harus menghancurkan musuh sesuai jumlah yang ditentukan untuk melanjutkan ke level 3, namun karakter NPC berbeda jenisnya. Tingkat kesulitannya pun berbeda dengan level 1. Selain itu, lokasi pertempuran di level 2 berada di Kota Yogyakarta.

3. Level 3

Level ini merupakan level terakhir pada game 2D Gatotkaca Evolution. Misinya pun sama seperti level 1 dan level 2, pada level terakhir ini lokasi pertempuran berada di kota Bandung.

3.1.2.2 Pelevelan

(42)

1. Musuh

Semakin tinggi level, maka jenis musuh berbeda dan akan bertambah kuat sehingga permainan menjadi lebih sulit. Jenis – jenis musuh yang terdapat dalam game ini adalah :

a. RoboKaca b. RoboCakil c. Rahwana d. Raksasa e. ButoCakil f. Naga g. Kurawa h. Bos 2. Lokasi

Setiap level memiliki lokasi yang berbeda-beda. Pada level 1 lokasi akan berada di Kota Jakarta dengan mengambil latar Pantai Ancol. Level 2 lokasi berpindah ke Kota Yogyakarta dengan mengambil latar Candi Prambanan dan tugu Yogyakarta. Sedangkan di level 3 yaitu level terakhir lokasi berada di Kota Bandung dengan mengambil latar Gedung Sate.

3.1.2.3 Gameplay

Gameplay permainan ini adalah menghancurkan mahluk ciptaan

(43)

3.1.2.4 Scoring

Pada game ini, score akan bertambah setiap kali pemain berhasil menghancurkan musuh. Setiap musuh memiliki point yang berbeda-beda apabila hancur. Point terkecil adalah 5 sedangkan point terbesar adalah 20. Pemain dapat melanjutkan ke level berikutnya apabila target menghancurkan musuh terpenuhi.

3.1.3 Analisis Algoritma

Algoritma yang dipakai pada game Gatotkaca Evolution ini adalah Algoritma Brute Force. Dimana Algoritma ini digunakan pada karakter NPC agar bergerak mengarah kepada karakter pemain. Untuk sampai pada posisi karakter pemain, maka NPC harus meng-copy posisi karakter pemain. Dalam hal ini, jarak antara karakter pemain dan NPC merupakan Array. Oleh karena itu, maka untuk menemukan posisi karakter pemain, posisi NPC harus dikurangi dengan setiap array.

Library yang digunakan adalah Slick2D, dimana di dalamnya terdapat class Vector2f. Dalam class Vector2f terdapat 2 sumbu yaitu x dan y. Nilai x dan y sesuai dengan inputan. Dalam class Vector2f terdapat method copy dan sub(subtract). Method copy digunakan suatu kelas untuk meng-copy vector yang dimiliki oleh kelas lainnya. Pada game ini method copy berfungsi untuk menentukan posisi karakter pemain yang akan dituju oleh karakter musuh. Method sub(subtract) atau pengurangan digunakan untuk fungsi pengurangan antara masing-masing sumbu x dan y yang ada pada 2 kelas. Penjelasannya pada tabel berikut :

Tabel 3.2. Penjelasan Algoritma Brute Force pada game

Pseudocode penjelasan

Iterator<Enemy> i = enemys.iterator(); Penginisialisasian

array

(44)

{

Enemy e = i.next();

If(e.getPos().copy().sub(p.getPos()).lengthSquared() < 5)

{

p.lives -= 2; i.remove; }

}

terdapat elemen array, jika ada kurangi posisi enemy dengan posisi player. Collision akan terjadi jika nilai posisi enemy dan posisi player kurang dari 5, maka darah player dikurangi 2 dan enemy dihapus.

Gambar 3.1. Cara kerja Algoritma Brute Force pada pencocokan pola String

(45)

sesuai perintah, sedangkan bila hasil belum ditemukan maka program akan melakukan perulangan hingga hasil ditemukan.

mulai

I = 0 (Inisialisasi array)

E.pos = p.pos i.hasnext

E = 1 Ya

LengthSquared < 5

E = e + 1 Tidak

Tidak

Ya

I.next Tidak

E.remove Ya

Selesai I = E

Gambar 3.2. Flowchart Algoritma Brute Force pada game

Inti dari Algoritma Brute Force sendiri yaitu penyelesaian masalah dengan mencoba kemungkinan dari awal hingga akhir secara terurut. Perhitungannya dimulai dari sumbu x lalu dilanjutkan dengan sumbu y. urutannya dapat dilihat sebagai berikut :

1. Posisi awal musuh (8,5) Posisi awal pemain (1,1) X = 8 – 1 = 7 hasil (7,5)

2. Posisi musuh (7,5) Posisi pemain (1,1) Y = 5 – 1 = 4 hasil (7,4)

3. Posisi musuh (7,4) Posisi pemain (1,1) X = 7 – 1 = 6 hasil (6,4)

(46)

5. Posisi musuh (6,3) Posisi pemain (1,1) X = 6 – 1 = 5 hasil (5,3)

6. Posisi musuh (5,3) Posisi pemain (1,1) Y = 3 – 1 = 2 hasil (5,2)

7. Posisi musuh (5,2) Posisi pemain (1,1) X = 5 – 1 = 4 hasil (4,2)

8. Posisi musuh (4,2) Posisi pemain (1,1) Y = 2 – 1 = 1 hasil (4,1) titik Y ditemukan 9. Posisi musuh (4,1) Posisi pemain (1,1)

X = 4 – 1 = 3 hasil (3,1)

10.Posisi musuh (3,1) Posisi pemain (1,1) X = 3 – 1 = 2 hasil (2,1)

11.Posisi musuh (2,1) Posisi pemain (1,1)

X = 2 – 1 = 1 hasil (1,1) posisi pemain ditemukan

0 1 2 3 4 5 6 7 8

0

1 pemain

2

3

4

5 musuh

(47)

3.1.4 Analisis Kebutuhan Non-Fungsional

Analisis non-fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi ini juga meliputi elemen atau komponen-komponen apa saja yang dibutuhkan untuk sistem yang akan dibangun sampai dengan sistem tersebut diimplementasikan. Analisis kebutuhan ini juga menentukan spesifikasi masukan yang diperlukan sistem keluaran yang akan dihasilkan sistem dan proses yang dibutuhkan untuk mengolah masukan sehingga menghasilkan suatu keluaran yang diinginkan.

Pada analisis kebutuhan sistem non-fungsional ini dijelaskan analisis kebutuhan perangkat lunak, analisis kebutuhan perangkat keras, dan analisis pengguna.

3.1.4.1 Analisis Kebutuhan Perangkat Lunak

Perangkat keras komputer tidak berarti tanpa perangkat lunak, begitu juga sebaliknya. Jadi perangkat lunak dan perangkat keras saling mendukung satu sama lain. Perangkat keras hanya berfungsi jika diberikan instruksi – intruksi kepadanya. Instruksi - instruksi inilah yang disebut dengan perangkat lunak.

1. Dari sisi pengembang

Perangkat lunak yang digunakan untuk mengembangkan game ini adalah sebagai berikut:

1. Sistem operasi Windows 7

2. Eclipse sebagai Integrated Development Environment (IDE) nya

3. JDK Versi 7

(48)

2. Dari sisi pemain

Untuk menjalankan game Gatotkaca Evolution ini dibutuhkan perangkat lunak, antara lain:

1. Sistem operasi Windows, Mac OS, atau Linux 2. JDK Versi 6 ke atas

3. Java Plugin

3.1.4.2 Analisis Kebutuhan Perangkat Keras

Agar aplikasi dapat berjalan dengan baik, maka dibutuhkan perangkat keras yang sesuai dengan kebutuhan aplikasi. Di bagian ini akan dijelaskan analisis kebutuhan perangkat keras dari sisi pengembang dan dari sisi pemain.

1. Dari sisi pengembang

Perangkat keras yang digunakan untuk membangun game ini adalah sebagai berikut :

1. Prosesor 2 GHz 2. Memori 2 GB

3. Space kosong di harddisk 5 GB 4. VGA card 512 MB

5. Monitor 1280 x 900 6. Mouse dan keyboard 7. Speaker

2. Dari sisi pemain

Spesifikasi perangkat keras yang direkomendasikan agar dapat menjalankan game Gatotkaca Evolution ini adalah sebagai berikut : 1. Prosesor dengan kecepatan 1.8 Ghz

2. Memori 256 Mb

3. Space kosong di harddisk 15 MB 4. VGA card 256 MB

5. Monitor

(49)

7. Speaker

3.1.4.3 Analisis Pengguna

Analisis pengguna merupakan analisis terhadap pengguna yang akan menggunakan aplikasi yang telah dibangun. Oleh karena itu, dibuatlah analisis pengguna dengan kriteria minimal yang harus dimiliki oleh pengguna antara lain sebagai berikut :

1. Bisa mengoperasikan komputer

2. Biasa menggunakan sistem operasi Windows

3. Pernah memainkan game yang sejenis dengan game Gatotkaca Evolution 4. Bisa membaca dengan lancar

3.1.5 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem agar sistem dapat berjalan dengan baik sesuai kebutuhan. Pada bagian ini akan dibahas tentang use case diagram, activity diagram, class diagram, dan sequence diagram.

3.1.5.1 Use Case Diagram

Pada sub bab berikut ini dijelaskan bagaimana Use Case yang terjadi dalam pembangunan game ini yang dimodelkan dalam sekumpulan Use Case dan Actor dan bagaimana hubungan-hubungannya yang akan

(50)

Gambar 3.4. Use Case Diagram

1. Actor Definiton

Actor Definiton berfungsi untuk menjelaskan actor yang terdapat

pada Use Case Diagram dan menggambarkan pihak-pihak yang berperan dalam sistem. Pemain berperan sebagai actor dengan aktivitas memainkan game.

2. Use Case Definition

Use Case definition berfungsi untuk menjelaskan fungsi Use Case

yang terdapat pada Use Case Diagram dan menjelaskan aktivitas yang disiapkan oleh sistem. Use Case Definition diterangkan pada tabel

Tabel 3.3. Use Case Definition

No Use Case Deskripsi

1 Memulai permainan Proses untuk memainkan game

2 Menampilkan bantuan Proses untuk menampilkan menu bantuan 3 Menampilkan credits Proses untuk menampilkan menu credits 4 Keluar dari aplikasi Proses untuk keluar dari aplikasi

5 Memainkan level 1 Proses untuk menampilkan dan memainkan level 1

System

Pemain

Menampilkan credits

Memulai permainan Memainkan level 1

Memainkan level 2

Memainkan level 3 <<include>>

<<include>> <<include>>

Menampilkan bantuan <<include>>

(51)

6 Memainkan level 2 Proses untuk menampilkan dan memainkan level 2

7 Memainkan level 3 Proses untuk menampilkan dan memainkan level 3

3. Use Case Scenario

Use Case Scenario mendeskripsikan urutan langkah-langkah dalam

proses bisnis baik yang dilakukan aktor terhadap sistem maupun yang dilakukan oleh sistem terhadap aktor. Berdasarkan use case diagram pada gambar di atas maka use case scenario untuk aplikasi yang dibangun akan dijelaskan sebagai berikut.

a. Use Case Scenario Memulai permainan

Use Case Scenario dari Use Case Memulai permainan dijelaskan

pada tabel di bawah ini.

Tabel 3.4. Use Case Scenario Memulai permainan

Identifikasi

Nomor 1

Nama Memulai permainan

Tujuan Proses yang dilakukan pemain untuk mulai

memainkan permainan

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di menu utama

Kondisi Aktor Reaksi Sistem

1. Memilih tombol play menu

2. Sistem menampilkan menu play menu

(52)

b. Use Case Scenario menampilkan bantuan

Use Case Scenario untuk Use Case menampilkan bantuan

dijelaskan pada tabel di bawah ini.

Tabel 3.5. Use Case Scenario menampilkan bantuan

Identifikasi

Nomor 3

Nama Menampilkan menu bantuan

Tujuan Proses yang dilakukan pemain untuk

menampilkan menu bantuan

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di menu utama

Kondisi Aktor Reaksi Sistem

1. Memilih tombol bantuan

2. Sistem menampilkan menu bantuan 3. Memilih tombol kembali

4. Sistem menampilkan menu utama

Kondisi Akhir Menampilkan halaman menu bantuan

dan apabila pemain memilih tombol kembali maka sistem akan menampilkan menu utama

c. Use Case Scenario menampilkan credits

Use Case Scenario untuk Use Case menampilkan credits dijelaskan

(53)

Tabel 3.6. Use Case Scenario menampilkan credits

Identifikasi

Nomor 3

Nama Menampilkan menu credits

Tujuan Proses yang dilakukan pemain untuk

menampilkan menu credits

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di menu utama

Kondisi Aktor Reaksi Sistem

1. Memilih tombol credits

2. Sistem menampilkan menu credits 3. Memilih tombol kembali

4. Sistem menampilkan menu utama

Kondisi Akhir Menampilkan halaman menu credits dan

apabila pemain memilih tombol kembali maka sistem akan menampilkan menu utama

d. Use Case Scenario keluar dari aplikasi

Use Case Scenario untuk Use Case keluar dari aplikasi dijelaskan

pada tabel di bawah ini.

Tabel 3.7. Use Case Scenario keluar dari aplikasi

Identifikasi

Nomor 4

Nama Keluar dari aplikasi

Tujuan Proses yang dilakukan pemain untuk

keluar dari aplikasi

(54)

Skenario Utama

Kondisi Awal Pemain berada di menu utama

Kondisi Aktor Reaksi Sistem

1. Memilih tombol keluar

2. Sistem menutup aplikasi

Kondisi Akhir Sistem menutup aplikasi

e. Use Case Scenario menampilkan level 1

Use Case Scenario untuk Use Case menampilkan level 1 dijelaskan

pada tabel di bawah ini.

Tabel 3.8. Use Case Scenario menampilkan level 1

Identifikasi

Nomor 4

Nama Memainkan level 1

Tujuan Proses yang dilakukan pemain untuk

menampilkan level 1

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di halaman menu level

Kondisi Aktor Reaksi Sistem

1. Memilih tombol main

2. Sistem menampilkan scene 1 3. Sistem menampilkan tombol main

dan lanjut 4. Memilih tombol lanjut

5. Sistem menampilkan scene 2 6. Sistem menampilkan tombol main

dan lanjut 7. Memilih tombol lanjut

(55)

9. Sistem menampilkan tombol main dan lanjut

10.Memilih tombol lanjut

11.Sistem menampilkan scene 4 12.Sistem menampilkan tombol main

dan lanjut 13.Memilih tombol lanjut

14.Sistem menampilkan scene 5 15.Sistem menampilkan tombol main 16.Memilih tombol main

17.Sistem menampilkan level 1 18.Mengendalikan karakter

19.Karakter bergerak 20.Cek power dan darah

21.Jika peluru musuh mengenai pemain maka darah pemain berkurang 22.Jika musuh menabrak pemain maka

darah pemain berkurang 23.Jika darah pemain habis maka

sistem menampilkan menu game over dimana pemain bisa memilih

ulangi

24.Jika pemain mendapatkan objek berbentuk kilat maka power bertambah

25.Jika power sudah penuh maka akan muncul bantuan

26.Menyerang musuh

27.Perhitungan score saat berhasil menghancurkan musuh

(56)

29.Menyelesaikan level permainan

30.Jika target menghancurkan musuh sudah tercapai maka pemain dapat lanjut ke level berikutnya

Kondisi Akhir Pemain dapat melanjutkan permainan

ke level berikutnya

f. Use Case Scenario menampilkan level 2

Use Case Scenario untuk Use Case menampilkan level 2 dijelaskan

pada tabel di bawah ini.

Tabel 3.9. Use Case Scenario menampilkan level 2

Identifikasi

Nomor 5

Nama Memainkan level 2

Tujuan Proses yang dilakukan pemain untuk

menampilkan level 2

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di halaman menu level

Kondisi Aktor Reaksi Sistem

1. Sistem menampilkan level 2 2. Mengendalikan karakter

3. Karakter bergerak 4. Cek power dan darah

5. Jika peluru musuh mengenai pemain maka darah pemain berkurang 6. Jika musuh menabrak pemain maka

(57)

7. Jika darah pemain habis maka sistem menampilkan menu game over dimana pemain bisa memilih

ulangi

8. Jika pemain mendapatkan objek berbentuk kilat maka power bertambah

9. Jika power sudah penuh maka akan muncul bantuan

10.Menyerang musuh

11.Perhitungan score saat berhasil menghancurkan musuh

12.Target menghancurkan musuh akan bertambah saat pemain dapat menghancurkan musuh 13.Menyelesaikan level

permainan

14.Jika target menghancurkan musuh sudah tercapai maka pemain dapat lanjut ke level berikutnya

Kondisi Akhir Pemain dapat melanjutkan permainan

ke level berikutnya

g. Use Case Scenario menampilkan level 3

Use Case Scenario untuk Use Case menampilkan level 3 dijelaskan

(58)

Tabel 3.10. Use Case Scenario menampilkan level 3

Identifikasi

Nomor 6

Nama Memainkan level 3

Tujuan Proses yang dilakukan pemain untuk

menampilkan level 3

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di halaman menu level

Kondisi Aktor Reaksi Sistem

1. Sistem menampilkan level 3 2. Mengendalikan karakter

3. Karakter bergerak 4. Cek power dan darah

5. Jika peluru musuh mengenai pemain maka darah pemain berkurang 6. Jika musuh menabrak pemain maka

darah pemain berkurang 7. Jika darah pemain habis maka

sistem menampilkan menu game over dimana pemain bisa memilih

ulangi

8. Jika pemain mendapatkan objek berbentuk kilat maka power bertambah

9. Jika power sudah penuh maka akan muncul bantuan

10.Menyerang musuh

(59)

12.Target menghancurkan musuh akan bertambah saat pemain dapat menghancurkan musuh

13.Jika target menghancurkan musuh sudah tercapai maka sistem akan menampilkan sosok Raja atau musuh terkuat.

14.Menyelesaikan level permainan

15.Sistem menampilkan ending scene 16.Sistem menampilkan tombol main

dan keluar 17.Memilih tombol main

18.Sistem menampilkan level 1 19.Memilih tombol keluar

20.Sistem menutup aplikasi

Kondisi Akhir Sistem menampilkan ending scene dan

menampilkan tombol main dan keluar

3.1.5.2 Activity Diagram

Activity Diagram lebih memfokuskan diri pada eksekusi dan alur

sistem dari pada bagaimana sistem itu dirakit. Diagram ini tidak hanya memodelkan software melainkan memodelkan model bisnis juga. Activity Diagram menunjukan aktivitas sistem dalam bentuk kumpulan aksi-aksi.

Berikut ini Activity Diagram pada game Gatotkaca Evolution.

1. Activity Diagram memulai permainan

(60)

Gambar 3.5. Activity Diagram memulai permainan

2. Activity Diagram menampilkan menu bantuan

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas menampilkan menu bantuan yang dapat dilihat pada gambar berikut ini.

Gambar 3.6. Activity Diagram menampilkan bantuan

Pemain Sistem

Memilih tombol Menu permainan

Menampilkan halaman Menu permainan

end

Pemain Sistem

Memilih tombol Menu permainan

Menampilkan halaman Menu permainan

Memilih tombol Bantuan

Menampilkan halaman Menu Bantuan

(61)

3. Activity Diagram menampilkan menu credits

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas menampilkan menu credits yang dapat dilihat pada gambar berikut ini.

Gambar 3.7. Activity Diagram menampilkan credits

4. Activity Diagram keluar dari permainan

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas keluar dari permainan yang dapat dilihat pada gambar berikut ini.

Pemain Sistem

Memilih tombol credits

Menampilkan halaman menu credits

(62)

Gambar 3.8. Activity Diagram Keluar dari permainan

5. Activity Diagram memainkan level 1

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas memainkan level 1 yang dapat dilihat pada gambar berikut ini.

Pemain Sistem

Memilih tombol Keluar

Menutup Aplikasi

(63)

Gambar 3.9. Activity Diagram memainkanlevel 1

Pemain Sistem

Memilih tombol Menu permainan

Menampilkan halaman Menu permainan

Memilih tombol Main Memilih tombol Kembali

Menampilkan arena permainan

Mulai permainan level 1 Kendalikan karakter

Karakter bergerak

Jalankan AI

Musuh muncul dan bergerak

Cek objek kilat

Cek collision pada 1 objek kilat

Power bertambah ya

Power tetap tidak Karakter menembak

Menghancurkan musuh Score dan target bertambah

Lanjutkan permainan

Cek collision pada peluru musuh

Darah berkurang ya

Darah tetap tidak

Cek darah apakah habis ?

tidak

Game over ya

Menyelesaikan level

(64)

6. Activity Diagram memainkanlevel 2

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas memainkan level 2 yang dapat dilihat pada gambar berikut ini.

Gambar 3.10. Activity Diagram memainkanlevel 2

7. Activity Diagram memainkanlevel 3

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas memainkan level 3 yang dapat dilihat pada gambar berikut ini.

Pemain Sistem

Menampilkan arena permainan level 2

Mulai permainan level 2 Kendalikan karakter

Karakter bergerak

Musuh muncul dan bergerak

Cek objek kilat

Cek collision pada 1 objek kilat Cek collision pada peluru musuh

Score dan target bertambah

Lanjutkan permainan

Cek darah apakah habis ?

ya

(65)

Gambar 3.11. Activity Diagram memainkanlevel 3

3.1.5.3 Class Diagram

Class Diagram adalah inti dari proses pemodelan objek. Class

Diagram menggambarkan struktur dan hubungan antar objek-objek yang ada

pada sistem. Struktur itu meliputi atribut dan method yang ada pada masing-masing class. Di bawah ini merupakan Class Diagram game Gatotkaca Evolution.

Pemain Sistem

Menampilkan arena permainan level 3

Mulai permainan level 3 Kendalikan karakter

Karakter bergerak

Musuh muncul dan bergerak

Cek objek kilat

Cek collision pada 1 objek kilat Cek collision pada peluru musuh

Score dan target bertambah

Lanjutkan permainan

Cek darah apakah habis ?

(66)

54 +init(GameContainer gc, StateBasedGame game): void +render(GameContainer gc, StateBasedGame game, Graphics g): void +update(GameContainer gc, StateBasedGame game, int delta): void +keyPressed(int key, char c): void +isMouseOverPlayButton1() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton() <<create>>+AlienBullet3(pos: Vector2f, dir: Vector2f) <<create>>+AlienBullet3() +init(pos: Vector2f, dir: Vector2f): AlienBullet3 +render(gc: GameContainer, g: Graphics)

#MAX_LIFETIME: int = 1100 #RADIUS_SQARED: int = 400 +DAMAGE: int = 5 -bulletSheet: SpriteSheet -bulletAnimation: Animation <<create>>+Bullet(pos: Vector2f, dir: Vector2f) <<create>>+Bullet() +init(pos: Vector2f, dir: Vector2f): Bullet +update(t: int) +render(gc: GameContainer, g: Graphics) +isAktiv(): boolean +setAktiv(aktiv: boolean)

+collideWith(otherPos: Vector2f, otherRadiusSqared: int): boolean +getDamage(): int

<<create>>+AlienBullet4(pos: Vector2f, dir: Vector2f) <<create>>+AlienBullet4() +init(pos: Vector2f, dir: Vector2f): AlienBullet4 +render(gc: GameContainer, g: Graphics)

AlienBullet -bulletSheet: SpriteSheet -bulletAnimation: Animation <<create>>+AlienBullet(pos: Vector2f, dir: Vector2f) <<create>>+AlienBullet() +init(pos: Vector2f, dir: Vector2f): AlienBullet +render(gc: GameContainer, g: Graphics)

Enemy2Bullet -bulletSheet: SpriteSheet -bulletAnimation: Animation <<create>>+Enemy2Bullet(pos: Vector2f, dir: Vector2f) <<create>>+Enemy2Bullet() +init(pos: Vector2f, dir: Vector2f): Enemy2Bullet +render(gc: GameContainer, g: Graphics)

Credits +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton1() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton1() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton1() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton1() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton2() +Soldier(Vector2f pos, int maxBullets) +render(gc, g): void +init(gc): void +update(gc, t): void +fireBullet(vector2f vec, Bullet b): void +checkBulletCollision(Bullet[] otherBullets): void +Enemy(Vector2f pos, Player p): void +render(gc, g): void +Enemy2(Vector2f pos, Player p): void +render(gc, g): void +EnemyLv2(Vector2f pos, Player p): void +render(gc, g): void +SphareUfo(Vector2f pos, Player p): void +render(gc, g): void +SuicideEnemy(Vector2f pos, Player p): void +render(gc, g): void +Ufo(Vector2f pos, Player p): void +render(gc, g): void +Ufo2(Vector2f pos, Player p): void +render(gc, g): void +Meteor(Vector2f pos, Player p): void +render(gc, g): void +Head(Vector2f pos, Player p): void +render(gc, g): void +PowerUp(Vector2f pos, Player p): void +render(gc, g): void +Soldier2(Vector2f pos, int maxBullets): void +render(gc, g): void +init(gc): void +update(gc, t): void +fireBullet(Vector2f vec, Bullet2 b): void +checkBulletCollision(Bullet2[] otherBullets): void +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton2() +render(gc, game, g): void +update(gc, game, delta): void +enterState() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton1() +render(container, game, g): void +update(container, game, delta): void +isMouseOverPlayButton1() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton1() +render(container, game, g): void +update(container, game, delta): void +isMouseOverPlayButton1() +render(gc, game, g): void +update(gc, game, delta): void +isMouseOverPlayButton1() +render(container, game, g): void +update(container, game, delta): void +isMouseOverPlayButton1() +Soldier3(Vector2f pos, int maxBullets): void +render(gc, g): void +init(gc): void +update(gc, t): void +fireBullet(Vector2f vec, Bullet3 b): void +checkBulletCollision(Bullet3[] otherBullets): void #aktiv: boolean = true #MAX_LIFETIME: int = 1100 #RADIUS_SQARED: int = 400 +DAMAGE: int = 2 -bulletSheet: SpriteSheet -bulletAnimation: Animation <<create>>+Bullet2(pos: Vector2f, dir: Vector2f) <<create>>+Bullet2() +init(pos: Vector2f, dir: Vector2f): Bullet2 +update(t: int) +render(gc: GameContainer, g: Graphics) +isAktiv(): boolean +setAktiv(aktiv: boolean)

+collideWith(otherPos: Vector2f, otherRadiusSqared: int): boolean +getDamage(): int

Bullet4 #pos: Vector2f #dir: Vector2f #lived: int = 0 #aktiv: boolean = true #MAX_LIFETIME: int = 1100 #RADIUS_SQARED: int = 400 +DAMAGE: int = 2 -bulletSheet: SpriteSheet -bulletAnimation: Animation <<create>>+Bullet4(pos: Vector2f, dir: Vector2f) <<create>>+Bullet4() +init(pos: Vector2f, dir: Vector2f): Bullet4 +update(t: int) +render(gc: GameContainer, g: Graphics) +isAktiv(): boolean +setAktiv(aktiv: boolean)

+collideWith(otherPos: Vector2f, otherRadiusSqared: int): boolean +getDamage(): int

Bullet4 #pos: Vector2f #dir: Vector2f #lived: int = 0 #aktiv: boolean = true #MAX_LIFETIME: int = 1100 #RADIUS_SQARED: int = 400 +DAMAGE: int = 2 -bulletSheet: SpriteSheet -bulletAnimation: Animation <<create>>+Bullet4(pos: Vector2f, dir: Vector2f) <<create>>+Bullet4() +init(pos: Vector2f, dir: Vector2f): Bullet4 +update(t: int) +render(gc: GameContainer, g: Graphics) +isAktiv(): boolean +setAktiv(aktiv: boolean)

(67)

3.1.5.4 Sequence Diagram

Sequence Diagram menggambarkan interaksi antar masing-masing

objek pada setiap use case dalam urutan waktu. Interaksi ini berupa pengiriman serangkaian data antar objek-objek yang saling berinteraksi. Sequence Diagram pada game Gatotkaca Evolution terdiri dari sequence

diagram memainkan permainan, sequence diagram menampilkan credits,

sequence diagram menghentikan aplikasi, sequence diagram menampilkan

menu level, sequence diagram menampilkan story, sequence diagram menampilkan menu bantuan, sequence diagram menampilkan level 1, sequence diagram menampilkan level 2 dan sequence diagram menampilkan

level 3. Berikut penjelasan dari masing-masing sequence diagram :

1. Sequence Diagram memulai permainan

Diagram ini menjelaskan interaksi antar partisipan di dalam aktivitas memainkan permainan dalam urutan waktu. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini.

Gambar 3.13. Sequence Diagram memulai permainan

: Pemain

Menu MenuGame

1 : main()

2 : getID()

3 : isMouseOverPlayButton1()

4 : enterState()

(68)

2. Sequence Diagram menampilkan bantuan

Diagram ini menjelaskan interaksi antar partisipan di dalam aktivitas menampilkan bantuan dalam urutan waktu. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini.

Gambar 3.14. Sequence Diagram menampilkan bantuan

3. Sequence Diagram menampilkan credits

Diagram ini menjelaskan interaksi antar partisipan di dalam aktivitas menampilkan credits dalam urutan waktu. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini.

: Pemain

Menu MenuGame Bantuan

1 : main()

2 : getID()

3 : menampilkan menu utama

4 : isMouseOverPlayButton1()

5 : getID()

6 : enterState()

7 : menampilkan play menu

8 : memilih tombol bantuan

9 : isMouseOverPlayButton3()

10 : enterState()

(69)

Gambar 3.15. Sequence Diagram menampilkan credits

4. Sequence Diagram keluar dari aplikasi

Diagram ini menjelaskan interaksi antar partisipan di dalam aktivitas keluar dari aplikasi dalam urutan waktu. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini.

Gambar 3.16. Sequence Diagram keluar dari aplikasi

: Pemain

Menu Credits

1 : main()

2 : getID()

3 : isMouseOverPlayButton3()

4 : enterState()

5 : menampilkan Menu Credits

: Pemain

Menu

1 : main()

2 : getID()

3 : system.exit() 4 : memilih tombol keluar

(70)

5. Sequence Diagram memainkan level 1

Diagram ini menjelaskan interaksi antar partisipan di dalam aktivitas memainkan level 1 dalam urutan waktu. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini.

Gambar 3.17. Sequence Diagram memainkan Level 1

: Pemain

Level1 Player Bullet Enemy EnemyBullet PowerUp HeroChild GameOver

1 : mengendalikan gatotkaca

2 : render()

3 : update()

4 : init()

5 : getInput()

6 : isKeyDown()

7 : gatotkaca bergerak

8 : getInput()

9 : isMouseButtonDown()

10 : menembakkan senjata

11 : checkBulletCollision()

12 : LengthSquared()

13 : score dan target bertambah

14 : darah gatotkaca berkurang

15 : checkBulletCollision()

16 : darah gatotkaca berkurang

17 : lengthSquared()

18 : power bertambah

19 : cekPower()

20 : render()

21 : menampilkan karakter bantuan

22 : die()

23 : reset()

(71)

6. Sequence Diagram memainkan level 2

Diagram ini menjelaskan interaksi antar partisipan di dalam aktivitas memainkan level 2 dalam urutan waktu. Untuk lebih jelasnya dapat dilihat pada gambar di bawah ini.

Gambar 3.18. Sequence Diagram memainkan Level 2

: Pemain

Level1 Player Bullet Enemy EnemyBullet PowerUp SkaterBoy GameOver

1 : mengendalikan gatotkaca

2 : render()

3 : update()

4 : init()

5 : getInput()

6 : isKeyDown()

7 : gatotkaca bergerak

8 : getInput()

9 : isMouseButtonDown()

10 : menembakkan senjata

11 : checkBulletCollision()

12 : LengthSquared()

13 : score dan target bertambah

14 : darah gatotkaca berkurang

15 : checkBulletCollision()

16 : darah gatotkaca berkurang

17 : lengthSquared()

18 : power bertambah

19 : cekPower()

20 : render()

21 : menampilkan karakter bantuan

22 : die()

23 : reset()

Gambar

Gambar 2.2. Diagram Kelas
Gambar 2.3. Diagram Paket
Gambar 3.14. Sequence Diagram menampilkan bantuan
Gambar 3.15. Sequence Diagram menampilkan credits
+7

Referensi

Dokumen terkait

Related to the title, the research questions proposed are; “ How is the biography o f both translators, Muhammad Taqi’ud -din Al-Hilali and Muhammad Muhsin Khan?, How are

[r]

JAMAL’S ENDEAVOR AGAINST THE DEMANDING LIFE IN DANNY BOYLE’S SLUMDOG MILLIONAIRE MOVIE (2008):.. AN INDIVIDUAL

Dalam era globalisasi dimana kondisi persaingan sangat kompetitif, yang menjadi prioritas dalam perusahaan salah satunya adalah kepuasan pelanggan agar perusahaan mampu

Hasil penelitian pelaksanaan bermain ubleg dalam rangka mengembangkan kemampuan motorik halus di Kelompok Bermain Aisyiyah Az Zahra melalui beberapa tahap, yaitu:

Perempuan kurang diharapkan untuk memiliki pekerjaan yang membutuhkan tanggung jawab dibanding laki-laki.*. Perempuan memiliki kemampuan untuk bersikap objektif yang

Proses penyembuhan traumatik yang dilakukan oleh pekerja sosial yang ada di BPRSW (Balai Perlindungan Dan Rehabilitasi Sosial Wanita) terhadap korban KTD

3. Keputusan Bupati Jembrana No. 45/Kepeg/2006 tentang Pemberian Uang Tunjangan Kesejahteraan Berupa Tunjangan Daerah kepada Kepala Daerah dan Wakil Kepala Daerah PemKab Jembrana