Anda di halaman 1dari 15

MAKALAH TEORI BAHASA DAN OTOMATA

Oleh:

RANIS SYIANA
NIM.221001037

IRSYA NURFADILAH
NIM.221001045

GITA OKVIADIANA
NIM.221001051

MEY WULANDARI
NIM.221001053

PROGRAM STUDI INFORMATIKA


FAKULTAS REKAYASA SISTEM
UNIVERSITAS TEKNOLOGI SUMBAWA
APRIL 2023
KATA PENGANTAR

Dengan Segala kerendahan hati penulis sampaikan puji syukur


kehadirat Allah SWT, atas limpahan rahmat dan karunianya sehingga
penulis dapat menyelesaikan makalah ini. Penulisan makalah ini dilakukan
untuk memenuhi tugas mata kuliah teori bahasa dan otomata. Penulis
menyadari bahwa, tanpa bantuan dan bimbingan dari berbagai pihak,
sangatlah sulit untuk menyelesaikan makalah ini. Oleh karena itu, penulis
mengucapkan terima kasih kepada :

1. Bapak Chairul Hudaya, Ph.D., Selaku Rektor Universitas


Teknologi Sumbawa.
2. Bapak Mietra Anggara, ST., MT., Selaku Dekan Fakultas
Rekayasa Sistem Universitas Teknologi Sumbawa.
3. Bapak Rodianto, M.Kom., Selaku Ketua Program Studi
Informatika Universitas Teknologi Sumbawa.
4. Bapak Yunanri.W, ST, M.Kom., Selaku Dosen Penagmpuh Mata
Kuliah Teori Bahsa dan Otomata
5. Keluarga Penulis khususnya orangtua tercinta penulis yang telah
memberikan do’a setulus hati kepada penulis.
6. Rekan – rekan kelompok seperjuangan yang memberikan
semangat dan motivasinya kepada penulis.
7. Dan semua pihak yang tidak dapat penulis sebutkan namanya satu
persatu.

Akhir kata penulis menyadari bahwa tentunya dalam penyusunan


makalah ini terdapat banyak kesalahan. Oleh karena itu penulis
mengucapkan mohon maaf yang sebesar-besarnya. Penulis berharap
semoga makalah ini dapat bermanfaat bagi pembaca dan dapat menjadi
referensi demi pengembangan yang lebih baik lagi.

Sumbawa, 1 Mei 2023

Penulis

2
DAFTAR ISI

KATA PENGANTAR..................................................................................................... 2
DAFTAR ISI....................................................................................................................3
DAFTAR GAMBAR........................................................................................................4
DAFTAR TABEL............................................................................................................5
BAB I PENDAHULUAN.................................................................................................6
1.1 Latar belakang...........................................................................................................6
BAB II PEMBAHASAN..................................................................................................9
2.1 Ekspresi Reguler........................................................................................................9
2.2 Aturan produksi FSA...............................................................................................10
2.3 Pohon Penurunan.....................................................................................................10
2.4 Penyederhanaan Useless dan Unit..........................................................................12
2.5 Penyerdehanaan Tata Bahasa Bebas Konteks (Empty)............................................13
BAB III PENUTUP........................................................................................................15
3.1 Kesimpulan..............................................................................................................15

3
DAFTAR GAMBAR

Gambar 1. 1 Mesin otomata penerima input bahasa inggris...............................................5

4
DAFTAR TABEL

Tabel 1. 1 Penggolongan bahasa........................................................................................7


Tabel 1. 2 Tata bahasa berdasarkan penggolongan Noam Chomsky..................................8

5
BAB I

PENDAHULUAN

1.1 Latar belakang

