• Tidak ada hasil yang ditemukan

ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE"

Copied!
70
0
0

Teks penuh

(1)

ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE

THESIS

HERIMANTO 197038015

PROGRAM STUDI MAGISTER TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA 2021

(2)

ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika

HERIMANTO 197038015

PROGRAM STUDI MAGISTER TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA 2021

(3)

i

(4)

ii

PERNYATAAN

ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE

TESIS

Saya mengakui bahwa tesis ini adalah karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 28 Juli 2021

Herimanto 197038015

(5)

iii

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini:

Nama : Herimanto

NIM : 197038015

Program Studi : Magister Teknik Informatika Jenis Karya Ilmiah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non – Exclusive Royalti Free Right) atas tesis saya yang berjudul:

ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non - Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemilik hak cipta.

Demikian pernyataan ini dibuat dengan sebenarnya.

Medan, 28 Juli 2021

Herimanto 197038015

(6)

iv

Telah diuji pada Tanggal: 28 Juli 2021

PANITIA PENGUJI TESIS

Ketua : Prof. Dr. Muhammad Zarlis, M.Sc.

Anggota : 1. Dr. Syahril Efendi, S.Si., M.IT.

2. Prof. Dr. Tulus Vor.Dipl.Math., M.Si 3. Prof. Dr. Herman Mawengkang

(7)

v

RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap : Herimanto

Tempat, Tgl Lahir : Sungai Bakau, 24 Juni 1993

Alamat Rumah : Jl. Utama, Desa Sei. Bakau, Kecamatan Sinaboi, Kab. Rohil Telepon / Hp : 0852 6512 4310

Email : pardzheri@gmail.com

DATA PENDIDIKAN

SD : SD Negeri 003 Sinaboi (1999 s/d 2005) SLTP : SMP Negeri 3 Bangko (2005 s/d 2008) SLTA : SMA Negeri 1 Bangko (2008 s/d 2011) D3 : Politeknik Negeri Medan (2011 s/d 2014)

S1 : Ilmu Komputer, Universitas Sumatera Utara (2014 s/d 2017) S2 : Teknik Informatika, Universitas Sumatera Utara (2019 s/d 2021)

DATA PEKERJAAN

Teknisi Komputer : Politeknik Negeri Medan (2017 s/d Sekarang )

(8)

vi

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada Tuhan Yesus Kristus yang telah melimpahkan segala berkat rahmat dan kasih karunia-Nya sehingga penulis dapat menyelesaikan tesis yang bejudul “Analisis Kinerja Algoritma Genetika Pada Persoalan NP-Complete” ini dengan baik.

Tesis ini adalah salah satu bahan pertimbangan dalam penentuan kelulusan dan sebagai syarat untuk menyelesaikan pendidikan Magister pada Program Studi Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih yang tulus kepada semua pihak yang telah memberikan bimbingan dan bantuan di dalam menyelesaikan penelitian ini, yaitu:

1. Bapak Dr. Muryanto Amin, S. Sos, M. Si. selaku Rektor Universitas Sumatera Utara.

2. Ibu Dr. Maya Silvi Lidya, B. Sc., M. Sc. selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Prof. Dr. Muhammad Zarlis, M.Sc. dan Dr. Syahril Efendi, M.IT, selaku Ketua dan Sekretaris Program Studi S2-Teknik Infomatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara

4. Bapak Prof. Dr. Muhammad Zarlis, M.Sc. selaku Dosen Pembimbing I yang telah memberikan ilmu, bimbingan, saran dan masukan kepada penulis dalam penyempurnaan tesis ini.

5. Bapak Dr. Syahril Efendi, M.IT, selaku Dosen Pembimbing II yang juga telah memberikan masukan dan saran yang baik kepada penulis dalam penulisan tesis ini.

6. Bapak Prof. Dr. Tulus Vor.Dipl.Math., M.Si selaku Dosen Pembanding I yang telah memberikan waktu serta kritik dan saran yang baik bagi penulis dalam penelitian ini.

(9)

vii

7. Bapak Prof. Dr. Herman Mawengkang selaku Dosen Pembanding II yang juga telah memberikan waktu dan segala saran yang baik bagi penulis dalam penulisan tesis ini.

8. Seluruh staf pengajar dan pegawai Fakultas Ilmu Komputer dan Teknologi Informasi.

9. Kepada kedua orang tua tercinta, Bapak Gideon. B. Pardede, dan Ibu N. Br.

Pasaribu, karena telah menjadi kekuatan dan semangat bagi penulis setiap hari. Terima kasih juga untuk setiap doa dan dukungannya baik secara moril juga materil dalam pendidikan penulis khususnya pada proses penyusunan tesis ini.

10. Kapada saudara penulis: abang Gembira, kak Erna, kak Juli, kak Lidya, dan kak Lisken, yang selalu memberikan semangat dan dukungan bagi penulis.

11. Dan semua pihak yang telah membantu penulis baik secara langsung atau pun tidak langsung.

Penulis menyadari sepenuhnya bahwa sebagai manusia biasa tentunya tidak luput dari kekurangan dan keterbatasan, demikian juga halnya dengan penelitian ini.

Maka dengan segala kerendahan hati penulis mengharapkan saran dan kritik yang dapat menyempurnakan penulisan ini sehingga dapat bermanfaat dan berguna untuk pengembangan ilmu pengetahuan kedepannya.

Akhirnya, besar harapan penulis semoga laporan tugas akhir ini dapat memberikan manfaat dan sumbangan bagi kemajuan dan perkembangan ilmu pengetahuan terutama dalam bidang ilmu komputer.

(10)

viii

ABSTRAK

NP-Complete problem adalah salah satu persoalan sulit dalam bidang strategi algoritma namun juga menarik. Permasalahan Non-Deterministic Polynomial Complete Problem dikatakan menarik dan sulit karena hingga saat ini telah banyak penelitian yang membahas dan mengangkat topik ini namun belum ada satupun yang dapat menemukan algoritma terbaik untuk kasus tersebut dari segi analisis algoritma.

Salah satu topik yang dapat merepresentasikan kasus NP-Complete adalah permainan angka sudoku. Permainan ini sebenarnya cukup sedarhana, yaitu memasukkan suatu simbol tertentu kedalam sebuah puzzle berisi 9x9 kotak. Namun dalam memasukkan angka maupun simbol harus memperhatikan beberapa aturan penting dalam permainan sudoku, yaitu tidak boleh ada angka/simbol berulang dalam setiap baris, kolom dan blok/region sudoku. Hal in menjadikan permainan angka sudoku menjadi sulit dan tergolong kedalam permasalahan NP-Complete. Salah satu metode heuristik yaitu genetika dapat diterapkan dalam menyelesaikan persoalan sudoku. Pada penelitian ini akan dikenalkan sebuah strategi khusus dalam implementasi algoritma genetika pada persoalan NP-Complete yaitu dengan melakukan optimasi pada proses pembentukan populasi. Dari hasil pengujian didapat penerapan optimasi pada algoritma genetika menghasilkan waktu komputasi dan jumlah data yang lebih kecil dibandingkan dengan algoritma genetika tanpa optimasi.

Kata kunci: NP-Complete, Heuristik, Genetika

(11)

ix

ANALYSIS PERFORMANCE OF GENETIC ALGORITHM ON NP-COMPLETE PROBLEMS

ABSTRACT

NP-Complete problem is one of the difficult problems in algorithmic strategy, but also interesting. The Non-Deterministic Polynomial Complete Problem is interesting and difficult because until now there are so many studies that discussed and raised this topic but no one has been able to find the best algorithm for this case in terms of algorithm analysis. One of the topics that can represent the NP-Complete case is the number game sudoku. This game is actually simple, which is to enter a certain symbol into a puzzle containing 9x9 squares. However, in entering numbers and symbols, you must pay attention to some important rules in the game of sudoku, namely that there should be no repeated numbers/symbols in every row, column and block/region of sudoku. This makes sudoku numbers difficult and is classified as an NP-Complete problem. One of the heuristic methods, namely genetics, can be applied in solving sudoku problems. In this study, a special strategy for implementing genetic algorithms on the NP-Complete problem will be introduced, namely by optimizing the population formation process. From the test results, it is found that the application of optimization to the genetic algorithm results in a smaller computation time and amount of data than the genetic algorithm without optimization.

Keywords: NP-Complete, Heuristic, Genetic

(12)

x

DAFTAR ISI

HALAMAN JUDUL

PERSETUJUAN i

PERNYATAAN ORISINALITAS ii

PERSETUJUAN PUBLIKASI iii

PANITIA PENGUJI iv

RIWAYAT HIDUP v

