450 likes | 1k Views
Konsep sentral teori otomata. Teknik Informatika STTA 2013 Yenni Astuti , S.T., M.Eng. Sebelumnya. Kegunaan Teori. FSA , tata bahasa formal: desain/ konstruksi perangkat lunak. Mesin Turing , membantu pemahaman yang diinginkan dari perangkat lunak.
E N D
Konsepsentralteoriotomata TeknikInformatika STTA 2013 YenniAstuti, S.T., M.Eng.
Kegunaan Teori • FSA, tata bahasa formal: desain/ konstruksi perangkat lunak. • Mesin Turing, membantu pemahaman yang diinginkan dari perangkat lunak. • Penyelesaian masalah? Atau menggunakan pendekatan . . .
Kegunaan Teori Otomata • Untuk mendesain dan mengecek perilaku rangkaian digital. 0 OFF ON 1
Kegunaan Teori Otomata (lanj.) • Sebagai penganalisa leksikon kompiler, yakni komponen kompiler yang mengubah teks input menjadi unit logik. F I 0 1 2
Kegunaan Teori Otomata (lanj.) • Untuk memeriksa teks yang sangat besar, seperti halaman web, untuk menemukan kemunculan kata-kata, frase-frase, dan pola lain.
Kegunaan Teori Otomata (lanj.) • Untuk memvalidasi sistem yang memiliki keadaan terbatas, seperti protokol komunikasi untuk pergantian data yang aman.
Alfabet • Himpunan simbol. • terbatas • tidak kosong • Lambang: • Contoh: • Alfabet biner: = {0, 1} • Alfabet huruf kecil: = {a, b, …, z}
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.
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
Pangkat Alfabet Jika adalah alfabet, string dengan panjang tertentu dari alfabet tersebut dapat dinyatakan dalam bentuk notasi perpangkatan.
Pangkat Alfabet (lanj.) k: himpunan string dengan panjang k, yang elemennya merupakan anggota .
Pangkat Alfabet (lanj.) Contoh: • 0:{}. Tanpa memperdulikan anggota , merupakan satu-satunya string dengan panjang 0.
Pangkat Alfabet (lanj.) Jika = {0, 1}, maka • 2= {00, 01, 10, 11} • 1= {0, 1} • 3= {000, 001, 010, 011, 100, 101, 110, 111}
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)
Pangkat Bintang Kleen • * : himpunan semua string dari alfabet . • {0, 1} = {, 0, 1, 00, 01, 10, 11, 000, … } • * = 0 1 2 …
Pangkat Bintang Kleen (lanj.) • Lambang * disebut dengan bintang Kleene diambil dari nama seorang ahli matematika dan logika bernama Stephen Cole Kleene. • + = 1 2 . . . Sehingga: • * = + {}
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
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.
Konkatenasi (lanj.) Contoh: • x = 01101 dan y = 110 Maka xy = 01101110 dan yx = 11001101
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)
Konkatenasi (lanj.) Contoh: • Jika S dan T merupakan himpunan bagian dari *, maka S.T = {s.t | s S, tT}
Bahasa • Jika adalah alfabet, dan L *, maka L adalah bahasa dari . • Bahasa: Himpunan string yang berasal dari *. • dapat bersifat tak-terbatas.
Bahasa (lanj.) • Bahasa dari tidak perlu string dari semua simbol . • Sehingga, bahasa dari juga merupakan bahasa dari sembarang alfabet yang merupakan superhimpunan dari .
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.
Contoh Bahasa yang Lain (lanj.) • Bahasa semua string yang mengandung n buah 0 yang diikuti oleh n buah 1 (n ≥ 0): {, 01, 0011, 000111, …}
Contoh Bahasa yang Lain (lanj.) • Himpunan string yang terdiri dari 0 dan 1 dengan jumlah masing-masing yang sama: {, 01, 10, 0011, 0101, 1001, …}
Contoh Bahasa yang Lain (lanj.) • * merupakan bahasa dari sembarang alfabet . • , bahasa kosong, merupakan bahasa dari sembarang alfabet.
Contoh Bahasa yang Lain • {}, bahasa yang hanya terdiri dari string kosong, • merupakan bahasa dari sembarang alfabet. Catatan: ≠ {} karena tidak memiliki string sedangkan {} memiliki satu string.
Contoh Bahasa yang Lain • {w | w terdiri dari jumlah angka 0 yang sama dengan jumlah angka 1} • {0n1n | n ≥ 1} • {0i1j | 0 ≤ i ≤ j}
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}
Operator Bahasa: Konkatenasi • Konkatenasi dari bahasa L dan M, dinotasikan dengan L.M atau LM, merupakan himpunan string yang dibentuk dengan mengambil sembarang string dalam L dan menyambungkannya dengan sembarang string dalam M. • Contoh: Jika L = {001, 10, 111} dan M = {, 001} maka L.M = {001, 10, 111, 001001, 10001, 111001}
Operator Bahasa: Klosur • KlosurdaribahasaLdinotasikandenganL* danmerepresentasikanhimpunan string yang dapatdibuatdenganmengambilsembarang string dariL • dapat jugamengandungperulangan (misal string yang samadapat diulang lebihdarisekali) danmenggabungkansemuanya. • Contoh: • JikaL = {0,1} makaL* adalahsemua string 0 dan 1 • JikaL = {0,11} makaL* terdiridari string 0 dan 1 denganangka 1 munculdua kali, misal 011, 11110, dan. Namunbukan 01011 atau 101.
Operator Bahasa: Klosur (lanj.) • Formalnya, L* adalah union tak-hinggaUi ≥ LidenganL0 = {), L1 = L, danuntuk i > 1 kitamemilikiLi = LL…L (gabungandari i buahL)
EkspresiRegulerdanBahasa Kita definisikanekspresireguler. Basis: Basis terdiriatastigabagian: • Konstanta dan merupakanekspresireguler, menotasikanbahasa {} dan . Sehingga L() = {} dan L() = • Jika a adalahsuatusimbol, makaamerupakanekspresireguler. Ekspresiinimenotasikanbahasa {a}, misalnyaL(a) = {a}. Catatan: font tebaldigunakanuntukmenotasikanekspresi yang berkaitandengansimbol. • Suatuvariabel, biasanyaditulisdenganhurufbesardan miring, sepertiL, merupakansuatuvariabel yang merepresentasikansembarangbahasa.
EkspresiRegulerdanBahasa Induksi: terdapatempatbagianpadalangkahinduktif, satuuntuktiaptiga operator dansatuuntukmengenalkantandakurung. • Jika E dan F adalahekspresireguler, maka E + F merupakanekspresi yang menotasikangabungan L(E) dan L(F). Sehingga L(E+F) = L(E)L(F) • Jika E dan F adalahekspresireguler, maka EF merupakaneksperireguler yang menotasikankonkatenasidari L(E) dan L(F). Sehingga, L(EF) = L(E)L(F) • Jika E merupakanekspresireguler, maka E* merupakanekspresireguler yang menotasikanklosurdari L(E). Sehingga L(E*)=(L(E))* • Jika E merupakanekpresireguler, maka € merupakanekspresireguler yang menotasikan E yang sama. Secara formal, L((E))=(L(E))
ContohPenggunaanEkspresiReguler • Pendefinisianpenganalisaleksikal (kompiler) • Digunakan di sistemoperasiseperi UNIX (Unix-style): [A-Z] [a-z] * [ ] [A-Z] [A-Z] Merepresentasikan kata-kata hurufbesardiikutidenganspasidanduahurufbesar. Ekspresiinimerepresentasikanpoladalamteks yang dapatberupasuatukotadansuatunegara, misalnya Ithaca NY. Polainigagaluntuknamakota yang terdiridarilebihsatu kata seperti Palo Alto CA