Ilmu komputer memiliki dua komponen utama yaitu model dan gagasan
tentang komputasi dan teknik rekayasa untuk perancangan sistem komputasi
(perangkat keras dan perangkat lunak). Teori bahasa dan otomata masuk kedalam
komponen utama dalam ilmu komputer. Teori bahasa dan otomata diterapkan
pada beberapa perancangan digital seperti pada pmbuatan bahas apemrograman
dan kompilator. Sedangkan tujuan mempelajari Teori Bahasa dan Otomata sendiri
yaitu mengajarkan dasar-dasar teori bahasa formal dan modelmodel mesin
matematis yang menggambarkan prinsip kerja komputer.
Otomata merupakan suatu bentuk (model matematika) yang memiliki
fungsi-fungsi dari komputer digital yaitu menerima input, menghasilkan output,
bisa memiliki penyimpanan sementara dan mampu membuat keputusan dalam
mentransformasikan input ke output. Input pada mesin otomata dianggap sebagai
bahasa yang harus dikenali oleh mesin. Selanjutnya mesin otomata akan membuat
keputusan yang mengindikasikan apakah input ini diterima atau tidak. Otomata
bisa digunakan untuk memodelkan hardware.
Umumnya kita hanya tahu bahasa alami yaitu bahasa inggris atau bahasa
indonesia. Sebuah bahasa merupakan himpunan string-string dari simbol-simbol
untuk suatu alphabet. String sendiri merupakan suatu kata (gabungan dari huruf)
dalam bahasa, contoh string adalah ‘Sumbawa‘. String juga dapat bernilah kosong
dan biasa dilambangkan menggunakan simbol ε.

Contoh penerapan mesin otomata, misalnya kita akan memodelkan mesin


otomata yang hanya dapat menerima inputan dalam bahasa inggris. Apabila
digambarkan pemodelan bahasanya akan menjadi :

gambar 1. 1 Mesin otomata penerima input bahasa inggris

6
Pada gambar 1.1 diatas merupakan mesin otomata yang hanya dapat menerima
inputan

berupa bahasa inggris, jika mesin mendapatkan string inputan :

● dengan : di tolak

● deny : diterima

● dentist : diterima

suatu string dikatakan diterima apabila mencapai state akhir(lingkaran ganda)


untuk kasus ini ada pada q7 dan q11. State awal selalu diawali oleh panah tanpa
inputan (state q0).

Hirarki Comsky atau Tata Bahasa (grammar) didefinisikan sebagai kumpulan dari
himpunan-himpunan variable, simbol-simbol terminal, simbol awal yang dibatasi
oleh aturan produksi. Pada tahun 1959, Noam Chomsky menggolongkan
tingkatan bahasa menjadi empat yang disebut sebagai Hirarki Chomsky.
Penggolongan Hirarki Chomsky :

Tabel 1. 1Penggolongan bahasa

Bahasa Mesin Otomata Batasan Aturan


Produksi
Regular/Tipe 3 Finite State Automata (FSA) : 1. α merupakan sebuah simbol
Deterministic Finite Automata variable β maksimal
(DFA) memiliki sebuah simbol
2. Non- Deterministic Finite variable yang bila ada
Automata (NFA) terletak diposisi paling
kanan
Bebas Push Down Automata (PDA) α berupa sebuah simbol
Konteks/Context variable
Free/Tipe2
Context Linier Bounded Automata |α | ≤ |β|
Sensitive/Tipe1
Unrestricted/Phase Mesin Turing Tidak ada batasan
Structure/Natural
Language/Tipe 0

Aturan produksi merupakan pusat dari tata bahasa yang menspesifikasikan


bagaimana suatu tata bahasa melakukan transformasi dari suatu string ke bentuk
lainnya dan melalui aturan produksi tersebut didefinisikan suatu bahasa yang
berhubungan dengan tata bahasa tersebut. Suatu aturan produksi dapat dinyatakan
dalam bentuk α→β ( dibaca : α menghasilkan β atau dibaca : α menurunkan β).

7
Suatu α menyatakan simbol-simbol pada ruas kiri aturan produksi. Sedangkan β
menyatakan simbol-simbol pada ruas kanan aturan produksi. Beberapa istilah
dalam aturan produksi :

1. Simbol variable/nonterminal : simbol yang masih dapat diturunkan, biasanya


