konsepsentral - materi 2 teori bahasa dan automata

39
STIKOM Artha Buana Teknik Informatika 2014 Ir. Ahmad Haidaroh, M.Kom.

Upload: ahmad-haidaroh

Post on 19-Jul-2015

271 views

Category:

Education


11 download

TRANSCRIPT

Page 1: Konsepsentral - Materi 2 Teori Bahasa dan Automata

STIKOM Artha Buana

Teknik Informatika

2014

Ir. Ahmad Haidaroh, M.Kom.

Page 2: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Sebelumnya . . .

. 2STIKOM Artha Buana

Page 3: Konsepsentral - Materi 2 Teori Bahasa dan Automata

• FSA (Finite State Automata), tata bahasa

formal: desain/ konstruksi perangkat lunak.

• Mesin Turing, membantu pemahaman yang

diinginkan dari perangkat lunak.

• Penyelesaian masalah? Atau menggunakan

pendekatan . . .

. 3STIKOM Artha Buana

Kegunaan Teori Otomata

Page 4: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Kegunaan Teori Otomata

• Untuk mendesain dan mengecek perilaku

rangkaian digital.

ON OFF

0

1

. 4STIKOM Artha Buana

Page 5: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Kegunaan Teori Otomata (lanj.)

• Sebagai penganalisa leksikon kompiler, yakni

komponen kompiler yang mengubah teks input

menjadi unit logik.

0 1

I

2

F

. 5STIKOM Artha Buana

Kosakata/Perben

daharaan Kata

Page 6: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Kegunaan Teori Otomata (lanj.)

• Untuk memeriksa teks yang sangat besar, seperti

halaman web, untuk menemukan kemunculan

kata-kata, frase-frase, dan pola lain.

• Contoh : metode pencarian pada google

. 6STIKOM Artha Buana

Bagaiama proses

pencarian pada google ?

Page 7: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Kegunaan Teori Otomata (lanj.)

• Untuk memvalidasi sistem yang memiliki keadaan

terbatas, seperti protokol komunikasi untuk pergantian

data yang aman.

. 7STIKOM Artha Buana

Page 8: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Konsep Sentral Teori Otomata

. 8STIKOM Artha Buana

Page 9: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Alfabet

• Adalah himpunan simbol.

• terbatas

• tidak kosong

• Lambang:

• Contoh:

• Alfabet biner: = {0, 1}

• Alfabet huruf kecil: = {a, b, …, z}

. 9STIKOM Artha Buana

Page 10: Konsepsentral - Materi 2 Teori Bahasa dan Automata

String

• String (bisa berupa kata) adalah alfabet dengan

urutan terbatas.

• Contoh: 01101 dan 111 merupakan string dari alfabet

biner = {0, 1}

• String kosong: string dengan kemunculan

simbol sama dengan nol

• Dinotasikan dengan dan dapat muncul dari

sembarang alfabet.

. 10STIKOM Artha Buana

Page 11: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Panjang String

• Panjang string: jumlah simbol dalam string

Contoh: 01101 memiliki panjang 5

• String 01101 hanya terdiri dari dua simbol (0 dan

1) dengan panjang 5.

Notasi panjang string dari : ||

Contoh: |011| = 3 and || = 0

. 11STIKOM Artha Buana

Page 12: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Pangkat Alfabet

Jika adalah alfabet,

string dengan panjang tertentu dari alfabet

tersebut dapat dinyatakan dalam bentuk notasi

perpangkatan. (penjelasan pada halaman berikutnya)

. 12STIKOM Artha Buana

Page 13: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Pangkat Alfabet (lanj.)

k: himpunan string dengan panjang k, yang

elemennya merupakan anggota .

. 13STIKOM Artha Buana

Page 14: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Pangkat Alfabet (lanj.)

Contoh:

• 0:{}.

Tanpa memperdulikan anggota , merupakan

satu-satunya string dengan panjang 0.

. 14STIKOM Artha Buana

Page 15: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Pangkat Alfabet (lanj.)

Jika = {0, 1}, maka

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

• 1= {0, 1}

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

. 15STIKOM Artha Buana

Page 16: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Pangkat Alfabet (lanj.)

Jika = {0, 1}, maka

• merupakan alfabet

• simbol 0 dan simbol 1 merupakan anggotanya.

• 1 merupakan himpunan string;

