Click here to load reader

Teori Bahasa Automata1

  • View
    250

  • Download
    25

Embed Size (px)

Text of Teori Bahasa Automata1

  • PERTEMUAN I

  • PENDAHULUAN

    Teori Bahasa

    Teori bahasa membicarakan bahasa formal (formal language),terutama untuk kepentingan perancangan kompilator (compiler) danpemroses naskah (text processor). Bahasa formal adalah kumpulankalimat. Semua kalimat dalam sebuah bahasa dibangkitkan olehsebuah tata bahasa (grammar) yang sama. Sebuah bahasa formalbisa dibangkitkan oleh dua atau lebih tata bahasa berbeda.Dikatakan bahasa formal karena grammar diciptakan mendahuluipembangkitan setiap kalimatnya. Bahasa manusia bersifatsebaliknya; grammar diciptakan untuk meresmikan kata-kata yanghidup di masyarakat. Dalam pembicaraan selanjutnya bahasaformal akan disebut bahasa saja.

  • Automata

    Automata adalah mesin abstrak yang dapat mengenali (recognize),menerima(accept), atau membangkitkan (generate) sebuah kalimat dalam bahasatertentu.Untuk memodelkan hardware dari komputer diperkenalkan otomata.Otomata adalah fungsi-fungsi dari komputer digital. Menerima input,Otomata adalah fungsi-fungsi dari komputer digital. Menerima input,menghasilkan output, bisa memiliki penyimpanan sementara dan mampumembuat keputusan dalam mentransformasikan input ke output. Sebuahbahasa formal adalah suatu abstraksi terdiri dari himpunan simbol-simboldan aturan-aturan yang mana simbol-simbol tersebut bisa dikombinasikanke dalam entitas yang disebut kalimat. Meskipun bahasa formal yangdipelajari di sini lebih sederhana daripada bahasa pemrograman, merekamempunyai banyak hal yan g penting. Kita bisa mempelajari banyaktentang bahasa pemrograman dari bahasa formal.

  • Otomata merupakan suatu sistem yang terdiri atassejumlah berhingga state, dimana state menyatakaninformasi mengenai input yang lalu dan dapat dianggapsebagai memori mesin. Input pada mesin otomatadianggap sebagai bahasa yang harus dikenali oleh mesin.Selanjutnya, mesin otomata membuat keputusan yangSelanjutnya, mesin otomata membuat keputusan yangmengindikasikan apakah input itu diterima atau tidak.

  • Beberapa Pengertian Dasar

    Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalamgeometri). Sebuah huruf atau sebuah angka adalah contoh simbol.

    String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, jika a, b,dan c adalah tiga buah simbol maka abcb adalah sebuah string yang dibangundari ketiga simbol tersebut.

    Jika w adalah sebuah string maka panjang string dinyatakan sebagai | w | dan Jika w adalah sebuah string maka panjang string dinyatakan sebagai | w | dandidefinisikan sebagai cacahan (banyaknya) simbol yang menyusun stringtersebut. Sebagai contoh, jika w = abcb maka | w | = 4.

    String hampa adalah sebuah string dengan nol buah simbol. String hampadinyatakan dengan simbol (atau ^) sehingga | |= 0. String hampa dapatdipandang sebagai simbol hampa karena keduanya tersusun dari nol buahsimbol.

    Alfabet adalah hinpunan hingga (finite set) simbol-simbol

  • Operasi Dasar String

    Diberikan dua string : x = abc, dan y = 123

    Prefik string w adalah string yang dihasilkan dari string w dengan menghilangkannol atau lebih simbol-simbol paling belakang dari string w tersebut.Contoh : abc, ab, a, dan adalah semua Prefix(x)

    ProperPrefix string w adalah string yang dihasilkan dari string w dengan ProperPrefix string w adalah string yang dihasilkan dari string w denganmenghilangkan satu atau lebih simbol-simbol paling belakang dari string wtersebut.Contoh : ab, a, dan adalah semua ProperPrefix(x)

    Postfix (atau Sufix) string w adalah string yang dihasilkan dari string w denganmenghilangkan nol atau lebih simbol-simbol paling depan dari string w tersebut.Contoh : abc, bc, c, dan adalah semua Postfix(x)

  • ProperPostfix (atau PoperSufix) string w adalah string yang dihasilkan daristring w dengan menghilangkan satu atau lebih simbol-simbol paling depan daristring w tersebut.Contoh : bc, c, dan adalah semua ProperPostfix(x)

    Head string w adalah simbol paling depan dari string w.Contoh : a adalah Head(x)

    Tail string w adalah string yang dihasilkan dari string w dengan menghilangkansimbol paling depan dari string w tersebut. Contoh : bc adalah Tail(x)simbol paling depan dari string w tersebut. Contoh : bc adalah Tail(x)

    Substring string w adalah string yang dihasilkan dari string w denganmenghilangkan nol atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.Contoh : abc, ab, bc, a, b, c, dan adalah semua Substring(x)

    ProperSubstring string w adalah string yang dihasilkan dari string w denganmenghilangkan satu atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.Contoh : ab, bc, a, b, c, dan adalah semua Substring(x)

  • Subsequence string w adalah string yang dihasilkan dari string w denganmenghilangkan nol atau lebih simbol-simbol dari string w tersebut.Contoh : abc, ab, bc, ac, a, b, c, dan adalah semua Subsequence(x)

    ProperSubsequence string w adalah string yang dihasilkan dari string w denganmenghilangkan satu atau lebih simbol-simbol dari string w tersebut.Contoh : ab, bc, ac, a, b, c, dan adalah semua Subsequence(x)

    Concatenation adalah penyambungan dua buah string. Operator concatenationadalah concate atau tanpa lambang apapun.adalah concate atau tanpa lambang apapun.Contoh : concate(xy) = xy = abc123

    Alternation adalah pilihan satu di antara dua buah string. Operator alternationadalah alternate atau |.Contoh : alternate(x|y) = x | y = abc atau 123

    Kleene Closure : x* = | x | xx xxx | = | x | x 2 | x 3 | Positive Closure : x + = x | xx | xxx | = x |x 2 | x 3 |

  • Konsep Dasar1. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal

    atau token.2. Kalimat adalah deretan hingga simbol-simbol terminal.3. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga

    kalimat.4. Simbol-simbol berikut adalah simbol terminal (VT) :

    huruf kecil alfabet, misalnya : a, b, c simbol operator, misalnya : +, , dan simbol operator, misalnya : +, , dan simbol tanda baca, misalnya : (, ), dan ; string yang tercetak tebal, misalnya : if, then, dan else.

    5. Simbol-simbol berikut adalah simbol non terminal (VN) : huruf besar alfabet, misalnya : A, B, C huruf S sebagai simbol awal string yang tercetak miring, misalnya : expr dan stmt.

    6. Huruf besar akhir alfabet melambangkan simbol terminal atau non terminal, misalnya : X, Y, Z.

    7. Huruf kecil akhir alfabet melambangkan string yang tersusun atas simbol-simbolterminal, misalnya : x, y, z.

  • 8. Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminalatau simbol-simbol non terminal atau campuran keduanya, misalnya : , , dan .

    9. Sebuah produksi dilambangkan sebagai , artinya : dalam sebuah derivasidapat dilakukan penggantian simbol dengan simbol .

    10. Simbol dalam produksi berbentuk disebut ruas kiri produksi sedangkansimbol disebut ruas kanan produksi.

    11. Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuahderivasi dilambangkan sebagai : .

    12. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau

    12. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya.

    13. Kalimat adalah string yang tersusun atas simbol-simbol terminal. Jelaslah bahwakalimat adalah kasus khusus dari sentensial.

    14. Pengertian terminal berasal dari kata terminate (berakhir), maksudnya derivasiberakhir jika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas simbol-simbol terminal itu).

    15. Pengertian non terminal berasal dari kata not terminate (belum/tidak berakhir),maksudnya derivasi belum/tidak berakhir jika sentensial yang dihasilkanmengandung simbol non terminal.

  • Grammar dan Klasifikasi Chomsky

    Grammar G didefinisikan sebagai pasangan 4 tuple : V T , V N , S, dan Q, dandituliskan sebagai G(V T , V N , S, Q), dimana :VT : himpunan simbol-simbol terminal (atau himpunan token -token, atauhimpunan token -token, atau

    alfabet)VN : himpunan simbol-simbol non terminalS V N : simbol awal (atau simbol start)Q : himpunan produksi

  • Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya ( ), NoamChomsky mengklasifikasikan 4 tipe grammar :1. Grammar tipe ke-0 : Unrestricted Grammar (UG)

    Ciri : , (V T | VN )*, | | > 02. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)

    Ciri : , (V T | VN )*, 0 < | | | | 3. Grammar tipe ke-2 : Context Free Grammar (CFG)

    3. Grammar tipe ke-2 : Context Free Grammar (CFG)Ciri : V N , (V T | VN )*

    4. Grammar tipe ke-3 : Regular Grammar (RG)Ciri : V N , {V T , V T VN } atau V N , {V T , V N

    VT }Mengingat ketentuan simbol-simbol (hal. 3 no. 4 dan 5),

    ciri-ciri RG sering dituliskan sebagai : V N , {a, bC} atau V N , {a, Bc}

  • Contoh Analisa Penentuan Type Grammar1. Grammar G1 dengan Q1 = {S aB, B bB, B b}. Ruas kiri semua

    produksinya terdiri dari sebuah V N maka G1 kemungkinan tipe CFG atau RG.Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau stringV T VN maka G1 adalah RG.

    2. Grammar G 2 dengan Q 2 = {S Ba, B Bb, B b}. Ruas kiri semuaproduksinya terdiri dari sebuah VN maka G 2 kemungkinan tipe CFG atau RG.Selanjutnya karena semua ruas kanannya terdiri dari sebuah V T atau stringV V maka G 2 adalah RG.VN V T maka G 2 adalah RG.

    3. Grammar G3 dengan Q 3 = {S Ba, B bB, B b}. Ruas kiri semuaproduksinya terdiri dari sebuah VN maka G 3 kemungkinan tipe CFG atau RG.Selanjutnya karena ruas kanannya mengandung string V T VN (yaitu bB) dan juga string VN V T (Ba) maka G 3 bukan RG, dengan kata lain G 3 adalah CFG.

    4. Grammar G 4 dengan Q 4 = {S aAb, B aB}. Ruas kiri semua produksinyaterdiri dari sebuah VN maka G 4 kemungkinan tipe CFG atau RG. Selanjutnyakarena ruas kanannya mengandung string yang panjangnya lebih dari 2 (yaituaAb) maka G 4 bukan RG, dengan kata lain G 4 adalah CFG.

  • 5. Grammar G5 dengan Q 5 = {S aA, S aB, aAb aBCb}. Ruas kirinyamengandung string yang panjangnya lebih dari 1 (yaitu aAb) maka G5kemungkinan tipe CSG atau UG. Selanjutnya karena semua ruas kirinya lebihpendek atau sama dengan ruas kananya maka G 5 adalah CSG.

    6. Grammar G 6 dengan Q 6 = {aS ab, SAc bc}. Ruas kirinya mengandungstring yang panjangnya lebih dari 1 maka G 6 kemungkinan tipe CSG atau UG.Selanjutnya karena terdapat ruas kirinya yang lebih panjang daripada ruaskananya (yaitu SAc) maka G 6 adalah UG. kananya (yaitu SAc) maka G 6 adalah UG.

  • Tipe 0 Mesin Automata Mesin TuringTipe 1 Mesin Automata Linier boundedTipe 2 Mesin Automata Push Down ( NFA [Non Deterministic Finite Automata] }Tipe 3 DFA, NFA ( DFA [Deterministic Finite Automata] ) Alternate |

    x | y = y | x| pilihan x atau y | pilihan x atau y

    Cleen closure ( * )x* = x | xx | xxx |..

    Positive closure ( + ) tanpa hampax + = x | xx | xxx |..

    ( x * )* = x *( x | y )* = | x|y | xx | yy | xy | yx | xxy | yyx |

    ( xy )* = xy | xyxy | xyxyxy |..

  • Tipe 3 ? BENAR ATAU SALAH jawaban dibawah inia. B bdB VN VTVTVN ( Ya )b. B bcdef VN VTVTVTVTVT ( Tidak )c. A ass VN VTVNVN ( Tidak )d. Ad dB VNVT VTVN ( Tidak )Tipe 2 ?e. B bcdefG VN VTVTVTVTVTVN ( Ya )f. A Ace VN VNVTVT ( Ya ) g. A ab VN VTVT ( Ya )h. A aSa VN VTVNVT ( Ya )

  • Tipe 1i. Ad b VTVT VT ( Tidak )j. AB cde VNVN VTVTVT ( Ya )k. Ad dB VNVTVTVN ( Ya )l. adC DE VTVTVN VNVN ( Tidak )Tipe 0Tipe 0m. AB cde VNVN VTVTVT ( Tidak )n. adC DE VTVTVN VNVN ( Ya )o. ad b VTVT VN ( Ya )

  • PERTEMUAN 2PERTEMUAN 2FINITE STATE AUTOMATA ( FSA )

  • FINITE STATE AUTOMATA ( FSA )FSA merupakan mesin automata dari bahasa Regular. FSA memiliki state yang banyaknya berhingga dan dapat berpindah pindah dari satu state ke state yang lain. Perpindahan state dinyatakan dengan transisi. FSA dapat menerima input & menghasilkan output.

    Contoh : mesin automata untuk pencek pariti ganjil

    O 1 O

    1 o

    Lingkaran menyatakan state/ kedudukan Lingkaran ganda menyatakan state akhir ( final state ) Label pada lingkaran adalah nama state tersebut Busur menyatakan transisi / perpindahan state Label pada busur adalah simbol input Lingkaran didahului oleh sebuah busur tanpa label menyatakan state awal Simbol input { 0.1}

    Even OddOddOdd

  • State awal Even State akhir Odd

    Bila mesin mendapat Input : l l 0 l, apakah diterima oleh mesin? Input akan diterima bila berakhir pada hait atau final state . Untuk state yang dilakukan

    Even l Odd l Even O Even l OddEven l Odd l Even O Even l OddBerakhir pada state Odd, maka Input ll0l diterima oleh mesin

    Bila mendapat input l0l, apakah diterima oleh mesin ?Untuk state yang dilakukan

    Even l Odd 0 Odd l EvenBerakhir pada Even, maka Input l0l ditolak oleh mesin

  • Secara formal Finite State Automata dinyatakan dengan 5 tuple atau m = { Q, , , S, F }Definisinya :Q = Himpunan state atau kedudukan = Himpunan simbol input / masukan / abjad / angka = Fungsi transisiS = State awal / kedudukan awal, S QF = Himpunan state akhir, F Q

    DFA ( Deterministic Finite Automata )DFA ( Deterministic Finite Automata )FSA

    NFA ( Non Deterministic Finite Automata ) DFA ( Deterministic Finite Automata)

    1. Mesin DFA b

    a a

    b ba

    qo q1 q2

  • Q = {q0, q1, q2} = {a, b }S = {q0}F = {q2}Fungsi Transisi Tabel Transisi ( q0, a ) = qo a b ( qo, b ) = q1 ( q1, a ) = q1 ( q1, b ) = q2 ( q2, a ) = q1 ( q2, b ) = q2

    a bq0 q0 q1q1 q1 q2q2 q1 q2

  • Jika mesin DFA tersebut mendapat input abb, apakah diterima oleh mesin? (q0, abb ) = (q0, bb) = (q1,b) = q2Berakhir pada final state maka input diterima oleh mesin abb berada di akhir L( m )

    Jika mesin mendapat Input string baba apakah merupakan L ( m )? (q0, baba ) = (q1, aba) = (q1, ba) = (q2,a) = q1q1 bukan final state, berakhir pada state q1, maka input untuk string baba ditolak / direject oleh mesin & bukan L( m )

    2. Mesin DFA a,b

    a

    b

    qo q1

  • Q = {q0, q1} = {a,b}S = {q0}F = {q1}Fungsi Transisi Tabel Transisi ( q0, a ) = q1 a b ( q0, b ) = q1 ( q1, a ) = q1 ( q1, b ) = q0 JIka mesin DFA tersebut mendapat Input abbaba, apakah diterima oleh mesin

    ( q0, abbaba ) = ( q1, bbaba ) = ( q0,baba )= ( q1, aba ) = ( q1, ba ) = ( q0, a ) = q1Berakhir pada final state maka input diterima oleh mesin abbaba berada diakhir L ( m )

    a bq0 q1 q1q1 q1 q0

  • * NFA (Non Deterministic Finite Automata)1. Mesin NFA

    a a

    b Fungsi Transisi Q = { q0, q1 } { q0, a } = q1 = { a, b } { q0, b } =

    qo q1

    a bq0 q1

    = { a, b } { q0, b } = S = { q0 } { q1, a } = q1F = { q1 } { q1, b } = q0

    Himpunan merupakan NFA Jika mendapat input aaabbbaaa

    ( q0, aaabbbaaa ) = ( q1, aabbbaaa ) = ( q1, abbbaaa )= ( q1, bbbaaa ) = ( q0, bbaaa ) = ( ) ditolak / direject oleh

    mesin & bukan L ( m )

    q1 q1 q0

  • 2. Mesin NFAb a

    a b

    a b

    a

    qo

    q2

    q1

    a

    Q = { q0, q1, q2 } = { a, b }S = { q0 }F = { q1 }

    Himpunan { q1, q2 } merupakan NFA

  • Tabel Transisi

    q0 mendapat input a dengan 2 transisi state { q1, q2 }

    NFA Jika state satu mempunyai 2 transisi dengan input yang sama

    a bq0 {q1, q2 } q0q1 q1 q0q2 q2 q1

    Jika mendapat input bababaaa, apakah diterima oleh mesin ? ( q0, bababaaa ) = ( q0, ababaaa ) = ( {q1, q2}, babaaa )* Jika diambil q1.

    ( q0, abaaa ) = ( {q1, q2}, baaa ) = ( q1, aaa )= ( q1, aa ) = (q1, a ) = q1

    dterima oleh mesin & L ( m )

  • REDUKSI JUMLAH STATE PADA REDUKSI JUMLAH STATE PADA FINITE STATE AUTOMATA

  • REDUKSI JUMLAH STATE PADA FINITE STATE AUTOMATA

    TAHAPAN REDUKSI :

    1. Hapus semua state yang tidak dapat dicapai dari state awal.2. Buatlah semua pasangan state ( p, q ) yang distinguishable, dimana P

    F dan q f. Catatlah pasangan state state tersebut. 3. Untuk semua state lakukan pencarian state yang distinguishable

    dengan aturan untuk semua ( p, q )dan a , hitunglah ( p, a ) = pa dan dengan aturan untuk semua ( p, q )dan a , hitunglah ( p, a ) = pa dan ( q, a) = qa. Jika pasangan ( pa, qa ) telah tercatat sehingga distinguishable maka pasangan ( p, q ) juga dimasukkan sebagai distinguishable.

    4. Dari hasil No. (3), distinguishable dapat pasangan state state distringuishable. Pasangan pasangan state lain yang tidak termasuk ke dalam state distinguishable tersebut, sisanya dapat ditentukan sebagai state yg indistinguishable.

    5. Beberapa state yang saling indistinguishable dapat digabungkan ke dalam satu state.

    6. Sesuaikan transisi dari dan ke state state gabungan tersebut.

  • distringuishable dapat dibedakanindistringuishable tidak dapat dibedakan

    2 buah state p dan q dari DFA dikatakan indistrnguishable Jika ( q, w ) F sedang ( p, w ) F

    ( q, w ) F sedang ( p, w ) Funtuk semua w

    State p dan q dikatakan distinguishable jika ada string w ( q, w ) F sedang ( p, w ) F ( q, w ) F sedang ( p, w ) Fcontoh :

    o 1

    o o 0.11 o 1

    o 1

    Lakukan reduksi jumlah state terhadap mesin tersebut

    q3

    q2

    q1

    qo

    q4

  • Tahap tahap yang dilakukan untuk reduksi jumlah state adalah1. Tidak ada state yang tak dicapai dari state awal2. Catat state state yang distinguishable

    sbb : pasangan ( q0, q4 ), ( q1, q4 )( q2, q4 ) dan ( q3, q4 )

    dicatat dari q0, q1, q2, q3 bukan elemen final state , sedangkan q4 Fdicatat dari q0, q1, q2, q3 bukan elemen final state , sedangkan q4 F3. Tentukan pasangan state lain :

    pasangan ( q0, q1 ) : ( q0, 1) = q3 dan ( q1, 1) = q4 sedangkan ( q3, q4 ) distinguishable, maka ( q0, q1 ) juga distinguishable

    pasangan ( q0, q2 ) : ( q0, 1) = q3 dan ( q2, 1) = q4 sedangkan ( q3, q4 ) distinguishable, maka ( q0, q2 ) juga distinguishable

    pasangan ( q0, q3 ) : ( q0, 1) = q3 dan ( q3, 1) = q4 sedangkan( q3, q4 ) distinguishable, maka ( q0, q3 ) juga distinguishable

  • 4. Periksa semua pasangan state :State state distinguishable : ( q0, q4 ), ( q1, q4 ), ( q2, q4 ), ( q3, q4 ),

    ( q0, q1 ), ( q0, q2 ), ( q0, q3 )State state indistinguishable : ( q1, q2 ), ( q1, q3 ), ( q2, q3 )

    5. q1 indistinguishable q2, q2 indistinguishable dengan q3, maka q1, q2, q3 saling indistinguishable dan dapat dijelaskan dalam satu state

    6. Gambar setelah reduksi jumlah state 0, 1 0 1 0,1

    qo q123 q4

  • Latihan Soal1. Lakukan Reduksi jumlah state terhadap mesin berikut :

    0,1

    o 1

    1 0 01 1

    q2 q4 q5

    qo q1 q3

    0 0,1

    Tahap tahap yang dilakukan untuk reduksi jumlah state adalah sbb :1. Ada state yang tak dicapai dari state awal yaitu q5(dihapus)2. Distinguishable :..( q0, q3 ), ( q2, q4 ), ( q1, q4 )

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

  • 3. State state distinguishable yang lain :( q0, q1 ) ( q0, 1 ) = q3

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

    ( q2, 1 ) = q4 ( q3, q4 )4. Distinguishable : ( q0, q3 ), ( q2, q4 ), ( q1, q4 ), ( q2, q3 )

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

    5. q1 dan q2 saling indistinguishable q2 dan q3 saling indistinguishable

    6. 0 0.10 1 1 1 qo q123 q4

  • 2. 0

    0 0

    1 1

    1

    0,10,1

    1 0

    qo

    q1

    q2

    q5

    q3

    q6

    q4

    0,1

    Tahap tahap yang dilakukan untuk reduksi jumlah state adalah sbb :1. Tidak ada state yang tak dicapai dari state awal 2. Distinguishable:( q0, q1 ), ( q0, q3 ), ( q2, q4 ), ( q2, q6 ), ( q5, q4 ), ( q5, q6 )

    q0, q4, q6 Fq1, q2, q3, q5 F

    q6

  • 3. State state distinguishable yang lain :( q0, q2 ) ( q0, 1 ) = q2 ( q2, q4 )

    ( q2, 1 ) = q4( q0, q4 ) ( q0, 1 ) = q2 ( q2, q4 )

    ( q4, 1 ) = q4( q0, q5 ) ( q0, 1 ) = q2 ( q2, q4 )

    ( q5, 1 ) = q4( q0, q6 ) ( q0, 1 ) = q2 ( q2, q6 )

    ( q6, 1 ) = q6 ( q6, 1 ) = q6( q1, q4 ) ( q1, 1 ) = q5 ( q5, q4 )

    ( q4, 1 ) = q4( q1, q6 ) ( q1, 1 ) = q5 ( q5, q6 )

    ( q6, 1 ) = q6( q3, q4 ) ( q3, 1 ) = q5 ( q5, q4 )

    ( q4, 1 ) = q4( q3, q6 ) ( q3, 1 ) = q5 ( q5, q6 )

    ( q6, 1 ) = q6

  • 4. Distinguishable : ( q0, q1 ), ( q0, q2 ), ( q0, q3 ), ( q0, q4 ),( q0, q5 ), ( q0, q6 ), ( q1, q4 ), ( q1, q6 ),( q2, q4 ), ( q2, q6 ), ( q3, q4 ), ( q3, q6 ),( q5, q4 ), ( q5, q6 )

    Indistinguishable : ( q1, q2 ), ( q1, q3 ), ( q1, q5 ), ( q2, q3 ),( q2, q5 ), ( q3, q5 ), ( q4, q6 )

    5. q1, q2, q3, q5 saling indistinguishable q4, q6 saling indistinguishable

    6. 0.1 0.1 0.1 0.1qo

    q46q1235

  • Tugas

    1. Gambarkan diagram transisi dari Deterministic Finite Automata berikut

    Q = { q0, q1, q2 } = { a,b }S = q0F = {q0 }Fungsi transisi dari DFA tersebutFungsi transisi dari DFA tersebut

    a bq0 q1 q2

    q1 q2 q0

    q2 q2 q2

  • 2. Bila L(M) adalah bahasa yang diterima oleh Deterministic Finite Automata pada gambar di bawah, tentukan string berikut termasuk dalam L(M )

    qo q1q1

    b

    a, ba

    a. aaaa. aaab. bbbbc. abba

  • PERTEMUAN 3PERTEMUAN 3EKIVALENSI NFA KE DFA

  • Tahapan Pengubahan Non-Deterministic Finite Automata ke Deterministic Finite Automata

    Dari sebuah mesin Non-Deterministic Finite Automata dapat dibuat mesin DFA yang ekivalen. Ekivalen artinya mampu menerima bahasa yang sama .

    * Suatu DFA dapat dipandang sebagai kasus khusus (subset) dari NFA. Jelas bahwa kelas bahasa yang diterima oleh DFA juga akan diterima oleh

    DFADFA Namun ternyata DFA juga dapat mensimulasikan NFA; yaitu untuk setiap NFA

    kita dapat membuat DFA yang ekivalen Dapat dibuktikan bahwa DFA dan NFA adalah ekivalen, sehingga dapat disebut

    FA sajaSimulasi NFA oleh DFA

    Cara simulasi NFA oleh DFA adalah dengan membuat state DFAberkorespondensi dengan set state di NFA

    DFA yang dibentuk mencatat semua state yang mungkin pada NFA setelah membaca input tertentu

  • EKIVALENSI NFA ke DFA Contoh :

    Mesin NFA

    0 1

    0.1

    1

    Konfigurasi mesin

    q0 q1

    Telusuri setiap state yang ada dimulai dari { q0 } : State { q0 } bila memperoleh input o menjadi state { q0, q1 }Konfigurasi mesin

    Tabel Transisi Q = ( { q0 }, { q1} ) = { 0, 1 }S = q0F = q1

    0 1q0 { q0, q1 } q1q1 { q0, q1 }

    q1 } State { q0 } bila memperoleh input 1 menjadi state { q1 }

  • 10

    State { q1 }- State { q1 } bila memperoleh input o menjadi state - State { q1 } bila memperoleh input 1 menjadi state { q0, q1 }

    State { q0, q1 } bila memperoleh input o menjadi state { q0, q1 }

    {qo, q1}

    { q1 }

    qo

    State { q0, q1 } bila memperoleh input o menjadi state { q0, q1 }diperoleh dari ( q0, 0 ) = { q0, q1 } ({ q0, q1}, 0) = { q0, q1 }

    ( q1, 0 ) = State { q0, q1 } bila memperoleh input 1 menjadi { q0, q1 }

    diporoleh dari ( q0, 1 ) = { q1 } digabung ( q1, 1 ) = { q0, q1 } ({ q0, q1 }, q1) = { q0, q1}

  • Hasil setelah penelusuran { q1 }, { q0 }, { q0, q1 }

    1 0

    1 0,1 ( , 0 ) = 0 ( , 1 ) =

    F = ({ q1 }, { q0, q1 })

    qo

    q1

    { q0, q1}

    0.1

    Hasilnya adalah mesin DFATabel Transisi Konfigurasi Mesin

    Q = ( qo, { q0, q1 }, q1, ) = { 1,0 }S = q0F = ( q1, { q0, q1 } )

    0 1q0 { q0, q1 } q1q1 { q0, q1 }

    { q0, q1 } { q0, q1 } { q0, q1 }

  • Tugas1. Buatlah DFA yang ekuivalen dengan NFA berikut

    Q = { p, q, r, s} = { 0, 1}S = pF = {s}Fungsi transisinya dinyatakan dalam tabel transisi berikut

    0 1p p, q p

    q r r

    r s -

    s s s

  • 2. Buatlah DFA yang ekuivalen dengan NFA berikutQ = { p, q, r, s} = { 0, 1}S = pF = {q, s}Fungsi transisinya dinyatakan dalam tabel transisi berikut

    0 1p p, s pp p, s p

    q r q, r

    r s p

    s - p

  • PERTEMUAN 4Ekivalensi NFA - MOVE ke NFA TANPA - MOVE

  • NFA MOVE

    NFA MOVE adalah mesin NFA yang diperbolehkan mengubah state tanpa membaca input. Disebut dengan transisi karena tidak bergantung pada suatu input ketika melakukan transisi.Contoh NFA - MOVE

    - q0 tanpa membaca input dapat berpindah ke q1- q1 tanpa membaca input dapat berpindah ke q2- q4 tanpa membaca input dapat berpindah ke q1

    - closure adalah himpunan state state yang dapat dicapai dari suatu state tanpa membaca input

  • - closure ( q0 ) = { q0, q1, q2 } - closure ( q1 ) = { q1, q2 } - closure ( q2 ) = { q2 } - closure ( q3 ) = { q3 } - closure { q4 ) = { q1, q2, q4 }

    Pada suatu state yang tidak memiliki transisi maka - closureny adalahstate itu sendiri.

  • EKIVALENSI NFA - MOVE KE NFA tanpa - MOVE

    Tahapan tahapan / langkah ekivalensi NFA dengan - move ke NFA tanpa - Move :1. Buat tabel Transisi NFA - Move 2. Tentukan - Closure untuk setiap state2. Tentukan - Closure untuk setiap state3. Carilah setiap fungsi hasil perubahan dari NFA - Move ke NFA tanpa

    - Move dengan rumus : ( state, input ) = - closure ( ( - closure (state), input ))

    4. Berdasarkan hasil no. 3 buat tabel transisi & diagram transisi NFA tanpa - Move yang ekivalensi dengan NFA - Move

  • 5. Tentukan state akhir untuk NFA tanpa - Move tersebut, yaitu state state akhir semua & tambah dengan state state yang - closurenya menuju ke salah satu dari state akhir semula.

    Contoh mesin NFA - Move Buat Ekivalensi NFA

    - Move ke NFA tanpa - Move - Move ke NFA tanpa - Move

  • a bq0 q1 q2 q3q2

    1. Tabel Transisi NFA - Move

    q2 q3

    2. - closure ( q0 ) = { q0, q1 }

    - closure ( q1 ) = { q1 }

    - closure ( q2 ) = { q2 }

    - closure ( q3 ) = { q3 }

  • ( state, input ) = - closure ( ( - closure (state), input )) ( q0, a ) = - closure ( ( - closure (q0), a ))

    = - closure ( ( { q0, q1 }, a ))= - closure ( q2 )= { q2 }

    ( q0, b ) = - closure ( ( - closure (q0), b ))= - closure ( ( { q0, q1 }, b ))= - closure ( q3 )

    3.

    = - closure ( q3 )= { q3 }

    ( q1, a ) = - closure ( ( - closure (q1), a ))= - closure ( ( { q1 }, a ))= - closure ( q2 )= { q2 }

    ( q1, b ) = - closure ( ( - closure (q1), b ))= - closure ( ( { q1 }, b ))= - closure ( q3 )= { q3 }

  • ( q2, a ) = - closure ( ( - closure (q2), a ))= - closure ( ( { q2 }, a ))= - closure ( )=

    ( q2, b ) = - closure ( ( - closure (q2), b ))= - closure ( ( { q2 }, b ))= - closure ( )= =

    ( q3, a ) = - closure ( ( - closure (q3), a ))= - closure ( ( { q3, a } )= - closure ( )=

    ( q3, b ) = - closure ( ( - closure (q3), b ))= - closure ( ( { q3 }, b ))= - closure ( )=

  • NFA tanpa - Move

    5.

    q0 q2

    q1

    a

    ab

    a bq0 q2 q3q1 q2 q3q2

    4. Tabel Transisi

    q3

    bq3

  • Tugas

    1. Buatlah NFA tanpa -move yang ekuivalen dengan NFA -move padagambar di bawah ini , ( = {0,1,2})

    0 12

    q0 q1 q2

  • 2. Buatlah NFA tanpa -move yang ekuivalen dengan NFA -move pada gambar di bawah ini , ( = {0,1,2})

    0

    q0q1

    1

  • Ekspresi Reguler

    Pertemuan 5

  • 5.1. Penerapan Ekspresi Reguler (ER)

    Sebuah bahasa dinyatakan reguler jika terdapat Finite State

    Automata (FSA) yang dapat menerimanya.

    Bahasa yang diterima oleh suatau FSA dapat dinyatakan

    secara sederhana dengan Ekspresi Reguler ER.

    ER memberikan suatau pola (pattern) atau template untuk

    untai (string) dari suatu bahasa.untai (string) dari suatu bahasa.

    Banyak masalah pada perancangan perangkat lunak yang

    dapat disederhanakan dengan melakukan pengubahan

    notasi ER ke dalam implementasi komputer dari FSA yang

    bersangkutan.

  • 5.2. Notasi ER

    Tabel 5.1. Notasi ERNama Symbol Keterangan

    asterik * Bisa tak muncul, bisa juga munculberhingga kali (0 sampai n)

    plus + Gabungan plus atau union

    +

    Atau Gabungan

    plus + Tanda plus pada posisi superscript, berarti minimal muncul satu kali (1-n)

    titik . Berarti konkatenasi. Biasanya titik bisadihilangkan. Misalnya a.b = ab

  • Table 5.2. Contoh EREkspresi ER String yang dibangkitkan

    ab*cc abcc, abbcc, abbbcc, acc010* 01, 010, 0100, 01000a*d d, ad, aad, aaada+d ad, aad, aaada+d ad, aad, aaad

    a*b* a, b, aa, bb, aaa, bbb,ab a, b

    (ab)* a, b, aa, ab, bba, aaa, bbb,01*+0 00, 010, 0110, 01110, 011110

  • 5.3. Hubungan ER dan FSA

    Untuk setiap ER, ada satu Non-Deterministik Finite

    Automata dengan transisi (NFA -move)

    Sementara untuk Deterministik Finite Automata DFA ada

    satu ER dari bahasa yang diterima

    Sederhananya kita dapat membuat satu NFA -move dari Sederhananya kita dapat membuat satu NFA -move dari suatu ER

  • q0 q1 q2 q3a b

    Gambar 5.1. NFA -move untuk ER: ab

    q0 q1 q2

    a

    b

    Gambar 5.2. NFA -move untuk ER: a*b

  • q0 q1 q2 q3a

    b

    q4 q5b

    Gambar 5.3. NFA -move untuk ER: ab

  • Tentukan ER untuk setiap mesin FSA pada gambar 5.4 dan

    gambar 5.5.

    0 1

    q0 q1 q21

    Gambar 5.4. Mesin FSA

    0

    1

  • q0 q1 q3ba

    a

    a

    Gambar 5.5. Mesin FSA

    q4q2

    ab

    b

  • Hubungan antara NFA, -move, DFA, dan ER

    NFA

    DFA NFA-move

    ER

  • Latihan

    Studi Kasus:

    1. kita ingin membuat mesin DFA yang menerima bahasa

    berupa semua string yang berakhiran dengan 00,

    diketahui =(0,1).Tentukan: ER, Mesin NFA, dan Mesin DFATentukan: ER, Mesin NFA, dan Mesin DFA

    2. kita ingin membuat mesin DFA yang menerima bahasa

    berupa semua string yang memuat minimal dua nol

    berurutan 00, diketahui =(0,1).Tentukan: ER, Mesin NFA, dan Mesin DFA

  • EKSPRESI REGULAREKSPRESI REGULAR

  • EKSPRESI REGULARNotasi Ekspresi Regular :* Yaitu karakter asterik ; berarti bisa tidak muncul, bisa juga muncul berhingga

    kali.+ ( pada posisi superscript/ diatas ) berarti minimal muncul satu kali + atau berarti union berarti gabungan Contoh Ekspresi Regular1. ER : ab*cc

    Contoh string yang dibangkitkan/ dibentuk : abcc, abbcc, abbbcc, abbbbcc, acc

    2. ER : 010*Contoh string yang dibentuk : 01, 010, 0100, 01000, 010000

    3. ER : a*dString yang dibentuk : d, ad, aad, aaad

  • 4. ER : a+d Contoh string yang dibentuk : ad, aad, aaad

    5. ER : a*b* ( berarti atau )string yang dibentuk : a, b, aa, bb, aaa, bbb, aaaa, bbbb

    6. ER : ( a b ) berarti atau string yang dibentuk : a, b string yang dibentuk : a, b

    7. ER : ( a b )*string yang dibentuk : a, b, ab, ba, abb, bba, aaaa, bbbbnotasi kadang ditulis +

    8. ER : 01* + 0string yang dibentuk : 0, 01, 011, 0111, 01111

  • Hubungan Ekspresi Regular & FSA

    1. a b ER ; ab

    a b

    2.

    qo q3q1 q2

    qo q1 q2

    ER ; a*b3. a

    ER : a bb

    4. 00 1

    ER ; 010*

    qo

    q2

    q1

    qo q1 q2

  • 5. 0 0,1ER ; 0 ( 1 0 )

    0,1

    6. 0ER ; 0 ( 1 0 ) *

    7. 0 1 0

    qo q1 q2

    qo q1

    7. 0 1 0

    ER ; 01*08. 0 0

    1

    ER ; 0*10*9. a

    ER ; a*

    qo q1 q2

    qo q1

    q0

  • 10. a

    bER ; a ( ba )*

    11. a

    qo q1

    bER ; ( ab ) *

    12. 1 0 1 1

    0

    ER ; 01*10*11*

    q1q0

    qo q1 q2

  • Aturan Produksi Untuk Finite

    State Automata (FSA)State Automata (FSA)

    Pertemuan 6

  • 6. 1. Aturan Produksi Bahasa Reguler

    Sebuah otomata berhingga menspesifikasikan sebuah bahasa sebagai himpunan semua untai yang menggerakkannya dari state awal ke salah satu state yang diterimanya (himpunan state akhir)

    Misalkan untuk sebuah ER: a(a*b*)b. Selain dengan ER, kita dapat mengkonstruksi aturan-aturan produksi untuk suatu tata bahasa reguler.tata bahasa reguler.

    Kita ingat juga batasan aturan produksi untuk bahasa reguler: (dibaca: menghasilkan )dimana adalah sebuah simbol variabel, dan maksimal memiliki sebuah simbol variabel yang terletak di paling kanan (bila ada)

    dan dapat berupa simbol terminal atau simbol non-terminal (variabel)

  • Simbol variabel (non-terminal adalah simbol yang masih bisa diturunkan, sedangkan simbol terminal sudah tidak bisa diturunkan lagi.

    Simbol terminal biasanya dinyatakan dengan huruf kecil, misal: a, b, c.

    Simbol non-terminal (variabel) biasanya dinyatakan dengan huruf besar, misal: A, B, C.huruf besar, misal: A, B, C.

    Suatu tata bahasa (grammer) didefinisikan dengan empat tupel (G={V, T, P, S}), dimana:

    v = himpunan simbol variabel

    T = himpunan simbol terminal

    P = kumpulan aturan produksi

    S = simbol awal

  • q0 q1 q3

    a

    q2

    ab

    Gambar 6.1. Mesin FSA

    q3

    b

    b

  • Dari gambar 6.1., kumpulan aturan produksi yang kita peroleh

    dapat dituliskan sbb:

    S aE

    E A | B

    A aA | B

    B bB | bB bB | b

    Secara formal, tata bahasa (grammer) yang diperoleh dari

    otomata pada gambar 6.1. adalah:

    V = {S, E, A, B}

    T = {a, b}

    P = {S Ae, E A | B, A aA | B, B bB | b}

    S = S

  • 6.2. Mengkonstruksi Aturan Produksi

    dari Suatu FSA

    Dalam mengkonstruksi aturan produksi tata bahasa reguler

    dari suatu FSA, yang menjadi perhatian kita adalah state-state

    yang dapat menuju ke state akhir.

    Mesin FSA pada gambar 6.1, memiliki simbol input a dan b.

    simbol tersebut akan menjadi terminal pada aturan produksi

    yang akan kita bentuk.yang akan kita bentuk.

    Misalkan kita tentukan simbol awal adalah S, state awal q0,

    dari q0 mendapat input a menjadi q1.Aturan produksi yang

    dapat ditulis adalah: SaE

    E dapat kita identikkan denga q1, lebih tepatnya adalah bagian

    yang belum terbangkitkan mulai dari q1.

  • Kita dapat menambahkan simbol variabel baru setiap kali kita

    perlukan.

    Dari q1mendapat tramsisi-e (tanpa menerima input) ke q2 dan

    q3, kita tuliskan:

    E A

    E BE B

    Jika kita identikkan q2 sebagai A, dan q3 sebagai B; dari q2mendapat input a tetap ke q2; dari q3 mendapat input b tetap

    ke q3; bisa kita tuliskan:

    A aA

    B bB

  • Selanjutnya kita lihat: dari q2 memberikan input b ke q4; dari

    q3 memberikan input b ke q4; sementara q4 merupakan state

    akhir, maka bisa dituliskan:

    A b

    B b

    Kumpulan aturan prosuksi yang kita peroleh adalah sbb: Kumpulan aturan prosuksi yang kita peroleh adalah sbb:

    S aE

    E ABA aABB bBb

  • Secara formal, tata bahasa yang diperoleh dari otomata pada

    gambar 6.1 adalah sbb:

    V = {S, E, A, B}

    T = {a, b}

    P = {SaE; E AB; A aAB; B bBb}P = {SaE; E AB; A aAB; B bBb}S = S

  • 6.3. FSA Untuk Suatu Tata Bahasa Reguler

    Bila sebelumnya dari suatu diagram transisi FSA kita dapat

    membuat aturan-aturan produksinya, sebaliknya kita juga

    dapat mengkonstruksi diagram transisi FSA untuk suatu tata

    bahasa teguler yang diketahui aturan-aturan produksinya.

    Misalnya terdapat tata bahasa reguler dengan aturan produksi Misalnya terdapat tata bahasa reguler dengan aturan produksi

    sbb:

    S aB bAA abaS

    B babS

    FSA dari aturan produksi diatas, seperti yang ditunjukkan

    pada gambar 6.2. berikut

  • q4

    q1q0 q2a

    q3

    b

    b

    b

    a

    a

    Gambar 6.2. FSA dari suatu regular grammer

    q4

    q5 q6

    a

    a

    b

  • ATURAN PRODUKSI ATURAN PRODUKSI

  • ATURAN PRODUKSI menurun menghasilkan atau bisa berupa simbol variabel terminal atau non terminal.Gramer didefinisikan dengan 4 tipe ( G = { VN, VT, P, S } )VN : himpunan simbol variabel non terminalVN : himpunan simbol variabel non terminalVT : himpunan simbol variabel terminal P : himpunan aturan produksi S : simbol awal Contoh mesin FSA a

    ba

    b b

    qo q1

    q3

    q2

    q4

  • Aturan produksi dari mesin FSA S aE

    S adalah q0 q1 didefinisikan dengan EE adalah q1 q1 identik dengan E

    q0 identik dengan S dari q1 tanpa mendapat input menuju q2 dan q3

    E A A identik q2E A A identik q2E B B identik q3

    dari q2 mendapat input a tetap ke q2dari q3 mendapat input b tetap ke q3

    A aA

    B bB dari q2 mendapat input b ke q4

    dari q3 mendapat input b ke q4

  • A bB b

    Karena q4 adalah final state yang tidak memiliki busur keluar atau keluaran maka q4 tidak didefinisikan atau diabaikanKumpulan Aturan Produksi

    S aEE A|BE A|BA aA | bB bB | b

    | berarti atau VN = { S, E, A, B }S = SVT = { a, b }P = { S aE, E A | B, A aA | b, B bB | b }

  • Finite State Automata (FSA)

    Dengan OutputDengan Output

    Pertemuan 9

  • 7.1. Mesin Moore

    Suatu keterbatasan dari FSA yang sudah dipelajari sebelumnyaadalah: keputusannya terbatas pada diterima atau ditolak.Otomata tsb biasa disebut dengan accepter (dalam hal iniFSA).

    Kita dapat mengkonstruksi sebuah FSA yang memilikikeputusan beberapa keluaran (output), dalam hal ini otomatakeputusan beberapa keluaran (output), dalam hal ini otomatatersebut dikenal sebagai transducer.

    Pada mesin Moore, output akan berasosiasi dengan state.

  • Mesin Moore didefinisikan dalam 6 tupel, yaitu:

    M=(Q, , , S, , )Dimana:

    Q = himpunan stateQ = himpunan state

    = himpunan simbol input = fungsi transisiS = state awal, dimana S Q

    = himpunan output = fungsi output untuk setiap output

  • Contoh Mesin Moore

    Misalnya kita ingin memperoleh sisa pembagian (modulus) suatu

    bilangan dengan 3, dimana input dinyatakan dengan biner.

    Konfigurasi mesinnya adalah sbb:

    Q = {q0, q1, q2}

    = {0, 1} = {0, 1}S = q0

    = {0, 1, 2} untuk output pada kasus mod dengan3, kemungkinan sisa pembagiannya adalah 1,

    2 atau 3

    = q0=0, q1=1, q2=2

  • q0 q1 q2

    0

    1

    00

    0

    1

    11 2

    Gambar 7.1. Mesin Moore untuk MOD 3

    0 1 2

    Coba buktikan untuk: 5 MOD 3. 10 MOD 3(Input nya harus dirubah dulu kedalam biner)

  • 7.2. Mesin Mealy

    Bila output pada mesin Moore berasosiasi dengan state, maka

    output pada mesin Mealy akan berasosiasi dengan transisi.

    Mesin Mealy sendiri didefinisikandalam 6 tupel, yaitu:

    M=(Q, , , S, , )Dimana:Dimana:

    Q = himpunan state

    = himpunan simbol input = fungsi transisiS = state awal, dimana S Q

    = himpunan output = fungsi output untuk setiap output

  • Contoh Mesin Mealy

    Mesin ini akan mengeluarkan output menerima Y atau menolak

    T suatu masukan biner.

    Dengan ketentuan: mesin akan mengeluarkan output Y bila

    menerima untai yang memiliki dua simbol berurutan yang sama,

    atau secara formal dalam ER: (0+1)*(00+11)

    Konfigurasi mesinnya adalah sbb:Konfigurasi mesinnya adalah sbb:

    Q = {q0, q1, q2}

    = {0, 1},0S = q0

    = {Y, T}(q0,0)=T; (q0,1)=T; (q1,0)=Y; (q1,1)=T(q2,0)=T; (q2,1)=Y

  • q0

    q1

    q

    0/T

    0/T

    0/Y

    1/T

    Gambar 7.2. Contoh Mesin Mealy

    q21/T

    1/Y

    Coba buktikan untuk input yang diterima: 01011; 01100; 1010100; 10110100; 00; 11; 100; 011; 111; 0101; 0010

  • 7.3. Ekuivalensi Mesin Moore dan

    Mesin Mealy

    Dari suatu mesi Moore, dapat dibuat mesin Mealy yang

    ekuivalen, begitu juga sebaliknya.

    State pada mesin Moore dibentuk dari kombinasi state pada State pada mesin Moore dibentuk dari kombinasi state pada

    Mealy dan banyaknya output.

    Untuk mesin Mealy pada gambar 7.2, jumlah state=3; dan jumlah

    output=2; maka jumlah state pada mesin Moore yang ekuivalen

    adalah = 6.

  • Konfigurasi mesIn Moore yang dibentuk adalah:

    Q = {q0Y, q0T, q1Y, q1T, q 2 Y, q 2 T}

    = {0, 1}S = q0S = q0

    = {0, 1, 2}(q0Y)=Y; (q0T)=T; (q1Y)=Y; (q1T)=T; (q2Y)=Y; (q2T)=T

  • q0T

    T

    q0T q0TTT

    0 0

    0

    0

    0

    11

    11

    Gambar 7.3. Mesin Moore yang ekuivalen dengan Mesin Mealy

    pada gambar 7.2.

    Y

    q0T q0T q0T

    Y Y

    001

    1

    1

    1

  • Untuk memperoleh ekuivalensi mesin Mealy dari suatu mesin

    Moore, caranya lebih mudah, cukup dengan menambahkan

    label output ke setiap transisi, dan menghapus label output

    pada setiap state

    Konfigurasi mesIn Moore yang dibentuk adalah:

    Q = {q0, q1, q 2}Q = {q0, q1, q 2}

    = {0, 1}S = q0

    = {0, 1, 2}(q0,0)=0; (q0,1)=1(q1,0)=2; (q1,1)=0(q2,0)=1; (q2,1)=3

  • q q

    0/0

    1/1 0/2

    1/2

    q0 q1 q21/1

    0/1

    0/2

    1/0

    Gambar 7.4. Mesin Mealy yang ekuivalen dengan Mesin Moore pada gambar 7.1.

  • FSA(FINITE STATE AUTOMATA)

    FSA(FINITE STATE AUTOMATA)(FINITE STATE AUTOMATA)

    DENGAN OUTPUT

    (FINITE STATE AUTOMATA)

    DENGAN OUTPUT

  • Mesin Moore dengan 6 TupleM = (Q, , , S, , )

    Q = Himpunan State = Himpunan simbol input = Fungsi transisiS = State awal, S Q = Himpunan output = Fungsi output untuk setiap stateContoh : konfigurasi mesinQ = {q0, q1, q2} = {0, 1) = {0, 1, 2}S = (q0)(q0) = 0(q1) = 1(q2) = 2

  • q0

    5 mod 3 = ?mod hasil dari sisa pembagian bilangan biner 5 = 101

    q1 q2

    0 1

    0

    1

    1

    0

    0

    21

    Mesin Moore untuk modulus 3

    bilangan biner 5 = 101urutkan state :

    (q0, 101) = (q1, 01) = (q2, 1) = q2Berakhir pada q2

    (q2)= 2 maka 5 mod 3 = 2

  • 10 mod

    Bilangan biner 10 = 1010Urutkan state :

    (q0, 1010) = (q1, 010) = ( q2, 10) = ( q2, 0) = q1Beakhir pada q1 (q1) = 1 maka 10 mod 3 = 1 (q1) = 1 maka 10 mod 3 = 1

    MESIN MEALYDengan 6 tuple

    M = (Q, , , S, , )

  • Contoh Mesin Mealy :Konfigurasi mesinQ = {q0, q1, q2} = (q0, 0) = T = { 0, 1} = (q0, 1) = T = { Y, T} = (q1, 0) = Y = { Y, T} = (q1, 0) = YS = {q0} = (q1, 1) = T

    = (q2, 0) = T = (q2, 1) = Y

  • q0

    q1

    0 / T

    0/Y

    0/T1/T

    1/T

    Jika MEsin Mealy menerima input110101, apakah diterima olehmesin tersebut ?

    (q0, 110101) = (q2, 10101)T

    = (q , 0101) = (q , 101)

    q2

    1/T

    1/Y

    = (q2, 0101) = (q1, 101)Y T

    = (q2, 01) = (q1, 1) = q2Y T T

    Tidak diterima input 110101, ditolakoleh Mesin Mealy

  • Contoh soal : Mesin Moore

    q0 q3

    q1 q2

    q4

    0 0

    0

    0

    0

    03

    1

    4

    1

    1

    1

    2

    1

    0- Buat konfigurasi mesin

    tersebut - Jika mesin menerima input 1101011, output ?

    q5

    01

    15

    (q0, 1101011) = (q1, 101011) = (q3, 01011)1 3

    = (q3, 1011) = (q4, 011) = (q2, 11) = (q5, 1) = q53 4 2 5 5

  • Input = 1101011 ( q0 ) = 0Output = 1334255 ( q1 ) = 1Q = {q0, q1, q2, q3, q4, q4} ( q2 ) = 2 = {0, 1} ( q ) = 3 = {0, 1} ( q3 ) = 3 = { 0, 1, 2, 3, 4, 5 } ( q4 ) = 4S = q0 ( q4 ) = 4A

  • LATIHAN :

    1. JIka Mesin Moore pada contoh soal didapat 1010101101011 , Output?

    2. Pada Mesin Moore Modulus 3 40 mod 3 ? 40 mod 3 ? 55 mod 3 ? 73 mod 3 ?

    3. Pada mesin Mealy jika input 0110011011 apakah diterima ?

  • 1. (q0, 1010101101011) = (q1, 010101101011) = (q2, 10101101011)1 2

    = (q5, 0101101011) = (q1, 101101011) = (q3, 01101011)5 1 3

    = (q3, 1101011) = (q4, 101011) = (q4, 01011) = (q2, 101)3 4 4 23 4 4 2

    = (q5, 011) = (q1, 11) = (q3, 1) = q45 1 3 4

    Input = 1010101101011Output = 1251334425134

  • 2. 40 mod 3bilangan biner 40 = 101000urutkan state :

    (q0, 101000) = (q1, 01000) = (q2, 1000) = (q2, 000) = (q1, 00) = (q1, 0) = q1

    Berakhir pada (q1)= 1 40 mod 3 = 1

  • 55 mod 3bilangan biner 55 = 110111urutkan state :

    (q0, 110111) = (q1, 10111) = (q0, 0111)= (q0, 111) = (q1, 11) = (q1, 1) = q1Berakhir pada Q1 (q1) = 155 mod 3 = 155 mod 3 = 1

    73 mod 3bilangan biner 73 = 1001001

    (q0, 1001001) = (q1, 001001) = (q2, 01001)= (q1, 1001) = (q0, 001) = (q0, 01)= (q0, 1) = q1berakhir pada q1 (q1) = 1 73 mod 3 = 1

  • 3. Jika input 011001101011 , apakah diterima ? (q0, 011001101011) = (q1, 11001101011) = (q2, 1001101011)

    T T

    = (q2, 001101011) = (q1, 01101011) = (q1, 1011)Y T TY T T

    = (q2, 101011) = (q2, 01011) = (q1, 1011)T Y T

    = (q2, 011) = (q1, 11) = (q2, 1) = q2T T T T

  • Pohon penurunan

    Pertemuan 10

  • 8.1. Tata Bahasa Bebas Konteks

    Bila pada tata bahasa reguler terdapat pembatasan pada ruas

    kanan atau hasil produksinya, maka pada tata bahasa konteks

    (context free grammer), selanjutnya kita sebut CFG, tidak

    terdapat pembatasan hasil produksinya.

    Seperti halnya pada tata bahasa reguler, sebuah CFG adalah Seperti halnya pada tata bahasa reguler, sebuah CFG adalah

    suaatu cara yang menunjukkan bagaimana menghasilkan

    untai-untai dalam sebuah bahasa.

  • Pada saat menurunkan suatu string, simbol-simbol variabel akan

    mewakili bagian-bagian yang belm terturunkan dari string

    tersbut.

    Pada tata bahasa reguler :

    bagian yang belum terturunkan tsb selalu terjadi

    pada suatu ujung.

    Pada tata bahasa bebas konteks:

    bisa terdapat lebih banyak bagian yang belum

    terturunkan dan bisa terjadi dimana saja.

    Ketika penurunan itu telah lengkap, semua bagian yang

    belum terturunkan telah diganti oleh string- string (yang

    mungkin sja kosong) dari himpunan simbol terminal.

  • 8.2. Parsing

    Sebuah pohon (tree) adalah suatu graph terhubung tidak

    sirkuler, yang memiliki satu simpul (node) / vertex yang

    disebut akar (root) dan dari Node memiliki lintasan ke setiap

    simpul.

    Pohon penurunan (derivation tree/parse tree) berguna untuk Pohon penurunan (derivation tree/parse tree) berguna untuk

    menggambarkan bagaimana memperoleh suatu string (untai)

    dengan cara menurunkan simbol-simbol variabel (VN)

    menjadi simbol-simbol terminal (VT). Setiap simbol variabel

    akan diturunkan menjadi terminal, sampai tidak ada yag

    belum tergantikan

  • Misalnya, terdapat tata bahasa bebas konteks dengan aturan

    produksi sbb:

    S AB

    AaAaBbBbakan kita gambarkan pohon penurunan untuk memperoleh akan kita gambarkan pohon penurunan untuk memperoleh

    untai: aabbbS

    A B

    a A b B

    ab

    b

    B

  • Proses penurunan atau parsing bisa dilakukan dengan cara sbb:

    Penurunan terkiri (leftmost derivation):

    Proses Penurunan dimulai dari simbol S, dgn simbol variabel

    terkiri yang diperluas terlebih dahulu.

    Penurunan terkanan (rightmost derivation): Penurunan terkanan (rightmost derivation):

    Proses penurunan dimulai simbol S, dgn simbol variabel

    terkanan yang diperluas terlebih dahulu.

  • Misal, terdapat tata bahasa bebas konteks:

    S aAS | a

    ASbAbaUntuk memperoleh untai aabbaa dari tata bahasa bebas

    konteks diatas adalah:konteks diatas adalah:

    Dengan penurunan terkiri:

    SaASaSbASaabASaabbaSaabbaa

    Dengan penurunan terkanan:

    SaASaAaaSbAaaabAaaabbaa

  • SAS

    S b A a

    a

    Gambar 8.2. Pohon Penurunan untuk untai aabbaa

    S b A a

    ba a

  • 8.3. Ambiguitas

    Ambiguitas/kedwiartian terjadi bila terdapat lebih dari satu

    pohon penurunan yang berbeda untuk memperoleh suatu untai.

    Misalkan terdapat tata bahasa bebas konteks sb:

    SABAaAa

    Ba

    Untuk memperoleh untai a bisa terdapat dua cara penurunan,

    yaitu:

    SAa

    SBa

  • Contoh lain, terdapat tata bahasa konteks:

    SSbSScSaCoba anda tentukan cara untuk menurunkan untai abaca.

    Dan buatkanlah pohon penurunannya.

  • Pertemuan 11

    PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS

  • TujuanMelakukan pembatasan sehingga tidak menghasilkan

    pohon penurunan yang memiliki kerumitan yang tidakperlu atau aturan produksi yang tidak berarti.

    Contoh 1: S AB | a A a

    Aturan produksi S AB tidak berarti karena B tidak Aturan produksi S AB tidak berarti karena B tidakmemiliki penurunan

    Contoh 2 : SA A B B C CD D a | A

  • Memiliki kelemahan terlalu panjang jalannya padahal berujungpada S a, produksi D A juga menyebabkankerumitan. Cara Penyederhanaan: 1. Penghilangan produksi useless ( tidak berguna ) 2. Penghilangan produksi unit 3. Penghilangan produksi

    Penghilangan Produksi Useless Penghilangan Produksi Useless Di sini produksi useless didefinisikan sebagai :

    * Produksi yang memuat symbol variabel yang tidak memilikipenurunan yang akanmenghasilkan terminal-terminal seluruhnya.

    * Produksi yang tidak akan pernah dicapai dengan penurunanapapun dari simbolawal, sehingga produksi itu redundan ( berlebih )

  • Contoh :S aSa | Abd | BdeA AdaB BBB | aMaka

    1) Aturan Produksi AAda, Simbol variabel A tidak1) Aturan Produksi AAda, Simbol variabel A tidakmemiliki penurunan yang menuju terminal, sehingga bisa

    dihilangkan2) Konsekuensi no (1), aturan produksi S Abd tidakmemiliki penurunan

    Penyederhanaan menjadi: SaSa | BdeB BBB | a

  • Contoh : S Aa | B A ab | D B b | E C bb E aEaMaka :

    1) Aturan produksi A D, simbol variabel D tidak memiliki penurunan. 2) Aturan produksi C bb, Penurunan dari simbol S, dengan jalan

    manapun tidakakan pernah mencapai C

    3) Aturan Produksi EaEa, Simbol variabel E tidak memiliki aturanproduksi yang menuju terminal

    4) Konsekuensi no (3) Aturan produksi B E, simbol variabel E tidakmemiliki penurunan.

  • maka produksi yang useless: A D C bb E aEaB E B E

    Penyederhanaannya menjadi: S Aa | B

    A abB b

  • Contoh : S aAb | cEBA dBE | eeCB ff C aeD h Analisa :

    1) Aturan produksi S cEB, A dBE dapat dihilangkan ( E tidak memilikipenurunan)

    2) Aturan produksi D h, redundanSisa aturan produksiS aAbA eeCB ff C ae

  • Analisis lagiB ff juga redundan,

    Hasil penyederhanaan menjadi: S aAbA eeCC aeC ae

    Contoh lain lagi : S aBA bcD | dACB e | AbC bCb | adF | abF cFB

  • Analisis1) Aturan produksi A bcD, variabel D tidak memilikipenurunan2) Konsekuensi no (1), simbol variabel A tidak memilikipenurunan yang menuju

    terminal (tinggal A dAC) 3) Konsekuensi no (2), B Ab tidak memilikipenurunanpenurunan4) Simbol variabel F tidak memiliki penurunan yang menuju terminal 5) Konsekuensi no (4), C adF tidak memilikipenurunanSetelah disederhanakan menjadi:

    S aBB e C bCb | ab

  • Contoh lain lagi : S aBDB cD | AbD efA EdF dcAnalisa

    1) Aturan produksi A Ed, E tidak memiliki penurunan1) Aturan produksi A Ed, E tidak memiliki penurunan2) Aturan produksi F dc, redundan

    Sisa aturan produksi: S aBDB cD | AbD ef

  • Analisa lagiB Ab, A tidak memiliki penurunan. Hasilpenyederhanaan: S aBDB cDD efD ef

  • Contoh lagi: S Abc | abA AAA |

    Aturan produksi setelah disederhanakan: S Abc | abA AAA | A AAA | Ingat A juga harus diperhitungkanPRINSIP

    Setiap kali melakukan penyederhanaan diperiksa lagiaturan produksi yang tersisa, apakah semua produksiyang useless sudah hilang.

  • Penghilangan Produksi Unit Produksi dimana ruas kiri dan kanan aturan produksihanya berupa satu simbol

    variabel, misalkan: A B, C D. Keberadaannya membuat tata bahasa memilikikerumitan yang tak perlu. Penyederhanaan dilakukan dengan melakukan

    penggantian aturan produksi unit. Contoh:

    S SbS C C D C efD dd

  • Dilakukan penggantian berturutan mulai dari aturanproduksi yang paling dekat menuju ke penurunanterminal-terminal (=> dibaca menjadi): C D => C ddS C => S dd | ef

    Sehingga aturan produksi setelah penyederhanaan: Sehingga aturan produksi setelah penyederhanaan: S SbS dd | efC ddC efC dd

  • Contoh lain: S A S AaA B B C B b C D C abD b D b

    Penggantian yang dilakukan : C D => C bB C => B b | ab, karena B b sudah ada, maka cukup dituliskanB abA B => A ab | bS A => ab | b

  • Sehingga aturan produksi setelah penyederhanaan: S ab | b S AaA ab | b B abB b B b C b C abD b

  • Contoh lagi: S Cba | D A bbC

    B Sc | dddC eAn | f | C D E | SABC D E | SABC E gh

  • Penggantian yang dilakukan: D E menjadi D ghC C , kita hapusS D menjadi S gh | SABCSehingga aturan produksi setelah

    penyederhanaan: S Cba | gh | SABC S Cba | gh | SABC A bbCB Sc | dddC eA | f D gh | SABC E gh

  • Penghilangan Produksi

    Produksi adalah produksi dalam bentuk

    atau bisa dianggap sebagai produksi kosong ( empty ). Penghilangan produksi dilakukan dengan melakukanpenggantian produksi yang memuat variabel yang bisamenuju produksi , atau biasa disebut nullable. menuju produksi , atau biasa disebut nullable.

    Prinsip penggantiannya bisa dilihat kasus berikut: S bcAdA

    A nullable serta A satu-satunya produksi dari A, makavariabel A bisa ditiadakan, hasil penyederhanaan tatabahasa bebas konteks menjadi: S bcd

  • Tetapi bila kasusnya:S bcAdA bd |

    A nullable, tapi A bukan satu-satunya produksidari A, maka hasilpenyederhanaan:penyederhanaan:S bcAd | bcdA bd

  • Contoh lagi, terdapat tata bahasa bebas konteks: S Ab | CdA d C Variabel yang nullable adalah variabel C. Karenapenurunan C merupakan penurunan satu-penurunan C merupakan penurunan satu-satunya dari C, maka kita ganti S Cd menjadi S d. Kemudian produksi C kita hapus.

    Setelah penyederhanaan menjadi: S Ab | d A d

  • Contoh lain lagi: S dA | BdA bcA B c

    Variabel yang nullable adalah variabel A. A bukanpenurunan satu-satunyadari A ( terdapat A bc ), maka kita ganti S dAdari A ( terdapat A bc ), maka kita ganti S dAmenjadi S dA | d . A kitahapus.

    Setelah penyederhanaan : S dA | d | BdA bcB c

  • Contoh tata bahasa bebas konteks: S AaCDA CD | AB B b | C d | D

    Variabel yang nullable adalah variabel B, C, D. Kemudiandari A CD, maka variabel A juga nullable ( A ). dari A CD, maka variabel A juga nullable ( A ). Karena D hanya memilki penurunan D , maka kitasederhanakan dulu: S AaCD => S AaCA CD => A CD kita hapus

  • Selanjutnya kita lihat variabel B dan C memilikipenurunan , meskipun bukan

    satu-satunya penurunan, maka dilakukanpenggantian:A AB => A AB | A | BS AaC => S AaC | aC | Aa | aS AaC => S AaC | aC | Aa | aB dan C kita hapus

    Setelah penyederhanaan: S AaC | aC | Aa | a A C | AB | A | B B b C

  • Variabel yang nullable adalah A, B, C. Dari S AB, makaS juga nullable. Kita lakukan penggantian: A aCa => A aaB bA => B bA | bB BB => B BB | BA abB => A abB | abA abB => A abB | abS AB => S AB | A | B | C , B , A dihapus

    *Perhatikan untuk penggantian S AB kita tetapmempertahankan S , karena S merupakan simbolawal. Ini merupakan satu-satunya perkecualian produksi yang tidak dihapus, yaitu produksi yang dihasilkanoleh simbol awal.

  • Hasil akhir dari penyederhanaan: S AB | A | B | A abB | ab | aaB bA | b | BB | B

    Contoh tata bahasa bebas konteks: S aAbS aAb

    A aAb | Hasil penyederhanaan:

    S aAb | abA aAb | ab

  • Contoh tata bahasa bebas konteks: S ABaCA BC B b | C D | D d D d

    Hasil penyederhanaan: S ABaC | BaC | AaC | ABa | aC | Aa | Ba | a A B

    | C | BC B b C D D d

  • Prakteknya ketiga penyederhanaan tersebut dilakukanbersama pada suatu tata bahasa bebas konteks, yang nantinya menyiapkan tata bahasa bebas kontekstersebut untuk diubah kedalam suatu bentuk normal Chomsky.

    Urutan penghapusan aturan produksi : Urutan penghapusan aturan produksi : 1) Hilangkan produksi 2) Hilangkan produksi unit 3) Hilangkan produksi useless

  • Contoh : S AA | C | bdA Bb | B AB | d C de

    Hilangkan produksi , sehingga menjadi: S A | AA | C | bdA Bb A Bb B B | AB | d C de

    Selanjutnya penghilangan produksi unit menjadi: S Bb | AA | de | bdA Bb B AB | d C de

  • Penghilangan produksi unit bisa menghasilkan produksiuseless. Terakhir dilakukan penghilangan produksiuseless:

    S Bb | AA | de | bdS Bb | AA | de | bdA Bb B AB | d

    Hasil akhir aturan produksi tidak lagi memiliki produksi , produksi unit, maupun produksi useless.

  • PERTEMUAN 12

    BENTUK NORMAL CHOMSKY

  • Pengertian Bentuk Normal Chomsky Bentuk normal Chomsky / Chomsky Normal Form (CNF)

    merupakan salah satu bentuk normal yang sangat berguna untuktata bahasa bebas konteks ( CFG ). Bentuk normal Chomsky dapatdibuat dari sebuah tata bahasa bebas konteks yang telahmengalami penyederhanaan yaitu penghilangan produksi useless, unit, dan . Dengan kata lain, suatu tata bahasa bebas konteksdapat dibuat menjadi bentuk normal Chomsky dengan syarat tatabahasa bebas kontesk tersebut:

    1. Tidak memiliki produksi useless1. Tidak memiliki produksi useless2. Tidak memiliki produksi unit3. Tidak memiliki produksi Aturan produksi dalam bentuk normal Chomsky ruas kanannya tepat

    berupa sebuah terminal atau dua variabel non terminal. Misalkan: A BC A b B a C BA | d

  • Pembentukan Bentuk Normal Chomsky Langkah-langkah pembentukan bentuk normal Chomsky

    secara umum sebagai berikut: 1. Biarkan aturan produksi yang sudah dalam bentuk normal

    Chomsky2. Lakukan penggantian aturan produksi yang ruas kanannya

    memuat simbol terminal dan panjang ruas kanan > 13 Lakukan penggantian aturan produksi yang ruas kanannya3 Lakukan penggantian aturan produksi yang ruas kanannya

    memuat > 2 simbol variabel Non Terminal4 Penggantian-penggantian tersebut bisa dilakukan berkali-kali

    sampai akhirnyasemua aturan produksi dalam bentuk normal Chomsky

    5 Selama dilakukan penggantian, kemungkinan kita akanmemperoleh aturan-aturanproduksi baru, dan juga memunculkan simbol-simbol variabelbaru

  • Contoh, tata bahasa bebas konteks ( kita anggap tata bahasa bebaskonteks pada bab ini sudah mengalami penyederhanaan ): S bA | aBA bAA | aS | a B aBB | bS | b Aturan produksi yang sudah dalam bentuk normal Chomsky: A a B b Dilakukan penggantian aturan produksi yang belum bentuk normal Dilakukan penggantian aturan produksi yang belum bentuk normal Chomsky (=> bisa dibaca berubah menjadi): S bA => S P1A S aB => S P2B A bAA => A P1AA => A P1P3 A aS => A P2S B aBB => B P2BB => B P2P4 B bS => B P1S

  • Terbentuk aturan produksi dan simbol variabel baru: P1 b P2 a P3 AA P4 BB Hasil akhir aturan produksi dalam brntuk normal Chomsky :

    A a B b S P A S P1A S P2B A P1P3 A P2S B P2P4 B P1S P1 b P2 a P3 AA P4 BB

  • Contoh, tata bahasa bebas konteks: S aB | CA A a | bcB BC | AbC aB | b Aturan produksi yang sudah dalam bentuk normal Chomsky : S CA A a B BC B BC C b Penggantian aturan produksi yang belum dalam bentuk normal Chomsky: S aB => S P1B A bc => A P2P3 B Ab => B A P2 C aB => C P1B

  • Terbentuk aturan produksi dan simbol variabel baru: P1 a P2 bP3 c Hasil akhir aturan produksi dalam bentuk normal Chomsky :

    S CA A a B BC B BC C b S P1B S P2P3 B A P2 C P1B P1 a P2 b P3 c

  • Contoh, tata bahasa bebas konteks : S aAB | ch | CD A dbE | eECB ff | DD C ADB | aSD iE jD

    Aturan produksi yang sudah dalam bentuk normal Chomsky : S CD B DD B DD D iPenggantian aturan produksi:

    S aAB => S P1P2 S ch => S P3P4 A dbE => A P5P6 A eEC => A P8P9 B ff => B P10P10 C ADB => C AP11 C aS => C P1S E jD => E P12D

  • Terbentuk aturan produksi baru: P1 a P2 AB P3 c P4 h P5 d P6 P7E P6 P7E P7 b P8 e P9 EC P10 f P11 DB P12 j

  • Hasil akhir dalam bentuk normal Chomsky: S CD B DD D iS P1P2 S P3P4 A P5P6 A P8P9 B P10P10 C AP11 C P1S E P D

    1E P12D P1 a P2 AB P3 c P4 h P5 d P6 P7E P7 b P8 e P9 EC P10 f P11 DB P12 j

  • PERTEMUAN 13

    PENGHILANGAN REKURSIF KIRI

  • Aturan Produksi Rekursif KananAturan Produksi yang rekursif memilki ruas kanan (hasil produksi) yang memuat simbol variabel pada ruas kiri. Sebuah aturan produksi dalambentuk:

    Aturan Produksi Rekursif Kanan bentuk umum :A Amerupakan aturan produksi yang rekursif kanan=(VT)* atau kumpulan simbol variabel dan terminal

    Contoh aturan produksi yang rekursif kanan:

    Contoh aturan produksi yang rekursif kanan: S dSB adB

    Aturan Produksi Rekursif Kiri bentuk Umum:A AMerupakan aturan produksi yang rekursif kiri, contohnya: S SdB Bad

  • Tahapan Penghilangan Rekursif KiriLangkah-langkah penghilangan rekursif kiri: 1. Pisahkan aturan produksi yang rekursif kiri dan yang tidak, misal:

    Aturan produksi yang rekursif kiri:A A1 | A2 | A3 | ... . AnAturan produksi yang tidak rekursif kiri (termasuk produksi ):A 1 | 2 | 3 | ... .. m

    2. Dari situ kita bisa tentukan 1, 2, .... n, dan 1, 2, .... m dari setiap aturanproduksi yang memiliki simbol ruas kiri yang sama

    3. Lakukan penggantian aturan produksi yang rekursif kiri, menjadi sebagai berikut:1) A 1Z | 2Z | .... mZ2) Z 1 | 2 | 3 | .... n3) Z 1Z | 2Z | 3Z | .... nZ

    4. Penggantian diatas dilakukan untuk setiap aturan produksi dengan simbol ruas kiriyang sama. Bisa muncul simbol variabel baru Z1, Z2 dan seterusnya, sesuaibanyaknya variabel yang menghasilkan produksi yang rekursif kiri. Hasil akhirberupa aturan produksi pengganti ditambah dengan aturan produksisemula yang tidak rekursif kiri.

  • Contoh, tata bahasa bebas konteks: S Sab | aSc |dd | ff | SbdPertama-tama kita lakukan pemisahan aturan produksi Aturan produksi yang rekursif kiri: S Sab | SbdDari situ kita tentukan: Untruk simbol ruas kiri S: 1=ab, 2=bdAturan produksi yang tidak rekursif kiri: S aSc | dd | ff Dari situ kita dapatkan: Untuk simbol ruas kiri S: =aSc, =dd, =ff Untuk simbol ruas kiri S: 1=aSc, 2=dd, 3=ff Kita lakukan penggantian aturan produksi yang rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S Sab | Sbd, digantikan oleh: i. S aScZ1 | dd Z1 | ffZ1ii. Z1 ab | bdiii. Z1 abZ1 | bd Z1

    Hasil akhir setelah penghilangan rekursif kiri adalah: S aSc | dd | ff S aScZ1 | dd Z1 | ffZ1 Z1 ab | bdZ1 abZ1 | bd Z1

  • Contoh lain, terdapat tata bahasa bebas konteks: S Sab | Sb | cAA Aa | a | bd

    Pertama-tama kita lakukan pemisahan aturan produksi Aturanproduksi yang rekursif kiri:

    S Sab | SbA Aa

    Dari situ kita tentukan: Dari situ kita tentukan: Untuk simbol ruas kiri S: 1= ab, 2 =b Untuk simbol ruas kiri A: 1 = a

    Aturan produksi yang tidak rekursif kiri: S cAA a | bd

    Dari situ kita dapatkanUntuk simbol ruas kiri S: 1 = cAUntuk simbol ruas kiri A: 1 = a, 2 = bd

  • Kita lakukan penggantian aturan produksi yang rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S Sab | Sb, digantikan oleh:

    i. S cAZ1ii. Z1 ab | biii. Z1 abZ1 | bZ1

    Untuk yang memiliki simbol ruas kiri A :A Aa, digantikan oleh:

    i. A a Z2 | bdZ2ii. Z2 a

    iii. Z2 a Z2Hasil akhir setelah penghilangan rekursif kiri adalah:

    S cAA a | bdS cAZ1 Z1 ab | b Z1 abZ1 | bZ1 A a Z2 | bdZ2 Z2 a Z2 a Z2

    *Perhatikan bahwa penghilangan rekursif kiri memunculkan simbol variabel baru, dan aturanproduksi baru yang rekursif kanan.

  • Contoh lain, terdapat tata bahasa bebas konteks: S Sa |aAc | c | A Ab | baPertama-tama kita lakukan pemisahan aturan produksi Aturanproduksi yang rekursif kiri: S Sa A Ab

    Dari situ kita tentukan: Untuk simbol ruas kiri S: = a Untuk simbol ruas kiri S: 1 = a Untuk simbol ruas kiri A: 1 = b

    Aturan produksi yang tidak rekursif kiri: S aAc | c | A ba

    Dari situ kita dapatkanuntuk simbol ruas kiri S:1 = aAc, 2= c, 3 = untuk simbol ruas kiri A: 1 = ba

  • *Perhatikan produksi termasuk produksi yang tidak rekursif kiriKita lakukan penggantian aturan produksi yang rekursif kiri: Untuk yang memilki simbol ruas kiri S:

    S Sa, digantikan oleh: i. S aAcZ1 | cZ1 | Z1ii. Z1 aiii. Z1 a Z1

    Untuk yang memiliki simbol ruas kiri A:A Ab, digantikan oleh:A Ab, digantikan oleh:i. A ba Z2ii. Z2 biii. Z2 bZ2

    Hasil akhir setelah penghilangan rekursif kiri adalah: S aAc | c | S aAcZ1 | cZ1 | Z1 A baA ba Z2 Z1 a Z1 a Z1 Z2 b Z2 b Z2

  • PERTEMUAN 1PERTEMUAN 144

    MESIN TURINGMESIN TURING

    PERTEMUAN 1PERTEMUAN 144

    MESIN TURINGMESIN TURINGMESIN TURINGMESIN TURINGMESIN TURINGMESIN TURING

  • Mesin turing mempunyai 7 TupleM = (Q, , , , S, F, )

    Q = himpunan state = Himpunan simbol input = simbol pada pita = fungsi transisiS = state awal, S QF = himpunan state akhirb = simbol kosong (blank)

    Contoh :Terdapat mesin turing dengan konfigurasiQ = { q1, q2 } = { a, b } = { a, b, b }F = { q2 } R = RightS = { q1 } L = Left

  • Fungsi transisi ( q1, a) = (q1, a, R) ( q1, b) = (q1, a, R) (q1, b ) = (q2, b ,L)

    - (q1, a) = (q1, a, R)State q , head menunjuk karakter a pada pita menjadi state q , head bergerak keState q1, head menunjuk karakter a pada pita menjadi state q1, head bergerak kekanan.

    - (q1, b) = (q1, a, R)State q1, head menunjuk karakter b pada pita menjadi state q1, head menuliskarakter a lalu bergerak ke kanan

    - ( q1, b ) = (q2, b , L)Pada State q1, head menunjuk karakter b pada pita menjadi state q2, headbergerak ke kiri.

  • Jika mesin turing tersebut menerima input abbaa, apakah diterima oleh mesin turing atau ditolak

    1. Pita yang dibaca abbaa a b b a a

    State q1 Fungsi transisi (q1 ) = (q1, a, R)

    2. a b b a a

    State q1 Fungsi transisi (q1, b) = (q1, a, R) Head menulis a lalu bergerak ke kanan

    3. a a b a a

    State q1

    Fungsi transisi (q1, b) = (q1, a, R) Head menulis a lalu bergerak ke kanan

  • 4. a a a a a

    State q1

    Fungsi transisi (q1, a) = (q1, a, R) Head bergerak ke kanan

    5. a a a a a

    State q1 Fungsi transisi (q1, a) = (q1, a, R) Head bergerak ke kanan

    6. a a a a a b a a a a a b

    State q1 Fungsi transisi (q1, b ) = (q2, b, L)

    Head menunjuk b lalu head bergerak ke kiri

    7. a a a a a b

    State q2

    State berhenti pada q2, q2 adalah final state, maka state input abbaa diterima.

    Pertemuan 1Pertemuan 2Pertemuan 3Pertemuan 4Pertemuan 5Pertemuan 6Pertemuan 9Pertemuan 10Pertemuan 11Pertemuan 12Pertemuan 13Pertemuan 14