Penerapan Algoritma Logika Fuzzy Dalam Menentukan Arah Mobil Rintangan Pada Game Simulasi

(1)

75

5.1 Kesimpulan

Berdasarkan hasil implementasi dan pengujian yang telah dilakukan pada penelitian ini dapat disimpulkan :

Dalam menerapkan logika fuzzy dapat diterapkan di game simulasi bergenre racing untuk pergerakan NPC yang bereaksi secara otomatis ketika menghadapi mobil rintangan di depannya sesuai dengan variable kecepatan, jarak dan jumlah keadaan.

5.2 Saran

Untuk pengembangan penerapan logika fuzzy pada game simulasi bergenre race terhadap aksi reaksi pada NPC, di masa yang akan datang disarankan : 1. Kedepannya dalam game simulasi bergenre racing logika fuzzy bisa di

terapkan di jalan yang berlawanan arah, agar game terlihat semakin rill. 2. Tidak hanya satu NPC yang di berikan logika fuzzy, karena dengan dua atau


(2)

61

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Implementasi merupakan terjemahan perancangan yang berdasarkan hasil analisis pada bab sebelumnya ke dalam bahasa pemograman yang dapat dimengerti oleh komputer.

4.1.1 Perangkat Lunak Implementasi dan Pengujian

Perangkat lunak yang digunakan untuk mengimplementasikan dan menguji aplikasi game simulasi adalah sebagai berikut :

1. Windows 7 Ultimate sebagai sistem operasi 2. Greenfoot sebagai perangkat lunak pembangun

4.1.2 Perangkat Keras Implementasi dan Pengujian

Perangkat keras yang digunakan untuk mengimplementasikan dan menguji aplikasi game simulasi adalah sebagai berikut :

1. Prosesor Intel Core i3-2350M 2.3GHz 2. RAM 2GB

3. Harddisk 250GB 4. Monitor 14”

5. Keyboard dan Mouse

4.1.3 Implmentasi Antarmuka

Pada bagian ini akan ditampilkan bentuk dari implementasi antarmuka menu utama, menu mulai (pilih level), menu main.

4.1.3.1Implementasi Antarmuka Menu utama

Berikut adalah Implementasi Antarmuka Menu Utama yang ditunjukkan oleh Gambar 4.1.


(3)

Gambar 4.1 Antarmuka Menu Utama 4.1.3.2Implementasi Antarmuka Menu Pilih Level

Berikut adalah Implementasi Antarmuka Menu Pilih Level yang ditunjukkan oleh gambar berikut yang dimana terdapat antarmuka level mudah, antarmuka level sulit. Tampilan antarmuka pilih level dapat dilihat pada Gambar 4.2.


(4)

Gambar 4.2 Antarmuka Menu Pilih Level

1. Antarmuka arena permainan mudah

Antarmuka arena permainan mudah merupakan tampilan yang NPC-nya tidak menggunakan fuzzy. Tampilan antarmuka arena permainan mudah dapat dilihat pada Gambar 4.3.


(5)

Gambar 4.3 Antarmuka Arena Permainan Mudah

2. Antarmuaka arena permainan sulit

Antarmuka arena permainan sulit merupakan tampilan yang NPC-nya menggunakan fuzzy. Tampilan antarmuka arena permainan sulit dapat dilihat pada gambar 4.4.


(6)

Gambar 4.4 Antarmuka Arena Permainan Sulit 4.2 Pengujian Sistem

Pengujian sistem merupakan hal terpenting yang dilakukan untuk menemukan kekurangan atau kesalahan pada aplikasi yang diuji. Pengujian bermaksud untuk mengetahui implementasi algoritma logika fuzzy yang dibuat telah memenuhi kriteria yang sesuai dengan tujuan perancangan. Adapun metode pengujian yang digunakan dalam penelitian ini adalah pengujian alpha.


(7)

Pengujian alpha adalah pengujian yang berfokus pada persyaratan fungsional aplikasi. Pengujian dilakukan terhadap aplikasi game simulasi yang sebelumnya telah dirancang dan diterapkan algoritma fuzzy. Untuk memastikan bahwa perancangan dan penerapan algoritma fuzzy dapat berjalan dengan benar sesuai kebutuhan dan tujuan yang diharapkan.

4.2.1 Skenario Pengujian Aplikasi

Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada aplikasi game Simulasi. Skenario pengujian yang akan dilakukan pada aplikasi ini dapat dilihat pada Tabel 4.1.

Tabel 4.1 Skenario Pengujian Aplikasi

No. Komponen yang diuji Skenario pengujian Jenis pengujian

1. Menu Utama Memilih Menu Mulai Baru Black Box Memilih Menu Keluar Black Box 2. Menu Memilih Level Memilih Level Mudah Black Box Memilih Level Sulit Black Box 3. Permainan Level Mudah Menekan Tombol A (ke

kiri) dan D (ke kanan) Black Box 4. Permainan Level Sulit Menekan Tombol A (ke

kiri) dan D (ke kanan) Black Box 5. Algoritma Logika Fuzzy Algoritma Logika Fuzzy

pada NPC mobil rintangan White Box

4.2.2 Pengujian Black Box

Black box bertujuan untuk menunjukkan fungsi perangkat lunak tentang cara beroperasinya. Berdasarkan pada tabel 4.1 skenario pengujian aplikasi, berikut ini adalah hasil pengujian perangkat lunak yang sudah diimplementasikan menggunakan metode Black Box, Pengujian metode Black Box dapat dilihat pada tabel 4.2.


(8)

Tabel 4.2 Hasil Pengujian Black Box

No. Komponen

yang diuji Skenario pengujian

Hasil Yang Diharapka

n

Hasil Pengujian

1. Menu Utama

Memilih Menu Mulai Baru

Memilih Menu Level

[√] Berhasil Tidak Berhasil Memilih Menu Keluar Keluar dari

permainan

[√] Berhasil Tidak Berhasil

2. Menu Memilih Level

Memilih Level Mudah

Masuk ke Permainan Level Mudah

[√] Berhasil Tidak Berhasil

Memilih Level Sulit

Masuk ke Permainan Level Sulit

[√] Berhasil Tidak Berhasil 3. Permainan

Level Mudah

Menekan Tombol A (ke kiri) dan D (ke kanan)

Pergerakan Player

[√] Berhasil Tidak Berhasil 4. Permainan

Level Sulit

Menekan Tombol A (ke kiri) dan D (ke kanan)

Pergerakan Player

[√] Berhasil Tidak Berhasil

4.2.2.1Kasus Dan Hasil Pengujian (White Box Testing)

White Box adalah teknik meramalkan cara kerja perangkat lunak secara rinci, karenanya logical path (jalur logika) perangkat lunak akan di test dengan menyediakan test case yang akan mengerjakan kumpulan kondisi atau pengulangan secara spesifik.

Berikut ini adalah proses pengujian logika fuzzy untuk menentukan keputusan mendahului mobil yang di depannya atau tetap berada di jalur yang di laluinya pada NPC mobil rintangan.

Tabel 4.3 Algoritma Logika Fuzzy Pada NPC

1.

private int JALUR1 = 300; private int JALUR2 = 500; private int JALUR3 = 700; private int FKECEPATAN; private int FJARAK; private int FKEADAAN; private int DEFUZZY;

private boolean PINDAH = false; int speed=1;


(9)

2.

int move = 0;

int posxawal, posxakhir;

ArrayList<player> pl = new ArrayList<player>(); ArrayList<npc> npc = new ArrayList<npc>(); public void Defuzzy(){

if(fuzzyKecepatan()==1 && fuzzyJarak()==1 && fuzzyKeadaan()==1){

DEFUZZY = 1;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==1 && fuzzyKeadaan()==2){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==1 && fuzzyKeadaan()==3){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==2 && fuzzyKeadaan()==1){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==2 && fuzzyKeadaan()==2){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==2 && fuzzyKeadaan()==3){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==3 && fuzzyKeadaan()==1){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==3 && fuzzyKeadaan()==2){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==1 && fuzzyJarak()==3 && fuzzyKeadaan()==3){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==1 && fuzzyKeadaan()==1){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==1 && fuzzyKeadaan()==2){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==1 && fuzzyKeadaan()==3){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==2 && fuzzyKeadaan()==1){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==2 && fuzzyKeadaan()==2){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==2 && fuzzyKeadaan()==3){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==3 && fuzzyKeadaan()==1){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==3 && fuzzyKeadaan()==2){


(10)

3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

DEFUZZY = 3;

}else if(fuzzyKecepatan()==2 && fuzzyJarak()==3 && fuzzyKeadaan()==3){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==1 && fuzzyKeadaan()==1){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==1 && fuzzyKeadaan()==2){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==1 && fuzzyKeadaan()==3){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==2 && fuzzyKeadaan()==1){

DEFUZZY = 2;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==2 && fuzzyKeadaan()==2){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==2 && fuzzyKeadaan()==3){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==3 && fuzzyKeadaan()==1){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==3 && fuzzyKeadaan()==2){

DEFUZZY = 3;

}else if(fuzzyKecepatan()==3 && fuzzyJarak()==3 && fuzzyKeadaan()==3){

DEFUZZY = 3; }

if(DEFUZZY>2){

if(getX()>=200 && getX()<400){ move=1;

PINDAH = true;

}else if(getX()>=400 && getX()<600 && !PINDAH){ int ran = Greenfoot.getRandomNumber(1); if(ran==0){

move=1; }else{

move=-1; }

PINDAH = true;

}else if(getX()>=400 && getX()<500 && PINDAH){ move=-1;

PINDAH = true;

}else if(getX()>=500 && getX()<600 && PINDAH){ move=1;

PINDAH = true;

}else if(getX()>=600 && getX()<800){ move=-1;

PINDAH = true; }


(11)

FJARAK = 1; FKEADAAN = 1; }

}

