PENERAPAN ALGORITMA GENETIKA SEBAGAI PROBLEM SOLVER DALAM GAME SUDOKU BERBASIS ANDROID

dokumen-dokumen yang mirip
BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

BAB I PENDAHULUAN. dilakukan untuk kesenangan dan kadang-kadang digunakan sebagai sarana

BAB 1 PENDAHULUAN. untuk kesenangan dan kadang-kadang digunakan sebagai sarana pendidikan. Permainan

PENYELESAIAN PUZZLE SUDOKU MENGGUNAKAN ALGORITMA GENETIKA

@UKDW. Lampiran B - 1 BAB 1 PENDAHULUAN

Penyelesaian Puzzle Sudoku menggunakan Algoritma Genetik

BAB I PENDAHULUAN. adalah perkembangan dalam bidang permainan. banyak permainan teka-teki yang menjadi populer di kalangan masyarakat.

BAB 2 DASAR TEORI. 2.1 Teka-Teki Silang

IMPLEMENTASI BACKTRACKING ALGORITHM UNTUK PENYELESAIAN PERMAINAN SU DOKU POLA 9X9

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

Analisis Operator Crossover pada Permasalahan Permainan Puzzle

PENYELESAIAN KNAPSACK PROBLEM MENGGUNAKAN ALGORITMA GENETIKA

Implementasi Algoritma Genetika dalam Pembuatan Jadwal Kuliah

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

8. Evaluasi Solusi dan Kriteria Berhenti Perumusan Masalah METODE PENELITIAN Studi Pustaka Pembentukan Data

PERANCANGAN ALGORITMA GENETIKA DALAM PENYUSUNAN TEKA-TEKI SILANG

PENERAPAN ALGORITMA GENETIKA PADA PERENCANAAN LINTASAN KENDARAAN Achmad Hidayatno Darjat Hendry H L T

PEMAMPATAN MATRIKS JARANG DENGAN METODE ALGORITMA GENETIKA MENGGUNAKAN PROGRAM PASCAL

ERWIEN TJIPTA WIJAYA, ST.,M.KOM

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 2 LANDASAN TEORI

MEMBANGUN TOOLBOX ALGORITMA EVOLUSI FUZZY UNTUK MATLAB

BAB II TINJAUAN PUSTAKA

PERFORMANCE ALGORITMA GENETIKA (GA) PADA PENJADWALAN MATA PELAJARAN

Lingkup Metode Optimasi

Algoritma Evolusi Dasar-Dasar Algoritma Genetika

Jl. Ahmad Yani, Pontianak Telp./Fax.: (0561)

BAB III. Metode Penelitian

Pengantar Kecerdasan Buatan (AK045218) Algoritma Genetika

ALGORITMA GENETIKA PADA PEMROGRAMAN LINEAR DAN NONLINEAR

RANCANG BANGUN SISTEM PENENTUAN KOMPOSISI BAHAN PANGAN HARIAN MENGGUNAKAN ALGORITMA GENETIKA

BAB IV HASIL DAN PEMBAHASAN

Algoritma Genetika dan Penerapannya dalam Mencari Akar Persamaan Polinomial

1. Pendahuluan 1.1. Latar Belakang

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU

BAB II LANDASAN TEORI. digunakan sebagai alat pembayaran yang sah di negara lain. Di dalam

Tugas Mata Kuliah E-Bisnis REVIEW TESIS

Oleh Lukman Hariadi

APLIKASI ALGORITMA GENETIKA UNTUK PENENTUAN TATA LETAK MESIN

BAB 1 PENDAHULUAN UKDW

BAB I PENDAHULUAN. kehidupan sehari-hari dan juga merupakan disiplin ilmu yang berdiri sendiri serta

2 TINJAUAN PUSTAKA. 2.1 Peringkasan Teks

APLIKASI ALGORITMA GENETIKA UNTUK PENENTUAN KOMPOSISI BAHAN PANGAN HARIAN

BAB 2 LANDASAN TEORI

PENENTUAN MATCHING MAKSIMUM PADA GRAPH BIPARTISI BERBOBOT DENGAN MENGGUNAKAN ALGORITMA GENETIKA

Keywords Algoritma, Genetika, Penjadwalan I. PENDAHULUAN

GENERATOR TEKA TEKI SILANG MENGGUNAKAN ALGORITMA GENETIKA DAN MULTITHREADING UNTUK MENGHITUNG FITNESSNYA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB III KONSEP DAN PERANCANGAN APLIKASI

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) 45 Edisi... Volume..., Bulan 20.. ISSN :

PROBLEM SOLVING SUDOKU MENGGUNAKAN ALGORITMA GENETIKA

