Anda di halaman 1dari 47

Teori Bahasa dan Automata

Nama Kelompok :
- Aditya Aji Pradana (1721018)
-Adi Triyanto (172101841)
-Andika Zulfiansyah (172101796)
-Christian Ferry (172101843)
-Erlick Sujatmiko (1721018)
-Ray Rinaldo (1721018)
Deterministic Finite Automata dan
Non-Deterministic Finite Automata
Deterministic Finite Automata
Finite Automata (FA) :
– Suatu model komputer dengan jumlah memory yang sangat terbatas.
– Model komputasional yang paling sederhana.Ada 2 jenis :
– Deterministik Finite Automata (DFA)“Deterministik” setiap input alphabet/ simbol darisuatu state
hanya akan bertransisi ke satu state lain.Atau dengan kata lain, “ deterministik ” berarti tidak ambigu
dalam menentukan next state.

Contoh Deterministic FA
-Mesin Genap di pertemuan sebelumnya (catatan: 0 adalah genap).
-Lihat bahwa dari q0, tidak ada kerancuan jika menerima input 0 (akan ke q1), dan sebagainya.
Contoh Non Deterministic FA
-Mesin di bawah adalah mesin (NFA) untuk mengenali string biner yang selalu diakhiri 01.
-Lihat bahwa, dari state q0 akan muncul kerancuan atau keambiguan jika menerima input 0 ( akan ke q0 atau
q1).
Definisi DFA
Deterministic Finite Automaton disingkat menjadi “DFA” dan juga biasa dikenal sebagai Deterministic Finite Acceptor
(DFA), Deterministic Finite State Machine (DFSM), atau Deterministic Finite State Automaton (DFSA).

DFA merupakan teori komputasi dan cabang dari ilmu komputer teoritis. DFA adalah Finite-state Machine atau mesin keadaan
terbatas yang menerima atau menolak string dari simbol dan hanya menghasilkan perhitungan unik dari otomata untuk
setiap string yang di masukan.

Finite state automata adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran diskrit yang dapat
mengenali bahasa paling sederhana (bahasa reguler) dan dapat diimplementasikan secara nyata.

Finite State Automata (FSA) adalah model matematika yang dapat menerima input dan mengeluarkan output yang memiliki
state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasarkan input dan fungsi transisi.
Finite state automata tidak memiliki tempat penyimpanan/memory, hanya bisa mengingat state terkini.
Finite State Automata dinyatakan oleh pasangan 5 tuple, yaitu:
M=(Q , Σ , δ , S , F )
Q = himpunan state
Σ = himpunan simbol input
δ = fungsi transisi δ : Q × Σ
S = state awal / initial state , S ∈ Q
F = state akhir, F ⊆ Q
Karakteristik Finite Automata

1.Setiap Finite Automata memiliki keadaan dan transisi yang terbatas.


