Anda di halaman 1dari 44

Pengantar Teori Bahasa dan

Otomata
Ressa Priskila, S.T., M.T.
Penilaian

❑ TUGAS 20%

❑ UTS 30%

❑ UAS 50%

❑ KEHADIRAN (>=80%)
Referensi
 Hopcroft, J.E; Motwani, R; Ullman, J.D. 2001. Introduction
to Automata Theory, Languages, and Computation (2nd
ed)
Pendahuluan
 Tingkatan Bahasa pemrograman

Bahasa tingkat Contoh:


rendah Bahasa mesin

Bahasa Bahasa tingkat Contoh:


Pemrograman menengah Bahasa assembly

Contoh:
Bahasa tingkat
tinggi C++, Java, PHP,
dll.
Pendahuluan
Bagaimana sebuah mesin dapat memahami kode program yang
dibuat oleh prommer?

Hai, Apa Hi, How I'm good??


Kabar? are you?

Indonesia Amerika
Penerjemah
Pendahuluan

 Bagaimana sebuah mesin dapat memahami kode program yang


dibuat oleh programmer?

“Sebuah mesin yang hanya mengenali bahasa mesin dapat


memahami bahasa pemrograman tingkat tinggi karena adanya
Compiler (kompilator/penerjemah)”
Pendahuluan
Bagan proses kompilasi
Pendahuluan

BAHASA
DAN KOMPILASI
OTOMATA

TEORI TEKNIK

Teori Bahasa dan otomata adalah dasar dari Teknik kompilasi


Teori Bahasa dan Otomata

 Apa yang dimaksud Teori Bahasa dan Otomata?

Teori Bahasa membahas mengenai bahas Formal (Formal


Language). Salah satunya adalah untuk kepentingan
perancangan Kompilator (Compiler).
Teori Bahasa dan Otomata

 Apa yang dimaksud Teori Bahasa dan Otomata?

• Otomata adalah mesin abstrak yang dapat mengenali


(recognize), menerima (accept), atau membangkitkan
(generate) sebuah kalimat dalam bahasa tertentu.

• Input pada mesin otomata dianggap sebagai bahasa yang harus


dikenali oleh mesin.

• Mesin akan mengindikasikan apakah suatu bahasa dapat


diterima atau tidak.
Teori Bahasa dan Otomata

 Mesin otomata sederhana


Teori Bahasa dan Otomata

 Mesin otomata sederhana

• String input diterima jika mencapai final state, selain itu


ditolak
• Pembacaan simbol pertama dimulai dari initial state.
• Perpindahan state berdasarkan simbol yg dibaca.
Teori Bahasa dan Otomata

 Mesin otomata sederhana


Konsep Bahasa dan Otomata

 Simbol

 String

 Bahasa
Konsep Bahasa dan Otomata

 Apa yang dimaksud simbol?

Simbol adalah sebuah entitas abstrak yang tidak


didefinisikan secara formal.
Konsep Bahasa dan Otomata

 Apa yang dimaksud simbol?


• Jika saya bertanya apa itu Harimau?
• Maka kalian akan membayangkan gambar ini dan mendefiniskannya
Konsep Bahasa dan Otomata

 Apa yang dimaksud simbol?


• Bagaimana jika saya bertanya apa itu “1” atau apa itu “A” ?
• Coba kalian definiskan?

Sebuah huruf atau angka, sebuah karakter tunggal adalah


contoh simbol.
Konsep Bahasa dan Otomata

 Apa yang dimaksud String?

“String/kata/untai merupakan suatu deretan berhingga


dari symbol-symbol”
Konsep Bahasa dan Otomata

 Apa yang dimaksud String?

a abaca
Simbol String
Konsep Bahasa dan Otomata

 Apa yang dimaksud panjang String?

“Jumlah symbol yang membentuk string tersebut”


Konsep Bahasa dan Otomata

 Apa yang dimaksud string kosong?

“sebuah string kosong biasanya dinyatakan dengan


simbol epsilon ε”
Konsep Bahasa dan Otomata

 Apa yang dimaksud bahasa?

“Suatu sistem yang meliputi pengekspresian gagasan,


fakta konsep, termasuk sekumpulan simbol-simbol dan
aturan untuk melakukan manipulasinya”
Konsep Bahasa dan Otomata

“Alphabet adalah himpunan berhingga dari simbol-


simbol. ”
Konsep Bahasa dan Otomata
 Apa yang dimaksud bahasa?

• Sebuah bahasa adalah himpunan string-string dari simbol-


simbol untuk suatu alphabet.

• Karena sebuah bahasa adalah kumpulan dari string-string,


maka kita bisa mempunyai bahasa yang tidak mempunyai
string-string, yaitu Bahasa kosong yag dinotasikan seperti
menuliskan notasi himpunan kosong.
Konsep Bahasa dan Otomata

 Apa yang dimaksud bahasa?

“Bahasa juga disebut sebagai rangkaian simbol yang


memiliki makna.”
Konsep Bahasa dan Otomata

 Apa yang dimaksud bahasa?

• Input pada mesin otomata dianggap sebagai Bahasa


