PERANCANGAN PROGRAM
3.1 Spesifikasi Rumusan Rancangan
Program Algoritma Genetika dirancang dengan mengikuti prinsip-prinsip dan sifat- sifat dari OOP (Object Oriented Programming) di mana dalam prosesnya, hal-hal yang digunakan selama proses adalah sebuah objek. Istilah-istilah yang digunakan dalam bahasan juga banyak mengacu pada istilah dalam OOP. Alasan dari rancangan program Algoritma Genetika untuk berorientasi objek karena :
a. Cara kerja program ini adalah memproses data yang mewakili objek-objek yang ada di dunia nyata. Akan lebih baik jika objek-objek yang ada di dunia nyata, dalam programnya juga diwakili dengan objek-objek. Seperti contoh sebuah barang-barang dalam gudang yang akan disusun diwakili dengan sebuah objek pattern, sebuah bidang diwakili dengan sebuah objek bidang yang tentunya
mempunyai sifat mengikuti dunia nyata yang bisa dirotasi, ditranslasi, dan sebagainya.
b. Object Oriented Programming (OOP) merupakan teknik programming yang
sedang berkembang saat ini, di mana banyak bahasa pemrograman yang baru
menerapkan prinsip full OOP, sehingga untuk masa depan program Algoritma
Genetik dapat dikembangkan sesuai dengan kebutuhan user dan dapat dengan
mudah untuk ditransfer dan dikembangan dengan bahasa yang berbeda (yang
bersifat OOP juga).
Rancangan Program optimasi ini terbagi menjadi tiga bagian utama yaitu tahap input, tahap proses (Algoritma Genetik), tahap output.
a. Tahap Input adalah tahap dimana user dapat memasukkan data pola yang diinginkan yang berupa width dan height beserta settingan parameter Algoritma Genetik.
b. Pada tahap proses, dimulai dari pembentukan populasi awal dan objek Parameter Algoritma Genetik. Kemudian dilanjutkan dengan menyusun objek dalam bidang lalu dilakukan perhitungan fitness. Setelah itu, baru dilakukan pengecekan jumlah generasi. Jika jumlah generasi baru sudah lebih besar dari jumlah generasi sebelumnya, maka akan menampilkan output. Jika belum, proses akan menambah satu generasi baru sebagai pembentukan populasi yang baru.
c. Proses output adalah proses dimana hasil yang akan ditampilkan dapat akan menjadi seoptimal mungkin dengan menggunakan Algoritma Genetika. Hasil keluaran yang akan ditampilkan berupa file gambar yang berekstensi .png.
3.1.1 Proses Input
Dalam proses ini, user dapat memasukkan inputan berupa width dan height sebagai data dalam bidang maupun settingan parameter Algoritma
Genetik yang diinginkan untuk proses perhitungan.
Untuk memulai perhitungan, user dapat menekan button Start pada menu
welcome atau dapat juga dilakukan melalui menu bar file → new kemudian akan
muncul tampilan layar untuk memasukkan input data berupa width dan height
dengan menekan button Add Row beserta dengan settingan parameter Algoritma
Genetikanya. Jika user ingin menghapus beberapa kolom pada inputan width dan height, user dapat menekan button Delete Row dimana kolom terakhir dari inputan yang akan dihapus oleh program.
3.1.2 Proses Algoritma Genetik
Tahap ini merupakan inti dari program searching dengan metode Algoritma Genetika. Pada tahap ini dengan data-data yang telah dihasilkan dari proses input langsung digunakan dalam proses Algoritma Genetika. Untuk menjalankan proses ini, user dapat menekan button Run agar dapat memulai proses searching hingga mendapat hasil output akhirnya.
Pada tahap ini akan terjadi beberapa proses mengikuti metode dari Algoritma Genetika. Langkah-langkah yang dilakukan oleh proses Algoritma Genetika ini adalah sebagai berikut :
a. Menghitung TotalBoxArea
Dalam tahap ini, algoritma yang sedang berjalan adalah menghitung jumlah kotak baik berupa persegi maupun persegi panjang sesuai dari inputan yang diberikan oleh user. cara perhitungan dari luas dari TotalBoxArea adalah :
TotalBoxArea = boxes.get(i).xsize * boxes.get(i).ysize
Dimana ukuran dari xsize merupakan ukuran dari width sedangkan ysize adalah ukuran dari height berdasarkan inputan dari sang user.
b. GenerateRandomGeneration
Pada tahap GenerateRandomGeneration, Algoritma Genetika akan meng-
generate sebuah generasi baru secara random yang didapat dari kromosom
setiap kotak untuk mendapatkan BestGeneration.
c. PrepChromosomsForFitnessCalc
Dalam tahap ini, beberapa kromosom telah disiapkan untuk perhitungan fungsi fitness dengan memasukkan nomor pada masing-masing kotak dalam sebuah kromosom.
d. Calcfitness
Kemudian pada tahap Calcfitness adalah tahap dimana perhitungan dan penetapan nilai fitness dari setiap kromosom yang ada.
e. Sortchromosomes
Pada tahap selanjutnya adalah Sortchromosomes yang bertujuan untuk mengurutkan seluruh kromosom sehingga dapat memilih kromosom yang terbaik dari daftar kromosom yang pertama.
f. Evolution
Dan pada tahap akhir yaitu Evolution atau biasa disebut dengan teori evolusi, dimana pada tahap ini akan menghasilkan sebuah generasi baru dari generasi kromosom sebelumnya. Disini akan terjadi proses selection (seleksi), crossover (pindah silang), mutation (mutasi) dan geneswap (pertukaran gen).
3.1.3 Cara kerja dari Algoritma Genetika
Berikut ini adalaha cara kerja dari Algoritma Genetika yang berjalan di
dalam program :
1. Proses pembuatan kotak yang berbentuk persegi dan persegi panjang
Gambar 3.1 Objek Pola
Pada Gambar 3.1 menjelaskan tentang gambar dari bentuk masing - masing pola berdasarkan inputan dari user yang berupa width dan height.
2. Proses pengurutan pada penempatan objek pola
Gambar 3.2 Pengurutan Objek Pola
Pada gambar 3.2 menjelaskan tentang proses pengurutan objek pola yang dimulai dari kotak pertama hingga kotak terakhir. Proses penempatan objek pola dimulai dari pengecekan sisi paling kiri pada bingkai bidang kemudian dilanjutkan dengan pengecekan sisi paling atas pada bingkai bidang. Setelah batas paling atas pada bingkai bidang sudah terisi penuh maupun hampir penuh oleh objek pola tersebut hingga membuat objek pola selanjutnya sudah tidak muat lagi jika ditaruh disamping pola sebelumnya, maka proses pengecekan lokasi penempatan objek pola selanjutnya yaitu dengan mengecek sisi paling kiri bingkai bidang dan mengecek sisi paling bawah pada objek pola yang sudah diletakkan sebelumnya pada bingkai bidang. Proses ini terus berlanjut hingga semua objek pola selesai diletakkan.
Untuk cost setiap kromosom dihitung sebagai ruang terbuang yang berada pada bingkai bidang setelah semua objek pola ditempatkan dalam bingkai bidang
1 .
Dimana y mewakili nilai dari height (tinggi bingkai bidang), x mewakili nilai dari width (lebar bingkai bidang) dan a adalah luas total dari masing - masing bidang.
Sebagai contoh dalam pencarian cost/fitness area dapat dimisalkan nilai dari y = 55,x = 60 dan a = 2150 maka untuk mencari nilai cost/fitness area adalah :
1 2150 55 . 60
1 0.651
0.349
3
3
3.1.4 Prose
letak ditam dilih
3.2 Peranca
Peran menghas memberi
Gambar
es Output Pada taha k dan pengu mpilkan pad
at pada Gam
Gamba
angan Progr
ncangan sis silkan sebua
ikan kemud
r 3.3 Hasil S
ap akhir, yai urutan pola da program i mbar 3.4.
r 3.4 Sampe
ram
tem yang b ah aplikasi p dahan bagi p
Sementara da
itu proses ou a dengan m ini. Contoh
el Hasil Akhi
bertujuan un pengoptimal penggunany
ari Penguruta
utput dimana
menggunakan dari hasil o
ir Penguruta
ntuk memen lan pola ter a. Perancan
an Objek Po
a hasil dari s n Algoritma output pada
an Objek Pol
nuhi berbaga rbaik. Sistem ngan ini ber
ola
seluruh penc a Genetika program ini
la
ai tuntutan u m ini dihara rupa peranca
carian akan i bisa
untuk
apkan
angan
struktur menu, use case diagram, flowchart diagram dan perancangan interface dari masing-masing menu.
3.2.1 Rancangan Struktur Menu
Struktur menu software dirancang adalah sebagai berikut.
a. Struktur Menu Utama
Gambar 3.5 Struktur Menu Utama
Pada Gambar 3.5 merupakan struktur menu utama dari program ini yang ketika dijalankan tampilan awalnya mendeskripsikan judul skripsi dalam layar utama program ini dan memiliki button continue untuk menuju ke halaman berikutnya.
b. Struktur Menu File
Gambar 3.6 Struktur Menu File
Pada Gambar 3.6 menjelaskan struktur menu pada menu file yang dimana pada menu file ini memiliki 4 sub menu yang terdiri dari sub menu New, sub menu dialog Open, sub menu dialog Save, dan sub menu Exit. Di setiap sub menu
memiliki fungsi yang berbeda - beda yang akan dijelaskan lebih detail pada bab berikutnya.
c. Struktur Menu Help
Gambar 3.7 Struktur Menu Help
Pada Gambar 3.7 menjelaskan tentang struktur menu dari menu Help yang terdiri dari 2 sub menu yaitu sub menu About dan sub menu Description. Menu Help ini bertujuan untuk membantu memudahkan user untuk menjalankan program ini
dan memudahkan user dalam mengenal fungsi-fungsi dari masing-masing menu yang
berada dalam program ini dan tidak lupa juga program ini sudah dilengkapi dengan
biodata dari sang penulis.
3.2.2 Use Case Diagram
Pada tahap penjelasan program dengan menggunakan Diagram Use Case dapat dilihat ilustrasinya pada gambar berikut.
Gambar 3.8 Use Case Diagram untuk Optimizer
Setelah melihat Use Case Diagram pada Gambar 3.8 dapat dijelaskan bahwa sang user dapat melakukan 3 interaksi dalam program optimizer ini yaitu user dapat memasukkan input data dan settingan parameter
Algoritma Genetika, mencari solusi peletakan pola dengan menggunakan proses
searching dari Algoritma Genetika, serta dapat melihat solusi akhir dari
peletakan pola yang sudah dioptimalkan oleh program ini.
3.2.3 Flowchart Diagram
Pada tahap penjelasan program selanjutnya dengan menggunakan Diagram Flowchart dari proses mulai hingga selesai untuk mendapatkan solusi optimal dapat dilihat ilustrasinya pada gambar berikut.
Gambar 3.9 Flowchart Analisis Program Berjalan
3.2.4 Rancangan Layar Program a. Menu Welcome
Menu ini adalah merupakan menu tampilan utama dari rancangan layar program yang dibuat untuk menyambut user dengan mendeskripsikan secara sekilas judul dari karya ilmiah yang telah dibuat oleh penulis. Untuk menuju ke halaman berikutnya user dapat menekan button continue.
Rancangan layar Welcome dapat dilihat pada gambar berikut.
Welcome X
Continue
Gambar 3.10 Rancangan Layar Welcome
Berikut ini adalah pseudocode untuk form Welcome.
If ditekan tombol Continue then Tampilkan page berikut
b. Menu Optimizer
Pada menu Optimizer ini merupakan menu untuk sang user untuk
menginput data-data yang dibutuhkan untuk tahap pencarian solusi serta
tampilan untuk hasil dari pencarian solusi yang diinginkan.
Rancangan layar menu Optimizer dapat dilihat pada gambar berikut.
Gambar 3.11 Rancangan Layar Menu Optimizer
Berikut ini adalah pseudocode untuk form Menu Optimizer.
If ditekan tombol Add Row then Menginput nilai Width dan Height If ditekan tombol Delete Row then Menghapus baris terakhir dari inputan If ditekan tombol Run then
Menghitung total box area
Mengenerate secara random pada generasi awal While total new gen < total last gen
Begin
Perhitungan fungsi fitness Sorting kromosom
Evolusi
End
Tampilkan Output
c. Menu About
Pada Menu About ini berisikan tentang judul karya ilmiah sang penulis dan biodata singkat sang penulis beserta dosen pembimbing sang penulis selama mengerjakan karya ilmiah ini.
Rancangan layar menu About dapat dilihat pada gambar berikut.