Teori Bahasa Dan Automata

Anda mungkin juga menyukai

Anda di halaman 1dari 7

TEORI BAHASA DAN AUTOMATA

I. PENDAHULUAN Teori Bahasa Teori bahasa membicarakan bahasa formal (formal language), terutama untuk kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor). Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah tata bahasa (grammar) yang sama. Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda. Dikatakan bahasa formal karena grammar diciptakan mendahului pembangkitan setiap kalimatnya. Bahasa manusia bersifat sebaliknya; grammar diciptakan untuk meresmikan kata-kata yang hidup di masyarakat. Dalam pembicaraan selan utnya !bahasa formal" akan disebut !bahasa" sa a. Automata #utomata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu. Beberapa Pengertian Dasar Simbol adalah sebuah entitas abstrak (seperti halnya pengertian titik dalam geometri). Sebuah huruf atau sebuah angka adalah contoh simbol. String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, ika a, b, dan c adalah tiga buah simbol maka abcb adalah sebuah string yang dibangun dari ketiga simbol tersebut. $ika w adalah sebuah string maka pan ang string dinyatakan sebagai w dan didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut. Sebagai contoh, ika w % abcb maka w% &. String hampa adalah sebuah string dengan nol buah simbol. String hampa dinyatakan dengan simbol (atau ') sehingga % (. String hampa dapat dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol. #lfabet adalah hinpunan hingga (finite set) simbol-simbol Operasi Dasar String Diberikan dua string ) x % abc, dan y % 123 *refik string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling belakang dari string w tersebut. +ontoh ) abc, ab, a, dan adalah semua *refi,(x) *roper*refi, string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling belakang dari string w tersebut. +ontoh ) ab, a, dan adalah semua *roper*refi,(x) *ostfi, (atau Sufi,) string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling depan dari string w tersebut. +ontoh ) abc, bc, c, dan adalah semua *ostfi,(x) *roper*ostfi, (atau *operSufi,) string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dari string w tersebut. +ontoh ) bc, c, dan adalah semua *roper*ostfi,(x) -ead string w adalah simbol paling depan dari string w. +ontoh ) a adalah -ead(x)
hal 1

Tail string w adalah string yang dihasilkan dari string w dengan menghilangkan simbol paling depan dari string w tersebut. +ontoh ) bc adalah Tail(x) Substring string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling depan dan.atau simbol-simbol paling belakang dari string w tersebut. +ontoh ) abc, ab, bc, a, b, c, dan adalah semua Substring(x) *roperSubstring string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dan.atau simbolsimbol paling belakang dari string w tersebut. +ontoh ) ab, bc, a, b, c, dan adalah semua Substring(x) Subse/uence string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol dari string w tersebut. +ontoh ) abc, ab, bc, ac, a, b, c, dan adalah semua Subse/uence(x) *roperSubse/uence string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol dari string w tersebut. +ontoh ) ab, bc, ac, a, b, c, dan adalah semua Subse/uence(x) +oncatenation adalah penyambungan dua buah string. 0perator concatenation adalah concate atau tanpa lambang apapun. +ontoh ) concate(xy) % xy % abc123 #lternation adalah pilihan satu di antara dua buah string. 0perator alternation adalah alternate atau . +ontoh ) alternate(xy) % xy % abc atau 123 1leene +losure ) x2 % xxxxxx3 % xx 4 x 5 3 *ositi6e +losure ) x + % xxxxxx3 % xx 4 x 5 3

Beberapa Si at Operasi Tidak selalu berlaku ) x % *refi,(x)*ostfi,(x) Selalu berlaku ) x % -ead(x)Tail(x) Tidak selalu berlaku ) *refi,(x) % *ostfi,(x) atau *refi,(x) *ostfi,(x) Selalu berlaku ) *roper*refi,(x) *roper*ostfi,(x) Selalu berlaku ) -ead(x) Tail(x) Setiap *refi,(x), *roper*refi,(x), *ostfi,(x), *roper*ostfi,(x), -ead(x), dan Tail(x) adalah Substring(x), tetapi tidak sebaliknya Setiap Substring(x) adalah Subse/uence(x), tetapi tidak sebaliknya Dua sifat al abar concatenation ) 0perasi concatenation bersifat asosiatif ) x(yz) % (xy)z 7lemen identitas operasi concatenation adalah ) x % x % x Tiga sifat al abar alternation ) 0perasi alternation bersifat komutatif ) xy % yx 0perasi alternation bersifat asosiatif ) x(yz) % (xy)z 7lemen identitas operasi alternation adalah dirinya sendiri ) xx % x Sifat distributif concatenation terhadap alternation ) x (yz) % xyxz Beberapa kesamaan ) 1esamaan ke-8 ) (x2)2 % (x2)

hal 2

