SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
MOCH IRVAN GUSTIAWAN
10109425
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
v
ABSTRAK ...i
ABSTRACT ...ii
KATA PENGANTAR ...iii
DAFTAR ISI ...v
DAFTAR GAMBAR ...ix
DAFTAR TABEL ...xi
DAFTAR SIMBOL ...xii
DAFTAR LAMPIRAN ...xiv
BAB I PENDAHULUAN ...1
1.1 Latar Belakang Masalah ...1
1.2 Rumusan Masalah ...2
1.3 Maksud dan Tujuan ...2
1.4 Batasan Masalah ...2
1.5 Metodologi Penelitian ...3
1.6 Sistematika Penulisan ...5
BAB II LANDASAN TEORI ...7
2.1 Permaian (Game) ...7
2.1.1 Pengertian Game ...8
2.1.2 Klasifikasi Game ...8
2.1.2.1Berdasarkan Umur Pengguna Permainan Game ...10
2.2 Teknik Penyelesaian Masalah AI (Artificual Intelligence) ...12
2.2.1 Algoritma Pencarian ...13
vi
2.3 Aplikasi Pembangunan Perangkat Lunak ...17
2.3.1 Unified Modeling Language (UML) ...17
2.3.2 Java ...24
2.3.2.1 Karakteristik Java ...25
2.3.3 Adobe Photoshop ...27
2.3.4 Greenfoot ...27
BAB III ANALISIS DAN PERANCANGAN ...29
3.1 Analisis Sistem ...29
3.2 Analisis Masalah ...29
3.3 Analisis Game Sejenis ...29
3.3.1 Meriam Si Pitung ...29
3.3.1.1Alur Permainan Meriam Si Pitung ...30
3.4 Analisis Game yang akan Dibangun ...32
3.4.1 Pengenalan ...32
3.4.2 Storyline ...32
3.4.3 Gameplay ...33
3.4.4 Misi ...33
3.4.5 Sasaran Pemain Dan Kegunaan Game ...34
3.5 Analisis Algoritma ...34
3.5.1 Analisis Algoritma A*(A Star) Pada NPC ...34
3.6 Analisis Kebutuhan Non-Fungsional ...46
3.6.1 Analisis Kebutuhan Perangkat Keras ...46
3.6.2 Analisis Kebutuhan Perangkat Lunak ...47
3.6.3 Analisis Kebutuhan Perangkat Pikir ...47
vii
3.7.1 Use Case Diagram ...48
3.7.1.2 Skenario Use Case ...49
3.7.2 Activity Diagram ...60
3.7.3 Class Diagram ...67
3.74 Squence Diagram ...68
3.8 Perancangan Sistem ...75
3.8.1 Perancangan Karakter ...75
3.8.2 Perancangan Level ...77
3.8.3 Perancangan Storyboard ...77
3.8.4 Perancangan Struktur Menu ...78
3.8.5 Perancangan Antar Muka ...79
3.8.6 Perancangan Antar Muka Pesan ...82
3.8.7 Jaringan Semantik ...83
BAB IV IMPLEMENTASI DAN PENGUJIAN ...85
4.1 Implementasi ...85
4.1.1 Implementasi Perangkat Keras ...85
4.1.2 Implementasi Perangkat Lunak ...85
4.1.3 Implementasi Antar Muka ...86
4.1.3.1Implementasi Antar Muka Menu Utama ...86
4.1.3.2Implementasi Antar Muka Menu Petunjuk ...86
4.1.3.3Implementasi Antar Muka Menu Pengaturan ...87
4.1.3.4Implementasi Antar Muka Menu Mulai ...87
4.1.4 Implementasi Pesan ...89
4.1.4.1Implementasi Pesan Lanjut Permainan ...89
viii
4.2 Pengujian Perangkat Lunak ...90
4.2.1 Pengujian Blackbox ...91
4.2.1.1Skenario Pengujian ...91
4.2.1.Kasus dan Hasil Pengujian ...93
4.2.1.3Kesimpulan Pengujian Blacbox ...97
4.2.1.4Pengujian Whitebox ...97
4.2.2 Pengujian Beta ...107
4.2.2.1Kuesioner ...107
4.2.2.2Kesimpulan Hasil Kuesioner ...112
BAB V KESIMPULAN ...113
5.1 Kesimpulan ...113
5.2 Saran ...113
115
DAFTAR PUSTAKA
[1] Soekanto SA. 2009. Si Pitung super hero daribetawi, Bandung.
[2] Salihunalias pitunglegendacagarbudayabetawi.
http://sejarah.kompasiana.com/2012/06/27/salihoen-salihun-alias-pitung-
legenda-cagar-budaya-betawi-472956.html,diaksespadatanggal03November2013.
[3] Meriam Si Pitung
APKhttp://android.downloadatoz.com/apps/com.winchmobile.meriam,494 979.html, diaksespadatanggal 03 November 2013.
[4] Sommerville, Ian. 2011. Software Engineering. 9th. Addison Wesley.
[5] Lestari, Dewi.,2012. “DefinisiGame”. UniversitasMuhammadiyah.
Sukabumi.
[6] W, Wandah.,2007.”Dasar Pemrograman Flash Game”.
[7] Umurpengguna.http://www.esrb.org/ratings/ratings_guide.jsp .Di aksespadatanggal 14 November 2010.
[8] Suyanto. 2007. Artificial Intelegedanheuristicsearch.Informatika, Bandung. [9] Boyer R.S., Moore J.S. 2009. A fast string searching algotihm.
[10] A* use of theHeuristic. http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html.diak sespadatanggal 1 Desember 2012.
[11] Dharwiyanti, Sri danRomiSatriaWahono. 2003. Pengantar Unified Modeling Language (UML).
[12] ModulJAVA EDUCATION NETWORK INDONESIA (JENI). 2007.
PengenalanPemrograman. Jardiknas.
[13] MADCOMS.2009.Adobe Photoshop CS4 Untuk Pemula.Penerbit: ANDI.Yogyakarta.
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 PETUALANGAN SI
PITUNG BERBASIS DEKSTOP” 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 Darsih S.Ag dan Alm. Bapak Andi Ruchiyat sebagai orangtua serta yang telah memberikan dukungan baik secara moril maupun materil dan doa yang tiada hentinya sehingga penulis bisa bertahan hingga saat ini. 3. IbuNelly Indriani W, S.Si., M.T. selaku pembimbing, yang telah
membimbing penulis dalam menyelesaikan tugas akhir.
4. Ibu Ednawati Rainarli, S.Si., M.Si.. selakureviewer 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, Agustus 2014
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Si Pitung adalah tokoh kisah betawi pada masa penjajahan belanda. Cerita Si Pitung memiliki dua versi yaitu menurut Soekanto SA, Si Pitung yang dikenal sebagai RobinHood indonesia tetapi suka menolong orang – orang yang menderita[1]. Sedangkan menurut Van Till, Si Pitung dikenal sebagai perampok, pengacau dan suka memeras orang – orang kaya dan hasil rampokannya dibagi – bagikan kepada rakyat miskin[2]. Perbedaan cerita Si Pitung ini akan mempengaruhi cara pandang generasi muda terhadap tokoh Si Pitung itu sendiri. Oleh karena itu kisah Si Pitung sebagai RobinHood indonesia perlu diangkat kembali karena banyak nilai positif yang terkandung didalamnya.
Salah satu media yang dapat digunakan untuk menyampaikan kisah Si Pitung adalah melalui media game. Dalam perkembangannya, telah ada game
yang menggunakan tokoh Si Pitung yaitu Meriam Si Pitung. Game ini menggunakan platform android sebagai medianya dan game Meriam Si Pitung termasuk ke dalam bergenre arcade dan action. Game Meriam Si Pitung memiliki misi yang sederhana yaitu, menembaki dengan peluru meriamnya. Kemudian karakter yang digunakan hanya menggunakan meriam tanpa menampilkan karakter Si Pitungnya[3]. Oleh karena itu pada game Meriam Si Pitung ini sebagian besar permasalahanya yang di temukan adalah kurangnya kisah cerita Si Pitung dan sosok karakter Si Pitungnya.
1.2 Rumusan Masalah
Berdasarkan uraian pada latar belakang masalah, maka rumusan masalah dari penelitian ini adalah bagaimana menampilkan sosok tokoh Si Pitung yang dimunculkan dalam game.
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang di identifikasi, bermaksud untuk membangun game petualangan Si Pitung berbasis desktop dengan tujuan:
1. Menyampaikan kisah Si Pitung yang memiliki nilai positif.
2. Menampilkan karakter Si Pitung yang tidak dimunculkan dalam game
sebelumnya. 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 anak usia 9 tahun ke atas. 8. Pemodelan yang digunakan adalah pemodelan berorientasi objek dengan
UML Diagram dengan tools StarUML.
9. Artificial intelligence yang digunakan pada NPC (non playable character) adalah algoritma A* untuk melakukan pencarian jalur terdekat.
10.Aplikasi yang digunakan untuk membangun permainan ini adalah: a. Aplikasi pembangunan permainan ini menggunakan Greenfoot
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 game yang akan dibangun.
b.Kuisioner
Pembagian kuisioner juga dilakukan untuk meminta pendapat responden tentang game Si Pitung. Pembagian kuisioner dilakukan pada tahap pengujian dan hasilnya akan menjadi kesimpulan dari penelitian ini. 2. Metode Pengembangan Perangkat Lunak
Cara dalam pembangunan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall. Waterfall adalah sebuah pengembangan Model perangkat lunak yang dilakukan secara berurutan atau sekuensial.
Adapun metodologi yang digunakan dalam model waterfall, sebagaimana diperlihatkan pada gambar 1.1.
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.
b. System Analisis (Analysis)
Pada tahap ini dilakukan pengumpulan kebutuhan untuk membuat aplikasi game.Mengumpukan data game sejenis, storyline dan menganalisis apa saja yang kurang pada game tersebut. Pada tahap ini pula, merupakan tahapan menganalisis bagaimana cara kerja Algoritma yang akan dipakai nanti.
c. SystemDesign
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. SystemCoding
Pengkodean mengimplementaskan hasil desain kedalam kode atau bahasa yang dimengerti oleh mesin computer dengan menggunakan bahasa pemograman Java.
e. SystemTesting
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. SystemMaintenance
1.6 Sistematika Penulisan
Sistematika penulisan 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 berisi uraina tentang teori-teori permainan (game), teknik penyelesaian masalah AI(artificial intelligence), aplikasi pembangunan perangkat lunak, java, adobe photoshop dan grenfoot.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi rincian tentang analisis terhadap seluruh spesifikasi sistem yang mencakup analisis system, analisis masalah, analisis game sejenis, analisis game yang akan di bangun, analisis algoritma, analisis kebutuhan non-fungsional, analisis kebutuhan fungsional dan perancangan system.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi rincian tentang implementasi dari tahapan analisis dan perancangan sistem ke dalam perangkat lunak (dalam bentuk bahasa pemrograman), beberapa implementasi yang akan dijelaskan adalah implementasi perangkat keras, implementasi perangkat lunak, dan implementasi antarmuka. BAB V KESIMPULAN DAN SARAN
7
BAB 2
LANDASAN TEORI
2.1 Permainan (Game)
Game atau permainan merupakan aktivitas rekreasi dengan tujuan bersenang – senang mengisi waktu luang atau berolahraga ringan. Permainan biasanya dilakukan sendiri atau bersama – sama (kelompok), cara bermain (gameplay), budaya. Permainan dalam hal ini, merujuk pada pengertian kelincahan intelektual (Intellectual Playability Game) yang juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Permainan bertujuan untuk menghibur, biasanya permainan banyak disukai oleh anak-anak hingga orang dewasa. Berdasarkan perkembangannya pun permainan dibedakan menjadi dua yaitu, permainan tradisional dan permainan modern. Dari perbedaan dua permainan tersebut dapat dilihat sebagai berikut[5] :
Tabel 2.1 Perbedaan Permainan Modern Dan Permainan Tradisional
Permainan Modern Permainan Tradisional a. Tidak Memerlukan biaya yang
mahal. a. Memerlukan biaya yang mahal.
b. Meningkatkan kekompakan anak.
b. Bermain secara individual ( karena perminan tergantung skill masing – masing anak semakin sering memainkan semkain hebat ).
c. Kerjasama antar anak yang kuat
c. Permainan kerjasamanya kurang, lebih ber-ego dan
2.1.1 Pengertian Game
Dalam kamus bahasa Indonesia “Game” adalah permainan. Permainan merupakan bagian dari bermain dan bermain juga bagian dari permainan keduanya saling berhubungan. Permainan adalah kegiatan yang kompleks yang didalamnya terdapat peraturan, play dan budaya. Sebuah permainan adalah sebuah sistem dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi dengan sistem dan konflik dalam permainan merupakan rekayasa atau buatan, dalam permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan menentukan permainan. Game bertujuan untuk menghibur, biasanya game banyak disukai oleh anak – anak hingga orang dewasa. Games sebenarnya penting untuk perkembangan otak, untuk meningkatkan konsentrasi dan melatih untuk memecahkan masalah dengan tepat dan cepat karena dalam game terdapat berbagai konflik atau masalah yang menuntut kita untuk menyelesaikannya dengan cepat dan tepat. Tetapi game juga bisa merugikan karena apabila kita sudah kecanduan game kita akan lupa waktu dan akan mengganggu kegiatan atau aktifitas yang sedang kita lakukan[5].
2.1.2 Klasifikasi Game
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
Boardgame 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 : Pipedream, Catur, permainan kartu dan sebagainya.
2. Arcade
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 supermario, petualangan paddlepop 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 DuckHunt, CounterStrike dan sebagainya. 5. Fighting
Game bertipe fighting pada dasarnya sama dengan game bertipe
action, hanya saja game bertipe fighting pemain mengendalikan sebuah karakter untuk berkelahi dengan karakter lain sampai salah satu karakter kalah. Contoh game bertipe fighting adalah streetfighter.
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 NeedForSpeed. 7. Simulation
Game bertipe simulasi adalah sebuah game yang mensimulasikan suatu kegiatan yang sesungguhnya. Contoh dari game bertipe simulasi adalah tycoon, simulator pesawat, burgerempire dan sebagainya.
8. Real Time Strategy
dan sebagainya). Contoh dari game bertipe RTS antara lain
warcommander, empireearth 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
MMO (Masive Multiplayer Online) merupakan game yang dapat dimainkan secara bersama-sama pada internet browser. Hal yang diutamakan dalam sebuah game bertipe MMO adalah kebersamaan dengan pemain lain. Contoh game bertipe MMO adalah Ragnarok.
2.1.2.1 Berdasarkan Umur Pengguna Permainan Game
Berdasarkan umur pengguna permainan game dibagi menjadi beberapa jenis, yaitu[8]:
1. EC (Early Childhood), permainan game ini memiliki konten yang mungkin cocok untuk anak usia 3 ke atas. Dan tidak memiliki kontent yang dianggap tidak pantas dilihat oleh anak dengan usia tersebut.
Gambar 2.1 EC (Early Childhood)[7].
Gambar 2.2 E (Everyone)[7].
3. E10+ (Everyone 10 and older), permainan game ini memiliki konten yang mungkin cocok untuk usia 10 atau lebih tua. Judul dalam kategori ini mungkin berisi kartun, fantasi atau kekerasan ringan, bahasa ringan atau dengan tema sugestif minimal.
Gambar 2.3 E10+ (Everyone 10 and older)[7].
4. T (Teen), permainan game ini memiliki konten yang mungkin cocok untuk usia 13 atau lebih tua. Judul dalam kategori game ini mungkin berisi kekerasan, tema sugestif, humor kasar, minimal darah, simulasi perjudian, atau menggunakan bahasa kuat yang minim.
Gambar 2.4 T (Teen)[7].
5. M (Mature), permainan game ini memiliki konten yang mungkin cocok untuk orang usia 17 atau lebih tua. Judul dalam kategori ini mungkin berisi kekerasan intens, darah dan gores, konten seksual dan bahasa kuat.
6. AO (Adults Only), permainan game ini memiliki konten yang hanya dan harus dimainkan oleh orang 18 tahun keatas. Judul dalam kategori ini mungkin termasuk adegan kekerasan berkepanjangan intens dan konten seksual grafis dengan kontent yang berisi gambar atau video.
Gambar 2.6 AO (Adults Only)[7].
7. RP (Rating Pending), Judul terdaftar sebagai RP (Rating Pending) telah disampaikan kepada ESRB dan sedang menunggu penilaian akhir. (Simbol ini hanya akan muncul dalam iklan sebelum merilis
game.)
Gambar 2.7 RP (Rating Pending)[7].
2.2 Teknik Penyelesaian Masalah AI (Artificial Intelligence)
Terdapat empat teknik dasar penyelesaian masalah yang terdapat pada bidang artificial intelegence diantaranya adalah[8]:
A. Searching
Pada teknik searching atau pencarian ini terdiri dari beberapa langkah untuk merealisasikannya. Langkah pertama adalah mendefinisikan ruang masalah untuk suatu masalah yang dihadapi. Langkah kedua adalah mendefinisikan aturan produksi yang digunakan untuk mengubah suatu keadaan ke keadaan lainnya. Langkag terakhir adalah memilih metode pencarian yang tepat sehingga dapat menemukan solusi terbaik.
B. Reasoning
menggunakan logic atau bahasa formal (bahasa yang dipahami komputer). Teknik ini melakukan proses penalaran berdasarkan basis pengetahuannya untuk menemukan solusi.
C. Planning
Planning adalah suatu metode penyelesaian masalah dengan cara memecah masalah ke dalam sub-sub masalah yang lebih kecil, menyelesaikan sub-sub masalah satu demi satu, kemudian menggabungkan solusi-solusi dari sub-sub masalah tersebut menjadi sebuah solusi lengkap dengan tetap mengingat dan menangani interaksi yang terdapat pada sub-sub masalah tersebut.
D. Learning
Pada ketiga teknik sebelumnya, seseorang harus mengetahui aturan yang berlaku untuk system yang akan dibangunnya. Tetapi, pada masalah tertentu terkadang aturan tidak bisa didefinisikan secara benar ataupun lengkan. Hal tersebut mungkin dikarenakan data-data yang didapat tidak lengkap. Melalui teknik yang disebut learning ini, secara otomatis aturan yang diharapkan bisa berlaku umum untuk data-data yang belum pasti diketahui dapat ditemukan.
2.2.1 Algoritma Pencarian (Searching)
Metode pencarian disebut penting dalam menyelesaikan permasalahan karena setiap keadaan menggambarkan langkah-langkah untuk menyelesaikan permasalahan. Dalam sebuah permainan metode pencarian akan menentukan langkah apa yang harus dilakukan, dimana setiap langkah menggambarkan kemungkinan posisi dalam sebuah rangkaian deduktif.
Permasalahan pencarian dapat diselesaikan dengan beberapa metode pencarian sebagai berikut [9]:
1. Pencarian Buta (Blind Search)
dan pencarian ini tidak memiliki informasi awal. Ciri-ciri blind search
adalah sebagai berikut[10]:
a. Membangkitkan simpul berdasarkan urutan. b. Kalau ada solusi, solusi akan langsung ditemukan.
c. Hanya memiliki informasi tentang node yang telah dibuka (node
selanjutnya tidak diketahui).
Blind search pun di bagi menjadi 3 seperti, BFS (Breadth-First Search), DFS (Depth-First Search), UCS (Uniform Cost Search).
2. Pencarian Terbimbing (Heuristic Search)
Heuristic search atau disebut juga pencarian terbimbing merupakan metode pencarian yang memperhatikan nilai heuristic (nilai perkiraan), dan pencarian ini akan dapat mencari jarak yang terpendek. Heuristic
memperkirakan jarak ke Goal (tujuan) yang disebut dengan fungsi
heuristic. Ciri-ciri heuristic search adalah sebagai berikut[10]: a. Mengesampingkan usaha yang dapat memboroskan waktu.
b. Menggunakan fungsi heuristic untuk mengevaluasi keadaan dari masalah dan mendapatkan solusi yang diinginkan.
c. Kemungkinan dapat mengorbankan kelengkapan (completeness).
Heuristic search pun mempunyai contoh seperti, Museum Procedure,
Branch and Bound, Dynamic Programming, Best First Search,Greedy Search, A* (A-Star) Search, dan Hill Climbing Search.
2.2.2 Algoritma A* (A-Star)
Algoritma A* (A-Star) adalah algoritma pencarian yang merupakan pengembangan dari algoritma Best First Search (BFS). Seperti halnya pada BFS, untuk menemukan solusi, A* juga di bimbing oleh fungsi heuristik, yang menentukan urutan titik mana yang akan dikunjungi terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap verteks yang memandu A* mendapatkan solusi yang diinginkan[10].
dengan urutan yang paling mendekati solusi terbaik. Kemudian, verteks pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List verteks ini disebut dengan verteks terbuka (open node)[10].
Pencarian menggunakan algoritma A* mempunyai prinsip yang sama dengan algoritma BFS, hanya saja dengan dua faktor tambahan.
1. Setiap sisi mempunyai “cost” yang berbeda-beda, seberapa besar cost untuk pergi dari satu simpul ke simpul yang lain.
2. Cost dari setiap simpul ke simpul tujuan bisa diperkirakan. Ini membantu pencarian, sehingga lebih kecil kemungkinan kita mencari ke arah yang salah.
Cost untuk setiap simpul tidak harus berupa jarak. Cost bisa saja berupa waktu bila kita ingin mencari jalan dengan waktu tercepat untuk dilalui. Sebagai contoh, bila user berkendaraan melewati jalan biasa bisa saja merupakan jarak terdekat, tetapi melewati jalan tol biasanya memakan waktu lebih sedikit.
Gambar 2.8 FlowChart A*(A-Star)
Cost antara simpul adalah jaraknya, dan perkiraan cost dari suatu simpul ke simpul tujuan adalah penjumlahan jarak dari simpul tersebut ke simpul tujuan. Rumus fungsi heuristic :
f(n) = g(n ) +
h
(
n
) ... 2.11
dengan:f(n) = fungsi evaluasi
g(n) = biaya (cost) yang sudah dikeluarkan dari keadaan sampai keadaan n
Node dengan nilai terendah merupakan solusi terbaik untuk diperiksa pertama kali pada g(n) + h(n). Dengan fungsi heuristic yang memenuhi kondisi tersebut, maka pencarian dengan algoritma A* dapat optimal[10]
Metode A* dapat melakukan backtracking jika jalur yang ditempuh ternyata salah. Metode A* dapat melakukannya karena menyimpan jejak yang mungkin sebagai jalur yang optimal. Sebagai contohnya, jika kita sedang menuju suatu kota dan sampai pada persimpangan jalan, dan memutuskan untuk belok kiri daripada ke kanan, dan ternyata jika jalan yang dipilih ternyata salah, kita akan kembali ke persimpangan dan mengambil jalan satunya. Itulah yang dilakukan metode A* ini[10].
2.3 Aplikasi Pembangun Perangkat Lunak
Perangkat lunak adalah istilah umum untuk data yang diformat dan disimpan secara digital, termasuk program komputer, dokumentasinya, dan berbagai informasi yang bisa dibaca dan ditulis oleh komputer. Dengan aplikasi perangkat lunak ini terdiri dari UML, Konsep dasar UML, Java, Adobe Photoshop dan Greenfoot.
2.3.1 Unified Modeling Language (UML)
Gambar 2.9 Logo UML
UML suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat, ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem. Bagian-bagian utama dari UML
adalah view, diagram, model element, dan general mechanism [12]. Diagram berbentuk grafik yang menunjukkan simbol elemen model yang disusun untuk mengilustrasikan bagian atau aspek tertentu 23 dari sistem. Sebuah diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan biasanya. Jenis – jenis UML diagram – diagram sebagai berikut:
1. Usecase Diagram
Usecase adalah abstraksi dari interaksi antara system dan actor.
memfasilitasi komunikasi diantara analis dan pengguna serta antara analis dan client.
Contoh pada use case diagram perpustakaa mempunyai Lima fungsionalitas yang terdiri dari :
1. mendaftar artinya siswa harus melakukan pendaftaran sebelum membaca buku di perpustakaan baik menjadi anggota ataupun hanya pengunjung saja.
2. membaca buku artinya siswa yang telah mendaftarkan diri ke petugas perpustakaan boleh membaca buku dalam perpustakaan.
3. meminjam buku artinya jika siswa yang mendaftar ke petugas menjadi anggota perpustakaan maka diperbolehkan meminjam buku perpustakaan. 4. mengembalikan buku artinya anggota yang telah meminjam buku harus
mengembalikan lagi ke petugas perpustakaan jika masa pinjaman telah habis. 5. denda artinya anggota yang mengembalikan buku melebihi masa peminjaman
maka akan dikenakan denda.
Usecase pada Gambar 2.10 merupakan contoh dari usecase diagram sistem perpustakaan
2. Class Diagram
Class adalah dekripsi kelompok obyek-obyek dengan properti, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah system. Hal tersebut tercermin dari class- class yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya mempunyai beberapa class diagram. Class diagram sangat membantu alam visualisasi struktur kelas dari suatu system.
Class memiliki tiga area pokok yaitu Nama Kelas, Atribut dan Metode. Atribut dan metode dapat memiliki salah satu sifat berikut :
1. Private artinya data yang dikendalikan oleh suatu kelas tertentu dan tidak dapat diakses oleh objek-objek yang berbeda kelas. Satu ciri metode sharing
yang bersifat private adalah hanya fungsi-fungsi atau metode – metode dalam kelas/objek yang bersangkutan yang dapat mengakses metode atau variabel serta atribut dalam kelas tanpa batasan. Biasanya tanda (-) digunakan untuk atribut atau metode yang bersifat private.
2. Protected artinya atribut atau metode yang bersifat protected hanya bisa diakses oleh kelas yang bersangkutan serta kelas-kelas yang merupakan turunannya mengikuti hierarki dari generalisasi. Biasanya tanda (#) digunakan untuk atribut atau metode yang bersifat protected.
3. Public artinya metode atau atribut yang bersifat public dapat diakses oleh semua objek dalam aplikasi tertentu tanpa batasan apa pun. Biasanya tanda (+) digunakan untuk atribut atau metode yang bersifat public.
Contoh class diagram pada sistem informasi perpustakaan memiliki delapan class antara lain:
1. Class mahasiswa memiliki atribut ; id_mahasiswa dan nama_mahasiswa dengan method : update dan insert dan bersifat public.
2. Class anggota memiliki atribut : id anggota dan nama anggota dengan method : insert, update, delete dan bersifat public.
4. Class denda memiliki atribut : id mahasiswa, kode buku, tgl pinjam, tgl kembali dengan method : insert ,update dan bersifat public.
5. Class transaksi memiliki atribut : atribut : id mahasiswa, kode buku, tgl pinjam, tgl kembali dengan method : insert ,update dan bersifat public.
6. Class koleksi buku memiliki atribut : atribut : id mahasiswa, kode buku, tgl pinjam, tgl kembali dengan method : insert ,update dan bersifat public.
7. Class petugas perpustakaan memiliki atribut : atribut : id mahasiswa, kode buku, tgl pinjam, tgl kembali dengan method : insert ,update dan bersifat public.
8. Class koleksi buku loka memiliki atribut : atribut : id mahasiswa, kode buku, tgl pinjam, tgl kembali dengan method : insert ,update dan bersifat public.
Class diagram pada Gambar 2.11 merupakan contoh class diagram pada sistem informasi perpustakaan.
9. Sequence Diagram
Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah scenario. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antara object, sesuatu yang terjadi pada titik tertentu dalam eksekusi sistem.
Contoh pada sequence diagram login mempunyai interaksi sebagai berikut a. Administrator (Aktor) melakukan login, maka methodUser ID, Password ()
memanggil kelas Layar Login.
b. Kelas Layar Login memanggil kelas Cek User untuk mengecek User ID dan
Password.
c. Kelas Cek User memanggil kelas Data User untuk memvalidasi User ID dan
Password di database.
d. Apabila User ID dan Password valid maka Administrator beerhasil melakukan Login.
Sequence Diagram pada Gambar 2.12 merupakan contoh dari sequence
diagram login.
10.Activity Diagram
Activity Diagram menggambarkan rangkaian aliran dari aktivitas, digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya seperti
Usecase atau interaksi,
Sebuah aktifitas dapat direalisasikan oleh suatu use case atau lebih. Aktifitas menggambarkan proses yang berjalan sementara use case
menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktifitas. Contoh pada activity diagram pengembalian buku perpustakaan, pada
activity diagram pengembalian buku perpustakaan mempunyai alir aktifitas sebagai berikut :
a. Anggota perpustakaan mengembalikan buku perpustakaan kepada pustakawan.
b. Pustakawan memvalidasi data buku yang dipinjam oleh anggota perpustakaan.
c. Apabila anggota perpustakaan mengembalikan buku melebihi batas waktu maka anggota perpustakaan akan mendapat denda dengan membayar sejumlah uang.
d. Kemudian pustakawan memvalidasi data anggota perpustakaan.
e. Apabila anggota perpustakaan mengembalikan buku tidak melebihi batas waktu pengembalian maka anggota tidak mendapat denda.
Gambar 2.13 Activity Diagram pengembalian buku perpustakaan. 2.3.1 Java
Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform
sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source[12].
Sebagai sebuah peralatan pembangun, teknologi Java menyediakan banyak
Terdapat dua komponen utama dari Deployment Environment. Yang pertama adalah JRE, yang terdapat pada paket J2SDK, mengandung kelas–kelas untuk semua paket teknologi Java yang meliputi kelas dasar dari Java, komponen GUI dan sebagainya. Komponen yang lain terdapat pada Web Browser. Hampir seluruh Web Browser komersial menyediakan interpreter dan runtime environment dari teknologi Java[12].
2.3.2.1 Karakteristik Java
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut[13]:
1. Sederhana
Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.
2. Berorientasi objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.
3. Dapat didistribusi dengan mudah
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.
4. Interpreter
5. Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.
6. Aman
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
7. Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine.
8. Portabel
Source code maupun program Java dapat dengan mudah dibawa ke
platform yang berbeda-beda tanpa harus dikompilasi ulang. 9. Performance
Performance pada Java sering dikatakan kurang tinggi. Namun
performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft ataupun Symantec yang menggunakan
Just In Time Compilers (JIT). 10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dinamis
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun
method dapat dilakukan tanpa menggangu program yang menggunakan
2.3.2 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 letaknya berada tepat di bawah Menu Bar yang digunakan untuk mengatur sifat dan kinerja dari piranti yang terpilih di Panel Tools. Panel Tools adalah sebuah kumpulan piranti yang digunakan untuk mengolah gambar, seperti melakukan seleksi area, memotong bidang gambar, maupun menghapus bidang gambar [13].
2.3.3 Greenfoot
Tutorial ini adalah pengenalan tentang objek(object) dan dunia(world) di Greenfoot.Greenfoot adalah perangkat lunak yang didesain untuk pemula agar dapat terbiasa dengan Pemrograman Berorientasi Objek(Object-Oriented Programming), yang mendukung pengembangan aplikasi bergambar dengan memakai bahasa pemrograman Java™. Greenfoot didesain dan telah diimplentasikan di Universitas Kent, Inggris dan Universitas Deakin, Melbourne - AustraliaInformasi lebih lanjut mengenai Greenfoot bisa dilihat di www.greenfoot.org.
29 3.1 Analisis Sistem
Analisis sistem ini merupakan cakupan dari analisis yang berhubungan dengan game yang akan dibangun diantaranya analisis masalah terhadap game
yang sejenis, analisis kebutuhan fungsional, dan analisis non fungsional.
3.2 Analisis Masalah
Berdasarkan latar belakang yang telah diuraikan di atas, maka masalahnya adalah game arcade yang ada saat ini adalah dalam gameplaynya, hanya menembaki musuh tanpa memperlihatkan karakternya dan hanya melewati beberapa objek yang tidak bergerak sehingga gameplay kurang variatif. Selain itu, pada game arcade masih jarang mengimplementasikan cerita rakyat yang mengambil cerita dari Indonesia. Adapun masalah tersebut dapat dirumuskan dalam pernyataan sebagai berikut:
1) Masih kurangnya penyampaian kisah cerita Si Pitung kepada player. 2) Kurangnya jelasnya sosok tokoh Si Pitung yang dimunculkan dalam
game sejenis.
3.3 Analisis Game Sejenis
Analisis yang dilakukan merupakan observasi dari Game sejenis untuk melihat cara bermain, tujuan dan ada tidaknya kekurangan atau kelebihan Game
itu sendiri. Hasil observasi tersebut untuk membantu dalam penelitian. Game
sejenis yang dianalisis yaitu Meriam si Pitung.
3.3.1 Meriam si Pitung
Gambar 3.1 Game Meriam si Pitung 3.3.1.1 Alur Permainan Meriam Si Pitung
Alur permainan meriam si pitung merupakan sebuah alur dari aktivitas
game, dimana alur tersebut dapat menggambarkan aktivitas yang berada dalam
game. Penjelasan dari alur permainan Meriam si Pitung akan dijelaskan dalam table 3.1 berikut.
Tabel 3. 1 Alur Permainan Meriam Si Pitung
Alur Permainan
1. Pemain harus mengarahkan meriam untuk menembakan meriam ke balok.
2. Pemain harus menembakan meriam dengan jangkauan tertentu.
3. Pemain menggunakan meriam untuk menjatuh balok.
4. Pemain akan mendapatkan point jika dapat menjatuhkan semua balok.
5. Pemain akan kalah jika semua kesempatan menembak digunakan namun tidak mengenai
balok.
6. Permainan ini tidak mempunyai level, hanya mengulang kembali permainan.
Gambar 3.2 alur permainan Meriam Si Pitung
dalam game ini meliputi beberapa hal yaitu, tidak adanya leveling dalam game, tidak memiliki storyline, tidak dimunculkannya karakter si pitung dalam game, dan tidak ada perbedaan susunan balok ketika permainan berulang.
3.4 Analisis Game yang akan dibangun
Analisis Game yang akan dibangun merupakan bagian yang mendeskripsikan Game yang akan dibangun. Pada bagian ini analisis terdiri dari arsitektur, storyline, tingkat kesulitan, Gameplay.
3.4.1 Pengenalan
Game yang akan dibangun berjudul si pitung yang bergenre arcade. Game
ini dibangun untuk memperkenalkan tokoh si pitung dan mengintrepretasikannya ke dalam salah satu game yang sudah ada sejak lama kepada anak-anak masa kini.
Batasan-batasan pada game si pitung ini dijelaskan pada table 3.3 berikut. Tabel 3.2 Batasan Game
Batasan Game
1. Game yang dibuat berbasis desktop dengan tampilan jenis 2 Dimensi.
2. Single player
3. Karakter dapat melawan musuh dengan tangan kosong dan menggunakan
senjata.
4. Terdapat bermacam-macam musuh.
5. Terdapat life point yang dapat member kesempatan pemain dan member
kesulitan pada musuh.
6. Terdapat beberapa warga yang harus diselamatkan.
3.4.2
Storyline
warga-warga dikampungnya dengan cara kerja paksa, di pajak dan lainnya. Si pitung pun tidak tinggal diam, dengan kemampuannya, dia berencana untuk melepaskan warga yang menjadi tawanan para menir belanda. Akan tetapi si pitung harus melalui penjagaan yang ketat dari prajurit-prajurit belanda[1].
3.4.3
Gameplay
Gameplay dilakukan untuk menggambarkan aturan-aturan dalam Game.
Gameplay Si Pitungyang akan dibangun dijelaskan pada table 3.4 berikut. Tabel 3. 3 Gameplay Si Pitung
Gameplay
1. Pada awal permainan pemain harus mengalahkan musuh dengan cara memukul.
2. Pemain menghindari serangan musuh dengan cara melompat
3. Jika lifepoin habis maka permainan akan selesai dan akan mengulang ke awal level
tersebut.
4. Pemain akan berjumpa dengan prajurit1 yang masih lemah dan mampu dibunuh dengan
pukulan. Level 1 pertempuran terjadi pada siang hari, selain itu pemain harus membunuh
semua prajurit1.
5. Di level 2 ditambah prajurit lagi dimana pemain harus membunuh prajurit1 dan prajurit2,
namun tingkat kesulitan pun berbeda dengan level 1 karena di level 2 prajuritnya bisa
menembak dan memukul.
6. Level ini merupakan level akhir pada game petualangan Si Pitung. Misinya pun sama
seperti level 1 dan level 2, namun pada level akhir ini akan mendapatkan senjata untuk
membantu menghadapi prajurit dan 1 sosok Menir(boss) sekaligus yang harus dikalahkan
oelh pemain.
7. Pemain harus menyelamatkan warga untuk dapat melanjutkan permainan ke level
selanjutnya.
3.4.4 Misi
3.4.5 Sasaran Pemain dan Kegunaan Game
Sasaran pemain menentukan layak tidaknya pemain memainkan permainan ini. Berikut adalah sasaran pemain yang layak memainkan permainan ini :
1. Berdasarkan umur pengguna yaitu 9 tahun ke atas.
2. Dapat mempergunakan komputer, karena Game berbentuk aplikasi java. Kegunaan Game menunjukan kegunaan Game untuk pemain. Kegunaan dalam Game ini untuk memperkenalkan cerita rakyat dari betawi, sehingga pengguna dengan umur muda dapat bermain dan mengenal tokoh si pitung dari menyelesaikan permainan ini.
3.5 Analisis Algoritma
Analisis algoritma yang dilakukan dalam penelitian ini adalah meneliti bagaimana cara kerja algoritma A* pada prajurit belanda dan menir di dalam
Game. Kondisi dimana musuh dapat mencari dan menyerang pemain ketika muncul.
3.5.1 Analisis Algoritma A* pada NPC
Pada kondisi awal, simpul awal atau posisi musuh dicontohkan berada pada koordinat (1,0) sedangkan simpul tujuan simpul tujuan atau posisi karakter pemain berada pada koordinat (3,0) dalam arena permainan.
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang mungkin diperiksa
Gambar 3.3 kondisi awal pencarian A*
Langkah selanjutnya akan dilakukan pemeriksaan terhadap simpul-simpul yang bertetangga yang memiliki nilai cost / biaya terkecil sebagai Best Node
sebagai rute yang akan dipilih peluru, dengan melakukan langkah perhitungan sebagai berikut:
Pada langkah pertama akan diperiksa simpul pada koordinat n(1,0) dan koordinat n(0,1).
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang diperiksa
a. Koordinat n(1,0) Nilai n.x = 1
Nilai n.y = 0
Simpul tujuan(3,0) sehingga goal.x = 3, goal.y = 0
g (1,0) = 1
h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))
h_orthogonal(1,0) = (abs(1 - 3) + abs(0 - 0))
= (abs(-2) + abs(0))
= 2
h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-goal.y))
h_diagonal(1,0) = min(abs(1 - 3)+abs(0 - 0))
= min(abs(-2)+abs(0))
= min 2
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
h(1,0) = (- 2) + (2-(2*(-2)))
= -2 + 6
= 4
= 1 + 4
= 5
b. Koordinat n(0,1) Nilai n.x = 0
Nilai n.y = 1
Simpul tujuan(3,0) sehingga goal.x = 3, goal.y = 0
g(n) = g (0,1) = 1
h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))
h_orthogonal(0,1) = (abs(0 - 2) + abs(1 - 0))
= (abs(-2) + abs(1))
= 3
h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-goal.y))
h_diagonal(0,1) = min(abs(0 - 2)+abs(1 - 0))
= min(abs(-2)+abs(1))
= min 3
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
h(0,1) = (-3) + (3-(2*(-3)))
= 6
f (0,1) = g (0,1) + h (0,1)
= 1 + 6
= 7
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang diperiksa
Gambar 3.5 Pencarian BestNode pertama
Dari hasil perhitungan diatas seperti terlihat pada gambar 3.7 terdapat tiga simpul yang mungkin menjadi BestNode yaitu (1,0) dengan f(n)=5 dan (0,1) dengan f(n)=7. Dari ke dua simpul yang mungkin maka dipilihlah simpul (1,0) sebagai Best Node karena memiliki biaya terkecil yaitu 5.
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang dipilih
Gambar 3.6 Simpul yang terpilih sebagai BestNode
Langkah selanjutnya akan dilakukan pemeriksaan terhadap simpul-simpul yang bertetangga yang memiliki nilai cost / biaya terkecil sebagai Best Node
Pada langkah pertama akan diperiksa simpul pada koordinat n(2,0) dan koordinat n(1,1).
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang diperiksa
Gambar 3.7 Penelusuran kedua pada koordinat n(2,0), n(1,1)
c. Koordinat n(2,0) Nilai n.x = 2
Nilai n.y = 0
Simpul tujuan(3,0) sehingga goal.x = 3, goal.y = 0
g (2,0) = 2
h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))
h_orthogonal(2,0) = (abs(2 - 3) + abs(0 - 0))
= (abs(-1) + abs(0))
= 1
h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-goal.y))
h_diagonal(2,0) = min(abs(2 - 3)+abs(0 - 0))
= min 1
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
h(2,0) = (- 1) + (1-(2*(-1)))
= -1 + 3
= 2
f (2,0) = g (2,0) + h (2,0)
= 2 + 2
= 4
d. Koordinat n(1,1) Nilai n.x = 1
Nilai n.y = 1
Simpul tujuan(3,0) sehingga goal.x = 3, goal.y = 0
g(n) = g (1,1) = 2
h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))
h_orthogonal(1,1) = (abs(1 - 2) + abs(1 - 0))
= (abs(-1) + abs(1))
= 2
h_diagonal(1,1) = min(abs(1 - 2)+abs(1 - 0))
= min(abs(-1)+abs(1))
= min 2
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
h(1,1) = (-2) + (2-(2*(-2)))
= -2 + 6
= 4
f (1,1) = g (1,1) + h (1,1)
= 2 + 4
= 6
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang diperiksa
Gambar 3.8 Pencarian BestNode kedua
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang dipilih
Gambar 3.9 Simpul yang terpilih sebagai BestNode
Setelah mendapatkan BestNode dilangkah pertama, dilakukan penelusuran lanjutan untuk mendapatkan BestNode selanjutnya dengan melakukan penelusuran simpul – simpul yang memiliki nilai cost terkecil. Seperti pada langkah pertama dilakukan lagi penelusuran pada koordinat n(3,0) dan n(2,1).
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang diperiksa
Simpul yang dipilih
Gambar 3.10 penelusuran ketiga pada koordinat n(3,0), n(2,1) e. Koordinat n(3,0)
Nilai n.x = 3
Nilai n.y = 0
Simpul tujuan(3,0) sehingga goal.x = 3, goal.y = 0
g(n) = g (3,0) = 3
h_orthogonal(3,0) = (abs(3 - 3) + abs(0 - 0))
= (abs(0) + abs(0))
= 0
h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-goal.y))
h_diagonal(3,0) = min(abs(3 - 3)+abs(0 - 0))
= min(abs(0)+abs(0))
= min 0
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
h(3,0) = (-0) + (0-(2*(-0)))
= 0 + 0
= 0
f (3,0) = g (3,0) + h (3,0)
= 3 + 0
= 3
f. Koordinat n(2,1) Nilai n.x = 2
Nilai n.y = 1
g(n) = g (3,0) = 3
h_orthogonal(n) = (abs(n.x-goal.x) + abs(n.y-goal.y))
h_orthogonal(2,1) = (abs(2 - 3) + abs(1 - 0))
= (abs(-1) + abs(1))
= 2
h_diagonal(n) = min(abs(n.x-goal.x) + abs(n.y-goal.y))
h_diagonal(2,1) = min(abs(2 - 3)+abs(1 - 0))
= min(abs(-1)+abs(1))
= min 2
h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))
h(2,1) = (-2) + (2-(2*(-2)))
= -2 + 6
= 4
f (2,1) = g (2,1) + h (2,1)
= 3 + 4
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang diperiksa Simpul yang dipilih Gambar 3.11 Pencarian BestNode ketiga
Pada gambar 3.10 terdapat tiga simpul yang mungkin menjadi BestNode
yaitu koordinat n(3,0) dengan f(n)=2. Koordinat n(3,0) dipilih sebagai Best node
karena memiliki biaya cost terkecil dan koordinat n(3,0) dikenali sebagai simpul tujuan yang berarti solusi untuk menemukan rute terpendek menuju posisi pemain.
Simpul tujuan / posisi pemain
Simpul awal / posisi musuh
Simpul yang dipilih
Gambar 3.12 Hasil pencarian jalur dengan Algoritma A*
3.6 Analisis Kebutuhan Non-Fungsional
Analisis kebutuhan non-fungsional dilakukan untuk mengetahui spesifikasi kebutuhan untuk sistem.Spesifikasi kebutuhan melibatkan analisis perangkat keras/hardware, analisis perangkat lunak/software, analisis perangkat pikir/user.
3.6.1 Analisis Kebutuhan Perangkat Keras
Analisis kebutuhan perangkat keras digunakan untuk mengetahui spesifikasi minimun perangkat keras dalam membangun Game si pitung akan dijelaskanpada tabel 3.4 berikut.
Tabel 3.4 Spesifikasi Perangkat Keras Pembangun
Nama Perangkat Spesifikasi
Processor 1.80Ghz
RAM 4GB
Harddisk 50 GB
Display Resolusi 1366 x 768
Keyboard Standar
Mouse Standar
Selain itu, untuk mengetahui spesifikasi minimum perangkat keras dalam menggunakan Game si pitung akan dijelaskan pada tabel 3.5 berikut.
Tabel 3.5 Spesifikasi Perangkat Keras Pengguna
Nama Perangkat Spesifikasi
Processor 1.80Ghz
RAM 512MB
Harddisk 200MB
Display Resolusi 800 x 600
Keyboard Standar
3.6.2 Analisis Kebutuhan Perangkat Lunak
Perangkat lunak digunakan dalam sebuah sistem merupakan perintah yang diberikan kepada perangkat keras agar dapat saling berinteraksi diantaranya. Perangkat lunak yang dibutuhkan untuk pembangunan Game si pitung ini dijelaskan pada tabel 3.6 berikut.
Tabel 3.7 Spesifikasi Kebutuhan Perangkat Lunak Pembangun Sistem operasi Windows 7 Ultimate 32-bit
Compiler Greenfoot
Development toolkit Java
Design tools Adobe Photoshop CS 3
Design analysis StarUML
Selain itu, perangkat lunak yang dibutuhkan untuk pengguna Game si pitung dijelaskan pada tabel 3.7 berikut.
Tabel 3.8 Spesifikasi Kebutuhan Perangkat Lunak Pengguna
Operating System Windows 7 Ultimate 32-bit
Tools Java vitual machine
3.6.3 Analisis Kebutuhan Perangkat Pikir
Tabel 3.8 Spesifikasi Pengguna
Peran Pemain
Usia 9 tahun ke atas
Tingkat Keterampilan Dapat menggunakan komputer
Kondisi Fisik Tidak cacat seperti buta atau cacat tubuh
3.7 Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional dilakukan untuk mengetahui gambaran sistem yang akan dibangun. Analisis kebutuhan fungsional terdiri dari pendefinisan fungsi Game, penggambaran alir aktivitas pada Game dan penggambaran interaksi antar objek pada Game.
Pendefinisian fungsi Game digunakan untuk menggambarkan fungsi-fungsi pada Game. Pendefinisian fungsi pada Game ini digambarkan dengan menggunakan use case diagram, definisi aktor,definisiuse case dan skenario use case.
3.7.1
Use Case Diagram
Penggambaran fungsi Game berdasarkan interaksi antar aktor dan objek pada sistem digambarkan dengan menggunakan diagram use case seperti pada gambar 3.13.
1.1. Definisi Aktor
Definisi aktor berfungsi menjelaskan peran setiap aktor yang terdapat pada use case. Berikut ini adalah definisi aktor.
Tabel 3.9 Definisi Aktor
No. Aktor Deskripsi
1. Pemain Pengguna/orang yang memainkan Game ini.
1.2. Definisi Use Case
Definisi use case berfungsi menjelaskan tiap-tiap proses dan objek yang terdapat pada use case. Berikut ini adalah definisi use case.
Tabel 3.10 Definisi Use Case No. Use Case Deskripsi
1. Memulai permainan Proses memulai permainan
2. Melihat petunjuk Proses menampilkan petunjuk permainan 3. Mengatur suara Proses pengaturan suara
4. Menampilkan intro Proses cerita permainan
5. Melompat Proses aksi pemain dalam permainan
6. Memukul Proses aksi pemain dalam permainan 7. Menampilkan
permainan level 1
Proses memulai permainan level 1
8. Menampilkan permainan level 2
Proses memulai permainan level 2
9. Menampilkan permainan level 3
Proses memulai permainan level 3
10. Keluar permainan Proses keluar permainan
3.7.2 Skenario Use Case
Case tersebut dari awal sampai akhir. Adapun skenario Use Case yang terdapat pada aplikasi permainan si pitung ini adalah sebagai berikut:
1. Skenario Use Case Memulai Permainan
Table 3.11 Skenario Use Case Mulai Permainan Identifikasi
Nomor 1
Nama Memulai Permainan
Tujuan Mulai permainan
Deskripsi Proses untuk memulai permainan
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain memilih menu mulai saat berada di menu utama Game
Aksi Aktor Reaksi Sistem
1. Memilih menu mulai
2. Menampilkan intro permainan 3. Tekan tombol lanjut
4. Tampil menu utama
2. Skenario Use Case Melihat Petunjuk
Table 3.12 Skenario Use Case Melihat Petunjuk Identifikasi
Nomor 2
Nama Melihat Petunjuk
Tujuan Menampilkan informasi permainan
Deskripsi Proses untuk menampilkan informasi permainan
Aktor Pemain
Skenario Utama
Aksi Aktor Reaksi Sistem 1. Memilih menu petunjuk
2. Menampilkan halaman petunjuk 3. Menekan tombol kembali
4. Menampilkan halaman utama
3. Skenario Use Case Mengatur Suara
Table 3.13 Skenario Use Case Mengatur Suara Identifikasi
Nomor 3
Nama Mengatur Suara
Tujuan Mengatur suara permainan
Deskripsi Proses untuk mengatur suara permainan
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain memilih menu suara saat berada di menu utama
Aksi Aktor Reaksi Sistem
1. Memilih menu sound
2. Menampilkan pengaturan suara 3. Menekan tombol on
4. Menampilkan suara 5. Menekan tombol off
6. Tidak menampilkan suara
4. Skenario Use Case Menampilkan Intro
Table 3.14 Skenario Use Case Menampilkan Intro Identifikasi
Nomor 4
Tujuan Menampilkan intro permainan
Deskripsi Proses untuk menampilkan intro permainan
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain melihat intro permainan saat berada dalam halaman intro
Aksi Aktor Reaksi Sistem
1. Menekan tombol lanjut
2. Menampilkan intro 3. Menekan tombol lanjut
4. Menampilkan permainan
5. Skenario Use Case Melompat
Table 3.15 Skenario Use Case Melompat Identifikasi
Nomor 5
Nama Melompat
Tujuan Menampilkan aksi pemain dalam permainan
Deskripsi Proses untuk menampilkan aksi pemain dalam permainan
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain melompat saat berada dalam permainan.
Aksi Aktor Reaksi Sistem
1. Menekan tombol w
2. Menampilkan aksi melompat
6. Skenario Use Case Memukul
Nomor 6
Nama Memukul
Tujuan Menampilkan aksi pemain dalam permainan
Deskripsi Proses untuk menampilkan aksi pemain dalam permainan
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain menampilkan aksi memukul saat berada dalam permainan.
Aksi Aktor Reaksi Sistem
1. Menekan tombol k
2. Menampilkan aksi memukul 3. Jika aksi memukul bertabrakan
dengan musuh maka musuh akan mati.
7. Skenario Use Case Menampilkan Permainan level 1
Table 3.17 Skenario Use Case Menampilkan Permainan Level 1 Identifikasi
Nomor 7
Nama Menampilkan level 1
Tujuan Menampilkan permainan level 1
Deskripsi Proses untuk mulai memainkan
permainan level 1
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain mulai memainkan permainan saat berada di tampilan permainan level 1
1. Menggerakan karakter
2. Tampil gerakan karakter 3. Cek tabrakan
4. Jika karakter menabrak musuh, life poin berkurang
5. Cek life point
6. Jika life poin = 0, maka permainan akan diulang kembali
7. Jika life poin != 0, maka karakter masih bisa dimainkan
8. Menekan tombol K
8. Karakter memukul 9. Cek tabrakan pukulan
10.Jika pukulan menabrak musuh, maka life poin musuh berkurang 11.Jika life poin musuh = 0, maka
musuh akan mati
12.Jika life poin > 0, maka musuh hidup
13.Cek jumlah warga
14.Jika warga diselamatkan maka pemain mendapatkan life poin = 10
15.Akhiri permainan Kondisi akhir Menampilkan permainan level 2
16. Skenario Use Case Menampilkan Permainan level 2
Table 3.18 Skenario Use Case Menampilkan Permainan Level 2 Identifikasi
Nama Menampilkan level 2
Tujuan Menampilkan permainan level 2
Deskripsi Proses untuk mulai memainkan
permainan level 2
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain mulai memainkan permainan saat berada di tampilan permainan level 2
Aksi Aktor Reaksi Sistem
1. Menggerakan karakter
2. Tampil gerakan karakter 3. Cek tabrakan
4. Jika karakter menabrak musuh, life poin berkurang
5. Cek life point
6. Jika life poin = 0, maka permainan akan diulang kembali
7. Jika life poin != 0, maka karakter masih bisa dimainkan
8. Menekan tombol B
8. Karakter memukul 9. Cek tabrakan pukulan
10.Jika pukulan menabrak musuh, maka life poin musuh berkurang 11.Jika life poin musuh = 0, maka
musuh akan mati
12.Jika life poin > 0, maka musuh hidup
14.Jika warga diselamatkan maka pemain mendapatkan life poin = 10
15.Akhir permainan
Kondisi akhir Menampilkan permainan level 3
17. Skenario Use Case Menampilkan Permainan level 3
Table 3.19 Skenario Use Case Menampilkan Permainan Level 3 Identifikasi
Nomor 9
Nama Menampilkan level 3
Tujuan Menampilkan permainan level 3
Deskripsi Proses untuk mulai memainkan
permainan level 3
Aktor Pemain
Skenario Utama
Kondisi Awal Pemain mulai memainkan permainan saat berada di tampilan permainan level 3
Aksi Aktor Reaksi Sistem
1. Menggerakan karakter
2. Tampil gerakan karakter 3. Cek tabrakan
4. Jika karakter menabrak musuh, life poin berkurang
5. Cek life point
6. Jika life poin = 0, maka permainan akan diulang kembali
8. Menekan tombol B
8. Karakter mengeluarkan golok 9. Cek tabrakan golok
10.Jika golok menabrak musuh, maka life poin musuh berkurang
11.Jika life poin musuh = 0, maka musuh akan mati
12.Jika life poin > 0, maka musuh hidup
13.Cek jumlah warga
14.Jika warga diselamatkan maka pemain mendapatkan life poin = 10
15.Jika life point boss = 0, maka permainan akan berakhir 16.Jika life point boss!= 0, maka
permainan tidak akan berakhir 17.Akhir permainan
Kondisi akhir Menampilkan intro
18. Skenario Use Case Keluar Permainan
Table 3.20 Skenario Use Case Keluar Permainan Identifikasi
Nomor 10
Nama keluar Permainan
Tujuan keluar permainan
Deskripsi Proses untuk keluar permainan
Aktor Pemain
Skenario Utama
kanan Game
Aksi Aktor Reaksi Sistem
5. Memilih tombol exit
6. keluar permainan
3.7.2 Activity Diagram
Diagram ini berisi penjelasan secara lengkap mengenai urutan aktivitas yang terjadi antara pemain dengan game si Pitung.
1. Activity Diagram Memulai Permainan
Proses ini terjadi saat pemain memulai permainan si Pitung. Sistem akan menampilkan halaman utama dari permainan si Pitung. Activity Diagram Mulai Permainan terdapat pada gambar 3.14 berikut:
Gambar 3.14 Activity Diagram Memulai Permainan
2. Activity Diagram Melihat Petunjuk
Proses ini terjadi saat pemain memulai memilih menu petunjuk pada game