4.2.2.2Flow Graph

Berikut ini merupakan flow graph logika fuzzy berdasarkan pada Gambar 4.5.

Gambar 4.5 Flow Graph Logika Fuzzy Pada NPC Keterangan :

= Menggambarkan Kondisi = Menggambarkan Aksi


(12)

4.2.2.3Cyclomatic Complexity V(G)

Dari flow graph di atas, dapat dihitung cyclomatic complexity yang di dapat dari perhitungan dibawah ini

V(G) = E – N + 2 Di mana :

E adalah edge = Jumlah Aksi, dan N adalah node = Jumlah Kondisi. Jadi : V(G) = 22 edge – 19 node + 2 = 5

4.2.2.4Independent Path

Dari hasil perhitungan cyclomatic complexity terdapat 5 independent path yaitu :

Path 1 = 1-2-3-4-5-19 Path 2 = 1-2-3-4-6-13-14-19 Path 3 = 1-2-3-4-6-7-8-9-12-19 Path 4 = 1-2-3-4-6-7-8-10-11-12-19 Path 5 = 1-2-3-4-6-13-15-17-18-19


(13)

4.2.2.5Graph Matric

Penomoran ulang flowgraph atau penyederhanaan berdasarkan kondisi atau simpul dapat dilihat pada tabel

Tabel 4.4 Graph Matric LogikaFuzzy

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 N(E)-1

1 1 1-1 = 0

2 1 1-1 = 1

3 1 1-1 = 0

4 1 1 2-1 = 1

5 1 1-1 = 0

6 1 1 2-1 = 1

7 1 1-1 = 0

8 1 1 2-1 = 1

9 1 1-1 = 0

10 1 1-1 = 0

11 1 1-1 = 0

12 1 1-1 = 0

13 1 1 2-1 = 1

14 1 1-1 = 0

15 1 1 2-1 = 1

16 1 1-1 = 0

17 1 1-1 = 0

18 1 1-1 = 0

19 0-1 =-1

Sum(E) +1 4+1 = 5

Keterangan :

1. Baris dan kolom merepresentasikan simpul (node).

2. Nilai 1 merepresentasikan adanya keterhubungan antar simpul.

4.2.2.6Hasil Pengujian Logika Fuzzy

Berikut ini adalah hasil dari pengujian whitebox penelusuran logika Fuzzy perhitungan keputusan pada NPC mobil rintangan.

Tabel 4.5 Hasil Pengujian Logika Fuzzy

No Path Yang Diharapkan Hasil Yang

Dicapai Kesimpulan 1. 1-2-3-4-5-19 Melakukan proses

fuzzyfikasi apabila NPC mendekati

NPC mobil rintangan berpindah jalur

[√] Berhasil [ ] Tidak Berhasil


(14)

mobil rintangan di depannya

dengan

mendahului mobil yang di depannya 2. 1-2-3-4-6-13-14-19 Melakukan proses

fuzzyfikasi apabila NPC mendekati mobil rintangan didepannya

NPC mobil rintangan berpindah jalur dengan

mendahului mobil yang di depannya

[√] Berhasil [ ] Tidak Berhasil

3. 1-2-3-4-6-7-8-9-12-19 Melakukan proses fuzzyfikasi apabila NPC mendekati mobil rintangan didepannya

NPC mobil rintangan berpindah jalur dengan

mendahului mobil yang di depannya

[√] Berhasil [ ] Tidak Berhasil

4. 1-2-3-4-6-7-8-10-11-12-19

Mendapatkan nilai keputusan dari proses fuzzyfikasi sesuai dengan input berupa kecepatan, jarak dan keadaan dari NPC mobil rintangan

Nilai keputusan didapat

berdasarkan input berupa kecepatan, jarak dan keadaan dari NPC mobil rintangan

[√] Berhasil [ ] Tidak Berhasil

5. 1-2-3-4-6-13-15-17-18-19

Mendapatkan nilai keputusan dari proses fuzzyfikasi sesuai dengan input berupa kecepatan, jarak dan keadaan dari NPC mobil rintangan

Nilai keputusan didapat

berdasarkan input berupa kecepatan, jarak dan keadaan dari NPC mobil rintangan

[√] Berhasil [ ] Tidak Berhasil


(15)

(16)

25

BAB 3

ANALISIS ALGORITMA DAN PERANCANGAN

3.1 Analisis Masalah

Game simulasi bergenre race ini memiliki konsep mensimulasikan pengendara sepeda motor. Algoritma logika fuzzy merupakan solusi yang bisa diterapkan pada game simulasi bergenre race untuk mengatur tingkah laku serta menghasilkan aksi dan reaksi secara otomatis pada karakter NPC (Non-Playable Character) pada mobil rintangan berdasarkan kondisi yang dihadapi.

3.2 Analisis Game

Game simulasi bergenre race, misi utama dan gameplay dari game ini adalah mengendarai sepeda motor selamat sampai tujuan dan menghidari rintangan mobil di depannya.

Game simulasi bergenre race ini menerapkan algoritma logika fuzzy untuk mengatur tingkah laku serta menghasilkan aksi dan reaksi secara otomatis pada karakter NPC (Non-Playable Character) mobil rintangan yang ada. Tingkah laku pada NPC (Non-Playable Character) pada mobil rintangan yaitu sebagai berikut :

1. NPC bisa berpindah jalur dengan mendahului mobil rintangan di depannya.

2. NPC memilih tetap berada di jalurnya.

3.2.1Analisis Leveling

Dalam game simulasi bergenre race ini terdapat 2 level yang masing – masing level dibedakan berdasarkan tingkat kesulitan rintangan yang harus dihadapi. Berikut ini penjelasan tingkat level kesulitan dapat di lihat pada Tabel 3.1.

Tabel 3.1 Leveling Game

Level Deskripsi

Mudah Tidak ada NPC yang menggunakan logika fuzzy


(17)

3.2.2 Analisis Game Sejenis

Sebelum merancang game yang akan dibuat, terlebih dahulu dilakukan analisis pada game sejenis yang sudah ada. Ini bertujuan agar game yang sudah dibuat nanti memiliki solusi dari permasalahan game yang sudah ada.

1. Game Simulasi Aman di Platform Android

Game Simulasi Aman merupakan game simulasi sepeda motor bergenre racing berbasis mobile. Game Simulasi Aman ini merupakan game sederhana dengan mensimulasikan sepeda motor dan melewati rintangan yang ada. Tujuan dari game ini adalah mengendarai sepeda motor selamat sampai tujuan yaitu dari rumah ke kantor.

2. Storyline

Game ini menceritakan tentang simulasi berkendara aman melakukan perjalanan dari rumah menuju kantor dengan melewati rintangan mobil dan motor.


(18)

3.3 Analisis Masukan

Berikut ini adalah parameter atau variabel input dan output pada penelitian ini. Bisa dilihat pada tabel 3.2 dibawah ini.

Tabel 3.2 Variabel Input dan Output Fuzzy

Fungsi Nama Variabel Keterangan Satuan Semesta

Pembicaraan

Input

Kecepatan

Variabel kecepatan di peroleh dari mobil rintangan yang menghalangi

pixel [0-120]

Jarak

Variabel jarak di peroleh dari ketika NPC

mendekati mobil rintangan yang di depannya

pixel [0-60]

Jumlah Keadaan

Variabel keadaan di peroleh dari adanya mobil rintangan yang menghalangi atau tidak

- [0-4]

Output Keputusan

Mendahului mobil yang

di depannya -

[0-100] Tetap berada di jalur

yang di laluinya -

Dari variabel yang telah dimunculkan, kemudian disusun domain himpunan Fuzzy. Berdasarkan domain tersebut, selanjutnya ditentukan fungsi keanggotaan dari masing – masing variabel seperti terlihat pada Tabel 3.3.

Tabel 3.3 Tabel Himpunan Fuzzy Fungsi Variabel Himpunan Domain

Fungsi

Keanggotaan Parameter

Input

Kecepatan

Lambat [0-40] Trapesium (0;0;20;40)

Sedang [30-80] Segitiga (30;60;80)

Cepat [70-120] Trapesium (70;100;120;120) Jarak

Dekat [0-20] Trapesium (0;0;5;20)

Sedang [10-40] Segitiga (10;25;40)

Jauh [30-60] Trapesium (30;55;60;60)

Jumlah Keadaan

Sedikit [0-1] Segitiga (0;0;1)

Sedang [1-3] Segitiga (1;2;3)

Banyak [2-4] Segitiga (3;4;4)

Output Keputusan Aman [0-100] Trapesium (0;0;40;100) Berbahaya [100-200] Trapesium (100;160;200;200) Berdasarkan tabel himpunan Fuzzy diatas, maka pemetaan input-output pada penelitan ini adalah sebagai berikut :


(19)

1. Variabel Kecepatan

Variabel kecepatan merupakan variabel yang didapat dari laju kendaraan, Pada variabel kecepatan dibentuk tiga himpunan fuzzy, yaitu lambat, sedang dan cepat. Untuk merepresentasikan variabel kecepatan digunakam bentuk kurva trapesium untuk himpunan fuzzy lambat, kurva segitiga untuk himpunan fuzzy sedang dan kurva trapesium untuk himpunan fuzzy cepat. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.

0 20 40 60 80 100 120

0 0.2 0.4 0.6 0.8 1

kecepatan

D

e

g

re

e

o

f

m

e

m

b

e

rs

h

ip

lambat sedang cepat

Gambar 3.2 Fungsi Keanggotaan Variabel Kecepatan