PENGHARGAAN vi

ABSTRAK viii

ABSTRACT ix

DAFTAR ISI x

DAFTAR TABEL xii

DAFTAR GAMBAR xiii

BAB 1 PENDAHULUAN

1.1. Latar Belakang 1

1.2. Rumusan Masalah 3

1.3. Batasan Masalah 3

1.4. Tujuan Penelitian 4

1.5. Manfaat Penelitian 4

BAB 2 TINJAUAN PUSTAKA

2.1. NP-Complete Problem 5

2.2. Algoritma Genetika 6

2.2.1. Properti Umum Algoritma Genetika 7

2.2.2. Siklus Evolusi Algorima Genetika 7

2.3. Permainan Sudoku 10

2.4. Kecerdasan Buatan Dalam Permainan 11

2.5. Penelitian Terkait 12

(13)

xi

BAB 3 METODOLOGI

3.1. Data Yang Digunakan 15

3.2. Proses Pengolahan Data 15

3.2.1. Proses Pembentukan Populasi 16

3.2.2. Menghitung Nilai Fitnes 17

3.2.3. Seleksi 17

3.2.4. Crossover 18

3.2.5. Mutasi 18

3.3. Analisis Proses 18

3.3.1. Flowhart Penelitian 18

3.3.2. Flowchart Algoritma Genetika Konvensional 20 3.3.3. Flowchart Algoritma Genetika Dengan Optimasi 23

BAB 4 HASIL DAN PEMBAHASAN

4.1. Persiapan Awal 26

4.2. Implementasi Algoritma Genetika 27

4.2.1. Implementasi Algoritma Genetika Konvensional 27 4.2.2. Implementasi Algoritma Genetika Dengan Optimasi 39

4.3. Pembahasan 46

4.3.1. Hasil Perbandingan 46

BAB 5 KESIMPULAN

5.1. Kesimpulan 48

5.2. Saran 48

DAFTAR PUSTAKA 50

(14)

xii

DAFTAR TABEL

Tabel 3.1. Proses Pembentukan Populasi 17

Tabel 4.1. Nilai Fitness 30

Tabel 4.2. Nilai Fitness Yang Baru 32

Tabel 4.3. Nilai Fitness Akhir 36

Tabel 4.4. Data Pengujian Algoritma Genetika Konvensional 37

Tabel 4.5. Pengujian Waktu Komputasi 38

Tabel 4.6. Proses Pembentukan Populasi Dengan Optimasi 40

Tabel 4.7 Nilai Fitness 41

Tabel 4.8. Nilai Fitness Baru 44

Tabel 4.9. Data Waktu Pengujian Dengan Optimasi 45

Tabel 4.10. Perbandingan Data Uji 46

Tabel 4.11. Waktu Pengujian Kedua Metode 47

(15)

xiii

DAFTAR GAMBAR

Gambar 2.1. Arsitektur Umum Algoritma Genetika 8

Gambar 2.2. Contoh Crossover 8

Gambar 2.3. Contoh Offspring 9

Gambar 2.4. Hasil Crossover 9

Gambar 2.5. Contoh Mutasi 9

Gambar 2.6. Puzzle Sudoku Awal 10

Gambar 2.7. Puzzle Sudoku Lengkap 11

Gambar 3.1. Data Yang Digunakan 15

Gambar 3.2. Proses Pembentukan Populasi 16

Gambar 3.3. Contoh Populasi 17

Gambar 3.4. Flowchart Penelitian 19

Gambar 3.5. Flowchart Algoritma Genetika Konvensional 21 Gambar 3.6. Flowchart Algoritma Genetika Dengan Optimasi 24

Gambar 4.1. Puzzle Sudoku 26

Gambar 4.2. Populasi Awal 28

Gambar 4.3. Proses Mengisi Puzzle 29

Gambar 4.4. Puzzle Yang Sudah Terisi 29

Gambar 4.5. Menghitung Nilai Fitness 30

Gambar 4.6. Populasi Baru 31

Gambar 4.7. Crossover Point 33

Gambar 4.8. Hasil Crossover 34

Gambar 4.9. Proses Mutasi 35

Gambar 4.10. Hasil Mutasi 35

Gambar 4.11. Puzzle Yang Terisi Kromosom Dengan Fitness Tertinggi 37 Gambar 4.12. Grafik Data Pengujian Genetika Konvensional 38 Gambar 4.13. Proses Pembentukan Populasi Dengan Optimasi 39

Gambar 4.14. Populasi Awal 40

Gambar 4.15. Mencari Nilai Fitness 41

Gambar 4.16. Perbandingan Nilai Fitness Terbaik 42

Gambar 4.17. Populasi Baru 42

(16)

xiv

Gambar 4.18. Crossover Point 43

Gambar 4.19. Populasi Hasil Crossover 43

Gambar 4.20. Proses Mutasi 43

Gambar 4.21. Hasil Mutasi 44

Gambar 4.22 Puzzle Akhir 45

Gambar 4.23. Grafik Perbandingan Data Uji 46

(17)

1

BAB 1 PENDAHULUAN

1.1. Latar Belakang

Ilmu komputer merupakan bidang ilmu sangat kompleks dewasa ini. Menurut Ema Utami dalam artikel jurnal yang berjudul “Metodologi Penelitian Pada Ilmu Komputer” di Seminar Nasional Teknologi 2007 (SNT 2007) Ilmu Komputer merupakan area baru dengan obyek investigasi berkonsekuensi membutuhkan banyak konsep dari banyak bidang ilmu lainnya, ilmu komputer mengintegrasikan teori dan praktek, abstraksi (umum) dan desain (khusus) science klasik dimana setiap bidang memiliki bidang tersendiri.

Salah satu yang cukup menarik dalam bidang ilmu komputer adalah kasus- kasus dalam penelitian bidang ilmu ini sangat banyak. Kurang lebih ada 14 area penelitian dalam bidang ini. Salah satu di antaranya adalah kasus dalam strategi algoritma yaitu Non-Deterministic Polynomial Complete Problem atau yang biasa dikenal dengan NP-Complete. Kasus ini menjadi sangat hangat karena sudah banyak penelitian yang mangangkat topik tersebut, dan sudah banyak peneliti yang mengajukan metode penyelesaian namun sejauh ini belum menemukan hasil yang cukup optimal. (Utami, 2007)

Secara singkat NP-Complete problem adalah sebuah persoalan yang tidak memiliki algoritma efesien untuk menyelesaikannya. Menurut Kanneth dalam jurnal artikel Proceedings Of the Third International Confference On Genetic Algorihms yang berjudul “Using Genetic Algorithms to Solve NP Complete Problems”, Kanneth secara terbuka mengakui jika masalah NP-Complete memang merupakan masalah yang sulit dan rumit untuk dipecahkan dalam strategi algoritmik. Masalah NP- Complete dianggap "sulit" dalam arti bahwa permasalahan ini tidak dapat diselesaikan dalam waktu yang polinomial. (Kanneth, 1998)

Contoh kasus dalam NP-Complete seperti graph coloring problem, n-puzzle, Knapsack problem, Subgraph isomorphism problem (Munir, 2018), dan masih banyak lagi. Salah satu contoh yang tepat merepresentasikan kasus NP-Complete adalah permaianan angka sudoku. Permainan puzzle ini cukup rumit dan merupakan salah satu game dalam kecerdasan buatan karena untuk menemukan solusi bilangan yang

(18)

akan dimasukkan kedalam matriks sudoku tidak bisa hanya dengan perhitungan matematis atau rumus tertentu. Perlu adanya strategi khusus dan algoritma mangkus untuk mencari solusi dalam kasus puzzle sudoku.

Untuk mengatasi kasus sudoku yang merupakan permasalahan NP-Complete, dibutuhkan algoritma yang tepat. Beberapa algoritma sejauh ini sudah banyak diterapkan dalam menemukan solusi terbaik seperti algoritma brute force, backtracking, ant colony optimization hingga algoritma genetika. Pada algoritma genetika terdapat kelebihan yang membedakan dengan metode optimasi lainnya yaitu algoritma ini dapat melakukan optimasi dengan masalah yang kompleks dan ruang pencarian yang sangat luas, sehingga cocok untuk permasalahan-permasalahan rumit seperti NP-Complete.

Dalam jurnalnya Kanneth menemukan bahwa masalah pada NP-Complete terbagi atas berbagai jenis dan beberapa diantaranya dapat diselesaikan dengan mudah oleh algoritma genetika. Selain itu Kanneth menemukan jika masalah NP-Complete ini juga dapat diselesaikan dalam waktu yang polinomial dengan cara menggunakan pendekatan yang lebih efektif, yaitu mengubah masalah NP-Complete kedalam masalah yang canonical. Kunci dari metode penyelesaian ini adalah dengan cara memetakan masalah NP-Complete kedalam Boolean Satisfiability Problem (SAT) terlebih dahulu. (Kanneth, 1998)