yang harus dikenali oleh mesin.
• Mesin akan mengindikasikan apakah suatu Bahasa dapat
diterima atau tidak.
Konsep Bahasa dan Otomata

 Mesin otomata sederhana


Simbol Terminal dan Non-Terminal
 Apa yang dimaksud simbol Terimal?

Simbol terimal adalah simbol yg tidak dapat diturunkan lagi.

Yang termasuk simbol Terminal:


• Huruf kecil alfabet. Contohnya: a,b,c, dst.
• Simbol operator. Contohnya: +, -, x, :, dst.
• Simbol tanda baca. Contoh (), ;, dst.
• String yang tercetak tebal, Contohnya: if, then dan else
Simbol Terminal dan Non-Terminal
 Apa yang dimaksud simbol Non-terimal?

Simbol Non-terimal adalah simbol yang masih bisa


diturunkan menjadi simbol Terminal atau Non-terminal
lainnya. Disebutkan juga simbol variabel.

Yang termasuk simbol terminal:


• Huruf besar alfabet. Contohnya: A,B,C, dst.
• Huruf S sebagai simbol awal.
• String yang tercetak miring, Contohnya: expr, stmt.
Aturan Produksi

 Aturan Produksi dinyatakan dalam:

menyatakan simbol menyatakan simbol


pada ruas kiri aturan pada ruas kanan
produksi aturan produksi

Dibaca : α (ruas kiri) menghasilkan β (ruas kanan)

Simbol dapat berupa simbol terminal dan non-terminal


Aturan Produksi

 Contoh aturan produksi :

T→a

Dibaca : T menghasilkan a
Aturan Produksi

 Contoh aturan produksi :

E→ T|T+E

Dibaca : E menghasilkan T atau E menghasilkan T+ E

E→T
E→ T+E
Hirarky Chomsky

 Grammar
Tata Bahasa (grammar) didefinisikan secara formal
sebagai kumpulan dari himpunan-himpuan variable,
simbol-simbol terminal, simbol awal, yang dibatasi oleh
aturan –aturan produksi.
Hirarky Chomsky

 4 tingkatan tata bahasa menurut Chomsky:


1. Tipe 0 – Urestricted Grammar
2. Tipe 1 – Context Sensitive Grammar
3. Tipe 2 – Context Free Grammer
4. Tipe 3 – Regular Grammar
Hirarky Chomsky

 4 tingkatan tata bahasa menurut Chomsky:


Hirarky Chomsky

1. Tipe 0 – Urestricted Grammar


Aturan produksinya tidak memiliki batasan

α adalah string
β adalah
terminal dan non-
serangkaian simbol
terminal dengan
terminal dan non-
setidaknya 1 non-
terminal
terminal.

• α tidak boleh kosong


• α adalah (V+T)*V(V+T)*
• β adalah (V+T)*
Hirarky Chomsky

 Tipe 0 – Urestricted Grammar


• Menghasilkan bahasa yang dikenali oleh mesin turing
• Bahasa ini juga dikenal dengan nama “Recursively Enumerable
Languages”

 Contoh:

• α adalah (V+T)*(V(V+T)*
• β adalah (V+T)*
Hirarky Chomsky
2. Tipe 1 – Context Sensitive Grammar
• Aturan produksinya sama dengan tipe 0 namun dibatasi dengan
aturan |α|≤|β|(jumlah simbol di ruas kiri harus lebih kecil
atau sama dengan jumlah simbol pada ruas kanan).
• Aturan S → ε dibolehkan jika S tidak muncul pada ruas kanan setiap
aturan.

• α adalah (V+T)*V(V+T)*
• β adalah (V+T)* (V+T) (V+T)
Hirarky Chomsky

2. Tipe 1 – Context Sensitive Grammar


Menghasilkan bahasa yang dikenali oleh Linier Bounded Automata.

Contoh:
Hirarky Chomsky

3. Tipe 2 – Context Free Grammer


• Aturan produksinya sama dengan tipe 0 namun α sisi kiri hanya
boleh memiliki 1 variable non terminal (|α|=1) dan β tidak
memiliki Batasan.

• α adalah sebuah simbol non terminal (variable)


• β dapat berupa rangkaian atau simbol terminal, non-terminal,
atau ε.

• α adalah (V)
• β adalah (V+T)*
Hirarky Chomsky

3. Tipe 2 – Context Free Grammer

• Menghasilkan bahasa yang dikenali oleh Non-deterministic Push


Down Automata

• Contoh:
Hirarky Chomsky

4. Tipe 3 – Regular Grammar


• Aturan S → ε dibolehkan jika S tidak muncul pada ruas kanan
setiap aturan.

• α adalah sebuah simbol non terminal (variable)


• β adalah simbol terminal atau simbol terminal dengan
sebuah simbol variable yang jika ada terletak pada
posisi paling kanan.

• α adalah (V)
• β adalah T* atau T*V
Hirarky Chomsky

4. Tipe 3 – Regular Grammar

• Menghasilkan bahasa yang dikenali oleh Finite state Automata

• Contoh:

• α adalah (V)
• β adalah T* atau T*V
Terima Kasih

Anda mungkin juga menyukai