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
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
PERSETUJUAN
Judul : AUTOMATIC LEVELING PADA SLIDING PUZZLE
GAME BERBASIS FINITE STATE MACHINE
Kategori : SKRIPSI
Nama : AMELIA ASTARI
Nomor Induk Mahasiswa : 061401079
Program Studi : S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : 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 Drs. Suyanto, M.Kom NIP 197909042009121002 NIP 195908131986011002
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP 196203171991021001
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
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 sahabat-sahabat 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.
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 nilai-nilai 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.
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.
DAFTAR ISI Halaman Persetujuan ii Pernyataan iii Penghargaan iv Abstrak v Abstract vi
Daftar Isi vii
Daftar Tabel x Daftar Gambar xi Bab 1 Pendahuluan 1 1.1 Latar Belakang 1 1.2 Rumusan Masalah 2 1.3 Batasan Masalah 2 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metode Penelitian 3 1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori 6
2.1 Finite State Machine (FSM) 6
2.1.1 Defenisi FSM 6 2.1.1.1 Moore Machine 8 2.1.1.2 Mearly Machine 9 2.1.2 Kelebihan FSM 9 2.1.3 Kelemahan FSM 9 2.1.4 Teknik Pemodelan FSM 10
2.1.5 Implementasi FSM pada perangkat lunak 11
2.1.5.1 Cara Tradisional 12
2.1.5.2 Lookup Table 13
2.1.5.3 Object Oriented 16
2.2 Interaksi Manusia Dengan Komputer 20
2.2.1 Definisi 20
2.2.2 Prinsip Utama Mendesain Antarmuka (Interface) 20
2.2.2.1 User compatibility 20
2.2.2.2 Product Compatibility 21
2.2.2.3 Task Compatibility 21
2.2.2.4 Work Flow Compatibility 22
2.2.2.5 Consistency 22
2.2.2.6 Familiarity 23
2.2.2.7 Simplicity 23
2.2.2.8 Direct Manipulation 23
2.2.2.10 WYSIWYG 24 2.2.2.11 Flexibility 24 2.2.2.12 Responsiveness 25 2.2.2.13 Invisible Technology 25 2.2.2.14 Robustness 25 2.2.2.15 Protection 26
2.2.2.16 Ease Of Learning And Ease Of Use 26
Bab 3 Analisis dan Perancangan Aplikasi 27
3.1 Analisis Kebutuhan Aplikasi 27
3.1.1 Gambaran Umum Tentang Sliding Puzzle 27
3.1.2 Analisis Kemampuan Pemain 28
3.1.3 Analisis Perancangan FSM 29
3.1.3.1 Pendeskripsian FSM dengan Tabel Transisi 32
3.2 Perancangan Aplikasi 33
3.2.1 Perancangan Konseptual 33
3.2.1.1 Flowchart Program Sliding Puzzle Game 33 3.2.1.1.1 Flowchart SetLevelSlidingPuzzle() 34 3.2.1.1.2 Flowchart startSlidingPuzzle() 35 3.2.1.1.3 Flowchart TimerSlidingPuzzle() 36 3.2.1.1.4 Flowchart MakePuzzlePieces() 37 3.2.1.1.5 Flowchart ShufflePuzzlePieces() 38 3.2.1.1.6 Flowchart CekPuzzleComplete() 39 3.2.1.2 Flowchart Aplikasi Sliding Puzzle Game Secara Umum 40 3.2.1.2 Pendeskripsian Fungsionalitas Aplikasi Sliding Puzzle
Game 41
3.2.1.3 Pendeskripsian Proses dan Aktifitas dalam Aplikasi
Sliding Puzzle Game 42
3.2.1.3.1 Start 43 3.2.1.3.2 Highscore 45 3.2.1.3.3 About 46 3.2.1.3.4 Exit 47 3.2.2 Perancangan Fisik 48 3.2.2.1 Perancangan Database 48 3.2.2.2 Perancangan Antarmuka 49 3.2.2.2.1 Layar Pembuka 49 3.2.2.2.2 Menu Utama 50 3.2.2.2.3 Layar Highscore 51 3.2.2.2.4 Layar About 51
3.2.2.2.5 Layar Isian Data Pemain 52
3.2.2.2.6 Message Dialog 52
4.1.3.1 Layar Pembuka 56
4.1.3.2 Menu Utama 56
4.1.3.3 Layar Highscore 57
4.1.3.4 Layar About 57
4.1.3.5 Layar Isian Data Pemain 58
4.1.3.6 Message Dialog 59
4.1.3.7 Layar Permainan 59
4.1.3.8 Layar Konfirmasi 60
4.1.4 Implementasi FSM pada Baris Program 61
4.2 Pengujian Aplikasi 62
4.2.1 Pengujian Kehandalan FSM 62
4.2.2 Pengujian Integrasi Aplikasi 65
4.2.2.1 Proses Lihat Layar Pembuka 66
4.2.2.2 Proses Highscore 66
4.2.2.3 Proses Start 67
4.2.2.4 Proses About 68
4.2.2.5 Proses Exit 68
4.2.3 Pengujian Langsung Kepada Pengguna 68 4.2.3.1 Pengujian Aspek Ketertarikan Pemain 69 4.2.3.2 Pengujian Aspek Kesesuain Perpindahan Level 69 4.2.3.3 Pengujian Aspek Implementasi Antarmuka 70 4.2.3.4 Pengujian Aspek Penggunaan Aplikasi 72
Bab 5 Kesimpulan dan Saran 75
5.1 Kesimpulan 75
5.2 Saran 76
Daftar Pustaka 77
Lampiran A: Tabel Uji Kemampuan Pemain Pada Sliding Puzzle Dengan
Level Manual 79
DAFTAR TABEL
Halaman
Tabel 2.1: Implementasi cara tradisional 12
Tabel 2.2: Contoh Lookup Table FSM 14
Tabel 2.3 Contoh Tabel Transisi 15
Tabel 2.4 Simbol-simbol FlowChart 19
Tabel 3.1 Tabel Waktu Penyelesain Level 28
Tabel 3.2 Persentase Waktu Penyelesaian Level 29 Tabel 3.3 Tabel Transisi FSM untuk Automatic Leveling Pada Sliding Puzzle 32 Tabel 3.4 Proses dan Activity Diagram Start 43 Tabel 3.5 Proses dan Activity Diagram Highscore 45 Tabel 3.6 Proses dan Activity Diagram About 46 Tabel 3.7 Proses dan Activity Diagram Exit 47 Tabel 3.8 Rancangan Tabel pada Database Sliding Puzzle 49 Tabel 4.1 Implementasi FSM pada Baris Program 61 Tabel 4.2 Hasil Pengujian Proses Lihat Pembuka 66 Tabel 4.3 Hasil Pengujian Proses Lihat Info Tombol 66
Tabel 4.4 Hasil Pengujian Proses Start 67
Tabel 4.5 Hasil Pengujian Proses About 68
Tabel 4.6 Hasil Pengujian Proses Exit 68
Tabel 4.7 Hasil Kuisioner Pengujian Aspek Implementasi Antarmuka 70 Tabel 4.8 Hasil Kuisioner Pengujian Aspek Penggunaan Aplikasi 72
DAFTAR GAMBAR
Halaman
Gambar 2.1 Contoh diagram state sederhana 7
Gambar 2.2 Moore State Machine 8
Gambar 2.3 Mearly State Machine 9
Gambar 2.4 FSM mesin minuman dalam kaleng menggunakan koin 12
Gambar 2.5 Contoh FSD 15
Gambar 2.6 Contoh OOFSM untuk mesin minuman dalam kaleng 17 Gambar 2.7 Contoh OOPFSM Menggunakan State Driven Transition 16 Gambar 3.1 Finite State Diagram untuk Automatic Leveling pada Sliding 31 Gambar 3.2 Flowchart Fungsi Setlevelslidingpuzzle(). 34 Gambar 3.3 Flowchart Fungsi StartSlidingPuzzle() 35 Gambar 3.4 Flowchart Fungsi TimerSlidingPuzzle() 36 Gambar 3.5 Flowchart Fungsi MakePuzzlePieces() 37 Gambar 3.6 Flowchart Fungsi ShufflePuzzlePieces() 38 Gambar 3.7 Flowchart Fungsi CekPuzzleComplete() 39 Gambar 3.8 Flowchart Aplikasi Sliding Puzzle Game 40 Gambar 3.9 Use Case Diagram Aplikasi Sliding Puzzle Game 41 Gambar 3.10 Activity Diagram Aplikasi Sliding Puzzle Game 42
Gambar 3.11 Activity Diagram Start 44
Gambar 3.12 Activity Diagram Highscore 45
Gambar 3.13 Activity Diagram About 46
Gambar 3.14 Activity Diagram Exit 48
Gambar 3.15Desain Antarmuka Layar Pembuka 50
Gambar 3.16 Desain Antarmuka Layar Menu Utama 50 Gambar 3.17 Desain Antamuka Layar Highscore 51
Gambar 3.18 Desain Antarmuka Layar About 51
Gambar 3.19 Desain Antarmuka Layar Isian Data Pemain 52
Gambar 3.20 Message Dialog 53
Gambar 3.21 Desain Antarmuka Layar Permainan 54 Gambar 3.22 Desain Antarmuka Layar Konfirmasi 54
Gambar 4.1 Layar Pembuka 56
Gambar 4.2 Menu Utama 57
Gambar 4.3 Layar Highscore 57
Gambar 4.4 Layar About 58
Gambar 4.5 Layar Isian Data Pemain 58
Gambar 4.6 Message Dialog 59
Gambar 4.7 Layar Permainan 59
Gambar 4.8 Layar Permainan Saat Pause 60
Gambar 4.9 Layar Konfirmasi 60
Gambar 4.10 History permainan Sliding Puzzle 63 Gambar 4.11 State Machine Diagram untuk History Permainan Pemain 1 63 Gambar 4.12 State Machine Diagram untuk History Permainan Pemain 2 64 Gambar 4.13 State Machine Diagram untuk History Permainan Pemain 3 64
Gambar 4.14 State Machine Diagram untuk History Permainan Pemain 4 65 Gambar 4.15 Diagram Hasil Pengujian Aspek Ketertarikan Pemain 69 Gambar 4.16 Diagram Hasil Pengujian Aspek Kesesuaian Perpindahan Level 70 Gambar 4.17 Diagram Hasil Evaluasi Aspek Implementasi Antarmuka 71 Gambar 4.18 Diagram Hasil Pengujian Aspek Implementasi Antarmuka Secara
Keseluruhan 72
Gambar 4.19 Diagram Hasil Pengujian Aspek Penggunaan Aplikasi 73 Gambar 4.20 Diagram Hasil Pengujian Aspek Penggunaan Aplikasi Secara