• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
85
0
0

Teks penuh

(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

(3)

Gambar 4.1 Antarmuka Menu Utama 4.1.3.2Implementasi Antarmuka Menu Pilih Level

(4)

Gambar 4.2 Antarmuka Menu Pilih Level

1. Antarmuka arena permainan mudah

(5)

Gambar 4.3 Antarmuka Arena Permainan Mudah

2. Antarmuaka arena permainan sulit

(6)

Gambar 4.4 Antarmuka Arena Permainan Sulit 4.2 Pengujian Sistem

(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,

(8)

Tabel 4.2 Hasil Pengujian Black Box

No. Komponen

yang diuji Skenario pengujian

Hasil Yang Memilih Menu Keluar Keluar dari

permainan

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;

(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;

(10)

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;

(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

(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 :

(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. 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

(14)

mobil rintangan di depannya

dengan

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

fuzzyfikasi apabila

(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

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

(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

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

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

(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

(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,

(24)

0 20 40 60 80 100 120

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

(25)

0 10 20 30 40 50 60

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

(26)

0 0.5 1 1.5 2 2.5 3 3.5 4

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

(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

(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

(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

(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

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

(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

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

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

(38)

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

(39)

Gambar 3.14 Activity Diagram Menampilkan Area Permainan Mudah

4. Activity Diagram Menampilkan Area Permainan Sulit

(40)

Gambar 3.15 Activity Diagram Menampilkan Area Permainan Sulit

5. Activity Diagram Keluar Permainan

(41)

Gambar 3.16 Activity Diagram Keluar Permainan

3.5.2.4Sequence 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

(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

(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

(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)

(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 :

(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.

(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.

(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

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

(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)

(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

(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

(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.

(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

(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.

(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

(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

(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

(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:

(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.

(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

(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

(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

Gambar

Gambar 3.9 Daerah Hasil Komposisi Aturan Metode Max
Tabel 3.5 SKPL System Requirement
Tabel 3.6 SKPL Non-Fungsional
Gambar 3.11 Use Case Diagram
+7

Referensi

Dokumen terkait

Algoritma greedy sebagai pencari rute terpendek sehingga player akan lebih memprioritaskan musuh terdekat dan logika fuzzy untuk mengatur perilaku menyerang yang

Gambar 4.20 Hasil simulasi percobaan 4 dengan kontrol logika fuzzy 1 Dengan mengetahui persamaan untuk mencari nilai keluaran. mobil maka didapat hasil

Untuk mengatasi masalah tersebut dibutuhkan sebuah sistem yang dapat membantu menentukan harga jual batik dengan menggunakan metode Logika Fuzzy Mamdani.. Hal ini

Dengan menggunakan empat variable Nilai Akhir, Nilai Keaktifan dan Nilai Prestasi dan nilai keorganisasian yang diproses dengan metode logika fuzzy mempunyai

Hasil uji dari 30 data sampel uji algoritma fuzzy logic sugeno menunjukan bahwa tingkat keberhasilan menentukan prilaku NPC sebesar 100% pada permainan Battle

Penelitian ini memiliki tujuan untuk menerapkan sistem pendukung keputusan dengan menggunakan metode logika fuzzy tahani sebagai rekomendasi menentukan dan

Dengan proses pengujian tersebut dapat ditarik bahwa Algoritma A* sesuai untuk mencari jalur terpendek saat mengejar Pac-Man dan Logika Fuzzy metode Sugeno dapat digunakan

Berdasarkan penelitian yang dilakukan mengenai Pemodelan Logika Fuzzy pada Multiple Intelligence untuk Menentukan Kecerdasan Linguistik, maka dapat disimpulkan bahwa