OPTIMASI PENJADWALAN KEGIATAN BELAJAR MENGAJAR DENGAN ALGORITMA GENETIK

BAB I PENDAHULUAN. 1.1 Latar Belakang

PENERAPAN ALGORITMA GENETIKA PADA PENYELESAIAN TRAVELLING SALESMAN PROBLEM (TSP)

ALGORITMA GENETIKA Suatu Alternatif Penyelesaian Permasalahan Searching, Optimasi dan Machine Learning

Penjadwalan Job Shop pada Empat Mesin Identik dengan Menggunakan Metode Shortest Processing Time dan Genetic Algorithm

BAB III ALGORITMA MEMETIKA DALAM MEMPREDIKSI KURS VALUTA ASING. Untuk memberikan penjelasan mengenai prediksi valuta asing

BAB 3 PERANCANGAN PROGRAM. dari OOP (Object Oriented Programming) di mana dalam prosesnya, hal-hal

BAB III PERANCANGAN. Gambar 3.1 di bawah ini mengilustrasikan jalur pada TSP kurva terbuka jika jumlah node ada 10:

BAB 2 LANDASAN TEORI. 2.1 Algoritma Genetika

BAB II LANDASAN TEORI

PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK VISUALISASI DUA DIMENSI WELL PRODUCTION FORECASTING DENGAN GENETIC ALGORITHM

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

OPTIMISASI PENEMPATAN TURBIN ANGIN DI AREA LAHAN ANGIN

PENJADWALAN MESIN BERTIPE JOB SHOP UNTUK MEMINIMALKAN MAKESPAN DENGAN METODE ALGORITMA GENETIKA (STUDI KASUS PT X)

BAB 2 TINJAUAN PUSTAKA

Generator Jadwal Perkuliahan Menggunakan Algoritma Genetika

ALGORITMA GENETIKA. Suatu Alternatif Penyelesaian Permasalahan Searching, Optimasi dan Machine Learning

PENGEMBANGAN APLIKASI PENJADWALAN KULIAH SEMESTER I MENGGUNAKAN ALGORITMA GENETIKA

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

Implementasi Sistem Penjadwalan Akademik Fakultas Teknik Universitas Tanjungpura Menggunakan Metode Algoritma Genetika

PERANCANGAN TATA LETAK FASILITAS BAGIAN PRODUKSI MENGGUNAKAN METODE ALGORITMA GENETIK DI PT. PUTRA SEJAHTERA MANDIRI

Optimasi Penjadwalan Ujian Menggunakan Algoritma Genetika

BAB 2 TINJAUAN PUSTAKA

APLIKASI ALGORITMA GENETIKA DALAM PENENTUAN DOSEN PEMBIMBING SEMINAR HASIL PENELITIAN DAN DOSEN PENGUJI SKRIPSI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI. 2.1 Algoritma

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

Optimasi Multi Travelling Salesman Problem (M-TSP) Menggunakan Algoritma Genetika

Serealia, umbi, dan hasil olahannya Kacang-kacangan, bijibijian,

Genetic Algorithme. Perbedaan GA

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah 1.2 Perumusan Masalah

PENCARIAN SOLUSI DENGAN ALGORITMA BACKTRACKING UNTUK MENYELESAIKAN PUZZLE KAKURO

Travelling Salesman Problem Menggunakan Algoritma Genetika Via GPS Berbasis Android

BAB 2 LANDASAN TEORI

OPTIMALISASI PENJADWALAN BABAK PENYISIHAN PERTANDINGAN SEPAK BOLA LIGA MAHASISWA JAWA BARAT MENGGUNAKAN ALGORITMA GENETIKA

Rancangan Permainan Othello Berbasis Android Menggunakan Algoritma Depth-First Search

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

OPTIMALISASI AKSI NON PLAYER CHARACTER PADA GAME KARTU REMI MENGGUNAKAN ALGORITMA GENETIKA

ABSTRAK. Kata kunci : Aplikasi, Penjadwalan, Algoritma Genetika. viii

KNAPSACK PROBLEM DENGAN ALGORITMA GENETIKA

BAB III PEMBAHASAN. Berikut akan diberikan pembahasan mengenai penyelesaikan CVRP dengan

PENERAPAN ALGORITMA GENETIKA UNTUK PENJADWALAN UJIAN TUGAS AKHIR PADA JURUSAN TEKNIK INFORMATIKA UNIVERSITAS MUHAMMADIYAH MALANG

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

Transkripsi:

PENERAPAN ALGORITMA GENETIKA SEBAGAI PROBLEM SOLVER DALAM GAME SUDOKU BERBASIS ANDROID Yusfrizal 1 1,2 Program Studi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Potensi Utama 3 Universitas Potensi Utama, Jl. K.L.Yos Sudarso Km.6,5 No.3-A Medan (20241) 1 yusfrizal@ymail.com Abstrak Banyak penelitian yang dilakukan oleh para ahli terkait dengan pengembangan aplikasi permainan dan pencarian solusi (problem solver) Sudoku. Penelitian ini dilakukan dengan memasukan peraturan permainan Sudoku ke dalam komputer untuk kemudian diproses dengan algoritma tertentu yang ditujukan untuk mencari solusi (problem solver) terbaik dari persoalan Sudoku tersebut. Banyak penelitian yang dilakukan dengan menerapkan kecerdasan buatan (Artificial Inteligence) pada komputer untuk memecahkan masalah ini. Kecerdasan buatan ini bertujuan agar komputer memiliki kecerdasan sehingga dapat melakukan berbagai kegiatan seperti yang dilakukan oleh manusia. Sudoku terdiri dari berbagai macam tingkat kesulitan. Semakin sulit soal, tentu akan semakin lama waktu yang dibutuhkan untuk memecahkan soal tersebut. Adakalanya dalam mengerjakan kita mengalami jalan buntu, untuk itu penulis membuat aplikasi yang dapat menemukan solusi dengan input yang acak namun tetap terikat pada peraturan dasar Sudoku dengan menggunakan metode Algoritma Genetika dan pemenuhan konstrain. Karena keunikan sifat Algoritma Genetika ini, maka dipilih Algoritma Genetika untuk pembuatan aplikasi Sudoku ini dimana hasil yang akhir yang didapat merupakan hasil kromosom (solusi) yang terbaik (solusi optimal). Dengan penerapan Algoritma Genetika, didapatkan hasil berupa problem solver yang lebih optimum dengan dihasilkannya mutasi yang terus-menerus untuk mencapai solusi, sehingga solusi akan lebih cepat tercapai. Kata kunci : game sudoku, artificial intelligence, solusi (problem solver), algoritma genetika 1. Pendahuluan Permainan atau game adalah suatu struktur kegiatan, yang biasanya dilakukan untuk kesenangan dan kadang-kadang digunakan sebagai sarana pendidikan. Permainan berbeda dengan pekerjaan, yang biasanya dilakukan untuk mendapat suatu upah tertentu, atau dengan seni, yang lebih peduli dengan ekspresi ide. Ada berbagai macam jenis permainan, adalah satunya adalah jenis permainan yang menggunakan alat tulis dan kertas sebagai medium pusat permainan. Salah satu contoh permainan jenis ini adalah Sudoku. Sudoku adalah sebuah permainan teka-teki berdasarkan logika dengan kombinasi penempatan angka. Tujuan dari permainan ini adalah untuk mengisi mengisi N x N kotak sehingga tiap baris dan kolom mengandung angka satu sampai N masing-masing hanya satu kali, terdapat juga M x M kotak yang dimana nilai dari M adalah akar dari N. Sama halnya seperti pada baris dan kolom, area M x M mengandung angka satu sampai N. Sudoku terdiri dari berbagai macam tingkat kesulitan. Semakin sulit soal, tentu akan semakin lama waktu yang dibutuhkan untuk memecahkan soal tersebut. Adakalanya dalam mengerjakan kita mengalami jalan buntu, untuk itu penulis membuat aplikasi yang dapat menemukan solusi dengan input yang acak namun tetap terikat pada peraturan dasar Sudoku dengan menggunakan metode Algoritma Genetika dan pemenuhan konstrain. Algoritma Genetika merupakan bagian dari artificial intelligence (kecerdasan buatan) dan memiliki konsep optimasi yang didasarkan pada mekanisme evolusi biologis yang memiliki berbagai jenis kromosom induk dalam pembentukkan kromosom pada individu individu baru (anak). Kemampuan individu yang lebih kuat akan memiliki kemampuan yang lebih tinggi untuk mempertahankan hidup dan memiliki tingkat reproduksi yang lebih tinggi dibandingkan dengan individu yang lemah. Kromosom kromosom induk dan anak dalam aplikasi ini mewakili solusi solusi yang mungkin dihasilkan, sehingga dengan mengadaptasi Algoritma Genetika memungkinkan solusi dengan kualitas terbaik akan tetap bertahan. Karena keunikan sifat Algoritma Genetika ini, maka dipilih Algoritma Genetika untuk pembuatan aplikasi Sudoku ini dimana hasil yang akhir yang didapat merupakan 514