Meskipun demikian algoritma genetika bukan tanpa kekurangan. Menurut Afriyudi dalam jurnal yang dimuat dalam Prosiding SNASTI 2008 berjudul

“Penyelesaian Puzzle Sudoku menggunakan Algoritma Genetik” bahwa penggunaan algoritma genetika untuk menyelesaikan permasalahan puzzle sudoku memerlukan generasi yang sangat lama untuk sampai menemukan solusi yang tepat. Hal ini dikarenakan dalam proses pembentukan populasi pada algoritma genetika belum menerapkan batasan atau optimasi, sehingga angka yang mungkin untuk setiap puzzle sudoku harus melalui ribuan kemungkinan dan hal ini tentunya memerlukan waktu proses yang cukup lama.

Pada penelitian ini penulis menawarkan metode genetika dengan batasan dimana pada setiap proses pembentukan populasi menerapkan metode heuristik, yaitu bilangan yang sudah ada pada setiap baris, kolom dan blok otomatis di eliminasi sejak langkah awal dan tidak dimasukkan ke dalam kandidat populasi. Dengan metode optimasi ini diharapkan pada proses-proses berikutnya seperti pembentukan

(19)

3

kromosom, seleksi, crossover hingga mutasi bilangan yang akan di proses semakin sedikit sehingga dapat meminimalisasi jumlah generasi dan memperkecil waktu komputasi. Dan dari pemaparan latar belakang diatas penulis tertarik membahas penelitian yang berjudul “Analisis Kinerja Algoritma Genetika Pada Persoalan Np- Complete”

1.2. Rumusan Masalah

Banyaknya jumlah proses yang diperlukan oleh algoritma genetika pada persoalan NP-Complete dalam menemukan solusi puzzle sudoku sehingga dibutuhkan suatu metode yang dapat mengoptimasi dan meminimalisir jumlah proses dan waktu komputasi pada algoritma genetika.

1.3. Batasan Masalah

a. Analisis kinerja algoritma genetika ini dibuat pada persoalan NP-Complete yaitu permainan angka sudoku.

b. Populasi pada algoritma genetika adalah sederetan bilangan yang terdiri dari angka 1 s/d 9 yang dipilih secara acak.

c. Pada proses seleksi, metode yang digunakan adalah roullete wheel, dimana individu/ kromosom dengan nilai fitness yang besar akan dipertahankan dan individu/ kromosom dengan nilai fitness kecil akan di buang.

d. Proses pindah silang algoritma genetika pada penelitian ini menggunakan one point crossover, dan probability crossover (pc) sebesar 25% dari jumlah kromosom.

e. Proses mutasi menggunakan probability mutation (pm) sebesar 10% dari jumlah gen.

f. Puzzle sudoku yang digunakan adalah ukuran standard 9 x 9 kotak.

g. Analisis algoritma genetika pada penelitian ini diterapkan pada puzzle sudoku yang sudah memiliki penyelesaian awal (bukan puzzle kosong).

h. Penyelesaian awal yang terbentuk di dapat dari permainan sudoku pada penelitian yang dilakukan (Herimanto, 2017).

i. Bilangan awal puzzle sudoku terdiri dari 36 puzzle yang sudah terisi, dan masing-masing baris, kolom hingga blok (3x3) telah terisi minimal 1.

(20)

1.4. Tujuan Penelitian

Tujuan dari penelitian ini antara lain adalah sebagai berikut:

a. Mengimplementasikan algoritma genetika pada persoalan NP-Complete yaitu permainan angka sudoku.

b. Menganalisa kinerja algoritma genetika secara konvensional dan dengan menggunakan optimasi/ batasan.

c. Melakukan optimasi pada algoritma genetika dengan menerapakan teknik heuristik pada proses pembentukan populasi.

1.5. Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah sebagai berikut:

a. Manfaat bagi penulis

Mendapatkan pengetahuan dan wawasan mengenai strategi algoritma khususnya pada penerapan dan optimasi algoritma genetika dalam kasus NP-Complete.

b. Manfaat bagi umum

Dapat menjadi sarana pengetahuan umum dalam bidang strategi algoritma dan menjadi bahan rujukan serta sumber referensi dalam melakukan penelitian terkait di masa yang akan datang.

(21)

5

BAB 2

TINJAUAN PUSTAKA

Pada penelitian ini penulis melakukan studi pustaka dan merujuk beberapa tulisan baik buku cetak, e-book, jurnal dan artikel ilmiah serta tulisan-tulisan yang berkaitan dengan penelitian yang penulis lakukan demi mendukung teori dan gagasan yang penulis muat. Adapun tinjauan pustaka tersebut penulis himpun sebagai berikut:

2.1. NP-Complete Problem

NP-Complete Problem merupakan sebuah permasalahan tersulit dan menarik dalam strategi algoritma. Permasalahan ini sudah banyak diangkat menjadi topik dalam penelitian baik dalam menemukan algoritma terbaik untuk memecahkan nya maupun melakukan perbandingan beberapa algoritma. NP-Complete Problem atau dikenal dengan Non-Deterministik Polynomial Problem adalah persoalan yang tidak dapat dibuktikan dengan hitungan matematis atau hitungan pasti saja. Perlu adanya algoritma khsusus untuk memecahkan masalah ini sehingga dibutuhkan ketelitian dan algoritma yang benar-benar mangkus. (Munir, 2006)

Menurut Munir (2006), suatu permasalahan (misal: X) dapat digolongkan kedalam NP-Complete Problem adalah jika:

1) X termasuk ke dalam kelas NP (Non-Polymonial)

2) Setiap persoalan di dalam NP dapat direduksi dalam waktu polinom menjadi X

Dari logika diatas dapat disimpulkan bahwa cara untuk membuktikan sebuah masalah X adalah NP-Complete Problem adalah dengan menemukan sebuah metode sederhana (sebuah algoritma dalam waktu polinomial) untuk mentransformasikan masalah yang sudah dikenal NP-Complete Problem menjadi masalah X tersebut.

Sehingga untuk menunjukkan bahwa suatu permasalahan X adalah NP- Complete Problem yaitu:

1) Buktikan bahwa masalah X adalah anggota NP 2) Pilih instance, Y, dari sembarang persoalan NPC.

(22)

3) Temukan sebuah algoritma baru dalam waktu polinomial untuk mentransformasikan (mereduksi) Y menjadi instance persoalan X

2.2. Algoritma Genetika

Algoritma Genetika (Genetic Algorithm) adalah suatu algoritma pencarian yang digunakan dalam komputasi untuk mencari penyelesaian-penyelesaian eksak atau aproksimasi terhadap masalah-masalah optimisasi dan pencarian. Algoritma genetika dikategorikan sebagai global search heuristics. Algoritma genetika adalah satu kelas khusus dari evolutionary algorithms (EA) yang menggunakan teknik yang terinspirasi oleh evolutionary biology misalnya seperti inheritance, mutation, selection, and crossover (disebut juga recombination). (Mitchell, 1999)

Algoritma genetika adalah meta-heuristics stochastic yang menirukan beberapa fitur evolusi alam, atau dalam pengertian lain menirukan proses evolusi dan ide tentang survival of the fittest. Bermula dengan sebuah populasi penyelesaian yang dibentuk (generate) secara acak individu-individu yang lebih baik adalah lebih mungkin terpilih untuk di kombinasikan ulang ke dalam penyelesaian baru. Semakin fit suatu penyelesaian, semakin mungkin meneruskan informasinya ke generasi penyelesaian berikutnya. Selain mengkombinasi ulang penyelesaian, penyelesaian baru dapat dibentuk dengan memutasikan atau menukar penyelesaian lama secara acak. Sebagian penyelesaian terbaik dari tiap-tiap generasi disimpan sementara yang lainnya digantikan oleh penyelesaian yang baru terbentuk. Proses ini diulangi hingga dipenuhi kriteria berhenti. (Mitchell, 1999)

Dalam setiap generasi, fitness dari setiap individu dalam populasi itu dievaluasi, beberapa individu dipilih secara stokastik dari populasi saat ini (berdasarkan fitness mereka), dan dimodifikasi (di-rekombinasi dan mungkin dimutasikan secara acak) untuk membentuk sebuah populasi baru. Populasi baru itu kemudian digunakan dalam iterasi berikut pada algoritma. Umumnya, algoritma berhenti apabila telah dihasilkan sejumlah maksimum generasi, atau telah dicapainya suatu level fitness untuk populasi tersebut. Apabila algoritma telah berhenti karena tercapainya sejumlah maksimum generasi, penyelesaian yang memuaskan boleh tercapai dan boleh jadi belum tercapai. (Mitchell, 1999)