dilambangkan menggunakan abjad capital.
2. Simbol terminal : simbol yang tidak dapat diturunkan kembali, biasanya
dilambangkan menggunakan abjad non-capital(huruf kecil).

Contoh penerapan tata bahasa “Noam Chomsky” :

Tabel 1. 2 Tata bahasa berdasarkan penggolongan Noam Chomsky

Bahasa Contoh
Regular/Tipe 3 A→b
Bebas Konteks/Context Free/Tipe2 B → bcA
Context Sensitive/Tipe1 B → Abcd
Unrestricted/Phase Structure/Natural AbC → abC
Language/Tipe 0

8
BAB II

PEMBAHASAN

2.1 Ekspresi Reguler

Ekspresi reguler, juga dikenal sebagai "regex" atau "regexp," adalah suatu
urutan karakter yang digunakan untuk mencocokkan dan memanipulasi teks
berdasarkan pola tertentu. Ekspresi reguler biasanya digunakan dalam
pemrograman dan pengolahan teks untuk melakukan pencocokan pola, validasi
input, penggantian teks, dan banyak lagi.

Dalam ekspresi reguler, karakter-karakter khusus dan metakarakter digunakan


untuk membangun pola yang diinginkan. Beberapa karakter khusus umum dalam
ekspresi reguler antara lain:

1. Tanda Panah (^): Digunakan untuk mencocokkan awal dari sebuah string.
Contoh: "^Hello" akan cocok dengan string yang dimulai dengan "Hello".
2. Tanda Dolar ($): Digunakan untuk mencocokkan akhir dari sebuah string.
Contoh: "world$" akan cocok dengan string yang diakhiri dengan "world".
3. Tanda Titik (.) : Mencocokkan dengan karakter apa pun kecuali karakter
newline. Contoh: "h.t" akan cocok dengan "hat", "hot", "hit", dll.
4. Karakter Terbatas ([]): Mencocokkan satu karakter dari kumpulan karakter
yang diberikan. Contoh: "[aeiou]" akan cocok dengan vokal apa pun.
5. Karakter Terbatas Negasi ([^]): Mencocokkan satu karakter yang tidak
termasuk dalam kumpulan karakter yang diberikan. Contoh: "[^0-9]" akan
cocok dengan karakter yang bukan digit.
6. Karakter Terbatas Rentang (-): Mencocokkan satu karakter dalam rentang
yang ditentukan. Contoh: "[a-z]" akan cocok dengan huruf kecil apa pun.
7. Tanda Asterisk () : Mencocokkan nol atau lebih kemunculan dari karakter
sebelumnya. Contoh: "ab" akan cocok dengan "a", "ab", "abb", "abbb",
dll.
8. Tanda Tambahan (+): Mencocokkan satu atau lebih kemunculan dari
karakter sebelumnya. Contoh: "ab+" akan cocok dengan "ab", "abb",
"abbb", dll., tetapi tidak dengan "a".

Ekspresi reguler dapat digunakan dengan bantuan fungsi atau metode yang
disediakan dalam berbagai bahasa pemrograman, seperti Python, JavaScript, Java,
dan banyak lagi. Setiap bahasa pemrograman memiliki sintaks dan fungsi yang
sedikit berbeda untuk mengoperasikan ekspresi reguler.

9
2.2 Aturan produksi FSA

Aturan produksi dalam Finite State Automaton (FSA) menggambarkan


perubahan status atau transisi antara keadaan dalam otomaton. FSA merupakan
model matematis yang digunakan untuk mengenali atau menghasilkan urutan
simbol atau kata dalam bahasa formal.

Aturan produksi dalam FSA biasanya terdiri dari pasangan keadaan awal,
simbol masukan, keadaan akhir, dan tindakan yang harus dilakukan. Berikut
adalah contoh aturan produksi dalam FSA:

1. (q0, a) -> q1: Jika automaton berada dalam keadaan q0 dan menerima
simbol a, maka berpindah ke keadaan q1.
2. (q1, b) -> q2: Jika automaton berada dalam keadaan q1 dan menerima
simbol b, maka berpindah ke keadaan q2.

