• Tidak ada hasil yang ditemukan

PENERAPAN HARMONY SEARCH ALGORITHM UNTUK MENYELESAIKAN PERMAINAN SU-DOKU

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENERAPAN HARMONY SEARCH ALGORITHM UNTUK MENYELESAIKAN PERMAINAN SU-DOKU"

Copied!
96
0
0

Teks penuh

(1)

PENERAPAN HARMONY SEARCH ALGORITHM UNTUK

MENYELESAIKAN PERMAINAN SU-DOKU

M SYAMSUDDIN WISNU BROTO

PROGRAM STUDI MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA

(2)

i

PENERAPAN HARMONY SEARCH ALGORITHM UNTUK

MENYELESAIKAN PERMAINAN SU-DOKU

SKRIPSI

Diajukan kepada

Universitas Islam Negeri Syarif Hidayatullah Jakarta Untuk Memenuhi Salah Satu Persyaratan Dalam

Memperoleh Gelar Sarjana Sains (S.Si)

Oleh:

M SYAMSUDDIN WISNU BROTO 1111094000010

PROGRAM STUDI MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA

(3)
(4)

iii

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN

Jakarta, Januari 2016

M Syamsuddin Wisnu Broto 1111094000010

(5)

ABSTRAK

M Syamsuddin Wisnu Broto, Penerapan Harmony Search Algorithm untuk Menyelesaikan Permainan Su-Doku. Di bawah bimbingan Yanne Irene, M.Si dan Irma Fauziah, M.Sc.

Permainan Su-Doku merupakan sebuah permainan untuk menempatkan

ang-ka 1 sampai dengan 9 pada sebuah matriks berukuran 9 9dengan syarat untuk

setiap baris, setiap kolom, dan setiap bloknya hanya berisi angka 1 sampai de-ngan 9 tepat hanya satu kali. Pada skripsi ini dibahas salah satu teknik yang da-pat digunakan untuk menyelesaikan permainan Su-Doku menggunakan Harmony Search Algorithm dengan kotak kosong sebanyak 41 buah. Terdapat beberapa tahap dalam algoritma ini, diantaranya adalah tahap iterasi untuk menentukan nilai fungsi tujuan harmony sama dengan nol. Nilai ini merupakan optimum global dari Harmony Search Algorithm. Terdapat tiga parameter untuk mencapai optimum global dan membatasi nilai random selection yaitu Harmony Memory Size (HM S), Harmony Memory Consideration Rate (HM CR), dan Pitch Ad-justment Rate (P AR). Berdasarkan hasil simulasi, dibutuhkan waktu 1 sampai

29detik untuk menyelesaikannya.

Kata kunci: Permainan Su-Doku, Harmony Search Algorithm, Harmony

Me-mory Size (HM S); Harmony MeMe-mory Consideration Rate (HM CR); Pitch Ad-justment Rate (P AR).

(6)

ABSTRACT

M Syamsuddin Wisnu Broto, Application Harmony Search Algorithm for Solving Game Su-Doku. Under the guidance of Yanne Irene, M.Si and Irma Fauziah, M.Sc.

Su-Doku is a game to put the numbers 1 through 9 in a 9 9 matrix. The

provision in this game is the number 1 through 9 placed exactly one time for every row, every column, and every block. This research discusses a technique that can be used to complete the game Su-Doku using Harmony Search Algorithm with

41of empty element in a 9 9matrix. There are several stages in this algorithm,

one of them is iteration to determine the harmony objective function value equal to zero. This value is a global optimum of Harmony Search Algorithm. There are three parameters to achieve the global optimum and restrict the number of random selection are Harmony Memory Size (HM S), Harmony Memory Con-sideration Rate (HM CR), and Pitch Adjustment Rate (P AR). The simulation result shows that it takes time 1 through 29 seconds to complete this Sudoku game using Harmony Search Algorithm.

Keywords: Su-Doku game, Harmony Search Algorithm, Harmony Memory Size

(HM S), Harmony Memory Consideration Rate (HM CR), dan Pitch Adjustment Rate (P AR).

(7)

PERSEMBAHAN

Skripsi ini saya persembahkan untuk

Abah Kisdiyanta dan Ibu Siti Mar’fuah yang selalu mendoakan yang terbaik untuk anaknya, maafkan jika belum bisa membuat bahagia sepenuhnya.

Berjuanglah untuk wanita yang membuat pribadimu lebih baik Tinggalkan wanita yang membuat pribadimu lebih jelek atau konstan

- Syamsuddin Excellent

Berusaha, berdoa, bersabar dan yakinlah Allah SWT pasti akan memberikan yang terbaik untukmu.

- Syamsuddin Excellent

Terlalu sadis sepanjang hidup bersamamu

(8)

KATA PENGANTAR

Assalamu’alaikum Warahmatullahi Wabarakatuh

Alhamdulillah, segala puji bagi Allah SWT, Tuhan Semesta Alam yang senantiasa memberikan rahmat dan hidayah-Nya kepada penulis, sehingga penulis dapat menyelesaikan skripsi yang berjudul "Penerapan Harmony Search Al-gorithm untuk Menyelesaikan Permainan Su-Doku". Tidak lupa pula shalawat serta salam semoga selalu tercurahkan kepada Nabi Muhammad SAW beserta keluarganya, para sahabatnya, dan para pengikutnya sampai akhir za-man.

Skripsi ini disusun untuk memenuhi salah satu kewajiban akhir mahasiswa untuk memperoleh gelar sarjana. Penulis mendapat banyak pelajaran selama mengkaji bahan-bahan penelitian yang tidak didapatkan dalam bangku perkuliah-an. Pelajaran yang paling penting adalah kesabaran, kerja keras dan pantang menyerah dalam mencapai tujuan.

Dalam penyusunan skripsi ini, penulis banyak mendapatkan inspirasi, se-mangat, motivasi, dukungan, bimbingan dan do’a serta kritikan dari berbagai pihak, sehingga terselesaikan dengan baik. Oleh karena itu, penulis menyam-paikan terima kasih yang sebesar-besarnya kepada :

1. Abah Kisdiyanta, S.Pd, dan Ibu Siti Marfu’ah, S.Pd.I, yang tiada henti-hentinya selalu memberikan do’a, kasih sayang, motivasi, semangat, serta dukungannya baik yang berupa moral maupun materil kepada penulis, 2. Tak lupa pula untuk Adikku M Aziz Indrayanto, M Khamim Ma’arif, dan

Faizatul Aulia, terimakasih atas kasing sayangnya selama ini yang tidak terkira kepada penulis serta do’anya selama ini,

(9)

3. Bapak Dr. Agus Salim, M.Si, selaku Dekan Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta,

4. Ibu Dr. Nina Fitriyati, M.Kom, selaku Ketua Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai penguji I,

5. Ibu Irma Fauziah, M.Sc, selaku Sekretaris Program Studi Matematika Fakul-tas Sains dan Teknologi UniversiFakul-tas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai pembimbing II yang telah memberikan dorongan, serta ilmu yang bermanfa’at dalam menyelesaikan skripsi ini,

6. Ibu Yanne Irene, M.Si, selaku dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta sekaligus sebagai pembimbing I yang telah banyak sekali membantu penulis dengan memberikan arahan, saran yang baik, semangat, dan motivasi dalam menyelesaikan skripsi ini, terima kasih banyak Ibu,

7. Ibu Dr. Nur Inayah, M.Si selaku dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai pembimbing akademik yang telah membantu penulis de-ngan memberikan arahan dan saran yang baik selama proses perkuliahan, 8. Bapak Muhaza Liebenlito, M.Si selaku dosen Program Studi Matematika

Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai peguji II,

9. Ibu Suma’inna, M.Si selaku dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, 10. Seluruh Ibu/Bapak dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta yang selama perkuliahan telah memberikan ilmu-ilmunya dan pengalamannya yang sa-ngat bermanfa’at. Terimakasih banyak Ibu dan Bapak semuanya,

(10)

11. Keluarga tercinta Mbah, Bude, Pakde, Paman, Bibi, Mbak, Mas, Keponak-an, yang tak henti-hentinya memberikan nasehat, semangat dan kasih sa-yangnya kepada penulis,

12. Teman-teman Pengurus IKAHIMATIKA Indonesia masa bakti 2012-2014, IKAHIMATIKA Indonesia Wilayah III masa bakti 2011-2013 dan 2013-2015, HIMATIKA masa bakti 2013 dan 2014, DEMA FST masa bakti 2014 dan 2015, yang tidak bisa disebutkan satu persatu, terima kasih banyak atas pengalaman organisasi yang luar biasa penulis dapatkan selama ini diluar perkuliahan,

13. Riski Febriandi (cepetan lulus), Aufar Hamdi (raja …lm), M Heykal Al-Faruqi (cepet lulus jangan males), Guntur M. Husein (motivator cinta), Jesry Pandawa (pemikir yang ribet), dan Hidayatullah (gaya melulu) yang selalu menemani dalam keadaan susah maupun senang, panas maupun hu-jan, kampus maupun kosan, diam maupun berisik, lab maupun kelas, jalan maupun naik motor, kantin maupun warteg dan banyak lainnya, semoga kita bertemu kembali di lain waktu, preeeeetttttt haha, kept spirit broo.... 14. Afo Rakaiwa (cepet nikah), Muharman (jangan kelamaan nunggu), Haris Hamzah (jangan search mulu, tentukan!!), Jefry Afryanto (seriusin tu satu aja), Tri Prasetyo (jangan search mulu), M Irvan Septiar Musti (cepet nikah), dan semua laki-laki Matematika 2011 terimakasih atas persahabatan selama ini. hueeekkk haha

15. Seluruh teman-temanku Matematika 2011 yang tidak bisa disebutkan satu persatu, terima kasih banyak telah bekerja sama sebagai rekan seperjuangan selama masa pekuliahan,

16. Perempuan yang selalu mendoakan dan memberikan motivasi agar segera lulus, terimakasih banyak atas motivasinya dan untuk perempuan yang mendoakan lama lulusnya, makasih banyak yaa sis atas doanya karena kalian menjadi motivasi sesegera mencapai kelulusan ini.

(11)

17. Pihak-pihak yang tidak dapat penulis sebutkan satu persatu tanpa mengu-rangi rasa hormat, yang telah memberikan dorongan dan bantuan sehingga skripsi ini selesai disusun.

Penulis menyadari bahwa penulisan skripsi ini masih banyak kekurangan dan jauh dari kesempurnaan, oleh karena itu penulis memohon ma’af jika terdapat kesalahan yang kurang berkenan, dan penulis harapkan kritikan dan saran demi perbaikan penulisan skripsi ini.

