1 / 43

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA. Jim Michael Widi , S.Kom. Pendahuluan. Apa 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.

javier
Télécharger la présentation

TEORI BAHASA DAN OTOMATA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TEORI BAHASA DAN OTOMATA Jim Michael Widi, S.Kom

  2. Pendahuluan ApaituKomputer • Alatuntukmengetik ? • Komputersangatkompleks - menerapkanteorimatematikasecaralangsung (computational model) • Model dasarperhitungan • Rekayasamerancangsistemkomputer H/W + S/W

  3. Pengertian Program sebagaiobyekmatematika Diberlakukannyaalasan (reason), logika(logic) danaturan (rule) untukkombinasi Apakah program mengoperasikanbilangan, teksatauapapun

  4. Hardware/Software • Kekompleksan hardware dan software ditanganioleh processor untukmengkonversi program kedalambentuk execute (eksekusi) • Execute file dapatdibentukmelalui : • Compile • Assembly • Dan sebagainya (interpreter)

  5. Definisi TeoriOtomataadalahteorimengenaimesin-mesinabstrak, danberkaitaneratdenganteoribahasa formal. adabeberapahal yang berkaitandenganOtomata, yaitu Grammar. Grammar adalahbentukabstrak yang dapatditerima (accept) untukmembangkitkansuatukalimatotomataberdasarkansuatuaturantertentu.

  6. KonsepDasar (1) • Anggotaalfabetdinamakansimbol terminal. • Kalimatadalahderetanhinggasimbol-simbol terminal. • Bahasaadalahhimpunankalimat-kalimat. Anggotabahasabisatakhinggakalimat. • Simbol-simbolberikutadalahsimbol terminal : • hurufkecil, misalnya : a, b, c • simbol operator, misalnya : +, , dan * • simboltandabaca, misalnya : (, ), dan ; • simboltandabaca, misalnya : (, ), dan ; • string yang tercetaktebal, misalnya : if, then, danelse. • Simbol-simbolberikutadalahsimbol non terminal /Variabel : • hurufbesar, misalnya : A, B, C • huruf S sebagaisimbolawal • string yang tercetak miring, misalnya : expr

  7. KonsepDasar (2) Hurufyunanimelambangkan string yang tersusunatassimbol-simbol terminal atausimbol-simbol non terminal ataucampurankeduanya, misalnya : α,β, danε Sebuahproduksidilambangkansebagaiα --> β, artinya : dalamsebuahderivasidapatdilakukanpenggantiansimbolα dengansimbolβ. Derivasiadalah proses pembentukansebuahkalimatatausentensial. Sebuahderivasidilambangkansebagai : α ==> β. Sentensialadalah string yang tersusunatassimbol-simbol terminal atausimbol-simbol non terminal ataucampurankeduanya. Kalimatadalah string yang tersusunatassimbol-simbol terminal. Kalimatadalahmerupakansentensial, sebaliknyabelumtentu.

  8. Grammar • Grammar G didefinisikansebagaipasangan 4 tuple : Vt , Vn , S, dan P, dandituliskansebagai G(Vt , Vn , S, P), dimana: • Vt: himpunansimbol-simbol terminal (alfabet) = kamus • Vn: himpunansimbol-simbol non terminal • S C V : simbolawal (atausimbol start) • P : himpunanproduksi • Contoh : • 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} • G2 : VT = {a}, V = {S}, P = {S  aS | a} S --> aS --> aaS --> aaa L(G2) ={an --> n ≥ 1} L(G2)={a, aa, aaa, aaaa, …}

  9. TeoriAutomata Meliputi/mencakup TeoriBahasa Formal Regular Expression Finite Automata Non Deterministic Finite Automata Finite Automata dengan Output Context-free Grammar Pushdown Automata MesinTuring

  10. TeoriBahasa FormalTheory of Formal Language • Bahasaberbentukdarikombinasisimbol-simboldenganaturanformalnya • Language : A set Of string • String : A Finite list of symbols from an alphabet • Alphabet : A Finite set of objects called symbol • S1 = { a, b, c, d, e ….z ..} S2 = { 0, 1 } • Symbol : A member of alphabet • Set : Group of objects

  11. TeoriBahasa Formal •  = {a b c d e ... z , . } • Pembentukanstruktursebuahbahasadiawalidenganmemakaisebuahfinite set (himpunanterbatas), dimana unit fundamentalnyadisebutalphabet () • String-string yang bolehada di dalamsebuahbahasadisebut word • Contoh language adalahBahasa Indonesia. Alphabet yang biasadipakaiadalahhuruf, komadantitik. Semuanyadispesifikasiseperti di bawahini:

  12. KATA-INDONESIA = {semua kata di dalamkamus}  = { x } • L = { x xx xxx xxxx ... } • Bila language inidinamakan KATA-INDONESIA, dimanasemua string adalah word/kata di dalamkamus, makadefinisinyaadalah: • Contohsederhanasuatu language dengan alphabet yang adahanyasebuahhuruf, yaituhuruf x • Simbol alphabet tidakharus alphabet huruflatin, namundapatberisiapasaja

  13. L = {  x xx xxx xxxx ... } L = { x xx xxx } L  L + {  } L = L +  Sebuah string dimungkinkantidakpunya alphabet. String inidisebutempty string atau null string dandilambangkan. Perludiingatbukan alphabet dalam language.Contoh: Bahasatanpa worddilambangkandengan null set  Tolongdibedakanantara language tanpa word dengan word yang mempunyai

  14. L1 = { x xx xxx xxxx ... } L1 = { xn for n = 1 2 3 ... } Contohsebuahbahasadengannon empty string Ataudengancara lain Dalam language L1, dapatdilakukanoperasipenggabungan (concatenation) dari word yang adamenjadi word baru. Contoh word xx dengan word xxx digabungmenjadi word baruxxxxx

  15. L2 = { x xxx xxxxxxxxxxxx ... } = { x ganjil} = { x 2n+1 for n = 0 1 2 3 } Tidakselalubenarbiladua word digabungkanakanmembentuksebuah word baru. Contoh: xxx danxxxxxadalah word pada language L2, namunpengabungannyabukanlah word di dalam L2 Didefinisikansuatufungsilengthuntukmenghitungjumlahhurufdi dalamsebuah word length(xxxxxx) = 6 length(7152) = 4 length() = 0

  16. L4 = {  x xx xxx xxxx ... } = { xn for n = 0 1 2 3 } • Biladiinginkansebuah language mempunyai null string, makajanganlupauntukmemasukannyasaatmendefinisikan language tersebut • Harapdipahamibahwa x0 = danbukannya x0 = 1 seperti di aljabar • Didefinisikanfungsireverse. Reverse darisuatu string adalah string yang samatetapitersusundaribelakang, walaupun string inibukanlah word dalambahasatersebut reverse(xxx) = xxx reverse(xxxxx) = xxxxx reverse(145) = 541 reverse(140) = 041

  17. Palindrome adalah kata, frase, nomoratauurutanlainnyadari unit yang dapatdibacadengancara yang sama di keduaarah. • Didefinisikansuatu language yang disebut PALINDROME dari alphabet  = { a, b} PALINDROME = { , dansemua string x sedemikiansehingga reverse(x) = x } makaakandiperoleh: PALINDROME = {  a b aa bb aaa aba babbbbaaaaabba ... }

  18. Diketahui alphabet , diinginkanuntukmendefinisikansebuah language dimanatiap string darihuruf yang ada di dalamadalahsebuah word, termasuk null string. • Language inidisebutsebagaiclosure • Dapatdinotasikandenganmenambahsebuah asterisk sesudahnamadari alphabet * (Kleene Star). • Dalamlogikamatematikadanilmukomputer, bintangKleene (atau operator KleeneataupenutupanKleene) merupakanoperasi unary, baik di set pada set string atausimbol-simbolataukarakter. PenerapanbintangKleeneuntuksatu set V ditulissebagaiV*. Hal inibanyakdigunakanuntukekspresireguler, yang merupakankonteks yang diperkenalkanoleh Stephen Kleenemenjadiciri automata tertentu.

  19. Contoh: Jika= { x } maka * = L4 = {  x xx xxx ... } Jika = { 0 1 } maka * = {  0 1 00 01 10 11 000 001 ... } Jika = { a b c } maka * = {  a b c aaab ac ba bb bccacb cc aaa ... } • OperasiKleene Star menghasilkan infinite language dari string huruf yang adapada alphabet. • Yang dimaksud infinite language adalahtakterhitungbanyaknyaword. • Disarankan word dari language tersusunurutdari yang pendeksecaraalphabetik .

  20. Contoh: Jika S = { aa, b} maka S* = { dan word bentukan yang berasaldariaadan b } S* = { dansemua string bentukandari a dan b dengana yang selaluberderetdalamjumlah yang genap) = { b aa bb aab baa bbbaaaaaabbbaabbbaabbbbaaaabaabaaaabbbbaaaabaabbbbaabbbbaa ... } String aabaaabtidaktermasuk S* karenajumlah a tidakgenap Contoh: Jika S = { a, ab } maka S* = { dan word bentukan yang berasaldari a danab } S* = { dansemua string bentukandari a dan b kecuali yang dimulaidengan b dan yang mengandungdua b berdempetan } ={ a aaabaaaaab aba aaaaaaabaabaabaaababaaaaa aaaabaaabaaabaaaabababaaaabaab ... }

  21. Regular Expression Sebuahcaramendefinisikan language yang lebihtepatdibandingkandenganmenggunakancara ellipsis ( diakhiridengan ... ) Language inidisebut regular language Perhatikan: L4 = {  x xx xxx xxxx ... } Denganmemanfaatkan closure, bila S = { x } maka L4 = S* Dapatjugaditulissebagai L4 = {x}*

  22. Kleene Star tidakhanyadapatdiaplikasikanuntuk set namunjugalangsungke alphabet. Contoh: x* Ekpresisederhana x* akandipakaiuntukmengekspresikanpengulangandari x (bisajugatidaksamasekali) x* = atau x atau x2atau x3atau x4 ... = xn for n = 0 1 2 3 4 ... Jadi x* adalah string dari x yang banyaknyatidakdinyatakansecarapasti.

  23. Sebuah language L yang didefinisikandari alphabet S = {a, b} seperti di bawahini: L = { a ababbabbbabbbb ... } Dapatjugadidefinisikandengankalimat: L = semua word yang dimulaidengan a dandiikutiolehsejumlah b (danmungkintanpa b samasekali) Denganmemakainotasi *, dapatdituliskan L = language (ab*) Kleene Star dapatdiimplementasikanpada string abseperti di bawahini: (ab)* = atauabatauababatauababab . . . (ab)*  (ab*)

  24. ContohKleene Star lainnya: • L1 = language (xx*) • Language L1 di atasberisisebuah x laludiikutidengansejumlah x (dimanamungkinsajatanpa x samasekali) • L1dapatdituliskandengannotasi lain, yaitunotasi+ • x+berartisejumlah x dalamjumlah yang selalupositif (tidakbisa 0, atautidakbisa) • Notasi*lebihlazimdipergunakandaripadanotasi+ • L1dapatjugadidefinisikandengansalahsatucontoh di bawahini: xx* x+ xx*x* x*xx*x+x* x*x+ x*x*x*xx* • Ingatbahwa x*bisasajaberarti

  25. Contoh: Language yang didefinisikandenganekspresi ab*a Adalahsebuahhimpunandari string a dan string b yang paling sedikitberisiduahuruf yang diawalidengan a dandiakhiridengana danhanyaakanberisi b diantaranya (atautidaksamasekali) language(ab*a) = { aa aba abbaabbbaabbbba ... } Contoh: Ekspresi-ekspresidi bawahinimendefinisikan language L2denganhasilyang sama L2 = { xganjil } = x(xx)* = (xx)*x Namunekspresi x*xx* tidak, karenatermasuk (xx) x (x)

  26. Contoh: Language denganekspresiseperti di bawahini a*b* • Berisisemua string dari a dan b sedemikiansehinggasemuaa (bilaada) akanberada di depansemua b (bilaada) language(a*b*) = {  a b aaab bb aaaaababbbbbaaaa ... } • Perhatikanbahwabadan aba tidaktermasukdalam language ini, jugabahwajumlah a dan b tidakperlusama • Ada pemanfaatan lain daritandatambah +. Ekpresi x + y berartisalahsatudari x atau y (memilih). Berhati-hatilahuntukmembedakanantara+dengan+

  27. Contoh: Perhatikanbahasa T yang berasaldari alphabet  = { a b c } T = { a c abcbabbcbbabbbcbbbabbbbcbbbb … } Semuaword di dalam T dimulaidengan a atau c dandiikutidengansejumlahb. Secarasimbolik language T dapatditulisdengancara: T = language ((a + c)b*) = language (a atau c diikutisejumlah b) Tanda+ berartiharusdilakukanpilihanuntukmemakaiekspresi yang sebelahkiriataukanan

  28. Contoh • Language yang didefinisikandenganexpressi ab*a • Adalahsebuahhimpunandari string a dan string b yang paling sedikitberisiduahuruf yang diawalidengan a dandiakhiridengan a danhanyaakanberisi b diantaraanya (atautidaksamasekali) language(ab*a) = { aa aba abbaabbbaabbbba . . .}

  29. Contoh • Language denganekspresiseperti di bawahini a*b* • Berisisemua string dari a dan b sedemikiansehinggasemua a (bilaada) akanberada di depansemua b (bilaada) language(a*b*) = { a b aaab bb aaaaababbbbbaaaa ...} • Perhatikanbahwabadan aba tidaktermasukdalam language ini, jugabahwajumlah a dan b tidakperlusama

  30. Contoh • Ekspresi-ekspresi di bawahinimendefinisikan language L2denganhasil yang sama L2 = { xganjil} = x(xx)* = (xx)*x • Namunekspresi x*xx*tidak, karenatermasuk (xx) x (x). Ada pemanfaatan lain daritandatambah +. Ekpresi x + y berartisalahsatudari x atau y (memilih). Berhati-hatilahuntukmembedakanantara+dengan+. Contoh • Perhatikanbahasa T yang berasaldari alphabet = { a b c } • T = { a c abcbabbcbbabbbcbbbabbbbcbbbb } • Semua word di dalam T dimulaidengan a atau c dandiikutidengansejumlah b. Secarasimbolik language T dapatditulisdengancara T = language ((a + c)b*) = language (a atau c diikutisejumlah b) tanda + berartiharusdilakukanpilihanuntukmemakaiekspresi yang sebelahkiriataukanan.

  31. Contoh • Sebuah language L akanberisisemua string dari a dan b denganpanjangselalutiga. • L = { aaaaab aba abb baa babbbabbb } • Hurufpertamadaritiap word di dalam L adalah a atau b. Hurufkeduadaritiap word di dalam L adalah a atau b. Hurufketigatiap word di dalam L adalah a atau b. Jadi L dapatdidefinisikan: L = language ((a + b)(a + b)(a + b)) Ataudenganlebihsingkat L = language ((a + b)3)

  32. LATIHAN Perhatikanbeberapadefinisi di bawahini yang berasaldari alphabet = { a b } • (a + b)7 • (a + b)* • a(a + b)* • (a + b)*a(a + b)* • (a + b)*a(a + b)*a(a + b)* • b*ab*a(a + b)* • (a + b)*ab*ab* • b*a(a + b)*ab* • b*ab*ab* • (a + b)*a(a + b)*b(a + b)* • (a + b)*a(a + b)*b(a + b)* + (a + b)*b(a + b)*a(a + b)* • bb*aa* • (a + b)*a(a + b)*b(a + b)* + bb*aa*

  33. OtomataHingga SebuahOtomatahinggaadalahkumpulandaritigahal: • Kumpulan terbatas (finite set) dari state (kondisi/keadaan). Satudiantaranyamenjadi initial state (kondisiawal) ataustart state, danbeberapa(bisaberartitidakada) dariantaranyadinyatakansebagaifinal state. • Himpunanalphabet berisibeberapahuruf, dimanastring-string bentukandari alphabet akandibacahuruf demi huruf. • Kumpulan terbatasdari transition yang menjelaskanuntuktiapstate dantiaphuruf yang dibacake state manaperjalanandilanjutkan.

  34. OtomataHingga • Otomatahinggaadalahsuatu model yang dapatditerapkanpadaberagamjenisperangkatkeras (hardware) danperangkatlunak (software). • Penerapan-penerapandariotomatahinggaadalah: • Perangkatlunak yang digunakanuntukmerancangdanmemantauperilakurangkaian digital. • Lexical Analyzer, yaitukomponenkompiler yang bertugasmemecahteks-teks input menjadilogical unit sepertiidentifiers, keyworddanpunctuation. • Perangkatlunakuntukmemindaidokumenteks yang jumlahhalamannyaluarbiasabanyakgunamenemukankesamaan kata, frasedanbentuk-bentuk lain • Perangkatlunak yang digunakanuntukmemeriksasistem-sistemdenganstata/stateberbeda yang berhinggajumlahnya, misalnyaprotokolkomunikasiatauprotokol yang digunakanuntukpertukaraninformasisecaraaman.

  35. ContohOtomataHingga Push Off On Push Start Start then t n h e th t the

  36. Contoh • Alphabet yang digunakanhanya 2 huruf, adanb • Ada 3 buah state, yaitux, ydanz • Aturan transition yang dipakaiadalah: • Dari state x dan input a menuju state y • Dari state x dan input b menuju state z • Dari state y dan input a menuju state x • Dari state y dan input b menuju state z • Dari state z dan input apasajatetap di state z Ditentukanjuga x sebagai start state dan z sebagai final state

  37. a a, b b Start a X Y Z b • Perhatikanapa yang akanterjadibila string aaadiumpankankeotomatahinggatersebut • Penelusuranakandimulaidari start state: • Hurufpertamaadalaha, sesuai aturan-1 akanmenuju state y • Hurufkeduaadalah a, sesuai aturan-3 akanmenuju state x • Hurufketigaadalah a, sesuai aturan-1 akanmenuju state y • Stringsudahdiumpankansemua, tapitidakmencapai final state • Jadi, string aaabukanlahtermasuk di dalambahasayang didefinisikanolehotomatahingga.

  38. Contoh lain, bila string abbadiumpankanke FA tersebut . • Hasilnya, perjalananmencapaipada state z (final state) . • Jadi, string abbatermasuk word dalambahasa yang didefinisikanolehotomatatersebuttersebut

  39. Tidaksulitmenerka word apasaja yang diterimaoleh FA tersebut, yaitustringnyaharusberisi minimal sebuah b agar mencapai state z. • Dari transition rule di atas, dapatdibuatkansebuahtransition table sepertidi bawahini: • OtomataHinggadapatdianggapsebagaisuatumesin. Ada suatupergerakkan, perpindahandarisebuah state ke state lain, karenaadanyasebuah input

  40. a a X Y a X- Y b b a b b Z Z+ a b b a • OtomataHinggadapatjugadigambarkandalambentukgrafis yang disebutbentuk transition diagram. • Tanda- untuk start state dan + untuk final state . • Bentuklain, start state memakaipanahdan final state memakailingkaranganda.

  41. a a a, b - + - + a, b b b • 2 busurataulebih yang berasaldari state yang samadanmenujuke state yang sama pula dapatdisatukansepertigambar di atas. • Sekilasterkesanbahwa FA di atasdapatmenerima string dalambentukapapun. • Namun, bilainputnyaadalah null string (  ), makatidakakanterjadiperpindahanstate. • Jadilanguage yang diterimaolehmesin di atasadalah: ( a + b ) ( a + b )* = ( a + b )+

  42. a - + a, b b a, b a, b a, b + - Ada kemungkinansebuahOtomataHinggatidakakanmenerima language apapun

  43. 2 a a 4+ 1- a, b b a b b 3 Transisibiladiberi input string ababa δ(1,a) = (2) δ(2,b) = (3) δ(3,a) = (2) δ(2,b) = (3) δ(3,a) = (2) Transisibiladiberi input string babbb δ(1,b) = (3) δ(3,a) = (2) δ(2,b) = (3) δ(3,b) = (4) δ(4,b) = (4) PerhatikanOtomataHinggaini Apayang terjadibiladiberi input string ababadanbabbb(bagaimanapergerakkannya)?

More Related