konsepsentral - materi 2 teori bahasa dan automata
TRANSCRIPT
STIKOM Artha Buana
Teknik Informatika
2014
Ir. Ahmad Haidaroh, M.Kom.
Sebelumnya . . .
. 2STIKOM Artha Buana
• 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
Kegunaan Teori Otomata
• Untuk mendesain dan mengecek perilaku
rangkaian digital.
ON OFF
0
1
. 4STIKOM Artha Buana
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
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 ?
Kegunaan Teori Otomata (lanj.)
• Untuk memvalidasi sistem yang memiliki keadaan
terbatas, seperti protokol komunikasi untuk pergantian
data yang aman.
. 7STIKOM Artha Buana
Konsep Sentral Teori Otomata
. 8STIKOM Artha Buana
Alfabet
• Adalah himpunan simbol.
• terbatas
• tidak kosong
• Lambang:
• Contoh:
• Alfabet biner: = {0, 1}
• Alfabet huruf kecil: = {a, b, …, z}
. 9STIKOM Artha Buana
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
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
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
Pangkat Alfabet (lanj.)
k: himpunan string dengan panjang k, yang
elemennya merupakan anggota .
. 13STIKOM Artha Buana
Pangkat Alfabet (lanj.)
Contoh:
• 0:{}.
Tanpa memperdulikan anggota , merupakan
satu-satunya string dengan panjang 0.
. 14STIKOM Artha Buana
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
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
Pangkat Bintang Kleen
• * : himpunan semua string dari alfabet .
• {0, 1} = {, 0, 1, 00, 01, 10, 11, 000, … }
• * = 0 1 2 …
. 17STIKOM Artha Buana
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
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
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
Konkatenasi (lanj.)
Contoh:
• x = 01101 dan y = 110
Maka xy = 01101110 dan yx = 11001101
. 21STIKOM Artha Buana
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
Konkatenasi (lanj.)
Contoh:
• Jika S dan T merupakan himpunan bagian dari
*, maka
S.T = {s.t | s S, t T}
. 23STIKOM Artha Buana
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
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
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
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
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
Contoh Bahasa yang Lain (lanj.)
3. * merupakan bahasa dari sembarang alfabet .
4. , bahasa kosong, merupakan bahasa dari
sembarang alfabet.
. 29STIKOM Artha Buana
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
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
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
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
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
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
Ekspresi Reguler
. 36STIKOM Artha Buana
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
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
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