• Tidak ada hasil yang ditemukan

Implementasi Algoritma Genetika Untuk Mendapatkan Solusi Optimal Pada Game Scrabble

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Genetika Untuk Mendapatkan Solusi Optimal Pada Game Scrabble"

Copied!
104
0
0

Teks penuh

(1)

1

1.1Latar Belakang Masalah

Permainan Scrabble mulanya diciptakan pada tahun 1938 dengan nama "Criss-Crosswords" oleh seorang arsitek bernama Alfred Mosher Butts. Permainan ini merupakan penyempurnaan dari permainan Lexiko yang lebih dulu diciptakannya, tapi dilengkapi papan permainan dan cara bermain seperti teka-teki silang. Permainan tetap menggunakan keping huruf seperti Lexiko yang dibuat berdasarkan hasil perhitungan distribusi frekuensi penggunaan huruf berbagai tulisan berbahasa Inggris, termasuk artikel surat kabar The New York Times. Alfred Butts memproduksi sendiri permainan ini dan menawarkannya ke berbagai perusahaan mainan besar tapi tidak laku [1].

Scrabble adalah permainan papan dan permainan menyusun kata yang dimainkan 2 atau 4 orang yang mengumpulkan poin berdasarkan nilai kata yang dibentuk dari keping huruf di atas papan permainan berkotak-kotak (15 kolom dan 15 baris).

Biji permainan berupa keping berbentuk bujur sangkar yang bertuliskan huruf pada salah satu sisi. Pemain mengambil hingga sebanyak tujuh buah keping huruf dari kantong, dan berusaha menyusun kata secara mendatar atau menurun seperti teka-teki silang. Kata-kata yang dibuat harus merupakan kata yang diizinkan untuk dimainkan berdasarkan kamus standar sesuai dengan bahasa yang dimainkan yaitu bahasa sunda. Pemain yang mengumpulkan total poin tertinggi dinyatakan sebagai pemenang.

(2)

dapat diselesaikan dengan metode-metode pencarian salah satunya yaitu pada algoritma genetika.

Algoritma genetika diimplementasikan sebagai simulasi komputer dimana sebuah populasi dari representasi abstrak (disebut kromosom, genotipe, atau genom) kandidat solusi (disebut individu, makhluk, atau fenotipe). Biasanya, solusi direpresentasikan dalam biner sebagai string yang terdiri dari 0 dan 1, namun penggunaan metode encoding lain juga mungkin dipakai. Berbeda dengan teknik pencarian konvensional, algoritma genetika bermula dari himpunan solusi yang dihasilkan secara acak. Kromosom-kromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut generasi. Pada setiap generasi, kromosom dievaluasi berdasarkan suatu fungsi evaluasi. Setelah beberapa generasi maka algoritma genetika akan konvergen pada kromosom terbaik, yang diharapkan merupakan solusi optimal.

Adapun game serupa yang menggunakan metode yang berbeda dengan judul “Penerapan Algoritma Brute Force (Exhaustive Search) dalam permainan Scrabble” yaitu Algoritma Brute Force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah (problem statement) dan definisi konsep yang dilibatkan algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way) meskipun bukan merupakan solusi yang paling benar [2].

(3)

1.2Rumusan Masalah

Berdasarkan uraian pada latar belakang masalah maka di rumuskan sebuah masalah yaitu bagaimana mengimplementasikan algoritma genetika pada game scrabble

1.3Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah untuk mengimplementasikan algoritma genetika pada game scrabble. Adapaun tujuannya adalah sebagai berikut :

1. Mendapatkan solusi optimasi atau optimal untuk penyelesaian masalah pada game scrabble.

2. Mengetahui apakah algoritma genetika tepat digunakan dalam kasus menyelesaikan masalah game scrabble.

1.4Batasan Masalah

Batasan masalah dalam pembangunan game ini adalah sebagai berikut: 1. Game bergenre board game dan logic game.

2. Aplikasi yang dibangun dibatasi hanya untuk game scrabble dengan papan kotak-kotak 15 kolom dan 15 baris.

3. Pengujian kata-kata yang di cari yang di ambil hanya dalam bahasa sunda.

4. Algoritma yang digunakan untuk penyelesaian game scrabble ini adalah algoritma genetika untuk mencari solusi pencarian dan perhitungan perkiraan yang benar.

5. Hasil optimasi yang di hitung adalah kecepatan algoritma genetika dalam pencarian kata di game srabble .

(4)

7. Metode analisis perancangan yang digunakan adalah analisis perancangan dengan menggunakan pemodelan Unified Modeling Language (UML).

1.5Metodologi Penelitian

Metodologi penelitian yang digunakan adalah metodologi analisis deskriptif. Analisis deskriptif adalah metode analisis dengan mendeskripsikan atau menggambarkan data yang telah terkumpul sebagimana adanya tanpa membuat kesimpulan yang berlaku untuk umum. Metodologi ini terbagi menjadi dua metode yaitu metode pengumpulan data dan metode pembangunan perangkat lunak.

1.6Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

1. Tahap pengumpulan data (Studi Literatur)

Pengumpulan data dengan cara mengumpulkan bacaan-bacaan yang ada, baik dari buku-buku, karya tulis, jurnal, paper dan bacaan-bacaan yang berkaitan dengan proses mencari, membaca serta website yang berkaitan dengan masalah yang akan di bahas dalam pembuatan tugas akhir ini.

2. Tahapan analisis algoritma (Observasi)

Teknik analisis algoritma menggunakan teknik eksperimen yang melakukan observasi pada game scrabble dengan metode dan algoritma yang berbeda antara lain Brute Force, Depth First Search.

1.7Metode Pembangunan Perangkat Lunak

(5)

a. Analisa kebutuhan (Analysis)

Analisa kebutuhan adalah tahap menganalisis hal-hal yang diperlukan dalam pelaksanaan proyek pembuatan aplikasi.

b. Perancangan sistem (Planing)

Perancangan sistem adalah tahap penerjemahan dari data yang dianalisis kedalam bentuk yang mudah dimengerti oleh pengguna.

c. Desain sitem (Design)

Desain sistem adalah tahap menggambarkan karakter-karakter game, baik itu berbentuk kotak maupun tulisan dan huruf-huruf serta angka maupun background sebagai map yang akan digunakan.

d. Penulisan pengkodean program (Coding)

Pengkodean adalah tahap penerjemahan data atau pemecahan masalah yang telah dirancang ke dalam bahasa pemrograman tertentu.

e. Pengujian program (Testing)

Pengujian adalah tahap pengujian terhadap aplikasi yang dibangun.

Analisa kebutuhan

Perancangan sistem

Desain sistem

Penulisan pengkodean program

Pengujian program

(6)

1.8Sistematika Penulisan

Sistematika penulisan laporan akhir penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I. PENDAHULUAN

Bab ini berisi penjelasan latar belakang permasalahan pada game scrabble dengan menerapkan algoritma genetika untuk membangkitkan soal permainan dengan sistem random serta mendapatkan solusi penyelesaian jawaban pada permainan scrabble.

Perumusan masalah yang di dapat, dapat menjadi acuan untuk menghasilkan maksud dan tujuan pada game scrabble. Diikuti dengan metodologi penelitian serta sistematika penulisan untuk menggambarkan struktur penulisan yang lebih baik.

BAB II. LANDASAN TEORI

Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal membuat game scrabble dan hal-hal yang berkenaan dalam proses analisis permasalahan serta tinjauan terhadap penelitian-penelitian dalam membangun implementasi algoritma genetika pada game scrabble.

BAB III. ANALISIS DAN PERANCANGAN SISTEM

Menganalisis masalah dari model penelitian, menggambarkan identifikasi masalah, menerapkan keadaan contoh kasus, hardware, software, diagram pembuatan sistem dan UML (Unified Modeling Language).

BAB IV. IMPLEMENTASI DAN PENGUJIAN SISTEM

(7)

kaidah yang di terapkan dalam penelitian. Pada bab ini juga, menerapkan kegiatan implementasi dan pengujian pada game scrabble menggunakan algoritma genetika

BAB V. KESIMPULAN DAN SARAN

(8)
(9)

9

