IMPLEMENTASI ALGORITMA GREEDY PADA GAME SUMMY SKRIPSI REZA HIDAYAT BAYU PRABOWO 091401068 PROGRAM STUDI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017
IMPLEMENTASI ALGORITMA GREEDY PADA GAME SUMMY SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer REZA HIDAYAT BAYU PRABOWO 091401068 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017
ii PERSETUJUAN Judul : IMPLEMENTASI ALGORITMA GREEDY PADA GAME SUMMY Kategori : SKRIPSI Nama : REZA HIDAYAT BAYU PRABOWO Nomor Induk Mahasiswa : 091401068 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Siti Dara Fadilla, S.Si, M.T Dr. Syahril Efendi, S.Si, M.IT NIP. 197705162005012001 NIP. 196711101996021001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
iii PERNYATAAN IMPLEMENTASI ALGORITMA GREEDY PADA GAME SUMMY SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, 24 Januari 2017 Reza Hidayat Bayu Prabowo NIM. 091401068
iv PENGHARGAAN Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas berkat dan kasih karunia- Nya sehingga penulis dapat menyelesaikan skripsi ini dengan baik. Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini. Penulis mengucapkan terima kasih kepada: 1. Teristimewa orang tua yang penulis sayangi, ibunda Nina Erleni dan ayahanda Brata Yudha Gunawan yang tidak henti hentinya memberikan doa, motivasi, dan dukungan yang selalu menjadi sumber semangat penulis. 2. Dekan dan Wakil Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 3. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 4. Ibu Dr. Maya Silvi Lydia, M.Sc sebagai Sekretaris Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera. 5. Bapak Dr. Syahril Efendi, S.Si, M.IT dan Ibu Siti Dara Fadilla, S.Si, M.T selaku dosen pembimbing yang telah membimbing penulis sehingga penulis dapat menyelesaikan skripsi ini. 6. Bapak Prof. Dr. Iryanto, M.Si dan Bapak Drs. Marihat Situmorang, M.Si sebagai dosen penguji yang telah memberikan saran dan kritikan yang sangat berguna bagi penulis. 7. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi USU. 8. Adik penulis R. F. Aditya Purboyo, R. R. Dimas Prayoga, dan Yuniar Adharistin yang selalu memberikan doa, motivasi dan dukungannya terhadap penulis agar dapat menyelesaikan skripsi ini. 9. Dan juga kepada teman-teman seperjuangan program studi S1 Ilmu Komputer USU, terkhusus kepada: Riski Oktavian, Septian Maihadi Putra Lubis, Septian Dwi Cahya Panjaitan, Samuel Tarigan dan Saydina Muhamad Elsyah yang telah berbagi kebersamaan selama berada di S1 Ilmu Komputer Penulis menyadari bahwa skripsi ini masih jauh dari sempurna. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya. Medan, 30 Januari 2017 Reza Hidayat Bayu Prabowo NIM : 091401068
v ABSTRAK Summy adalah sebuah board game yang diciptakan oleh Corné van Moorse dan merupakan varian dari game Scrabble. Game ini dapat dimainkan oleh dua orang pemain atau lebih dengan menyusun angka-angka dan operator aritmatika menjadi bentuk penjumlahan, pengurangan, perkalian, atau pembagian. Dan setiap pemain akan mendapatkan poin berdasarkan jumlah total angka-angka yang digunakan pada saat membentuk penjumlahan, pengurangan, perkalian, atau pembagian yang valid pada setiap gilirannya. Tujuan penelitian ini adalah membangun sebuah agen kecerdasan buatan yang dapat menyusun angka-angka dan operator aritmatika menjadi bentuk penjumlahan, pengurangan, perkalian, atau pembagian dengan jumlah poin maksimum pada setiap gilirannya sebagai lawan tanding pemain dalam bentuk computer game. Metodologi yang digunakan yaitu algoritma greedy yang merupakan algoritma yang menggunakan pendekatan penyelesaian masalah dengan mencari nilai maksimum pada setiap langkahnya tanpa memedulikan konsekuensi pada langkah selanjutnya. Hasil yang diperoleh dari computer game yang dibangun adalah penerapan algoritma greedy dalam membangun agen kecerdasan buatan dapat memberikan lawan tanding yang cukup kompetitif bagi pemain. Kata Kunci : Game, Summy, Algoritma Greedy, Kecerdasan Buatan
vi THE IMPLEMENTATION OF GREEDY ALGORITHM IN SUMMY GAME ABSTRACT Summy is a board game created by Corné van Moorse and is a variant of the game Scrabble. This game can be played by two or more persons by compiling the numbers and arithmetic operators into the shape of addition, subtraction, multiplication, or division. And each player will earn points based on the total number of figures used at the time of forming addition, subtraction, multiplication, or division valid at every turn. The purpose of this research is to build an artificial intelligence agent who could arrange the numbers and arithmetic operators to form the summing, subtraction, multiplication, or division with the maximum number of points on each turn as a rival in the form of computer game players. The methodology used is the greedy algorithm is an algorithm that uses a problem-solving approach to find the maximum value at every step of ignoring the consequences for the next step. The results of the computer game built greedy algorithm is the application of artificial intelligence in the build agent can provide sufficient competitive opponent for the player. Keywords: Game, Summy, Greedy Algorithm, Artificial Intelligence
vii DAFTAR ISI Hal. HALAMAN JUDUL PERSETUJUAN PERNYATAAN PENGHARGAAN ABSTRAK ABSTRACT DAFTAR ISI i ii iii iv v vi vii DAFTAR TABEL ix DAFTAR GAMBAR x BAB I PENDAHULUAN 1 1.1. Latar Belakang 1 1.2. Rumusan Masalah 2 1.3. Batasan Penelitian 2 1.4. Tujuan Penelitian 3 1.5. Manfaat Penelitian 3 1.6. Metode Penelitian 3 1.7. Sistematika Penulisan 4 BAB II LANDASAN TEORI 5 2.1. Kecerdasan Buatan 5 2.2. Algoritma Greedy 9 2.3. Permainan (Game) 10 2.4. Game Summy 11 2.6. Penelitian Terdahulu 13 BAB III ANALISIS DAN PERANCANGAN SISTEM 15 3.1. Analisis Game Summy 15 3.2. Analisis Algoritma Greedy pada Game Summy 17 3.3. Perancangan Sistem 24 3.3.1. Flowchart Algoritma Greedy 24
viii 3.3.2 Perancangan Aplikasi Game 25 3.3.3 Pemodelan Visual Menggunakan UML 26 3.4 Perancangan Transisi Halaman dan Antarmuka 32 3.4.1 Transisi Halaman 32 3.4.2 Antarmuka 33 BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 38 4.1 Implementasi Sistem 38 4.1.1 Spesifikasi Perangkat Lunak 38 4.1.2 Spesifikasi Perangkat Keras 38 4.2 Tampilan Aplikasi 39 4.2.1 Tampilan Halaman Menu Utama 39 4.2.2 Tampilan Halaman Game 39 4.2.3 Tampilan Halaman Bantuan 42 4.2.4 Tampilan Halaman Tentang 42 4.3 Pengujian Sistem 43 BAB V KESIMPULAN DAN SARAN 44 5.1 Kesimpulan 44 5.2 Saran 44 DAFTAR PUSTAKA 46 LAMPIRAN A 47 LAMPIRAN B 56
ix DAFTAR TABEL Hal. Tabel 2.1 Penelitian Terdahulu 13 Tabel 2.2 Penelitian Terdahulu (Lanjutan) 14 Tabel 3.1 Bentuk Penjumlahan, Pengurangan, Perkalian, atau Pembagian 17 Tabel 3.2 Pengelompokan Himpunan Kandidat Berdasarkan Tipe 19 Tabel 3.3 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan A) 19 Tabel 3.4 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan B) 20 Tabel 3.5 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan C) 21 Tabel 3.6 Hasil Pembentukan Bentuk Perkalian dan Pembagian 21 Tabel 3.7 Use Case Spesification Mulai Bermain 27 Tabel 3.8 Use Case Specification Bermain 28 Tabel 3.9 Use Case Specification Evaluasi Langkah 29 Tabel 3.10 Use Case Specification Lihat Tentang 30 Tabel 3.11 Use Case Specification Lihat Bantuan 31
x DAFTAR GAMBAR GAMBAR 2.1 Penerapan Konsep Kecerdasan Buatan di Komputer 7 GAMBAR 2.2 Domain Area 7 GAMBAR 2.3 Game Summy 11 GAMBAR 2.4 Penjumlahan, Pengurangan, Perkalian atau Pembagian Valid pada Summy 12 GAMBAR 2.5 Memperoleh Score pada Summy 12 GAMBAR 3.1 Kotak-Kotak yang Disusun pada Game Summy 15 GAMBAR 3.2 Kotak Milik Komputer pada Set Awal Game Summy 18 GAMBAR 3.3 Cek Papan Game 22 GAMBAR 3.4 Kotak Milik Komputer Dicocokkan ke Papan Game 23 GAMBAR 3.5 Kotak Milik Komputer Setelah Diletakkan Pada Papan Game 23 GAMBAR 3.6 Flowchart Algoritma Greedy pada Game Summy 24 GAMBAR 3.7 Flowchart Algoritma Greedy pada Game Summy (Lanjutan) 25 GAMBAR 3.8 Flowchart Game Summy 26 GAMBAR 3.9 Use Case Diagram Summy 27 GAMBAR 3.10 Activity Diagram Mulai Bermain 28 GAMBAR 3.11 Activity Diagram Bermain 29 GAMBAR 3.12 Activity Diagram Evaluasi Langkah 30 GAMBAR 3.13 Activity Diagram Lihat Tentang 31 GAMBAR 3.14 Activity Diagram Lihat Bantuan 32 GAMBAR 3.15 Transisi Halaman 33 GAMBAR 3.16 Antarmuka Halaman Menu Utama 33 GAMBAR 3.17 Antarmuka Halaman Game 35 GAMBAR 3.18 Antarmuka Halaman Bantuan 36 GAMBAR 3.19 Antarmuka Halaman Tentang 37 GAMBAR 4.1 Halaman Menu Utama 39 GAMBAR 4.2 Halaman Game 40 GAMBAR 4.3 Pemain Meletakkan Kotak Miliknya ke Papan Game 40 GAMBAR 4.4 Komputer Telah Memilih Bentuk Terbaik dengan Algoritma Greedy 41 GAMBAR 4.5 Game Berakhir dengan Kemenangan Komputer 41 GAMBAR 4.6 Halaman Bantuan 42 GAMBAR 4.7 Halaman Tentang 42 Hal.