1esamaan ke-4 ) x + % x + % x2 1esamaan ke-5 ) (xy)2 % xyxxyyxyyx3 % semua string yang merupakan concatenation dari nol atau lebih x, y, atau keduanya. II. !RAMMAR DAN BAHASA "onsep Dasar 8. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal atau token. 4. 1alimat adalah deretan hingga simbol-simbol terminal. 5. Bahasa adalah himpunan kalimat-kalimat. #nggota bahasa bisa tak hingga kalimat. &. Simbol-simbol berikut adalah simbol terminal ) huruf kecil a9al alfabet, misalnya ) a, b, c simbol operator, misalnya ) :, , dan simbol tanda baca, misalnya ) (, ), dan ; string yang tercetak tebal, misalnya ) i , then, dan e#se. ;. Simbol-simbol berikut adalah simbol non terminal ) huruf besar a9al alfabet, misalnya ) #, B, + huruf S sebagai simbol a9al string yang tercetak miring, misalnya ) expr dan stmt. <. -uruf besar akhir alfabet melambangkan simbol terminal atau non terminal, misalnya ) =, >, ?. @. -uruf kecil akhir alfabet melambangkan string yang tersusun atas simbol-simbol terminal, misalnya ) ,, y, A. B. -uruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya ) , , dan . C. Sebuah produksi dilambangkan sebagai , artinya ) dalam sebuah deri6asi dapat dilakukan penggantian simbol dengan simbol . 8(. Simbol dalam produksi berbentuk disebut ruas kiri produksi sedangkan simbol disebut ruas kanan produksi. 88. Deri6asi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah deri6asi dilambangkan sebagai ) . 84. Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbolsimbol non terminal atau campuran keduanya. 85. 1alimat adalah string yang tersusun atas simbol-simbol terminal. $elaslah bah9a kalimat adalah kasus khusus dari sentensial. 8&. *engertian terminal berasal dari kata terminate (berakhir), maksudnya deri6asi berakhir ika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas simbol-simbol terminal itu). 8;. *engertian non terminal berasal dari kata not terminate (belum.tidak berakhir), maksudnya deri6asi belum.tidak berakhir ika sentensial yang dihasilkan mengandung simbol non terminal. !rammar $an "#asi i%asi &homs%' Drammar D didefinisikan sebagai pasangan & tuple ) E T , E F , S, dan G, dan dituliskan sebagai D(E T , E F , S, G), dimana ) ET ) himpunan simbol-simbol terminal (atau himpunan token -token, atau alfabet)

hal 3

EF ) himpunan simbol-simbol non terminal S E F ) simbol a9al (atau simbol start) G ) himpunan produksi Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya ( ), Foam +homsky mengklasifikasikan & tipe grammar ) 8. Drammar tipe ke-( ) Hnrestricted Drammar (HD) +iri ) , (E T E F )2, I ( 4. Drammar tipe ke-8 ) +onte,t Sensiti6e Drammar (+SD) +iri ) , (E T E F )2, ( J 5. Drammar tipe ke-4 ) +onte,t Kree Drammar (+KD) +iri ) E F , (E T E F )2 &. Drammar tipe ke-5 ) Legular Drammar (LD) +iri ) E F , ME T , E T E F N atau E F , ME T , E F E T N Oengingat ketentuan simbol-simbol (hal. 5 no. & dan ;), ciri-ciri LD sering dituliskan sebagai ) E F , Ma, b+N atau E F , Ma, BcN Tipe sebuah grammar (atau bahasa) ditentukan dengan aturan sebagai berikut ) A language is said to be type-i (i = ! 1! 2! 3" language if it can be specified by a type-i grammar but can#t be specified any type-(i$1" grammar% &ontoh Ana#isa Penentuan T'pe !rammar 8. Drammar D 8 dengan G 8 % MS aB, B bB, B bN. Luas kiri semua produksinya terdiri dari sebuah E F maka D 8 kemungkinan tipe +KD atau LD. Selan utnya karena semua ruas kanannya terdiri dari sebuah E T atau string E T E F maka D 8 adalah LD. 4. Drammar D 4 dengan G 4 % MS Ba, B Bb, B bN. Luas kiri semua produksinya terdiri dari sebuah E F maka D 4 kemungkinan tipe +KD atau LD. Selan utnya karena semua ruas kanannya terdiri dari sebuah E T atau string E F E T maka D 4 adalah LD. 5. Drammar D 5 dengan G 5 % MS Ba, B bB, B bN. Luas kiri semua produksinya terdiri dari sebuah E F maka D 5 kemungkinan tipe +KD atau LD. Selan utnya karena ruas kanannya mengandung string E T E F (yaitu bB) dan uga string E F E T (Ba) maka D 5 bukan LD, dengan kata lain D 5 adalah +KD. &. Drammar D & dengan G & % MS a#b, B aBN. Luas kiri semua produksinya terdiri dari sebuah E F maka D & kemungkinan tipe +KD atau LD. Selan utnya karena ruas kanannya mengandung string yang pan angnya lebih dari 4 (yaitu a#b) maka D & bukan LD, dengan kata lain D & adalah +KD. ;. Drammar D ; dengan G ; % MS a#, S aB, a#b aB+bN. Luas kirinya mengandung string yang pan angnya lebih dari 8 (yaitu a#b) maka D ; kemungkinan tipe +SD atau HD. Selan utnya karena semua ruas kirinya lebih pendek atau sama dengan ruas kananya maka D ; adalah +SD.

hal &

<. Drammar D < dengan G < % MaS ab, S#c bcN. Luas kirinya mengandung string yang pan angnya lebih dari 8 maka D < kemungkinan tipe +SD atau HD. Selan utnya karena terdapat ruas kirinya yang lebih pan ang daripada ruas kananya (yaitu S#c) maka D < adalah HD. Deri(asi "a#imat $an Penentuan Bahasa Tentukan bahasa dari masing-masing gramar berikut ) 8. D 8 dengan G 8 % M8. S a#a, 4. # a#a, 5. # bN. $a9ab ) Deri6asi kalimat terpendek ) Deri6asi kalimat umum ) S a#a (8) S a#a (8) aba (5) aa#aa (4) a n #a n (4) a n ba n (5) Dari pola kedua kalimat disimpulkan ) P 8 (D 8 ) % M a n ba n n 8N 4. D 4 dengan G 4 % M8. S aS, 4. S aB, 5. B b+, &. + a+, ;. + aN. $a9ab ) Deri6asi kalimat terpendek ) Deri6asi kalimat umum ) S aB (4) S aS (8) ab+ (5) aba (;) a n -8 S (8) n a B (4) n a b+ (5) n a ba+ (&) a n ba m -8 + (&) n m a ba (;) n m Dari pola kedua kalimat disimpulkan ) P 4 (D 4 ) % M a ba n 8, m 8N 5. D 5 dengan G 5 % M8. S aSB+, 4. S ab+, 5. bB bb, &. b+ bc, ;. +B B+, <. c+ ccN. $a9ab ) Deri6asi kalimat terpendek 8) Deri6asi kalimat terpendek 5 ) S ab+ (4) S aSB+ (8) abc (&) aaSB+B+ (8) Deri6asi kalimat terpendek 4 ) aaab+B+B+ (4) S aSB+ (8) aaabB++B+ (;) aab+B+ (4) aaabB+B++ (;) aabB++ (;) aaabBB+++ (;) aabb++ (5) aaabbB+++ (5) aabbc+ (&) aaabbb+++ (5) aabbcc (<) aaabbbc++ (&)

hal '

aaabbbcc+ (<) aaabbbccc (<) Dari pola ketiga kalimat disimpulkan ) P 5 (D 5 ) % M a n b n c n n 8N