Game Berbasis Desktop merupakan permainan video yang bisa berjalan secara independen atau berjalan sendiri dalam sistem operasi tertentu dengan cara menginstallasi (memasamg aplikasi) dalam sistem operasi komputer (PC) sehingga bisa berjalan tanpa membutuhkan jaringan internet. Game desktop ini mulai dikenal seiring munculnya sistem operasi windows, karena setiap periode sistem operasi windows yang diluncurkan di dalamnya terdapat permainan yang melengkapi hiburan berbentuk multimedia untuk para penggunanya. Game sendiri diambil dari bahasa Inggris yang diterjemahkan yang artinya permainan. Di dalam era perkembangan era perkembangan teknologi yang pesat ini, seperti halnya permainan kartu, catur dan lain-lainnya dapat ditemui melalui dunia virtual atau yang biasa kita mainkan di dalam komputer. Dengan perkembangan teknologi sekarang ini munculah berbagai sarana permainan, misalnya Playstation 3, Xbox 360, Nintendo Wii, PSP, Nintendo DS, maupun PC dari yang berbasis individu ataupun multiplayer [3].

2.2Definisi game

(10)

tombol dan satu atau lebih joystick. Video game biasanya menggunakan sarana tambahan menyediakan interaktivitas dan informasi untuk pemain. Audio hampir universal, menggunakan perangkat reproduksi suara, seperti speaker dan headphone. Umpan balik lain mungkin datang melalui peripheral haptic, seperti getaran atau kekuatan, dengan getaran kadang-kadang digunakan untuk mensimulasikan umpan balik kekuatan.

2.3Genre Game

Saat ini sangat banyak kita temukan game, baik itu game PC, game console (seperti PS, XBOX, PSP, Nintendo DS), game HP (mobile game) dan game flash. Dari banyaknya game yang ada, berdasarkan gameplaynya (cara memainkannya), game dapat diklasifikasikan menjadi beberapa jenis. Dalam hal ini klasifikasi game flash bisa dilihat sebagai berikut [4]:

1) Board game

Board game atau dapat kita istilahkan sebagai “permainan papan”. Pada jenis game ini, pemain diberikan sebuah tampilan yang berisi tentang masalah untuk diselesaikan. Contoh dari game ini antara lain: Pipe dream, Hangaroo, Rotation, Catur, permainan kartu dan sebagainya.

2) Arcade

Game bertipe arcade merupakan game yang menguci kecepatan tangan dari pemainnya. Pada permainan bertipe arcade, semakin tinggi level permainan, permainan akan berjalan semain cepat. Contoh dari game bertipe arcade adalah : zuma, feeding frenzy, Pacman, Arcanoid, Pong, Baba ball dan sebagainya.

3) Action

Berbeda dengan game bertipe aarcade, game bertipe action menjadikan pemain mengendalikan karakter utama dalam game tersebut untuk melakukan beberapa kegiatan (action) seperti melompat, menembak dan sebagainya. Contoh dari game bertipe action antara lain : super mario, mocil, petualangan paddle pop, alloy tease exile dan sebagainya.

(11)

Game bertipe shooting sebagian besar menggunakan mouse sebagai alat pengendalinya. Pada game ini pemain seolah-olah berperan sebagai penembak (first person) atau pemain mengendalikan seorang penembak (third person). 4. ShootingGame bertipe shooting sebagian besar menggunakan mouse sebagai alat pengendalinya. Pada game ini pemain seolah-olah berperan sebagai penembak (first person) atau pemain mengendalikan seorang penembak (third person).Contoh game bertipe shooting antara lain : Duck hunt, Counter Strike, Onimusha dan sebagainya.

5) Fighting

Game bertipe fighting pada dasarnya sama dengan game bertipe action, hanya saja game bertipe fighting pemain mengendalikan sebuah karakter untuk berkelahi dengan karakter lain sampai salah satu karakter kalah. Contoh dari game bertipe fighting antara lain : street fighter, tekken, duel, pencak silat dan sebagainya.

6) Racing

Game betipe racing pada dasarnya adalah sebuah permainan menggerakkan kamera. Pemain diberikan sebuah kendaraan atau sejenisnya untuk menempuh rute tertentu. Contoh dari game bertipe racing antara lain : NFS, Auto bahn, MotoGP, Formula 1 dan sebagainya.

7) Simulation

Game bertipe simulasi adalah sebuah game yang mensimulasikan suatu kegiatan yang sesungguhnya. Contoh dari game bertipe simulasi antara lain : tycoon, simulator pesawat, burger empire dan sebagainya.

8) Real Time Strategi

Game bertipe RTS memposisikan pemain sebagai seorang pemimpin yang mengatur sesuatu (bisa berupa pasukan, koloni, kerajaan dan sebagainya). Contoh dari game bertipe RTS antara lain: war commander, empire earth, romance of the three kingdom dan sebagainya.

9) Role Playing Game

(12)

adalah cerita dalam game. Selain itu didalam game bertipe RPG biasanya terdapat sub game dengan tipe lain (seperti bertipe fighting, action atau RTS). Contoh game bertipe RPG antara lain : BOBO games, Zelda, Megaman, Final Fantasy dan sebagainya.

10)MMO

MMO (Masive Multiplayer Online), merupakan game yang dapat dimainkan secara bersama-sama pada internet browser. Hal yang diutamakan dalam sebuah game bertipe MMO adalah kebersamaan dengan pemain lain. Contoh game bertipe MMO antara lain : ragnarok, pangya, gun bound, seal dan sebagainya. Game flash bertipe MMO masih sangat sedikit-hal tersebut dikarenakan untuk membuat game flash MMO diperlukan software lain (server side software) seperti PHP, CGI, Fire Fox, dan sebagainya. Contoh dari game flash bertipe MMO antara lain : Dofus dan battle-on.

2.4Scrabble

Scrabble adalah permainan papan dan permainan menyusun kata yang dimainkan 2 atau 4 orang yang mengumpulkan poin berdasarkan nilai kata yang dibentuk dari keping huruf di atas papan permainan berkotak-kotak (15 kolom dan 15 baris). Biji permainan berupa keping berbentuk bujur sangkar yang bertuliskan huruf pada salah satu sisi. Pemain mengambil hingga sebanyak tujuh buah keping huruf dari kantong, dan berusaha menyusun kata secara mendatar atau menurun seperti teka-teki silang. Kata-kata yang dibuat harus merupakan kata yang diizinkan untuk dimainkan berdasarkan kamus standar sesuai dengan bahasa yang dimainkan. Pemain yang mengumpulkan total poin tertinggi dinyatakan sebagai pemenang. Scrabble dijual di 121 negara dalam 29 versi bahasa-bahasa di dunia. Seratus juta set permainan scrabble terjual di seluruh dunia, dan setiap tiga keluarga di Amerika memiliki satu set permainan scrabble [5].

(13)

Permainan Scrabble mulanya diciptakan pada tahun 1938 dengan nama "Criss-Crosswords" oleh seorang arsitek bernama Alfred Mosher Butts. Permainan ini merupakan penyempurnaan dari permainan Lexiko yang lebih dulu diciptakannya, tapi dilengkapi papan permainan dan cara bermain seperti teka-teki silang. Permainan tetap menggunakan keping huruf seperti Lexiko yang dibuat berdasarkan hasil perhitungan distribusi frekuensi penggunaan huruf berbagai tulisan berbahasa Inggris, termasuk artikel surat kabar The New York Times. Alfred Butts memproduksi sendiri permainan ini dan menawarkannya ke berbagai perusahaan mainan besar tapi tidak laku. Gambar 2.1 adalah sebagian contoh soal dari scrabble serta solusi penyelesaiannya.

Gambar 2.1 contoh soal dan solusi penyelesaiannya

2.4.2 Aturan permainan scrabble

(14)

sama). Setiap huruf memiliki nilai tertentu (antara 1 sampai 10) yang bergantung pada frekuensi kemunculan huruf tersebut pada tulisan yang standar. Pada edisi Scrabble bahasa Inggris, huruf-huruf yang biasa muncul dalam kosakata bahasa Inggris, seperti huruf "E" atau "O" hanya bernilai 1 poin. Huruf-huruf yang jarang muncul, seperti "Q" dan "Z" masing-masing bernilai 10 poin. Selain itu, terdapat dua keping kosong (tidak ditulisi huruf) yang bernilai poin nol, tapi bisa dipakai untuk melambangkan semua huruf mulai dari "A" sampai "Z". Papan permainan ditandai dengan kotak-kotak "bonus" yang melipatgandakan jumlah poin. Kotak berwarna merah bertuliskan "triple-word" mengalikan 3 total poin yang didapat dari sebuah kata; kotak berwarna merah jambu "double-word" mengalikan 2 total poin yang didapat dari sebuah kata; kotak biru tua "triple-letter" mengalikan 3 nilai huruf yang diletakkan di atasnya, dan kotak biru muda "double-letter" mengalikan 2 nilai huruf yang diletakkan di atasnya. Kotak di bagian tengah papan permainan (H8) bernilai "double-word" dan diberi tanda bintang atau logo.