hasil kromosom (solusi) yang terbaik (solusi optimal).[1] Sebuah game yang ada dalam perangkat bergerak tentu dapat memberikan hiburan yang menarik kepada para pecinta game. Karena mereka dapat bermain game di mana saja secara praktis dan mudah. Kesederhanaan dalam bermain game namun tidak membosankan, serta dapat membuat pemain ingin kembali memainkan game tersebut. Oleh karena itu berbagai pendekatan terus dikembangkan untuk membuat sebuah game yang dapat dimainkan dalam perangkat bergerak atau mobile yang menarik, salah satunya berbasis aplikasi pemograman android. Oleh karena itu, penulis mengusulkan sebuah aplikasi game mobile tentang permainan Sudoku yang dapat menunjang pembelajaran dalam mengasah logika berpikir. Untuk membuat game ini lebih menarik sekaligus ingin mengeksplorasi teknologi baru Android OS Mobile yang saat ini semakin berkembang pesat, penulis berusaha untuk membuat aplikasi game mobile Sudoku pada Android OS Mobile. Adanya desain level yang dinamis dan pemecahan permasalahan (solver) pada aplikasi tersebut dapat membantu sebagai media pembelajaran dalam mengasah logika yang dapat dimainkan dalam teknologi mobile. diperkenalkan ke Jepang dan mendapatkan nama Sudoku. Nama ini berasal dari kata Suuji wa dokushin ni kagiru yang dapat diterjemahkan menjadi angka harus sendiri atau muncul sekali. Pada April 2005, New York Post menerbitkan teka-teki Sudoku sebagai fitur secara teratur dan mulai sekitar bulan Juli 2005, Sudoku mencapai kepopuleran di Amerika dan muncul sebagai acara live di televisi. Di Indonesia sendiri, Sudoku muncul dalam bentuk buku yang cukup digemari. [3] Bentuk Sudoku yang paling umum berukuran 9 x 9 kisi dan terbagi menjadi 3 x 3 kotak yang disebut subgrid. Secara tradisional, tujuan permainan ini adalah mengisi semua kotak kotak kecil dalam kolom, baris dan subgrid dengan angka satu sampai sembilan sedemikian sehingga dalam satu deret angka hanya muncul sekali saja demikian juga dalam satu kolom dan satu subgrid. Karena berhubungan dengan angka permainan ini terlihat lebih matematis. Contoh Sudoku dengan angka dapat dilihat dalam gambar 1 : [4] 2. Game Game adalah media untuk melakukan aktifitas bermain. Aktifitas bermain merupakan suatu aktifitas yang meliputi pemecahan masalah yang menjadi tantangan dari game tersebut, dengan mengikuti suatu aturan tertentu. [2] Penulis menyimpulkan bahwa game atau permainan biasanya dilakukan untuk kesenangan dan kadang kadang digunakan sebagai alat pendidikan. Untuk membuat sebuah game, terlebih dahulu pembuat game harus membuat deskripsi yang menceritakan game yang akan dibuat. Selain itu dibutuhkan juga design game yang sederhana untuk mempermudah pembuatan game. Dari design yang telah dibuat dapat diketahui semua elemen elemen yang dibutuhkan dalam pembuatan game, misalnya karakter user, karakter musuh, animasi serangan dan sebagainya. 2.1. Game Sudoku Sudoku modern diterbitkan pertama kali dalam Dell Magazine pada tahun 1979. Teka-teki ini dibuat oleh Howard Garns, seorang pensiunan arsitek dan perancang teka-teki dari Amerika Serikat. Meskipun, demikian, cikal bakal Sudoku sebenarnya telah muncul pada akhir abad ke-19 di Perancis. Pada bulan April 1984, teka-teki ini Gambar 1. Contoh Sudoku (a) dan Sudoku lengkap (telah diselesaikan) (b) 3. Penerapan Algoritma Genetika Perancangan aplikasi game Sudoku menggunakan Eclipse Galileo sebagai desain pengembang aplikasi. Eclipse memiliki sifat multi-platform (dapat dijalankan di semua platform), multi-language (mendukung pengembangan aplikasi beberapa bahasa pemrograman) dan multi-role (digunakan juga sebagai aktivitas dalam siklus pengambangan perangkat lunak), Sedangkan untuk platform yang digunakan pada aplikasi game Sudoku ialah platform Android 2.2 (Froyo) jenis yang merupakan generasi kedua dari Sistem Operasi Android. Aplikasi game yang akan dirancang hanya dapat dijalankan pada handphone yang memiliki sistem operasi android seperti : Samsung Galaxy Mini, Nexian Journey. Pada game logika ini, user harus menyusun angka 1 9 pada blok blok yang sudah disediakan. Blok blok tersebut disusun ke dalam 9 kotak lagi. Permainan selesai bila semua blok pada kotak telah terisi semua dengan angka 1 9. Tujuan permainan Sudoku adalah mengisi sel-sel yang kosong dengan angka antara 1 dan 9 (setiap 515

sel hanya 1 angka) sesuai dengan persyaratan yaitu angka hanya dapat muncul sekali dalam setiap baris, angka hanya dapat muncul sekali dalam setiap kolom dan angka hanya dapat muncul sekali dalam setiap area/kotak. 4.1. Solusi Puzzle Game Sudoku Ada dua proses yang dilakukan oleh perangkat lunak ini, yaitu pembangkitan (generate) puzzle Sudoku dan penyelesaiannya menggunakan Algoritma Genetika. Proses yang pertama adalah proses membuat puzzle Sudoku yang valid, yang artinya memiliki solusi. Pengguna permainan kemudian dapat melakukan permainan untuk menyelesaikan puzzle tersebut. Proses kedua adalah penyelesaian puzzle tersebut menggunakan Algoritma Genetika. Sebelum memasuki proses tersebut, terlebih dahulu dicari kandidat-kandidat solusi untuk masing-masing kotak puzzle. Hal ini bertujuan untuk mengeliminasi kandidat-kandidat solusi yang tidak mungkin. Contoh, jika suatu kotak telah terisi dengan angka 9, maka angka 9 tersebut dieliminasi dari kandidat pada kotak kotak di baris, kolom, dan region yang sama. Dengan langkah tersebut, diharapkan Algoritma Genetika akan memiliki konvergensi yang baik. Solusi dari suatu puzzle didapatkan jika suatu kromosom memiliki nilai fitness yang sempurna, karena kromosom dengan nilai fitness di bawah nilai fitness sempurna berarti bukan solusi dari puzzle Sudoku. Pada Algoritma Genetika, satu kromosom adalah satu kandidat solusi puzzle. Karena nilai yang mungkin pada solusi adalah antara 1 sampai dengan 9, maka representasi kromosom yang digunakan adalah deretan bilangan bulat (integer) dengan panjang kromosom sama dengan jumlah kotak yang kosong pada puzzle. Nilai fitness diambil dari panjang kromosom dikurangi dengan jumlah gen error. Gen error adalah gen yang berisi angka yang berulang pada baris, kolom, atau region. Metode seleksi yang digunakan adalah Roulette-Wheel. 4.2. Pembangkitan Puzzle Pembangkitan puzzle adalah proses pembuatan puzzle Sudoku yang valid. Puzzle sudoku direpresentasikan dengan array dua dimensi. Puzzle ini harus memenuhi aturan dalam permainan Sudoku, yaitu tidak boleh ada angka yang berulang pada baris, kolom, dan region. Puzzle ini kemudian dikosongkan beberapa kotaknya yang jumlahnya tergantung ada tingkat kesulitan permainan. Tekniknya, kandidat-kandidat pada setiap blok direpresentasikan dengan sebuah List. Pada kondisi awal, list tersebut berisi angka 1 hingga 9. Karena papan berukuran 9x9, penyimpanan sel sel tersebut dilakukan menggunakan array dua dimensi dengan ukuran 9x9. Kemudian looping dilakukan untuk semua sel tersebut, dari kiri ke kanan, atas ke bawah. Untuk masing-masing sel, diambil angka secara random dari kandidatkandidat yang tersedia untuk sel tersebut. Kemudian angka yang terpilih tersebut dihapuskan dari kandidat pada sel sel pada baris, kolom, dan region yang sama. Dengan teknik ini, satu puzzle Sudoku yang valid dapat dibangkitkan dalam waktu yang cukup cepat (< 1 detik). Adapun pseudocode untuk permasalahan di atas adalah : a. Lakukan langkah 2 hingga 9 selama tidak terjadi error. b. Buat array of list berukuran 9x9. c. Isi setiap list dengan angka 1 hingga 9. d. Lakukan langkah 5 hingga 9 untuk semua sel. e. Ambil satu angka dari kandidat secara acak. f. Hapus angka yang terpilih dari kandidat pada baris yang sama. g. Hapus angka yang terpilih dari kandidat pada kolom yang sama. h. Hapus angka yang terpilih dari kandidat pada region yang sama. i. Jika kandidat pada sel kosong, ulangi dari langkah 2 (terjadi error). j. Kosongkan secara random sejumlah sel sesuai dengan tingkat kesulitan. 4.3. Representasi Kromosom Kromosom adalah representasi solusi dari suatu masalah pada algoritma Genetika. Pada Sudoku, kromosom adalah representasi suatu solusi dari puzzle yang berisi angka-angka yang akan diisikan pada kotak-kotak yang kosong sehingga panjang kromosom adalah sama dengan jumlah kotak yang kosong pada puzzle. Nilai untuk masing-masing gen pada kromosom diambil secara acak dari kandidat-kandidat pada setiap sel. Kandidat nilai untuk setiap kromosom adalah angka 1 hingga 9. Pada pemrograman, kromosom direpresentasikan dengan array of integer (int[]). Bentuk kromosom dapat dilihat pada Gambar 2. 4 7 8 9 4 3 6 1 7 4 6 5 2 5 6 9 9 7 4 7 Gambar 2. Contoh Bentuk Kromosom 4.4. Eliminasi Kandidat Eliminasi kandidat dilakukan untuk menghilangkan kandidat-kandidat solusi yang tidak mungkin. Kandidat yang tidak mungkin adalah kandidat yang memiliki angka yang berulang pada baris, kolom, atau region yang 516