Akhir kata, semoga skripsi ini bermanfaat dan memberikan kontribusi yang berarti khususnya bagi penulis dan bagi pembaca umumnya dalam rangka menam-bah wawasan pengetahuan kita. Aaamiiin.

Wassalamu’alaikum Warahmatullahi Wabarakatuh

Jakarta, Januari 2016

(12)

DAFTAR ISI

HALAMAN JUDUL i LEMBAR PENGESAHAN ii PERNYATAAN iii ABSTRAK iv ABSTRACT v PERSEMBAHAN vi

KATA PENGANTAR vii

DAFTAR ISI xi

DAFTAR TABEL xiii

DAFTAR GAMBAR xiv

1 PENDAHULUAN 1 1.1 Latar Belakang . . . 1 1.2 Rumusan Masalah . . . 3 1.3 Tujuan Penelitian . . . 3 1.4 Batasan Masalah . . . 3 1.5 Manfaat Penelitian . . . 3 2 LANDASAN TEORI 4 2.1 Matriks . . . 4 2.2 Jenis-Jenis Matriks . . . 4

2.3 Matriks Bagian (Submatriks) . . . 7

2.4 Matriks Su-Doku . . . 7

2.5 Optimisasi . . . 11

2.6 Maksimum dan Minimum Fungsi . . . 12

(13)

3 Harmony Search Algorithm untuk Menyelesaikan Permainan

Su-Doku 16

3.1 Harmony Search Algorithm . . . 16

3.1.1 Inisialisasi Fungsi Tujuan . . . 16

3.1.2 Inisialisasi Parameter . . . 17

3.1.3 Pembentukan Harmony Memory (HM ) . . . 17

3.1.4 Pembentukan Harmony Memory Baru (HMN EW) . . . . . 20

3.1.5 Update Harmony Memory . . . 22

3.2 Flowchart Harmony Search Algorithm . . . 23

4 AplikasiHarmony Search Algorithm pada Penyelesaian Permainan Su-Doku 24 4.1 Menentukan Fungsi Tujuan . . . 24

4.2 Menentukan Parameternya . . . 25

4.3 Pembentukan Harmony Memory (HM ) . . . 25

4.4 Pembentukan Harmony Memory Baru (HMN EW) . . . . 38

4.5 Update Harmony Memory . . . 54

4.6 Contoh Lain Permainan Su-Doku . . . 61

5 KESIMPULAN DAN SARAN 62 5.1 Kesimpulan . . . 62

5.2 Saran . . . 62

REFERENSI 63

(14)

xiii

DAFTAR TABEL

Tabel 3.1 Kandidat yang mungkin untuk permainan Su-Doku ... 25

Tabel 3.2 Nilai random untuk harmony 𝑥1 ... 26

Tabel 3.3 Nilai random untuk harmony 𝑥2 ... 27

Tabel 3.4 Fungsi tujuan harmony 𝑥1 ... 33

Tabel 3.5 Fungsi tujuan harmony 𝑥2 ... 33

(15)

xiv

DAFTAR GAMBAR

Gambar 2.1 Koordinat Su-Doku ... 8

Gambar 2.2 Contoh Blok 5 dari Su-Doku ... 8

Gambar 2.3 Pembagian Blok Su-Doku ... 9

Gambar 2.4 Contoh Masalah Permainan Su-Doku ... 9

Gambar 2.5 Pembagian Blok pada Permainan Su-Doku ... 10

Gambar 2.6 Contoh Permainan Su-Doku ... 11

Gambar 2.7 Fungsi 𝑓 dan domain ... 13

Gambar 2.8 Sketsa Grafik fungsi 𝑓 dengan daerah asal ... 14

Gambar 2.9 Minumum Lokal dan Maksimum Lokal ... 15

Gambar 3.1 Flowchart Harmony Search Algorithm untuk Menyelesaikan Permainan Su-Doku ... 20

Gambar 3.2 Masalah Permainan Su-Doku... 21

Gambar 3.3 Harmony 𝑥1 ... 32

Gambar 3.4 Harmony 𝑥2 ... 32

Gambar 3.5 Harmony 𝑥2 dengan 𝑓(𝑥2) = 73 ... 35

Gambar 3.6 Harmony 𝑥1 dengan 𝑓(𝑥1) = 78 ... 35

Gambar 3.7 Permainan Su-Doku dengan fungsi tujuan minimum ... 36

Gambar 3.8 𝐻𝑀𝑁𝐸𝑊 ... 51

Gambar 3.9 Harmony 𝑥1 dengan 𝑓(𝑥1) = 55 ... 52

Gambar 3.10 Harmony 𝑥2 dengan 𝑓(𝑥2) = 73 ... 52

Gambar 3.11 Harmony 𝑥𝑁𝐸𝑊 dengan 𝑓(𝑥𝑁𝐸𝑊) = 23 ... 53

Gambar 3.12 Harmony 𝑥𝑁𝐸𝑊 dengan 𝑓(𝑥𝑁𝐸𝑊) = 22 ... 53

Gambar 3.13 Harmony 𝑥𝑁𝐸𝑊 dengan 𝑓(𝑥𝑁𝐸𝑊) = 20 ... 54

Gambar 3.14 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 17 ... 54

Gambar 3.15 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 11 ... 55

Gambar 3.16 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 17 ... 55

Gambar 3.17 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 0 ... 56

Gambar 3.18 Masalah Su-Doku ... 59

(16)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Sebuah permainan puzzle di desain oleh seorang pensiunan arsitek yang ber-asal dari Amerika Serikat bernama Howard Grans. Permainan puzzle ini diberi nama Number Place yang dipublikasi pertama kalinya dalam sebuah majalah Dell Megazine of New York puzzle pada tahun 1979. Dan pada saat itu, permainan puzzle ini kurang populer dikarenakan tidak diminati oleh masyarakat [1].

Pada tahun 1984, perusahaan Nikoli menerbitkan sebuah majalah cetak khusus puzzle yang dimuat di Majalah Bulanan Nikoli, sehingga membuat per-mainan puzzle ini berkembang menjadi perper-mainan yang sangat populer di Jepang. Kemudian puzzle ini diberi nama Suuji Wa Dokushin Kagiru yang dapat diter-jemahkan menjadi angka-angka yang harus tetap tunggal atau kemunculannya hanya sekali saja. Selanjutnya permainan puzzle ini dikenal sebagai Su-Doku. Saat ini sekitar 15 majalah Su-Doku Jepang dan 30 buku diterbitkan setiap bu-lannya [1].

Pada tahun 1997, seorang pensiunan Hakim Pengadilan Tinggi yang tinggal di Hongkong bernama Wayne Gould menemukan puzzle Su-Doku saat berbelanja disebuah toko buku di Tokyo. Karena terpesona, Wayne Gould menghabiskan beberapa tahun untuk merancang program komputer untuk menghasilkan teka-teki Su-Doku dengan tingkat kesulitan yang bervariasi, yaitu mudah, sedang, sulit dan sangat sulit. Kemudian Wayne Gould menawarkan puzzle tersebut pada majalah The Times di London yang kemudian menerbitkannya bulan November 2004. Sampai saat ini Su-Doku masih dimuat di setiap terbitan majalah The Times dengan tingkat kesulitan yang bervariasi [1].

Pada bulan Mei 2005, Su-Doku menjadi benar-benar menggila dan tersebar di seluruh dunia. Dalam sebulan teka-teki Su-Doku muncul di berbagai media cetak di Australia, Canada, Israel, Eropa Timur, dan India, kemudian menyebar

(17)

di banyak puluhan surat kabar Amerika Serikat [1].

Permainan Su-Doku adalah sebuah permainan menempatkan angka-angka 1

sampai 9 pada matriks berukuran 9 9 dengan syarat untuk setiap baris,

se-tiap kolom, dan sese-tiap bloknya hanya berisi angka 1 sampai 9 tepat sati kali [2].

Tujuan permainan Su-Doku ini adalah melengkapi matriks 9 9 yang memiliki

kotak-kotak kosong yang akan diisi dengan angka 1 sampai 9 sehingga akan meng-hasilkan suatu solusi Su-Doku. Permainan ini merupakan salah satu permainan yang menggunakan logika pemainnya yang relatif mudah dalam penyelesaian-nya, walaupun tidak semua pemainnya dapat menyelesaikan permainan ini. Oleh karena itu diperlukan suatu teknik untuk membantu pemain dalam menyelesaikan permainan Su-Doku ini.

Terdapat beberapa teknik yang dapat digunakan untuk menyelesaikan per-mainan Su-Doku, yaitu dengan menggunakan Metode Backtracking, Metode Brute-force, Genetic Algorithm, Simulated Anneling, Graph Referencing Algorithm dan Harmony Search Algorithm [14]. Dalam skripsi ini akan dibahas penyelesaian permainan Su-Doku dengan menggunakan Metode Harmony Search Algorithm.

Harmony Search Algorithm adalah suatu teknik metaheuristik yang diperke-nalkan oleh Dr. Zong Woo Geem, Dr. G.V. Loganathan, dan Dr. Joong Hoon Kim tahun 2001. Harmony Search Algorithm dikembangkan dengan memper-hatikan proses improvisasi musik, dimana seorang musisi berusaha terus menerus untuk memperbaiki nadanya untuk mendapatkan harmony yang lebih baik. Un-tuk improvisasi musik, masing-masing musisi membunyikan sebuah nada dengan tingkat nada yang mungkin, kemudian nada-nada tersebut akan membentuk se-buah harmony. Jika semua nada menghasilkan harmony yang bagus, maka ke-jadian tersebut disimpan diingatan para musisi, maka kemungkinan untuk mem-buat harmony yang bagus lainnya akan lebih baik [3].

Penelitian tentang Harmony Search Algorithm untuk menyelesaikan Su-Doku dilakukan oleh Zoo Woo Geem. Pada penelitian tersebut dijelaskan tentang model dan rancangan Harmony Search Algorithm untuk menyelesaikan puzzle dalam permainan Su-Doku. Penggunaan Harmoy Search Algorithm pada penelitian tersebut dapat menyelesaikan puzzle Su-Doku dengan benar dalam waktu antara

(18)

3sampai 38 detik dengan parameter berbeda [2].

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas maka permasalahan yang akan dikaji dalam penulisan ini adalah bagaimana menyelesaikan permainan Su-Doku dengan menggunakan Harmony Search Algorithm.

1.3 Tujuan Penelitian

Tujuan dari penulisan penelitian ini adalah menyelesaikan permainan Su-Doku dari suatu matriks Su-Su-Doku dengan menggunakan Harmony Search Algo-rithm.

1.4 Batasan Masalah

Agar penelitian sesuai dengan tujuan penelitian, diperlukan batasan masalah sebagai berikut :

