Oleh:
RANIS SYIANA
NIM.221001037
IRSYA NURFADILAH
NIM.221001045
GITA OKVIADIANA
NIM.221001051
MEY WULANDARI
NIM.221001053
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
4
DAFTAR TABEL
5
BAB I
PENDAHULUAN
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 ε.
6
Pada gambar 1.1 diatas merupakan mesin otomata yang hanya dapat menerima
inputan
● dengan : di tolak
● deny : diterima
● dentist : diterima
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 :
7
Suatu α menyatakan simbol-simbol pada ruas kiri aturan produksi. Sedangkan β
menyatakan simbol-simbol pada ruas kanan aturan produksi. Beberapa istilah
dalam aturan produksi :
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
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.
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 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.
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
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.
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.
12
2.5 Penyerdehanaan Tata Bahasa Bebas Konteks (Empty)
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.
14
BAB III
PENUTUP
3.1 Kesimpulan
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.
15