• Tidak ada hasil yang ditemukan

Lecture 02. Introduction to Grammar

N/A
N/A
Protected

Academic year: 2021

Membagikan "Lecture 02. Introduction to Grammar"

Copied!
31
0
0

Teks penuh

(1)

Lecture 02

CS3113 Theory of Computation

CS3113 Theory of Computation

(2)

Mengapa mempelajari teori ?

“ Suatu teori hanya menarik ketika dapat

membantu dalam pencarian solusi terbaik”

“ Teori memberikan konsep dan prinsip yang

“ Teori memberikan konsep dan prinsip yang

menolong untuk memahami perilaku dari

suatu disiplin ilmu”

(3)

Teori komputasi

• Studi tentang peralatan atau “mesin” komputasi abstrak, yang dapat didefinisikan secara matematis.

• Tujuan utama adalah mendefinisikan:

– apa yang bisa dilakukan oleh komputer dan apa yang tidakapa yang bisa dilakukan oleh komputer dan apa yang tidak – bagaimana komputasi dilakukan

• Tipe paling sederhana dari mesin abstrak adalah finite

automaton atau finite state machinefinite state machinefinite state machinefinite state machine.

– Prinsip  sistem pada setiap saat dalam salah satu dari sejumlah state berhingga dan bergerak diantara state-state tersebut dalam merespon sinyal input individual.

(4)

Important terms

• Alphabet

– Himpunan simbol

• String

• String

– daftar simbol dari alphabet

• Language

(5)

Alfabet

• Alfabet : finite set (himpunan hingga) dan non-empty

set (tak kosong) dari simbol- simbol.

• Contoh :

• Contoh :

– Σ = {0, 1}, merupakan alfabet biner

– Σ = {a, b, c, .., z}, merupakan alphabet dari lower case

(6)

String [1]

• String / word : finite sequence symbols (deretan hingga

simbol-simbol) yang diambil dari alfabet.

– Contoh : 01101 merupakan string dari alphabet biner Σ = {0, 1}.

• Empty string : string dengan kemunculan simbol adalah

• Empty string : string dengan kemunculan simbol adalah

nol.

– Empty string dinotasikan dengan ε atau λ

• Panjang String : |w|

(7)

String [2]

Power of an Alphabet

• Jika Σ adalah suatu alfabet, maka kita dapat

mengekspresikan sekumpulan string dengan panjang

tertentu dari alphabet dengan cara Σ

k

– Contoh : Jika Σ = {0, 1}, maka Σ0 = {λ} , Σ1 = {0,1} , Σ2= {00, 01, 10, 11} ,

Σ2= {00, 01, 10, 11} ,

Σ3 = {000, 001, 010, 011, 100,101, 110, 111}

• Σ

*

akan kita sebut sebagai himpunan string yang dapat

dibangun oleh alphabet

{0, 1}

*

= {λ, 0, 1, 00, 01, 10, 11, 000, …}

Σ

* =

Σ

0

U Σ

1

U Σ

2

U Σ

3

U …

(8)

String [3]

String [3]

String [3]

String [3]

Perangkaian String ( Perangkaian String ( Perangkaian String (

Perangkaian String (concatenationconcatenationconcatenation))))concatenation

• Misalkan x dan y adalah string, maka xy menyatakan

perangkaian dari x dan y, bahwa string dibentuk dengan membuat salinan dari x dan diikuti oleh salinan dari y. • Jika x adalah string yang disusun oleh i simbol,

x = a1a2 ... ai x = a1a2 ... ai

dan y adalah string yang disusun oleh j simbol,

y = b1b2 ... bj

maka xy adalah string dengan panjang i + j,

xy = a1a2 ... aib1b2 ... bj

– Contoh: x = 01101 dan y = 110,

maka xy = 01101110 dan yx = 11001101.

• Untuk suatu string w, persamaan εw = w

ε

= w dipenuhi. Bahwa ε adalah identitas untuk perangkaian.

(9)

Bahasa

Bahasa

Bahasa

Bahasa

• Himpunan string-string yang semuanya dipilih dari Σ*, dimana Σ adalah alphabet, dan L ⊆ Σ*, maka L adalah bahasa pada Σ.

• Perhatikan bahwa bahasa pada Σ tidak harus meliputi string-string dengan semua simbol dari Σ.

string-string dengan semua simbol dari Σ.

• Dengan demikian, jika L adalah bahasa pada Σ, diketahui bahwa L adalah bahasa pada alphabet yang merupakan superset dari Σ.

• Bahasa umum dapat dipandang sebagai himpunan dari string.