sama. Adapun pseduocode untuk permasalahan ini adalah : a. Lakukan langkah 2 hingga 8 untuk semua sel kosong. b. Buat list, isi dengan angka 1 hingga 9. c. Lakukan langkah 3 untuk sel-sel berisi pada baris yang sama. d. Hapus angka yang ditemui dari list. e. Lakukan langkah 6 untuk sel-sel berisi pada kolom yang sama. f. Hapus angka yang ditemui dari list. g. Lakukan langkah 8 untuk sel-sel berisi pada region yang sama. h. Hapus angka yang ditemui dari list. 4.5. Naked Single d Naked Single adalah salah satu teknik dalam penyelesaian puzzle Sudoku secara manual. Tujuan dari teknik ini adalah mencari sel-sel kosong yang hanya memiliki satu kandidat (kandidat tunggal) yang artinya sel tersebut hanya mungkin diisikan dengan angka tersebut. Teknik ini biasanya dilakukan dengan menuliskan kandidat-kandidat setiap sel secara manual. Teknik ini merupakan langkah awal dalam penyelesaian karena teknik ini adalah teknik yang paling sederhana. Pada perangkat lunak ini, pencarian dilakukan dengan memanfaatkan hasil dari eliminasi kandidat. Selsel dengan kandidat tunggal akan diisi langsung dengan nilai kandidat tunggal tersebut. Adapun pseudocode dari langkah di atas adalah : a. Lakukan langkah 2 hingga untuk semua sel kosong. b. Hitung jumlah kandidat. c. Jika jumlah kandidat sama dengan 1, isi sel dengan kandidat tersebut d. Jika tidak, maka sel tersebut tidak dalam kondisi Naked Single. 4.6. Fungsi Fitness Untuk menghitung nilai fitness masing masing kromosom, terlebih dahulu dihitung jumlah angka yang berulang pada baris, kolom, dan region pada puzzle setelah angka-angka pada kromosom diisikan pada kotak-kotak yang kosong pada puzzle. Fungsi fitness yang digunakan cukup sederhana, yaitu adalah pengurangan panjang kromosom dengan jumlah angka yang berulang sehingga kromosom yang merupakan solusi puzzle adalah kromosom yang mempunyai nilai fitness sebesar panjang kromosom. Contoh perhitungan untuk puzzle pada Gambar 3 di bawah ini : Gambar 3. Contoh Puzzle Sudoku Jika diisikan kromosom, maka akan terbentuk seperti pada Gambar 4 : Gambar 4. Contoh Kromosom Puzzle Sudoku Maka akan didapatkan hasil pada Gambar 5 di bawah ini : Gambar 5. Kotak Kotak yang Error pada Puzzle Angka berwarna merah adalah se-sel yang error. Maka nilai fitness untuk kromosom tersebut adalah : Fitness = panjang kromosom jumlah error = 20 7 = 14 Solusi dari suatu puzzle Sudoku adalah kromosom dengan nilai fitness sempurna, yaitu sebanyak jumlah kotak yang kosong. 4.7. Seleksi Metode seleksi yang digunakan adalah metode Roulette-Wheel yang membuat kromosom-kromosom dengan nilai fitness tinggi memiliki kemungkinan terpilih yang tinggi pula. Probabilitas keterpilihan setiap kromosom ditentukan dengan cara membagi nilai fitness kromosom tersebut dengan total nilai fitness. Untuk itu, yang terlebih dahulu harus dihitung adalah total nilai fitness. Kemudian dilakukan pembagian masing-masing nilai fitness dengan total fitness tersebut. Nilai tersebut adalah probabilitas setiap kromosom yang berkisar antara nol dan satu. 517

