i
PENGEMBANGAN GAME SUDOKU MENGGUNAKAN ALGORITMA GENETIKA
TUGAS AKHIR
Diajukan Untuk Memenuhi
Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh : NURHADI SANTOSO
NIM : 07560198
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2013
ii
LEMBAR PERSETUJUAN
Pengembangan Game Sudoku Mengunakan Algoritma Genetika
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Mengetahui/ menyetujui,
Pembimbing I
Dr. Ir. Ermanu Azizul Hakim, MT NIP. 108.9109.0233
Pembimbing II
Ali Sofyan Kholimi, S.Kom NIDN. 0701038202
iii
LEMBAR PENGESAHAN
Pengembangan Game Sudoku Mengunakan Algoritma Genetika
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh :
Nurhadi Santoso NIM : 07560198
Tugas Akhir ini telah diuji dan dinyatakan lulus melalui sidang majelis penguji pada tanggal 10 Januari 2014.
Menyetujui, Penguji I
Eko Budi Cahyono, S.Kom, MT NIP.108.9504.0330
Penguji II
Ilyas Nuryasin, S.Kom, M.Kom. NIDN. 0723118601
Mengetahui,
Ketua Jurusan Teknik Informatika
Eko Budi Cahyono, S.Kom, MT NIP 108.9504.0330
iv
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini :
NAMA : Nurhadi Santoso
NIM : 07560198
FAK/JUR : Teknik / Teknik Informatika
Dengan ini saya menyatakan Bahwa Tugas Akhir dengan judul
“Pengembangan Game Sudoku Menggunakan Algoritma Genetika”
beserta seluruh isinya adalah karya saya sendiri dan bukan merupakan karya tulis orang lain, baik sebagian maupun seluruhnya, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila kemudian hari dtemukan adanya pelanggaran terhadap etika keilmuan dalam karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya siap menanggung segala bentuk resiko atau sanksi yang berlaku.
Mengetahui, Malang, 3 Januari 2014
Dosen Pembimbing Yang Membuat Pernyataan
v
ABSTRAKSI
Perkembangan ilmu pengetahuan dan teknologi telah menghantarkan manusia ke zaman yang serba modern seperti sekarang ini. penggunaan internet, mobile phone, dan teknologi digital lainnya tidak dapat dihindari lagi. bentuk yang paling ,udah untuk diukur tingkat keberhasilan dan cukup digemari oleh sebagian besar orang yaitu pada permainan.
Sudoku terdiri dari berbagai macam tingkat kesulitan. Semakin sulit soal, tentu akan semakin lama waktu yang dibutuhkan system untuk memecahkan soal tersebut. Adakalanya dalam mengerjakan kita mengalami jalan buntu, untuk itu penulis membuat aplikasi yang dapat menemukan solusi dengan soal yang acak namun tetap terikat pada peraturan dasar sudoku dengan menggunakan metode algoritma genetika.
vi
ABSTRACT
Developments in science and technology have exposed humans to the modern all times as it is today. use of the internet, mobile phones, and other digital technologies can not be avoided anymore. most forms, to measure the level of success already and quite favored by the majority of people are in the game.
Sudoku consists of various levels of difficulty. The more difficult question, of course the longer the time it takes the system to solve the problem. Sometimes in our work stalled, for the authors to make an application that can find a solution to the problem is random but remains bound to the basic sudoku rules using genetic algorithm.
vii
LEMBAR PERSEMBAHAN
Dengan mengucap puji syukur kehadirat Allah SWT atas segala rahmat serta hidayahnya sehingga laporan tugas akhir dengan judul : “Pengembangan Game Sudoku Menggunakan Algoritma Genetika” dapat penulis selesaikan.
Tugas Akhir ini merupakan salah satu prasyarat untuk menyelesaikan studi tingkat strata satu di Fakultas Teknik Jurusan Informatika Universitas Muhammadiyah Malang. Selama penyelesaian tugas akhir ini, penulis telah memperoleh banyak bantuan, bimbingan, motivasi dan saran yang berguna dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan rasa terima kasih kepada :
1. Bapak Dr. Ir. Ermanu Azizul Hakim, MT. selaku Dosen Pembimbing I, yang
telah meluangkan waktu untuk memberikan bimbingan maupun pengarahan dalam penyelesaian tugas akhir ini.
2. Bapak Ali Sofyan Kholimi, S.Kom. selaku Dosen Pembimbing II, yang telah
meluangkan waktu dalam memberikan bimbingan maupun pengarahan dalam pencapaian hasil yang maksimal pada penelitian tugas akhir ini.
3. Seluruh Dosen Jurusan Teknik Informatika.
4. Kepada Ibundaku tercinta, Ibu Siti Nurhayati yang selalu memberikan doa dan dukungan yang tak ternilai harganya dan juga kepada Ayahandaku tersayang, Bapak Santoso Prayitno yang selalu menjadi motivasi bagi saya.
5. Saudara-saudaraku, Ayu, Toton, Upik yang selalu menjadi penyemangat.
6. Keluarga Besar Biro Administrasi Akademik yang selalu memberikan
nasehat dan dorongan motivasi sehingga terselesaikannya tugas akhir ini. 7. Bapak H. Mu'ali dan Ibu Hj. Siti Safa'atin serta Bunda Selly, Alvaro, Alvariz,
Devi, dan Arga yang selalu memberikan doa dan dorongan motivasi sehingga terselesaikannya tugas akhir ini.
8. Keluarga Besar Ibu Sundari yang telah memberikan segala nasehat dan motivasi sehingga terselesaikan tugas akhir ini.
9. Keluarga Besar PAB dan GCK yang selalu memberikan dukungan dan
viii
10. Teman-teman terbaikku: Ayu, Dimas, Yufi, Lily, Freddy, Lina dkk yang telah memberi dukungan dan dorongan semangat sehingga terselesaikannya tugas akhir ini.
11. Teman-teman angkatan 2007 yang tidak dapat penulis sebutkan satu persatu.
Saya juga menyadari dengan karya sederhana ini tentu masih jauh dari kesempurnaan. Oleh karena itu, saran dan kritik yang membangun dari berbagai pihak tentu diperlukan agar skripsi ini menjadi lebih baik. Akhir kata semoga skripsi ini bisa bermanfaat bagi yang membaca.
Malang, 3 Januari 2014
ix
KATA PENGANTAR
Dengan memanjatkan puji syukur kehadirat ALLAH SWT atas dilimpahkan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul :
"Pengembangan Game Sudoku Menggunakan Algoritma Genetika”
Di dalam tulisan ini disajikan pokok-pokok bahasan yang meliputi : Game Sudoku, Algoritma Genetika
Penulis menyadari sepenuhnya bahwa dalam penulisan Tugas Akhir ini masih banyak kekurangan dan keterbatasan. Oleh karena itu penulis mengharapkan saran yang membangun agar tulisan ini bermanfaat bagi perkembangan ilmu pengetahuan kedepan. Amin.
Malang, 3 Januari 2014
x
DAFTAR ISI
HALAMAN
HALAMAN JUDUL ... i
LEMBAR PERSETUJUAN ... ii
LEMBAR PENGESAHAN ... iii
LEMBAR PERNYATAAN ... iv
ABSTRAKSI ... v
ABSTRACT ... vi
LEMBAR PERSEMBAHAN ... vii
KATA PENGANTAR ... ix
DAFTAR ISI ... x
DAFTAR GAMBAR ... xiii
DAFTAR TABEL ... xiv
BAB 1 PENDAHULUAN 1.1 Latar belakang ... 1 1.2 Rumusan masalah... 2 1.3 Tujuan penelitian ... 2 1.4 Batasan masalah ... 2 1.5 Metodologi penelitian ... 2 1.6 Sistematika Penulisan ... 3
BAB II LANDASAN TEORI 2.1 Sejarah Sudoku ... 5
2.1.1 Cara Bermain ... 6
xi
2.2 Algoritma Genetika ... 8
2.2.1 Definisi Dalam Algoritma Genetika ... 10
2.2.2 Tahapan Dalam Menggunakan Algoritma Genetika ... 10
2.2.3 Struktur Algoritma Genetika ... 11
BAB III ANALISA DAN PERANCANAAN SISTEM 3.1 Analisa dan Gambaran Umum ... 13
3.2 Kebutuhan Input ... 14
3.2.1 Functional Requirement ... 14
3.2.2 Non Functional Requirement ... 14
3.3 Perancangan Sistem ... 14
3.3.1 Flowchart Diagram ... 14
3.3.2 Use Case Diagram ... 16
3.3.3 Activity Diagram ... 17
3.3.4 Sequence Diagram ... 19
3.3.5 Class Diagram ... 22
3.4 Desain Antar Muka ... 26
3.4.1 Tampilan Antarmuka Aplikasi ... 26
3.5 Pembangkitan Puzzle ... 27
3.6 Representasi Kromosom ... 38
3.7 Fungsi Fitness ... 28
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Analisa dan Gambaran Umum ... 31
4.1.1 Tampilan Aplikasi ... 31
xii
4.1.3 Implementasi Algoritma Genetika pada Sudoku ... 33
4.2 Pengujian Umum ... 38
4.2.1 Pengujian Perangkat Lunak ... 38
4.2.2 Pengujian Permainan Sudoku ... 40
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 42
5.2 Saran ... 42
xiii
DAFTAR GAMBAR
HALAMAN
Gambar 2.1 Sudoku yang sudah diselesaikan ... 7
Gambar 3.1 Flowchart Algoritma Genetika Pada Sudoku ... 15
Gambar 3.2 Use Case Diagram ... 16
Gambar 3.3 Activity Diagram Input Sudoku ... 17
Gambar 3.3 Activity Diagram Proses Sudoku ... 18
Gambar 3.4 Activity Diagram Output Sudoku ... 19
Gambar 3.5 Sequence diagram input pilihan sudoku ... 20
Gambar 3.6 Sequence diagram proses ... 21
Gambar 3.7 Sequence diagram output ... 21
Gambar 3.8 Class Diagram ... 22
Gambar 3.9 Gambar antar muka aplikasi ... 26
Gambar 3.10 Puzzle Sudoku Valid ... 28
Gambar 4.1 Tampilan awal Sudoku solver ... 33
Gambar 4.2 Tampilan menu Sudoku solver ... 34
Gambar 4.3 Implementasi Fungsi ... 35
Gambar 4.4 Implementasi Fungsi Algoritma ... 36
Gambar 4.5 Implementasi Fungsi Chromosome ... 36
Gambar 4.6 Implementasi Fungsi Fitness ... 37
xiv
DAFTAR TABEL
HALAMAN
Tabel 4.1 Pengujian Fungsi Perangkat Lunak... 38 Tabel 4.2 Penguian Permainan Sudoku ... 40
xv
DAFTAR PUSTAKA
Hakim, R., & Sutarto. (2009). Mastering Java. Jakarta Pusat: Elex Media Komputindo.
Harnaningrum, L. N. (2009). Algortima dan Pemrograman Java. Yogyakarta: Graha Ilmu.
Kadir, A. (2008). Dasar Pemrograman Java 2. Yogyakarta: Andi.
Komputer, W. (2009). Menguasai Java Programming. Jakarta Selatan: Salemba Infotek.
Lewis, R. (2012). Metaheuristics Can Solve Sudoku Puzzle. inf.utfsm.cl. Retrieved December 06, 2013, from inf.utfsm.cl/~mcriff/Tesistas/Games/ Mantere, T., & Koljonen, J. (2006). Solving and Rating Sudoku Puzzles with
Genetic Algorithms. New Developments in Artificial Intelligence and the Semantic Web Proceedings of the 12th Finnish Artificial Intelligence Conference STeP 2006, 86–92.
Melanie, M. (1995). Genetic algorithms: An overview. Complexity, 1(1), 31–39. doi:10.1002/cplx.6130010108
Melanie, M. (1996). An Introduction to Genetic Algorithms. MIT Press.
Purnomo, H., & Kusumadewi, S. (n.d.). Aplikasi Algoritma Genetika Untuk Penentuan Tata Letak Mesin, 203–211.
Siswanto. (2011). Algoritma dan Struktur Data Non Linear dengan Java. (L. N. Harnaningrum, Ed.). Yogyakarta: Graha Ilmu.
Weiss, J. M. (2009). Genetic Algorithms and Sudoku. MICS.
Whitley, D. (1994). A Genetic Algorithm Tutorial. Statistics and Computing, 4(2), 65–85. doi:10.1007/BF00175354