Dasar Teori Bahasa & Grammar •Dasar Teori Bahasa •Grammar & Bahasa •Klasifikasi Noam Chomsky © B.Very Christioko, S.Kom
Dasar Teori Bahasa & Grammar•Dasar Teori Bahasa•Grammar & Bahasa•Klasifikasi Noam Chomsky
©B.Very Christioko, S.Kom
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 dalamsebuah bahasa dibangkitkan oleh sebuah tata bahasa (grammar)yang sama.
• Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tatabahasa berbeda.
• Dikatakan bahasa formal karena grammar diciptakan mendahuluipembangkitan setiap kalimatnya.
• Bahasa Natural/manusia bersifat sebaliknya; grammar diciptakanuntuk meresmikan kata-kata yang hidup di masyarakat. Dalampembicaraan selanjutnya ‘bahasa formal’ akan disebut ‘bahasa’saja.
©B.Very Christioko, S.Kom
Definisi-definisi dalam Teori Bahasa• Simbol adalah sebuah entitas abstrak (seperti halnya pengertian
titik dalam geometri). Sebuah huruf atau sebuah angka adalahcontoh simbol.
• String adalah deretan terbatas (finite) simbol-simbol. Sebagaicontoh, jika a, b, dan c adalah tiga buah simbol maka abcb adalahsebuah string yang dibangun dari ketiga simbol tersebut.
• Jika w adalah sebuah string maka panjang string dinyatakansebagai w dan didefinisikan sebagai cacahan (banyaknya)simbol yang menyusun string tersebut. Sebagai contoh, jika w =abcb maka w= 4.
• String hampa/kosong adalah sebuah string dengan nol buahsimbol. String hampa dinyatakan dengan simbol (epsilon)sehingga = 0.
• Alfabet adalah himpunan hingga (finite set) dari simbol-simbol
©B.Very Christioko, S.Kom
Operasi Dasar String (1)Diberikan dua string : x = abc, dan y = 123
• Prefik string w adalah string yang dihasilkan dari string wdengan menghilangkan nol atau lebih simbol-simbol palingbelakang dari string w tersebut.Contoh : abc, ab, a, dan adalah semua Prefix(x)
• ProperPrefix string w adalah string yang dihasilkan daristring w dengan menghilangkan satu atau lebih simbol-simbol paling belakang dari string w tersebut.Contoh : ab, a, dan adalah semua ProperPrefix(x)
• Postfix (atau Sufix) string w adalah string yangdihasilkan dari string w dengan menghilangkan nol ataulebih simbol-simbol paling depan dari string w tersebut.Contoh : abc, bc, c, dan adalah semua Postfix(x)
©B.Very Christioko, S.Kom
Operasi Dasar String (2)Diberikan dua string : x = abc, dan y = 123
• Head string w adalah simbol paling depan dari string w.Contoh : a adalah Head(x)
• Tail string w adalah string yang dihasilkan dari string wdengan menghilangkan simbol paling depan dari string wtersebut.Contoh : bc adalah Tail(x)
• Substring string w adalah string yang dihasilkan daristring w dengan menghilangkan nol atau lebih simbol-simbol paling depan dan/atau simbol-simbol palingbelakang dari string w tersebut.Contoh : abc, ab, bc, a, b, c, dan adalah semuaSubstring(x)
©B.Very Christioko, S.Kom
Operasi Dasar String (3)Diberikan dua string : x = abc, dan y = 123
• ProperSubstring string w adalah string yang dihasilkan daristring w dengan menghilangkan satu atau lebih simbol-simbolpaling depan dan/atau simbol-simbol paling belakang daristring w tersebut.Contoh : ab, bc, a, b, c, dan adalah semua Substring(x)
• Subsequence string w adalah string yang dihasilkan dari stringw dengan menghilangkan nol atau lebih simbol-simbol dari stringw tersebut.Contoh : abc, ab, bc, ac, a, b, c, dan adalah semuaSubsequence(x)
• ProperSubsequence string w adalah string yang dihasilkan daristring w dengan menghilangkan satu atau lebih simbol-simboldari string w tersebut.Contoh : ab, bc, ac, a, b, c, dan adalah semua Subsequence(x)
©B.Very Christioko, S.Kom
Operasi Dasar String (4)Diberikan dua string : x = abc, dan y = 123
• Concatenation adalah penyambungan dua buah string.Operator concatenation adalah concate atau tanpalambang apapun.Contoh : concate(xy) = xy = abc123
• Alternation adalah pilihan satu di antara dua buahstring. Operator alternation adalah alternate atau .Contoh : alternate(xy) = xy = abc atau 123
• Kleene Closure : x* = xxxxxx… = xx x …
• Positive Closure : x = xxxxxx… = xx x …
©B.Very Christioko, S.Kom
Konsep Dasar Grammar (1)• Anggota alfabet dinamakan simbol terminal.• Kalimat adalah deretan hingga simbol-simbol terminal.• Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa
tak hingga kalimat.
• Simbol-simbol berikut adalah simbol terminal :▫ huruf kecil, misalnya : a, b, c▫ simbol operator, misalnya : +, , dan ▫ simbol tanda baca, misalnya : (, ), dan ;▫ string yang tercetak tebal, misalnya : if, then, dan else.
• Simbol-simbol berikut adalah simbol non terminal /Variabel :▫ huruf besar, misalnya : A, B, C▫ huruf S sebagai simbol awal▫ string yang tercetak miring, misalnya : expr
©B.Very Christioko, S.Kom
Konsep Dasar Grammar (2)• Huruf yunani melambangkan string yang tersusun atas
simbol-simbol terminal atau simbol-simbol non terminalatau campuran keduanya, misalnya : , , dan .
• Sebuah produksi dilambangkan sebagai , artinya :dalam sebuah derivasi dapat dilakukan penggantian simbol dan simbol .
• Derivasi adalah proses pembentukan sebuah kalimat atausentensial. Sebuah derivasi dilambangkan sebagai : .
• Sentensial adalah string yang tersusun atas simbol-simbolterminal atau simbol-simbol non terminal atau campurankeduanya
©B.Very Christioko, S.Kom
Tata Bahasa / Grammar
Aturan yang disebutkan pada proses pengenalan dan pembangkitankalimat. Secara formal, tata bahasa terdiri dari 4 komponen yaitu :1. Himpunan berhingga, tidak kosong dari simbol-simbol terminal
VT
2. Himpunan berhingga, dari simbol-simbol non-terminal VN
3. Simbol awal S ∈ VN, yang merupakan salah satu anggota darihimpunan simbol non-terminal.
4. Himpunan berhingga aturan produksi P yang setiap elemennyadituliskan dalam bentuk :
dimana α dan β adalah string yang dibentuk dari himpunanVT U VN dan α harus berisi paling sedikit satu simbol non-terminal VN .
©B.Very Christioko, S.Kom
Syarat sebuah aturan produksi
• Ruas kiri tidak boleh merupakan himpunankosong (ε, Ǿ).• Contoh : ε Abd
• Ruas kiri harus memuat simbol yang bisaditurunkan (Non Terminal).• Contoh:• A bd• aB bd
©B.Very Christioko, S.Kom
Grammar• Grammar G didefinisikan sebagai pasangan 4
tuple : VT, VN, S, dan P, dan dituliskan sebagaiG(VT, VN , S, P), dimana :•• VT : himpunan simbol-simbol terminal
(alfabet) kamus• VN : himpunan simbol-simbol non terminal• S VN : simbol awal (atau simbol start)• P : himpunan produksi
©B.Very Christioko, S.Kom
Bahasa yang dihasilkan dari aturan produksi
• Bahasa yang dihasilkan oleh G ditulis sebagai L(G), yaitu himpunan stringyang dapat diturunkan dari simbol awal S dengan menerapkan aturan-aturan produksi yang terdapat pada P (Produksi).
• Contoh:Tatabahasa G = {{S} , {a,b}, S , P } dengan aturan produksi P adalah
S → aSbS → ε
maka dapat dihasilkan suatu stringS ⇒ aSb ⇒ aaSbb ⇒aabb
sehingga dapat dituliskanS ⇒ * aabb
Bahasa yang dihasilkan dari tatabahasa tersebut adalahL(G) = { ε , ab, aabb , aaabbb , aaaabbbb, ... }
atau dapat pula dituliskan
}0|{)( nbaGL nn
©B.Very Christioko, S.Kom
Contoh Grammar:1. G1 : VT = {I, Love, Miss, You}, VN = {S,A,B,C},
P = {S ABC, A I, B Love | Miss, C You}
S ABC IloveYou IMissYou
L(G1)={IloveYou,IMissYou}
2. G2 : VT = {a}, VN = {S}, P = {S aSa}
S aS aaS aaa L(G2) ={an n ≥ 1}
L(G2)={a, aa, aaa, aaaa,…}©B.Very Christioko, S.Kom
Klasifikasi Chomsky• Berdasarkan komposisi bentuk ruas kiri dan ruas
kanan produksinya ( ), Noam Chomskymengklasifikasikan 4 tipe grammar :
1. Grammar tipe ke-0 : Unrestricted Grammar (UG)Ciri : , (VT U VN)*, > 0
2. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)Ciri : , (VT U VN) *, 0 <
3. Grammar tipe ke-2 : Context Free Grammar (CFG)Ciri : VN , (VT U VN)*
4. Grammar tipe ke-3 : Regular Grammar (RG)Ciri : VN , {VT, VT VN }
©B.Very Christioko, S.Kom
Klasifikasi Chomsky
©B.Very Christioko, S.Kom
Unrestricted Grammar (UG)Ciri Utama:• Ruas kiri anggota dari• Ruas kanan anggota dari• Kardinalitas ruas kiri > 0• Kardinalitas ruas kanan ≥ 0• Tidak ada batasan pada aturan produksi
Contoh:Abc DeCB DBAdc ε
)( NT VV*)( NT VV
©B.Very Christioko, S.Kom
Context Sensitive Grammar (CSG)
Ciri Utama:• Panjang ruas kiri ≤ panjang ruas kanan.• Panjang ruas kiri > 0.
Contoh:aD DaAD aCDAD abcDE
©B.Very Christioko, S.Kom
Context Free Grammar (CFG)Ciri Utama:• Ruas kiri anggota dari VN
• Ruas kanan anggota dari• Ruas kiri tepat satu simbol variabel / Non
Terminal
Contoh:P aQbQ abPRSR ε
*)( NT VV
©B.Very Christioko, S.Kom
Regular Grammar (RG)Ciri Utama:• Ruas kiri anggota dari VN
• Ruas kanan anggota dari {VT, VT VN }• Ruas kanan berbentuk aB atau a, dengan a Є V*T dan B
Є VN
• Ruas kiri tepat satu simbol variabel / Non Terminal• Ruas kanan maksimal memiliki sebuah simbol
variabel/non terminal yang teletak di paling kanan
Contoh:S aS | aBB bCC aC | a
©B.Very Christioko, S.Kom
Latihan
• Buku “Teori Bahasa dan Otomata” FirrarUtdirartatmo, Bab 1 halaman 13.
©B.Very Christioko, S.Kom