Anda di halaman 1dari 73

Dadang Sujana

TEORI BAHASA & OTOMATA


BAHASA

Meeting 2
Teori Bahasa

 Bahasa adalah kumpulan kalimat


 Semua bahasa dibangkitkan oleh sebuah tata bahasa
(Grammar)
 Bahasa di bagi 2 yaitu :
1. Bahasa natural yaitu bahasa manusia sehari-hari, seperti
bahasa inggris, bahasa indonesia, bahasa jawa dll
2. Bahasa Formal yaitu bahasa yang lebih kaku dengan
aturan yang lebih ketat, seperti bahasa pemrograman
komputer
Bahasa Formal

 Ada 2 hal penting yang terkait dgn bahasa formal :


1. Pembangkit kalimat (Generation) : berkaitan dengan
algoritma penghasil kalimat tersebut yang sesuai dengan
aturan tata bahasa (Grammar)
2. Pengenal Kalimat (Recognition) : Pembuatan algoritma yang
dapat mengetahui apakah suatu string s (kalimat) termasuk
anggota himpunan bahasa L
Elemen Bahasa Formal
 Abjad (alphabet): Himpunan berhingga dari simbol-simbol yang
dapat disusun untuk membentuk suatu kalimat. Dalam konteks
teori bahasa: kalimat, string atau kata ketiganya digunakan merujuk
kepada hal yang sama, yaitu rangkaian simbol-simbol yang dapat
disusun dengan menggunakan simbol yang diambil dari himpunan
abjad. Himpunan abjad biasa dinotasikan dengan simbol ∑.
 Bahasa (Language): Himpunan seluruh string yang dapat