(20)

2. Variabel Jarak

Variabel jarak diperoleh dari selisih jarak kendaraan user atau pemain dengan kendaraan NPC, pada variabel kecepatan dibentuk tiga himpunan fuzzy, yaitu dekat, sedang dan jauh. Untuk merepresentasikan variabel jarak digunakam bentuk kurva trapesium untuk himpunan fuzzy dekat, kurva segitiga untuk himpunan fuzzy sedang dan kurva trapesium untuk himpunan fuzzy jauh. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.

0 10 20 30 40 50 60

0 0.2 0.4 0.6 0.8 1

jarak

D

e

g

re

e

o

f

m

e

m

b

e

rs

h

ip

dekat sedang jauh

Gambar 3.3 Fungsi Keanggotaan Variabel Jarak


(21)

3. Variabel Jumlah Keadaan

Variabel jumlah keadaan diperoleh dari banyaknya kendaraan yang berada di jalan, pada variabel keadaan dibentuk tiga himpunan fuzzy, yaitu sedikit, sedang dan banyak. Untuk merepresentasikan variabel keadaan digunakam bentuk kurva segitiga untuk himpunan fuzzy sedikit, kurva segitiga untuk himpunan fuzzy sedang dan kurva segitiga untuk himpunan fuzzy banyak. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.

0 0.5 1 1.5 2 2.5 3 3.5 4

0 0.2 0.4 0.6 0.8 1

keadaan

D

e

g

re

e

o

f

m

e

m

b

e

rs

h

ip

sedikit sedang banyak


(22)

Dengan fungsi keanggotaan sebagai berikut :

4. Variabel Keputusan

Variabel Keputusan, merupakan variabel output, pada variabel keputusan dibentuk dua himpunan fuzzy, yaitu aman dan berbahaya. Untuk merepresentasikan variabel keputusan digunakan bentuk kurva trapesium untuk himpunan fuzzy aman dan kurva trapesium untuk himpunan fuzzy berbahaya. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.

0 20 40 60 80 100 120 140 160 180 200

0 0.2 0.4 0.6 0.8 1

keputusan

D

e

g

re

e

o

f

m

e

m

b

e

rs

h

ip

aman berbahaya


(23)

Dengan fungsi keanggotaan sebagai berikut :

3.4 Analisis Algoritma Fuzzy

Pada penelitian ini logika Fuzzy digunakan untuk menentukan keputusan NPC untuk mendahului mobil di depannya dengan berpindah jalur atau tetap berada di jalur yang di laluinya. Berdasarkan analisis masukan variabel yang digunakan pada penelitian ini berupa kecepatan, jarak dan keadaan sebagai input, dan keputusan sebagai ouput. Berikut ini adalah contoh penerapan logika fuzzy dalam menentukan keputusan pada NPC mobil rintangan.

3.4.1 Contoh Penerapan

Jika kecepatan mobil rintangan yang di depannya adalah 35, jarak 15 dan keadaannya 1 maka perilaku yang akan di tunjukan oleh NPC mobil rintangan akan di jelaskan sebagai berikut :

3.4.1.1Menentukan Himpunan Fuzzy

Himpunan fuzzy beserta fungsi keanggotaan dari variabel kecepatan, jarak dan keadaan direpresentasikan sebagai berikut :

1. Variabel Fuzzy Kecepatan

Perhitungan variable kecepatan dari setiap himpunan fuzzy (lambat, sedang, cepat) dimana nilai kecepatan 35 adalah sebagai berikut :


(24)

0 20 40 60 80 100 120 0

0.2 0.4 0.6 0.8 1

kecepatan

D

e

g

re

e

o

f

m

e

m

b

e

rs

h

ip

lambat sedang cepat

Gambar 3.6 Fungsi Keanggotaan untuk Kecepatan 35

Kecepatan sebesar 35 termasuk ke dalam himpunan Fuzzy LAMBAT dan SEDANG, dengan tingkat keanggotaan sesuai fungsi berikut :

2. Variabel Fuzzy Jarak

Perhitungan variable jarak dari setiap himpunan fuzzy (dekat, sedang, jauh) dimana nilai jarak 15 adalah sebagai berikut :


(25)

0 10 20 30 40 50 60 0

0.2 0.4 0.6 0.8 1

jarak

D

e

g

re

e

o

f

m

e

m

b

e

rs

h

ip

dekat sedang jauh

Gambar 3.7 Fungsi Keanggotaan untuk Jarak 15

Jarak sebesar 15 termasuk ke dalam himpunan Fuzzy DEKAT dan SEDANG, dengan tingkat keanggotaan sesuai fungsi berikut :

3. Variabel Fuzzy JumlahKeadaan

Perhitungan variable keadaan dari setiap himpunan fuzzy (sedikit, sedang, banyak) dimana nilai keadaan 3 adalah sebagai berikut :


(26)

0 0.5 1 1.5 2 2.5 3 3.5 4 0 0.2 0.4 0.6 0.8 1 keadaan D e g re e o f m e m b e rs h ip

sedikit sedang banyak

Gambar 3.8 Fungsi Keanggotaan untuk Jumlah Keadaan 3

Keadaan sebesar 1 termasuk ke dalam himpunan Fuzzy Sedang dan Banyak, dengan tingkat keanggotaan sesuai fungsi berikut :

3.4.1.2Fungsi Implikasi

Berikut ini adalah pembentukan aturan pada NPC Mobil :

[1] IF Kecepatan cepat AND Jarak jauh AND Jumlah Keadaan sedikit THEN Aman

[2] IF Kecepatan cepat AND Jarak jauh AND Jumlah Keadaan sedang THEN Aman

[3] IF Kecepatan cepat AND Jarak jauh AND Jumlah Keadaan banyak THEN Aman


(27)

[4] IF Kecepatan cepat AND Jarak sedang AND Jumlah Keadaan sedikit THEN Aman

[5] IF Kecepatan cepat AND Jarak sedang AND Jumlah Keadaan sedang THEN Aman

[6] IF Kecepatan cepat AND Jarak sedang AND Jumlah Keadaan banyak THEN Aman

[7] IF Kecepatan cepat AND Jarak dekat AND Jumlah Keadaan sedikit THEN Aman

[8] IF Kecepatan cepat AND Jarak dekat AND Jumlah Keadaan sedang THEN Aman

[9] IF Kecepatan cepat AND Jarak dekat AND Jumlah Keadaan banyak THEN Berbahaya

[10]IF Kecepatan sedang AND Jarak jauh AND Jumlah Keadaan sedikit THEN Aman

[11]IF Kecepatan sedang AND Jarak jauh AND Jumlah Keadaan sedang THEN Aman

[12]IF Kecepatan sedang AND Jarak jauh AND Jumlah Keadaan banyak THEN Aman

[13]IF Kecepatan sedang AND Jarak sedang AND Jumlah Keadaan sedikit THEN Aman

[14]IF Kecepatan sedang AND Jarak sedang AND Jumlah Keadaan sedang THEN Aman

[15]IF Kecepatan sedang AND Jarak sedang AND Jumlah Keadaan banyak THEN Berbahaya

[16]IF Kecepatan sedang AND Jarak dekat AND Jumlah Keadaan sedikit THEN Aman

[17]IF Kecepatan sedang AND Jarak dekat AND Jumlah Keadaan sedang THEN Berbahaya

[18]IF Kecepatan sedang AND Jarak dekat AND Jumlah Keadaan banyak THEN Berbahaya

[19]IF Kecepatan lambat AND Jarak jauh AND Jumlah Keadaan Sedikit THEN Aman

[20]IF Kecepatan lambat AND Jarak jauh AND Jumlah Keadaan sedang THEN Aman


(28)

[21]IF Kecepatan lambat AND Jarak jauh AND Jumlah Keadaan banyak THEN Berbahaya

[22]IF Kecepatan lambat AND Jarak sedang AND Jumlah Keadaan sedikit THEN Aman

[23]IF Kecepatan lambat AND Jarak sedang AND Jumlah Keadaan sedang THEN Berbahaya

[24]IF Kecepatan lambat AND Jarak sedang AND Jumlah Keadaan banyak THEN Berbahaya

[25]IF Kecepatan lambat AND Jarak dekat AND Jumlah Keadaan sedikit THEN Berbahaya

[26]IF Kecepatan lambat AND Jarak dekat AND Jumlah Keadaan sedang THEN Berbahaya

[27]IF Kecepatan lambat AND Jarak dekat AND Jumlah Keadaan banyak THEN Berbahaya

Setelah aturan dibentuk, maka dilakukan aplikasi fungsi implikasi Fungsi implikasi yang digunakan dalam proses ini adalah fungsi MIN, yaitu dengan mengambil tingkat keanggotaan yang minimum dari variabel input sebagai outputnya. Berdasarkan aturan-aturan yang sesuai dengan kondisi tersebut.

[13]IF Kecepatan sedang AND Jarak sedang AND Jumlah Keadaan sedikit THEN Aman

)

= 0.16

[14]IF Kecepatan sedang AND Jarak sedang AND Jumlah Keadaan sedang THEN Aman

)


(29)

[16]IF Kecepatan sedang AND Jarak dekat AND Jumlah Keadaan sedikit THEN Aman

)

= 0.16

[17]IF Kecepatan sedang AND Jarak dekat AND Jumlah Keadaan sedang THEN Berbahaya

)

= 0

[22]IF Kecepatan lambat AND Jarak sedang AND Jumlah Keadaan sedikit THEN Aman

)

= 0.25

[23]IF Kecepatan lambat AND Jarak sedang AND Jumlah Keadaan sedang THEN Berbahaya

)

= 0

