PERMAINAN PERGESERAN ANGKA BENTUK BINTANG
MENGGUNAKAN ALGORITMA
BEST FIRST SEARCH
SKRIPSI
SISKA MARIA ARITONANG
081402004
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
PERMAINAN PERGESERAN ANGKA BENTUK BINTANG MENGGUNAKAN ALGORITMA BEST FIRST SEARCH
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
SISKA MARIA ARITONANG 081402004
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Nomor Induk Mahasiswa : 081402004
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
Pembimbing 2 Pembimbing 1
Romi Fadillah R, B.Comp.Sc.M.Sc. Dedy Arisandi, ST., M.Kom. NIP 19860303 201012 1 004 NIP 19610817 198701 1 001
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
PERNYATAAN
PERMAINAN PERGESERAN ANGKA BENTUK BINTANG MENGGUNAKAN ALGORITMA BEST FIRST SEARCH
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, April 2014
UCAPAN TERIMA KASIH
Puji dan syukur penulis sampaikan kehadirat Tuhan Yang Maha Esa yang telah memberikan hikmat dan kebijaksanaan sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada Bapak Dedy Arisandi, ST., M.Kom. selaku pembimbing satu dan Bapak Romi Fadillah Rahmat, B.Comp.Sc., M.Sc. selaku pembimbing dua yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis. Ucapan terima kasih juga ditujukan kepada Drs. Sawaluddin, M.IT dan Baihaqi Siregar, S.Si., MT yang telah bersedia menjadi dosen pembanding. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Teknologi Informasi, Prof. Dr. Opim Salim Sitompul, M.Sc. dan Drs. Sawaluddin, M.IT, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Teknologi Informasi.
ABSTRAK
Permainan pergeseran angka bentuk bintang merupakan permainan pergeseran angka yang memiliki aturan bermain yang sama seperti permainan pergeseran angka (sliding
puzzle) yang biasanya dimainkan dalam grid berbentuk persegi atau persegi panjang,
yaitu agar bisa menempatkan semua angka yang teracak berada pada posisi sebenarnya dengan hanya berturut-turut menggeser setiap angka ke tempat kosong yang berdekatan. Namun permainan pergeseran angka ini dibangun dalam grid yang berbentuk bintang (star polygon). Algoritma best first search dapat diterapkan untuk melakukan pencarian solusi otomatis pada aplikasi yang akan dibangun. Algoritma
best first search adalah salah satu algoritma pencarian heuristik yang merupakan
kombinasi dari dua algoritma pencarian buta (blind search), yaitu breadth first search
dan depth first search dengan mengambil kelebihan dari kedua algoritma tersebut.
Hasil yang diperoleh dari aplikasi yang dibangun adalah bahwa implementasi algoritma best first search dapat memberikan pencarian solusi terpendek pada permainan ini.
Kata Kunci : Permainan Pergeseran Angka Bentuk Bintang, Sliding Puzzle, Heuristik,
SLIDING PUZZLE IN A STAR-SHAPED GRID USING
BEST FIRST SEARCH ALGORITHM
ABSTRACT
Sliding puzzle in a star-shaped grid is a sliding puzzle that has the same rule of game as any other sliding puzzle which is commonly played in a square or rectangular grid, it is to place all random numbers to the right position (goal position) by successively sliding tiles into the orthogonally adjacent empty square (the blank square). But this sliding puzzle is built in a star-shaped grid (star polygon). Best first search algorithm can be implemented to perform an automatic search for solutions in applications to be built. Best first search algorithm is one of the heuristic search algorithm that is a combination of two blind search algorithms, the breadth-first search and depth-first search by taking advantages of the two algorithms. The result obtained from the application built shows that the implementation of best first search algorithm can provide a shortest solution search for the game.
DAFTAR ISI
2.2 Permainan Pergeseran Angka 10
2.3 Permainan Pergeseran Angka Pada Bentuk Bintang 11
2.4 Teknik Dasar Pencarian 12
2.5 Pencarian Heuristik (Heuristic Search) 13
2.6 Algoritma Best First Search 14
2.7 Penelitian Sebelumnya 17
BAB 3 Analisis dan Perancangan Aplikasi 19
3.1 Analisis 19
3.1.1 Analisis Permainan Pergeseran Angka Bentuk Bintang 19 3.1.2 Analisis Algoritma Best First Search Pada Permainan Pergeseran
Angka Bentuk Bintang 22
viii
3.2.3.4 Antarmuka Star 6 41
BAB 4 Implementasi dan Pengujian Aplikasi 42
4.1 Implementasi 42
4.1.1 Spesifikasi Perangkat Keras 42
4.1.2 Spesifikasi Perangkat Lunak 42
4.2 Tampilan Aplikasi 42
4.2.1 Tamplian Halaman Utama 43
4.2.2 Tampilan Menu Game 43
4.2.3 Tampilan Instructions 46
4.2.4 Tampilan Bintang Berkaki 6 47
4.2.5 Tampilan Form About 50
4.3 Pengujian Aplikasi 51
4.3.1 Pengujian Alfa 52
4.3.2 Pengujian Beta 55
BAB 5 Kesimpulan dan Saran 61
5.1 Kesimpulan 61
5.2 Saran 61
Daftar Pustaka 63
Lampiran A: Kuisioner Penilaian Pengguna Aplikasi 65
DAFTAR TABEL
Hal.
Tabel 2.1 Penelitian Sebelumnya 18
Tabel 3.1 Use Case Specification untuk Use Case About 29 Tabel 3.2 Use Case Specification untuk Use Case Instruksi 29 Tabel 3.3 Use Case Specification untuk Use Case Solve 30 Tabel 3.4 Use Case Specification untuk Use Case Pause 30 Tabel 3.5 Use Case Specification untuk Use Case Shuffle 31 Tabel 3.6 Use Case Specification untuk Use Case Pilih Bintang 31 Tabel 3.7 Use Case Specification untuk Use Case Play 32 Tabel 4.1 Tabel Hasil Pengujian Black Box Pada Menu Utama 52 Tabel 4.2 Tabel Hasil Pengujian Black Box Pada Halaman Permainan Bintang
Berkaki 5 Atau Berkaki 6 53
DAFTAR GAMBAR
Hal. Gambar 2.1 Definisi Kecerdasan Buatan Dalam 4 Kategori (Russell, et al, 2010) 7
Gambar 2.2 8-Puzzle (Russel, 1992) 11
Gambar 2.3 (a) Bentuk Bintang Berkaki 5 (Bigg, 2001) 12 Gambar 2.3 (b) Bentuk Bintang Berkaki 6 (Bigg, 2001) 12 Gambar 2.4 Langkah-Langkah Yang Dilakukan Oleh Algoritma Best First Search 16
Gambar 3.1 Aturan Pergeseran Angka Dalam Bintang 20
Gambar 3.2 (a) Posisi Titik Pada Bintang Berkaki 5 21 Gambar 3.2 (b) Posisi Titik Pada Bintang Berkaki 6 21 Gambar 3.3 Contoh Keadaan Awal Dan Keadaan Akhir Yang Ingin Dicapai 22 Gambar 3.4 Contoh Perhitungan Dengan Menggunakan Gaschnig’s Heuristic 23 Gambar 3.5 Langkah-Langkah Menghitung Gaschnig’s Heuristic 24 Gambar 3.6 Pohon Pencarian Best First Search Pada Bintang Berkaki 5 (Lanjutan) 25 Gambar 3.6 Pohon Pencarian Best First Search Pada Bintang Berkaki 5 26 Gambar 3.7 Flowchart Penerapan Algoritma Best First Search Pada Aplikasi 27
Gambar 3.8 Use Case Diagram 28
Gambar 3.9 Activity Diagram Untuk Plih Bintang 33
Gambar 3.10 Activity Diagram Untuk Shuffle 33
Gambar 3.11 Activity Diagram Untuk Play 34
Gambar 3.12 Activity Diagram Untuk Pause 35
Gambar 3.13 Activity Diagram Untuk Solve 35
Gambar 3.14 Activity Diagram Untuk Instruksi 36
Gambar 3.15 Activity Diagram Untuk About 36
Gambar 3.16 Flowchart Aplikasi Permainan 37
Gambar 3.17 FormHome/Bintang Berkaki 5 38
Gambar 3.18 Antarmuka Menu New Game 39
Gambar 3.19 Antarmuka Form About 40
Gambar 3.20 Antarmuka Bintang Berkaki 6 41
Gambar 4.1 Tampilan Halaman Utama/Star 5 43
Gambar 4.2 Menu Game 44
Gambar 4.3 Pilihan Menu New Game 44
Gambar 4.4 Pilihan Menu Shuffle 45
Gambar 4.5 Manual Entry 45
Gambar 4.6 Pesan Peringatan 1 45
Gambar 4.7 Pesan Peringatan 2 46
Gambar 4.8 Pesan Peringatan 3 46
Gambar 4.9 Instructions 46
Gambar 4.10 Tampilan Bintang Berkaki 6 47
Gambar 4.11 Tampilan Halaman Selama Permainan Berlangsung 48 Gambar 4.12 Tampilan Permainan Dalam Keadaan Paused 48
Gambar 4.13 Pesan Pemenang 49
Gambar 4.14 Exit Game 49
Gambar 4.15 Tampilan Ketika Pemain Menekan Tombol Solve 50
BAB 1
PENDAHULUAN
1.1Latar Belakang
Permainan (game) merupakan bidang usaha manusia terhadap kecerdasan buatan, salah satunya adalah sliding puzzle. Permainan ini merupakan permainan yang dapat melatih kecerdasan. Dalam kehidupan sehari-hari maupun dalam literatur dapat ditemukan berbagai jenis sliding puzzle, ada yang menggunakan huruf, gambar dan angka. Namun yang akan dibahas pada tugas akhir ini adalah sliding puzzle yang menggunakan angka. Permainan pergeseran angka biasanya dimainkan dalam kotak berbentuk persegi atau persegi panjang. Pada jenis ini cenderung lebih mudah untuk dimainkan dan diselesaikan. Permainan ini akan menjadi jauh lebih rumit apabila dimainkan dalam wadah yang berbentuk bintang. Bentuk wadah ini menyebabkan arah proses pergeseran angka menjadi terbatas (Dewi, 2010).
2
penyelesaian yang panjang. Ada beberapa algoritma pencarian yang bersifat heuristik, namun yang akan digunakan dalam penyelesaian permainan pergeseran angka pada bentuk bintang ini adalah algoritma Best First Search. Algoritma ini adalah salah satu algoritma pencarian heuristik yang merupakan kombinasi dari dua algoritma pencarian buta (blind search), yaitu breadth first search dan depth first search dengan mengambil kelebihan dari kedua algoritma tersebut. Pada algoritma best first search, pencarian diperbolehkan mengunjungi simpul yang ada dilevel yang lebih rendah, jika ternyata simpul pada level yang lebih tinggi memiliki nilai heuristik lebih buruk.
Permainan pergeseran angka dalam bentuk bintang selain sangat rumit untuk diselesaikan secara manual dan juga memerlukan waktu yang lama dalam menyelesaikannya. Oleh karena itu, dalam penelitian ini penulis akan mencari solusi terpendek bagi permainan pergeseran angka pada bentuk bintang menggunakan algoritma best first search.
1.2 Rumusan Masalah
Setiap titik perpotongan dalam bintang merupakan titik (node) penempatan angka. Seperti permainan pergeseran angka lainnya, dalam permainan ini juga disediakan satu tempat kosong sebagai ruang untuk menggeser posisi angka sehingga kondisi angka yang teracak pada keadaan awal (intial state) dapat tersusun kembali ke keadaan semula. Permainan pergeseran angka dalam wadah bintang memiliki arah pergeseran yang berbeda dengan permainan pergeseran angka biasa yang berbentuk persegi atau persegi panjang sehingga sangat rumit untuk diselesaikan secara manual karena wadah ini menyebabkan arah proses pergeseran angka menjadi terbatas. Oleh karena itu diperlukan suatu algoritma untuk membantu proses pencarian solusi permainan ini dan algoritma yang akan diterapkan untuk membantu mendapatkan langkah pencarian solusi yang lebih pendek pada permainan pergeseran angka pada bentuk bintang adalah algoritma best first search.
1.3Batasan Masalah
3
1. Bintang yang digunakan memiliki 2 jenis (bentuk), yaitu :
a. Bentuk bintang berkaki 5 (pentagram), dengan jumlah titik (node) dalam bintang sebanyak 10 buah, dan jumlah titik yang dapat diisi adalah sebanyak 9 buah.
b. Bentuk bintang berkaki 6 (hexagram), dengan jumlah titik (node) dalam bintang sebanyak 12 buah, dan jumlah titik yang dapat diisi adalah sebanyak 11 buah.
2. Hanya keadaan awal yang dapat ditentukan secara manual ataupun di-setting secara acak oleh komputer.
3. Input berupa angka-angka dengan tipe data bilangan bulat positif.
4. Menyediakan fasilitas permainan bebas (pengguna dapat menyelesaikan dengan solusi sendiri).
5. Permainan dianggap selesai hanya jika pengguna mampu menyelesaikan permainan dengan cara mengembalikan angka yang teracak ke keadaan tujuan.
1.4Tujuan Penelitian
Adapun tujuan penelitian ini adalah untuk membangun suatu aplikasi yang dapat menemukan solusi permainan pergeseran angka dalam bentuk bintang dengan menerapkan algoritma best first search.
4
1.6Metode Penelitian
Metode penelitian yang akan digunakan adalah:
1. Studi Literatur
Pada tahap ini dilakukan dengan membaca dan mempelajari buku-buku referensi, jurnal atau sumber-sumber lain yang berkaitan dengan tugas akhir ini, baik berasal dari buku maupun dari internet.
2. Analisis dan Perancangan Desain Sistem
Pada tahap ini dilakukan analisis terhadap hasil studi literatur untuk mengetahui dan mendapatkan pemahaman mengenai algoritma best first search, serta perancangan aplikasi mengenai tugas akhir ini, seperti: menggambar flowchart, perancangan aplikasi, dan perancangan antarmuka (interface).
3. Implementasi Sistem
Pada tahap ini akan dilakukan pengkodean dan menerapkan perancangan aplikasi tersebut ke dalam bahasa pemrograman.
4. Pengujian Sistem
Pada tahap ini akan dilakukan pengujian terhadap aplikasi apakah telah memenuhi kriteria atau tidak.
5. Dokumentasi Sistem
Pada tahap ini akan dilakukan penulisan laporan mengenai aplikasi tersebut yang bertujuan untuk menunjukkan hasil penelitian ini.
1.7Sistematika Penulisan
5
Bab 1 Pendahuluan
Berisi latar belakang pemilihan judul, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, algoritma penelitian dan sistematika penulisan.
Bab 2 Landasan Teori
Membahas tentang landasan teori mengenai kecerdasan buatan, permainan (games), permainan pergeseran angka, serta algoritma best first search.
Bab 3 Analisis dan Perancangan Aplikasi
Berisi tentang analisis dan pembahasan mengenai pencarian solusi permainan serta perancangan aplikasi.
Bab 4 Implementasi dan Pengujian Aplikasi
Bab ini membahas mengenai implementasi dari hasil analisis dan pengujian aplikasi yang dibuat.
Bab 5 Kesimpulan dan Saran