1. Permainan Su-Doku yang digunakan adalah matriks berukuran 9 9,

de-ngan jumlah kotak kosong antara 1 sampai 41 kotak,

2. Untuk masalah Su-Doku dengan jumlah kotak kosong lebih dari 41 kotak, aplikasi dari Harmony Search Algorithm hanya mencapai local optimum.

1.5 Manfaat Penelitian

Manfaat penelitian ini adalah menambah pengetahuan baru bagi kita, khusus-nya penulis, mengenai penggunaan metode Harmony Search Algorithm untuk menyelesaikan permainan Su-Doku.

(19)

BAB 2

LANDASAN TEORI

2.1 Matriks

De…nisi 2.1 Sebuah matriks adalah susunan segi empat siku-siku dari

bilangan-bilangan yang dibatasi dengan tanda kurung. Bilangan-bilangan-bilangan dalam susuan tersebut dinamakan entri dalam matriks [4].

Suatu matriks tersusun atas baris dan kolom, jika matriks tersusun atas m

baris dan n kolom maka dikatakan matriks tersebut berukuran (berordo) m n.

Penulisan matriks biasanya menggunakan huruf besar A; B; C; dan seterusnya. Sedangkan penulisan matriks beserta ukurannya (matriks dengan m baris dan n

kolom) adalah Am n; Bm n dan seterusnya [4].

Contoh 2.2 Suatu matriks A dikatakan berukuran m n jika banyaknya baris

dari A adalah m dan banyaknya kolom dari A adalah n, yng dapat ditulis sebagai berikut : Am n 2 6 6 6 6 6 6 6 6 6 4 x11 x12 x13 x1n x21 x22 x23 x2n x31 x32 x33 xn .. . xm1 xm2 xm3 xmn 3 7 7 7 7 7 7 7 7 7 5

dimana xij disebut elemen dari A yang terletak pada baris i dan kolom j [4].

2.2 Jenis-Jenis Matriks

Ada beberapa jenis matriks yang perlu diketahui, yaitu sebagai berikut : 1. Matriks Baris

Matriks baris adalah matriks yang hanya mempunyai satu baris saja. Secara umum, ordo dari matriks baris berbentuk 1 n dengan n menentukan

(20)

banyak kolom dari matriks baris tersebut. Contoh 2.3

A =h1 2

i

2. Matriks Kolom

Matriks kolom adalah matriks yang hanya mempunyai satu kolom saja.

Secara umum, ordo matriks kolom adalah m 1 dengan m menentukan

banyak baris matriks kolom tersebut. Contoh 2.4 A = 2 6 6 6 4 1 2 3 3 7 7 7 5

3. Matriks Bujur Sangkar

Matriks bujur sangkar adalah matriks yang jumlahnya sama dengan jumlah kolomnya. Karena sifatnya yang demikian ini, dalam matriks bujur sangkar dikenal istilah elemen diagonal yang berjumlah n untuk matriks

bujur sangkar yang berukuran n n, yaitu x11; x22; :::; xnn

Contoh 2.5 A2 2= 2 4x11 x12 x21 x22 3 5

dengan elemen diagonal x11; dan x22

Contoh 2.6 A3 3= 2 6 6 6 4 x11 x12 x13 x21 x22 x23 x31 x23 x33 3 7 7 7 5

dengan elemen diagonal x11; x22 dan x33

(21)

Matriks diagonal adalah matriks yang elemen bukan diagonalnya berni-lai nol. Dalam hal ini tidak disyaratkan bahwa elemen diagonal harus tak nol. Contoh 2.7 A = 2 41 0 0 1 3 5 ; B = 2 41 0 0 0 3 5 5. Matriks Nol

Matriks nol merupakan matriks yang semua elemennya bernilai nol. Contoh 2.8 A = 2 40 0 0 0 3 5 6. Matriks Segitiga

Matriks segitiga adalah matriks bujur sangkar yang elemen-elemen dibawah atau diatas elemen diagonal bernilai nol. Jika yang bernilai nol adalah elemen-elemen dibawah elemen diagonal maka disebut matriks se-gitiga atas, sebaliknya disebut matriks sese-gitiga bawah. Dalam hal ini, juga tidak disyaratkan bahwa elemen diagonal harus bernilai tak nol.

Contoh 2.9 A = 2 6 6 6 4 1 0 1 0 0 2 0 0 1 3 7 7 7 5; B = 2 6 6 6 4 1 0 0 1 0 0 0 2 1 3 7 7 7 5; C = 2 6 6 6 4 1 0 0 0 2 0 0 0 1 3 7 7 7 5

Matriks A adalah matriks segitiga bawah, matriks B adalah matriks segitiga atas, sedangkan matriks C adalah matriks segitiga bawah dan juga matriks segitiga atas.

7. Matriks Identitas

Matriks identitas adalah matriks diagonal yang elemen diagonalnya bernilai 1.

(22)

Contoh 2.10 A = 2 6 6 6 4 1 0 0 0 1 0 0 0 1 3 7 7 7 5

2.3 Matriks Bagian (Submatriks)

De…nisi 2.11 Sebuah matriks dapat dibagi-bagi atau dipartisi ke matriks-matriks

yang lebih kecil dengan menyelipkan garis-garis horizontal maupun vertikal di-antara baris dan kolom yang ditentukan. Hasil partisi tersebut dinamakan sub-matriks [4].

Misalkan matriks A ditulis sebagai berikut :

A3 4 = 2 6 6 6 4 a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 3 7 7 7 5

Dengan partisinya, yaitu :

A3 4= 2 6 6 6 4 a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 3 7 7 7 5= 2 4a11 a12 a13 a21 a22 a23 3 5 = A2 3 2.4 Matriks Su-Doku

Matriks Su-Doku adalah matriks berukuran n2 n2dimana n 2, sedemikian

sehingga setiap baris, setiap kolom dan setiap blok berukuran n n memuat semua

angka 1 sampai n2. Misalkan matriks Su-Doku berukuran 9 9akan mempunyai

9baris, 9 kolom dan 9 blok berukuran 3 3. Aturan dalam permainan Su-Doku

adalah sebagai berikut :

Untuk setiap baris entri-entrinya terdiri dari angka 1 sampai 9 dengan syarat entri-entri yang muncul tepat satu kali,

(23)

syarat entri-entri yang muncul tepat satu kali,

Untuk setiap blok yang berukuran 3 3, entri-entrinya terdiri dari angka 1

sampai 9 dengan syarat entri-entri yang muncul tepat satu kali [2].

Berdasarkan Wei Meng Lee [5] koordinat dari entri-entri pada matriks Su-Doku yaitu sebagai berikut :

(1; 1) (1; 2) (1; 3) (1; 4) (1; 5) (1; 6) (1; 7) (1; 8) (1; 9) (2; 1) (2; 2) (2; 3) (2; 4) (2; 5) (2; 6) (2; 7) (2; 8) (2; 9) (3; 1) (3; 2) (3; 3) (3; 4) (3; 5) (3; 6) (3; 7) (3; 8) (3; 9) (4; 1) (4; 2) (4; 3) (4; 4) (4; 5) (4; 6) (4; 7) (4; 8) (4; 9) (5; 1) (5; 2) (5; 3) (5; 4) (5; 5) (5; 6) (5; 7) (5; 8) (5; 9) (6; 1) (6; 2) (6; 3) (6; 4) (6; 5) (6; 6) (6; 7) (6; 8) (6; 9) (7; 1) (7; 2) (7; 3) (7; 4) (7; 5) (7; 6) (7; 7) (7; 8) (7; 9) (8; 1) (8; 2) (8; 3) (8; 4) (8; 5) (8; 6) (8; 7) (8; 8) (8; 9) (9; 1) (9; 2) (9; 3) (9; 4) (9; 5) (9; 6) (9; 7) (9; 8) (9; 9)

Gambar 2:1 Koordinat Su-Doku

Sedangkan untuk mende…nisikan blok dari Su-Doku dimulai dari pojok kiri atas sampai pojok kanan bawah. Blok-blok pada Su-Doku dinamakan dengan angka 1 sampai 9. Pembagian bloknya terdapat pada Gambar 2:3. Berikut contoh entri-entri blok 5 dari Su-Doku adalah sebagai berikut :

(4; 4) (4; 5) (4; 6)

(5; 4) (5; 5) (5; 6)

(6; 4) (6; 5) (6; 6)

(24)

Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Row1 Row2 1 2 3 Row3 Row4 Row5 4 5 6 Row6 Row7 Row8 7 8 9 Row9

Gambar 2:3 Pembagian Blok Su-Doku

Berdasarkan Zong Woo Geem [2] berikut adalah contoh dari permainan Su-Doku : 2 5 4 3 1 6 8 9 7 7 6 3 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 7 5 3 2 4 6 6 3 2 8 4 9 7 1 5 5 4 7 2 6 1 9 3 8 4 7 5 6 9 2 3 8 1 3 1 9 5 7 8 4 6 2 8 2 6 1 3 4 5 7 9

Gambar 2:4 Contoh Permainan Su-Doku

Dari Gambar 2:4 diatas dapat dilihat bahwa permainan Su-Doku memiliki tiga syarat, yaitu :

Untuk setiap baris entri-entrinya terdiri dari angka 1 sampai 9 yang muncul tepat satu kali

(25)

tepat satu kali

Untuk setiap blok yang berukuran 3 3, entri-entrinya terdiri dari angka 1

sampai 9 yang muncul tepat satu kali

Dengan pembagian bloknya (submatriks), yaitu sebagai berikut :

1-3 4-6 7-9 1-3 2 6 6 6 4 2 5 4 7 6 3 1 9 8 3 7 7 7 5 Blok 1 2 6 6 6 4 3 1 6 9 8 5 4 2 7 3 7 7 7 5 Blok 2 2 6 6 6 4 8 9 7 1 2 4 6 5 5 3 7 7 7 5 Blok 3 4-6 2 6 6 6 4 9 8 1 6 3 2 5 4 7 3 7 7 7 5 Blok 4 2 6 6 6 4 7 5 3 8 4 9 2 6 1 3 7 7 7 5 Blok 5 2 6 6 6 4 2 4 6 7 1 5 9 3 8 3 7 7 7 5 Blok 6 7-9 2 6 6 6 4 4 7 5 3 1 9 8 2 6 3 7 7 7 5 Blok 7 2 6 6 6 4 6 9 2 5 7 8 1 3 4 3 7 7 7 5 Blok 8 2 6 6 6 4 3 8 1 6 6 2 5 7 9 3 7 7 7 5 Blok 9 Gambar 2.5 Pembagian Blok pada Permainan Su-Doku

Sesuai dengan pengertian matriks Su-Doku, maka dapat dibuat suatu per-mainan Su-Doku. Perper-mainan Su-Doku yaitu suatu perper-mainan penempatan