3.(q2, a) -> q0: Jika automaton berada dalam keadaan q2 dan menerima
simbol a, maka berpindah ke keadaan q0.

Aturan produksi di atas menjelaskan perubahan keadaan automaton saat


menerima simbol-simbol tertentu. Misalnya, automaton awalnya berada dalam
keadaan q0. Jika menerima simbol a, automaton akan berpindah ke keadaan q1.
Jika kemudian menerima simbol b, automaton akan berpindah ke keadaan q2. Jika
menerima simbol a lagi, automaton akan kembali ke keadaan awal yaitu q0.

Perlu dicatat bahwa aturan produksi dalam FSA dapat berbeda-beda


tergantung pada jenis automaton yang digunakan, seperti deterministic finite
automaton (DFA) atau nondeterministic finite automaton (NFA). Aturan produksi
yang ditentukan dalam FSA akan menentukan perilaku dan kemampuan
automaton dalam mengenali atau menghasilkan bahasa formal tertentu.

2.3 Pohon Penurunan

Pohon penurunan, juga dikenal sebagai pohon sintaksis atau pohon


derivasi, adalah representasi struktural dari bagaimana suatu string atau frasa
dalam bahasa formal dihasilkan atau dianalisis dengan menggunakan aturan
produksi dalam tata bahasa. Pohon penurunan digunakan dalam konteks tata
bahasa dan tata bahasa alami untuk menggambarkan struktur sintaksis dari suatu
kalimat atau ekspresi.

Dalam pohon penurunan, setiap simpul (node) mewakili sebuah aturan


produksi atau simbol dalam tata bahasa, dan anak-anak dari simpul tersebut
mewakili langkah-langkah derivasi atau pemecahan aturan produksi yang

10
dilakukan dalam pengolahan kalimat atau frasa tersebut. Akar pohon penurunan
mewakili kalimat atau frasa lengkap, sedangkan daun pohon penurunan mewakili
terminal atau simbol akhir yang tidak dapat diuraikan lebih lanjut.

Berikut adalah contoh sederhana pohon penurunan untuk kalimat "The cat
sleeps":

Sentence

NP-Sent

_______|_______

| |

Det VP

| |

The VP-Simp

| |

V NP

| |

sleeps |

NP

Cat

Dalam pohon penurunan di atas, akarnya adalah "Sentence" yang


mewakili kalimat lengkap. Kemudian, pohon tersebut terbagi menjadi sub-pohon
dengan aturan produksi yang diterapkan pada setiap langkah. Misalnya, "NP-
Sent" adalah frasa nomina yang merupakan anak dari "Sentence", dan seterusnya.
Akhirnya, daun-daun pohon (node-node terakhir) adalah terminal "The", "cat",
dan "sleeps".

11
Pohon penurunan memberikan representasi visual yang jelas tentang
struktur sintaksis dan pemecahan langkah demi langkah yang dilakukan dalam
analisis tata bahasa atau tata bahasa alami. Pohon penurunan dapat digunakan
dalam proses pembelajaran tata bahasa, pemrosesan bahasa alami, dan analisis
sintaksis komputasional.

2.4 Penyederhanaan Useless dan Unit

Penyederhanaan adalah proses mengurangi kompleksitas atau


mempermudah sesuatu. Dalam konteks "useless" (tidak berguna) dan "unit"
(satuan), berikut adalah beberapa cara untuk melakukan penyederhanaan:

Useless (Tidak Berguna):

Tidak penting: Jika sesuatu dianggap tidak penting atau tidak memberikan
manfaat, dapat disederhanakan dengan mengabaikannya atau menghilangkannya
sepenuhnya.

Kurangi kompleksitas: Jika suatu objek, konsep, atau proses terlihat terlalu rumit,
dapat disederhanakan dengan menghilangkan langkah-langkah yang tidak perlu
atau mengurangi jumlah komponen yang terlibat.