2.Transisi dari satu keadaan ke keadaan lainnya dapat bersifat deterministik atau non-deterministik.
3.Setiap Finite Automata selalu memiliki keadaan awal.
4.Finite Automata dapat memiliki lebih dari satu keadaan akhir.
jika setelah pemrosesan seluruh string, keadaan akhir dicapai, artinya otomata menerima string
tersebut.
Setiap FSA memiliki:
1.Himpunan berhingga (finite) status (state)
•Satu buah status sebagai status awal (initial state), biasa dinyatakan q0.
•Beberapa buah status sebagai status akhir (final state).
2.Himpunan berhingga simbol masukan
3.Fungsi transisi Menentukan status berikutnya dari setiap pasang status dan sebuah simbol
masukan.
Cara Kerja Finite State Automata
Finite State Automata bekerja dengan cara mesin membaca memori masukan berupa tape yaitu 1
karakter tiap saat (dari kiri ke kanan) menggunakan head baca yang dikendalikan oleh kotak kendali
state berhingga dimana pada mesin terdapat sejumlah state berhingga.
Finite Automata selalu dalam kondisi yang disebut state awal (initial state) pada saat Finite Automata
mulai membaca tape. Perubahan state terjadi pada mesin ketika sebuah karakter berikutnya dibaca.
Ketika head telah sampai pada akhir tape dan kondisi yang ditemui adalah state akhir, maka string
yang terdapat pada tape dikatakan diterima Finite Automata (String-string merupakan milik bahasa
bila diterima Finite Automata bahasa tersebut).
Finite State Diagram (FSD)
Finite State Automata dapat dimodelkan dengan Finite State Diagram (FSD) dapat juga disebut State
Transition Diagram. Sistem transisi adalah sistem yang tingkah lakunya disajikan dalam bentuk
keadaan-keadaan (states). Sistem tersebut dapat bergerak dari state yang satu ke state lainnya sesuai
dengan input yang diberikan padanya.
Fungsi Transisi (d) adalah representasi matematis atas transisi keadaan.
S = himpunan alfabet.
Q = himpunan keadaan-keadaan.
d=QxSàQ
Finite State Diagram terdiri dari:
1.Lingkaran menyatakan state
Lingkaran diberi label sesuai dengan nama state tersebut. Adapun pembagian lingkaran adalah:
•Lingkaran bergaris tunggal berarti state sementara
•Lingkaran bergaris ganda berarti state akhir
2.Anak Panah menyatakan transisi yang terjadi.
Label di anak panah menyatakan simbol yang membuat transisi dari 1 state ke state lain. 1 anak
panah diberi
label start untuk menyatakan awal mula transisi dilakukan.
• Sebuah FSA dibentuk dari lingkaran yang menyatakan state:
• Label pada lingkaran adalah nama state
• Busur menyatakan transisi/ perpindahan
• Label pada busur yaitu symbol input
• Lingkaran yang didahului sebuah busur tanpa label menyatakan
state awal
• Lingkaranb ganda menyatakan state akhir/ final.
Jadi sebuah mesin otomata dapat dinyatakan dalam diagram transisi,
fungsi transisi dan tabel transisi.
Deterministic Finite Automata (DFA)
• Deterministic Finite Automata (DFA) : dari suatu state ada tepat satu
state berikutnya untuk setiap simbol masukan yang diterima.
Deterministik artinya tertentu/sudah tertentu fungsi transisinya.
Notasi matematis DFA:
• M = nama DFA
• Q = himpunan keadaan DFA
• S = himpunan alfabet
• d = fungsi transisi
• q0 = keadaan awal
• F = keadaan akhir
M = (Q, S, d, q0, F)
• Contoh : Pengujian untuk menerima bit string dengan banyaknya 0 genap, serta banyaknya 1
genap.
• 0011 : diterima
• 10010 : ditolak, karena banyaknya 0 ganjil
• Diagram transisi-nya :

• DFA nya:
• Q = {q0 , q1 , q2 , q3 }
• Σ = {0,1}
• S = q0
• F = { q0}
• fungsi transisi adalah:

• δ( q0,011)= δ( q2,11) =δ( q3,1)= q2 Ditolak


• δ( q0,1010)= δ( q1,010) =δ( q3,10)=δ( q2,0)= q0 Diterima
Nondeterministic Finite Automata (NFA)

• Nondeterministic Finite Automata (NFA) adalah salah satu bagian dari


otomata berhingga atau Finite State Automata (FSA). Pada
Nondeterministic Finite Automata (NFA) dimungkinkan satu simbol
menimbulkan transisi ke lebih dari satu kondisi dan memberikan
beberapa kemungkinan gerakan sehingga keluarannya tidak dapat
dipastikan. Selain itu dimungkinkan juga terjadinya transisi spontan
atau transisi –ε.
• Nondeterministic Finite Automata (NFA) didefenisikan sebagai M yang merupakan sebuah koleksi
dari 5 obyek (Q , Σ , s , F , ∆ ) dimana :

• 1. Q adalah sebuah himpunan hingga dari kedudukan-kedudukan.

• 2. Σ adalah sebuah abjad masukan.

• 3. s adalah salah satu kedudukan di dalam Q yang ditetapkan sebagai kedudukan permulaan.

• 4. F adalah sebuah koleksi dari kedudukan-kedudukan yang diterima atau final (koleksi /
himpunan dari kondisi akhir).

• 5. ∆ adalah sebuah relasi pada (Q x Σ) x Q dan dinamakan relasi transisi.


