BAB 3 PERANCANGAN PROGRAM 3.1 Spesifikasi Rumusan Rancangan Program Algoritma Genetika dirancang dengan mengikuti prinsip-prinsip dan sifatsifat 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).
30
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
31
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 menggenerate sebuah generasi baru secara random yang didapat dari kromosom setiap kotak untuk mendapatkan BestGeneration.
32
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 :
33
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
34
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 1
2150 55 . 60 0.651 0.349
35
Gambarr 3.3 Hasil Sementara S daari Pengurutaan Objek Poola 3 3.1.4
Prosees Output Pada tahaap akhir, yaiitu proses ouutput dimanaa hasil dari seluruh s penccarian letak k dan penguurutan polaa dengan menggunakan m n Algoritmaa Genetika akan ditam mpilkan padda program ini. i Contoh dari hasil output o pada program inii bisa dilihat pada Gam mbar 3.4.
Gambar 3.4 Sampeel Hasil Akhiir Pengurutaan Objek Polla
3 Peranca 3.2 angan Progrram Peran ncangan sistem yang bertujuan b unntuk memennuhi berbagaai tuntutan untuk u menghassilkan sebuaah aplikasi pengoptimal p lan pola terrbaik. Sistem m ini diharaapkan memberiikan kemuddahan bagi penggunany p a. Perancanngan ini berrupa perancaangan
36
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
37
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.
38
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.
39
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
40
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.
41
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
42
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.
Gambar 3.12 Rancangan Menu About
Berikut adalah pseudocode untuk menu about. If ditekan tombol OK then Keluar dari menu About d. Menu Description Pada Menu Description ini berisikan tentang penjelasan masing-masing fungsi dari menu bar, sub menu bar, button serta prosedur penggunaan yang ada dalam program ini. Rancangan layar menu Description dapat dilihat pada gambar berikut.
Gambar 3.13 Rancangan Modul Description Berikut adalah pseudocode untuk menu Description. If ditekan tombol OK then Keluar dari menu Description.