mesin mealy

77

Upload: erwin-hidayat

Post on 21-Jul-2015

412 views

Category:

Documents


0 download

TRANSCRIPT

TEORI BAHASA DAN OTOMATA (3 SKS)

PENDAHULUANApa itu Komputer Alat untuk mengetik ? Komputer sangat kompleks - menerapkan teori matematika secara langsung (computational model)Model dasar perhitungan Rekayasa merancang sistem komputer H/W + S/W

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

PENGERTIAN PROGRAM SEBAGAIOBYEK MATEMATIKA Diberlakukannya alasan (reason), logika (logic) dan aturan (rule) untuk kombinasi Apakah program mengoperasikan bilangan, teks atau apapun

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

HARDWARE/SOFTWARE Kekompleksan hardware dan software ditangani oleh processor untuk mengkonversi program kedalam bentuk execute (eksekusi) Execute file dapat dibentuk melalui :Compile Assembly Dan sebagainya (interpreter)UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

DEFINISITeori Otomata adalah teori mengenai mesin-mesin abstrak, dan berkaitan erat dengan teori bahasa formal. ada beberapa hal yang berkaitan dengan Otomata, yaitu Grammar. Grammar adalah bentuk abstrak yang dapat diterima (accept) untuk membangkitkan suatu kalimat otomata berdasarkan suatu aturan tertentu.

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

KONSEP DASAR (1) Anggota alfabet dinamakan simbol terminal. Kalimat adalah deretan hingga simbol-simbol terminal. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga kalimat. Simbol-simbol berikut adalah simbol terminal : huruf kecil, misalnya : a, b, c simbol operator, misalnya : +, , dan * simbol tanda baca, misalnya : (, ), dan ; simbol tanda baca, misalnya : (, ), dan ; string yang tercetak tebal, misalnya : if, then, dan else. huruf besar, misalnya : A, B, C huruf S sebagai simbol awal string yang tercetak miring, misalnya : expr

Simbol-simbol berikut adalah simbol non terminal /Variabel :

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

KONSEP DASAR (2) Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya : ,, dan Sebuah produksi dilambangkan sebagai --> , artinya : dalam sebuah derivasi dapat dilakukan penggantian simbol dengan simbol . Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah derivasi dilambangkan sebagai : ==> . Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya. Kalimat adalah string yang tersusun atas simbol-simbol terminal. Kalimat adalah merupakan sentensial, sebaliknya belum tentu.

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

GRAMMAR Grammar G didefinisikan sebagai pasangan 4 tuple : Vt , Vn , S, dan P, dan dituliskan sebagai G(Vt , Vn , S, P), dimana : Vt : himpunan simbol-simbol terminal (alfabet) = kamus Vn : himpunan simbol-simbol non terminal S C V : simbol awal (atau simbol start) P : himpunan produksi

Contoh :1.

G1 : VT = {I, want, need, You}, V = {S,A,B,C}, P = {S --> ABC, A--> I, B--> want | need, C--> You}S --> ABC IwantYou L(G1)={IwantYou,IneedYou}

2.

G2 : VT = {a}, V = {S}, P = {SS --> aS --> aaS --> aaa

aS | a}

L(G2) ={an --> n 1}

L(G2)={a, aa, aaa, aaaa, }UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

TEORI AUTOMATA MELIPUTI/MENCAKUP

Teori Bahasa Formal Regular Expression Finite Automata Non Deterministic Finite Automata Finite Automata dengan Output Context-free Grammar Pushdown Automata Mesin TuringJIM MICHAEL WIDI, S.KOM

UNIVERSITAS BUDI LUHUR - FTI

TEORI BAHASA DAN OTOMATA (3 SKS)

TEORI BAHASA FORMAL THEORY OF FORMAL LANGUAGE

Bahasa berbentuk dari kombinasi simbolsimbol dengan aturan formalnya Language : A set Of string String : A Finite list of symbols from an alphabet Alphabet : A Finite set of objects called symbol

Symbol : A member of alphabet Set : Group of objectsUNIVERSITAS BUDI LUHUR - FTI

S1 = { a, b, c, d, e .z ..}

S2 = { 0, 1 }

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

TEORI BAHASA FORMAL Pembentukan struktur sebuah bahasa diawali dengan memakai sebuah finite set (himpunan terbatas), dimana unit fundamentalnya disebut alphabet (S) String-string yang boleh ada di dalam sebuah bahasa disebut word Contoh language adalah Bahasa Indonesia. Alphabet yang biasa dipakai adalah huruf, koma dan titik. Semuanya dispesifikasi seperti di bawah ini:

S = {a b c d e ... z , . }

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Bila language ini dinamakan KATAINDONESIA, dimana semua string adalah word/kata di dalam kamus, maka definisinya adalah:KATA-INDONESIA = {semua kata di dalam kamus}

Contoh sederhana suatu language dengan alphabet yang ada hanya sebuah huruf, yaitu huruf xS={x} L = { x xx xxx xxxx ... }

Simbol alphabet tidak harus alphabet huruf latin, namun dapat berisi apa sajaUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Sebuah string dimungkinkan tidak punya alphabet. String ini disebut empty string atau null string dan dilambangkan . Perlu diingat bukan alphabet dalam language. Contoh: L = { x xx xxx xxxx ... } Bahasa tanpa word dilambangkan dengan null set Tolong dibedakan antara language tanpa word dengan word yang mempunyai L = { x xx xxx } LL+{} L=L+UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh sebuah bahasa dengan non empty string L1 = { x xx xxx xxxx ... } Atau dengan cara lain L1 = { xn for n = 1 2 3 ... } Dalam language L1, dapat dilakukan operasi penggabungan (concatenation) dari word yang ada menjadi word baru. Contoh word xx dengan word xxx digabung menjadi word baru xxxxx

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Tidak selalu benar bila dua word digabungkan akan membentuk sebuah word baru. Contoh:L2 = { x xxx xxxxx xxxxxxx ... } = { x ganjil} = { x 2n+1 for n = 0 1 2 3 }

xxx dan xxxxx adalah word pada language L2, namun pengabungannya bukanlah word di dalam L2 Didefinisikan suatu fungsi length untuk menghitung jumlah huruf di dalam sebuah word length(xxxxxx) = 6 length(7152) = 4 length() = 0UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Bila diinginkan sebuah language mempunyai null string, maka jangan lupa untuk memasukannya saat mendefinisikan language tersebut

L4

= { x xx xxx xxxx ... } = { xn for n = 0 1 2 3 }

Harap dipahami bahwa x0 = dan bukannya x0 = 1 seperti di aljabar Didefinisikan fungsi reverse. Reverse dari suatu string adalah string yang sama tetapi tersusun dari belakang, walaupun string ini bukanlah word dalam bahasa tersebut reverse(xxx) = xxx reverse(xxxxx) = xxxxx reverse(145) = 541 reverse(140) = 041 UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Palindrome adalah kata, frase, nomor atau urutan lainnya dari unit yang dapat dibaca dengan cara yang sama di kedua arah. Didefinisikan suatu language yang disebut PALINDROME dari alphabet S = { a, b} PALINDROME ={ , dan semua string x sedemikian sehingga reverse(x) = x } maka akan diperoleh: PALINDROME = { a b aa bb aaa aba bab bbb aaaa abba ... }

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Diketahui alphabet S, diinginkan untuk mendefinisikan sebuah language dimana tiap string dari huruf yang ada di dalam S adalah sebuah word, termasuk null string. Language ini disebut sebagai closure Dapat dinotasikan dengan menambah sebuah asterisk sesudah nama dari alphabet S* (Kleene Star). Dalam logika matematika dan ilmu komputer, bintang Kleene (atau operator Kleene atau penutupan Kleene) merupakan operasi unary, baik di set pada set string atau simbol-simbol atau karakter. Penerapan bintang Kleene untuk satu set V ditulis sebagai V*. Hal ini banyak digunakan untuk ekspresi reguler, yang merupakan konteks yang diperkenalkan oleh Stephen Kleene menjadi ciri automata tertentu.UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh:

Jika S = { x } maka S* = L4 = { x xx xxx ... }

Jika S = { 0 1 } maka S* = { 0 1 00 01 10 11 000 001 ... }Jika S = { a b c } maka S* = { a b c aa ab ac ba bb bc ca cb cc aaa ... }

Operasi Kleene Star menghasilkan infinite language dari string huruf yang ada pada alphabet. Yang dimaksud infinite language adalah tak terhitung banyaknya word. Disarankan word dari language tersusun urut dari yang pendek secara alphabetik .UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh: Jika S = { aa, b} maka S* = { dan word bentukan yang berasal dari aa dan b } S* = { dan semua string bentukan dari a dan b dengan a yang selalu berderet dalam jumlah yang genap) = { b aa bb aab baa bbb aaaa aabb baab bbaa bbbb aaaab aabaa aabbb baaaa baabb bbaab bbbaa ... } String aabaaab tidak termasuk S* karena jumlah a tidak genap Contoh: Jika S = { a, ab } maka S* = { dan word bentukan yang berasal dari a dan ab } S* = { dan semua string bentukan dari a dan b kecuali yang dimulai dengan b dan yang mengandung dua b berdempetan } = { a aa ab aaa aab aba aaaa aaab aaba abaa abab aaaaa aaaab aaaba aabaa aabab abaaa abaab ... }UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