• DFA dapat menuntun recognizer(pengenal) lebih cepat dibanding
NDFA. Namun demikian, DFA berukuran lebih besar dibanding NDFA
yang ekivalen dengannya. Lebih mudah membangun NDFA dibanding
DFA untuk suatu bahasa, namun lebih mudah mengimplementasikan
DFA dibanding NDFA.
rangkaian Nondeterministic Finite Automata (NFA)
• Rangkaian pada Gambar tergolong dalam Nondeterministic Finite
Automata (NFA)karena beberapa transisi yang berasal dari satu
kondisi yaitu kondisi q0 memiliki inputan yang sama yaitu
‘a’. Rangkaian tersebut akan menerima string ab, aab, aabaab, aba,
dan abaaba, tetapi tidak akan menerima string abb dan aabb.
Regular dan Non-Regular Language
L = { w ∈ {a,b}* : w = aibi, for some i ≥ 0 }

• Ada apa dengan bahasa ini yang membuatnya tidak biasa? Bayangkan
memproses string dengan ∈ L. Ketika kita melihat a, kita harus
mengingat berapa banyak yang telah kita lihat dan kemudian
menggunakan angka itu untuk mencocokkan b's dan menerima jika
jumlahnya sama.
• Jika kita tahu bahwa ada, katakanlah, tidak lebih dari 5 a, maka DFA
berikut akan berfungsi (transisi yang hilang menuju ke kondisi mati):
• Masalahnya adalah bahwa kita hanya memiliki memori terbatas, dan
pada titik tertentu kita akan menghabiskan jumlah a yang dapat kita
ingat. Idenya adalah untuk membuat tepat keterbatasan memori yang
terbatas. Hal ini dilakukan oleh Pumping Lemma klasik berikut.
Pumping Lemma

• Misalkan L menjadi bahasa biasa, maka ada N> 0 yang bisa digunakan
sebagai berikut.

• Untuk setiap w ∈ L sedemikian sehingga | w | ≥ N, w dapat ditulis sebagai


• w = xyz
• seperti yang:
• y≠ε
• | xy | ≤ N
• xyiz ∈ L, untuk semua i ≥ 0
• Bukti:
• Ambil DFA, M, untuk L. Let N = jumlah negara. Ambil string w,
misalkan n = | w | dan asumsikan n ≥ N. Tuliskan w = σ1 ... σn dan
pertimbangkan transisi yang akan terjadi ketika memproses w dari
keadaan awal q0:
• δ (q0, σ1) = q1, δ (q1, σ2) = q2, ..., δ (qn-1, σn) = qn ∈ F
• Pertimbangkan status N + 1 {q0, q1, ..., qN} yang terkait dengan
transisi N pertama. Berikut ini gambarannya:
Dengan prinsip pigeonhole, setidaknya dua sama: qi = qj, di mana 0 ≤ i <j ≤ N. Lalu tulis w
= xyz di mana
(q0, xyz) ⊢ * (qi, yz) ⊢ * (qj, z) ⊢ * (qn, ε)
Substring y membuat transisi dari qi ke qj, di mana i <j, dan | y | > 0. Tulis q = qi = qj
sebagai nilai umum. Berikut ini gambarannya:
Menulis ulang transisi dengan substitusi q memberikan:
(q0, xyz) ⊢ * (q, yz) ⊢ * (q, z) ⊢ * (qn, ε) dan jadi kita bisa
"memompa" substring y, mengulang dari q kembali ke
dirinya sendiri beberapa kali: (q, yiz) ⊢ * (q, z), untuk
semua i ≥ 0 Demikian, (q0, xyiz) ⊢ * (q, yiz) ⊢ * (q, z) ⊢ *
(qn, ε), untuk semua i ≥ 0 artinya xyiz diterima untuk
semua i ≥ 0. ■
Bukti Umum

• Hasil dari lemma pemompaan mengatakan itu