dibangkitkan dari sebuah tatabahasa (grammar) G. Bahasa yang
dibangkitkan oleh tata bahasa G biasa dinotasikan dengan L(G)
atau L saja. Himpunan ini dapat berhingga atau tak berhingga.
 Aturan produksi (production rule : Adalah himpunan berhingga
dari aturan-aturan penataan simbol dalam pembentukan sebuah
string. Dengan aturan ini kita mem-produksi sebuah string , anggota
suatu bahasa. Himpunan aturan produksi biasa disimbolkan sebagai
P.
Teori Otomata

 Otomata adalah mesin abstrak yang dapat mengenali (recognize),


menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam
bahasa tertentu.
 Automata adalah mesin sekuensial otomatis yang menerima input dan
mengeluarkan output yang keduanya dalam bentuk diskreet". Beberapa
sistem yang dapat dibuat model otomatanya antara lain :
- mesin penukar uang
- model transmisi data
- kunci kombinasi
- parser
- compiler
Teori Otomata

Sifat-sifat Otomata :
1. Kelakuan mesin otomata bergantung pada rangkaian input yang diterima
mesin tersebut.
2. Setiap saat berada pada status tertentu, dan dapat pindah ke status baru
karena perubahan input.
Hubungan antara Bahasa formal dan otomata

Hubungan otomata dengan bahasa formal dapat dilukiskan sebagai berikut :


1. Rangkaian input diskret pada mesin otomata dapat dianggap sebagai
bahasa yang harus dikenali oleh otomata.
2. Mesin otomata dapat pula digunakan untuk membangkitkan bahasa
tertentu yang aturannya ditentukan oleh tata bahasa tertentu.
Dengan demikian dapat dilihat keterkaitan antara : mesin otomata, bahasa
yang dibangkitkan atau dikenali oleh mesin dan tata bahasa yang
membangkitkan sebuah bahasa.
Konsep Bahasa (1)

• String (kata) adalah suatu deretan berhingga dari


simbol-simbol.
• Panjang string adalah jumlah simbol yg membentuk
string tersebut.
• Alfabet adalah himpunan berhingga dari simbol-
simbol.
• String kosong dinyatakan dengan Ɛ , di definisikan
panjangnya = 0, atau |Ɛ | = 0.
Konsep Bahasa (2)

• Sebuah bahasa adalah himpunan string-string dari


simbol-simbol untuk suatu alphabet.
• Bahasa kosong adalah bahasa yg tidak terdiri dari
string-string yg dinotasikan seperti kita menotasikan
himpunan kosong Ø
• Bahasa kosong berbeda dengan bahasa yang terdiri
dari string kosong { Ɛ }
Konsep Bahasa (3)
• Bahasa Alami : Bahasa Indonesia, bahasa Inggris, dll.
• Otomata : Pemodelan hardware dari komputer.
• Bahasa Formal : suatu abstraksi terdiri dari himpunan
simbol dan aturan dimana simbol-simbol tersebut
dikombinasikan kedalam entitas yang disebut kalimat.
Otomata (1)
• Otomata merupakan suatu sistem yg terdiri atas
sejumlah berhingga state, dimana state menyatakan
informasi mengenai input yg lalu, dpt pula dianggap
sbg memori mesin.
• Input pada mesin otomata dianggap sebagai bahasa
yg harus dikenali oleh mesin.
• Mesin otomata membuat keputusan yang
mengindikasikan apakah input itu diterima atau
tidak.
Otomata (2)
Pada gambar disamping, bila
mesin mendapat string input
berikut:
•ada: diterima
•adu: diterima
•add: ditolak
Sebuah string input diterima
apabila mencapai state akhir /
final state yg digambarkan
dengan lingkaran ganda.
Pemanfaatan Otomata dan Teori
Bahasa
• Teori otomata dan bahasa formal dapat
diterapkan pada seluruh bidang aplikasi
yang didalamnya terdapat suatu
keteraturan (struktur) atau kejadian atau
rentetan kejadian yang dibatasi oleh
kumpulan aturan tertentu dalam bentuk
barisan sesuatu yang berhingga atau tidak
terhingga.
Model Komputasi
• Teori Otomata mempelajari model mesin komputer
menggunakan model matematika. Tetapi matematika yang
digunakan berbeda dibanding dengan matematika klasik dan
kalkulus.

• Model yang digunakan adalah model mesin state atau model


transisi state.
Hirarki Chomsky (1)
• Grammar/ Tata bahasa bisa didefinisikan secara
formal sebagai kumpulan dari himpunan-himpunan
variabel, simbol-simbol terminal, simbol awal, yg
dibatasi oleh aturan-aturan produksi.

• Pd tahun ‘59, Noam Chomsky melakukan


penggolongan tingkatan bahasa menjadi empat, yang
disebut dengan Hirarki Chomsky.
Hirarki Chomsky (2)
Bahasa Mesin Otomata Batasan Aturan Produksi

Reguler/Tipe 3 Finite State Automata α adalah sebuah simbol


(FSA) meliputi variabel
Deterministic Finite ß maks memiliki sebuah
Automata (DFA), & Non- simbol variabel yg bila ada
deterministic Finite terletak di posisi paling
Automata (NFA). kanan
Bebas Konteks/Context Push Down Automata α berupa sebuah simbol
Free/ Tipe 2 (PDA) variabel
Context Sensitive/ Tipe 1 Linier Bounded Automata |α| ≤ |ß|

Unresticted/ Phase Mesin Turing Tidak ada batasan


Structure/ Natural
Language/ Tipe 0
Hirarki Chomsky (3)
• Aturan produksi adalah bagaimana suatu tata bahasa melakukan
transformasi suatu string ke bentuk lainnya.
• Melalui aturan produksi tersebut didefinisikan suatu bahasa yang
berhubungan dengan tata bahasa tsb.
• Aturan produksi dinyatakan dalam bentuk
• “α→ß” (dibaca: α menghasilkan ß, atau α menurunkan ß)
Dimana :
α menyatakan simbol-simbol pada ruas kiri aturan produksi (sebelah
kiri tanda ‘→’)
ß menyatakan simbol-simbol pada ruas kanan aturan produksi, sebelah
kanan tanda ‘→’ (hasil produksi).
Hirarki Chomsky (4)
• Simbol yang terdapat dalam ruas α dan β berupa simbol
terminal dan Non terminal/variabel.

• Simbol terminal: tidak bisa diturunkan lagi (dinyatakan dgn


huruf kecil). Misal: ‘a’, ‘b’, ‘c’.

• Simbol non-terminal/variabel: masih bisa diturunkan


(dinyatakan dalam huruf besar). Misal: ‘A’, ‘B’, ‘C’.
Hirarki Chomsky (5)
• Contoh aturan produksi:
• T → a (T menghasilkan a).

• E → T | T+E (E menghasilkan T atau E


menghasilkan T+E).
Simbol ‘|’ menyatakan ‘atau’, biasa digunakan untuk
mempersingkat penulisan aturan produksi yg
mempunyai ruas kiri yg sama.
Hirarki Chomsky (6)
1.Unrestricted/ Natural Language/Tipe O
Bahasa manusia/bahasa alami termasuk ke
dalam grammar (tata bahasa) Tipe 0 /
Unresticted, dimana tidak ada batasan pada
aturan produksinya.
Misalkan: Abc → De.
Hirarki Chomsky (7)
2. Context Sensitive/ Tipe 1
Pada bahasa Context Sensitive, panjang string pada ruas
kiri ≤ panjang ruas kanan (|α| ≤ |ß|).
Contoh aturan produksi yg context sensitive:
Ab → DeF
CD → eF
|S|=1, |ɛ|=0, ada perkecualian sehingga S→ɛ dianggap
memenuhi context sensitive grammar.
Hirarki Chomsky (8)
3. Bebas Konteks / Tipe 2
Pada bahasa bebas konteks, batasannya bertambah satu
lagi dengan ruas kiri haruslah tepat satu simbol variabel/
Non terminal.

Misalnya: B→CDeFg
D→BcDe
Hirarki Chomsky (9)
4. Regular / Tipe 3
Pada bahasa reguler, batasannya bertambah dengan ruas kanan maks
memiliki sebuah simbol variabel yg terletak di paling kanan.
Artinya bisa memiliki simbol terminal saja dalam jumlah tidak dibatasi,
tetapi bila terdapat simbol variabel, maka simbol variabel tsb hanya
berjumlah satu dan terletak diposisi paling kanan.
Misalnya: A→e
A→efg
A→efgH
C→D
Keterkaitan Bahasa
Otomata Hingga

 Model matematik yang dapat menerima input dan


mengeluarkan output.
 Memiliki state yang berhingga banyaknya dan dapat
berpindah dari satu state ke state lainnya berdasarkan
input dan fungsi transisi.
 Tidak memiliki tempat penyimpanan/memory hanya
mengingat state terkini.
 Mekanisme kerja dapat diaplikasikan pada elevator, text
editor, analisa leksikal,
SIFAT-SIFAT BAHASA
REGULER
• Sifat-sifat penting dalam bahasa regular digunakan sebagai
alat untuk membuktikan bahwa sebuah bahasa bukan regular.
• Alat dan sifat tersebut adalah pumping lemma dan sifat
closure.
• Dengan sifat-sifat bahasa regular, dapat dibuat alat untuk
mengenal bahasa-bahasa yang dikonstruksi dari bahasa-bahasa
yang lain dengan menggunakan operasi tertentu.
– Sebagai contoh, irisan dari dua bahasa regular adalah regular.
– Dengan menggunakan automata yang mengenal dua bahasa yang
berbeda, kita dapat membentuk sebuah automaton yang mengenali
secara tepat irisan dari dua bahasa regular tersebut.
• Sifat closure dapat digunakan untuk membangun automata
yang kompleks.
Membuktikan Bahasa Bukan
Regular
• Perhatikan bahasa L01 = {0n1n | n 1}.
• Bahasa ini mengandung semua string 01, 0011,
000111, dan seterusnya.
• String tersebut terdiri dari satu atau lebih para 0 dan
diikuti oleh jumlah yang sama dari para 1.
• Bahasa tersebut bukan bahasa regular.
• Jika L01 adalah bahasa regular maka akan ada sebuah
DFA A yang menerima bahasa tersebut.
Teorema 1: (Pumping lemma untuk
bahasa regular)
Misalkan L adalah bahasa regular.
Maka terdapat sebuah konstanta n (yang tergantung pada L)
sedemikian sehingga untuk setiap string w di dalam L sedemikian
sehingga |w|  n, kita dapat memecah w ke dalam tiga string, w =
xyz, sedemikian sehingga:
y 
|xy|  n
Untuk semua k  0, string xykz juga di dalam L.

Bahwa kita selalu dapat menemukan string tak kosong y tidak


begitu jauh dari awal w yang dapat di “pump”; bahwa
pengulangan y beberapa kali, atau penghapusan y (dalam kasus k
= 0), tetap menghasilkan string dalam bahasa L.
Contoh 1
• Dengan menggunakan Pumping lemma dapat
ditunjukkan bahwa bahasa berikut bukan bahasa
regular
– Leq yang mengandung semua string dengan
banyaknya para 0 dan para 1 adalah sama (tidak
dalam urutan tertentu).
– Lpr yang mengandung semua string dari para 1
yang memiliki panjang adalah bilangan prima.
Sifat-sifat Closure dari Bahasa Regular
1. Gabungan dari dua bahasa regular adalah regular
2. Irisan dari dua bahasa regular adalah regular
3. Komplemen dari sebuah bahasa regular adalah regular
4. Beda dari dua bahasa regular adalah regular
5. Reversal dari sebuah bahasa regular adalah regular
6. Closure (star) dari sebuah bahasa regular adalah regular
7. Perangkaian dari bahasa-bahasa regular adalah regular
8. Sebuah homomorphism (substitusi dari string untuk simbol)
dari sebuah bahasa regular adalah regular.
9. Inverse homomorphism dari sebuah bahasa regular adalah
regular
Closure dari Bahasa Regular pada
Operasi-operasi Boolean (1)
• Sifat closure yang pertama adalah tiga operasi
Boolean, yaitu gabungan, irisan dan komplemen:
1. Misalkan L dan M adalah bahasa pada alphabet . Maka
L  M adalah bahasa yang mengandung semua string
yang berada di L atau M, atau keduanya.
2. Misalkan L dan M adalah bahasa pada alphabet . Maka
L  M adalah bahasa yang mengandung semua string
yang berada di L dan M.
3. Misalkan L adalah bahasa pada alphabet . Maka L’,
komplemen dari L, adalah himpunan dari string-string
dalam * yang tidak dalam L.
• Bahasa regular tertutup di bawah ketiga operasi
Boolean tersebut.
Closure dari Bahasa Regular pada
Operasi-operasi Boolean (2)
• Gabungan dan irisan dari dua bahasa dapat diperoleh
dari bahasa-bahasa dengan alphabet yang berbeda.
• Contoh, L1  {a, b} sedangkan L2  {a, b, c}.
• Tetapi, jika sebuah bahasa L terdiri dari string-string
dengan simbol dalam , maka L dapat dipandang
sebagai bahasa pada sejumlah berhingga alphabet
yang merupakan superset dari .
• Sehingga, kita dapat menyatakan L1 dan L2 sebagai
bahasa pada aplhabet {a, b, c, d}.
Closure dari Bahasa Regular pada
Operasi-operasi Boolean (3)
• Komplemen dari bahasa L adalah sebuah subset dari
* untuk alphabet 1,
• Kita dapat memilih untuk mengambil komplemen
terhadap alphabet 2 yaitu sebuah superset dari 1.
• Jika demikian, maka komplemen L adalah 2*  L,
yaitu komplemen dari L terhadap 2 meliputi semua
string di dalam 2* yang memiliki sedikitnya satu
simbol yang ada dalam 2 tetapi tidak ada dalam 1.
a. Closure pada gabungan
Teorema 2:
Jika L dan M adalah bahasa regular, maka demikian
halnya dengan L  M.
Bukti:
• Karena L dan M adalah regular, maka kedua bahasa
tersebut memiliki ekspresi regular; katakanlah L =
L(R) dan M = L(S).
• Maka L  M = L(R + S) dengan menggunakan
definisi dari operator + untuk ekspresi regular.
b. Closure pada operasi komplemen (1)
• Berikut tahapan untuk menentukan ekspresi regular
untuk komplemen dari bahasa yang diberikan:
1. Konversikan ekspresi regular ke dalam bentuk -
NFA.
2. Konversikan -NFA ke sebuah DFA dengan
menggunakan konstruksi subset.
3. Komplemenkan accepting state dari DFA tersebut.
4. Kembalikan komplemen dari DFA ke dalam bentuk
ekspresi regular dengan menggunakan konstruksi
yang telah dibahas sebelumnya.
b. Closure pada operasi komplemen (2)
Teorema 3:
• Jika L adalah bahasa regular pada alphabet , maka L’ = * 
L adalah juga bahasa regular.
Bukti:
• Misalkan L = L(A) untuk suatu DFA A = (Q, , , q0, F).
• Maka L’ = L(B), dimana B adalah DFA (Q, , , q0, Q  F).
• Bahwa B seperti A, hanya saja accepting state dari A bukan
accepting state dari B, dan sebaliknya. 
• Maka w adalah dalam L(B) jika dan hanya jika   q 0 , wadalah

dalam Q  F, yang muncul jika dan hanya jika w tidak di
dalam L(A).
Contoh 2
• Misalkan A adalah automata yang dinyatakan dalam diagram
transisi di bawah ini.
• DFA tersebut menerima semua string dari para 0 dan pada 1
yang diakhiri dengan 01.
• Dalam bentuk ekspresi regular, bahasa yang diterima oleh
DFA tersebut dinyatakan sebagai L = (0 + 1)*01.
Contoh 2 (lanjutan)
• Komplemen dari L(A) adalah semua string dari para 0 dan
para 1 yang tidak diakhiri dengan 01. Gambar berikut
menunjukkan automaton untuk {0, 1}*  L(A).
• Gambar tersebut sama seperti diagram transisi untuk DFA ,
tetapi accepting state dijadikan bukan accepting state dan dua
state yang bukan accepting state dijadikan accepting state.
c. Closure pada irisan
• Operasi irisan dari dua bahasa dapat diperoleh dari operasi
gabungan dan komplemen (dikatakan sebagai hukum De
Morgan).
L  M = (L’ M’)’
• Hukum De Morgan yang lain adalah
L  M = (L’  M’)’
• Konstruksi langsung dapat dilakukan untuk irisan dari dua
bahasa. Konstruksi ini menjalankan dua DFA secara paralel.
Teorema 4:
• Jika L dan M adalah bahasa regular, maka demikian juga
dengan L  M.
Contoh 3
• DFA pada Gambar a menerima semua string yang memiliki sebuah 0,
• DFA pada Gambar b menerima semua string yang memiliki sebuah 1.
• DFA pada Gambar c adalah produk dari kedua DFA dalam gambar a dan b.

• State-state dari DFA pada gambar c diberi label oleh pasangan dari state-
state dari automata dalam gambar a dan b.
1
1 0,1

start 1
start 0 pr ps
p q
0 0
(a)
0 0,1
1
qr qs

start 1
r s
0 0,1
(b) (c)
d. Closure pada beda
• Dalam istilah bahasa, L  M, beda dari L dan M,
adalah himpunan string-string yang ada dalam bahasa
L tetapi tidak dalam bahasa M.
• Bahasa regular juga tertutup pada operasi beda
himpunan.
Teorema 5:
• Jika L dan M adalah bahasa regular, maka demikian
juga dengan L  M.
Reversal (1)
• Reversal dari sebuah string a1a2...an adalah string yang
ditulis terbalik, bahwa, anan1...a1.
• Notasi wR digunakan untuk reversal dari string w.
Contoh: 0010R adalah 0100, dan R = .
• Reversal dari bahasa L, ditulis LR, adalah bahasa yang
terdiri dari reversal dari semua stringnya.
Contoh, jika L = {001, 10, 111},
maka LR = {100, 01, 111}.
Reversal (2)
Teorema 6:
• Jika L adalah bahasa regular, maka demikian
juga dengan LR.
• Pembuktian pernyataan ini dapat dilakukan
dengan dua cara: menggunakan automata dan
ekspresi regular.
Reversal (3)
• Diberikan sebuah bahasa L yaitu L(A) untuk suatu finite
automaton, bisa berupa non determistik atau -transition,
konstruksi automaton untuk LR dilakukan sebagai berikut:
– Reverse semua arc dalam diagram transisi untuk A.
– Buatlah start state dari A menjadi accepting state dari automaton yang
baru.
– Buatlah start state yang baru p0 dengan transisi pada  ke semua
accepting state dari A.
• Hasilnya adalah sebuah automaton yang mensimulasi A “in
reverse”
 menerima sebuah string w jika dan hanya jika A menerima
wR.
Contoh 4
• Misalkan L didefinisikan oleh ekspresi regular
(0 + 1)0*
• Maka LR adalah bahasa dari (0*)R(0 + 1)R, dengan
menggunakan aturan perangkaian.
• Jika aturan untuk closure dan gabungan digunakan
untuk dua bagian ini, dan kemudian digunakan aturan
basis yang menyatakan bahwa reversal dari 0 dan 1
adalah tetap, didapatkan bahwa LR memiliki ekspresi
regular 0*(0 + 1).
Homomorphism (1)
• Sebuah homomorphism string adalah sebuah fungsi pada string
yang bekerja dengan mensubtitusikan sebuah string tertentu
untuk setiap simbol.
Contoh 5:
• Fungsi h didefinisikan oleh h(0) = ab dan h(1) =  adalah
homomorphism.
• Diberikan string dari para 0 dan para 1, homomorphism
mengganti semua para 0 oleh string ab dan menggantikan
semua para 1 dengan string kosong.
• Sebagai contoh, h yang diaplikasikan ke string 0011 adalah
abab.
Homomorphism (2)
• Jika h adalah sebuah homomorphism pada alphabet ,
dan w = a1a2... an adalah sebuah string dari simbol
pada , maka
h(w) = h(a1)h(a2)... h(an).
 h diaplikasikan ke setiap simbol dari w dan
merangkai hasilnya, sesuai dengan urutan simbol-
simbol pada w.
• Contoh, jika h adalah homomorphism dalam Contoh
5, dan w = 0011, maka
h(w) = h(0)h(0)h(1)h(1) = (ab)(ab)()() = abab.
Homomorphism (3)
• Homomorphism dapat diaplikasikan ke sebuah bahasa dengan
mengaplikasikannya ke setiap string dalam bahasa.
Bahwa, jika L adalah bahasa pada alphabet , dan h adalah
homomorphism pada , maka
h(L) = {h(w) | w adalah dalam L}.
• Contoh: jika L adalah bahasa dari ekspresi regular 10*1, yaitu
sejumlah para 0 yang dilingkupi oleh satu buah simbol 1,
maka h(L) adalah bahasa (ab)*.
• Homomorphism h pada Contoh 5 menggantikan para 1 dengan
, dan menggantikan 0 dengan ab.
Homomorphism (4)
Teorema 7:
• Jika L adalah bahasa reguler pada alphabet ,
dan h adalah homomorphism pada , maka
h(L) juga regular.
Bukti: dapat dilihat pada buku rujukan
Otomata Hingga (2)
Otomata Hingga dinyatakan oleh

5-tupel atau M = (Q, , , S, F)


Q = himpunan kedudukan (state)
 = alfabet / himpunan simbol input S dilambangkan dengan
 = fungsi transisi = Q x 
S = kedudukan (state) awal, S  Q
F = kedudukan (state) akhir, F  Q
F dilambangkan dengan

Setiap otomaton:
- mempunyai tepat satu S
- mempunyai satu F atau lebih
Otomata Hingga (3)

Otomata Otomata yang berada pada state


Hingga tunggal tertentu setelah membaca
Deterministik sembarang baris input

Otomata
Hingga

Otomata
Otomata yang dapat berada di
Hingga Non-
beberapa State tertentu setelah
Deterministik
membaca sembarang baris input
Otomata Hingga Deterministik
DFA Deterministic Finite Automata

• Otomata Hingga Determenistik biasa disebut DFA.


• Selalu menuju State tunggal tertentu setelah membaca
sembarang BARIS input.

• Contoh DFA
a b

b b
q0 q1 q2
a
b
a a b

b b
q0 q1 q2
a
Diketahui Konfigurasi DFA di atas :
Q = {q0, q1, q2}
= {a, b}
S = q0
F = {q2}
Tabel Transisi
Fungsi Transisi
 a b
(q0 , a) = q0 ; (q0 , b) = q1
(q1 , a) = q1 ; (q1 , b) = q2 atau
(q2 , a) = q1 ; (q2 , b) = q2
q0 q0 q1
q1 q1 q2
q q q
Otomata Hingga Deterministik
DFA Deterministic Finite Automata
Suatu string x diterima oleh otomata atau berada
dalam L(M) jika (q0 , x) berada pada state akhir.

Contoh 2.3
Pada otomata berikut, tentukan apakah string
‘abb’, dan ‘baba’ berada dalam L(M).

Penyelesaian: a a b

b b
q0 q1 q2
a
Otomata Hingga Deterministik
DFA Deterministic Finite Automata
 (q0 , abb) = (q0 , bb) = (q1 , b) = q2
Karena q2 adalah state akhir maka ‘abb’ berada dalam L(M)
 (q0 , baba) = (q1 , aba) = (q1 , ba) = (q2 , a) = q1
Karena q1 bukan state akhir maka ‘baba’ tidak berada dalam L(M)

a a b

b b
q0 q1 q2
a
Otomata Hingga Non-Deterministik
NFA Non-Deterministic Finite Automata

• Pada Otomata Hingga Non-Deterministik, selanjutnya


disingkat NFA, selalu terdapat 0,1 atau lebih BUSUR
keluar berlabel simbol input yang sama

Contoh 2.4
Otomata Hingga Non-Deterministik (NFA)

a a, b

a, b
q0 q1
Otomata Hingga Non-Deterministik
NFA Non-Deterministic Finite Automata

a a, b Penyederhanaan Jalur

a, b q1
q0

b a
a

a q1
q0

b
Otomata Hingga Non-Deterministik
NFA Non-Deterministic Finite Automata

a a, b
a, b q1
q0
Konfigurasi NFA diatas adalah sebagai berikut.
Q = {q0, q1} ;  = {a, b} ; S = q0 ; F = {q1}

Fungsi Transisi Tabel Transisi

(q0 , a) = {q0 , q1}  a b


(q0 , b) = {q1} atau
(q1 , a) = {q1} q0 {q0 , q1} {q1}
(q1 , b) = {q1}
q {q } {q }
Contoh Soal 1
NFA Non-Deterministic Finite Automata

b a
a q1
q0
a
a
b

q2

a
Konfigurasi NFA diatas adalah sebagai berikut.
Q = {q0, q1, q2} ;  = {a, b} ; S = q0 ; F = {q1}
NFA Non-Deterministic Finite Automata

Fungsi Transisi

(q0 , a) = {q1, q2} ; (q0 , b) = {q0}


(q1 , a) = {q0 ,q1} ; (q1 , b) = {q0}
(q2 , a) = {q2} ; (q2 , b) = {q1}

Tabel Transisi

 a b

q0 {q1, q2} {q0}


q1 {q0,q1} {q0}
Contoh Soal 2
NFA Non-Deterministic Finite Automata

a q1
q0
b
Tabel Transisi

 a b

q0 {q1} 
q1 {q1} {q0}
REDUKSI

• Reduksi jumlah State adalah mengurangi jumlah State


tanpa mengurangi jumlah kemampuan Otomata untuk
menerima suatu Bahasa

Dua buah state p dan q pada DFA dikatakan


“tidak dapat dibedakan” (indistinguishable) jika :

(q, w)  F , sedangkan (p, w)  F

atau

(q, w)  F , sedangkan (p, w)  F


REDUKSI
Dua buah state p dan q pada DFA dikatakan
“tidak dapat dibedakan” (indistinguishable) jika :

(q, w)  F , sedangkan (p, w)  F


atau
(q, w)  F , sedangkan (p, w)  F

q w w t
F q
w atau w
p p
REDUKSI

Dua buah state p dan q pada DFA


dikatakan
“dapat dibedakan” (distinguishable) jika :

(q, w)  F , sedangkan (p, w)  F


Li h w
at q F
Be
ntu
k Gra
p h

w
p r
Reduksi STATE pada DFA (1)
Cara untuk mereduksi jumlah state pada DFA
adalah dengan melakukan kombinasi state yang
“dapat dibedakan” (distinguishable).

Tahapannya adalah sebagi berikut:


1.Hapus state yang tidak dapat dicapai dari state awal
2.Buat pasangan state (p, q) yang “dapat dibedakan”
dengan cara memasangkan state pF dengan state
q F.
3. Lanjutkan pencarian state yang “dapat dibedakan”
lainnya dengan cara:
Tentukan (p, a)  pa dan (q, a)  qa.
Jika pasangan state (pa, qa) “dapat dibedakan”,
maka pasangan state (p, q) juga termasuk
pasangan state yang “dapat dibedakan”
Reduksi STATE pada DFA (2)

4. Sisa dari pasangan state dari no. 2 dan 3 adalah pasangan


state yang “tidak dapat dibedakan (indistinguishable) dan
digabungkan menjadi satu state
q1
0 1 0,1
0 0
q0 1 q
q2 4

1 0 1

q3
REDUKSI
Dari otomata dapat dibuat pasangan state:

(q0 , q4 ), (q1 , q4 ), (q2 , q4 ), (q3 , q4 ), (q0 , q1 ),


(q0 , q2 ), (q0 , q3 ), (q1 , q2 ), (q1 , q3 ), (q2 , q3 )

1. Semua state bisa dicapai dari state awal.


Jadi tidak ada state yang dihapus.

2. Buat pasangan state (p, q) yang “dapat dibedakan”:


dengan cara memasangkan state pF dengan state
q F.
(q0 , q4), (q1 , q4), (q2 , q4), (q3 , q4)
REDUKSI

(q0 , q4 ), (q1 , q4 ), (q2 , q4 ), (q3 , q4 ), (q0 , q1 ),


(q0 , q2 ), (q0 , q3 ), (q1 , q2 ), (q1 , q3 ), (q2 , q3 )
3. q1

q2 x

Pasangan State (q1 , q2 ), (q1 , q3 ),
q3 x x
(q2 , q3 ) 
indistinguishable.
q4
Jadi state q1 , q2 , q3 dapat
   
digabungkan
q0 q1 q2 q3
REDUKSI

q1
0 1 0,1
0 0
q0 1 q4
q2

1 0 1
0 0,1
q3
0, 1 q123 1
q0 q4
Latihan Kumpulkan…!!!
1. Gambarkan NFA yang memenuhi:
Fungsi Transisi
 0 1

q0 {q1, q3} {q0, q1}

q1  {q2}

q2 {q2} {q2}
Latihan Kumpulkan…!!!
2. Lakukan reduksi jumlah state pada DFA berikut.

q1 1 q3
0

1 0,1
q0
0
1 1
q2 1 q4 q5

0 0,1
TERIMA KASIH
SEMOGA BERMANFAAT

Anda mungkin juga menyukai