Lecture 02
CS3113 Theory of Computation
CS3113 Theory of Computation
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”
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.
Important terms
• Alphabet
– Himpunan simbol
• String
• String
– daftar simbol dari alphabet
• Language
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
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|
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, …}
Σ
* =Σ
0U Σ
1U Σ
2U Σ
3U …
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.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.
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.
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
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
φ ≠ {ε}
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}
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.
Perangkaian Bahasa
Perangkaian Bahasa
Perangkaian Bahasa
Perangkaian Bahasa
• Jika L
1dan L
2adalah bahasa, L
1dan L
2⊆ Σ*.
Perangkaian dari L
1dan L
2dinotasikan L
1L
2= {xy
| x ∈ L
1dan 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.
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
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.
Komponen Grammar [2]
• S (starting symbol) adalah variabel non terminal yangdigunakan 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
Tipe Bahasa
• Pada tahun 1959, Noam Chomsky menggolongkan bahasa menjadi 4 tingkatan (dikenal dengan Hirarki Chomsky)
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
Tipe Bahasa
Bahasa
Mesin Automata
Batasan Produksi
Context Sensitive / Tipe 1
Linier Bounded Automata |α| <= |β|
Unrestricted / Phase Structure / Natural Language / Tipe 0