You are on page 1of 18

1

IMPLEMENTASI ALGORITMA A* HEXAGON NODE PADA NPC DALAM


GAME LEGENDA KRATON CIREBON BERBASIS PC

1.1 Latar Belakang


Keraton Kanoman adalah salah satu dari dua bangunan kesultanan Cirebon,
setelah berdiri keraton Kanoman pada tahun 1678 M kesultanan Cirebon terdiri
dari keraton Kasepuhan dan keraton Kanoman. Kebesaran Islam di Jawa bagian
barat tidak lepas dari Cirebon. Sunan Gunung Jati adalah orang yang bertanggung
jawab menyebarkan agama Islam di Jawa Barat, sehingga berbicara tentang
Cirebon tidak akan lepas dari sosok Syarif Hidayatullah atau Sunan Gunung Jati.
Keraton Kanoman didirikan oleh Pangeran Mohamad Badridin atau
Pangeran Kertawijaya, yang bergelar Sultan Anom I pada sekitar tahun 1678 M.
Keraton Kanoman masih taat memegang adat-istiadat dan pepakem, di antaranya
melaksanakan tradisi Grebeg Syawal,seminggu setelah Idul Fitri dan berziarah ke
makam leluhur, Sunan Gunung Jati di Desa Astana, Cirebon Utara. Peninggalan-
peninggalan bersejarah di Keraton Kanoman erat kaitannya dengan syiar agama
Islam yang giat dilakukan Sunan Gunung Jati, yang juga dikenal dengan Syarif
Hidayatullah.
Namun disayangkan informasi mengenai Keraton Kanoman yang ada
dinilai kurang interaktif dan menarik maka diperlukan teknologi yang dapat
memberikan informasi yang menarik dan interaktif.
Seiring dengan kemajuan teknologi yang semakin pesat, kini teknologi
mampu mengadopsi proses dan cara berpikir seperti manusia yaitu artificial
intellegence (kecerdasan buatan). Tanpa memiliki kemampuan untuk menalar
dengan baik, manusia dengan segudang pengalaman dan pengetahuan tidak akan
dapat menyelesaikan masalah dengan baik. Salah satu algoritma kecerdasan
buatan yang dapat digunakan pada game petualangan yaitu algoritma A*.
Algoritma A* adalah algoritma pencarian graf yang menemukan jalur dari node
2

awal ke
node akhir. Algoritma ini menggunakan fungsi heuristik untuk menentukan
urutan dimana pencarian dilakukan dengan mengunjungi node dalam graf.
Game adalah permainan yang menggunakan media elektronik, merupakan
sebuah hiburan berbentuk multimedia yang di buat semenarik mungkin agar
pemain bisa mendapatkan sesuatu sehingga adanya kepuasaan batin. Bermain
game merupakan salah satu sarana pembelajaran.
Adventure Game atau game petualangan adalah permainan game yang
bertema petualangan. Dalam game ini banyak menghadirkan aksi dalam
petualangan seperti menjelajah tempat-tempat baru berupa pulau, lautan, hutan
atau bangun yang bisa dilakukan oleh player. Salah satu elemen yang membuat
genre game petualangan ini menarik adalah dukungan grafis desain 3D.
NPC (Non Player Character) merupakan karakter dalam suatu game atau
simulasi yang perilakunya tidak dapat dikendalikan oleh user. Contoh yang paling
banyak ditemui dalam suatu game adalah musuh yang dihadapi ketika bermain
game. Keberadaan NPC seringkali menjadi faktor yang menyebabkan user
memainkan game tersebut terus – menerus.
Dengan berkembangnya kemajuan teknologi khusunya game, saat ini lebih
diminati untuk dijadikan sebagai media hiburan ataupun media pembelajaran.
Namun sangat disayangkan permainan yang mengusung latar tempat bersejarah
belum banyak diadaptasi kedalam sebuah game petualangan. Sehingga belum
banyaknya game petualangan yang dapat memberi pengetahuan mengenai tempat
atau situs yang mempunyai nilai sejarah tentang peradaban umat manusia.
Berdasarkan uraian diatas maka dengan demikian penelitian ini diberi judul
“IMPLEMENTASI ALGORITMA A* HEXAGON NODE PADA NPC DALAM
GAME LEGENDA KRATON CIREBON BERBASIS PC”.
3

