Membangun aplikasi game selamatkan masakan nusantara Indonesia

(1)

(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)