BAB 3 ANALISIS DAN PERANCANGAN PROGRAM 3.1 Analisis Kebutuhan Sistem Analisis kebutuhan sistem merepresentasikan daftar kebutuhan sistem yang akan dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara umum dan batasannya. Berikut ini adalah kebutuhan-kebutuhan aplikasi yang meliputi analisis kebutuhan fungsional yang berkaitan langsung dengan alur kerja sistem dan analisis kebutuan non-fungsional sistem. 3.1.1 Kebutuhan Fungsional Kebutuhan fungsional merupakan kebutuhan akan proses-proses yang akan dilakukan oleh sistem. Kebutuhan fungsional sistem ini adalah sebagai berikut : 1. Pengguna memilih automaton apakan yang ingin dibuat. 2. Pengguna dapat menggambarkan diagram transisi DFA atau NFA. 3. Sistem dapat menampilkan matriks transisi dari diagram transisi DFA atau NFA yang telah dibuat. 4. Pengguna dapat memasukkan inputan string untuk diuji dari diagram transisi DFA atau NFA yang telah dibuat. 5. Sistem dapat membedakan inputan string yang tidak cocok dengan link string dari diagram transisi DFA atau NFA yang diberikan oleh pengguna.
45 6. Sistem dapat melakukan pengujian inputan string, apakah dapat diterima atau tidak. 7. Sistem dapat melakukan transformasi dari diagram transisi NFA ke DFA. 3.1.2 Kebutuhan Non-Fungsional Kebutuhan non-fungsional merupakan kebutuhan yang menitikberatkan pada properti prilaku yang dimiliki oleh sistem. Kebutuhan non-fungsional untuk sistem ini adalah sebagai berikut : 1. Dari segi operasional : Sistem ini hanya dapat berjalan di berbagai sistem operasi yang sudah terpasang Java Runtime Environment (JRE). 2. Dari segi keamanan : Sistem ini dilengkapi dengan penyimpanan data, sehingga data automaton dapat dipelajari kembali. 3. Dari segi kinerja : Waktu untuk melakukan pengujian inputan string dan melakukan tranformasi dari NFA ke DFA lebih cepat dan tepat. 3.2 Rancangan Sistem Sistem yang akan dibuat dirancang sedemkian rupa agar menghasilkan sebuah aplikasi yang mudah digunakan oleh pengguna, serta dapat memberikan hasil keluaran yang jelas dan mudah dipahami bagi pengguna program aplikasi tersebut. Keluarankeluaran yang dihasilkan seperti : o Language (Ekspresi Regular). Adalah ekspresi yang dapat dibuat lebih sederhana lagi dengan ekspresi yang mirip dengan ekspresi arimatis yang memiliki aturan :
46 Ganti setiap { dengan (. Ganti setiap } dengan ). Ganti dengan +. Contoh : Tabel 3.1 Ekspresi Regular Bahasa Ekspresi Regular {} {0} 0 {001} 001 {0,1} 0 + 1 {0,10} 0 + 10 {1, }{001} (1 + ) 001 {110}*{0,1} (110)*(0 + 1) {1}*{10} 1*10 {10, 111, 11010}* (10 + 111 + 11010)* {0,10}*({11}* {001, }) (0 + 10)*((11)* + 001 + ) o Matriks Transisi. Adalah tabel dua dimensi di mana nilai menggambarkan kesimpulan dari diagram transisi, index pada baris menyatakan semua state dan index pada kolom menyatakan simbol yang mungkin muncul. o Diagram Transisi. Adalah graph berarah, di mana verteksnya merupakan state dari FA. Jika terdapat transisi dari state q ke state p dengan input a, maka busur dari q ke p adalah a. FA menerima strinf x, jika urutan sekumpulan transisi ke symbol x yang dimulai dari state awal ke state akhir. Simbolsimbol yang digunakan dalam diagram transisi adalah :
47 Tabel 3.2 Tabel Simbol Diagram Transisi o Fungsi Transisi (δ). Adalah representasi matematis atas transisi keadaan. Σ = himpunan alfabet. Q = himpunan keadaan-keadaan. δ = Q x Σ Q 3.2.1 RancanganTampilan Rancangan pertama dari program aplikasi ini saat pertama kali dijalankan yaitu tampilan halaman yang menampilkan 8 menu di mana menu kesatu sampai ketujuh merupakan modul yang telah dibuat dari skripsi sebelumnya. Untuk itu, pengguna harus memilih menu kedelapan untuk menjalankan program aplikasi yang penulis buat untuk skripsi ini. Di sini pengguna harus memilih apakah pengguna ingin membuat DFA atau NFA terlebih dahulu agar instruksi yang dijalankan tidak menjadi rancu, yang kemudian pengguna dapat menggambarkan diagram transisinya sesuai dengan pilihannya. Berikut merupakan rancangan tampilan awal aplikasi yang penulis buat untuk skripsi ini, setelah pengguna memilih menu kedelapan. seperti yang ditunjukkan pada gambar 3.1 berikut :
48 Gambar 3.1 Rancangan Tampilan Awal Aplikasi Pada rancangan kedua, setelah pengguna memilih apakah pengguna ingin membuat DFA atau NFA, di mana dalam hal ini pengguna memilih ingin membuat DFA, yang kemudian pengguna dapat menggambarkan diagram transisi DFA sesuai dengan keinginan pengguna. Berikut merupakan rancangan tampilan untuk menggambarkan diagram transisi DFA, seperti yang ditunjukkan pada gambar 3.2 :
49 Gambar 3.2 Rancangan Tampilan Untuk menggambarkan Diagram Transisi DFA Pada rancangan ketiga, setelah pengguna menggambarkan diagram transisi DFA, kemudian pengguna dapat memasukkan inputan string sesuai dengan keinginan pengguna. Hal ini digunakan untuk menguji apakah inputan string yang dimasukkan oleh pengguna tersebut dapat diterima atau tidak oleh sistem. Berikut merupakan rancangan tampilan untuk pengujian string pada DFA, seperti yang ditunjukkan pada gambar 3.3 berikut :
50 Gambar 3.3 Rancangan Tampilan Untuk Pengujian Inputan String Pada DFA Pada rancangan keempat, setelah pengguna memilih apakah pengguna ingin membuat DFA atau NFA, di mana dalam hal ini pengguna memilih optional NFA, kemudian pengguna dapat menggambarkan diagram transisi NFA sesuai dengan keinginan pengguna. Berikut merupakan rancangan tampilan untuk menggambarkan diagram transisi DFA, seperti yang ditunjukkan pada gambar 3.4 :
51 Gambar 3.4 Rancangan Tampilan Untuk menggambarkan Diagram Transisi NFA Pada rancangan kelima, setelah pengguna menggambarkan diagram transisi NFA, kemudian pengguna dapat memasukkan inputan string sesuai dengan keinginan pengguna. Hal ini digunakan untuk menguji apakah inputan string yang dimasukkan oleh pengguna tersebut dapat diterima atau tidak oleh sistem. Berikut merupakan rancangan tampilan untuk pengujian string pada NFA, seperti yang ditunjukkan pada gambar 3.5 berikut :
52 Gambar 3.5 Rancangan Tampilan Untuk Pengujian Inputan String Pada NFA Pada rancangan keenam, pengguna dapat langsung melakukan transformasi dari NFA ke DFA atau pengguna dapat juga melakukan transformasi dari NFA ke DFA setelah pengguna melakukan pengujian string pada diagram transisi NFA. Di sini juga sistem dapat melakukan pengujian string setelah diagram transisi NFA bertransformasi menjadi DFA. Berikut merupakan rancangan tampilan untuk hasil transformasi dari NFA ke DFA, seperti yang ditunjukkan pada gambar 3.6 dibawah ini :
53 Gambar 3.6 Rancangan Tampilan Hasil Tranformasi NFA ke DFA 3.2.2 Skema Rancangan Sistem Berikut akan dijelaskan mengenai skema perancangan program aplikasi beserta dengan modul-modulnya yang dibuat dalam bentuk flow chart dan Use Case Diagram yang berguna sebagai proses penggambaran program aplikasi dari dalam hal membuat diagram transisi deterministik finite automata (DFA) ataupun non-deterministik finite automata (NFA), pengujian string pada diagram transisi DFA ataupun diagram transisi NFA hingga diagram transisi NFA yang dapat melakukan transformasi menjadi diagram transisi DFA :
54 A. Flow Chart Program Utama MULAI TIDAK Memilih DFA atau NFA TIDAK IF pilih = DFA IF pilih = NFA YA YA Menggambar diagram transisi DFA Menggambar diagram transisi NFA Melakukan transformasi NFA ke DFA Menginput string YA IF String mencapai final state TIDAK String diterima String ditolak YA Diulang? TIDAK SELESAI Gambar 3.7 Flow Chart Program Utama
55 Gambar 3.7 di atas menunjukkan alur kerja keseluruhan dalam program yang disertakan dengan alur kontrol berjalannya modul-modul pada program aplikasi secara garis besar beserta dengan kondisi-kondisi yang perlu dipenuhi agar suatu modul spesifik dapat berjalan. B. Use Cases Diagram Program Pengujian Jalankan program user interface dengan memilih menu nomor 8 Memilih automaton apakah DFA atau NFA Menggambarkan Diagram Transisi DFA atau NFA Menginput String untuk diuji apakah string tersebut diterima atau tidak Melakukan tranformasi dari diagram transisi NFA ke DFA Gambar 3.8 Use Cases Diagram untuk program pengujian Gambar 3.8 menunjukkan kemungkinan interaksi yang bias dilakukan pengguna dengan sistem program aplikasi. Kemungkinan-kemungkinan ini disajikan dalam bentuk Use Cases Diagram.