BAHASA REGULAR YANG DIDEFINISIKAN DETERM DETERM I NI STIC FI NI TE AUTO AUTOM ATA (DFA)
Andi Faizal 110155201069
Jurusan Teknik Informatika Fakultas Teknik Universitas Maritim Raja Ali Haji Tanjungpinang Kepulauan Riau T.A 2014
Abstrak
Deterministic Finite Automata ( DFA ) is one kind of Finite Automata ( FA ) which is useful as an identifier Regular Languages . The key characteristic of this DFA is not allowed to read one or more than one transition to one input symbol contains a string of characters / alphabet , the same . In other words, for the same input symbol DFA can not mentransisikannya to several different states . If used to represent the transition table DFA transition function , then each entry in the transition table is a single state ( finite ) and may move to another state based on the input and the transition function . Consequently , the DFA easier to determine whether an input string is accepted , because there is only at most one path from the initial state . Direction of movement ( head ) of the initial state to the final state can only go forward alone ( to the right ) . If the path is assumed as the input symbol ' ribbon ' , then after reading the symbols on the tape , the tape head position will advance to the next symbol in other words automatic. DFA can not remember , DFA can only read or remember the current state .
Deterministic Finite Automata (DFA) adalah salah satu jenis dari Finite Automata (FA) yang berguna sebagai pengenal Bahasa Regular. Karakteristik kunci dari DFA ini adalah tidak membolehkan membaca satu atau lebih dari satu transisi untuk satu simbol masukan berisi string berupa karakter/abjad, yang sama. Dengan kata lain untuk masukan simbol yang sama DFA tidak bisa mentransisikannya ke beberapa state yang berbeda. Jika digunakan tabel transisi untuk merepresentasikan fungsi transisi DFA, maka masing-masing isian di tabel transisi adalah satu state tunggal (berhingga) dan dapat berpindah ke state lain berdasarkan input dan fungsi transisi. Konsekuensinya, pada DFA lebih mudah menentukan apakah suatu string masukan diterima, karena hanya terdapat paling banyak satu jalur dari state awal. Arah pergerakan (head) dari state awal hingga state akhir hanya bisa maju saja (ke kanan). Jika jalur simbol masukan dimisalkan sebagai ‘pita’, maka setelah membaca satu simbol pada pita, kepala pita akan maju ke posisi simbol berikutnya dengan kata lain bersifat otomatis. DFA tidak bisa mengingat, DFA hanya bisa membaca atau mengingat state terkini.
Kata kunci : DFA, FA, bahasa regular
I. Pendahuluan
Menurut Noam Chomsky tata bahasa formal diklasifikasikan kedalam 4 kelas yang pertama kelas tata bahasa regular (tata bahasa jenis ke-3), kedua kelas tata bahasa bebas free context (tata bahasa jenis ke-2), ketiga kelas tata bahasa sensitive context (tata bahasa jenis 1), serta yang keempat kelas tata
Gambar 1. DFA
bahasa unrestricted (tata bahasa jenis 0). Kelas tata bahasa regular yang menjadi fokus dalam pembuatan makalah ini dapat dikenali dengan mesin pengenal bahasa regular atau dalam
istilahnya
disebut
dengan Finite Gambar 2. NFA
Automata (FA). FA sendiri terbagi atas 2 macam yaitu Deterministic Finite Automata
(DFA) dan Nondeterministic Finite Automata II. Bahasa Regular Salah satu alasan memulai studi teori (NFA). Perbedaan yang mendasar dari DFA dan NFA ini adalah DFA untuk satu simbol
komputasi
melalui
bahasa
adalah
masukan hanya bisa mentransisikan ke satu pendekatannya yang menuntun cara alami state, sedangkan NFA untuk satu simbol untuk permulaan. Dimulai dari bahasa masukan dapat mentransisikannya ke satu sederhana, kemudian mempertimbangkan atau lebih state yang berbeda. Jadi, dapat kebutuhan-kebutuhan bahasa yang lebih disimpulkan
semua
DFA
merupakan
bagian dari NFA.
NFA dan DFA dapat digambarkan dalam
rumit dan ampuh. Bahasa formal dapat dipandang sebagai entitas abstrak, yaitu sekumpulan string-string simbol alphabet
bentuk diagram transisi yang berupa graf
tertentu.
Namun,
berarah. Berikut contoh dari diagram NFA
dipandang
dan DFA :
yang
bahasa
sebagai
dapat
juga
entitas-entitas
dikenali
atau
dapat abstrak
dibangkitkan
melalui suatu mesin komputasi. Bahasa regular
merupakan
bahasa
yang
paling
bahasa
regular
sederhana. Bahasa
disebut
himpunan
string
himpunan
regular.
di
bahasa Bahasa
itu
jika
adalah
regular
ini
merupakan
bahasa
yang
sangat
banyak berhingga
dapat
dispesifikasikan
secara
digunakan karena sifat-sifat dan properti- mudah dengan ekspresi regular. propertinya yang telah sangat diketahui dan
Ekspresi regular adalah rumus yang
telah ditemukan algortima yang efisien untuk berbentuk bagus (well-formed formula) pada pengoahannya. Bahasa regular pada dasarnya operasi
gabungan
(union,
dilambangkan
sangat baik jika diekspresikan menggunakan dengan +), penyambungan (concatenation, ekspresi regular.
dilambangkan
dengan
simbol
satu
bersebelahan dengan simbol berikutnya, xy), 2.1.
dan Kleene closure (dilambangkan dengan *).
Himpunan regular
Bahasa disebut regular jika himpunan
Bila VT adalah alphabet berhingga.
string di bahasa itu adalah himpunan regular.
Ekpresi regular pada VT dan himpunan
Kelas bahasa adalah sekumpulan bahasa regular yang dilambangkannya didefinisikan yaitu himpunan dari himpunan-himpunan
sebagai berikut:
string. Bila VT adalah alphabet berhingga.
1. Ø
Definisi himpunan regular pada VT secara rekursif adalah sebagai berikut:
adalah
ekspresi
regular
yang
menunjukkan himpunan regular Ø. 2.
1. Ø (himpunan kosong) adalah himpunan regular pada VT.
3. a pada VN adalah ekspresi regular yang
2. { e } adalah himpunan regular pada VT.
menunjukkan himpunan regular { a }.
3. { a } adalah himpunan regular pada VT.
4. Jika p dan q adalah ekspresi regular yang
4. Jika P dan Q adalah himpunan regular
menunjukkan himpunan regular P dan Q,
pada VT , maka begitu juga P U Q, PQ,
maka:
P*. Dengan kata lain VT dapat diperoleh dari
sejumlah
berhingga
operasi
(p+q) adalah ekspresi regular yang menunjukkan P U Q.
gabungan, penyambungan, atau closure. 5. Tidak ada selain itu yang merupakan
(pq)
adalah
ekpresi
regular
yang
regular
yang
menunjukkan PQ.
himpunan regular.
(p)* adalah
ekpresi
menunjukkan P *. 2.2.
5. Tidak
Ekspresi Regular
Ekspresi
regular
memungkinkan
berguna
menpesifikasikan
ada
yang
selain
itu
yang
karena
merupakan ekspresi regular.
bahasa
Bahasa pada alphabet V adalah bahasa
regular yang kompleks secara formal, ringkas regular jika terdapat suatu ekspresi regular dan
tepat.
Bahasa
regular
yang
tidak pada V yang berkorespodensi dengan bahasa itu.
III.Finite Automata (FA)
merupakan
ringkasan
informasi
berkaitan
dengan
masukan-masukan
Finite Automata (FA) merupakan mesin sebelumnya yang
dapat
mengenali
bahasa
yang
yang
diperlukan
untuk
regular menentukan perilaku sistem pada masukan-
sekaligus merupakan model komputasi.
masukan berikutnya. FA sangat cocok untuk
Pada saat mengenali bahasa, gerakan memodelkan sistem dengan jumlah state sapuan dari kiri ke kanan akan terbatasi. yang berhingga. Batasan ini kelihatan sembarangan, tapi
Contoh sistem dengan state berhingga
membantu memperjelas informasi apa yang misalnya: harus diingat (informasi mengenai awal
Sistem elevator
string yang telah terlihat) dan memungkinkan
Vending Machine (mesin minuman
mengklasifikasi bahasa-bahasa berdasarkan seberapa banyak perlu mengingat masing-
kaleng)
masing langkah dalam mengenali bahasa. Perbedaannya terletak pada kategori/jenis
Traffic Light regulator
(Pengatur
lampu lalu lintas)
memori yang perlu digunakan oleh model
Sirkit switching di computer dan telekomunikasi
komputasi. Yang dimaksud model komputasi
Protokol komunikasi
dalam hal ini adalah mesin abstrak bukan
Lexival analyzer
mesin fisik. Meskipun demikian, deskripsi
mesin abstrak yang dibuat dimaksudkan agar
memadai untuk dapat diimplementasikan
Komputerisasi adalah upaya manusia
secara nyata.
Neuron nets Sistem computer
membuat
Mendeskripsikan proses dalam artian dinamis memeriksa string dan kemudian memutuskan
sistem sangat
diskrit. bagus
Sistem
diskrit
dimodelkan
FA.
Perilaku FA dimodelkan dengan Finite State
apakah string termasuk bahasa, menuntun Diagram
(FSD)
atau
State
Transition
agar tidak membuat keputusan sampai akhir Diagram. Pengguna FA telah sangat intensif string telah ditemukan.
diterima rekayasa perangkat lunak dalam tahap
3.1.
analisis,
perancangan,
maupun
pengujian, bahkan State Transition Diagram
Deskripsi Finite Automata
Finite automata adalah model matematika pada orientasi objek memperoleh perhatian sistem dengan masukan dan keluaran diskrit. cukup dominan. Sistem dapat berada di salah satu dari sejumlah berhingga konfigurasi internal yang disebut
sebagai,
state.
State
Teori mengenai FA merupakan sarana yang
ampuh
agar
dapat
melakukan
sistem pengelolaan string yang efisien dan fleksibel.
FA adalah recognizer yang paling sederhana.
menandai
Pada model recognizer, recognizer membaca
(accepted state).
string sebagai masukan dan mengeluarkan
YA, jika string tersebut termasuk di dalam bahasa dan , bila string masukan tidak
State
automata
keunikan
yang
membuatnya
fungsinya
dengan
automata
mempunyai berbeda
yang
lain.
transition function) yaitu diberikan
atau tidak ada memory sementara.
input
Hanya berisi satu memory masukan
memberikan/menyatakan semua state
berupa tape berisi string masukan dan
berikutnya
sejumlah kendali berhingga.
Semua
head hanya bergerak satu arah atau
dipandang dijalankan secara pararel.
tidak dapat mundur.
Bila
Mempunyai
sejumlah
symbol ),
yang
fungsi
dimungkinkan.
kemungkinan
terdapat
transisi
transisi
yang
berhingga
menuju/sampai state akhir, berarti
status, setiap saat FSA berada pada
string masukan diterima automata
status tertentu
tersebut. Definisi
formal
dari
DFA
dapat
didefinisikan dalam 5-tuple (Q , ∑ , δ , q 0 , F)
Memiliki finite number of state atau dimana : himpunan
state
kendali
berhingga.
Terdapat fungsi transisi state ( state
simbol masukan saat itu (current
satu
sebagai
Memory „infinite‟-nya adalah null,
properti-properti berikut:
sekaligus
state saat itu (current state) dan
Spesifikasi FA dengan mendefinsikan
adalah
accepted state.
Berikut ini akan dibahas sifat-sifat FSA :
Mesin mungkin saja menerima string
state jenis
Mesin akan bertransisi dari state satu
kosong (ε), jika ini terjadi maka initial
Automata/Acceptor
(FSA)
Setiap
Mesin menerima input simbol yang
ke state yang lain sesuai input.
Finite
masukan
datang secara sekuensial.
termasuk dalam bahasa.
3.2.
diterimanya
Simbol-simbol
Q : himpunan berhingga status ∑ : himpunan
masukan
yang
berhingga
simbol
masukan (alfabet)
dibolehkan/diijinkan.
δ
: fungsi transisi
Memiliki state sebagai state mula
q0 : status awal, initial state
(initial state).
F
Memiliki himpunan state akhir ( set of
FA adalah sebuah mesin, dengan sebuah
: himpunan final state
final state), yaitu state-state yang head baca dan kotak kendali state berhingga.
Mesin membaca memori masukan berupa
Anak panah menyatakan transisi yang
tape, satu karakter tiap saat (dari kiri ke terjadi. Label yang terdapat di anak panah kanan). Pada mesin terdapat sejumlah state menyatakan simbol yang membuat transisi berhingga, perubahan state terjadi pada mesin dari satu state ke state lain. Satu anak panah ketika sebuah karakter berikutnya dibaca dibei label start untuk menyatakan awal mula sesuai dengan fungsi δ.
transisi dilakukan.
Ketika FA mulai membaca tape, FA selalu dalam suatu kondisi yang disebut state IV. Deterministic Finite Automata (DFA) awal (initial state) atau q0 dan berakhir ketika berada dalam kondisi yang disebut state akhir ( final state). Bila FA membaca tape sementara head telah sampai pada akhir tape dan kondisi yang ditemuinya adalah
Deterministic finite Automata adalah 5 tupel M=(Q,VT ,δ,q o,F), dimana: 1. Q
adalah
himpunan
2. VN
adalah
himpunan
simbol/karakter
tape dikatakan diterima FA. Dengan kata lain
diijinkan.
bila diterima FA bahasa itu.
yang
berhingga.
state akhir, berarti string yang terdapat pada
string-string tersebut merupakan milik bahasa
state
berhingga
masukan
yang
3. δ adalah pemetaan dari Q X VT ke
p(Q)
yang
menyatakan
perilaku
kendali keadaan berhingga, δ sering disebut fungsi transisi state. 4. qo dalam Q adalah keadaan mula dari
kendali keadaan berhingga, dan 5. F
Q
adalah
himpunan
keadaan
akhir. Gambar 3. Model FA
DFA hanya mempunyai paling banyak satu transisi pada masing-masing state pada
3.3.
F in ite State Di agr am (FSD)
FSD digunakan untuk menggambarkan
sembarang masukan. Jika digunakan tabel transisi
untuk
merepresentasikan
fungsi
kerja FA. FSD juga biasa disebut dngan
transisi DFA, maka masing-masing isian di
State-Transition Diagram.
table transisi adalah satu state tunggal.
Lingkaran menyatakan state, lingkaran Konsekuensinya, pada DFA lebih mudah yang bergaris tunggal berarti state sementara menentukan apakah suatu string masukan sedangkan lingkaran bergaris tanda berarti diterima karena hanya terdapat paling banyak state akhir. Lingkaran diberi label sesuai satu jalur dari state awal. dengan nama state mereka.
Mula-mula DFSA akan berada pada Algoritma DFA status q0, kepala pita pada simbol pertama Masukan: pada pita, selanjutnya kepala pita akan membaca
simbol-simbol
dari
pita
String masukan X yang diakhiri dengan
dan karakter akhir string (eos).
bergeser maju. Untuk setiap simbol, DFSA
DFA D dimulai dari state S o dan
akan berpindah status sesuai dengan fungsi δ.
himpunan state F yang dapat diterima
Proses akan berakhir bila simbol
Keluaran:
masukan pada pita sudah habis, bila pada
Jawaban YA jika D menerima x
akhir proses dicapai status akhir maka string
Jawaban TIDAK jika D menerima x
masukan diterima (dikenali sebagai string Algoritma: dari bahasa regular), dan bila tidak maka
Fungsi-fungsi:
string masukan ditolak (tidak dikenali).
Fungsi move(s, c) member state dimana terdapat transisi dari state s pada karakter
4.1.
Algoritma DFA
masukan c.
Berikut adalah mekanisme kerja DFA bila
Fungsi
nextchar()
mengirim
dinyatakan secara algoritma. Pada dasarnya,
erikutnya dari string masukan x.
algoritma menyatakan bahwa saat menerima Langkah-langkah algoritma: satu karakter yang sedang dibaca, maka DFA
s ← so
akan segera tahu apa yang perlu dilakukan
c ← next char()
karena memang paling banyak hanya satu
while c ≠ eos
transisi yang dimungkinkan. Bila terdapat
s ← move(s, c)
transisi yang dapat dilakukan, maka DFA
c ← nextchar()
segera melakukan transisi itu. Sementara bila
if s in F
tidak ada transisi yang mungkin dilakukan
then return “YA”
berarti string bukan termasuk string yang
else return “TIDAK”
dikenali DFA. Sementara itu bila string yang dibaca telah habis, maka bila DFA memasuki 4.2.
Contoh DFA Yang Ekivalen
state yang termasuk dalam state akhir, berarti Q = {q0, q1, q2} string termasuk pada string yang dikenali δ diberikan dalam tabel berikut : DFA. Sebaliknya, bila DFA berada di state yang bukan state akhir berarti string tidak termasuk string yang dikenali DFA.
karakter
∑= {a, b}
δ
a
b
S = q0
q0
q0
q1
F = {q0, q1}
q1
q0
q2
q2
q2
q2
Tracing berakhir di q1 (state AKHIR)
kalimat aaaababa diterima
iii)
δ (q0, aaabbaba) δ (q0, aabbaba)
δ (q0, abbaba) δ (q0, bbaba)
δ
(q1,bbaba) δ (q2,baba) δ (q2,aba) δ (q2,ba) δ(q2,a) q2 Tracing berakhir di q2 (bukan state AKHIR) kalimat aaabbaba ditolak
Gambar 4. Diagram Contoh 4.2
Kalimat yang diterima oleh DFA : a, b,
V. Penutup
aa, ab, ba, aba, bab, abab, baba. Kalimat yang dittolak oleh DFA : bb, abb,
Finite Automata biasanya mengacu pada Deterministic
abba. DFA ini menerima semua kalimat yang tersusun dari simbol a dan b yang tidak
Finite
Automata
(DFA).
Deterministic Finite Automata (DFA) adalah finite automata
dengan aturan-aturan yang
sangat ketat. Yaitu tidak memungkinkan satu
mengandung substring bb.
simbol menimbulkan transisi ke lebih dari abababaa
diterima
aaaabab
diterima
aaabbaba
ditolak
satu state dan tidak memungkinkan transisi spontan atau transisi Nondeterministic Finite Automata (NFA). Semua DFA merupakan bagian dari NFA.
i) δ (q0,abababaa)
δ (q0,bababaa)
(q1,ababaa) δ (q0,babaa)
δ (q0,baa)
δ (q1,aa)
δ
δ (q1,abaa) δ (q0,a)
Kedua
FA
tersebut
mampu
mengenali
himpunan regular secara presisi. Dengan demikian,
kedua
FA
tersebut
dapat
mengenali string-string yang ditunjukkan
q0
dengan ekspresi regular secara tepat.
Tracing berakhir di q0 (state AKHIR)
kalimat abababaa diterima
DFA dapat menuntun recognizer lebih cepat
dibanding
NFA.
Lebih
mudah
membangun NFA dibanding DFA untuk ii) δ (q0, aaaabab) δ (q0,aaabab) δ (q0,aabab) δ (q0,abab) δ (q0,bab) δ (q1,ab)
δ (q0,b) q1
suatu
bahasa,
namun
lebih
mudah
mengimplementasikan DFA dibanding NFA.
VI. Daftar Pustaka
Hariyanto,
Bambang,
2004,
Teori
Bahasa, Otomata, dan Komputasi serta terapannya, Informatika Bandung, Bandung.
Hopcroft J.E, dan J.D Ullman, 1979,
Introduction to Automata Theory, Languages and
Computation,
Addison-Wesley
Publishing Company, Reading, Massachusetts.
Dra.
Harlili
M.Sc,
Ir.
Hanye
S.
Dulimarta Ph.D, Ir. Rinaldi Munir M.T. ,
2001, Teori Bahasa Formal , Departemen Teknik Informatika ITB, Bandung.
D.Kelley, 1999, Otomata dan Bahasa-
Bahasa Formal , Pranhallindo.