REGULAR EXPRESSION Sebuah cara mendefinisikan language yang lebih tepat dibandingkan dengan menggunakan cara ellipsis (diakhiri dengan ...) Language ini disebut regular language Perhatikan: L4 = { x xx xxx xxxx ... } Dengan memanfaatkan closure, bila S = { x } maka L4 = S* Dapat juga ditulis sebagai L4 = {x}*UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Kleene Star tidak hanya dapat diaplikasikan untuk set namun juga langsung ke alphabet. Contoh: x* Ekpresi sederhana x* akan dipakai untuk mengekspresikan pengulangan dari x (bisa juga tidak sama sekali) x* = atau x atau x2 atau x3 atau x4 ... = xn for n = 0 1 2 3 4 ... Jadi x* adalah string dari x yang banyaknya tidak dinyatakan secara pasti.

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Sebuah language L yang didefinisikan dari alphabet S = {a, b} seperti di bawah ini: L = { a ab abb abbb abbbb ... } Dapat juga didefinisikan dengan kalimat: L = semua word yang dimulai dengan a dan diikuti oleh sejumlah b (dan mungkin tanpa b sama sekali) Dengan memakai notasi *, dapat dituliskan L = language (ab*) Kleene Star dapat diimplementasikan pada string ab seperti di bawah ini: (ab)* = atau ab atau abab atau ababab . . . (ab)* (ab*)

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh Kleene Star lainnya: L1 = language (xx*) Language L1 di atas berisi sebuah x lalu diikuti dengan sejumlah x (dimana mungkin saja tanpa x sama sekali) L1 dapat dituliskan dengan notasi lain, yaitu notasi + x+ berarti sejumlah x dalam jumlah yang selalu positif (tidak bisa 0, atau tidak bisa ) Notasi * lebih lazim dipergunakan daripada notasi + L1 dapat juga didefinisikan dengan salah satu contoh di bawah ini: xx* x+ xx*x* x*xx* x+x* x* x + x*x*x*xx* Ingat bahwa x* bisa saja berarti

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh: Language yang didefinisikan dengan ekspresi ab*a Adalah sebuah himpunan dari string a dan string b yang paling sedikit berisi dua huruf yang diawali dengan a dan diakhiri dengan a dan hanya akan berisi b diantaranya (atau tidak sama sekali) Contoh: Ekspresi-ekspresi di bawah ini mendefinisikan language L2 dengan hasil yang sama L2 = { xganjil } = x(xx)* = (xx)*xlanguage(ab*a) = { aa aba abba abbba abbbba ... }

Namun ekspresi x*xx* tidak, karena termasuk (xx) x (x)UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh: Language dengan ekspresi seperti di bawah ini a*b* Berisi semua string dari a dan b sedemikian sehingga semua a (bila ada) akan berada di depan semua b (bila ada)

Perhatikan bahwa ba dan aba tidak termasuk dalam language ini, juga bahwa jumlah a dan b tidak perlu sama Ada pemanfaatan lain dari tanda tambah +. Ekpresi x + y berarti salah satu dari x atau y (memilih). Berhatihatilah untuk membedakan antara + dengan +

language(a*b*) = { a b aa ab bb aaa aab abb bbb aaaa... }

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh: Perhatikan bahasa T yang berasal dari alphabet S = { a b c } T = { a c ab cb abb cbb abbb cbbb abbbb cbbbb } Semua word di dalam T dimulai dengan a atau c dan diikuti dengan sejumlah b. Secara simbolik language T dapat ditulis dengan cara: T = language ((a + c)b*) = language (a atau c diikuti sejumlah b)

Tanda + berarti harus dilakukan pilihan untuk memakai ekspresi yang sebelah kiri atau kanan

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh Language yang didefinisikan dengan expressi ab*a Adalah sebuah himpunan dari string a dan string b yang paling sedikit berisi dua huruf yang diawali dengan a dan diakhiri dengan a dan hanya akan berisi b diantaraanya (atau tidak sama sekali)language(ab*a) = { aa aba abba abbba abbbba . . .}UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh Language dengan ekspresi seperti di bawah ini a*b* Berisi semua string dari a dan b sedemikian sehingga semua a (bila ada) akan berada di depan semua b (bila ada)language(a*b*) = { a b aa ab bb aaa aab abb bbb aaaa ...}