angka-angka 1 sampai 9 pada matriks berukuran 9 9dengan syarat setiap baris, kolom

dan blok 3 3hanya berisi angka 1 sampai 9 tepat satu kali. Permainan Su-Doku

memiliki beberapa kotak-kotak yang belum diisi dengan angka-angka, sehingga tujuan dari permainan Su-Doku adalah mengisi kotak-kotak kosong tersebut de-ngan suatu angka sehingga menghasilkan suatu solusi Su-Doku.

Dari contoh permainan Doku diatas akan dibentuk suatu permainan Doku pada Gambar 2:6. dimana merupakan salah satu contoh permainan Su-Doku yang setelah diselesaikan akan menghasilkan matriks Su-Su-Doku pada Gam-bar 2:4. Cara penyelesaian permainan Su-Doku diatas adalah kita harus mengisi kotak-kotak kosong diatas dengan angka 1 sampai 9 sehingga akhirnya akan

(26)

men-jadi suatu matriks Su-Doku. Kotak-kotak kosong diatas masing-masing hanya dapat diisi oleh tepat satu angka. Sehingga setelah permainan Su-Doku sele-sai dimainkan, maka akan membentuk suatu matriks Sudoku yang unik, karena hanya memiliki satu solusi pada Gambar 2:4.

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

Gambar 2.6 Contoh Masalah Permainan Su-Doku

Pada tahun 2006, Felgenhauer dan Jarvis melakukan penelitian dengan tu-juan mencari jumlah matriks Su-Doku yang ada. Dan mereka menemukan bahwa

tedapat 6670903752021072936960 6:671 1021 matriks Su-Doku yang unik

yang berukuran 9 9. Dalam membentuk sebuah permainan Su-Doku, akan digu-nakan pengacakan dalam menentukan angka-angka yang dapat dipilih dan

ditem-patkan pada matriks 9 9. Sehingga dalam menyelesaikan permainan Su-Doku

akan diperoleh salah satu matriks Su-Doku dari 6670903752021072936960

6:671 1021 matriks Su-Doku yang sudah ada [6].

2.5 Optimisasi

Optimisasi merupakan suatu proses menemukan solusi terbaik dari semua solusi yang mungkin dan memberikan nilai minimum atau maksimum dari fungsi tujuan. Secara umum masalah optimisasi dapat ditulis :

(27)

kendala gj(x) 0; j = 1; 2; : : : ; J hk(x) = 0; k = 1; 2; : : : ; K x(L)i xi x (U ) i ; i = 1; 2; : : : ; n

Solusi x adalah vektor dari n variabel keputusan : x = (x1; x2; : : : ; xn)T.

Himpunan terakhir dari kendala disebut batas variabel, membatasi setiap variabel

keputusan (decision variabels) xi yang nilainya berada diantara batas bawah x

(L) i

dan batas atas x(U )i . Batas-batas ini dinamakan ruang variabel keputusan D atau

dikenal sebagai ruang keputusan.

Bentuk gj(x)dan hk(x)disebut fungsi kendala. Solusi x yang tidak memenuhi

setiap kendala (J + K) dan setiap batas variabel disebut solusi yang tidak layak (infeasible solution). Sebaliknya, jika setiap solusi x memenuhi seluruh kendala dan batas variabel, maka solusi itu disebut solusi yang layak (feasible solution).

Di sisi lain, jika tidak ada kendala yang ditentukan maka xi dapat bernilai

bera-papun disumbu x (atau bilangan bulat), masalah optimisasi ini dinamakan opti-misasi tanpa kendala [15]. Masalah optiopti-misasi tanpa kendala dimana keadaan

op-timal dapat terjadi pada titik-titik kritis dengan kondisi stasioner yaitu f0(x) = 0

[16].

2.6 Maksimum dan Minimum Fungsi

Dalam hidup ini kita sering menghadapi masalah guna mendapatkan jalan terbaik untuk melakukan sesuatu. Sebagai contoh seorang petani ingin memilih kombinasi hasil panen yang dapat menghasilkan keuntungan terbesar. Kadang kala masalah dapat dirumuskan sehingga akan melibatkan memaksimumkan dan meminimumkan fungsi tertentu. Andaikan kita mengetahui fungsi f dan do-main(daerah asal) S seperti Gambar 2:7. Akan ditentukan apakah f memiliki ni-lai maksimum atau minimum pada S. Anggap bahwa nini-lai-nini-lai tersebut ada, kita ingin mengetahui lebih lanjut dimana dalam S nilai-nilai itu berada. Akhirnya,

(28)

kita dapat menentukan nilai-nilai maksimum dan minimum.

:

Gambar 2:7 Fungsi f dan domain

De…nisi 2.12 Andaikan S, daerah asal f , memuat titik c. Kita katakan bahwa:

(i) f (c) adalah nilai maksimum f pada S jika f (c) f (x) untuk semua x di

S;

(ii) f (c) adalah nilai minimum f pada S jika f (c) f (x) untuk semua x di S;

(iii) f (c) adalah nilai eksrim f pada S jika ia adalah nilai maksimum atau nilai minimum.

Teorema 2.13 (Teorema Eksistensi Mak-Min). Jika f kontinu pada selang

tertutup [a; b], maka f mencapai nilai maksimum dan nilai minimum.

Teorema 2.14 Andaikan f dide…nisikan pada selang I yang memuat titik c. jika

f (c) adalah titik ekstrim, maka c haruslah suatu titik kritis; yakni c berupa salah satu :

1. titik ujung I;

2. titik stasioner dari f (f0(c) = 0);

(29)

2.7 Maksimum dan Minimum Lokal

Berdasarkan subbab 2:6 nilai maksimum (jika ada) suatu fungsi f pada him-punan S adalah nilai f terbesar yang dicapai pada keseluruhan himhim-punan S. Kadang-kadang diacu sebagai nilai maksimum global, atau nilai maksimum absolut dari f . Jadi untuk fungsi f dengan daerah asal S = [a; b] yang gra…knya diskets dalam Gambar 2:8, f (a) adalah nilai maksimum global. Sedangkan f (c) suatu nilai maksimum lokal, atau nilai maksimum relatif. Tentu saja nilai maksimum global otomatis juga nilai maksimum lokal [17]. Gambar 2:9 menun-jukkan sejumlah kemungkinan. Perhatikan bahwa nilai maksimum global (jika ada) hanyalah yang terbesar diantara nilai-nilai maksimum lokal. Sama halnya dengan nilai minimum global adalah yang terkecil di antara nilai-nilai minimum lokal.

Gambar 2:8 Sketsa Gra…k fungsi f dengan daerah asal

De…nisi 2.15 Andaikan S, daerah asal f , memuat titik c, kita katakan bahwa :

(i) f (c) nilai maksimum lokal f jika terdapat selang (a; b) yang memuat c sedemikian sehingga f (c) adalah nilai maksimum f pada (a; b) \ S;

(ii) f (c) nilai minimum lokal f jika terdapat selang (a; b) yang memuat c sedemikian sehingga f (c) adalah nilai minimum f pada (a; b) \ S;

(iii) f (c) nilai ekstrim lokal f jika ia berupa nilai maksimum lokal atau mini-mum lokal.

(30)

Gambar 2:9 Minumum Lokal dan Maksimum Lokal

Masalah optimisasi dapat diselesaikan dengan berbagai macam metode, salah satunya yaitu dengan menggunakan metode metaheuristik [7].

Metaheuristik adalah metode penyelesaian masalah optimisasi yang dilakukan dengan memperbaiki kandidat solusi secara iteratif dan mampu menghasilkan so-lusi yang baik dalam waktu yang cepat, tetapi tidak menjamin bahwa penyele-saian yang dihasilkan merupakan penyelepenyele-saian yang terbaik. Dan salah satu jenis metode metaheuristik yang akan digunakan dalam skripsi ini adalah Harmony Search Algorithm [7]:

(31)

BAB 3

Harmony Search Algorithm untuk

Menyelesaikan Permainan Su-Doku

3.1 Harmony Search Algorithm

Harmony Search Algorithm dapat menyelesaikan suatu permainan Su-Doku sehingga menghasilkan matriks Su-Doku. Cara kerja dari Harmony Search Algo-rithm adalah mengisi kotak-kotak yang kosong pada permainan Su-Doku secara satu persatu sampai terbentuk matriks Su-Doku. Sebelum menggunakan Har-mony Search Algorithm, maka terlebih dahulu kita menginput satu permainan Su-Doku dengan beberapa kotak belum diisi angka-angka sesuai dengan tingkat kesulitannya. Semakin banyak angka yang kita input, maka semakin mudah dalam menyelesaikannya. Angka-angka yang kita input ke dalam permainan Su-doku harus sesuai dengan prinsip-prinsip permainan Su-Doku, yaitu tidak boleh ada angka yang sama dalam setiap baris, kolom atau bloknya.

Langkah-langkah dalam menyelesaikan permainan Su-Doku dengan Harmony Search Algorithm :

3.1.1 Inisialisasi Fungsi Tujuan

Berdasarkan Zong Woo Geem [2], fungsi tujuan yang akan digunakan dalam menyelesaikan permainan Su-Doku adalah sebagai berikut :

f (xn) = 9 X i=1 9 X j=1 xij 45 + 9 X j=1 9 X i=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45 (3.1)

dimana xij = kotak pada baris i dan kolom j yang berisi angka 1 9, dengan

i; j 2 f1; 2; 3; 4; 5; 6; 7; 8; 9g dan Bk = kotak pada blok k.

(32)

di-mana diharapkan bisa untuk meminimalkan total jumlah angka-angka untuk se-tiap baris yang mendatar, kolom yang menurun, dan area bloknya pada sese-tiap baris, kolom dan bloknya. Sedangkan untuk angka 45 merupakan hasil penjum-lahan dari 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45 untuk menjamin bahwa setiap angka tersebut hanya ada satu kali pada setiap baris, kolom dan bloknya [2].

3.1.2 Inisialisasi Parameter

Dalam permainan Su-Doku ini menggunakan parameter secara umum dalam Harmony Search Algorithm. Parameternya adalah sebagai berikut :

1. HM S (Harmony Memory Size) adalah jumlah dari kumpulan harmony

atau bisa disebut sebagai jumlah populasi [2]. (1 HM S 100) [8]

2. HM CR (Harmony Memory Consideration Rate) adalah probabilitas pemi-lihan angka yang akan diubah atau diganti dari kandidat solusi Su-Doku

pada populasi. (0:5 HM CR 0:9) [2]

3. P AR (Pitch Adjustment Rate) adalah probabilitas melakukan penggantian angka apakah harus diubah, disesuaikan atau diganti dengan angka yang

