Anda di halaman 1dari 14

MODUL PERKULIAHAN 7 (TUJUH)

Nama Mata Kuliah : Teori Bahasa dan Otomata


Kode Mata Kuliah : 06410009
Pengampu Mata Kuliah : Sukenda
Semester : IV (Empat)
Waktu : 2 x 50 menit (bobot 2 SKS)
Pertemuan ke :7
Tempat : Ruang masing-masing mahasiswa (online / e-learning)

7.1. Manfaat Mata Kuliah


Setelah menyelesaikan mata kuliah ini, mahasiswa diharapkan dapat
menerapkan isi yang telah dipelajari sehubungan dengan konsep dan teorema bahasa
formal yang diklasifikasikan oleh Noam Chomsky untuk kebutuhan perancangan
kompiler. Sehingga mahasiswa diharapkan belajar sungguh untuk mencapai nilai
yang maksimal.
Pengaplikasian yang bisa dilakukan pada pertemuan tujuh ini yaitu bagaimana
mahasiswa mampu menerapkan materi dengan baik, yang diterangkan pada
pertemuan tujuh ini, adapun materi yang disampaikan yaitu cakupan materi teori
bahasa dan otomata yang berkaitan dengan Review Materi sehingga dapat
diimplementasikan sebelum dilaksanakannya UTS dan kehidupan sehari-hari.

7.2. Deskripsi Mata Kuliah


Pada pertemuan ketujuh ini, masih mempelajari masih tentang review materi.
Matakuliah teori bahasa dan automata mempunyai materi yang terkait dengan review
materi dan bisa diterapkan dalam kehidupan sehari-hari. Sub materi yang akan
dipelajari merupakan sub materi dari FSA (Finite State Automata) yaitu sebagai
berikut :
a. Bahasa dan Tata Bahasa,
b. Reguler Grammar,
c. FSA.
Materi kuliah, yang akan disampaikan nanti, disampaikan dalam proses belajar
mengajar (perkuliahan) secara online. Penyampaian ini diharapkan dapat
mempermudah mahasiswa untuk mempelajari materi review materi, sehingga
mahasiswa dapat belajar secara online dengan baik. Begitu juga pengampu
matakuliah dapat menyampaikan materi kuliah secara online, sehingga proses belajar
mengajar berjalan dengan baik. Sekiranya penyampaian materi review materi secara
sistematis dan juga pembelajaran mahasiswa secara baik maka tujuan atau manfaat
dari materi kuliah bisa dirasakan dan diaplikasikan dalam kehidupan sehari-hari.
Materi diatas merupakan garis besar yang akan disampaikan pada pertemuan
ketujuh perkuliahan, yang memungkinkan materi tersebut mempunyai sub-sub
materi. Materi yang akan diajarkan bisa saja disampaikan dalam perkuliahan selama
2 x 50 menit, atau dalam kurun 2 sks, mungkin saja bisa lebih dari 2 x 50 menit jika
perkuliahan secara online ini berjalan dengan baik.

7.3. Tujuan Instruksional Khusus


Setelah menyelesaikan pokok bahasan ini, mahasiswa akan dapat menjelaskan
dan menerapkan materi dengan baik, secara konsep dan teori yang terimplementasi
dalam kehidupan nyata ke dunia informatika.

7.4. Strategi Perkuliahan


Keterlibatan 2 entitas yaitu mahasiswa dan pengampu matakuliah (dosen),
merupakan hal penting dalam proses pembelajaran. Pada pertemuan ketujuh ini,
proses perkuliahan dilakukan secara online (e-learning). Dimana, 2 entitas tersebut
saling berinteraksi antara satu dengan yang lainnya dalam proses pembelajaran
melalui media teknologi modern. Interaksi dua entitas tersebut bisa searah atau dua
arah secara bersama-sama, tentunya masih dalam konteks pembelajaran matakuliah
yang akan disampaikan ke mahasiswa. Mahasiswa sebagai penerima informasi atau
bisa juga sebagai pemberi informasi, informasi yang diterima atau diberikan berupa
materi kuliah. Sedangkan pengampu matakuliah (dosen) sebagai sumber informasi
(sebagai pemateri) yang disebarkan atau dikirimkan ke mahasiswa, akan tetapi bisa
juga pengampu matakuliah sebagai penerima informasi dari mahasiswa.
Dua entitas yang saling memberi dan menerima informasi materi matakuliah
maka perlu strategi penyampaian yang baik, sehingga transfer informasi bisa berjalan
dengan baik. Strategi penyampaian informasi materi matakuliah dalam proses
pembelajaran disebut juga strategi perkuliahan. Strategi yang diterapkan kepada
mahasiswa akan berbeda dengan pengampu matakuliah. Berikut strategi perkuliahan
pengampu matakuliah yaitu :
a. Menjelaskan tujuan instruksional umum (TIU) dan tujuan instruksional khusus
(TIK) yang harus dicapai,
b. Memberi beberapa pertanyaan untuk mengetahui seberapa jauh mahasiswa
mengetahui mengenai review materi,
c. Menjelaskan masih tentang review materi, dengan macam-macam sub pokok
bahasan yaitu bahasa dan tata bahasa, regular grammar, dan FSA,
d. Menjelaskan tentang penggunaan bahasa dan tata bahasa, regular grammar, dan
FSA pada suatu kasus (berupa contoh kasus),
e. Menerapkan dalam bentuk studi kasus untuk latihan dan pekerjaan rumah,
f. Memberi softcopy atau link file pdf untuk buku yang dipakai,
g. Memberikan kuis untuk mengetahui tingkat pemahaman mahasiswa,
h. Menutup pertemuan dan menanyakan apakah ada hal-hal yang ingin ditanyakan,
dikomentari, atau dijadikan bahan diskusi,
i. Menyimpulkan materi yang telah dibahas,
j. Memberi gambaran materi yang akan dibahas minggu.