[25]IF Kecepatan lambat AND Jarak dekat AND Jumlah Keadaan sedikit THEN Berbahaya

)

= 0.25

[26]IF Kecepatan lambat AND Jarak dekat AND Jumlah Keadaan sedang THEN Berbahaya

)


(30)

3.4.1.3Komposisi Aturan

Dari hasil aplikasi fungsi implikasi dari tiap aturan, digunakan metode MAX untuk melakukan komposisi antar semua aturan.

Untuk lebih jelasnya bisa dilihat pada gambar dibawah ini.

0.25

Keputusan

[z]

1

0

AMAN BERBAHAYA

Gambar 3.9 Daerah Hasil Komposisi Aturan Metode Max Dimana fungsi keanggotaan variabel keputusan adalah sebagai berikut :


(31)

Sehingga ketika nilai himpunan aman = 0.25 didapat fungsi keanggotaan seperti berikut ini :

maka didapat hasil z adalah 85

Ketika nilai himpunan Berbahaya = 0.25 didapat fungsi keanggotaan seperti berikut ini :

maka didapat nilai z adalah 100

Berikut ini fungsi keanggotaan dari hasil komposisi aturan.

3.4.1.4Penegasan (Defuzzy)

Berikut ini adalah perhitungan deffuzifikasi menggunakan metode centroid.

Z=

Nilai keputusan 100.28 termasuk kedalam kategori berbahaya. Berikut ini hasil perhitungan berdasarkan fuzzy logic toolbox pada matlab.


(32)

Gambar 3.10 Perhitungan Menggunakan Fuzzy Logic Toolbox Matlab 3.5Analisis Kebutuhan Perangkat Lunak

Spesifikasi kebutuhan perangkat lunak dilakukan berdasarkan kebutuhan game. Spesifikasi kebutuhan perangkat lunak akan dibagi ke dalam dua bagian yaitu F (Spesifikasi Kebutuhan Perangkat Lunak Fungsional) dan SKPL-NF (Spesifikasi Kebutuhan Perangkat Lunak Non-Fungsional). Spesifikasi kebutuhan perangkat lunak dalam penelitian ini dapat dilihat pada tabel berikut.

Tabel 3.4 SKPL User Requirement Kode

Kebutuhan

SKPL–F1 Perangkat Lunak dapat memasukan parameter yang diinginkan oleh user.

SKPL-F2 Perangkat Lunak dapat memproses hasil masukan.

SKPL-F3 Perangkat Lunak dapat melakukan proses fuzzyfikasi untuk mencari nilai

derajat keanggotaan.

SKPL-F4 Perangkat Lunak dapat menampilkan hasil dari proses Fuzzyfikasi.

Tabel 3.5 SKPL System Requirement

Kode Kebutuhan

SKPL–F1 1. NPC berpindah jalur dan mendahului mobil rintangan yang di depannya.

2. NPC tetap berada di jalur aman

SKPL-F2 1. Proses perhitungan masukan yang diterima system yang kemudian diolah


(33)

Tabel 3.6 SKPL Non-Fungsional

Kode Kategori Kebutuhan

SKPL-NF1 Efficiency

(Product Requirement)

Sistem dapat melakukan fuzzifikasi

SKPL-NF2 Operational

(Organizatonal Requirement)

Setiap kesalahan (error) yang terjadi disertai dengan pesan error kepada pengguna

SKPL-NF3 Development

(Organizatonal Requirement)

Untuk menjalankan sistem yang di bangun maka

dibutuhkan :

a. Microsoft Windows sebagai sistem operasi

b. Greenfoot tools pemograman 3.5.1 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non fungsional adalah langkah dimana seorang pembangun perangkat lunak menganalisis sumber daya yang akan digunakan dan menggunakan perangkat lunak yang dibangun. Perangkat keras dan perangkat lunak yang dimiliki harus sesuai dengan kebutuhan, sehingga dapat ditentukan kompabilitas aplikasi yang dibangun terhadap sumber daya yang ada.

3.5.1.1Analisis Kebutuhan Perangkat Keras

Perangkat keras yang dibutuhkan untuk penerapanlogika fuzzy pada gameyang akan dibuat. seperti yang terlihat pada Tabel 3.7.

Tabel 3.7 Spesifikasi Perangkat Keras Yang Dibutuhkan

No Perangkat Keras Spesifikasi

1 Prosesor Kecepatan 2.4 GHz

2 Monitor Monitor 14’’, resolusi 1024x768

3 VGA On-board Kecepatan 512 MB

4 Optical Drive DVD-ROM Standard

5 Keyboard Standard

6 Mouse Standard

7 Memori 2GB

3.5.1.2 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak yang dibutuhkan untuk penerapanlogika fuzzy pada gameyang akan dibuat. Adapun perangkat lunak yang dibutuhkan dapat dilihat pada Tabel 3.8.


(34)

Tabel 3.8 Analisis Kebutuhan Perangkat Lunak

No Perangkat Lunak Keterangan

1 Sistem Operasi Windows 7

2 Tools Program Greenfoot

3.5.2 Analisis Kebutuhan Fungsional

Spesifikasi kebutuhan fungsional adalah spesifikasi tentang hal-hal yang akan dilakukan sistem ketika diimplementasikan. Analisis kebutuhan ini diperlukan untuk menentukan keluaran yang akan dihasilkan sistem, masukan yang diperlukan sistem, lingkup proses yang digunakan untuk mengolah masukan menjadi keluaran.

3.5.2.1Use Case Diagram

Use case diagram merupakan gambaran umum dari sebuah sistem sehingga pengguna mengerti mengenai sistem yang akan dibangun. Use case dapat dilihat pada gambar 3.11.

Gambar 3.11 Use Case Diagram

Definisi use case berfungsi untuk menjelaskan fungsi dari use case yang terdapat pada diagram use case. Definisi use case dijelaskan pada tabel 3.9.

Tabel 3.9 Definisi Use Case

No Use Case Keterangan

1 Mulai Permainan Proses untuk memulai permainan


(35)

3 Menampilkan Area Permainan Sulit Proses untuk menampilkan area permainan sulit

4 Menampilkan Area Permainan Mudah Proses untuk menampilkan area permainan mudah

5 Keluar Proses untuk keluar dari permainan

3.5.2.2Skenario Use Case

Skenario use case merupakan penjelasan mengenai alur kejadian yang di dalamnya menjelaskan urutan interaksi antara aktor dengan use case tersebut. Adapun skenario use case digambarkan sebagai berikut.

Tabel 3.10 Skenario Use Case Memulai Permainan Identifikasi

Nomor 1

Nama Memulai Permainan

Tujuan Memulai permainan

Deskripsi Proses untuk memulai permainan

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di menu utama permainan

Aksi Aktor Reaksi Sistem

1. Memilihmulai

2. Menampilkan menu pilihan level

Tabel 3.11 Skenario Use Case Memilih Level Identifikasi

Nomor 2

Nama Permainan

Tujuan Menampilkan pilihan level

Deskripsi Proses untuk memilihlevel

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di tampilan pilih level

Aksi Aktor Reaksi Sistem

1. Menampilkan pilihan level

2. Jika memilih level mudah

3. Menampilkan area permainan

4. Jika memilih level sulit

5. Menampilkan area permainan

6. Jika memilih kembali

7. Menampilkan menu utama

Tabel 3.12 Skenario Use Case Menampilkan Arena Permainan Sulit Identifikasi

Nomor 3

Nama Menampilkan Area Permainan Sulit

Tujuan Menampilkan area permainan sulit


(36)

Aktor Pemain Skenario Utama

Kondisi Awal Pemain berada di area permainan sulit

Aksi Aktor Reaksi Sistem

1. Menampilkan area permainan sulit

2. Menampilkan karakter

3. Menampilkan NPC

4. Menampilkan fuzzy pada NPC

5. Cek kecepatan

6. Cek jarak

7. Cek keadaan

8. Defuzzy

9. Menampilkan pergerakan NPC

10. Menekan tombol kanan/kiri

11. Menampilkan pergerakan karakter

12. Cek tabrakan

13. Cek jarak tempuh

Tabel 3.13 Skenario Use Case Menampilkan Arena Permainan Mudah Identifikasi

Nomor 4

Nama Menampilkan Area Permainan Mudah

Tujuan Menampilkan area permainan mudah

Deskripsi Proses untuk menampilkan area permainan

mudah

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di area permainan mudah

Aksi Aktor Reaksi Sistem

1. Menampilkan area permainan mudah

2. Menampilkan karakter

3. Menampilkan NPC

4. Menampilkan pergerakan NPC

5. Menekan tombol kanan/kiri

6. Menampilkan pergerakan karakter

7. Cek tabrakan

8. Cek jarak tempuh

Tabel 3.14 Skenario Use Case Keluar Permainan Identifikasi

Nomor 5

Nama Keluar Permainan

Tujuan Keluar dariaplikasi permainan

Deskripsi Proses untuk keluar dari permainan

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di menu utama permainan

Aksi Aktor Reaksi Sistem

1. Memilih keluar


(37)

3.5.2.3Activity Diagram

Activity diagram merupakan gambaran alur aktivitas pada permainan yang sedang dirancang, bagaimana masing – masing alur aktivitas berawal, decision yang mungkin terjadi, dan bagaimana berakhir. Activity diagram dijelaskan melalui gambar berikut

1. Activity Diagram Memulai Permainan

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas memulai game. Activity diagram memulai game dapat dilihat pada gambar 3.12.

Gambar 3.12 Activity Diagram Memulai Permainan

2. Activity Diagram Memilih Level

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas permainan.Activity diagram memilih level dapat dilihat pada gambar 3.13.


(38)

