Pembangunan Aplikasi Permainan Jalan Pintas
(2)
PEMBANGUNAN APLIKASI PERMAINAN
JALAN PINTAS
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
GISTHA YOGASWARA
10107194
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
(3)
(4)
(5)
i
OLEH
GISTHA YOGASWARA 10107194
Perkembangan teknologi teknologi dari waktu ke waktu mengalami kemajuan yang sangat pesat, salah satunya game. Game tidak hanya menarik dari sisi tampilannya saja tapi juga dari sisi kecerdasan pada objek-objek yang ada di dalamnya. Salah satu contoh game yang menggunakan kecerdasan buatan adalah
game pac-man, kecerdasan buatan pada tiap musuhnya sudah cukup bagus, namun
game ini masih memiliki kekurangan diantaranya : gambar yang masih sederhana yang kurang menarik perhatian anak-anak, peta labirin di setiap level masih sama.
Penerapan algoritma A* dalam game labirin dibuat untuk mendapatkan langkah terbaik dari posisi titik awal ke titik tujuan. Algoritma A* merupakan algoritma yang menggabungkan algoritma Dijkstra dan algoritma Best First
Search untuk mengkompensasikan kelemahan-kelemahan dari masing-masing
algoritma. Selain menghitung biaya yang diperlukan untuk berjalan dari suatu
node ke node lainnya, algoritma A* menggunakan heuristic untuk memprioritaskan pemeriksaan node-node pada arah yang benar.
Hasil pengujian dari aplikasi game ini menunjukkan bahwa selain mendapatkan jalan dari titik awal menuju titik tujuan pada sebuah map, algoritma A* memberikan hasil pencarian jalan optimal yang merupakan jalan terpendek menuju titik tujuan.
(6)
ii
ABSTRACT
DEVELOPMENT GAME APLICATION THE RIGHT WAY
By
GISTHA YOGASWARA 10107194
The development of technologies from time to time made a great strides, one of them is a game. Game is not only draw from the feature side but also the perspicacity side on the objects in it. One of the games which use artificial intelligence is a pac-man game, the using of artificial intelligence in this game is good enough. However, this game has weaknesses, there are : the picture of the game is still simple, so it does not appeal the children and the labyrinth map is still the same in every level.
The A* algorithm application in labyrinth game is made for getting the best step from the position of the starting point to the destination point. The A* algorithm is an algorithm which combine the Dijkstra algorithm with Best First Search algorithm to compensate the weaknesses of each algorithm. Aside from the calculation of the budget it needs to run from one node to another node, A* algorithm use heuristic to prioritize of checking the nodes in order to run in proper route.
The result of the test from this game application shows that A* algorithm is not only getting the way from starting point to destination point on the map, but also giving the optimal route of search result that has the shortest route to the destination point.
(7)
iii
Assalamu’alaikum Wr. Wb.,
Alhamdulillahi Rabbil ‘alamiin, segala puji dan syukur penulis panjatkan ke hadirat sang Maha Pintar Allah SWT, karena dengan izin-Nya dan setitik ilmu pengetahuan yang dipinjamkan kepada mahluk-Nya, penulis dapat menyelesaikan laporan tugas akhir ini.
Laporan tugas akhir/skripsi dengan judul “PEMBANGUNAN
APLIKASI PERMAINAN JALAN PINTAS” ini disusun guna memenuhi salah
satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia. Selama menulis laporan tugas akhir ini, penulis telah mendapatkan banyak sekali bimbingan dan bantuan dari berbagai pihak yang telah dengan segenap hati dan keikhlasan yang penuh membantu dan membimbing penulis dalam menyelesaikan laporan ini. Dengan kesadaran hati, penulis ucapkan terima kasih kepada :
1. Kedua orang tuaku, dukungan beserta do’a ayah dan ibu sangat berarti dalam perjalanan hidupku, senantiasa selalu menjadi pelita dalam hidupku. 2. Ibu Mira Kania Sabariah, S.T., M.T., selaku Ketua Jurusan Teknik
Informatika Universitas Komputer Indonesia.
3. Ibu Nelly Indriani Widiastuti, S.S.i., M.T., selaku dosen pembimbing terima kasih telah banyak meluangkan waktu untuk memberikan bimbingan, saran dan nasehatnya selama penyusunan skripsi ini.
4. Bapak Galih Hermawan, S.Kom, M.T. selaku reviewer/penguji I yang telah banyak memberikan saran, arahan dan bimbingan kepada penulis.
5. Ibu Dian Dharmayanti, S.T selaku reviewer/penguji III yang telah banyak memberikan saran, arahan dan bimbingan kepada penulis.
6. Bapak dan Ibu dosen serta seluruh staf pegawai jurusan Teknik Informatika, UNIKOM Bandung yang telah banyak membantu penulis.
(8)
iv
8. Semua pihak yang turut memberikan dukungan dalam penulisan skripsi ini yang tidak bisa disebutkan satu persatu.
Penulis sadar bahwa dalam penulisan skripsi ini masih terdapat banyak kekurangan baik dari segi teknik penyajian penulisan, maupun materi penulisan mengingat keterbatasan ilmu yang dimiliki penulis. Oleh karena itu, penulis sangat mengharapkan segala bentuk saran dan kritik dari semua pihak demi penyempurnaan skripsi ini. Akhir kata, semoga Allah SWT senantiasa melimpahkan karunia-Nya dan membalas segala amal budi serta kebaikan pihak-pihak yang telah membantu penulis dalam penyusunan laporan ini dan semoga tulisan ini dapat memberikan manfaat bagi pihak-pihak yang membutuhkan.
Bandung, 1 Maret 2012
(9)
v
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR TABEL ... x
DAFTAR GAMBAR ... xii
DAFTAR SIMBOL ... xv
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.6 Sistematika Penulisan ...5
BAB 2 LANDASAN TEORI ...7
2.1 Permainan ...7
(10)
vi
2.4 Flash... 20
2.5 Actionscript ... 21
2.6 Unified Modeling Language (UML) ... 21
2.7 Adobe Photoshop ... 25
2.8 Adobe Illustrator ... 26
BAB 3 ANALISIS DAN PERANCANGAN ... 28
3.1 Analisis Sistem ... 28
3.2 Analisis Kebutuhan Non Fungsional ... 29
3.2.1 Analisis Kebutuhan Perangkat Keras ... 29
3.2.2 Analisis Kebutuhan Perangkat Lunak ... 29
3.2.3 Analisis AI(Artificial Intelligence) ... 29
3.3 Analisis Kebutuhan Fungsional ... 45
3.3.1 Use Case Diagram ... 46
3.3.2 Use Case Scenario ... 47
3.3.2.1 Use Case Scenario Main ... 47
3.3.2.2 Use Case Scenario Instruksi ... 47
3.3.2.3 Use Case Scenario Keluar... 48
3.3.3 Activity Diagram ... 49
(11)
vii
3.3.4.2 Sequence Diagram Use Case Instruksi ... 52
3.3.5 Class Diagram ... 52
3.3.6 State Diagram ... 54
3.4 Perancangan Sistem ... 54
3.4.1 Storyline ... 54
3.4.2 Storyboard ... 55
3.4.3 Karakter ... 58
3.4.4 Perancangan Struktur Menu ... 59
3.4.5 Perancangan Antarmuka ... 59
3.4.5.1 Perancangan Antarmuka Menu Utama ... 59
3.4.5.2 Perancangan Antarmuka Game ... 59
3.4.5.3 Perancangan Antarmuka Instruksi ... 60
3.4.5.4 Perancangan Antarmuka Pesan ... 61
BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 62
4.1 Implementasi ... 62
4.1.1 Implementasi Perangkat Keras ... 62
4.1.2 Implementasi Perangkat Lunak ... 63
4.1.3 Implementasi Aplikasi ... 63
(12)
viii
4.2.1.1 Pengujian Aplikasi Black Box... 66
4.2.1.1.1 Skenario Pengujian Menu Utama ... 67
4.2.1.1.2 Skenario Pengujian Main ... 67
4.2.1.1.3 Skenario Pengujian Instruksi ... 67
4.2.1.1.4 Butir Pengujian ... 68
4.2.1.1.5 Pengujian Tampilkan Aplikasi... 68
4.2.1.1.6 Pengujian Tampilkan Menu Utama ... 68
4.2.1.1.7 Pengujian Tampilkan Menu Instruksi ... 69
4.2.1.1.8 Pengujian Kembali ke Menu Utama ... 69
4.2.1.1.9 Pengujian Keluar Aplikasi ... 70
4.2.1.2 Pengujian Aplikasi White Box ... 70
4.2.1.2.1 Pseudocode Algoritma A* ... 71
4.2.1.2.2 Flowchart Algoritma A* ... 72
4.2.1.2.3 Flowgraph Algoritma A* ... 73
4.2.1.2.4 Graph Matrics... 74
4.2.1.3 Pengujian Performance Aplikasi ... 74
4.2.2 Kesimpulan Pengujian Alpha ... 75
4.2.3 Pengujian Beta ... 75
4.2.3.1 Pertanyaan Pengguna ... 76
(13)
ix
5.1Kesimpulan ... 79 5.2Saran ... 79
(14)
1
1.1 Latar Belakang Masalah
Perkembangan teknologi dari waktu ke waktu mengalami kemajuan yang sangat pesat, salah satunya game.Game tidak hanya menarik dari sisi tampilannya saja tapi juga dari sisi kecerdasan pada objek-objek yang ada di dalamnya. Kecerdasan buatan yang ada pada game membuat objek yang ada didalamnya dapat berperilaku cerdas seperti makhluk hidup. Dengan adanya kecerdasan buatan akan membuat game semakin menarik dan menyenangkan.
Salah satu contoh game yang menarik adalah game labirin. Game labirin adalah sebuah permainan yang mencari jalan keluar yang bertujuan untuk menentukan jalur yang tepat untuk mencapai tujuan yang telah di tetapkan. Contoh dari game labirin adalah game pac-man [2], pada permainan ini mempunyai gameplay yang menarik dimana player harus menghabiskan titik-titik yang tersedia untuk menyelesaikan game ini dan kecerdasan buatan pada tiap musuhnya sudah cukup bagus, namun game ini masih memiliki kekurangan diantaranya : gambar yang masih sederhana yang kurang menarik perhatian anak-anak, peta labirin di setiap level masih sama sehingga akan membuat pemainnya merasa bosan.
Bermain game memang menyenangkan dan dapat memberikan dampak positif namun tak sedikit juga yang memberikan dampak negatif. Dengan adanya
(15)
ingin memainkannya, dengan begini secara tidak sadar akan mengasah kemampuan berpikir dari anak tersebut dan mengurangi dampak negatif dari sebuah game.
Penerapan algoritma A* dalam game labirin dibuat untuk mendapatkan langkah terbaik dari posisi titik awal ke titik tujuan. Algoritma A* merupakan algoritma yang menggabungkan algoritma Dijkstra dan algoritma Best First
Search untuk mengkompensasikan kelemahan-kelemahan dari masing-masing
algoritma. Selain menghitung biaya yang diperlukan untuk berjalan dari suatu
node ke node lainnya, algoritma A* menggunakan heuristic untuk memprioritaskan pemeriksaan node-node pada arah yang benar.
Berdasarkan latar belakang di atas maka pembangunan aplikasi permainan labirin merupakan solusi yang ditawarkan untuk menyelesaikan permasalahan di atas.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dikemukakan di atas munculah masalah bagaimana membuat aplikasi permainan labirin yang menarik dan dapat mengasah kemampuan berpikir.
1.3 Maksud dan Tujuan
Maksud dari penelitian ini adalah untuk membangun aplikasi permainan labirin yang menarik dan dapat mengasah kemampuan berpikir.
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah : 1. Memberikan hiburan berupa sebuah permainan yang menarik. 2. Menambah alternatif permainan berjenis labirin.
(16)
1.4 Batasan Masalah
Terdapat beberapa batasan permasalahan yang dapat dirumuskan agar pembahasan masalah dapat lebih terarah dan terperinci, dengan maksud untuk mempermudah identifikasi dan pemahaman terhadap aplikasi. Adapun batasan masalah terhadap aplikasi ini adalah sebagai berikut :
1. Permainan bersifat single player.
2. Aplikasi ini ditujukan untuk pengguna anak-anak usia 8-15 tahun. 3. Waktu permainan adalah 2 menit dan terdapat 3 level.
4. Algoritma A* akan diterapkan pada musuh untuk mencari jalan terpendek menuju player.
5. Aplikasi dibangun menggunakan bahasa pemrograman Action Script 3 dan menggunakan Adobe Flash CS5.
6. Metode analisis yang digunakan adalah metodologi pemodelan berorientasi objek dengan tools UML.
1.5 Metodologi Penelitian
Metodologi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :
1. Tahap pengumpulan data
Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian sebagai bahan acuan dalam menyelesaikan masalah.
(17)
Metode pembangunan aplikasi ini metodologi waterfall, yang meliputi beberapa proses sebagai berikut :
Communication Project initiation Requirement gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback
Gambar 1.1 Metodologi Waterfall [10]
a. Communication
Tahap ini merupakan tahap pengumpulan data dan kebutuhan lainnya. Data-data yang dikumpulkan akan dianalisis dan didefinisikan sebelum masuk ke tahap desain.
b. Planning
Tahap ini merupakan tahap yang dilakukan sebelum melakukan coding. Tahap ini bertujuan untuk memberikan gambaran apa yang seharusnya dikerjakan dan bagaimana tampilannya. Tahap ini juga membantu dalam menspesifikasikan kebutuhan hardware dan sistem serta mendefinisikan arsitektur sistem secara keseluruhan.
(18)
c. Modeling
Tahap ini merupakan tahap mengimplementasikan (menterjemahkan) design perangkat lunak kedalam kode-kode dengan menggunakan bahasa pemrograman yang telah ditentukan.
d. Construction
Tahap ini merupakan tahap pengintegrasi (penggabungan) unit-unit program yang telah diimplementasikan dan kemudian dilakukan pengujian secara menyeluruh.
e. Deployment
Tahap ini merupakan tahap dimana program dioperasikan di lingkungannya sekaligus melakukan penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya (sesuai dengan kebutuhan masyarakat) untuk itu perlu diadakan beberapa perbaikan untuk menangani berbagai macam kesalahan dan untuk melengkapi fungsi-fungsi baru yang dibutuhkan.
1.6 Sistematika Penulisan
Sistematika penulisan laporan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dilakukan. Adapun sistematika penulisan tugas akhir ini adalah sebagai berikut :
(19)
BAB 1 PENDAHULUAN
Bab ini menerangkan secara umum mengenai latar belakang permasalahan, rumusan masalah, maksud dan tujuan, batasan masalah, serta sistematika penulisan tugas akhir.
BAB 2 LANDASAN TEORI
Bab ini membahas tentang teori dan konsep yang digunakan sebagai landasan atau acuan yang diperlukan terhadap analisis dan perancangan sistem hingga implementasi dan pengujian.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini berisikan tentang analisis sistem, kebutuhan non fungsional serta kebutuhan fungsional. Hasil dari analisis tersebut digunakan untuk melakukan perancangan perangkat lunak.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini menjelaskan tentang implementasi dan pengujian dari perangkat lunak yang dibangun berdasarkan analisis dan perancangan perangkat lunak yang telah dilakukan. Hasil dari implementasi kemudian dilakukan pengujian perangkat lunak menggunakan metode whitebox dan metode blackbox yang terdiri dari pengujian alpha dan beta sehingga perangkat lunak yang dibangun sesuai dengan analisis dan perancangan yang telah dilakukan.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang merupakan rangkuman dari hasil pengujian perangkat lunak dan saran yang perlu diperhatikan bagi pengembangan perangkat lunak di masa yang akan datang.
(20)
7
2.1 Permainan
Game adalah kata dalam bahasa Inggris yang berarti permainan atau pertandingan. Game bisa diartikan sebagai aktivitas terstruktur atau seni terstruktur, yang biasanya dilakukan untuk bersenang-senang dan kadang digunakan sebagai alat pembelajaran. Saat ini perkembangan games di komputer sangat cepat. Para pengelola industri game berlomba-lomba untuk menciptakan game yang lebih nyata dan menarik untuk para pemainnya. Hal inilah yang membuat perkembangan games di komputer sangat cepat. Sehingga games bukan hanya sekedar permainan untuk mengisi waktu luang atau sekedar hobi. Melainkan sebuah cara untuk meningkatkan kreatifitas dan tingkat intelektual para penggunanya.
Game secara umum dibagi menjadi lima bagian diantaranya:
1. Arcade/Action, game yang memiliki interaksi dengan manusia yang tinggi dan menggunakan grafik yang beragam, seperti: game Quake dan
Freelancer.
2. Puzzle, game yang didalamnya terdapat unsur logika, seperti : game Tetris dan maze.
(21)
4. Strategy, game yang memiliki suatu teknik dan pemikiran serta manajemen didalamnya seperti : game Command and Conquer dan
Warcraft.
5. Sport, game seperti permainan olah raga yang sesungguhnya seperti game
FIFA 2000.
2.1.1 Puzzle
Permainan puzzle adalah permainan yang fokus pada tantangan konseptual dan logis, meskipun kadang-kadang ada beberapa bagian yang ditambahkan seperti waktu yang terbatas permainan atau kejadian yang lainnya. Meskipun banyak game action dan game petualangan yang melibatkan teka-teki seperti mendapatkan objek yang tidak dapat diakses, permainan puzzle yang sebenarnya berfokus pada pemecahan teka-teki pada permainan tersebut. Dalam permainan
puzzle biasanya melibatkan bentuk, warna, atau simbol, dan pemain harus
menggerakan/menggunakan mereka ke dalam pola tertentu.
Biasanya memecahkan koleksi puzzle dilakukan secara acak, dalam permainan puzzle akan diberikan serangkaian puzzle yang terkait dengan satu tema. Tema ini bisa melibatkan pengenalan pola, logika, atau pemahaman proses. Permainan ini biasanya memiliki seperangkat aturan sederhana, dimana pemain menggerakan potongan objek dalam ubin tertentu, jalur maupun ruang kosong. Pemain harus harus membongkar petunjuk untuk menang, yang kemudian akan maju ke tingkat berikutnya. Melengkapi setiap teka-teki biasanya akan mengarah ke tantangan yang lebih sulit, meskipun beberapa permainan menghindari untuk memberikan tingkat yang lebih mudah daripada yang lebih sulit.
(22)
Game Pacman (trademark milik Namco) adalah satu game dalam genre ini.
Game ini akan memuat suatu alur jalan yang harus dilalui oleh pemain dan disediakan bad guy/monster yang bersifat merusak dan berusaha untuk menghalangi pemain untuk melewati jalan tersebut. Game disusun agar pemain bisa mencapai satu titik exit tertentu atau keluar ke level yang lebih rumit. Jumlah, kecepatan dan tingkat intelegensia dari bad guy/monster akan menentukan tingkat kesulitan dari game.
2.2 Kecerdasan Buatan
Istilah kecerdasan berasal dari bahasa Inggris: “Artificial Intelligence”, para ilmuan memiliki dua cara pandang yang berbeda tentang AI. Yang pertama adalah memandang AI sebagai bidang ilmu yang hanya fokus pada proses berpikir. Sedangkan yang kedua adalah memandang AI sebagai bidang ilmu yang fokus pada tingkah laku. Cara pandang kedua memandang AI secara lebih luas karena suatu tingkah laku selalu didahului dengan proses berpikir. Berdasarkan pendekatannya definisi AI terbagi menjadi empat kategori [11], yaitu :
1. Thinking humanly : the cognitive modelling approach
Pendekatan ini dilakukan dengan dua cara sebagai berikut :
1. Melalui introspeksi : mencoba menangkap pemikiran-pemikiran kita sendiri pada saat kita berpikir.
2. Melalui eksperimen-eksperimen psikologi. 2. Acting humanly : the turing test approach
Pada tahun 1950, Alan Turing merancang suatu ujian bagi komputer berintelejensia untuk menguji apakah komputer tersebut mampu mengelabui
(23)
seorang manusia yang menginterogasinya melalui teletype (komunikasi berbasis teks jarak jauh). Jika interrogator tidak dapat membedakan yang diinterogasi adalah manusia atau komputer, maka komputer berintelejensia tersebut lolos dari Turing test. Komputer tersebut perlu memiliki kemampuan
Natural Language Processing, Knowledge Representation, Automated
Reasoning, Machine Learning, Computer Vision, Robotics. Turing test sengaja
menghindari interaksi fisik antara interrogator dan komputer karena simulasi fisik manusia tidak memerlukan intelejensia.
3. Thinking rationally : the laws of thought approach
Terdapat dua masalah dalam pendekatan ini, yaitu :
1. Tidak mudah untuk membuat pengetahuan informal dan menyatakan pengetahuan tersebut ke dalam formal term yang diperlukan oleh notasi logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang dari 100%.
2. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam
prinsip” dan memecahkannya “dalam dunia nyata”.
4. 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.
(24)
AI seperti bidang ilmu lainnya juga memiliki sejumlah sub-disiplin ilmu yang sering digunakan untuk pendekatan yang esensial bagi penyelesaian suatu masalah dan dengan aplikasi bidang AI yang berbeda. Aplikasi penggunaan AI dapat dibagi ke dalam tiga kelompok, yaitu :
a. Mundane task
Secara harfiah, arti mundane adalah keduniaan. Di sini, AI digunakan untuk melakukan hal-hal yang sifatnya duniawi atau melakukan kegiatan yang dapat membantu manusia. Contohnya :
1. Persepsi (vision & speech).
2. Bahasa alami (understanding, generation & translation). 3. Pemikiran yang bersifat commonsense.
4. Robot control.
b. Formal task
AI digunakan untuk melakukan tugas-tugas formal yang selama ini manusia biasa lakukan dengan lebih baik. Contohnya :
1. Permainan/games.
2. Matematika (geometri, logika, kalkulus, integral, pembuktian).
c. Expert task
AI dibentuk berdasarkan pengalaman dan pengetahuan yang dimiliki oleh para ahli. Penggunaan ini dapat membantu para ahli untuk menyampaikan ilmu-ilmu yang mereka miliki. Contohnya :
1. Analisis finansial. 2. Analisis medikal.
(25)
4. Rekayasa (desain, pencarian, kegagalan, perencanaan, manufaktur).
2.3 Algoritma A* (A Star)
Algoritma A* adalah algoritma yang menggabungkan algoritma Dijkstra dan algoritma Best First Search untuk mengkompensasikan kelemahan-kelemahan dari masing-masing algoritma. Selain menghitung biaya yang diperlukan untuk berjalan dari suatu node ke node lainnya, algoritma A* menggunakan heuristic untuk memprioritaskan pemeriksaan node-node pada arah yang benar.
Algoritma ini pertama kali diperkenalkan pada 1968 oleh Peter Hart, Nils Nilsson, dan Bertram Raphael. Dalam ilmu komputer, A* (yang diucapkan dengan “A star”) merupakan salah satu algoritma pencarian graph terbaik yang mampu menemukan jalur dengan biaya pengeluaran paling sedikit dari titik permulaan yang diberikan sampai ke titik tujuan yang diharapkan.
Algoritma ini menggunakan fungsi distance + cost, dimana cost antara simpul adalah jaraknya dan perkiraan cost dari suatu simpul ke simpul tujuan adalah penjumlahan jarak dari simpul tersebut ke simpul tujuan. Agar lebih jelas dapat ditunjukkan seperti berikut ini.
(4)
dengan :
fungsi evaluasi
biaya (cost) yang sudah dikeluarkan dari keadaan sampai keadaan n
(26)
A* dapat dijamin keoptimalannya untuk sembarang heuristic yang berarti bahwa tidak ada satupun algoritma lain yang menggunakan heuristic yang sama untuk mengecek lebih sedikit titik dari A*, kecuali ketika ada beberapa solusi parsial dimana h dapat dengan tepat memprediksi ongkos jalur minimal [11].
Untuk lebih jelas, berikut ini adalah cara kerja algoritma A* dapat dilihat pada Gambar 2.1.
Gambar 2.1 Posisi titik awal dan titik tujuan.
Pada gambar diatas terdapat 3 objek, yaitu : kotak A, kotak B dan kotak berwarna hitam, dimana kotak A adalah titik awal, kotak B adalah titik tujuan dan kotak berwarna hitam adalah sebagai penghalang. Langkah berikutnya adalah proses pencarian jalan terpendek menuju titik tujuan, dengan langkah sebagai berikut :
1. Membagi proses pencarian jalan menjadi langkah-langkah kecil. 2. Mencari tahu langkah berikutnya yang akan di ambil.
(27)
3. Mengambil langkah dan ulangi proses pencarian sampai mendapatkan jalan yang terpendek.
Dalam algoritma A* setiap langkah pencarian jalur disebut node. Algoritma A* akan mulai mencari jalan terpendek pada titik A (titik awal), titik A disebut parent node. Selanjutnya memeriksa 8 kotak yang berada di sekitar parent node untuk memilih jalan yang akan diambil selanjutnya, jika ada node yang terhalang oleh dinding atau objek yang tidak bisa dilewati maka akan diabaikan.
Gambar 2.2 Pencarian node di sekitar parent node.
Pergerakan didalam kotak hanya mempunyai dua dan mempunyai biaya yang berbeda yaitu, gerak secara diagonal yang mempunyai biaya 14 dan gerak secara langsung (horizontal dan vertikal) mempunyai biaya 10. Biaya ini akan digunakan sebagai pembanding. Proses awal pencarian akan dicari semua jalan yang memungkinkan dari titik awal menuju titik tujuan. Setiap biaya yang berada di sekitar parent node adalah G.
(28)
Gambar 2.3 Menghitung nilai G disekitar node
Tahap selanjutnya mencari node terdekat menuju titik tujuan, yaitu titik B. Perhitungan biaya perjalanan dihitung mulai dari node pertama menuju ke titik B, maka biaya perjalanan yang didapat adalah 54 karena ada node yang terhalang dinding maka nilai node tersebut tidak dianggap jadi hasil akhir dari biaya yang didapat adalah 44.
(29)
Jarak pencarian ini disebut heuristic. Heuristic adalah tahapan proses uji coba pencarian. Algoritma A* akan mencari node mana yang memiliki jalur yang paling sedikit biayanya, sehingga mencoba mencari semua node yang berada disekitar node parent. Biaya untuk setiap jalur heuristic disebut H. Jika biaya G dan H digabungkan maka akan mendapatkan nilai akhir yang disebut F. Hasilnya akan terlihat seperti pada Gambar 2.5 dimana nilai setiap node akan diketahui.
Gambar 2.5 Pencarian nilai F
Setelah nilai G dan H diketahui selanjutnya mencari nilai F, node yang mempunyai nilai terkecil akan dipilih sebagai jalur berikutnya.
(30)
Node ini sekarang berpotensial menjadi parent node yang baru. Setiap parent node berpotensial memiliki langkah menuju titik B. Sebenarnya parent node yang baru ini bukan langkah yang terbaik., akan lebih baik jika bergerak secara diagonal.
Gambar 2.7 Proses pencarian node
Algoritma A* memiliki sistem untuk memeriksa kembali node untuk mencari
node parent yang terbaik. Dalam proses pencariannya terbagi menjadi dua, yaitu
closed list dan open list. Dalam pencarian closed list, node tidak perlu diperiksa walaupun node parent ditemukan, sedangkan dalam pencarian open list untuk setiap node disekitar parent akan diperiksa. Ketika parent node baru mencari semua node yang ada disekitarnya, nilai G yang sebelumnya akan disimpan dalam
open list.
(31)
Untuk mencari nilai G yang baru caranya mengambil nilai G yang baru dari
parent node kemudian ditambah 10. Karena nilai G yang baru lebih besar dari nilai G yang sebelumnya maka parent node tidak berubah.
Gambar 2.9 Nilai G dari parent node yang baru
Karena nilai G yang baru lebih besar dari nilai G yang sebelumnya maka parent node tidak berubah.
Gambar 2.10 Hasil biaya dari node yang baru
Karena tidak adanya node yang berubah maka jalur yang dicari tidak berhasil, algoritma A* akan terus mencari sampai menemukan node berikutnya yang mempunyai nilai F terkecil.
Setelah menemukan node baru kemudian akan dihubungkan dengan node
(32)
Gambar 2.11 Hasil pencarian algoritma A*
Ketika sudah sampai ke titik tujuan, maka proses pencarian akan dihentikan, kemudian titik A akan bergerak mengikuti jalur yang telah dicari menuju titik tujuan.
2.3.1 Kompleksitas Algoritma A*
Kompleksitas waktu dari A* sangat bergantung dari heuristic yang digunakannya. Pada kasus terburuk, jumlah titik yang diperiksa berjumlah eksponensial terhadap panjang solusi (jalur terpendek), tetapi A* akan memiliki kompleksitas waktu polinomial apabila fungsi memenuhi kondisi berikut :
(6)
dimana h* adalah heuristic optimal, yaitu ongkos sebenarnya dari jalur x ke tujuan. Dengan kata lain, galat dari h tidak akan melaju lebih cepat dari logaritma
(33)
2.4 Flash
Pada tahun 1980-an, ketika SMA Jonathan Gay menggunakan komputer Apple II yang sudah tua umurnya untuk membuat program gambar komputer. Dia mengajukan dan mengikutsertakan program yang dikenal sebagai SuperPaint dalam pameran sains sekolah. Setelah dia menang, program buatannya menarik perhatian bagi pengembang software lokal Charlie Jackson. Jackson sedang dalam proses memulai sebuah perusahaan yang dikenal sebagai Silicon Pantai Software, yang akan menghasilkan program untuk jenis komputer Macintosh. Dengan sedikit dana yang tersedia untuk mempekerjakan para pengembang berpengalaman, Jackson Gay disewa untuk membantu menciptakan program-programnya. Pada tahun 1993 Jonathan Gay, Charlie Jackson, dan Michelle Welsh mengembangkan SmartSketch. Aplikasi tersebut dibangun untuk menggambar dengan mode vektor. Adobe Flash dahulu dikembangkan oleh Macromedia dan dikenali dengan nama Macromedia Flash. Flash pertama kali dirilis oleh Macromedia. Flash 1.0 diluncurkan pada tahun 1996 setelah Macromedia membeli program animasi vektor bernama FutureSplash. Versi terakhir yang diluncurkan di pasaran dengan menggunakan nama 'Macromedia' adalah adalah Macromedia Flash 8. Pada tanggal 3 Desember 2005 Adobe Systems mengakuisisi Macromedia dan seluruh produknya, sehingga nama Macromedia Flash berubah menjadi Adobe Flash.
Hingga saat ini flash banyak diaplikasikan untuk membuat animasi, iklan, multimedia interaktif, integrasi video pada halaman web, dan sekarang banyak dikembangkan untuk memperkaya aplikasi yang berjalan di internet.
(34)
2.5 Actionscipt
Actionscript adalah suatu programming language (bahasa pemograman) yang dapat ditambahkan pada flash document (baik itu pada frame, movie clip, atau button) untuk dapat membuat suatu animasi yang lebih interaktif. ActionScript 1.0 rilis pertama kali pada Flash 5 yang merupakan pengembangan
“Action” di Flash 4, dan masih digunakan hingga Flash MX (Flash 6).
ActionScript 2.0 kemudian dirilis pada Flash MX 2004 (Flash 7), Flash 8, sampai Flash CS3 (Flash 9). Sebagai generasi penerus ActionScript 1.0 dengan kelebihannya dari kemampuan compile time checking, strict-typing pada variabel,
class-based syntax (yang sebelumnya prototype based).
ActionScript 3.0 akhirnya digunakan pada Flash CS3 (Flash 9), Flex 2, Flex 3. ActionScript versi 3.0 ini berupa sebuah restrukturisasi fundamental dari model pemrograman sebelumnya. Penggunaannya yang luas terutama dalam pengembangan RIA (Rich Internet Application) dengan hadirnya Flex yang menawarkan hal serupa seperti AJAX, JavaFX, dan Microsoft Silverlight.
2.6 Unified Modeling Language (UML)
Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk
mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML tidak berdasarkan pada bahasa pemrograman tertentu. Standar spesifikasi UML dijadikan standar defacto oleh OMG (Object Management Group) pada tahun 1997. UML yang berorientasikan object mempunyai beberapa notasi standar. Spesifikasi ini menjadi populer dan standar karena sebelum adanya UML, telah ada berbagai macam spesifikasi yang berbeda. Hal ini menyulitkan
(35)
komunikasi antar pengembang perangkat lunak. Untuk itu beberapa pengembang spesifikasi yang sangat berpengaruh berkumpul untuk membuat standar baru. UML dirintis oleh Grady Booch, James Rumbaugh dan Ivar Jacobson. Komponen yang terdapat pada UML, diantaranya:
1. Use casediagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari
sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan
bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.
2. Sequencediagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa
message yang digambarkan terhadap waktu. Sequence diagram terdiri atas
dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).
3. Collaborationdiagram
Collaboration diagram juga menggambarkan interaksi antar objek seperti
sequence diagram, tetapi lebih menekankan pada peran masing-masing
(36)
memiliki sequence number, di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama.
4. Statechart diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (dari
satu state ke state lainnya). Suatu objek pada sistem sebagai akibat dari
stimuli yang diterima. Pada umumnya statechart diagram menggambarkan
class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).
5. Activity diagram
Activity diagram menggambarkan berbagai alir aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alir berawal, decision
yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram
juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Diagram aktivitas mendeskripsikan aksi-aksi dan hasilnya. Diagram aktivitas berupa operasi-operasi dan aktivitas-aktivitas di use-case.
6. Class diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan
sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class diagram menggambarkan struktur dan deskripsi
class package dan objek beserta hubungan satu sama lain seperti
containment, pewarisan, asosiasi, dan lain-lain. Class diagram
(37)
fungsional sistem. Kebutuhan fungsional berarti layanan-layanan yang harus disediakan sistem ke pemakai.
7. Object diagram
Sebuah diagram obyek dalam Unified Modeling Language (UML), adalah diagram yang menunjukkan suatu pandangan lengkap atau sebagian dari struktur system dimodelkan pada waktu tertentu. Sebuah diagram obyek berfokus pada beberapa set tertentu variabel dan atribut, dan hubungan antara variabel. Satu set berkorelasi diagram objek memberikan wawasan tentang bagaimana pandangan sewenang-wenang sistem diharapkan berkembang dari waktu ke waktu. Obyek diagram lebih konkret dari diagram kelas, dan sering digunakan untuk memberikan contoh-contoh, atau bertindak sebagai uji kasus untuk diagram kelas. Hanya aspek-aspek dari model yang menarik saat ini perlu ditunjukkan pada diagram objek.
8. Component diagram
Component diagram menggambarkan struktur dan hubungan antar
komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi
source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun runtime. Umumnya komponen terbentuk dari beberapa class atau package, tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa
interface, yaitu kumpulan layanan yang disediakan sebuah komponen
(38)
9. Deployment diagram
Deployment/physical diagram menggambarkan detail bagaimana
komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya.
2.7 Adobe Photoshop
Pada akhir 1980-an, Thomas Knoll dan John Knoll mengembangkan sebuah pemrograman perisian grafik yang bernama program pixel imaging dibuat pertama kali, kemudian Image Pro, dan akhirnya Photoshop. Mereka membuat suatu persembahan diterima dengan baik kepada Russell Brown di Syarikat Adobe dan kemudian Adobe Photoshop dilesenkan pada tahun 1988. Bermulalah perkembangan suatu sejarah yang dikenali sebagai Adobe Photoshop.
Adobe Photoshop, atau biasa disebut Photoshop, adalah penyunting grafik yang dikembangkan dan diterbitkan oleh Adobe System yang diciptakan untuk
penyuntingan foto/gambar dan pembuatan kesan gambar. “Photoshop” bermaksud
“kedai foto” dalam Bahasa Inggris. Perisian ini banyak digunakan oleh juru
gambar digital dan perusahaan iklan sehingga dianggap sebagai pasaran utama untuk perisian pengolahan gambar, dan bersama Adobe Acrobat, dianggap sebagai produk terbaik yang pernah dihasilkan oleh Adobe Systems. Versi kelapan aplikasi ini disebut dengan nama Photoshop CS, versi kesembilan disebut
(39)
Photoshop CS2, Photoshop CS3, Photoshop CS4 dan versi terbaru yang akan dilancarkan April 2010 ini adalah Photoshop CS5.
2.8 Adobe Illustrator
Adobe Illustrator pertama kali dibuat pada tahun 1986, sebagai aplikasi pembuat desain grafis, huruf, dan logo. Sebenarnnya Adobe Illustrator diciptakan dengan tujuan menggabungkan persamaan matematika untuk menciptakan garis halus dan melengkung serta bentuk objek yang dikenal sebagai kurva Bezier. Untuk menekankan gagasan yang mampu memproduksi dan mengedit dan menyimpan garis lengkung dan beralur, Adobe memilih gambar "The Birth of Venus" dari Sandro Botticelli untuk menjadi cover pemasaran mereka. Selama bertahun-tahun dan beberapa versi, Adobe menambahkan fitur-fitur baru dan perbaikan.
Gambar 2.12 Logo Adobe Illustrator[1]
Adobe Illustrator adalah produk pedamping dari Adobe Photoshop. Jika Photoshop ditujukan untuk memanipulasi foto digital dan gaya foto realistik ilustrasi komputer, sedangkan Illustrator ditujukan untuk kreasi logo, huruf dan desain grafis.
(40)
Aplikasi ini banyak digunakan oleh desainer profesional, mulai desainer iklan, majalah, cover, banner sampai desainer web. Adobe Illustrator mendukung format RGB (Red, Green, Blue) dan CMYK (Cyan, Magenta, Yellow, Key -
(41)
28
Analisis merupakan proses penguraian konsep ke dalam bagian-bagian yang lebih sederhana, sehingga struktur logisnya menjadi jelas lalu mengidentifikasi permasalahan-permasalahan yang terdapat pada sistem dan menentukan kebutuhan-kebutuhan dari sistem yang akan dibangun.
3.1 Analisis Sistem
Game dengan tema labirin memang sangat menarik untuk dimainkan dan lebih menantang, contohnya game pac-man [2].
Gambar 3.1 Game pac-man
mempunyai gameplay yang menarik dimana player harus menghabiskan titik-titik yang tersedia untuk menyelesaikan game ini dan kecerdasan buatan pada tiap musuhnya sudah cukup bagus, namun game ini masih memiliki kekurangan diantaranya : gambar yang masih sederhana, peta labirin di setiap level masih sama sehingga akan membuat pemainnya merasa bosan.
(42)
3.2 Analisis Kebutuhan Non Fungsional
3.2.1 Analisis Kebutuhan Perangkat Keras
Perangkat keras yang dibutuhkan untuk memainkan game ini antara lain :
Tabel 3.1 Perangkat keras yang digunakan
Perangkat Keras Spesifikasi
Processor Kecepatan 1,8 GHz
Memory 512 MB
VGA 512 MB
Harddisk Free space 100 MB
Monitor Resolusi 1024 x 768
Keyboard Mouse
3.2.2 Analisis Kebutuhan Perangkat Lunak
Selain perangkat keras, perangkat lunak (software) pendukung juga dibutuhkan dalam menjalankan sebuah aplikasi. Perangkat lunak pendukung yang digunakan untuk membangun aplikasi ini antara lain :
1. Sistem operasi komputer Windows XP.
2. Adobe Flash Player10.
3. Adobe Flash CS5.
3.2.3 Analisis AI (Artificial Intelligence)
Pada game yang akan dibangun algoritma A* (A Star) akan diterapkan pada musuh untuk mencari jalan menuju karakter player. Pencarian jalan terpendek pada game ini akan diasumsikan dengan titik awal (musuh) dan titik tujuan (player) dimana titik tujuan bersifat dinamis sehingga akan membuat
(43)
musuh terus mengejar player dan akan diimplementasikan pada pencarian dalam ruangan yang mempunyai penghalang.
.
Gambar 3.2 Peta level 1
Pada Gambar 3.2 terlihat bahwa terdapat 3 objek, yaitu : player, musuh dan tembok penghalang. Dimana P adalah karakter player, E adalah karakter
enemy dan m adalah sebagai tembok penghalang. Karakter P dan E dipergunakan
untuk menunjukkan lokasi titik awal (P) dan titik akhir (E). Dalam proses pencarian algoritma A* terdapat 3 nilai yaitu g, h dan f. Nilai g adalah biaya sebenarnya, nilai g mempunyai nilai yang berbeda untuk pergerakan secara horizontal costnya adalah 10 sedangkan untuk yang diagonal adalah 14, nilai h
adalah biaya perkiraannya dan rumus untuk mendapatkan nilai heuristic adalah
(44)
diperhitungkan. Dalam notasi matematika algoritma A* dapat dituliskan dengan
f(n) = g(n) + h(n).
Proses pertama yang dilakukan oleh musuh adalah mencari tahu jalan menuju player, proses yang kedua adalah mencari langkah yang akan diambil kemudian proses selanjutnya adalah mengambil langkah dan apabila langkah menuju player terhalang oleh tembok maka ulangi proses pencarian sampai menemukan jalan terpendek menuju player.
Jika musuh sudah mencapai player maka proses pencarian akan selesai lalu nyawa player akan berkurang satu dan waktu akan berhenti kemudian permainan akan berulang sampai nyawa player habis.
Untuk lebih jelas, berikut adalah langkah perhitungan dalam pencarian jalur menuju player :
Gambar 3.3 Kondisi awal pencarian A*
(45)
Posisi simpul tujuan = targetX : 1, targetY : 1 Langkah pertama
G (10,4) = 10
H (10,4) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(9-1) + abs(4-1))
= 10 * (8+3) = 10 * 11 = 110
F (10,4) = G(10,4) + H(10,4) = 10 + 110
= 120 G (9,5) = 14
H (9,5) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(9-1) + abs(5-1))
= 10 * (8+4) = 10 * 12 = 120
F (9,5) = G(9,5) + H(9,5) = 14 + 120 = 134 G (11,3) = 14
H (11,3) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(11-1) + abs(3-1))
= 10 * (10+2) = 10 * 12 = 120
(46)
= 14 + 120 = 134 G (11,4) = 10
H (11,4) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(11-1) + abs(4-1))
= 10 * (10+3) = 10 * 13 = 130
F (11,4) = G (11,4) + H (11,4) = 10 + 130
= 140 G (11,5) = 14
H (11,5) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(11-1) + abs(5-1))
= 10 * (10+4) = 10 * 14 = 140
F (11,5) = G (11,5) + H (11,5) = 14 + 140
(47)
Gambar 3.4 Langkah pertama pencarian best node
Pada Gambar 3.4 terdapat lima simpul yang mungkin menjadi best node yaitu (9,4) dengan F(n) = 120, (9,5) dengan F(n) = 134, (11,3) dengan F(n) = 134, (11,4) dengan F(n) = 140 dan (11,5) dengan F(n) = 154, maka yang dipilih adalah simpul (9,4) dengan biaya 120.
Langkah kedua G (9,5) = 20
H (9,5) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(9-1) + abs(5-1))
= 10 * (8+4) = 10 * 12 = 120
F (9,5) = G(9,5) + H(9,5) = 20 + 120 = 140 G (8,4) = 20
(48)
H (8,4) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(8-1) + abs(4-1))
= 10 * (7+3) = 10 * 10 = 100
F (8,4) = G (8,4) + H (8,4) = 20 + 100
= 120
Gambar 3.5 Langkah kedua pencarian best node
Pada Gambar 3.5 terdapat dua simpul yang mungkin menjadi best node yaitu (8,4) dengan F(n) = 120 dan (9,5) dengan F(n) = 140, maka yang dipilih adalah simpul (8,4) dengan biaya 120.
Langkah ketiga G (7,4) = 30
H (7,4) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(7-1) + abs(4-1))
(49)
= 10 * (6+3) = 10 * 9 = 90
F (7,4) = G(7,4) + H(7,4) = 30 + 90
= 120
Gambar 3.6 Langkah ketiga pencarian best node
Pada Gambar 3.6 terdapat satu simpul yang menjadi best node yaitu (7,4) dengan F(n) = 120, maka yang dipilih adalah simpul (7,4) dengan biaya 120.
Langkah keempat G (6,4) = 40
H (6,4) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(6-1) + abs(4-1))
= 10 * (5+3) = 10 * 8 = 80
(50)
= 40 + 80 = 120
Gambar 3.7 Langkah keempat pencarian best node
Pada Gambar 3.7 terdapat satu simpul yang menjadi best node yaitu (6,4) dengan F(n) = 120, maka yang dipilih adalah simpul (6,4) dengan biaya 120.
Langkah kelima G (5,4) = 50
H (5,4) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(5-1) + abs(4-1))
= 10 * (4+3) = 10 * 7 = 70
F (5,4) = G(5,4) + H(5,4) = 50 + 70
(51)
G (5,5) = 54
H (5,5) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(5-1) + abs(5-1))
= 10 * (4+4) = 10 * 8 = 80
F (5,5) = G(5,5) + H(5,5) = 54 + 80
= 134
Gambar 3.8 Langkah kelima pencarian best node
Pada Gambar 3.8 terdapat dua simpul yang mungkin menjadi best node yaitu (5,4) dengan F(n) = 120 dan (5,5) dengan F(n) = 134, maka yang dipilih adalah simpul (5,4) dengan biaya 120.
Langkah keenam G (4,4) = 60
(52)
= 10 * (abs(4-1) + abs(4-1)) = 10 * (3+3)
= 10 * 6 = 60
F (4,4) = G(4,4) + H(4,4) = 60 + 60
= 120 G (5,5) = 60
H (5,5) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(5-1) + abs(5-1))
= 10 * (4+4) = 10 * 8 = 80
F (5,5) = G(5,5) + H(5,5) = 60 + 80
= 140
(53)
Pada Gambar 3.9 terdapat dua simpul yang mungkin menjadi best node yaitu (4,4) dengan F(n) = 120 dan (5,5) dengan F(n) = 140, maka yang dipilih adalah simpul (4,4) dengan biaya 120.
Langkah ketujuh G (3,3) = 74
H (3,3) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(3-1) + abs(3-1))
= 10 * (2+2) = 10 * 4 = 40
F (3,3) = G(3,3) + H(3,3) = 74 + 40
= 114 G (3,4) = 70
H (3,4) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(3-1) + abs(4-1))
= 10 * (2+3) = 10 * 5 = 50
F (3,4) = G(3,4) + H(3,4) = 70 + 50
(54)
Gambar 3.10 Langkah ketujuh pencarian best node
Pada Gambar 3.10 terdapat dua simpul yang mungkin menjadi best node yaitu (3,3) dengan F(n) = 114 dan (3,4) dengan F(n) = 120, maka yang dipilih adalah simpul (3,3) dengan biaya 114.
Langkah kedelapan G (3,2) = 84
H (3,2) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(3-1) + abs(2-1))
= 10 * (2+1) = 10 * 3 = 30
F (3,2) = G(3,2) + H(3,2) = 84 + 30
= 114 G (4,2) = 88
(55)
= 10 * (abs(4-1) + abs(2-1)) = 10 * (3+1)
= 10 * 4 = 40
F (4,2) = G(4,2) + H(4,2) = 88 + 40
= 128
Gambar 3.11 Langkah kedelapan pencarian best node
Pada Gambar 3.11 terdapat dua simpul yang mungkin menjadi best node yaitu (3,2) dengan F(n) = 114 dan (4,2) dengan F(n) = 128, maka yang dipilih adalah simpul (3,2) dengan biaya 114.
Langkah kesembilan G (2,1) = 98
H (2,1) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(2-1) + abs(1-1))
(56)
= 10 * 1 = 10
F (2,1) = G(2,1) + H(2,1) = 98 + 10
= 108 G (3,1) = 94
H (3,1) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(3-1) + abs(1-1))
= 10 * (2+0) = 10 * 2 = 20
F (3,1) = G(3,1) + H(3,1) = 94 + 20
= 114
(57)
Pada Gambar 3.12 terdapat dua simpul yang mungkin menjadi best node yaitu (2,1) dengan F(n) = 108 dan (3,1) dengan F(n) = 114, maka yang dipilih adalah simpul (3,1) dengan biaya 108.
Langkah kesepuluh G (1,1) = 108
H (1,1) = 10 * (abs(currentX-targetX) + abs(currentY-targetY)) = 10 * (abs(1-1) + abs(1-1))
= 10 * (0+0) = 10 * 0 = 0
F (1,1) = G(2,1) + H(2,1) = 108 + 0
= 108
Gambar 3.13 Langkah kesepuluh pencarian best node
Pada Gambar 3.13 terdapat satu simpul (1,1) dengan F(n) = 108 dan dikenali sebagai simpul tujuan.
(58)
Gambar 3.14 Hasil pencarian jalan dengan algortima A*
Gambar 3.14 merupakan hasil pencarian jalan dari titik awal (E) menuju titik akhir (P).
3.3 Analisis Kebutuhan Fungsional
Menggambarkan proses kegiatan yang akan diterapkan dalam sistem dan menjelaskan kebutuhan yang diperlukan agar sistem dapat berjalan dengan baik serta sesuai dengan kebutuhan proses bisnis sistem yang bersangkutan.
Analisis yang dilakukan dimodelkan dengan menggunakan UML (Unified
Modeling Language). Tahapan pemodelan dalam analisis tersebut antara lain
mengidentifikasi aktor, pembuatan use case diagram, use case scenario, activity
(59)
3.3.1 Use Case Diagram
Use case adalah konstruksi untuk mendeskripsikan bagaimana sistem
terlihat dimata pengguna. Sasaran pemodelan use case diantaranya adalah mendefinisikan kebutuhan fungsional dan operasional sistem dengan mendefinisikan skenario penggunaan yang disepakati antara pemakai dan pengembang (developer). Dari identifikasi aktor yang terlibat di atas maka use case diagram untuk aplikasi game jalan pintas dapat dilihat dalam Gambar 3.15.
Main
Instruksi
Keluar Pemain
Sistem
(60)
3.3.2 Use Case Scenario
3.3.2.1 Use Case Scenario Main
Use case scenario main digunakan untuk memulai permainan yang
dilakukan oleh pengguna. Skenario main dapat dilihat pada Tabel 3.2.
Tabel 3.2 Use case scenario main
Identifikasi
Nomor 1
Nama Main
Tujuan Memainkan permainan
Deskripsi Proses memulai untuk memainkan permainan
Aktor User
Use case yang berkaitan
-
Skenario Utama
Kondisi Awal Tampilan menu permainan.
Aksi Aktor Reaksi Sistem
1. User menekan tombol main.
2. Memeriksa inputan yang dipilih oleh user. 3. Menampilkan permainan.
4. User menekan tombol kiri, atas, kanan dan bawah untuk
menggerakan karakter
5. Memeriksa inputan dari user lalu memproses inputan tersebut.
Kondisi Akhir Memainkan permainan
3.3.2.2 Use Case Scenario Instruksi
Use case scenario instruksi digunakan untuk menampilkan instruksi
dalam memainkan permainan yang dilakukan oleh pengguna. Skenario instruksi dapat dilihat pada Tabel 3.3.
(61)
Tabel 3.3 Use case scenario instruksi Identifikasi
Nomor 2
Nama Instruksi
Tujuan Memperoleh informasi permainan
Deskripsi Proses memulai untuk memperoleh informasi
permainan
Aktor User
Use case yang berkaitan
-
Skenario Utama
Kondisi Awal Tampilan menu permainan
Aksi Aktor Reaksi Sistem
1. User menekan tombol instruksi.
2. Memproses data yang dipilih oleh user.
Kondisi Akhir Menampilkan konten instruksi
3.3.2.3Use CaseScenario Keluar
Use case scenario keluar digunakan untuk keluar dalam aplikasi
permainan yang dilakukan oleh pengguna. Skenario keluar dapat dilihat pada Tabel 3.4.
Tabel 3.4 Use case scenario keluar
Identifikasi
Nomor 3
Nama Keluar
Tujuan Keluar dari permainan
Deskripsi Proses untuk keluar dari permainan
Aktor User
Use case yang berkaitan
-
Skenario Utama
Kondisi Awal Tampilan menu permainan
Aksi Aktor Reaksi Sistem
1. User menekan tombol keluar.
2. Aplikasi berhenti.
(62)
3.3.3 Activity Diagram
Diagram aktifitas (Activity diagram) memodelkan aliran kerja atau
workflow sebuah proses bisnis dan urutan aktifitas dalam suatu proses. Berikut gambaran diagram aplikasi game jalan pintas.
3.3.3.1Activity Diagram Main
Aktifitas main merupakan aktifitas untuk memulai permainan yang dapat diakses oleh user. Seluruh tahapan aktifitas main dapat dilihat pada Gambar 3.16.
Sistem User
Pilih menu main
Start
Tampil menu utama
Tampil permainan End Menang win R e s e t Menekan tombol
navigasi Karakter bergerak
Buka aplikasi permainan
Menunggu request pemain
(63)
3.3.3.2Activity Diagram Instruksi
Aktifitas instruksi merupakan aktifitas untuk melihat petunjuk permainan yang dapat diakses oleh user. Seluruh tahapan aktifitas instruksi dapat dilihat pada Gambar 3.17.
Sistem User
Pilih menu instruksi Start
Tampil menu utama
Tampil konten help
End
k
e
m
b
a
li
Buka aplikasi permainan
Menunggu request pemain
(64)
3.3.4 Sequence Diagram
Sequence diagram merupakan penerapan skenario aplikasi game jalan
pintas dengan menunjukan interaksi dengan menampilkan setiap partisipan garis alir secara vertikal dan pengurutan pesan dari atas ke bawah.
3.3.4.1Sequence Diagram Use Case Main
Sequence diagram untuk use case main menggambarkan interaksi antara objek dari class MainClass dan objek yang berkaitan dengan class karakter.
(65)
3.3.4.2Sequence Diagram Instruksi
Sequence diagram untuk use case main menggambarkan interaksi antara objek dari class MainClass dengan class menu instruksi.
Gambar 3.19 Sequencediagram instruksi
3.3.5 Class Diagram
Class Diagram menggambarkan struktur dan hubungan antar objek-objek
yang ada pada sistem. Struktur itu meliputi atribut-atribut dan method-method
yang ada pada masing-masing class, sedangkan hubungnnya meliputi pewarisan asosiasi, generalilasi dll.
(66)
(67)
3.3.6 State Diagram
Gambar 3.21 State diagram
3.4 Perancangan Sistem
Perancangan sistem merupakan metodologi pengembangan suatu perangkat lunak yang dilakukan setelah melalui tahapan analisis. Dalam tahap ini digambarkan rancangan sistem yang akan dibangun sebelum dilakukan pengkodean ke dalam suatu bahasa pemrograman.
3.4.1 Storyline
Permainan jalan pintas menceritakan tentang seorang anak kucing yang tersesat ketika sedang bermain, saat akan kembali pulang ternyata dia lupa jalan pulang menuju rumahnya sedangkan dia harus segera pulang karena jika sampai tidak tepat waktu maka tidak akan diijinkan masuk ke rumah. Ternyata tempat yang dikunjunginya banyak penjahat yang suka mengganggu, dia harus mencari jalan pintas agar cepat sampai menuju rumahnya dan berusaha menghindari penjahat yang akan mengejarnya.
(68)
3.4.2 Storyboard
Pada saat membuka aplikasi game akan menampilkan menu utama dengan tiga buah tombol, pemain dapat langsung memainkan game atau memilih menu yang ada.
Gambar 3.22 Menu utama
Berikut ini adalah story board info instruksi setelah pemain memilih menu instruksi pemain akan dihadapkan pada tampilan info instruksi.
Gambar 3.23 Tampilan info instruksi
instruksi
Main
Instruksi
Keluar
(69)
Setelah pemain memilih menu Main maka pemain dapat langsung memulai permainan mulai dari level 1, apabila sudah sampai ke tempat tujuan pemain akan memulai kembali permainan dan akan bertambah level.
Gambar 3.24 Tampilan level 1
Setelah pemain sampai menuju pintu keluar maka pemain akan dihadapkan menuju level 2.
(70)
Gambar 3.25 Tampilan level 2
Setelah level 2 terlewati maka selanjutnya pemain akan menuju level 3 yang merupakan level terakhir dari permainan.
(71)
3.4.3 Karakter
Pada game jalan pintas ini terdapat tiga karakter, terdiri dari satu karakter
player dan dua karakter musuh. Karakter player bisa bergerak ke kiri-kanan dan
atas-bawah serta mempunyai tiga nyawa, sedangkan karakter musuh bergerak secara acak untuk mencari posisi player apabila musuh melihat player maka musuh akan mengejar dan setiap musuh diberi batasan jarak pandang.
3.4.4 Perancangan Struktur Menu
Untuk mempermudah pembuatan sistem diperlukan perancangan struktur menu program yang akan dibangun. Perancangan struktur menu program ini membantu dalam merancang bagian-bagian dari sistem yang sebenarnya dan untuk mengetahui bagian mana yang terlebih dahulu nantinya yang akan diakses setelah program tersebut selesai. Gambar di bawah ini menunjukkan perancangan struktur menu dari sistem yang akan dibangun.
Start Menu
Main Petunjuk
Keluar
(72)
3.4.5 Perancangan Antarmuka
Perancangan antarmuka dilakukan untuk mempermudah damalam mengimplementasikan sistem yang akan dibangun.
3.4.5.1Perancangan Antarmuka Menu Utama
Masuk ke menu utama game menampilkan tiga buah tombol pada layar yang akan dipilih oleh pemain untuk memainkan game langsung atau memilih menu-menu lainya. Main Petunjuk Keluar Navigasi : T01
Klik tombol Main maka akan muncul T02
Klik tombol Petunjuk maka akan muncul T03
Klik tombol Keluar untuk keluar dari aplikasi Background
Keterangan :
- Ukuran layar 832 x 768, font comic sans ms size 15 dengan warna hitam - Background bergambar pemandangan
Jalan Pintas
Gambar 3.28 Antarmuka menu utama
3.4.5.2Perancangan Antarmuka Game
Masuk ke antarmuka game, pemain akan menghadapi jalan yang membingungkan untuk sampai ke tempat tujuan lalu pemain akan menghadapi
(73)
musuh yang akan menghadang selain itu juga pemain akan diberi tiga nyawa dalam permainan ini dan akan diberi waktu.
Navigasi : T02
Map
Keterangan :
Ukuran layar 832 x 768, font comic sans ms size 15 dengan warna hitam
02 : 00
Gambar 3.29 Antarmuka game
3.4.5.3Perancangan Antarmuka Instruksi
Masuk ke antarmuka instruksi, pemain akan diberikan instruksi tentang tata cara dalam memainkan game.
(74)
Navigasi : T03
Instruksi Permainan
Keterangan :
Ukuran layar 832 x 768, font comic sans ms size 15 dengan warna hitam
Main Kembali
Klik tombol Main maka akan muncul T02
Klik tombol Kembali maka akan muncul T01
Gambar 3.30 Antarmuka instruksi
3.4.5.4Perancangan Antarmuka Pesan
Antarmuka pesan akan muncul jika pemain terkena musuh sebanyak tiga kali atau waktu yang diberikan tidak cukup.
Informasi
Game Over
Ok M01
X
(75)
62
4.1 Implementasi
Tujuan implementasi adalah untuk menerapkan perancangan yang telah dilakukan terhadap sistem sehingga user dapat memberi masukan demi berkembangnya sistem yang telah dibangun sebagai game labirin jalan pintas. Perangkat keras dan perangkat lunak yang digunakan untuk melakukan implementasi dan pengujian aplikasi yaitu sebagai berikut :
4.1.1 Implementasi Perangakat Keras
Perangkat keras yang akan digunakan untuk menjalankan aplikasi game
jalan pintas ini tidak harus komputer yang berspesifikasi tinggi. Hal disebabkan oleh penggunaan resource yang sedikit pada CPU dan tidak terlalu memakai
resource grafis yang terlalu banyak. Sebagai ilustrasi sistem minimum yang dapat
menjalankan aplikasi adalah sebagai berikut :
Tabel 4.1 Implementasi Perangkat Keras
Perangkat Keras Spesifikasi
Processor Kecepatan 1,8 GHz
Memory 512 MB
VGA 512 MB
Harddisk Free space 100 MB
Monitor Resolusi 1024 x 768
Keyboard -
(76)
4.1.2 Implementasi Perangakat Lunak
Spesifikasi perangkat lunak yang digunakan untuk menjalankan aplikasi
game ini adalah sebagai berikut :
1. Sistem Operasi : Microsoft Windows XP SP3 2. Flash Player : Flash Player 10
4.1.3 Implementasi Aplikasi
Aplikasi permainan jalan pintas merupakan sebuah permainan labirin dengan tujuan menghindari kejaran musuh sampai ke tempat tujuan. Aplikasi ini tidak perlu dilakukan instalasi dengan syarat pada sistem operasi Windows harus terdapat Adobe Flash Player 10, cukup dengan melakukan doubel-klik pada aplikasi ini (executable) maka aplikasi permainan ini dapat dimainkan. Aplikasi permainanini berekstensi .swf yang hanya bisa berjalan dengan dukungan Adobe Flash Player 10.
4.1.4 Implementasi Antarmuka
Implementasi antarmuka berisi pemaparan setiap tampilan aplikasi permainan jalan pintas sebagai layout dari masing-masing antarmuka seperti terlihat pada Tabel 4.2. Adapun gambar dari tampilan implementasi antarmuka aplikasi permainan jalan pintas tertera pada halaman Lampiran A Implementasi Antarmuka.
Tabel 4.2 Implementasi Antarmuka Aplikasi Permainan Jalan Pintas
No Halaman Deskripsi File
1 Menu Utama Halaman awal dari
aplikasi permainan MainClass
2 Menu Play Digunakan oleh
(77)
permainan dan terdapat 3 level permainan
3 Menu Petunjuk Halaman yang berisi
petunjuk cara bermain MainClass
4 Game Over Halaman akhir dari
permainan Maze View
4.1.5 Implementasi Kelas
Implementasi kelas menggambarkan struktur file (.as) yang berisi kelas-kelas dalam aplikasi permainan Jalan Pintas. Berikut ini implementasi dari kelas-kelas aplikasi permainan Jalan Pintas seperti terlihat pada Tabel 4.3.
Tabel 4.3 Implementasi Kelas Aplikasi Permainan Jalan Pintas
No Nama Isi Kelas Nama File
1 MainClass TileSize MainClass.as
MapColomn MapRow Wall Floor Enemy Player Exit MazeMap Time Lives
2 MazeView Model MazeView.as
Controller Stage
(78)
Stage
4
TileModel tileSheetRow TileModel.as
tileSheetColumn mapRow
MapColumn maxTileSize
5 CharacterModel Friction characterModel.as
Width Height xPos yPos
6 Enemy xPos Enemy.as
yPos
checkCoolision
7 Player xPos Player.as
yPos
8 A Star shortestPath aStar.as
nodeMap startNode_ID destinationNode_ID straightCost
diagonalCost
9 Status Box Format StatusBox.as
fontSize fontColor textContent backgroundColor textField
(79)
textContainer backgroundFill maxWidth
4.2 Pengujian
Pengujian pada sistem yang baru dibangun dilakukan melalui dua tahap yaitu pengujian alpha (fungsional) dan pengujian beta.
1. Pengujian Alpha
Metode yang digunakan dalam pengujian alpha adalah metode black box
yang fokus pada persyaratan fungsional dari perangkat lunak yang dibangun dan metode white box yang fokus pada strukstur kontrol dari desain program secara prosedural serta menggunakan metode penngujian
performance. 2. Pengujian beta
Metode yang digunakan dalam pengujian beta merupakan pengujian yang dilakukan secara objektif terhadap pengguna
4.2.1 Pengujian Alpha
Pengujian dilakukan terhadap aplikasi untuk memastikan bahwa aplikasi berjalan dengan benar sesuai dengan kebutuhan dan tujuan yang diharapkan. Proses pengujian akan menggunakan metode Black Box dan metode White Box.
4.2.1.1 Pengujian Aplikasi Black Box
Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada aplikasi game jalan pintas ini.
(80)
4.2.1.1.1 Skenario Pengujian Menu Utama
Tabel 4.4 Skenario Pengujian Menu Utama
Kelas Uji Detail Pengujian Jenis Uji
Menu Utama
Tampilkan Menu Utama Blackbox Tampilkan Instruksi Blackbox
Klik Tombol Main Blackbox
Klik Tombol Instruksi Blackbox Klik Tombol Keluar Blackbox
4.2.1.1.2 Skenario Pengujian Main
Tabel 4.5 Skenario Pengujian Main
Kelas Uji Butir Uji Jenis Pengujian
Main
Klik tombol kiri Blackbox
Klik tombol kanan Blackbox
Klik tombol atas Blackbox
Klik tombol bawah Blackbox
Menampilkan permainan Black box
4.2.1.1.3 Skenario Pengujian Instruksi
Tabel 4.6 Skenario Pengujian Instruksi
Kelas Uji Butir Uji Jenis Pengujian
Instruksi
Klik tombol instruksi Blackbox
Klik tombol close Blackbox
(81)
4.2.1.1.4 Butir Pengujian
Pengujian dilakukan dengan melakukan tes setiap use case dan memungkinkan kesalahan yang terjadi pada setiap proses. Pengujian ini dilakukan secara blackbox yaitu pengujian dilakukan dengan hanya memperhatikan masukan ke sistem dan keluaran sistem.
4.2.1.1.5 Pengujian Tampilkan Aplikasi
Proses tampilkan aplikasi merupakan proses dimana pengguna memulai membuka game dengan klik file jalanPintas.swf . Hasil dari proses pengujian dapat dilihat sebagai berikut:
Tabel 4.7 Pengujian Tampilan Menu Utama Kasus dan Hasil Uji
Masukan Yang Diharapkan Pengamatan Kesimpulan Klik file
jalanPintas
Sistem melakukan proses buka aplikasi kemudian menampilkan menu utama
Sistem melakukan proses
yang diharapkan
[√] Diterima [ ] Ditolak
4.2.1.1.6 Pengujian Tampilkan Menu Utama
Proses tampilkan menu utama merupakan proses dimana pengguna mengklik tombol-tombol yang ada pada tampilan menu. Hasil dari proses pengujian dapat dilihat sebagai berikut:
Tabel 4.8 Pengujian Tampilan Menu Utama Kasus dan Hasil Uji
Masukan Yang Diharapkan Pengamatan Kesimpulan Klik main Sistem melakukan
proses buka halaman menu utama
Sistem melakukan proses
yang diharapkan
[√] Diterima [ ] Ditolak Klik instruksi Sistem melakukan Sistem melakukan [√] Diterima
(82)
proses buka halaman instruksi
proses
yang diharapkan
[ ] Ditolak Klik keluar Sistem melakukan
proses keluar aplikasi
game
Sistem melakukan proses
yang diharapkan
[√] Diterima [ ] Ditolak
4.2.1.1.7 Pengujian Tampilkan Menu Instruksi
Proses tampilkan pilih lokasi merupakan proses dimana pengguna mengklik tombol instruksi yang ada pada tampilan menu. Hasil dari proses pengujian dapat dilihat sebagai berikut:
Tabel 4.9 Pengujian Tampilan Pilih Lokasi Kasus dan Hasil Uji
Masukan Yang Diharapkan Pengamatan Kesimpulan Klik instruksi Sistem melakukan
proses buka halaman instruksi
Sistem melakukan proses
yang diharapkan
[√] Diterima [ ] Ditolak Klik tombol
close
Sistem melakukan proses kembali buka halaman menu utama
Sistem melakukan proses
yang diharapkan
[√] Diterima [ ] Ditolak
4.2.1.1.8 Pengujian Kembali ke Menu Utama
Proses kembali ke menu utama merupakan proses dimana pengguna mengklik tombol home yang ada pada tampilan menu intruksi. Hasil dari proses pengujian dapat dilihat sebagai berikut:
Tabel 4.10 Pengujian Kembali ke Menu Utama Kasus dan Hasil Uji
Masukan Yang Diharapkan Pengamatan Kesimpulan Klik close Sistem melakukan
proses kembali ke menu utama
Sistem melakukan proses
yang diharapkan
[√] Diterima [ ] Ditolak
(83)
4.2.1.1.9 Pengujian Keluar Aplikasi
Proses keluar aplikasi merupakan proses dimana pengguna mengklik tombol keluar yang ada pada tampilan menu. Hasil dari proses pengujian dapat dilihat
Tabel 4.11 Pengujian Keluar Aplikasi Kasus dan Hasil Uji
Masukan Yang Diharapkan Pengamatan Kesimpulan Klik keluar Sistem melakukan
proses keluar aplikasi
game
Sistem melakukan proses
yang diharapkan
[√] Diterima [ ] Ditolak
4.2.1.2 Pengujian Aplikasi White Box
Pengujian White Box (glass box) adalah pengujian yang didasarkan pada pengecekan terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara prosedural untuk membagi pengujian ke dalam beberapa kasus pengujian
(84)
4.2.1.2.1 Pseudocode Algoritma A*
Berikut adalah pseudocode dari algoritma A* :
Fungsi A* (awal, tujuan)
var himpunan_tertutup <– himpunan_kosong var q <– buat_antrian(titik_awal)
while (q tidak kosong)
var p <– hapus_elemen_pertama(q) var x <– titik_akhir_dari_p
if (x = tujuan) return p
for (tiap y pada suksesor(p))
if (y bukan anggota himpunan_tertutup) masuk_antrian(q,y)
tambahkan y ke himpunan_tertutup endif
endfor endwhile
return tidak_ada_jalur
Gambar 4.1 Pseudocode A* [5]
Berikut adalah sintaks dari algoritma A* : 1 : h_tertutup = h_kosong
q = buat_antrian(titik_awal) 1: while q ≠ 0
p = hapus_elemen_pertama(q) x = titik_akhir_dari_p
2: if (x = tujuan) return p
3: for (tiap y pada suksesor(p))
4: if (y bukan anggota himpunan_tertutup) masuk_antrian(q,y)
tambahkan y ke himpunan_tertutup 5: endif
6: endfor 7: endwhile
(85)
4.2.1.2.2 Flowchart Algoritma A*
h_tutup = h_kosong q = buat_antrian(titik_awal) 1
Start
Finish While q ≠ 0
p = hapus_array_pertama(q) x = titik_akhir_p
If x = tujuan
For tiap y (p)
If y not h_tutup
Masuk_antrian(q,y) Tambah y ke h_tutup
Tidak ada jalur tidak ya ya Next y tidak
{
2 3 4{
5 6 7 8(86)
4.2.1.2.3 Flowgraph Algoritma A*
2
6 3
4
I II
5
7
III IV
1
Gambar 4.3 Flowgraph algoritma a*
Cyclomatic complexity : VCG = E – N + 2 = 8 – 6 + 2 = 4
Independent path ; Path 1 = 1-2-3-4-5-6-7 Path 2 = 1-2-3-6-7 Path 3 = 1-2-3-6-4-5-6-7 Path 4 = 1-2-3-6-2-3-6-7
(87)
Tabel 4.12 Graph Matrics
1 2 3 4 5 6 Sum(1,2,3,4,5,6) - 1
1 1 1-1 = 0
2 1 1 2-1 = 1
3 1 1-1 = 0
4 1 1-1 = 0
5 1 1 1 3-1 = 2
6 0
Jumlah 3
VCG = jumlah matriks + 1 = 3 + 1
= 4
4.2.1.3 Pengujian Performance Aplikasi
Pengujian Performance adalah dalam pengujian umum yang dilakukan untuk menentukan bagaimana sistem melakukan dalam hal respon dan stabilitas di bawah beban kerja tertentu. Hal ini juga dapat berfungsi untuk menyelidiki, mengukur, memvalidasi atau memverifikasi atribut kualitas lain dari sistem, seperti skalabilitas, kehandalan dan penggunaan sumber daya.
Pengujian Performance sistem dari program uji model permainan game jalan pintas ini dilakukan dengan menggunakan perangkat komputer dengan spesifikasi yang berbeda – beda. Hasilnya permainan ini dapat berjalan dengan baik di komputer manapun dengan kecepatan processor, RAM, VGA dan sistem operasi yang berbeda – beda. Kualitas gambar, suara, tampilan warna, kecepatan
(88)
akses dapat berjalan dengan normal. Adapun data komputer yang digunakan untuk pengujian Performance sistem aplikasi yang telah dilakukan sebagai berikut:
Tabel 4.13 Pengujian Performance
NO PROCESSOR RAM VGA
SISTEM
OPERASI KETERANGAN
1. Intel P4 2.44 Ghz
512
Mb 128 bit
Windows Xp Profesional
Aplikasi dapat berjalan 2. Intel P4 3.22
Ghz
512
Mb 128 bit Windows 98 SE
Aplikasi dapat berjalan 3. AMD Sempron
2600+
256
Mb 64 bit Windows XP SP 2
Aplikasi dapat berjalan 4. Intel Core2Duo
2 Ghz 2 Gb 128 bit Windows XP SP 1
Aplikasi dapat berjalan 5 AMD Turion 64
X2 1 Gb 128 bit Windows Vista
Aplikasi dapat berjalan
4.2.2 Kesimpulan Pengujian Alpha
Dari hasil pengujian yang dilakukan, dapat disimpulkan bahwa sistem sudah berjalan sesuai dengan yang diharapkan beserta proses penanganan kesalahannya. Secara fungsional sistem sudah dapat menghasilkan keluaran yang diharapkan.
4.2.3 Pengujian Beta
Pengujian beta merupakan pengujian yang dilakukan secara objektif, dimana dilakukan pengujian secara langsung terhadap pengguna dengan menggunakan kuisioner mengenai kepuasan pengguna atas aplikasi yang telah dibangun. Adapun metode penilaian pengujian yang digunakan adalah metode kuantitatif berdasarkan data dari pengguna. Pengujian dilakukan pada 15 orang dengan memberikan kuesioner yang terdiri dari 5 pertanyaan, adapun pertanyaan dari kuesioner ini adalah sebagai berikut :
(89)
4.2.3.1 Pertanyaan Pengguna
Adapun pertanyaan yang diajukan dalam kuisioner untuk pengguna aplikasi ini adalah sebagai berikut :
1. Apakah adik-adik suka dengan game ini? a. Ya
b.Tidak
2. Apakah game ini mudah dimainkan? a. Ya
b. Tidak
3. Apakah karakter dalam game ini sudah menarik? a. Ya
b. Tidak
4. Apakah adik-adik ingin memainkan game ini kembali? a. Ya
b.Tidak
5. Apakah masih ada yang perlu ditambahkan pada aplikasi game ini? a. Ya
(90)
4.2.3.2 Rumus Pengujian Beta
Berdasarkan data hasil kuisioner tersebut, dicari persentasemasing-masing jawaban dengan menggunakan rumus R=P/Q*100%, dimana :
P = Banyaknya jawaban responden tiap soal Q = Jumlah responden
R = Nilai prosentase
4.2.3.3Hasil Kuisioner
Apakah adik-adik suka dengan game ini?
Tabel 4.14 Hasil Kuisioner Ketertarikan Game
No Jawaban Responden Persentase (%)
1 Ya 12 80%
2 Tidak 3 20%
Apakah game ini mudah dimainkan?
Tabel 4.15 Hasil Kuisioner Tingkat Kemudahan
No Jawaban Responden Persentase (%)
1 Ya 13 86.7%
2 Tidak 2 13.3%
Apakah karakter dalam game ini sudah menarik?
Tabel 4.16 Hasil Kuisioner Karakter
No Jawaban Responden Persentase (%)
1 Ya 10 66.7%
(91)
Apakah adik-adik ingin memainkan game ini kembali?
Tabel 4.17 Hasil Kuisioner Memainkan Aplikasi
No Jawaban Responden Persentase (%)
1 Ya 10 66.7%
2 Tidak 5 33.3%
Apakah masih ada yang perlu ditambahkan pada aplikasi game ini?
Tabel 4.18 Hasil Kuisioner Perbaikan Aplikasi
No Jawaban Responden Persentase (%)
1 Ya 13 86.7%
2 Tidak 2 13.3%
4.2.4 Kesimpulan Pengujian Beta
Hasil dari pengujian beta dapat disimpulkan bahwa aplikasi yang telah dibangun dapat membantu pengguna dan cukup mudah digunakan.
(92)
79
5.1 Kesimpulan
Berdasarkan hasil implementasi game jalan pintas, maka dapat diambil kesimpulan sebagai berikut :
1. Game jalan pintas merupakan game single player yang dibangun dengan tujuan untuk memberikan hiburan.
2. Game dengan tema labirin mudah dimainkan dan disukai oleh anak-anak.
5.2 Saran
Saran untuk pengembangan aplikasi game jalan pintas ini agar lebih baik yaitu :
1. Pengembangan desain gambar, animasi dan materi agar game semakin menarik secara user interface.
2. Penambahan karakter-karakter dan item-item. Hal ini dilakukan agar
gameplay dari permainan ini akan lebih interaktif.
3. Penggambaran peta dibuat dinamis sehingga pengguna bisa menentukan sendiri level permainan.
(93)
80
www.vecteezy.com/blog/2-the-history-of-adobe-illustrator. (diakses tanggal 19 Desember 2011 pukul 11.00 WIB).
[2] Free Pacman, (2012), Pac-man, www.freepacman.org/. (diakses tanggal 19 Januari 2012 pukul 16.00 WIB).
[3] Hartono Nurhakim. (2011), pengertian game, http://hartononurhakim.ngeblogs.com/pengertian-game. (diakses tanggal 24 Oktober 2011 pukul 15.00 WIB).
[4] Lester, Patrick. (2005), A* Pathfinding for Beginners
http://www.policyalmanac.org/games/aStarTutorial.htm. (diakses tanggal 24 Oktober 2011 pukul 15.30 WIB).
[5] Mohammad Riftadi. (2007), Variasi Penggunaan Fungsi Heuristik Dalam
Pengaplikasian Algoritma A*, Makalah, Institut Teknologi Bandung.
[6] Puanta Della Maharani Riyadi. (2010), Algoritma pencarian A* dengan
fungsi heuristik jarak manhattan. Makalah, Institut Teknologi Bandung.
[7] Rex Van Der Spuy. (2010), AdvanED Game Design with Flash, Friends of ED.
[8] Rich Shupe, Zevan Rosser. (2008), Learning ActionScript 3.0 A Beginner’s Guide, O’Reilly, Canada.
[9] Russell, Stuart., Norvig, Peter. (2011). Artificial Intelligence A Modern Approach Third Edition.
[10] Roger S. Pressman. (1992), Software Engineering A Practitioner's
Approach Seventh Edition, McGraw-Hill Inc.
[11] Suyanto, ST, MSC. (2007), Artificial Intelligence Searching, Reasoning,
Planning, dan Learning, Informatika, Bandung.
(1)
Activity
Diagram
• Menu instruksi(2)
Sequence
Diagram
• Menu main(3)
Sequence
Diagram
• Menu instruksi(4)
(5)
(6)