TEORI BAHASA DAN OTOMATA PERTEMUAN KE 2

  

GRAMMAR DAN BAHASA GRAMMAR DAN BAHASA

MATERI MINGGU KE MATERI MINGGU KE

GRAMMAR DAN BAHASA GRAMMAR DAN BAHASA

MATERI MINGGU KE MATERI MINGGU KE--22

TATA BAHASA TATA BAHASA

TATA BAHASA TATA BAHASA

  , anggota alfabet dinamakan simbol simbo-lsimbol terminal. kalimat-kalimat. Anggota bahasa bisa tak

  • Dalam pembicaraan tata bahasa, terminal atau token.
  • Kalimat adalah deretan hingga simbo
  • Bahasa adalah himpunan kalimat hingga kalimat.

TATA BAHASA TATA BAHASA

TATA BAHASA TATA BAHASA

  • Simbol-Simbol Terminal: huruf kecil awal alfabet, misalnya simbol operator, misalnya simbol tanda baca, misalnya string yang tercetak tebal
  • Simbol-Simbol Non Terminal: huruf besar awal alfabet, huruf S sebagai sebagai String yang tercetak miring,

  misalnya : a, b, c misalnya : +, −, dan × misalnya : ( ) ,, dan ; tebal, misalnya : if, then dan else

  Non Terminal: , misal: A, B, C simbol awal miring, misalnya : expr dan stmt .

TATA BAHASA TATA BAHASA

TATA BAHASA TATA BAHASA

  melambangkan simbol terminal atau non melambangkan string yang tersusun atas misalnya : xyz string yang tersusun atas simbol- simbol non terminal atau campuran

  • Huruf besar akhir alfabet melambangkan terminal, misalnya : X, Y, Z.
  • Huruf kecil akhir alfabet melambangkan simbol-simbol terminal, misalnya
  • Huruf yunani melambangkan string simbol terminal atau simbol-simbol keduanya, misalnya : α, β, dan γ.

TATA BAHASA TATA BAHASA TATA BAHASA TATA BAHASA

  

Sebuah produksi dilambangkan sebagai sebagai α → β, artinya : dalam sebuah

derivasi dapat dilakukan penggantian penggantian simbol α dengan simbol β.

  α β

Simbol α dalam produksi berbentuk berbentuk α → β. α disebut ruas kiri produksi

sedangkan simbol β disebut ruas kanan kanan produksi.

TATA BAHASA TATA BAHASA

TATA BAHASA TATA BAHASA

  (yang tersusun atas simbol-simbol terminal itu). terminate (belum/tidak berakhir), maksudnya derivasi dihasilkan mengandung simbol non terminal.

  sebuah kalimat atau sentensial. Sebuah derivasi simbol-simbol terminal atau simbol-simbol non atas simbol-simbol terminal, sehingga kalimat berakhir), maksudnya derivasi berakhir jika sentensial

  • Derivasi adalah proses pembentukan sebuah dilambangkan sebagai : α⇒β.
  • Sentensial adalah string yang tersusun atas simbol terminal atau campuran keduanya.
  • Kalimat adalah string yang tersusun atas merupakan kasus khusus dari sentensial.
  • Terminal berasal dari kata terminate (berakhir yang dihasilkan adalah sebuah kalimat (yang
  • Non Terminal berasal dari kata not terminate belum/tidak berakhir jika sentensial yang dihasilkan

  

TATA BAHASA TATA BAHASA TATA BAHASA TATA BAHASA

ATURAN PRODUKSI

  Aturan produksi dinyatakan dalam bentuk α → β

  • α menghasilkan atau menurunkan β symbol-symbol untuk ruas kanan
  • α symbol-symbol untuk ruas kiri, β symbol terminal dan non terminal dimana non terminal
  • Symbol-symbol dapat berupa terminal dapat diturunkan menjadi symbol yang symbol yang lainnya.

  disymbolkan dengan huruf kecil (a,b,c, dsb),

  • Umumnya symbol terminal disymbolkan sedangkan untuk symbol non terminal disymbolkan disymbolkan dengan huruf besar (A,B,C, dsb)

  Contoh: T → a “T menghasilkan menghasilkan a” T → E | E + A “ T menghasilkan menghasilkan E atau T menghasilkan E + A

GRAMMAR GRAMMAR GRAMMAR GRAMMAR

  Grammar G didefinisikan sebagai pasangan pasangan 4 tuple : V , V , S, dan Q, dan

  T N

  dituliskan sebagai G(V , V , S, Q), dimana :

  T N

  : himpunan simbol-simbol simbol terminal (atau himpunan token - token,

  • V

  T

  atau alfabet) : himpunan simbol-simbol simbol non terminal

  • V

  N

  : simbol awal (atau simbol simbol start)

  • S V

  N

  : himpunan produksi

  • Q

  Contoh :

  G : V = {a}, V = {S}, Q= {S  aS aS a}

1 T N

  S  aS  aaS  aaa

  L(G )={a, aa, aaa, aaaa,…}

  1 n

GRAMMAR GRAMMAR GRAMMAR GRAMMAR

  

Tipe sebuah grammar (atau bahasa) ditentukan dengan

aturan sebagai berikut :

A language is said to be type type-i (i = 0, 1, 2, 3) language if it

can be specified by a type type-i grammar but can’t be specified any type-(i+1) grammar grammar.

HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY

  Ada 4(empat) kelas pengelompokan suatu suatu bahasa, yang dikenal dengan “Chomsky

  

Hierarchy”. Hirarki atau tingkatan bahasa bahasa ini dikembangkan oleh Noam Chomsky

pada tahun 1959.

  Berdasarkan komposisi bentuk ruas kiri dan dan ruas kanan produksinya (   ), Noam Chomsky mengklasifikasikan 4 tipe grammar grammar :

HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY

1. Grammar tipe ke-0 : Unrestricted Grammar (UG) 0 : Unrestricted Grammar (UG) | V )*, |α|> 0 α, β ∈ (V T N

  Ciri : Tidak ada batasan pada aturan produksi produksi Mesin pengenal bahasa disebut : Mesin Turing Turing Contoh :

  • Abc → De •

  G = (V, T, P, S) V = {S, A, B, G} T = {a, b,d} Q : S  aSa

  A  bdG AB  a

HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY

  | V )*, 0 < |α α| ≤ |β| α, β (V T N Ciri : Panjang string ruas kiri harus < (lebih kecil ) atau = (sama dengan) ruas kanan.

  Mesin pengenal bahasa disebut : Linear Bounded Bounded Automata (LBA) Contoh : G = {V, T, P, S} V = {S, B, C}

  T = {a, b, c} Q : S  aSBC | aBC |  CB  BC aB  ab bB  bb bC  bc cC  cc

HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY

  |V |V )* N T N α V , β (V

  Ciri : Ruas kiri haruslah tepat satu symbol variabel variabel, yaitu simbol non terminal Mesin pengenal bahasa disebut : Push Down Automata (PDA) Push Down Automata (PDA) Contoh : G = {V, T, P, S} V = {S, A, B} T = {a, b} Q : S  aB | bA

  A  a | aS | bAA B  b | bS | aBB

HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY HIRARKI CHOMSKY

  Regular Grammar (RG) Regular Grammar (RG)

4. Grammar tipe ke-3 : , V V } atau , V V }

  