Gambar 3.13 Activity Diagram Memilih Level 3. Activity Diagram Menampilkan Area Permainan Mudah

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas permainan. Activity diagram menampilkan area permainan dapat dilihat pada gambar 3.14.


(39)

Gambar 3.14 Activity Diagram Menampilkan Area Permainan Mudah

4. Activity Diagram Menampilkan Area Permainan Sulit

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas permainan. Activity diagram menampilkan area permainan dapat dilihat pada gambar 3.15.


(40)

Gambar 3.15 Activity Diagram Menampilkan Area Permainan Sulit

5. Activity Diagram Keluar Permainan

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas keluar dari permainan. Activity diagram keluar permainan dapat dilihat pada gambar 3.16.


(41)

Gambar 3.16 Activity Diagram Keluar Permainan 3.5.2.4Sequence Diagram

Sequence diagram menggambarkan tindakan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Berikut adalah gambar sequence diagram.


(42)

1. Sequence Diagram Mulai


(43)

2. Sequence Diagram Memilih Level


(44)

3. Sequence Diagram Menampilkan Area Permainan Mudah


(45)

4. Sequence Diagram menampilkan Area Permainan Sulit


(46)

5. Sequence Diagram Keluar Permainan

Gambar 3.21 Sequence Diagram Keluar Permainan 3.5.2.5Class Diagram

Class diagram merupakan gambaran sistem berupa relasi antar kelas – kelas ataupun paket – paketnya. Class diagram dijelaskan melalui gambar berikut.


(47)

Gambar 3.22 Class Diagram

3.5.2.6Perancangan Antarmuka

Perancangan antarmuka bertujuan untuk memberikan gambaran tentang aplikasi yang akan dibangun, sehingga akan mempermudah dalam mengimplementasikan aplikasi serta akan memudahkan pembuatan aplikasi.

Pada bagian ini akan dijelaskan perancangan antarmuka menu utama, perancangan antarmuka menu main.

1. Perancangan Antarmuka Menu Utama

Menu utama merupakan menu yang akan muncul pertama kali pada saat pengguna membuka game. Gambar 3.23 menunjukan perancangan antarmuka menu utama.


(48)

Gambar 3.23 Perancangan Antarmuka Menu Utama

2. Perancangan Antarmuka Menu Pilih Level

Antarmuka menu pilih level merupakan perancangan antarmuka yang menampilkan pilih level game Simulasi bergenre race. Gambar 3.24 menunjukan perancangan antarmuka menu untuk memilih level.


(49)

3. Perancangan Antarmuka Level Mudah

Antarmuka level mudah merupakan perancangan antarmuka yang menampilkan level mudah permainan game Simulasi bergenre race. Gambar 3.25 menunjukan perancangan antarmuka level mudah.

Gambar 3.25 Perancangan Antarmuka Level Mudah

4. Perancangan Antarmuka Level Sulit

Antarmuka level sulit merupakan perancangan antarmuka yang menampilkan level sulit permainan game Simulasi bergenre race. Gambar 3.26 menunjukan perancangan antarmuka level sulit.


(50)

Gambar 3.26 Perancangan Antarmuka Level Sulit 3.5.2.7Jaringan Semantik

Untuk mengetahui keterhubungan dari setiap tampilan yang dibuat dapat menggunakan jaringan semantik. Gambar 3.27 adalah jaringan semantik pada game simulasi bergenre race.


(51)

(52)

7

2.1 Kecerdasan Buatan AI (Artificial Intelligence)

Kecerdasan buatan berasal dari bahasa inggris “Artificial Intelligence” atau disingkat AI, yaitu intelligence adalah kata sifat yang berarti cerdas, sedangkan artificial artinya buatan Kecerdasan buatan yang dimaksud di sini merujuk pada mesin yang mampu berfikir, menimbang tindakan yang akan diambil, dan mampu mengambil keputusan seperti yang dilakukan oleh manusia.

Menurut Winston dan Prendergast (1984), tujuan dari kecerdasan buatan adalah :

1. Membuat mesin menjadi lebih pintar (tujuan utama) 2. Memahami apa itu kecerdasan (tujuan ilmiah)

3. Membuat mesin lebih bermanfaat (tujuan entrepreneurial)

Berdasarkan definisi ini, maka kecerdasan buatan menawarkan media maupun uji teori tentang kecerdasan. Teori-teori ini nantinya dapat dinyatakan dalam bahasa pemograman dan eksekusinya dapat dibuktikan pada komputer nyata.

Pemograman konvesional hanya dapat menyelesaikan persoalan yang diprogram secara spesifik. Jika ada informasi baru, sebuah program konvesional harus diubah untuk menyesuaikan diri dengan informasi baru tersebut. Hal ini tidak hanya menyebabkan boros waktu, namun juga dapat menyebabkan terjadinya eror. Sebaliknya, kecerdasan buatan memungkinkan komputer untuk berfikir atau menalar dan menirukan proses belajar manusia sehingga informasi baru dapat diserap sebagai pengetahuan, pengalaman, dan proses pembelajaran serta dapat digunakan sebagai acuan di masa-masa yang akan datang [9].

2.2 Logika Fuzzy(Fuzzy Logic)

Dalam bagian ini akan dibahas pengertian logika fuzzy, dasar – dasar logika fuzzy.


(53)

2.2.1 Pengertian Logika Fuzzy

Konsep tentang logika fuzzy diperkenalkan oleh Prof. Loyfi Zadeh pada 1962. Logika fuzzy adalah metodologi sistem kontrol pemecahan masalah, yang cocok untuk diimplementasikan pada sistem, mulai dari sistem yang sederhana, sistem kecil, embedded system, jaringan PC, multi-chanel atau workstation berbasis akuisisi data, dan sistem kontrol. Metodologi ini dapat diterapkan pada perangkat keras, perangkat lunak, atau kombinasi keduanya. Dalam logika klasik dinyatakan bahwa segala sesuatu bersifat biner, yang artinya adalah hanya mempunyai dua kemungkinan, “Ya atau Tidak”, “Benar atau Salah”, “Baik atau Buruk”, dan lain-lain. Oleh karena itu, semua dapat mempunyai nilai keanggotaan 0 atau 1. Akan tetapi, dalam logika fuzzy kemungkinan nilai keanggotaan berada di antara 0 dan 1. Artinya, biasa saja suatu keadaan mempunyai dua nilai “Ya dan Tidak”, “Benar dan Salah”, “Baik dan Buruk” secara bersamaan. Namun bisa nilainya tergantung pada bobot keanggotaan yang dimilikinya. Logika fuzzy dapat digunakan di berbagai bidang, seperti pada sistem diagnosis penyakit (dalam bidang kedokteran), pemodelan sistem pemasaran, riset operasi (dalam bidang ekonomi), kendali kualitas air, prediksi adanya gempa bumi, klasifikasi dan pencocokan pola (dalam bidang teknik) [9].

2.2.2 Dasar – dasar Logika Fuzzy

Untuk memahami logika fuzzy, sebelumnya perhatikan dahulu tentang konsep himpunan fuzzy. Himpunan fuzzy memiliki 2 atribut [9], yaitu :

1. Linguistik, yaitu nama suatu kelompok yang mewakili suatu keadaan tertentu dengan menggunakan bahasa alami, misalnya DINGIN, SEJUK, PANAS mewakili variabel temperatur. Contoh lain misalnya MUDA, PAROBAYA, TUA, mewakili variabel umur.

2. Numeris, yaitu suatu nilai yang menunjukan ukuran dari suatu variabel, misalnya 10, 35, 40, dan sebagainya.

Di samping itu, ada beberapa hal yang harus dipahami dalam memahami logika fuzzy, yaitu :

1. Variabel fuzzy, yaitu variabel yang akan dibahas dalam suatu sistem fuzzy. Contoh : penghasilan, temperatur, permintaan, umur, dan sebagainya.


(54)

2. Himpunan fuzzy, yaitu suatu kelompok yang mewakili suatu keadaan tertentu dalam suatu variabel fuzzy.

Variabel permintaan, terbagi menjadi 2 himpunan fuzzy, yaitu NAIK dan TURUN. Gambar 2.1 merupakan gambar himpunan naik dan himpunan turun.

Gambar 2.1 Variabel permintaan terbagi menjadi 2 himpunan fuzzy, yaitu himpunan NAIK dan himpunan TURUN

3. Semesta pembicaraan, yaitu seluruh nilai yang diizinkan untuk dioperasikan dalam suatu variabel fuzzy.

Contoh : Semesta pembicaraan untuk variabel permintaan : [0+∞) Semesta pembicaraan untuk variabel temperatur : [-10 90]

4. Domain himpunan fuzzy, yaitu seluruh nilai yang diizinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Pada Gambar 2.1 di atas domain untuk himpunan TURUN dan himpunan NAIK masing-masing adalah :

Domain himpunan TURUN = [0 5000] Domain himpunan NAIK = [1000 +∞)

2.2.3 Metode Mamdani

Metode mamdani paling sering digunakan dalam aplikasi – aplikasi karena strukturnya yang sederhana, yaitu menggunakan operasi MIN – MAX atau MAX – PRODUCT. Untuk mendapatkan output, diperlukan 4 tahapan berikut [14] : 1. Fuzzyfikasi

Artinya himpunan fuzzy dan penentuan derajat keanggotaan dari crisp input pada sebuah himpunan fuzzy.


(55)

3. Aplikasi fungsi implikasi menggunakan fungsi MIN dan komposisi antar rule menggunakan fungsi MAX (menghasilkan himpunan fuzzy baru)

4. Defuzzyfikasi menggunakan metode centroid.

