• Tidak ada hasil yang ditemukan

Implementasi Algoritma Logika Fuzzy Pada Game Rescue Flood Victim Dalam Mengatur Tingkah Laku Karakter Non Playable Character Korban Banjir

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Logika Fuzzy Pada Game Rescue Flood Victim Dalam Mengatur Tingkah Laku Karakter Non Playable Character Korban Banjir"

Copied!
101
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

DENI RAHMAN

10109309

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(2)

iv

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

DAFTAR SIMBOL ... x

DAFTAR LAMPIRAN ... xvi

(3)

v

2.6 Unity ... 28

2.7 Adobe Photoshop ... 29

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA ... 31

3.1 Analisis Sistem ... 31

3.5.1 Analisis Kebutuhan Perangkat Lunak ... 43

3.5.2 Analisis Kebutuhan Perangkat Keras ... 44

3.5.3 Analisis Pengguna ... 44

3.6 Analisis Kebutuhan Fungsional ... 45

3.7 Perancangan Sistem ... 62

3.7.1 Perancangan Perangkat Lunak ... 62

3.7.1.1 Perancangan Arsitektur Menu ... 63

3.7.1.2 Perancangan Antarmuka ... 63

3.7.1.3 Jaringan Simentik ... 66

3.7.2 Perancangan Method ... 67

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 71

4.1 Implementasi ... 71

4.1.1 Implementasi Perangkat Keras ... 71

4.1.2 Implementasi Perangkat Lunak ... 71

4.1.3 Implementasi Antarmuka ... 72

(4)

vi

5.1 Kesimpulan ... 87

5.2 Saran ... 87

(5)

praktisi. Andi.

[2] Salen, Katie; Zimmerman, Eric (2003). Rules of Play: Game Design Fundamentals. MIT Press, hal. 80.

[3]

Rollings, Andrew; Morris, Dave (2004). Game Architecture and Design: A

New Edition. New Riders.

[4]

Jones, Key (1995). Simulations: A Handbook for Teachers and Trainers.

Kogan Page, hal. 21.

[5] Wampler, Bruce E. (2001), The Essence of Object Oriented Programing with Java and UML. Addison Wesley.

[6] Shalahuddin, M dan Rosa A. S (2011), Rekayasa Perangkat Lunak

(Terstruktur dan Berorientasi Objek). Modula.

[7] Kusumadewi, Sri. (2002). Analisis dan Desain Sistem Fuzzy (Menggunakan Toolbox MATLAB). Graha Ilmu.

[8] Unity Technologies. (2012). Create the game you love with unity. Diakses tanggal 30 Maret 2014 pukul 09.00 WIB. dari http://unity3d.com/unity/.

[9] Andang, Ismail. (2006). Education Games (Menjadi cerdas dan ceria dengan permainan edukatif). Pilar Media.

[10] Permana, Budi. (2009). Seri Penuntun Praktis Adobe Photoshop CS4. Elex Media.

[11] Ferry, I.H. (2003). Rancangan dan Pengujian Performansi Sistem Pemanas

(6)

iii

Assalamu’alaikum Wr. Wb.

Puji syukur alhamdulillah penulis panjatkan kehadirat Allah SWT yang Maha

pengasih lagi Maha penyayang, karena atas rahmat dan hidayah-Nya penulis dapat menyelesaikan Skripsi yang berjudul “IMPLEMENTASI LOGIKA FUZZY PADA GAME RESCUE FLOOD VICTIM DALAM MENGATUR TINGKAH LAKU KARAKTER NON PLAYABLE CHARACTER KORBAN BANJIR”.

Skripsi ini dibuat sebagai salah satu syarat kelulusan program Strata 1

Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika di

Universitas Komputer Indonesia. Dengan penuh rasa syukur, ucapan terima kasih

yang mendalam serta penghargaan yang tidak terhingga penulis sampaikan kepada :

1. Allah SWT yang telah memberikan kesehatan, kesempatan, serta rizki kepada

penulis dalam proses menyelesaikan skripsi ini dan juga atas semua rahmat dan

hidayah-Nya yang dapat menjadikan semangat dalam jiwa.

2. Kepada kedua orang tua yang sangat saya cintai dan saya hormati, yang selalu

memberikan semangat, kekuatan moril, dan selalu mendo’akan penulis.

3. Bpk Irawan Afrianto, M.T. selaku Dosen Wali dan Ketua Program Studi Teknik

Informatika Universitas Komputer Indonesia (UNIKOM).

4. Bpk Galih Hermawan, S.Kom., M.T. selaku pembimbing yang selalu

memberikan yang terbaik serta sabar dalam memberikan bimbingan kepada

penulis.

5. Ibu Sufa’atin, S.T., M.Kom. selaku penguji dan reviewer yang memberikan banyak masukan yang sangat berarti bagi penulis.

6. Ibu Tati Harihayati M., S.T., M.T. selaku penguji yang memberikan banyak

(7)

iv

9. Teman – teman IF-7 angkatan 2009 dan semuanya yang tidak dapat disebutkan satu persatu, terima kasih telah memberikan segala bentuk dukungan untuk

menyelesaikan skripsi ini.

Penulis menyadari bahwa skripsi ini masih banyak kekurangan dan masih jauh

dari kata sempurna. Oleh karena itu, saran dan kritik yang sifatnya membangun akan

penulis terima dengan senang hati. Akhir kata penulis berharap skripsi ini dapat

bermanfaat bagi yang para pembaca.

Wassalamu’alaikum Wr. Wb.

Bandung, 12 Agustus 2014

(8)

Nama : Deni Rahman

Tempat/ Tanggal Lahir : Karawang, 27 November 1991

Agama : Islam

Kewarganegaraan : Indonesia

Status : Belum Menikah

Anak ke : 2 dari 2 bersaudara

Alamat : Jl. Cukang Kawung No.21 Kel. Cigadung Kec.

Cibeunying Kaler Kota Bandung 40191

Nomor Telepon : 085721783849

Email : denirahman91@ymail.com

2. RIWAYAT PENDIDIKAN 1. Sekolah Dasar

1997 – 2003 : SD Negeri Sarimulya V Cikampek 2. Sekolah Menengah Pertama

2003 – 2006 : SMP Negeri 1 Cikampek 3. Sekolah Menengah Atas

2006 – 2009 : SMA Negeri 1 Cikampek

4. Perguruan Tinggi

(9)

1 1.1 Latar Belakang Masalah

Game penyelamatan korban banjir merupakan game berjenis simulation game. Simulation game merupakan salah satu jenis game yang menuntut secara langsung untuk melakukan suatu hal secara aktif. Game penyelamatan korban

banjir ini memiliki konsep permainan menyelamatkan korban banjir. Game ini ditugaskan menyelamatkan korban banjir yang berada di pemukiman masyarakat

dengan menggunakan perahu sebagai alat penolong.

Game penyelamatan korban banjir hampir memiliki kesamaan dengan game bernama S.O.S. Game S.O.S ini dipopulerkan oleh iPlayAllDay.com. Game S.O.S ini memiliki tujuan yang sama yaitu menyelamatkan korban, tetapi

menyelamatkan korban di tengah laut menggunakan pesawat jet sebagai alat

penolong. Game S.O.S ini memakai algoritma collision detection. Collision detection adalah proses pendeteksian tabrakan antara dua objek. Game S.O.S ini mendeteksi tabrakan antara pesawat jet dengan air, pesawat jet dengan kapal laut

dan juga mendeteksi pesawat jet dengan sisi sudut game. Dengan memakai algoritma collision detection, penyelamatan korban pada game S.O.S menjadi banyak rintangan dan harus menghindari tabrakan dari setiap objek. Namun pada

game penyelamatan korban banjir ini memakai algoritma logika fuzzy. Logika fuzzy merupakan algoritma penerapan kecerdasan buatan yang diterapkan dalam pengambilan keputusan. Dengan memakai algoritma logika fuzzy, korban banjir memiliki perilaku atau tingkah laku layaknya orang yang meminta tolong.

Kecerdasan buatan yang diterapkan pada korban banjir menjadikan korban banjir

tidak dapat dikendalikan oleh manusia maka korban banjir tersebut disebut

