BAB 3 ANALISIS DAN PERANCANGAN PROGRAM Perancangan program simulasi dalam skripsi ini terdiri dari empat tahapan, yaitu analisis, desain/perancangan, kode, dan pengujian/implementasi. Tahap analisis kebutuhan, desain/perancangan, dan kode akan dibahas dalam Bab 3 ini, sedangkan tahap implementasi dan evaluasi akan dilanjutkan di Bab 4. 3.1 Analisis Masalah Kubus rubik merupakan sebuah mainan kubus 3x3x3 yang mencatat sejarah sebagai mainan yang paling laris terjual sepanjang masa. Dimainkan oleh satu dari lima orang dewasa di hampir seluruh belahan dunia. Kubur rubik 3x3x3 mempunyai 8 sudut dan 12 tepi. Menurut, Hendry (2009) untuk setiap sudut, terdapat 8! cara untuk menyusun semua sudut di tempat yang berbeda. Secara orientasi, tiap sudut pada kubus rubik mempunyai 3 orientasi. Sudut yang satu bergantung kepada 7 sudut yang lainnya. Artinya, kemungkinan orientasi sudut ada sebanyak 3 7 kemungkinan. Untuk sisi, terdapat 12!/2 kemungkinan untuk menempatkan ke kotak kecil yang berbeda. Tiap sisi memiliki 2 orientasi. Sisi yang satu bergantung kepada 11 sisi yang lainnya. Maka terdapat 2 11 kemungkinan. Dengan mengalikan semuanya akan didapatkan hasil: Jadi, total permutasi yang mungkin dalam membentuk Rubik Cube adalah 4.33 quintillion (miliar miliar).
30 Dari keterangan di atas dapat ditarik kesimpulan bahwa kubus rubik merupakan permainan yang menarik dan banyak diminati masyarakat. Dengan perkembangan teknologi sekarang ini, bermain kubus rubik tidak perlu menggunakan kubus rubik langsung tetapi dapat menggunakan sebuah perangkat lunak. Menyelesaikan kubus rubik juga bukanlah suatu permasalahan yang mudah bagi orang awam karena sebagian orang menyerah ketika tidak menemukan penyelesaian kubus rubik. Salah satu cara untuk menyelesaikan masalah tersebut adalah program kubus rubik menggunakan algoritma genetik yang dapat digunakan untuk bermain sekaligus berguna untuk menghasilkan langkah-langkah optimal penyelesaian kubus rubik. 3.2 Solusi Masalah Setelah melihat permasalahan di atas, maka penulis mencoba untuk merancang suatu program simulasi yang menggunakan algoritma genetik untuk menyelesaikan masalah tersebut. Algoritma genetik ini akan menentukan langkah-langkah penyelesaian kubus rubik. Berikut ini flow chart algoritma genetik untuk penyelesaian masalah di atas:
31 Gambar 3.1 Flow Chart Algoritma Genetik Pertama-tama populasi harus memiliki nilai awal yang diisi dengan nilai dari representasi integer kubus rubik, yaitu 0 18. Pengisian gen ini dilakukan secara acak. Kemudian akan dilakukan crossover satu titik terhadap kromosom dalam populasi tersebut untuk mencari kromosom yang baru. Setelah crossover terjadi, dilakukan proses mutasi. Kemudian dicari nilai fitness masing-masing anggota populasi. Setelah masingmasing anggota populasi memiliki nilai fitness, dilakukan seleksi untuk membentuk populasi baru berdasarkan nilai fitness yang terbaik. Teknik seleksi yang digunakan
32 adalah rank selelection. Proses ini dilakukan secara berulang sampai solusi penyelesaian masalah didapatkan. Gambar 3.2 Flow Chart Proses Crossover Sumber: http://lecturer.eepisits.edu/~entin/kecerdasan%20buatan/buku/bab%207%20algoritma%20genetika.pdf
33 Gambar 3.3 Flow Chart Proses Mutasi Sumber: http://lecturer.eepisits.edu/~entin/kecerdasan%20buatan/buku/bab%207%20algoritma%20genetika.pdf 3.3 Perancangan Layar Sebelum tahap pembuatan perangkat lunak, berikut dibuat terlebih dahulu perancangan layar yang sebagai gambaran untuk dilanjutkan pada pembuatan perangkat lunak. Program simulasi kubus rubik ini memiliki tiga menu utama yaitu Menu 1 (Pengenalan Program), Menu 2 (Permainan), dan Menu 3 (Petunjuk Penggunaan).
34 3.3.1 Rancangan Layar Tampilan Awal Layar tampilan awal merupakan layar yang muncul pertama kali ketika program dijalankan. Layar tampilan awal berisi salam pembuka kepada pengguna yang menggunakan program simulasi kubus rubik. Gambar 3.4 Rancangan Layar Tampilan Awal 3.3.2 Rancangan Layar Menu Pengenalan Program Layar menu pengenalan program berisi deskripsi mengenai hal-hal yang berkait dengan program simulasi kubus rubik seperti penjelasan singkat mengenai program dan tujuan dari pembuatan program. Gambar 3.5 Rancangan Layar Menu Pengenalan Program
35 3.3.3 Rancangan Layar Menu Permainan Layar menu permainan berisi beberapa tombol dan tampilan kubus rubik 2D. Beberapa tombol yang ada, seperti : a. Back Ketika tombol back ditekan, tampilan kubus rubik 2D akan kembali ke tampilan sebelumnya. b. Next Ketika tombol next ditekan, tampilan kubus rubik 2D akan kembali ke tampilan sesudahnya. c. Random Ketika tombol random ditekan, maka kotak kecil pada kubus rubik 2D akan mengacak warna yang ada. d. Reset Ketika tombol reset ditekan, maka kotak kecil pada kubus rubik 2D akan kembali pada warna awalnya. e. Proses Ketika tombol proses ditekan, maka program akan memproses data yang ada dan memberikan solusi pergerakan yang mungkin untuk menyelesaikan kubus rubik sesuai dengan proses algoritma genetik. f. Left (L) Terdapat 3 macam tombol L yaitu L, L2, dan L. Ketika tombol L ditekan, bagian sisi kiri kubus rubik akan diputar sebesar searah jarum jam. Ketika tombol L2 ditekan, bagian sisi kiri kubus rubik akan diputar sebesar. Dan
36 ketika tombol L ditekan, bagian sisi kiri kubus rubik akan diputar sebesar berlawanan arah jarum jam. g. Right (R) Terdapat 3 macam tombol R yaitu R, R2, dan R. Ketika tombol R ditekan, bagian sisi kanan kubus rubik akan diputar sebesar searah jarum jam. Ketika tombol R2 ditekan, bagian sisi kanan kubus rubik akan diputar sebesar. Dan ketika tombol R ditekan, bagian sisi kanan kubus rubik akan diputar sebesar berlawanan arah jarum jam. h. Front (F) Terdapat 3 macam tombol F yaitu F, F2, dan F. Ketika tombol F ditekan, bagian sisi depan kubus rubik akan diputar sebesar searah jarum jam. Ketika tombol F2 ditekan, bagian sisi depan kubus rubik akan diputar sebesar. Dan ketika tombol F ditekan, bagian sisi depan kubus rubik akan diputar sebesar berlawanan arah jarum jam. i. Back (B) Terdapat 3 macam tombol B yaitu B, B2, dan B. Ketika tombol B ditekan, bagian sisi belakang kubus rubik akan diputar sebesar searah jarum jam. Ketika tombol B2 ditekan, bagian sisi belakang kubus rubik akan diputar sebesar. Dan ketika tombol B ditekan, bagian sisi belakang kubus rubik akan diputar sebesar berlawanan arah jarum jam.
37 j. Up (U) Terdapat 3 macam tombol U yaitu U, U2, dan U. Ketika tombol U ditekan, bagian sisi atas kubus rubik akan diputar sebesar searah jarum jam. Ketika tombol U2 ditekan, bagian sisi atas kubus rubik akan diputar sebesar. Dan ketika tombol U ditekan, bagian sisi atas kubus rubik akan diputar sebesar berlawanan arah jarum jam. k. Down (D) Terdapat 3 macam tombol D yaitu D, D2, dan D. Ketika tombol D ditekan, bagian sisi bawah kubus rubik akan diputar sebesar searah jarum jam. Ketika tombol D2 ditekan, bagian sisi bawah kubus rubik akan diputar sebesar. Dan ketika tombol D ditekan, bagian sisi bawah kubus rubik akan diputar sebesar berlawanan arah jarum jam. Gambar 3.6 Rancangan Layar Menu Permainan
38 3.3.4 Rancangan Layar Menu Petunjuk Penggunaan Layar menu petunjuk penggunaan berisi keterangan dari tombol-tombol yang ada di menu permainan. Gambar 3.7 Rancangan Layar Menu Petunjuk Penggunaan 3.4 Use Case Diagram skripsi ini. Berikut ini adalah Use Case Diagram dari perancangan program simulasi dalam Gambar 3.8 Use Case Diagram
39 3.5 Sequence Diagram Berikut adalah Sequence Diagram yang digunakan dalam penulisan skripsi ini: Gambar 3.9 Sequence Diagram Menu 1/Pengenalan Program
40 Gambar 3.10 Sequence Diagram Menu 2/ Permainan Gambar 3.11 Sequence Diagram Menu 3/ Petunjuk Penggunaan