Perhatikan bahwa ba dan aba tidak termasuk dalam language ini, juga bahwa jumlah a dan b tidak perlu samaUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh Ekspresi-ekspresi di bawah ini mendefinisikan language L2 dengan hasil yang sama L2 = { xganjil} = x(xx)* = (xx)*x Namun ekspresi x*xx* tidak, karena termasuk (xx) x (x).Ada pemanfaatan lain dari tanda tambah +. Ekpresi x + y berarti salah satu dari x atau y (memilih). Berhati-hatilah untuk membedakan antara + dengan +. Contoh Perhatikan bahasa T yang berasal dari alphabet = { a b c } T = { a c ab cb abb cbb abbb cbbb abbbb cbbbb } Semua word di dalam T dimulai dengan a atau c dan diikuti dengan sejumlah b. Secara simbolik language T dapat ditulis dengan cara T = language ((a + c)b*) = language (a atau c diikuti sejumlah b) tanda + berarti harus dilakukan pilihan untuk memakai ekspresi yang sebelah kiri atau kanan.

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh Sebuah language L akan berisi semua string dari a dan b dengan panjang selalu tiga. L = { aaa aab aba abb baa bab bba bbb } Huruf pertama dari tiap word di dalam L adalah a atau b. Huruf kedua dari tiap word di dalam L adalah a atau b. Huruf ketiga tiap word di dalam L adalah a atau b. Jadi L dapat didefinisikan:L = language ((a + b)(a + b)(a + b)) Atau dengan lebih singkat L = language ((a + b)3)

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

LATIHAN

Perhatikan beberapa definisi di bawah ini yang berasal dari alphabet = { ab}

1.(a + b)7 2.(a + b)* 3.a(a + b)* 4.(a + b)*a(a + b)* 5.(a + b)*a(a + b)*a(a + b)* 6.b*ab*a(a + b)* 7.(a + b)*ab*ab* 8.b*a(a + b)*ab* 9.b*ab*ab* 10.(a + b)*a(a + b)*b(a + b)* 11.(a + b)*a(a + b)*b(a + b)* + (a + b)*b(a + b)*a(a + b)* 12.bb*aa* 13.(a + b)*a(a + b)*b(a + b)* + bb*aa*

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

OTOMATA HINGGASebuah Otomata hingga adalah kumpulan dari tiga hal: Kumpulan terbatas (finite set) dari state (kondisi/ keadaan). Satu diantaranya menjadi initial state (kondisi awal) atau start state, dan beberapa (bisa berarti tidak ada) dari antaranya dinyatakan sebagai final state. Himpunan alphabet S berisi beberapa huruf, dimana string-string bentukan dari alphabet akan dibaca huruf demi huruf. Kumpulan terbatas dari transition yang menjelaskan untuk tiap state dan tiap huruf yang dibaca ke state mana perjalanan dilanjutkan.

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

OTOMATA HINGGA Otomata hingga adalah suatu model yang dapat diterapkan pada beragam jenis perangkat keras (hardware) dan perangkat lunak (software). Penerapan-penerapan dari otomata hingga adalah:

Perangkat lunak yang digunakan untuk merancang dan memantau perilaku rangkaian digital. Lexical Analyzer, yaitu komponen kompiler yang bertugas memecah teks-teks input menjadi logical unit seperti identifiers, keyword dan punctuation. Perangkat lunak untuk memindai dokumen teks yang jumlah halamannya luar biasa banyak guna menemukan kesamaan kata, frase dan bentuk-bentuk lain Perangkat lunak yang digunakan untuk memeriksa sistem-sistem dengan stata/state berbeda yang berhingga jumlahnya, misalnya protokol komunikasi atau protokol yang digunakan untuk pertukaran informasi secara aman.JIM MICHAEL WIDI, S.KOM

UNIVERSITAS BUDI LUHUR - FTI

TEORI BAHASA DAN OTOMATA (3 SKS)

CONTOH OTOMATA HINGGAPush Start Off Push On

Start

t

t

h

th

e

the

n

then

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

CONTOH Alphabet yang digunakan hanya 2 huruf, a dan b Ada 3 buah state, yaitu x, y dan z Aturan transition yang dipakai adalah:1. Dari state x 2. Dari state x 3. Dari state y 4. Dari state y 5. Dari state z Ditentukan juga final state