7.5. Kriteria Penilaian


Penilaian yang dilakukan terhadap pertemuan ketujuh ini, yaitu dosen pengampu
menilai mahasiswa terhadap aktivitas perkuliahan yang telah dilakukan secara online
(e-learning). Dimana mahasiswa menerima nilai selama proses pembelajaran yang
telah dilakukannya. Sedangkan dosen memberi nilai terhadap mahasiswa yang
mengikuti matakuliah yang diampunya pada saat proses pembelajaran berlangsung.
Sehingga mahasiswa bisa mengetahui nilai yang diperoleh pada saat perkuliahan
selesai. Berikut kriteria penilaian pada saat perkuliahan berjalan (khususnya
pertemuan ketujuh) yaitu :
a. Aktivitas mahasiswa pada saat perkuliahan berjalan, baik berupa pertanyaan
ataupun jawaban. Pertanyaan atau jawaban yang diutarakan oleh mahasiswa
tentunya berkaitan dengan materi yang akan dibahas atau yang telah dibahas.
b. Mahasiswa yang mengumpulkan jawaban atas quiz yang disampaikan oleh dosen
pengampu.
c. Mahasiswa yang mengumpulkan tugas yang diberikan oleh dosen pengampu.
d. Mahasiswa yang mengikuti proses perkuliahan yang dilakukan secara online (e-
learning).

7.6. Materi Perkuliahan


Pada pertemuan keenam kuliah akan dibahas mengenai materi perkuliahan
yang akan dilaksanakan yaitu materi review materi. Biasanya materi tersebut
dikemas dalam pokok bahasan dan juga sub pokok bahasan. Berikut pokok bahasan
dari pertemuan ketujuh yaitu : review materi, dengan sub pokok bahasan adalah :
a. Bahasa dan Tata Bahasa.
b. Regular Grammar.
c. FSA.
Berikut penjelasan dari masing-masing sub pokok bahasan akan disampaikan pada
perkuliahan ketujuh ini.
Pada kesempatan di pertemuan ketujuh ini akan dibahas review materi,
sebagai bahan ujian tengah semester yang akan diselenggarakan dengan materi yaitu
bahasa dan tata bahasa, regular grammar, dan FSA.

A. Bahasa dan Tata Bahasa.


Secara informal, bahasa adalah himpunan kata yang telah disepakati misalnya
himpunan {makan, tidur, lari, bangun, …} adalah himpunan kata-kata dalam Bahasa
Indonesia. Terdapat banyak cara untuk mendeskripsikan bahasa, diantaranya :
1. Enumerasi
Dengan cara ini, bahasa dinyatakan dengan jalan menyebutkan anggotanya
misalnya bahasa L1 terdiri dari kata-kata {aku, kamu, kakak, sapu}. Ini berarti
bahasa L1 hanya mengenal tiga buah kata atau kalimat yaitu aku, kamu, kakak,
dan sapu. Harap diperhatikan bahwa kata ‘akukakakkamu’ bukan anggota dari
bahasa L1.

2. Notasi Himpunan
Misalnya bahasa L2 = { X | X = ai bi, i = 0, 1, 2, 3, …} memiliki anggota {, ab,
aabb, aaabbb, aaaabbbb, …}.

Cara lain untuk mendeskripsikan bahasa adalah dengan cara menyebutkan tata
bahasa dari bahasa tersebut. Secara formal, tata bahasa didefinisikan sebagai
pasangan dari empat komponen yaitu Alfabet Non Terminal, Alfabet Terminal,
Simbol Awal, dan Himpunan Aturan Produksi. Dalam bentuk simbolik, tata bahasa
didefinisikan sebagai berikut :