(10)

Contoh bahasa

• Bahasa Inggris, yang merupakan koleksi dari

kata-kata dalam bahasa Inggris yang benar.

– Kata-kata tersebut merupakan string pada alphabet yang mengandung semua huruf.

• Bahasa C atau bahasa pemrograman lainnya.

– Dalam bahasa tersebut, program yang benar adalah subset dari string-string yang mungkin yang dibentuk dari alphabet.

– Alphabet tersebut adalah subset dari karakter-karakter ASCII.

(11)

Contoh bahasa

• Bahasa dari semua string yang berisi n buah 0 dan diikuti

oleh n buah 1, untuk n ≥ 0: {ε, 01, 0011, 000111, ...}

• Himpunan string-string dari 0 dan 1 dengan banyaknya 0

sama dengan banyaknya 1.

• Himpunan string-string dari 0 dan 1 dengan banyaknya 0

sama dengan banyaknya 1.

{ε, 01, 10, 0011, 0101, 1001 ...}

• Himpunan bilangan biner yang memiliki nilai prima

(12)

Contoh bahasa

Σ* adalah bahasa untuk alphabet Σ

φ adalah bahasa kosong, merupakan

bahasa pada suatu alphabet.

• {ε}, bahasa yang hanya mengandung string

kosong, juga merupakan bahasa pada suatu

alphabet. Perhatikan bahwa

φ ≠ {ε}

(13)

Contoh bahasa

Berikut adalah contoh bahasa pada

Σ = {a, b}:

1. L

1

= {

ε, a, aa, aab}

2. L

2

= {x ∈ {a, b}* |x| ≤ 8}

3. L

3

= {x

∈ {a, b}* |x| adalah ganjil}

3. L

3

= {x

∈ {a, b}* |x| adalah ganjil}

4. L

4

= {x ∈ {a, b}* n

a

(x) ≥ n

b

(x)}

5. L

5

= {x

∈ {a, b}* |x| ≥ 2, x diawali dan diakhiri

dengan b}

(14)

Notasi lain dari Bahasa

1. Berdasarkan string-string yang dikonstruksi di dalamnya.

Contoh: L1 = {ab, bab}* ∪ {b}{bb}*

2. Sifat atau karakteristik dari string dalam L, Contoh: L = {byb y ∈ {a, b}*}.

Contoh: L = {byb y {a, b}*}. 3. Definisi rekursif

Contoh: Definisi rekursif dari L*: • ε ∈ L*

• Untuk suatu x ∈ L* dan suatu y ∈ L, xy ∈ L*

• Tidak ada string dalam L* selain yang diperoleh menggunakan aturan 1 dan 2.

(15)

Perangkaian Bahasa

Perangkaian Bahasa

Perangkaian Bahasa

Perangkaian Bahasa

• Jika L

1

dan L

2

adalah bahasa, L

1

dan L

2

⊆ Σ*.

Perangkaian dari L

1

dan L

2

dinotasikan L

1

L

2

= {xy

| x ∈ L

1

dan y ∈ L

2

}.

• Sebagai contoh, {hope, fear}{less, fully} =

{hopeless, hopefully, fearless, fearfully}.

• Untuk L adalah bahasa, L{ε} = {ε}L karena untuk

setiap x

∈ L, xε = εx = x.

(16)

Grammar

• Sistem matematis untuk mendefinisikan

bahasa.

• Bahasa yang didefinisikan oleh grammar

• Bahasa yang didefinisikan oleh grammar

adalah himpunan string yang hanya berisi

terminal dan dapat diturunkan mulai dari

simbol tertentu yang dikhususkan yang

(17)

Komponen Grammar [1]

• Bentuk formal :

G = (VN, VT, S, F)

• VN (variabel non terminal) adalah himpunan simbol yang

masih bisa diturunkan.

– VN biasanya dituliskan dalam huruf kapital. – VN biasanya dituliskan dalam huruf kapital. – Contoh ‘A’, ‘B’, ‘C’, ‘S’

• VT (variabel terminal) adalah himpunan simbol yang

sudah tidak bisa diturunkan lagi.

– VT biasanya dituliskan dalam hurul kecil, dan bisa berupa angka atau simbol lain.

(18)

Komponen Grammar [2]

• S (starting symbol) adalah variabel non terminal yang

digunakan sebagai awal penurunan produksi.

• F (aturan produksi) adalah aturan yang menspesifikasikan bagaimana mentransformasi suatu string ke bentuk lainnya. bagaimana mentransformasi suatu string ke bentuk lainnya. Kita akan menuliskan aturan produksi dalam bentuk α  β.

