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.
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].
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 .
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
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
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
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
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
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.
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
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].
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
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.
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
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].
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
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.
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
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.
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.
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
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.
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.
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.
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.
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
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.
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
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.
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.
komponen yang dinamakan plug-in.Sampai saat sekarang ini Eclipse sudah mencapai versi 3.6 yang diberinama Helios.
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
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 :
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
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.
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
Tabel 3.2 huruf masukan A sampai Z
Nilai acuan lajur Nilai kombinasi
Yaa Aya
ngateunu Ingeutan
Nilai acuan lajur Nilai kombinasi
Z
3.3.1. Inisialisasi Papan Permainan
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
mulai
main
Cari kata
Algoritma Genetika
Output waktu pencarian dan posisi kata
selesai Kata yang di cari
tidak
ya
Gambar 3.7 pencarian kata
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.
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.
Gambar 3. 9 Flowchart pengecekan nilai pada titik koordinat (X, Y)
3.4.1. Analisis Algoritma genetika
3.4.1.1. Pembentukan Kromosom
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
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
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)
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
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
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
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
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
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
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
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)
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
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
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.
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
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
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
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
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
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
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
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
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
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
aktor sistem
menyusun kata menampilkan papan scrabble
membaca tingkat kesulitan
menampilkankata lanjut langkah
evaluasi fitnes=membentuk kromosom
mencari inisialisasi
menempatkan gen fitnes jumlah kromosom
2. Activity keluar permainan
Gambar 3.29 Activity keluar permainan
3.5.4.6. Squence Diagram
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
Gambar 3.31 Squence diagram keluar permainan
3.5.4.7. Class Diagram
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
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
3.5.4.9. Jaringan Semantik
Untuk mengetahui keterhubungan dari setiap tampilan yang dibuat dapat menggunakan jaringan semantik.
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
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 :
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
Gambar 4.2 hasil dari pencarian algoritma genetika 4.2.Pengujian Sistem
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 $";
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;
14
System.out.println("Currently fittest Chromosome
has fitness " +
IChromosome fittest = genotype.getFittestChromosome();
System.out.println("Fittest Chromosome has fitness " +
fittest.getFitnessValue());
}
}
st art
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1,2,3
4
5,6,7
8,9
10
11
12
13
14,15,16,
17,18,19
20
I
II
III
IV
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
6. Penomoran ulang flowgraph, dapat dilihat pada Gambar 4.4.
1
2
3
4
5
6
7
8
9