2.5Kcerdasan Buatan

Kecerdasan buatan merupakan sub-bidang ilmu komputer (computer science) yang khusus ditujukan untuk membuat perangkat lunak dan perangkat keras yang sepenuhnya bisa menirukan beberapa fungsi otak manusia, atau cabang ilmu komputer yang mempelajari otomatisasi tingkah laku cerdas (intelligent). Kecerdasan buatan didasarkan pada teori suara (sound theoretical) dan prinsip-prinsip aplikasi dari bidangnya. Prinsip-prinsip-prinsip ini meliputi struktur data yang digunakan dalam representasi pengetahuan algoritma yang diperlukan untuk mengaplikasikan pengetahuan serta bahasa dan teknik pemograman yang digunakan dalam mengimplementasikannya.

(15)

definisi kecerdasan buatan (artificial intelligence) yang diperoleh dari beberapa textbook berbeda kedalam empat kategori, yaitu [6]:

1. Thinking humanly : The cognitive modeling approach

Pendekatan thinking humanly dilakukan dengan dua cara sebagai berikut : a. Melalui intropeksi dimana proses ini adalah menangkap pemikiran

pemikiran yang didapat pada saat berfikir. b. Melalui eksperimen-eksperimen psikologi. 2. Acting humanly : The turing test approach

Pada tahun 1950, Alan Turing membuat sebuah eksperimen program penginterogasian untuk menguji kemampuan komputer pada manusia melalui teletype (komunikasi berbasis teks jarak jauh). Dalam hal ini, apabila integrator tidak dapat membedakan yang diinterogasi adalah manusia atau komputer maka program tersebut lolos dari turing test. Turing test sengaja menghindari interaksi fisik antara integrator dan komputer, karena simulasi fisik manusia tidak memerlukan intelejensia.

3. Thinking rationally : The laws of thought approach Terdapat dau masalah pada pendekatan ini, yaitu :

a. Tidak mudahnya untuk membuat pengetahuan informal dan menyatakan pengetahuan tersebut kedalam formal term yang diperlukan oleh notasi logika, khususnya ketika pengetahuan tersebut memiliki kepastian kurang dari 100%.

b. Terdapat perbedaan besar antara dapat memecahkan masalah “dalam prinsip” dan memecahkannya “dalam dunia nyata”.

4. Acting rationally : The rationally agent approach

(16)

Thinking humanly dan acting humanly adalah dua definisi dalam arti yang sangat luas. Hingga saat ini, pemikiran manusia yang diluar rasio, yakni refleks dan intuitif (perasaan), belum dapat ditirukan oleh komputer. Sedangkan definisi thinking rationally jauh lebih sempit dari acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer dapat melakukan penlaran secara logis dan juga dapat melakukan aksi secara rasional berdasarkan hasil penalaran.

2.6Algoritma

Algoritma adalah salah satu cabang ilmu komputer yang membahas prosedur penyelesaian suatu permasalahan. Algoritma adalah urutan langkah-langkah dalam menentukan suatu masalah. Algoritma juga dapat didefinisikan dengan deretan langkah komputasi yang mentransformasikan masukan (input) menjadi keluaran (output). Dapat disimpulkan algoritma adalah serangkaian urutan langkah-langkah atau prosedur untuk menyelesaikan suatu masalah dengan memproses nilai keluaran.

Algoritma dapat ditulis dalam bentuk pseudocode ataupun flowchart. Pseudocode berasal dari kata pseudo yang artinya mirip atau menyerupai dan code berarti kode, sehingga pseudocode adalah kode yang menyerupai kode program sebenarnya. Sedangkan flowchart merupakan bentuk gambar atau diagram yang mempunyai aliran satu atau dua arah secara skuensial [7].

2.6.1 Definisi Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian yang disusun secara matematis dan logis. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah [7].

(17)

sebagus apapun algoritma, apabila menghasilkan keluaran yang bernilai salah maka algoritma tersebut bukanlah algoritma yang baik.

2. Seberapa baik algoritma yang diterapkan, artinya algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai sebenarnya. Dalam hal ini, hal terpenting pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang berupa pendekatan).

3. Efisiensi algoritma, artinya efisiensi algoritma dapat ditinjau dari dua hal yaitu efisiensi waktu dan memori.

2.6.2 Sejarah Algoritma

Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi. Dahulu, orang hanya mengenal kata algorism yang berarti proses menghitung dengan angka arab. Para ahli bahasa berusaha menemukan asal kata algorism, dan akhirnya para ahli sejarah matematika berhasil menemukan asal kata yang berasal dari penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al Khawārizmi. Al Khawārizmi dibaca orang barat menjadi algorism. Al Khawārizmi menulis kitab Al Jabar Wal -Muqabala yang artinya “Buku Pemograman Dan Pengurangan” (The Book of Restoration And Reducation). Perubahan kata dari algorism menjadi kata algoritm muncul dikarenakan kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran -sm berubah menjadi –thm. Seiring perkembangan, lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma [7].

2.7Algoritma Genetika

(18)

heuristics. Algoritma ini terinspirasi dari prinsip dari genetika dan seleksi alam (teori evolusi Darwin). Algoritma ini ditemukan di Universitas Michigan, Amerika Serikat, melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya, David Goldberg [8].

Algoritma genetika diimplementasikan sebagai simulasi komputer di mana sebuah populasi dari representasi abstrak (disebut kromosom, genotipe, atau genom) kandidat solusi (disebut individu, makhluk, atau fenotipe). Biasanya, solusi direpresentasikan dalam biner sebagai string yang terdiri dari 0 dan 1, namun penggunaan metode encoding lain juga mungkin dipakai. Berbeda dengan teknik pencarian konvensional, algoritma genetika bermula dari himpunan solusi yang dihasilkan secara acak.

Kromosom-kromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut generasi. Pada setiap generasi, kromosom dievaluasi berdasarkan suatu fungsi evaluasi. Setelah beberapa generasi maka algoritma genetika akan konvergen pada kromosom terbaik, yang diharapkan merupakan solusi optimal. Pertama kali, sebelum algoritma genetika dijalankan, maka perlu didefinisikan fungsi fitness sebagai masalah yang ingin dioptimalkan. Jika nilai fitness semakin besar, maka sistem yang dihasilkan semakin baik. Fungsi fitness ditentukan dengan metode heuristik.

Algoritma genetika sangat tepat digunakan untuk penyelesaian masalah optimasi yang kompleks dan sukar diselesaikan dengan menggunakan metode konvensional. Sebagaimana halnya proses evolusi di alam, suatu algoritma genetika yang sederhana umumnya terdiri dari tiga operasi yaitu: operasi reproduksi, operasi persilangan (crossover), dan operasi mutasi.

Struktur umum dari suatu algoritma genetika dapat didefinisikan dengan langkah-langkah sebagai berikut:

1. Membangkitkan populasi awal secara random.

(19)

3. Evolusi solusi yang akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom hingga kriteria berhenti terpenuhi.

Bila kriteria berhenti belum terpenuhi maka akan dibentuk lagi generasi baru dengan mengulangi langkah 2.

beberapa kriteria berhenti yang sering digunakan

2.7.1 Prinsip Algoritma Genetika

Algoritma genetika terinspirasi dari prinsip genetika dan seleksi alam (teori evolusi Darwin) yang ditemukan di Universitas Michigan, AS, oleh John Holland (1975) melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya, David Goldberg.

Konsep dasar algoritma genetika sebenarnya dirancang utk menyimulasikan proses-proses dlm sistem alam yang diperlukan utk evolusi, khususnya teori evolusi alam yg dicetuskan oleh Charles Darwin, yaitu survival of the fittest [9].

Permasalahan yang membutuhkan algoritma genetika :