lain pada kotak kosong dalam matriks Su-Doku. (0:01 P AR 0:5) [2]

4. N I (Number of Improvisations) adalah batasan jumlah iterasi sebagai kri-teria pemberhentian atau perulangan yang digunakan selama proses penye-suaian angka-angka pada kotak kosong. (N I = f100; 500; 1000; 10000g) [2]

Harmony Search Algorithm akan berhenti ketika mencapai kriteria tertentu diantaranya ketika telah mencapai batas N I.

3.1.3 Pembentukan Harmony Memory (HM )

Pada langkah ini akan dibentuk matriks solusi yang dibangkitkan secara acak sebanyak HM S, kemudian disimpan dalam HM . Berikut contoh matriks solusi

(33)

: 2 6 6 6 6 6 6 6 6 6 4 x111 x112 x113 x119 x1 21 x122 x123 x129 x131 x132 x133 x139 .. . x191 x192 x193 x199 3 7 7 7 7 7 7 7 7 7 5 =) Z(x1) (3.2) 2 6 6 6 6 6 6 6 6 6 4 x2 11 x212 x213 x219 x221 x222 x223 x229 x2 31 x232 x233 x239 .. . x2 91 x292 x293 x299 3 7 7 7 7 7 7 7 7 7 5 =) Z(x2) (3.3) 2 6 6 6 6 6 6 6 6 6 4 xHM S11 xHM S12 xHM S13 xHM S19 xHM S 21 xHM S22 xHM S23 xHM S29 xHM S31 xHM S32 xHM S33 xHM S39 .. . xHM S91 xHM S92 xHM S93 xHM S99 3 7 7 7 7 7 7 7 7 7 5 =) Z(xHM S) (3.4) dimana xn

ij = kotak pada baris i dan kolom j pada vektor nth dalam HM ; dan

Z(xn) = hasil dari fungsi matriks nth dalam HM .

Kemudian melakukan proses random selection yang akan digunakan untuk mengisi matriks solusi yang baru dalam HM yang dinyatakan sebagai berikut :

xnij = XLij + rand (XUij XLij)

dimana ij = baris i dan kolom j, untuk i; j 2 f1; 2; 3; 4; 5; 6; 7; 8; 9g;

n 2 f1; 2; 3; :::; HMSg; XLij = angka terkecil yang mungkin dari nilai

kemung-kinan baris i dan kolom j; XUij = angka terbesar yang mungkin dari nilai

ke-mungkinan baris i dan kolom j; rand = nilai acak antara 0 sampai 1.

Dari proses random selection diatas, maka akan dicari jarak terkecil dengan nilai yang mungkin yang sudah ada, sehingga didapat nilai untuk mengisi kotak

(34)

kosong. Aturannya sebagai berikut :

dnij;k= xnij yij;k 2

dimana dn

ij;k = jarak dari baris i dan kolom j nilai yang mungkin ke-k untuk

HM S ke-n, xnij =hasil random selection pada baris i kolom j untuk HM S ke-n,

yij;k =nilai yang mungkin dari baris i kolom j ke-k pada kotak kosong.

Dari aturan diatas didapat nilai dn

ij;k dari masing-masing nilai yang mungkin

dari kotak kosong. Berdasarkan nilai dn

ij;k terkecil, maka nilai yang mungkin ke-k

yang bersesuaian dengan dn

ij;k tersebut akan dimasukkan ke kotak yang kosong.

Dalam pembentukan suatu HM , maka setiap baris harus disusun sesuai

dengan nilai dari fungsi tujuannya yaitu f (xn). Nilai-nilai fungsi tujuan dari

banyaknya HM S disusun berdasarkan urutannya, bisa mulai dari terbesar hingga terkecil atau sebaliknya, tergantung bentuk fungsi tujuan yang kita inginkan. Fungsi tujuan ini berfungsi untuk mengetahui himpunan mana yang memiliki nilai terbaik dan nilai terburuk. Dalam fungsi tujuan ini menggunakan masalah meminimumkan, yaitu : HM = 2 6 6 6 6 6 6 6 6 6 4 x1 11 x112 x113 x119 x1 21 x122 x123 x129 x1 31 x132 x133 x139 .. . x1 91 x192 x193 x199 3 7 7 7 7 7 7 7 7 7 5 ; :::; 2 6 6 6 6 6 6 6 6 6 4 xHM S 11 xHM S12 xHM S13 xHM S19 xHM S 21 xHM S22 xHM S23 xHM S29 xHM S 31 xHM S32 xHM S33 xHM S39 .. . xHM S 91 xHM S92 xHM S93 xHM S99 3 7 7 7 7 7 7 7 7 7 5 atau HM = 2 6 6 6 6 6 6 6 6 6 4 x1 1 x12 x13 x19 x21 x22 x23 x29 x3 1 x32 x33 x39 .. . xHM S 1 xHM S2 xHM S3 xHM S9 3 7 7 7 7 7 7 7 7 7 5

(35)

dengan fungsi tujuannya : f (x1) f (x2) f (x3) .. . f (xHM S)

Misalkan f (y1); f (y2); f (y3); : : : ; f (yHM S) adalah nilai fungsi tujuan yang sudah

diurutkan, maka f (y1) < f (y2) < f (y3) <; : : : ; < f (yHM S):

Fungsi tujuan yang dipakai dalam menyelesaikan permainan Su-Doku ini adalah fungsi tujuan dengan menggunakan masalah meminimumkan, dimana ni-lai terbaik akan dipakai menjadi solusinya, sedangkan nini-lai terburuk akan ter-eliminasi dan digantikan dengan nilai yang lebih baik selama proses perulangan berlangsung.

Proses selanjutnya adalah proses improvisasi bertujuan untuk menghasilkan harmony baru : xN EWij =HMN EW = 2 6 6 6 6 6 6 6 6 6 4 xN EW11 xN EW12 xN EW13 xN EW19 xN EW 21 xN EW22 xN EW23 xN EW29 xN EW31 xN EW32 xN EW33 xN EW39 .. . xN EW91 xN EW92 xN EW93 xN EW99 3 7 7 7 7 7 7 7 7 7 5

dimana sebelumnya telah terbentuknya HM awal, yaitu HM terbaik berdasarkan fungsi tujuannya. Dalam proses pembentukan harmony baru ini akan digunakan tiga komponen utama dari Harmony Search Algorithm, yaitu random selection, memory consideration, dan pitch adjustment.

3.1.4 Pembentukan Harmony Memory Baru (HMN EW)

Pada proses pembentukan HMN EW melibatkan tiga komponen utama dari

Harmony Search Algorithm yaitu random selection, memory consideration, dan pitch adjustment.

(36)

Random Selection

Penggunaan random selection untuk HMN EW yaitu dengan cara seleksi acak

dengan memilih angka antara 1 sampai 9 (1 xN EW

ij 9) dengan peluang

(1 HM CR):

xN EWij xij; xij 2 f1; 2; 3; 4; 5; 6; 7; 8; 9g w:p(1 HM CR)

Memory Consideration

Proses memory consideration dilakukan untuk mengambil sebuah nilai yang terdapat dalam matriks solusi HM .

xN EWij xij; xij 2 x1ij; x2ij; : : : ; xHM Sij w:p(HM CR)

Sebuah HMN EW diperoleh berdasarkan posisi nilai dalam HM dengan aturan

sebagai berikut :

Jika rand < HM CR, maka HMN EW 2 x1ij; x2ij; : : : ; xHM Sij ; dimana N EW =

brand HMSc + 1

Misal, nilai dari HMN EW dapat dipilih dari berapapun angka-angka yang

tersimpan dalam HM (x1ij; x2ij; : : : ; xHM Sij ). Angka dari kotak lainnya dari HMN EW

dapat dipilih dengan cara yang sama. Angka yang dihasilkan selama proses ini akan ditampung sebagai solusi atau bisa menjadi jawaban terbaik.

Jika rand HM CR, maka dilakukan proses random selection ulang yang

diharapkan dapat memberikan solusi yang lebih baik dari sebelumnya. Proses random selection ini dilakukan sama seperti pada tahap pembentukan HM .

Pitch Adjustment

Pada proses memory consideration akan terpilih satu angka, dimana kemu-dian akan dilakukan proses pitch adjustment. Sebelum dilakukan proses pitch adjustment akan dilakukan proses random selection terlebih dahulu. Proses pitch adjustment ini dilakukan dengan cara mengubah satu atau lebih harmony yang

(37)

berbeda. Nilai HMN EW ini diharapkan akan menghasilkan solusi yang lebih baik

daripada harmony sebelumnya. Apabila proses ini dilakukan, maka nilai yang

di-hasilkan pada proses memory consideration yaitu HMN EW dapat diganti dengan

nilai kandidat yang mungkin atau neighbor. Aturan pada proses ini yaitu :

Jika rand < P AR, maka HMN EW = xN EW

ij + w; w 2 f:::; 2; 1; 1; 2; :::g.

Nilai yang dihasilkan dari proses pitch adjustment akan dilakukan kembali untuk iterasi selanjutnya sampai diperoleh nilai fungsi tujuan yang terbaik.

3.1.5 Update Harmony Memory

Jika hasil dari matriks solusi HMN EW = xN EW

1 ; xN EW2 ; : : : ; xN EW9 memiliki

nilai fungsi tujuan yang lebih baik dari matriks solusi HM , HMN EW maka akan

menggantikan matriks solusi HM yang memiliki niliai fungsi tujuan terburuk.

Selanjutnya matriks solusi HMN EW akan dimasukkan ke dalam HM , sedangkan

matriks solusi HM yang memiliki fungsi tujuan terburuk akan dikeluarkan dari HM. Kemudian HM akan melakukan proses pengurutan kembali berdasarkan fungsi tujuan yang baru sesuai dengan masalah meminimumkan.

Proses selanjutnya akan berulang kembali ke proses memory consideration, pitch adjusment, dan random selection, kemudian akan melakukan proses update HM. Proses ini akan berhenti jika ketika proses ketika HM memperoleh ni-lai fungsi tujuan terbaik, yaitu 0 atau ketika telah mencapai maksimum nini-lai iterasinya, yaitu paremeter N I.

(38)
(39)

BAB 4

Aplikasi

Harmony Search Algorithm pada

Penyelesaian Permainan Su-Doku

Misalkan diberikan satu permainan Su-Doku :

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

Gambar 3:2 Masalah Permainan Su-Doku

4.1 Menentukan Fungsi Tujuan

Permasalahan permainan Su-Doku adalah mengisi kotak-kotak kosong de-ngan angka 1 sampai 9 dimana tidak boleh ada angka yang sama untuk setiap baris, kolom dan bloknya. Maka permasalahan permainan Su-Doku adalah kita harus meminimumkan fungsi tujuan terbaiknya dengan formulasi sebagai berikut:

min f (xn) = 9 X i=1 9 X j=1 xij 45 + 9 X j=1 9 X i=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45

(40)

4.2 Menentukan Parameternya

Untuk permainan Su-Doku pada Gambar 3:2 akan ditetapkan nilai untuk masing-masing parameternya, yaitu HM S = 2; HM CR = 0:8; P AR = 0:2;dan N I = 500. Setelah menentukan parameter-parameter Harmony Search Algorithm untuk menyelesaikan permainan Su-Doku, langkah selanjutnya adalah pemben-tukan harmony memory.

4.3 Pembentukan Harmony Memory (HM )

Harmony Memory (HM ) pada permainan Su-Doku menyatakan kumpulan dari harmony yang berupa kandidat matriks Su-Doku. Langkah awal membentuk

HM yaitu diberikan permainan Su-Doku sebayak jumlah HM S yaitu 2 adalah

sebagai berikut : x1 = 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 0 5 0 3 0 6 0 0 7 0 0 0 0 8 5 0 2 4 0 9 8 4 2 0 6 0 3 9 0 1 0 0 3 2 0 6 0 3 0 0 0 0 0 1 0 5 0 7 2 6 0 9 0 8 4 0 5 0 9 0 3 8 0 0 1 0 5 7 0 0 0 2 8 0 0 1 0 4 0 7 0 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 x2 = 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 0 5 0 3 0 6 0 0 7 0 0 0 0 8 5 0 2 4 0 9 8 4 2 0 6 0 3 9 0 1 0 0 3 2 0 6 0 3 0 0 0 0 0 1 0 5 0 7 2 6 0 9 0 8 4 0 5 0 9 0 3 8 0 0 1 0 5 7 0 0 0 2 8 0 0 1 0 4 0 7 0 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5

(41)

Tujuan dari permainan Su-Doku ini adalah memberikan sebuah angka untuk kotak yang bernilai 0 sehingga menghasilkan beberapa harmony yang berupa kandidat matriks Su-Doku yang disimpan pada HM .

Sebelum mengisi kotak yang bernilai 0 (atau kotak kosong) pada permainan Su-Doku, akan dicari nilai-nilai yang mungkin untuk masing-masing kotak kosong. Dari Gambar 3:2 diketahui terdapat 41 kotak kosong yaitu : (1; 1); (1; 3); (1; 5); (1; 7); (1; 8); (2; 1); (2; 2); (2; 3); (2; 4); (2; 7); (3; 1); (3; 6); (3; 8); (4; 2); (4; 4); (4; 5); (4; 8); (5; 1); (5; 3); (5; 4); (5; 5); (5; 6); (5; 7); (5; 9); (6; 2); (6; 6); (6; 8); (7; 2); (7; 4); (7; 6); (7; 9); (8; 1); (8; 3); (8; 6); (8; 7); (8; 8); (9; 2); (9; 3); (9; 5); (9; 7);dan (9; 9):

1. Untuk kotak (1; 1) akan kita cek semua angka yang yang terdapat pada tiap baris, kolom dan bloknya. Kemudian dilakukan eliminasi yang akan memperoleh nilai kandidat yang dapat diisi untuk kotak (1; 1), yaitu :

Baris = 0 0 3 0 5 6 7 0 0

Kolom = 0 0 0 4 5 0 0 8 9

Blok = 0 0 0 0 5 0 0 8 9

Hasil = 0 0 3 4 5 6 7 8 9

Kandidat yang dapat mengisi kotak (1; 1) didapat dari hasil yang bernilai 0. Maka kandidat untuk kotak (1; 1) yaitu 1 dan 2. Dan dapat ditentukan juga

nilai minimum dan nilai maksimum untuk kotak (1; 1) adalah XL11= 1dan

XU11 = 2

2. Untuk kotak (1; 3) akan kita cek semua angka yang yang terdapat pada tiap baris, kolom dan bloknya. Kemudian dilakukan eliminasi yang akan memperoleh nilai kandidat yang dapat diisi untuk kotak (1; 3), yaitu :

(42)

Baris = 0 0 3 0 5 6 7 0 0

Kolom = 1 0 0 0 5 0 7 8 0

Blok = 0 0 0 0 5 0 0 8 9

Hasil = 1 0 3 0 5 6 7 8 9

Kandidat yang dapat mengisi kotak (1; 3) didapat dari hasil yang bernilai 0. Maka kandidat untuk kotak (1; 3) yaitu 2 dan 4. Dan dapat ditentukan juga

nilai minimum dan nilai maksimum untuk kotak (1; 3) adalah XL13= 2dan

XU13 = 4

3. Untuk kotak (1; 5) akan kita cek semua angka yang yang terdapat pada tiap baris, kolom dan bloknya. Kemudian dilakukan eliminasi yang akan memperoleh nilai kandidat yang dapat diisi untuk kotak (1; 5), yaitu :

Baris = 0 0 3 0 5 6 7 0 0

Kolom = 0 2 0 0 0 6 7 8 9

Blok = 0 2 3 4 5 6 0 8 9

Hasil = 0 2 3 4 5 6 7 8 9

Kandidat yang dapat mengisi kotak (1; 5) didapat dari hasil yang bernilai 0. Maka kandidat untuk kotak (1; 5) yaitu 1:

Setelah melakukan elimininasi dari semua kotak yang kosong maka inilah nilai-nilai yang mungkin untuk masing-masing kotak kosong :

Tabel 3:1 Kandidat yang mungkin untuk permainan Su-Doku

Kotak (1; 1) (1; 3) (1; 5) (1; 7) (1; 8) (2; 1) (2; 2) (2; 3) (2; 4)

Nilai 1; 2 2; 4 1 1; 8 9 1; 3; 6; 7 6; 7 3; 6 7; 9

Kotak (2; 7) (3; 1) (3; 6) (3; 8) (4; 2) (4; 4) (4; 5) (4; 8) (5; 1)

(43)

Kotak (5; 3) (5; 4) (5; 5) (5; 6) (5; 7) (5; 9) (6; 2) (6; 6) (6; 8) Nilai 2; 4; 6 7; 8; 9 4; 5 7; 8; 9 4; 5; 7 5 4 1 3; 4 Kotak (7; 2) (7; 4) (7; 6) (7; 9) (8; 1) (8; 3) (8; 6) (8; 7) (8; 8) Nilai 2; 6; 7 6 2 1 3; 6 3; 6; 9 8 4 4; 6; 9 Kotak (9; 2) (9; 3) (9; 5) (9; 7) (9; 9) Nilai 2; 6 2; 3; 6; 9 3 5 5; 9

Setelah diketahui nilai-nilai yang mungkin dari masing-masing kotak yang kosong, maka langkah selanjutnya adalah mengisi nilai yang bernilai 0 dengan suatu angka namun sebelum itu akan kita lakukan proses random selection ter-lebih dahulu. Dalam proses ini akan dipilih suatu bilangan random secara acak untuk masing-masing kotak kosong.

Berikut ini nilai random untuk membentuk HM :

Tabel 3.2 Nilai random untuk harmony x1

Kotak (1; 1) (1; 3) (1; 5) (1; 7) (1; 8) (2; 1) (2; 2) Random 0:9324 0:9831 0:9416 0:2561 0:3968 0:3820 0:6018 Kotak (2; 3) (2; 4) (2; 7) (3; 1) (3; 6) (3; 8) (4; 2) Random 0:2216 0:6690 0:2274 0:8273 0:8977 0:8903 0:0034 Kotak (4; 4) (4; 5) (4; 8) (5; 1) (5; 3) (5; 4) (5; 5) Random 0:4428 0:5375 0:7230 0:8992 0:9943 0:5703 0:7912 Kotak (5; 6) (5; 7) (5; 9) (6; 2) (6; 6) (6; 8) (7; 2) Random 0:8328 0:7588 0:4034 0:6461 0:5128 0:7830 0:1870 Kotak (7; 4) (7; 6) (7; 9) (8; 1) (8; 3) (8; 6) (8; 7) Random 0:5844 0:4234 0:5387 0:3229 0:5116 0:7563 0:8058 Kotak (8; 8) (9; 2) (9; 3) (9; 5) (9; 7) (9; 9) Random 0:9282 0:4768 0:7645 0:7762 0:6138 0:7068

Tabel 3:3 Nilai random untuk harmony x2

Kotak (1; 1) (1; 3) (1; 5) (1; 7) (1; 8) (2; 1) (2; 2)

(44)

Kotak (2; 3) (2; 4) (2; 7) (3; 1) (3; 6) (3; 8) (4; 2) Random 0:8176 0:6991 0:8431 0:2034 0:8631 0:9813 0:8751 Kotak (4; 4) (4; 5) (4; 8) (5; 1) (5; 3) (5; 4) (5; 5) Random 0:7314 0:8321 0:3527 0:3350 0:5219 0:9561 0:2347 Kotak (5; 6) (5; 7) (5; 9) (6; 2) (6; 6) (6; 8) (7; 2) Random 0:9732 0:9823 0:0751 0:9481 0:1833 0:8469 0:9301 Kotak (7; 4) (7; 6) (7; 9) (8; 1) (8; 3) (8; 6) (8; 7) Random 0:4591 0:0591 0:3816 0:7621 0:8297 0:1907 0:0298 Kotak (8; 8) (9; 2) (9; 3) (9; 5) (9; 7) (9; 9) Random 0:1739 0:7943 0:9830 0:8142 0:4592 0:7477

Setelah menentukan nilai random dari masing-masing harmony, maka langka selanjutnya kita akan melakukan proses random selection untuk mengisi kotak-kotak kosong pada permainan Sudoku. Proses ini akan dilakukan dengan aturan sebagai berikut :

xnij = XLij + rand (XUij XLij)

Kemudian akan dicari jarak terkecil dengan nilai yang mungkin yang sudah ada, sehingga didapat nilai untuk mengisi kotak kosong. Aturannya sebagai berikut :

dnij;k= xnij yij;k 2

Untuk Harmony x1 :

1. Untuk kotak (1; 1) memiliki kandidat angka yaitu (1; 2). Misalkan angka random yang dipilih yaitu 0:9324, maka :

x111 = XL11+ rand (XU11 XL11)

= 1 + 0:9324 (2 1)

= 1; 9324

(45)

dnij;k = xnij yij;k 2

d111;1 = (1; 9324 1)2

d111;1 = 0; 8693

Mencari jarak dari nilai 1; 9324 untuk nilai kemungkinan 2 adalah :

dnij;k = xnij yij;k 2

d111;2 = (1; 9324 2)2

d111;2 = 0; 0045

Karena nilai dari d111;1> d111;2 maka nilai untuk mengisi kotak (1; 1) adalah