• masing-masing anggotanya merupakan string (dengan

panjang masing-masing 1)

. 16STIKOM Artha Buana

Page 17: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Pangkat Bintang Kleen

• * : himpunan semua string dari alfabet .

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

• * = 0 1 2 …

. 17STIKOM Artha Buana

Page 18: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Pangkat Bintang Kleen (lanj.)

• Lambang * disebut dengan bintang Kleenediambil dari nama seorang ahli matematika dan

logika bernama Stephen Cole Kleene.

• + = 1 2 . . .

Sehingga:

• * = + {}

. 18STIKOM Artha Buana

Page 19: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Konkatenasi

Didefinisikan suatu operasi biner, dinamakan

konkatenasi (gabungan), dalam * , sbb:

• Jika a1a2a3…an dan b1b2…bm berada dalam *,

maka

a1a2a3...an.b1b2…bm = a1a2a3…anb1b2…bm

. 19STIKOM Artha Buana

Page 20: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Konkatenasi (lanj.)

• Sehingga, string yang satu dapat digabungkan

dengan string lainnya:

• Jika x dan y merupakan dua buah string, maka

x.y diartikan sebagai gabungan dari x dan y,

hasilnya, string yang baru terbentuk dengan

menulis x diikuti dengan menuliskan y.

. 20STIKOM Artha Buana

Page 21: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Konkatenasi (lanj.)

Contoh:

• x = 01101 dan y = 110

Maka xy = 01101110 dan yx = 11001101

. 21STIKOM Artha Buana

Page 22: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Konkatenasi (lanj.)

Contoh:

• Untuk sembarang string w, persamaan w = w =w

• Sehingga, merupakan identitas untuk operasi

konkatenasi (ketika digabungkan dengan

sembarang string akan dihasilkan string itu

sendiri)

. 22STIKOM Artha Buana

Page 23: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Konkatenasi (lanj.)

Contoh:

• Jika S dan T merupakan himpunan bagian dari

*, maka

S.T = {s.t | s S, t T}

. 23STIKOM Artha Buana

Page 24: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Bahasa

• Jika adalah alfabet, dan L *, maka L adalah

bahasa dari .

• Bahasa: Himpunan string yang berasal dari *.

• dapat bersifat tak-terbatas.

. 24STIKOM Artha Buana

subset

Page 25: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Bahasa (lanj.)

• Bahasa dari tidak perlu string dari semua

simbol .

• Sehingga, bahasa dari juga merupakan bahasa

dari sembarang alfabet yang merupakan

superhimpunan dari .

. 25STIKOM Artha Buana

Page 26: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Bahasa (lanj.)

• Contoh:

• Pemrograman bahasa C.

Program yang benar merupakan himpunan bagian dari

string yang mungkin yang dapat dibentuk dari alfabet

bahasa tersebut (himpunan bagian karakter ASCII)

• Bahasa Inggris atau Bahasa Perancis.

. 26STIKOM Artha Buana

Page 27: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Contoh Bahasa yang Lain (lanj.)

1. Bahasa semua string yang mengandung n

buah 0 yang diikuti oleh n buah 1 (n ≥ 0):

{, 01, 0011, 000111, …}

. 27STIKOM Artha Buana

Page 28: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Contoh Bahasa yang Lain (lanj.)

2. Himpunan string yang terdiri dari 0 dan 1

dengan jumlah masing-masing yang sama:

{, 01, 10, 0011, 0101, 1001, …}

. 28STIKOM Artha Buana

Page 29: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Contoh Bahasa yang Lain (lanj.)

3. * merupakan bahasa dari sembarang alfabet .

4. , bahasa kosong, merupakan bahasa dari

sembarang alfabet.

. 29STIKOM Artha Buana

Page 30: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Contoh Bahasa yang Lain

5. {}, bahasa yang hanya terdiri dari string

kosong,

• merupakan bahasa dari sembarang alfabet.

Catatan: ≠ {} karena tidak memiliki string

sedangkan {} memiliki satu string.

. 30STIKOM Artha Buana

Page 31: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Contoh Bahasa yang Lain

6. {w | w terdiri dari jumlah angka 0 yang sama

dengan jumlah angka 1}

7. {0n1n | n ≥ 1}

8. {0i1j | 0 ≤ i ≤ j}

. 31STIKOM Artha Buana