1. Ruang pencarian sangat besar, kompleks atau kurang dipahami.

2. Tidak ada pengetahuan yang memadai untuk menyederhanakan ruang pencarian yang sangat besar menjadi ruang pencarian yang lebih sempit.

3. Tidak ada analisis matematis yang bisa menangani ketika metode konvensional gagal menyelesaikan masalah yang dihadapi.

4. Solusi yang dihasilkan tidak harus optimal, asal sudah memenuhi kriteria sudah bisa diterima.

5. Mempunyai kemungkinan solusi yang jumlahnya tak hingga.

6. Membutuhkan solusi “real-time”, yaitu solusi yang bisa didapatkan dengan cepat sehingga dapat diimplementasikan untuk permasalahan yang mempunyai perubahan yang cepat.

2.7.2 Struktur Algoritma Genetika

(20)

terdapat pada sebuah populasi disebut dengan kromosom. Penentuan populasi awal didapat secara acak yang kemudian populasi berikutnya akan didapat dari hasil proses genetika.

Ada beberapa hal yang harus dilakukan dalam algoritma genetika adalah : 1. Mendefinisikan individu, merupakan pernyataan solusi awal dari kasus yang diambil

2. Mendefinisikan nilai fitness, merupakan suatu ukuran seberapa baik individu dalam mencapai solusi.

3. Menentukan proses pembangkitan populasi awal yang dilakukan secara acak

4. Menentukan proses seleksi, crossover atau perkawinan silang.

Beberapa definisi penting yang digunakan dalam Algoritma Genetika, antara lain :

a. Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang membentuk arti tertentu dalam satu kesatuan yang disebut kromoson. Gen ini dapat berupa nilai biner, float, integer maupun karakter.

b. Kromoson, gabungan gen yang membentuk nilai tertentu.

c. Individu, menyatakan suatu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat. d. Populasi, sekumpulan individu yang akan diproses bersama dalam

satu siklus proses evolusi.

e. Nilai Fitness, menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.

(21)

mulai Representasi kromosom

Inisialisasi populasi

Evaluasi

Kriteria Terpenuhi

Hasil

Selesai

Seleksi Krosser

Mutasi

Tidak

Ya

Gambar 2.2 flowchart algoritma genetika

2.7.3 Kelebihan algoritma genetika

Beberapa hal yang termasuk kelebihan dari algoritma genetika adalah sebagai berikut:

1. Mengoptimalkan dengan variabel kontinu atau diskrit. 2. Tidak memerlukan informasi derivatif.

3. Bersamaan pencarian dari sebuah sampling yang luas pada permukaan biaya.

4. Berkaitan dengan sejumlah besar variable. 5. Baik untuk komputer paralel.

(22)

7. Memberikan daftar variable yang optimal, bukan hanya solusi tunggal. 8. Dapat menyandikan variable sehingga optimasi dilakukan dengan mengkodekan variable.

9. Bekerja dengan data numerik yang dihasilkan, data eksperimen, atau analitis fungsi.

Algoritma genetika berangkat dari himpunan solusi yang dihasilkan secara acak yang disebut populasi. Sedangkan setiap individu dalam populasi disebut kromosom yang merupakan representasi dari solusi dan masing-masing dievaluasi tingkat ketanggguhannya (fitness) oleh fungsi yang telah ditentukan. Melalui proses seleksi alam atas operator genetik, gen-gen dari dua kromosom (disebut parent) diharapkan akan menghasi lkan kromosom baru dengan tingkat fitness yang lebih tinggi sebagai generasi baru atau keturunan (offspring) berikutnya. Kromosom-kromosom tersebut akan mengalami iterasi yang disebut generasi (generation). Pada setiap generasi, kromosom dievaluasi berdasarkan nilai fungsi fitness. Setelah beberapa generasi maka algoritma genetika akan konvergen dapat kromosom terbaik, yang merupakan solusi optima

2.7.4 Langkah-langkah algoritma genetika

Struktur umum dari suatu algoritma genetika dapat didefinisikan dengan langkah-langkah sebagai berikut:

1. Pengkodean

Pengkodean disini meliputi pengkodean gen dan kromosom. 2. Inisisalisasi populasi awal

Membangkitkan sejumlah kromosom (sesuai dengan ukuran populasi) untuk dijadikan anggota populasi awal. Populasi itu sendiri terdiri dari sejumlah kromosom yang merepresentasikan solusi yang diinginkan.

3. Evaluasi nilai fitness

(23)

Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria berhenti.

4. Pembentukan kromosom baru a. Seleksi

Memilih sejumlah kromosom yang akan menjadi kromosom calon parent.

b. Crossover

Mengkombinasikan dua kromosom parent (induk) berdasar nilai probabilitas crossover-nya untuk menghasilkan offspring. c. Mutasi

Mengubah sejumlah gen berdasar nilai probabilitas mutasinya untuk menghasilkan kromosom baru.

d. Update Generasi

Membaharui kromosom yang terdapat dalam populasi. e. Pengecekan faktor pemberhenti

Jika memenuhi dari salah satu dari kondisi untuk berhenti, maka siklus algoritma genetika berhenti. Proses evolusi bisa dihentikan berdasarkan beberapa kondisi, misalnya ketika evolusi telah mencapai 19 jumlah generasi maksimum yang diizinkan, terdapat suatu individu yang telah memiliki fitness tertentu yang diharapkan, keberagaman populasi telah mencapai tingkat minimum yang diizinkan, dalam beberapa generasi tertentu, tidak ada peningkatan nilai fitness yang diharapkan.

(24)

2.8Unified Modeling Language (UML)

Unified Modeling Language merupakan salah satu alat bantu yang dapat digunakan dalam bahasa pemograman yang berorientasi objek, saat ini UML akan mulai menjadi standar masa depan bagi industri pengembangan sistem/perangkat lunak yang berorientasi objek sebab pada dasarnya UML digunakan oleh banyak perusahaan raksasa seperti IBM, Microsoft, dan sebagainya. Berikut ini beberapa definisi UML [11]:

Unified Modeling Language merupakan metode pengembangan perangkat lunak (sistem informasi) dengan menggunakan metode grafis serta merupakan bahasa untuk visualisasi, spesifikasi, konstruksi serta dokumentasi.

10. Unified Modeling Language (UML) adalah bahasa yang telah menjadi standar untuk visualisasi, menetapkan, membangun dan mendokumentasikan arti suatu sistem perangkat lunak.

11. Unified Modeling Language (UML) dapat didefinisikan sebagai sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem perangkat lunak.

12. Unified Modeling Language (UML) merupakan standard modeling language yang terdiri dari kumpulan-kumpulan diagram, dikembangkan untuk membantu para pengembang system dan software agar bisa menyelesaikan tugas-tugas seperti spesifikasi, visualisasi, desain arsitektur, konstruksi, simulasi dan testing, serta dokumentasi.

(25)

Gambar 2.3 Logo Unified Modeling Language (UML)

2.8.1 Diagram Unified Modeling Language (UML)

Beberapa literatur menyebutkan bahwa UML menyediakan sembilan jenis diagram, yang lain menyebutkan delapan karena ada beberapa diagram yang digabung, misalnya diagram komunikasi, diagram urutan dan diagram pewaktuan digabung menjadi diagram interaksi. Namun demikian model-model itu dapat dikelompokkan berdasarkan sifatnya yaitu statis atau dinamis. Jenis diagram itu antara lain :

13. Diagram Kelas (Class Diagram)

Diagram kelas menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.

a. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas.

b. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.

(26)

anggota

Gambar 2.4 Contoh class diagram

14. Diagram Use Case

Diagram use case merupakan pemodelan untuk kelakuan (behaviour) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu. Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case.

(27)

b. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor.

Gambar 2.5 Contoh use case diagram

15. Diagram Aktivitas (Activity Diagram)

Diagram aktivitas menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut :

a. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. b. Urutan atau pengelompokkan tampilan dari system / user interface

(28)

c. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.

d. Rancangan menu yang ditampilkan pada perangkat lunak.

Gambar 2.6 Contoh activity diagram

16. Diagram State Machine (Statechart Diagram)

State machine diagram atau statechart diagram atau dalam bahasa Indonesia disebut diagram mesin status atau sering juga disebut diagram status digunakan untuk menggambarkan perubahan status atau transisi status dari sebuah mesin atau sistem atau objek. Jika diagram sekuen digunakan untuk interaksi antar objek maka diagram status digunakan untuk interaksi di dalam sebuah objek. Perubahan tersebut digambarkan dalam suatu graf berarah.