Kemudian pada proses pemutaran roda roulette, teknisnya juga sederhana. Suatu bilangan acak dibangkitkan, dengan jangkauan nilai antara nol dan satu. Nilai acak tersebut kemudian dibandingkan dengan nilai probabilitas masingmasing kromosom. Pembandingan dilakukan dari kromosom yang terkecil. Kromosom yang memiliki nilai fitness yang lebih besar atau sama dengan nilai acak akan menjadi individu yang terpilih. Tabel 1. Contoh Probabilitas Seleksi untuk Setiap Kromosom Gambar 7. Mutasi Single Point Adapun flow chart Algoritma Genetika pada aplikasi ini terlihat pada Gambar 8 berikut : 4.8. Elitisme Elitisme dilakukan untuk mempertahankan individu terbaik karena ada kemungkinan bahwa individu terbaik itu tidak terpilih pada proses seleksi. Jika itu terjadi, maka bisa saja Algoritma Genetika kehilangan konvergensinya. Implementasi mekanisme elitisme pada pemrograman cukup sederhana yaitu pilih dua individu dengan nilai fitness tertinggi. 4.9. Pindah Silang (Crossover) Metode pindah silang yang digunakan adalah pindah silang dengan satu titik. Pertukaran gen kemudian dilakukan pada kedua kromosom mulai titik gen tertentu sampai akhir kromosom seperti Gambar 6 di bawah ini. 4.10. Mutasi Gambar 6. Crossover Single Point Mutasi dilakukan satu titik, yaitu dengan mengganti nilai pada gen tertentu dengan nilai yang lain yang mungkin diisikan pada kotak yang bersesuaian. Mutasi Single Point dapat dilihat pada Gambar 7. Gambar 8. Flowchart Algoritma Genetika 4. Eksperimen dan Pembahasan Setelah perencanaan dan pembuatan sistem, maka langkah selanjutnya yaitu melakukan pengujian terhadap sistem yang telah dibuat. Pengujian dilakukan untuk mengetahui apakah sistem yang dibangun dapat dijalankan sesuai dengan yang diinginkan. Pada bab ini, pengujian difokuskan pada implementasi Algoritma Genetika untuk menyelesaikan suatu puzzle. 518