1.2 Identifikasi Masalah


Berdasarkan uraian latar belakang masalah tersebut, Maka dapat
dirumuskan beberapa identifikasi masalah sebagai berikut :
1. Masih sedikitnya game yang mengangkat situs bersejarah untuk dijadikan
map dan item dalam sebuah game.
2. Belum ada game yang mengangkat situs taman pubakala cipari untuk
dijadikan sebuah game petualangan.
3. Masih sedikitnya game pertualangan tentang situs bersejarah yang
menggunakan desain 3D pada gamenya.
4. Belum banyaknya algoritma A* yang diterapkan pada NPC dalam sebuah
game petualangan.
1.3 Batasan Masalah
Batasan masalah ini dibuat untuk membatasi ruang lingkup permasalahan
yang akan diteliti dan dikembangkan oleh penulis, maka batasan masalah dari
penelitian ini adalah sebagai berikut :
1. Algoritma A* (Star) hanya digunakan untuk pergerakan NPC.
2. Game petualangan berbasis desktop PC.
3. Single player atau hanya bisa dimainkan oleh satu orang dan berjalan secara
offline atau tidak membutuhkan koneksi internet.
4. Game dibangun dengan tampil 3D dengan pembuatan asset item, character,
dan map 3D menggunakan Autodesk 3Ds Max dan Unity 3D.
5. Tidak semua map atau latar tempat dan item atau benda yang ada situs taman
purbakala cipari dijadikan objek game.
6. Dalam game hanya terdapat 3 level yang dibedakan dari latar tempat yang
digunakan.
4

1.4 Pertanyaan Penelitian


Berdasarkan latar belakang diatas, maka terdapat pertanyaan penelitian
yaitu:
1. Bagaimana membuat game yang dapat memberi pendidikkan bagi
penggunanya ?
2. Bagaimana membuat sebuah game petualangan 3D menggunakan Bahasa
pemrograman C# dan Unity 3D ?
3. Apakah game the lost stone dapat memberikan pengetahuan tentang situs
taman purbakala cipari ?
1.5 Rumusan Masalah
Berdasarkan latar belakang diatas, maka dapat dirumuskan masalah yang
akan menjadi pokok permasalahan sebagai berikut :
1. Bagaimana membuat game dengan map dan item dari keraton kanoman
cirebon?
2. Bagaimana menerapkan Algoritma A* pada pergerakan NPC (Non Player
Character)?
1.6 Metodologi Penelitian
1.6.1 Metode Pengumpulan Data
Berdasarkan latar belakang diatas maka metode pengumpulan data
yang dilakukan untuk pengumpulan data dalam penelitian ini adalah :
1. Metode Kepustakaan
Memilih jurnal dan buku referensi yang sesuai dengan judul
penelitian. Sehingga dengan membaca buku, modul, literatur lainnya
melalui perpustakaan maupun internet yang berhubungan dengan
masalah yang dibahas tersebut, sehingga diperoleh informasi yang
berkaitan dengan penelitian ini.
2. Metode Observasi
5

Selain mendapatkan informasi dari buku maupun jurnal yang dijadikan


sebagai referensi, penulis juga memperoleh informasi melalui teknik
observasi yang dilakukan pada taman purbakala Cipari yang meliputi
bangunan musium, halaman depan, dan benda – benda yang ada
dimusium taman purbakala cipari. Melalui pengamatan dan pencatatan
data oleh penulis terhadap peristiwa yang diselidiki pada objek
penyusunan. Dengan demikian, penulis dapat membandingkan secara
langsung informasi yang didapat dari buku dan jurnal referensi dengan
informasi yang diperoleh pada saat observasi.
3. Metode Wawancara
Pengumpulan data yang lakukan dengan cara berkomunikasi di
dalamnya, terdapat tanya jawab langsung dengan bapak Wawan
sebagai pengurus musium Cipari yang dianggap mampu memberikan
informasi yang lebih terinci terhadap permasalahan yang sedang
diteliti.
1.6.2 Metode Pengembangan Perangkat Lunak
Metode pengembangan perangkat lunak yang digunakan oleh
penulis dalam penelitian ini adalah pendekatan Rational Unified Proces
(RUP). Rational Unified Process (RUP) merupakan suatu metode
rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan
berbagai best practises yang terdapat dalam industri pengembangan
perangkat lunak. Ciri utama metode ini adalah menggunakan use-case
driven dan pendekatan iteratif untuk siklus pengembangan perankat lunak.
Gambar dibawah ini menunjukkan secara keseluruhan arsitektur yang
dimiliki RUP. (sumber : Taryana, Sunarya. (2007), “Metode RUP”)
6