Fokus pada yang penting: Alih-alih membuang waktu dan energi pada sesuatu
yang tidak berguna, lebih baik fokus pada hal-hal yang memberikan manfaat atau
dampak positif.

Unit (Satuan):

Konversi: Jika ada banyak satuan yang terlibat dalam suatu masalah atau
pengukuran, Anda dapat menyederhanakan dengan mengonversi satuan-satuan
tersebut ke dalam satuan yang lebih umum atau familiar.

Menggunakan satuan yang sudah disepakati: Dalam beberapa kasus, ada satuan
yang telah disepakati secara internasional, seperti satuan metrik, yang lebih umum
digunakan daripada satuan khusus. Menggunakan satuan ini dapat
menyederhanakan komunikasi dan perhitungan.

Menggunakan perbandingan: Dalam beberapa kasus, perbandingan relatif antara


satuan dapat digunakan untuk menyederhanakan perhitungan. Misalnya, jika
Anda perlu membandingkan panjang dua benda, menggunakan perbandingan
rasio panjang dapat memberikan informasi yang cukup tanpa perlu mengonversi
satuan secara spesifik.

Ingatlah bahwa penyederhanaan harus dilakukan dengan hati-hati dan dalam


konteks yang sesuai. Terkadang, hal-hal yang terlihat "useless" atau unit yang
mungkin tampak rumit masih memiliki peran atau penting dalam konteks tertentu.

12
2.5 Penyerdehanaan Tata Bahasa Bebas Konteks (Empty)

Dengan melakukan langkah-langkah di atas, tata bahasa bebas konteks


akan disederhanakan dengan menghilangkan simbol-simbol valess yang tidak
berkontribusi dan produksi-produksi yang tidak berguna dalam pengenalan atau
generasi string dalam bahasa tersebut. Hal ini dapat meningkatkan kejelasan dan
efisiensi tata bahasa.

Penyederhanaan tata bahasa bebas konteks (context-free grammar) dengan


penghapusan simbol-simbol valess (empty symbols) dan produksi-produksi yang
tidak berguna (unreachable productions) adalah proses untuk mengurangi
kompleksitas tata bahasa dan menghilangkan bagian yang tidak memberikan
kontribusi dalam pengenalan atau generasi string dalam bahasa tersebut.

Berikut adalah langkah-langkah umum untuk menyederhanakan tata bahasa


bebas konteks dengan menghapus simbol-simbol valess dan produksi-produksi
yang tidak berguna:

1. Penghapusan Simbol-Simbol Valess (Empty Symbols):


 Identifikasi simbol-simbol valess dalam tata bahasa, yaitu simbol-
simbol yang dapat menghasilkan string kosong.
 Temukan produksi-produksi yang secara langsung menghasilkan
simbol-simbol valess.
 Gantikan setiap produksi yang mengandung simbol valess dengan
produksi-produksi baru yang tidak mengandung simbol valess.
 Ulangi proses ini hingga tidak ada lagi simbol-simbol valess dalam
produksi-produksi.
2. Penghapusan Produksi-produksi yang Tidak Berguna:
 Identifikasi simbol-simbol terminal dan nonterminal yang tidak
dapat dicapai dari simbol awal.
 Identifikasi simbol-simbol terminal dan nonterminal yang tidak
dapat mencapai simbol terminal.
 Hapus produksi-produksi yang mengandung simbol-simbol tidak
berguna.
 Ulangi proses ini hingga tidak ada lagi produksi-produksi yang
tidak berguna.

Dengan melakukan langkah-langkah di atas, tata bahasa bebas konteks


akan disederhanakan dengan menghilangkan simbol-simbol valess yang tidak
berkontribusi dan produksi-produksi yang tidak berguna dalam pengenalan atau
generasi string dalam bahasa tersebut. Hal ini dapat meningkatkan kejelasan dan
efisiensi tata bahasa.