(29)

17. Diagram Sekuen (Squence Diagram)

Diagram sekuen menggambarkan kelakuan pada objek use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Membuat diagram sekuen juga dibutuhkan untuk melihat skenario yang ada pada use case. Banyaknya diagram sekuen yang harus digambar adalah minimal sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak.

Gambar 2.8 Contoh squence diagram

2.9Java

(30)

berdasarkan bahasa C++, dengan tujuan platform independent (dapat dijalankan pada berbagai jenis hardware tanpa kompilasi ulang), dengan slogan “Write Once, Run Anywhere (WORA), dan Java pada hakikatnya lebih sederhana dan memakai objek secara murni dibanding dengan bahasa pemrograman C++ [12].

Asal usul java dimulai pada tahun 1991 ketika Sun Microsystem melakukan penelitian terhadap berbagai produk elektronika. James Gosling (kepala proyek penelitian) beserta Patrick Naughton ditugaskan untuk merancang perangkat lunak aplikasi yang independen, tidak bergantung pada jenis perangkat keras, agar bisa dipakai pada berbagai peralatan elektronik itu. James Gosling kemudian memakai bahasa pemrograman C++ untuk menulis beberapa aplikasi untuk peralatan mikro, namun ternyata dia mengalami banyak kesulitan. Setiap kali sebuah peralatan mikro menggunakan jenis microchip yang berbeda, program yang digunakannya harus dikompilasi ulang. Berdasarkan hal itu kemudian munculah ide dari James Gosling untuk menciptakan sebuah bahasa baru, yang ditulis berdasarkan C++ namun dengan beberapa perbaikan. Bahasa ini kemudian disebut Oak (nama pohon yang terlihat dari jendela ruangan kerja James Gosling), yang digunakan untuk membuat perangkat lunak cerdas bagi peralatan elektronika buatan Sun Mirosystem.

Pada tahun 1994, ketika Web mulai populer nama bahasa Oak kemudian diganti menjadi Java (salah satu sebabnya ternyata nama Oak telah terlebih dahulu dipakai untuk hal lain). Menurut gosip, Gosling bingung mencari nama untuk bahasa baru tersebut karena setiap nama yang dipikirkannya untuk nama bahasa pemrogramannya ternyata sudah ada yang memakai, sampai suatu ketika dia mampir di sebuah kafe untuk minum kopi, dan ia meminta “Java”. Timbullah idenya untuk memakai nama Java. Menurut Gosling nama ini cukup cool.

(31)

Gambar 2.9 Logo Java

2.10 Eclipse

Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent) [13].

18. Multi-platform: Target sistem operasi Eclipse adalah Microsoft Windows,Linux, Solaris, AIX, HP-UX dan Juga Mac OS X.

19. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya.

20. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya.

Eclipse awalnya dikembangkan oleh IBM untuk menggantikan perangkat lunak IBM Visual Age for Java 4.0. Produk ini diluncurkan oleh IBM pada tanggal 5 November 2001, yang menginvestasikan sebanyak US$ 40 juta untuk pengembangannya. Semenjak itu konsursium Eclipse Foundation mengambil alih untuk pengembangan Eclipse lebih lanjut dan pengaturan organisasinya.

(32)

komponen yang dinamakan plug-in.Sampai saat sekarang ini Eclipse sudah mencapai versi 3.6 yang diberinama Helios.

(33)
(34)

33

Scrabble adalah permainan papan dan permainan menyusun kata yang dimainkan 2 atau 4 orang yang mengumpulkan poin berdasarkan nilai kata yang dibentuk dari keping huruf di atas papan permainan berkotak-kotak (15 kolom dan 15 baris). Biji permainan berupa keping berbentuk bujur sangkar yang bertuliskan huruf pada salah satu sisi. Pemain mengambil hingga sebanyak tujuh buah keping huruf dari kantong, dan berusaha menyusun kata secara mendatar atau menurun seperti teka-teki silang. Kata-kata yang dibuat harus merupakan kata yang diizinkan untuk dimainkan berdasarkan kamus standar sesuai dengan bahasa yang dimainkan. Pemain yang mengumpulkan total poin tertinggi dinyatakan sebagai pemenang.

Gambar 3.1 contoh penyelesaian scrabble

(35)

dari soal satu dengan soal lainnya dan mencari solusi dalam penyelesaikan jawaban pada permainan scrabble dengan beberapa syarat di dalamnya dengan menggunakan prinsip dasarnya, algoritma genetika mencari segala kemungkinan solusi dengan menerapkan ruang keadaan dalam bentuk pencarian solusi hingga menghasilkan solusi yang layak. Kelayakan solusi pada permainan scrabble didefinisikan dengan suatu nilai akan dinyatakan layak apabila terdapat huruf yang tersusun.

3.2.Analisis Game

Analisis game yang akan diteliti pada game scrabble adalah dengan membangkitkan soal permainan serta menyelesaikan jawaban. Pada dasarnya permainan scrabble ini disetiap soal maupun jawaban akan saling terkait satu sama lainnya dan mempunyai nilai pasti disetiap jawabannya. Oleh karena itu, algoritrma genetika akan diterapkan pada kasus scrabble ini.

Berikut penjelasan alur proses pada game srabble dengan kasus permainan srabble :

(36)

Gambar 3.2 menjelaskan tentang keadaan awal permainan sebelum menentukan nilai acuan pada lajur. Dimana kotak permainan disusun berdasarkan kotak warna yang ada nilainya.

Gambar 3.3 Membangkitkan jawaban

(37)

Gambar 3.4 Akumulasi jawaban dan cetak soal

Gambar 3.4 menjelaskan tentang akumulasi nilai jawaban dan cetak nilai soal untuk permainan ini. Untuk mencetak soal, kotak yang berisikan nilai jawaban dalam satu lajur akan diakumulasikan dari total nilai jawaban.

1. Proses penyelesaian jawaban pada kotak kosong.

Pada proses ini, penyelesaian jawaban dengan algoritma genetika dengan sistem teracak dalam pencarian nilai. Proses pencarian nilai dilakukan dari huruf A hingga Z, dan dengan melakukan tahapan pengecekan nilai yaitu boleh terdapat huruf yang sama pada satu lajur serta total nilai jawaban pada satu lajur yang akan dibandingkan dengan nilai soal.

2. Proses penyelesaian jawaban pada kotak terisi nilai.

(38)

Membangkitkan jawaban

Cek jawaban pemain dengan jawaban yang dibangkitkan

Gambar 3.5 Proses penyelesaian jawaban pada kotak terisi huruf

3.3. Analisis Masukan

Analisis masukan yang dilakukan dalam penelitian ini adalah menganalisis inputan scrabble dalam algoritma genetika pada game scrabble. Masukan tersebut berupa nilai (huruf), akan tetapi masukan diberi batasan nilai yaitu dari huruf A hingga Z, berikut merupakan tabel analisis masukan pada game scrabble.

Tabel 3.1 huruf masukan

Nilai acuan lajur Nilai kombinasi

aa Aa

aeb Bae

taekc Caket

tidal Dalit

euheuw Euweuh

(39)

Tabel 3.2 huruf masukan A sampai Z

Nilai acuan lajur Nilai kombinasi

Yaa Aya

ngateunu Ingeutan

(40)

Nilai acuan lajur Nilai kombinasi

Z

3.3.1. Inisialisasi Papan Permainan

(41)

Mulai

Mengambil pola kata

Menempatkan pola kata ke dalam papan permainan secara acak

dimulai dari jumlah huruf paling sedikit Set papan permainan

berdasarkan jumlah kolom dan baris

Selesai Inisialisasi papan permainan terbentuk

Gambar 3.6 inisialisasi papan permainan 3.4.Analisis Algoritma

(42)

mulai

main

Cari kata

Algoritma Genetika

Output waktu pencarian dan posisi kata

selesai Kata yang di cari

tidak

ya

Gambar 3.7 pencarian kata

(43)

