Membangun aplikasi game selamatkan masakan nusantara Indonesia
(2)
(3)
(4)
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
(5)
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
AL AZIZ
10108008
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2014
(6)
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.
(7)
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 Penulis
(8)
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
(9)
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
(10)
(11)
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
(12)
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 mengaplikasikan masakan yang mereka gemari.
(13)
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 menggunakan algoritma A* yang akan diterapkan pada kelelawar dan
(14)
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. c. Code Generation
(15)
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, batasan masalah, dan sistematika penulisan.
(16)
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 tugas akhir.
(17)
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 adalah pengguna permainan dan terhubung dengan klien lain melalui
(18)
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 mengelilingi suatu tempat dengan kondisi tertentu, seperti sebuah istana
(19)
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 strategi untuk melawan dan menghancurkan musuhnya dengan membangun
(20)
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
(21)
(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 permainan pembelajaran karena efektif dalam menghubungkan kegiatan bermain
(22)
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. Intelegensi merupakan bagian kemampuan komputasi untuk mencapai tujuan di
(23)
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
(24)
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
(25)
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
(26)
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 pemrograman java, program harus dikompilasi oleh kompilator java.
(27)
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
(28)
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.
(29)
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 ke dalam world.
(30)
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.
(31)
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
(32)
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.
(33)
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.
(34)
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 belakang.
(35)
void clear() Menghapus gambar. voiddrawImage(GreenfootImage
image, int x, int y)
Menarik gambar yang diberikan ke gambar ini.
void drawLine(int x1, int y1, int x2, int y2)
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.
(36)
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).
(37)
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 ImageReady, untuk keperluan tersebut.
(38)
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 berdasarkan Unified Modeling Language (UML) dan spesifikasinya terkait.
(39)
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 penggunaan dan memerlukan investasi substansial dalam pelatihan. Jadi kami
(40)
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
(41)
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 memiliki keahlian dalam melempar pisau dan memasak yang diturunkan oleh
(42)
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 berasal dari sumatera utara.
(43)
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
(44)
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.
Sebuah objek Ketumbar yang dapat dikumpulkan untuk menambah nilai sebesar 20 poin.
(45)
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
dikumpulkan untuk menambah nilai sebesar 20 poin.
(46)
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
Sebuah Objek Bahan halus yang ditampilkan apabila bahan halus mencapai persenan 100.
(47)
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.
(48)
Gambar III.2 Storyboard Tutor_1
Gambar III.3 Storyboard Tutor_2
(49)
Gambar III.5 Storyboard Tutor_4
Gambar III.6 Storyboard Masak_Nasi_Tutug_Oncom
(50)
Gambar III.8 Storyboard Tingkat_2_1
Gambar III.9 Storyboard Tingkat_2_2
(51)
Gambar III.11 Storyboard Tingkat_2_Boss
Gambar III.12Storyboard Masak_Mireng_Udang
(52)
Gambar III.14 Storyboard Tingkat_3_1
Gambar III.15 Storyboard Tingkat_3_2
(53)
Gambar III.17 Storyboard Tingkat_3_4
Gambar III.18 Storyboard Tingkat_3_Boss
(54)
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
(55)
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
(56)
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)
Y(0) 0 - 50
50 - 100
100 - 150
150 - 200
200 - 250
250 - 300
300 - 350
350 - 400
425 - 450
450 - 500
500 - 550
550 - 600
600 - 650
650 - 700
700 - 750
750 - 800
0 - 50
50 - 100 100 - 150 150 - 200 200 - 250 250 - 300 300 - 350 350- 400 400 - 450 450 - 500 500 - 550 550 - 600
(57)
Tile atau node direpresentasikan dengan nilai n = node (x,y). Node tujuan
atau pada kasus ini disebut node pemain direpresentasikan dengan karakter
pemain dan berada di koordinat (475,475) sedangkan node awal atau pada kasus
ini disebut musuh direpresentasikan dengan karakter kelelawar dan berada di node
(625,325), sedangkan node berwarna hitam merupakan penghalang atau dinding.
Musuh dapat bergerak ke semua node yang berwarna putih tetapi musuh tidak
dapat bergerak ke arah node yang berwarna hitam.
Untuk pencarian nilai G horizontal, G vertical dan G diagonal menggunakan rumus matematika :
1. G(n) horizontal = abs(n.x - musuh.x)
2. G(n) vertical = abs(n.y - musuh.y)
3. G(n) diagonal = √ ((n.x - musuh.x) ² + (n.y – musuh.y) ²)
Contoh untuk pencarian nilai G(n) horizontal :
1. Jika nilai yang akan dicari G(575,325)
2. Node musuh(625,325)
3. Maka G(575,325) horizontal = abs(575 – 625) = 50
Contoh untuk pencarian nilai G(n) vertical :
1. Jika nilai yang akan dicari G(625,275)
2. Node musuh(625,325)
3. Maka G(625,275) vertical = abs(275 – 325) = 50
Contoh untuk pencarian nilai G(n) diagonal :
1. Jika nilai yang akan dicari G(575,275)
2. Node musuh(625,325)
3. Maka G(575,275) diagonal = √((575 - 625) ² + (275 – 325) ²)
4. Maka dihasilkan nilai G(575,275) diagonal = √(2500 + 2500) = 70
Nilai G untuk pergerakan secara horizontal dan vertikal adalah 50,
sedangkan untuk nilai untuk pergerakan diagonal adalah 70. Untuk mendapatkan
nilai heuristik yang memungkinkan pergerakan ke 8 arah maka digunakan notasi
matematika :
(58)
Contoh untuk pencarian nilai H(n) :
1. Jika nilai yang akan dicari H(575,325)
2. Node pemain(475,475)
3. Maka H(575,325) = (abs(575 – 475) + (abs(325 – 475))
4. Maka dihasilkan nilai H(25,75) = (abs(100)) + (abs(-150)) = 250
Nilai F dihasilkan dari perhitungan G dan H. Untuk mendapatkan nilai F
maka digunakan notasi matematika :
F(n) = G(n) + H(n) Contoh untuk pencarian nilai F(n) :
1. Jika nilai yang akan dicari F(575,325)
2. Maka F(575,325) = 50 + 250 = 300
Selanjutnya node musuh akan melakukan pencarian untuk menemukan
jalur terpendek dengan cara memeriksa node disekitarnya. Langkah-langkah
pencarian jalur terpendek adalah sebagai berikut:
1. Node musuh dimasukkan ke dalam open list.
2. Periksa semua node yang berdekatan dengan node musuh apakah node
tersebut merupakan dinding atau tidak, abaikan node yang tidak bisa
dilalui, lalu masukkan node tersebut kedalam open list. Dan untuk setiap
node baru yang ditambahkan kedalam open list, simpan node lama
sebagai “parent” yang akan digunakan untuk menelusuri jalan.
3. Node dengan nilai f terkecil akan terpilih sebagai best node dan
selanjutnya pencarian akan dimulai dari node ini.
4. Hapus node musuh atau node sebelumnya dari open list dan masukkan ke
dalam closed list.
Berikut ini adalah gambar membangkitkan suksesor node musuh dapat
(59)
X(400) Y(200)
350 -400
400 - 450
450 - 500
500 - 550
550 - 600
600 - 650
650 - 700
700 - 750
750 - 800 200 - 250
250 - 300 H=400 G=70 F=470 H=350 G=50 F=400 H=400 G=70 F=470
300 - 350 H=200 G=50 F=250 H=150 G=50 F=200 H=200 G=50 F=250 H=250 G=50 F=300 H=350 G=50 F=400
350 - 400 H=250
G=50 F=300
H=300 G=70 F=370 400 - 450 H=200
G=50 F=250
H=250 G=70 F=320 450 - 500 H=0
G=50 F=50 H=50 G=50 F=100 H=100 G=70 F=170 H=150 G=50 F=200
500 - 550
550 - 600
Gambar III.24 Pencarian nilai A*
Proses pencarian 1 dengan langkah 1, openlist = (625,325). Langkah 2,
openlist = (575,325), (575,275), (625,275), (675,275), (675,325), (675,375) dan
(625,375). Parent = (625,325). Langkah 3, bestnode = (625,375) dan (575,325).
Langkah 4 closedlist = (625,325), (575,325), (575,275), (625,275), (675,275),
(675,325), (675,375) dan (625,375).
Proses pencarian 2 dengan langkah 1, openlist = (625,375) dan (575,325).
Langkah 2, openlist = (525,325), (675,425) dan (625,425). Parent = (625,375) dan
(575,325). Langkah 3, bestnode = (525,325) dan (625,425). Langkah 4 closedlist
= (625,375), (575,325), (525,325), (675,425) dan (625,425).
Proses pencarian 3 dengan langkah 1, openlist = (525,325) dan (625,425).
(60)
Langkah 3, bestnode = (475,325) dan (625,475). Langkah 4 closedlist = (525,325), (625,425), (475,325) dan (625,475).
Proses pencarian 4 dengan langkah 1, openlist = (475,325) dan (625,475).
Langkah 2, openlist = (425,325) dan (575,475). Parent = (475,325) dan (625,475).
Langkah 3, bestnode = (575,475). Langkah 4 closedlist = (475,325), (625,475),
(425,325) dan (575,475).
Proses pencarian 5 dengan langkah 1, openlist = (575,475). Langkah 2,
openlist = (525,475). Parent = (575,475). Langkah 3, bestnode = (525,475).
Langkah 4 closedlist = (575,475) dan (525,475).
Proses pencarian 6 dengan langkah 1, openlist = (525,475). Langkah 2,
openlist = (475,475). Parent = (525,475). Langkah 3, bestnode = (475,475).
Langkah 4 closedlist = (525,475) dan (475,475).
Pencarian rute terpendek dari node musuh menuju node pemain
menggunakan algoritma A* menghasilkan rute sebagai berikut:
1. Dari node musuhbergerak ke koordinat (625,375) dan (575,325) dengan
f = 300.
2. Dari node dengan f = 300 bergerak ke koordinat (525,325) dan (625,425)
dengan f = 250.
3. Dari node dengan f = 250 bergerak ke koordinat (475,325) dan (625,475)
dengan f = 200.
4. Dari node dengan f = 200 bergerak ke koordinat (575,475) dengan f =
170.
5. Dari node dengan f = 170 bergerak ke koordinat (525,475) dengan f =
100.
6. Dari node dengan f = 100 bergerak ke koordinat (475,475) dan
menemukan goal (node pemain).
III.1.3 Analisis Kebutuhan Non Fungsional
Analisis non-fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi ini juga meliputi komponen-komponen apa saja yang dibutuhkan untuk sistem yang akan dibangun sampai dengan sistem tersebut diimplementasikan. Analisis kebutuhan ini juga
(61)
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 keras, analisis kebutuhan perangkat lunak dan analisis pengguna.
III.1.3.1 Analisis Kebutuhan Perangkat Keras
Komputer terdiri dari perangkat keras dan perangkat lunak yang saling berinteraksi. Perangkat lunak memberikan instruksi-instruksi kepada perangkat keras untuk melakukan suatu tugas tertentu, sehingga dapat menjalankan suatu sistem di dalamnya. Pada aplikasi permainan ini, perangkat keras yang digunakan adalah sebagai berikut :
1. Processor Intel Pentium IV
2. RAM 512 MB
3. VGA 128 MB
4. Monitor dengan resolusi minimal 800 x 600
5. Speaker atau Headset
6. Mouse
7. Keyboard
III.1.3.2 Analisis Kebutuhan Perangkat Lunak
Perangkat lunak digunakan dalam sebuah sistem merupakan perintah - perintah yang diberikan kepada perangkat keras agar bisa saling berinteraksi diantara keduanya. Perangkat lunak yang dibutuhkan untuk membangun aplikasi selamatkan masakan nusantara Indonesia ini adalah sebagai berikut :
1. Sistem Operasi Windows XP/Vista/7
2. Greenfoot versi 2.2.1
3. jdk-1_5_0_07-windows-i586-p ke atas (JDK 1.5 minimal).
4. CorelDRAW X4
5. Photoshop 3
Adapun perangkat lunak yang dibutuhkan dalam penerapan aplikasi game
(62)
1. Sistem Operasi Windows XP/Vista/7
2. jdk-7u13-windows-i586
III.1.3.3 Analisis Pengguna
Selain dibutuhkannya perangkat lunak dan perangkat keras, penggunajuga
sangat dibutuhkan dalam penggunakaan aplikasi permainan ini. Adapun
spesifikasi penggunayang dibutuhkan adalah sebagai berikut :
1. Peran : Pemain
2. Tingkat keterampilan : Bisa menggunakan computer
3. Pengalaman : Pernah memainkan aplikasi permainan
pada komputer
III.1.4 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.
III.1.4.1Use Case Diagram
Use case diagram merupakan pemodelan untuk tingkah laku system yang
akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih
aktor dengan sistem yang akan dibuat. Use case digunakan untuk mengetahui
fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak
menggunakan fungsi-fungsi tersebut.Berikut ini adalah perancangan use case
(63)
Gambar III.25 Use Case Diagram game
III.1.4.2Definisi Aktor
Merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem yang akan dibuat. Dalam permainan ini, hanya terdapat seorang aktor yaitu Pemain.
III.1.4.3Definisi Use Case
Merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang
bertukar pesan antara unit atau aktor.
System
Pemain
Memulai
Permainan Menggerakan
Karakter
Menghitung Sisa Bahan
Melempar Pisau
Memainkan Tingkat Selanjutnya
Menghitung Darah
Menghitung Nilai
Menghitung Bahan Halus
Menghitung Bahan Aduk
Menghitung Bahan Potong Menghitung
Bahan Jadi
<<extend>>
<<extend>> <<extend>>
<<include>>
Menghitung Waktu Masak
<<include>> <<include>>
<<include>>
<<extend>> <<extend>>
<<extend>> <<extend>> <<extend>>
(64)
Tabel III.4 Definisi Use Case
No Use Case Deskripsi
1. Memulai permainan Proses untuk memulai permainan
2. Menggerakan karakter Proses untuk menggerakan karakter
3. Melempar pisau Proses untuk melempar pisau
4. Menghitung sisa bahan Proses untuk menampilkan informasi sisa bahan
masakan pada permainan
5. Menghitung darah Proses untuk menampilkan informasi darah
pemain
6. Menghitung nilai Proses untuk menampilkan informasi nilai yang
dihasilkan oleh pemain
7. Memainkan tingkat
selanjutnya
Proses untuk melanjutkan ke tingkat berikutnya
8. Menghitung bahan
halus
Proses untuk menampilkan informasi masak bahan halus
9. Menghitung bahan
aduk
Proses untuk menampilkan informasi masak bahan goreng
10. Menghitung bahan
potong
Proses untuk menampilkan informasi masak bahan potong
11. Menghitung bahan jadi Proses untuk menampilkan informasi masak
bahan jadi
12. Menghitung waktu
masak
Proses untuk menampilkan informasi waktu masak
III.1.4.4Skenario Use Case
Skenario Use Case menggambarkan alur penggunaan sistem dimana setiap
skenario digambarkan dari sudut pandang aktor, seseorang atau piranti yang berinteraksi dengan perangkat lunak dalam berbagai cara.
1. Skenario Use Case Memulai permainan
Tabel III.5 Skenario Use Case Memulai permainan
Identifikasi
Nomor 1
Nama Memulai permainan
Tujuan Memulai permainan
Deskripsi Proses untuk memulai permainan
Aktor Pemain
Skenario Utama
Kondisi awal Pemain berada di menu utama
Aksi aktor Reaksi sistem
1. Memilih menu mulai
2. Menampilkan layar permainan Skenario Alternatif -
(1)
Berdasarkan hasil pengujian dihasilkan nilai Cyclomatic Complexity yang sama yaitu 8, maka dapat disimpulkan bahwa pada proses pencarian dengan algoritma A* (A star) berjalan dengan baik, karena setiap pengujian menghasilkan nilai yang sama.
IV.2.5 Pengujian Beta
Pengujian beta merupakan pengujian yang dilakukan secara objektif, dimana pengujian langsung melibatkan para pengguna aplikasi permainan secara langsung dengan menggunakan kuesioner mengenai kepuasan para pengguna terhadap aplikasi permainan yang dibangun.
IV.2.6 Kuesioner
Kuesioner diberikan dengan teknik Simple Random Sampling dimana anggota sample dari populasi dilakukan secara acak tanpa memperhatikan strata yang ada dalam populasi kepada beberapa calon pengguna perangkat lunak yang dibangun. Sampel yang diambil masing-masing calon pengguna sebanyak 40 orang, dari hasil kuesioner tersebut akan dilakukan perhitungan agar dapat diambil kesimpulan penilaian dari para responden.
Berikut ini adalah beberapa pertanyaan yang diajukan kepada calon pengguna dalam perangkat lunak yang dibangun adalah sebagai berikut :
Tabel IV.11 Pertanyaan Calon Pengguna
NO PERTANYAAN JAWABAN
SS S BS KS TS 1 Apa anda setuju aplikasi permainan ini
menarik untuk dimainkan? 12 26 2 0 0
2 Apa anda setuju aplikasi permainan ini mempunyai tingkat kesulitan yang berbeda di setiap tingkat?
13 24 3 0 0
3 Apa anda setuju perilaku musuh dalam permainan yang dapat mengejar pemain pada aplikasi permainan ini menambah tantangan ketika dimainkan?
14 20 6 0 0
4 Apa anda setuju aplikasi permainan ini menambah pengetahuan anda tentang masakan nusantara indonesia?
(2)
122
5 Apakah aplikasi permainan ini dapat membantu anda belajar tentang memasak masakan nusantara indonesia?
7 22 11 0 0
Hasil presentase masing-masing nilai jawaban kuesioner yang diujikan kepada tiap responden dengan diberikan 5 skala menggunakan skala likert. Sistem skor yang diberikan untuk jawaban kuesioner adalah sebagai berikut :
Tabel IV.12 Skor Jawaban Pada Kuesioner
Skala Jawaban Keterangan Skor SS Sangat Setuju 5
ST Setuju 4
BS Biasa Saja 3
KS Kurang Setuju 2
TS Tidak Setuju 1
IV.2.7 Kesimpulan Pengujian Kuesioner
Kuesioner ini ditujukan kepada 40 orang responden. Hasil persentase kuesioner masing-masing jawaban yang sudah dihitung dengan menggunakan rumus :
Keterangan : Y : Nilai Prosentase P : Total Skor Q : Skor Tertinggi
Berikut ini adalah hasil prosentase masing-masing jawaban yang sudah dihitung nilainya dengan menggunakan rumus yang telah didefinisikan. Kuesioner ini diujikan kepada 40 orang calon pengguna. Oleh karena itu maka nilai Q adalah 40*5= 200.
(3)
Tabel IV.13 Hasil Pengujian Kuesioner
No Pertanyaan Skor Frekuensi Jawaban Responden Jumlah Skor Presentase (%) 1
Apa anda setuju aplikasi permainan ini menarik untuk dimainkan?
5 12 60
170/200*100%=85%
4 26 104
3 2 6
2 0 0
1 0 0
Jumlah 40 170
2
Apa anda setuju aplikasi permainan ini mempunyai tingkat kesulitan yang berbeda di setiap tingkat?
5 13 65
170/200*100%=85%
4 24 96
3 3 9
2 0 0
1 0 0
Jumlah 40 170
3
Apa anda setuju perilaku musuh dalam permainan yang dapat mengejar pemain pada aplikasi permainan ini menambah tantangan ketika dimainkan?
5 14 70
168/200*100%=84%
4 20 80
3 6 18
2 0 0
1 0 0
Jumlah 40 168
4
Apa anda setuju aplikasi permainan ini menambah pengetahuan anda tentang masakan nusantara indonesia?
5 13 65
167/200*100%=83,5%
4 21 84
3 6 18
2 0 0
1
0 0
Jumlah 40 167
5
Apakah aplikasi permainan ini dapat membantu anda belajar tentang memasak masakan nusantara
indonesia?
5 7 35
156/200*100%=78%
4 22 88
3 11 33
2 0 0
1 0
0
(4)
124
Hasil presentase dari semua pertanyaan yang diajukan kepada beberapa calon pengguna didapat rata-rata sebanyak 83,1%. Dengan demikian nilai perhitungan tersebut berarti pengguna setuju dengan permainan selamatkan masakan nusantara indonesia untuk dimainkan. Secara kontinum dapat digambarkan sebargai berikut:
(5)
125 BAB V
KESIMPULAN DAN SARAN
V.1 Kesimpulan
Berdasarkan hasil implementasi pada permainan Selamatkan Masakan Nusantara Indonesia ini, maka diambil kesimpulan sebagai berikut :
1. Bahwa aplikasi permainan ini dapat memberikan pembelajaran tentang memasak kepada generasi muda.
2. Bahwa aplikasi permainan ini menantang, tidak monoton, interaktif, menarik serta menghibur.
V.2 Saran
Berdasarkan kesimpulan di atas, maka saran untuk pengembangan aplikasi ini agar lebih baik kedepannya yaitu :
1. Pada permainan ini disarankan untuk menambah fitur save game dan high score.
2. Pengembangan permainan ini ke arah 3D.
3. Pengembangan karakteristik AI pada NPC (Non Playable Character) sehingga membuat permainan lebih susah untuk dimainkan.
(6)