sebagai NPC (Non-Playable Character).

Dibandingkan dengan sistem logika lain, algoritma logika fuzzy bisa menghasilkan keputusan yang lebih adil dan lebih manusiawi. Penerapan

(10)

banjir pada game simulasi penyelamatan korban banjir menghasilkan keputusan perilaku atau tingkah laku yaitu bertahan di atas rumah dan menyelamatkan diri

ketika air tinggi dan stamina sudah lemah.

Berdasarkan hal yang telah di jelaskan diatas, maka dalam penelitian ini

penulis akan menerapkan algoritma logika fuzzy pada game simulation penyelamatan korban banjir. Game simulation penyelamatan korban banjir yang berjudul “Rescue Flood Victim” diharapkan dapat mengetahui performansi dari algoritma logika fuzzy.

1.2 Perumusan Masalah

Berdasarkan latar belakang masalah yang telah diuraikan di atas, maka yang

menjadi pokok permasalahan adalah Bagaimana menerapkan dan menguji

algoritma logika fuzzy ke dalam karakter NPC (Non-Playable Character) korban banjir pada game Rescue Flood Victim.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud penyusunan tugas

akhir ini adalah mengimplementasi algoritma logika fuzzy pada game Rescue Flood Victim. Adapun tujuan yang akan dicapai dalam tugas akhir ini adalah sebagai berikut :

1. Memberikan perilaku atau tingkah laku dengan menggunakan algoritma

logika fuzzy pada karakter NPC (Non-Playable Character) korban banjir. 2. Mengetahui performansi algoritma logika fuzzy dalam game Rescue Flood

Victim.

1.4 Batasan Masalah

Berdasarkan latar belakang masalah yang telah dijabarkan, maka dapat

dirumuskan beberapa permasalahan yang terjadi, yaitu :

(11)

2. Algoritma logika fuzzy diterapkan pada karakter NPC (Non-Playable Character) korban banjir.

3. Metode yang digunakan dalam algoritma logika fuzzy adalah metode sugeno.

4. Model analisis dalam pemodelan berorientasi objek menggunakan UML

(Unifed Modelling Language).

1.5 Metode Penelitian

Metodologi penelitian merupakan suatu proses yang digunakan untuk

memecahkan suatu masalah agar lebih efisien. Metode penelitian yang digunakan

adalah metode deskriptif. Metode deskriptif merupakan metode yang

menggambarkan fakta-fakta dan informasi dalam situasi atau kejadian sekarang

secara sistematis, faktual dan akurat.

Pengumpulan data dan pengembangan perangkat lunak dalam penelitian ini

menggunakan metode yaitu metode pengumpulan data dan metode pembangunan

perangkat lunak.

1.5.1 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah

sebagai berikut :

a. Studi Literatur.

Metode pengumpulan data dengan cara mengumpulkan literatur,

dokumen, dan bacaan-bacaan yang berkaitan dengan game simulation. b. Observasi

Metode pengumpulan data dengan melakukan pengamatan secara

langsung terhadap objek yang diteliti, yaitu game berjenis simulation berjudul S.O.S.

1.5.2 Metode Pembangunan Perangkat Lunak

(12)

cepat dan mengevaluasi kebutuhan oleh pemakai agar sesuai dengan kebutuhan.

Pada gambar 1.1 menunjukan tahapan-tahapan model prototype yaitu sebagai berikut :

1. Requirement Gathering and Refinement (Pengumpulan Kebutuhan dan Perbaikan)

Mengumpulkan kebutuhan untuk merancang sebuah game dan juga melakukan perbaikan game jika terdapat kekurangan.

2. Quick Desain (Desain Cepat)

Mendesain secara cepat aplikasi game sesuai dengan kebutuhan pemakai. 3. Building Prototype (Bentuk Prototype)

Aplikasi game yang sudah didesain akan dirancang ke dalam bahasa pemrograman dengan menggunakan tools yang ada.

4. Customer Evalution of Prototype (Evaluasi Pemakai Terhadap Prototype) Setelah game sudah jadi, selanjutnya game ini diuji dengan memasukan algoritma yang akan dipakai. Setelah diuji, kemudian diberikan kepada

pemakai agar dapat mengetahui game yang sudah diuji. 5. Refining Prototype (Perbaikan Prototype)

Memperbaiki game yang sudah jadi dengan menguji kembali algoritma pada game ataupun yang tidak sesuai dengan kebutuhan pemakai. Setelah game sudah diperbaiki, kemudian dapat diberikan kembali kepada pemakai agar

dapat mengetahui game yang sudah diuji. 6. Engineer Product (Produk Rekayasa)

(13)

Gambar 1.1 Model Prototype [1]

1.6 Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran

umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini

adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini berisi latar belakang, perumusan masalah, maksud dan tujuan, batasan

masalah, metodologi penelitian, sistematika penulisan dari tugas akhir yang akan

dibuat.

BAB 2 LANDASAN TEORI

Bab ini membahas pengertian game, jenis game, kecerdasan buatan di dalam game, penjelasan algoritma yang digunakan pada game, serta pemodelan yang digunakan dalam mengembangkan game.

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA

Bab ini membahas tentang analisis sistem, analisis masalah, analisis game yang akan dikembangkan, analisis metode atau algoritma, analisis kebutuhan perangkat

(14)

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini membahas implementasi dari tahapan analisis dan perancangan sistem ke

dalam perangkat lunak (dalam bentuk bahasa pemrograman), beberapa

implementasi yang akan dijelaskan adalah implementasi perangkat keras,

implementasi perangkat lunak, dan implementasi antarmuka.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan yang didapatkan selama penulisan laporan tugas

akhir dari pembatasan masalah, selain itu juga berisi saran untuk perbaikan dan

(15)

7 BAB 2

LANDASAN TEORI

2.1 Game

Game atau permainan merupakan media hiburan yang sudah dikenal sejak dahulu. Game dapat dimainkan berbagai umur tua maupun muda. Game juga sudah berkembang dengan pesat sesuai dengan perkembangan teknologi, dari

game sederhana sampai game modern saat ini. Hal ini terbukti dengan adanya

perkembangan jenis, produk, serta alat yang digunakan.

2.1.1 Pengertian Game

Game merupakan sebuah bentuk seni dimana penggunanya disebut dengan pemain (player), diharuskan membuat keputusan-keputusan dengan tujuan mengelola sumber daya yang diperoleh dari kesempatan-kesempatan bermain

(token) miliknya untuk mencapai tujuan tertentu. Video game adalah bentuk game yang interaksi umumnya melibatkan media video dan audio.

Menurut Andang Ismail terdapat dua pengertian game (permainan). Pertama, game (permainan) adalah sebuah aktifitas bermain yang murni mencari kesenangan tanpa mencari menang atau kalah. Kedua, permainan diartikan

sebagai aktifitas bermain yang dilakukan dalam rangka mencari kesenangan dan

kepuasan, namun ditandai pencarian menang-kalah.

Berdasarkan representasinya, game dapat dibedakan menjadi 2 jenis yaitu game 2 dimensi (2D) dan 3 dimensi (3D). Game 2D adalah game yang secara matematis hanya melibatkan 2 elemen koordinat kartesius yaitu x dan y, sehingga

konsep kamera pada game 2D hanya menentukan gambar pada game yang dapat dilihat oleh pemain. Sedangkan game 3D adalah game yang selain melibatkan elemen x dan y juga melibatkan elemen z pada perhitungannya sehingga konsep

(16)

2.1.2 Game 2 Dimensi

Game 2D (2 dimensi) adalah sebuah game berbentuk dari benda yang hanya memiliki panjang dan lebar. Grafik 2 Dimensi merupakan teknik

penggambaran yang berpatokan pada titik koordinat sumbu x (datar) dan sumbu y

(tegak). Agar dapat tampil dengan sempurna, gambar yang akan ditampilkan

dengan teknik ini harus memiliki nilai koordinat x dan y minimum 0 dan

maksimum sebesar resolusi yang digunakan.

2.1.3 Simulasi Game

Simulasi game adalah game yang mengendalikan suatu objek yang bergerak/tidak bergerak baik secara langsung maupun tidak langsung dengan