G = ( Vn, Vt, P, S )

di mana G adalah nama dari tata bahasa tersebut, Vn adalah Alfabet Non Terminal,
Vt adalah Alfabet Terminal, S adalah Simbol Awal, dan P adalah Himpunan Aturan
Produksi. Himpunan Aturan Produksi adalah himpunan dari aturan-aturan produksi.
Sebuah aturan produksi dinyatakan dalam bentuk A  P, di mana A adalah kata
yang mengandung minimal sebuah simbol non terminal. (Simbol non terminal adalah
simbol yang merupakan anggota dari Alfabet Non Terminal.) P adalah kata yang
merupakan anggota dari (Vn U Vt)*, di mana U adalah notasi penggabungan
himpunan.
Berikut adalah contoh sebuah tata bahasa :
G1 = (Vn, Vt, P, S)
Vn = {X, Y, Z)
Vt = {a,b}
S=X
P adalah sebagai berikut :
1. X  aY
2. X  bZ
3. Y  aY
4. Y  
5. Z  bZ
6. Z  
P di atas dapat ditulis pula dalam bentuk berikut :
- X  aY | bZ
- Y  aY | 
- Z  bZ | 

Penurunan 1 Langkah
Kata pXr dapat diturunkan satu langkah menjadi pYr, ditulis pXr => pYr, jika
terdapat sebuah aturan produksi yang berbentuk X  Y. Sebagai contoh, dengan
menggunakan tata bahasa G1 di atas, aaY => aaaY karena terdapat aturan produksi
yang berbentuk Y  aY.
Penurunan
Kata pXr dapat diturunkan menjadi pZr, ditulis pXr =>* pZr, jika pXr => pYr
=> … => pZr. Sebagai contoh, dengan menggunakan tata bahasa G1 di atas, aY =>*
aaaa karena terdapat langkah penurunan berikut : aY => aaY => aaaY => aaaaY =>
aaaa = aaaa.

Bahasa L(G)
Bahasa yang dihasilkan dari suatu tata bahasa G, ditulis L(G), adalah himpunan
kata yang setiap anggotanya merupakan anggota dari Vt* dan dapat diturunkan dari
simbol awal. Secara simbolik, definisi formal tata bahasa tersebut dapat ditulis
sebagai berikut :
L(G) = { X | S =>* X, X  Vt* }
Sebagai contoh, L(G1) adalah bahasa yang dihasilkan oleh tata bahasa G1.
Kata aaaa adalah anggota dari L(G1) karena aaaa adalah anggota dari Vt* dan
terdapat langkah penurunan sebagai berikut :
X => aY => aaY => aaaY => aaaaY => aaaa. (Harap diingat bahwa aaaa =
aaaa)
Tentu pembaca dapat menduga bahwa kata  bukan merupakan anggota dari
L(G1) karena walaupun  merupakan anggota dari Vt* namun  tidak dapat
diturunkan dari X yang merupakan simbol awal dari tata bahasa G1.

Contoh soal :
1. Sebutkanlah 5 kata terpendek yang merupakan anggota dari bahasa L1 = { X | X
= (ab)i ; i = 0, 1, 2, 3, … }
Jawab :
, ab, abab, ababab, abababab, ababababab
2. Sebutkan 10 kata terpendek yang merupakan anggota dari bahasa L2 = { X | X =
X-1, X  {s, u}* }
Jawab :
, s, u, ss, uu, sss, uuu, sus, usu, ssss
3. Sebutkan 5 kalimat terpendek yang merupakan anggota dari L(G1) dan
terangkan mengapa kalimat-kalimat tersebut merupakan anggota dari L(G1)?
Jawab :
a karena a merupakan anggota dari Vt* dan terdapat langkah penurunan sebagai
berikut : X => aY => a.
b karena b merupakan anggota dari Vt* dan terdapat langkah penurunan sebagai
berikut : X => bZ => b.
aa karena aa merupakan anggota dari Vt* dan terdapat langkah penurunan
sebagai berikut : X => aY => aaY => aa.
bb karena bb merupakan anggota dari Vt* dan terdapat langkah penurunan
sebagai berikut : X => bZ => bbZ => bb.
bbb karena bbb merupakan anggota dari Vt* dan terdapat langkah penurunan
sebagai berikut : X => bZ => bbZ => bbbZ => bbb.
4. Buatlah sebuah tata bahasa yang menghasilkan himpunan kata yang setiap
anggotanya memenuhi kriteria sebagai berikut : jika simbol pertama kata
tersebut adalah a maka simbol terakhirnya b dan jika simbol pertama kata
tersebut adalah b maka simbol terakhirnya adalah a.
Jawab :
G2 = (Vn, Vt, P, S)
Vn = {X, Y, Z)
Vt = {a,b}
S=X
P adalah sebagai berikut :
- X  aYb | bZa
- Y aY | bY | 
- Z  aZ | bZ | 
5. Tuliskanlah langkah penurunan kata abaab menurut tata bahasa G2
Jawab :
X => aYb => abYb => abaYb => abaaYb => abaab.

