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.
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. Keluaran- keluaran 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 :
• 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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
A. Flow Chart Program Utama
Gambar 3.7 Flow Chart Program Utama MULAI
Memilih DFA atau NFA
IF pilih = NFA
TIDAK TIDAK
IF pilih = DFA
YA YA
Menggambar diagram transisi DFA
Menggambar diagram transisi NFA
Melakukan transformasi NFA ke DFA
Menginput string
IF String mencapai final state
YA TIDAK
String diterima String ditolak
YA Diulang ?
TIDAK
SELESAI
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
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.
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