dan input a menuju state y dan input b menuju state z dan input a menuju state x dan input b menuju state z dan input apa saja tetap di state z x sebagai start state dan z sebagai

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Perhatikan apa yang akan terjadi bila string aaa diumpankan ke otomata hingga tersebut Penelusuran akan dimulai dari start state:Huruf pertama adalah a, sesuai aturan-1 akan menuju state y Huruf kedua adalah a, sesuai aturan-3 akan menuju state x Huruf ketiga adalah a, sesuai aturan-1 akan menuju state y

mencapai final state Jadi, string aaa bukanlah termasuk di dalam bahasa yang didefinisikan oleh otomata hingga.a Start X a Y bUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

String sudah diumpankan semua, tapi tidak

a, b bZ+

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh lain, bila string abba diumpankan ke FA tersebut . Hasilnya, perjalanan mencapai pada state z (final state) . Jadi, string abba termasuk word dalam bahasa yang didefinisikan oleh otomata tersebut tersebut

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Tidak sulit menerka word apa saja yang diterima oleh FA tersebut, yaitu stringnya harus berisi minimal sebuah b agar mencapai state z. Dari transition rule di atas, dapat dibuatkan sebuah transition table seperti di bawah ini:a Start x y Final Z y x z b z z z

Otomata Hingga dapat dianggap sebagai suatu mesin. Ada suatu pergerakkan, perpindahan dari sebuah state ke state lain, karena adanya sebuah input

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Otomata Hingga dapat juga digambarkan dalam bentuk grafis yang disebut bentuk transition diagram. Tanda - untuk start state dan + untuk final state . Bentuk lain, start state memakai panah dan final state memakai lingkaran ganda.a Xa b Z+ aUNIVERSITAS BUDI LUHUR - FTI

a Y

Xa b Z

Y b

b

b

a

bJIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS) a a a, b

b

+b

-

+

a, b

2 busur atau lebih yang berasal dari state yang sama dan menuju ke state yang sama pula dapat disatukan seperti gambar di atas. Sekilas terkesan bahwa FA di atas dapat menerima string dalam bentuk apapun. Namun, bila inputnya adalah null string ( ), maka tidak akan terjadi perpindahan state. Jadi language yang diterima oleh mesin di atas adalah: ( a + b ) ( a + b )* = ( a + b )+UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Ada kemungkinan sebuah Otomata Hingga tidak akan menerima language apapun

a, b

-

a, b

a, b

+

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Perhatikan Otomata Hingga ini1-

a

2

a

b

a

4+

a, b

b

b

3

Apa yang terjadi bila diberi input string ababa dan babbb (bagaimana pergerakkannya)?Transisi bila diberi input string ababa (1,a) = (2) (2,b) = (3) (3,a) = (2) (2,b) = (3) (3,a) = (2) Transisi bila diberi input string babbb (1,b) = (3) (3,a) = (2) (2,b) = (3) (3,b) = (4) (4,b) = (4)

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

NON-DETERMINISTIC FINITE AUTOMATA

Pada Non-Deterministic Finite Automata (NFA), dari suatu state bisa terdapat 0, 1 atau lebih busur keluar (transisi) berlabel simbol input yang sama. Pada setiap pasangan state-input, dapat memiliki 0 (nol) atau lebih pilihan untuk state berikutnya.a, b a

Transition Table

aXa

b {y}

Y

Start x Final y

{x,y}{y}

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh berikut diperlihatkan sebuah NFA yang merupakan gabungan dari 2 buah FA, yaitu dengan cara menumpuk start state. Dua FA berikut ini (FA1 dan FA2) masing-masing menerima language yang didefinisikan oleh regular expression r1 dan r2.a

aa

+

ab b a

b

b

a

b

a

b

a, b

a, b b

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

NFA yang akan dibuat untuk bisa mendefinisikan kedua language yang diterima oleh masing-masing FA terlihat seperti berikut ini:a a a3

b a

7

+5

b -1 b6

a b b2

a, b

+8 a

a

b

a, b

4

b

1. 2. 3. 4. 5. 6.

abbab baabb babbaaa aababba aaabbabbaaa aabbbaaabaaJIM MICHAEL WIDI, S.KOM

UNIVERSITAS BUDI LUHUR - FTI

TEORI BAHASA DAN OTOMATA (3 SKS)

DETERMINISTIC FINITE AUTOMATA Pada Deterministic Finite Automata, dari satu state ada tepat satu state berikutnya untuk setiap simbol masukan yang diterima Apapun state saat itu (current state) atau masukan/input nya, selalu terdapat satu dan hanya satu state berikutnya