Untuk soal 1 sampai 3, tentukanlah jenis dari tata-tata bahasa G4, G5, dan G6
kemudian tuliskanlah 5 kalimat terpendek yang dihasilkannya.
1. G4 = (Vn, Vt, P, S); Vn = {Z}; Vt = {0,1}; S = Z; P = { Z  0Z | 1Z | 0 }
Jawab : G4 adalah tata bahasa reguler linier kanan. Lima kalimat terpendek
anggota L(G4) adalah 0, 00, 10, 000, 010.
2. G5 = (Vn, Vt, P, S); Vn = {Z, Y}; Vt = {0,1}; S = Z; P = { Z  Y00, Y  Y0 |
Y1 | 1 }
Jawab : G5 adalah tata bahasa reguler linier kiri. Lima kalimat terpendek
anggota L(G5) adalah 100, 1000, 1100, 10000, 10100.
3. G6 = (Vn, Vt, P, S); Vn = {Z, Y, A, B}; Vt = {0,1}; S = Z; P = {Z  01Y, Y 
A | B, A  A0 | , B  1B | }
Jawab : G6 termasuk tata bahasa bebas konteks. G6 bukan tata bahasa reguler
linier kiri karena aturan produksi ‘Z  01Y’ melanggar syarat nomor 2 dari tata
bahasa reguler linier kiri. G6 juga bukan tata bahasa reguler linier kanan karena
aturan produksi ‘A  A0’ melanggar syarat nomor 2 dari tata bahasa reguler
linier kanan. Lima kalimat terpendek yang termasuk G6 adalah 01, 010, 011,
0100, 0111.
4. Buatlah sebuah tata bahasa reguler linier kiri yang menghasilkan himpunan kata
dengan spesifikasi sebagai berikut : kata-kata tersebut terbentuk dari simbol 0
dan 1; jika diinterpretasi sebagai bilangan biner, maka bilangan tersebut nol atau
habis dibagi dua.
Jawab : Bilangan biner yang disebutkan dalam soal adalah bilangan biner yang
selalu diakhiri oleh simbol 0. Contoh bilangan biner seperti itu adalah 0, 00, 10,
010, 100, 110, 0010, 0100, 0110, … Tata bahasa reguler linier kiri yang
menghasilkan himpunan kalimat seperti itu adalah
G7 = (Vn, Vt, P, S); Vn = {X, Y}; Vt = {0, 1}; P = {X  Y0, Y  Y0 | Y1 | }

Ekspresi Reguler :
Tentukanlah lima kalimat terpendek yang merupakan hasil dari ekspresi-ekspresi
reguler berikut :
5. (0 + 1)*00
Jawab : lima kalimat terpendek dari ekspresi di atas dapat ditentukan dengan
jalan memilih lima kalimat terpendek yang dihasilkan oleh ekspresi (0 + 1)*,
yaitu , 0, 1, 00, 01, kemudian dikatenasi dengan 00 sehingga menghasilkan 00,
000, 100, 0000, 0100.
6. (00 + 11)0*
Jawab : (00 + 11) menghasilkan dua kalimat yaitu 00 dan 11. Lima kalimat
terpendek dari ekspresi di atas dapat diperoleh dengan jalan mengkatenasi dua
kalimat ini dengan lima kalimat terpendek yang dihasilkan oleh ekspresi 0*
sehingga menghasilkan 00, 11, 000, 110, 0000
7. 0*(1 + 11)2*
Jawab : 1, 01, 12, 11, 012. Kalimat 1 diperoleh dengan jalan memilih  dari 0*,
1 dari (1 + 11), dan  dari 2*. Kalimat 01 diperoleh dengan jalan memilih 0 dari
0*, 1 dari (1 + 11), dan  dari 2*. Kalimat 12 diperoleh dengan jalan memilih 
dari 0*, 1 dari (1 + 11), dan 2 dari 2*. Kalimat 11 diperoleh dengan jalan
memilih  dari 0*, 11 dari (1 + 11), dan  dari 2*. Kalimat 012 diperoleh dengan
jalan memilih 0 dari 0*, 1 dari (1 + 11), dan 2 dari 2*.
8. (00 + 11)*(0 + 1)
Jawab : 0, 1, 000, 001, 110. Kalimat 0 diperoleh dengan jalan memilih  dari
(00 + 11)* dan 0 dari (0 + 1). Kalimat 1 diperoleh dengan jalan memilih  dari
(00 + 11)* dan 1 dari (0 + 1). Kalimat 000 diperoleh dengan jalan memilih 00
dari (00 + 11)* dan 0 dari (0 + 1). Kalimat 001 diperoleh dengan jalan memilih
00 dari (00 + 11)* dan 1 dari (0 + 1). Kalimat 110 diperoleh dengan jalan
memilih 11 dari (00 + 11)* dan 0 dari (0 + 1).

