• Tidak ada hasil yang ditemukan

Pembangunan Aplikasi Permainan Jalan Pintas

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangunan Aplikasi Permainan Jalan Pintas"

Copied!
113
0
0

Teks penuh

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

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

(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

(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

(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

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

(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

(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

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

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

(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)
[image:30.595.246.421.225.403.2]

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.

[image:30.595.242.383.636.733.2]
(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

[image:31.595.213.349.193.294.2]

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.

(32)
[image:32.595.249.419.112.293.2]

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.

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

(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

(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

(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

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

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

[image:41.595.199.452.379.604.2]
(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)

(43)

musuh terus mengejar player dan akan diimplementasikan pada pencarian dalam ruangan yang mempunyai penghalang.

[image:43.595.169.494.163.456.2]

.

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.

[image:44.595.98.473.456.679.2]

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)
[image:47.595.117.504.111.365.2]

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

(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

[image:48.595.85.476.158.524.2]

= 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

(49)

= 10 * (6+3) = 10 * 9 = 90

F (7,4) = G(7,4) + H(7,4) = 30 + 90

[image:49.595.116.499.126.486.2]

= 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

[image:57.595.114.507.351.665.2]

= 108

Gambar 3.13 Langkah kesepuluh pencarian best node

(58)
[image:58.595.88.477.111.363.2]

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.

(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

[image:59.595.136.494.304.610.2]
(60)

3.3.2 Use Case Scenario

3.3.2.1 Use Case Scenario Main

[image:60.595.129.490.252.591.2]

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

(61)
[image:61.595.157.515.126.366.2]

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

[image:61.595.155.515.520.752.2]

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

[image:62.595.108.461.316.724.2]
(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

[image:63.595.135.490.241.637.2]
(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.

[image:64.595.88.485.284.686.2]
(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

(66)
[image:66.595.94.482.106.558.2]
(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

(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)
[image:69.595.115.510.201.473.2]

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

(70)
[image:70.595.86.481.109.390.2]

Gambar 3.25 Tampilan level 2

Setelah level 2 terlewati maka selanjutnya pemain akan menuju level 3 yang merupakan level terakhir dari permainan.

[image:70.595.87.481.469.726.2]
(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

[image:72.595.87.483.324.590.2]

Jalan Pintas

Gambar 3.28 Antarmuka menu utama

3.4.5.2Perancangan Antarmuka Game

(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

[image:73.595.113.512.167.439.2]

02 : 00

Gambar 3.29 Antarmuka game

3.4.5.3Perancangan Antarmuka Instruksi

(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

[image:74.595.85.483.113.382.2]

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

(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

(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

(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

(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

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

Gambar

Gambar 2.7  Proses pencarian node
Gambar 2.10  Hasil biaya dari node yang baru
Gambar 2.11  Hasil pencarian algoritma A*
Gambar 3.1  Game pac-man
+7

Referensi

Dokumen terkait

Penelitian mengenai komitmen organisasional sebagai pemoderasi kepuasan kerja auditor masih belum ada yang meneliti sampai saat ini, maka peneliti ingin mencoba melakukan

Hal tersebut terlihat dari beberapa berita yang kerap tidak memaparkan secara jelas maupun tersurat mengenai penyebab atau sumber masalah.Tentu saja hal ini bertolak dengan

Sejalan dengan pembangunan Kawasan Industri Maritim tersebut telah banyak hal yang diperbuat dengan melakukan pengkajian- pengkajian yaitu terhadap posisi perairan

-- Jadwal Poli ( Hari dan jam yang telah ditentukan dan disepakati bersama Direktur) Jadwal Poli ( Hari dan jam yang telah ditentukan dan disepakati bersama Direktur) -- On

6anifestasi gejala GT8 bervariasi tergantung pada jenis kehamilan sebelumnya, derajat penyakit, dan jenis histopatologi GT8 yang timbul setelah mola hidatidosa (mola

Dari kajian teori-teori diatas, terlihat bahwa landasan pengembangan pembelajaran konstekstual adalah kontruktivisme, yaitu filosofi belajar yang menekankan bahwa

Pada implementasi Sistem Pengelolaan Aset Desa (SIPADES), terdapat inovasi yang dilakukan oleh Pemerintah Desa Wukirsari berupa dapat melakukan proses input dan mengolah

Kanker kolorektal ( colo-rectal carcinoma ) atau disebut juga kanker usus besar merupakan suatu tumor ganas yang ditemukan di colon atau rectum .Salah satu cara