Gambar 1.1 Arsitektur RUP (Taryana, Sunarya)

Pada metode Rational Unified Process memiliki empat tahap


dalam pengembangan perangkat lunak yaitu :
1. Inception (Pengumpulan data)
Tahap ini merupakan tahap paling awal dimana pada tahap ini
dilakukan proses pengumpulan data yang akan dilakukan pada
penelitian ini yaitu dengan cara wawancara, observasi dan studi
pustaka.
2. Elaboration (Analisis dan Desain)
Tahap ini lebih difokuskan pada perencanaan arsitektur sistem, serta
dapat mendeteksi resiko yang mungkin terjadi pada projek tahap ini
merupakan tahap paling kritis karena tujuannya yaitu untuk
menganalisa masalah.. Di tahap ini pula akan mulai dilakukan rancang
bangun perangkat lunak secara iterative melalui aktifitas-aktifitas
seperti busines modeling, requirements, analysis dan design. Sistem
dirancang menggunakan UML, algoritma yang digunakan adalah A*
yang diterapkan pada pergerakan NPC dalam game. Dan rencana yang
7

dilakukan cukup stabil dan dapat mengurangi resiko sehingga dapat


memprediksikan biaya dan jadwal yang dibutuhkan.
3. Contruction (Coding dan Implementasi)
Pada tahap contruction ini merupakan tahap untuk membangun
perangkat lunak sampai dengan saat perangkat lunak siap digunakan.
Serta lebih difokuskan pada pengembangan komponen dan fitur-fitur
sistem. Tahap ini lebih pada implemantasi dan pengujian sistem yang
fokus pada implementasi perangkat lunak pada kode program. Bahasa
pemrograman yang digunakan untuk pembuatan game ini
menggunakan Bahasa pemrograman C#. Tahap ini menghasilkan
produk yang akan diserahkan kepada user.
4. Transition (Testing dan Maintenance)
Tahap transition ini merupakan tahap terakhir dimana difokuskan pada
bagaimana cara menyampaikan perangkat lunak yang sudah jadi
kepada user. aktifitas yangdilakukan pada tahap ini yaitu memberikan
pelatihan kepada user, pemeliharaan dan pengujian apakah sistem
sudah sesuai dengan harapan user.
1.6.3 Metode Penyelesaian Masalah
Metode penyelesaian masalah yang digunakan oleh penulis adalah
dengan menggunakan algoritma A* (Star). Algoritma ini merupakan
algoritma Best First Search yang menggabungkan Uniform Cost Search
dan Greedy Best-First Search. Biaya yang diperhitungkan didapat dari
biaya sebenarnya ditambah dengan biaya perkiraan. Dalam notasi
matematika dituliskan sebagai: f(n) = g(n) + h(n). Dengan perhitungan
biaya seperti ini algoritma A* adalah complete dan optimal.
Sama dengan algoritma dasar Best First Search, Algoritma A* ini
juga menggunakan dua array: OPEN dan CLOSED. Terdapat tiga kondisi
bagi node yang dibangkitkan yaitu sudah berada di OPEN, sudah berada
8