Puzzle yang digunakan untuk percobaan adalah puzzle dengan tingkat kesulitan Sulit (55 kotak kosong). Puzzle ini disimpan ke dalam file dan di-load pada setiap percobaan. Percobaan yang dilakukan adalah dengan mengubah-ubah konfigurasi Algoritma Genetika, yaitu jumlah individu, generasi maksimum, crossover rate, jumlah titik crossover, dan mutation rate. Untuk setiap konfigurasi, dilakukan 10 percobaan dan diambil nilai rata-ratanya. Hal ini dilakukan karena Algoritma Genetika memberikan hasil yang berbeda-beda untuk konfigurasi yang sama. Percobaan ini dilakukan untuk mencari batas maksimum generasi yang optimal. Pada proses evolusi, jika jumlah generasi telah mencapai batas maksimum, maka populasi akan diinisialisasi kembali dan proses evolusi diulang dari awal. Hal ini bertujuan untuk menghindari proses evolusi yang stagnan, yang artinya tidak ada peningkatan nilai fitness pada populasi. Grafik yang ditampulkan pada Gambar 9 di bawah ini adalah grafik nilai rata-rata dari percobaan tersebut. Gambar 9. Grafik Pengaruh Jumlah Generasi Maksimum terhadap Waktu Evolusi Grafik di atas menunjukkan pengaruh jumlah generasi maksimum pada waktu evolusi. Penambahan jumlah generasi maksimum dapat menurunkan performa Algoritma Genetika. Hal itu membawa kepada analisa yang lain, seperti ditunjukkan oleh grafik pada Gambar 10 berikut. inisialisasi populasi baru dapat membawa kepada solusi dengan lebih cepat. Dan penambahan jumlah generasi maksimum berarti memperpanjang stagnasi dan akan membuang waktu. Percobaan jumlah kromosom dilakukan dengan menambah jumlah kromosom untuk dilihat pengaruh pada performa Algoritma Genetika. Hasil percobaan digambarkan pada grafik berikut. Gambar 11. Grafik Pengaruh Jumlah Kromosom terhadap Waktu Evolusi Grafik di atas menunjukkan pengaruh jumlah kromosom dalam populasi terhadap waktu evolusi. Penambahan jumlah kromosom akan menurunkan waktu yang dibutuhkan oleh Algoritma Genetika untuk mencapai solusi. Hal ini karena jumlah kromosom yang semakin banyak akan memperkaya populasi akan variasi yang membawa kepada solusi. Namun begitu, grafik menunjukkan penurunan waktu yang tidak signifikan dari jumlah kromosom 20 hingga 40. Ini disebabkan karena semakin banyak kromosom pada populasi berarti semakin banyak operasioperasi seleksi, crossover, dan mutasi yang harus dilakukan, dan itu menambah waktu evolusi. Percobaan crossover rate dilakukan untuk melihat pengaruh probabilitas crossover pada waktu evolusi Algoritma Genetika. Hasil percobaan digambarkan pada grafik berikut. Gambar 12. Pengaruh Crossover Rate terhadap Waktu Evolusi Gambar 10. Stagnasi pada Proses Evolusi Grafik di atas menunjukkan peningkatan nilai fitness pada proses evolusi suatu populasi. Grafik tersebut juga menggambarkan nilai fitness yang tidak meningkat hingga generasi ke-2000. Ada kemungkinan nilai fitness tersebut akan meningkat pada generasi-generasi selanjutnya, namun akan lebih baik jika dilakukan inisialisasi populasi dari awal. Hal ini disebabkan karena Grafik di atas menunjukkan pengaruh crossover rate atau probabilitas crossover terhadap waktu evolusi. Pada grafik tersebut ada penurunan performa Algoritma Genetika yang sebanding dengan penambahan crossover rate. Percobaan mutation rate dilakukan untuk mengetahui pengaruhnya terhadap waktu evolusi. Hasil percobaan digambarkan pada grafik berikut : 519