Dalam proses inisialisasi kotak pada scrabble, di setiap kotak scrabble akan diberikan nilai indeks yang akan digambarkan dengan titik koordinat sumbu (X, Y). Pada sumbu X menyatakan posisi kotak secara horizontal, dan sumbu Y menyatakan posisi kotak secara vertikal. Titik koordinat sumbu X, dan Y akan di gambarkan sebagai berikut :

Gambar 3.8 Titik koordinat sumbu (X, Y)

Pada Gambar 3.8 menjelaskan keadaan awal kotak sebelum terjadinya inisialisasi kotak permainan yang akan menentukan nilai acuan lajur dan kotak permainan. Dimana kotak permainan disusun berdasarkan kotak blok yang berwarna abu dan kotak kosong yang berwarna warni seperti yang terjadi pada proses gambar 3.3 Dalam menentukan kotak blok dan kosong dalam permainan srabble ini, maka alur proses yang akan terjadi adalah sebagai berikut :

1. Mengecek lajur nilai X.

Apabila nilai indeks pada kotak yang dipilih terdapat nilai 0 pada sumbu X atau Y, maka kotak tersebut akan menjadi kotak blok. Sedangkan apabila nilai indeks pada kotak yang dipilih terdapat nilai > 0 pada sumbu X atau Y, maka kotak tersebut akan menjadi kotak kosong.

(44)

Nilai indeks pada kotak yang dipilih akan menjadi kotak blok, apabila lajur pada sumbu Y diatasnya terdapat 3 kotak kosong. Sedangkan nilai indeks pada kotak yang dipilih akan menjadi kotak kosong, apabila lajur pada sumbu Y diatasanya kurang dari 3 kotak kosong. Pada pengecekan lajur sumbu Y terdapat batasan, karena pada permainan yang dibuat hanya dibatasi 2 hingga 3 kotak kosong sebagai nilai masukan.

(45)

Gambar 3. 9 Flowchart pengecekan nilai pada titik koordinat (X, Y)

3.4.1. Analisis Algoritma genetika

3.4.1.1. Pembentukan Kromosom

(46)

Mulai

Input Gen

Setiap n gen di berikan nilai tipot

N gen telah me mpunyai nilai tipot

Di bentuk kromoson dari kumpulan gen

Sele sai

(47)

Repsesentasi Kromosom

Tabel 3.3 Repsesentasi Kromosom

No Gen Nilai Tipot

Proses inisialisai di lakukan dengan cara memberikan nilai gen-gen awal dengan huruf acak dari A sampai Z. setelah di ketahui panjang kromosomnya dan tentukan nilai populasinya

A. Menempatkan gen pertama ke dalam kotak

(48)

14 15

Gambar 3.11 inisialisasi populasi B. Menyimpannya ke dalam array

7,2G 7,3A 7,4G 7,5A 7,6R 7,7O

C. A.Menempatkan gen selanjutnya dengan mencari titik potong

1 Aya 1

Gambar 3.12 inisialisasi populasi Mencari huruf A

D. Setelah titik potong di temukan memeriksa nilai tipot (tidak boleh bernilai sama)

(49)

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

2 G

3 A Y A

4 G

5 A

6 R

7 O

8 9 10 11 12 13 14 15

Gambar 3.13 inisialisasi populasi F. Menempatkan gen sesuai dengan titik potong

Menghitung nilai gen : F= =0,33 G. Dicari titik potong lain

(50)

2 G

3 A

4 G

5 A

6 R

7 O

8 9 10 11 12 13 14 15

Gambar 3.14 inisialisasi populasi

Mencari huruf A

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

2 G

3 A

4 G

(51)

6 R

7 O

8 9 10 11 12 13 14 15

Gambar 3.15 inisialisasi populasi

Menghitung nilai gen : F= = 0,33

H. Mencari kemungkinan titik potong lain dari karakter selanjutnya setelah huruf “A” dari kata “AYA”

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

2 G

3 A

4 G

5 A

6 R

(52)

8 9 10 11 12 13 14 15

Gambar 3.16 inisialisasi populasi

Mencari huruf Y

I. Memilih titik potong yang akan di gunakan dengan rumus : Axmax-xmax

Keterangan :

Axmax = nilai x maksimum Xmax = nilai x dari jawaban

Untuk jawaban alternatif 1 : = axmax-xmax

=9-7=2

(53)

2 G

3 A Y A

4 G

5 A

6 R

7 O

8 9 10 11 12 13 14 15

Gambar 3.17 inisialisasi populasi

Untuk jawaban alternatif 2 : = axmax-xmax

=9-7=2

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

2 G

3 A

(54)

5 A Y A

6 R

7 O

8 9 10 11 12 13 14 15

Gambar 3.18 inisialisasi populasi

Dari hasil kedua alternatif jawaban di dapat jawaban yang bernilai sama. Oleh karena itu di pilih alternatif 1

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

2 G

3 A Y A

4 G

5 A

6 R

(55)

8 9 10 11 12 13 14 15

Gambar 3.19 inisialisasi populasi

Tabel 3.4 inisialisasi populasi

7,2,G 7,3,A 7,4,G 7,5,A 7,6,R 7,7,O

7,3,A 7,8,Y 7,9,A

7,3A

Array jawaban menurun

Array jawaban menurun

Array titik potong

(56)

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

2 G

3 A Y A

4 G

5 A

6 R

7 O

8 9 10 11 12 13 14 15

Gambar 3.20 inisialisasi populasi

Mencari huruf Y

Ditemukan di titik potong pada (8,3) namun untuk nilai tipot kaya “YEN” bernilai 1 sehingga tidak bisa di tempatkan.

Pada huruf “O” di temukan titik pootong pada (7,7)

(57)

F= = 0,2

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1

2 G

3 A Y A

4 G

5 A

6 R

7 K A W O N

8 9 10 11 12 13 14 15

Gambar 3.21 inisialisasi populasi

(58)

Tabel 3.5 inisialisasi populasi

7,2,G 7,3,A 7,4,G 7,5,A 7,6,R 7,7,O

7,3,A 7,8,Y 7,9,A

7,3A 7,7,O

Array jawaban menurun

Array jawaban menurun

Array titik potong

4,7,K 5,7,A 6,7,W 7,7O 8,7,N

3.4.1.3. Fungsi Evaluasi :

Flowchart untuk fungsi evaluasi :

mulai

Menghitung nilai gen Gen = (tp/tk)

Menghitung nilai fitnes F

Hasil Selesai

(59)

Perhitungan nilai fitnes :

Tabel 3.6 fungsi evaluasi

Gen ke Gen Jumlah titik

Metode seleksi yang digunakan adalah metode Roulette-Wheel yang membuat kromosom-kromosom dengan nilai fitness tinggi memiliki kemungkinan terpilih yang tinggi pula.

Probabilitas keterpilihan setiap kromosom ditentukan dengan cara membagi nilai fitness kromosom tersebut dengan total nilai fitness. Untuk itu, yang terlebih dahulu harus dihitung adalah total nilai fitness. Kemudian dilakukan pembagian masing-masing nilai fitness dengan total fitness tersebut. Nilai tersebut adalah probabilitas setiap kromosom yang berkisar antara nol dan satu.

(60)

kromosom. Pembandingan dilakukan dari kromosom yang terkecil. Kromosom yang memiliki nilai probabilitas yang lebih besar atau sama dengan nilai acak akan menjadi individu yang terpilih.

Dalam tahap ini nilai fitnes yang di hasilkan hanya satu jadi yang akan di ambil dari proses seleksi adalah parent yang mempunyai nilai fitnes 0,86.

X,y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

2 G

3 A Y A

4 G

5 A

6 R

7 K A W O N

8 9 10 11 12 13 14 15

(61)

3.4.1.5.Crossover

Setelah melakukan proses seleksi, maka hasil tersebut akan digunakan dalam proses crossover. Metode crossover atau pindah silang yang digunakan adalah pindah silang dengan satu titik. Posisi crossover dipilih bilangan random dengan batasan dari 1 sampai N (N = panjang kromosom). Pertukaran gen kemudian dilakukan pada kedua kromosom mulai titik gen tertentu sampai akhir kromosom.

a) Jumlah kromosom calon parrent yang mengalami crossover di tentukan oleh parameter crossover (pc).

b) Nilai PC yang di pakai pada penelitian ini adalah 0,5

c) Di bangkitkan bilangan random sebanyak ukuran populasi yaitu 30

(62)

16 0,35 Ya

17 0,77 Tidak

18 0,84 Tidak

