AUTOMATIC LEVELING PADA SLIDING PUZZLE GAME BERBASIS FINITE STATE MACHINE
SKRIPSI
AMELIA ASTARI 061401079
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2011
Universitas Sumatera Utara
AUTOMATIC LEVELING PADA SLIDING PUZZLE GAME BERBASIS FINITE STATE MACHINE
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
AMELIA ASTARI 061401079
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2011
Universitas Sumatera Utara
PERSETUJUAN
Judul Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: AUTOMATIC LEVELING PADA SLIDING PUZZLE GAME BERBASIS FINITE STATE MACHINE : SKRIPSI : AMELIA ASTARI : 061401079 : S1 ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, 10 Januari 2011 Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Ade Candra, ST, M.Kom NIP 197909042009121002
Drs. Suyanto, M.Kom NIP 195908131986011002
Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP 196203171991021001
Universitas Sumatera Utara
PERNYATAAN
AUTOMATIC LEVELING PADA SLIDING PUZZLE GAME BERBASIS FINITE STATE MACHINE
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 10 Januari 2011
AMELIA ASTARI 061401079
Universitas Sumatera Utara
PENGHARGAAN
Bismillahirrahmanirrahim. Alhamdulillah, puji syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini dengan baik. Shalawat beriring salam penulis persembahkan kepada Nabi Besar Muhammad SAW. Ucapan terima kasih penulis sampaikan kepada Bapak Drs. Suyanto, M.Kom, selaku pembimbing pertama dan Bapak Ade Candra, ST, M.Kom, selaku pembimbing kedua yang telah banyak meluangkan waktunya untuk memberikan masukan-masukan kepada penulis dalam penyelesaian skripsi ini. Ucapan terima kasih juga ditujukan kepada Bapak M. Andri Budiman, ST, MCompSc, MEM, selaku pembanding pertama dan Bapak Syahriol Sitorus, S.Si, MIT, selaku pembanding kedua yang telah memberikan kritik dan saran yang sangat bermanfaat dalam penyelesaian skripsi ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Dr. Poltak Sihombing, M.Kom, dan Ibu Maya Silvi Lydia, B.Sc, M.Sc. Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer FMIPA USU. Skripsi ini penulis persembahkan untuk ayahanda tercinta drh. Adi Nirwan Soeripto dan ibunda tercinta Rahayu Retno Purwati, B.Sc, serta kedua kakanda tersayang Andri Aritama, S.Si, dan drh. Astria Ardika, yang tak henti-hentinya mendoakan, mendukung dan memotivasi penulis hingga terselesaikannya skripsi ini. Kepada yang tersayang Muhammad Arsyad, terima kasih atas senyum dan tawa, serta air mata yang telah menguatkan penulis selama ini, terima kasih atas semua kisah yang telah terukir. Tidak lupa ucapan terima kasih juga penulis ucapkan buat sahabatsahabat terhebat yang pernah penulis miliki, Muhammad Alvin, Putri Ramadhani S, Yahdin Faridhi, Siti Rezeki, Faurina Sari, Riky Andi Syahputra, Syauvika Lubis, Dian Novita Sari, Ilmi Fadilla, Afridayanti Damanik, Lestari Sri Wulandhari, Arridha Hutami Putri, Novi Citra Pratiwi, teman-teman S1 Ilmu Komputer angkatan ’06, serta teman-teman lain yang tak kalah hebatnya, yang telah banyak membantu dan mendukung penulis selama ini. Semoga Allah SWT memberikan imbalan atas apa yang telah diberikan.
Universitas Sumatera Utara
ABSTRAK
Finite State Machine (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan action (aksi). Sebagai sebuah metodologi perancangan sistem kontrol, penerapan FSM telah banyak diterapkan pada perangkat lunak, khususnya pada game. Metode FSM dapat diterapkan untuk nilainilai batas perpindahan yang rigid/pasti dan sangat mudah diterapkan pada pembuatan automatic leveling pada game, serta menghasilkan perpindahan level pada Sliding Puzzle Game yang sesuai dengan Finite State Diagram. Penerapan FSM pada automatic leveling dapat dilakukan dengan cara Lookup Table. Dimana tabel ini berisi semua transisi state yang mungkin terjadi pada sistem. Tabel ini direpresentasikan sebagai matriks pada kode program dimana tiap baris merepresentasikan event atau transisi state dan kolomnya merepresentasikan state sedangkan elemennya merepresentasikan next state. Pengimplementasian FSM dengan Lookup Table memiliki kelebihan dalam kemudahannya untuk diimplementasikan dan pemeliharaannya yang lebih fleksibel dikarenakan tabel atau matriks tersebut mudah untuk dipahami. Metode FSM dapat diterapkan untuk mengatur level pada game agar game dapat memberikan tantangan otomatis (automatic leveling) sesuai dengan kemampuan pemain. Dan penerapan Automatic Leveling berbasis FSM mampu menjadikan Sliding Puzzle Game lebih menarik.
Universitas Sumatera Utara
AUTOMATIC LEVELING ON SLIDING PUZZLE GAME BASED ON FINITE STATE MACHINE
ABSTRACT
Finite State Machine (FSM) is a control system design methodology that describes the behavior or the working principle of the system by using the following three things: State, event and action. As a control system design methodology, the implementation of FSM has been widely applied to software, especially in games. FSM method can be applied to the values of the rigid/definite displacement boundaries and very easily applied to automatic leveling in the game, and results displacement level on Sliding Puzzle Game which according to Finite State Diagram. Implementation of FSM in an automatic leveling can be done by using Lookup Table. Where this table contains all state transitions that may occur in the system. This table is represented as a matrix in the source code where each row represents an event or a transition state and columns represent the state while the elements represent the next state. FSM implementation with Lookup Table has advantages in its simplicity to be implemented and its flexible maintenance because the table or matrix is easy to understand. FSM method can be implemented to control the level of game so that game can give automatic challenge (automatic leveling) depends on players ability. And FSM-based Automatic Leveling implementation can make Sliding Puzzle Game more interesting.
Universitas Sumatera Utara
DAFTAR ISI
Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar
ii iii iv v vi vii x xi
Bab 1 Pendahuluan 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metode Penelitian 1.7 Sistematika Penulisan
1 1 2 2 3 3 3 4
Bab 2 Landasan Teori 2.1 Finite State Machine (FSM) 2.1.1 Defenisi FSM 2.1.1.1 Moore Machine 2.1.1.2 Mearly Machine 2.1.2 Kelebihan FSM 2.1.3 Kelemahan FSM 2.1.4 Teknik Pemodelan FSM 2.1.5 Implementasi FSM pada perangkat lunak 2.1.5.1 Cara Tradisional 2.1.5.2 Lookup Table 2.1.5.3 Object Oriented 2.2 Interaksi Manusia Dengan Komputer 2.2.1 Definisi 2.2.2 Prinsip Utama Mendesain Antarmuka (Interface) 2.2.2.1 User compatibility 2.2.2.2 Product Compatibility 2.2.2.3 Task Compatibility 2.2.2.4 Work Flow Compatibility 2.2.2.5 Consistency 2.2.2.6 Familiarity 2.2.2.7 Simplicity 2.2.2.8 Direct Manipulation 2.2.2.9 Control
6 6 6 8 9 9 9 10 11 12 13 16 20 20 20 20 21 21 22 22 23 23 23 24
Universitas Sumatera Utara
2.2.2.10 WYSIWYG 2.2.2.11 Flexibility 2.2.2.12 Responsiveness 2.2.2.13 Invisible Technology 2.2.2.14 Robustness 2.2.2.15 Protection 2.2.2.16 Ease Of Learning And Ease Of Use
24 24 25 25 25 26 26
Bab 3 Analisis dan Perancangan Aplikasi 3.1 Analisis Kebutuhan Aplikasi 3.1.1 Gambaran Umum Tentang Sliding Puzzle 3.1.2 Analisis Kemampuan Pemain 3.1.3 Analisis Perancangan FSM 3.1.3.1 Pendeskripsian FSM dengan Tabel Transisi 3.2 Perancangan Aplikasi 3.2.1 Perancangan Konseptual 3.2.1.1 Flowchart Program Sliding Puzzle Game 3.2.1.1.1 Flowchart SetLevelSlidingPuzzle() 3.2.1.1.2 Flowchart startSlidingPuzzle() 3.2.1.1.3 Flowchart TimerSlidingPuzzle() 3.2.1.1.4 Flowchart MakePuzzlePieces() 3.2.1.1.5 Flowchart ShufflePuzzlePieces() 3.2.1.1.6 Flowchart CekPuzzleComplete() 3.2.1.2 Flowchart Aplikasi Sliding Puzzle Game Secara Umum 3.2.1.2 Pendeskripsian Fungsionalitas Aplikasi Sliding Puzzle Game 3.2.1.3 Pendeskripsian Proses dan Aktifitas dalam Aplikasi Sliding Puzzle Game 3.2.1.3.1 Start 3.2.1.3.2 Highscore 3.2.1.3.3 About 3.2.1.3.4 Exit 3.2.2 Perancangan Fisik 3.2.2.1 Perancangan Database 3.2.2.2 Perancangan Antarmuka 3.2.2.2.1 Layar Pembuka 3.2.2.2.2 Menu Utama 3.2.2.2.3 Layar Highscore 3.2.2.2.4 Layar About 3.2.2.2.5 Layar Isian Data Pemain 3.2.2.2.6 Message Dialog 3.2.2.2.7 Layar Permainan 3.2.2.2.8 Layar Konfirmasi
27 27 27 28 29 32 33 33 33 34 35 36 37 38 39 40
42 43 45 46 47 48 48 49 49 50 51 51 52 52 53 54
Bab 4 Implementasi dan Pengujian 4.1 Implementasi Aplikasi 4.1.1 Spesifikasi Perangkat Lunak 4.1.2 Spesifikasi Perangkat Keras 4.1.3 Implementasi Antarmuka Aplikasi
55 55 55 55 56
41
Universitas Sumatera Utara
4.1.3.1 Layar Pembuka 4.1.3.2 Menu Utama 4.1.3.3 Layar Highscore 4.1.3.4 Layar About 4.1.3.5 Layar Isian Data Pemain 4.1.3.6 Message Dialog 4.1.3.7 Layar Permainan 4.1.3.8 Layar Konfirmasi 4.1.4 Implementasi FSM pada Baris Program 4.2 Pengujian Aplikasi 4.2.1 Pengujian Kehandalan FSM 4.2.2 Pengujian Integrasi Aplikasi 4.2.2.1 Proses Lihat Layar Pembuka 4.2.2.2 Proses Highscore 4.2.2.3 Proses Start 4.2.2.4 Proses About 4.2.2.5 Proses Exit 4.2.3 Pengujian Langsung Kepada Pengguna 4.2.3.1 Pengujian Aspek Ketertarikan Pemain 4.2.3.2 Pengujian Aspek Kesesuain Perpindahan Level 4.2.3.3 Pengujian Aspek Implementasi Antarmuka 4.2.3.4 Pengujian Aspek Penggunaan Aplikasi
56 56 57 57 58 59 59 60 61 62 62 65 66 66 67 68 68 68 69 69 70 72
Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 5.2 Saran
75 75 76
Daftar Pustaka
77
Lampiran A: Tabel Uji Kemampuan Pemain Pada Sliding Puzzle Dengan Level Manual Lampiran B: Kuisioner
79 81
Universitas Sumatera Utara
DAFTAR TABEL
Halaman Tabel 2.1: Implementasi cara tradisional Tabel 2.2: Contoh Lookup Table FSM Tabel 2.3 Contoh Tabel Transisi Tabel 2.4 Simbol-simbol FlowChart Tabel 3.1 Tabel Waktu Penyelesain Level Tabel 3.2 Persentase Waktu Penyelesaian Level Tabel 3.3 Tabel Transisi FSM untuk Automatic Leveling Pada Sliding Puzzle Tabel 3.4 Proses dan Activity Diagram Start Tabel 3.5 Proses dan Activity Diagram Highscore Tabel 3.6 Proses dan Activity Diagram About Tabel 3.7 Proses dan Activity Diagram Exit Tabel 3.8 Rancangan Tabel pada Database Sliding Puzzle Tabel 4.1 Implementasi FSM pada Baris Program Tabel 4.2 Hasil Pengujian Proses Lihat Pembuka Tabel 4.3 Hasil Pengujian Proses Lihat Info Tombol Tabel 4.4 Hasil Pengujian Proses Start Tabel 4.5 Hasil Pengujian Proses About Tabel 4.6 Hasil Pengujian Proses Exit Tabel 4.7 Hasil Kuisioner Pengujian Aspek Implementasi Antarmuka Tabel 4.8 Hasil Kuisioner Pengujian Aspek Penggunaan Aplikasi
12 14 15 19 28 29 32 43 45 46 47 49 61 66 66 67 68 68 70 72
Universitas Sumatera Utara
DAFTAR GAMBAR
Halaman Gambar 2.1 Contoh diagram state sederhana Gambar 2.2 Moore State Machine Gambar 2.3 Mearly State Machine Gambar 2.4 FSM mesin minuman dalam kaleng menggunakan koin Gambar 2.5 Contoh FSD Gambar 2.6 Contoh OOFSM untuk mesin minuman dalam kaleng Gambar 2.7 Contoh OOPFSM Menggunakan State Driven Transition Gambar 3.1 Finite State Diagram untuk Automatic Leveling pada Sliding Gambar 3.2 Flowchart Fungsi Setlevelslidingpuzzle(). Gambar 3.3 Flowchart Fungsi StartSlidingPuzzle() Gambar 3.4 Flowchart Fungsi TimerSlidingPuzzle() Gambar 3.5 Flowchart Fungsi MakePuzzlePieces() Gambar 3.6 Flowchart Fungsi ShufflePuzzlePieces() Gambar 3.7 Flowchart Fungsi CekPuzzleComplete() Gambar 3.8 Flowchart Aplikasi Sliding Puzzle Game Gambar 3.9 Use Case Diagram Aplikasi Sliding Puzzle Game Gambar 3.10 Activity Diagram Aplikasi Sliding Puzzle Game Gambar 3.11 Activity Diagram Start Gambar 3.12 Activity Diagram Highscore Gambar 3.13 Activity Diagram About Gambar 3.14 Activity Diagram Exit Gambar 3.15Desain Antarmuka Layar Pembuka Gambar 3.16 Desain Antarmuka Layar Menu Utama Gambar 3.17 Desain Antamuka Layar Highscore Gambar 3.18 Desain Antarmuka Layar About Gambar 3.19 Desain Antarmuka Layar Isian Data Pemain Gambar 3.20 Message Dialog Gambar 3.21 Desain Antarmuka Layar Permainan Gambar 3.22 Desain Antarmuka Layar Konfirmasi Gambar 4.1 Layar Pembuka Gambar 4.2 Menu Utama Gambar 4.3 Layar Highscore Gambar 4.4 Layar About Gambar 4.5 Layar Isian Data Pemain Gambar 4.6 Message Dialog Gambar 4.7 Layar Permainan Gambar 4.8 Layar Permainan Saat Pause Gambar 4.9 Layar Konfirmasi Gambar 4.10 History permainan Sliding Puzzle Gambar 4.11 State Machine Diagram untuk History Permainan Pemain 1 Gambar 4.12 State Machine Diagram untuk History Permainan Pemain 2 Gambar 4.13 State Machine Diagram untuk History Permainan Pemain 3
7 8 9 12 15 17 16 31 34 35 36 37 38 39 40 41 42 44 45 46 48 50 50 51 51 52 53 54 54 56 57 57 58 58 59 59 60 60 63 63 64 64
Universitas Sumatera Utara
Gambar 4.14 State Machine Diagram untuk History Permainan Pemain 4 Gambar 4.15 Diagram Hasil Pengujian Aspek Ketertarikan Pemain Gambar 4.16 Diagram Hasil Pengujian Aspek Kesesuaian Perpindahan Level Gambar 4.17 Diagram Hasil Evaluasi Aspek Implementasi Antarmuka Gambar 4.18 Diagram Hasil Pengujian Aspek Implementasi Antarmuka Secara Keseluruhan Gambar 4.19 Diagram Hasil Pengujian Aspek Penggunaan Aplikasi Gambar 4.20 Diagram Hasil Pengujian Aspek Penggunaan Aplikasi Secara Keseluruhan
65 69 70 71 72 73 74
Universitas Sumatera Utara