– α minimal mengandung 1 variabel nonterminal – Contoh :

• T  a (dibaca: T menghasilkan a atau T menurunkan a) • E  T | T+E

(19)
(20)

Tipe Bahasa

• Pada tahun 1959, Noam Chomsky menggolongkan bahasa menjadi 4 tingkatan (dikenal dengan Hirarki Chomsky)

(21)

Tipe Bahasa

Bahasa

Mesin Automata

Batasan Produksi

Regular / Tipe 3

Finite State Automata (FSA) meliputi

Deterministic Finite

Automata (DFA) dan Non

α adalah sebuah simbol variabel

β maksimal memiliki sebuah simbol variabel Automata (DFA) dan Non

Deterministic Finite Automata (NFA)

sebuah simbol variabel yang bila ada terletak paling kanan

Bebas Konteks / Context Free / Tipe 2

Push Down Automata (PDA)

α adalah sebuah simbol variabel

(22)

Tipe Bahasa

Bahasa

Mesin Automata

Batasan Produksi

Context Sensitive / Tipe 1

Linier Bounded Automata |α| <= |β|

Unrestricted / Phase Structure / Natural Language / Tipe 0

(23)

Unrestricted (kelas 0)

• Bahasa manusia / natural language masuk ke

dalam grammer Tipe 0 / Unrestricted, dimana

tidak ada batasan pada aturan produksinya.

– Contoh :

– Contoh :

(24)
(25)

CSG (kelas 1)

• Pada bahasa Context Sensitive, |α| <= |β|.

– Contoh :

Ab

 DeF

CD

 eF

CD

 eF

– Perhatikan S ε.

Apakah masuk ke Context Sensitive????

– Context Sensitive digunakan untuk proses analisis

semantik dalam tahapan kompilasi.

(26)
(27)

CFG (kelas 2)

• Pada bebas konteks, (context free grammer)

batasan bertambah dengan ruas kiri harus

tepat 1 simbol variabel.

– Contoh :

– Contoh :

B

 CDeFg

D

 BcDe

– Bahasa bebas konteks menjadi dasar dalam

pembentukan suatu parser / analisis sintaksis.

(28)
(29)

Regular Language (kelas 3)

• Pada bahasa reguler, batasan ini bertambah

dengan ruas kanan maksimal memiliki sebuah

simbol variabel yang letaknya paling kanan.

simbol variabel yang letaknya paling kanan.

– Contoh :

A

 e | efgC

C

 cD | D

(30)
(31)

Tipe Bahasa

• Aturan produksi berikut ini tidak legal :

ε

 Abd

karena ruas kiri tidak boleh berupa ε.

• Aturan berikut juga tidak legal :

a

 bd

a

 bd

ab

 bd

karena ruas kiri harus memuat simbol yang bisa

diturunkan.

• Aturan di atas tidak legal untuk aturan produksi yang

Unrestricted sekalipun.

Referensi

Dokumen terkait

Secara keseluruhan EPIC rate, rata-rata adalah 4,077, artinya iklan menggunakan aplikasi mobile offline ini berada pada dimensi “efektif” (Gambar 4). Hal ini

Perbedaan persentase penyembuhan luka didasarkan pada luka hewan uji perlakuan diberikan salep ekstrak etanol Suruhan (Peperomia pellucida) yang mengandung zat fitokimia yaitu

Teknik pembiusan dengan penyuntikkan obat yang dapat menyebabkan pasien mengantuk, tetapi masih memiliki respon normal terhadap rangsangan verbal dan tetap dapat mempertahankan

One of the most practical uses of point groups and group theory for the inorganic chemist is in predicting the number of infrared and Raman bands that may be expected from

Penelitian ini bertujuan untuk mengetahui efektivitas ekstrak etanolik daun sendok (Plantago lanceolata L.) topikal terhadap re–epitelisasi penyembuhan ulkus traumatik mulut

Dengan persepsi yang demikian ini, dimungkinkan mahasiswa menjadi bersemangat dalam berlatih, dan tampil penuh, sehingga pada akhir program penelitian (akhir siklus

Tingkat ketidakjenuhan CPO yang tinggi memiliki beberapa keuntungan seperti (a) meningkatkan kualitas CPO, (b) berguna sebagai alternatif bahan baku untuk medis

Supaya sel gamet mampu melakukan fertilisasi, sel gamet mengalami suatu perkembangan yang disebut dengan gametogenesis (pembentukan gamet). Pembentukan gamet pada