Ekivalensi Tata Bahasa dan Ekspresi Reguler :


Untuk setiap ekspresi reguler berikut, buatlah tata bahasa reguler linier kanan yang
ekivalen.
9. (0 + 1)*00
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y}; Vt = {0, 1}; S = X; P = { X  Y, Y 
0Y | 1Y | 00 }. G dapat disederhanakan menjadi Vn = {X}; Vt = {0, 1}; S = X; P
= { X  0X | 1X | 00 }
10. (00 + 11)0*
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y, Z}; Vt = {0, 1}; S = X; P = {X  Y, Y
 00Z | 11Z, Z  0Z | }. G dapat disederhanakan menjadi Vn = {X, Z}; Vt =
{0, 1}; S = X; P = {X  00Z | 11Z, Z  0Z | }
11. 0*(1 + 11)2*
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y, Z, A}; Vt = {0, 1}; S = X; P = {X  Y,
Y  0Y | Z, Z  1A | 11A, A  2A | }. G dapat disederhanakan menjadi G =
(Vn, Vt, S, P}; Vn = {X, A}; Vt = {0, 1}; S = X; P = {X  0X | 1A | 11A, A 
2A |}
12. (00 + 11)*(0 + 1)
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y, Z, A}; Vt = {0, 1}; S = X; P ={X  Y,
Y  00Y | 11Y | Z, Z  0A | 1A, A  }. G dapat disederhanakan menjadi Vn
= {X}; Vt = {0, 1}; S = X; P = {X  00X | 11X | 0 | 1}

Untuk setiap ekspresi reguler berikut, buatlah tata bahasa reguler linier kiri yang
ekivalen.
13. (0 + 1)*00
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y}; Vt = {0, 1}; S = X; P = {X  Y00, Y
 Y0 | Y1 | }
14. (00 + 11)0*
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y, Z, A}; Vt = {0, 1}; S = X; P = {X  Y,
Y  Y0 | Z, Z  A00 | A11, A  }. G dapat disederhanakan menjadi Vn =
{X}; Vt = {0, 1}; S = X; P = {X  X0 | 00 | 11}.
15. 0*(1 + 11)2*
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y, Z, A}; Vt = {0, 1}; S = X; P = {X  Y,
Y  Y2 | Z, Z  A1 | A11, A  A0 | }. G dapat disederhanakan menjadi Vn =
{X, A}; Vt = {0, 1}; S = X; P = {X  X2 | A1 | A11, A  A0 | }.
16. (00 + 11)*(0 + 1)
Jawab : G = (Vn, Vt, S, P}; Vn = {X, Y, Z}; Vt = {0, 1}; S = X; P ={X  Y, Y
 Z0 | Z1, Z  Z00 | Z11 | }. G dapat disederhanakan menjadi Vn = {X, Z};
Vt = {0, 1}; S = X; P = {X  Z0 | Z1, Z  Z00 | Z11 | }

B. Regular Grammar.
Tata Bahasa Reguler Linier Kiri
Karakteristik tata bahasa linier kiri sebetulnya sama dengan karakteristik tata
bahasa reguler yang dijelaskan pada bab 2. Untuk menyegarkan ingatan, kita tuliskan
kembali karakteristik tersebut di sini.
Suatu tata bahasa reguler disebut linier kiri jika seluruh aturan produksinya
berbentuk :
A  BP atau A  P
A dan B adalah sebuah simbol non terminal. P adalah kata kosong, atau kata
yang seluruhnya terdiri dari simbol terminal. Dinyatakan dalam bentuk simbolik : A
 Vn, B  Vn, P  Vt*. Dengan kata lain, suatu tata bahasa termasuk tata bahasa
reguler linier kiri bila memenuhi dua syarat berikut :
1. Ruas kiri hanya mengandung 1 simbol dan simbol tersebut adalah simbol non
terminal.
2. Jika ruas kanannya mengandung simbol non terminal, maka banyaknya simbol
non terminal tersebut adalah satu dan berada di paling kiri.
Tata bahasa berikut termasuk tata bahasa reguler linier kiri :
G1 = (Vn, Vt, P, S)
Vn = {X, Y, Z}
Vt = {0, 1}
S=X
P = { X  Y | Z, Y  Y0 | 1 | , Z  Z1 | 0 |  }
Sebagai latihan, tuliskanlah lima kalimat terpendek yang merupakan anggota dari
L(G1)!
Tata bahasa berikut tidak termasuk tata bahasa reguler linier kiri :
G2 = (Vn, Vt, P, S)
Vn = {X, Y, Z}
Vt = {0, 1}
S=X
P = { X  Y | Z, Y  0Y | 1 | , Z  Z1 | 0 |  }
G2 bukan tata bahasa linier kiri karena aturan ‘Y  0Y’ melanggar syarat nomor 2.