α V N , β {V T T N atau α V N , β {V T N T

Ciri :

  Ruas kiri hanya memiliki maksimal satu symbol non terminal

  • Ruas kiri hanya memiliki maksimal satu symbol non terminal
  • α adalah simbol nonterminal tunggal simbol non terminal tunggal dan
  •  maksimal memiliki maksimal satu simbol ditempatkan pada posisi paling kanan.

  Mesin pengenal bahasa disebut : Finite State Automata (FSA) Finite State Automata (FSA)

  Contoh :

  G = (V, T, P, S) V = {S, A, B} T = {0, 1}

  Q : S  0A | 1B | 0 A  0A | 0S | 1B

  Contoh Analisa Contoh Analisa Penentuan Penentuan Type Type

Grammar Grammar Grammar Grammar

  1. Grammar G dengan Q = {S → aB, B → , B → bB, B → b}.

  1

  1

  terdiri dari sebuah V maka G kemungkinan

  • Ruas kiri semua produksinya terdiri

  N

  1 tipe CFG atau RG.

  terdiri dari sebuah V atau string V V maka

  • Karena semua ruas kanannya terdiri

  T T N G1 adalah RG.

  2. Grammar G dengan Q = {SBa, B   Bb, B b}.

  2

  2

  terdiri dari sebuah V maka G kemungkinan

  • Ruas kiri semua produksinya terdiri

  N

  2 tipe CFG atau RG.

  kanannya terdiri dari sebuah V atau string

  • Selanjutnya karena semua ruas kanannya

  T

  V V maka G adalah RG

  N T

  2

  Penentuan Penentuan Type Type

Grammar Grammar

→ aB, aAb → aBCb}.

3. Grammar G

  yang panjangnya lebih dari 1 (yaitu aAb) atau UG pendek atau sama dengan ruas kananya

  Contoh Contoh Analisa Analisa

Grammar Grammar

  3 dengan Q

  3 = {S → aA, S →

  • Ruas kirinya mengandung string yang maka G

  kemungkinan tipe CSG atau

  • karena semua ruas kirinya lebih pendek maka G

  3

  adalah CSG

  4. Grammar G

  4 = {aS → ab, SAc

  SAc) maka G

  4 adalah UG.

  3

  SAc → bc}

  yang panjangnya lebih dari 1 maka G

  • Ruas kirinya mengandung string kemungkinan tipe CSG atau UG
  • Karena terdapat ruas kirinya yang lebih

  4

  lebih panjang daripada ruas kananya (yaitu

  4 dengan Q

DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA

  Tentukan bahasa dari masing-masing gramar gramar berikut : 1. G dengan Q = {1. S aAa, 2. A aAa aAa, 3. A b}.

  1

1 Jawab :

  Derivasi kalimat terpendek : Derivasi kalimat umum : S  aAa (1) S  aAa (1)

   aba (3)  aaAaa (2) 

  n n

   a Aa (2)

  n n

   a ba (3)

  n n Dari pola kedua kalimat disimpulkan : L (G (G ) = {a ban 1}

  1

  1

  

DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA

2. G dengan Q = {1. S aS, 2. S aB aB, 3. B bC, 4. C aC, 5. C a}.

  2

2 Jawab :

  Derivasi kalimat terpendek : Derivasi kalimat umum : S  aB (2) S  aS aS (1)

   abC (3) 

  

n- -1

   aba (5)  a S (1)

  n

   a B B (2)

  n

   a bC bC (3)

  n

   a baC baC (4)  

  n m-1

   a ba ba C (4)

  n m

   a ba ba (5)

  n m

DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA

3. G

  3 dengan Q

  3 = {1. SaSBC, 2. S abC cCcc}.

  Jawab : Derivasi kalimat terpendek 1: Derivasi S  abC (2) S  aSBC  abc (4)

  

 aaSBCBC

Derivasi kalimat terpendek 2 :  aaabCBCBC S  aSBC (1)  aaabBCCBC  aabCBC (2)  aaabBCBCC

   aabBCC (5)  aaabBBCCC  aabbCC (3)  aaabbBCCC

   aabbcC (4)  aaabbbCCC  aabbcc (6)  aaabbbcCC  aaabbbccC  aaabbbccc

  

DERIVASI KALIMAT DAN PENENTUAN BAHASA DERIVASI KALIMAT DAN PENENTUAN BAHASA

abC, 3. bBbb, 4. bC bc, 5. CB BC, 6.

  Derivasi kalimat terpendek 3 : aSBC (1) aaSBCBC (1) aaabCBCBC (2) aaabBCCBC (5) aaabBCBCC (5) aaabBBCCC (5) aaabbBCCC (3) aaabbbCCC (3) aaabbbcCC (4) aaabbbccC (6) aaabbbccc (6)

  

Menentukan Grammar Menentukan Grammar Grammar Sebuah Grammar Sebuah Bahasa Bahasa

n

  1. Tentukan sebuah gramar regular untuk bahasa bahasa L = { a  n  1}

  1 Jawab :

  Q (L ) = {S  aSa}

  1

  1

  2. Tentukan sebuah gramar bebas konteks untuk bahasa L : himpunan bilangan

  2

  bulat non negatif ganjil Jawab : Langkah kunci : digit terakhir bilangan harus harus ganjil.

  Buat dua buah himpunan bilangan terpisah terpisah : genap (G) dan ganjil (J) Q (L ) = {S  JGSJS, G  02468, J 8, J  13579}

  2

  2

  

Menentukan Grammar Menentukan Grammar Grammar Sebuah Grammar Sebuah Bahasa Bahasa

  3. Tentukan sebuah gramar bebas konteks untuk bahasa :

  

L = himpunan semua identifier yang sah sah menurut bahasa pemrograman Pascal

  3 dengan batasan : terdiri dari simbol huruf huruf kecil dan angka, panjang identifier boleh lebih dari 8 karakter

  Jawab : Langkah kunci : karakter pertama identifier identifier harus huruf.

  Buat dua himpunan bilangan terpisah : huruf huruf (H) dan angka (A) Q (L ) = {S  HHT, T  ATHTHA,

  3

3 H  abc…, A  012…}

  

Menentukan Grammar Menentukan Grammar Grammar Sebuah Grammar Sebuah Bahasa Bahasa

  4. Tentukan gramar bebas konteks untuk bahasa bahasa

  n m

  Q (L ) = {a b n,m  1, n  m}

  4

4 Jawab :

  Langkah kunci : sulit untuk mendefinisikan mendefinisikan L (G ) secara langsung. Jalan keluarnya

  4

  4 adalah dengan mengingat bahwa x  y berarti berarti x > y atau x < y. n m n m L = L  L , L ={a b n > m  1}, L = {a b b 1  n < m}.

4 A B A B

  Q (L ) = {A  aAaC, C  aCbab}, Q(L ) = = {B  BbDb, D aDbab}

  A A B

  Q (L ) = {S  AB, A  aAaC, C  aCbab ab, B  BbDb, D aDbab}

  4

  4

  

Menentukan Grammar Menentukan Grammar Grammar Sebuah Grammar Sebuah Bahasa Bahasa

  5. Tentukan sebuah gramar bebas konteks untuk bahasa : L = bilangan bulat non negatif genap. Jika Jika bilangan tersebut terdiri dari dua digit

  5 atau lebih maka nol tidak boleh muncul muncul sebagai digit pertama.

  Jawab : Langkah kunci : Digit terakhir bilangan harus harus genap. Digit pertama tidak boleh nol.

  Buat tiga himpunan terpisah : bilangan bilangan genap tanpa nol (G), bilangan genap dengan nol (N), serta bilangan ganjil (J). .

  Q (L ) = {S  NGAJA, A  NNAJA,

  5

5 G  2468, N 02468 , J  13579}

  TERIMAKASIH TERIMAKASIH Lilis Setyowati