Gambar 13. Grafik Pengaruh Mutation Rate terhadap Waktu Evolusi Grafik di atas menunjukkan pengaruh mutation rate atau probabilitas mutasi terhadap waktu evolusi. Pada grafik tersebut terjadi penurunan performa Algoritma Genetika yang sebanding dengan penambahan mutation rate. Hal ini disebabkan karena mutasi dibutuhkan terusmenerus untuk mencapai solusi. Menaikkan mutation rate berarti memperbanyak proses mutasi yang terjadi sehingga solusi akan lebih cepat tercapai. 5. Implementasi Implementasi dilakukan pada emulator eclipse Galileo dengan versi 2.2 ke atas. Adapun tampilan permainan Sudoku berbasis android seperti Gambar 14 di bawah ini : Gambar 14. Tampilan Awal Aplikasi Gambar 15. Tampilan Tingkat Kesulitan Aplikasi Gambar 16. Tampilan Permainan Puzzle Sudoku Aplikasi ini dibuat dengan bahasa pemograman Eclipse for Java Developers dapat dijalankan dengan komputer yang berbasiskan windows ataupun handphone android. 6. Kesimpulan Berdasarkan hasil pengujian dan analisa yang telah dibahas pada bab sebelumnya, maka dapat dibuat beberapa kesimpulan sebagai berikut: a. Dalam proses evolusi menuju nilai fitness yang sempurna, seringkali terjadi stagnasi yang membuang waktu dan menyebabkan waktu evolusi menjadi panjang. Pengulangan proses evolusi dari awal (inisialisasi populasi) dapat memperbaiki waktu evolusi. b. Inisialisasi populasi di awal proses evolusi sangat menentukan konvergensi proses evolusi. c. Penambahan jumlah kromosom dalam populasi dapat meningkatkan performa algoritma namun tidak signifikan karena membutuhkan komputasi yang lebih tinggi. d. Peningkatan crossover rate dan mutation rate dapat meningkatkan konvergensi. Daftar Pustaka: [1] Kusumadewi, Sri, 2009, Artificial Intelligence, Graha Ilmu, Yogyakarta. [2] Dadang Sudrajat, 2010, Perancangan Aplikasi Game Aritmatika pada Handphone untuk Melatih Kemampuan Berhitung Kelas 1 dan 2 Sekolah Dasar Negeri II Ciperna Kabupaten Cirebon, Sekolah Tinggi Manajemen Informatika dan Komputer IKMI, Cirebon. [3] Katharina Candra Puspita, 2011, Implementasi Algoritma Backtracking Dengan Optimasi Menggunakan Teknik Hidden Single Pada Penyelesaian Permainan Sudoku, Jurnal Teknik Informatika, Institut Teknologi Bandung, Bandung. [4] Sukisman Purtadi, 2011, Menggali Nilai 520

Edukasi Sudoku Kimia, Prosiding Seminar Nasional Kimia dan Pendidikan Kimia, Yogyakarta. [5] Bhakti Yudho Suprapto, 2012, Metode Algoritma Genetika dengan Sistem Fuzzy Logic untuk Penentuan Parameter Pengendali PID, Jurnal Rekayasa Elektrika Vol. 10, No. 1, Palembang. [6] Nora Azmi, 2013, Penjadwalan Pesanan Menggunakan Algoritma Genetika untuk Tipe Produksi Hybrid And Flexible Flowshop pada Industri Kemasan Karton, Jurnal Teknik Industri, Bogor. 521