Tata Bahasa Reguler Linier Kanan


Suatu tata bahasa reguler disebut linier kanan jika seluruh aturan produksinya
berbentuk :
A  PB atau A  P
A dan B adalah sebuah simbol non terminal. P adalah kata kosong, atau kata
yang seluruhnya terdiri dari simbol terminal. Dinyatakan dalam bentuk simbolik : A
 Vn, B  Vn, P  Vt*. Dengan kata lain, suatu tata bahasa termasuk tata bahasa
reguler linier kiri bila memenuhi dua syarat berikut :
1. Ruas kiri hanya mengandung 1 simbol dan simbol tersebut adalah simbol non
terminal.
2. Jika ruas kanannya mengandung simbol non terminal, maka banyaknya simbol
non terminal tersebut adalah satu dan berada di paling kanan.
Jadi sebetulnya yang membedakan tata bahasa reguler linier kiri dengan linier
kanan adalah posisi simbol non terminalnya. Pada linier kiri, simbol non terminalnya
berada di paling kiri sedangkan pada linier kanan, simbol non terminalnya berada di
paling kanan.
Tata bahasa berikut termasuk tata bahasa reguler linier kanan :
G3 = (Vn, Vt, P, S)
Vn = {X, Y, Z}
Vt = {0, 1}
S=X
P = { X  Y | Z, Y  0Y | 1 | , Z  1Z | 0 |  }
Sebagai latihan, tuliskanlah lima kalimat terpendek yang merupakan anggota dari
L(G3)!
G2 bukan tata bahasa linier kanan karena aturan ‘Z  Z1’ melanggar syarat nomor
2. Karena G2 tidak termasuk tata bahasa linier kiri maupun linier kanan, maka G2
termasuk tata bahasa bebas konteks.

C. FSA.
Finite State Automata (FSA)adalah mesin pengenal bahasa regular. Tata bahasa
regular mempunyai aturan produksi berbentu :
A→ a
A→ aB
Atau bentuk ekivalennya :
A→ a
A→ Ba
Sebagai contoh, {0m1nm, n = 0, 1, 2, …} adalah bahasa regular. Contoh string yang
termasuk ke dalam bahasa ini misalnya,
ℇ (string kosong m= n = 0)
0 (m=1, n= 0)
1 (m=0, n= 1)
01 (m=1, n= 1)
001 (m=2, n= 1)
0111, 00011, 00000000, dan sebaginya.

Tata bahasa yang membangkitkan bahasa regular di atas adalah G= (T, N, P, S)


dengan T = {0, 1}, N = {S}, S adalah simbol awal, dan sekumpulan aturan produksi
P adalah :
S → 0S
S → S1
S→∈

Setiap FSA memiliki :


1. Himpunan berhingga (finite) status (state),
2. Himpunan berhingga masukan tombol,
3. Fungsi transisi yang memberikan status berikutnya untuk setiap pasang status dan
sebuah simbol masukan. Untuk setiap simbol masukan terdapat tepat satu buah
transisi yang keluar dari tiap status (mungkin saja kembali ke status itu sendiri).
Satu buah status, biasanya dinyatakan dengan q0, adalah status awal (initial
state), yaitu status di FSA mulai. Beberapa status dinyatakan sebagai status akhir
(final state) atau status yang menerima (accepting state).
Model mesin FSA diperlihatkan pada gambar 7.1. Pita masukan berisi rangkaian
simbol yang dibaca oleh mesin. Kendali sistem (seperti berpindah status setelah
membaca suatu masukan) dilakukan oleh Finite State Control.
pita masukan
0 1 1 0 0 1 0

Finite State
Control
Gambar 7.1 Model mesin FSA

Beberapa FSA ada yang menghasilkan simbol-simbol keluaran, ada pula yang tidak.
Karena itu ada dua jenis FSA :
1. FSA tanpa keluaran. FSA jenis ini berfungsi untuk mengenal (recognize) string
(rangkaian simbol) yang dibaca. Sistem memberikan indikasi biner yang
menyatakan string masukan diterima (accepted) atau ditolak.
2. FSA dengan keluaran. FSA jenis ini tidak hanya mengenali string, tetapi juga
menghasilkan keluaran untuk setiap simbol masukan yang dibaca. Model FSA
dengan keluaran ditunjukkan pada Gambar 7.2. Pita keluaran menampung
keluaran yang diberikan oleh mesin.
pita masukan
0 1 1 0 0 1 0

