SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
ABIDIN SATYA WIRAWAN
10109406
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
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
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
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
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
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.
[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.
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
iv
terdapat kekurangan. Penulis juga berharap agar skripsi ini dapat bermanfaat bagi semua pihak khususnya bagi penulis dan umumnya bagi pembaca.
Bandung, Juli 2014
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.
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.
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
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
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
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
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
merupakan pengujian secara langsung terhadap pengguna menggunakan kuesioner.
BAB V KESIMPULAN DAN SARAN
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
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
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
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.
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.
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
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,
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
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.
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
Gambar 2.3. Diagram Paket
3. Diagram Use-Case : diagram ini memperlihatkan himpunan use-case dan aktor-aktor.
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()
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
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.
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.
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)
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
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
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
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
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
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
{
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
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)
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
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
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
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
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>>
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 ?
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)
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()
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()
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
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()
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()