(23)

7

2.2.1. Properti Umum Algoritma Genetika

Algoritma genetika di implementasikan dalam simulasi komputer dimana populasi dari representasi abstrak (disebut chromosomes atau genotype dari genome) dari kandidat penyelesaian (disebut individuals, creatures, atau phenotypes) pada sebuah masalah optimisasi muncul ke arah penyelesaian-penyelesaian yang lebih baik.

Biasanya, penyelesaian disajikan dalam untaian binary 0 dan 1, meskipun dapat menggunakan encoding lain sesuai dengan studi kasus yang sedang dibahas.

Evolution biasanya bermula dari sebuah populasi individu-individu yang dibangkitkan secara acak dan terjadi dalam beberapa generasi. (Mitchell, 1999)

Berikut ini beberapa hal penting yang perlu diperhatikan dalam mendefinisikan individu:

 Gen (Genotype) yaitu satuan terkecil dalam rangkaian proses genetika yang membentuk sebuah kromosom.

 Allele yaitu nilai yang terdapat dalam gen (biasanya dalam bentuk biner, float, integer, karakter atau kombinatorial).

 Kromosom adalah gabungan dari beberapa gen-gen yang membentuk nilai tertentu.

 Individu merupakan suatu nilai atau keadaan yang menyatakan solusi yang mungkin dari permasalahan yang dikaji.

 Populasi merupakan gabungan dari beberapa individu yang akan diproses bersama dalam suatu siklus algoritma genetika.

 Generasi yaitu satu siklus atau satu iterasi dalam algoritma genetika

2.2.2. Siklus Evolusi Algoritma Genetika

Pada algoritma genetika terdapat lima fase dalam proses evolusi untuk menghasilkan individu baru, diantaranya adalah Initial population, Fitness function, Selection, Crossover dan Mutation.

a. Initial population

Proses dimulai dengan satu himpunan Individu, dimana setiap individu merupakan solusi dari problem yang akan diselesaikan. Setiap individu ditandai dengan sekumpulan parameter (variabel) yang disebut Gen. Gen- gen bergabung menjadi sebuah string untuk membentuk sebuah chromosom. Lebih jelasnya ditempilkan pada gambar berikut:

(24)

Gambar 2.1. Arsitektur umum algoritma genetika (Mitchell, 1999)

b. Fitness Function

Fitness function menunjukkan seberapa fit sebuah individu (fit:

kemampuan individu untuk bersaing dengan individu lain). Dalam tahapan ini setiap individu diberi skor kebugaran (fitness value). Probabilitas sebuah individu akan dipilih untuk reproduksi didasarkan pada nilai fitness nya.

c. Selection

Tahapan ini adalah untuk memilih individu yang mempunyai fitness terbaik untuk meneruskan gen nya kepada generasi selanjutnya. Dua individu (yang dianggap sebagai parents) akan dipilih dengan melihat nilai fitness masing-masing. Individu-individu dengan nilai fitness tinggi mempunyai lebih banyak ruang untuk melakukan reproduksi.

d. Crossover

Crossover (kawin-silang) merupakan fase terpenting dalam siklus genetika.

Akan dipilih 2 buah individu untuk ditukarkan nilai gen nya (allele) berdasarkan titik crossover yang telah ditentukan sebelumnya.

Untuk lengkapnya dapat dilihat seperti ilustrasi berikut ini.

Gambar 2.2. Contoh crossover (Mitchell, 1999)

(25)

9

Pada crossover dikenal sebuah istilah probabilitas crossover Atau crossover propability (𝑝𝑐) adalah sebuah parameter untuk menggambarkan seberapa sering crossover dilakukan. Jika 𝑝𝑐 100% maka seluruh keturunan (offspring) dihasilkan dari crossover. Jika 0%, semua generasi baru dihasilkan dari menduplikasi chromosom dari parent nya, artinya tidak ada perubahan untuk populasi yang dihasilkan.

Crossover dibuat dengan harapan kromosom baru akan berisi bagian yang baik dari kromosom lama sehingga kromosom baru yang dihasilkan menjadi lebih baik. Offspring diciptakan dengan menukar gen di antara orang tua, seperti A1 yang menukarkan sebagian allele nya dengan A2 berikut ini,

Gambar 2.3. Contoh offspring (Mitchell, 1999)

Dari hasil persilangan pada gambar 2.3 didapatkan keturunan baru seperti gambar dibawah ini:

Gambar 2.4. Hasil crossover (Mitchell, 1999)

e. Mutation

Mutation (mutasi) merupakan proses mengganti beberapa nilai gen (allele) dengan nilai yang baru secara acak dalam satu siklus evolusi algoritma genetika. Probabilitas nilai yang diganti ditentukan oleh nilai probability mutation (𝑝𝑚) yang dibuat. Untuk lebih jelasnya ditampilkan pada gambar 2.5 berikut ini:

Gambar 2.5. Contoh mutasi (Mitchell, 1999)

(26)

Algoritma akan berakhir jika populasi yang telah berkumpul tidak lagi menghasilkan keturunan yang jauh berbeda dari generasi-generasi sebelumnya.

Artinya bahwa algoritma genetika telah menyediakan serangkaian solusi untuk permasalahan yang diangkat.

2.3. Permainan Sudoku

Permainan sudoku awalnya merupakan sebuah teka-teki angka yang berkembang di Jepang pada tahun 1979 dan diterbitkan dalam surat kabar, majalah dan media cetak lainnya. Permainan ini menjadi cukup menarik dan banyak di gemari karena cukup menantang dan butuh waktu serta konsentrasi untuk menyelesaikannya. Pada umumnya permainan sudoku terdiri atas 9x9 kotak yang harus berisi angka/ simbol tertentu dan harus unik. Pada permainan sudoku normal, biasanya beberapa kotak telah berisi angka sebagai petunjuk yang biasa disebut dengan bilangan awal. Aturan permainannya adalah sebagai berikut: (Schottlender, 2014)

a. Setiap kotak pada sudoku (biasa disebut puzzle sudoku) harus berisi angka (dalam beberapa kasus dapat menggunakan simbol, karakter/ huruf dan encoding lainnya).

b. Angka/ simbol yang dimasukkan kedalam puzzle sudoku harus unik dalam setiap baris, kolom dan subgrid tidak boleh ada yang berulang. Untuk lebih jelasnya dapat dilihat pada gambar 2.6 berikut ini.

Gambar 2.6. Puzzle sudoku awal (Weiss, 2009)

Pada gambar 2.6 diatas terlihat puzzle sudoku berisi bilangan awal yang terdiri dari angka 1 s/d 9. Dalam kasus lain angka ini dapat di ganti dengan huruf atau simbol lain. Puzzle sudoku lengkap dapat dilihat pada gambar 2.7 berikut.

(27)

11

Gambar 2.7. Puzzle sudoku lengkap (Weiss, 2009)

Konsep permainan sudoku sebenarnya sangat sederhana, namun karena untuk mengisi kotak kosong pada permainan ini berlaku decision problem, artinya untuk menempatkan suatu bilangan tertentu pada kotak kosong sudoku tidak ada rumus praktis yang dapat diterapkan, maka dapat dikatakan bahwa permainan ini tergolong dalam persoalan NP-Complete.

2.4. Kecerdasan Buatan Dalam Permainan

Kecerdasan buatan merupakan suatu kecerdasan yang ditambahkan kedalam suatu mesin, sistem atau aplikasi dengan menggunakan algoritma-algoritma atau instruksi tertentu sehingga sistem tersebut dapat melakukan tugas sesuai instruksi yang diberikan dan seolah-olah dapat berpikir seperti manusia. Tujuan dari ditanamkannya kecerdasan buatan kedalam suatu sistem yaitu agar sistem tersebut dapat berpikir seolah-olah seperti manusia dan dapat mempermudah pekerjaan manusia itu sendiri.

Suatu sistem atau mesin tidaklah pintar jika tidak ditanamkan suatu sistem kecerdasan.

(Martiana, 2013)

