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 2014
Universitas Sumatera Utara
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 MEDAN 2014
Universitas Sumatera Utara
PERSETUJUAN
Judul
:
Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: : : : : :
PERMAINAN PERGESERAN ANGKA BENTUK BINTANG MENGGUNAKAN ALGORITMA BEST FIRST SEARCH SKRIPSI SISKA MARIA ARITONANG 081402004 SARJANA (S1) TEKNOLOGI INFORMASI TEKNOLOGI INFORMASI ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, April 2014 Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
Romi Fadillah R, B.Comp.Sc.M.Sc. NIP 19860303 201012 1 004
Dedy Arisandi, ST., M.Kom. NIP 19610817 198701 1 001
Diketahui/Disetujui oleh Program Studi S1 Teknologi Informasi Ketua,
Prof. Dr. Opim Salim Sitompul, M.Sc. NIP 19610817 198701 1 001
Universitas Sumatera Utara
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
Siska Maria Aritonang 081402004
Universitas Sumatera Utara
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. Skripsi ini terutama penulis persembahkan untuk kedua orang tua dan keluarga penulis yang telah memberikan dukungan dan motivasi, ayahanda (alm.) ML. Aritonang dan ibunda R. Tampubolon yang selalu sabar dalam mendidik dan membesarkan penulis. Untuk kakak penulis Gokma Aritonang, Lusiana Aritonang, SE, dan Yoice Helena Aritonang, Amd., abang penulis Solyandri Aritonang, SE, Hendra Aritonang, SH, dan Janter Aritonang, serta adik penulis Dorkas Aritonang yang selalu memberikan dorongan kepada penulis. Terima kasih penulis ucapkan kepada teman-teman yang selalu memberikan dukungan, Lia Hartati, Mutiara Rajagukguk, Umi Hani, Desfi Ramadhani, Ester Simanjuntak, Fanny Nababan, Cahya, Karina Ayesha, seluruh angkatan 08, serta teman-teman mahasiswa Teknologi Informasi lainnya yang tidak dapat penulis sebutkan satu persatu. Teman-teman di asrama, Kak Erna Sitorus, Selfia Sinaga, Vivia Simarmata, Hill Intan, Ariance Sitanggang dan Sarta Sinaga. Semoga Tuhan membalas kebaikan kalian dengan berkat dan karunia yang berlimpah.
Universitas Sumatera Utara
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, Best First Search.
Universitas Sumatera Utara
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. Keyword: Sliding Puzzle In A Star-Shaped Grid, Sliding Puzzle, Heuristic, Best First Search.
Universitas Sumatera Utara
DAFTAR ISI
Hal. ii iii iv v vi vii ix x
Persetujuan Pernyataan Ucapan Terima Kasih Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar 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 4 4
BAB 2 Landasan Teori 2.1 Kecerdasan Buatan 2.2 Permainan Pergeseran Angka 2.3 Permainan Pergeseran Angka Pada Bentuk Bintang 2.4 Teknik Dasar Pencarian 2.5 Pencarian Heuristik (Heuristic Search) 2.6 Algoritma Best First Search 2.7 Penelitian Sebelumnya
6 6 10 11 12 13 14 17
BAB 3 Analisis dan Perancangan Aplikasi 3.1 Analisis 3.1.1 Analisis Permainan Pergeseran Angka Bentuk Bintang 3.1.2 Analisis Algoritma Best First Search Pada Permainan Pergeseran Angka Bentuk Bintang 3.2 Perancangan Aplikasi 3.2.1 Perancangan Pemodelan Visual Menggunakan UML 3.2.1.1 Use Case Diagram 3.2.1.2 Use Case Specification 3.2.1.3 Activity Diagram 3.2.2 Perancangan Aplikasi Permainan 3.2.3 Perancangan Antarmuka Aplikasi (Interface) 3.2.3.1 Antarmuka Form Home 3.2.3.2 Antarmuka Menu New Game 3.2.3.3 Antarmuka Form About
19 19 19 22 28 28 28 29 32 37 38 38 39 40
Universitas Sumatera Utara
viii 3.2.3.4 Antarmuka Star 6
41
BAB 4 Implementasi dan Pengujian Aplikasi 4.1 Implementasi 4.1.1 Spesifikasi Perangkat Keras 4.1.2 Spesifikasi Perangkat Lunak 4.2 Tampilan Aplikasi 4.2.1 Tamplian Halaman Utama 4.2.2 Tampilan Menu Game 4.2.3 Tampilan Instructions 4.2.4 Tampilan Bintang Berkaki 6 4.2.5 Tampilan Form About 4.3 Pengujian Aplikasi 4.3.1 Pengujian Alfa 4.3.2 Pengujian Beta
42 42 42 42 42 43 43 46 47 50 51 52 55
BAB 5 Kesimpulan dan Saran 5.1 Kesimpulan 5.2 Saran
61 61 61
Daftar Pustaka Lampiran A: Kuisioner Penilaian Pengguna Aplikasi Lampiran B: Listing Program
63 65 67
Universitas Sumatera Utara
DAFTAR TABEL
Tabel 2.1 Penelitian Sebelumnya Tabel 3.1 Use Case Specification untuk Use Case About Tabel 3.2 Use Case Specification untuk Use Case Instruksi Tabel 3.3 Use Case Specification untuk Use Case Solve Tabel 3.4 Use Case Specification untuk Use Case Pause Tabel 3.5 Use Case Specification untuk Use Case Shuffle Tabel 3.6 Use Case Specification untuk Use Case Pilih Bintang Tabel 3.7 Use Case Specification untuk Use Case Play Tabel 4.1 Tabel Hasil Pengujian Black Box Pada Menu Utama Tabel 4.2 Tabel Hasil Pengujian Black Box Pada Halaman Permainan Bintang Berkaki 5 Atau Berkaki 6 Tabel 4.3 Hasil Pengisian Kuisioner Aspek Antarmuka Aplikasi Tabel 4.4 Hasil Pengisian Kuisioner Penggunaan Aplikasi
Hal. 18 29 29 30 30 31 31 32 52 53 56 58
Universitas Sumatera Utara
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 21 Gambar 3.2 (a) Posisi Titik Pada Bintang Berkaki 5 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 34 Gambar 3.11 Activity Diagram Untuk Play 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 37 Gambar 3.16 Flowchart Aplikasi Permainan Gambar 3.17 Form Home/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 Gambar 4.16 Tampilan Form About 51
Universitas Sumatera Utara
BAB 1
PENDAHULUAN
1.1 Latar 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). Walaupun permainan ini terlihat sederhana namun untuk bisa menempatkan semua angka berada pada posisi sebenarnya merupakan suatu masalah. Permainan pergeseran angka pada bentuk bintang ini dapat diselesaikan dengan bantuan pohon pencarian (search tree). Struktur pohon pencarian digunakan untuk menggambarkan keadaan secara hirarkis, dimana akar dari pohon berupa keadaan awal dan cabang berupa keadaan-keadaan yang mungkin terjadi dari keadaan sebelumnya serta daun merupakan keadaan akhir, yang dapat dijadikan sebagai solusi dari permasalahan atau bisa merupakan jalan buntu (dead end). Ada dua metode untuk membangun sebuah pohon pencarian, salah satunya adalah metode pencarian heuristik. Metode pencarian heuristik mampu melakukan pencarian solusi langsung pada cabang dari pohon yang memuat tujuan (goal) tanpa harus mengunjungi node-node lain yang tidak perlu, dengan demikian waktu pencarian solusi dapat diminimalkan terutama terhadap pencarian dengan solusi
Universitas Sumatera Utara
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.3 Batasan Masalah
Pada tugas akhir ini dilakukan beberapa batasan masalah sebagai berikut:
Universitas Sumatera Utara
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.4 Tujuan 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.
1.5 Manfaat Penelitian
Manfaat dari penyusunan tugas akhir ini adalah untuk menambah wawasan ilmu bagi penulis dan pembaca tentang penggunaan algoritma best first search dalam pencarian solusi permainan pergeseran angka pada bentuk bintang. Selain itu permainan ini juga termasuk salah satu jenis permainan edukasi sehingga dapat digunakan untuk melatih kemampuan nalar dan logika seseorang.
Universitas Sumatera Utara
4 1.6 Metode 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.7 Sistematika Penulisan
Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu:
Universitas Sumatera Utara
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 Berisi tentang kesimpulan yang dapat ditarik setelah menyelesaikan tugas akhir ini dan saran-saran yang dapat diberikan untuk pengembangan lebih lanjut.
Universitas Sumatera Utara