Finite State
Control

0 1 1 0 0 1 0
pita keluaran
Gambar 7.2 Model mesin FSA dengan keluaran

Pada bab ini kita hanya meninjau FSA tanpa keluaran. Sifat-sifat mesin FSA tanpa
keluaran adalah sebagai berikut :
1. Pita masukan (input tape) berisi rangkaian simbol (string) yang berasal dari
himpunan simbol alfabet.
2. Setiap kali membaca sebuah simbol, posisi read head akan berada pada simbol
berikutnya.
3. Setiap saat, FSA berada pada satu status tertentu.
4. Pita masukan bersifat read only (hanya bias dibaca).
Untuk setiap mesin FSA, diagram transisi dinyatakan sebagai gaf berarah. Simpul
pada graf menyatakan status mesin FSA. Sisi pada graf menyatakan transisi dari
status p ke status q terhadap simbol masukan yang dibaca, a. setiap sisi ini dilabeli
dengan simbol masukan yang dibaca dari pita. FSA dikatakan menerima string x jika
runtutan transisi yang bersesuaian dengan simbol x bermula dari status awal dan
berakhir di status akhir. Gambar 7.3. adalah contoh sebuah diagram transisi. Status
awal adalah q0, sedangkan status akhir juga q0.
Ada dua macam FSA :
1. Deterministic Finite Automata (DFA)
2. Nondeterministic Finte Automata (NFA)
Pada DFA, untuk satu simbol masukan, hanya ada sebuah transisi dari suatu status ke
status yang lain. Sedangkan pada NFA, dimungkinkan 0 atau lebih dari satu buah
transisi untuk satu simbol masukan ang sama.
1 1 0
q1 q3 q4
0

1 0 1
0 1
start
0
q0 0
q2

Gambar 7.3 Diagram transisi


Secara formal, DFA dinyatakan oleh 5-tple (Q, Σ, 𝛿, q0, F), yang masing-masing
artinya adalah :
Q : himpunan berhingga status
Σ : himpunan berhingga simbol alfabet.
𝛿 : fungsi transisi yang memetakan Q x Σ ke Q
(jadi, 𝛿 (q, a) menghasilkan status baru dari status q dengan simbol masukan a)
q0 ∈ Q : status awal
F ⊆ Q : himpunan status akhir.
Pemetaan 𝛿 adalah dari Q x Σ ke Q. kita dapat memperluas 𝛿 ke ranah Q x Σ*
sehingga 𝛿 dapat diterapkan sebuah status dan string ketimbang sebuah status dan
sebuah simbol, dengan mendefiniskan pemetaan 𝛿 sebagai berikut :
1. 𝛿 (q, ∈) = q
2. 𝛿 (q, wa) = 𝛿 (𝛿 (q, w), a) untuk setiap string w didalam Σ* dan simbol a
didalam Σ.
String x dikatakan diterima oleh DFA M= (Q, Σ, 𝛿, q0, F) jika 𝛿 (q0, x) = p unuk p ∈
F. bahasa yang diterima oleh M, dilambangkan dengan L(M) adalah himpunan L =
{x| 𝛿(q0, x) didalam F}.
𝛿(q0, x) = p untuk p ∈ F L(M), L = {x| 𝛿(q0, x) didalam F}.
Secara teori graf, suatu string masukan diterima oleh mesin otomata jika ada lintasan
dari status awal dan berakhir di status akhir.

Contoh 7.1 : Tinjau diagram transisi dibawah ini. Dengan notasi formal, DFA
dinyatakan dengan M = (Q, Σ, 𝛿, q0, F ), yang dalam hal ini :
Q= { q0, q1, q2, q3}; F = { q0}; 𝛿: Q x Σ→Q diberikan oleh table berikut :
0 1
Stat Masukan q2 1
us 0 1 0

q0 q2 q1 q3
q0
q1 q3 q0
1 0
q2 q0 q3
q3 q1 q2 q1
0
1

Mesin NFA membolehkan nol atau lebih dari satu transisi untuk satu simbol
masukan yang sama. Jadi, NFA lebih umum daripada DFA, dan DFA hanyalah kasus
khusus dari NFA.

Secara formal, mesin NFA dinyatakan oleh 5-tuple (Q, , , q0, F), yang masing-
masing artinya adalah:
Q : himpunan berhingga status.
 : himpunan berhingga simbol alfabet.
 : fungsi transisi yang memetakan Q x  ke 2Q
(2Q adalah himpunan kuasa-power set-dari himpunan Q)
q0  Q : status awal
F  Q : himpunan status akhir.

