14
BAB III
ANALISIS DAN PERANCANGAN APLIKASI
3.1. Analisis Aplikasi
Dalam proses pengembangan sebuah Aplikasi langkah awal yang perlu dilakukan yaitu menganalisis berbagai kebutuhan diantaranya seperti input yang diperlukan, output yang diharapkan dan pembuatan design user interface yang akan dijadikan sebagai masukan atau acuan dalam pengembangan Aplikasi yang mudah digunakan dan dipahami oleh user.
3.1.1. Analisis Masalah
Masalah yang diangkat dalam penulisan skripsi ini adalah bagaimana penerapan metode FSM (Finite State Machine) untuk NPC (Non Player Character) bisa melakukan suatu tindakan apabila karakter utama menyerang musuh NPC, dan musuh NPC menyerang balik karakter utama.
Seperti telah dijelaskan sebelumnya bahwa teknik Finite State Machine yang
digunakan kepada NPC musuh untuk mendeteksi perilaku pemain pada game
sehingga dapat memperoleh keputusan yang akan dilakukan. Dengan ini diharapkan
metode Finite State Machine dapat membaca perilaku pemain sehingga NPC
mempunyai kecerdasan buatan yang menunjukan perilaku yang konsisten dan
realistis, bereaksi dengan tepat kepada tindakan pemain dan karakter lain seperti
halnya manusia
3.1.2. Analisa Kebutuhan
Dalam tahap analisis kebutuhan penulis merumuskan kebutuhan software, hardware dan aplikasi yang digunakan untuk menyelesaikan permasalahan yang ditemukan pada identifikasi masalah antara lain:
1. Kebutuhan Software
Ada beberapa Software yang digunakan penulis untuk membuat aplikasi diantaranya:
a. Microsoft Windows 10 Pro 64bit sebagai sistem operasi.
b. Unity 2D
c. Visual Studio 2019
d. C# sebagai bahasa pemrograman
e. Android SDK, sebagai development kit aplikasi
2. Kebutuhan Hardware
Adapun hardware yang digunakan penulis untuk menjalankan software dan aplikasi sebagai berikut:
a. Laptop HP Notebook dengan processor AMD A6-7310 CPU 2.0GHz b. RAM (Random Access Memory) 8 Gigabyte
c. VGA (Video Graphic Array) AMD Radeon R4 Graphics d. SSD 250 Gigabyte
e. Smartphone Redmi Note 8 (2019) sebagai media melakukan percobaan aplikasi
3.2. Desain
Ketika aplikasi game berbasis android ini diimplementasikan ke dalam bentuk package apk. Maka disini penulis merancang diagram terlebih dahulu dengan menggunakan UML (Unified Modelling Language) yang pemodelan nya dapat dikelompokkan dalam 3 kategori structure diagram seperti deployment diagram, behaviour diagrams seperti use case diagram, activity diagram dan interaction diagrams seperti sequence diagram. Tahap perancangan bertujuan untuk memenuhi kebutuhan user dan memberikan gambaran yang jelas mengenai aplikasi yang akan dibuat. Keseluruhan dari perancangan ini akan diimplementasikan dalam smartphone berbasis android menggunakan software Unity 2D.
3.2.1. Rancangan Algoritma
Algoritma Finite State Machine sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), event (Kejadian), dan action (aksi).
Pada satu saat dalam periode waktu yang signifikan, sistem akan berada pada satu
state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika
mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau
komponen dalam sistemnya itu sendiri. Transisi keadaan ini umumnya juga disertai
oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi
yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian
proses yang relatif kompleks. Pada kasus yang dianalisa ini di misalkan ketika NPC
musuh diserang oleh player maka musuh akan menyerang balik player, berikut
adalah desain algoritma dari kasus:
public void Damage() {
Debug.Log("Skeleton: :Damage()");
//substract 1 from health Health--;
anim.SetTrigger("Hit");
//if enemy hit isHit = true;
//the enemy will attack the player anim.SetBool("InCombat", true);
//if health is less than 1 //destroy the object if (Health < 1) {
isDead = true;
anim.SetTrigger("Death");
}
3.3.3. Arsitektur Perangkat Lunak
A. Pseudo code Algoritma
Pseudo code algoritma dapat ditujukan sebagai berikut:
//Waypoint
Protected Transform pointA, pointB //if current posistion == point A //move to point B
public virtual void Movement()1 {
if (transform.position == pointA.position)2 {
currentTarget = pointB.position;3 anim.SetTrigger("Idle");
}
//if current position == point B //move to point A
Else if (transform.position == pointB.position)4 {
currentTarget = pointA.position;5 anim.SetTrigger(“Idle”);
}
//check for distance between player and enemy //if greater than 2
//is hit = false //in combat = false
float distance = Vector3.Distance(transform.localPosition, player.transform.localPosition);
if (distance > 2.0f) {
isHit = false;
anim.SetBool("InCombat", false);
}
//if health is less than 1 //destroy the object if (Health < 1) {
isDead = true;
anim.SetTrigger("Death");
}
B. Pemodelan UML
1. Use Case Diagram Aplikasi Game “Dungeon Escape”
Use Case Diagram digunakan untuk menggambarkan interaksi antara user dan sistem yang dibuat
Gambar III.1 Use Case Diagram
2. Activity Diagram Memulai Permainan
Gambar III.2 Activity Diagram Menu Mulai Permainan
4. Activity Diagram Menu Bantuan
Gambar III.3 Activity Diagram Menu Bantuan
4. Activity Diagram Menu Tentang
Gambar III.4 Activity Diagram Menu Tentang
5. Activity Diagram Menu Keluar
Gambar III.5 Activity Diagram Menu Keluar
6. Sequence Diagram Mulai
Gambar III.6 Sequence Diagram Mulai
7. Sequence Diagram Menu Mulai Permainan
Gambar III.7 Sequence Diagram Menu Mulai Permainan
8. Sequence Diagram Menu Bantuan
Gambar III.8 Sequence Diagram Menu Bantuan
9. Sequence Diagram Menu Tentang
Gambar III.9 Sequence Diagram Menu Tentang
10. Deployment Diagram
Gambar III.10 Deployment Diagram
3.3.4. Antarmuka Pengguna
User Interface pada aplikasi ini dirancang sangat sederhana supaya memberikan kesan kemudahan bagi user dalam penggunaannya. Berikut user interface yang penulis buat dalam aplikasi ini seperti:
1. Menu Utama
Pada halaman menu utama pada aplikasi ini, menampilkan empat menu pilihan yang terdiri Start, Help, About, Quit.
Gambar III.11 Menu Utama
2. Tampilan Gameplay
Gambar III.12 Gameplay
3. Tampilan Menu Bantuan
Gambar III.13 Menu Bantuan
4. Tampilan Menu Tentang
Gambar III.14 Menu Tentang
3.3. Pengujian
1. Black Box
Teknik pengujian Black box, dimana pengujian ini bertujuan untuk fungsi
perangkat lunak tentang cara beroperasi, apakah pemasukan data keluaran telah
berjalan sebagaimana yang diharapkan. Berikut ini tabel rencana pengujian dari
aplikasi game “Dungeon Escape”:
Tabel III.1 Rencana Pengujian Aplikasi
No Kelas Uji Detail Pengujian Jenis Uji
1. Start Button Menampilkan Arena Permainan Black Box 2. Help Button Menampilkan Menu Bantuan Black Box 3. About Button Menampilkan Menu Tentang Black Box 4. Exit Button Keluar dari aplikasi
permainanBlack Box 5.
Character
Pengujian kunci tombol berdasarkan input dari smartphone untuk mengendalikan
karakter
Black Box
Tabel III.2 Rencana Pengujian Enemy
No Kelas Uji Detail Pengujian Jenis Uji
1. Idle Idle White Box
2. Berjalan Berjalan dari titik A ke titik B White Box
3. Menyerang
Jika karakter utama menyerang, musuh akan menyerang balik
White Box
4. Kembali berjalan
Jika karakter utama berjarak lebih dari 2, maka musuh akan kembali
berjalan
White Box
2. Hasil Pengujian Black Box
Berdasarkan rencana pengujian aplikasi yang telah disusun, maka dapat dilakukan beberapa tahap pengujian sebagai berikut:
1. Pengujian Tombol Menu Mulai Permainan
Tabel III.3 Pengujian Tombol Mulai Permainan
Hasil Uji
Skenario Uji Test Case Hasil Yang diharapkan Keterangan
Start Button Menampilkan arena permainan
Memulai permainan Valid
Tabel III.4 Pengujian Tombol Bantuan
Hasil Uji
Skenario Uji Test Case Hasil yang diharapkan
Keterangan
Help Button Menampilkan Menu Bantuan
Tampil Menu Bantuan
Valid
Tabel III.5 Pengujian Tombol Tentang
Hasil Uji
Skenario Uji Test Case Hasil yang diharapkan
Keterangan
About Button Menampilkan Menu Tentang
Tampil Menu Tentang
Valid
Tabel III.6 Pengujian Tombol Keluar
Hasil Uji
Skenario Uji Test Case Hasil yang diharapkan
Keterangan
Quit Button Keluar dari aplikasi game
Keluar dari aplikasi game
Valid
Tabel III.7 Pengujian Karakter Utama
Hasil Uji
Skenario Uji Test Case Hasil yang diharapkan
Keterangan
Joystick → Menggerakkan Karakter Utama
ke kanan
Karakter utama bergerak ke
kanan
Valid
Joystick ← Menggerakkan Karakter Utama
ke kiri
Karakter utama bergerak ke kiri
Valid
Jump Melompatkan karakter utama
Karakter utama melompat
Valid
Attack Melakukan serangan
Karakter utama melakukan
serangan
Valid
Tabel III.8 Pengujian Karakter Musuh
Hasil Uji
Skenario Uji
Test Case
Hasil yang diharapkan
Keterangan
Idle
Idle Musuh Idling Valid
Berjalan
Berjalan dari titik A ke B
Musuh berjalan dari titik A ke
titik B
Valid
Menyerang
Musuh menyerang balik
jika terserang oleh karakter
utama
Musuh menyerang karakter utama
Valid
Kembali Berjalan
Musuh kembali berjalan jika karakter utama berjarak 2 atau
lebih
Musuh berjalan Valid
2. White Box
Pada pengujian Whitebox ini yang penulis uji adalah perintah procedural dari keseluruhan program secara utuh untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang dirancang. Grafik alir pada Whitebox adalah sebagai berikut:
Gambar III.15 Flowchart Enemy
Gambar III.16 Flowgraph Enemy
Kompleksitas siklomatis atau pengaturan kuantitatif terhadap kompleksitas logis suatu program, dari flowgraph dapat diperoleh dengan perhitungan:
Dimana:
E : Jumlah edge flowgraph yang ditanda kan denga gambar panah
N : Jumlah simpul flowgraph yang ditanda kan dengan gambar lingkaran.
Sehingga kompleksitas siklomatisnya adalah:
V(G) = 22 – 19 + 2 = 5
Basis set yang dihasilkan dari jalur independent secara linear adalah jalur sebagai berikut:
1 – 2 – 3 – 4 – 5 – 10 1 – 2 – 3 – 4 – 6 – 10 1 – 2 – 3 – 4 – 6 – 7 – 8 – 10 1 – 2 – 3 – 4 – 6 – 7 – 9 – 10
Simpul telah dieksekusi sekali, berdasarkan ketentuan tersebut diatas dari segi kelayakan software, sistem telah memenuhi syarat.
V(G) = E – N + 2