di CLOSED, dan tidak berada di OPEN dan CLOSED. Pada ketiga kondisi
tersebut diberi penanganan yang berbeda-beda.
Jika node sudah berada di OPEN, maka dilakukan pengecekan
apakah perlu dilakukan perubahan parent atau tidak tergantung pada nilai
g-nya melalui parent lama atau parent baru. Jika melalui paremt baru
memberikan nilai g yang lebih kecil, maka dilakukan perubahan parent.
Jika pengubahan parent dilakukan pula perbaruan nilai g dan f pada
suksesor tersebut. Dengan perbaruan ini, node tersebut memiliki
kesempatan yang lebih besar untuk terpilih sebagai simpul terbaik (best
node).
Jika node sudah pernah berada di CLOSED, maka dilakukan
pengecekan apakah perlu pengubahan parent atau tidak. Jika ya, maka
dilakukan perbaruan nilai g dan f pada node tersebut serta pada semua
“anak cucunya” yang sudah berada di OPEN. Dengan perbaruan ini, maka
semua anak cucunya memiliki kesempatan yang lebih besar untuk terpilih
sebagai simpul terbaik (best node).
Jika node tidak berada di OPEN maupun CLOSED, maka node
tersebut dimasukkan ke dalam OPEN. Tambahkan node tersebut sebagai
node tetangganya best node. Hitung biaya node tersebut dengan rumus f =
g + h. Algoritma A* Optimal (selalu bisa menemukan solusi jika solusinya
memang ada). Tanpa ada batasan waktu dan memori, A* adalah complete
(selalu menemukan solusi jika solusinya ada). Untuk masalah yang lebih
kompleks seperti 100 juta node atau target bergerak A* akan menghadapi
masalah waktu proses dan memori.

Beberapa istilah di A* ,OPEN = List sementara dari node yang


telah dievaluasi termasuk Start Node, CLOSED = List dari node yang telah
dievaluasi, Node = simpul, Node Awal = node dimulainya pencarian jalur,
Node Tujuan = node diakhirinya pencarian jalur, g = biaya dari node Awal
9

ke node sekarang, h = biaya dari node ke node tujuan, f = g + h. Berikut


merupakan flowchart Algoritma A* (Star) :
10

Gambar 1.2 : Flowchart A*


11

Contoh kasus dalam game:

Langkah 1 :

Gambar 1.3 : Arena kosong

Penyebutan kotak di arena, pertama menyebutkan huruf dulu baru


kemudian angka. Misalnya kotak di pojok kanan atas disebut kotak A 1
dan seterusnya. Untuk selanjutnya petunjuk huruf dan angka tidak akan
ditulis lagi.

Berikut adalah salah satu contoh arena sederhana yang akan digunakan di
dalam game. Kotak berwarna biru adalah starting node (yang bertuliskan
A atau bisa disebut kotak H 5) kotak berwarna hijau adalah goal node
(yang bertuliskan B atau bisa disebut kotak E 2), dan kotak berwarna
hitam adalah penghalang atau kotak yang tidak bisa dilalui (D 2, D 3, E 3,
F 3, G 3, H 3). Tujuan dari algoritma ini adalah mencari jalur terpendek
dari start node (node awal) ke goal node (node tujuan) tanpa melalui
penghalang. Start Node kita masukkan ke OPEN.
12

Gambar 1.4 : Area dengan node awal (A) dan node akhir (B)

Langkah 2 :

Setiap langkah dari kotak biru atau starting node adalah diizinkan baik
vertikal, horizontal, maupun diagonal dengan catatan tidak melewati
penghalang. Setiap langkah yang diizinkan diberikan nilai G dimana G
adalah cost / biaya dalam setiap langkah. Dalam game ini kita berikan
nilai 10 untuk setiap langkah vertikal maupun horizontal dan 14 untuk
diagonal. Nilai 14 kita dapatkan dari rumus pythagoras dimana 14,1421
√ 102 +102 yang dibulatkan ke bawah menjadi 14. Kemudian kita hitung
cost / biaya pergerakan atau kita sebut H dimana H secara singkat adalah
jarak / biaya dari pergerakan suatu titik terhadap goal node dengan
mengabaikan penghalang. Lalu kita berikan skor dengan F dimana nilai F
= G + H. Nilai F dimasukkan untuk setiap node yang dibangkitkan.
Penjelasan lebih lanjut mengenai penempatan F, G, dan H di kotak
dibawah:

F=G+H

G = Jarak dari start node

H = Jarak dari goal node


13

Gambar 1.5 : Penempatan F, G, H

