BAB III ANALISA MASALAH DAN PERANCANGAN
III.1. Analisa Sub bab ini berisikan tentang analisa sistem yang akan dibangun. Sub bab ini membahas teknik pemecahan masalah yang menguraikan sebuah sistem menjadi bagian-bagian komponen dengan tujuan mempelajari seberapa baik bagian-bagian komponen tersebut bekerja dan berinteraksi.
III.1.1. Analisa Masalah Tujuan dari fase analisis adalah memahami dengan sebenar-benarnya kebutuhan dari sistem baru dan mengembangkan sebuah sistem yang mewadahi kebutuhan tersebut. Untuk mempermudah analisis sistem dalam menentukan kebutuhan secara lengkap, maka penulis membagi kebutuhan sistem kedalam dua jenis yakni, kebutuhan fungsional dan kebutuhan nonfungsional.
III.1.1.1. Analisa Kebutuhan Fungsional Kebutuhan fungsional adalah jenis kebutuhan yang berisi proses-proses apa saja yang nantinya dilakukan oleh sistem. Kebutuhan fungsional juga berisi informasi-informasi apa saja yang harus ada dan dihasilkan oleh sistem. Berikut kebutuhan fungsional yang terdapat pada sistem yang dibangun : 1.
Mengimplementasikan penggunaan Visual Basic.Net 2008 dalam membuat perangkat lunak simulasi langkah kuda dalam papan catur.
55
56
2. Membangun perangkat lunak simulasi yang user friendly dan interaktif dengan visualisasi yang menarik. 3. Merancang suatu perangkat lunak yang mampu mencari semua solusi pergerakan terpendek untuk menuju posisi tujuan dengan menggunakan sistem produksi dan pohon pelacakan.
III.1.1.2. Analisa Kebutuhan NonFungsional Kebutuhan ini adalah tipe kebutuhan yang berisi properti perilaku yang dimiliki oleh sistem. Berikut adalah kebutuhan nonfungsional yang dimiliki sistem : 1. Operasional A. Digunakan pada sistem operasi Microsoft Windows Mobile secara stand alone. B. Aplikasi dibangun dengan menggunakan komponen sebagai berikut : i.
Paket software Visual Studio 2008 untuk Visual Basic 2008, untuk aplikasi pemrograman aplikasi.
C. Spesifikasi komputer standard Processor Pentium IV 2,6 GHz, Memori 512 MB, Kartu Grafik 128 MB 2. Kinerja Waktu yang diperlukan dalam mengeksekusi perangkat lunak simulasi langkah kuda dalam papan catur yang dibangun cukup ringan, sehingga eksekusi tampilannya cukup cepat.
57
III.2. Perancangan Sistem Sub bab ini berisikan tentang rancangan sistem yang akan dibangun, dalam hal ini perancangan terhadap sistem.
III.2.1. Diagram Use Case Berikut ini merupakan diagram use case dari “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Terlihat pada gambar III.1
Gambar III.1. Diagram Use Case Aplikasi Pada diagram use case di atas, aktor yang didefenisikan pada aplikasi hanya 1 yakni user. User adalah orang yang menjalankan aplikasi. Ketika aplikasi dijalankan, aplikasi akan menampilkan halaman dan mengeksekusi perintah sesuai dengan event yang diberikan user pada interface aplikasi.
58
III.2.2. Diagram Kelas Berikut ini merupakan diagram kelas dari aplikasi “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Terlihat pada gambar III.2 LihatPetunjuk Main +bacaPetunjuk() +main() +uiMenu() +uiLihatPetunjuk() +uiSimulasiLangkahKuda()
SimulasiLangkahKuda +ubahUkuranPapan() +posisikanBuahCatur() +cariSemuaSolusi() +simulasikanSolusi()
Gambar III.2. Diagram Kelas Aplikasi
III.2.3. Diagram Objek Berikut ini merupakan diagram objek dari aplikasi “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Terlihat pada gambar III.3 ma : LihatPetunjuk
main : Main *
*
*
mb : SimulasiLangkahKuda *
Gambar III.3 Diagram Objek Aplikasi
59
III.2.4. Diagram Sekuen Berikut ini merupakan diagram sequence dari aplikasi “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Terlihat pada gambar III.4, dan gambar III.5
Use Case : Lihat Petunjuk
Gambar III.4 Diagram Sequence Lihat Petunjuk
60
Use Case : Simulasi Langkah Kuda
Gambar III.5 Diagram Sequence Simulasi Langkah Kuda
61
III.2.5. Diagram Status Berikut ini merupakan diagram status dari aplikasi “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Objek : main dari kelas Main
Gambar III.6 Diagram Status Untuk Objek : main dari kelas Main
Objek : ma dari kelas LihatPetunjuk
Gambar III.7 Diagram Status Untuk Objek : ma dari kelas LihatPetunjuk
62
Objek : mb dari kelas SimulasiLangkahKuda
Gambar III.8 Diagram Status Untuk Objek : mb dari kelas SimulasiLangkahKuda
III.2.6. Diagram Aktivitas Berikut ini merupakan diagram aktivitas dari aplikasi “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Terlihat pada gambar III.9
63
Gambar III.9 Diagram Aktivitas
III.2.7. Diagram Komponen Berikut ini merupakan diagram komponen dari aplikasi “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Terlihat pada gambar III.10
64
Application
Package3
User Interface
Logic Processing
Gambar III.10 Diagram Komponen III.2.8. Diagram Deployment Berikut ini merupakan diagram deployment dari aplikasi “Perangkat Lunak Simulasi Langkah Kuda dalam Papan Catur”. Terlihat pada gambar III.11 Application
VB.Net 2008
components user interface logic processing
Gambar III.11 Diagram Deployment
65
III.3. Perancangan Tampilan III.3.1 Rancangan Tampilan Splash Screen Background Image
PERANGKAT LUNAK Simulasi Langkah Kuda Dalam Papan Catur Mareti Zebua (08100198) Teknik Informatika-STMIK Potensi Utama
Gambar III.12 Rancangan Form Splash Screen Form splash screen adalah form yang peratama kali muncul saat aplikasi simulasi langkah kuda dalam papan catur di eksekusi. III.3.2 Rancangan Tampilan Menu Aplikasi
Background Image
PERANGKAT LUNAK Simulasi Langkah Kuda Pada Papan Catur Simulasi Langkah Kuda Dalam Papan Catur Lihat Petunjuk Exit
Gambar III.13 Rancangan Form Menu
Form menu diatas merupakan form yang akan ditampilkan ketika form splash screen telah tertutup. Dalam form menu ini, terdapat 3 (tiga) buah tombol
66
yakni, “Simulasi Langkah Kuda Dalam Papan Catur, lihat petunjuk dan tombol “Exit”. Tombol “Simulasi Langkah Kuda Dalam Papan Catur” digunakan untuk menampilkan form pengaturan simulasi, dan tombol lihat petunjuk untuk menampilkan pesan cara menjalankan simulasi, sedangkan tombol Exit digunakan untuk keluar dari aplikasi.
III.3.3 Rancangan Tampilan Form Pengaturan Simulasi
Gambar III.14 Rancangan Form Pengaturan Simulasi Form di atas merupakan form awal yang digunakan untuk pengaturan simulasi langkah kuda, dalam form ini pengguna dapat melakukan perubahan
67
ukuran papan catur, dilanjutkan dengan penempatan posisi buah catur, dan pencarian semua solusi pergerakan terpendek.
III.3.4 Rancangan Tampilan Form Simulasi Langkah Kuda
Gambar III.15 Rancangan Form Simulasi Langkah Kuda Form simulasi ini merupakan form yang menampilkan semua solusi pergerakan kuda dalam melumpuhkan raja, dilengkapi dengan langkah-langkah pada masing-masing solusi. Untuk melihat simulasi dilakukan dengan menekan tombol “Play”, untuk menghentikan simulasi sementara dilakukan dengan menekan tombol “Pause”, sedangkan tombol “Reset” digunakan untuk me-reset simulasi langkah kuda.
68
III.3.5 Rancangan Tampilan Form Lihat Petunjuk
Image
Isi Petunjuk
Keluar
Gambar III.16 Rancangan Form Simulasi Lihat Petunjuk Form lihat petunjuk adalah form yang berisi petunjuk penggunaan aplikasi, form petunjuk juga berfungsi untuk mempermudah pengguna dalam menggunakan aplikasi simulasi langkah kuda dalam papan catur. III.4 Algoritma Algoritma perancangan perangkat lunak simulasi langkah kuda dalam papan catur dapat dibagi menjadi 2 (dua) bagian, yaitu : 1. Algoritma pencarian solusi. 2. Algoritma fungsi pendukung.
69
III.4.1 Algoritma Pencarian Solusi Seperti telah dijelaskan pada bab 2 bahwa pencarian solusi menggunakan bantuan pohon pelacakan dengan metode Breadth-First Search (BFS). Algoritma pencarian BFS akan melakukan penelusuran node per level, artinya semua node pada level yang sama akan dikunjungi terlebih dahulu sebelum penelusuran dilanjutkan ke node pada level berikutnya. Karena bisa terdapat lebih dari satu solusi, maka penelusuran atau pengembangan node dilakukan hingga tidak ada node yang dapat dikembangkan lagi. Node yang berisi posisi tujuan merupakan solusi. Terdapat 8 buah operasi untuk mengembangkan setiap node dalam pohon pelacakan, yaitu: 1. Geser biji kuda ke atas sebelah kiri (Baris = baris + 2, Kolom = kolom – 1). 2. Geser biji kuda ke atas sebelah kanan (Baris = baris + 2, Kolom = kolom + 1). 3. Geser biji kuda ke kiri sebelah atas (Baris = baris + 1, Kolom = kolom – 2). 4. Geser biji kuda ke kiri sebelah bawah (Baris = baris – 1, Kolom = kolom – 2). 5. Geser kuda ke kanan sebelah atas (Baris = baris + 1, Kolom = kolom + 2). 6. Geser kuda ke kanan sebelah bawah (Baris = baris – 1, Kolom = kolom + 2). 7. Geser kuda ke bawah sebelah kiri (Baris = baris – 2, Kolom = kolom – 1). 8. Geser kuda ke bawah sebelah kanan (Baris = baris – 2, Kolom = kolom + 1). Operasi ini harus mematuhi aturan sebagai berikut: 1. Posisi setelah pergeseran tidak boleh berada di luar papan catur. 2. Posisi setelah pergeseran tidak boleh sama dengan posisi biji bidak (rintangan).
70
3. Posisi setelah pergeseran belum pernah dilintasi sebelumnya (pada satu jalur yang sama dalam pohon pelacakan). Ini menjamin bahwa biji kuda tidak akan menempati posisi yang sudah pernah ditempati sebelumnya.
Gambar III.17 Flowchart Algoritma Pencarian Solusi
71
III.4.2 Algoritma Fungsi Pendukung Beberapa algoritma fungsi pendukung pada perangkat lunak adalah: 1. Fungsi ‘ConvIndexToPosisi’. Fungsi ini mengkonversi nilai indeks kotak menjadi posisi pada papan catur. Apabila index = 30, maka fungsi ConvIndexToPosisi akan mengembalikan nilai variabel. Baris = 4, Kolom = 6 . 2. Fungsi ‘IsAllNodeCek’. Fungsi ini melakukan pemeriksaan apakah semua node sudah ditelusuri. Fungsi mengembalikan nilai boolean. ‘True’ jika semua node sudah ditelusuri dan ‘False’ jika terdapat node yang belum ditelusuri. 3. Fungsi ‘IsValidPosisi’. Fungsi melakukan pemeriksaan apakah suatu posisi valid atau tidak. Fungsi mengembalikan nilai boolean. ‘True’ jika posisi valid dan ‘False’ jika posisi tidak valid.
72
Mulai
T Konversi nilai indeks menjadi posisi papan catur ?
Y
T
Konversi indeks = 30?
Tampilan konversi Y T Baris = 4, kolom = 6
Semua node sudah ditelusuri
False
Y
True
T
Posisi valid?
Y
Selesai
True
Gambar III.18 Flowchart Algoritma Pendukung