Menentu%an !rammar Sebuah Bahasa 8. Tentukan sebuah gramar regular untuk bahasa P 8 % M a n n 8N $a9ab ) G 8 (P 8 ) % MS aSaN 4. Tentukan sebuah gramar bebas konteks untuk bahasa ) P 4 ) himpunan bilangan bulat non negatif gan il $a9ab ) Pangkah kunci ) digit terakhir bilangan harus gan il. Buat dua buah himpunan bilangan terpisah ) genap (D) dan gan il ($) G 4 (P 4 ) % MS $DS$S, D (4&<B, $ 85;@CN 5. Tentukan sebuah gramar bebas konteks untuk bahasa ) P 5 % himpunan semua identifier yang sah menurut bahasa pemrograman *ascal dengan batasan ) terdiri dari simbol huruf kecil dan angka, pan ang identifier boleh lebih dari B karakter $a9ab ) Pangkah kunci ) karakter pertama identifier harus huruf. Buat dua buah himpunan bilangan terpisah ) huruf (-) dan angka (#) G 5 (P 5 ) % MS --T, T #T-T-#, - abc3, # (843N &. Tentukan gramar bebas konteks untuk bahasa P & (D & ) % Ma n b m n,m 8, n mN $a9ab ) Pangkah kunci ) sulit untuk mendefinisikan P & (D & ) secara langsung. $alan keluarnya adalah dengan mengingat bah9a , y berarti , I y atau , J y. P & % P # P B , P # %Ma n b m n I m 8N, P B % Ma n b m 8 n J mN. G # (P # ) % M# a#a+, + a+babN, G(P B ) % MB BbDb, D aDbabN G & (P & ) % MS #B, # a#a+, + a+bab, B BbDb, D aDbabN ;. Tentukan sebuah gramar bebas konteks untuk bahasa ) P ; % bilangan bulat non negatif genap. $ika bilangan tersebut terdiri dari dua digit atau lebih maka nol tidak boleh muncul sebagai digit pertama. $a9ab ) Pangkah kunci ) Digit terakhir bilangan harus genap. Digit pertama tidak boleh nol. Buat tiga himpunan terpisah ) bilangan genap tanpa nol (D), bilangan genap dengan nol (F), serta bilangan gan il ($). G ; (P ; ) % MS FD#$#, # FF#$#, D 4&<B, F (4&<B, $ 85;@CN

hal (

hal )

Anda mungkin juga menyukai