tujuan melakukan hal-hal tertentu. Game ini sangat menarik karena bisa membuat pemain berfantasi seakan objek yang berada dalam game tersebut adalah nyata dan milik pemain [4]. Beberapa jenis game simulation yaitu :

1. Assets Simulation

Game simulasi yang menuntut kita untuk membuat / membangun / mengelola suatu objek / asset / bangunan / instalasi yang dikendalikan

secara personal untuk mencapai tujuan tertentu. Contoh game : game SIM / Tycoon series

2. Action Simulation

Game simulasi plus action yang menuntut kita untuk mengendalikan suatu objek tertentu secara langsung untuk melakukan suatu hal secara

aktif, misalnya mengendalikan kendaraan perang untuk bertempur.

Contoh Game : Game Pesawat Tempur, dan sebagainya. 3. Vehicle Simulation

Game simulasi realitas yang tata cara permainan mengambil dari objek

aslinya, dengan tujuan mengajari player bagaimana cara mengoprasikan

suatu kendaraan yang tidak biasa dikendarai orang awam dan rumit untuk

dioperasikan

(17)

4. Music simulation

Game simulasi yang menuntut kita mengendalikan suatu objek secara tidak langsung untuk melakukan hal-hal yang berhubungan dengan musik.

Contoh game : Seri Guitar Hero, seri Dance-Dance Revolution 5. Lovesims/visual novel

Game ini hanya berupa suatu percakapan antar tokoh disertai dengan gambar CG (Computer Graphic) Anime yang indah. Jalan ceritanya berjalan sendiri tanpa bisa kita kendalikan, kita hanya bisa mengatur jalan

cerita melalui pilihan langkah sang tokoh di game tersebut untuk mencapai akhir yang buruk atau bahagia. Game ini hanya dibuat di negara asal anime yaitu jepang dan lumayan populer di sana namun tidak begitu di

negara lainnya. Game ini kurang mendapat perhatian karena gameplaynya yang dinilai kurang berbobot, selain itu game tipe ini yang beredar di

Indonesia kebanyakan game adult yang tidak baik untuk gamer usia dibawah umur.

2.1.4 Jenis-jenis Game

Berikut ini beberapa jenis game berdasarkan cara pembuatannya, cara pemasarannya dan mesin yang menjalankannya. Jenis-jenis game tersebut adalah [2] :

1. Game PC

Game PC adalah game yang dimainkan pada PC (Personal Computer) yang memiliki kelebihan yaitu tampilan antarmuka yang baik untuk input maupun output. Output visual berkualitas tinggi karena layar komputer biasanya memiliki resolusi yang jauh lebih tinggi dibandingkan dengan

layar televisi biasa. Kekurangannya adalah spesifikasi komputer yang

sangat bervariasi antar satu komputer dengan komputer yang lainnya

(18)

2. Game Console

Game console adalah game yang dijalankan pada suatu mesin spesifik yang biasanya tersedia di rumah seperti Xbox, Nintendo, Wii dan lain-lain.

3. Game Arcade

Game arcade adalah game yang dijalankan pada mesin dengan input dan output audio visual yang telah terintegrasi dan tersedia ditempat-tempat umum.

4. Game Online

Game online adalah game yang hanya dapat dimainkan secara online

melalui LAN atau internet.

2.1.5 Unsur Game

Dalam sebuah game terdapat unsur-unsur yang melengkapinya. Berikut beberapa unsur dalam suatu game yaitu [3] :

1. Warna

Warna mempunyai kemampuan untuk membuat orang tanggap

terhadap semua yang dilihat karena tidak ada sesuatu hal bermakna

tanpa warna. Mata manusia tertarik oleh warna pada suatu level karena warna dari objek diterima sebelum detail-detail dipisahkan oleh

bentuk-bentuk dan garisnya. Warna merah memiliki panjang gelombang yang

terpanjang, biru memiliki panjang gelombang yang pendek sedangkan

hijau memiliki panjang gelombang menengah. Pada anak-anak

cenderung tertarik pada warna-warna yang cerah dan mencolok.

(19)

Gambar 2.1 Warna Primer Dan Sekunder 2. Komposisi

Komposisi adalah pengaturan segala elemen didalam sebuah karya

desain yang sedemikian rupa dengan tujuan tertentu. Komposisi yang

baik adalah komposisi yang mampu memenuhi kebutuhan dan tujuan

desain, mudah dipahami dan membentuk kesatuan yang serasi dan

harmonis. Kemudian layout yaitu perencanaan, penempatan semua

unsur mulai dari tulisan, gambar, ilustrasi, teks, nama dan sebagainya

dengan pengkuran secara seksama. Komposisi yang sesuai dengan

anak-anak adalah komposisi yang sederhana dan tidak menggunakan

petunjuk terlalu rumit. Kesederhanaan diwujudkan dengan penggunaan

visual 2D dan penerapan warna-warna dalam seluruh aspek desain.

3. Bentuk dasar

Bentuk dasar adalah bentuk-bentuk yang mudah ditemui dalam

kehidupan sehari-hari seperti kotak, lingkaran, segitiga dan lain

sebagainya, seperti yang dapat dilihat pada gambar 2.2.

(20)

4. Tipografi

Tipografi merupakan representasi visual dari sebuah bentuk

komunikasi verbal dan merupakan property visual yang pokok dan efektif. Huruf memainkan peranan penting dalam keberhasilan suatu

bentuk komunikasi grafis. Dalam media pembelajaran untuk

anak-anak, sebuah huruf harus legible yaitu jelas dan memiliki tingkat kemudahan untuk dibaca.

5. Audio

Audio adalah sinyal elektrik yang digunakan untuk membawa suara

dalam batas pendengaran manusia. Audio merupakan komponen sistem yang sudah termasuk didalamnya atau dapat ditambahkan pada

komputer.

2.1.6 NPC

Penjabaran NPC atau Non-Playable Character adalah karakter game yang dikendalikan oleh sistem bukan oleh pemain. NPC melayani sejumlah tujuan di

dalam game, termasuk:

1. Sebagai perangkat alur : NPC dapat digunakan untuk memajukan alur

cerita.

2. Untuk bantuan atau musuh : NPC dapat bertindak sebagai mitra untuk

pemain atau dapat menjadi musuh dalam game.

3. Fungsi game : NPC sering melayani sebagai menyimpan poin, toko item, poin kesehatan regenerasi dan sebagainya.

2.2 Kecerdasan Buatan

Kecerdasan buatan atau Artificial Intelligence (AI) merupakan cabang dari ilmu komputer yang berhubungan dengan pengautomatisan tingkah laku cerdas.

Kecerdasan buatan didasarkan pada teori suara (sound theoretical) dan prinsip-prinsip aplikasi dari bidangnya. Prinsip-prinsip-prinsip ini meliputi struktur data yang

digunakan dalam representasi pengetahuan, algoritama yang diperlukan untuk

(21)

digunakan dalam mengimplementasikannya [9]. Berdasarkan sudut pandang, AI

dapat dipandang sebagai berikut :

1. Sudut pandang kecerdasan, AI adalah bagaimana membuat mesin yang

cerdas dan dapat melakukan hal-hal yang sebelumnya hanya dapat

dilakukan manusia.

2. Sudut pandang bisnis, AI adalah sekelompok alat bantu yang

berdayaguna dan metodologi yang menggunakan alat-alat bantu

tersebut untuk menyelesaikan masalah-masalah bisnis.

3. Sudut pandang pemrograman, AI meliputi studi tentang pemrograman

simbolik, pemecahan masalah dan proses pencarian.

4. Sudut pandang penelitian :

a. Riset tentang AI dimulai pada awal tahun 1960-an, percobaan

pertama adalah membuat program permainan catur, membuktikan

teori dan general problem solving. b. AI adalah nama pada akar dari studi area.

Kecerdasan buatan memiliki sejumlah sub disiplin ilmu yang sering

digunakan untuk pendekatan yang esensial bagi penyelesaian suatu masalah dan

dengan aplikasi bidang AI yang berbeda. Pada gambar 2.3 dapat dilihat

(22)

Gambar 2.3 Bidang-Bidang Tugas (Taks Domain) Dari AI

