Pembangunan Aplikasi Permainan Jalan Pintas

(1)

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

Demo Program

Demo Program