Jenis kelamin : Laki-laki
Tempat, tanggal lahir : Sumedang, 12 April 1990
Agama : Islam
Kewarganegaraan : Indonesia
Status : Belum kawin
Anak ke : Satu dari tiga bersaudara
Alamat : Jl. Serma Muchtar no.101, Sumedang
Telepon : 083811693773
2. Sekolah Menengah Pertama : SMP Negeri 1 Sumedang
tahun ajaran 2002-2005
3. Sekolah Menengah Kejuruan : SMA Negeri 3 Sumedang
tahun ajaran 2005-2008
4. Perguruan Tinggi : FTIK Unikom Bandung
tahun ajaran 2008-2013
Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan
sadar dan tanpa paksaan.
Bandung, 25 Februari 2013
SKRIPSI
Diajukan Untuk Menempuh Ujian Akhir Sarjana Program Studi S1 Teknik Informatika
Fakultas Teknik dan Ilmu Komputer
AGUNG ROSAMAJI
10108599
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
iii
Segala puji dan syukur penulis panjatkan atas kehadirat Tuhan Yang Maha
Esa, Allah SWT, yang telah melimpahkan berkat, rahmat, dan inayah-Nya,
sehingga penulis dapat menyelesaikan skripsi yang berjudul “MEMBANGUN APLIKASI GAME FARMING LIFE”. Tak lupa shalawat serta salam semoga selalu tercurah kepada Baginda Rasullullah SAW, kepada para sahabatnya, dan
kepada para ummatnya hingga akhir jaman.
Skripsi ini dibangun untuk memenuhi salah satu syarat dalam
menyelesaikan jenjang pendidikan Strata satu Program Studi Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia. Penulis
menyadari bahwa skripsi ini masih sangat banyak kekurangan dan berkat bantuan
dari semua pihak akhirnya skripsi ini dapat terselesaikan tepat pada waktunya.
Oleh karena itu, dengan rasa syukur dan haru, penulis ingin
menyampaikan rasa terima kasih yang sebesar-besarnya kepada :
1. Tuhan Yang Maha Esa yang telah memberikan kesehatan dan kesempatan
kepada penulis dalam menyelesaikan skripsi ini dan juga atas semua
keindahan, kemudahan, dan berjuta hikmah yang melahirkan semangat jiwa.
2. Kedua orang tua tercinta, Ayahanda, Yayan Suryana dan Ibunda, Ida Rohaeti,
serta adik-adik tercinta, Tirani Jayanti dan Asep Rodiyan, yang selalu sabar
memberikan dukungan, senantiasa memberikan kasih sayang yang begitu
besar, serta senantiasa memberikan doa setiap waktu.
3. Bapak Dr. Eddy Suryanto Soegoto, M. Sc, selaku Rektor Universitas
Komputer Indonesia.
4. Bapak Galih Hermawan, S.Kom., M. T., selaku dosen pembimbing yang telah
bersedia meluangkan waktu, tenaga dan pikirannya serta memberikan
pengarahan dan pengalaman dalam penyusunan skripsi yang berguna bagi
iv
memberikan banyak pengarahan dalam penyusunan skripsi yang berguna bagi
penulis.
7. Ibu Rani Susanto, S.Kom., selaku dosen wali kelas IF-12 angkatan 2008 yang
telah mengajarkan ilmunya selama penulis kuliah di Universitas Komputer
Indonesia.
8. Bapak dan Ibu dosen IF UNIKOM yang telah membagi ilmunya selama
penulis duduk dibangku kuliah.
9. Rekan-rekan mahasiswa kelas IF-12 angkatan 2008, khususnya Fadli
Fadlillah Sulaiman, Ronan D. Malelak, R. Moch. Reza N.H, Eka Priyambudi
Utama, Iqbal Latif Iskandar, Dadang Sujana, Erdy Hendratmawan, Nurul
Hidayat, Indriawan.
10. Serta semua pihak yang telah membantu dalam penyusunan skripsi ini, yang
tidak bisa penulis sebutkan satu-persatu.
Dan tak lupa penulis memohon maaf apabila dalam penulisan laporan
tugas akhir ini, penulis telah menyinggung perasaan atau menyakiti hati kepada
semua orang baik secara tidak sengaja maupun disengaja.
Semoga Allah SWT. senantiasa melimpahkan rahmat dan karunia-Nya,
serta memberikan balasan berlipat ganda atas jasa dan amal baiknya.
Akhir kata semoga skripsi ini dapat menjadi ilmu yang bermanfaat bagi
penulis sendiri khususnya dan bagi pembaca pada umumnya.
Wassalammu’alaikum Wr.Wb
Bandung, 20 Januari 2013
v LEMBAR PENGESAHAN
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... xi
DAFTAR SIMBOL ... xii
DAFTAR PROPERTI GAME ... xvi
DAFTAR LAMPIRAN ... xviii
BAB 1 PENDAHULUAN ... 1
1.1 LatarBelakangMasalah ... 1
1.2 RumusanMasalah ... 2
1.3 MaksuddanTujuan... 2
1.4 BatasanMasalah ... 2
1.5 MetodologiPenelitian ... 3
1.5.1 Metode Pengumpulan Data ... 3
1.5.2 Metode Pembangunan Perangkat Lunak ... 4
1.6 SistematikaPenulisan ... 5
BAB 2 LANDASAN TEORI ... 7
2.1 Game ... 7
2.1.1 PengertianGame ... 7
2.1.2 SimulasiGame ... 7
2.1.3 NPC ... 8
2.1.4 KonsepGame ... 8
2.2 KecerdasanBuatan... 9
2.3 AlgoritmaKoloniSemut ... 9
2.4 OOP (Object Oriented Programming)... 14
2.5 UML (Unified Modeling Language) ... 15
vi
2.7 Java ... 21
2.8 Greenfoot ... 21
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 23
3.1 AnalisisSistem... 23
3.1.1 AnalisisMasalah ... 23
3.1.2 AnalisisGameSejenis ... 23
3.1.3 AnalisisGame yang akanDibangun ... 27
3.1.4 SasaranPemaindanKegunaanAplikasiGame ... 29
3.1.5 AnalisisAlgoritma ... 29
3.1.6 PenerapanAlgoritmaKoloniSemut ... 33
3.1.7 AnalisisKebutuhan Non-Fungsional ... 33
3.1.8 AnalisisKebutuhanFungsional ... 34
3.2 PerancanganSistem ... 45
3.2.1 PerancanganKomponenPermainan ... 45
3.2.2 PerancanganStruktur Menu ... 55
3.2.3 PerancanganAntarmuka ... 56
3.2.4 PeancanganPesan ... 57
3.2.5 JaringanSemantik ... 58
3.2.6 Perancangan Method ... 59
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 71
4.1 ImplementasiSistem ... 71
4.1.1 PerangkatPendukung yang Digunakan ... 71
4.1.2 ImplementasiAplikasi ... 71
4.2 PengujianSistem ... 81
4.2.1 RencanaPengujian ... 81
4.2.2 KasusdanHasilPengujian (Black-Box) ... 83
4.2.3 KasusdanPengujian (White-Box) ... 86
vii
111 Wesley, hal. 30.
[2]
Fundamentals, MIT Press, hal. 80.
[3] Rollings, Andrew; Morris, Dave (2004), Game Architecture and Design: A
New Edition, New Riders, hal. 35.
[4] Jones, Key (1995), Simulations: A Handbook for Teachers and Trainers,
Kogan Page, hal. 21.
[5] Rollings, Andrew; Adams, Ernest (2003). Andrew Rollings and Ernest
Adams on Game Design. New Riders Games.
[6] Kusumadewi, Sri. (2003), Artificial Intelegence (Teknik dan Aplikasinya),
Yogyakarta : Graha Ilmu.
[7] Mathiyalagan, P.(2010), Modified Ant Colony Algorithm for Grid
Scheduling, (IJCSE) International Journal on Computer Science and
Engineering.
[8] Wampler, Bruce E. (2001), The Essence of Object Oriented Programing
with Java and UML, Addison Wesley.
[9] Shalahuddin, M dan Rosa A. S (2011), Rekayasa Perangkat Lunak
(Terstruktur dan Berorientasi Objek), Modula, Bandung.
[10] Liang, Y. Daniel (2007), Introduction to JavaTM Programming Sixth Edition, Pearson Prentice Hall.
[11] Pressman, Rogers S. (2010), Software engineering : a practitioner’s
approach 7th ed , McGraw-Hill.
[12] Sugiyono (2010), Metode Penelitian Kuantitatif, Kualitatif, dan R&D,
ALFABETA, cv., Bandung.
[13] Farmerama, [Online], Tersedia http://en.farmerama.bigpoint.com (7
[14] My Free Farm, [Online], Tersedia http://www.myfreefarm.com (7 Januari
2013).
[15] My Wonderful Farm, [Online], Tersedia
http://www.games.co.id/permainan_/my-wonderful-farm.html (7 Januari
2013).
[16] Greenfoot | About Greenfoot, [Online], Tersedia
1
1.1 Latar Belakang Masalah
Game yang bernama Farmerama merupakan game simulation online. Game
ini merupakan game yang berjenis simulasi yang memiliki konsep permainan
bercocok tanam menggunakan alat interaksi mouse. Game ini memberikan lahan
pada pemain di awal permainan agar pemain dapat bercocok tanam dengan
menanam dan mengatur lahannya sendiri.
Terdapat beberapa hal yang tidak dimiliki pada game Farmerama dalam
mensimulasikan bercocok tanam seperti kondisi tanaman mati maupun hama yang
dapat menyerang tanaman. Tanaman yang hidup pasti dapat mati dan hama
memiliki perilaku sendiri dalam mencari tanaman yang akan diserang. Tanaman
pada game memerlukan suatu kondisi dimana tanaman itu akan mati sedangkan
hama dalam game memerlukan suatu perintah untuk menyerang tanaman. Ketika
hama dalam game tidak dapat diperintah oleh manusia maka perintah tersebut
dapat digantikan dengan diterapkannya kecerdasan buatan pada hama tersebut.
Kecerdasan buatan yang diterapkan pada hama menjadikan hama tidak dapat
dikendalikan oleh manusia maka hama tersebut pun disebut sebagai NPC (
Non-Playable Character). Kondisi perubahan cuaca, sistem penanggalan dan karakter
utama yang dapat digerakkan oleh pemain tidak dimiliki oleh game Farmerama.
Game lainnya yang bernama My Free Farm dan My Wonderfull Farm dimana
memiliki kondisi sama dengan game Farmerama.
Salah satu solusi untuk membuat game simulasi bercocok tanam menjadi
bervariasi adalah membangun sebuah game yang didalamnya terdapat tanaman
yang memiliki kondisi dimana tanaman dapat tetap hidup atau mati, NPC hama
dengan diterapkan kecerdasan buatan dengan algoritma koloni semut untuk
mencari tanaman yang akan diserang, kondisi perubahan cuaca yang dapat
mempengaruhi tanaman seperti cuaca hujan dapat memberikan sumber air untuk
dengan jelas dan dapat mengatur waktu penanaman dengan baik, dan karakter
utama yang dapat digerakkan untuk dapat melakukan aksi dalam bercocok tanam.
Berdasarkan permasalahan yang diteliti, maka akan dibangun sebuah
aplikasi game simulasi bercocok tanam yang memiliki sistem bercocok tanam,
hama, cuaca, sistem penanggalan, dan karakter utama. Game yang dibangun
bejudul “Farming Life” diharapkan dapat menjadi lebih bervasiasi dengan
menambahkan keunikan dalam game, dapat menambah daya pikir pemain, dalam
hal mengatur waktu penanaman dan dapat menghibur pemain yang merupakan
fungsi utama dalam game.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah disampaikan, maka perumusan
masalahnya adalah bagaimana menerapkan tanaman hidup atau mati, hama, cuaca
sistem penanggalan, dan karakter utama pada game simulasi bercocok tanam?
1.3 Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penelitian ini
adalah membangun aplikasi gameFarming Life.
Tujuan yang hendak dicapai dalam penelitian ini diantaranya :
1. Membuat game lebih bervariasi.
2. Membantu meningkatkan daya pikir pemain.
3. Sebagai sarana hiburan pemain.
1.4 Batasan Masalah
Berdasarkan permasalahn serta maksud dan tujuan yang telah dipaparkan
sebelumnya, maka penelitian ini dibatasi dengan masalah sebagai berikut :
1. Aplikasi game Farming Life yang dibangun merupakan game Simulation
yang memiliki konsep bercocok tanam.
2. Menggunakan bahasa pemrograman Java (J2SE).
3. Terdapat 2 kondisi cuaca, yaitu cerah dan hujan.
4. Terdapat 6 tanaman memiliki waktu tumbuh berbeda.
5. Terdapat 2 karakter NPC (Non-Playable Character), 1 NPC hama dan
karakter utama.
7. Kecerdasan buatan yang diimplementasikan pada NPC hama adalah
algoritma koloni semut.
8. Aksi yang dapat dilakukan karakter utama yaitu interaksi dengan NPC,
bercocok tanam dengan menggunakan alat yang tersedia.
9. Merupakan single playergame.
10. Media interaksi menggunakan keyboard.
11. Pengguna yang diperkenankan 12 tahun ke atas dan dapat menggunakan
komputer.
12. Game yang dibangun hasil akhirnya akan berformat .JAR dan hanya bisa
dimainkan oleh komputer yang sudah mempunyai Java Virtual Machine
(JVM) di dalamnya.
13. Pendekatan analisis yang digunakan ialah Object Oriented (OO).
1.5 Metodologi Penelitian
Metodologi penelitian yang digunakan adalah metode deskriptif, yaitu
metode yang menggambarkan fakta-fakta dan informasi dalam situasi atau
kejadian sekarang secara sistematis, faktual dan akurat. Metode penelitian ini
memiliki dua metode yaitu metode pengumpulan data dan metode pembangunan
perangkat lunak.
1.5.1 Metode Pengumpulan data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah
sebagai berikut :
a. Studi Literatur
Studi Literatur adalah metode pengumpulan data dengan cara
mengumpulkan literatur, jurnal, paper, bacaan-bacaan dan website yang
ada kaitannya dengan penelitian yang dilakukan.
b. Observasi
Observasi adalah metode pengumpulan data dengan mengadakan
peninjauan secara langsung maupun tidak langsung terhadap hal-hal yang
1.5.2 Metode Pembangunan Perangkat Lunak
Metode pembangunan perangkat lunak menggunakan model waterfall [3],
yang digambarkan pada Gambar 1.1. Metode ini disebut waterfall karena
tahap yang pertama harus dilalui dan diselesaikan terlebih dahulu untuk dapat
melanjutkan ke tahapan selanjutnya. Model ini menggunakan pendekatan
secara sistematis dan urut mulai dari level :
a. Requirements Analysis and Definition
Requirements Analysis and Definition merupakan tahap dalam
menentukan pelayanan, batasan, dan tujuan sistem berdasarkan hasil
konsultasi dengan pengguna sistem itu sendiri. Pada tahap ini sistem
didefinisikan secara rinci yang kemudian disajikan sebagai sebuah
spesifikasi sistem.
b. Sistem and Software Design
Sistem and Software Design merupakan tahap dalam membagi proses
desain sistem menjadi berdasarkan kebutuhan, baik untuk perangkat
keras maupun perangkat lunak. Hal itu untuk membentuk arsitektur
secara keseluruhan. Desain perangkat lunak melibatkan proses
mengidentifikasi dan mendeskripsikan sistem perangkat lunak yang
mendasar berupa abstraksi dan hubungannya.
c. Implementation and Unit Testing
Implementation and Unit Testing merupakan tahap dalam merealisasikan
desain perangkat lunak menjadi serangkaian program atau unit program.
Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi
spesifikasinya.
d. Integration and Sistem Testing
Integration and Sistem Testing merupakan tahap dalam mengintegrasikan
dan menguji unit program atau program itu sendiri sebagai sebuah
sistem yang lengkap untuk memastikan bahwa semua kebutuhan sistem
telah terpenuhi. Setelah dilakukan pengetesan, sistem perangkat lunak
e. Operation and Maintenance
Operation and Maintenance merupakan tahap yang paling lama pada
fase siklus hidup. Sistem sudah terpasang dan siap digunakan.
Pemeliharaan mencakup koreksi dari berbagai error yang tidak
ditemukan di tahap sebelumnya pada siklus hidup, perbaikan atas
implementasi unit sistem dan pengembangan pelayanan sistem dan
persyaratan baru ditambahkan ke dalam sistem.
Gambar 1.1 Model Waterfall [1] 1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran
umum mengenai penelitian yang dilakukan. Sitematika penulisan dalam penelitian
ini adalah sebagai berikut :
BAB 1 PENDAHULUAN
Bab 1 menguraikan tentang latar belakang masalah, rumusan masalah, maksud
dan tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab 2 membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan
topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis
BAB 3 ANALISIS DAN PERANCANGAN
Bab 3 menguraikan tentang analisis sistem, analisis masalah, analisis game yang
akan dibangun, analisis dan metode algoritma, analisis kebutuhan non-fungsional,
perancangan sistem, perancangan struktur menu, perancangan antar muka,
perancangan pesan, jaringan semantik, perancangan method.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini menguraikan tentang implementasi, perangkat pendukung yang
digunakan, implementasi aplikasi, pengujian sistem, pengujian Blackbox dan
WhiteBox, dan pengujian beta.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan yang didapatkan selama penulisan laporan tugas
akhir dari pembatasan masalah, selain itu juga berisi saran untuk perbaikan dan
7
2.1 Game
Game atau permainan merupakan media hiburan yang sudah dikenal sejak
dahulu. Game dapat dimainkan berbagai umur tua maupun muda. Game juga
sudah berkembang dengan pesat sesuai dengan perkembangan teknologi, dari
game sederhana sampai game modern saat ini. Hal ini terbukti dengan adanya
perkembangan jenis, produk, serta alat yang digunakan.
2.1.1 Pengertian Game
Game adalah sebuah sistem di mana permainan terlibat dalam konflik
buatan, didefinisikan oleh aturan, yang menghasilkan hasil yang terukur [2].
Tapi pertama-tama, kita pertimbangkan apakah game itu bukan : banyak
fitur keren, banyak grafis mewah, serangkaian teka-teki menantang, suasana yang
menarik dan cerita [3].
2.1.2 Simulasi Game
Sebuah simulasi game mencoba untuk menyalin berbagai kegiatan dalam
"kehidupan nyata" dalam bentuk permainan untuk berbagai tujuan seperti
pelatihan, analisis, atau prediksi. Biasanya tidak ada gol didefinisikan secara ketat
dalam permainan, hanya berputar-putar, bermain sebagai karakter [4].
2.1.3 NPC
NPC atau Non-Playable Character adalah karakter game yang
dikendalikan oleh sistem bukan oleh pemain. NPC melayani sejumlah tujuan di
dalam game, termasuk:
1. Sebagai perangkat alur : NPC dapat digunakan untuk memajukan alur cerita.
2. Untuk bantuan atau musuh : NPC dapat bertindak sebagai mitra untuk pemain
atau dapat menjadi musuh dalam game.
3. Fungsi game : NPC sering melayani sebagai menyimpan poin, toko item,
poin kesehatan regenerasi dan sebagainya.
2.1.4 Konsep Game
Menurut Andrew Rolling dan Ernest Adams dalam bukunya [5], anda
harus mengerti tentang apa game anda, dan anda harus menjawab beberapa
pertanyaan penting. Ketika anda menjawab pertanyaan tersebut dengan puas dan
menulis jawabannya. Anda dapat menjadikan ide tersebut menjadi konsep game.
Banyak ide game dimulai dari mimpi. Mungkin mimpi menelusuri gua
yang penuh dengan monster. Mungkin mimpi menjadi pelatih sepakbola.
Mungkin mimpi menjadi fashion designer. Tetapi sebelum anda melakukan yang
lainnya, anda harus mimpi sebuah mimpi.
Buku, film, televisi, dan media hiburan lainnya merupakan sumber besar
dari inspirasi untuk ide game. Film serial seperti James Bond sering menjadi
inspirasi game. Banyak orang yang bermain game komputer ingin desainnya juga.
Sesuatu tentang bermain game membangkitkan kreatif masyarakat. Ketika anda
memainkan banyak game, anda mengembangkan rasa bagaimana mereka bekerja
dan apa poin baik dan buruknya. Bermain game merupakan pengalaman berharga
untuk desainer game. Ini memberikan wawasan dan memungkinkan anda
membandingkan dan membedakan fitur permainan yang berbeda.
Untuk merubah ide game menjadi penuh konsep game, anda harus berfikir
dan menjawab sendiri beberapa pertanyaan. Anda tidah harus tepat dan rinci,
tetapi anda harus memiliki jawaban umum dari semua pertanyaan berikut :
1. Apa sifat dari alur permainannya? Apa tantangan yang pemain akan hadapi?
2. Apa kondisi untuk menang pada game, bila ada? Apa yang pemain coba
dapatkan?
3. Apa peran pemain? Apakah pemain diharuskan menjadi seseorang atau
sesuatu, dan apabila jadi, apa itu? Bagaimana peran pemain membantu
menjelaskan alur permainan?
4. Apa aturan permainannya? Dimanakah itu terjadi?
5. Apa model interaksi pemain? Dimana – mana? Melalui avatar? Sesuatu yang
lain? Beberapa kombinasi?
6. Apa prespektif utama permainan? Bagaimana pemain memandang dunia game
di layar? Apakah ada lebih dari satu prespektif?
7. Bagaimana struktur umum game? Apa yang terjadi dalam setiap mode, dan apa
fungsi setiap mode tidak memenuhi?
8. Apakah game kompetitif, kooperatif, berbasis tim, atau single-player? Jika
beberapa pemain yang diperbolehkan, apakah mereka menggunakan mesin
yang sama dengan kontrol terpisah atau mesin yang berbeda melalui jaringan?
9. Apakah permainan memiliki narasi atau cerita saat berjalan bersama?
Meringkas plot dalam satu atau dua kalimat.
10. Apakah permainan jatuh ke genre yang ada? Jika demikian, yang mana?
11. Mengapa ada orang yang ingin memainkan permainan ini? Orang seperti apa
akan tertarik pada permainan ini?
2.2 Kecerdasan Buatan
Kecerdasan buatan adalah salah satu bagian ilmu komputer yang membuat
agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang
dilakukan oleh manusia. Lebih detailnya pengertian kecerdasan buatan dapat
dipandang sebagai berikut:
1. Sudut pandang kecerdasan
Kecerdasan buatan akan membuat mesin menjadi cerdas (mampu berbuat
seperti yang dilakukan manusia).
2. Sudut pandang penelitian
Kecerdasan buatan adalah suatu studi bagaimana membuat agar komputer
3. Bisnis
Kecerdasan buatan adalah kumpulan peralatan yang sangat powerfull dan
metodologis dalam menyelesaikan masalah-masalah bisnis.
4. Pemrograman
Studi tentang pemrograman simbolik, penyelesaian masalah dan pencarian.
Untuk melakukan aplikasi kecerdasan buatan ada dua bagian utama yang
sangat dibutuhkan
a. Basis Pengetahuan
Fakta-fakta, teori, pemikiran dan hubungan antara satu dengan yang
lainnya.
b. Motor Inferensi
Kemampuan menarik kesimpulan berdasarkan pengalaman [6].
2.3 Algoritma Koloni Semut
Algoritma optimasi koloni semut adalah multi-agent sistem, yang terdiri
dari agen dengan perilaku kolektif (stigmergy) dari semut untuk menemukan
terpendek algoritma koloni paths [7]. Semut terinspirasi oleh pengamatan koloni
semut nyata. Semut adalah serangga sosial, yaitu serangga yang hidup di koloni
dan yang perilakunya diarahkan lebih ke kelangsungan hidup koloni secara
keseluruhan dibandingkan dengan seorang tunggal individual komponen koloni.
Social serangga telah menarik perhatian banyak ilmuwan karena tingkat
strukturasi tinggi koloni dapat mencapai, terutama bila dibandingkan dengan
relative kesederhanaan individu koloni.
Sebuah perilaku yang penting dan menarik dari koloni semut adalah
perilaku mencari makan mereka, dan, khususnya, bagaimana semut dapat
menemukan jalur terpendek antara makanan sumber dan sarang mereka. Sambil
berjalan dari makanan sumber ke sarang dan sebaliknya, semut meninggalkan zat
pada tanah yang disebut feromon, membentuk dengan cara jejak feromon. Ketika
jalan lebih banyak tersedia dari sarang ke sumber makanan, koloni semut
mungkin dapat memanfaatkan jalur feromon kiri oleh semut individu untuk
menemukan jalan terpendek dari sarang ke sumber makanan dan kembali. Hal ini
menggunakan bentuk sederhana tidak langsung komunikasi dimediasi oleh
peletakan feromon, dikenal sebagai stigmergy.
Gambar 2.2 Evolusi Simulasi dilakukan oleh semut [7]
Percobaan berikut pada gambar 2.2. memberikan dua jalur ke sumber
makanan, tetapi salah satunya adalah dua kali lebih lama dari yang lain. Semut
lagi akan mulai bergerak secara acak dan menjelajahi tanah. Probalistik, 50% dari
semut akan mengambil singkat cara sementara yang lain 50% akan mengambil
jalan panjang, seperti mereka tidak memiliki petunjuk untuk menyimpulkan
kongfigurasi tanah. Semut mengambil jalan pendek akan mencapai sumber
makanan sebelum orang lain dan meninggalkan jejak feromon dibelakang mereka.
setelah mencapai makanan, mereka akan kembali dan mencoba untuk menemukan
lain tidak akan dieksplorasi. Oleh karena itu semut yang membawa makanan akan
mengambil jalan yang sudah dieksplorasi, karena itu adalah cara untuk
menemukan sarang. Seperti semut adalah cara memilih jalur terpendek dan akan
terus membaharui jejak feromon, karena itu jalan akan menjadi lebih menarik bagi
orang lain.
Semut yang mengambil jalan panjang akan memiliki lebih probabilitas
untuk kembali menggunakan cara terpendek, dan setelah beberapa waktu, mereka
akan berkumpul ke arah sebelumnyaa. Akibatnya, para semut akan menemukan
jalan terpendeknya sendiri, tanpa memiliki pandangan global pada tanah. Dengan
mengambil keputusan di persimpangan setiap sesuai dengan jumlah feromon,
mereka akan berhasil mengeksplorasi, menemukan makanan, dan membawanya
kembali ke sarang, dengan cara yang dioptimalkan.
Secara keseluruhan algoritma ini terbagi menjadi beberapa bagian yaitu :
1. Initialization
Proses dimana menentukan nilai awal posisi sarang semut dan posisi sumber
makanan
2. Construction
Proses pencarian jalur ke tujuan yaitu jalur dari posisi sarang semut sampai
posisi tanaman dengan cara meletakkan semut pada posisi sarang semut lalu
menyebarkan semut secara acak.
3. Trails Update
Proses dimana semut yang disebar sudah menemukan posisi sumber
makanan. Semut kembali ke posisi sarang semut dari posisi sumber makanan
dengan meninggalkan jejak semut / pheromone.
4. Terminating Condition
Proses penutupan algoritma bila kondisi telah terpenuhi, jika belum kembali
ke bagian 2.
Gambar 2.3 Flowchart algoritma koloni semut
Gambar 2.3 menjelaskan alur algoritma koloni semut. Inisialisasi
maksSemut untuk menentukan jumlah semut yang akan disebarkan, semut untuk
yang menunjukan posisi sarang semut. Semut yang disebar mencari posJejak yang
merupakan posisi jejak semut yang tertinggal dan posAkhir yang merupakan
posisi sumber makanan. Ketika semut menemukan posJejak, semut tersebut
mengikuti jejak semut yang lainnya hingga menemukan posAkhir. Semut yang
sudah menemukan posAkhir maka semut tersebut harus kembali ke posAwal
dengan meninggalkan jejak di perjalanan. Ketika makanan belum habis dan semut
yang kembali sudah sampai ke posAwal. Semut tersebut disebarkan kembali dari
posAwal lagi.
2.4 OOP (Object Oriented Programming)
OOP adalah teknik memodelkan suatu sistem dunia nyata dalam perangkat
lunak berdasarkan objek. Objek tersebut adalah konsep inti. Suatu objek adalah
sebuah perangkat lunak entitas atau konsep model dunia nyata.
Ketika sebuah program berjalan, objek individu biasanya tidak dapat berdiri
sendiri. Mereka termasuk ke sebuah koleksi dari objek lain yang serupa yang
merupakan anggota dari grup yang sama, atau class. Sebuah program akan
terbentuk dari banyak class yang berbeda, setiap class terbentuk dari objek-objek
yang serupa.
Beberapa sistem perangkat lunak orientasi objek akan memiliki sifat
berikut:
1. Abtraksi dengan objek.
Abtraksi adalah mekanisme yang memungkinkan kompleks, situasi dunia
nyata dapat diwakili menggunakan model yang disederhanakan. Orientasi objek
abstrak dunia nyata didasarkan pada objek dan interkasi antar objek lainnya.
2. Enkapsulasi class.
Enkapsulasi adalah proses menyembunyikan semua bagian rinci sebuah objek
dari dunia luar.
3. Interaksi lewat pesan.
Untuk memenuhi suatu perintah, objek butuh berinteraksi dengan objek lain.
Interaksi dapat antara objek di class yang sama, atau objek di class lain. Interaksi
ini ditangani dengan cara mengirimkan pesan (di Java, ini dilakukan dengan
4. Masa hidup objek.
Semua objek memiliki masa hidup. Mereka dibuat dan diinisialisasi
sebagaimana mereka dibutuhkan pada saat program dijalankan, hidup dan
membawa keluar fungsi mereka, dan akhirnya dihancurkan. Sementara mereka
ada, mereka mempertahankan identitas mereka sendiri dan kondisi. Banyak objek
yaitu contoh dari class yang sama bisa hidup pada waktu tertentu. Setiap objek
memiliki atribut yang berbeda dari yang lain yaitu contoh objek dari class yang
sama.
5. Hirarki class.
Dalam desain orientasi objek, class objek tersebut diatur ke dalam hirarki
yang memodelkan dan menggambarkan hubungan antar class. Hubungan yang
paling sederhana adalah sebuah asosiasi.
6. Polimorfisme
Polimorfisme adalah karakteristik sistem orientasi objek. Ketika warisan
digunakan untuk memperpanjang class umum ke class yang lebih khusus,
biasanya akan mencakup memperluas beberapa perilaku dari class umum. Class
khusus sering akan menerapkan perilaku yang agak berbeda dengan class umum,
tetapi nama yang digunakan mendefinisikan perilaku akan menjadi sama. Adalah
penting bahwa contoh yang diberikan dari sebuah objek menggunakan perilaku
yang benar, dan property polimorfisme memungkinkan ini terjadi secara otomatis
dan mulus. Polimorfisme sebenarnya lebih mudah digunakan daripada dijelaskan
[8].
2.5 UML (Unified Modeling Language)
UML adalah penerus gelombang berorientasi objek alnalisis dan desain
(OOA & D) metode yang muncul di akhir ‘80-an dan ’90-an awal. Hal yang
paling langsung menyatukan metode Booch, Rumbaugh (OMT), dan Jacobson,
tapi jangkauan lebih luas dari itu. UML pergi melalui proses standarisasi dengan
OMG (Obyek Manajement Group) dan sekarang menjadi standar OMG.
UML disebut bahasa pemodelan, bukan metode. Sebagian besar metode
terdiri, setidaknya pada prinsipnya, kedua model sebuah bahasa dan proses.
mengekspresikan desain. Proses ini menyarankan mereka apa langkah yang harus
diambil dalam melakukan desain.
Bagian proses dalam buku banyak metode yang agak samar. Selain itu,
kebanyakan orang, ketika mereka mengatakan bahwa mereka menggunakan
metode, menggunakan bahasa pemodelan, tapi jarang mengikuti proses. Jadi
dalam banyak hal pemodelan bahasa adalah bagian paling penting dari meode ini.
Hal ini tentu bagian penting untuk komunikasi. Jika anda ingin mendiskusikan
desain anda dengan seseorang, itu adalah bahasa pemodelan yang anda berdua
perlu pahami, bukan proses yang digunakan untuk sampai ke desain tersebut [8].
2.5.1 Diagram UML
Menggunakan berbagai macam diagram dengan fungsi masing-masing
untuk menggambarkan setiap proses dari sistem berorientasi objek. Berikut
merupakan beberapa diagram UML diantaranya [9]:
A. Use Case Diagram
Use Case atau diagram use case merupakan pemodelan yang digunakan
untuk menggambarkan kelakuan (behavior) dari sistem yang akan dibuat [9]. Use
case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem
yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa
saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan
fungsi-fungsi tersebut.
Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin
dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa
yang disebut aktor dan use case [9].
1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan
sistem yang akan dibuat diluar sistem yang akan dibuat itu sendiri, jadi
walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu
merupakan orang.
2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit
yang saling bertukar pesar antarunit atau aktor.
Gambar 2.4 Contoh dari Use Case Diagram [9]
B. Activity Diagram
Diagram aktivitas atau activity diagram adalah sebuah diagram yang
menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau
proses bisnis [9]. Dalam diagram aktivitas yang perlu diperhatikan adalah bahwa
diagram aktivitas menggambarkan aktivitas sistem, bukan apa yang dilakukan
aktor, jadi aktivitas yang dapat dilakukan oleh sistem.
Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal
berikut [9]:
1. Rancangan proses bisnis di mana setiap urutan aktivitas yang digambarkan
merupakan proses bisnis sistem yang didefinisikan.
2. Urutan atau pengelompokan tampilan dari sistem/user interface di mana
setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan.
3. Rancangan pengunjian di mana setiap aktivitas dianggap memerlukan sebuah
pengujian yang perlu didefinisikan kasus ujinya.
Gambar 2.5 Contoh dari Activity Diagram [9]
C. Class Diagram
Diagram kelas atau class diagram menggambarkan struktur sistem dari segi
pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas
memiliki apa yang disebut atribut dan metode atau operasi [9].
1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas
2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas
Contoh dari class diagramdapat dilihat pada gambar 2.6.
D. Sequence Diagram
Diagram sekuen adalah diagram yang menggambarkan kelakuan objek pada
use case dengan mendeskripsikan waktu hidup objek dan message yang
dikirimkan dan diterima antarobjek [9]. Oleh karena itu untuk menggambarkan
diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use
case beserta metode-metode yang dimiliki kelas yang d2nstansiasi menjadi objek
itu.
Banyaknya diagram sekuen yang harus digambarkan adalah sebanyak
pendefinisian use case yang memiliki prose situ sendiri atau yang penting semua
use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada
diagram sekuen sehingga semakin banyak use case yang didefinisikan maka
diagram sekuen yang harus dibuat juga semakin banyak.
Contoh dari sequence diagramdapat dilihat pada gambar 2.7.
Gambar 2.7 Contoh dari Sequence Diagram [9] 2.6 Teknik Pengujian Perangkat Lunak
Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas
perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan
pengkodean[11].
2.6.1 Pengujian Black Box
Pengujian black box berfokus pada persyaratan fungsional perangkat
perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya
menggunakan semua persyaratan fungsional untuk suatu program. Pengujian
black box bukan merupakan alternatif dari teknik white box, tetapi merupakan
pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas
kesalahan daripada metode white box [11].
Pengujian black box berusaha menemukan kesalahan dalam kategori
sebagai berikut :
1. Fungsi-fungsi yang tidak benar atau hilang
2. Kesalahan dalam interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan kinerja
5. Inisialisasi dan kesalahan terminasi
2.6.2 Pengujian White Box
Pengujian white box, yang kadang-kadang disebut pengujian glass box,
adalah metode desain test case yang menggunakan struktur kontrol desain
procedural untuk memperoleh test case [11]. Dengan menggunakan metode
pengujian white box, perekayasa sistem dapat melakukan test case sebagai berikut
:
1. Memberikan jaminan bahwa semua jalur independen pada suatu modul
telah digunakan paling tidak satu kali
2. Menggunakan semua keputusan logis pada sisi true dan false
3. Mengeksekusi semua loop pada batasan mereka dan pada batas
operasional mereka
4. Menggunakan struktur data internal untuk menjamin validitasnya.
Pengujian white box yang berupa notasi diagram alir dapat dilihat pada
Gambar 2.8 Notasi Diagram Alir [11] 2.7 Java
Java dikembangkan oleh tim yang dipimpin oleh James Gosling di Sun
Microsistems. Awalnya disebut Oak, ia dirancang pada tahun 1991 untuk
digunakan dalam peralatan konsumen tertanam elektronik. Pada tahun 1995,
berganti nama java, didesain ulang untuk mengembangkan aplikasi internet.
Java teleh menjadi sangat popular. Peningkatan pesat di java dan diterima
secara luas dapat ditelusuri dengan karakteristik desain, terutama janji bahwa
Anda dapat menulis program satu kali dan menjalankannya di mana saja. Seperti
yang tercantum dalam kertas putih bahasa Java oleh Sun, Java adalah sederhana,
berorientasi objek, terdistribusi, diinterpretasikan, kuat, aman, arsitektur netral,
portable, kinerja tinggi, multithreaded, dan dinamis [10].
2.8 Greenfoot
Greenfoot mengajar Objek Orientasi dengan Java. Membuat ‘actors’ yang
mana berada di dalam ‘worlds’ untuk membangun game, simulasi, dan program
grafik yang lainnya. Greenfoot adalah visual dan interaktif. Alat visualisasi dan
interaksi dibangun ke dalam lingkungan. Para aktor yang deprogram dalam kode
Java standar tekstual, memberikan kombinasi pengalaman pemrograman dalam
bahasa berbasis teks tradisional dengan eksekusi visual.
Antarmuka adalah IDE lengkap yang meliputi manajemen proyek,
auto-completion, syntax highlighting, dan alat-alat lainnya yang umum untuk
kebanyakan IDE. Hal ini juga memungkinkan untuk mempublikasikan pekerjaan
keduanya online dan offline. Namun antarmuka dirancang untuk menjadi
sederhana dan mudah digunakan, dibangun dengan pemula dalam berpikir.
Greenfoot digunakan oleh ribuan institusi di seluruh dunia. Ini menyediakan
Program Greenfoot ditulis dalam standar Java, salah satu bahasa utama dalam
dunia akademis dan industri. Konsep belajar mentransfer langsung ke
pemrograman di lingkungan berikutnya. Greenfoot membuat lingkungan cukup
mudah digunakan untuk pemula, dan Java membuatnya cukup kuat untuk menulis
23
3.3 Analisis Sistem
Analisis sistem merupakan kegiatan penguraian suatu sistem informasi yang
utuh dan nyata ke dalam bagian-bagian atau komponen-komponen komputer yang
bertujuan untuk mengidentifikasi serta mengevaluasi masalah-masalah yang
muncul, hambatan-hambatan yang mungkin terjadi dan kebutuhan-kebutuhan
yang diharapkan sehingga mengarah kepada solusi dengan kebutuhan serta
perkembangan teknologi.
3.3.1 Analisis Masalah
Adanya beberapa faktor pada gamesimulasi bercocok tanam menimbulkan
beberapa masalah, diantaranya adalah bagaimana menerapkan tanaman hidup atau
mati, hama, cuaca, sistem penanggalan, dan karakter utama pada game simulasi
berccok tanam?
Solusi untuk memecahkan masalah tersebut adalah dengan membangun
sebuah game yang didalamnya terdapat tanaman yang memiliki kondisi dimana
tanaman dapat tetap hidup atau mati,NPC hama dengan diterapkan kecerdasan
buatan dengan algoritma koloni semut untuk mencari tanaman yang akan
diserang, kondisi perubahan cuaca yang dapat mempengaruhi tanaman seperti
cuaca hujan dapat memberikan sumber air untuk tanaman, sistem penanggalan
yang dapat menunjukan waktu tumbuh tanaman dengan jelas dan dapat mengatur
waktu penanaman dengan baik, dan karakter utama yang dapat digerakkan untuk
dapat melakukan aksi dalam bercocok tanam.
3.3.2 Analisis Game Sejenis
Analisis yang dilakukanmerupakan observasi dari game sejenis untuk
melihat cara bermain, tujuan dan ada tidaknya kekurangan atau kelebihan game
itu sendiri.Hasil observasi tersebut untuk membantu dalam penelitian.Game
3.3.2.1 Farmerama
Farmerama adalah game simulasi online.Sistem menyediakan ladang
untuk bercocok tanam untuk pemain pada awal permainan.Gameini tidak
memiliki karakter utama yang dapat digerakkan oleh pemain karena menggunakan
media interaksi mouseuntuk menggerakkan penunjuk. Tanaman yang tumbuh
memiliki beberapa kondisi yang berpengaruh pada poin permainan.Tanaman
tumbuh dengan durasi waktu nyata akan tetapi tidak terlihat adanya tanaman yang
mati. Game ini tidak memiliki hama yang menyerang tanaman.Tujuan game ini
hanya mengatur lahannya seindah mungkin. Tampilan gameFarmerama dapat
dilihat pada gambar 3.1.
Beberapa hal yang tidak terdapat pada game ini adalah :
1. Karakter utama yang dapat digerakkan oleh pemain.
2. Hama yang menyerang tanaman.
3. Tidak terlihat adanya tanaman yang mati.
3.3.2.2 My Free Farm
My Free Farm adalah game simulasi online.Sistem menyediakan ladang
untuk bercocok tanam untuk pemain pada awal permainan.Gameini tidak
memiliki karakter utama yang dapat digerakkan oleh pemain karena menggunakan
media interaksi mouseuntuk menggerakkan penunjuk. Tanaman yang tumbuh
memiliki beberapa kondisi yang berpengarup pada poin permainan.Tanaman
tumbuh dengan durasi waktu nyata akan tetapi tidak terlihat adanya tanaman yang
mati. Game ini tidak memiliki hama yang menyerang tanaman. Tujuan game ini
hanya mengatur lahannya seindah mungkin. Tampilan gameMy Free Farm dapat
dilihat pada gambar 3.2.
Beberapa hal yang tidak terdapat pada game ini adalah :
1. Karakter utama yang dapat digerakkan oleh pemain.
2. Hama yang menyerang tanaman.
3. Tidak terlihat adanya tanaman yang mati.
3.3.2.3 My Wonderful Farm
My Wonderfull Farm adalah game simulasi online.Sistem menyediakan
ladang untuk bercocok tanam untuk pemain pada awal permainan.Gameini
memiliki karakter utama,tetapi bergerak sesuai tujuan yang dipilih oleh pemain
dengan menggunakan media interaksi mouseuntuk menggerakkan penunjuk untuk
menentukan tujuan. Tanaman yang tumbuh memiliki beberapa kondisi yang
berpengarup pada poin permainan.Tanaman tumbuh dengan durasi waktu nyata
akan tetapi tidak terlihat adanya tanaman yang mati. Game ini tidak memiliki
hama yang menyerang tanaman. Tujuan game ini menanam tanaman yang diminta
dalam misi permainan.TampilangameMy Free Farm dapat dilihat pada gambar
3.3.
Hal yang tidak terdapat dalam game ini sebagai berikut :
1. Hama yang menyerang tanaman.
[image:40.595.88.499.385.709.2]2. Tidak terlihat tanaman mati.
3.3.3 Analisis Game yang akanDibangun
Analisis game yang akan dibangun merupakanbagian yang mendeskripsikan
game yang akan dibangun. Pada bagian ini terdiri dari arsitektur, storyline, tingkat
kesulitan, gameplay
3.3.3.1 Arsitektur
Aplikasi ini dibangun dalam bentuk dua dimensi (2D), serta memiliki
fitur seperti pada Tabel 3.1.
Tabel 3.1 FiturGame
FiturGame
1. Sistem single player.
2. Terdapat 2 cuaca, yaitu cerah dan hujan. 3. Terdapat hama.
4. Terdapat 3 alat yang dapat digunakan.
5. Terdapat karakter utama, 2 NPC (Non-Playable Character) manusia, 1 NPC hama.
6. Terdapat 5 arena permainan.
7. Terdapatsimpan dan lanjut permainan.
3.3.3.2 Storyline
Storyline merupakan cerita pada game dimana pada storyline sebuah
game akan ditentukan bagaimana desainnya dan aturan permainannya. Pada game
ini, pemain akan berperan sebagai seorang pemuda yang diberi lahan perkebunan
kakeknya oleh kepala desa di sebuah desa bernama desa bunga. Lahan itu telah
ditinggalkan oleh kakek pemuda tersebut, sebenarnya akan dijual untuk dibangun
taman bermain apabila tidak ada yang mengurusinya. Karena pemuda itu memiliki
kenangan bersama kakeknya di perkebunan tersebut, maka pemuda itu bersedia
mengurus lahan perkebunan kakeknya.Kepala desa menyetujuinya dan
memberikan beberapa syarat untuk tinggal disana.Apabila pemuda tersebut dapat
mengurusi lahan selama sebulan dengan baik dan berprilaku baik dengan warga
sekitar, maka lahan maka pemuda itu diijinkan melanjutkan mengurus lahan
tersebut.Pemuda tersebut akhirnya merubah kehidupannya dengan bercocok
tanam untuk mempertahankan ladang kakenya itu. Berdasarkan cerita yang telah
3.3.3.3 Gameplay
Gameplaydilakukan untuk menggambarkan aturan-aturan dalam
game.Gameplaygame yang akan dibangun terdapat pada tabel 3.2.
Tabel 3.2 Gameplay
Gameplay
1. Karakter utama dapat digerakkan oleh pemain setelah intro dan dimulai dari ladang.
2. Pada awal permainan karakter utama diberi 100 koin dan 3 benih. 3. Koin digunakan sebagai alat tukar pada game.
4. Karakter utama memiliki poin stamina terbatas untuk bekerja setiap harinya.
5. Karakter utama diberi 3 alat utama yang dapat dipakai dalam bercocok tanam, yaitu : Cangkul, Siraman, dan Sabit.
6. Karakter utama dapat bergerak empat arah, yaitu : atas, kanan, kiri, bawah.
7. Karakter utama dapat menuju depan rumah untuk melanjutkan ke hari berikutnya dan mengembalikan poin stamina sampai penuh.
8. Poin stamina berkurang apabila karakter utama melakukan aksi.
9. Aksi karakter utama menggunakan alat dan barang, yaitu : menggemburkan tanah, menaburkan benih, menyiram, menyabit tanaman dan memetik hasil panen.
10.Karakter utama dapat berbicara dengan NPC Thomas setiap harinya untuk mendapatkan koin tambahan.
11.Karakter utama dapat berbicara dengan NPC Kim untuk membeli benih dan pestisida.
12.Pemain diberi batasan waktu selama 30 hari pada game untuk menyelesaikan game.
13.Sepuluh menit pada game berlangung selama 10 detik.
14.Waktu pada gameakan berhenti ketika membuka menu permainan.
15.Tanah yang dapat dipakai berkebun hanya tanah yang berwana coklat yang berada di ladang.
16.Tanah harus digemburkan dahulu dengan cangkul sehingga tanah dapat dipakai untuk menanam.
17.Tanah yang sudah digemburkan dan tidak ditanami bibit keesokan harinya akan menjadi rata kembali.
18.NPC Thomas dan Kim akan muncul pada pukul 8 sampai pukul 18 pada
game.
19.NPC hama akan muncul ketika tamanan tumbuh dan menyerangnya.
20.Tanaman yang diserang hama akan mati keesokan harinya apabila tanaman tersebut tidak segera diberi pestisida.
24.Memetik hasil panen akan menambah koin.
25.Rating game didapat dari perhitungan banyaknya hasil panen.
26.Rating game menentukan bagian akhir dalam game.
27.Rating game baik akan memperbolehkan pemain melanjutkan permainan
tanpa batasan waktu.
28.Rating game buruk akan menghentikan permainan.
3.3.3.4 Misi
Misi yang harus diselesaikan yaitu mengumpulkan poin
ratinggamesebanyak mungkin.Rating game menentukan layak tidaknya pemain
untuk melanjutkan permainan.Terdapat 2 kondisi pada akhir permainan, yaitu
permainan dilanjutkan tanpa adanya batasan waktu atau permainan dihentikan.
3.3.4 Sasaran Pemain dan KegunaanGameFarming Life
Sasaran pemain menentukan layak tidaknya pemain yang memainkan
game ini. Sasaran pemain yang layak memiliki kriteria :
1. Umur 12tahun ke atas,karena game tidak memiliki tindak kekerasan.
2. Dapat menggunakan komputer, karena game berbentuk aplikasi desktop.
3. Tidak buta total maupun tidak buta warna, karena game memiliki perbedaan
warna yang berpengaruh dalam game.
Kegunaan game menunjukan kegunaan game untuk pemain. Kegunaan
dalam game ini untuk meningkatkan daya pikir pemain dalam segi memanajemen
waktu dan sebagai sarana hiburan karena pemain bebas bermain sesuai keinginan
mereka untuk dapat menyelesaikan misi permainan.
3.3.5 Analisis Algoritma
Analisis algoritma yang dilakukan dalam penelitian ini adalah meneliti
bagaimana cara kerja algoritma koloni semutpada NPC hama di dalam game.
Kondisi dimana hama muncul berdasarkan kondisi tanaman yang tumbuh.
3.3.5.1 Penerapan Algoritma Koloni Semut
Algoritma koloni semut adalah algortima yang dapat mencari dan
menentukan jalur terbaik dari titik awal sampai titik akhir. Cara kerja algoritma
koloni semut yang diterapkan pada NPC hamauntuk mencari tanaman yang akan
Pada game ini, parameter yang digunakan untuk menjalankan algoritma
yaitu terdiri dari lima parameter yaitu sasaran sebagai kondisi tanaman, hama
sebagai semut, tanaman sebagai sumber makanan, sarang sebagai sarang semut
dan jejak hama sebagai jejak semut.
Secara keseluruhan algoritma ini terbagi menjadi beberapa bagian yaitu
Initialization, Construction, Trails Update, Terminating Condition.Penerapan
bagian-bagian tersebut pada game ini adalah sebagai berikut:
1. Initialization
Proses dimana menentukan nilai awal posisi sarang dan posisi tanaman
2. Construction
Proses pencarian jalur ke tujuan yaitu jalur dari posisi sarang sampai posisi
tanaman dengan carameletakkan hama pada posisi sarang lalu menyebarkan
hama secara acak.
3. Trails Update
Proses dimana hamayang disebar sudah menemukan posisi tanaman. Hama
kembali ke posisi sarang dari posisi tanaman dengan meninggalkan jejak
hama.
4. Terminating Condition
Proses penutupan algoritma bila kondisi telah terpenuhi, jika belum kembali
ke bagian 2.
Alur dari algortima koloni semut pada gambar 3.4 yang diterapkan pada
NPC hama dalam game ini sebagai berikut:
1. Periksa kondisi tanaman.
Langkah pertama adalah memeriksa apakah sasaran memiliki status true yang
memiliki arti tanaman dapat diserang atau false yang memiliki arti tanaman
tidak dapat diserang. Jika ya, maka akan lanjut ke langkah kedua. Jika tidak,
maka hama tidak akan muncul.
2. Inisialisasi
Langkah ini merupakan proses inisialisasi posSarang merupakan posisi
sarang, posTanaman merupakan posisi tanaman yang dapat diserang dan
3. Perulangan sebarkan hama
Langkah ini merupakan proses menyebarkan hama sampai batas jumlah hama
yang akan disebar.Hama yang disebar diposisikan pada posisi sarang.
4. Perulangan cek posisi
Langkah ini merupakan proses pengecekan setiap hama yang disebar apakah
menemukan jejak. Jika menemukan jejakHama maka hama tersebut
mengikuti jejakHama sampai ke posisi tanaman.Jika tidak, maka hama
melakukan pengecekan setaip hama yang disebar menemukan posisi tanaman.
Jika ya, makalanjut ke langkah ke-5 dan jika tidak, maka ulangi langkah ke-4.
5. Pemberian jejakHama
Langkah ini merupakan proses pemberian jejakHama bila hama sudah
menemukan posisi tanaman maka hama dijalankan ke posisi sarang dengan
meninggalkan jejakHama.
6. Pengecekan kondisi penutup
Langkah ini merupakan proses pengecekan ketika hama telah kembali ke
posisi sarang. Pengecekan apakah nilai sudah mencukupi. Jika ya, maka hama
dijalankan dari posisi sarang dengan mengikuti jejakHama. Jika tidak,
3.3.6 Analisis Kebutuhan Non-Fungsional
Analisis kebutuhan non-fungsional dilakukan untuk mengetahui spesifikasi
kebutuhan untuk sistem.Spesifikasi kebutuhan melibatkan analisis perangkat
keras/hardware, analisis perangkat lunak/software, analisis perangkat pikir/user.
3.3.6.1 Analisis Kebutuhan Perangkat Keras
Analisis kebutuhan perangkat keras digunakan untuk mengetahui
spesifikasi minimun perangkat keras dalam membangun gameFarming Lifepada
tabel 3.3 dan menjalankan gameFarming Lifepada tabel 3.4.
Tabel 3.3 Spesifikasi Perangkat Keras Pembangun
Nama Perangkat Spesifikasi
Prosesor 1.80Ghz
RAM 4GB
Harddisk 50GB
Display Resolusi 1366 x 768
Keyboard Standar
Mouse Standar
Tabel 3.4 Spesifikasi Perangkat Keras Pengguna
Nama Perangkat Spesifikasi
Prosesor 1.80Ghz
RAM 512MB
Harddisk 100MB
Display Resolusi 800 x 600
Keyboard Standar
Mouse Standar
3.3.6.2 Analisis Kebutuhan Perangkat Lunak
Analisis kebutuhan perangkat lunak digunakan untuk mengetahui spesifikasi
perangkat lunak dalam menjalankan dan membangun game Farming Life, seperti
pada tabel 3.5 dan tabel 3.6.
Tabel 3.5 Spesifikasi Perangkat Lunak Pembangun Nama Perangkat Lunak Spesifikasi
Sistem Operasi Microsoft Windows 7
Tools
Tabel 3.6 Spesifikasi Perangkat Lunak Pengguna Nama Perangkat Lunak Spesifikasi
Sistem Operasi Microsoft Windows XP, Win 7
Tools JDK 6
3.3.6.3 Analisis Kebutuhan Perangkat Pikir
Analisis kebutuhan perangkat pikir digunakan untuk mengetahui
spesifikasi pengguna untuk dapat memainkan game Farming Life, seperti pada
tabel 3.7.
Tabel 3.7 Spesifikasi Pengguna
Peran Pemain
Usia 12 tahun ke atas
Tingkat Keterampilan Dapat menggunakan komputer
Kondisi Fisik Tidak buta total dan tidak buta warna.
3.3.7 Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional dilakukan untuk mengetahui gambaran
sistem yang akan dibangun. Analisis kebutuhan fungsional terdiri dari
pendefinisan fungsi game, penggambaran alir aktivitas pada game dan
penggambaran interaksi antar objek pada game.
3.3.7.1 Pendefinisian Fungsi Game
Pendefinisian fungsi game digunakan untuk menggambarkan
fungsi-fungsi pada game. Pendefinisian fungsi-fungsi pada game ini digambarkan dengan
menggunakan use case diagram, definisi aktor,definisiuse case dan skenario use
case.
1. Use Case Diagram
Penggambaran fungsi game berdasarkan interaksi antar aktor dan objek
pada sistem digambarkan dengan menggunakan diagram use case yang terdapat
Gambar 3.5 Use Case Diagram
2. Definisi Aktor
Definisi aktor berfungsi menjelaskan peran setiap aktor yang terdapat pada
use case. Definisi aktor ditunjukan pada Tabel 3.8.
Tabel 3.8 Definisi Aktor
No. Aktor Deskripsi
1. Pemain User / pengguna / orang yang memainkan game ini
3. Definisi Use Case
Definisi use case berfungsi menjelaskan tiap-tiap proses dan objek yang
terdapat pada use case. Definisi use case ditunjukan pada Tabel 3.9.
Tabel 3.9 Definisi Use Case
No. Use Case Deskripsi
1 Mulai Permainan Proses memulai permaian
2 Lanjutkan Permainan Proses melanjutkan permainan 3 Tampil Arena Permainan Proses menampilkan arena permainan
4. Skenario Use Case
Skenario use case menunjukan proses apa yang terjadi pada setiap bagian di
dalam use case tersebut, dimana user memberikan perintah pada bagian-bagian
use case dan respon apa yang diberikan oleh sistem kepada user setelah user
memberikan perintahnya. Skenario use case ditujukan pada Tabel 3.10 sampai
dengan Tabel 3.12.
System
Pemain
Mulai Permainan
Lanjutkan Permainan
Tampil Arena Permainan
Tabel 3.10 Skenario Use CaseMulai Permainan Identifikasi
Nomor 1
Nama Mulai Permainan
Tujuan Memulai permaian dari awal
Deskripsi Proses memulai permainan
Aktor Pemain
Skenario Utama
Kondisi Awal Aktor berada pada menu utama
Aksi Aktor Reaksi Sistem
1. Memilih mulai 2. Menampilkan Intro
3. Menampilkan Kotak Nama 4. Memasukan Nama 5. Menampilkan Nama 6. Menekan Tombol ENTER 7. Menampilkan Petunjuk
8. Memilih keluar 9. Menampilkan pesan keluar aplikasi
Skenario Tambahan
Kondisi Awal Aktor berada di pesan keluar permainan 1. Memilih Ya 2. Keluar aplikasi
3. Memilih Tidak 4. Menampilkan Menu Utama
Tabel 3.11 Skenario Use CaseLanjutkan Permainan Identifikasi
Nomor 2
Nama Lanjutkan Permainan
Tujuan Melanjutkan permainan sebelumnya
Deskripsi Proses melanjutkan permainan
Aktor Pemain
Skenario Utama Kondisi Awal Menu Utama ditampilkan
Aksi Aktor Reaksi Sistem
1. Memilih lanjut 2. Menampilkan Data Permainan 3. Memilih Data 4. Menampilkan Petunjuk
5. Memilih keluar 6. Menampilkan pesan keluar aplikasi Skenario Tambahan
Kondisi Awal Aktor berada di pesan keluar permainan 1. Memilih Ya 2. Keluar aplikasi
3. Memilih Tidak 4. Menampilkan Menu Utama
Tabel 3.12 Skenario Use CaseTampil Arena Permainan Identifikasi
Nomor 3
Tujuan Menampilkan Arena permainan
Deskripsi Proses menampilkan arena permainan
Aktor Pemain
Skenario
Kodisi Awal Arena permainan ditampilkan
Aksi Aktor Reaksi Sistem
Skenario Normal
1. Menggerakan Karakter 2. Menampilkan Karakter Bergerak 3. Menekan Tombol Aksi 4. Menampilkan Aksi
5. Menekan Tombol ENTER 6. Menampilkan Dialog
7. Menekan Tombol ESC 8. Menampilkan Menu Permainan 9. Memilih Status Permainan 10. Menampilkan Status Permainan 11. Memilih Simpan Data 12. Menampilkan Data Permainan 13. Memilih Data 14. Menyimpan Data
15. Memilih Keluar 16. Menampilkan pesan keluar permainan
Skenario Tambahan
Kondisi Awal Aktor berada di pesan keluar permainan 1. Memilih Ya 2. Menampilkan Menu Utama 3. Memilih Tidak 4. Menampilkan Menu Permainan
3.3.7.2 Penggambaran Alir Aktivitas Pada Game
Penggambaran alir aktivitas pada game menggambarkan berbagai alir
aktivitas dalam game yang sedang dirancang, bagaimana masing-masing alir
berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir.
Penggambaran alir aktivitas pada game digambarkan menggunakan Activity
Diagram. Activity diagram merupakan state diagram khusus, dimana sebagian
besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya
state sebelumnya (internal processing). Oleh karena itu activity diagram tidak
menggambarkan behavior internal sebuah sistem (dan interaksi antar subsistem)
secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas
dari level atas secara umum. Sebuah aktivitas dapat direalsasikan oleh satu Use
Case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara Use
Case menggambarkan bagaimana actor menggunakan sisitem untuk melakukan
aktivitas. Activity diagram ditunjukan pada Gambar 3.13 sampai dengan Gambar
Gambar 3.6 Activity DiagramMulai Permainan
Aktor Sistem
Memilih mulai Menampilkan intro
Memasukan Nama Menampilkan Kotak Nama
Menampilkan Nama Menekan Tombol ENTER
Menampilkan Petunjuk
Memilih keluar Menampilkan pesan keluar aplikasi
Memilih Ya Memilih Tidak
Gambar 3.7 Activity DiagramLanjutkan Permainan
Gambar 3.8 Activity DiagramArena Permainan
Aktor Sistem
Menggerakkan Karakter
Menekan T ombol Aksi Menekan T ombol ENT ER
Menekan T ombol ESC
Memilih Status Permainan Memilih Simpan Data
Memilih Data Memilih Keluar
Memilih Ya Memilih T idak
Menampilkan Karakter Bergerak Menampilkan Aksi Menampilkan dialog
Menampilkan Menu Permainan
Menampilkan Status Permainan
Menampilkan Data Permainan
Menyimpan Data
Menampilkan pesan keluar permainan
Menampilkan Menu Utama
Menampilkan Arena Permainan
Aktor Sistem
Memilih lanjut
Memilih keluar Menampilkan Data Permainan
Memilih Data Menampilkan Petunjuk
Memilih Ya Memilih Tidak Menampilkan Menu Utama
3.3.7.3 Penggambaran Kelas
Kelas digambarkan dengan class diagram.Diagram kelas atau classdiagram
menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat
untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau
[image:54.595.188.380.245.443.2]operasi.Class diagram ditunjukan pada Gambar 3.9.Pendefinisian kelas ditunjukan pada
Tabel 3.13.
Tabel 3.13 Definisi Class
Jenis Class Nama Class
Boundary Main
Intro Field Town01 Town02 Tsquare
Beach
Control Hero
TextBar Main
Town01
< < boundary> >
+ boolean f ront + boolean back + int event Dialog + int npc + int CLOSE + . . . + Town01() + public void act () + public void addCharact ers() + public void dist ance() + public void event s() + void t ot alHarga()
Field
< < boundary> >
+ boolean f ront + boolean back + int event Dialog + int npc + int CLOSE + . . . + Field() + public void act () + public void addCharact ers() + public void dist ance() + public void event s() + public void cont rolMenuGame() + public void plant () + public void cuaca() + public void loadFarm() + public void f arm()
Town02
< < boundary> >
+ boolean f ront + boolean back + int event Dialog + int npc + int CLOSE + . . . + Town02() + public void act () + public void addCharact ers() + public void dist ance() + public void event s()
TSquare
< < boundary> >
+ boolean f ront + boolean back + int event Dialog + int npc + int CLOSE + . . . + TSquare() + public void act () + public void addCharact ers() + public void event s() + public void dist ance()
Beach
< < boundary> >
+ boolean f ront + boolean back + int event Dialog + int npc + int CLOSE + . . . + Beach() + public void act () + public void addCharact ers() + public void dist ance() + public void event s()
Main
< < boundary> >
+ Main() + void act () + void pilihMenuUt ama()
I nt ro
< < boundary> >
-Kot akNama KN + Text Bar Text + st at ic boolean hapus + I nt ro() + void act () + void kot akNama()
Port al
+ Port al(int port al)
Sprit e
+ void set Animat ion(Animat ion newAnim) + Animat ion get Animat ion() + int get Height () + int get Widt h() + boolean isNear(Class clss) + boolean canSee(Class clss) + boolean canLook(Class clss)
Hero
< < cont rol> >
+ Hero()
+ st at ic void init ializeI mages() + void act ()
+ void cont rols() + void runRight () + void runLef t () + void runUp() + void runDown() + void colRight () + void colLef t () + void colDown() + void colUp() + void side() + void t ravel() + void dist ance() + void wait Time() + void changeI t ems() + void changeTools()
Ot her
+ Ot her(int obj)
House
+ House(int house)
Flower
+ Flower(int f lower)
Tree
+ Tree(int t ree)
Fence
+ Fence()
Text Bar
+ St ring Value + St ring I nt ro1 + St ring I nt ro2 + . . . + Text Bar() + void act () + void Draw() + void Writ e() + void set Page() + void changePage() + void changeDialog() + void t ime() + void cont rols()
Anim at ion
+ st at ic f inal int DEFAULT_DURATI ON + ArrayList < Greenf oot I mage> images + int act Count
+ int currI mage + int imageDurat ion + Animat ion()
+ void addI mage(Greenf oot I mage img) + Greenf oot I mage get I mage() + void updat e() + boolean isFinished()
+ void set I mageDurat ion(int perI mageCount ) + int get I mageDurat ion()
+ int get I mageCount () + void reset () + St ring t oSt ring()
Sound
+ st at ic void play(int music, int volume) + st at ic void st op()
Creat
-int Speed -int delt aX -int delt aY -Ant Hill home + Creat ure()
+ void set HomeHill(Ant Hill home + Ant Hill get HomeHill() + void walkTowardsHome() + void walkAwayFromHome() + void headTowards(Act or t arg + void walk()
+ void headRoughlyTowards(Ac -int comput eHomeDelt a(boolean -int adjust Speed(int speed) -int capSpeed(int speed) + boolean randomChance(int pe + boolean canSee(Class clss)
Ant
-st at ic f inal int MAX_PH_LEVEL -st at ic f inal int PH_TI ME -boolean carryingFood -int pheromoneLevel -int f oundLast Pheromone + Greenf oot I mage ant + st at ic boolean hide + Ant (Ant Hill home) + void act () + void searchForFood() + void checkHome() + boolean at Home() + void checkFood() + void t akeFood(Food f ood) + void dropFood() + void handlePheromoneDrop() + boolean smellPheromone() + void walkTowardsPheromone() + void checkGet Food() + void removeAnt ()
Ant Hill
+ st at ic boolean act ive + st at ic int ant s -int maxAnt s -Count er f oodCount er -int f ood -int t arget + Greenf oot I mage ah + st at ic boolean hide + Ant Hill()
+ Ant Hill(int numberOf Ant s) + void act ()
+ void count Food() + void sebarSemut () + void checkTarget ()
Pherom one
-f inal st at ic int MAX_I NTENS -int int ensit y
+ st at ic boolean hide
St at us
+ st at ic int MAXSTAMI NA + st at ic int STAMI NA + st at ic int COI N + st at ic boolean SLEEP + void act () + void drawSt at us() + void kurangKoin()
Object Menu
+ int MENUGAME + void drawObject (St ring menu)
Cuaca
+ int y, t , orig + double x, inc + st at ic boolean hapus + Cuaca(int dist ance) + void act ()
NPC01
+ NPC01()
NPC02
+ NPC02()
CTools
+ st at ic int alat + st at ic int barang + int x, y + CTools() + void act ()
Message
+ void drawMessage(St ring m)
Kot akNam a
+ St ring key + st at ic St ring Nama + Kot akNama() + void act () + void t ampilNama() + void cekMasukan()
Tim e
+ st at ic boolean t ime + st at ic boolean sleep + st at ic boolean BONUS + St ring dayName + St ring mont hName + void act () + void mark() + int millisElapsed() + void t imeSt art () + void t imeI mage()
Rat ingGam e
+ st at ic int RG -int MAX + void act () + void point I mage() + void hit ungRat ing()
SaveSlot
+ st at ic boolean savemenu + SaveSlot () + void act () + File chooseFile() + void f ileI nf o()
+ boolean makeFolder(St ring f olderName) + void creat eDat a(St ring dat aName) + void remove()
BAB 4
BAB 5
BAB 6
BAB 7
8.3.1.1 Penggambaran Interaksi Antar Objek Pada Game
Penggambaran interaksi antar objek menggambarkan interaksi antar objek
yang terjadi di dalam dan di luar sistem pada game (termasuk player, display, dan
sebagainya).Penggambaran interaksi antar objek pada game menggunakan
Sequence Diagram.Sequence diagram terdiri atas dimensi vertical (waktu) dan
dimensi horizontal (objek-objek yang terkait). Pada sequence diagram ini
menggambarkan scenario atau rangkaian langkah-langkah yang dilakukan pada
sistem sebagai respon dari sebuah event untuk menghasilkan output tertentu.
<