a x a b z b b y

Start X

a Y

b Z

Y Final Z

X Z

Z Z

a

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

KONVERSI DARI NFA KE DFA Mulai dari state awal NFA, kemudian mengikuti transisinya untuk membentuk state-state baru, untuk setiap state yang terbentuk diikuti lagi transisinya sampai tercover semua Jika state baru yang terbentuk sama cukup ditulis sekali saja Jika state baru yang terbentuk adalah state , maka state tersebut harus tetap digambarkan sebagai sebuah state Semua state pada DFA yang mengandung final state NFA akan menjadi final stateUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

CONTOHa, b

a

x

y

Start x Final ya a x x,y

a {x,y} {y}

b {y}

a

({x},a) = ({x,y}) ({x},b) = ({y}) ({x,y},a) = ({x,y}) ({x,y},b) = ({y}) ({y},a) = ({y}) ({y},b) = ({}) ({},a) = ({}) ({},b) = ({})UNIVERSITAS BUDI LUHUR - FTI

a, b b

b y b

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

CONTOHa, b p b s q a

b

a, b b r a

Start p

a {q,s}

b {q}

Final q r Final s

{r} {s}

{q,r} {p} {p}

({p},a) ({p},b) ({q,s},a) ({q,s},b) ({q},a) ({q},b) ({r},a) ({r},b) ({p,q,r},a) ({p,q,r},b) ({q,r},a) ({q,r},b) ({s},a) ({s},b) ({q,r,s},a) ({q,r,s},b) ({r,s},a) ({r,s},b) ({ },a) ({ },b)

= ({q,s}) = ({q}) = ({r}) = ({p,q,r}) = ({r}) = ({q,r}) = ({s}) = ({p}) = ({q,r,s}) = ({p,q,r}) = ({r,s}) = ({p,q,r}) = ({}) = ({p}) = ({r,s}) = ({p,q,r}) = ({s}) = ({p}) = ({}) = ({})JIM MICHAEL WIDI, S.KOM

UNIVERSITAS BUDI LUHUR - FTI

TEORI BAHASA DAN OTOMATA (3 SKS)

CONTOHa

pb b q b b

q,s

a a r b a a

q,r

b

ar,s

a b a a q,r,s b

sa,b

p,q,r

b

({p},a) ({p},b) ({q,s},a) ({q,s},b) ({q},a) ({q},b) ({r},a) ({r},b) ({p,q,r},a) ({p,q,r},b) ({q,r},a) ({q,r},b) ({s},a) ({s},b) ({q,r,s},a) ({q,r,s},b) ({r,s},a) ({r,s},b) ({ },a) ({ },b)

= ({q,s}) = ({q}) = ({r}) = ({p,q,r}) = ({r}) = ({q,r}) = ({s}) = ({p}) = ({q,r,s}) = ({p,q,r}) = ({r,s}) = ({p,q,r}) = ({}) = ({p}) = ({r,s}) = ({p,q,r}) = ({s}) = ({p}) = ({}) = ({})

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

0

1

Start PQ R Final S

{P,Q}{R} {S} {S}

{P}{R} {S}

({P},0} ({P},1) ({P,Q},0) ({P,Q},1) ({P,Q,R},0) ({P,Q,R},1) ({P,R},0) ({P,R},1) ({P,Q,R,S},0) ({P,Q,R,S},1) ({P,Q,S},0) ({P,Q,S},1) ({P,R,S),0) ({P,R,S),1) ({P,S},0) ({P,S},1)

= ({P,Q}) = ({P}) = ({P,Q,R}) = ({P,R}) = ({P,Q,R,S}) = ({P,R}) = ({P,Q,S}) = ({P}) = ({P,Q,R,S}) = ({P,R,S}) = ({P,Q,R,S}) = ({P,R,S}) = ({P,Q,S}) = ({P,S}) = ({P,Q,S}) = ({P,S})

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

CONTOHP 0 P,Q 0 P,Q,R 1

1

10

P,R

0 0 P,Q,R,S

P,Q,S

P,S

1

P,R,S

({P},0} ({P},1) ({P,Q},0) ({P,Q},1) ({P,Q,R},0) ({P,Q,R},1) ({P,R},0) ({P,R},1) ({P,Q,R,S},0) ({P,Q,R,S},1) ({P,Q,S},0) ({P,Q,S},1) ({P,R,S),0) ({P,R,S),1) ({P,S},0) ({P,S},1)