nilai kemungkinan yang bersesuaian dengan d1

11;2 yaitu angka 2.

2. Untuk kotak (1; 3) memiliki kandidat angka yaitu (2; 4). Misalkan angka random yang dipilih yaitu 0; 9831. Maka kotak (1; 3) dapat diisi dengan angka :

x113 = XL13+ rand (XU13 XL13)

= 2 + 0:9831 (4 2)

= 3:9662

Mencari jarak dari nilai 3:9662 untuk nilai kemungkinan 2 adalah :

dnij;k = xnij yij;k 2

d113;2 = (3:9662 2)2

d113;2 = 3; 8659

(46)

dnij;k = xnij yij;k 2

d113;4 = (3:9662 4)2

d113;4 = 0; 0011

Karena nilai dari d113;2> d113;4 maka nilai untuk mengisi kotak (1; 3) adalah

nilai kemungkinan yang bersesuaian dengan d1

11;4 yaitu angka 4.

3. Untuk kotak (1; 5) memiliki kandidat angka yaitu (1). Misalkan angka random yang dipilih yaitu 0:9416. Maka kotak (1; 5) dapat diisi dengan angka :

x115 = XL15+ rand (XU15 XL15)

= 1 + 0:9416 (1 1)

= 1

Mencari jarak dari nilai 1 untuk nilai kemungkinan 1 adalah :

dnij;k = xnij yij;k 2

d115;1 = (1 1)2

d115;1 = 0

Karena nilai dari d1

15;1 = 0 maka nilai untuk mengisi kotak (1; 5) adalah

nilai kemungkinan yang bersesuaian dengan d1

15;1 yaitu angka 1.

Untuk Harmony x2 :

1. Untuk kotak (1; 1) memiliki kandidat angka yaitu (1; 2). Misalkan angka random yang dipilih yaitu 0:5036. Maka kotak (1; 1) dapat diisi dengan angka :

(47)

x211 = XL11+ rand (XU11 XL11)

= 1 + 0:5036 (2 1)

= 1:5036

Mencari jarak dari nilai 1:5036 untuk nilai kemungkinan 1 adalah :

dnij;k = xnij yij;k 2

d211;1 = (1:5036 1)2

d211;1 = 0; 2536

Mencari jarak dari nilai 1:5036 untuk nilai kemungkinan 2 adalah :

dnij;k = xnij yij;k 2

d211;2 = (1:5036 2)2

d211;2 = 0; 2464

Karena nilai dari d2

11;1> d211;2 maka nilai untuk mengisi kotak (1; 1) adalah

nilai kemungkinan yang bersesuaian dengan d2

11;2 yaitu angka 2.

2. Untuk kotak (1; 3) memiliki kandidat angka yaitu (2; 4). Misalkan angka random yang dipilih yaitu 0:1381. Maka kotak (1; 3) dapat diisi dengan angka :

x213 = XL13+ rand (XU13 XL13)

= 2 + 0:1381 (4 2)

= 2:2762

(48)

dnij;k = xnij yij;k 2

d213;2 = (2:2762 2)2

d213;2 = 0; 0762

Mencari jarak dari nilai 2:2762 untuk nilai kemungkinan 4 adalah :

dnij;k = xnij yij;k 2

d213;4 = (2:2762 4)2

d213;4 = 2; 9714

Karena nilai dari d2

13;2< d213;4 maka nilai untuk mengisi kotak (1; 3) adalah

nilai kemungkinan yang bersesuaian dengan d213;2 yaitu angka 2.

3. Untuk kotak (1; 5) memiliki kandidat angka yaitu (1). Misalkan angka random yang dipilih yaitu 0:5647. Maka kotak (1; 5) dapat diisi dengan angka :

x215 = XL15+ rand (XU15 XL15)

= 1 + 0:5647 (1 1)

= 1

Mencari jarak dari nilai 1 untuk nilai kemungkinan 1 adalah :

dnij;k = xnij yij;k 2

d215;1 = (1 1)2

d215;1 = 0

Karena nilai dari d2

15;1 = 0 maka nilai untuk mengisi kotak (1; 3) adalah

nilai kemungkinan yang bersesuaian dengan d2

(49)

Hasil dari keseluruhan dari kandidat angka yang diperoleh untuk masing-masing kota kosong, kemudian diisikan ke dalam permainan Su-Doku sehingga akan terbentuk harmony sebagai berikut :

2 5 4 3 1 6 1 9 7 3 7 3 9 8 5 1 2 4 7 9 8 4 2 7 6 5 3 9 4 1 7 5 3 2 5 6 6 3 6 8 5 9 7 1 5 5 4 7 2 6 1 9 4 8 4 2 5 6 9 2 3 8 1 3 1 6 5 7 8 4 8 2 8 2 6 1 3 4 5 7 9 Gambar 3.3 Harmony x1 2 5 2 3 1 6 1 9 7 3 6 6 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 8 5 3 2 4 6 2 3 4 9 4 9 7 1 5 5 4 7 2 6 1 9 4 8 4 7 5 6 9 2 3 8 1 6 1 9 5 7 8 4 4 2 8 6 9 1 3 4 5 7 9 Gambar 3.4 Harmony x2

Langkah selanjutnya adalah menghitung nilai fungsi tujuan untuk masing-masing harmony dengan cara menghitung jumlah dalam setiap baris, kolom dan

bloknya. Misalnya diketahui pada harmony x1, dapat kita ketahui jumlah total

baris pertama adalah 36, yaitu dengan menjumlahkan angka-angka 2 + 5 + 2 +

3 + 1 + 6 + 1 + 9 + 7 = 36, jumlah total kolom pertama pada harmony x1 yaitu

(50)

harmony x1 yaitu 2 + 5 + 2 + 3 + 6 + 3 + 1 + 9 + 8 = 39. Dan berikut adalah

hasil penjumlahan seluruh baris, kolom dan blok untuk :

Tabel 3:4 Fungsi tujuan harmony x1

Baris Kolom Blok

1 38 47 48 2 42 37 45 3 51 46 38 4 42 45 45 5 50 46 46 6 46 45 47 7 40 38 37 8 45 50 45 9 45 45 48

Tabel 3.5 Fungsi tujuan harmony x2

Baris Kolom Blok

1 36 40 42 2 44 49 45 3 45 51 38 4 46 47 43 5 44 45 47 6 46 45 46 7 45 38 55 8 46 44 45 9 52 45 43

Setelah menghitung semua jumlah masing-masing baris, kolom dan blok, dapat dihitung fungsi tujuannya.

(51)

Nilai fungsi tujuan untuk harmony x1, yaitu : f (x1) = 9 X i=1 9 X i=1 xij 45 + 9 X j=1 9 X j=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45 = (j38 45j + j42 45j + j51 45j + j42 45j + j50 45j + j46 45j + j40 45j + j45 45j + j45 45j) + (j47 45j + j37 45j + j46 45j + j45 45j + j46 45j + j45 45j + j38 45j + j50 45j + j45 45j) + (j48 45j + j45 45j + j38 45j + j45 45j + j46 45j + j47 45j + j37 45j + j45 45j + j48 45j) = (7 + 3 + 6 + 3 + 5 + 1 + 5 + 0 + 0) + (2 + 8 + 1 + 0 + 1 + 0 + 7 + 5 + 0) + (3 + 0 + 7 + 0 + 1 + 2 + 8 + 0 + 3) = 30 + 24 + 24 = 78

Nilai fungsi tujuan untuk harmony x2, yaitu :

f (x1) = 9 X i=1 9 X i=1 xij 45 + 9 X j=1 9 X j=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45 = (j36 45j + j44 45j + j45 45j + j46 45j + j44 45j + j46 45j + j45 45j + j46 45j + j52 45j) + (j40 45j + j49 45j + j51 45j + j47 45j + j45 45j + j45 45j + j38 45j + j44 45j + j45 45j) + (j42 45j + j45 45j + j38 45j + j43 45j + j47 45j + j46 45j + j55 45j + j45 45j + j43 45j) = (9 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 7) + (5 + 4 + 6 + 2 + 0 + 0 + 7 + 1 + 0) + (3 + 0 + 7 + 2 + 2 + 1 + 10 + 0 + 2) = 21 + 25 + 27 = 73

Karena fungsi tujuan dari masalah Su-Doku ini adalah memininumumkan, maka masing-masing dari harmony disusun berdasarkan nilai fungsi tujuan

(52)

terke-cil hingga terbesar. Sehingga didapat sebagai berikut : 2 5 2 3 1 6 1 9 7 3 6 6 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 8 5 3 2 4 6 2 3 4 9 4 9 7 1 5 5 4 7 2 6 1 9 4 8 4 7 5 6 9 2 3 8 1 6 1 9 5 7 8 4 4 2 8 6 9 1 3 4 5 7 9

Gambar 3.5 Harmony x2 dengan f (x2)=73

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

Gambar 3.6 Harmony x1 dengan f (x1)=78

Semakin besar nilai fungsi tujuan harmony maka semakin buruk pula har-mony tersebut. Suatu harhar-mony dinyatakan sebagai solusi dari Su-Doku apabila nilai dari fungsi tujuannya sama dengan 0.

Langkah selanjutnya adalah akan diambil harmony yang memiliki fungsi tujuan minimum, maka harmony yang memiliki fungsi tujuan yang minimum

adalah harmony x2. Pada harmony x2 akan diperiksa semua kotak yang tidak

(53)

untuk setiap baris, kolom dan blok. Hasilnya adalah sebagai berikut : 2 5 2 3 1 6 1 9 7 3 6 6 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 8 5 3 2 4 6 2 3 4 9 4 9 7 1 5 5 4 7 2 6 1 9 4 8 4 7 5 6 9 2 3 8 1 6 1 9 5 7 8 4 4 2 8 6 9 1 3 4 5 7 9

Gambar 3.7 Permainan Su-Doku dengan fungsi tujuan minimum

Berdasarkan Su-Doku diatas dapat kita akan diperiksa kembali sehingga menghasilkan kandidat solusi Su-Doku yang baru. Kotak-kotak yang terpilih ada 27 kotak, yaitu : (1; 1); (1; 3); (1; 5); (1; 7); (2; 2); (2; 3); (2; 4); (2; 7); (4; 2); (4; 4); (4; 8); (5; 1); (5; 3); (5; 4); (5; 5); (5; 6); (6; 2); (6; 8); (8; 1); (8; 3); (8; 7); (8; 8); (9; 2); (9; 3);dan (9; 9):

4.4 Pembentukan Harmony Memory Baru (HMN EW)

Langkah selanjutnya adalah pembentukan HMN EW dimana hasil HM akan

diperbaiki untuk mendapatkan HMN EW yang lebih baik. Dalam prosesnya