Bahasa yang diterima oleh M adalah L(M), yang dalam hal ini M adalah NFA (Q, ,
, q0, F). L(M) adalah { w  𝛿(q0, w) adalah sebuah status di dalam F}

Perbedaan penting antara NFA dan DFA ialah bahwa 𝛿(q, a) adalah himpunan status
ketimbang sebuah status (pada DFA). Interpretasi 𝛿(q, a) = {p1, p2, ..., pk} adalah
bahwa M, dengan status q, membaca simbol a dari pita masukan, memindahkan
head-nya satu sel ke kanan dan memilih salah satu dari p1, p2, ..., pk sebagai status
selanjutnya.

Seperti halnya pada DFA, suatu string diterima oleh NFA apabila terdapat lintasan
dari status awal dan berakhir di status akhir. Tetapi, karena lintasan dari status awal
ke status akhir tidak tunggal, maka kita boleh mengambil satu lintasan saja dari
semua kemungkinan sehingga string tersebut diterima.

Contoh 7.2 : Tinjau diagram transisi di bawah ini. Dengan notasi formal, NFA
dinyatakan dengan M = (Q, , , q0, F), yang dalam hal ini:
Q = { q0, q1, q2, q3, q4}; F = { q2, q4}; dan  : Q x   2Q diberikan oleh tabel
1
berikut : 1
0
0
Statu Masukan 0
star 0
s 0 1 q3 q4
t q0
q0 {q0, q3} {q0, q1}
q1  {q2} 1
q2 {q2} {q2}
q3 {q4}  q1
q4 {q4} {q4}
1 1
0
q2

7.7. Ringkasan
DFA adalah sebuah mesin hipotetis untuk mengidentifikasi bahasa reguler.
Terdapat tiga metode untuk membuat DFA berdasarkan ekspresi reguler yaitu
metode hafalan, metode NFA, dan metode transisi . Jika ekspresi reguler cukup
sederhana, kita bisa menghafalkan DFA yang ekivalen. Jika ekspresi reguler agak
rumit, kita harus mengkonstruksi NFA terlebih dahulu, kemudian mengubahnya
menjadi DFA. Jika ekspresi reguler sangat rumit, kita harus mengkonstruksi FSA
bertransisi , kemudian mengubah menjadi NFA, kemudian mengubahnya lagi
menjadi DFA. Jika kita sulit mengkonstruksi ekspresi reguler untuk bahasa tertentu,
maka DFA harus dibuat menggunakan metode analisis yang lain.

7.8. Referensi Bacaan


Pertemuan kuliah yang ketujuh akan dilakukan secara online, dengan
menggunakan teknologi internet beserta software aplikasi yang mendukung ke arah
pembelajaran secara online. Pada petermuan ketujuh sekiranya perlu referensi untuk
bacaan bagi mahasiswa agar tercipta suatu kondisi pembelajaran yang baik,
walaupun pembelajaran tersebut melalui online (e-learning). Adapun referensi
bacaan untuk mahasiswa yaitu :
a. Roni Djuliawan, M.T., “Diktat Kuliah Teori Bahasa & Otomata”, Teknik
Informatika – Universitas Widyatama, 2003.
b. Rinaldi Munir, “Materi Kuliah Matematika Diskrit”, Informatika-ITB, Bandung,
2003.
c. Rinaldi Munir, “Matematika Diskrit”,Informatika, Bandung, 2001.
d. Hopcroft; Motwani; Ullman, “Introduction to automata theory, Languages and
Computation”, Pearson Education, 2001.
e. Swinglly Purba, “Otomata dan Bahasa Formal”, Graha Ilmu,Yogyakarta, 2008.
f. Firrar Utdirartatmo, “Teori Bahasa dan Otomata”, Graha Ilmu, Yogyakarta,
2005.
g. Zvi Kohavi, Switching and Finite Automata Theory, McGraw-Hill, 2005.

7.9. Quiz / Tugas


Pada pertemuan ketujuh perkuliahan yang kita lakukan, sekiranya perlu
diadakan quiz untuk mengetahui tingkat pemahaman mahasiswa terhadap materi
perkuliahan yang telah disampaikan. Adapun soal quiz yaitu sebagai berikut :
1. Buatlah mesin DFSA yang dapat menerima kalimat yang dihasilkan oleh ekspresi
(0 + 1)*00(0 + 1)*!
2. Ubahlah NFA pada gambar 7.2 menjadi DFA !
3. Tunjukkan bahwa kalimat 1121 dapat diterima oleh NFA pada contoh 7.2 !.
4. Tunjukkan bahwa kalimat 11212112 dapat diterima oleh NFA pada contoh 7.2 !.
5. Tunjukkan bahwa kalimat 112111221 bisa diterima oleh NFA pada contoh 7.2 !.