Kotak yang berwarna ungu berarti berada di OPEN, sedangkan kotak yang
berwarna merah berada di CLOSED. Start Node kita masukkan ke
CLOSED, selanjutnya kita bangkitkan semua tetangga dari Start Node
yaitu G 4, G 5, G 6, H 4, H 6, I 4, I 5, I 6 lalu hitung f, g, h nya. Periksa
semua Node Tetangga dari Current Node, Jika terdapat Node tidak dapat
dilalui dilewat langsung ke Node selanjutnya. Jika tidak dan terdapat di
CLOSED juga dilewat langsung ke Node selanjutnya. Jika tidak hitung
temp_g = g[Current]+jarak_antara(Current, Node(i)). Jika Node tidak
terdapat di OPEN tambahkan Node ke OPEN dan atur temp_better = true,
Jika tidak temp_g_score < g_score Node atur temp_better = true, Jika
tidak semua atur temp_better = false. Jika temp_better == true atur parent
dari Node ke Current Node kemudian g Node = temp_g, lanjut h Node =
nilai heuristik antara Node dan Current dan terakhir f Node = g Node + h
Node.
14

Gambar 1.6 : Langkah pertama dari node awal

OPEN = [G 4, G 5, G 6, H 4, H 6, I 4, I 5, I 6]

CLOSED = [H 5]

Langkah 3

Ulang langkah 2 hingga OPEN == null(kosong) atau Current Node ==


Goal Node. Jika OPEN == null maka jalur gagal ditemukan, Jika Current
Node == Goal Node maka jalur ditemukan dan buat jalur secara backtrack
dari Start Node ke Goal Node.

Gambar 1.7 : Perulangan ke-1

OPEN = [F 4, F 5, G 5, G 6, H 4, H 6, I 4, I 5, I 6]

CLOSED = [H 5, G 4]
15

Gambar 1.8 : Perulangan sampai ke node B

OPEN = [C 3, C 4, C 6, D 5, D 6, E 1, E 6, F 1, F 6, G 1, H 1, I 1, I 2,
I 6, J 2, J 3, J 4, J 5, J 6]

CLOSED = [D4, E4, E 5, F 2, F 4, F 5, G 2, G 4, G 5, G 6, H 2, H 4, H 5,


H6, I 3, I 4, I 5]

Gambar 1.9 Jalur ke node B ditemukan

Jalur : [ H 5, I 4, I 3, H 2, G 2, F 2, E 2]
16

1.7 Hipotesis Penelitian


Berdasarkan pernyataan penelitian diatas maka terdapat hipotesis sebagai
berikut :
1. Algoritma A* (Star) dapat digunakan untuk pergerakan NPC dalam game
petualangan the lost stone.
2. Game tersebut dapat digunakan sebagai pengenalan tentang situs taman
purbakala cipari.
1.8 Tujuan Penelitian
Tujuan dari penelitian ini adalah membangun sebuah game petualangan
yang dapat digunakan untuk pengenalan situs taman purbakala cipari. Dan
menerapkan algoritma A* (Star) pada pergerakan NPC (Non Player Character)
dalam sebuah game petualangan.
1.9 Manfaat Penelitian
Manfaat dari penelitian ini yaitu :
1. Bagi pengguna
a. Game ini dapat menjadi sarana hiburan sebagai game petualangan.
b. Memberikan informasi mengenai benda / objek yang ada di taman
purbakala cipari.
c. Memberikan pendidikan tentang sejarah peradaban manusia.
2. Bagi peneliti lainnya
a. Game ini dapat menjadi referesi untuk membuat game petualangan
yang mempunyai nilai pengetahuan tentang sejarah.
17

1.10 Jadwal Kegiatan Penelitian


Penelitian ini dilakuakan dalam waktu yang terhitung sejak bulan April 2021,
dengan ketetuan sebagai berikut :

Tabel 1.1 : Jadwal penelitian

Bulan
No Kegiatan April Mei Juni Juli Agustus
4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1 Inception
2 Elaboration
3 Construction
4 Transition
5 Laporan akhir
18

Daftar Pustaka

Ibnu Zakifardan. (2016), Implementasi Algoritma Dynamic Weighting A* untuk


pencarian rute terpendek pada NPC dan fisher – yates shuffle untuk
pengaturan konten pada game 3d finding diamond.

Philippe Krutchen. (2010), The Rational Unified Process: An Introduction (2nd


edition).

Riwinto, Alfian. Implementasi path finding dengan algoritma A* pada game funny
English Menggunakan unity 3d berbasis graf navmesh.

Suyanto. (2011). Artificial Intellligence Searching – Reasoning – Planning –


Learning Edisi Revisi. Bandung: Informatika.

Taryana, Sunarya. (2007), Metode RUP”, STIMIK LIKMI, Bandung.

You might also like