Aplikasi penggunaan AI dapat dibagi ke dalam tiga kelompok yaitu :

1) Expert Task

AI dibentuk berdasarkan pengalaman dan pengetahuan yang dimiliki oleh

para ahli. Penggunaan ini dapat membantu para ahli untuk menyampaikan

ilmu-ilmu yang dimiliki. Contohnya adalah :

a. Analisis finansial.

b. Analisis medikal.

c. Analisis ilmu pengetahuan.

(23)

2) Formal Task

AI digunakan untuk melakukan tugas-tugas formal yang selama ini

manusia biasa lakukan dengan lebih baik. Contohnya adalah :

a. Game.

b. Matematika (geometri, logika, kalkulus, integral).

3) Mundane Task

Secara harfiah mundane adalah keduniaan. AI digunakan untuk melalukan hal-hal yang sifatnya duniawi atau melakukan kegiatan yang dapat

membantu manusia. Contohnya adalah :

1. Persepsi.

2. Bahasa alami.

3. Robot control.

Aplikasi kecerdasan buatan memiliki dua bagian utama yaitu :

a. Basis Pengetahuan (Knowledge Base): Berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya.

b. Motor Inferensi (Inference Engine): Kemampuan menarik kesimpulan berdasarikan pengalaman.

2.3 Logika Fuzzy

Konsep-konsep tentang logika fuzzy diperkenalkan oleh Prof. Lotfi Astor Zadeh pada 1962. Logika fuzzy adalah metodologi sistem kontrol pemecahan

masalah, 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 ini

dapat mempunyai nilai keanggotaan 0 dan 1. Artinya, bisa saja suatu keadaan

mempunyai nilai “Ya dan Tidak”, “Benar dan Salah”, “Baik dan Buruk” secara

bersamaan, namun besar nilainya tergantung pada bobot keanggotaan yang

dimilikinya. Dalam banyak hal, logika fuzzy digunakan sebagai suatu cara untuk

(24)

1. Linguistik, yaitu nama suatu kelompok yang mewakili suatu keadaan

tertentu dengan menggunakan bahasa alami, misalnya dingin, sejuk, panas

mewakili variabel temperatur.

2. Numeris, yaitu suatu nilai yang menunjukan ukuran dari suatu variabel,

misalnya 10, 35, 40 dan sebagainya.

Struktur sistem inferensi fuzzy dapat dilihat pada gambar 2.4

Gambar 2.4 Struktur Sistem Fuzzy Keterangan:

1. Fuzzification

Masukan-masukan yang nilai kebenaranya bersifat pasti (crispt input)

(25)

2. Inference

Memperhitungkan semua aturan yang ada dalam basis pengetahuan. Hasil dari proses inference dipresentasikan oleh suatu fuzzy set untuk setiap variabel bebas. Derajat keanggotaan untuk setiap nilai variabel tidak bebas

menyatakan ukuran kompatibilitas terhadap variabel bebas.

3. DeFuzzyfication

merupakan proses mengubah output fuzzy yang diperoleh dari mesin inferensi menjadi nilai tegas menggunakan fungsi keanggotaan yang

sesuai dengan saat dilakukan fuzzyfikasi.

2.3.1 Himpunan Fuzzy

Logika fuzzy dikembangkan dari teori himpunan fuzzy. Himpunan klasik

yang sudah dipelajari selama ini disebut juga dengan himpunan tegas (crisp set). Di dalam himpunan tegas, keanggotaan suatu unsur di dalam himpunan

dinyatakan secara tegas, apakah objek tersebut anggota himpunan atau bukan.

Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu

himpunan A, yang sering ditulis dengan μA[x], memiliki dua kemungkinan, yaitu:

1. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan.

2. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.

Kalau pada himpunan tegas (crisp), nilai keanggotaan hanya ada dua kemungkinan yaitu 0 atau 1, maka pada himpunan fuzzy nilai keanggotaan terletak pada rentang 0 sampai 1. Apabila x memiliki nilai keanggotaan fuzzy μA[x]=0 berarti x tidak menjadi anggota himpunan A, demikian pula apabila x memiliki

nilai keanggotaan fuzzy μA[x]=1 berarti x menjadi anggota penuh pada himpunan A. Hal yang perlu diketahui dalam memahami sistem fuzzy adalah:

a. Variabel fuzzy

(26)

b. Himpunan fuzzy

Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy.

c. Semesta pembicaraan

Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk

dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan

positif maupun negatif. Pada suatu kondisi tertentu nilai semesta

pembicaraan ini tidak dibatasi batas atasnya.

d. Domain

Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya semesta pembicaraan, domain merupakan himpunan

bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai domain dapat berupa bilangan positif maupun negatif.

2.3.2. Fungsi Keanggotaan

Basis data Fungsi keanggotaan (membership function) adalah suatu kurva yang menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaanya

(sering juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0

sampai 1. Salah satu cara yang dapat digunakan untuk mendapatkan nilai

keanggotaan adalah dengan melalui pendekatan fungsi. Ada beberapa fungsi yang

bisa digunakan.

1. Representasi Linear

Pada representasi linear, pemetaan input ke derajat keanggotaannya

digambarkan sebagai suatu garis lurus. Bentuk kurva ini paling sederhana dan

menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas. Ada 2

keadaan himpunan fuzzy yang linear. Pertama, kenaikan himpunan dimulai pada

nilai domain yang memiliki derajat keanggotaan nol (0) bergerak ke kanan

menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi (Gambar

(27)

Gambar 2.5 Representasi Linear Naik

Fungsi keanggotaan :

�[�] = { � − / − ; ; � �

; � > (2.1)

Kedua, merupakan kebalikan dari yang pertama. Garis lurus dimulai dari

nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian

bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih

rendah (Gambar 2.6).

Gambar 2.6 Representasi Linear Turun

Fungsi Keanggotaan :

(28)

2. Representasi Kurva Segitiga

Kurva segitiga pada dasarnya merupakan gabungan antara 2 garis (linear) seperti terlihat pada Gambar 2.7.

Gambar 2.7 Kurva Segitiga Fungsi keanggotaan :

�[�] = { � − / − ; < �; � �

− � / − ; < � (2.3)

3. Representasi Kurva Trapesium

Kurva trapesium pada dasarnya seperti bentuk segitiga, hanya saja ada

beberapa titik yang memiliki nilai keanggotaan 1 seperti terlihat pada gambar 2.8.

(29)

Fungsi Keanggotaan :

�[�] = {

; � � � − / − ; �

; �

− � / − ; �

(2.4)

4. Representasi Kurva Bentuk Bahu

Daerah yang terletak di tengah-tengah suatu variabel yang

direpresentasikan dalam bentuk segitiga, pada sisi kanan dan kirinya akan naik

dan turun (misalkan: DINGIN bergerak ke SEJUK bergerak ke HANGAT dan

bergerak ke PANAS). Tetapi terkadang salah satu sisi dari variabel tersebut tidak

mengalami perubahan. Sebagai contoh, apabila telah mencapai kondisi PANAS,

kenaikan temperatur akan tetap berada pada kondisi PANAS. Himpunan fuzzy

„bahu‟, bukan segitiga, digunakan untuk mengakhiri variabel suatu daerah fuzzy.

Bahu kiri bergerak dari benar ke salah, demikian juga bahu kanan bergerak dari

salah ke benar. Gambar 2.9 dibawah menunjukkan variabel TEMPERATUR

dengan daerah bahunya.

Gambar 2.9 Daerah Bahu Pada Daerah Temperatur 2.4 OOP (Object Oriented Programming)

Pemodelan OOP adalah teknik memodelkan suatu sistem dunia nyata

dalam perangkat lunak berdasarkan objek. Objek tersebut adalah konsep inti.

(30)

Ketika sebuah program berjalan, objek individu biasanya tidak dapat berdiri

sendiri. Mereka termasuk ke sebuah koleksi dari objek lain yang serupa yang

merupakan anggota dari grup yang sama, atau class. Sebuah program akan terbentuk dari banyak class yang berbeda, setiap class terbentuk dari objek-objek yang serupa.

Beberapa sistem perangkat lunak orientasi objek akan memiliki sifat berikut:

1. Abtraksi dengan objek.

Abtraksi adalah mekanisme yang memungkinkan kompleks, situasi dunia

nyata dapat diwakili menggunakan model yang disederhanakan. Orientasi

objek abstrak dunia nyata didasarkan pada objek dan interkasi antar objek

lainnya.

2. Enkapsulasi class.

Enkapsulasi adalah proses menyembunyikan semua bagian rinci sebuah

objek dari dunia luar.

3. Interaksi lewat pesan.

Untuk memenuhi suatu perintah, objek butuh berinteraksi dengan objek

lain. Interaksi dapat antara objek di class yang sama, atau objek di class lain. Interaksi ini ditangani dengan cara mengirimkan pesan (di Java, ini

dilakukan dengan memanggil methods) ke objek lain untuk melewati informasi atau meminta aksi.

4. Masa hidup objek.

Semua objek memiliki masa hidup. Mereka dibuat dan diinisialisasi

sebagaimana mereka dibutuhkan pada saat program dijalankan, hidup dan

membawa keluar fungsi mereka, dan akhirnya dihancurkan. Sementara

mereka ada, mereka mempertahankan identitas mereka sendiri dan kondisi.

Banyak objek yaitu contoh dari class yang sama bisa hidup pada waktu

tertentu. Setiap objek memiliki atribut yang berbeda dari yang lain yaitu

(31)

5. Hirarki class.

Dalam desain orientasi objek, class objek tersebut diatur ke dalam hirarki yang memodelkan dan menggambarkan hubungan antar class. Hubungan yang paling sederhana adalah sebuah asosiasi.

6. Polimorfisme

Polimorfisme adalah karakteristik sistem orientasi objek. Ketika warisan

digunakan untuk memperpanjang class umum ke class yang lebih khusus, biasanya akan mencakup memperluas beberapa perilaku dari class umum. Class khusus sering akan menerapkan perilaku yang agak berbeda dengan class umum, tetapi nama yang digunakan mendefinisikan perilaku akan

menjadi sama. Adalah penting bahwa contoh yang diberikan dari sebuah

objek menggunakan perilaku yang benar, dan property polimorfisme memungkinkan ini terjadi secara otomatis dan mulus. Polimorfisme

sebenarnya lebih mudah digunakan daripada dijelaskan [5].

2.5 UML (Unified Modeling Language)

UML adalah penerus gelombang berorientasi objek alnalisis dan desain

(OOA & D) metode yang muncul di akhir ‘80-an dan ’90-an awal. Hal yang

paling langsung menyatukan metode Booch, Rumbaugh (OMT), dan Jacobson,

tapi jangkauan lebih luas dari itu. UML pergi melalui proses standarisasi dengan

OMG (Obyek Manajement Group) dan sekarang menjadi standar OMG.

UML disebut bahasa pemodelan, bukan metode. Sebagian besar metode

terdiri, setidaknya pada prinsipnya, kedua model sebuah bahasa dan proses.

Bahasa pemodelan adalah notasi (terutama grafis) bahwa metode digunakan untuk

mengekspresikan desain. Proses ini menyarankan mereka apa langkah yang harus

diambil dalam melakukan desain.

Bagian proses dalam buku banyak metode yang agak samar. Selain itu,

kebanyakan orang, ketika mereka mengatakan bahwa mereka menggunakan

metode, menggunakan bahasa pemodelan, tapi jarang mengikuti proses. Jadi

dalam banyak hal pemodelan bahasa adalah bagian paling penting dari meode ini.

(32)

desain anda dengan seseorang, itu adalah bahasa pemodelan yang anda berdua

perlu pahami, bukan proses yang digunakan untuk sampai ke desain tersebut [5].

2.5.1 Diagram UML

Menggunakan berbagai macam diagram dengan fungsi masing-masing

untuk menggambarkan setiap proses dari sistem berorientasi objek. Berikut

merupakan beberapa diagram UML diantaranya [6]:

A. Use Case Diagram

Use Case atau diagram use case merupakan pemodelan yang digunakan

untuk menggambarkan kelakuan (behavior) dari sistem yang akan dibuat [6]. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan

sistem 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 [6].

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

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

(33)

Gambar 2.10 Contoh Dari Use Case Diagram

B. Activity Diagram

Diagram aktivitas atau activity diagram adalah sebuah diagram yang menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis [6]. Dalam diagram aktivitas yang perlu diperhatikan adalah

bahwa diagram aktivitas menggambarkan aktivitas sistem, bukan apa yang

dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.

Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal

berikut [6]:

1. Rancangan proses bisnis di mana setiap urutan aktivitas yang

digambarkan merupakan proses bisnis sistem yang didefinisikan.

2. Urutan atau pengelompokan tampilan dari sistem/user interface di mana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka

tampilan.

3. Rancangan pengunjian di mana setiap aktivitas dianggap memerlukan

sebuah pengujian yang perlu didefinisikan kasus ujinya.

(34)

Gambar 2.11 Contoh Dari Activity Diagram

C. 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 [6].

1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas

2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas

(35)

Gambar 2.12 Contoh Dari Class Diagram

D. Sequence Diagram

Diagram sekuen atau sequence diagram adalah diagram yang menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antarobjek [6]. Oleh karena itu untuk menggambarkan diagram sekuen maka harus diketahui

objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang

dimiliki kelas yang diinstansiasi menjadi objek itu.

Banyaknya diagram sekuen yang harus digambarkan adalah sebanyak

(36)

dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak.

Contoh dari sequence diagram dapat dilihat pada gambar 2.13.

Gambar 2.13 Contoh Dari Sequence Diagram

2.6 Pengujian Perangkat Lunak

Pengujian perangkat lunak adalah suatu proses yang digunakan untuk

mengidentifikasi ketepatan, kelengkapan dan mutu dari perangkat lunak. Pada

dasarnya, pengujian tidak pernah dapat menetapkan kebenaran mutlak dari

perangkat lunak. Pengujian perangkat lunak adalah elemen kritis dari jaminan

kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi,

desain dan pengkodean [1].

Pengembang perangkat lunak sesuai dengan sifatnya dasar, mereka adalah

manusia pembangun. Pengujian mengharuskan pengembang membuang

pemikiranpemikiran sebelumnya mengenai “kebenaran” perangkat lunak yang

baru saja dikembangkan dan mengatasi konflik minat yang terjadi pada saat

(37)

Berikut ini merupakan prinsip pengujian perangkat lunak :

1. Semua pengujian harus dapat ditelusuri hingga ke persyaratan pelanggan.

Sebagai tujuan utama pengujian perangkat lunak yaitu untuk mengungkap

kesalahan. Yang mana berarti kesalahan paling fatal apabila perangkat

lunak tidak dapat memenuhi syarat yang ditentukan oleh pelanggan.

2. Pengujian harus direncanakan lama sebelum pengujian itu dimulai.

Perencanaan pengujian dapat dimulai setelah model persyaratan telah

dilengkapi. Definisi detail tentang test case dapat dimulai segera setelah

model desain ditetapkan. Dengan demikian pengujian dapat direncanakn

dan dirancang sebelum pengkodean dilakukan.

3. Prinsip Pareto berlaku untuk pengujian perangkat lunak.

Prinsip Pareto mengimplikasikan bahwa 80% dari semua kesalahan yang

ditemukan selama pengujian, hanya dapat ditelusuri 20% dari semua

modul program. Hanya saja kita sulit untuk mengetahui modul yang

mengalami kesalahan dan mengujinya dengan teliti

4. Pengujian harus mulai “dari yang terkecil” dan berkembang ke

pengengujian “yang besar”.

Pengujian biasanya dilakukan terhadap modul program individual. Selagi

pengujian berlangsung, maka seluruh modul yang terintegrasi lebih mudah

diuji.

5. Pengujian yang mendalam tidak mungkin.

Jumlah jalur permutasi pada perangkat lunak sangat besar, oleh karena itu

sulit untuk melakukan pengujian terhadap semua jalur skema pengujian.

Akan tetapi setidaknya kita dapat mengetahui bahwa logika yang tertuang

dalam perancangan perangkat lunak itu telah tepat dan memastikan semua

kondisi telah teruji.

6. Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga

yang independen.

Arti dari “paling efektif” adalah pengujian yang memiliki peluang

(38)

membuat system bukanlah orang yang paling tepat untuk melakukan

semua pengujian bagi perangkat lunak.

2.7 Pengujian Performansi

Performance Testing atau pengujian performansi merupakan proses menentukan kecepatan atau efektivitas, jaringan program computer, perangkat

lunak atau perangkat. Proses ini dapat melibatkan test kuantitatif yang dilakukan

di laboratorium, seperti mengukur waktu respon atau jumlah MIPS (Millions of Intructions per Second) pada fungsi sistem. Atribut kualitatif seperti kehandalan,

skalabilitas dan interoperabilitas juga dapat dievaluasi. Pengujian performansi

sering dilakukan dalam hubungannya dengan stress testing [11].

Pengujian performansi dapat memverifikasi bahwa sistem memenuhi

spesifikasi diklaim oleh produsen atau vendor. Proses ini dapat membandingkan

dua atau lebih perangkat atau program dalam hal parameter seperti kecepatan,

kecepatan transfer data, bandwidth, throughput, efisiensi atau keandalan.

Pengujian performansi merupakan evaluasi users dengan sistem yang ketat dibawah kondisi yang sangat realistis, untuk mengidentifikasi permasalahan user dan membandingkan langkah-langkah seperti tingkat keberhasilan, waktu

penugasan dan kepuasan user dengan persyaratan.

2.8 Unity

Unity adalah software atau game engine yang digunakan untuk membuat video game berbasis dua atau tiga dimensi dan dapat digunakan secara gratis. Selain untuk membuat game, unity juga dapat digunakan untuk membuat konten yang interaktif lainnya seperti, visual arsitektur dan real-time 3D animasi.

Unity adalah sebuah tool yang terintegrasi untuk membuat game, arsitektur bangunan dan simulasi. Unity bisa digunakan untuk games PC dan games online. Untuk games online diperlukan sebuah plugin, yaitu Unity Web Player, yang sama halnya dengan flash player pada browser. Bahasa pemrograman yang

(39)

untuk mendesain. Banyak hal yang bisa di lakukan di unity, ada fitur audio reverb zone , particle effect , sky box untuk menambahkan langit, dan masih banyak lagi, dan juga bisa langsung edit texture dari editor seperti photoshop dan lain-lain. Features (Scripting) di dalam unity adalah sebagai berikut:

1. Mendukung 3 bahasa pemrograman, JavaScript, C#, dan Boo. Flexible and EasyMoving, rotating, dan scaling objects hanya perlu sebaris kode. Begitu juga dengan duplicating, removing, dan changing properties.

2. Multi Platform Game bisa di deploy di PC, Mac, Wii, iPhone, iPad dan browser, android.

3. Visual Properties Variables yang di definisikan dengan scripts ditampilkan pada editor. Bisa digeser, di drag and drop, bisa memilih warna dengan color picker.

4. Berbasis .NET, penjalanan program dilakukan dengan Open Source .NET platform, Mono.

.

2.9 Adobe Photoshop

Adobe Photoshop, atau biasa disebut Photoshop adalah perangkat lunak editor citra buatan Adobe System yang dikhususkan untuk pengeditan foto/gambar dan pembuatan efek. Perangkat lunak ini banyak digunakan oleh fotografer digital

dan perusahaan iklan sehingga dianggap sebagai pemimpin pasar (marketleader) untuk perangkat lunak pengolah gambar/foto, dan bersama Adobe Acrobat dianggap sebagai produk terbaik yang pernah diproduksi oleh Adobe System. Versi kedelapan aplikasi ini disebut dengan nama Photoshop CS (Creative Suite), versi kesembilan disebut Adobe Photoshop CS2, versi kesepuluh disebut Adobe Photoshop CS3, versi kesebelas disebut Adobe Photoshop CS4, versi keduabelas disebut Adobe Photoshop CS5, dan versi yang terakhir (ketigabelas) adalah Adobe Photoshop CS6 [10].

Photoshop tersedia untuk Microsoft Windows, Mac OS X, dan Mac OS, versi 9 ke atas juga dapat digunakan oleh sistem operasi lain seperti Linux dengan

(40)

Meskipun pada awalnya Photoshop dirancang untuk menyunting gambar untuk cetakan berbasis-kertas, Photoshop yang ada saat ini juga dapat digunakan untuk memproduksi gambar untuk World Wide Web. Beberapa versi terakhir juga menyertakan aplikasi tambahan, Adobe ImageReady, untuk keperluan tersebut. Photoshop juga memiliki hubungan erat dengan beberapa perangkat lunak penyunting media, animasi, dan authoring buatan-Adobe lainnya. File format asli Photoshop, .PSD, dapat diekspor ke dan dari Adobe ImageReady. Adobe Illustrator, Adobe Premiere Pro, After Effects dan Adobe Encore DVD untuk

membuat DVD profesional, menyediakan penyuntingan gambar non-linear dan

(41)

33 3.1 Analisis Sistem

Pada bagian analisis sistem ini, akan dilakukan berbagai macam analisis

yang berhubungan dengan game yang akan dikembangkan, mulai dari analisis masalah, analisis game, analisis data masukan, analisis algoritma, analisis kebutuhan perangkat lunak, analisis kebutuhan non-fungsional dan analisis

kebutuhan fungsional.

3.1.1 Analisis Masalah

Game S.O.S merupakan game simulation bergrafik 2D (dua dimensi), yang mempunyai misi utama untuk menyelamatkan korban dari tengah laut. Di dalam

game tersebut terdapat kekurangan, diantaranya yaitu dari segi karakter NPC ( Non-Playable Character) korban yang kurang bervariasi sehingga membuat game menjadi kurang menantang untuk dimainkan.

Game penyelamatan korban banjir merupakan game yang berjenis simulasi yang bergrafik 2D (dua dimensi). Game ini mempunyai solusi dari kekurangan pada game S.O.S, yaitu dengan menambahkan tingkah laku pada karakter NPC ( Non-Playable Character) pada korban banjir. Misi utama dari game ini adalah untuk menyelamatkan korban banjir dari pemukiman masyarakat.

3.2 Analisis Game

Game Rescue Flood Victim adalah game simulation yang bergrafik 2 dimensi. Misi utama dan gameplay dari game ini adalah menyelamatkan korban banjir dari banjir yang berada pemukiman masyarakat dengan menggunakan perahu

sebagai alat penolong. Pemain harus menyelamatkan korban banjir dari tingginya

air banjir.

Game Rescue Flood Victim mengimplementasi algoritma logika fuzzy untuk

(42)

Non-Playable Character) korban banjir. Tingkah laku pada korban banjir yaitu sebagai berikut :

1. Korban banjir bertahan untuk cepat diselamatkan.

2. Korban banjir menyelamatkan diri ketika korban lama menunggu untuk

diselamatkan.

3.2.1 Gameplay Game Rescue Flood Victim

Gameplay dari game Rescue Flood Victim yaitu relawan menyelamatkan korban banjir yang masih selamat di atap rumah menggunakan perahu. Adapun

rintangan-rintangan yang terdapat dalam gameplay pada game Rescue Flood Victim ini adalah :

1. Tinggi air

Air dapat bertambah besar ketika hujan. Jika tidak hujan, maka air

berkurang.

2. Stamina

Stamina dapat berkurang ketika memulai melakukan penyelamatan.

3. Waktu

Waktu dihitung ketika telah memulai permainan.

4. Jumlah korban yang harus diselamatkan.

Misi mempunyai batas jumlah korban yang harus diselamatkan.

5. Jumlah korban yang dibawa oleh perahu

(43)

Gambar 3.1 Gameplay Game Rescue Flood Victim

3.3 Analisis Masukan

Analisis masukan yang dilakukan dalam penelitian ini adalah menganalisis

parameter dalam algoritma logika fuzzy pada game Rescue Flood Victim, parameter tersebut antara lain air, stamina dan jarak.

1. Parameter Air

Parameter air ini dapat diperoleh dari ketetapan aturan. Ketika dimulai,

cuaca hujan air akan mengalami kenaikan atau bertambah. Jika cuaca tidak

hujan, maka air akan mengalami penurunan atau berkurang.

-Nilai Air pertama kali mulai = 50

-Air naik = + 5 (dalam waktu 10-12 detik)

-Air turun = – 5 (dalam waktu 9 detik)

2. Parameter Stamina

Parameter stamina ini diperoleh ketika korban mulai bertahan.

-Nilai Stamina pertama kali mulai = 100

-Stamina turun = -1 (dalam waktu 1 detik)

3. Parameter Jarak

Parameter jarak ini diperoleh dari tempat korban untuk melakukan

pertolongan dan penyelamatan kepada korban.

(44)

3.4 Analisis Algoritma

Analisis algoritma yang dilakukan dalam penelitian ini adalah meneliti

bagaimana cara kerja algoritma logika fuzzy pada NPC korban banjir di dalam game Rescue Flood Victim.

3.4.1 Analisis Algoritma Logika Fuzzy

Logika Fuzzy di dalam membangun game ini digunakan untuk menentukan variasi perilaku yang akan dihasilkan oleh NPC (non playable character). Dengan adanya logika fuzzy, masing-masing NPC dapat merubah perilaku berbasis

perubahan variabel masukan menjadi perilaku yang akan dirancang menggunakan

logika fuzzy.

Metode logika fuzzy yang digunakan adalah metode Sugeno, karena metode ini menghasilkan keluaran yang berupa konstanta tegas, sehingga dapat mewakili

nilai perilaku yang sudah dirancang sebelumnya.

1. Nilai Linguistic Pada Parameter

Berikut ini merupakan nilai linguistic pada parameter yang digunakan : 1) Parameter Jarak memiliki 3 nilai linguistic yaitu :

a. Dekat : memiliki nilai 0 – 40.

b. Sedang : memiliki nilai 30 - 70.

c. Jauh : memiliki nilai 60 – 100.

2) Parameter Air memiliki 3 nilai linguistic yaitu : a. Rendah : memiliki nilai 0 – 80.

b. Sedang : memiliki nilai 70 - 140.

c. Tinggi : memiliki nilai 130 – 200.

3) Parameter Stamina memiliki 3 nilai linguistic yaitu : a. Lemah : memiliki nilai 0 – 40.

b. Sedang : memiliki nilai 30 - 70.

c. Kuat : memiliki nilai 60 – 100.

2. Perilaku NPC Korban Banjir

(45)

Tabel 3.1 Perilaku NPC

No Perilaku Nilai

1 Bertahan 0 - 50

2 Menyelamatkan diri 51 - 100

3. Fuzzy’s Rule

Fuzzy (rules) atau aturan-aturan yang diterapkan dalam penentuan perilaku NPC korban banjir terdapat pada tabel 3.2.

Tabel 3.2 Fuzzy Rule

(46)

4. Contoh Kasus

Korban banjir ingin diselamatkan dengan jarak 35 pixel, stamina korban

banjir 65, dan tinggi air 135 cm.

Diketahui : Jarak = 35

Stamina = 65

Air = 135

Ada 3 tahapan yang harus dilewati untuk dapat menyelesaikan kasus

diatas.

a. Fuzzification b. Inference c. Defuzzification

A. Tahapan Fuzzification

Fuzzification adalah proses perubahan suatu nilai crisp ke dalam variabel fuzzy yang berupa variabel linguistik yang nantinya akan dikelompokkan menjadi himpunan fuzzy.

Berikut ini variabel linguistik yang diperoleh dari parameter yang sudah

diketahui yaitu jarak, stamina dan air.

1. Jarak terdiri dari 3 variabel linguistik yaitu Dekat, Sedang, Jauh.

Fungsi Keanggotaan variabel jarak dari kurva trapesium adalah sebagai berikut :

(47)

� �[�] =

{

; � , �

�− ;

; �

−� ; �

(3.2)

� ℎ[�] =

{

; � , �

�− ;

; �

−� ; �

(3.3)

Derajat keanggotaan untuk Jarak 35 adalah :

�Dekat[ ] = − = .

�Sedang[ ] = − = .

�Jauh[ ] =

Maka akan didapat fungsi keanggotaan trapesium dari jarak yang dapat dilihat

pada gambar 3.2.

0

10 20 30 40 50 60 70 80 90 100 1

Dekat Sedang Jauh

0 35

0.5

(48)

2. Stamina terdiri dari 3 variabel linguistik yaitu Lemah, Sedang, Kuat.

Fungsi Keanggotaan variabel stamina dari kurva trapesium adalah sebagai berikut:

� ℎ[�] =

Derajat keanggotaan untuk Stamina 65 adalah :

�Lemah[ ] =

�Sedang[ ] = .

�Kuat[ ] = .

Maka akan didapat fungsi keanggotaan trapesium dari stamina yang dapat

(49)

0

Gambar 3.3 Fungsi Keanggotaan Trapesium Variabel Stamina

3. Air terdiri dari 3 variabel linguistik yaitu Rendah, Sedang, Tinggi.

Fungsi Keanggotaan variabel air dari kurva trapesium adalah sebagai berikut :

(50)

Derajat keanggotaan untuk Air 135 adalah :

�Rendah[ ] =

�Sedang[ ] = .

�Tinggi[ ] = .

Maka akan didapat fungsi keanggotaan trapesium dari air yang dapat dilihat

pada gambar 3.4.

10 20 30 40 50 60 70 80 90 100 1

Rendah Sedang Tinggi

110 120 130 140 150 160 170 180 190 200 0

0 135

0.5

Gambar 3.4 Fungsi Keanggotaan Trapesium Variabel Air

Sehingga pada fuzzyfication menghasilkan fuzzy input dari fungsi keanggotaan : a. Jarak = dekat (0.5), sedang (0.5) dan jauh (0)

b. Stamina = lemah (0), sedang (0.5) dan kuat (0.5)

c. Air = rendah (0), sedang (0.5) dan tinggi (0.5)

(51)

B. Proses Inference

Dari 27 rule dan fuzzy input yang sudah diketahui tersebut maka proses inference yang terjadi adalah menggunakan aturan Conjunction ( ) dengan memilih derajat keanggotaan minimum sehingga di peroleh:

1. If Jarak is Dekat (0.5) and Stamina is Lemah (0) and Air is Rendah (0) then Perilaku NPC is Bertahan (0).

2. If Jarak is Dekat (0.5) and Stamina is Lemah (0) and Air is Sedang (0.5) then Perilaku NPC is Bertahan (0).

3. If Jarak is Dekat (0.5) and Stamina is Lemah (0) and Air is Tinggi (0.5) then Perilaku NPC is Menyelamatkan diri (0).

4. If Jarak is Dekat (0.5) and Stamina is Sedang (0.5) and Air is Rendah (0) then Perilaku NPC is Bertahan (0).

5. If Jarak is Dekat (0.5) and Stamina is Sedang (0.5) and Air is Sedang (0.5) then Perilaku NPC is Bertahan (0.5).

6. If Jarak is Dekat (0.5) and Stamina is Sedang (0.5) and Air is Tinggi (0.5) then Perilaku NPC is Menyelamatkan diri (0.5).

7. If Jarak is Dekat (0.5) and Stamina is Kuat (0.5) and Air is Rendah (0) then Perilaku NPC is Bertahan (0).

8. If Jarak is Dekat (0.5) and Stamina is Kuat(0.5) and Air is Sedang (0.5) then Perilaku NPC is Bertahan (0.5).

9. If Jarak is Dekat (0.5) and Stamina is Kuat (0.5) and Air is Tinggi (0.5) then Perilaku NPC is Menyelamatkan diri (0.5).

10. If Jarak is Sedang (0.5) and Stamina is Lemah (0) and Air is Rendah (0) then Perilaku NPC is Menyelamatkan diri (0).

11. If Jarak is Sedang (0.5) and Stamina is Lemah (0) and Air is Sedang (0.5) then Perilaku NPC is Menyelamatkan diri (0).

12. If Jarak is Sedang (0.5) and Stamina is Lemah(0) and Air is Tinggi (0.5) then Perilaku NPC is Menyelamatkan diri (0).

(52)

14. If Jarak is Sedang (0.5) and Stamina is Sedang(0.5) and Air is Sedang then Perilaku NPC is Menyelamatkan diri (0.5).

19. If Jarak is Jauh (0) and Stamina is Lemah (0) and Air is Rendah (0) then Perilaku NPC is Menyelamatkan diri (0).

20. If Jarak is Jauh (0) and Stamina is Lemah (0) and Air is Sedang (0.5) then Perilaku NPC is Menyelamatkan diri (0).

21. If Jarak is Jauh (0) and Stamina is Lemah (0) and Air is Tinggi (0.5) then Perilaku NPC is Menyelamatkan diri (0).

22. If Jarak is Jauh (0) and Stamina is Sedang (0.5) and Air is Rendah (0) then Perilaku NPC is Bertahan (0).

23. If Jarak is Jauh (0) and Stamina is Sedang (0.5) and Air is Sedang (0.5) then Perilaku NPC is Bertahan (0).

24. If Jarak is Jauh (0) and Stamina is Sedang (0.5) and Air is Tinggi (0.5) then Perilaku NPC is Menyelamatkan diri (0).

25. If Jarak is Jauh (0) and Stamina is Kuat (0.5) and Air is Rendah then Perilaku NPC is Bertahan (0).

26. If Jarak is Jauh (0) and Stamina is Kuat (0.5) and Air is Sedang (0.5) then Perilaku NPC is Bertahan (0).

(53)

Dari hasil diatas maka akan dilanjutkan menggunakan aturan Disjunction ( ) dengan memilih derajat keangotaan maksimum. Sehingga dihasikan

perilaku NPC is bertahan (0.5) perilaku NPC is menyelamatkan diri

(0.5).

Maka akan di dapat grafik derajat keanggotaan model sugeno pada

Gambar 3.5

0

10 20 30 40 50 60 70 80 90 100

1

Bertahan Menyelamatkan Diri

0 0.5

Gambar 3.5 Grafik Derajat Keanggotaan Model Sugeno

C. Defuzzification

Defuzzification merupakan proses mengubah output fuzzy yang diperoleh dari mesin inferensi menjadi nilai tegas menggunakan fungsi keanggotaan

yang sesuai dengan saat dilakukan fuzzyfikasi.

Berikut ini adalah rumus untuk mendapat nilai defuzzifikasi :

(54)

�� = Nilai maksimal dari derajat keanggotaan pada aturan disjunction �� = Nilai domain pada variabel linguistik perilaku

� = Nilai defuzzifikasi

Maka didapatkan hasil perhitungan sebagai berikut

� = . + .

. + . =

Kesimpulan

Nilai yang didapat dari proses defuzzyfication tersebut selanjutnya digunakan untuk penentuan keputusan dengan aturan dari tabel 3.1 sebagai

berikut :

1. Bertahan 0 – 50

2. Menyelamatkan diri 51 – 100

Maka hasil nilai dari 75 adalah menyelamatkan diri

3.5 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non-fungsional merupakan analisis yang dibutuhkan

untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi ini juga meliputi

elemen atau komponen-komponen apa saja yang dibutuhkan untuk sistem yang

akan dibangun sampai dengan sistem tersebut diimplementasikan. Analisis

kebutuhan ini juga menentukan spesifikasi masukan yang diperlukan sistem,

keluaran yang akan dihasilkan sistem dan proses yang dibutuhkan untuk mengolah

masukan sehingga menghasilkan suatu keluaran yang diinginkan. Pada analisis

kebutuhan sistem non fungsional ini dijelaskan analisis kebutuhan perangkat lunak,

analisis kebutuhan perangkat keras, dan analisis pengguna.

3.5.1 Analisis Kebutuhan Perangkat Lunak

(55)

1. Sistem Operasi Microsoft Windows 8. 2. Unity version 4.3.4.

3. Adobe Photoshop CS3.

3.5.2 Analisis Kebutuhan Perangkat Keras

Komputer terdiri dari perangkat keras dan perangkat lunak yang saling

berinteraksi. Perangkat lunak memberikan instruksi-instruksi kepada perangkat

keras untuk melakukan suatu tugas tertentu, sehingga dapat menjalankan suatu

sistem di dalamnya.

Perangkat keras minimum bagi pengguna untuk dapat memainkan game Rescue Flood Victim ini dengan baik adalah sebagai berikut :

1. Processor Pentium IV 1,50 Ghz 2. RAM 256 MB

3. VGA 128 MB

4. Harddisk kosong tersedia 250 MB

3.5.3 Analisis Pengguna

Adapun kriteria pengguna yang dapat menguji game ini adalah sebagai berikut:

1. Pengguna tidak buta angka.

2. Pengguna tidak buta huruf.

3. Pengguna dapat membaca.

3.6 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan

diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem

(56)

1. Use Case Diagram

Use Case atau diagram use case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat [6].

Berikut ini adalah perancangan proses-proses yang terdapat pada game Rescue Flood Victim, yang digambarkan dengan Use Case Diagram yang dapat dilihat 5

Gambar 3.6 Use Case Diagram

Use Case terdiri dari tiga bagian yaitu definisi actor, definisi Use Case dan

skenario Use Case.

1.1Definisi Actor

Definisi Actor berfungsi untuk menjelaskan Actor yang terdapat pada Use Case Diagram. Definisi Actor diterangkan pada Tabel 3.3.

Tabel 3.3 Definisi Actor

No Actor Deskripsi

1 Pemain Orang yang memainkan game

System

Pemain

Mulai Permainan

Permainan Berjalan

Keluar Permainan

Menjeda Permainan Petunjuk Permainan

Permainan Selesai <<include>>

<<extend>>

(57)

1.2Definisi Use Case

Definisi Use Case berfungsi untuk menjelaskan fungsi Use Case yang terdapat pada Use Case Diagram. Definisi Use Case diterangkan pada Tabel 3.4.

Tabel 3.4 Definisi Use Case

No Use Case Deskripsi

1 Mulai Permainan Proses untuk memulai permainan

2 Permainan Berjalan Proses untuk memainkan permainan

3 Menjeda Permainan Proses untuk menjeda permainan

4 Permainan Selesai Proses untuk memberhentikan

permainan

5 Petunjuk Permainan Proses untuk menampilkan petunjuk

permainan

6 Keluar permainan Proses untuk keluar dari permainan

1.3Skenario Use Case

Skenario setiap bagian pada use case menunjukkan proses apa yang terjadi pada setiap bagian didalam use case tersebut, dimana pengguna memberikan perintah pada setiap bagian dan respon apa yang diberikan oleh sistem kepada

pengguna setelah pengguna memberikan perintah pada setiap bagian - bagian use case.

Tabel 3.5 Skenario Memulai Permainan Indentifikasi

No 1

Nama Mulai Permainan

Tujuan Untuk memulai permainan

Deskripsi Proses untuk memulai permainan

Aktor Pemain

(58)

Kondisi Awal Aktor berada di menu utama

Aksi Aktor Reaksi Sistem

1. Sistem menampilkan menu utama

2. Pemain memilih menu mulai 3. Sistem memulai permainan

4. Sistem menampilkan layar

permainan

Kondisi Akhir Permainan di mainkan

Tabel 3.6 Skenario Permainan Berjalan Indentifikasi

No 2

Nama Permainan Berjalan

Tujuan Untuk menjalankan permainan dan menghitung data

algoritma

Deskripsi Proses untuk memainkan permainan dengan

menghitung data pada algoritma fuzzy.

Aktor Pemain

Skenario Utama

Kondisi Awal Aktor berada di dalam permainan

Aksi Aktor Reaksi Sistem

1. Pemain menekan tombol A 2. Sistem menggerakan perahu ke kiri

3. Pemain menekan tombol D 4. Sistem menggerakan perahu ke

kanan

5. Sistem menampilkan proses logika

fuzzy

6. Sistem menghitung jarak

7. Sistem menghitung stamina

8. Sistem menghitung air

Gambar

Gambar 2.10 Contoh Dari Use Case Diagram
Gambar 2.12 Contoh Dari Class Diagram
Gambar 2.13 Contoh Dari Sequence Diagram
Tabel 3.1 Perilaku NPC
+7

Referensi

Dokumen terkait