• w = xyz dan xyiz ∈ L
• Anda ingin membuat pernyataan salah karena inklusi tambahan
dalam L, dan biasanya Anda dapat membuat pernyataan salah dengan
salah satu dari dua pernyataan ini:
• xz ∈ L (i = 0)
• xyyz ∈ L (i = 2)
• Contoh klasik non-reguler
• Bukti non-keteraturan bahasa menggunakan lemma pemompaan
adalah bukti oleh kontradiksi. Tujuannya adalah mengasumsikan
bahwa bahasa itu teratur dan kemudian mendapatkan string yang
tidak ada dalam bahasa tersebut, sehingga bertentangan dengan
asumsi keteraturan.
• Bahasa ini tidak teratur:
• L0 = {w ∈ {a, b} *: w = aibi, untuk beberapa i ≥ 0}
• Misalkan ini biasa. Biarkan N menjadi konstanta yang dipilih oleh
lemma pemompaan. Pertimbangkan string w = aNbN. Lalu | w | = 2 ·
N> N, dan kita dapat menulis w = xyz sesuai dengan konsekuensi dari
lemma. Sejak | xy | ≤ N dan | y | > 0, pastilah y adalah substring yang
tidak kosong dari bagian aN, yaitu y = ak untuk beberapa k> 0.
• Menurut lemma pemompaan, xyyz = aN + kbN juga harus menjadi
milik L untuk k> 0, sebuah kontradiksi.
Terkait bahasa non-reguler
• Bahasa-bahasa ini tidak teratur:
• L = {w ∈ {a, b} *: w = ambn, untuk m> n}
• L = {w ∈ {a, b} *: w = ambn, untuk m <n}
• Dari N yang diberikan, gunakan ini sebagai string di yang sebelumnya:
• w = aN + 1bN
• dan ini di yang terakhir:
• w = aNbN + 1
• Bahasa ini tidak teratur:
• L = {w ∈ {a, b} *: #a (w) = #b (w)}
• di mana # σ (w) adalah jumlah kemunculan σ di w.
• Untuk pendekatan yang sedikit berbeda, bukti berdasarkan
kontradiksi ini bergantung pada contoh sebelumnya dan properti
penutupan. Jika L teratur maka, karena a * b * teratur, bahasa ini juga
harus teratur:
• L ∩ a * b * = {w ∈ {a, b} *: w = aibi, untuk beberapa i ≥ 0} = L0
• Kami baru saja membuktikan ketidakteraturan L0, yang merupakan
kontradiksi. Karena itu L tidak bisa teratur.
• Bahasa ini tidak teratur:
• L = {w · wR: w ∈ {a, b} *}
• Ini adalah himpunan semua palindrom panjang genap. Salah satu
pendekatan adalah menyederhanakan dengan membatasi
kemungkinan seperti yang kami lakukan Pertimbangkan:
• L ∩ a * bba *
• Coba selesaikan argumennya
Push Down Automata
PDA adalah mesin otomata dari TBBK yang diimplementasikan dengan stack sehingga hanya terdapat operasi “push” dan “pop” Stack
(tumpukan) adalah suatu struktur data yang menggunakan prinsip LIFO (Last In First Out). Sebuah stack selalu memiliki top of stack dan
elemen-elemen stack itu yang akan masuk ke dalam stack dengan method “push” dan akan keluar dari stack dengan method “pop”.
• Definisi : PDA adalah pasangan 7 tuple M = (Q, Σ, , q 0 , Z 0 , δ, A), dimana :
• Q : himpunan hingga stata, Σ : alfabet input, : alfabet stack, q 0 ∈ Q : stata awal, Z 0 ∈ : simbol awal stack, A ⊆ Q : himpunan stata penerima,
• fungsi transisi δ : Q (Σ ∪ {ε}) →2Q * (himpunan bagian dari Q *)
• Untuk stata q ∈ Q, simbol input a ∈ Σ, dan simbol stack X∈ , δ(q, a, X) = (p, α) berarti : PDA bertransisi ke stata p dan mengganti X pada stack
dengan string α.
• Konfigurasi PDA pada suatu saat dinyatakan sebagai triple (q, x, α), dimana :
• q ∈ Q : stata pada saat tersebut, x ∈ Σ* : bagian string input yang belum dibaca, dan α ∈ * : string yang menyatakan isi stack dengan
karakter terkiri menyatakan top of stack.
• Misalkan (p, ay, Xβ) adalah sebuah konfigurasi, dimana : a ∈ Σ, y ∈ Σ*, X ∈ , dan β ∈ *. Misalkan pula δ(p, a, X) = (q, γ) untuk q ∈ Q dan γ ∈ *.
Dapat kita tuliskan
• bahwa : (p, ay, Xβ) ⇒ (q, y, γβ).
• Sebuah PDA dinyatakan dengan :
• Q = himpunan state
• Σ = himpunan simbol input
• T = simbol stack
• S = state awal
• F = state akhir
• Z = top of stack
PDA memiliki 2 jenis transisi, yaitu yang merima simbol input, simbol
top of stack, dan state. Setiap pilihan terdiri dari state berikutnya dan
simbol- simbol. Penggantian isi stack dilakukan dengan opersi push dan
pop. Jenis transisi yang kedua adalah transisi ε. Transisi ε tidak
melakukan pembacaan input namun hanya menerima simbol top of
stack dan state. Transisi ini memungkinkan PDA untuk memanipulasi isi
stack dan berpindah antar state tanpa membaca input.
• Deterministik Push Down Automata (PDA)
• Push Down Automata (PDA) merupakan mesin otomata dari bahasa
bebas konteks. PDA di gambarkan sebagai tempat penyipanan yang
tidak terbatas berupa stack/ tumpukan.
• Stack ialah kumpulan dari elemen-elemen sejenis dengan sifat
penambahan elemen dan pengambilan elemen melalui suatu tempat
yang disebut top of stack (puncak stack). Prinsip pada stack adalah
LIFO. Pengambilan elemen dari stack dinyatakan dengan operasi pop,
sedang memasukkan elemen ke dalam stack dengan operasi push.
• Contoh stack :
• perasi pop :
• Jika dilakukan operasi push B, maka kondisi stack akan menjadi :
• Definisi : PDA adalah pasangan 7 tuple.
• M = (Q, S, q, F, d, G, Z), dimana :
• Q : himpunan hingga state,
• S : alfabet input,
• G : alfabet/simbol stack,
• q: state awal, qÎ Q
• Z : simbol awal stack, ZÎ G
• F : himpunan state penerima, F Í Q
• d : fungsi transisi , d : Q ´ (S È {e}) ´ G ® 2 (himpunan bagian dari Q ´ G*)
• d(q, a, Z) = (q, AZ). Push/insert
• d(q, a, A) = (q1, e). Pop /delete
• Untuk state q Î Q, simbol input a Î S, dan simbol stack XÎ G, d(q, a, X) =
(p, a) berarti : PDA bertransisi ke state p dan mengganti X pada stack
dengan string a.
• Konfigurasi PDA pada suatu saat dinyatakan sebagai triple (q, x, a),
dimana :
• q Î Q : state pada saat tersebut, x Î S* : bagian string input yang belum
dibaca, dan a Î G* : string yang menyatakan isi stack dengan karakter
terkiri menyatakan top of stack.
• Misalkan (p, ay, Xb) adalah sebuah konfigurasi, dimana : a Î S, y Î S*, X
Î G, dan b Î G*. Misalkan pula d(p, a, X) = (q, g) untuk q Î Q dan g Î G*.
Dapat kita tuliskan bahwa : (p, ay, Xb) Þ (q, y, gb).
• PDA dan CFL (Context Free Languages)
• Dalam teori bahasa formal , bahasa bebas konteks ( CFL ) adalah
bahasa yang dihasilkan oleh beberapa bebas konteks tata bahasa (
CFG ) . tata bahasa CF yang berbeda dapat menghasilkan bahasa CF
yang sama . Hal ini penting untuk membedakan sifat dari bahasa (
sifat intrinsik ) dari sifat dari tata bahasa tertentu ( sifat ekstrinsik ) .
• Himpunan semua bahasa bebas konteks identik dengan set bahasa
diterima oleh pushdown automata , yang membuat bahasa ini setuju
untuk parsing . Memang , diberi CFG , ada cara langsung untuk
menghasilkan robot pushdown untuk tata bahasa ( dan bahasa yang
sesuai ) , meskipun pergi ke arah lain ( menghasilkan tata bahasa
diberikan robot ) tidak sebagai langsung .
• bahasa bebas konteks memiliki banyak aplikasi dalam bahasa
pemrograman ; misalnya , bahasa semua kurung benar cocok
dihasilkan oleh tata bahasa { \ displaystyle S \ ke SS ~ | ~ ( S ) ~ | ~ \
varepsilon } . Juga, kebanyakan ekspresi aritmatika yang dihasilkan
oleh tata bahasa bebas konteks
• automata pushdown digunakan dalam teori tentang apa yang dapat dihitung oleh
mesin. Mereka lebih mampu dari mesin finite-state tetapi kurang mampu dari
mesin Turing. Deterministik pushdown automata dapat mengenali semua bahasa
bebas konteks deterministik sementara yang nondeterministic dapat mengenali
semua bahasa bebas konteks. Terutama mantan digunakan dalam desain parser.
• Istilah “pushdown” mengacu pada fakta bahwa tumpukan dapat dianggap
sebagai yang “didorong ke bawah” seperti dispenser nampan di kantin, karena
operasi tidak pernah bekerja pada unsur-unsur lain dari elemen atas. Sebuah
robot tumpukan, sebaliknya, tidak memungkinkan akses dan operasi pada
elemen yang lebih dalam. Stack automata dapat mengenali satu set ketat lebih
besar dari bahasa dari pushdown automata. [1] Sebuah bersarang tumpukan
otomat memungkinkan akses penuh, dan juga nilai-nilai memungkinkan
ditumpuk menjadi seluruh sub-tumpukan bukan hanya simbol yang terbatas
tunggal.
• automata pushdown berbeda dari mesin negara yang terbatas dalam
dua cara:
1. Mereka dapat menggunakan bagian atas tumpukan untuk menentukan
transisi untuk mengambil.
2. Mereka dapat memanipulasi stack sebagai bagian dari melakukan transisi.
• automata pushdown memilih transisi dengan mengindeks meja
dengan sinyal input, kondisi saat ini, dan simbol di bagian atas
tumpukan. Ini berarti bahwa ketiga parameter benar-benar
menentukan jalur transisi yang dipilih. mesin negara yang terbatas
hanya melihat sinyal masukan dan keadaan saat: mereka tidak
memiliki tumpukan untuk bekerja dengan. automata pushdown
menambahkan stack sebagai parameter untuk pilihan.
• Contoh Soal PDA
• Misalkan sebuah CFG memiliki aturan produksi:
S aBc | Bac
Bb|c
Maka dapat dibuat PDA-nya:
Q= {q1,q2,q3}
?= {a,b,c}
+= {S,B,a,b,c,Z}
S=q1
Z= Z
F= {q3}
• Fungsi transisinya:
d (q1,£,Z) = {{q2,SZ)}
d (q2,£,S) = {{q2,aBc),(q2,Bac)}
d (q2,£,B) = {{q2,b),(q2,c)}
d (q2,a,a) = d {{q2,b,b)= d (q2,c,c) = {{q2, £)}
d (q2,£,Z) = {{q3,Z)}
berdasrkan aturan produksi, tata bahasa tersebut dapat menurunkan
string ‘acc’:
S => aBc => acc
• Langkah-langkah pada PDA ketika menerima string tersebut adalah sebagai
berikut:
Z
• 1. konfigurasi awal mesin : state q1, tanpa menerima input (£), top of stack Z
fungsi transisi : d (q1,£,Z) = {{q2,SZ)}
Konfigurasi mesin menjadi: state q2, S di push
S
Z
• 2. input : tanpa menerima input (£)
fungsi transisi : d (q2,£,S) = {{q2,aBc) }
konfigurasi mesin menjadi : state q2, pop top of stack, push ‘aBc’
a
B
c
Z
• 3. input : menerima input ‘a’
fungsi transisi : d (q2,a,a) = {{q2, £) }
konfigurasi mesin menjadi : state q2, pop top of stack
B
c
Z
• 4. input : tanpa menerima input (£)
fungsi transisi : d (q2, £,B) = {{q2, c) }
konfigurasi mesin menjadi : state q2, pop top of stack, push ‘c’
c
c
Z
• 5. input : menerima input ‘c’
fungsi transisi : d (q2,c,c) = {{q2, £) }
konfigurasi mesin menjadi : state q2, pop top of stack
c
Z
• 6. input : menerima input ‘c’
fungsi transisi : d (q2,c,c) = {{q2, £) }
konfigurasi mesin menjadi : state q2, pop top of stack
Z
• 7. input : tanpa menerima input (£)
fungsi transisi : d (q2, £,Z) = {{q3, Z) }
konfigurasi mesin menjadi : state q3
Sumber
• http://mursids.blogspot.com/2010/02/nondeterministic-finite-automata-
nfa.html
• https://riskasimaremare.wordpress.com/2013/04/23/finite-state-
automata/
• https://www.cs.wcupa.edu/rkline/fcs/re-pump.html
• http://web.if.unila.ac.id/resalinaoktaria/2016/06/29/push-down-
automata-ekivalensi-pda-dan-cfg-serta-deterministic-pda/
• https://docplayer.info/35017408-Nondeterministic-finite-automata-b-very-
christioko-s-kom.html
• https://docplayer.info/30974460-Deterministic-finite-
automata.html?_gl=1*10f44j1*_ga*TlVtSERwYW9wT2I2aU55R1pnUkpiS3N
iOU9SdU91bEgtQXNKX2o3cHE2cjM0b1duVWpHNVVoZjJZV3R2WUR0UQ

Anda mungkin juga menyukai