Kecerdasan buatan dalam permainan komputer (game) telah berkembang cukup lama. Game pada dasarnya merupakan set instruksi kompleks yang dimasukkan ke program yang sudah memprediksi intelegensi pemakainya. Salain itu, isi program tersebut juga memuat prosedur pencarian sesuai dengan aturan permainan yang berlaku. Ada beberapa jenis permainan modern dan tradisional yang tergolong kedalam game kecerdasan buatan, satu diantaranya dan paling banyak dikenal adalah permainan angka sudoku. Game ini tergolong kedalam kasus dengan tingkat kesulitan yang cukup rumit karena memuat kemungkinan solusi yang cukup banyak. Penelitian terkait masalah angka sudoku juga sering di angkat karena kasus ini juga termasuk

(28)

kedalam bidang strategi algoritmik yaitu Non Polynomial Deterministik Problem atau biasa disebut NP-Complete Problem.

2.5. Penelitian Terkait

Adapun penelitian terdahulu yang terkait dengan penelitian yang dilakukan oleh penulis antara lain:

a. B. H. Arabi, (2016) melakukan penelitian dan mengemukakan pendapat dalam jurnal artikelnya yang berjudul “Solving NP-Complete Problems Using Algoritma Genetika” pada 2016 UKSim-AMSS 18th International Conference on Computer Modelling and Simulation (UKSim), Cambridge, United Kingdom, bahwa algoritma genetika cocok digunakan dalam permasalahan NP-Complete yaitu Traveling Salesman Problem (TSP).

pada penelitian ini Arabi melakukan perbandingan antara algoritma genetika dan algoritma Exhaustive Search Method (ESM) dari sisi kompleksitas waktu algoritma, dari 3 kali test ditemukan bahwa algoritma genetika lebih cepat dengan kompleksitas lebih rendah dibandingkan dengan algoritma Exhaustive Search Method (ESM). Salah satu yang alasan mengapa Arabi menggunakan algoritma genetika adalah karena menurut Arabi algoritma genetika mudah diskalakan dan didistribusikan.

b. F. Gerges, G. Zouein, dan D. Azar, (2018) dalam jurnal yang berjudul

“Algoritma Genetika with Local Optima Handling to Solve Sudoku Puzzles”, di Proceedings of the 2018 International Conference on Computing and Artificial Intelligence - ICCAI 2018, Chengdu, China, melakukan suatu metode baru dalam algoritma genetika dengan cara memodifikasi crossover dan operator mutasi. Mereka menyebut pendekatan ini sebagai “purge approach”. Modifikasi ini diklain dapat mengoptimalkan kinerja algoritma genetika karena dapat menghindari optima local. Dari hasil pengujian yang dilakukan, F. Gerges et al menemukan bahwa algoritma genetika dengan modifikasi “purge approach” jauh lebih unggul dari segi iterasi dibandingkan dengan algoritma genetika biasa tanpa modifikasi pada kasus NP-Complete.

c. M. Nicolau and C. Ryan, (2006) dalam jurnal yang berjudul “Solving Sudoku with the GAuGE System,” di Genetic Programming, vol. 3905

(29)

13

mengemukakan motode dalam algoritma genetika yang dinamakan sistem GAuGE (Genetic Algorithms using Grammatical Evolution) dapat bekerja sesuai dengan kelas permasalahan sudoku. Sistem GAuGE dilengkapi dengan instruksi logis yang sesuai seahingga dapat memecahkan masalah yang rumit seperti sudoku dan melakukannya dengan membuat daftar langkah logis yang diambil.

d. D. Job and V. Paul (2016) melakukan penelitian yang berjudul “Recursive Backtracking for Solving 9*9 Sudoku Puzzle” dan menemukan algoritma backtracking dengan manggunakan modifikasi jaringan syaraf dapat melakukan pencarian pada kasus angka sudoku sulit dengan jumlah 30 puzzle sudoku 9x9. Dari hasil analisis penelitian ini D. Job and V. Paul menemukan bahawa semakin banyak angka awal/ bilangan petunjuk pada puzzle yang sudah terisi maka akan semakin cepat algoritma backtracking menyelesaikannya, sebaliknya semakin sedikit puzzle sudoku berisi bilangan awal/ bilangan petunjuk maka akan semakin lama algoritma backtracking menyelesaikannya.

e. A. K. Maji and R. K. Pal, (2014) dalam jurnal yang berjudul “Sudoku solver using minigrid based backtracking,” di 2014 IEEE International Advance Computing Conference (IACC), Gurgaon, India, mengemukakan bahwa semua permasalahan sudoku adalah metode heuristik berbasis tebakan atau komputasi lunak intensif komputasi. Semuanya berbasis sel, itulah sebabnya sangat memakan waktu. Sehingga A. K. Maji and R. K.

Pal menawarkan sebuah metode yang dinamakan minigrid berbasis backtracking dalam pemecahan masalah sudoku. Metode ini bertindak seperti memecah-mecah puzzle sudoku kedalam mingrid yang lebih kecil lalu mencari masing-masing solusi dari minigrid tersebut. Dengan melakukan teknik ini A. K. Maji and R. K. Pal menemukan bahwa perhitungan yang terlibat dalam algoritma manjadi berkurang secara signifikan.

f. N. A. Hasanah, L. Atikah, D. Herumurti, and A. A. Yunanto, (2020) dalam jurnal yang berjudul “A Comparative Study: Ant Colony Optimization Algorithm and Backtracking Algorithm for Sudoku Game,” di 2020 International Seminar on Application for Technology of Information and

(30)

Communication (iSemantic), Semarang, Indonesia, melakukan perbandingan terhadap algoritma backtracking dan algoritma ant colony optimization dalam kasus angka sudoku dan hasilnya ditemukan bahwa algoritma ant colony optimization bekerja lebih baik daripada algoritma backtracking. Dari 75 kali percobaan yang dilakukan pada kasus sudoku didapati bahwa algoritma ant colony unggul dengan 89% lebih cepat daripada algoritma backtracking.

(31)

15

BAB 3 METODOLOGI

Metodologi merupakan bagian penulisan yang menjelaskan langkah dan tahapan yang akan dilakukan pada penelitian ini. Metodologi pada penelitian ini diantaranya adalah data yang digunakan, proses pengolahan data dan analisis proses yang terdiri dari diagram alir atau flowchart.

3.1. Data Yang Digunakan

Data yang digunakan pada penelitian ini merupakan bilangan yang terdiri dari angka 1 s/d 9 yang di generate secara random dalam bentuk gen, dimana gen-gen tersebut merupakan komponen pembentuk kromosom yang panjangnya sama dengan jumlah puzzle yang kosong pada sudoku. Contoh data yang di olah pada penelitian ini adalah sebagai berikut:

1 2 3 4 5 6 7 8 9

Gambar 3.1. Data yang digunakan

Array 2 dimensi pada gambar 3.1 di atas merupakan contoh bentuk data yang akan di olah pada penelitian ini. Data tersebut merupakan gen-gen pembentuk kromosom yang bilangannya dapat dipilih secara acak dan tidak ada aturan khusus dalam menentukannya.

3.2. Proses Pengolahan Data

Proses pengolahan data pada penelitian ini yaitu sesuai dengan siklus genetika, di antaranya pembentukan populasi, menghitung nilai fitness, seleksi, crossover dan mutasi.

Penelitian ini mengimplementasikan algoritma genetika dalam mencari solusi untuk puzzle sudoku. Pencarian diawali dengan menggunakan algoritma genetika secara konvensional, lalu menggunakan algoritma genetika dengan menerapkan batasan/ optimasi. Yang membedakan proses pengolahan data pada algoritma genetika konvensional dengan menggunakan batasan/ optimasi adalah pada proses pembentukan populasinya. Pada algoritma genetika dengan menggunakan batasan/

optimasi menerapkan suatu metode yang disebut “metode heuristik”, yaitu setiap

(32)

angka didalam baris, kolom serta blok menjadi indikator penting yang akan mempengaruhi bentuk populasi. Setiap angka yang sudah ada pada setiap baris, kolom dan blok tidak akan dimasukkan kedalam kandidat populasi seperti pada algoritma genetika konvensional.

3.2.1. Proses Pembentukan Populasi

Populasi merupakan sederetan bilangan acak yang terdiri dari angka 1 s/d 9 sebagai kandidat solusi dari permainan angka sudoku dan panjangnya berdasarkan berapa jumlah puzzle yang kosong pada permainan angka sudoku. Untuk lebih jelasnya dapat dilihat pada gambar 3.2 berikut ini:

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 6 3 8

2 7 6 8 9 1 3 5

5 9 7 3 1 6

1 2 6

3 7 8 9

6 8 7 5 3

8 5 1

6 5 1 9

Gambar 3.2. Proses pembentukan populasi

