Tempat/Tgl Lahir : Bandung, 15 April 1990
Jenis Kelamin : Laki - Laki
Status Perkawinan : Belum Menikah
Agama : Islam
Alamat Sekarang : Komplek Bumi Panyileukan Blok C 12 No 11
Bandung
Mobile Phone : 085793122115
Email : alaziz10108008@gmail.com
2. Pendidikan Formal
1996 - 2002 : SD PANYILEUKAN 02 BANDUNG
2002 - 2005 : SMPN 28 BANDUNG
2005 - 2008 : SMAN 25 BANDUNG
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
AL AZIZ
10108008
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
KATA PENGANTAR
Assalamu’alaikum Wr.Wb.
Puji syukur alhamdulillah penulis panjatkan atas kehadirat Allah SWT
sang Pencipta alam semesta, manusia, dan kehidupan beserta seperangkat aturan-
Nya, karena berkat limpahan rahmat, taufiq, hidayah serta inayah-Nya, sehingga
penulis dapat menyelesaikan skripsi yang berjudul ” Pembangunan Aplikasi
Game Selamatkan Masakan Nusantara Indonesia” ini dapat terselesaikan tepat
pada waktunya.
Shalawat serta salam semoga senantiasa tercurahkan kepada baginda Nabi
Besar Muhammad SAW beserta seluruh keluarga dan sahabatnya yang selalu
membantu perjuangan beliau dalam menegakkan Dinullah di muka bumi ini.
Penyusunan skripsi ini adalah merupakan salah satu syarat untuk
memperoleh gelar program Strata 1 Fakultas Teknik dan Ilmu Komputer,
Program Studi Teknik Informatika di Universitas Komputer Indonesia. Dalam
penulisan skripsi ini, tentunya banyak pihak yang telah memberikan bantuan baik
moril maupun materil. Oleh karena itu penulis ingin menyampaikan ucapan
terimakasih yang tiada hingganya kepada :
1. Kepada kedua orang tua, Hamidi (Ayah yang selalu mendukung penulis
dalam berbagai hal, terimakasih ayah), Rismawati (Seorang ibu terbaik,
yang tentunya selalu memberikan segala daya dan upayanya).
2. Bapak Andri Heryandi, S.T., M.T. selaku dosen pembimbing dan penguji
2 yang telah memberikan bimbingan dan dorongan dalam penyusunan
skripsi ini.
3. Bapak Irawan Afrianto, S.T., M.T. selaku penguji 1 yang telah banyak
membantu dalam penyusunan skripsi ini dan Ketua Program Studi Teknik
Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer
Indonesia.
4. Ibu Ednawati Rainarli, S.Si., M.Si. selaku penguji 3 yang telah banyak
membantu dalam penyusunan skripsi ini.
iv
6. Bapak Prof. Dr. H. Denny Kurniadie, Ir., M.Sc. selaku Dekan Program
Studi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer,
Universitas Komputer Indonesia.
7. Bapak Dr. Ir. Eddy Soeryanto Soegoto selaku Rektor Program Studi
Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas
Komputer Indonesia.
8. Seluruh dosen dan karyawan Program Studi Teknik Informatika,
Universitas Komputer Indonesia, atas ilmu, bimbingan dan bantuannya
hingga penulis selesai menyusun skripsi ini.
9. Rekan-rekan di Program Studi Teknik Informatika, Fakultas Teknik dan
Ilmu Komputer, Universitas Komputer Indonesia, khususnya IF-1 2008
yang telah banyak membantu penulis.
Penulis menyadari bahwa skripsi ini belum sempurna, baik dari segi
materi maupun dalam penyajiannya. Untuk itu saran dan kritik yang membangun
dari para pembaca sangat diharapkan dalam penyempurnaan skripsi ini.
Terakhir penulis berharap, semoga skripsi ini dapat memberikan ilmu
yang bermanfaat dan menambah wawasan bagi pembaca, khususnya bagi penulis. Wassalamu’alaikum Wr. Wb.
Bandung, Februari 2014
v
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... xiii
DAFTAR SIMBOL ... xv
DAFTAR LAMPIRAN ... xviii
BAB I PENDAHULUAN... 1
I.1 Latar Belakang Masalah ... 1
I.2 Perumusan Masalah... 2
I.3 Maksud dan Tujuan ... 2
I.4 Batasan Masalah ... 2
I.5 Metodologi Penelitian ... 3
I.6 Sistematika Penulisan ... 4
BAB II TINJAUAN PUSTAKA ... 7
II.1 Permainan ... 7
II.1.1 Definisi Permainan ... 7
II.1.2 Jenis Permainan... 8
II.1.3 Permainan Edukasi ... 10
II.1.4 Permainan Memasak ... 11
II.1.5 Kriteria Permainan ... 12
II.2 Kecerdasan Buatan ... 13
II.2.1 Pengertian Kecerdasan Buatan ... 13
II.2.2 Tujuan Akhir Kecerdasan Buatan ... 13
II.2.3 Kecerdasan Buatan yang digunakan ... 14
II.3 OOP (Object Oriented Programming) ... 15
II.4 Java ... 16
vi
II.10 Visual Paradigm ... 29
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 31
III.1 Analisis Sistem ... 31
III.1.1 Analisis Masalah ... 31
III.1.2 Analisis Permainan ... 31
III.1.3 Analisis Kebutuhan Non Fungsional... 50
III.1.4 Analisis Kebutuhan Fungsional ... 52
III.2 Perancangan Sistem... 92
III.2.1 Perancangan Struktur Menu ... 93
III.2.2 Perancangan Antar Muka ... 93
III.2.3 Perancangan Pesan ... 106
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 109
IV.1 Implementasi Sistem ... 109
IV.1.1 Implementasi Perangkat Keras ... 109
IV.1.2 Perangkat Lunak (Software) ... 109
IV.1.3 Implementasi Aplikasi ... 110
IV.2 Pengujian Sistem ... 110
IV.2.1 Skenario Pengujian Aplikasi ... 111
IV.2.2 Hasil Pengujian (Black Box) ... 112
IV.2.3 Kesimpulan Pengujian (Black Box) ... 115
IV.2.4 Kasus dan Hasil Pengujian (White Box) ... 116
IV.2.5 Pengujian Beta ... 121
IV.2.6 Kuesioner ... 121
IV.2.7 Kesimpulan Pengujian Kuesioner ... 122
BAB V KESIMPULAN DAN SARAN... 125
V.1 Kesimpulan ... 125
127
DAFTAR PUSTAKA
[1] Danny S, Tamtomo, Sandi, Karina Naftali, 57 Resep Masakan Sumatera
dan Jawa, Penerbit PT Media Boga Utama, Cetakan Pertama, Tahun 2011.
[2] T. Sutojo, S.Si, M.Kom.,KecerdasanBuatan, PenerbitAndi, 2011.
[3] Pressman, Software Engineering : A Practioner’s Guide, Fifth edition.
[4] J. Von Neumann and O. Morgenstern, Theory of Games and Economic
Behavior (3d ed. 1953).
[5] http://www.arcademicskillbuilders.com/ di akses tanggal : 01-12-2013
20:01
[6] http://www.games.co.id/ di akses tanggal : 18-01-2014 16:30
[7] Russel, Stuart and Norvig, Peter, 1995, Artificial Intelligence: A Modern
Approach.
[8] Lenat and Feigenbaum, 1995, On The Thresholds Of Knowledge.
[9] Dr. Suyoto, Intelegensi Buatan: Teori dan Pemrograman, Penerbit Gava
Media, Yogyakarta 2004.
[10] Rosa A.S, Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur
dan Berorientasi Objek), Penerbit Modula, Bandung 2011.
[11] Tim Penelitian dan Pengembangan Wahana Komputer, Pemrograman
Java, penerbit salemba infotek, jakarta 2003.
[12] http://www.greenfoot.org/doc di akses tanggal : 01-12-2013 20:05
[13] http://www.sparxsystems.com/about.html di akses tanggal : 01-12-2013
20:07
[14] http://www.visual-paraadigm.com/aboutus/ di akses tanggal : 01-12-2013
1
Kebudayaan adalah ciptaan manusia yang indah. Masakan adalah salah
satu dari kebudayaan yang indah itu. Negara Indonesia yang sangat luas dengan
jumlah sukunya yang banyak telah melahirkan kebudayaan yang sangat beragam
termasuk masakan. Perbedaan budaya yang membuat cara memasak dan meracik
masakan yang berbeda, justru memperkaya khasanah masakan Indonesia [1]
(Danny S, Tamtomo, Sandi, Karina Naftali, 2011).
Keunikan, keanekaragaman dan ciri khas rasa dari masakan nusantara
membuat banyaknya masakan nusantara yang di gemari oleh generasi muda saat
ini. Selain itu generasi muda saat ini banyak yang ingin mencoba membuat sendiri
masakan yang mereka gemari, akan tetapi yang sering menjadi kendala untuk
mempelajari adalah bagaimana cara membuat dan apa saja bahan yang diperlukan
dalam masakan tersebut. Kemudian muncul masalah dalam hal mempelajari
bagaimana tata cara memasak dengan cara yang interaktif dan menarik serta
menghibur. Sehingga akan menumbuhkan rasa keinginan untuk mengaplikasikan
masakan yang mereka gemari.
Game adalah permainan yang menggunakan media elektronik, merupakan
sebuah hiburan berbentuk multimedia yang dibuat semenarik mungkin agar
permain bisa mendapatkan sesuatu sehingga adanya kepuasaan batin. Bermain
game merupakan salah satu sarana pembelajaran. Game edukasi dibuat dengan
tujuan agar game benar-benar dapat mendidik, menambah pengetahuan, serta
menantang dengan adanya algoritma A* di dalam permainan, dan agar tidak
monoton dengan berbedanya konten pada setiap tingkat permainan.
Berdasarkan permasalahan yang dihadapi, permainan dapat menjadi salah
satu media untuk memberikan edukasi tentang tata cara dalam memasak masakan
nusantara Indonesia dan bahan yang digunakan. Sehingga dengan adanya aplikasi
ini dapat membantu generasi muda untuk menumbuhkan rasa keinginan untuk
Dengan permasalahan yang sudah dijelaskan, maka diambil tema tugas akhir
dengan judul “Membangun Aplikasi Game Selamatkan Masakan Nusantara Indonesia”.
I.2 Perumusan Masalah
Berdasarkan uraian pada latar belakang masalah yang telah dijelaskan,
maka perumusan masalah adalah :
1. Bagaimana membangun suatu permainan yang dapat memberikan
pembelajaran memasak kepada generasi muda?
2. Bagaimana membangun suatu permainan yang menantang, tidak
monoton, interaktif, menarik serta menghibur?
I.3 Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan
tugas akhir ini adalah untuk membangun aplikasi game selamatkan masakan
nusantara Indonesia.
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah.
1. Memberikan pembelajaran tentang memasak kepada generasi muda
melalui permainan.
2. Membangun permainan yang menantang, tidak monoton, interaktif,
menarik serta menghibur.
I.4 Batasan Masalah
Agar dalam penulisan ini tidak menyimpang dari permasalahan dan
sasaran yang akan dicapai, maka ada batasan pada masalah yang dibahas. Batasan
masalah yang ditetapkan dalam skripsi ini adalah:
1. Permainan ini mencakup masakaan nusantara Indonesia.
2. Aplikasi permainan yang akan dibangun berbasis desktop.
3. Aplikasi permainan yang akan dibangun bergrafis 2 dimensi.
4. Tingkat permainan dibatasi 3 tingkat permainan dan 3 tingkat memasak
pada setiap akhir permainan.
5. Permainan yang akan dibangun bersifat single player.
6. Artificial Intelligence yang akan diterapkan dalam game ini
Boss burung sehingga memiliki kemampuan untuk mencari rute
terpendek untuk menyerang pemain.
7. Pemodelan data yang dilakukan berbasis Object Oriented Programming
dengan menggunakan UML diagram.
8. Bahasa pemrograman yang akan digunakan adalah Java.
9. Aplikasi game dibangun menggunakan IDE Greenfoot 2.2.1.
I.5 Metodologi Penelitian
Metodologi yang digunakan dalam penulisan tugas akhir ini adalah
sebagai berikut :
1. Tahap 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
Teknik pengumpulan data dengan mengadakan penelitian dan
peninjauan langsung terhadap permasalahan yang diambil.
2. Tahap pembuatan perangkat lunak
Teknik analisis data dalam pembuatan perangkat lunak menggunakan
paradigma perangkat lunak secara waterfall [3] (Pressman, Software
Engineering : A Practioner’s Guide, Fifth edition), yang meliputi beberapa proses diantaranya:
a. Software Requirements Analysis
Proses pengumpulan data yang dibutuhkan dalam pembentukan
perangkat lunak. Menganalisis program yang akan dibangun, fungsi yang
diperlukan, dan kinerja program.
b. Design
Proses penerjemahan dari data yang telah dianalisis kedelam bentuk
struktur data, arsitektur perangkat lunak, antarmuka, dan algoritma detail.
Proses penerjemahan data atau pemecahan masalah yang telah dirancang
kedalam bahasa pemograman tertentu.
d. Testing
Melakukan pengujian terhadap perangkat lunak yang telah dibangun
untuk mengungkap kesalahan dan menguji perangkat lunak untuk
memastikan proses data yang dimasukan sesuai dengan hasil aktual yang
dibutuhkan.
e. Support
Tahap akhir dimana suatu perangkat lunak yang sudah selesai dapat
mengalami perubahan–perubahan karena kesalahan yang telah ditemukan
atau penambahan sesuai dengan permintaan user.
Gambar I.1 Model Waterfall I.6 Sistematika Penulisan
Sistematika penulisan ini disusun sebagai gambaran umum tentang
penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai
berikut :
BAB I PENDAHULUAN
Bab ini menguraikan tentang latar belakang permasalahan dan identifikasi
masalah yang dihadapi, menentukan maksud dan tujuan dibuat aplikasi ini,
BAB II. LANDASAN TEORI
Bab ini berisi pembahasan berbagai macam konsep dasar dan teori-teori
yang menunjang dan ada kaitannya dengan topik tugas akhir yang diambil.
BAB III. ANALISIS DAN PERANCANGAN SISTEM
Bab ini menganalisis masalah yang dihadapi dalam membangun aplikasi
game selamatkan masakan nusantara Indonesia.
BAB IV. IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisi tentang perancangan sistem dan tahapan-tahapan yang
dilakukan dalam menerapkan sistem yang telah dirancang.
BAB V. KESIMPULAN DAN SARAN
Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan
7
II.1.1 Definisi Permainan
Permainan terdiri atas sekumpulan peraturan yang membangun situasi
bersaing dari dua sampai beberapa orang atau kelompok dengan memilih strategi
yang dibangun untuk mengoptimalkan kemenangan sendiri atau meminimalkan
kemenangan lawan. Peraturan menentukan kemungkinan tindakan untuk setiap
pemain, sejumlah keterangan diterima setiap pemain sebagai aturan dalam
bermain, dan sejumlah kemenangan atau kekalahan dalam berbagai situasi [4] (J.
Von Neumann and O. Morgenstern, 1953).
Permainan video umumnya menyediakan sistem penghargaan,
misalnya score (nilai) yang dihitung berdasarkan tingkat keberhasilan yang
dicapai dalam menyelesaikan tugas-tugas yang ada di dalam permainan video
tersebut. Sistem elektronik yang digunakan untuk menjalankan permainan video
disebut platform, contohnya adalah komputer pribadi (personal computer)
ataupun konsol permainan (game console).
1. Permainan komputer (Computer Game)
Permainan computer adalah permainan video yang di mainkan pada
komputer pribadi, dan bukan pada konsol permainan. Permainan komputer
telah berevolusi dari sistem grafis sederhana menjadi sangat kompleks dan
mutakhir.
Permainan online adalah jenis permainan video atau permainan komputer
dengan menggunakan jaringan internet sebagai media interaksinya.
Permainan online terdiri dari dua unsur utama, yaitu server dan client
(klien). Server adalah penyedia layanan permainan yang merupakan dasar
agar klien yang terhubung dapat memainkan permainan dan dapat
melakukan komunikasi dengan baik. Suatu server pada prinsipnya hanya
pelaksana permainan dan menghubungkan klien-klien. Sedangkan klien
Server. Contoh permainan online adalah Dragon nest, Gunbound, Ragnarok
Online, Seal dan lain-lain.
2. Permainan Konsol (Game Console)
Permainan konsol adalah sebuah bentuk media interaktif yang berfungsi
sebagai hiburan. Permainan ini pada umumnya berisi gambar-gambar dan
suara-suara yang dihasilkan oleh sebuah alat permainan konsol, dan
ditampilkan pada sebuah televisi atau peralatan audio visual yang sejenis.
Permainan ini sendiri dapat dikendalikan dengan menggunakan alat kendali
yang dipegang yang terhubung pada konsol yang dinamakan controller
(pengendali). Pengendali ini pada umumnya terdiri dari sejumlah
tombol-tombol dan kendali arah yang masing-masing bagian memiliki fungsi
tersendiri. Fungsi dari alat pengendali tersebut untuk mengendalikan
maupun berinteraksi dengan gambar yang ada di layar.
II.1.2 Jenis Permainan
Permainan dari tahun pertama dibuat sampai sekarang semakin banyak
jenis dan teknologi yang digunakan semakin canggih. Dari semua permainan yang
telah dibuat di dunia, permainan tersebut dikelompokkan menjadi beberapa jenis.
Beberapa contoh jenis-jenis permainan yang sering dimainkan dikelompokkan
sebagai berikut:
a. Action Game (Permainan Aksi)
Jenis permainan ini memiliki fitur utama berupa banyaknya aksi di mana
pemain harus memiliki keterampilan dengan reaksi yang cepat untuk
menghindari musuh atau menghindari rintangan. Pengembang permainan
jenis ini perlu memastikan permainan yang dibuat dimaksimalkan sehingga
pemain memiliki pengalaman dalam bermain yang baik, dan tidak
terganggu oleh waktu proses yang lama.
Contoh: Metal Gear Solid
b. Adventure Game (Permainan Bertualang)
Jenis permainan ini pada umumnya membuat pemain harus berjalan
atau gua yang berkelok dan planet yang jauh. Pemain melakukan navigasi
terhadap suatu tempat untuk mencari pesan-pesan rahasia dan memperoleh
objek yang memiliki kemampuan yang bervariasi. Untuk membuat
permainan ini membutuhkan perencanaan yang akurat sehingga memiliki
alur cerita yang menarik bagi pemain.
Contoh: Tomb Raider
c. Fighting Game (Permainan Bertarung)
Jenis permainan ini pada umumnya pemain bertarung dengan lawan
tandingnya dengan cara memukul, menendang, atau menggunakan jurus
sampai lawan tandingnya kalah.
Contoh: Tekken, Mortal Kombat, dan lain-lain.
d. Sport Game (Permainan Olahraga)
Permainan jenis ini berupa kompetisi antara dua pemain atau lebih, di
mana pemain dapat berupa individual atau kelompok. Contoh permainan
jenis ini adalah sepakbola, bola basket, tenis, bilyard, dan lain-lain.
Permainan ini tergantung seberapa lama waktu yang dibutuhkan dalam satu
pertandingan.
Contoh: Pro Evolution Soccer
e. Role Playing Game (Permainan Beralur)
Permainan ini seringkali berupa multi-player (Lebih dari satu pemain) di
mana setiap pemain memiliki karakter dengan kemampuan, kekuatan, dan
kelemahan yang berbeda. Pemain saling berkompetisi, berinteraksi, dan
bertempur satu sama lain. Tampilan grafik yang berbeda untuk setiap
karakter pemain dan memiliki storyline (alur cerita) yang mendebarkan
sehingga memberikan pengalaman yang menarik dan berbeda di dalam
bermain.
Contoh: Final Fantasy
f. Strategy Game (Permainan Strategi)
Jenis permainan ini pada umumnya pemain menggunakan taktik dan
tentara dan alat perang menggunakan sumber daya yang ada secara
bijaksana dan teliti.
Contoh: Command & Conquer
g. Platform Game
Permainan ini mengharuskan pemain mengarahkan suatu obyek dengan
melalui berbagai tahap atau tingkatan area untuk menyerang musuh dan
menghindar terhadap serangan. Jenis permainan ini hampir serupa dengan
permainan aksi, tetapi aksi yang dilakukan tidak secepat permainan aksi.
Contoh: Sonic The Hedgehog & Mario Bros
h. Puzzle Game (Permainan Teka-teki)
Permainan ini pada umumnya membuat pemain menggunakan
kemampuan berpikirnya sebagai pengganti keterampilan reaksi yang cepat
karena terdapat rahasia yang perlu dipecahkan. Permainan ini lebih bersifat
statis dibanding permainan aksi. Pembuatan permainan jenis ini seringkali
ditunjang dengan algoritma kecerdasan buatan.
Contoh: 7 Wonders of The Ancient World, Zuma, dan lain-lain.
i. Simulation Game (Permainan Simulasi)
Jenis Permainan ini memberikan pengalaman atau interaksi secara mirip
dengan kendaraan aslinya, meskipun terkadang kendaraan tersebut masih
berupa contoh atau bahkan fiktif, tapi ada penekanan khusus pada detail dan
pengalaman nyata menggunakan kendaraan tersebut.
Contoh: Gran Turismo
II.1.3 Permainan Edukasi
Permainan edukasi merupakan permainan yang memberikan pendekatan
kepada pengguna untuk belajar. Pengguna dari permainan ini ditujukan kepada
anak taman kanak-kanak hingga sekolah dasar. Permainan edukasi ini biasanya
berisi permainan berhitung dan permainan mengenal kata, namun masih ada juga
edukasi yang lain.
Permainan edukasi online adalah permainan edukasi yang memanfaatkan
fasilitas online (terhubung dengan internet) dalam mengaplikasikannya. Berikut
(http://www.arcademicskillbuilders.com/). Terdapat beberapa jenis permainan
edukasi dengan berbagai kategori, diantaranya:
1. Penjumlahan
2. Pengurangan
3. Perkalian
4. Pembagian
5. Aljabar
6. Desimal
7. Pecahan
8. Bilangan Bulat
9. Uang
10. Waktu
11. Geografi
12. Seni Berbahasa
13. Mengetik
Permainan yang digunakan dalam proses pembelajaran dan dalam
permainan harus mengandung unsur mendidik atau nilai-nilai pendidikan. Untuk
pemilihan permainan diusahakan agar seluruh aspek yang dimiliki anak dapat
berkembang dengan baik, seperti dari segi kognitif, afektif dan juga psikomotorik.
Karena itu perlu ditunjang alat bantu yang tepat saat bermain.
II.1.4 Permainan Memasak
Permainan memasak merupakan permainan yang memberikan pendekatan
kepada pengguna untuk belajar tentang memasak. Pengguna dari permainan ini
ditujukan kepada anak yang memiliki kegemaran memasak. Permainan memasak
biasanya berisi tentang tata cara memasak, bumbu yang digunakan, cara
mengolah masakan yang benar. Contoh untuk permainan memasak online dapat
dijumpai pada [6] (http://www.games.co.id/).
II.1.5 Kriteria Permainan
Sudah banyak pihak Indonesia yang telah serius mengembangkan
dan kegiatan pendidikan. Beberapa kriteria pembuatan permainan pembelajaran
yang baik sebagai berikut :
a. Menarik dan Menantang
Dari judul, awalan, dan isi berikan kesan yang menarik dan menantang
bagi pemain agar pemain merasa sedang melakukan misi tertentu.
b. Tujuan Pembelajaran Jelas
Pemain haru mengetahui tujuan setiap langkah dari permainan tersebut
sehingga menciptakan motivasi belajar bagi pemain. Tujuan pembelajaran
harus ditentukan sehingga tidak terlalu mudah dan tidak terlalu sulit.
c. Persepsi yang baik
Buatlah kondisi yang nyaman dan dapat dimengerti pemain pada saat
memulai permainan.
d. Komunikatif
Setiap yang ditampilkan di dalam permainan harus menjadi komunikasi
yang baik dengan pemain agar tujuan pembelajaran dipahami pemain.
e. Ilustrasi dan Animasi Jelas
Diusahakan ilustrasi dan animasi yang terdapat dalam permainan
mendekati kenyataan, sehingga pemain akan merasa dalam kondisi yang
nyata dan mudah dalam membayangkan kembali.
f. Evaluasi dan Umpan Balik Kreatif
Berikan kepada pemain tes yang kreatif berupa misi, sehingga pemain
tidak sadar bahwa sedang dalam proses pembelajaran dan berikan umpan
balik yang kreatif, dapat berupa nilai atau hadiah sehingga pemain memiliki
motivasi untuk memainkan kembali.
II.2 Kecerdasan Buatan
II.2.1 Pengertian Kecerdasan Buatan
Kecerdasan buatan adalah ilmu dan rekayasa, yang membuat mesin
mempunyai kecerdasan tertentu khususnya program komputer yang cerdas.
dalam dunia. Ada beberapa macam jenis dan derajat intelegensi untuk manusia,
binatang dan beberapa mesin.
AI berhubungan dengan penggunaan komputer untuk melaksanakan tugas
atau menyelesaikan masalah yang memerlukan kecerdasan atau kepintaran. Pada
umumnya komputer memerlukan aplikasi atau perangkat lunak untuk
melaksanakan tugas atau menyelesaikan masalah, maka aplikasi atau perangkat
lunak yang berdasarkan teknologi AI di perlukan. Kecerdasan perlu dilihat dari
berbagai sudut pandang, pemahaman, inferensi, daya penjelasan, pembelajaran,
komunikasi dan lain-lain.
Menurut Stuart, Russel, Peter dan Norvig mengelompokkan definisi
kecerdasan buatan dalam empat kategori [7], yaitu :
1. Sistem yang dapat berfikir seperti manusia
2. Sistem yang dapat bertingah laku seperti manusia
3. Sistem yang dapat berfikir secara rasional
4. Sistem yang dapat bertingkah laku rasional
II.2.2 Tujuan Akhir Kecerdasan Buatan
Menurut Lenat dan Feigenbaum (1992) [8], terdapat sembilan tujuan AI
yaitu:
a. Memahami kognisi manusia.
Bagaimana manusia dalam menyelesaikan masalah, memiliki ingatan
pengetahuan yang mendalam, belajar, membuat keputusan, dan lain-lain.
b. Otomatisai biaya-efektif
Menggantikan manusia dalam tugas-tugas intelegensi.
c. Penguatan intelegensi biaya dan efektif
Membangun sistem untuk membantu manusia berpikir lebih baik, lebih
cepat, lebih dalam, dan lain-lain.
d. Intelegensi manusia super
Membangun program yang mempunyai kemampuan untuk melebihi
intelegensi manusia.
e. Problem-solving umum
f. Wacana koheren
Komunikasi dengan manusia mengguanakan bahasa, alami.
g. Otonomi
Mempunyai sistem intelegensi yang beraksi atas inisiatif sendiri.
h. Belajar (induksi)
Sistem sebaiknya dapat untuk memperoleh data sendiri, dan tau
bagaimana memperolehnya.
i. Informasi
Simpan informasi dan mengetahui bagaimana untuk mengambil
informasi.
II.2.3 Kecerdasan Buatan yang digunakan
Algoritma A* (A Star) merupakan algoritma Best First Search yang
menggabungkan Uniform Cost Search dan Greedy Best First Search. Biaya yang
diperhitungkan didapat dari biaya sebenarnya ditambah dengan biaya perkiraan.
Dalam notasi matematika dituliskan sebagai : f(n) = g(n) + h(n). Dengan
perhitungan biaya seperti ini, algoritma A* (A Star) adalah complete dan optimal.
Sama dengan algoritma dasar Best First Search, algoritma A* (A Star) ini
juga menggunakan OPEN dan CLOSED. Terdapat tiga kondisi bagi setiap
suksesor yang dibangkitkan, yaitu : sudah berada di OPEN, sudah berada di
CLOSED, dan tidak berada di OPEN maupun CLOSED.
Pada ketiga kondisi tersebut diberikan penanganan yang berbeda-beda.
Jika suksesor sudah berada di OPEN, maka dilakukan pengecekan apakah perlu
pengubahan parent atau tidak tergantung pada nilai g nya melalui parent lama
atau parent baru. Jika melalui parent baru memberikan nilai g yang lebih kecil,
maka dilakukan pengubahan parent. Jika pengubahan parent dilakukan, maka
dilakukan pula perbaruan (update) nilai g dan f pada suksesor tersebut. Dengan
perbaruan ini, suksesor tersebut memiliki kesempatan yang lebih besar untuk
terpilih sebagai simpul terbaik (best node).
Jika suksesor sudah pernah berada di CLOSED, maka akan dilakukan
perbaruan nilai g dan f pada suksesor tersebut serta pada semua “anak cucunya”
yang sudah pernah berada di OPEN. Dengan perbaruan ini, maka anak cucunya
tersebut memiliki kesempatan lebih besar untuk terpilih sebagai simpul terbaik
(best node).
Jika suksesor tidak berada di OPEN maupun CLOSED, maka suksesor
tersebut dimasukkan ke dalam OPEN. Tambahkan suksesor tersebut sebagai
suksesornya best node. Hitung biaya suksesor tersebut dengan rumus f = g + h [9]
(Dr. Suyoto, Intelegensi Buatan: Teori dan Pemrograman).
II.3 OOP (Object Oriented Programming)
Pemrograman berorientasi objek adalah suatu strategi pembangunan
perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan
objek yang berisi data dan operasi yang diberlakukan terhadapnya. Pemrograman
berorientasi objek merupakan suatu cara bagaimana system perangkat lunak
dibangun melalui pendekatan objek secara sistematis. Pemrograman berorientasi
objek didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas.
Pemrograman berorientasi objek meliputi rangkaian aktivitas analisis berorientasi
objek, perancangan berorientasi objek, pemrograman berorientasi objek dan
pengujian berorientasi objek.
Pada saat ini, pemrograman berorientasi objek banyak dipilih karena
metodologi lama banyak menimbulkan masalah seperti adanya kesulitan pada saat
transformasi hasil dari satu tahap pengembangan ke tahap berikutnya, misalnya
pada metode pendekatan terstruktur, jenis aplikasi yang dikembangkan saat ini
berbeda dengan masa lalu. Aplikasi yang dikembangkan saat ini sangat beragam
(aplikasi bisnis, real-time, utility, dan sebagainya) dengan platform yang
berbeda-beda, sehingga menimbulkan tuntutan kebutuhan metodologi pengembangan yang
dapat mengakomodasi ke semua jenis aplikasi tersebut [10] (Rosa A.S, Modul
Pembelajaran Rekayasa Perangkat Lunak).
Keuntungan menggunakan pemrograman berorientasi objek adalah
sebagai berikut:
1. Meningkatkan produktivitas
3. Kemudahan pemeliharaan
4. Adanya konsistensi
5. Meningkatkan kualitas perangkat lunak
Berikut ini beberapa bahasa pemrograman yang sudah menggunakan
konsep pemrograman berbasis objek adalah:
1. C++
2. Visual C++
3. Visual Basic
4. C#
5. PHP
6. Java
II.4 Java
Java adalah bahasa pemrograman yang sederhana, berorientasi-objek,
bertipe statik, terkompilasi, multi-threaded, garbage collected, bebas arsitektur,
robust (tangguh), aman, dan dapat di perluas.
a. Sederhana
Pengembangan java banyak membuang fitur-fitur yang tidak di perlukan
seperti yang dimiliki oleh bahasa pemrograman tingkat tinggi lainnya.
b. Berorientasi-objek
Seperti halnya C++, java menggunakan kelas-kelas untuk mengelola
kode ke dalam modul-modul logika.
c. Bertipe statik
Semua objek yang digunakan dalam program harus di deklarasikan
sebalum digunakan.
d. Terkompilasi
Sebelum dapat menjalankan program yang di tulis dengan bahasa
e. Multi-treaded
Program java dapat berisi eksekusi multiple treadeds, yang
memungkinkan program mengulas citra pada layar pada satu thread,
sementara tetap menerima masukan dari keyboard pada thread utamanya.
f. Garbage collected (pembuang sampah)
Program java menyingkirkan sendiri ‘sampah-sampah’ yang tak berguna.
g. Bebas arsitektur
Pada dasarnya, java tidak dirancang untuk prosesor ataupun sistem
operasi tertentu.
h. Robust (tangguh)
Karena interpreter java memeriksa seluruh akses sistem yang dilakukan
program, maka program java tidak akan membuat sistem menjadi crash.
i. Aman
Sistem java hanya memverifikasi seluruh akses memori tetapi juga
menjamin bahwa tidak ada virus yang ikut pada applet yang sedang
berjalan.
j. Dapat diperluas
Program java mendukung metode native yakni fungsi-fungsi yang
dituliskan dalam bahasa lain, biasanya C++ [11] (Tim Penelitian dan
Pengembangan Wahana Komputer, Pemrograman Java).
II.5 UML (Unified Modeling Language)
Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah
menjadi standar dalam industri untuk visualisasi, merancang dan
mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar
untuk merancang model sebuah sistem.
Dengan menggunakan UML kita dapat membuat model untuk semua jenis
aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras,
sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman
apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep
berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian,
UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C.
Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan
syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk
menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna
tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut
dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah
ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh
OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented
Software Engineering).
UML menyediakan macam diagram yang dapat digunakan untuk
memodelkan aplikasi berorientasi objek yang dibuat (Rosa A.S, Modul
Pembelajaran Rekayasa Perangkat Lunak), yaitu :
1. use case diagram untuk memodelkan proses bisnis.
2. class diagram untuk memodelkan struktur kelas.
3. statechart diagram untuk memodelkan perilaku objects di dalam sistem.
4. activity diagram untuk memodelkan perilaku Use Cases dan objects
di dalam system.
5. sequence diagram untuk memodelkan pengiriman pesan (message) antar
objects.
6. collaboration diagram untuk memodelkan interaksi antar objects.
7. component diagram untuk memodelkan komponen object.
8. deployment diagram untuk memodelkan distribusi aplikasi.
II.6 Greenfoot
Greenfoot merupakan software untuk pemrograman OOP (Object
Oriented Programming), didukung dengan aplikasi grafis berbasiskan
pemrograman Java. Greenfoot diprakarsai oleh Michael Kolling pada 2003.
Tujuan dibuatnya Greenfoot ini awalmulanya adalah menarik minat anak-anak
untuk belajar memprogram.
Menggunakan Greenfoot sama seperti memprogram biasa berbentuk teks.
seperti class browser, editor, dan compiler. Greenfoot juga mendukung
bahasa Javasecara penuh dan perangkat tersebut membuat agan lebih mudah
dalam memahami konsep OOP. Dalam Greenfoot terdapat proyek yang
dinamakan scenario. Dalam proyek tersebut, kita bisa membuat dua macam tipe
class dari library Greenfoot, yaitu class world dan actor. World merupakan latar
dari game yang akan dibuat. Class actor adalah kelas yang berfungsi sebagai
karakter pada game yang akan kita buat [12] (http://www.greenfoot.org/doc).
Tabel II.1 Greenfoot
World Metode World tersedia untuk world.
Actor Metode actor tersedia untuk semua
turunan actor.
Greenfoot Digunakan untuk berkomunikasi dengan
lingkungan Greenfoot sendiri.
MouseInfo Memberikan informasi mouse terakhir.
GreenfootImage Untuk presentasi dan manipulasi gambar.
GreenfootSound Untuk mengendalikan pemutaran suara.
Tabel II.2 Penjelasan Kelas Greenfoot
Class Actor
Actor() Konstruktor Actor.
void act() Metode act ini dipanggil oleh kerangka
Greenfoot memberikan kesempatan
untuk melakukan beberapa tindakan
objek.
protected void addedToWorld (World
world)
Metode ini dipanggil oleh system
Greenfoot ketika objek telah dimasukkan
GreenfootImage getImage() Mengembalikan gambar yang digunakan untuk mewakili actor ini.
protected List
getIntersectingObjects(Class cls)
Mengembalikan semua objek yang
berpotongan objek ini.
protected List
getNeighbours(int distance, boolean diagonal, Class cls)
Para tetangga mengembalikan ke objek
ini pada jarak yang diberikan.
protected ListgetObjectsAtOffset(int
dx, intdy, Class cls)
Mengembalikan semua objek yang
berpotongan dengan lokasi yang
diberikan (relative terhadap lokasi obyek
ini).
protected List getObjectsInRange(int
r, Class cls)
Mengembalikan semua objek dalam
jangkauan 'r' di sekitar objek ini.
protected Actor
getOneIntersectingObject(Class cls)
Mengembalikan sebuah objek yang
bersimpangan objek ini.
protected Actor
getOneObjectAtOffset(int dx, intdy, Class cls)
Mengembalikan satu benda yang terletak
di sel tertentu (relative terhadap lokasi
objek ini).
intgetRotation() Mengembalikan rotasi yang ada pada objek.
World getWorld() Mengembalikan world pada objek ini
berada.
intgetX() Mengembalikan x koordinat pada objek
lokasi saat ini.
intgetY() Mengembalikan x koordinat pada objek
lokasi saat ini.
other) bersimpangan dengan yang diberikan
objek.
void move(int distance) Memindahkan actor pada jarak tertentu
ke arah saat dia menghadap.
void setImage(GreenfootImage image) Mengatur gambar untuk objek ini untuk
gambar tertentu.
voidsetImage(String filename) Mengatur gambar untuk objek ini dari file gambar.
voidsetLocation(int x, int y) Menetapkan lokasi baru untuk objek ini. voidsetRotation(int rotation) Set rotasi objek.
void turn(int amount) Memutar actor ini dengan jumlah yang
ditentukan (dalam derajat).
void turnTowards(int x, int y) Memutar actor untuk menghadap menuju
lokasi tertentu.
Class World
World(intworldWidth, intworldHeight, intcellSize)
Konstruktor world baru.
World(intworldWidth,
intworldHeight, intcellSize, boolean
bounded)
Membangun sebuah world baru dengan
pilihan untuk membuat world yang tak
terbatas di mana actor dapat meninggalkan
dunia.
void act() Act pada metode world. Dipanggil sekali
per tindakan.
void addObject(Actor object, int x,
int y)
Tambahkan actor kepada world.
GreenfootImagegetBackground() Mengembalikan gambar world latar
intgetCellSize() Mengembalikan ukuran sel (dalam pixel).
Color getColorAt(int x, int y) Mengembalikan warna di pusat sel.
intgetHeight() Mengembalikan tinggi dunia (dalamjumlahsel).
List getObjects(Class cls) Mendapatkan semua benda di dunia.
List getObjectsAt(int x, int y, Class
cls)
Mengembalikan semua benda di sel yang
diberikan.
intgetWidth() Mengembalikan lebar world (dalam jumlah sel).
intnumberOfObjects() Mendapatkan jumlah actor saat ini di dunia.
void removeObject(Actor object) Menghapus objek dari seluruh dunia.
void removeObjects(Collection
objects)
Menghapus daftar bendadari seluruh
dunia.
void repaint() Mengecatulang dunia.
void setActOrder(Class... classes) Mengatur urutan tindakan objek di dunia.
void setBackground(GreenfootImage
image)
Mengatur gambar latar belakang untuk
dunia.
void setBackground(String filename) Mengatur gambar latar belakang untuk
dunia dari file gambar.
voidsetPaintOrder(Class... classes) Mengatur urutan cat objek di dunia.
void started() Disebut oleh system Greenfoot ketika
eksekusi telah dimulai.
void stopped() Disebut oleh system Greenfoot ketika
eksekusi telah berhenti.
Actor getActor() Kembali aktor (jika ada) bahwa perilaku mouse saat ini berhubungan dengan.
intgetButton() Kembali pemeran (jika ada) bahwa perilaku mouse saat ini berhubungan
dengan.
intgetClickCount() Jumlah mouse klik pada mouse ini.
intgetX() X posisi saat ini pada kursor mouse.
intgetY() Y posisi saat ini pada kursor mouse.
StringtoString() Mengembalikan representasi string info
acara mouse ini.
Class Greenfoot
Greenfoot() Konstruktor.
static void delay(int time) Penundaan eksekusi oleh sejumlah
langkah-langkah di waktu. Ukuran satu
langkah waktu ditentukan oleh kecepatan
slider.
static String getKey() Mendapatkan kunci paling baru-baru ini
ditekan sejak terakhir kali metode ini
disebut.
static String getMicLevel() Mendapatkan tingkat masukan mikrofon.
static MouseInfogetMouseInfo() Kembali sebuah objek dengan informasi
tentang keadaan mouse.
static intgetRandomNumber(int
limit)
Kembali nomor acak antara 0 (inklusif)
dan limit (eksklusif).
static booleanisKeyDown(String
keyName)
Periksa apakah diberikan kunci saat ini
ditekan ke bawah.
obj) ditekan ke bawah.
static
booleanmouseDragEnded(Object
obj)
Benar jika mouse drag telah berakhir.
static booleanmouseDragged(Object
obj)
True jika mouse telah menyeret pada
objek tertentu.
static booleanmouseMoved(Object
obj)
True jika mouse telah dipindahkan pada
objek tertentu.
static booleanmousePressed(Object
obj)
Benar mouse ditekan pada objek tertentu.
static void playSound(String
soundFile)
Memutar suara dari file.
static void setSpeed(int speed) Atur kecepatan pelaksanaan simulasi.
static void setWorld(int speed) Menetapkan dunia ke orang yang
diberikan.
static void start() Menjalankan (atau melanjutkan) simulasi.
static void stop() Menghentikan simulasi.
Class GreenfootImage
GreenfootImage(GreenfootImage image)
Membuat GreenfootImage dari
GreenfootImage lain.
GreenfootImage(int width, int height)
Membuat gambar (transparan) kosong
dengan ukuran tertentu.
GreenfootImage(String filename) Membuat gambar dari file gambar.
GreenfootImage(String string, int size,
Color foreground, Color background)
Membuat gambar dengan string tertentu
diambil sebagai teks menggunakan ukuran
font, warna latar depan dan warna latar
void clear() Menghapus gambar. voiddrawImage(GreenfootImage
image,
Menggambar garis, menggunakan warna
gambar saat ini, antara poin (x 1, y1) dan
(x 2, y2).
void drawOval(int x, int y, int width,
int height)
Menggambar oval dibatasi oleh persegi
panjang tertentu dengan warna gambar
saat ini.
void drawPolygon(int[]
xPoints, int[] yPoints,
intnPoints)
Menarik sebuah poligon tertutup yang
didefinisikan oleh array x dan y koordinat.
void drawRect(int x, int y, int width,
int height)
Menarik garis dari persegi panjang
tertentu.
void drawShape(Shape shape) Menggambar bentuk langsung pada
gambar.
void drawString(String string, int x,
int y)
Menggambar teks yang diberikan oleh
string tertentu, menggunakan saat ini font
dan warna.
void fill() Mengisi seluruh gambar dengan warna
gambar saat ini.
void fillOval(int x, int y, int width,
int height)
Isi oval dibatasi oleh persegi panjang
tertentu dengan warna gambar saat ini.
void fillPolygon(int[] xPoints,
int[] yPoints, intnPoints)
Mengisi poligon tertutup yang
didefinisikan oleh array x dan y koordinat.
int height)
void fillShape(Shape shape) Menggambar bentuk diisi langsung pada
gambar.
BufferedImagegetAwtImage() Kembali BufferedImage yang punggung
GreenfootImage ini.
ColorgetColor() Kembali warna gambar saat ini.
Color getColorAt(int x, int y) Kembali warna di pixel tertentu.
Font getFont() Mendapatkan font yang sekarang.
intgetHeight() Kembali tinggi gambar.
intgetTransparency() Kembali transparansi gambar (kisaran 0 hingga 255).
intgetWidth() Kembali lebar gambar.
void mirrorHorizontally() Cermin gambar horizontal (Sandal di
sekitar sumbu-x).
void mirrorVertically() Cermin gambar vertikal (Sandal di sekitar
sumbu y).
void rotate(int degrees) Berputar gambar ini di sekitar pusat.
void scale(int width, int height) Skala gambar ini untuk ukuran yang baru.
void setColor(Color color) Mengatur warna gambar saat ini.
void setColorAt(int x, int y, Color
color)
Menyetel warna di pixel diberikan dengan
warna tertentu.
void setFont(Font f) Menyetel font yang sekarang.
void setTransparency(int t) Mengatur transparansi gambar (kisaran 0
hingga 255).
dari gambar ini.
Class GreenfootSound
GreenfootSound(String filename) Membuat suara baru dari file tertentu. intgetVolume() Mendapatkan volume saat ini suara, antara
0 (off) dan 100 (paling keras).
booleanisPlaying() True jika suara sedang diputar.
void pause() Berhenti suara saat ini jika ia sedang
bermain.
void play() Mulai bermain suara ini.
void playLoop() Memainkan suara ini berulang kali dalam
satu lingkaran.
void setVolume(int level) Mengatur volume saat ini suara antara 0
(off) dan 100 (paling keras).
void stop() Berhenti bermain suara ini jika ia sedang
bermain.
String toString() Mengembalikan representasi string suara
ini berisi nama file dan apakah itu saat ini
bermain atau tidak.
II.7 Adobe Photoshop
Adobe Photoshop adalah software yang dibuat oleh perusahaan Adobe
System, yang di khususkan untuk pengeditan foto atau gambar dan pembuatan
effect. Perangkat lunak ini banyak digunakan oleh Fotografer Digital dan
perusahaan iklan sehingga dianggap sebagai pemimpin pasar (market leader)
untuk perangkat lunak pengolah gambar. 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
Adobe 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 layanan special effect seperti background, tekstur, dan lain-lain untuk
keperluan televisi, film, dan situs web [12] (Blues Kim, Photodhop CS3
Accelerated).
II.8 Corel Draw
Corel Draw merupakan salah satu aplikasi pengolah gambar berbasis
vector yang banyak dipakai oleh pengguna PC. Karena berbagai kemudahan dan
keunggulan yang dimiliki oleh corel draw, maka corel draw sering dimanfaatkan
untuk desktop publishing, percetakan, dan bidang lain yang memerlukan
pemrosesan visual.
Keunggulan mengolah gambar berbasis vector adalah ukuran hasil akhir
yang dapat ditekan seminimal mungkin namun dengan kualitas yang tidak kalah
dengan gambar berbasis raster atau bitmap.
Sebenarnya ada banyak sekali software desain grafis dan pengolah gambar
berbasis vector yang bisa kita gunakan,misalnya saja diantaranya adalah corel
draw, photoshop, freehand, adobe ilustrator dll. Namun corel draw merupakan
program paling populer yang sering dimanfaatkan. Selain karena tampilannya
yang user friendly dan mudah dipelajari, corel draw juga mempunyai berbagai
keunggulan - keunggulan lain yang sangat bermanfaat.
II.9 Enterprise Architect
Spark sistem mengkhususkan diri dalam kinerja tinggi dan alat-alat
pemodelan visual scalable untuk perencanaan, desain dan konstruksi sistem
perangkat lunak intensif.
Dengan pelanggan di industri mulai dari Teknik otomotif dan
kedirgantaraan untuk keuangan, pertahanan, pemerintah, hiburan dan
telekomunikasi, sistem Sparx adalah vendor terkemuka solusi inovatif
Anggota memberikan kontribusi dari objek manajemen grup (OMG), sistem
Sparx berkomitmen untuk mewujudkan potensi pembangunan berbasis model
yang didasarkan pada standar terbuka.
Produk unggulan dari perusahaan, arsitek Enterprise, telah menerima
berbagai penghargaan sejak dirilis komersial pada Agustus 2000. Sekarang pada
versi 10, arsitek Enterprise adalah alat desain pilihan untuk 300.000 pengguna
terdaftar di seluruh dunia.
SparX arsitek Enterprise sistem yang digunakan oleh perusahaan-perusahaan
dari semua ukuran dari organisasi multi-nasional besar, terkenal untuk perusahaan
independen yang lebih kecil dan konsultan. Arsitek Enterprise juga digelar di
berbagai industri termasuk: dirgantara, perbankan, pengembangan web, rekayasa,
keuangan, Kedokteran, militer, penelitian, akademisi, transportasi, ritel, utilitas
(gas, listrik dll), teknik elektro dan banyak lagi. Hal ini digunakan secara efektif
untuk UML dan tujuan pelatihan arsitektur bisnis di banyak perguruan tinggi
terkemuka dan Universitas di seluruh dunia [13]
(http://www.sparxsystems.com/about.html).
II.10 Visual Paradigm
Visual paradigma internasional terus-menerus berupaya memberdayakan
organisasi untuk mengembangkan aplikasi berkualitas — lebih cepat, lebih baik
dan lebih murah. Kami membantu pelanggan kami untuk memahami organisasi
mereka dan menerjemahkan kebutuhan ke dalam perangkat lunak kualitas dengan
alat yang kaya Terpilih dan mudah digunakan.
Seperti kata pepatah, a picture is bernilai seribu kata. Kita melihat visual
pemodelan cara yang bagus untuk berkomunikasi secara efisien, khususnya
selama masa krisis proyek. Itu membuat kolaborasi antara orang-orang terampil
dalam berbagai bidang efektif dan bermanfaat. Jadi mengapa tidak membiarkan
Deskripsi tekstual mengambil kursi belakang dan dukungan visual lebih ramah
waktu untuk melakukan pekerjaan yang sama, jika tidak lebih baik?
Kita juga melihat bahwa ada model perangkat lunak seringkali kurang
ideal. Mereka mungkin terlalu mahal. Atau mereka tidak memiliki kemudahan
yakin ada pengguna yang dapat memilih untuk pemodelan visual dalam Roh
tetapi belum tentu dalam praktek. Ini adalah di mana alat-alat kami datang untuk
mengisi ceruk ini dengan hemat inovasi.
Kami memiliki keyakinan yang tanpa kompromi — perangkat lunak harus
user-friendly, bahkan ketika hal ini dimaksudkan untuk memecahkan masalah
yang cukup kompleks. Kita menaatinya dan semua produk kami dibangun di
31
Pada bagian analisis sistem ini akan dibahas mengenai analisa masalah
kegunaan permainan yang akan dibangun, analisis kebutuhan non-fungsional dan
analisis kebutuhan fungsional.
III.1.1 Analisis Masalah
Kebudayaan adalah ciptaan manusia yang indah. Masakan adalah salah
satu dari kebudayaan yang indah itu. Negara Indonesia yang sangat luas dengan
jumlah sukunya yang banyak telah melahirkan kebudayaan yang sangat beragam
termasuk masakan. Perbedaan budaya yang membuat cara memasak dan meracik
masakan yang berbeda, justru memperkaya khasanah masakan Indonesia [1]
(Danny S, Tamtomo, Sandi, Karina Naftali, 2011). Kemudian timbul masalah
sebagai berikut :
1. Bagaimana membangun suatu permainan yang dapat memberikan
pembelajaran memasak kepada generasi muda?
2. Bagaimana membangun suatu permainanyang menantang, tidak monoton,
interaktif, menarik serta menghibur?
III.1.2 Analisis Permainan
Pada bagian analisis permainan selamatkan masakan nusantara indonesia
ini akan dibahas mengenai storyline, analisis tingkat kesulitan, gameplay, scoring,
karakter, objek, storyboard, dan Analisis Algoritma A*.
III.1.2.1 Storyline
Permainan selamatkan masakan nusantara Indonesia adalah permainan
yang bertujuan memberikan edukasi bagaimana cara membuat masakan Indonesia
dan memerlukan bahan apa saja dalam membuatnya. Permainan ini menceritakan
petualangan Aji, seorang koki yang lahir dari ibu seorang pemain sirkus yang
handal dalam melempar pisau dan bapa yang handal dalam hal memasak. Aji
orang tuanya. Aji berusaha menghadapi rintangan yang dilewatinya dalam
mengumpulkan bahan masakan untuk dijadikan sebuah masakan.
III.1.2.2 Analisis Tingkat Kesulitan
Dalam permainan ini, terdapat 3 level yang masing-masing level
dibedakan berdasarkan alur cerita, tingkat kesulitan rintangan yang harus
dihadapi, jenis musuh yang bertambah dan bertambahnya bahan yang diperlukan.
Di setiap peningkatan level, pemainakan dihadapkan pada musuh dengan tingkat
kesulitan yang akan bertambah, mulai dari kecepatan dan kesukaran musuh
tersebut dan rintangan yang harus dihadapi.
Tabel III.1 Analisis Tingkat Kesulitan Tingkat Jumlah
musuh
Total bahan masakan yang tersebar di
permainan
Boss
Tingkat 1 1 8 Tidak ada
Tingkat 2 5 10 Ada
Tingkat 3 9 12 Ada
III.1.2.3 Gameplay
Tugas utama pemain dalam permainan ini adalah melewati setiap
rintangan, mengumpulkan bahan masakan, dan membuat masakan. Pemain dapat
bergerak ke kanan, ke kiri dan melompat. Pemain memiliki 10 poin darah dan
akan kehilangan 1 darah apabila pemain mengenai musuh atau mengenai duri.
Pada tingkat 1 permain akan mengumpulkan bahan masakan nasi, oncom,
bawang putih, bawang merah, cabe merah, cabe merah keriting, kencur, garam
dan minyak goreng untuk membuat masakan nasi tutug oncom yang berasal dari
jawa barat.
Pada tingkat 2 pemain akan mengumpulkan bahan masakan udang,
lengkuas, kunyit, jahe, ketumbar, tepung, terigu dan minyak goreng untuk
membuat masakan udang tepung yang berasal dari jawa timur.
Pada tingkat 3 pemain akan mngumpulkan bahan masakan ayam, bawang
putih, bawang merah, kemiri, kayu manis, jeruk nipis, santan, garam, jahe, kecap
manis, tomat dan minyak goreng untuk membuat masakan ayam santan yang
III.1.2.4 Scoring
Dalam permainan ini, pemain harus mengumpulkan bahan masakan yang
tersebar pada setiap tingkat. Untuk setiap bahan masakan yang terkumpul akan
kembali ke keadaan awal apabila pemain telah menghabiskan 10 Health point atau
meninggalkan permainan. Pemain memiliki nilai 0 dan akan bertambah 20 apabila
mengambil bahan masakan dan bertambah 10 apabila melempar pisau dan
mengenai objek musuh.
III.1.2.5 Karakter
Berikut ini adalah perancangan karakter yang akan diterapkan di aplikasi
game yang akan dibangun dan akan dijelaskan di tabel III.15.
Tabel III.2 Deskripsi karakter permainan
Karakter Kemampuan Keterangan
Aji
Darah : 10 poin
Serangan Pisau : 1 poin
Aji merupakan karakter yang dapat dimainkan di dalam pada permainan, memiliki kemampuan untuk jalan ke kiri , jalan ke kanan, melompat serta melempar pisau..
Kelelawar
Darah : 2 poin Serangan : 1 poin
Kelelawar merupakan
karakter yang memiliki
kemampuan untuk
menyerang, mengejar.
Tikus
Darah : 1 poin Serangan : 1 poin
Tikus merupakan karakter yang memiliki kemampuan untuk menyerang, mengejar serta patroli.
Boss Ayam
Darah : 5 poin Serangan : 1 poin
Boss Ayam merupakan
karakter yang memiliki
kemampuan untuk
menyerang serta mengejar.
Darah : 1 poin Serangan : 1 poin
Kepiting merupakan
karakter yang memiliki
Karakter Kemampuan Keterangan
Kepiting menyerang serta patroli.
Boss Burung
Darah : 5 poin Serangan : 1 poin
Boss Burung merupakan
karakter yang memiliki
kemampuan untuk
menyerang serta mengejar.
III.1.2.6 Objek
Berikut ini adalah perancangan objek yang akan diterapkan di aplikasi
game yang akan dibangun dan akan dijelaskan di tabel III.16.
Tabel III.3 Deskripsi objek permainan
Objek Deskripsi
Kencur
Sebuah objek Kencur yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Nasi putih
Sebuah objek Nasi putih yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Oncom bakar
Sebuah objek Oncom bakar yang dapat
dikumpulkan untuk menambah nilai sebesar 20 poin.
Cabe merah
Sebuah objek Cabe merah yang dapat
dikumpulkan untuk menambah nilai sebesar 20 poin.
Cabe merah keriting
Sebuah objek Cabe merah keriting yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Objek Deskripsi Ketumbar
Gula pasir
Sebuah objek Gula pasir yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Udang
Sebuah objek Udang yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Tepung terigu
Sebuah objek Tepung terigu yang dapat
dikumpulkan untuk menambah nilai sebesar 20 poin.
Kunyit
Sebuah objek Kunyit yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Lengkuas
Sebuah objek Lengkuas yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Ayam
Sebuah objek Ayam yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Bawang merah
Sebuah objek Bawang merah yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Bawang putih
Sebuah objek Bawang putih yang dapat
Objek Deskripsi
Garam
Sebuah objek Garam yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Jahe
Sebuah objek Jahe yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Jeruk nipis
Sebuah objek Jeruk nipis yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Kayu manis
Sebuah objek Kayu manis yang dapat
dikumpulkan untuk menambah nilai sebesar 20 poin.
Kemiri
Sebuah objek Kemiri yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Minyak goreng
Sebuah objek Minyak goreng yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Tomat
Sebuah objek Tomat yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Bahan halus
Objek Deskripsi
Bahan potong
Sebuah Objek Bahan potong yang ditampilkan apabila bahan potong mencapai persenan 100.
Santan
Sebuah objek Santan yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
Kecap manis
Sebuah objek Kecap manis yang dapat
dikumpulkan untuk menambah nilai sebesar 20 poin.
III.1.2.7 Story Board
Story board adalah sketsa gambar yang disusun seperti halnya sebuah
naskah cerita. Dengan storyboard kita dapat menyampaikan ide cerita yang kita
punya kepada orang lain dengan cara yang lebih mudah, karena dengan
storyboard kita dapat menggiring imajinasi seseorang menuju persepsi yang kita
inginkan melalui gambar-gambar-gambar yang sudah kita buat.
Gambar III.2 Storyboard Tutor_1
Gambar III.3 Storyboard Tutor_2
Gambar III.5 Storyboard Tutor_4
Gambar III.6 Storyboard Masak_Nasi_Tutug_Oncom
Gambar III.8 Storyboard Tingkat_2_1
Gambar III.9 Storyboard Tingkat_2_2
Gambar III.11 Storyboard Tingkat_2_Boss
Gambar III.12Storyboard Masak_Mireng_Udang
Gambar III.14 Storyboard Tingkat_3_1
Gambar III.15 Storyboard Tingkat_3_2
Gambar III.17 Storyboard Tingkat_3_4
Gambar III.18 Storyboard Tingkat_3_Boss
Gambar III.20 Storyboard Terima_Kasih III.1.2.8 Analisis Algoritma A*
Pada bagian ini akan dibahas analisis algoritma A*, algoritma ini menjadi
complete dan optimal dikarenakan algoritma ini menggabungkan informasi dari
algoritma Djikstra (lebih memilih node yang dekat dengan node awal) dan
informasi yang digunakan algoritma Best First Search (lebih memilih node yang
dekat dengan node tujuan). Algoritma A* akan diterapkan pada objek boss dalam
melakukan pencarian rute terpendek lokasi karakter pemain di arena permainan.
Berikut ini adalah istilah-istilah yang akan dibahas:
1. Open List adalah list yang menyimpan kemungkinan path yang akan
diperiksa. Open list digunakan untuk menentukan secara selektif
(berdasarkan nilai f) jalan yang dikira lebih dekat menuju tujuan. Open
list berisi node yang masih memiliki peluang untuk terpilih sebagai best
node.
2. Closed list adalah list untuk menyimpan simpul-simpul yang sudah
pernah dibangkitkan dan sudah pernah terpilih sebagai best node. Closed
list dan openlist bertujuan untuk menghindari penulusuran berulang rute
agar tidak masuk kembali ke openlist.
3. Nilai F adalah nilai yang menyatakan seberapa bagus sebuah node. Nilai
F merupakan hasil dari f(n).
4. Nilai G adalah nilai dari fungsi g(n) adalah banyaknya langkah untuk
5. Nilai H adalah nilai estimasi untuk sampai pada suatu tujuan mulai dari
n.
Diasumsikan arena permainan dibagi-bagi kedalam sebuah tilemap
berbentuk array dua dimensi, setiap tile memiliki koordinat X dan Y dan dapat
digambarkan melalui struktur data graph. Struktur data graph adalah struktur
data yang berbentuk jaringan, hubungan antar elemennya adalah many-
to-many. Berikut ini adalah contoh arena permainan yang terdapat pada
permainan selamatkan masakan nusantara indonesia dapat dilihat pada gambar
III.21
Gambar III.21 Arena Permainan
Secara umum terdapat dua macam representasi dari struktur data graf yang
dapat diimplementasikan. Pertama, disebut adjacency list, yaitu list yang
diimplementasikan dengan menampilkan masing-masing simpul sebagai sebuah
struktur data yang mengandung senarai dari semua simpul yang saling
berhubungan. Yang kedua adalah representasi berupa adjacency matrix dimana
baris dan kolom dari matriks tersebut merepresentasikan simpul awal dan simpul
tujuan dan sebuah entri didalam senarai yang menyatakan apakah terdapat sisi di
antara kedua simpul tersebut. Dalam pembangungan game Selamatkan Masakan
Nusantara Indonesia akan digunakan representasi berupa adjacency list. Berikut
Gambar III.22 Contoh Adjacency List
Pada permainan selamatkan masakan nusantara indonesia, arena
permainan dibagi kedalam tilemap yang terdiri dari node dengan orde X dan Y.
tiap node memiliki koordinat X dan Y atau berbentuk array dua dimensi. Berikut
ini adalah contoh kasus algoritma A* pada permainan selamatkan masakan
nusantara indonesiadapat dilihat pada gambar III.23.
X(0)