Defuzyfikasi pada komposisi aturan mamdani dengan metode centroid. Dimana pada metode ini, solusi scrip diperoleh dengan cara mengambil titik pusat daerah fuzzy. Secara umum dirumuskan untuk variable kontinu :

Ada dua keuntungan menggunakan metode centroid, yaitu :

1. Nilai defuzzyfikasi akan bergerak secara halus sehingga perubahan dari suatu himpunan fuzzy juga akan berjalan dengan halus.

2. Lebih mudah dalam perhitungan.

2.3 Game

Dalam bagian ini akan dibahas pengertian game, pengertian simulasi game, jenis – jenis simulasi, dan klasifikasi game berdasarkan genre.

2.3.1 Pengertian Game

Game adalah kegiatan yang memiliki tujuan untuk dicapai dan dibatasi dengan peraturan bagi para pemainnya yang bersifat menyenangkan dan untuk membuat game maka haruslah memahami teknik dan metode animasi [7]. Game bertujuan untuk menghibur, biasanya game banyak disukai oleh anak – anak hingga orang dewasa. Game 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 untuk dilesaikan dengan cepat dan tepat.

Game merupakan salah satu teknologi yang perkembangannya sangat pesat pada masa kini di mulai dari game sederhana seperti permainan kartu, catur sampai permainan yang di mainkan di beberapa sarana atau perangkat teknologi seperti Playstation 3, Xbox 360, Nintendo Wii, PSP, Nintendo DS, maupun PC dari yang berbasis individu ataupun multiplayer yang lebih kompleks.


(56)

2.3.2 Pengertian Simulasi Game

Simulasi merupakan game yang mensimulasikan suatu kedaan rill. Contohnya simulasi pengendalian pesawat terbang pada game Microsoft Flight Simulator, simulasi kehidupan sehari-hari pada game The Sims, dan simulasi seorang manjer tim sepakbola pada game Champions Manager [1].

2.3.3 Jenis – jenis Simulasi

Simulasi terdiri dari beberapa jenis [6], diantaranya : 1. Sosiodrama.

Sosiodrama adalah metode pembelajaran bermain peran untuk memecahkan masalah-masalah yang berkaitan dengan fenomena sosial, permasalahan yang menyangkut hubungan antara manusia seperti masalah kenakalan remaja, narkoba, gambaran keluarga otoriter, dan lain sebagainya. Sosiodrama digunakan utnuk memberikan pemahaman dan penghayatan akan masalah-masalah sosial serta mengembangkan kemampuan siswa untuk memecahkannya.

2. Psikodrama.

Psikodrama adalah metode pembelajaran dengan bermain peran yang bertitik tolak daripermasalahan-permasalahan psikologis. Psikodrama biasanya digunakan untuk terapi, yaitu agar siswa memperolehpemahaman yang lebih baik tentang dirinya, menemukan konsep diri, menyatakan reaksi terhadap tekanan-tekanan yang dialaminya.

3. Role Playing.

Role playing atau bermain peran adalah metode pembelajaran sebagai bagian dari simulasi yang diarahkan untuk mengkreasi peristiwa-pristiwa actual, atau kejadian-kejadian yang mungkin muncul pada masa mendatang. Topik yang dapat diangkat untuk role playing misalnya memainkan peran sebagai juru kampanye suatu partai atau gambaran keadaan yang mungkinmuncul pada abad teknologi informasi.

4. Peer Teaching.

Peer teaching merupakan latihan mengajar yang dilakukan oleh siswa kepada teman-teman calon guru. Selain itu peer teaching merupakan


(57)

kegiatan pembelajaran yang dilakukan seorang siswa kepada siswa lainnya dan salah satu siswa itu lebih memahami materi pembelajaran.

2.3.4 Klasifikasi Game berdasarkan Genre

Menurut buku “Fundamentals of Game Design”, genre game bisa dibagi menjadi 9 [8], yaitu :

1. Action

Action game adalah game dimana kebanyakan dari tantangan yang disajikan merupakan dari tes physical skill dan koordinasi pemain. Salah satu sub-genre action game adalah shooters game, baik yang 2D maupun 3D seperti First Person Shooters (FPS).

2. Racing Game

Adalah tipe game yang tujuannya adalah mencapai garis finish dari suatu race, dalam game ini biasanya pemain dapat memilih dan membeli kendaraan, mendandani, melakukan upgrade mesin , contohnya : Need For Speed.

3. Strategy

Strategy game menantang pemain untuk mencapai kemenangan dengan perencanaan, khususnya melalui perencanaan serangkaian tindakan yang dilakukan melawan satu lawan atau lebih. Kemenangan diraih dengan perencanaan matang dan pengambilan keputusan yang optimal.

4. Role Playing Game (RPG)

RPG adalah game dimana pemain mengontrol satu atau lebih karakter yang biasanya di desain oleh pemain itu sendiri, dan memandu mereka melewati berbagai rintangan yang diatur oleh komputer. Perkembangan karakter dalam hal kekuatan dan kemampuannya adalah kunci dari game jenis ini.

5. Sports

Sports game mensimulasikan berbagai aspek dari olahraga atletik nyata maupun imajiner, apakah itu memainkan pertandingan, me-manage tim dan karir, atau keduanya. Salah satu contoh game jenis ini adalah Pro Evolution Soccer 2012 (PES 2012), dimana pemain bisa memainkan pertandingan,


(58)

menjadi manajer tim, maupun menjadi pemain dan mengembangkan karirnya sendiri.

6. Vechicle Simulation

Vechicle simulation membuat feeling mengendarai kendaraan, baik kendaraan nyata maupun kendaraan imajiner. Performa dan karakteristik kasar mesin harus menyerupai kenyataan, kecuali jika yang didesain adalah kendaraan imajiner.

7. Construction and Management Simulation

CMS game adalah game tentang proses. Tujuan pemain bukan untuk mengalahkan musuh, tetapi membangun sesuatu dengan konteks proses yang sedang berjalan. Semakin pemain mengerti dan mengontrol proses, semakin sukses sesuatu yang ia bangun. Game seperti ini biasanya menyediakan dua jenis permainan, yaitu mode bebas dimana pemain bebas membangun sesuatu, dan mode misi dimana terdapat skenario hal apa yang harus dibangun oleh pemain.

8. Adventure/ Platform

Adventure atau platform game adalah cerita interaktif tentang karakter protagonis yang dimainkan oleh pemain. Penyampaian cerita dan eksplorasi adalah elemen inti dari game ini. Penyelesaian teka-teki dan tantangan konseptual adalah bagian besar dari permainan.

9. Artificial Life and Puzzle Game

Artificial Life game adalah game yang membuat tiruan dari kehidupan sebenarnya. Biasanya ada dua jenis game ini, tiruan kehidupan manusia, contohnya The SIMS, dan tiruan kehidupan binatang, contohnya Tamagochi. 10.Online Game

Istilah online game disini mengacu kepada multiplayergame dimana mesin dari para pemain terhubung dengan jaringan.

2.4 OOP (Object Oriented Programing)

OOP (Object Oriented Programming) atau yang dikenal dengan Pemrograman Berorientasi Objek merupakan paradigma pemrograman yang


(59)

berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus ke dalam kelas-kelas atau objek-objek.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah tidak harus melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh suatu departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri [5].

2.4.1 Istilah-istilah OOP

Istilah OOP sudah sering didengar dalam ilmu pemrograman. Berikut ini istilah-istilah yang sering kali terdengar dalam teknik pemrograman OOP :

1. Object

Objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior. Di dalam OOP, state disimpan pada variabel dan tingkah laku disimpan pada method. Dalam bahasa teoretis OOP, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.


(60)

2. Class

Class adalah suatu frame yang merupakan definisi yang memuat data dan metod pengolah data. Class juga dapat diartikan sebagai tempat untuk membuat obyek. Di dalam class dideklarasikan variable dan method yang dimiliki oleh obyek. Proses pembuatan obyek dari sebuah class disebut dengan instantiation. Jadi obyek merupakan hasil instansiasi dari class. Obyek disebut juga dengan instance. Class memiliki anggota yang disebut Anggota Class (class member) yaitu atribut dan method.

3. Attributes

Atribut adalah data yang membedakan antara objek satu dengan yang lainnya. Contoh Objek : Volcano Robot (a volcanic exploration vehicle), mempunyai atribut sebagai berikut :

Status exploring, moving, returning home Speed in miles per hour

Temperature in Fahrenheit degrees

Dalam class, atribut sering disebut sebagai variabel. Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable. Instance variable adalah atribut untuk tiap objek dari kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi, tiap objek dari class yang sama boleh mempunyai nilai yang sama atau berbeda. Class Variable adalah atribut untuk semua objek yang dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya sama.

a. Behavior

Behavior/tingkah laku adalah hal-hal yang bisa dilakukan oleh objek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu objek, menerima informasi dari objek lain, dan mengirim informasi ke objek lain untuk melakukan suatu tugas (task).

b. Abstraksi

Abstraksi adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada


(61)

inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

2.4.2 Konsep-konsep OOP

Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:

1. Enkapsulasi

Enkapsulasi berfungsi untuk memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

2. Pewarisan (Inheritance)

Pewarisan merupakan pewarisan atribut dan method dari sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi class lainya, disebut sebagai multilevel inheritance. Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan. Keuntungan pewarisan: a. Subclass menyediakan state/behaviour yang spesifik yang membedakan

dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.

b. Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.


(62)

3. Polimorfisme

Poolimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Sebuah variabel tunggal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama, hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

2.5 UML (Unified Modeling Language)