19 0,14 Ya

20 0,7 Tidak

21 0,69 Tidak

22 0,96 Tidak

23 0,88 Tidak

24 0,77 Tidak

25 0,63 Tidak

26 0,44 Ya

27 0,32 Ya

28 0,25 Ya

29 0,15 Ya

30 0,1 Ya

a) r1 < PC (0,45<0,5) maka kromosom 1 terpilih sebagai parent.

b) Nilai r2 adalah 0,63, karena r2 > PC maka kromosom 2 tidak terpilih sebagai parent.

3.4.1.6. Mutasi

(63)

Tabel 3.8 mutasi gen dan nilai tipot

Tabel 3.9 mutasi gen dan nilai tipot

No Gen Nilai Tipot

Analisis algoritma genetika pada game scrabble merupakan penjelasan alur atau cara kerja algoritma genetika saat terjadi pembuatan huruf di dalam game scrabble yang sudah terinisialisasi kotak terlebih dahulu. Algoritma genetika akan bekerja saat pencarian huruf. Penjelasan tersebut akan digambarkan pada kotak sebagai berikut.

Kotak soal

Kotak jawaban

(64)

Gambar 3.24 menjelaskan tentang keadaan awal satu lajur sebelum menentukan huruf soal. Dimana kotak dari satu lajur disusun berdasarkan kotak jawaban dan kotak soal. Setelah tampil satu lajur tersebut, alur kerja algoritma genetika akan dimulai dengan menujuk kotak jawaban pertama menggunakan pointer yang akan dicari nilai jawaban kedalam array.

Kotak soal

Kotak jawaban Kotakyang dipilih

Gambar 3.25 Memilih kotak jawaban

Gambar 3.25 menjelaskan ketika pointer memilih kotak jawaban. Sebelum menentukan huruf jawaban, kotak jawaban di cek terlebih dahulu oleh sistem apakah kotak jawaban dalam kondisi kosong atau terisi huruf dalam satu lajur. Apabila kotak jawaban dalam kondisi kosong, maka sistem akan mengisi kotak jawaban dengan cara random. Dan apabila kotak jawaban dalam kondisi terisi nilai maka pointer akan berpindah ke kotak jawaban yang lain.

Kotak masukan huruf srabble

Kotak yang dipilih oleh pointer

(65)

3.5.Analisis Kebutuhan Perangkat Lunak

Perangkat lunak (software) merupakan hal terpenting dalam mendukung kinerja sebuah sistem. Perangkat lunak digunakan dalam sebuah sistem untuk memberikan perangkat keras (hardware) sebuah perintah agar perangkat keras melakukan apa yang diinginkan oleh pemain. Berikut ini, kebutuhan perangkat lunak untuk menerapkan algoritma genetika pada srabble pada Tabel 3.10

Tabel 3.10 Spesifikasi perangkat lunak Spesifikasi Perangkat Lunak

Windows XP, Windows 7, Windows 8

Eclipse

3.5.1. Analisis Kebutuhan Perangkat Keras

Agar aplikasi dapat berjalan dengan baik, maka dibutuhkan perangkat keras (hardware) yang sesuai dengan kebutuhan aplikasi.

Tabel 3.11 adalah spesifikasi minimum perangkat keras yang dibutuhkan agar dapat menjalankan aplikasi permainan srabble secara optimal.

Tabel 3.11 Spesifikasi perangkat keras Komputer Spesifikasi Perangkat Keras

Prosesor Prosesor 1,6 Ghz

Resolusi Layar 800 x 600 pixel

Memori Memori 128 Mb

Hardisk Hardisk 100 Mb

Keyboard dan mouse Standar

(66)

3.5.2. Analisis Kebutuhan Pengguna

Selain dibutuhkannya perangkat lunak dan perangkat keras, user atau penguna adalah bagian yang sangat penting untuk dapat menerapkan aplikasi ini. Analisis pengguna diperlukan untuk dapat mengetahui sasaran calon pengguna yang dapat menggunakan aplikasi. Pada penelitian ini pembangunan aplikasi ditujukan untuk pengujian implementasi algoritma sehingga pengguna disini disarankan memiliki karakteristik sebagai berikut:

1. Bisa mengoperasikan komputer dengan sistem operasi windows. 2. Mengerti mengenai konsep game srabble.

3.5.3. Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi yang meliputi elemen atau komponen-komponen yang dibutuhkan untuk sistem yang akan dibangun hingga sistem tersebut diimplementasikan. Analisis kebutuhan ini menentukan spesifikasi masukan yang diperlukan sistem, keluaran yang akan dihasilkan sistem dan proses yang dibutuhkan untuk mengolah masukan sehingga menghasilkan suatu keluaran yang diinginkan.

3.5.4. Analisis Kebutuhan Fungsional

(67)

3.5.4.1. Use case Diagram

pemain

permainan scrabble

menentukan pilihan menu permainan

menyusun kata pada papan scrabble

memainkan permainan <<include>>

<<include>>

Gambar 3.27 Use case diagram

Definisi use case berfungsi untuk menjelaskan fungsi dari use case yang terdapat pada diagram use case. Definisi use case dijelaskan pada Tabel 2.5

3.5.4.2. Definisi Aktor

Definisi aktor berfungsi untuk menjelaskan aktor yang terdapat pada use case diagram. Definisi aktor dapat di lihat pada tabel berikut :

Tabel 3.12 Definisi Aktor

No Aktor Keterangan

1. pemain Pengguna sistem

3.5.4.3. Definisi Use Case

(68)

Tabel 3.13 Definisi use case

No Use Case Keterangan

1. Menentukan pilihan menu Permainan

Proses untuk masuk ke menu utama permainan scrabble

2. Memainkan permainan Proses untuk memulai memainkan permainan

3. Menyusun kata pada papan scrabble

Proses menyusun kata pada permainan srabble dengan acak

3.5.4.4. Use Case Scenario

Skenario use case merupakan penjelasan mengenai alur kejadian yang di dalamnya menjelaskan urutan interaksi antara aktor dengan use case tersebut. Adapun skenario use case digambarkan sebagai berikut.

Tabel 3.14 Tabel memainkan permainan Identifikasi

Nomor 1

Nama Memainkan Permainan

Tujuan Memainkan permainan

Deskripsi Proses untuk memainkan permainan

Aktor Pemain

Skenario Utama

Kondisi Awal Pemain berada di permainan

Aksi Aktor Reaksi Sistem

(69)

4. Mengatur huruf pada papan dengan random

5. Mengecek huruf 6. Melakukan genetika 7. Cek jumlah kolom

8. Jika papan pada kolom tidak kosong maka lakukan pencarian genetika, jika kosong maka huruf input di nyatakan salah

9. Cek jumlah baris

10. Jika papan pada baris tidak kosong maka lakukan pencarian genetika, jika kosong maka huruf input di nyatakan salah

11. Menampilkan nilai komputer 12. Menampilkan nilai user

3.5.4.5. Activity Diagram

Activity diagram merupakan gambaran alur aktivitas pada permainan yang sedang dirancang, bagaimana masing-masing alur aktivitas berawal, decision yang mungkin terjadi, dan bagaimana berakhir. Activity diagram dijelaskan melalui gambar 3.28 berikut

(70)

aktor sistem

menyusun kata menampilkan papan scrabble

membaca tingkat kesulitan

menampilkankata lanjut langkah

evaluasi fitnes=membentuk kromosom

mencari inisialisasi

menempatkan gen fitnes jumlah kromosom

(71)

2. Activity keluar permainan

Gambar 3.29 Activity keluar permainan

3.5.4.6. Squence Diagram

(72)

1. Squence diagram memainkan permainan

: pemain

jendela aplikasi papan Scrabble kamus program kondisi akhur

1 : menyusun kata() 2 : muncul kotak-kotak huruf()

3 : klik lanjut langkah

4 : kata dalam kamus()

5 : kata tidak ada dalam kamus

6 : genetika mencari kesulitan

7 : kata di temukan optimal()

8 : nilai bertambah()

9 : membandingkan nilai()

Gambar 3.30 Squence diagram memainkan permainan

(73)

Gambar 3.31 Squence diagram keluar permainan

3.5.4.7. Class Diagram

(74)
(75)

Gambar 3.32 Class diagram permainan

3.5.4.8. Perancangan Antarmuka

