IDENTITAS DIRI
Nama : Lupti Wahyu Utama
Tempat, Tanggal Lahir : Ciamis, 4 Juli 1991 Jenis Kelamin : Laki – laki
Agama : Islam
Kewarganegaraan : Indonesia
Alamat : Cikabuyutan Timur RT.07/RW.12 Desa
Hegarsari Kec. Pataruman Kota Banjar Provinsi Jawa Barat
No. HP : +6285721812124
E-Mail : [email protected]
PENDIDIKAN FORMAL
SD Negeri 6 Hegarsari 1997 – 2003
SMP Negeri 1 Banjar 2003 – 2006
SMA Negeri 1 Banjar 2006 – 2009
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
LUPTI WAHYU UTAMA
10109331
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
Assalamu’alaikum Warahmatullahi Wabarakatuh.
Puji dan syukur Alhamdulillah penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat, taufiq, hidayah, serta inayah-Nya, sehingga
penulis dapat menyelesaikan skripsi yang berjudul “Pembangunan Game
Penanganan Sampah Kota” sebagai salah satu syarat kelulusan pada Program Strata 1 Jurusan Teknik Informatika Fakultas Teknik dan Ilmu Komputer di Universitas Komputer Indonesia.
Shalawat serta salam semoga senantiasa tercurah kepada Nabi Besar Muhammad SAW beserta seluruh keluarga dan sahabatnya yang selalu membantu perjuangan beliau dalam membimbing ke jalan yang benar.
Dengan selesainya penyusunan laporan skripsi ini penulis banyak memperoleh dukungan, masukan dan bimbingan yang sangat bermanfaat dari berbagai pihak selama penyusunan skripsi ini, oleh karena itu penulis mengucapkan terima kasih yang sebesar – besarnya kepada:
1. Allah SWT atas rahmat, berkah dan izin-Nya saya bisa menyelesaikan penulisan skripsi ini.
2. Ibu Ai Tamimah dan Bapak Adjat Sudrajat sebagai orangtua yang selalu memberikan dorongan dan tekanan dalam menyelesaikan skripsi ini, serta Dian Rahayu Nugraha, Wulan Oktisari dan keluarga besar yang telah memberikan dukungan baik secara moril maupun materil serta doa yang tiada hentinya sehingga penulis bisa bertahan dan berpijak hingga saat ini. 3. Bapak Rasim, M.T. selaku pembimbing yang telah membimbing penulis
dalam menyelesaikan skripsi.
iv
7. Para dosen Teknik Informatika dan seluruh staff jurusan Teknik Informatika yang selama ini telah membantu dan memberikan kesempatan kepada penulis untuk menyelesaikan skripsi ini.
8. Roy, Dimas, Ariev, Marni, Rudi, Reja yang selalu bersama dan membantu dalam mengerjakan dan menyelesaikan skripsi.
9. Teman – teman IF-8 2009 seperjuangan yang saya cintai yang sudah membantu dan memberikan dukungan motivasi kepada penulis.
10.Semua pihak yang membantu dalam menyelesaikan skripsi ini yang tidak dapat penulis sebutkan satu persatu, terima kasih banyak atas semua dukungan dan bantuannya hingga skripsi ini dapat terselesaikan dengan baik.
Penulis sangat menyadari dalam penyusunan skripsi ini masih banyak terdapat kekurangan. Penulis juga berharap agar skripsi ini dapat bermanfaat bagi semua pihak khususnya bagi penulis dan umumnya bagi pembaca. Aamiin Ya Rabbal a’lamin.
Wassalamu’alaikum Warahmatullahi Wabarakatuh.
Bandung, Februari 2014
v
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... ix
DAFTAR TABEL ... xii
DAFTAR SIMBOL ... xiv
DAFTAR LAMPIRAN ... xix
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 2
1.3 Maksud dan Tujuan ... 2
1.4 Batasan Masalah... 2
1.5 Metodologi Penelitian ... 3
1.5.1 Metode Pengumpulan Data ... 3
1.5.2 Metode Pembuatan Perangkat Lunak ... 4
1.6 Sistematika Penulisan ... 5
BAB 2 TINJAUAN PUSTAKA ... 7
2.1 Sampah ... 7
2.2 Game ... 8
2.2.1 Pengertian Game ... 9
2.2.2 Jenis-jenis Game Berdasarkan Platform ... 9
2.2.3 Genre Game ... 10
2.2.4 Kategori Game Lainnya ... 12
2.2.5 Elemen Pada Game ... 13
2.3 Artificial Intelligence (AI)... 14
2.4 Kecerdasan Buatan Pada Game ... 14
vi
2.7.2 Objek (Object) ... 23
2.7.3 Kelas (Class) ... 23
2.7.4 Pembungkusan (Encapsulation) ... 24
2.7.5 Pewarisan (Inheritance) dan Generalisasi/Spesialisasi ... 24
2.7.6 Polimorfisme ... 24
2.8 UML (Unified Modeling Language) ... 25
2.9 Diagram UML ... 26
2.9.1 Diagram Kelas (Class Diagram) ... 27
2.9.2 Diagram Use Case... 27
2.9.3 Diagram Aktivitas (Activity Diagram) ... 28
2.9.4 Diagram State Machine ... 29
2.9.5 Diagram Sekuen (Sequence Diagram) ... 30
2.10 Unity ... 31
2.11 Bahasa Pemrograman C# ... 32
2.12 Teknik Pengujian Perangkat Lunak ... 33
2.12.1 Pengujian Black Box ... 33
2.12.2 Pengujian White Box ... 33
2.13 Skala Guttman ... 34
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 37
3.1 Analisis Sistem ... 37
3.1.1 Analisis Game Sejenis ... 37
3.1.1.1 Game Garbage Grab ... 37
3.1.2 Analisis Game Yang Dibangun ... 40
3.1.2.1 Gameplay ... 40
3.1.2.2 Jenis Permainan ... 41
vii
3.1.4.1 Analisis Kebutuhan Perangkat Lunak ... 53
3.1.4.2 Analisis Kebutuhan Perangkat Keras ... 54
3.1.4.3 Analisis Pengguna ... 55
3.1.5 Analisis Kebutuhan Fungsional ... 56
3.1.5.1 Use Case Diagram ... 56
3.1.5.2 Activity Diagram ... 62
3.1.5.3 Sequence Diagram ... 69
3.1.5.4 Statechart Diagram ... 75
3.1.5.5 Class Diagram ... 77
3.2 Perancangan Sistem ... 78
3.2.1 Storyboard ... 78
3.2.2 Pengenalan Karakter Dan Item ... 79
3.2.3 Perancangan Arsitektur ... 81
3.2.3.1 Perancangan Struktur Menu ... 81
3.2.3.2 Perancangan Antarmuka... 81
3.2.3.3 Perancangan Pesan ... 86
3.2.3.4 Jaringan Semantik ... 86
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 87
4.1 Implementasi Sistem ... 87
4.1.1 Implementasi Perangkat Keras ... 87
4.1.2 Implementasi Perangkat Lunak ... 87
4.1.3 Implementasi Antarmuka ... 88
4.1.3.1 Antarmuka Menu Utama ... 88
4.1.3.2 Antarmuka Petunjuk... 89
4.1.3.3 Antarmuka Menu Misi ... 89
4.1.3.4 Antarmuka Permainan ... 90
viii
4.2.1 Pengujian Alpha ... 92
4.2.1.1 Skenario Pengujian Aplikasi ... 93
4.2.1.2 Hasil Pengujian (Black Box) ... 93
4.2.1.3 Kasus dan Hasil Pengujian (White Box) ... 96
4.2.2 Pengujian Beta ... 102
4.2.2.1 Rumusan Pengujian Beta ... 102
4.2.2.2 Hasil Kuesioner ... 102
4.2.2.3 Kesimpulan Pengujian Beta ... 104
BAB 5 KESIMPULAN DAN SARAN ... 105
5.1 Kesimpulan ... 105
5.2 Saran ... 105
107 2006.
[2] D. Hoornweg dan P. Bhada-Tata, "What a waste : a global review of solid waste management," Urban development series ; knowledge papers no. 15, Washington D.C. - The Worldbank, 2012.
[3] P. P. Widodo dan Heriawati, Menggunakan UML, Bandung: Informatika, 2011.
[4] Suyanto, Artificial Intelligence: Searching - Reasoning - Planning -
Learning, Bandung: Informatika, 2011.
[5] I. Andang, Education Games (Menjadi cerdas dan ceria dengan permainan edukatif), Yogyakarta: Pilar Media, 2006.
[6] A. Nugroho, Rational Rose Untuk Pemodelan Berorientasi Objek, Bandung: Informatika, 2005.
[7] M. Fowler, UML Distilled Edisi 3 Panduan Singkat Bahasa Pemodelan
Objek Standar, Yogyakarta: Andi, 2005.
[8] "Unity Technologies," 2013. [Online]. Available: http://unity3d.com/. [Accessed 10 October 2013].
[9] I. Sommerville, Software Engineering (Rekayasa Perangkat Lunak), 6th ed.,
Hilarius Wibi Hardani, Ed., Jakarta: Erlangga, 2003.
[10] S. Rosa A. dan M. Shalahuddin, Rekayasa Perangkat Lunak Terstruktur dan
Berorientasi Objek, Bandung: Informatika, 2013.
[11] S. Guritno, S. dan U. Rahardja, Theory and Application of IT Research,
Yogyakarta: Andi, 2011.
[12] R. Elviza dan Y. Kadarisman, "Perilaku Masyarakat Dalam Pengelolaan Sampah Rumah Tangga Di Kelurahan Tanjung RHU Kecamatan Lima Puluh Kota Pekanbaru," 2013.
[13] R. S. Pressman, Software Engineering A Practitioner's Approach 7th Edition,
1
1.1 Latar Belakang Masalah
Sampah merupakan bagian dari keseharian manusia. Setiap aktifitas manusia akan menghasilkan buangan atau sampah yang jumlah dan volumenya sebanding dengan tingkat konsumsi terhadap barang yang digunakan sehari-hari. Apabila tidak ditangani secara baik dan benar, maka akan menimbulkan masalah terhadap kesehatan, sosial, ekonomi dan keindahan.
Sebagai contoh di DKI Jakarta, jumlah sampah di Ibu Kota mencapai 7.896 ton perhari. Setiap penduduk Jakarta, rata-rata membuang sampah padat sebesar 0,88 kg per hari. Dari jumlah tersebut, hanya 83% sampah yang berhasil dikumpulkan, sisanya terbuang mencemari lingkungan. Pertambahan jumlah sampah terjadi seiring dengan naiknya standar hidup dan populasi di perkotaan serta adanya sifat konsumtif masyarakat yang semakin besar. Belum lagi masyarakat yang suka membuang sampah sembarangan yang mengakibatkan munculnya timbunan – timbunan sampah. Berdasarkan [12] pengetahuan masyarakat mengenai sampah dan jenis sampah didapat 70% berpengetahuan baik, dan hanya 55.71% yang melakukan pengelolaan sampah, seperti mengurangi volume sampah dan pemanfaatan kembali sampah. Hal ini disebabkan kurangnya pembelajaran dan pengetahuan kepada masyarakat mengenai sampah dan pengelolaannya secara tepat serta bahaya dari sampah.
Upaya peduli terhadap kebersihan lingkungan dapat dimulai dengan hal mudah yaitu dengan membiasakan membuang sampah pada tempatnya secara benar dan sebanyak mungkin mendayagunakan kembali sampah. Oleh karena itu dibutuhkan suatu media yang lebih interaktif dan menarik yang dapat memberikan pengetahuan mengenai penanganan sampah dan pengelolaannya serta akibat yang ditimbulkannya sehingga dapat meningkatkan minat masyarakat untuk lebih peduli terhadap kebersihan lingkungan khususnya dari sampah.
media pembelajaran adalah game. Game memiliki potensi untuk meningkatkan proses pembelajaran menjadi lebih efektif karena manusia memiliki sifat dasar lebih cepat mempelajari segala sesuatu secara visual-herbal. Salah satu contoh
game dengan gameplay mengumpulkan sampah adalah game yang berjudul
garbage grab. Namun pada game ini hanya mengumpulkan sampah tanpa diolah
kembali.
Berdasarkan uraian di atas, maka penulis tertarik mengambil topik skripsi dengan membangun game yang berjudul “Pembangunan Game Penanganan Sampah Kota” yang diharapkan dapat memberikan pengetahuan kepada masyarakat untuk menjaga kebersihan khususnya dari sampah.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan, maka rumusan masalahnya adalah bagaimana membangun game yang dapat memberikan informasi mengenai masalah sampah dan penanganannya.
1.3 Maksud dan Tujuan
Maksud dari penelitian skripsi ini adalah membangun game penanganan sampah kota.
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah :
1. Dapat menyampaikan informasi mengenai pananganan sampah dan bahaya yang diakibatkan dari sampah.
2. Dapat menjadi media pengenalan terhadap penanganan sampah, seperti pengumpulan, pemilahan dan recycle secara lebih interaktif.
1.4 Batasan Masalah
Batasan masalah dalam penelitian tugas akhir ini meliputi:
1. Konsep penanganan sampah yang digunakan hanya pengambilan dan
recycle.
2. Jenis game yang dibangun yaitu casual game.
4. Game berbasis desktop atau diperuntukkan untuk PC (Personal Computer).
5. Game ini dimainkan oleh 1 pemain atau single player dan offline.
6. Menggunakan Unity 4.0 sebagai aplikasi pembangun program dengan bahasa pemrograman C#.
7. Kecerdasan buatan yang digunakan adalah A Star (A*) yang diterapkan pada NPC mobil.
1.5 Metodologi Penelitian
Metode penelitian yang digunakan adalah metode penelitian dan pengembangan (research and development), yaitu metode penelitian yang bertujuan menghasilkan produk tertentu serta menguji efektivitas produk tersebut [11]. Sedangkan metodologi penelitian dilakukan melalui metode pengumpulan data dan pembuatan perangkat lunak .
1.5.1 Metode Pengumpulan Data
Metode pengumpulan data bertujuan untuk memperoleh data apa saja yang dibutuhkan dalam membangun game penanganan sampah kota. Adapun yang dilakukan dalam metode pengumpulan data adalah sebagai berikut:
1. Studi Literatur
Pengumpulan data dilakukan dengan cara mempelajari dan menelaah berbagai literatur dari perpustakaan, situs internet, buku dan bacaan-bacaan yang ada kaitannya dengan judul penelitian seperti artikel laporan data sampah perkotaan
2. Observasi
1.5.2 Metode Pembuatan Perangkat Lunak
Metode dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall. Terdapat lima tahapan dalam pembuatan perangkat lunak pada model waterfall menurut Ian Sommerville [9]. Adapun tahapan-tahapan dalam pembuatan perangkat lunak selama proses penelitian dengan menggunakan model waterfall adalah sebagai berikut :
1. Requirements analysis and definition
Pada tahap ini dilakukan pengumpulan apa saja yang dibutuhkan dalam penelitian. Seperti pengumpulan data – data, jurnal, artikel mengenai penanganan sampah dan pengguna, serta komponen – komponen yang dibutuhkan dalam membangun aplikasi game.
2. System and software design
Pada tahap ini dilakukan analisis dan perancangan sistem, baik itu analisis kebutuhan fungsional ataupun non fungsional seperti analisis data, analisis berorientasi objek yang terdiri dari perancangan use case diagram, activity
diagram, sequence diagram, statechart diagram, dan class diagram. Serta
perancangan antarmuka, perancangan pesan, dan perancangan method. Tahap ini mentranslasi kebutuhan perangkat lunak dari tahap analisis kebutuhan ke representasi desain agar dapat diimplementasikan menjadi aplikasi pada tahap berikutnya.
3. Implementation and unit testing
Pada tahap ini perancangan sistem dan perangkat lunak ditranslasikan ke dalam aplikasi perangkat lunak dengan menggunakan bahasa pemrograman C# dan IDE Unity 3D. Sehingga hasil dari tahap ini adalah aplikasi perangkat lunak yang sesuai dengan perancangan sistem dan perangkat lunak yang telah dibuat pada tahap sebelumnya.
4. Integration and system testing
meminimalisirnya serta memastikan perangkat lunak yang dihasilkan sesuai yang diinginkan.
5. Operation and maintenance
Tahap mengoperasikan program dan melakukan pemeliharaan, seperti perbaikan kesalahan yang tidak ditemukan pada tahap sebelumnya. Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke pengguna (meskipun tidak harus selalu dilakukan).
Ilustrasi metode pembuatan perangkat lunak dengan model waterfall
digambarkan pada Gambar 1.1.
Requirements analysis and definition
System and softwate design
Implementation and unit testing
Itegration and system testing
Operation and maintenance
Gambar 1.1 Ilustrasi model waterfall [9]
1.6 Sistematika Penulisan
BAB 1 PENDAHULUAN
Pada bab ini menguraikan tentang latar belakang masalah, merumuskan permasalahan yang terjadi, menentukan maksud dan tujuan penelitian, batasan masalah, dan metodologi penelitian yang digunakan serta sistematika penulisan. BAB 2 TINJAUAN PUSTAKA
Pada bab ini membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis permasalahan. Seperti pengertian sampah, teori tentang game, A*, pemrograman berorientasi objek, dan diagram UML.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini membahas tentang analisis sistem, analisis game sejenis, analisis game
yang akan dibangun, analisis target pengguna, analisis kecerdasan buatan yang
digunakan yaitu A*, analisis kebutuhan fungsional dan non fungsional. Serta
perancangan pada game yang akan dibangun.
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Pada bab ini membahas tentang implementasi dari perancangan perangkat lunak sebelumnya ke dalam bahasa pemrograman yang digunakan yaitu C# dengan IDE
Unity 3D dan pengujian terhadap aplikasi perangkat lunak apakah telah benar dan
sesuai seperti yang diharapkan.
BAB 5 KESIMPULAN DAN SARAN
Pada bab ini membahas tentang kesimpulan yang diperoleh dari hasil penelitian yang telah dilakukan dan masukan-masukan yang dapat digunakan untuk perbaikan hasil
7
2.1 Sampah
Menurut Undang-Undang Republik Indonesia Nomor 18 Tahun 2008 Tentang Pengelolaan Sampah, sampah adalah sisa kegiatan sehari-hari manusia dan atau proses alam yang berbentuk padat. Sampah spesifik adalah sampah yang karena sifat, konsentrasi, dan atau volumenya memerlukan pengelolaan khusus. Sedangkan pengertian sampah menurut beberapa ahli adalah sebagai berikut:
1. Basriyanta: sampah merupakan barang yang dianggap sudah tidak terpakai dan dibuang oleh pemilik atau pemakai sebelumnya, tetapi masih bisa dipakai atau dikelola dengan prosedur yang benar.
2. Ecolink (1996): sampah adalah suatu bahan yang terbuang atau dibuang dari sumber hasil aktivitas manusia maupun proses alam yang belum memiliki nilai ekonomis.
3. Setyo Purwendro: sampah merupakan bahan padat buangan dari kegiatan rumah tangga, pasar, perkantoran, rumah penginapan, hotel, rumah makan, industri ataupun aktivitas manusia lainnya sehingga dengan kata lain sampah merupakan hasil sampingan dari aktivitas manusia yang sudah tidak terpakai.
Sampah padat pada umumnya dapat dibagi menjadi dua, yaitu: 1. Sampah Organik
Sampah organik terdiri dari bahan – bahan penyusun tumbuhan dan hewan yang diambil dari alam atau dihasilkan dari kegiatan pertanian, perikanan atau yang lain. Sampah ini dengan mudah diuraikan dalam proses alami. Sampah rumah tangga sebagian besar merupakan bahan organik, misalnya sampah dari dapur, sisa tepung, sayuran dan lain – lain.
2. Sampah Non-organik
non-organik secara keseluruhan tidak dapat diuraikan oleh alam, sedang sebagian lainnya hanya dapat diuraikan dalam waktu yang sangat lama. Sampah jenis ini pada tingkat rumah tangga, misalnya berupa botol, tas plastik atau lainnya.
Kertas, koran, dan karton merupakan pengecualian. Berdasarkan asalnya, kertas, koran, dan karton termasuk sampah organik. Tetapi karena kertas, karton, dan koran dapat didaur ulang seperti sampah non-organik lain misalnya gelas, kaleng, dan plastik maka dimasukkan ke dalam kelompok sampah non-organik.
Langkah bijak menyelesaikan sampah adalah zero waste. Untuk menuju kondisi zero waste, pada dasarnya menerapkan prinsip reduce, reuse, recycle (3R).
1. Reduce
Upaya pertama menuju dunia tanpa sampah adalah mengurangi sampah yang “akan” dihasilkan. Sebagai konsumen, perlu untuk mulai mencegah atau meminimalisasi keberadaan sampah yang akan diakibatkan dari hasil belanja.
2. Reuse
Pilihlah barang – barang yang bisa dipakai kembali. Hindari pemakaian barang – barang yang disposable (sekali pakai, buang). Hal ini dapat memperpanjang waktu pemakaian barang sebelum ia menjadi sampah.
3. Recycle
Merupakan upaya untuk mendaur ulang sampah menjadi barang yang lebih bernilai misalnya botol plastik menjadi pot bunga, kertas koran menjadi kertas daur ulang dan lainnya.
2.2 Game
Game merupakan salah satu media hiburan yang paling popular untuk
2.2.1 Pengertian Game
Game merupakan sebuah bentuk seni dimana penggunanya disebut
dengan pemain (player), diharuskan membuat keputusan-keputusan dengan tujuan mengelola sumber daya yang diperoleh dari kesempatan-kesempatan bermain
(token) miliknya untuk mencapai tujuan tertentu. Video game adalah bentuk game
yang interaksi umumnya melibatkan media video dan audio.
Menurut [5] terdapat dua pengertian game. Pertama, game (permainan) adalah sebuah aktivitas bermain yang murni mencari kesenangan tanpa mencari menang atau kalah. Kedua, permainan diartikan sebagai aktifitas bermain yang dilakukan dalam rangka mencari kesenangan dan kepuasan, namun ditandai pencarian menang – kalah.
Berdasarkan pengertian – pengertian di atas, game merupakan sebuah aktivitas dalam rangka mencari kesenangan dimana penggunanya diharuskan membuat keputusan-keputusan untuk mencapai tujuan tertentu dengan ditandai menang – kalah.
2.2.2 Jenis-jenis Game Berdasarkan Platform
Berikut ini beberapa jenis game berdasarkan cara pembuatannya, cara pemasarannya dan mesin yang menjalankannya. Jenis-jenis game tersebut menurut [1] adalah:
1. Game PC
Game PC adalah game yang dimainkan pada PC (Personal Computer)
yang memiliki kelebihan yaitu tampilan antarmuka yang baik untuk input
maupun output. Output visual berkualitas tinggi karena layar komputer biasanya memiliki resolusi yang jauh lebih tinggi dibandingkan dengan layar televisi biasa.Kekurangannya adalah spesifikasi komputer yang sangat bervariasi antar satu komputer dengan komputer yang lainnya menyebabkan beberapa game dapat ditampilkan dengan baik pada satu komputer tetapi tidak berjalan dengan baik pada komputer yang lainnya.
2. Game Console
yang biasanya tersedia di rumah seperti Xbox,Nintendo Wii dan lain-lain.
3. Game Arcade
Game arcade adalah game yang dijalankan pada mesin dengan input dan
output audio visual yang telah terintegrasi dan tersedia ditempat-tempat umum.
4. Game Online
Game online adalah game yang hanya dapat dumainkan secara online
melaui LAN atau internet.
2.2.3 Genre Game
Berdasarkan genre permainannya, game dapat dibagi menjadi beberapa
genre yaitu:
1. Action
Action game adalah game dimana kebanyakan dari tantangan yang
disajikan merupakan dari tes physical skill dan koordinasi pemain. Salah satu sub-genre action game adalah shooter game, baik yang 2D ataupun 3D seperti First Person Shooter (FPS).
2. Strategy
Strategy game menantang pemain untuk mencapai kemenangan dengan
perencanaan, khususnya melalui perencanaan serangkaian tindakan yang dilakukan melawan satu lawan atau lebih. Kemenangan diraih dengan perencanaan matang dan pengambilan keputusan optimal.
3. Role Playing Game (RPG)
RPG adalah game dimana pemain mengontrol satu atau lebih karakter yang biasanya di desain oleh pemain itu sendiri, dan memandu mereka melewati berbagai rintangan yang diatur oleh komputer. Perkembangan karakter dalam hal kekuatan dan kemampuannya adalah kunci dari game
jenis ini.
4. Sports
dan karir, atau keduanya. Salah satu contoh game jenis ini adalah Pro
Evolution Soccer 2012 (PES 2012), dimana pemain bisa memainkan
pertandingan, menjadi manajer tim, maupun menjadi pemain dan mengembangkan karirnya sendiri.
5. Vehicle Simulation
Vehicle simulation membuat feeling mengendarai kendaraan, baik
kendaraan nyata maupun kendaraan imajiner. Performa dan karakteristik kasar mesin harus menyerupai kenyataan, kecuali jika yang didesain adalah kendaraan imajiner.
6. Construction and Management Simulation
CMS game adalah game tentang proses. Tujuan pemain bukan untuk
mengalahkan musuh, tetapi membangun sesuatu dengan konteks proses yang sedang berjalan. Semakin pemain mengerti dan mengontrol proses, semakin sukses sesuatu yang ia bangun. Game seperti ini biasanya menyediakan dua jenis permainan, yaitu mode bebas dimana pemain bebas membangun sesuatu, dan mode misi dimana terdapat skenario hal apa yang harus dibangun oleh pemain.
7. Adventures
Adventure game adalah cerita interaktif tentang karakter protagonist yang
dimainkan oleh pemain. Penyampaian cerita dan eksplorasi adalah elemen inti dari game ini. Penyelesaian teka-teki dan tantangan konseptual adalah bagian besar dari permainan.
8. Artificial Life and Puzzle Game
Artificial Life game adalah game yang membuat tiruan dari kehidupan sebenarnya. Biasanya ada dua jenis game ini, tiruan kehidupan manusia, contohnya The SIMS, dan tiruan kehidupan binatang, contohnya Tamagochi.
9. Online Game
2.2.4 Kategori Game Lainnya
Selain berdasarkan genre permainannya terdapat pula kategori-kategori
game lainnya, yaitu:
1. Multiplayer Online
Game yang dapat dimainkan secara bersamaan oleh lebih dari 2 orang (bahkan dapat mencapai puluhan ribu orang dalam satu waktu) membuat pemain dapat bermain bersama dalam satu dunia virtual dari sekedar
chatting hingga membunuh naga bersama teman yang entah bermain di
mana. Umumnya permainan tipe ini dimainkan di PC dan bertema RPG, walau ada juga yang bertema musik atau action.
2. Casual Games
Sesuai namanya, game casual itu tidak kompleks, mainnya rileks dan sangat mudah untuk dipelajari (bahkan cenderung langsung bisa dimainkan). Jenis ini biasanya memerlukan spesifikasi komputer yang standar. Genre permainannya biasanya puzzle atau action sederhana dan umumnya dapat dimainkan hanya menggunakan mouse (biasanya game
lain menggunakan banyak tombol tergantung game-nya). Contohnya:
Dinner Dash, Zuma, Feeding Frenzy.
Fitur dasar pada game casual, yaitu:
1) Gameplay sangat sederhana, bisa dimainkan menggunakan mouse,
keyboard atau keypad ponsel.
2) Dimainkan dalam waktu singkat. Biasanya dibawah 10 menit. Bisa dimainkan saat istirahat kerja atau pada transportasi umum.
3) Kemampuan yang cepat dalam mencapai tahap akhir tanpa perlu
save game.
4) Kadang digunakan untuk model bisnis atau periklanan. 5) Cocok dalam genre apapun.
6) Dapat dimainkan oleh siapa saja, anak – anak sampai orang dewasa.
7) Dapat dimainkan dengan atau tanpa pengalaman dalam bermain
3. Edugames
Video game jenis ini dibuat dengan tujuan spesifik sebagai alat pendidikan,
entah untuk belajar mengenal warna untuk balita, mengenal huruf dan angka, matematika, sampai belajar bahasa asing. Developer yang membuatnya, harus memperhitungkan berbagai hal agar game ini benar-benar dapat mendidik, menambah pengetahuan dan meningkatkan ketrampilan yang memainkannya. Target segmentasi pemain harus pula disesuaikan dengan tingkat kesulitan dan desain visual ataupun animasinya.
4. Advergames
Jenis game yang biasanya mudah dimainkan ini mengusung dan menampilkan produk atau brand secara gamblang maupun tersembunyi. Di era tumbuhnya media-media baru berteknologi tinggi sekarang ini, dunia periklanan memang sudah tidak lagi terbatas pada TV, koran, majalah, billboard dan radio, video game sekarang telah menjadi sarana beriklan atau membangun brand-awareness yang efektif. Baik melalui internet maupun di mainkan di event-event mereka, edugames terasa semakin dibutuhkan untuk menjaring calon konsumen bagi produk yang menggunakan advergames ini.
2.2.5 Elemen Pada Game
Elemen – elemen yang ada dalam sebuah game biasanya terdiri dari: 1. Desain game
Desain adalah langkah awal untuk membuat semua elemen game. Desain
game dibuat semenarik mungkin agar pemain tidak cepat bosan yang
dampaknya membuat game tersebut cepat ditinggalkan. 2. Pemrograman game
3. Grafis game
Grafis game memegang peranan penting dalam pembuatan tampilan. Tampilan haruslah dibuat semenarik mungkin, sehingga dengan melihatnya saja end user langsung tertarik untuk memainkannya.
4. Musik dan sound
Musik dan sound dalam suatu game merupakan suatu hal yang wajib dikarenakan dalam suatu game akan lebih terasa efek emosi dari game
tersebut, sehingga akan membuat kesan game tersebut lebih terasa nyata.
2.3 Artificial Intelligence (AI)
Definisi kecerdasan buatan atau artificial intelligent yang paling tepat untuk saat ini adalah acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional berdasarkan hasil penalaran tersebut. [4]:
1. Acting rationally: the rational agent approach
Membuat inferensi yang logis merupakan bagian dari suatu rational agent. Hal ini disebabkan satu-satunya cara untuk melakukan aksi secara rasional adalah dengan menalar secara logis. Dengan menalar secara logis, maka bisa didapatkan kesimpulan bahwa aksi yang diberikan akan mencapai tujuan atau tidak. Jika mencapai tujuan, maka agent dapat melakukan aksi berdasarkan kesimpulan tersebut.
2.4 Kecerdasan Buatan Pada Game
Kecerdasan buatan atau AI merupakan kegiatan membuat komputer agar dapat berpikir dan mengerjakan kegiatan yang dapat dilakukan oleh manusia maupun binatang.
Namun, masih banyak hal yang tidak dapat dilakukan dengan baik oleh komputer. Seperti, mengenali wajah, berbicara bahasa manusia, menentukan sendiri apa yang harus dilakukan, dan bertingkah kreatif. Hal itu semua merupakan domain dari AI untuk mencoba menentukan algoritma apa yang dibutuhkan untuk memenuhi kebutuhan diatas.
Dalam bidang akademik, beberapa peniliti AI termotivasi oleh filosofi, yaitu memahami alam pikiran dan alam kecerdasan dan membangun program untuk memodelkan bagaimana proses berpikir. Beberapa juga termotivasi oleh
psychology, bertujuan untuk memahami mekanisme otak manusia dan proses
mental. Dan lainya termotivasi oleh engineering, dengan tujuan membangun algoritma untuk melakukan kegiatan seperti manusia atau hewan.
Dalam pembangunan game, umumnya akan cenderung hanya pada sisi engineering yang bertujuan membangun algoritma yang dapat membuat game
karakter mengerjakan kegiatan seperti yang dilakukan manusia atau binatang.
2.5 Metode – Metode Pencarian
Terdapat banyak metode pencarian yang telah diusulkan. Semua metode yang ada dapat dibedakan kedalam dua jenis: pencarian buta/tanpa informasi
(blind atau un-informed search) dan pencarian heuristik/dengan informasi
(heuristic atau informed search).
2.5.1.1 Breadth-First Search (BFS)
BFS termasuk kedalam jenis blind/un-informed search. Pencarian dilakukan pada semua simpul pada setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi. Dengan cara seperti ini, BFS menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti yang paling baik. Dengan kata lain BFS adalah
complete dan optimal. Tetapi BFS harus menyimpan semua simpul yang pernah
2.6 Algoritma A* (A Star)
Algoritma A* digunakan dalam penentuan jalur terpendek, pada game
yang dibangun algoritma ini diterapkan pada pergerakan rintangan mobil yang menghindari objek sampah yang ada di depannya untuk sampai ke tujuan.
Algoritma ini 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) (2.1). Dengan perhitungan biaya seperti ini, algoritma A* adalah complete dan optimal.
Terdapat tiga kondisi bagi setiap suksesor yang dibangkitkan, yaitu: 1. Sudah berada di OPEN
2. Sudah berada di CLOSE, dan
3. 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 (bestnode).
Jika suksesor sudah pernah berada di CLOSED, maka akan dilakukan pengecekan apakah perlu pengubahan parent atau tidak. Jika ya, maka dilakukan perbaruan nilai g dan f pada suksesor tersebut serta pada semua “anak cucunya” yang sudah pernah berada di OPEN. Dengan perbaruan ini, maka anak cucunya tersebut memiliki kesempatan lebih besar untuk terpilih sebagai simpul terbaik (best node).
Untuk memperjelas pemahaman tentang algoritma A*, berikut adalah langkah – langkah pencarian rute berdasarkan berdasarkan algoritma ini:
Gambar 2.1 Langkah 1 pencarian rute dengan algoritma A*
Gambar 2.3 Langkah 3 pencarian rute dengan algoritma A*
Gambar 2.5 Langkah 5 pencarian rute dengan algoritma A*
Gambar 2.6 Langkah 6 pencarian rute dengan algoritma A*
Simpul dengan tanda kotak menyatakan bahwa simpul tersebut berada di
CLOSED (pernah terpilih sebagai BestNode) sedangkan simpul tanpa tanda kotak
menyatakan simpul yang ada berada di OPEN.
maka S langsung terpilih sebagai BestNode dan dipindahkan ke CLOSED. Kemudian dibangkitkan semua suksesor S, yaitu : A, B, C, D dan E. Karena kelima suksesor tidak ada di OPEN dan CLOSED, maka kelimanya dimasukkan ke OPEN. Langkah pertama ini menghasilkan OPEN = [A, B, C, D, E] dan
CLOSED = [S].
Langkah kedua, E dengan biaya terkecil (yaitu 84) terpilih sebagai
BestNode dan dipindahkan ke CLOSED. Lalu semua suksesor E dibangkitkan,
yaitu: D dan J. Karena belum pernah ada di OPEN maupun CLOSED sebelumnya maka J dimasukkan ke OPEN. Sedangkan simpul D sudah ada di OPEN, maka harus dicek apakah parent dari D perlu diganti atau tidak. Ternyata biaya dari S ke D melalui E (yaitu 10 + 15 = 25) lebih kecil daripada biaya S ke D (yaitu 35). Oleh karena itu, parent dari D harus dirubah, yang semula S menjadi E. Dengan perubahan parent ini maka nilai g dan f pada D juga diperbaharui (nilai g yang semula 35 menjadi 25, dan nilai f dari 120 menjadi 110). Langkah kedua ini menghasilkan OPEN = [A, B, C, D, J] dan CLOSED = [S, E].
Langkah ketiga, B dengan biaya terkecil (yaitu 85) terpilih sebagai
BestNode dan dipindahkan ke CLOSED. Lalu semua suksesor B dibangkitkan,
yaitu: A, F dan K. Karena belum pernah ada di OPEN maupun CLOSED, maka F dan K dimasukkan ke OPEN. Sedangkan simpul A sudah ada di OPEN, maka harus dicek apakah parent dari A perlu diganti atau tidak. Ternyata, biaya dari S ke A melalui B (yaitu 25 + 10 = 35) lebih besar daripada biaya S ke A (yaitu 10). Oleh karena itu, parent dari A tidak perlu diubah (tetap S). Akhir dari langkah ketiga ini menghasilkan OPEN = [A, C, D, F, J, K] dan CLOSED = [S, E, B].
Langkah keempat, A dengan biaya terkecil (yaitu 90) terpilih sebagai
BestNode dan dipindahkan ke CLOSED. Lalu semua suksesor A dibangkitkan,
85 menjadi 80). Nilai g dan f pada suksesor-suksesor B (sampai anak cucu) juga harus diperbarui menggunakan penulusuran DFS (Depth First Search). Dalam kasus ini, B hanya mempunyai dua anak (tidak punya cucu), yaitu F dan K. Nilai g (F) yang semula 30 diubah menjadi 25, dan nilai f (F) dari 100 menjadi 95. Nilai g (K) yang semula 75 diubah menjadi 70, dan nilai f (K) dari 105 menjadi 100). Akhirnya, OPEN = [C, D, F, G, J, K] dan CLOSED = [S, E, B, A].
Langkah kelima, F dengan biaya terkecil (yaitu 95) terpilih sebagai
BestNode dan dipindahkan ke CLOSED. Lalu semua suksesor F dibangkitkan,
yaitu : K. Karena K sudah ada di OPEN, maka harus dicek apakah parent dari K perlu diganti atau tidak. Biaya dari S ke K melalui F ternyata lebih kecil daripada biaya dari S ke K melalui parent lama (B). Oleh karena itu parent dari K harus diubah, yang semula B menjadi F. Selanjutnya nilai g (K) yang semula 70 diubah menjadi 65, dan nilai f (K) dari 100 menjadi 95). Akhirnya, OPEN = [C, D, F, G, J, K] dan CLOSED = [S, E, B, A, F].
Langkah keenam, K dengan biaya terkecil (yaitu 95) terpilih sebagai
BestNode dan dipindahkan ke CLOSED. Lalu semua suksesor K dibangkitkan,
yaitu G. Karena G sudah ada di OPEN, maka harus dicek apakah parent dari G perlu diganti atau tidak. Biaya dari S ke G melalui K ternyata lebih kecil daripada biaya dari S ke G melalui parent lama (yaitu A). Oleh karena itu parent dari G harus diubah, yang semula A menjadi K. Selanjutnya nilai g (G) yang semula 100 diubah menjadi 95, dan nilai f (G) dari 100 menjadi 95). Pada akhir langkah keenam ini, OPEN = [C, D, G, J] dan CLOSED = [S, E, B, A, F, K].
pada graph). Untuk masalah yang lebih kompleks, misalkan pencarian rute terpendek pada graph yang terdiri dari 100 juta simpul, A* akan menghadapi masalah waktu proses dan memori yang dibutuhkan. Untuk menyelesaikan kedua masalah tersebut, telah diusulkan berbagai variasi A* dengan karakteristik yang sesuai untuk permasalahan tertentu [4].
2.7 Pemrograman Berorientasi Objek
Objek adalah kesatuan entitas yang memiliki sifat dan tingkah laku. Dalam kehidupan sehari-hari, objek adalah benda, baik benda berwujud nyata seperti manusia, hewan, mobil, komputer, handphone, pena, ataupun benda yang tidak nyata atau konsep, seperti halnya tabungan bank, sistem antrian, sistem internet banking, dan sebagainya. Jadi pengertian OOP adalah konsep yang membagi program menjadi objek-objek yang saling berinteraksi satu sama lain. Objek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (konsep). Jika menggunakan OOP maka akan ada enam keuntungan yang dapat diperoleh, yaitu [6]:
1. Alami (Natural).
2. Dapat diandalkan (Reliable).
3. Dapat digunakan kembali (Reusable).
4. Mudah untuk dalam perawatan (Maintainable). 5. Dapat diperluas (Extendable).
6. Efisiensi waktu.
Berikut ini beberapa bahasa pemrograman yang sudah menggunakan konsep OOP, adalah :
1. C++.
2. Visual C++.
2.7.1 Analisis dan Desain Berorientasi Objek (Object-Oriented Analysis and Design Process)
Pemrograman berorientasi objek bekerja dengan baik ketika dibarengi dengan object-oriented analysis and design process (OOAD). Jika membuat program berorientasi objek tanpa OOAD, ibarat membangun rumah tanpa terlebih dahulu menganalisa apa saja yang dibutuhkan oleh rumah itu, tanpa perencanaan tanpa blueprint, tanpa menganalisis ruangan apa saja yang diperlukan, berapa besar rumah yang akan dibangun dan sebagainya.
2.7.2 Objek (Object)
Orientasi objek merupakan teknik dalam menyelesaikan masalah yang kerap muncul dalam pengembangan perangkat lunak. Teknik ini merupakan titik kulminasi dalam menemukan cara yang efektif dalam membangun sistem dan menjadi metode yang paling banyak dipakai oleh para pengembang perangkat lunak saat ini. Orientasi objek merupakan teknik pemodelan sistem riil yang berbasis objek. Inti dari konsep ini adalah objek yang merupakan model dari sistem nyata.
Objek adalah entitas yang memiliki atribut, karakter dan kadangkala disertai kondisi. Objek merepresentasikan sesuatu sistem nyata seperti siswa, sistem kontrol permukaan sayap pesawat, sensor atau mesin. Objek juga merepresentasikan sesuatu dalam bentuk konsep seperti nasabah bank, merek dagang, pernikahan atau sekedar listing. Bahkan bisa juga mengatakan visualisasi seperti, bentuk huruf, histogram, poligon, garis atau lingkaran. Semuanya memiliki fitur atribut (untuk data), behavior (operation atau method), keadaan (memori), identitas dan tanggung jawab. Proses menjabarkan sistem nyata menjadi objek dinamakan abstraksi (abstraction). Abstraksi mengeliminir aspek yang tidak perlu dalam suatu objek.
2.7.3 Kelas (Class)
Kelas adalah penggambaran satu set objek yang memiliki atribut dan
lebih komprehensif karena terdapat struktur sekaligus karakteristiknya. Programmer dapat membentuk kelas baru yang lebih spesifik dari kelas general -nya. Kelas dan objek merupakan jantung dari pemrograman berorientasi objek. Untuk menghasilkan program jenis ini sangat penting untuk selalu berfikir dalam bentuk objek.
2.7.4 Pembungkusan (Encapsulation)
Pembungkusan sebagai penggabungan potongan-potongan informasi dan perilaku-perilaku spesifik yang bekerja pada informasi tersebut, kemudian mengemasnya menjadi apa yang disebut sebagai objek. Dalam perbankan dikenal objek rekening yang memiliki perilaku-perilaku misalnya buka, tutup, penarikan, penyimpanan, ubah nama, ubah alamat, dan sebagainya. Akibatnya, perubahan-perubahan pada sistem perbankan yang berkaitan dengan rekening-rekening dapat secara sederhana diimplementasikan satu kali saja pada objek rekening. Keuntungan lainnya adalah membatasi efek-efek perubahan pada sistem. Misalnya, saat manajemen bank menentukan jika seseorang memiliki rekening pinjaman di bank yang bersangkutan, rekening pinjaman itu harus dapat juga digunakan sebagai sarana bagi penarikan rekening.
2.7.5 Pewarisan (Inheritance) dan Generalisasi/Spesialisasi
Konsep dimana metode dan atau atribut yang ditentukan di dalam sebuah objek kelas dapat diwariskan atau digunakan lagi atau digunakan lagi oleh objek kelas lainnya. Sedangkan generalisasi/spesialisasi merupakan teknik dimana atribut dan perilaku yang umum pada beberapa tipe kelas objek, dikelompokkan (atau diabstraksi) ke dalam kelasnya sendiri (dinamakan supertype). Atribut dan metode kelas objek supertype kemudian diwariskan oleh kelas objek tersebut (dinamakan subtype).
2.7.6 Polimorfisme
Polimorfisme berarti suatu fungsionalitas yang diimplementasikan dengan
memiliki berbagai implementasi untuk sebagian fungsionalitas tertentu. Sebagai contoh, misalkan pengembang akan mengembangkan sistem berbasis grafis. Saat pengguna mau menggambar sesuatu, misalnya garis atau lingkaran, sistem akan memunculkan perintah gambar. Sistem akan mengenali berbagai bentuk gambar, masing-masing dengan perilakunya sendiri-sendiri. Manfaat dari polimorfisme
adalah kemudahan pemeliharaannya. Jika perlu menambahkan gambar baru (misalnya segitiga) maka cukup menambahkan fungsi baru (fungsi menggambar segitiga) sedangkan fungsi umumnya (fungsi gambar) tidak mengalami perubahan.
2.8 UML (Unified Modeling Language)
UML adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek. Definisi ini merupakan definisi sederhana. Pada kenyataannya, pendapat orang-orang tentang UML berbeda satu sama lain. Hal ini dikarenakan oleh sejarahnya sendiri dan oleh perbedaan persepsi tentang apa yang membuat sebuah proses rancang bangun perangkat lunak efektif.
UML merupakan standar yang relatif terbuka yang dikontrol oleh Object
Management Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak
perusahaan. OMG dibentuk untuk membuat standar-standar yang mendukung interoperabilitas, khususnya interoperabilitas sistem berorientasi objek. OMG mungkin lebih dikenal dengan standar-standar COBRA (Common Object Request Broker Architecture).
UML lahir dari penggabungan banyak bahasa pemodelan grafis berorientasi objek yang berkembang pesat pada akhir 1980-an dan awal 1990-an. Sejak kehadirannya pada tahun 1997, UML menggantikan menara Babel yang telah menjadi sejarah. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.
Bagian-bagian utama dari UML adalah view, diagram, modelelement, dan
elemen model yang disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan biasanya.
2.9 Diagram UML
Pada UML 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam 3 kategori. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar Gambar 2.7.
UML 2.3 Diagram
Interaction Overview Diagram State Machine
Activity Diagram Use Case Diagram
Communication Diagram
Deployment Diagram Package Diagram
Sequence Diagram
Composite Structure Diagram Component Diagram
Object Diagram Class Diagram
Intraction Diagram Behavior Diagram
Structure Diagram
[image:38.595.115.481.267.651.2]Timming Diagram
Gambar 2.7 Diagram UML [10] Berikut ini penjelasan singkat dari pembagian kategori tersebut.
1. Structure diagrams yaitu kumpulan diagram yang digunakan untuk
2. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkain perubahan yang terjadi pada sebuah sistem.
3. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan interaksi sistem dengan sistem lain maupun interaksi antarsubsistem pada suatu sistem.
2.9.1 Diagram Kelas (Class Diagram)
Diagram kelas menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.
1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. 2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas. Diagram kelas dibuat agar pembuat program atau programmer membuat kelas-kelas sesuai rancangan di dalam diagram kelas-kelas agar antara dokumentasi perancangan dan perangkat lunak sinkron. Berikut adalah contoh dari diagram kelas.
KoneksiBasisData
+host +database +username +password
+open() +execute() +getResult() +close()
Gambar 2.8 Contoh Class Diagram [10]
2.9.2 Diagram Use Case
Diagram use case merupakan pemodelan untuk kelakuan (behaviour)
sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu. Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case.
1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.
[image:40.595.133.471.244.552.2]2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit-unit atau aktor.
Gambar 2.9 Contoh Use Case Diagram [3]
2.9.3 Diagram Aktivitas (Activity Diagram)
1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan.
2. Urutan atau pengelompokkan tampilan dari sistem/user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan
[image:41.595.141.479.259.635.2]sebuah pengujian yang perlu didefinisikan kasus ujinya. 4. Rancangan menu yang ditampilkan pada perangkat lunak.
Gambar 2.10 Contoh Activity Diagram [13]
2.9.4 Diagram State Machine
State machine diagram atau statechart diagram atau dalam bahasa
digunakan untuk menggambarkan perubahan status atau transisi status dari sebuah mesin atau sistem atau objek. Jika diagram sekuen digunakan untuk interaksi antar objek maka diagram status digunakan untuk interaksi di dalam sebuah objek. Perubahan tersebut digambarkan dalam suatu graf berarah.
Gambar 2.11 Contoh Statechart Diagram [10]
2.9.5 Diagram Sekuen (Sequence Diagram)
Petugas Pertukaan m : Main an : Antarmuka v : Validasi k : KoneksiBasisData p : Petugas
1 : main()
2 : formLogin()
3 : username dan password
4 : login()
5 <<create>>
6 <<create>>
7 : open()
8 : queryCekLogin()
9 : execute() 10 : getResult()
11 : username dan password petugas 12 : close()
[image:43.595.144.477.121.454.2]13 <<destroy>> 14 <<destroy>>
Gambar 2.12 Contoh Sequence Diagram [10]
2.10 Unity
Unity Game Engine adalah software atau game engine yang digunakan
untuk membuat video game berbasis dua atau tiga dimensi dan dapat digunakan
secara gratis. Selain untuk membuat game, unity juga dapat digunakan untuk
membuat konten yang interaktif lainnya seperti, visual arsitektur dan real-time 3D
animasi.
Unity adalah sebuah sebuah tool yang terintegrasi untuk membuat game,
arsitektur bangunan dan simulasi. Unity bisa digunakan untuk games PC dan games
online. Untuk games online diperlukan sebuah plugin, yaitu Unity Web Player, yang
sama halnya dengan flash player pada browser. Bahasa pemrograman yang
digunakan bermacam-macam, mulai dari javascript, C#, dan boo.
merupakan tools untuk mendesain. Banyak hal yang bisa di lakukan di unity, ada fitur
audio reverb zone , particle effect , sky box untuk menambahkan langit, dan masih
banyak lagi, dan juga bisa langsung edit texture dari editor seperti photoshop dll.
Features (Scripting) di dalam unity adalah sebagai berikut (Unity
Technologies, 2013):
1. Mendukung 3 bahasa pemrograman, JavaScript, C#, dan Boo.
2. Flexible and EasyMoving, rotating, dan scaling objects hanya perlu sebaris
kode. Begitu juga dengan duplicating, removing, dan changing properties.
3. Multi Platform Game bisa di deploy di PC, Mac, Wii, iPhone, iPad dan
browser, android.
4. Visual Properties Variables yang di definisikan dengan scripts ditampilkan
pada editor. Bisa digeser, di drag and drop, bisa memilih warna dengan color
picker.
5. Berbasis .NET, penjalanan program dilakukan dengan Open Source .NET
platform, Mono.
2.11 Bahasa Pemrograman C#
C# merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. C# adalah Java versi Microsoft, sebuah bahasa multi flatform yang didesain untuk bisa berjalan di berbagai mesin. C# adalah pemrograman berorientasi Object (OOP). C# memiliki kekuatan bahasa C++ dan portabilitas seperti Java. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple inheritance).
Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana. C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem klien-server (hosted system) maupun sistem embedded
(embedded system), mulai dari program aplikasi yang sangat besar yang
Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran program aplikasi yang dibuat dengan menggunakan bahasa pemrograman C.
2.12 Teknik Pengujian Perangkat Lunak
Pengujian perangkat lunak adalah proses menelusuri dan mempelajari sebuah program dalam rangka menemukan kesalahan pada perangkat lunak sebelum diserahkan kepada end user.
2.12.1 Pengujian Black Box
Pengujian black box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black box memungkinkan perekayasa 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.
Pengujian black box akan menemukan kesalahan dengan kategori sebagai berikut:
1. Fungsi tidak benar atau hilang 2. Kesalahan antar muka
3. Kesalahan pada struktur data (pengaksesan basis data) 4. Kesalahan inisialisasi dan akhir program
5. Kesalahan performasi
2.12.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. Dengan demikian metode pengujian
1. Memberikan jaminan bahwa semua jalur independen pada suatu modul telah digunakan paling tidak satu kali.
2. Menggunakan semua keputusan logis pada sisi benar dan salah. 3. Mengeksekusi semua loop pada batasan dan pada batas operasional 4. Menggunakan struktur dan internal untuk menjamin validitasnya.
Pengujian white box yang berupa notasi diagram alir dapat dilihat pada gambar berikut.
Gambar 2.13 Notasi Diagram Alir
2.13 Skala Guttman
Skala Guttman dikembangkan oleh Louis Guttman. Skala ini mempunyai ciri penting, yaitu merupakan skala kumulatif dan mengukur satu dimensi saja dari satu variabel yang multi dimensi, sehingga skala ini termasuk mempunyai sifat undimensional. Skala Guttman yang disebut juga metode scalogram atau analisa skala (scale analysis) sangat baik untuk meyakinkan peneliti tentang kesatuan dimensi dari sikap atau sifat yang diteliti, yang sering disebut isi universal (universe of content) atau atribut universal (universe attribute).
Kelemahan pokok dari Skala Guttman, yaitu:
1. Skala ini bisa jadi tidak mungkin menjadi dasar yang efektif baik untuk mengukur sikap terhadap objek yang kompleks ataupun untuk membuat prediksi tentang perilaku objek tersebut.
37
3.1 Analisis Sistem
Analisis sistem merupakan proses penguraian konsep ke dalam bagian-bagian yang lebih sederhana. Pada analisis sistem akan mencakup berbagai macam analisis yang berhubungan dengan game yang akan dibangun seperti analisis masalah, storyline, gameplay, analisis kecerdasan buatan yang dipakai, analisis kebutuhan fungsional dan non-fungsional.
3.1.1 Analisis Game Sejenis
Pada analisis game sejenis, akan dilakukan observasi terhadap game yang memiliki kesamaan gameplay dan genre dengan game yang akan dibangun. Tujuan dari analisis ini yaitu mendapatkan konsep permainan dan perbandingan dari game yang telah ada.
3.1.1.1 Game Garbage Grab
Game Garbage Grab merupakan game dengan jenis casual games,
terdapat di sebuah website flash game portal yang menggunakan platform flash
(swf). Game ini mempunyai gameplay mengumpulkan sampah dengan alat pengait pada truknya. Karakter utama dalam game ini adalah truk sampah dan grafis yang digunakan adalah 2 dimensi. Berikut adalah tampilan dari game
Gambar 3.1 Tampilan permainan game garbage grab
1. Gameplay
2. Skenario Game
Skenario dalam game garbage grab dapat dilihat alur permainannya sebagai berikut:
1. Truk bergerak otomatis ke depan dengan alat pengait yang berotasi ke kiri dan kanan.
2. Sampah berada di badan jalan dan sekitaran jalan. 3. Ambil sampah dengan alat pengait pada truk.
4. Klik pada layar ketika alat pengait sudah dalam arah yang tepat.
5. Sampah akan terambil apabila arah alat pengait tepat pada posisi sampah. 6. Sampah tidak akan terambil apabila arah alat pengait tidak tepat pada
posisi sampah.
7. Kumpulkan sampah sesuai dengan jumlah target.
8. Permainan berakhir ketika truk sudah mencapai akhir jalan.
9. Apabila jumlah sampah yang didapat minimal sesuai dengan target maka permainan berhasil diselesaikan dan dapat melanjutkan ke level selanjutnya.
10.Apabila jumlah sampah yang didapat kurang dari target maka permainan gagal dan harus mengulangi dari level pertama.
3. Kekurangan Pada Garbage Grab
Pada game Garbage Grab ini terdapat beberapa kekurangan, yaitu diantaranya sebagai berikut:
1. Truk tidak dapat rusak atau hancur. 2. Tidak ada rintangan saat truk melaju.
3. Sampah tidak dibedakan menjadi organik atau anorganik.
4. Pada level 2 dan selanjutnya permainan menjadi terlalu sulit untuk diselesaikan karena jarak antara awal permainan sampai akhir terlalu dekat dengan target jumlah sampah yang banyak.
3.1.2 Analisis Game Yang Dibangun
Pada tahapan ini akan mendeskripsikan game yang akan dibangun. Pada bagian ini terdiri dari storyline, gameplay, jenis permainan, tingkat kesulitan, dan analisis scoring.
Tabel 3.1 Perbandingan Game Sejenis Dengan Game Yang Dibangun Game Garbage Grab Game Yang Dibangun
Genre Casual Casual
Desain Grafis 2D 2D
Karakter Utama
Truk Truk
Pergerakan Karakter
Pergerakan karakter otomatis lurus ke depan, tanpa bisa berbelok atau mundur.
Pergerakan karakter
digerakan oleh pemain. Bisa ke depan, belakang, belok kiri dan kanan.
Rintangan Pengait sampah yang terus berotasi ke kiri dan kanan
Mobil berdatangan dari arah berlawanan. Waktu yang disediakan terbatas.
Target Mengumpulkan sampah dan jenis sampah tertentu sesuai target.
Mengumpulkan sampah, mendaur ulang sampah menjadi produk.
Gameplay Untuk menyelesaikan permainan pemain harus mengumpulkan jumlah sampah sesuai target. Cara mendapatkan sampah menggunakan pengait yang berotasi ke kiri dan kanan. Untuk itu dibutuhkan keakuratan dalam meraih sampah.
Untuk menyelesaikan permainan pemain harus mengumpulkan jenis sampah tertentu sesuai target.
Kemudian sampah tersebut di daur ulang menjadi sejumlah produk.
Basis Web Desktop
3.1.2.1 Gameplay
Berikut adalah gameplay pada game yang akan dibangun:
1. Permainan pertama adalah mengumpulkan sampah yang ada di jalanan. 2. Pemain mengendalikan sebuah truk sampah yang dapat bergerak ke depan,
kiri dan kanan.
3. Dapatkan sampah yang berada di jalanan.
5. Poin akan bertambah jika mengklik sampah sesuai jenisnya dan poin berkurang jika salah.
6. Waktu yang disediakan terbatas. Terdapat rintangan yaitu mobil yang datang dari arah berlawanan, jika menabrak maka permainan gagal.
7. Pemain menyelesaikan permainan jika sudah mengumpulkan poin sesuai target sebelum waktu habis.
8. Untuk menambahkan poin tambahan daur ulang sampah yang didapat dan jadikan produk
9. Terdapat beberapa produk yang dapat dibuat. Pilih produk yang akan dibuat, jika bahan yang dibutuhkan mencukupi maka akan muncul produk yang dibuat.
10.Jika target tidak tercapai maka permainan gagal dan harus mengulangi dari permainan pertama.
3.1.2.2 Jenis Permainan
Dalam game yang akan dibangun terdapat 2 jenis permainan dalam setiap levelnya, yaitu:
1. Mengumpulkan sampah
Truk mengambil sampah yang berada di jalanan dan harus dengan benar membedakan jenis sampah untuk mendapatkan poin, waktu yang diberikan terbatas.
2. Mendaur ulang
Sampah yang telah dikumpulkan harus di daur ulang menjadi produk. Permainan mendaur ulang adalah permainan tambahan untuk menambahkan poin dan dilakukan bersamaan dengan permainan mengumpulkan sampah.
3.1.2.3 Tingkat Kesulitan
1. Level 1
Truk harus mendapatkan sampah. Jenis sampah ada 3, target poin yang harus didapat adalah 400 dengan waktu yang diberikan 90 detik.
2. Level 2
Jenis sampah bertambah menjadi 6 jenis sampah dan terdapat rintangan yaitu mobil yang berdatangan dari arah berlawanan. Poin yang harus didapat adalah 600.
3. Level 3
Jenis sampah semakin beragam, pada level ini terdapat 9 jenis sampah. Mobil yang berdatangan semakin banyak. Poin yang harus didapat adalah 800.
3.1.2.4 Analisis Scoring
Pada game yang akan dibangun terdapat poin yang diberikan setiap menyelesaikan permainan. Poin akan hilang atau kembali ke keadaan awal jika pemain tidak menyelesaikan misi dalam setiap levelnya. Jumlah poin yang didapat dari setiap misi yang dilakukannya sebagai berikut:
a. Mengklik sampah sesuai jenisnya = +15 b. Mengklik sampah tidak sesuai jenisnya = -10 c. Tas = +100
d. Pupuk = +80 e. Lampu Meja = +90
3.1.3 Analisis Algoritma A* (A Star)
A
B
0 1 2 3 4 5
0 1 2 3 4 5
X Y
Posisi Awal
Posisi Tujuan
Penghalang
Gambar 3.2 Cara Kerja Algoritma A*
Pada Gambar 3.2 terdapat beberapa kotak yang memiliki koordinat (1,5) sebagai posisi awal dan (1,0) sebagai posisi tujuan. Kotak atau node yang masing-masing telah memiliki koordinat merupakan node yang digunakan untuk melakukan pencarian jalur terpendek. Terdapat beberapa node yang memiliki warna berbeda, berikut penjelasan dari masing-masing node tersebut:
1. Node warna merah: node awal dari posisi NPC mobil yang berada pada
koordinat (1,5).
2. Node warna biru: node dari posisi tujuan yang berada pada koordinat (1,0).
3. Node warna abu: node penghalang yang berada pada koordinat (0,0), (0,1),
(0,2), (0,3), (0,4), (0,5), (1,2), (5,0), (5,1), (5,2), (5,3), (5,4), (5,5).
Untuk nilai-nilai yang digunakan untuk perhitungan A star, terdapat 3 nilai yaitu: 1. Nilai F, nilai yang diperoleh dari penjumlahan nilai G dan H, jumlah nilai
H, jumlah nilai perkiraan dari sebuah simpul ke targetpoint.
2. Nilai G, nilai atau biaya yang dikeluarkan dari node awal atau node A ke
node yang ada disekitarnya.
3. Nilai H, nilai heuristic yang digunakan untuk menghitung perkiraan biaya yang dikeluarkan dari node awal atau node A menuju node tujuan atau
node B.
Perhitungan nilai F didapat dari persamaan F = G + H. Nilai G adalah Nilai dari node ke node yang akan dihitung secara vertical atau horizontal, nilai G akan digunakan dengan nilai 10. Sedangkan untuk nilai dari node ke node yang akan dihitung secara diagonal mengunakan metode Euclidean dengan perhitungan nilai node ke node yang akan dihitung dikali √2 yang berarti 10x√2 = 14.14 Untuk mempermudah perhitungan 14.14 dibulatkan menjadi 14. Dan untuk pehitungan nilai H digunakan fungsi heuristic, metode yang digunakan adalah metode
Manhattan dimana perhitungan jumlah node hanya yang bergerak secara vertical
dan horizontal menuju tujuan serta mengabaikan penghalang, yang kemudian
nilainya dikalikan nilai node atau dirumuskan dengan:
H = 10*(abs(currentX-targetX) + abs(currentY-targetY)) (3.1)
Langkah berikutnya ketika telah mendapatkan node awal adalah menentukan rute terpendek dengan cara memeriksa setiap node yang berdekatan dengan node A sampai node B. Di bawah ini merupakan penjelasan langkah-langkahnya.
1. Langkah pertama adalah memasukkan node A kedalam open list. 2. Ambil node A sebagai current node.
3. Periksa apakah current node sama dengan node akhir atau current node
yang sudah didapatkan merupakan node akhir. Jika ya maka jalan sudah ditemukan, jika tidak maka hapus node awal dari open list dan tambahkan ke dalam closed list.
4. Periksa semua neighbor node atau node yang berdekatan dengan node
semua node tersebut ke dalam open list. Dan untuk setiap node yang baru ditambahkan, simpan node awal sebagai parent yang nantinya akan digunakan untuk menelusuri jalan .
Berikut ini perhitungan pada langkah pertama dengan node yang berada pada koordinat (1,5).
A
B
0
1
2
3
4
5
0
1
2
3
4
5
X
Y
70
10 60
64
14 50
10 40
50
Gambar 3.3 Ilustrasi Langkah Pertama
Pada langkah pertama, node (1,5) dimasukkan ke dalam open list dan selanjutnya memeriksa neighbor node atau node yang berdekatan dengan node
dengan nilai F yang paling rendah, yaitu node (1,4) dengan nilai F = 50. Untuk memperjelas perhitungan maka akan dijelaskan langkah – langkah sebagai berikut.
1. Langkah pertama d