Pada perkembangan teknik pemrograman berorientasi objek, muncul sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modelling Language (UML). Adapun pengertian dari UML adalah salah satu standar bahasa yang banyak digunakan di dunia industri untuk mendefinisikan requirement, membuat analisis dan desain, serta menggambarkan arsitektur dalam pemrograman berorientasi objek [10].

UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. Dalam hal ini UML merupakan suatu bahasa visual untuk melakukan pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung.

UML menggunakan berbagai macam diagram dengan fungsi masing-masing untuk menggambarkan setiap proses dari sistem berorientasi objek. UML memiliki 13 jenis diagram. Dalam pembangunan game ini dipakai 4 diagram UML diantaranya :

1. Use Case Diagram

Use Case atau diagram use case merupakan pemodelan yang digunakan untuk menggambarkan kelakuan (behavior) dari sistem yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem


(63)

yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case [10].

a. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem yang akan dibuat diluar sistem yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.

b. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antarunit-unit atau aktor.

Sebuah use case dapat meninclude fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang me-include dieksekusi secara normal. Use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Use case juga dapat me-extenduse case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. Contoh dari use case diagram dapat dilihat pada gambar berikut.

2. Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.


(64)

Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal [10].

3. Sequence Diagram

Diagram sequence adalah diagram yang menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek [10]. Oleh karena itu untuk menggambarkan diagram sequence maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Banyaknya diagram sequence yang harus digambarkan adalah sebanyak pendefinisian use case yang memiliki proses itu sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sequence sehingga semakin banyak use case yang didefinisikan maka diagram sequence yang harus dibuat juga semakin banyak.

4. Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.

b. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas c. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas

2.6 Tools Yang Digunakan

Tools yang digunakan untuk mengimplementasikan algoritma logika fuzzy pada game simulasi di antaranya adalah Java, Greenfoot dan Fuzzy logic toolbox.


(65)

2.6.1 Java

Java adalah bahasa pemrograman yang disusun oleh James Gosling yang dibantu oleh rekan-rekannya seperti Patrick Naugton, Chris Warth, Ed Frank, dan Sheridan di suatu perusahaan perangkat lunak yang bernama Susn Microsystems, pada tahun 1991. Bahasa pemrograman ini mula-mula diinisialisasi dengan nama “Oak”, namun oada tahun 1995 diganti namanya menjadi “Java”.

Alasan utama pembentukan bahasa Java adalah untuk membuat aplikasi-aplikasi yang dapat diletakkan diberbagai macam perangkat elektronik, seperti microwave oven dan remote control, sehingga Java harus bersifat portabel atau yang sering disebut dengan platform independent (tidak bergantung pada platform). Itulah yang menyebabkan dalam dunia pemrograman Java, dikenal adanya istilah „write once, run everywhere’, yang berarti kode program hanya ditulis sekali, namun dapat dijalankan di bawah platform manapun, tanpa harus melakukan perubahan kode program [11].

2.6.2 Greenfoot

Greenfoot merupakan sebuah IDE berbasis java yang dikhususkan untuk pembuatan game sederhana. Greenfoot diprakarsai oleh Michael Kolliung pada tahun 2003. Prototype yang pertama dibangun oleh Poul Henriksson dan Michael Kolling pada tahun 2003/2004. semenjak tahun 2005 pembuatan greenfoot ini dilanjutkan dengan melibatkan anggota kelompok dari University of Kent dan Deakin University. Pada awalnya, greenfoot bertujuan untuk menarik minat anak-anak untuk belajar pemrograman, greenfoot ini cocok untuk anak-anak usia 13 tahun ke atas. Cara penggunaannya pun cukup mudah. Selain berbentuk teks seperti editor lainnya, pada greenfoot ini terdapat perangkat alat bantu seperti class browser, editor dan compiler. Greenfoot juga mendukung bahasa Java secara utuh. Dengan adanya bantuan perangkat-perangkat tadi, konsep OOP pada greenfoot lebih mudah dimengerti. Didalam greenfoot terdapat project yang dinamakan scenario. Di dalam project tersebut, kita bisa membuat dua macam tipe class dari library greenfoot. Yaitu class world dan actor. World merupakan latar dari game yang akan dibuat. Untuk membuat class world, caranya adalah dengan mengklik new sub class di bagian world. Maka akan mucul sebuah kotak dialog. Kemudian kita


(66)

diminta untuk memberi nama untuk class world tersebut. Setelah itu kita dapat memilih gambar sebagai latar belakang class world yang akan kita buat. Di dalam greenfoot sendiri telah tersedia beberapa gambar untuk latar belakang, seperti gambar tanah, pasir, batu, air, dll. Class actor adalah sebuah kelas yang berfungsi sebagai karakter pada game yang akan kita buat. Untuk membuat actor caranya adalah dengan meng-klik icon aktor, kemudian pilih new subclass. caranya hampir mirip dengan pembuatan class world. Pada class actor juga telah disediakan beberapa gambar, sepertii gambar animal, people, symbol, All[12].

2.6.3 Fuzzy Logic Toolbox

Fuzzy Logic Toolbox adalah fasilitas yang tersedia dalam program matlab untuk membangun suatu sistem Fuzzy logic. Fuzzy Logic Toolbox memberikan fasilitas Graphical User Interface (GUI) untuk mempermudah dalam membangun suatu sistem Fuzzy. pada saat membangun sistem Fuzzy dengan Fuzzy Logic Toolbox, maka pengguna harus melakukan editing yang meliputi : jumlah masukan atau keluaran, klasifikasi masukan atau keluaran, jenis MF (membership Function) masukan atau keluaran, rule, metode DeFuzzyfikasi.

Ada 5 GUI yang dapat dipergunakan untuk membangun, mengedit, dan mengobservasi sistem penlaran, yaitu :

1. Fuzzy Inference System (FIS) Editor 2. Membership Function Editor

3. Rule Editor 4. Rule Viewer 5. Surface Viewer

Dengan memanfaatkan tigas fasilitas GUI seperti, Fis Editor, MF Editor dan Rule Editor pengguna dapat membaca dan memodifikasi data tentang sistem Fuzzy yang dibangun. Untuk lebih jelasnya bisa dilihat pada Gambar 2.2.


(67)

Gambar 2.2 Fuzzy Logic Toolbox Matlab

2.7 Metode Pengujian Sistem

Metode pengujian sistem untuk mengetahui efektifitas dari software yang digunakan selain memberikan kesempatan kepada pengguna untuk mengoperasikan dan melakukan pengecekan terhadap laporan yang dihasilkan melalui software. Metode pengujian sistem terdiri dari Pengujian Whitebox dan Pengujian Blackbox [13].

2.7.1 Pengujian Whitebox

Pengujian whitebox dilakukan untuk menguji prosedur-prosedur yang ada. Lintasan lojik yang dilalui oleh setiap bagian prosedur diuji dengan memberikan kondisi/loop spesifik. Pengujian whitebox menjamin pengujian terhadap semua lintasan yang tidak bergantungan minimal satu kali, mencoba semua keputusan lojik dari sisi „true’ dan „false’, eksekusi semua loop dalam batasan kondisi dan batasan operasionalnya dan pengujian validasi data internal. Konsep Pengujian Basis Path sebagai berikut:

1. Merupakan bagian dari pengujian whitebox dalam hal pengujian prosedur-prosedur.


(68)

2. Mempergunakan notasi aliran graph (node, link untuk merepresentasikan sequence, if, while, until dan sebagainya).

3. Konsep kompleksitas cyclomatic antara lain cara perhitungan daerah tertutup pada graph planar dimana dapat menghubungkan batas atas jumlah pengujian yang harus direncanakan dan dieksekusi untuk menjamin pengujian seluruh statement program.

4. Memunculkan kasus-kasus yang akan diuji dengan membuat daftar lintasan kasus pengujian berdasarkan kompleksitas dan cyclomatic yang didapat. 5. Membuat alat bantu graph matriks yang membantu pengawasan pengujian.

2.7.2 Pengujian Blackbox

Pengujian yang dilakukan untuk antarmuka perangkat lunak, pengujian ini dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja dengan baik dalam arti masukan yang diterima dengan benar dan keluaran yang dihasilkan benar-benar tepat, pengintegrasian dari eksternal data berjalan dengan baik.

Metode pengujian blackbox memfokuskan pada requirement fungsi dari perangkat lunak, pengujian ini merupakan komplenetari dari pengujian whitebox. Pengujian whitebox dilakukan terlebih dahulu pada proses pengujian, sedangkan pengujian blackbox dilakukan pada tahap akhir dari pengujian perangkat lunak. Proses yang terdapat dalam proses pengujian blackbox antara lain sebagai berikut: 1. Pembagian kelas data untuk pengujian setiap kasus yang muncul pada

pengujian whitebox.


(69)

(70)

1

1.1 Latar Belakang Masalah

Simulasi merupakan game yang mensimulasikan suatu keadaan rill. Contohnya simulasi pengendalian pesawat terbang pada game Microsoft Flight Simulator, simulasi kehidupan sehari-hari pada game The Sims, dan simulasi seorang manager tim sepakbola pada game Champions Manager [1]. Game simulasi bergenre racing pada umumnya rintangan mobil yang ada dalam permainan itu tetap berada pada jalurnya dan tidak bisa mendahului rintangan mobil yang ada di depannya dengan berpindah jalur lain salah satu contohnya di game simulasi aman pada platform android.

Seiring dengan berkembangnya ilmu pengetahuan, Penerapan Artificial Intellegence (AI) pada perilaku Non Playable Character (NPC) pada game, saat ini terus berkembang. Ketika game sudah mempunyai AI yang baik, berarti bahwa karakter permainan menunjukkan perilaku yang konsisten dan realistis, bereaksi dengan tepat kepada tindakan pemain dan karakter lain [2]. Game simulasi yang akan di rancang adalah bergenre racing dengan mensimulasikan sepeda motor menggunakan algoritma logika fuzzy pada perilaku Non Playable Character (NPC) pada mobil rintangan agar dinamis.