= ({P,Q}) = ({P}) = ({P,Q,R}) = ({P,R}) = ({P,Q,R,S}) = ({P,R}) = ({P,Q,S}) = ({P}) = ({P,Q,R,S}) = ({P,R,S}) = ({P,Q,R,S}) = ({P,R,S}) = ({P,Q,S}) = ({P,S}) = ({P,Q,S}) = ({P,S})

1 0 01

1

UNIVERSITAS BUDI LUHUR - FTI

1

0

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

TRANSITION GRAPH Kumpulan dari 3 hal:Finite set dari State dengan minimal satu diantaranya dinyatakan sebagai start state (-) dan beberapa (bisa juga tidak ada) dinyatakan sebagai final state (+) Sebuah alphabet S berisi huruf-huruf yang akan membentuk input string Finite set dari transition yang menunjukkan arah perpindahan dari satu state ke state lain bila dibaca sebuah substring dari input (termasuk juga pembacaan string atau )UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

1-

2

3

4+

Perhatikan Transition Graph di atas String (abb)()(aa)(b) akan diterima oleh TG di atas String abba, abbaaabba dan b adalah 3 dari beberapa string yang juga termasuk diterima oleh TG di atas Sebuah edge atau busur antara state 2 dan state 3 berlabel berarti dapat berpindah dari state 2 ke state 3 tanpa harus melakukan pembacaan terhadap input TG juga memungkinkan dibuat dengan lebih dari sebuah edge/busur berlabel UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

TG juga memungkinkan dibuat dengan lebih dari sebuah edge/busur berlabel .1

2 3

+

Ataupun mempunyai lebih dari sebuah start state.1-

2-

+

3-

Perlu disadari bahwa sebuah FA juga sebuah TG, namun tidak sebaliknyaUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Lihat TG di bawah ini:

Gambar di atas adalah sebuah TG yang tidak menerima string apapun termasuk juga , karena tidak adanya final state Lihat mesin di bawah ini

Hanya menerima string . String apapun tidak dapat mencapai final state, karena tidaknya edge/busur yang menuju ke final state Perhatikan TG di bawah ini

Mesin di atas akan menerima semua word yang diakhiri dengan huruf b. Reguler expression untuk language ini adalah (a + b)* b

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Perhatikan TG di bawah ini

Mesin di atas hanya menerima word , baa, dan abba Perhatikan TG di bawah ini+

TG ini menerima word yang huruf awal dan akhirnya berbeda

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

FINITE AUTOMATA DENGAN OUTPUT (MESIN MOORE) Sebuah finite set dari state q0, q1, q2, q3, . . . Dimana q0 adalahstart state Alphabet S berisi huruf-huruf yang akan membentuk input string. S = {a, b, c, . . . } Alphabet dari karakter yang akan menjadi output T = {x, y, z, . . . } Tabel transisi yang memperlihatkan untuk tiap state dan tiap huruf input, state apa yang akan dicapai

Tabel Keluaran yang memperlihatkan karakter apa dari T yang akan dihasilkan untuk tiap state yang tercapai

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Mesin Moore tidak mendefinisikan language dari word yang diterima, karena tiap input yang diumpankan akan menghasilkan suatu keluaran. Tidak mempunyai Final State. Proses akan berhenti jika huruf input yang terakhir telah selesai dibaca. Tampilan Mesin Moore mirip dengan sebuah FA Perbedaannya terletak pada state. Sebuah state akan mempunyai nama dan karakter apa yang dihasilkan dengan pemisahnya garis miring ( / ).

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Alphabet input S = {a, b} Karakter output T = {0, 1} Nama state q0, q1, q2, q3Transition Table State Awal q0 q1 q2 q3 Output Table Karakter yang diberikan 1 0 0 1

State BaruSesudah Input a Sesudah Input b q1 q3 q0 q3 q3 q1 q3 q2

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Bentuk grafis dari Mesin Moore tersebut b adalah: aq0/1 q1/0a a b b

q2/0

q3/1b

a

Contoh lain:b a

a a a

q0/0b

q1/0

q2/0

q3/1

bUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

FINITE AUTOMATA DENGAN OUTPUT (MESIN MEALY) Sebuah finite set dari state q0, q1, q2, q3, . . . Dimana q0 adalah start state Alphabet S berisi huruf-huruf yang akan membentuk input string. S = {a, b, c, . . . } Alphabet dari karakter yang akan menjadi output T = {x, y, z, ...} Tabel transisi yang memperlihatkan untuk tiap state dan tiap huruf input, state apa yang akan dicapai

