menghasilkan pohon penurunan yang memiliki kerumitan yang tak perlu atau aturan produksi B → BBB | a
yang tidak berarti. Misalkan terdapat tata bahasa bebas konteks Kita bisa melihat bahwa : 1. Simbol variabel A tidak memiliki
a. Menghilangkan produksi yang memuat simbol variabel yang penurunan, sehingga bisa dihilangkan 2. Aturan produksi C →
yang akan menghasilkan simbol terminal. melakukan penurunan dari simbol awal S, dengan jalan
b. Produksi yang tidak akan pernah dicapai dengan penurunan manapun tidak akan pernah
apapun dari simbol awal mencapai C, sehingga bisa dihilangkan. 3. Simbol variabel E
Contoh, terdapat tata bahasa bebas konteks : yang menuju terminal, sehingga bisa dihilangkan. 4.
S → AaC | aC | Aa | a Contoh :
S→bA|aB
A → C | AB | A | B
A →bAA | aS | a
B→ b
B →aBB | bS |a
C→ d
Bentuk kedalam normal chomsky :
Penyelesaian
Normal Chomsky 1. Tentukan produksi yang sudah dalam bentuk Normal
Chomsky A →a B →b
Bentuk Normal Chomsky (CNF) merupakan salah satu bentuk
2. Lakukan penggantian produksi yang tidak sesuai.
normal untuk CFG
S→bA | aB
Syarat CFG yang dapat dibentuk menjadi CNF harus telah
sederhana yaitu, tidak A →bAA | aS
memiliki produksi empty, unit dan useless lagi. bentuk normal B →aBB | bS
chomsky, dimana ruas Penggantian produksi
kanannya tepat berupa sebuah terminal atau dua variabel. 1. S→bA (buat variabel baru W untuk mengganti “b”)
contoh : ⟹ WA (sudah menjadi normal chomsky) sehingga : S→WA ,
A →BC W→b
A →b 2. S→aB(buat variabel baru X untuk mengganti “a”)
B →a ⟹ XB (sudah menjadi normal chomsky) sehingga : S→XB ,
C →BA | d X→a
Pembentukan Bentuk Normal Chomsky 3. A →bAA (buat variabel baru Y untuk mengganti “bA”)
1. Biarkan produksi yang sudah dalam normal chomsky ⟹ YA (sudah menjadi normal chomsky) sehingga : A→YA
2. Lakukan penggantian produksi yang ruas kanannya memuat Y→bA (belum normal chomsky) Y→bA (buat variabel baru
simbol terminal dan Y1untuk mengganti “b”)
panjang ruas kanan > 1 ⟹ Y1A (sudah menjadi normal chomsky) sehingga : Y→Y1A ,
Y1→b disebelah kiri disebut rekursif kiri contoh : B →Ba
4. A →aS (buat variabel baru Z untuk mengganti “a”) Tahapan Penghilangan Rekursif Kiri
⟹ ZS (sudah menjadi normal chomsky) sehingga : A→ZS , 1.. Psahkan produksi yang rekursif kiri dan yang tidak. produksi
Z→a 5. B →aBB (buat yang rekursif kiri :
variabel baru Q untuk mengganti “aB”) A →Aα1 | Aα2 |..| Aαn
⟹ QB (sudah menjadi normal chomsky) sehingga : B→QB , produksi yang tidak rekursif kiri:
Q→aB (belum normal A →β1 | β2 |..| βn
chomsky) Q →aB (buat variabel baru Q 1untuk mengganti “a”) 2. Tentukan α1..αn dan β1.. βn dari setiap produksi yang
⟹ Q 1B(sudah menjadi normal chomsky) sehingga : Q→Q 1B , memiliki simbol ruas
Q 1→a kiri yang sama
6. B →bS (buat variabel baru R untuk mengganti “b”) 3. Lakukan penggantian aturan produksi yang rekursif kiri,
⟹ RS (sudah menjadi normal chomsky) sehingga : B→RS , menjadi :
R→b a. A →β1Z | β2Z |..| βn Z
Hasil akhir dari normal chomsky : b. Z →α1 | α2 |..| αn
S→WA, W→b S→WA | XB S→XB c. Z →α1Z | α2Z |..| αn Z cat :Z
X→a A →YA | ZS | a merupakan variabel baru yang terbentuk, bisa diganti dengan
A→YA B→QB | RS| b variabel yang lain, namun
Y→Y1A, Y1→b Y→Y1A tidak boleh sama dengan variabel yang telah ada dalam
A→ZS Z→a Q→Q 1B produksi.
B→QB W→b 4. Hasil akhir berupa produksi pengganti ditambah dengan
Q→Q 1BQ 1→a R→b produksi semula yang tidak
W→ a
W → aW
S → cA
A→ a | bd
S → CA (sudah memenuhi, karena S < C) memasukkan elemen ke dalam stack dikenal dengan istilah
Dari komponen diatas dapat disimpulkan bahwa : Definisi untuk Jenis-jenis PDA:
Q, ,Σ S, F sama 1. PDA null stack, yaitu PDA yang melakukan penerimaan input
dengan stack kosong.
dengan yang ada pada otomata hingga. Tupel baru adalah Г, Z
2. PDA final state, yaitu PDA yang melakukan penerimaan
yang berhubungan
input yang pilihan
dengan stack. Δ memiliki kemiripan dengan ઠ pada otomata
transisinya menyebabkan PDA mencapai final state
hingga dengan beberapa
perbedaan.
PDA dapat dianggap sebagai otomata hingga yang dilengkapi
dengan stack. Sebuah PDA
yang menerima input, selain bisa berpindah state juga bisa
melakukan operasi pada
stack. Kondisi atau konfigurasi PDA pada suatu saat
dinyatakan dengan state dan
stack.
Jenis transisi pada PDA;
1. Membaca simbol input Pada PDA yang membaca simbol
input, terdapat sejumlah pilihan yang mungkin,
bergantung pada simbol input, simbol pada top-stack, dan state
. Setiap pilihan terdiri
dari state berikutnya dan simbol-simbol (bisa satu, beberapa,
atau kosong) untuk
mengganti simbol pada top-stack . Penggantian simbol pada
top-stack bisa berupa
push, untuk satu atau beberapa simbol, atau berupa pop untuk
simbol kosong.
Setelah membuat pilihan, kemudian PDA membaca simbol
input berikutnya.
2. PDA untuk suatu tata bahasa bebas konteks
PDA adalah merupakan penerima bahasa-bahasa bebas
konteks, sehingga dari suatu tata
bahasa bebas konteks kita dapat memperoleh sebuah PDA,
begitu juga sebaliknya.
Sebuah PDA bisa dibuat untuk kumpulan aturan Produksi dari
suatu tata bahasa
bebas konteks. Langkah-langkahnya adalah sebagai berikut:
1. Definisikan:
Q = {q1, q2, q3 }
S = q1
F = {q3}
Σ = simbol terminal
Untuk yang berhubungan dengan stack, tentukan :
Γ = semua simbol variabel, simbol terminal, dan Z (simbol awal
stack)
2. Mesin ini dimulai dengan mem -push Z pada top stack. Pada
Dari aturan produksi yang ada, tata bahasa bebas konteks
setiap langkah
tersebut bisa menurunkan
berikutnya dilakukan salah satu dari dua hal berikut:
untai ‘aca’ dari D aDa aca Karena tata bahasa bebas konteks
- Jika top-stack adalah variabel , misal A, kita gantikan dengan
bisa menurunkan
ruas kanan dari A,
string ‘aca’ , maka PDA juga harus dapat menerima untai
misal A w, maka kita ganti dengan w.
tersebut. Langkah
- Jika top-stack adalah terminal, dan sama dengan simbol
masukan berikutnya, maka
kita pop dari stack .
3. Berdasarkan aturan diatas, kita dapat mengkonstruksi empat
tipe transisi berikut.
- Δ (q 1 , ɛ , Z) = {(q 2 , SZ)} untuk mem -push simbol awal (S)
ke stack.
- Δ (q 2 , ɛ , A) = {(q2 , w) | A w adalah sebuah simbol
produksi dalam tata
bahasa bebas konteks itu} untuk semua variabel A.
- Δ (q 2 , a, a) = {(q2 , ɛ )} untuk setiap simbol terminal (untuk
mem -pop
pembandingan terminal yang sama)
MESIN TURING
Sejarah Mesin Turing
Diusulkan pada tahun 1936 oleh Alan Turing, seorang matematikawan
Inggris sebagai
model matematis sederhana sebuah komputer.Meskipun sederhana, Mesin
Turing memiliki
kemampuan untuk menggambarkan perilaku komputer general-purpose.
1. Mesin Turing dapat digunakan untuk menghitung kelas fungsi bilangan
bulat Ѣ = symbol kosong (blank) (Bukan bagian dari ∑)
yang dikenal sebagai fungsi rekursif sebagian (partial recursive function). Bagian pada pita yang belum ditulisi dianggap berisi symbol Ѣ
2. Sama seperti Finite State Automata dan Push Down Automata yang dapat
mengenali bahasa formal, maka mesin Turing juga dapat berperan sebagai (blank).
mesin Prinsipnya dalam menggerakkan mesin Turing :
pengenal bahasa formal.
3. Bahasa yang dikenali oleh Mesin Turing adalah bahasa tanpapembatasan 1. Lihat state semula dan symbol yang ditunjuk head
(non-restricted language), yang disebut juga himpunan terenumerasi rekursif 2. Berdasar fungsi transisi : tentukan state berikutnya, lakukan
(recursively enumerable set).
penulisan ke
Pada mesin turing “memori” akan berupa pita yang pada dasarnya berupa
array pita, dan gerakkan head ke kanan atau kiri.
(deretan) berupa sel –sel pinyampanan suatu tunggal. Dimana pita tersebut 3. Bila dari pasangan (state, symbol yang di tunjukkan head)
tidak
memiliki sel pertama dan terakhir. Pita dapat memuat informasi dalam jumlah tidak ada lagi
tak transisi, berarti mesinTuring berhenti.
terbatas,dapat diakses bagaian manapun dari pita dengan urutan
4. Bila mesin Turing berhenti didalam state final berarti input di
bagaimanapun. sebuah
Head dapat bergerak kekanan/kekiri untuk membaca input dari pita dan terima,
sekaligus bias sebaliknya input di tolak.
melukan penulisan pada pita/ mengubah isi pita.
Contoh
Misal terdapat mesin Turing :
Q = {q1, q2}
∑ = {a,b}
S = { q1}
F = { q2}
Fungsi transisinya :
δ (q1,a)=( q1,a, R) → dibaca, pada state q1 , head
menunjukkan “a” menjadi state q1 ,
head menuliskan “a” lalu bergerak ke kanan
δ (q1,b)=( q1,a, R) δ(q1, b)=( q2, b, L)
7 TUPEL MESIN TURING Notes: Pergerakan mesin Turing : R = right/kanan, L = left/kiri
M={ Q, ∑, Γ,δ, S,F, b}, dimana : Q=himpunan state head akan menulis Turing tersebut beroperasi (head
∑ = himpunan simbol masukan ditunjukkan oleh ↑)
Γ = himpunan simbol pita yang ditulis atau dibaca ke dalam
pita
δ = fungsi transisi
S =state awal
F = himpunan state akhir
Contoh 2
Q = {q0, q1, q2, q3,q4 }
∑ = {0,1}
Γ = {0,1,X,Y, Ѣ }
S = { q0}
F = { q4} Fungsi transisinya disajikan dalam bentuk table
sebagai berikut
MESIN TURING (2)
Keadaan sebuah Mesin Turing setiap saat dicirikan oleh tiga
hal: 1. Status sekarang (q)
2. Simbol yang sedang diterima/dibaca 3. Posisi head (“nomor
sel” yang sedang dibaca)
pada pita
Kita berikan untuk mesin Turing tesebut input : ‘ab’ (q1, ,ab) |--
(q2, ,ab) |-- (q1 , ,ab)
|-- (q2, ,ab) |-- (q1 , ,ab) |-- ......
Kombinasi Dua Mesin Turing
Syarat : Mesin mendapat masukan dan pita yang sama (∑ dan
Γ sama)
Misalkan saja M1 dan M2 merupakan mesin Turing dengan
konfigurasi :
M1 = (Q1, ∑, Γ, δ1, S1, F1, b)
M2 = (Q2, ∑, Γ, δ2, S2, F2, b)
Kita ingin membuat mesin Turing M3 yang merupakan
RANGKUMAN SISTEM
RANGKUMAN TEORI
OPERASI
BAHASA AUTOMATA
Alokasi Memori
1.First-fit Algorithm
Manajer memori menelusuri peta bit atau senarai berkait sampai menemukan
lubang besar yang memadai untuk ditempati proses. Lubang dibagi dua,
untuk proses dan lubang yang tidak digunakan kecuali ketika besar lubang
tepat sama dengan ukuran yang diperlukan proses.
2.Next-fit Algorithm
Penelusuran sama dengan first-fit algorithm, namun dimulai dari posisi
terakhir kali
menemukan segmen untuk proses
3. Best-fit Algorithm
Algoritma mencari sampai akhir dan mengambil lubang terkecil yang dapat
memuat proses.
4. Worst-fit algorithm
Selalu mencari lubang besar yang tersedia.
5. Quick-fit algorithm
Hanya untuk pencatatan pada senarai berkait. Hanya menelusuri senarai
lubang memori bukan di senarai proses
Penggantian Page
BAB 14
Macam-macam atribut pada berkas
- Nama - Ukuran
- Type - Proteksi
- Lokasi - Waktu, tanggal dan indentifikasi pengguna
Penghitung berkas
Setelah berkas ditutup, sistem harus mengosongkan kembali tabel
berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di
tabel akan habis.
Lokasi berkas
Kebanyakan operasi pada berkas memerlukan sistem untuk
mengubah data yang ada pada berkas