TAPPDF.COM PDF DOWNLOAD IMPLEMENTASI NON PLAYER CHARACTER PADA GAME ... FTI UAJY
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
IMPLEMENTASI NON PLAYER CHARACTER PADA GAME PERTARUNGAN
GALAH ASIN MENGGUNAKAN LOGIKA FUZZY
Nomo Haga A.G1, Yulison Herry C2, Rezki Yuniarti3
Jurusan Informatika, Fakultas MIPA, UniversitasJenderal Achmad Yani
Jl.Terusan Jenderal Achmad Yani, Cimahi, Jawa Barat 40285
Telp.(022)6652069
E-mail: haganamikaze@gmail.com, y.chrisnanto@gmail.com, rezkiy@gmail.com
ABSTRAKS
Galah asin adalah permainan tradisional yang berasal dari Indonesia permainan yang memerlukan 2 kelompok
pemain dan saling menjaga dan menyerang yang biasa dimainkan di lapangan luas yang telah diberi garis
pembatas, akan tetapi permainan ini sudah mulai dilupakan karena perkembangan zaman yang semakin maju
dan berkembang. Saat ini sangan banyak permaina yang menggunakan system virtual dengan menggunakan
berbagai macam game console dan saat ini permainan yang berbasis smartphone semakin digemari dikalangan
masyarakat. Sebuah permainan virtual akan sangat menyenangkan apabila permainan tersebut memiliki NPC
yang cerdas yang dapat memberikan perlawan terhadap pemain sehingga permainan akan menjadi cukup sulit
untuk dimenangkan oleh player. Untuk memberikan kecerdasan pada NPC dapat diterapkan logika Fuzzy yang
merupakan cabang dari ilmu kecerdasan buatan (AI). Telah banyak penelitian yang menggunakan metode
tersebut untuk membuat kecerdasan pada NPC dari berbagai macam genre game seperti action, fighting dan
lain-lain. Pada penelitian ini logika fuzzy akan menghasilkan nilai yang mempresentasikan prilaku dari NPC
yaitu mengejar atau tidak mengejar dari hasil fuzzy akan menetukan perilaku dari karakter dan NPC. dengan
menggunakan himpunan fuzzy jarak NPC, stamina karakter, kecepatan NPC dan juga stamina NPC, jarak
karakter, status penjagaan NPC.dilakukan percobaan dengan menggunakan contoh data uji yaitu dengan
menguji nilai himpunan fuzzy jarak NPC = 76, stamina karakter = 67, kecepatan NPC = 13 dan di peroleh hasil
defazzifikasi sebesar 10 dimana prilaku akan melakukan pengejaran oleh NPC. Pada penelitian ini telah di
dapat beberapa keberhasil, masih terdapat kekurangan seperti lamanya tindakan yang dilakukan oleh NPC
sehingga membuat penjagaan menjadi sedikit lebih longgar.
Kata Kunci: Fuzzy, Game, NPC, Galah Asin
action, fighting. Salah satu penelitian terdahulu yaitu
game gerilya yang menerapkan logika Fuzzy,
menerapkan logika Fuzzy untuk menetukan
keputusan stategi apa yang digunakan NPC untuk
melawan pemain[2]. dan pada penelitian terdahulu
yang lain logika Fuzzy diterapkan untuk agar agen
atau NPC dalam game dapat melakukan respon
terhadap lingkungan sekitarnya[3], pada game
bertema RPG fuzzy digunakan untuk menetukan
kapan NPC harus maju dan mundur[4], penggunaan
logika fuzzy pun dapat digunakan untuk meniru
perilaku manusia dalam sebuah permainan seperti
keputusan apa yang akan di pilih manusia[5].
Pergerakan otonom yang cerdas dari NPC sangat
penting sehingga membuat permainan menjadi lebih
menarik. Dalam penelitian ini pergerakan NPC
sudah ditetapkan pada jalur-jalur garis yang ada dan
dari jalur garis tersebut harus dapat menghalangi
pemain yang akan menerobos untuk melewati NPC.
Pada penelitian ini akan dibagun sebuah game
tradisional Indonesia yaitu permainan galah asin
yang memiliki NPC yang dapat bergerak
menghalangi musuh secara otonom.
1. PENDAHULUAN
1.1 Latar Belakang
Banyak permainan tradisional yang ada di
wilayah Indonesia salah satu permainan tradisional
yang ada di wilayah nusantara adalah permainan
galah asin, permainan ini adalah permainan dua
kelompok dimana satu kelompok menjadi penyerang
dan kelompok lain menjadi penjaga pertahanan, saat
ini permainan tradisional sudah hampir terlupakan
dikarenakan mulai tergesernya permainan tradisional
dengan teknologi yang lebih modern[1].
Dewasa ini perkembangan game virtual sangat
pesat tidak hanya di playstation, komputer, X-box
ataupun game console lainnya. Perkembangan game
yang berbasis pada smartphone yang memakai
sistem operasi android saat ini berkembang dengan
sangat pesat. Untuk membuat game yang menarik
banyak game yang memiliki NPC (Non Player
Character) yang dapat bergerak secara pintar.
Untuk membuat permainan yang memiliki NPC
yang dapat bergerak secara otonom atau pintar maka
NPC harus memiliki kecerdasan buatan (AI). Logika
Fuzzy yang merupakan salah satu bagian dari
kecerdasan buatan yang dapat di terapkan pada
NPC, telah banyak penelititan yang menggunakan
logika Fuzzy untuk diterapkan kedalam pergerakan
NPC dengan berbagai macam tipe permainan seperti
1.2
Rumusan Masalah
Dari latar belakang di atas dapat dirumuskan
masalah yaitu banyaknya atribut yang dilibatkan
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
digunakan pada penelitian ini mencakup 2 jenis
yaitu representasi kurva segitiga dan bentuk bahu.
Untuk pemilihan metode pendekatan fungsi tersebut
disesuaikan dengan kebutuhan dari sistem yang akan
dibangun. Metode pendekatan fungsi yang
digunakan pada penelitian ini terdiri dari :
a. Representasi kurva segitiga
Representasi kurva segitiga merupakan gabungan
dari antara 2 garis linear yaitu garis linear naik dan
linear turun.
dalam pemainan galah asin yang menyebabkan
pengendalian pemainan menjadi lebih kompleks
oleh karena itu perlu dikembangkan NPC yang dapat
bergerak secara otonom yang dikembangkan
berdasarkan logika fuzzy.
1.3
Tujuan Penelitian
Tujuan dari penelitian ini adalah membangun
sebuah game galah asin yang memiliki NPC yang
dapat bergerak secara otonom agar dapat
menghalangi jalur gerak dari pemain yang hendak
melewati NPC tersebut dengan menerapkan logika
Fuzzy
1.4
Metodologi
Pada penelitian ini akan dibangun sebuah game
dengan NPC yang akan bergerak secara otonom
untuk menghalangi musuh yang yang telah berada
dalam jangkauan sesuai dengan hasil yang telah di
proses oleh perhitungan logika Fuzzy untuk prediksi
pergerakan karakter pemain agar dapat dihalangi
oleh NPC.
Gambar 1.2 Representasi kurva segitiga
Fungsi keanggotaan :
b.
Representasi kurva bentuk bahu
Representasi kurva bentuk bahu digunakan untuk
mengakhiri dan mengawali variabel suatu daerah
fuzzy yang terbagi menjadi dua bahu yaitu bahu
kanan dan kiri.
Gambar 1.1 Alur Proses Sistem Game Galah
Asin
Gambar 1.3 Representasi kurva bahu
1.5
Tinjauan Pustaka
Logika fuzzy merupakan suatu metode yang
digunakan untuk memecahkan masalah yang
mengandung
ketidakpastian
atau
memiliki
ambiguitas. Logika fuzzy mengacu pada teori
himpunan fuzzy. Teori ini menyatakan bahwa derajat
keanggotaan dari suatu elemen himpunan bukanlah
hanya terdiri dari 0 dan 1 (bukan anggota himpunan
dan anggota himpunan), namun dalam rentang
antara 0 dan 1.Pada teori himpunan fuzzy, peranan
derajat keanggotaan sebagai penentu keberadaan
elemen dalam suatu himpunan sangatlah penting.
Derajat keanggotaan berisi hasil klasifikasi
pemecahan masalah yang dicari melalui sistem
inferensi fuzzy menggunakan fungsi keanggotaan
dimana akan menghasilkan suatu nilai keanggotaan.
Terdapat beberapa metode yang digunakan untuk
mendapatkan nilai keanggotaan tersebut yaitu
dengan
menggunakan
pendekatan
fungsi
keanggotaan.Pendekatan fungsi keanggotaan yang
Fungsi keanggotaan:
Bahu kiri
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
digunakan pada sistem untuk dapat menghasilkan
keluaran berupa kecepatan NPC dan karakter
didapat dari nilai status yang dimiki oleh karakter
pemain seperti variabel berat badan dan variabel
stamina. Variabel berat badan dibagi dalam tiga
himpunan yaitu kurus, sedang dan gemuk sedangkan
untuk variabel stamina dibagi dalam tiga himpunan
yaitu lemah, sedang dan kuat. Proses menggunakan
logika fuzzy model sugeno terdiri dari beberapa
proses yaitu:
Bahu kanan
Domain merupakan keseluruhan nilai yang ada
didalam suatu himpunan fuzzy pada suatu variabel
fuzzy.
2.
PEMBAHASAN
Pada penelitian ini, akan dibahas tentang
pergerakan NPC berupa penjagaan untuk
menghalangi pemain saat hendak melewati garis
penjagaan. NPC akan mulai bergerak setelah
karakter pemain mulai bergerak untuk melewati
NPC, pergerakan NPC akan sesuai dengan keadaan
karakter pemain yang masuk dalam jangkauan NPC
dimana NPC harus bergerak mengejar atau bergerak
untuk bersiaga. Untuk menghasilkan pergerakan
pada NPC terdapat dua proses, yaitu proses logika
fuzzy sugeno, pada masing – masing proses terdapat
alur proses yang saling berkaitan, yaitu seperti
gambar dibawah.
1.
Fuzzifikasi
2.
Komposisi Aturan
3.
Defuzzifikasi
Nilai perilaku NPC yang dihasilkan
bergantung pada 3 variabel masukkan yaitu stamina
NPC, jarak karakter, jarak NPC lain yang setiap
variabel dibagi dalam 3 himpunan fuzzy yang dapat
menghasilkan 27 aturan fuzzy dan akan
menghasilkan perilaku yang akan dilakukan NPC
yang terbagi dalam dua himpunan yaitu mengejar
dan tidak mengejar. Terdapat juga basis pengetahuan
yang mengandung pengetahuan untuk dapat
menyelesaikan permasalahan, basis pengetahuan
digunakan untuk membuat kesimpulan.
Tabel 2.1 Basis pengetahuan Fuzzy NPC
Stamina
karakter
Gambar 2.1 Proses pergerakan NPC dan Karakter
2.1
Analisis Proses Logika Fuzzy
Untuk mendapatkan nilai atribut didapatkan
melalui proses logika fuzzy sugeno. Model sugeno
yang akan digunakan adalah model sudeno orde 0
dengan keluaran yang konstanta yang mewakili nilai
atribut dari NPC dan karakter. Masukkan yang
Kecepatan
NPC
Jarak NPC
Kuat
Cepat
Jauh
Kuat
Cepat
Sedang
Kuat
Cepat
Dekat
Sedang
Cepat
Jauh
Sedang
Cepat
Sedang
Sedang
Cepat
Dekat
Lemah
Cepat
Jauh
Lemah
Lemah
Cepat
Cepat
Sedang
Dekat
Kuat
Sedang
Jauh
Kuat
Sedang
Sedang
Kuat
Sedang
Dekat
Sedang
Sedang
Jauh
Sedang
Sedang
Sedang
Sedang
Sedang
Dekat
Lemah
Sedang
Jauh
Lemah
Lemah
Sedang
Sedang
Sedang
Dekat
Kuat
Lambat
Jauh
Kuat
Lambat
Sedang
Kuat
Lambat
Dekat
Perilaku
Berlari
maju
Berlari
maju
Diam
Berlari
maju
Berlari
maju
Diam
Berlari
maju
Diam
Diam
Berlari
maju
Berlari
maju
Berlari
maju
Berlari
maju
Berlari
maju
Diam
Berlari
maju
Diam
Diam
Berlari
maju
Berlari
maju
Berlari
maju
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
Sedang
Lambat
Jauh
Sedang
Lambat
Sedang
Sedang
Lambat
Dekat
Lemah
Lambat
Jauh
Lemah
Lemah
Lambat
Lambat
Sedang
Dekat
Berlari
maju
Berlari
maju
Berlari
maju
Berlari
maju
Diam
Diam
Nilai perilaku karakter yang dihasilkan
bergantung pada 3 variabel masukkan yaitu stamina
karakter, kecepatan penjaga, jarak NPC yang setiap
variabel dibagi dalam 3 himpunan fuzzy yang dapat
menghasilkan 27 aturan fuzzy dan akan
menghasilkan perilaku yang akan dilakukan karakter
yang terbagi dalam dua himpunan yaitu diam dan
berlari maju. Terdapat juga basis pengetahuan yang
mengandung
pengetahuan
untuk
dapat
menyelesaikan permasalahan, basis pengetahuan
digunakan untuk membuat kesimpulan.
Gambar 2.2 Kurva fungsi keanggotaan jarak
karakter
Setelah dihitung nilai dari derajat keanggotaan
jarak karakter maka selanjutnya akan dihitung nilai
derajat keanggotaan dari himpunan stamina NPC
dari kasus uji dengan nilai stamina yaitu 68.
Tabel 2.2 Basis pengetahuan Fuzzy karakter
Stamina
karakter
Kuat
Kuat
Kuat
Sedang
Sedang
Sedang
Lemah
Lemah
Lemah
Kuat
Kuat
Kuat
Sedang
Sedang
Sedang
Lemah
Lemah
Lemah
Kuat
Kuat
Kuat
Sedang
Sedang
Sedang
Lemah
Lemah
Lemah
Kecepatan
NPC
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Jarak
NPC
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
ISSN: 2089-9815
Perilaku
Berlari maju
Berlari maju
Diam
Berlari maju
Berlari maju
Diam
Berlari maju
Diam
Diam
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Diam
Berlari maju
Diam
Diam
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Diam
Diam
Gambar 2.3 Kurva fungsi keanggotaan stamina
NPC
Setelah didapat nilai dari derajat keanggotaan
dari stamina NPC maka selanjutnya adalah mencari
nilai keanggotaan dari status penjagaan NPC dari
contoh data uji diketahui nilai derajat keanggotaan
yaitu 5.
2.2
Proses Logika Fuzzy
Terdapat contoh kasus uji untuk fuzzy
perilaku NPC terdapat nilai jarak karakter yaitu 73
beririsan dengan dengan himpunan fuzzy dekat dan
sedang. untuk itu akan dihitung nilai derajat
keanggotaan sesuai himpunan fuzzy dan berdasarkan
fungsi keanggotaan.
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
keanggotaan dari jarak NPC dengan nilai crisp set
yaitu 76.
0.48
0.52
Gambar 2.4 Kurva fungsi keanggotaan status
penjagaan NPC
Terdapat kasus uji untuk fuzzy karakter
unyuk menguji dan menghitung nilai derajat
keanggotaan dari setiap himpunan fuzzy yang ada
pada fuzzy karakter, petama dicari nilai derajat
keanggotaan dari stamina karakter yang pada contoh
kasus uji mempunyai nilai crisp set yaitu 67.
Gambar 2.7 Kurva fungsi keanggotaan jarak NPC
Setelah ditentukan nilai dari derajat keanggotaan
dari setiap variabel NPC dan karakter pemain
didapatkan nilai yaitu:
Tabel 2.3 Nilai derajat keanggotaan dari fuzzy NPC
Kriteria
derajat
keanggotaan
0.54
Sedang
0.46
Sedang
0.28
Kuat
0.72
Status penjagaan
Kosong
0.5
NPC
Longgar
0.5
Stamina NPC
Proses perhitungan selanjutnya yaitu menghitung
nilai derajat keanggotaan dari himpunan kecepatan
NPC yang memiliki nilai crisp set yaitu 13
Nilai
Dekat
Jarak karakter
Gambar 2.5 Kurva fungsi keanggotaan stamina
karakter
Himpunan Fuzzy
Tabel 2.4 nilai derajat keanggotaan dari fuzzy
karakter
Kriteria
Nilai
Fuzzy
keanggotaan
derajat
Stamina
Sedang
0.32
karakter
Kuat
0.68
Kecepatan NPC
Cepat
1
Dekat
0.48
Sedang
0.52
Jarak NPC
Gambar 2.6 Kurva fungsi keanggotaan kecepatan
NPC
Setelah menghitung derajat keanggotaan dari
himpunan fungsi keanggotaan dari kecepatan NPC
selanjutnya
akan
menghitung
nilai
derjat
Himpunan
Tahapan selanjutnya dari proses logika fuzzy
sugeno yaitu tahapan komposisi aturan yang terbagi
dalam dua proses yaitu proses untuk mendapatkan
nilai terkecil dengan menggunakan fungsi AND dan
proses mencari nilai terbesar dengan menggunakan
fungsi OR .
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
Fungsi AND digunakan untuk mengambil nilai
MIN dari nilai derajat keanggotaan NPC.
Tabel 2.5 Tabel fungsi OR
IF
KONDISI
Tabel 2.5 Tabel fungsi AND
IF
KONDISI
THEN
jarak
karakter
(0.54)
AND
dekat
KEPUTUSAN
prilaku
stamina
perilkau mengejar
perilaku mengejar
(0.28) OR prilaku
(0.28)
perilaku
IF
status penjagaan kosong
mengejar(0.5) OR
(0.46)
(0.54)
AND
peilaku mengejar
THEN
(0.5)
perilaku mengejar
(0.5)
karakter
KEPUTUSAN
mengejar (0.25)
mengejar (0.28)
NPC sedang (0.28) AND
jarak
THEN
dekat
prilaku
stamina
peilaku
mengejar (0.25)
THEN
mengejar
(0.5)
NPC sedang (0.28) AND
status penjagaan longgar
Setelah kompisisi aturan selesai maka tahap
akhir dari proses logika fuzzy sugeno yaitu tahap
defuzzyfikasi, dimana pada tahap ini akan
menghasilkan nilai tegas dengan menggunakan
metode weighted average pada fungsi keanggotaan
singleton sugeno. Hasil yang didapat dari komposisi
aturan akan dimasukkan dalam kurva fungsi
keanggotaan singleton setelah itu dilakukan
perhitungan menggunakan metode weighted
average.
Nilai perilaku NPC berada pada mengejar (0,28)
dan mengejar (0,25), mengejar (0,46) dan mengejar
(0,46) selanjutnya dengan nilai tersebut dilakukan
perhitungan dengan metode weighted average
dengan persamaan seperti dibawah ini.
(0.25)
jarak
karakter
(0.54)
AND
dekat
prilaku
stamina
mengejar (0.5)
NPC kuat (0.72) AND
status penjagaan kosong
(0.5)
jarak
karakter
(0.54)
AND
dekat
prilaku
stamina
mengejar (0.25)
NPC sedang (0.72) AND
status penjagaan longgar
(0.25)
jarak
karakter
sedang
(0.46)
AND
stamina
prilaku
mengejar (0.25)
NPC sedang (0.28) AND
= 10
Z=
status penjagaan kosong
(0.25)
jarak
karakter
sedang
(0.46)
AND
stamina
prilaku
Sedangkan nilai untuk perilaku karakter berada
pada himpunan diam (0.48) dan berlari maju (0.52).
selanjutnya dengan nilai tersebut dilakukan
perhitungan dengan metode weighted average
dengan persamaan seperti dibawah ini.
mengejar (0.28)
NPC sedang (0.28) AND
IF
status
penjagaan
THEN
longgar(0.5)
jarak
karakter
sedang
(0.46)
AND
stamina
prilaku
mengejar (0.46)
Z=
= 7,6
NPC kuat (0.72) AND
status
penjagaan
longgar(0.5)
2.3
jarak karakter sedang
prilaku
(0.46)
mengejar (0.46)
AND
stamina
Algoritma atau Program
Tahap perancangan algoritma adalah tahapan
terakhir untuk pembangunan perangkat lunak.
Berikut perancagan yang akan di implementasikan
pada system game
NPC kuat (0.72) AND
status
penjagaan
longgar(0.5)
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
[2]Alansura R, Nasrun M, Azmi F.”Penerapan
System Inferensi Fuzzy Logic Untuk Menentukan
Pengambilan Keputusan AI Pada Game TurnBased Strategy ” Gerilya” ”.
Procedure defazzifikasi()
{I.S : Nilai setiap himpunan terdefinisi tidak
kosong}
{F.S : mengeubah nilai fuzzy menjadi nilai tegas}
{Kamus}
Z,temp1,temp2 : Real
Output_rule : array[] of integer
u_output : array[] of integer
[3]Widiastuti N.I. “Model Perilaku Berjalan Agen Agen Menggunakan Fuzzy Logic”. Jurnal
Komputer dan Informatika (KOMPUTA)2012.
{Algoritma}
for (i:int = 0 to i < 27)do
temp1
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
IMPLEMENTASI NON PLAYER CHARACTER PADA GAME PERTARUNGAN
GALAH ASIN MENGGUNAKAN LOGIKA FUZZY
Nomo Haga A.G1, Yulison Herry C2, Rezki Yuniarti3
Jurusan Informatika, Fakultas MIPA, UniversitasJenderal Achmad Yani
Jl.Terusan Jenderal Achmad Yani, Cimahi, Jawa Barat 40285
Telp.(022)6652069
E-mail: haganamikaze@gmail.com, y.chrisnanto@gmail.com, rezkiy@gmail.com
ABSTRAKS
Galah asin adalah permainan tradisional yang berasal dari Indonesia permainan yang memerlukan 2 kelompok
pemain dan saling menjaga dan menyerang yang biasa dimainkan di lapangan luas yang telah diberi garis
pembatas, akan tetapi permainan ini sudah mulai dilupakan karena perkembangan zaman yang semakin maju
dan berkembang. Saat ini sangan banyak permaina yang menggunakan system virtual dengan menggunakan
berbagai macam game console dan saat ini permainan yang berbasis smartphone semakin digemari dikalangan
masyarakat. Sebuah permainan virtual akan sangat menyenangkan apabila permainan tersebut memiliki NPC
yang cerdas yang dapat memberikan perlawan terhadap pemain sehingga permainan akan menjadi cukup sulit
untuk dimenangkan oleh player. Untuk memberikan kecerdasan pada NPC dapat diterapkan logika Fuzzy yang
merupakan cabang dari ilmu kecerdasan buatan (AI). Telah banyak penelitian yang menggunakan metode
tersebut untuk membuat kecerdasan pada NPC dari berbagai macam genre game seperti action, fighting dan
lain-lain. Pada penelitian ini logika fuzzy akan menghasilkan nilai yang mempresentasikan prilaku dari NPC
yaitu mengejar atau tidak mengejar dari hasil fuzzy akan menetukan perilaku dari karakter dan NPC. dengan
menggunakan himpunan fuzzy jarak NPC, stamina karakter, kecepatan NPC dan juga stamina NPC, jarak
karakter, status penjagaan NPC.dilakukan percobaan dengan menggunakan contoh data uji yaitu dengan
menguji nilai himpunan fuzzy jarak NPC = 76, stamina karakter = 67, kecepatan NPC = 13 dan di peroleh hasil
defazzifikasi sebesar 10 dimana prilaku akan melakukan pengejaran oleh NPC. Pada penelitian ini telah di
dapat beberapa keberhasil, masih terdapat kekurangan seperti lamanya tindakan yang dilakukan oleh NPC
sehingga membuat penjagaan menjadi sedikit lebih longgar.
Kata Kunci: Fuzzy, Game, NPC, Galah Asin
action, fighting. Salah satu penelitian terdahulu yaitu
game gerilya yang menerapkan logika Fuzzy,
menerapkan logika Fuzzy untuk menetukan
keputusan stategi apa yang digunakan NPC untuk
melawan pemain[2]. dan pada penelitian terdahulu
yang lain logika Fuzzy diterapkan untuk agar agen
atau NPC dalam game dapat melakukan respon
terhadap lingkungan sekitarnya[3], pada game
bertema RPG fuzzy digunakan untuk menetukan
kapan NPC harus maju dan mundur[4], penggunaan
logika fuzzy pun dapat digunakan untuk meniru
perilaku manusia dalam sebuah permainan seperti
keputusan apa yang akan di pilih manusia[5].
Pergerakan otonom yang cerdas dari NPC sangat
penting sehingga membuat permainan menjadi lebih
menarik. Dalam penelitian ini pergerakan NPC
sudah ditetapkan pada jalur-jalur garis yang ada dan
dari jalur garis tersebut harus dapat menghalangi
pemain yang akan menerobos untuk melewati NPC.
Pada penelitian ini akan dibagun sebuah game
tradisional Indonesia yaitu permainan galah asin
yang memiliki NPC yang dapat bergerak
menghalangi musuh secara otonom.
1. PENDAHULUAN
1.1 Latar Belakang
Banyak permainan tradisional yang ada di
wilayah Indonesia salah satu permainan tradisional
yang ada di wilayah nusantara adalah permainan
galah asin, permainan ini adalah permainan dua
kelompok dimana satu kelompok menjadi penyerang
dan kelompok lain menjadi penjaga pertahanan, saat
ini permainan tradisional sudah hampir terlupakan
dikarenakan mulai tergesernya permainan tradisional
dengan teknologi yang lebih modern[1].
Dewasa ini perkembangan game virtual sangat
pesat tidak hanya di playstation, komputer, X-box
ataupun game console lainnya. Perkembangan game
yang berbasis pada smartphone yang memakai
sistem operasi android saat ini berkembang dengan
sangat pesat. Untuk membuat game yang menarik
banyak game yang memiliki NPC (Non Player
Character) yang dapat bergerak secara pintar.
Untuk membuat permainan yang memiliki NPC
yang dapat bergerak secara otonom atau pintar maka
NPC harus memiliki kecerdasan buatan (AI). Logika
Fuzzy yang merupakan salah satu bagian dari
kecerdasan buatan yang dapat di terapkan pada
NPC, telah banyak penelititan yang menggunakan
logika Fuzzy untuk diterapkan kedalam pergerakan
NPC dengan berbagai macam tipe permainan seperti
1.2
Rumusan Masalah
Dari latar belakang di atas dapat dirumuskan
masalah yaitu banyaknya atribut yang dilibatkan
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
digunakan pada penelitian ini mencakup 2 jenis
yaitu representasi kurva segitiga dan bentuk bahu.
Untuk pemilihan metode pendekatan fungsi tersebut
disesuaikan dengan kebutuhan dari sistem yang akan
dibangun. Metode pendekatan fungsi yang
digunakan pada penelitian ini terdiri dari :
a. Representasi kurva segitiga
Representasi kurva segitiga merupakan gabungan
dari antara 2 garis linear yaitu garis linear naik dan
linear turun.
dalam pemainan galah asin yang menyebabkan
pengendalian pemainan menjadi lebih kompleks
oleh karena itu perlu dikembangkan NPC yang dapat
bergerak secara otonom yang dikembangkan
berdasarkan logika fuzzy.
1.3
Tujuan Penelitian
Tujuan dari penelitian ini adalah membangun
sebuah game galah asin yang memiliki NPC yang
dapat bergerak secara otonom agar dapat
menghalangi jalur gerak dari pemain yang hendak
melewati NPC tersebut dengan menerapkan logika
Fuzzy
1.4
Metodologi
Pada penelitian ini akan dibangun sebuah game
dengan NPC yang akan bergerak secara otonom
untuk menghalangi musuh yang yang telah berada
dalam jangkauan sesuai dengan hasil yang telah di
proses oleh perhitungan logika Fuzzy untuk prediksi
pergerakan karakter pemain agar dapat dihalangi
oleh NPC.
Gambar 1.2 Representasi kurva segitiga
Fungsi keanggotaan :
b.
Representasi kurva bentuk bahu
Representasi kurva bentuk bahu digunakan untuk
mengakhiri dan mengawali variabel suatu daerah
fuzzy yang terbagi menjadi dua bahu yaitu bahu
kanan dan kiri.
Gambar 1.1 Alur Proses Sistem Game Galah
Asin
Gambar 1.3 Representasi kurva bahu
1.5
Tinjauan Pustaka
Logika fuzzy merupakan suatu metode yang
digunakan untuk memecahkan masalah yang
mengandung
ketidakpastian
atau
memiliki
ambiguitas. Logika fuzzy mengacu pada teori
himpunan fuzzy. Teori ini menyatakan bahwa derajat
keanggotaan dari suatu elemen himpunan bukanlah
hanya terdiri dari 0 dan 1 (bukan anggota himpunan
dan anggota himpunan), namun dalam rentang
antara 0 dan 1.Pada teori himpunan fuzzy, peranan
derajat keanggotaan sebagai penentu keberadaan
elemen dalam suatu himpunan sangatlah penting.
Derajat keanggotaan berisi hasil klasifikasi
pemecahan masalah yang dicari melalui sistem
inferensi fuzzy menggunakan fungsi keanggotaan
dimana akan menghasilkan suatu nilai keanggotaan.
Terdapat beberapa metode yang digunakan untuk
mendapatkan nilai keanggotaan tersebut yaitu
dengan
menggunakan
pendekatan
fungsi
keanggotaan.Pendekatan fungsi keanggotaan yang
Fungsi keanggotaan:
Bahu kiri
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
digunakan pada sistem untuk dapat menghasilkan
keluaran berupa kecepatan NPC dan karakter
didapat dari nilai status yang dimiki oleh karakter
pemain seperti variabel berat badan dan variabel
stamina. Variabel berat badan dibagi dalam tiga
himpunan yaitu kurus, sedang dan gemuk sedangkan
untuk variabel stamina dibagi dalam tiga himpunan
yaitu lemah, sedang dan kuat. Proses menggunakan
logika fuzzy model sugeno terdiri dari beberapa
proses yaitu:
Bahu kanan
Domain merupakan keseluruhan nilai yang ada
didalam suatu himpunan fuzzy pada suatu variabel
fuzzy.
2.
PEMBAHASAN
Pada penelitian ini, akan dibahas tentang
pergerakan NPC berupa penjagaan untuk
menghalangi pemain saat hendak melewati garis
penjagaan. NPC akan mulai bergerak setelah
karakter pemain mulai bergerak untuk melewati
NPC, pergerakan NPC akan sesuai dengan keadaan
karakter pemain yang masuk dalam jangkauan NPC
dimana NPC harus bergerak mengejar atau bergerak
untuk bersiaga. Untuk menghasilkan pergerakan
pada NPC terdapat dua proses, yaitu proses logika
fuzzy sugeno, pada masing – masing proses terdapat
alur proses yang saling berkaitan, yaitu seperti
gambar dibawah.
1.
Fuzzifikasi
2.
Komposisi Aturan
3.
Defuzzifikasi
Nilai perilaku NPC yang dihasilkan
bergantung pada 3 variabel masukkan yaitu stamina
NPC, jarak karakter, jarak NPC lain yang setiap
variabel dibagi dalam 3 himpunan fuzzy yang dapat
menghasilkan 27 aturan fuzzy dan akan
menghasilkan perilaku yang akan dilakukan NPC
yang terbagi dalam dua himpunan yaitu mengejar
dan tidak mengejar. Terdapat juga basis pengetahuan
yang mengandung pengetahuan untuk dapat
menyelesaikan permasalahan, basis pengetahuan
digunakan untuk membuat kesimpulan.
Tabel 2.1 Basis pengetahuan Fuzzy NPC
Stamina
karakter
Gambar 2.1 Proses pergerakan NPC dan Karakter
2.1
Analisis Proses Logika Fuzzy
Untuk mendapatkan nilai atribut didapatkan
melalui proses logika fuzzy sugeno. Model sugeno
yang akan digunakan adalah model sudeno orde 0
dengan keluaran yang konstanta yang mewakili nilai
atribut dari NPC dan karakter. Masukkan yang
Kecepatan
NPC
Jarak NPC
Kuat
Cepat
Jauh
Kuat
Cepat
Sedang
Kuat
Cepat
Dekat
Sedang
Cepat
Jauh
Sedang
Cepat
Sedang
Sedang
Cepat
Dekat
Lemah
Cepat
Jauh
Lemah
Lemah
Cepat
Cepat
Sedang
Dekat
Kuat
Sedang
Jauh
Kuat
Sedang
Sedang
Kuat
Sedang
Dekat
Sedang
Sedang
Jauh
Sedang
Sedang
Sedang
Sedang
Sedang
Dekat
Lemah
Sedang
Jauh
Lemah
Lemah
Sedang
Sedang
Sedang
Dekat
Kuat
Lambat
Jauh
Kuat
Lambat
Sedang
Kuat
Lambat
Dekat
Perilaku
Berlari
maju
Berlari
maju
Diam
Berlari
maju
Berlari
maju
Diam
Berlari
maju
Diam
Diam
Berlari
maju
Berlari
maju
Berlari
maju
Berlari
maju
Berlari
maju
Diam
Berlari
maju
Diam
Diam
Berlari
maju
Berlari
maju
Berlari
maju
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
Sedang
Lambat
Jauh
Sedang
Lambat
Sedang
Sedang
Lambat
Dekat
Lemah
Lambat
Jauh
Lemah
Lemah
Lambat
Lambat
Sedang
Dekat
Berlari
maju
Berlari
maju
Berlari
maju
Berlari
maju
Diam
Diam
Nilai perilaku karakter yang dihasilkan
bergantung pada 3 variabel masukkan yaitu stamina
karakter, kecepatan penjaga, jarak NPC yang setiap
variabel dibagi dalam 3 himpunan fuzzy yang dapat
menghasilkan 27 aturan fuzzy dan akan
menghasilkan perilaku yang akan dilakukan karakter
yang terbagi dalam dua himpunan yaitu diam dan
berlari maju. Terdapat juga basis pengetahuan yang
mengandung
pengetahuan
untuk
dapat
menyelesaikan permasalahan, basis pengetahuan
digunakan untuk membuat kesimpulan.
Gambar 2.2 Kurva fungsi keanggotaan jarak
karakter
Setelah dihitung nilai dari derajat keanggotaan
jarak karakter maka selanjutnya akan dihitung nilai
derajat keanggotaan dari himpunan stamina NPC
dari kasus uji dengan nilai stamina yaitu 68.
Tabel 2.2 Basis pengetahuan Fuzzy karakter
Stamina
karakter
Kuat
Kuat
Kuat
Sedang
Sedang
Sedang
Lemah
Lemah
Lemah
Kuat
Kuat
Kuat
Sedang
Sedang
Sedang
Lemah
Lemah
Lemah
Kuat
Kuat
Kuat
Sedang
Sedang
Sedang
Lemah
Lemah
Lemah
Kecepatan
NPC
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Cepat
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Sedang
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Lambat
Jarak
NPC
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
Jauh
Sedang
Dekat
ISSN: 2089-9815
Perilaku
Berlari maju
Berlari maju
Diam
Berlari maju
Berlari maju
Diam
Berlari maju
Diam
Diam
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Diam
Berlari maju
Diam
Diam
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Berlari maju
Diam
Diam
Gambar 2.3 Kurva fungsi keanggotaan stamina
NPC
Setelah didapat nilai dari derajat keanggotaan
dari stamina NPC maka selanjutnya adalah mencari
nilai keanggotaan dari status penjagaan NPC dari
contoh data uji diketahui nilai derajat keanggotaan
yaitu 5.
2.2
Proses Logika Fuzzy
Terdapat contoh kasus uji untuk fuzzy
perilaku NPC terdapat nilai jarak karakter yaitu 73
beririsan dengan dengan himpunan fuzzy dekat dan
sedang. untuk itu akan dihitung nilai derajat
keanggotaan sesuai himpunan fuzzy dan berdasarkan
fungsi keanggotaan.
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
keanggotaan dari jarak NPC dengan nilai crisp set
yaitu 76.
0.48
0.52
Gambar 2.4 Kurva fungsi keanggotaan status
penjagaan NPC
Terdapat kasus uji untuk fuzzy karakter
unyuk menguji dan menghitung nilai derajat
keanggotaan dari setiap himpunan fuzzy yang ada
pada fuzzy karakter, petama dicari nilai derajat
keanggotaan dari stamina karakter yang pada contoh
kasus uji mempunyai nilai crisp set yaitu 67.
Gambar 2.7 Kurva fungsi keanggotaan jarak NPC
Setelah ditentukan nilai dari derajat keanggotaan
dari setiap variabel NPC dan karakter pemain
didapatkan nilai yaitu:
Tabel 2.3 Nilai derajat keanggotaan dari fuzzy NPC
Kriteria
derajat
keanggotaan
0.54
Sedang
0.46
Sedang
0.28
Kuat
0.72
Status penjagaan
Kosong
0.5
NPC
Longgar
0.5
Stamina NPC
Proses perhitungan selanjutnya yaitu menghitung
nilai derajat keanggotaan dari himpunan kecepatan
NPC yang memiliki nilai crisp set yaitu 13
Nilai
Dekat
Jarak karakter
Gambar 2.5 Kurva fungsi keanggotaan stamina
karakter
Himpunan Fuzzy
Tabel 2.4 nilai derajat keanggotaan dari fuzzy
karakter
Kriteria
Nilai
Fuzzy
keanggotaan
derajat
Stamina
Sedang
0.32
karakter
Kuat
0.68
Kecepatan NPC
Cepat
1
Dekat
0.48
Sedang
0.52
Jarak NPC
Gambar 2.6 Kurva fungsi keanggotaan kecepatan
NPC
Setelah menghitung derajat keanggotaan dari
himpunan fungsi keanggotaan dari kecepatan NPC
selanjutnya
akan
menghitung
nilai
derjat
Himpunan
Tahapan selanjutnya dari proses logika fuzzy
sugeno yaitu tahapan komposisi aturan yang terbagi
dalam dua proses yaitu proses untuk mendapatkan
nilai terkecil dengan menggunakan fungsi AND dan
proses mencari nilai terbesar dengan menggunakan
fungsi OR .
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
Fungsi AND digunakan untuk mengambil nilai
MIN dari nilai derajat keanggotaan NPC.
Tabel 2.5 Tabel fungsi OR
IF
KONDISI
Tabel 2.5 Tabel fungsi AND
IF
KONDISI
THEN
jarak
karakter
(0.54)
AND
dekat
KEPUTUSAN
prilaku
stamina
perilkau mengejar
perilaku mengejar
(0.28) OR prilaku
(0.28)
perilaku
IF
status penjagaan kosong
mengejar(0.5) OR
(0.46)
(0.54)
AND
peilaku mengejar
THEN
(0.5)
perilaku mengejar
(0.5)
karakter
KEPUTUSAN
mengejar (0.25)
mengejar (0.28)
NPC sedang (0.28) AND
jarak
THEN
dekat
prilaku
stamina
peilaku
mengejar (0.25)
THEN
mengejar
(0.5)
NPC sedang (0.28) AND
status penjagaan longgar
Setelah kompisisi aturan selesai maka tahap
akhir dari proses logika fuzzy sugeno yaitu tahap
defuzzyfikasi, dimana pada tahap ini akan
menghasilkan nilai tegas dengan menggunakan
metode weighted average pada fungsi keanggotaan
singleton sugeno. Hasil yang didapat dari komposisi
aturan akan dimasukkan dalam kurva fungsi
keanggotaan singleton setelah itu dilakukan
perhitungan menggunakan metode weighted
average.
Nilai perilaku NPC berada pada mengejar (0,28)
dan mengejar (0,25), mengejar (0,46) dan mengejar
(0,46) selanjutnya dengan nilai tersebut dilakukan
perhitungan dengan metode weighted average
dengan persamaan seperti dibawah ini.
(0.25)
jarak
karakter
(0.54)
AND
dekat
prilaku
stamina
mengejar (0.5)
NPC kuat (0.72) AND
status penjagaan kosong
(0.5)
jarak
karakter
(0.54)
AND
dekat
prilaku
stamina
mengejar (0.25)
NPC sedang (0.72) AND
status penjagaan longgar
(0.25)
jarak
karakter
sedang
(0.46)
AND
stamina
prilaku
mengejar (0.25)
NPC sedang (0.28) AND
= 10
Z=
status penjagaan kosong
(0.25)
jarak
karakter
sedang
(0.46)
AND
stamina
prilaku
Sedangkan nilai untuk perilaku karakter berada
pada himpunan diam (0.48) dan berlari maju (0.52).
selanjutnya dengan nilai tersebut dilakukan
perhitungan dengan metode weighted average
dengan persamaan seperti dibawah ini.
mengejar (0.28)
NPC sedang (0.28) AND
IF
status
penjagaan
THEN
longgar(0.5)
jarak
karakter
sedang
(0.46)
AND
stamina
prilaku
mengejar (0.46)
Z=
= 7,6
NPC kuat (0.72) AND
status
penjagaan
longgar(0.5)
2.3
jarak karakter sedang
prilaku
(0.46)
mengejar (0.46)
AND
stamina
Algoritma atau Program
Tahap perancangan algoritma adalah tahapan
terakhir untuk pembangunan perangkat lunak.
Berikut perancagan yang akan di implementasikan
pada system game
NPC kuat (0.72) AND
status
penjagaan
longgar(0.5)
Seminar Nasional Teknologi Informasi dan Komunikasi 2016 (SENTIKA 2016)
Yogyakarta, 18-19 Maret 2016
ISSN: 2089-9815
[2]Alansura R, Nasrun M, Azmi F.”Penerapan
System Inferensi Fuzzy Logic Untuk Menentukan
Pengambilan Keputusan AI Pada Game TurnBased Strategy ” Gerilya” ”.
Procedure defazzifikasi()
{I.S : Nilai setiap himpunan terdefinisi tidak
kosong}
{F.S : mengeubah nilai fuzzy menjadi nilai tegas}
{Kamus}
Z,temp1,temp2 : Real
Output_rule : array[] of integer
u_output : array[] of integer
[3]Widiastuti N.I. “Model Perilaku Berjalan Agen Agen Menggunakan Fuzzy Logic”. Jurnal
Komputer dan Informatika (KOMPUTA)2012.
{Algoritma}
for (i:int = 0 to i < 27)do
temp1