Tiap edge/busur diberi label dalam bentuk i/o, dimana I adalah huruf yang akan dibaca dan o adalah karakter yang dicetak.UNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Jumlah karakter yang dihasilkan akan sama banyak dengan jumlah huruf dari input. Mesin ini tidak mendefinisikan language yang diterima, sehingga tidak memiliki final state Perbedaan dengan mesin Moore, mesin Mealy tidak menghasilkan apapun pada saat awal.

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh Mesin Mealy Apa yang dihasilkan Mesin Mealy ini bila diberi inputan aaabb?q1 b/1 a/0 q0 b/0 b/1 q3 a/1 a/0 b/1 q2

a/1

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Bila terdapat 2 edge/busur yang menuju ke sebuah state, maka kedua edge/busur itu dapat digabungkan.

a/x q4 b/x q7

q4

a/x, b/x

q7

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh lain, mesin Mealy di bawah ini dapat memperlihatkan adanya huruf ganda yang terdapat pada string ababbaab, yaitu dengan menghasilkan 00001010.a/1

a/0 start a/0

b/0

b/0 b/1

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

CONTEXT-FREE GRAMMER (CFG)Definisi:

Sebuah alphabet S dari huruf-huruf yang disebut terminal, dimana daripadanya akan dibentuk string yang merupakan word Himpunan dari simbol-simbol yang disebut nontermin al, dimana satu dari antaranya adalah S yang berarti mulai Finite set dari production dalam bentuk: sebuah nonterminal finite string dari terminal dan atau nonterminal

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Dimana string dari terminal dan atau nonterminal dapat berisi: Terminal saja Nonterminal saja Kombinasi terminal dan nonterminal Empty string

Harus ada minimal sebuah nonterminal S terletak disebelah kiri Agar tidak terjadi kekacauan antara terminal dan nonterminal, maka selalu dipakai huruf kecil untuk terminal dan huruf kapital untuk nonterminalUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

ContohTerminal adalah a Nonterminal adalah S Aturan Produksi 1. Prod 1 2. Prod 2 maka akan diperoleh: S => aS S => aaS S => aaaaaS S => aaaaaaS SaS S

Bila Prod 1 diaplikasikan sebanyak 6 kali, kemudian Prod 2,

S => aaaSS => aaaaS

S => aaaaaa

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Contoh:Terminal adalah a & b Nonterminal adalah S Aturan Produksinya:

Prod 1 S a SProd 2 S b S Prod 3 S a

Prod 4 S bDari bahasa ini, dapat dihasilkan string baab dengan cara: S => b S => b a S => b a a S => b a a bUNIVERSITAS BUDI LUHUR - FTI

(Prod 2) (Prod 1) (Prod 1) (Prod 4)JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

PENYEDERHANAAN CONTEXT-FREE GRAMMER Tujuannya: Untuk melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tak perlu atau aturan produksi yang tidak berarti.

Ada 3 langkah penyederhanaan: Penghilangan Produksi Useless

Penghilangan Produksi Unit Penghilangan Produksi EmptyUNIVERSITAS BUDI LUHUR - FTI JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Penghilangan Produksi UselessDefinisi Produksi Useless: Produksi yang memuat simbol variabel yang tidak memiliki penurunan yang menghasilkan terminal

Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal.Contoh: S aSa | Abd | Bde

A AdaB BBB | a Simbol variabel A tidak memiliki penurunan yang menuju terminal, sehingga bisa dihilangkan Akibatnya, aturan S Abd tidak memiliki penurunan, sehingga bisa dihilangkan juga.

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Penghilangan Produksi UselessSehingga didapat S aSa | Bde B BBB | e

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Penghilangan Produksi UnitDefinisi Produksi Unit: Produksi dimana ruas kiri dan kanan aturan produksi hanya berupa 1 simbol variabel, misalnya A B Penyederhaan ini dilakukan produksi unit. S Sb SC dengan melakukan penggantian aturan

Contoh:

CDC ef D dd Pergantian yang dilakukan adalah: C D menjadi C dd S C menjadi S dd | ef

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Penghilangan Produksi UnitSehingga didapat S Sb S dd | ef C dd C ef D dd

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM

TEORI BAHASA DAN OTOMATA (3 SKS)

Penghilangan Produksi Empty Definisi Produksi Empty:Produksi yang dapat menghasilkan Empty

Contoh S bcAd A Pada kasus ini, simbol variabel A dapat menuju empty dan hanya satu penurunan dari simbol variabel A, maka simbol variabel A dapat ditiadakan

UNIVERSITAS BUDI LUHUR - FTI

JIM MICHAEL WIDI, S.KOM