Page 32: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Operator Bahasa : Union

• Union dari dua bahasa L dan M, dinotasikan

dengan L M, merupakan himpunan string yang

ada di L, M, atau keduanya.

• Contoh:

Jika L = {001, 10, 111} dan M = {, 001} maka

L M = {, 001, 10, 111}

. 32STIKOM Artha Buana

Page 33: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Operator Bahasa: Konkatenasi

• Konkatenasi dari bahasa L dan M, dinotasikandengan L.M atau LM, merupakan himpunanstring yang dibentuk dengan mengambilsembarang string dalam L danmenyambungkannya dengan sembarang string dalam M.

• Konkatenasi UNION

• Contoh:

Jika L = {001, 10, 111} dan M = {, 001} maka

L.M = {001, 10, 111, 001001, 10001, 111001}

. 33STIKOM Artha Buana

Page 34: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Operator Bahasa: Klosur

• Klosur dari bahasa L dinotasikan dengan L* dan

merepresentasikan himpunan string yang dapat

dibuat dengan mengambil sembarang string dari L

• dapat juga mengandung perulangan (misal string yang

sama dapat diulang lebih dari sekali) dan

menggabungkan semuanya.

• Contoh:

• Jika L = {0,1} maka L* adalah semua string 0 dan 1

• Jika L = {0,11} maka L* terdiri dari string 0 dan 1 dengan

angka 1 muncul dua kali, misal 011, 11110, dan .

Namun bukan 01011 atau 101.

. 34STIKOM Artha Buana

Page 35: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Operator Bahasa: Klosur (lanj.)

• Formalnya, L* adalah union tak-hingga Ui ≥ Li

dengan L0 = {}, L1 = L, dan untuk i > 1 kita

memiliki Li = LL…L (gabungan dari i buah L)

. 35STIKOM Artha Buana

Page 36: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Ekspresi Reguler

. 36STIKOM Artha Buana

Page 37: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Ekspresi Reguler dan BahasaKita definisikan ekspresi reguler.

Basis: Basis terdiri atas tiga bagian:

1. Konstanta dan merupakan ekspresi reguler, menotasikan bahasa {} dan . Sehingga L() = {} dan L() =

2. Jika a adalah suatu simbol, maka a merupakanekspresi reguler. Ekspresi ini menotasikan bahasa{a}, misalnya L(a) = {a}. Catatan: font tebaldigunakan untuk menotasikan ekspresi yang berkaitan dengan simbol.

3. Suatu variabel, biasanya ditulis dengan huruf besardan miring, seperti L, merupakan suatu variabelyang merepresentasikan sembarang bahasa.

. 37STIKOM Artha Buana

Page 38: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Ekspresi Reguler dan BahasaInduksi: terdapat empat bagian pada langkah induktif, satuuntuk tiap tiga operator dan satu untuk mengenalkan tandakurung.

1. Jika E dan F adalah ekspresi reguler, maka E + F merupakan ekspresi yang menotasikan gabungan L(E) danL(F). Sehingga L(E+F) = L(E)L(F)

2. Jika E dan F adalah ekspresi reguler, maka EF merupakaneksperi reguler yang menotasikan konkatenasi dari L(E) danL(F). Sehingga, L(EF) = L(E)L(F)

3. Jika E merupakan ekspresi reguler, maka E* merupakanekspresi reguler yang menotasikan klosur dari L(E). Sehingga L(E*)=(L(E))*

4. Jika E merupakan ekpresi reguler, maka € merupakanekspresi reguler yang menotasikan E yang sama. Secaraformal, L((E))=(L(E))

. 38STIKOM Artha Buana

Page 39: Konsepsentral - Materi 2 Teori Bahasa dan Automata

Contoh Penggunaan Ekspresi

Reguler• Pendefinisian penganalisa leksikal (kompiler)

• Digunakan di sistem operasi seperi UNIX (Unix-style):

[A-Z] [a-z] * [ ] [A-Z] [A-Z]

Merepresentasikan kata-kata huruf besar diikutidengan spasi dan dua huruf besar. Ekspresi inimerepresentasikan pola dalam teks yang dapatberupa suatu kota dan suatu negara, misalnyaIthaca NY.

Pola ini gagal untuk nama kota yang terdiri darilebih satu kata seperti Palo Alto CA

. 39STIKOM Artha Buana