• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN

3.3 Pemodelan Sistem

3.3.3 Sequence Diagram

Sequence Diagram adalah diagram yang menggambarkan bagaimana objek saling berinteraksi di dalam sistem yang disusun secara berurutan. Gambar 3.5 menunjukkan Sequence Diagram dari sistem yang dirancang.

Gambar 3.5 Sequence Diagram

Gambar 3.5 menunjukkan interaksi sekuensial user dengan sistem. Aksi user pada sistem ditunjukkan oleh panah padat, dan respons sistem pada user ditunjukkan oleh panah putus-putus.

23

3.4 Flowchart

Flowchart adalah diagram yang menunjukkan langkah-langkah untuk memecahkan masalah dalam bentuk simbol grafik yang secara berurutan dihubungkan oleh panah.

3.4.1 Flowchart Sistem

Gambar 3.6 Flowchart Sistem

Flowchart sistem yang ditunjukkan pada Gambar 3.6 dijelaskan di bawah ini.

1. Start

Pada tahap ini, user membuka aplikasi dan memulai game.

2. Size.x, size.y = 3, Score = 0 dan healthPoint = 3

Ukuran maze, skor dan darah pemain diinisialisasi di awal permainan.

3. Menghasilkan maze dengan algoritma DFS

Pada tahap ini, sistem akan menjalankan algoritma DFS untuk mengenerate maze serta musuh, collectible items, dan hint.

4. Input pergerakan

Pada tahap ini, user dapat mengendalikan karakter yang ada di dalam game.

User dapat meng-input pergerakan karakter dengan menggunakan tombol-tombol yang dapat disentuh langsung dari layar device android.

5. If curPosition = goal

Jika posisi karakter berada di node destinasi, maka pemain berhasil keluar dari maze di level tersebut dan sistem akan mengenerasi ulang maze untuk level selanjutnya.

6. Size.x++ size.y++

Pada tahap ini, ukuran maze di-increment.

7. If player collide with enemy

Darah atau healthPoint karakter pemain akan berkurang ketika bertabrakan dengan musuh.

8. If player defeat enemy

Apabila pemain mengalahkan musuh, maka healthPoint musuh diset menjadi nol dan musuh pun menghilang.

9. If player collide with collectible items

Jika karakter pemain bertabrakan dengan collectible items maka skor pemain akan ditambah 1.

10. If player collide with hint item

25

Apabila pemain bertabrakan dengan hint item maka sistem akan menjalankan algoritma A* untuk mencari jalan keluar dari maze dengan mengambil posisi karakter pemain saat ini sebagai node awalnya. Hint ditampilkan hanya selama 6 detik.

11. If healthPoint == 0

Jika healthPoint karakter pemain mencapai nol, maka permainan dihentikan dan akan muncul sebuah menu yang menentukan pemain dapat mengulangi atau keluar dari permainan.

12. Play Again?

Pada akhir permainan setelah pemain kehabisan healthPoint, akan muncul pilihan apakah pemain ingin mengulangi permainan atau keluar dari permainan. Jika pemain ingin mengulangi permainan, maka maze akan digenerasi ulang dan level game akan di-reset kembali dari awal. Jika tidak, maka permainan berakhir.

13. End

Game berakhir apabila user memilih untuk keluar dari aplikasi.

3.4.2 Flowchart Algoritma DFS

Algoritma DFS memiliki alur seperti yang ditunjukkan pada Gambar 3.7, dimana proses terjadi ketika user memasuki permainan.

Pada awalnya diset ukuran maze serta diset dinding-dinding pada setiap node-nya.

Kemudian, sistem akan menentukan node awal secara acak. Lalu, sistem memilih salah satu node tetangga dari node saat ini secara acak. Kemudian sistem memeriksa apakah node yang dipilih sudah pernah dikunjungi sebelumnya atau tidak. Jika sudah, maka sistem akan kembali ke node sebelumnya dan mengulangi langkah memilih salah satu node tetangga dari node saat ini secara acak. Jika belum, maka sistem akan menghancurkan dinding dari node yang dipilih. Lalu, sistem akan memeriksa apakah jumlah node yang dikunjungi lebih kecil dari node total. Jika iya, maka sistem akan

kembali ke langkah memilih salah satu node tetangga dari node saat ini secara acak.

Jika tidak, maka sistem akan berhenti menjalankan algoritma.

27

Gambar 3.7 Flowchart Algoritma DFS

3.4.3 Flowchart Algoritma A*

Algoritma A* memiliki alur kerja seperti ditunjukkan pada Gambar 3.8 dimana proses pencarian jalan keluar dari maze dilakukan setelah user mendapatkan hint item.

Pada awalnya sistem membuat list dengan nama OPEN dan CLOSED. Kemudian node awal yang merupakan posisi karakter user pada game saat ini dimasukkan ke dalam OPEN list. Selanjutnya, sistem akan menetapkan node terbaik yang ada dalam OPEN list (node dengan nilai f paling kecil) sebagai node saat ini. Kemudian sistem akan mengecek apakah node saat ini merupakan node tujuan atau tidak. Jika tidak, maka node saat ini akan dikeluarkan dari OPEN list dan dimasukkan ke dalam CLOSED list. Lalu, dilakukan perulangan untuk tiap tetangga dari node saat ini. Sistem akan memeriksa apakah node tetangga tersebut dapat dilalui atau tidak. Jika tidak bisa, maka sistem akan memilih node tetangga yang lain. Jika bisa, maka selanjutnya sistem akan memeriksa apakah node tetangga tersebut ada di dalam CLOSED list atau tidak.

Jika iya, maka sistem akan memilih node tetangga yang lain.

Jika node tetangga yang dipilih belum ada dalam CLOSED list, maka sistem akan memeriksa apakah node tersebut sudah ada di dalam OPEN list sebelumnya atau tidak.

Jika ada, maka sistem akan memeriksa apakah nilai g node tetangga saat ini lebih kecil dari nilai g node yang ada pada OPEN list. Jika iya, maka sistem akan menetapkan node saat ini sebagai node parent dari node tetangga tersebut, lalu dihitung ulang nilai g dan f. Jika tidak, OPEN list akan dicek apakah kosong atau tidak. Kembali pada langkah pemeriksaan apakah node tetangga ada di dalam OPEN list atau tidak. Jika tidak ada, maka node tetangga akan dimasukkan ke dalam OPEN list, lalu ditetapkan node saat ini sebagai node parent dari node tetangga lalu dihitung nilai f, g dan h.

Selanjutnya, sistem akan mengecek apakah OPEN list kosong atau tidak.

Jika OPEN list belum kosong, maka sistem akan kembali melakukan langkah menetapkan node terbaik (node dengan nilai f terkecil) di OPEN list sebagai node saat ini dan melanjutkan langkah-langkah yang ada. Sistem akan terus mengulangi proses hingga sampai node tujuan. Dan ketika sampai di tujuan, maka sistem akan melakukan

29

backtrack untuk menampilkan jalur dan proses akan berakhir. Namun, apabila OPEN list kosong sebelum mencapai node tujuan, maka itu berarti sistem gagal menemukan jalur menuju node tujuan dan proses pun berakhir.

Gambar 3.8 Flowchart Algoritma A*

Dokumen terkait