Pada gambar 3.2 terlihat puzzle sudoku ukuran 9x9 yang telah memiliki bilangan awal sebanyak 36 angka dan yang masih kosong terdapat 45 puzzle. Populasi didapat dari semua kemungkinan angka yang dapat diisi untuk setiap puzzle yang kosong. Misalnya puzzle (1,1) secara umum bilangan yang dapat di isikan adalah 1 s/d 9, demikian juga pada puzzle kosong (1,4) dan seterusnya.

Ilustrasi angka yang mungkin untuk setiap puzzle kosong ditampilkan pada tabel 3.1 berikut ini:

(33)

17

Tabel 3.1. Proses pembentukan populasi Puzzle Angka yang mungkin

1,1 1 2 3 4 5 6 7 8 9 1,4 1 2 3 4 5 6 7 8 9 1,5 1 2 3 4 5 6 7 8 9 1,6 1 2 3 4 5 6 7 8 9 1,7 1 2 3 4 5 6 7 8 9 1,8 1 2 3 4 5 6 7 8 9 Dan seterusnya.

Dari angka-angka yang mungkin diatas maka kromosom-kromosom untuk populasi yang dapat terbentuk menjadi:

k1 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

k2 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1

k3 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2

Gambar 3.3. Contoh populasi

Angka yang berada didalam setiap gen pada populasi diatas di pilih secara acak dan tidak ada aturan khusus dalam menentukannya. Hanya saja sesuai dengan persoalan yang sedang diselesaikan yaitu permainan angka sudoku, dimana aturan permainan ini mengisi angka 1 s/d 9 maka otomatis gen yang terbentuk sudah pasti terdiri dari angka 1 s/d 9 seperti yang disajikan.

3.2.2. Menghitung Nilai Fitness

Nilai fitness didapat dari menghitung jumlah angka yang berulang pada setiap baris, kolom dan blok pada setiap puzzle, lalu dilakukan pengurangan antara panjang kromosom (jumlah puzzle kosong) dengan jumlah angka berulang tersebut. Nilai fitness sempurna adalah sebesar panjang kromosom/ puzzle kosong. Semakin rendah nilai fitness maka semakin besar kemungkinan diganti dengan kromosom yang nilai fitness tinggi.

3.2.3. Seleksi

Proses seleksi merupakan langkah mempertahankan kromosom-kromosom terbaik untuk melanjutkan proses berikutnya. Fitness terbaik pada populasi akan di seleksi

(34)

dengan menggunakan metode roullete wheel untuk mempertahankan kromosom terbaik dan mengganti kromosom dengan nilai fitness buruk dalam populasi.

3.2.4. Crossover

Crossover merupakan proses kawin silang dimana 2 individu dalam populasi akan di pilih secara acak untuk menghasilkan individu baru dengan nilai fitness yang baru.

Aturan pada proses crossover adalah menggunakan metode one point crossover.

3.2.5. Mutasi

Proses mutasi dilakukan untuk mengganti nilai dari beberapa gen yang terpilih dalam populasi untuk menghasilkan nilai fitness yang lebih baik. Aturan dalam proses mutasi ini ditentukan oleh probability mutation yaitu sebesar 10% dari jumlah gen yang ada.

3.3. Analisis Proses

Analisis proses merupakan bagian yang menjelaskan proses dan langkah-langkah yang dilakukan pada penelitian dalam bentuk diagram alir/ flowchart. Analisis proses pada penelitian ini terdiri dari beberapa flowchart, diantaranya flowchart penelitian secara umum, flowchart algoritma genetika konvensional dan flowchart algoritma genetika dengan optimasi/ batasan.

3.3.1. Flowchart Penelitian

Flowchart penelitian merupakan gambaran dan asritektur umum yang menyajikan semua langkah yang dilakukan pada penelitian mulai dari awal pengerjaan penelitian ini hingga selesai. Adapaun flowchart penelitian pada penulisan ini adalah sebagai berikut.

(35)

19

Mulai

Inisialisasi Bilangan Awal

Selesaikan Dengan Algoritma Genetika Optimasi Selesaikan Dengan Algoritma

Genetika Konvensional

Tampilkan Solusi

Bandingkan Hasil Kedua Metode

Selesai

Gambar 3.4. Flowchart penelitian

Gambar 3.4 mempresentasikan alur kerja penelitian yang akan berjalan dari awal hingga selesai. Sesuai dengan pengertian umumnya, flowchart adalah salah satu bentuk diagram yang merepresentasikan alur kerja atau proses yang terjadi pada sebuah penelitian atau algoritma tertentu, biasanya terdiri dari simbol garis yang menampilkan langkah-langkah dan masing-masing urutannya dihubungkan dengan tanda panah.

Pada flowchart penelitian ini di awali dengan terminator “Mulai” sebagai penanda awal mula pengerjaan berjalan, yang kemudian diteruskan dengan

“Inisialisasi Bilangan Awal” yang pada penelitian ini permainan angka sudoku, artinya sesuai dengan kaidah dan aturan permainan sudoku; setiap generate maka beberapa puzzle sudoku sudah terisi dengan bilangan 1 s/d 9 yang biasa disebut

(36)

bilangan awal. Bilangan yang terisi ini nantinya terdiri dari 36 puzzle sudoku yang telah terisi dan 45 puzzle kosong.

Program berjalan menuju 2 proses selanjutnya yaitu “Selesaikan Dengan Algoritma Genetika Konvensional” dan “Selesaikan Dengan Algoritma Genetika Optimasi”. Artinya program dibuat dengan 2 pilihan penyelesaian lalu hasilnya dapat ditampilkan pada alur proses berikutnya yaitu “Tempilkan Solusi” jika telah menjalani proses dan mencapai fitness maksimal sesuai dengan aturan yang berlaku.

Program dilanjutkan dengan melakukan analisis, proses ini terjadi pada

“Bandingkan Hasil Kedua Metode”. Proses ini akan melakukan analisis komputasi dari kedua metode baik secara konvensional maupun dengan optimasi. Analisis komputasi yang dimaksud adalah melakukan perhitungan lama waktu komputasi melalui jumlah generasi dari kedua metode, berapa generasi yang diperlukan oleh algoritma genetika konvensional untuk mencapai tujuan dan berapa generasi yang diperlukan oleh algoritma genetika dengan optimasi. Proses analisis juga menghitung jumlah populasi dan jumlah gen-gen yang di perlukan oleh masing-masing metode untuk sampai menemukan solusi tujuan. Semakin banyak jumlah polpulasi, gen dan generasi maka akan semakin memperbesar waktu komputasi algoritma, sebaliknya semakin sedikit jumlah gen, populasi dan generasi akan memperkecil waktu komputasi.

3.3.2. Flowchart Algoritma Genetika Konvensional

Selain flowchart penelitian secara umum, alur kerja algoritma juga merupakan hal yang sangat penting dalam memberikan gambaran proses algoritma yang bekerja.

Pada penelitian ini, walaupun menggunakan 1 algoritma genetika namun karena pada implementasinya menerapkan optimasi maka akan ada 2 flowchart algoritma karena masing-masing akan berbeda cara kerjanya baik secara konvensional maupun dengan optimasi.

Adapun alur kerja algoritma genetika secara konvensional dapat di lihat pada tampilan gambar 3.5 berikut:

(37)

21

Mulai

Buat Populasi

Hitung Nilai Fitness

Fitnes Terbaik Ditemukan ?

Seleksi Tidak

Selesai

Inisialisasi Bilangan Awal

Mutasi

Isi Puzzle Dengan Kromosom Dari Nilai Fitness Terbaik

Tampilkan Solusi Ya

Crossover

Gambar 3.5. Flowchart algoritma genetika konvensional

(38)

Flowchart algoritma genetika pada gambar 3.5 diawali dengan tanda “Mulai”

sebagai titik awal proses berjalan. Flowchart algoritma diatas sebenarnya merupakan hasil interpretasi dari urutan langkah penyelesaian algoritma genetika secara umum yang diterapkan pada kasus NP-Complete sudoku. Proses algoritma genetika dilanjutkan dengan “Inisialisasi Bilangan Awal”. Proses ini akan melakukan inisialisasi atau scanning puzzle sudoku berapa puzzle yang sudah memiliki bilangan awal, posisi dan nilainya akan di inisialisasi dan disimpan untuk proses selanjutnya.

Selanjutnya dari proses scanning inti dari algoritma genetika konvensional akan dilakukan, ini berlangsung pada proses “Buat Populasi”. Pada proses ini program akan men-generate secara random jumlah populasi yang dibutuhkan untuk proses genetika, dimana populasi terdiri dari sederatan gen-gen yang membentuk kromosom dan panjangnya sebanyak jumlah puzzle kosong pada sudoku. Semakin banyak puzzle yang kosong, maka akan semakin panjang kromosom, dan gen-gen pembentuk kromosom juga akan semakin banyak.

