SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
Oleh :
TIJAN HAKIKI
10109340
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
LAMPIRAN B
Nama : Tijan Hakiki
Tempat, Tanggal Lahir : Serang, 26 Januari 1990
Jenis Kelamin : Laki – laki
Alamat : Komp. Soreang Indah Blok K No. 20 RT02/15 Bandung
Agama : Islam
Kewarganegaraan : Indonesia
Tinggi Badan : 165 cm
Berat Badan : 65 kg
Status : Belum Kawin
Hobi : Bermain musik, membaca buku
Email : tijanhakiki08@gmail.com Phone : 081906241069
SD : 1997 – 2003 (SDN Inpres Cikeusal)
SMP : 2003 – 2006 (SMPN 1 Cikeusal)
SMK : 2006 – 2009 (SMKN 2 Kota Serang)
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... xii
DAFTAR SIMBOL ... xiii
DAFTAR LAMPIRAN ... xviii
1.5 Metodologi Penelitian ... 2
1.5.1 Metode Pengumpulan Data ... 3
1.5.2 Metode Pembuatan Perangkat Lunak ... 3
1.6 Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 7
2.1 Game ... 7
2.1.1 Pengertian Game ... 7
2.1.2 Jenis-jenis Game Berdasarkan Platform ... 8
2.1.3 Genre Game ... 9
2.1.4 Kategori Game Lainnya ... 10
2.1.5 Elemen Pada Game ... 12
2.2 Kecerdasan Buatan Pada Game ... 13
2.3 Algoritma Fuzzy Logic ... 13
2.3.1 Himpunan Fuzzy ... 14
2.3.2 Fungsi - Fungsi Keanggotaan. ... 15
2.3.3 Variabel Linguistik ... 18
2.3.4 Fuzzyfikasi ... 19
2.3.5 Inference ... 20
2.3.6 Defuzzyfikasi ... 22
2.4 Pemrograman Berorientasi Objek ... 23
2.4.1 Objek (Object) ... 24
2.4.2 Kelas (Class) ... 25
2.4.3 Pembungkusan (Encapsulation) ... 25
2.4.4 Pewarisan (Inheritance) dan Generalisasi/Spesialisasi... 25
2.4.5 Polimorfisme ... 26
2.5 UML (Unified Modeling Language) ... 26
2.6 Diagram UML ... 27
2.6.1 Diagram Kelas (Class Diagram) ... 29
2.6.2 Diagram Use Case ... 29
2.6.3 Diagram Aktivitas (Activity Diagram) ... 30
2.6.4 Diagram State Machine ... 31
2.6.5 Diagram Sekuen (Sequence Diagram) ... 32
BAB III ANALISIS DAN kebutuhan algoritma ... 35
3.1 Analisis Sistem ... 35
3.1.1 Analisis Masalah. ... 35
3.1.2 Analisis Game. ... 35
3.1.3 Gameplay Game Simulasi Bahaya Merokok. ... 35
3.2 Analisis Masukan ... 36
3.3 Analisis Algoritma logika fuzzy... 41
3.4 Analisis Kebutuhan Non Fungsional ... 50
3.4.1 Analisis Kebutuhan Perangkat Lunak ... 50
3.4.2 Analisis Kebutuhan Perangkat Keras ... 50
3.4.3 Analisis Pengguna ... 51
3.5 Analisis Kebutuhan Fungsional ... 52
3.6 Use Case Diagram ... 52
3.6.1 Definisi Actor. ... 52
3.7 Activity Diagram ... 55
3.8 Sequence Diagram ... 58
3.8.1 Diagram Sequence Memulai Permainan. ... 58
3.8.2 Diagram Sequence Melihat Petunjuk. ... 59
3.8.3 Diagram Sequence Memilih Aktivitas. ... 59
3.9 Class Diagram ... 60
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 61
4.1 Implementasi ... 61
4.1.1 Implementasi Perangkat Keras ... 61
4.1.2 Implementasi Perangkat Lunak ... 62
4.1.3 Implementasi Antarmuka ... 62
4.2 Pengujian Simulasi ... 68
4.2.1 Pengujian Perilaku Karakter Utama ... 68
4.3 Kesimpulan Pengujian ... 95
BAB V KESIMPULAN DAN SARAN ... 97
5.1 Kesimpulan ... 97
5.2 Saran ... 97
DAFTAR PUSTAKA ... 98
Kecerdasan Buatan. Jurnal ELKHA Vol.4.
[2] Pressman, Roger S. (2002). Rekayasa Perangkat Lunak: pendekatan
praktisi. Andi.
[3] Sommerville, I. (2007). Software Engineering – Eight Edition.
Massachussets: Addison Wesley.
[4] Jones, Key (1995). Simulations: A Handbook for Teachers and
Trainers. Kogan Page, hal. 21.
[5] Andang, Ismail. (2006). Education Games (Menjadi cerdas dan ceria
dengan permainan edukatif), Pilar Media.
[6] Wampler, Bruce E. (2001), The Essence of Object Oriented
Programing with Java and UML. Addison Wesley.
[7] I. Sommerville. (2003) Software Engineering (Rekayasa Perangkat
Lunak), 6th ed., Hilarius Wibi Hardani, Ed., Jakarta: Erlangga.
[8] Trijaya Kusumah, Reza. (2011) Konsep Diri Pecandu Game Online
(Studi Deskripsi Tentang Konsep Diri Pecandu Game Online Di Kota
Bandung). Skripsi. Bandung: Fakultas Sosial Politik Universitas
Komputer Indonesia.
Puji syukur penulis panjatkan kehadirat Allah SWT yang Maha pengasih
dan juga Maha penyayang, karena atas rahmat dan hidayah-Nya penulis dapat
menyelesaikan Skripsi yang berjudul “IMPLEMENTASI ALGORITMA LOGIKA FUZZY PADA GAME SIMULASI BAHAYA MEROKOK”.
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 setinggi-tingginya penulis sampaikan
kepada :
1. Allah SWT yang senantiasa memberikan kekuatan, kesehatan, dan juga
kesempatan kepada penulis dalam proses menyelesaikan skripsi ini juga atas
semua rahmat dan hidayah-Nya yang dapat menjadikan semangat tiada henti.
2. Kepada kedua orang tua yang sangat penulis cintai dan penulis hormati, yang
selalu memberikan semangat, kekuatan moril, dan selalu mendo’akan penulis.
3. Kepada ketiga kakak tercinta dan yang penulis banggakan, terimakasih
selama ini sudah banyak membantu dan mendukung.
4. Bpk Irawan Afriyanto, M.T. selaku Ketua Program Studi Teknik Informatika
Universitas Komputer Indonesia (UNIKOM).
5. Ibu Riani Lubis, S.T., M.T. selaku pembimbing yang selalu memberikan yang
terbaik dan selalu meluangkan waktunya kepada penulis.
6. Ibu Nelly Indriani W, S.Si., M.T selaku reviewer dan dosen wali IF 8
angkatan 2009 yang selalu memberikan yang terbaik.
7. Ibu Dian Dharmayanti, S.T., selaku reviewer sekaligus penguji yang telah
bersedia meluangkan waktunya kepada penulis.
8. Seluruh staf dosen Teknik Informatika yang telah memberikan ilmu yang
sangat berarti untuk penulis.
9. Luciana Bella tersayang yang selalu tulus memberikan do’a serta dukungan
kepada penulis untuk menyelesaikan skripsi ini.
bentuk dukungan kepada penulis untuk menyelesaikan skripsi ini.
Penulis sangat menyadari bahwa skripsi ini masih banyak kekurangan dan
masih jauh dari kata sempurna. Oleh karena itu, kritik dan saran yang sifatnya
membangun akan penulis terima dengan senang hati. Akhir kata penulis berharap
skripsi ini dapat bermanfaat bagi yang membutuhkan.
Bandung, Juli 2014
Penulis
1.1 Latar Belakang Masalah
Logika fuzzy merupakan suatu logika yang memiliki nilai kekaburan atau
kesamaran (fuzzyness) antara benar atau salah. Namun berapa besar kebenaran dan
kesalahan suatu nilai tergantung pada bobot keanggotaan yang dimilikinya.
Logika fuzzy memiliki derajat keanggotaan dalam rentang 0 hingga 1. Logika
fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input kedalam
suatu ruang output, mempunyai nilai kontinyu. Fuzzy dinyatakan dalam derajat
dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat
dikatakan sebagian benar dan sebagian salah pada waktu yang sama [1].
Game Cigarette Killer merupakan sebuah action game. Cara memainkan
game ini yaitu menghentikan orang yang merokok di area restoran atau tempat
makan dengan menggunakan senjata air untuk menembaki rokok agar api rokok
padam. GameCigarette Killer menggunakan algoritma greedy untuk menentukan
titik koordinat orang yang merokok. selain itu, untuk titik koordinat tidak akan
terihat lagi di kemudian. Untuk latar tempat yang digunakan masih sama di setiap
permainan saat dimulainya permainan sampai dengan selesai permainan dalam
waktu 100 detik. Hanya saja, kita tidak akan tahu kapan kita menang atau kalah
karena meski rokok yang menyala telah dipadamkan sebelum waktu habis tetap
saja akan mendapatkan game over. Sedangkan game simulasi bahaya merokok
merupakan sebuah game simulasi cara memainkan game ini yaitu dengan
menentukan aktivitas agar karakter utama tidak merokok. Namun pada game
simulasi bahaya merokok tidak membutuhkan algoritma greedy tetapi
membutuhkan suatu algoritma yang dapat menentukan nilai untuk 3 variabel yaitu
variable bosan, variable stress, dan variable lingkungan untuk menentukan
keputusan merokok dan tidak merokok. Berdasarkan penjelasan di atas maka
dibutuhkan algoritma logika fuzzy untuk menentukan keputusan merokok dan
tidak merokok.
1.2 Perumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan di atas, maka
yang menjadi pokok permasalahan adalah bagaimana menerapkan algoritma
logika fuzzy ke dalam game simulasi bahaya merokok untuk menentukan
keputusan merokok dan tidak merokok.
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas
akhir ini adalah mengimplementasikan algoritma logika fuzzy pada game simulasi
bahaya merokok. Adapun tujuan yang akan dicapai dalam tugas akhir ini adalah
dapat menentukan sebuah keputusan apakah karakter utama merokok atau tidak
merokok.
1.4 Batasan Masalah
Berdasarkan latar belakang masalah yang telah dijabarkan, maka dapat
dirumuskan beberapa permasalahan yang terjadi, yaitu :
1. Kecerdasan buatan yang digunakan adalah logika fuzzy.
2. Output yang dihasilkan adalah merokok dan tidak merokok.
3. Proses inference menggunakan model Sugeno.
4. Game yang akan dibangun berupa simulasi
1.5 Metodologi 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 dua proses metode yaitu metode pengumpulan data dan metode
1.5.1 Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah
sebagai berikut :
a. Studi Literatur.
Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan
bacaan-bacaan yang ada kaitannya dengan judul penelitian.
b. Observasi.
Metode pengumpulan data dengan melakukan pengamatan secara
langsung terhadap objek yang diteliti, yaitu game yang berjudul Cigarette
Killer.
1.5.2 Metode Pembuatan Perangkat Lunak
Metode pembangunan perangkat lunak menggunakan model prototype [2].
Alasan menggunakan metode prototype adalah karena metode ini melakukan
pengumpulan kebutuhan dan memperbaiki kebutuhan, melakukan desain dengan
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 dapat diuji. Setelah diuji,
kemudian diberikan kepada pemakai agar dapat mengetahui game yang
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)
Aplikasi game sudah sesuai dengan kebutuhan pemakai.
Gambar 1.1 Model Prototype [2]
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 I PENDAHULUAN
Bab ini berisi latar belakang, perumusan masalah, maksud dan tujuan, batasan
masalah, metodologi penelitian, sistematika penulisan dari tugas akhir yang akan dibuat.
BAB II LANDASAN TEORI
Bab ini membahas pengertian game, jenis game, kecerdasan buatan di dalam
game, penjelasan algoritma yang digunakan pada game, serta pemodelan yang
BAB III ANALISIS DAN KEBUTUHAN ALGORITMA
Bab ini membahas tentang analisis sistem, analisis masalah, analisis game yang
akan dikembangkan, analisis metode atau algoritma, analisis kebutuhan perangkat
lunak, kebutuhan non fungsional dan kebutuhan kebutuhan fungsional.
BAB IV 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 V 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
2.1 Game
Video game merupakan salah satu media hiburan yang paling popular
untuk semua kalangan usia. Sejak pertama kali ditemukan sampai saat ini,
teknologi game telah mengalami kemajuan yang pesat. Hal ini ditandai dengan
berkembangnya jenis, produk, alat, dan jenis interaksi game dengan penggunaan
yang semakin beragam bentuknya.
2.1.1 Pengertian Game
Game berasal dari kata bahasa inggris yang memiliki arti dasar Permainan.
Permainan dalam hal ini merujuk pada pengertian “kelincahan intelektual”
(intellectual playability). Game juga bisa diartikan sebagai arena keputusan dan
aksi pemainnya. Ada target-target yang ingin dicapai pemainnya. Kelincahan
intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game itu
menarik untuk dimainkan secara maksimal. Game merupakan sebuah bentuk seni
dimana penggunanya, disebut dengan pemain (player), diharuskan membuat
keputusan-keputusan dengan tujuan untuk mengelola sumber daya yang diperoleh
dari kesempatan-kesempatan bermain (token) miliknya, untuk mencapai suatu
tujuan tertentu.
Video game adalah bentuk game yang interaksi utamanya melibatkan
media video (dan biasanya melibatkan audio). Berdasarkan representasi visualnya,
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” mana 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 kamera pada game
3D benar-benar menyerupai konsep kamera pada kehidupan nyata, yaitu selain
digeser (seperti pada game 2D), juga dapat diputar dengan sumbu tertentu.
Menariknya akan tantangan maupun visualisasi yang ada pada game sering
mengakibatkan ketergantungan terhadap game tersebut (addicted). Ini merupakan
salah satu akibat buruk yang disebabkan oleh game (game addicted) [8].
2.1.2 Jenis-jenis Game Berdasarkan Platform
Berikut ini beberapa jenis game berdasarkan cara pembuatannya, cara
pemasarannya dan mesin yang menjalankannya. Jenis-jenis game tersebut adalah
[8] :
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
menyebabkan beberapa game dapat ditampilkan dengan baik pada satu
komputer tetapi tidak berjalan dengan baik pada komputer yang lainnya.
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 dumainkan secara online
2.1.3 Genre Game
Berdasarkan genre permainannya, game dapat dibagi menjadi beberapa
genre 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 shooter game, baik yang 2D ataupun
3D seperti First Person Shooter (FPS).
2. Strategy
Strategy game menantang pemain untuk mencapai kemenangan dengan
perencanaan, khususnya melalui perencanaan serangkaian tindakan yang
dilakukan melawan satu lawan atau lebih. Kemenangan diraih dengan
perencanaan matang dan pengambilan keputusan optimal.
3. 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.
4. Sports
Sports game mensimulasikan berbagai aspek dari olahraga atletik nyata
ataupun imajiner, apakah itu memainkan pertandingan, me-manage tim
dan karir, atau keduanya. Salah satu contoh game jenis ini adalah Pro
Evolution Soccer 2012 (PES 2012), dimana pemain bisa memainkan
pertandingan, menjadi manajer tim, maupun menjadi pemain dan
mengembangkan karirnya sendiri.
5. Vehicle Simulation
Vehicle simulation membuat feeling mengendarai kendaraan, baik
kendaraan nyata maupun kendaraan imajiner. Performa dan karakteristik
kasar mesin harus menyerupai kenyataan, kecuali jika yang didesain
6. 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.
7. Adventures
Adventure game adalah cerita interaktif tentang karakter protagonist 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.
8. 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.
9. Online Game
Istilah online game disini mengacu kepada multiplayer game dimana
mesin dari para pemain terhubung dengan jaringan.
2.1.4 Kategori Game Lainnya
Selain berdasarkan genre permainannya terdapat pula kategori-kategori
game lainnya, yaitu:
1. Multiplayer Online
Game yang dapat dimainkan secara bersamaan oleh lebih dari 2 orang
(bahkan dapat mencapai puluhan ribu orang dalam satu waktu) membuat
pemain dapat bermain bersama dalam satu dunia virtual dari sekedar
chatting hingga membunuh naga bersama teman yang entah bermain di
walau ada juga yang bertema musik atau action.
2. Casual Games
Sesuai namanya, game casual itu tidak kompleks, mainnya rileks dan
sangat mudah untuk dipelajari (bahkan cenderung langsung bisa
dimainkan). Jenis ini biasanya memerlukan spesifikasi komputer yang
standar. Genre permainannya biasanya puzzle atau action sederhana dan
umumnya dapat dimainkan hanya menggunakan mouse (biasanya game
lain menggunakan banyak tombol tergantung game-nya). Contohnya:
Dinner Dash, Zuma, Feeding Frenzy.
Fitur dasar pada game casual, yaitu:
1) Gameplay sangat sederhana, bisa dimainkan menggunakan mouse,
keyboard atau keypad ponsel.
2) Dimainkan dalam waktu singkat. Biasanya dibawah 10 menit. Bisa
dimainkan saat istirahat kerja atau pada transportasi umum.
3) Kemampuan yang cepat dalam mencapai tahap akhir tanpa perlu
save game.
4) Kadang digunakan untuk model bisnis atau periklanan.
5) Cocok dalam genre apapun.
6) Dapat dimainkan oleh siapa saja, anak – anak sampai orang
dewasa.
7) Dapat dimainkan dengan atau tanpa pengalaman dalam bermain
game.
3. Edugames
Video game jenis ini dibuat dengan tujuan spesifik sebagai alat pendidikan,
entah untuk belajar mengenal warna untuk balita, mengenal huruf dan
angka, matematika, sampai belajar bahasa asing. Developer yang
membuatnya, harus memperhitungkan berbagai hal agar game ini
benar-benar dapat mendidik, menambah pengetahuan dan meningkatkan
ketrampilan yang memainkannya. Target segmentasi pemain harus pula
disesuaikan dengan tingkat kesulitan dan desain visual ataupun
4. Advergames
Jenis game yang biasanya mudah dimainkan ini mengusung dan
menampilkan produk atau brand secara gamblang maupun tersembunyi.
Di era tumbuhnya media-media baru berteknologi tinggi sekarang ini,
dunia periklanan memang sudah tidak lagi terbatas pada TV, koran,
majalah, billboard dan radio, video game sekarang telah menjadi sarana
beriklan atau membangun brand-awareness yang efektif. Baik melalui
internet maupun di mainkan di event-event mereka, edugames terasa
semakin dibutuhkan untuk menjaring calon konsumen bagi produk yang
menggunakan advergames ini.
2.1.5 Elemen Pada Game
Elemen – elemen yang ada dalam sebuah game biasanya terdiri dari:
1. Desain game
Desain adalah langkah awal untuk membuat semua elemen game. Desain
game dibuat semenarik mungkin agar pemain tidak cepat bosan yang
dampaknya membuat game tersebut cepat ditinggalkan.
2. Pemrograman game
Pemrograman game sebagian besar digunakan untuk mengontrol gerakan
objek di layar. Selain itu, pemrograman game juga digunakan untuk
pemrograman suara, input device, deteksi keadaan lain – lain.
3. Grafis game
Grafis game memegang peranan penting dalam pembuatan tampilan.
Tampilan haruslah dibuat semenarik mungkin, sehingga dengan
melihatnya saja end user langsung tertarik untuk memainkannya.
4. Musik dan sound
Musik dan sound dalam suatu game merupakan suatu hal yang wajib
dikarenakan dalam suatu game akan lebih terasa efek emosi dari game
2.2 Kecerdasan Buatan Pada Game
Kecerdasan buatan atau AI merupakan kegiatan membuat komputer agar
dapat berpikir dan mengerjakan kegiatan yang dapat dilakukan oleh manusia
maupun binatang.
Saat ini dapat ditemukan program komputer yang memiliki kemampuan
menangani masalah seperti aritmatik, sorting, searching. Bahkan komputer juga
dapat bermain beberapa board game seperti catur dan reversi lebih baik daripada
manusia.
Namun, masih banyak hal yang tidak dapat dilakukan dengan baik oleh
komputer. Seperti, mengenali wajah, berbicara bahasa manusia, menentukan
sendiri apa yang harus dilakukan, dan bertingkah kreatif. Hal itu semua
merupakan domain dari AI untuk mencoba menentukan algoritma apa yang
dibutuhkan untuk memenuhi kebutuhan diatas.
Dalam bidang akademik, beberapa peniliti AI termotivasi oleh filosofi,
yaitu memahami alam pikiran dan alam kecerdasan dan membangun program
untuk memodelkan bagaimana proses berpikir. Beberapa juga termotivasi oleh
psychology, bertujuan untuk memahami mekanisme otak manusia dan proses
mental. Dan lainya termotivasi oleh engineering, dengan tujuan membangun
algoritma untuk melakukan kegiatan seperti manusia atau hewan.
Dalam pembangunan game, umumnya akan cenderung hanya pada sisi
engineering yang bertujuan membangun algoritma yang dapat membuat game
karakter mengerjakan kegiatan seperti yang dilakukan manusia atau binatang [5].
2.3 Algoritma Fuzzy Logic
Logika fuzzy adalah peningkatan dari logika Boolean yang berhadapan
dengan konsep kebenaran sebagian. Dimana logika klasik (crisp) menyatakan
bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau
putih, ya atau tidak). Logika fuzzy menggantikan kebenaran Boolean dengan
tingkat kebenaran. Logika fuzzy memungkinkan nilai keanggotaan antara 0 dan 1,
tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistic, konsep
oleh Dr.Lotfi Zadeh dari Universitas California, Barkeley pada tahun 1965.
Logika fuzzy telah digunakan pada bidang-bidang seperti taksonomi, topologi,
linguistik, teori automata, teori pengendalian, psikologi, pattern recogniti on,
pengobatan, hukum, decision analysis, system theory and information
retrieval.Pendekatan fuzzy memiliki kelebihan pada hasil yang terkait dengan sifat
kognitif manusia, khususnya pada situasi yang melibatkan pembentukan konsep,
pengenalan pola, dan pengambilan keputusan dalam lingkungan yang tidak pasti
atau tidak jelas.[1]
2.3.1 Himpunan Fuzzy
Himpunan fuzzy merupakan suatu pengembangan lebih lanjut tentang
konsephimpunan dalam matematika. Himpunan Fuzzy adalah rentang nilai-nilai.
Masing-masing nilai mempunyai derajat keanggotaan (membership) antara 0
sampai dengan 1. Ungkapan logika Boolean menggambarkan nilai-nilai “benar”
atau “salah”. Logika fuzzy menggunakan ungkapan misalnya : “sangat lambat”,
”agak sedang”, “sangat cepat”dan lain-lain untuk mengungkapkan derajat
intensitasnya. Ilustrasi antara keanggotaan fuzzy dengan Boolean set dapat dilihat
pada gambar dibawah ini.
2.3.2 Fungsi – Fungsi Keanggotaan
Didalam fuzzy system, fungsi keanggotaan memainkan peranan yang
sangat penting untuk merepresentasikan masalah dan menghasilkan keputusan
yang akurat. Terdapat banyak sekali fungsi keanggotaan yang biasa digunakan.
Disini hanya membahas empat fungsi keanggotaan yang sering digunakan di
dunia nyata, yaitu :[3].
1. Fungsi sigmoid
Sesuai dengan namanya, fungsi ini berbentuk kurva sigmoidal seperti huruf S.
Setiap nilai x (anggota crisp set) dipetakan ke dalam interval [0,1]. Grafik dan
notasi matematika untuk fungsi sigmoid dapat dilihat pada Gambar 2.2.
Sigmoid (a,b,c)= (2.1)
Gambar 2.2 Grafik dan notasi fungsi sigmoid [3].
2. Fungsi phi
Pada fungsi keanggotaan ini, hanya terdapat satu nilai x yang memiliki derajat
keanggotaan yang sama dengan 1, yaitu ketika x=c. Nilai-nilai di sekitar c
memiliki derajat keanggotaan yang masih mendekati 1. Grafik dan notasi
Phi(x,b,c) = (2.2)
Gambar 2.3 Grafik dan notasi fungsi phi [3].
3. Fungsi segitiga
Sama seperti fungsi phi, pada fungsi ini juga terdapat hanya satu nilai x yang
memiliki derajat keanggotaan sama dengan 1, yaitu ketika x=b. Tetapi, nilai-nilai
di sekitar b memiliki derajat keanggotaan yang turun cukup tajam menjauhi 1.
Grafik dan notasi matematika untuk fungsi segitiga dapat dilihat pada Gambar 2.4.
Segitiga(x,a,b,c) = (2.3)
4. Fungsi trapesium
Berbeda dengan fungsi segitiga, pada fungsi ini terdapat beberapa nilai x yang
memiliki derajat keanggotaan sama dengan 1, yaitu ketika b≤ x ≤ c. Tetapi derajat
keanggotaan untuk a< x <b dan c< x ≤ d memiliki karakteristik yang sama
dengan fungsi segitiga. Grafik dan notasi matematika untuk fungsi ini dapat
dilihat pada Gambar 2.5.
Trapesium (x,a,b,c,d)=. (2.4)
Gambar 2.5 Garfik dan notasi fungsi trapesium [3].
Himpunan fuzzy memiliki 2 atribut, yaitu:
1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau
kondisi tertentu dengan menggunakan bahasa alami, seperti: MUDA,
PAROBAYA, TUA
2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu
2.3.3 Variabel Linguistik
Variabel linguistik adalah suatu interval numerik dan mempunyai nilai-
nilai linguistik , yang semantiknya di definisikan oleh fungsi keanggotaannya.
Misalnya, suhu adalah suatu variabel linguistik yang bisa di definisikan pada
interval [-10°C, 40°C]. Variabel tersebut bisa memiliki nilai – nilai linguistik
seperti ‘Dingin’, ‘Hangat’, ‘Panas’ yang semantiknya di definisikan oleh fungsi –
fungsi keanggotaan tertentu.
1. Fuzzyfication
Mengubah masukan – masukan yang nilai kebenarannya bersifat pasti
(Crips input) kedalam bentuk fuzzy input, yang berupa nilai linguistik
yang semantiknya ditentukan berdasarkan fungsi keanggotaan tertentu.
2. Inference
Melakukan penalaran menggunakan fuzzy infut dan fuzzy rules yang telah
di tentukan sehingga menghasilkan fuzzy output.
3. Defuzzyfication
Mengubah fuzzy output menjadi crisp value berdasarkan fungsi
Gambar 2.6 diagram blok untuk sistem berbasis aturan fuzzy [3].
2.3.4 Fuzzyfikasi
Fuzzifikasi yaitu suatu proses untuk mengubah suatu masukan dari bentuk
tegas (crisp) menjadi fuzzy (variabel linguistik) yang biasanya disajikan dalam
bentuk himpunan-himpunan fuzzy dengan suatu fungsi kenggotaannya
masing-masing. Contoh dari proses Fuzzification adalah seperti yang ditunjukkan di
gambar 2.2. Sebuah sistem fuzzy untuk mengukur suhu mempunyai 5 buah
membership function yang mempunyai label sangat dingin, dingin, hangat, panas,
sangat panas. Kemudian input yang diperoleh dari crisp input adalah 47° maka
Gambar 2.7 Proses perubahan dari crisp input menjadi fuzzy input [3].
2.3.5 Inference
Dalam suatu sistem aturan fuzzy, proses inference memperhitunkan semua
aturan yang ada dalam basis pengetahuan. Hasil dari proses inference
direpresentasikan oleh suatu fuzzy set untuk setiap variabel bebas (pada
consequent). Derajat keanggotaan untuk setiap nilai variabel tidak bebas
menyatakan ukuran kompatibilitas terhadap variabel bebas (pada antecdent).
Misalkan, terdapat suatu sistem dengan n variabel x1, ..., xn dan m variabel tidak
bebas y1,...,ym. Misalkan R adalah suatu basis dari sejumlah r aturan fuzzy.
IF P1(x1,...,xn) THEN Q1 (y1,...,ym),
IF Pr(x1,...,xn) THEN Qr (y1,...,ym),
Dimana p1,...pr menyatakan fuzzy predicate untuk variabel bebas, dan
Q1,...Qr menyatakan fuzzy predicate untuk variabel tidak bebas.
Struktur sistem inferensi fuzzy dapat dilihat pada gambar 2.1
Keterangan:
1) Basis Pengetahuan Fuzzy merupakan kumpulan rule-rule fuzzy dalam
bentuk pernyataan IF…THEN.
2) Fuzzyfikasi adalah proses untuk mengubah input sistem yang
mempunyai nilai tegas menjadi variabel linguistic menggunakan fungsi
keanggotaan yang disimpan dalam basis pengetahuan fuzzy.
3) Logika pengambil keputusan merupakan proses untuk mengubah input
fuzzy dengan cara mengikuti aturan-aturan (IF-THEN Rules) yang telah
ditetapkan pada basis pengetahuan fuzzy.
4) Defuzzyfikasi merupakan proses mengubah output fuzzy yang diperoleh
dari mesin inferensi menjadi nilai tegas menggunakan fungsi
keanggotaan yang sesuai dengan saat dilakukan fuzzyfikasi.
Terdapat dua model aturan fuzzy yang digunakan secara luas dalam
berbagai aplikasi.
1. Model Mamdani
Pada model ini, aturan fuzzy didefinisikan sebagai:
IF x1 is A1 AND …AND xn is An THEN y is B
di mana A1, …, An, dan B adalah nilai-nilai linguistik (atau fuzzy set) dan
“x1 is A1” menyatakan bahwa nilai x1 adalah anggota fuzzy set A1.
2. Model Sugeno
Model ini dikenal juga sebagai Takagi-Sugeno-Kang (TSK) model, yaitu
suatu varian dari Model Mamdani.
Model ini menggunakan aturan yang berbentuk:
IF x1 is A1 AND…AND xn is An THEN y=f(x1,…,xn)
di mana f bisa sembarang fungsi dari variabel-variabel input yang nilainya
berada dalam interval variabel output. Biasanya, fungsi ini dibatasi dengan
menyatakan f sebagai kombinasi linier dari variabel-variabel input:
di mana w0, w1,…,wn adalah konstanta yang berupa bilangan real yang
merupakan bagian dari spesifikasi aturan fuzzy.
2.3.6 Defuzzyfikasi
Defuzzification: mengubah fuzzy output menjadi crisp value berdasarkan
fungsi keanggotaan yang telah ditentukan.Terdapat berbagai metode
defuzzification yang telah berhasil diaplikasikan untuk berbagai macam masalah,
di sini dibahas 5 metode di antaranya, yaitu:[2]
1. Centroid method
Metode ini disebut juga sebagai Center of Area atau Center of Gravity. Metode ini
menghitung nilai crisp menggunakan rumus:
di mana y* suatu nilai crisp.
Fungsi integration dapat diganti dengan fungsi summation jika y bernilai diskrit,
sehingga menjadi:
di mana y* adalah nilai crisp dan µR(y) adalah derajat keanggotaan dari y.
2. Height method
Metode ini dikenal sebagai prinsip keanggotaan maksimum karena metode ini
secara sederhana memilih nilai crisp yang memiliki derajat keanggotaan
maksimum. Oleh karena itu, metode ini hanya bisa dipakai untuk fungsi
keanggotaan yang memiliki derajat keanggotaan 1 pada suatu nilai crisp tunggal
dan dan 0 pada semua nilai crisp yang lain. Fungsi seperti ini sering disebut
3. First (or Last) of Maxima
Metode ini juga merupakan generalisasi dari height method untuk kasus di mana
fungsi keanggotaan output memiliki lebih dari satu nilai maksimum.Sehingga
nilai crisp yang digunakan adalah salah satu dari nilai yang dihasilkan dari
maksimum pertama atau maksimum terakhir (tergantung pada aplikasi yang akan
dibangun).
4. Mean-Max Method
Metode ini disebut juga sebagai Middle of Maxima. Merupakan generalisasi dari
height method untuk kasus di mana terdapat lebih dari satu nilai crisp yang
memiliki derajat keanggotaan maksimum.Sehingga y* didefinisikan sebagai titik
tengah antara nilai crisp terkecil dan nilai crisp terbesar
di mana m adalah nilai crisp yang paling kecil dan M adalah nilai crisp yang
paling besar.
5. Weighted Average
Metode ini mengambil nilai rata-rata dengan menggunakan pembobotan berupa
derajat keanggotaan. Sehingga y* didefinisikan sebagai:
di mana y adalah nilai crisp dan µ(y) adalah derajat keanggotan dari nilai crisp y.
2.4 Pemrograman Berorientasi Objek
Objek adalah kesatuan entitas yang memiliki sifat dan tingkah laku.
Dalam kehidupan sehari-hari, objek adalah benda, baik benda berwujud nyata
seperti manusia, hewan, mobil, komputer, handphone, pena, ataupun benda yang
tidak nyata atau konsep, seperti halnya tabungan bank, sistem antrian, sistem
internet banking, dan sebagainya. Jadi pengertian OOP adalah konsep yang
Objek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak
nyata (konsep). Jika menggunakan OOP maka akan ada enam keuntungan yang dapat
diperoleh, yaitu [6]:
1. Alami (Natural).
2. Dapat diandalkan (Reliable).
3. Dapat digunakan kembali (Reusable).
4. Mudah untuk dalam perawatan (Maintainable).
5. Dapat diperluas (Extendable).
6. Efisiensi waktu.
Berikut ini beberapa bahasa pemrograman yang sudah menggunakan konsep OOP,
adalah :
Orientasi objek merupakan teknik dalam menyelesaikan masalah yang
kerap muncul dalam pengembangan perangkat lunak. Teknik ini merupakan titik
kulminasi dalam menemukan cara yang efektif dalam membangun sistem dan
menjadi metode yang paling banyak dipakai oleh para pengembang perangkat
lunak saat ini. Orientasi objek merupakan teknik pemodelan sistem riil yang
berbasis objek. Inti dari konsep ini adalah objek yang merupakan model dari
sistem nyata.
Objek adalah entitas yang memiliki atribut, karakter dan kadangkala
disertai kondisi. Objek merepresentasikan sesuatu sistem nyata seperti siswa,
sistem kontrol permukaan sayap pesawat, sensor atau mesin. Objek juga
merepresentasikan sesuatu dalam bentuk konsep seperti nasabah bank, merek
dagang, pernikahan atau sekedar listing. Bahkan bisa juga mengatakan visualisasi
seperti, bentuk huruf, histogram, poligon, garis atau lingkaran. Semuanya
(memori), identitas dan tanggung jawab. Proses menjabarkan sistem nyata
menjadi objek dinamakan abstraksi (abstraction). Abstraksi mengeliminir aspek
yang tidak perlu dalam suatu objek.
2.4.2 Kelas (Class)
Kelas adalah penggambaran satu set objek yang memiliki atribut dan
behaviour yang sama. Kelas mirip tipe data pada pemrograman non objek, tapi
lebih komprehensif karena terdapat struktur sekaligus karakteristiknya.
Programmer dapat membentuk kelas baru yang lebih spesifik dari kelas general
-nya. Kelas dan objek merupakan jantung dari pemrograman berorientasi objek.
Untuk menghasilkan program jenis ini sangat penting untuk selalu berfikir dalam
bentuk objek.
2.4.3 Pembungkusan (Encapsulation)
Pembungkusan sebagai penggabungan potongan-potongan informasi dan
perilaku-perilaku spesifik yang bekerja pada informasi tersebut, kemudian
mengemasnya menjadi apa yang disebut sebagai objek. Dalam perbankan dikenal
objek rekening yang memiliki perilaku-perilaku misalnya buka, tutup, penarikan,
penyimpanan, ubah nama, ubah alamat, dan sebagainya. Akibatnya,
perubahan-perubahan pada sistem perbankan yang berkaitan dengan rekening-rekening dapat
secara sederhana diimplementasikan satu kali saja pada objek rekening.
Keuntungan lainnya adalah membatasi efek-efek perubahan pada sistem.
Misalnya, saat manajemen bank menentukan jika seseorang memiliki rekening
pinjaman di bank yang bersangkutan, rekening pinjaman itu harus dapat juga
digunakan sebagai sarana bagi penarikan rekening.
2.4.4 Pewarisan (Inheritance) dan Generalisasi/Spesialisasi
Konsep dimana metode dan atau atribut yang ditentukan di dalam sebuah
objek kelas dapat diwariskan atau digunakan lagi atau digunakan lagi oleh objek
kelas lainnya. Sedangkan generalisasi/spesialisasi merupakan teknik dimana
(atau diabstraksi) ke dalam kelasnya sendiri (dinamakan supertype). Atribut dan
metode kelas objek supertype kemudian diwariskan oleh kelas objek tersebut
(dinamakan subtype).
2.4.5 Polimorfisme
Polimorfisme berarti suatu fungsionalitas yang diimplementasikan dengan
berbagai cara yang berbeda. Pada terminologi berorientasi objek, ini berarti dapat
memiliki berbagai implementasi untuk sebagian fungsionalitas tertentu. Sebagai
contoh, misalkan pengembang akan mengembangkan sistem berbasis grafis. Saat
pengguna mau menggambar sesuatu, misalnya garis atau lingkaran, sistem akan
memunculkan perintah gambar. Sistem akan mengenali berbagai bentuk gambar,
masing-masing dengan perilakunya sendiri-sendiri. Manfaat dari polimorfisme
adalah kemudahan pemeliharaannya. Jika perlu menambahkan gambar baru
(misalnya segitiga) maka cukup menambahkan fungsi baru (fungsi menggambar
segitiga) sedangkan fungsi umumnya (fungsi gambar) tidak mengalami
perubahan.
2.5 UML (Unified Modeling Language)
UML adalah keluarga notasi grafis yang didukung oleh meta-model
tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak,
khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek.
Definisi ini merupakan definisi sederhana. Pada kenyataannya, pendapat
orang-orang tentang UML berbeda satu sama lain. Hal ini dikarenakan oleh sejarahnya
sendiri dan oleh perbedaan persepsi tentang apa yang membuat sebuah proses
rancang bangun perangkat lunak efektif.
UML merupakan standar yang relatif terbuka yang dikontrol oleh Object
Management Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak
perusahaan. OMG dibentuk untuk membuat standar-standar yang mendukung
interoperabilitas, khususnya interoperabilitas sistem berorientasi objek. OMG
mungkin lebih dikenal dengan standar-standar COBRA (Common Object Request
UML lahir dari penggabungan banyak bahasa pemodelan grafis
berorientasi objek yang berkembang pesat pada akhir 1980-an dan awal 1990-an.
Sejak kehadirannya pada tahun 1997, UML menggantikan menara Babel yang
telah menjadi sejarah. UML merupakan dasar bagi perangkat (tool) desain
berorientasi objek dari IBM.
Bagian-bagian utama dari UML adalah view, diagram, modelelement, dan
general mechanism [7]. Diagram berbentuk grafik yang menunjukkan simbol
elemen model yang disusun untuk mengilustrasikan bagian atau aspek tertentu
dari sistem. Sebuah diagram merupakan bagian dari suatu view tertentu dan ketika
digambarkan biasanya.
2.6 Diagram UML
Pada UML 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam
3 kategori. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat
UML 2.3 Diagram
Gambar 2.9 Diagram UML [7]
Berikut ini penjelasan singkat dari pembagian kategori tersebut.
1. Structure diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan suatu struktur statis dari sistem yang dimodelkan.
2. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan kelakuan sistem atau rangkain perubahan yang terjadi
pada sebuah sistem.
3. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan interaksi sistem dengan sistem lain maupun interaksi
2.6.1 Diagram Kelas (Class Diagram)
Diagram kelas menggambarkan struktur sistem dari segi pendefinisian
kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang
disebut atribut dan metode atau operasi.
1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas.
2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.
Diagram kelas dibuat agar pembuat program atau programmer membuat
kelas-kelas sesuai rancangan di dalam diagram kelas-kelas agar antara dokumentasi
perancangan dan perangkat lunak sinkron. Berikut adalah contoh dari diagram
kelas.
2.6.2 Diagram Use Case
Diagram use case merupakan pemodelan untuk kelakuan (behaviour)
sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi
antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara
kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam
sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi
itu. 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.
1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan
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 pesan antar unit-unit atau aktor.
Gambar 2.11 Contoh Use Case Diagram [7]
2.6.3 Diagram Aktivitas (Activity Diagram)
Diagram aktivitas menggambarkan workflow (aliran kerja) atau aktivitas
dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak.
Yang perlu diperhatikan disini 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:
1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan
merupakan proses bisnis sistem yang didefinisikan.
2. Urutan atau pengelompokkan tampilan dari sistem/user interface dimana
setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan.
3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan
4. Rancangan menu yang ditampilkan pada perangkat lunak.
Gambar 2.12 Contoh Activity Diagram [7]
2.6.4 Diagram State Machine
State machine diagram atau statechart diagram atau dalam bahasa
Indonesia disebut diagram mesin status atau sering juga disebut diagram status
digunakan untuk menggambarkan perubahan status atau transisi status dari sebuah
mesin atau sistem atau objek. Jika diagram sekuen digunakan untuk interaksi antar
objek maka diagram status digunakan untuk interaksi di dalam sebuah objek.
Gambar 2.13 Contoh Statechart Diagram [7]
2.6.5 Diagram Sekuen (Sequence Diagram)
Diagram sekuen menggambarkan kelakuan pada objek use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima
antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus
diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode
yang dimiliki kelas yang diinstansiasi menjadi objek itu. Membuat diagram
sekuen juga dibutuhkan untuk melihat skenario yang ada pada use case.
Banyaknya diagram sekuen yang harus digambar adalah minimal sebanyak
pendefinisian use case yang memiliki proses sendiri atau yang penting semua use
case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada
diagram sekuen sehingga semakin banyak use case yang didefinisikan maka
Pet ugas Pert ukaan m : Main an : Ant armuka v : Validasi k : KoneksiBasisDat a p : Pet ugas
1 : main()
2 : f ormLogin()
3 : username dan password
4 : login()
5 < < creat e> >
6 < < creat e> > 7 : open()
8 : queryCekLogin()
9 : execut e() 10 : get Result ()
11 : username dan password pet ugas 12 : close()
13 < < dest roy> > 14 < < dest roy> >
BAB III
ANALISIS DAN KEBUTUHAN ALGORITMA
3.1 Analisis Sistem
Analisis sistem merupakan proses penguraian konsep ke dalam
bagian-bagian yang lebih sederhana. Pada analisis sistem akan mencakup berbagai
macam analisis yang berhubungan dengan game yang akan dibangun seperti
analisis masalah, gameplay, analisis kecerdasan buatan yang dipakai, analisis
kebutuhan fungsional dan non-fungsional.
3.1.1 Analisis Masalah
Game Cigarette Killer memakai algoritma greedy yang diterapkan pada
NPC orang yang merokok untuk mematikan rokok dengan menggunakan senjata
air. Sedangkan pada game simulasi bahaya merokok untuk dapat berhenti
merokok harus melakukan aktivitas agar dapat menghasilkan keputusan merokok
dan tidak merokok.
3.1.2 Analisis Game
Game simulasi bahaya merokok adalah game simulasiyang menggunakan
grafik 2 dimensi. Misi utama dan gameplay dari game ini adalah karakter utama
yang ingin berhenti merokok. Karakter utama dapat melakukan kegiatan
sehari-hari agar menghilangkan rasa ingin merokok.
Game simulasi bahaya merokok mengimplementasikan algoritma logika
fuzzy untuk memberikan keputusan perilaku atau tingkah laku merokok dan tidak
merokok pada karakter utama.
3.1.3 Gameplay Game Simulasi Bahaya Merokok
Dari game simulasi bahaya merokok yaitu pemain bertugas memberikan
keputusan dalam kegiatan karakter sehari-hari yaitu setiap pemain harus
melakukan kegiatan kegiatan yang dapat mengurangi tingkat bosan dan stress.
Sebelum jam 9 pagi pemain harus sudah berada di kantor apabila terlambat maka
akan dikenakan finalti dengan nilai stress + 50. Setiap selesai bekerja waktu akan
di percepat ke jam 16.00 sehingga nilai bosan dan stress akan bertambah +20
sehingga pemain harus dapat mengurangi tingkat bosan dan stress. Pemain juga
harus dapat memperhatikan waktu tidur, waktu yang ideal adalah pukul 21.00 jika
melewati atau kurang maka akan terkena finalti bosan dan stress akan bertambah
+20.
3.2 Analisis Masukan
Analisis masukan yang dilakukan dalam penelitian ini adalah menganalisis
variabel dalam algoritma logika fuzzy pada game simulasi bahaya merokok,
variabel tersebut antara lain bosan, stress dan lingkungan.
1. Variabel bosan
Variabel ini terdapat pada karakter utama untuk menunjukan tingkat
bosan. Nilai bosan pertama kali dimulai dari nilai 30. Untuk setiap 5 detik
didalam game, nilai bosan akan bertambah +2, nilai ini juga akan
bertambah setiap kali pemain melakukan perpindhan seperti pada saat
keluar rumah akan bertambah +5, pergi ke kantor +5, dan pergi ke taman
+5. Untuk kegiatan bekerja parameter akan bertambah +20. Ketika
karakter utama menonton televisi, maka variabel bosan akan turun – 8,
ketika karakter utama bermain gitar, variabel bosan akan turun – 5, ketika
karakter utama minum/makan, variabel bosan turun kembli – 5, ketika
karakter utama membaca buku, parameter bosan turun – 15, pada saat
karakter utama bekerja, variabel bosan naik +15, dan ketika karakter
utama duduk di taman, variabel bosan akan turun – 30. Adapun proses
fuzzy dihasilkan dari proses permainan yang di lakukan secara realtime.
Dengan range nilai variabel bosan diantara 0 – 100 dengan penjelasan
sebagai berikut:
a. Rendah: memiliki nilai 0 – 40.
b. Cukup : memiliki nilai 30 - 70.
Pada range nilai yang sudah di jelaskan di atas, maka akan membentuk hasil
fungsi keanggotaan yang terdapat pada gambar 3.1.
Gambar 3.1 Fungsi keanggotaan variable Bosan
Fungsi Keanggotaan pada grafik derajat keanggotaan Bosan
a. Bosan dengan nilai 30 termasuk dalam himpunan Rendah dengan
µRendah[30] =1.
b. Bosan dengan nilai 35 termasuk dalam himpunan Rendah dan Cukup
dengan µRendah[35] dan µCukup[35] dihitung dengan rumus persamaan
(2.5).
c. Bosan dengan nilai 40 termasuk dalam himpunan Cukup dengan
µCukup[40] =1.
d. Bosan dengan nilai 60 termasuk dalam himpunan Cukup dengan
µCukup[60] =1.
e. Bosan dengan nilai 70 termasuk dalam himpunan Tinggi dengan
µTinggi[70] =1.
f. Bosan dengan nilai 100 termasuk dalam himpunan Tinggi dengan
2. Variabel stress
Variabel ini terdapat pada karakter utama untuk menunjukan tingkat stress.
Nilai stress pertama kali dimulai dari nilai 30. Untuk setiap 5 detik
didalam game, nilai akan bertambah +2, nilai ini juga bertambah setiap
kali pemain melakukan perpindahan seperti pada saat keluar rumah akan
bertambah +5, pergi ke kantor +5, dan pergi ke taman +5. Untuk kegiatan
bekerja parameter akan bertambah +20. Ketika karakter utama menonton
televisi, maka variabel stress akan turun – 8, ketika karakter utama
bermain gitar, variabel stress akan turun – 5, ketika karakter utama
minum/makan, variabel stress turun kembli – 5, ketika karakter utama
membaca buku, parameter stress turun – 15, pada saat karakter utama
bekerja, variabel stress naik +25, dan ketika karakter utama duduk di
taman, variabel bosan akan turun – 30. Adapun proses fuzzy dihasilkan
dari proses permainan yang di lakukan secara realtime.
Dengan range nilai variabel stress diantara 0 – 100 dengan penjelasan
sebagai berikut:
a. Rendah : memiliki nilai 0 – 40.
b. Cukup : memiliki nilai 30 - 70.
c. Tinggi : memiliki nilai 60 – 100.
Pada range nilai yang sudah di jelaskan di atas, maka akan membentuk
Gambar 3.2 Fungsi keanggotaan variable Stress
Fungsi Keanggotaan pada grafik derajat keanggotaan Stress
a. Stress dengan nilai 30 termasuk dalam himpunan Rendah dengan
µRendah[30] =1.
b. Stress dengan nilai 35 termasuk dalam himpunan Rendah dan Cukup
dengan µRendah[35] dan µCukup[35] dihitung dengan rumus persamaan
(2.5).
c. Stress dengan nilai 40 termasuk dalam himpunan Cukup dengan
µCukup[40] =1.
d. Stress dengan nilai 60 termasuk dalam himpunan Cukup dengan
µCukup[60] =1.
e. Stress dengan nilai 70 termasuk dalam himpunan Tinggi dengan
µTinggi[70] =1.
f. Stress dengan nilai 100 termasuk dalam himpunan Tinggi dengan
3. Variabel lingkungan
Parameter ini terdapat pada karakter utama untuk menahan agar tidak
merokok pada lingkungan sekitar.
Nilai lingkungan pertama kali mulai dengan nilai 0
Ketika karakter pemuda berada diluar rumah atau di lingkungan bebas,
variabel lingkungan akan naik +5. Adapun proses fuzzy dihasilkan dari
proses permainan yang di lakukan secara realtime.
Dengan range nilai variabel bosan diantara 0 – 100 dengan penjelasan
sebagai berikut:
a. Non Perokok: memiliki nilai 0 – 55.
b. Perokok : memiliki nilai 45 - 100.
Pada range nilai yang sudah di jelaskan di atas, maka akan membentuk
hasil fungsi keanggotaan yang terdapat pada gambar 3.3.
0.8
Gambar 3.3 Fungsi keanggotaan variable Lingkungan
a. Lingkungan dengan nilai 45 termasuk dalam himpunan Non Perokok
dengan µNon Perokok[45] =1.
b. Lingkungan dengan nilai 50 termasuk dalam himpunan Non Perokok dan
Perokok dengan µLingkungan[50] dan µPerokok[50] dihitung dengan
rumus persamaan (2.5).
c. Lingkungan dengan nilai 60 termasuk dalam himpunan Perokok dengan
µLingkungan[60] =1.
d. Lingkungan dengan nilai 100 termasuk dalam himpunan Perokok dengan
µPerokok[100] =1.
3.3 Analisis Algoritma logika fuzzy
Analisis algoritma yang dilakukan dalam penelitian ini adalah meneliti
bagaimana cara kerja algoritma logika fuzzy pada karakter utama di dalam game
simulasi bahaya merokok. Algoritma logika fuzzy ini memiliki 3 variabel yaitu
variabel stress, bosan dan lingkungan. Serta algoritma logika fuzzy memiliki 4
tahapan proses yaitu fuzzifikasi, pembentukan rule, mesin inferensi dan
defuzzifikasi. Berikut adalah ilustrasi logika fuzzy yang di peroleh dari 3 variabel
masukan dapat di lihat pada tabel input dan output algoritma logika fuzzy.
Tabel 3.1 Input dan Output Algoritma Logika Fuzzy
NO Bosan Stress Lingkungan Perilaku
13 Tinggi Rendah Non Perokok Tidak Merokok
15 Tinggi Cukup Non Perokok Merokok
16 Tinggi Cukup Perokok Merokok
17 Tinggi Tinggi Non Perokok Merokok
18 Tinggi Tinggi Perokok Merokok
Pada tabel input dan output digunakan untuk menentukan keputusan yang
dilakukan oleh karakter utama. Berikut penjelasan dari masing – masing input dan
output tersebut adalah:
Rule logika fuzzy pada game simulasi bahaya merokok.
12.IF bosan is cukup AND stress is tinggi AND lingkungan is perokok then merokok.
13.IF bosan is tinggi AND stress is rendah AND lingkungan is non perokok then tidak merokok.
14.IF bosan is tinggi AND stress is rendah AND lingkungan is perokok then merokok.
18.IF bosan is tinggi AND stress is tinggi AND lingkungan is perokok then merokok.
A. Tahapan Fuzzifikasi
Variabel bosan terdiri dari 3 himpunan fuzzy yaitu Rendah, Cukup, Tinggi.
1. Variabel bosan
Penjelasan variabel bosan terdapat pada karakter utama dalam
melakukan aktivitas. Diamana untuk mulai melakukan aktivitas, nilai
variabel bosan adalah 30.
Contoh kasus:
Misalkan didapatkan nilai bosan adalah 35, maka nilai 35 akan di
konversi kedalam nilai fuzzy, dimana nilai bosan 35 berada pada nilai
linguistik rendah dan cukup kemudian dihitung menggunakan rumus
Fungsi Keanggotaan :
(3.1)
(3.2)
(3.3)
Gambar 3.4 Contoh kasus Fungsi keanggotaan variable Bosan
Variabel stress terdiri dari 3 himpunan fuzzy yaitu Rendah, Cukup, Tinggi.
2. Variabel stress
Penjelasan variabel stress terdapat pada karakter utama dalam
melakukan aktivitas. Diamana untuk mulai melakukan aktivitas, nilai
variabel stress adalah 45.
Contoh kasus:
Misalkan didapatkan nilai stress adalah 45, maka nilai 45 akan di
konversi kedalam nilai fuzzy, dimana nilai stress 45 berada pada nilai
linguistik cukup kemudian dihitung menggunakan rumus fungsi
(3.5)
(3.6)
Derajat keanggotaan untuk Stress 45 adalah :
Gambar 3.5 Contoh kasus Fungsi keanggotaan variable Stress
Lingkungan terdiri dari 2 himpunan fuzzy yaitu Non Perokok dan
Perokok. 0.8
0,6
0.4
0.2
0
10 20 30 40 50 60 70 80 90 100
1
Rendah Cukup Tinggi
0,5
3. Variabel lingkungan
Penjelasan variabel lingkungan terdapat pada karakter utama pada
saat berada di lingkungan sekitar. Diamana untuk mulai melakukan
aktivitas, nilai variabel lingkungan adalah 50.
Contoh kasus:
Misalkan didapatkan nilai lingkungan adalah 50, maka nilai 50
akan di konversi kedalam nilai fuzzy, dimana nilai lingkungan 50 berada
pada nilai linguistik non perokok dan perokok kemudian dihitung
menggunakan rumus fungsi trapesium:
Fungsi Keanggotaan :
(3.4)
(3.5)
0.8
Gambar 3.6 Contoh kasus Fungsi keanggotaan variable Lingkungan
B. Tahap Pembentukan Rule
Dalam Hal ini, rule-rule dibentuk sesuai dengan yang memenuhi kondisi
Soal.
Tabel 3.2 Tahap Pembentukan Rule
NO IF Bosan AND Stress AND Lingkungan THEN Perilaku
1 IF Rendah AND Cukup AND
Non
Perokok THEN Tidak Merokok
2 IF Rendah AND Cukup AND Perokok THEN Tidak Merokok
3 IF Cukup AND Cukup AND
Non
Perokok THEN Tidak Merokok
4 IF Cukup AND Cukup AND Perokok THEN Merokok
C. Mesin Inferensi
[R1] IF Bosan Rendah and Stress Cukup and Lingkungan Non
Perokok then Perilaku Tidak Merokok α-pred1=µRendah ∩ Rendah ∩ Non Perokok
= MIN(µRendah [35]; µRendah[45]; µNonPerokok[50] )
= MIN ( 0.5 ; 1 ; 0,5)
[R2] IF Bosan Rendah and Stress Cukup and Lingkungan Perokok
then Perilaku Tidak Merokok
α-pred1=µRendah ∩ Rendah ∩ Perokok
= MIN(µRendah [35]; µRendah[45]; µPerokok[50] )
= MIN ( 0.5 ; 1; 0.5)
= 0,5
[R3] IF Bosan Cukup and Stress Cukup and Lingkungan Non
Perokok then Perilaku Tidak Merokok α-pred1=µRendah ∩ Cukup ∩ Non Perokok
= MIN(µRendah [35]; µCukup[45]; µNonPerokok[50] )
= MIN ( 0.5 ; 1 ; 0.5)
= 0.5
[R4] IF Bosan Cukup and Stress Cukup and Lingkungan Perokok
then Perilaku Merokok
α-pred1=µCukup ∩ Cukup ∩ Perokok
= MIN(µCukup [35]; µCukup[45]; µPerokok[50] )
= MIN ( 0.5 ; 1 ; 0.5)
= 0.5
D. Defuzzifikasi
= Nilai minimal dari derajat keanggotaan
= Nilai domain pada variabel linguistik
= Nilai defuzzifikasi
Kesimpulan
Nilai yang didapat dari proses defuzzyfication tersebut selanjutnya
digunakan untuk penentuan keputusan dengan aturan sebagai berikut :
1. Tidak Merokok 0 – 50
2. Merokok 51 – 100
Maka hasil nilai dari hasil = 75 adalah merokok
3.4 Analisis Kebutuhan Non Fungsional
Analisis 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.4.1 Analisis Kebutuhan Perangkat Lunak
Perangkat lunak yang dibutuhkan untuk implementasi algoritma pada
Game Edukasi Bahaya Merokokini adalah :
1. Sistem Operasi Microsoft Windows 8.
2. Unity version 4.3.4.
3. Adobe Photoshop CS3.
3.4.2 Analisis Kebutuhan Perangkat Keras
Komputer terdiri dari perangkat keras dan perangkat lunak yang saling
keras untuk melakukan suatu tugas tertentu, sehingga dapat menjalankan suatu
sistem di dalamnya.
Perangkat keras minimum bagi pengguna untuk dapat memainkan game
Edukasi Bahaya Merokok 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 50 MB
3.4.3 Analisis Pengguna
Setelah melakukan analisis target user dalam menggunakan game adalah
sebagai berikut :
1. Pengetahuan dan Pengalaman Pengguna
a. Computer Literacy : Memiliki pengalaman dalam mengoperasikan
sebuah komputer
b. System Experience : Memiliki pengetahuan berinteraksi dengan
komputer
c. Aplication Experience : Pernah memainkan game sejenis sebelumnya
d. Skills : Sudah bisa membaca
e. Taks Ekperience : Mengetahui cara menggunakan komputer
f. Native Language or Culture : Bahasa Indonesia
2. Karakteristik Psikologi Pengguna
a. Motivation : Mempunyai motivasi yang cukup dalam menyelesaikan
permainan
b. Pattience : Mempunyai kesabaran dalam menyelesaikan permainan
c. Stress Level : Tidak gampang stress
3.5 Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan
diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan
sistem agar sistem dapat berjalan dengan baik sesuai kebutuhan.
3.6 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
[7].
Berikut ini adalah perancangan proses-proses yang terdapat pada game
Edukasi Bahaya Merokok, yang digambarkan dengan Use Case Diagram yang
dapat dilihat pada gambar 3.7
Gambar 3.7 Use Case Diagram
Use Case terdiri dari tiga bagian yaitu definisi actor, definisi Use Case dan
skenario Use Case.
3.6.1 Definisi Actor
Definisi Actor berfungsi untuk menjelaskan Actor yang terdapat pada Use
Tabel 3.3 Definisi Actor
No Actor Deskripsi
1 Pemain Pengguna atau orang yang
memainkan game.
1.1Definisi Use Case
Definisi Use Case berfungsi untuk menjelaskan fungsi Use Case yang
terdapat pada Use Case Diagram. Definisi Use Case diterangkan pada Tabel 3.2.
Tabel 3.4 Definisi Use Case
No Use Case Deskripsi
1 Memulai Permainan Proses untuk memulai permainan atau Game.
2 Memilih Petunjuk Proses untuk menampilkan petunjuk atau panduan cara bermain.
3 Memilih Aktifitas Proses untuk memilih aktifitas permaianan.
3.6.2 Skenario 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 Use Case Memulai Permaianan Identifikasi
No 1
Nama Memulai permainan
Tujuan Untuk memulai permainan Deskripsi Proses untuk memulai permainan
Aktor Pemain
Skenario Utama
Kondisi Awal Aktor berada di dalam permainan
Aksi Aktor Reaksi Sistem
1. Memulai permainan
2. Menampilkan layar menu utama 3. Memilih menu utama