pem-bentukan HMN EW akan dillibatkan nilai random yang digunakan diawal.

1. Untuk kotak (1; 1) bilangan random yang digunakan adalah 0; 5036, karena 0; 5036 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0; 5036 2c + 1

= 2

(54)

har-mony x2

11yaitu angka 2. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:5318. Karena 0:5318 > P AR , maka dipertahankan x2

11= 2:

2. Untuk kotak (1; 3) bilangan random yang digunakan adalah 0:1381, karena 0:1381 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:1381 2c + 1

= 1

maka untuk kotak (1; 3) akan diganti dengan angka kotak (1; 3) pada

har-mony x1

13yaitu angka 4. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:2594. Karena 0:2594 > P AR , maka dipertahankan x1

13= 4:

3. Untuk kotak (1; 5) bilangan random yang digunakan adalah 0:5647, karena 0:5647 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:5647 2c + 1

= 2

maka untuk kotak (1; 5) akan diganti dengan angka kotak (1; 5) pada

har-mony x2

15yaitu angka 1. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:6351. Karena 0:6351 > P AR , maka dipertahankan x2

15= 1:

4. Untuk kotak (1; 7) bilangan random yang digunakan adalah 0:4693, karena 0:4693 < HM CR, maka akan dilakukan proses memory consideration :

(55)

N EW = brand HMSc + 1

= b0:4693 2c + 1

= 1

maka untuk kotak (1; 7) akan diganti dengan angka kotak (1; 7) pada

har-mony x1

17yaitu angka 1. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:9288. Karena 0:9288 > P AR , maka dipertahankan x1

17= 1:

5. Untuk kotak (2; 2) bilangan random yang digunakan adalah 0:4128, karena 0:4128 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:4128 2c + 1

= 1

maka untuk kotak (2; 2) akan diganti dengan angka kotak (2; 2) pada

har-mony x1

22yaitu angka 7. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:4199. Karena 0:4199 > P AR , maka dipertahankan x1

22= 7:

6. Untuk kotak (2; 3) bilangan random yang digunakan adalah 0:8176, karena 0:8176 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (2; 3). Misalkan nilai randomnya adalah 0:2133, maka sesuai dengan persamaan :

x223 = XL23+ rand (XU23 XL23)

(56)

Mencari jarak dari nilai 3:6399 untuk nilai kemungkinan 3 adalah :

dnij;k = xnij yij;k 2

d223;3 = (3:6399 3)2

d223;3 = 0:4094

Mencari jarak dari nilai 3:6399 untuk nilai kemungkinan 6 adalah :

dnij;k = xnij yij;k 2

d223;6 = (3:6399 6)2

d223;6 = 5; 5700

Karena nilai dari d2

23;3< d223;6 maka nilai untuk mengisi kotak (2; 3) adalah

nilai kemungkinan yang bersesuaian dengan d2

23;3 yaitu angka 3.

7. Untuk kotak (2; 4) bilangan random yang digunakan adalah 0:6991, karena 0:6991 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:6991 2c + 1

= 2

maka untuk kotak (2; 4) akan diganti dengan angka kotak (2; 4) pada

har-mony x2

24yaitu angka 9. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:9522. Karena 0:9522 > P AR , maka dipertahankan x2

24= 9:

8. Untuk kotak (2; 7) bilangan random yang digunakan adalah 0:8431, karena 0:8431 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (2; 7). Misalkan nilai randomnya adalah 0:6544, maka

(57)

sesuai dengan persamaan :

x227 = XL27+ rand (XU27 XL27)

= 1 + 0:6544 (1 1)

= 1

Mencari jarak dari nilai 1 untuk nilai kemungkinan 1 adalah :

dnij;k = xnij yij;k 2

d227;1 = (1 1)2

d227;1 = 0

Karena nilai dari d2

27;1 = 0 maka nilai untuk mengisi kotak (2; 7) adalah

nilai kemungkinan yang bersesuaian dengan d2

27;1 yaitu angka 1.

9. Untuk kotak (4; 2) bilangan random yang digunakan adalah 0:8751, karena 0:8751 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (4; 2). Misalkan nilai randomnya adalah 0:251, maka sesuai dengan persamaan :

x242 = XL42+ rand (XU42 XL42)

= 4 + 0:251 (8 4)

= 5:004

Mencari jarak dari nilai 5:004 untuk nilai kemungkinan 4 adalah :

dnij;k = xnij yij;k 2

d242;4 = (5:004 4)2

(58)

Mencari jarak dari nilai 5:004 untuk nilai kemungkinan 8 adalah :

dnij;k = xnij yij;k 2

d242;6 = (5:004 8)2

d242;6 = 8:9760

Karena nilai dari d242;4< d242;6 maka nilai untuk mengisi kotak (4; 2) adalah

nilai kemungkinan yang bersesuaian dengan d2

42;4 yaitu angka 4:

10. Untuk kotak (4; 4) bilangan random yang digunakan adalah 0:7314, karena 0:7314 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:7314 2c + 1

= 2

maka untuk kotak (4; 4) akan diganti dengan angka kotak (4; 4) pada

har-mony x2

44 yaitu angka 8. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya yaitu 0:0191. Karena 0:0191 < P AR , maka akan dilakukan proses pitch

ad-justment, dimana kotak (4; 4) akan diisi dengan angka neighbor dari x44 = 7.

Penyesuaian dengan neighbor yaitu menghasilkan x44= 7

11. Untuk kotak (4; 8) bilangan random yang digunakan adalah 0:3527, karena 0:3527 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:3527 2c + 1

= 1

(59)

har-mony x1

48yaitu angka 5. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:6178. Karena 0:6178 > P AR , maka dipertahankan x1

48= 5:

12. Untuk kotak (5; 1) bilangan random yang digunakan adalah 0:335, karena 0:335 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:335 2c + 1

= 1

maka untuk kotak (5; 1) akan diganti dengan angka kotak (5; 1) pada

har-mony x1

51yaitu angka 6. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:7643. Karena 0:7643 > P AR , maka dipertahankan x1

51= 6:

13. Untuk kotak (5; 3) bilangan random yang digunakan adalah 0:5219, karena 0:5219 < HM CR, maka akan dilakukan proses memory consideration :

N EW = brand HMSc + 1

= b0:5219 c 2 + 1

= 2

maka untuk kotak (5; 3) akan diganti dengan angka kotak (5; 3) pada

har-mony x2

53yaitu angka 4. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:435. Karena 0:435 > P AR , maka dipertahankan x2

53 = 4:

14. Untuk kotak (5; 4) bilangan random yang digunakan adalah 0:9561, karena 0:9561 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (5; 4). Misalkan nilai randomnya adalah 0:556, maka

(60)

sesuai dengan persamaan :

x254 = XL54+ rand (XU54 XL54)

= 7 + 0:556 (9 7)

= 8:112

Mencari jarak dari nilai 8:112 untuk nilai kemungkinan 7 adalah :

dnij;k = xnij yij;k 2

d254;7 = (8:112 7)2

d254;7 = 1; 2365

Mencari jarak dari nilai 8:112 untuk nilai kemungkinan 8 adalah :

dnij;k = xnij yij;k 2

d254;8 = (8:112 8)2

d254;8 = 0; 0125

Mencari jarak dari nilai 8:112 untuk nilai kemungkinan 9 adalah :

dnij;k = xnij yij;k 2

d254;9 = (8:112 9)2

d254;9 = 0:7885

Karena nilai dari d254;8< d254;7< d254;9 maka nilai untuk mengisi kotak (5; 4)

adalah nilai kemungkinan yang bersesuaian dengan d2

54;8 yaitu angka 8:

15. Untuk kotak (5; 5) bilangan random yang digunakan adalah 0:2347, karena 0:2347 < HM CR, maka akan dilakukan proses memory consideration :

(61)

N EW = brand HMSc + 1

= b0:2347 2c + 1

= 1

maka untuk kotak (5; 5) akan diganti dengan angka kotak (5; 5) pada

har-mony x1

55 yaitu angka 5. Selanjutnya dilakukan pembangkitan nilai random

kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya

yaitu 0:6596. Karena 0:6596 > P AR , maka dipertahankan x1

55= 5:

16. Untuk kotak (5; 6) bilangan random yang digunakan adalah 0; 9732, karena 0; 9732 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (5; 6). Misalkan nilai randomnya adalah 0:6986, maka sesuai dengan persamaan :

x256 = XL56+ rand (XU56 XL56)

= 7 + 0:6986 (9 7)

= 8:3972

Mencari jarak dari nilai 8:3972 untuk nilai kemungkinan 7 adalah :

dnij;k = xnij yij;k 2

d256;7 = (8:3972 7)2

d256;7 = 1:9521

Mencari jarak dari nilai 8:3972 untuk nilai kemungkinan 8 adalah :

dnij;k = xnij yij;k 2

Gambar

Gambar 2:1 Koordinat Su-Doku
Gambar 2:4 Contoh Permainan Su-Doku
Gambar 2.6 Contoh Masalah Permainan Su-Doku
Gambar 2:7 Fungsi f dan domain
+7

Referensi

Dokumen terkait

Kitosan mikrokristalin yang telah diproduksi kemudian dilakukan analisis mutu berupa analisis kadar air, kadar mineral, kadar nitrogen, derajat deasitilasi (DD)

Sehingga dapat disimpulkan bahwa perangkat pembelajaran dengan mengunakan model pembelajaran aktif Guided Teaching yang dirancang peneliti layak digunakan sebagai

ada pengaruh yang positif dari pretest dan posttest serta adanya perbedaan antara hasil penelitian di kelas eksperimen dan kelas kontrol. Penelitian akan menggunakan 2

Aspek penilaian pelayanan ANC dalam pengelolaan anemia ibu hamil digolongkan menjadi dua, yaitu pelayanan ANC baik (jika ibu hamil telah mendapat pelayanan meliputi

Jadi yang dimaksud dengan kompetensi pedagogik guru adalah seperangkat pengetahuan, kecakapan, keterampilan, dan perilaku yang harus dimiliki, dihayati dan dikuasai oleh

Dari 28 genera yang meliputi 4 kelas yang melekat pada jaring selama penelitian, hanya 24 genera dari 3 kelas yang terdapat di usus nilem yaitu kelas

Laporan Pelaksanaan Praktek Kerja Industri (PRAKERIN) yang telah saya tulis ini dibuat dalam rangka memenuhi tugas dari sekolah dan sebagai bahan pertanggung jawaban atas

melaksanakan koordinasi, merumuskan kebijakan, dan berkoordinasi dengan bidang Monitoring dan Evaluasi dalam melaksanakan pemantauan dan evaluasi pelaksanaan program intervensi,