Proses dilanjutkan dengan “Hitung Nilai Fitness”. Dalam pengertian sederhana nilai fitness dapat diartikan sebagai nilai kebugaran dari suatu individu. Semakin besar nilai fitness suatu individu maka akan semakin besar kemungkinan individu tersebut bertahan dan melanjutkan siklus dan proses-proses berikutnya. Sebaliknya individu yang memiliki nilai fitness kecil maka akan memungkinkan individu tersebut dibuang dan diganti dengan individu dengan nilai fitness yang lebih baik. Pada penelitian ini nilai fitness tujuan ditentukan jika kromosom telah mencapai nilai maksimal yaitu sebesar panjang kromosom atau jumlah puzzle yang kosong.

Setelah melakukan proses perhitungan nilai fitness, maka algoritma akan berlanjut ke proses “Isi Puzzle Kosong Dengan Angka Dari Nilai Fitness Terbaik”.

Proses ini adalah mengisikan angka-angka dari hasil seleksi nilai fitness terbaik kedalam kolom dari puzzle yang kosong, sebelum akhirnya di periksa kembali pada decision proses “Fitness terbaik ditemukan?”. Nilai fitness menandakan apakah ada angka yang berulang dalam suatu baris, kolom maupun blok. Jika masih ada artinya nilai fitness masih lebih kecil dari nilai panjang kromosom. Jika telah mencapai nilai ini dipastikan semua angka yang dimasukkan tersebut tidak berulang jika di periksa setiap baris, kolom dan blok nya merupakan angka unik. Jika pada decision jawabannya “Ya” artinya solusi ditemukan, maka solusi akan ditampilkan dan

(39)

23

algoritma genetika konvensional selesai berjalan dengan diakhiri oleh terminator

“Selesai”.

Namun jika jawaban “Tidak” artinya solusi belum ditemukan maka algoritma genetika konvensioanl akan dilanjutkan kembali ke proses “Seleksi”. Proses seleksi menggunakan metode roulette wheel dimana individu akan dipilih berdasarkan nilai fitness nya. Individu yang memiliki nilai fitness baik akan dipertahankan untuk proses berikutnya. Sedangkan individu dengan nilai fitness buruk akan dibuang dan di ganti dengan individu yang nilai fitness nya besar.

Setelah melalui proses seleksi individu-individu akan dipilih untuk menajalani proses perkawinan silang yaitu “Crossover”. Metode crossover yang digunakan pada proses ini adalah one point crossover, dimana dua individu akan ditentukan suatu titik potong yang sama, lalu menukarkan sebagian nilai gen/ allele individu 1 dengan nilai gen/ allele pada individu 2 dengan batas crossover point yang telah ditentukan sehingga menghasilkan individu dengan gen-gen dan nilai fitness yang baru.

Proses selanjutnya adalah “Mutasi”, yaitu mengganti nilai gen pada setiap individu secara acak. Nilai fitness setiap individu nantinya akan dihitung kembali karena setiap individu telah berubah setelah melalui berbagai proses diatas. Proses ini akan berjalan sampai menemukan nilai fitness sempurna.

3.3.3. Flowchart Algoritma Genetika Dengan Optimasi

Flowchart algoritma genetika dengan optimasi dapat dilihat pada gambar 3.6 berikut ini:

(40)

Mulai

Buat Populasi

Hitung Nilai Fitness

Fitnes Terbaik Ditemukan ?

Seleksi Tidak

Selesai

Inisialisasi Bilangan Awal

Mutasi

Isi Puzzle Dengan Kromosom Dari Nilai Fitness Terbaik

Tampilkan Solusi Ya

Tentukan Batasan, Simpan Bilangan Awal Puzzle

Crossover

Gambar 3.6. Flowchart algoritma genetika dengan optimasi

(41)

25

Alur kerja algoritma genetika dengan optimasi pada gambar 3.6. diatas sebenarnya hampir sama dengan alur kerja algoritma genetika konvensional pada gambar 3.5. dan sedikit banyak proses nya juga sama. Hanya yang membedakan alur kerja algoritma genetika dengan optimasi dengan alur kerja algoritma genetika konvensional adalah pada alur kerja algoritma genetika dengan optimasi memiliki 1 proses tambahan yaitu menggunakan batasan.

Batasan pada proses algoritma genetika dengan optimasi ini dilakukan pada saat akan menentukan populasi. Program akan memeriksa terlebih dahulu bilangan awal yang sudah ada pada puzzle sudoku. Nilai dan posisi bilangan awal tersebut disimpan dan menjadi rujukan untuk menentukan populasi. Misalnya pada puzzle baris 1, kolom 1 dan blok 1 sudah ada angka 4, maka dalam pembentukan populasi pada baris 1 s/d 9, kolom 1 s/d 9 dan semua bagian dari blok 1 angka 4 sudah tidak dimuat lagi dan otomatis di eliminasi dari kandidat populasi.

Dengan ini diharapkan proses menemukan nilai fitness terbaik akan lebih cepat karena tidak terlalu banyak kemungkinan angka solusi yang ditawarkan, sehingga dengan demikian jumlah gen, kromosom dan generasi yang akan dilalui algoritma genetika nantinya akan dapat di minimalisir dan memperkecil waktu komputasi.

(42)

26

BAB 4

HASIL DAN PEMBAHASAN

Bagian ini menjelaskan hasil pengujian dan implementasi algoritma genetika pada persolan NP-Complete, baik secara konvensional maupun dengan menggunakan batasan/ optimasi. Pengujian terlebih dahulu dilakukan dengan menggunakan algoritma genetika secara konvensional, menganalisis secara matematis proses yang diperlukan sampai menemukan solusi. Setelah menemukan solusi, tentunya terdapat kekurangan dari algoritma genetika secara konvensional, selanjutnya dilakukan pengujian dengan menggunakan algoritma genetika dengan menggunakan batasan/

optimasi. Dari penerapan optimasi/ batasan ini diharapkan kekurangan yang ada pada proses genetika konvensional dapat diatasi dan diperbaiki.

4.1. Persiapan Awal

Sebagai langkah awal yang perlu dilakukan dalam persiapan menyelesaikian persoalan NP-Complete dengan menggunakan algoritma genetika adalah menyiapkan puzzle sudoku yang telah memiliki bilangan awal. Pada penelitian ini digunakan sudoku dengan ukuran standar 9x9 kotak dan 36 puzzle yang sudah terisi bilangan awal. Puzzle sudoku 9x9 yang digunakan susuai dengan ilustrasi pada gambar berikut ini:

1 2 3 4 5 6 7 8 9

1 6 3 8

2 2 7 6 8 9 1 3 5

3 5 9 7 3 1 6

4 1 2 6

5 3 7 8 9

6 6 8 7 5 3

7 8

8 5 1

9 6 5 1 9

Kolom

Baris

Gambar 4.1. Puzzle sudoku

(43)

27

Dalam permainan sudoku, aturan yang berlaku sangat sederhana. Hanya perlu mengisi angka kedalam matrik 9x9 sampai penuh, dengan catatan dalam setiap baris, kolom dan blok hanya terdiri dari 1 angka unik. Untuk mengisi semua kota kosong dalam puzzle sudoku dengan menggunakan algoritma genetika, langkah awal yang paling penting adalah menghitung kotak yang kosong. Setiap kotak kosong di asumsikan selalu terdiri dari kemungkinan angka 1 s/d 9, sehingga jika dihitung ada 45 kotak puzzle yang kosong dan setiap kotak kosong masing-masing terdiri atas 9 kemungkinan angka maka untuk puzzle di atas akan ada ribuan kemungkinan kombinasi angka yang dapat isi.

4.2. Implementasi Algoritma Genetika

Banyaknya kemungkinan solusi yang mungkin untuk puzzle sudoku menyebabkan proses yang dilalui dan waktu komputasi pada algoritma genetika relatif lama karena ada banyak angka yang akan di proses untuk mencapai nilai fitness tujuan.

Implementasi algortima genetika pada persoalan NP-Complete bertujuan menjabarkan langkah-langkah penyelesaian NP-Complete sudoku dengan menggunakan algoritma genetika baik secara konvensional maupun dengan batasan/ optimasi.

4.2.1. Implementasi Algoritma Genetika Konvensional

Implementasi algoritma genetika secara konvensional terdiri atas langkah-langkah berikut ini:

a. Pembentukan populasi