13
5 Penyederhanaan tata bahasa bebas konteks (context-free grammar)
dengan penghapusan simbol-simbol valess (empty symbols) dan produksi-
produksi yang tidak berguna (unreachable productions) adalah proses untuk
mengurangi kompleksitas tata bahasa dan menghilangkan bagian yang tidak
memberikan kontribusi dalam pengenalan atau generasi string dalam bahasa
tersebut.

Berikut adalah langkah-langkah umum untuk menyederhanakan tata bahasa


bebas konteks dengan menghapus simbol-simbol valess dan produksi-produksi
yang tidak berguna:

1. Penghapusan Simbol-Simbol Valess (Empty Symbols):


 Identifikasi simbol-simbol valess dalam tata bahasa, yaitu simbol-
simbol yang dapat menghasilkan string kosong.
 Temukan produksi-produksi yang secara langsung menghasilkan
simbol-simbol valess.
 Gantikan setiap produksi yang mengandung simbol valess dengan
produksi-produksi baru yang tidak mengandung simbol valess.
 Ulangi proses ini hingga tidak ada lagi simbol-simbol valess dalam
produksi-produksi.
2. Penghapusan Produksi-produksi yang Tidak Berguna:
 Identifikasi simbol-simbol terminal dan nonterminal yang tidak
dapat dicapai dari simbol awal.
 Identifikasi simbol-simbol terminal dan nonterminal yang tidak
dapat mencapai simbol terminal.
 Hapus produksi-produksi yang mengandung simbol-simbol tidak
berguna.
 Ulangi proses ini hingga tidak ada lagi produksi-produksi yang
tidak berguna.

Dengan melakukan langkah-langkah di atas, tata bahasa bebas konteks


akan disederhanakan dengan menghilangkan simbol-simbol valess yang tidak
berkontribusi dan produksi-produksi yang tidak berguna dalam pengenalan atau
generasi string dalam bahasa tersebut. Hal ini dapat meningkatkan kejelasan dan
efisiensi tata bahasa.

14
BAB III

PENUTUP

3.1 Kesimpulan

Dalam bahasa pemrograman dan teori bahasa formal, terdapat beberapa


konsep yang saling terkait, yaitu ekspresi reguler, aturan produksi FSA, pohon
penurunan useless dan unit, serta penyederhanaan bahasa bebas konteks (empty).

Ekspresi reguler adalah suatu notasi untuk merepresentasikan pola atau


rangkaian karakter tertentu dalam sebuah teks. Ekspresi reguler sering digunakan
dalam proses pencarian dan penggantian teks pada program-program pengolah
teks seperti editor teks dan mesin pencari.

Aturan produksi FSA adalah himpunan aturan yang digunakan untuk


membangun sebuah finite state automata (FSA). FSA merupakan suatu model
matematis yang digunakan untuk memodelkan suatu sistem yang memiliki
keadaan-keadaan tertentu dan melakukan transisi dari satu keadaan ke keadaan
lainnya.

Pohon penurunan useless dan unit adalah suatu teknik dalam bahasa
pemrograman dan teori bahasa formal untuk menghilangkan simbol-simbol yang
tidak berguna atau tidak diperlukan dalam sebuah aturan produksi dari sebuah
bahasa. Hal ini bertujuan untuk mempermudah proses analisis dan pengolahan
bahasa tersebut.

Penyederhanaan bahasa bebas konteks (empty) adalah suatu proses untuk


menghasilkan tata bahasa yang lebih mudah dipahami dan diolah oleh mesin.
Penyederhanaan ini melibatkan penghilangan aturan produksi yang tidak berguna
atau redundan dalam sebuah tata bahasa bebas konteks.

Dalam keseluruhan, konsep-konsep tersebut sangat penting dan saling


terkait dalam proses pengolahan bahasa dan pembuatan program. Dengan
menguasai konsep-konsep tersebut, seseorang dapat lebih efektif dalam
menganalisis dan memproses bahasa, serta membuat program-program yang lebih
baik dan efisien.

15

Anda mungkin juga menyukai