Perancangan antarmuka bertujuan untuk memberikan gambaran tentang aplikasi yang akan dibangun, sehingga akan mempermudah dalam mengimplementasikan aplikasi serta akan memudahkan pembuatan aplikasi. Antarmuka permainan merupakan halaman yang muncul pertama kali pada saat memainkan game. Berikut perancangan antarmuka permainan :

1. Perancangan antarmuka permainan.

Kotak dialog Berisi huruf-huruf untuk menampilkan kata

 Nilai komputer

(76)

2. Pesan ketika permaianan terselesaikan.

Permainan berakhir, nilai input benar M01

ok

Gambar 3.34 Pesan ketika permaianan terselesaikan 3. Pesan keluar permainan.

M02

Quit File

(77)

3.5.4.9. Jaringan Semantik

Untuk mengetahui keterhubungan dari setiap tampilan yang dibuat dapat menggunakan jaringan semantik.

(78)

77

Tahap implementasi dilakukan setelah analisis dan perancangan sistem selesai dilakukan, selanjutnya akan diimplementasikan kedalam bahasa pemograman dan diuji kedalam aplikasi. Aplikasi yang telah dibangun akan diimplementasikan untuk mengetahui system dapat berjalan sesuai tujuan atau tidak. Tujuan dari implementasi adalah untuk menerapkan perancangan yang telah dilakukan terhadap sistem, sehingga pemain dapat memberikan masukan untuk perkembangan sistem yang telah dibangun pada game scrabble dalam menerapkan algoritma genetika.

4.1.1. Implementasi Perangkat Keras

Spesifikasi perangkat keras (hardware) yang digunakan dalam implementasi algoritma genetika pada game scrabble dapat dilihat pada tabel 4.1

Tabel 4.1 Spesifikasi perangkat keras

Komputer Spesifikasi Perangkat Keras

Prosesor Prosesor 1,8 Ghz

Resolusi Layar 1024 x 768 pixel

Memori Memori 2 Giga

Hardisk Hardisk 100 Gb

Keyboard dan touchpad

Standar

4.1.2. Implementasi Perangkat Lunak

(79)

Tabel 4.2 Spesifikasi perangkat lunak

Spesifikasi Perangkat Lunak

Windows 7 eclipse

4.1.3. Implementasi Antarmuka

Algoritma yang telah dirancang pada sistem, diimplementasikan kedalam program dengan antarmuka sebagai berikut :

(80)

Pada tampilan ini, saat menjalankan aplikasi sudah menampilkan papan permainan dengan sistem random dan menampilkan tombol-tombol utama untuk memainkan game scrabble ini diantaranya terdapat tombol lanjut langkah yang berfungsi untuk mengecek kata yang akan di susun apakah memenuhi kriteria yang dicapai, tombol saran langkah berfungsi untuk menyarankan huruf-huruf yang ada dalam kotak huruf secara ulang disoal permainan secara random, serta tombol ulang main berfungsi untuk mengembalikan huruf-huruf ke menu utama untuk memulai atau me-restart permainan. Hasil dari tombol lanjut langkah akan menghasilkan huruf di mana komputer langsung mengecek dengan sistem kerja dari algoritma genetika yang dihasilkan oleh sistem. Terdapat kondisi-kondisi dalam memainkan permainan scrabble yang dibuat, yaitu :

4.1.4. Implementasi tampilan pencarian algoritma genetika

(81)

Gambar 4.2 hasil dari pencarian algoritma genetika 4.2.Pengujian Sistem

(82)

4.2.1. Pengujian White Box

Pengujian white box merupakan metode perancangan test case yang menggunakan struktur control dari perancangan metode dalam mendapatkan test case. Adapun metode yang digunakan dalam pengujian white box ini adalah metode basic path. Metode basic path memungkinkan perancang uji kasus untuk memperoleh ukuran kompleksitas logis dari sebuah perancangan prosedral dan menggunakan ukuran ini sebagai sebuah panduan dalam mendefinisikan sekumpulan dasar dari alur eksekusi.

Pengujian white box akan digunakan pada algoritma genetika untuk mengetahui kinerja logika berdasarkan flowchart yang telah dibuat pada tahap analisis. Pengujian white box meliputi beberapa tahap, yaitu :

4.2.1.1.1. Pengujian Algoritma genetika Pada Game srabble

Pada pengujian ini, algoritma genetika akan diuji dalam mengoptimalkan huruf pada game scrabble. Berikut merupakan pengujian algoritma genetika pada game scrabble dengan menggunakan whitebox.

1. Mengubah source code menjadi flowchart, kemudian diubah kedalam flowgraph. Berikut source code algoritma genetika dalam mengoptimalkan huruf-huruf permainan :

Tabel 4.3 Source code algoritma genetika dalam mengoptimalkan huruf

1

2

public class Genetic {

/** String containing the CVS revision. Read out via

reflection!*/

private static final String CVS_REVISION = "$Revision:

1.9 $";

(83)

3

Configuration gaConf = new DefaultConfiguration();

gaConf.setPreservFittestIndividual(true);

gaConf.setKeepPopulationSizeConstant(false);

Genotype genotype = null;

double maxFitness = Math.pow(2.0, (double) chromeSize)

- 1;

IChromosome sampleChromosome = new Chromosome(gaConf,

new BooleanGene(gaConf), chromeSize);

gaConf.setSampleChromosome(sampleChromosome);

gaConf.setPopulationSize(20);

gaConf.setFitnessFunction(new MaxFunction());

genotype = Genotype.randomInitialGenotype(gaConf);

}

catch (InvalidConfigurationException e) {

e.printStackTrace();

System.exit( -2);

}

int progress = 0;

(84)

14

System.out.println("Currently fittest Chromosome

has fitness " +

IChromosome fittest = genotype.getFittestChromosome();

System.out.println("Fittest Chromosome has fitness " +

fittest.getFitnessValue());

}

}

(85)

st art

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

(86)
(87)

1,2,3

4

5,6,7

8,9

10

11

12

13

14,15,16,

17,18,19

20

I

II

III

IV

(88)

4. Cyclomatic complexity

Dari diagram alir pada Gambar 4. dapat dihitung cyclomatic complexity, yakni : V(G) = Edge – Node + 2

= 12 - 10 + 2 = 2 + 2 V(G) = 4

5. Predicate node

V(G) = Jumlah grah matriks + 1 V(G) = 3 + 1

(89)

6. Penomoran ulang flowgraph, dapat dilihat pada Gambar 4.4.

1

2

3

4

5

6

7

8

9

Gambar

Gambar 3.1 contoh penyelesaian scrabble
Gambar 3.2 Inisialisasi kotak permainan
Gambar 3.3 Membangkitkan jawaban
Gambar 3.4 Akumulasi jawaban dan cetak soal
+7

Referensi

Dokumen terkait

Bahkan melakukan promosi dengan melakukan presentasi sales yaitu secara lisan dan bertatap muka, ketika ada kunjungan perusahaan dalam hal ini narasumber menjelaskan

Keuntungan (kerugian) dari perubahan nilai aset keuangan dalam kelompok tersedia untuk dijual 0.. Pajak penghasilan terkait pos-pos yang akan direklasifikasi ke laba

Bunganya lebar dan saling terpisah, sepal (helai kelopak bunganya) berwarna hijau terang yang mana ukuran sisi atasnya kurang lebih 18 x 6 mm, ujungnya melingkar ke belakang,

Namun secara umum dapat dijelaskan bahwa Ordo Siluriformes merupakan kelompok ikan yang memiliki bentuk tubuh kombinasi, berkumis atau bersungut, memiliki sirip

Penelitian ini menggunakan suatuvariabel Bagaimana merancang perangkat lunak administrasi unit instalasi gawat darurat pada rsud bandar lampung menggunakan delphi 7.0

dapat disimpulkan bahwa rerata hasil belajar matematika untuk semua sel yang dibentuk oleh variasi model pembelajaran kooperatif (Ai) dan gaya berpikir siswa (Bj)

(associated causes)... !asa nifas adalah masa yang dimulai setelah plasenta lahir setelah # minggu %42 hari&amp; untuk kembalinya alat &#34; alat reproduksi pada

Setelah melakukan observasi dan melakukan wawancara kepada beberapa warga dan Ketua RW, kami melihat bahwa di Kampung Pondok Pucung terdapat nilai-nilai yang positif yang