Pada penerapannya populasi dibentuk dari jumlah kotak kosong pada puzzle dan di isi dengan angka yang mungkin secara acak. Dari data yang digunakan pada gambar 4.1 puzzle sudoku dapat dilihat bahwa kotak yang kosong ada 45, dengan demikian panjang kromosom adalah 45. Pada penelitian ini dalam 1 populasi terdiri dari 9 kromosom, sehingga populasi yang dapat di bentuk adalah sebagai berikut:

(44)

k1

1 2 4 5 7 9 4 8 2 4 4 3 5 8 7 9 5 2 4 1 6 9 1 4 2 7 2 4 9 6 3 5 1 9 4 2 8 3 6 7 8 3 7 4 2

k2

3 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1

k3

3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2

k4

4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3

k5

5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4

k6

6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5

k7

7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7

k8

8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6

k9

9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8

Gambar 4.2. Populasi awal

Bentuk kromosom diatas secara acak telah mewakili seluruh kemungkinan angka pada puzzle sudoku yaitu kombinasi angka 1 s/d 9. Langkah selanjutnya adalah memasukkan setiap angka dalam kromosom kedalam puzzle sudoku yang kosong satu persatu. Langkah ini bertujuan untuk mendapatkan nilai fitness setiap kromosom.

Nilai fitness akan menetukan kelayakan kromosom untuk dapat di pertahankan atau justru dibuang. Penyelesaian akan berhenti jika nilai fitness mencapai nilai sempurna yaitu 45.

Walaupun populasi pada penelitian ini dibuat dengan jumlah kromosom 9, nantinya hanya ada 1 kromosom yang akan di ambil sebagai solusi dari puzzle sudoku, yaitu yang mencapai nilai fitness terbaik.

b. Menghitung Nilai Fitness

Menghitung nilai fitness diperoleh dengan cara mengambil nilai dari gen-gen atau allele setiap kromosom untuk dimasukkan kedalam puzzle kosong, lalu akan dihitung berapa banyak angka yang berulang pada setiap baris, kolom dan blok. Untuk lebih jelasnya proses menghitung nilai fitness dijelaskan pada gambar berikut ini:

(45)

29

k1

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

6 3 8

2 7 6 8 9 1 3 5

5 9 7 3 1 6

1 2 6

3 7 8 9

6 8 7 5 3

8 5 1

6 5 1 9

Gambar 4.3. Proses mengisi puzzle

Nilai dari kromosom dimasukkan kedalam puzzle yang kosong pada gambar 4.3, sehingga menjadi seperti gambar berikut ini:

1 6 3 2 3 4 5 6 8

2 7 7 6 8 9 1 3 5

5 8 9 7 3 1 6 9 1

2 1 2 3 4 6 5 6 7

3 7 8 8 9 9 1 2 3

6 4 8 5 7 6 7 5 3

8 9 1 2 3 4 5 8 6

7 5 1 8 9 1 2 3 4

5 6 6 5 1 7 9 8 9

Gambar 4.4. Puzzle yang sudah terisi

Gambar 4.4 adalah bentuk puzzle yang telah di isi dengan nilai-nilai dari kromosom 1. Setelah puzzle terisi penuh oleh nilai gen-gen kromosom, maka selanjutnya adalah mencari dan menghitung angka yang berulang pada setiap baris, kolom dan blok puzzle. Untuk lebih jelasnya ditampilkan pada gambar berikut ini:

(46)

1 6 3 2 3 4 5 6 8

2 7 7 6 8 9 1 3 5

5 8 9 7 3 1 6 9 1

2 1 2 3 4 6 5 6 7

3 7 8 8 9 9 1 2 3

6 4 8 5 7 6 7 5 3

8 9 1 2 3 4 5 8 6

7 5 1 8 9 1 2 3 4

5 6 6 5 1 7 9 8 9

Gambar 4.5. Menghitung nilai fitness

Pada gambar 4.5 diatas terlihat angka yang diberi tanda merah artinya angka tersebut berulang dan tidak unik, karena memiliki pasangan yang sama disalah satu baris, kolom atau pun blok. Selanjutnya yang dilakukan adalah menghitung angka yang berwarna merah tersebut, sehingga dari kromosom 1 didapat:

Angka yang berulang = 33

Nilai fitness = jumlah panjang kromosom - angka yang berulang

= 45 – 33

= 12

Jadi nilai fitness untuk kromosom 1 adalah 12.

Untuk seluruh kromosom dalam populasi tersebut nilai fitness nya disajikan dalam tabel berikut:

Tabel 4.1. Nilai fitness

Kromosom Angka Yang Berulang Nilai Fitness

k1 33 12

k2 32 13

k3 32 13

k4 33 12

k5 35 10

k6 32 13

k7 37 8

k8 37 8

k9 38 7

(47)

31

c. Seleksi

Proses seleksi akan mempertahankan individu yaitu kromosom yang baik dan membuang individu yang buruk dengan melihat nilai fitness masing-masing.

Dari tabel 4.1 nilai fitness yang disajikan, maka dapat dilihat bahwa kromosom 9 adalah nilai terendah. Pada penelitian ini aturan melakukan seleksi adalah 1 individu yang dapat dibuang. Sehingga kromosom 9 akan di buang dan sebagai gantinya salah satu kromosom dengan nilai fitness yang baik akan di ekstrak sebanyak 2 kali menggantikan kromosom 9. Kromosom yang dipilih adalah kromosom 2. Sehingga bentuk populasi yang baru menjadi seperti gambar berikut ini:

k1

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

k2

2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1

k3

3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2

k4

4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3

k5

5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4

k6

6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5

k7

7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6

k8

8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7

k9

2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1

Gambar 4.6. Populasi baru

Setelah populasi berubah, otomatis nilai fitness juga berubah, sehingga nilai fitness baru menjadi:

(48)

Tabel 4.2. Nilai fitness yang baru

Kromosom Angka Yang Berulang Nilai Fitness

k1 33 12

k2 32 13

k3 32 13

k4 33 12

k5 35 10

k6 32 13

k7 37 8

k8 37 8

k9 32 13

Menghitung nilai fitness adalah langkah mencari apakah solusi puzzle sudah ditemukan atau belum, jika sudah ditemukan kromosom dengan nilai sempurna maka proses akan berhenti karena fitness tujuan sudah dicapai. Karena nilai fitness belum ada yang mencapai nilai tujuan, maka proses akan berlanjut ke langkah berikutnya yaitu crossover.

d. Crossover

Serangkaian proses yang dilalui dalam algoritma genetika adalah untuk mencapai nilai fitness terbaik, demikian pula dengan crossover. Setelah melakukan crossover diharapkan kromosom-kromosom yang berpindah silang akan semakin baik nilai fitness nya.

Aturan dalam crossover pada penelitian ini adalah menggunakan one point crossover, probability crossover (pc) sebesar 25% dari jumlah kromosom, artinya ada 2 kromosom yang akan di crossover. Kromosom yang di pilih untuk crossover pada tahap ini adalah kromosom 7 dan kromosom 8. Lebih jelasnya dapat dilihat pada gambar berikut ini:

Referensi

Dokumen terkait

Tujuan penelitian ini untuk mengkaji aspek biologis Udang Kelong, beberapa parameter pertumbuhan yang meliputi hubungan panjang karapas dan bobot tubuh, distribusi sebaran

Tujuan dari penelitian pengembangan yang berjudul “Pengembangan Media Video Animasi Untuk Meningkatkan Hasil Belajar Siswa Mata Pelajaran IPA Kelas V” yaitu untuk

Berdasarkan hasil-hasil yang telah diuraikan sebelumnya, dapat diambil kesimpulan sebagai berikut: surfaktan Sodium Lignosulfonat dapat dibuat dari Jerami Padi

Menimbang, bahwa berdasarkan fakta-fakta tersebut dapat disimpulkan bahwa Pemohon I yang bernama PEMOHON I dan Pemohon II yang bernama PEMOHON II sebagaimana yang

Menurut S Munawir (2004:2) Pengertian laporan keuangan adalah hasil dari proses akuntansi yang dapat digunakan sebagai alat untuk berkomunikasi antara data keuangan

HARI TANGGAL WAKTU MATA KULIAH SKS DOSEN SMT JURUSAN JML RUANG2. 08.00-09.30 Kewarganegaraan

Setelah itu dilakukan pengujian koefisien determinasi yang mana menghasilkan dapat diketahui bahwa nilai korelasi ( R-Square ) sebesar 0,285 atau 28,5% dengan demikian

Pada bab ini juga dilakukan analisis tentang kesesuaian besar Manfaat Pensiun Dana Pensiun PLN serta kemungkinan penyesuaian/ kenaikan manfaat yang perlu dikaji apabila dilihat