Logika fuzzy dapat digunakan untuk NPC pengambilan keputusan seperti pemilihan senjata, untuk kontrol unit gerakan yang mirip dengan yang terjadi pada sistem kontrol [3]. Dalam game simulasi bergenre racing ini diterapkan logika fuzzy pada NPC mobil rintangan untuk bisa mengambil keputusan secara otomatis. Berdasarkan karateristik logika fuzzy dapat digunakan untuk permasalahan seperti menentukan arah mobil rintangan yang di sebut NPC, dengan menggunakan variable – variable yang telah di tentukan. Untuk mendapatkan perilaku yang otomatis maka di buatlah aturan rule. Karena berdasarkan dengan aturan rule NPC bisa mengambil keputusan.

Solusi yang ditawarkan dari permasalahan yang telah dipaparkan sebelumnya adalah menerapkan logika fuzzy dalam menentukan arah mobil


(71)

rintangan pada game simulasi bergenre race agar game terlihat lebih rill. Oleh karena itu dalam penelitian ini penulis akan mengimplementasikan skripsi dengan

judul “Penerapan Algoritma Logika Fuzzy Dalam Menentukan Arah Mobil

Rintangan Pada GameSimulasi”. 1.2 Perumusan Masalah

Berdasarkan latar belakang masalah yang telah diuraikan di atas, maka yang menjadi permasalahan adalah bagaimana menerapkan algoritma logika fuzzy dalam menentukan arah mobil rintangan pada game Simulasi bergenre racing.

1.3 Maksud dan Tujuan

Berdasarkan masalah yang telah dikemukakan diatas, maka maksud dari penelitian ini adalah untuk menerapkan algoritma logika fuzzy dalam menentukan arah mobil rintangan pada game Simulasi bergenre racing. Adapun tujuan yang ingin dicapai adalah menghasilkan NPC yang bereaksi secara otomatis ketika menghadapi mobil rintangan di depannya.

1.4 Batasan Masalah

Agar pembahasan menjadi terarah, maka permasalahan akan dibatasi terhadap masalah-masalah berikut ini :

1. Track yang digunakan tiga jalur, satu arah.

2. Terdapat dua tingkatan level, level mudah dan level sulit. 3. Penerapan algoritma fuzzy terdapat tiga variabel.

4. Dalam defuzzifikasi menggunakan metode logika fuzzy mamdani. 5. Aplikasi game yang dibuat berbasis desktop.

6. Tools yang digunakan greenfoot dan menggunakan bahasa pemograman java.

7. Pemodelan perancangan sistem menggunakan UML.

1.5 Metodologi Penelitian

Dalam penelitian ini pendekatan yang dilakukan adalah melalui pendekatan kualitatif, artinya data yang dikumpulkan bukan berupa angka-angka melainkan data berupa jurnal e-book. Metode kualitatif adalah metode yang digunakan untuk


(72)

meneliti kondisi objek yang alamiah dimana peneliti sebagai instrument kunci [4].

Metode penelitian ini memiliki 2 metode yaitu metode pengumpulan data dan metode pembangunan perangkat lunak.

1. Metode pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah dengan melakukan studi literatur. Studi literatur merupakan pengumpulan dengan cara mempelajari sumber kepustakaan diantaranya abstrak hasil penelitian, indeks, review, jurnal, buku referensi yang berkaitan dengan penelitian yang dilakukan yaitu tentang implementasi logika fuzzy.

2. Metode Pengembangan Perangkat Lunak

Dalam penelitian ini, digunakan metode pengembangan perangkat lunak ilustrasi model waterfall. Model ilustrasi waterfall adalah model sistematik untuk pembangunan perangkat lunak yang mempunyai tahapan-tahapan dalam proses pembangunan perangkat lunaknya mulai dari proses analisis, design, code, sampai proses testing [5]. Gambar 1.1 merupakan gambar model ilustrasi waterfall.

1. Tahap analisis

Pada tahap analisis mulai mencari fungsionalitas-fungsionalitas yang dibutuhkan untuk membangun game yang dalam hal ini meliputi analisis algoritma logika fuzzy, analisis masalah, analisis masukan serta analisis kebutuhan fungsional dan nonfungsional.

2. Tahap design

Pada tahap ini melakukan perancangan dari game yang dibuat meliputi perancangan antarmuka, perancangan metode, serta mendesain.

3. Tahap code

Pada tahap code yaitu mulai mengeksekusi perancangan-perancangan yang dilakukan sebelumnya ke dalam bahasa pemrograman java.

4. Tahap testing

Pada tahap testing bertujuan untuk menemukan kesalahan-kesalahan terhadap perangkat lunak untuk kemudian bisa diperbaiki.


(73)

Gambar 1.1 Ilustrasi Model Waterfall [5] 1.5 Sistematika Penulisan

Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Menguraikan tentang latar belakang masalah, merumuskan inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian, yang kemudian diikuti dengan pembatasan masalah, serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini berisi pembahasan mengenai kecerdasan buatan (Artificial Intelligence), algoritma logika fuzzy, metode mamdani, pengertian game, pengertian simulasi game, jenis – jenis simulasi, klasifikasi game berdasarkan genre, object oriented analysis and design (OOAD), konsep – konsep OOAD, UML (Unified Modeling Language), tools yang digunakan, metode pengujian.

BAB 3 ANALISIS ALGORITMA DAN PERANCANGAN

Bab ini berisi mengenai analisis masalah, analisis game, analisis masukan, analisis algoritma logika fuzzy, analisis kebutuhan.


(1)

v

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... xi

DAFTAR SIMBOL ... xiii

DAFTAR LAMPIRAN ... xvi

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 2

1.3 Maksud dan Tujuan... 2

1.4 Batasan Masalah ... 2

1.5 Metodologi Penelitian ... 2

1.6 Sistematika Penulisan ... 4

BAB 2 LANDASAN TEORI ... 7

2.1 Kecerdasan Buatan AI (Artificial Intelligence) ... 7

2.2 Logika Fuzzy (Fuzzy Logic) ... 7

2.2.1 Pengertian Logika Fuzzy ... 8

2.2.2 Dasar – dasar Logika Fuzzy ... 8

2.2.3 Metode Mamdani ... 9

2.3 Game ... 10

2.3.1 Pengertian Game ... 10

2.3.2 Pengertian Simulasi Game ... 11

2.3.3 Jenis – jenis Simulasi ... 11

2.3.4 Klasifikasi Game berdasarkan Genre ... 12

2.4 OOP (Object Oriented Programming) ... 13

2.4.1 Istilah – istilah OOP ... 14

2.4.2 Konsep – konsep OOP ... 16


(2)

vi

2.6 Tools Yang Digunakan ... 19

2.6.1 Java ... 20

2.6.2 Greenfoot ... 20

2.6.3 Fuzzy Logic Toolbox ... 21

2.7 Metode Pengujian Sistem ... 22

2.7.1 Pengujian Whitebox ... 22

2.7.2 Pengujian Blackbox ... 23

BAB 3 ANALISIS ALGORITMA DAN PERANCANGAN ... 25

3.1 Analisis Masalah ... 25

3.2 Analisis Game... 25

3.2.1 Analisis Leveling ... 25

3.2.2 Analisis Game Sejenis ... 26

3.3 Analisisi Masukan... 27

3.4 Analisis Algoritma Logika Fuzzy ... 32

3.4.1 Contoh Penerapan ... 32

3.5 Analisis Kebutuhan Perangkat Lunak ... 41

3.5.1 Analisis Kebutuhan Non-Fungsional ... 42

3.5.2 Analisis Kebutuhan Fungsional ... 43

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 61

4.1 Implementasi ... 61

4.1.1 Perangkat Lunak Implementasi dan Pengujian ... 61

4.1.2 Perangkat Keras Implementasi dan Pengujian ... 61

4.1.3 Implementasi Antarmuka ... 61

4.2 Pengujian Sistem ... 65

4.2.1 Sekenario Pengujian Aplikasi ... 66

4.2.2 Pengujian Black box ... 66

BAB 5 KESIMPULAN DAN SARAN ... 75

5.1 Kesimpulan ... 75

5.2 Saran... 75


(3)

PENERAPAN ALGORITMA LOGIKA

FUZZY

DALAM

MENENTUKAN ARAH MOBIL RINTANGAN PADA

GAME

SIMULASI

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

MUHAMAD NUR IMAN HIDAYATULLAH

10109604

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2014


(4)

BIODATA PENULIS

1. DATA PRIBADI

Nama : Muhamad Nur Iman Hidayatullah

Tempat, Tanggal Lahir : Majalengka, 10 Februari 1991

Jenis kelamin : Laki - laki

Agama : Islam

Kewarganegaraan : Indonesia

Alamat : Jl. Girimukti No 18 Rt. 04 Rw. 14 Pasirbiru Cibiru

Bandung 40615

No. Telp : 081312110624

E-mail : muhamadnuriman10@gmail.com

2. RIWAYAT PENDIDIKAN

1996 – 1997 1997 – 2003

: :

Taman Kanak-kanak Bhinangkit SDN Jatisura 3

2003 – 2006 : SMPN 1 Jatiwangi

2006 – 2009 : SMKN 1 Majalengka

2009 – 2014 : Fakultas Teknik dan Ilmu Komputer Jurusan Teknik Informatika Universitas Komputer Indonesia

Bandung

Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.

Bandung, 20 Agustus 2014


(5)

(6)