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
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
Gambar 4.1 Antarmuka Menu Utama 4.1.3.2Implementasi Antarmuka Menu Pilih Level
Gambar 4.2 Antarmuka Menu Pilih Level
1. Antarmuka arena permainan mudah
Gambar 4.3 Antarmuka Arena Permainan Mudah
2. Antarmuaka arena permainan sulit
Gambar 4.4 Antarmuka Arena Permainan Sulit 4.2 Pengujian Sistem
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,
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;
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;
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;
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
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 :
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
mobil rintangan di depannya
dengan
mendahului mobil yang di depannya 2. 1-2-3-4-6-13-14-19 Melakukan proses
fuzzyfikasi apabila
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
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.
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
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
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
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
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
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,
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
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
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
[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
[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
)
[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
)
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
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
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
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
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
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
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
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
Gambar 3.13 Activity Diagram Memilih Level 3. Activity Diagram Menampilkan Area Permainan Mudah
Gambar 3.14 Activity Diagram Menampilkan Area Permainan Mudah
4. Activity Diagram Menampilkan Area Permainan Sulit
Gambar 3.15 Activity Diagram Menampilkan Area Permainan Sulit
5. Activity Diagram Keluar Permainan
Gambar 3.16 Activity Diagram Keluar Permainan
3.5.2.4Sequence Diagram
1. Sequence Diagram Mulai
2. Sequence Diagram Memilih Level
3. Sequence Diagram Menampilkan Area Permainan Mudah
4. Sequence Diagram menampilkan Area Permainan Sulit
5. Sequence Diagram Keluar Permainan
Gambar 3.21 Sequence Diagram Keluar Permainan
3.5.2.5Class Diagram
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
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.
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
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.
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)
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 :
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.
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.
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.
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
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)
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
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
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.
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
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.
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
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
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
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:
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.
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.
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
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
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