1. Finite State Automata

Masukkan komponen automata pada form yang tersedia:

  • States: daftar nama state dipisah koma. Contoh: q0, q1, q2
  • Alphabet: daftar simbol input dipisah koma. Contoh: a, b
  • Transitions: tambahkan baris from, symbol, to, misal q0, a, q1
  • Start State: pilih salah satu state sebagai state awal
  • Final States: pilih satu atau lebih state sebagai state akhir
  • Input String: string yang ingin diuji, contoh aab

Untuk NFA, Anda dapat menambahkan transisi epsilon dengan menuliskan simbol epsilon atau ε pada kolom symbol, dan boleh memiliki lebih dari satu tujuan untuk pasangan (state, simbol) yang sama.


2. Regular Expression

Operator yang didukung:

OperatorKeteranganContoh
|Union (atau)a|b
*Kleene Star (0 atau lebih)a*
+Plus (1 atau lebih)a+
?Opsional (0 atau 1)a?
()Pengelompokan(ab)*

Masukkan pattern regex beserta beberapa string uji (satu per baris) untuk memeriksa kecocokan. Sistem akan menampilkan grammar reguler ekuivalen serta diagram NFA hasil Thompson's Construction.


3. Pushdown Automata & CFG

Format penulisan grammar (satu produksi per baris):

S -> a S b | ε
  • Non-terminal ditulis dengan huruf besar, contoh S, A, B
  • Terminal ditulis dengan huruf kecil/simbol, contoh a, b
  • Pisahkan alternatif produksi dengan tanda |
  • Epsilon dapat ditulis sebagai eps, epsilon, atau ε
  • Produksi pertama pada teks otomatis dianggap sebagai simbol awal (start symbol)

Sistem akan mencari leftmost derivation dan rightmost derivation menggunakan pencarian backtracking, menampilkan parse tree, serta mensimulasikan operasi stack PDA berdasarkan konstruksi standar CFG → PDA.

Catatan: parser bersifat brute-force dengan batas kedalaman pencarian, sehingga paling optimal digunakan untuk grammar sederhana seperti pada contoh perkuliahan.

4. Hierarki Chomsky & CNF

Gunakan format grammar yang sama seperti modul CFG. Sistem akan menjalankan lima tahap:

  1. Menambahkan start symbol baru
  2. Eliminasi epsilon production
  3. Eliminasi unit production
  4. Eliminasi useless symbol (non-generating & unreachable)
  5. Konversi ke bentuk baku CNF (A → BC atau A → a)

Setiap tahap ditampilkan sebagai grammar terpisah agar proses transformasi dapat diikuti secara bertahap, disertai identifikasi tipe grammar dalam Hierarki Chomsky.