Anda di halaman 1dari 11

Reading Report PENGGOLONGAN BAHASA MENURUT HIRARKI CHOMSKY Noam Chomsky mengelompokkan bahasa menjadi 4 (empat) tingkatan.

Yaitu, bahasa unrestricted/ Natural, bahasa Context Sensitive, bahasa bebas konteks (Context Free), dan bahasa regular. Penggolongan tersebut bisa dilihat dari tabel dibawah ini : Bahasa Regular / Tipe 3 Mesin Otomata Finite State Automata (FSA) Batasan Aturan Produksi adalah sebuah simbol variabel berisi terminal dan variabel, maksimal memiliki sebuah simbol variabel, yang bila ada terletak di posisi paling kanan berupa simbol variabel || || Tidak ada batasan

Bebas Konteks / Context Free / Tipe 2 Context Sensitive / Tipe 1 Unrestricted / Phase Structure / Natural Language / Tipe 0

Push Down Automata (PDA) Linear Bounded Automata (LBA) Mesin Turing

Tabel diatas merupakan keterangan mengenai setiap bahasa, mulai dari bahasa tipe 3 sampai kepada bahasa tipe 0. Berikut ini akan dijelaskan dengan lengkap mengenai masingmasing bahasa mulai dari tipe 3 sampai tipe 0 , contoh, mesin otomatanya, serta aplikasi-aplikasi yang mungkin dari masing-masing mesin otomata ini. 1. Bahasa Regular (Tipe 3) Bahasa regular merupakan tata bahasa yang paling terbatas, yaitu memiliki aturan produksi yang paling banyak membatasi bahasa tersebut. Bahasa regular ini sendiri mempunyai aturan produksi dimana adalah simbol variabel dan berupa simbol terminal dan variabel, tetapi simbol variabelnya hanya boleh sebuah saja dan berada di ujung kanan sementara simbol terminal ada di bagian kiri dari variabel tersebut. Contoh bahasa regular : A abcB Pada contoh ini, aturan produksi diatas merupakan bahasa regular karena terdiri atas terminal dan variabel, variabelnya hanya satu dan berada di paling kanan. Masing-masing bahasa direpresentasikan oleh satu mesin otomata. Seperti bahasa regular ini, juga direpresentasikan oleh mesin Finite State Automata.
1.1

Finite State Automata (FSA) Finite State Automata merupakan mesin automata yang merupakan model matematika dari suatu sistem yang menerima input dan output diskrit. Mesin ini memiliki state-state berhingga yang dapat berpindah-pindah dari satu state ke state yang lain berdasarkan inputnya. Perubahan state ini dinyatakan oleh fungsi transisi.

Finite state ini sendiri dinyatakan oleh 5 tupel : Q = himpunan state = himpunan simbol input = fungsi transisi S = state awal F = himpunan state akhir Contoh mesin FSA sederhana :

Gambar 1.1 Mesin FSA pencek pariti ganjil Finite state automata terdiri atas 2 jenis, yakni Deterministic Finite Automata (DFA) dan Non-Deterministic Finite Automata. Berikut penjelasannya : 1.1.1 Deterministic Finite Automata (DFA) Secara umum, deterministic finite automata merupakan FSA pada umumnya. Dia sama dengan FSA biasa. Deterministic Finite Automata mempunyai ciri-ciri yaitu untuk setiap simbol input, suatu state hanya akan berpindah ke tepat satu state berikutnya, tidak kurang ataupun lebih. Sebagai contoh :

Gambar 1.2 Mesin DFA


1.1.2 Non-Deterministic Finite Automata (NFA)

Berbeda dengan DFA, Non-deterministic finite automata tidak hanya berpindah ke satu state untuk setiap simbol input, tetapi ciri-cirinya yaitu untuk setiap simbol input, suatu state dapat tidak ada busur yang keluar, atau bisa lebih dari satu state dimana tempat ia berpindah. Contohnya :

Gambar 1.3 Mesin NFA Aplikasi Finite State Automata Finite state automata merupakan mesin automata yang banyak digunakan dan banyak kita temui dalam kehidupan kita sehari-hari. Sebagai contoh, dalam mesin pengenal identifier, dan pada mesin pengecek alamat email. 1.2.1 Mesin pengenal identifier Pada sebuah compiler bahasa pemrograman, dalam compiling kita perlu mengecek identifiernya. Identifier atau yang dikenal sebagai variable dan constanta dalam suatu bahasa pemograman tertentu dikatakan valid jika : tidak diawali angka atau special character tidak boleh mengandung spasi tidak boleh nama keyword atau fungsi boleh mengandung angka, underscore sesudah huruf panjang tidak boleh lebih dari 30 karakter
1.2

Mesin automata untuk mengecek identifier yang valid dapat digambarkan sebagai berikut :

Gambar 1.4 Mesin pengenal identifier


1.2.2 Mesin pengecek alamat e-mail

Pada situs-situs web biasanya terdapat page-page untuk para user untuk melakukan sign up. Pada page ini biasanya ada space untuk memasukkan alamat e-mail kita. Mesin pengecek alamat e-mail ini banyak terdapat di sini. Dimana untuk memastikan bahwa alamat e-mail yang kita masukkan benar, maka digunakanlah mesin ini. E-mail sendiri memiliki format : user@namadomain.domain sehingga secara garis besar selalu memiliki pola sebagai berikut :

Diawali karakter kemudian satu atau lebih huruf/angka, diikuti tanda @ kemudian diikuti dengan satu atau lebih huruf/angka, dipisahkan oleh tanda titik, lalu diakhiri dengan satu atau lebih huruf/angka dan tidak di akhiri oleh titik.

Gambar 1.5 FSM pengecek alamat email


2. Bahasa Bebas Konteks (Context Free Grammar)

Bahasa bebas konteks merupakan suatu tata bahasa yakni tata bahasa tipe 2 dimana bahasa ini memiliki lebih sedikit restriction daripada tata bahasa regular. Tata bahasa tipe ini memiliki aturan produksi yaitu dengan batasan aturan produksi dimana berupa simbol variabel. Tata bahasa ini tidak membatasi . Contoh-contohnya yaitu : C BedFG A fgHeR Dilihat dari contoh-contoh diatas, dapat dilihat bahwa tata bahasa bebas konteks tidak membatasi apa yang ada di . Sebuah tata bahasa bebas konteks adalah suatu cara yang menunjukkan bagaimana menghasilkan untai-untai dalam sebuah bahasa. Sama seperti yang sudah kita ketahui, pada saat penurunan suatu string, simbol-simbol variabel akan mewakili bagian-bagian yang belum terturunkan dari string tersebut. Bila pada tata bahasa regular, bagian yang belum terturunkan tersebut selalu terjadi pada suatu ujung, pada tata bahasa bebas konteks bisa terdapat lebih banyak bagian yang belum terturunkan itu, dan bisa terjadi dimana saja. Bahasa bebas konteks menjadi dasar dalam pembentukan parser/ proses analisis sintaksis. Bagian sintaks dalam suatu kompilator kebanyakan didefinisikan dalam tata bahasa bebas konteks. Seperti Finite State Automata mewakili bahasa regular, bahasa bebas konteks direpresentasikan oleh mesin Push Down Automata. 2.1 Push Down Automata Push down automata memiliki perbedaan dibanding dengan finite state automata yang merupakan mesin bahasa regular. Pada push down automata, dia sudah ditambah dengan adanya stack(tumpukan) sehingga banyaknya tupel dari mesin ini bertambah. Berikut ini adalah 7 tupel dari push down automata : M = (Q, ,,,S,F,Z) dimana: Q = himpunan state

= himpunan simbol input = simbol-simbol tumpukan/stack = fungsi transisi S = state awal F = himpunan state akhir Z = simbol awal tumpukan / top stack Dalam hal ini, push down automata bisa juga dikatakan sebagai finite state automata yang dilengkapi dengan stack. Dalam hal penggunaan push down automata, kita perlu menggunakan sebuah contoh. Misalnya ada sebuah PDA : Q = {q1,q2} = {a,b} = {A,B,Z} S = q1 Z=Z F = {q2} Dengan transisi pada PDA : -(q1,,Z) = {(q2,Z)} -(q1,a,Z) = {(q1,AZ)} -(q1,b,Z) = {(q1,BZ)} -(q1,a,A) = {(q1,AA)} -(q1,b,A) = {(q1,)} -(q1,a,B) = {(q1,)} -(q1,b,B) = {(q1,BB)} Bagaimana cara membaca fungsi transisi tersebut, yakni: Misalnya (q1,a,Z) = {(q1, AZ)} Cara membacanya seperti berikut : State q1 dan top-stack Z membaca input a Z Konfigurasinya menjadi : State q1, push A ke stack, A menjadi top stack A Z

Dengan menggunakan contoh kita bisa tahu bagaimana penggunaan Push Down Automata. Misalnya kita ingin mengetahui apakah string abba diterima oleh PDA ini.
1.

Simbol awal dalam stack Z Z

2. membaca input a Fungsi transisinya : (q1,a,Z) {(q1,AZ)} State q1 push A A Z

membaca input b Fungsi transisinya : (q1,b,A) = {(q1,)} State q1 top di pop


3.

4. membaca input b Fungsi transisinya : (q1,b,Z) {(q1,BZ)} State q1 push B B Z 5. membaca input a fungsi transisinya : (q1,a,B) {(q1,)} state q1, top di pop Z

= 6. selesai membaca input fungsi transisinya : (q1,,Z) = {(q2,Z)} konfigurasi mesin menjadi state : q2 q2 adalah final state maka string abba dapat diterima oleh mesin PDA di atas.

Aplikasi Context Free Grammar Contoh aplikasi dari Context Free Grammar adalah dalam parsing pada compilator. Dalam bagian parsing biasanya digunakan tata bahasa bebas konteks. Context free grammar dapat diaplikasikan dalam parsing / penurunan dalam derivation tree. Kita bisa memberi contoh pengaplikasiannya. Misalnya terdapat tata bahasa bebas konteks dengan aturan produksi (simbol awal S) : S AB A aA | a B bB | b Akan kita gambarkan pohon penurunan untuk memperoleh untai : aabbb. Pada pohon tersebut simbol awal akan menjadi akar (root). Setiap kali penurunan dipilih aturan produksi yang menuju ke solusi. Simbol-simbol variabel akan memjadi simpul-simpul yang mempunyai anak. Simpul-simpul yang tidak mempunyai anak akan menhadi simbol terminal. Kalau kita baca simbol terminal yang ada pada gambar 2.1 dari kiri ke kanan akan diperoleh untai aabbb.
2.2

S A a A a b B B b

Gambar 2.1 Pohon penurunan untuk untai aabbb

3. Bahasa Context Sensitive

Tata bahasa tipe berikutnya yakni tata bahasa context sensitive atau tipe 1. Tata bahasa ini merupakan tata bahasa yang memiliki aturan produksi yang tidak begitu terbatas, yakni hanya masalah panjangnya dimana || ||. Dengan begitu, yang perlu diperhatikan hanyalah panjang dari harus sama atau kurang dari panjang . Sehingga, bisa kita beri contoh tata bahasa context sensitive : Aaac bBcd aaCD ddCCA Tata bahasa tipe ini dapat direpresentasikan oleh mesin otomata Linear Bounded Automata . 3.1 Linear Bounded Automata Linear bounded automata (LBA) adalah mesin deterministic yang berdasar pada state, sebuah tape yang berisi input string, dan sebuah read/write head yang bergerak ke kiri dan ke kanan di sekitar tape. Mesin ini membandingkan state saat ini dan simbol pada tape pada posisi head dengan jumlah aturan yang terbatas untuk menentukan state berikutnya, simbol mana yang akan ditulis pada tape, dan ke arah mana head akan bergerak. Sama seperti finite automata dan pushdown automata, linear bounded automata menerima atau menolak sebuah input berdasarkan apakah mereka berhenti pada state yang diterima atau tidak. Sebuah LBA berhenti ketika tidak ada aturan untuk kombinasi saat itu dari state yang sementara dibaca. Linear bounded automata memiliki kemiripan dengan mesin Turing dimana sama-sama menggunakan tape, tetapi pada mesin ini adalah finite yakni terbatas. Linear bounded automata terdiri atas 8 tuples : Q = himpunan states = himpunan simbol input = simbol dalam pita = left endmaker (kiri) = right endmaker (kanan) = fungsi transisi S = state awal F = himpunan state akhir 3.2 Aplikasi Context sensitive language, begitu juga dengan linear bounded automata merupakan suatu Tata bahasa dan mesin otomata yang sangat berperan dalam persoalan ilmu komputer. Banyak aplikasi yang dapat kita temui menggunakan tata bahasa context sensitive maupun mesin linear bouded automata. Yang bisa kita lihat yakni pada operasi dalam permutasi. Tata bahasa context sensitive bisa menerangkannya. Berdasarkan hal itu, maka tata bahasa context sensitive dapat mengaplikasikan operasi yang berhubungan dengan matematika seperti permutasi.
4. Bahasa Natural / Unrestricted

Tata bahasa yang terakhir, yakni tata bahasa tipe 0 yaitu tata bahasa unrestricted (tidak ada batasan). Tata bahasa ini, seperti namanya, merupakan tata bahasa yang tidak memiliki sama sekali batasan dalam aturan produksinya. Tata bahasa ini adalah sama dengan tata bahasa yang kita gunakan sehari-hari. Tata bahasa ini bisa berupa bahasa Inggris, bahasa

Indonesia, maupun bahasa lainnya. Karena tidak ada batasannya, maka tata bahasa ini adalah sangat rumit, karena aturan produksinya tidak tetap. Contoh tata bahasa unrestricted : Aabbc aEdB aaaBC BCaa Dalam merepresentasikan tata bahasa ini, maka digunakanlah Mesin Turing (Touring Machine). Mesin Turing Mesin Turing merupakan mesin yang merepresentasikan tata bahasa unrestricted. Mesin Turing ini bersifat umum dan memiliki kemampuan yang lebih tinggi dari finite state automata maupun push down automata dari segi aksi dan komponennya. Pada mesin Turing memori akan berupa suatu pita yang pada dasarnya berupa array (deretan) sel-sel penyimpanan. Setiap sel mampu menyimpan sebuah simbol tunggal. Mesin Turing bisa dianalogikan seperti komputer sederhana. Dengan sejumlah state sebagai memori, pita sebagai secondary storage, dan fungsi transisi sebagai program. Sebuah mesin Turing secara formal dinyatakan dalam 7 tupel, dimana : Q = himpunan state = kumpulan simbol input = simbol dalam pita (meliputi juga blank) = fungsi transisi S = state awal F = himpunan state akhir b = simbol kosong (blank), bukan bagian dari Bagian pada pita yang belum ditulisi dianggap berisi simbol b.
4.1

Misalnya terdapat mesin Turing : Q = {q1, q2} = {a,b} = {a,b,b} F = {q2} S = {q1} Fungsi transisinya : (q1, a) = (q1, a, R) (q1, b) = (q1, a, R) (q1, b) = (q2, b, L) (pergerakan mesin Turing: R=right, L=left)
1) Misalkan pita yang akan dibaca :

Fungsi transisi (q1, a) = (q1, a, R) menyebabkan head bergerak ke kanan. 2) a b b a a

state q1 fungsi transisi (q1, b) = (q1, a, R) menyebabkan head menulis a lalu bergerak ke kanan 3) a a b a a

abbaaa a state q1 b b a a

state q1 fungsi transisi (q1, b) = (q1, a, R) menyebabkan head menulis a lalu bergerak ke kanan.

4) a a a a a

7) a b b a a b

state q1 fungsi transisi (q1, a) = (q1, a, R) menyebabkan head bergerak ke kanan. 5) a b b a a state q1 fungsi transisi (q1, a) = (q1, a, R) menyebabkan head bergerak ke kanan. 6) a b b a a b

state q2 tidak ada transisi lagi dari state q2, mesin Turing akan berhenti (halt state) karena state q2 termasuk state akhir berarti input tersebut diterima

state q1 fungsi transisi (q1, b) = (q2, b, L) menyebabkan head bergerak ke kiri 4.2 Aplikasi Mesin Turing bisa dibilang adalah mesin automata yang paling mendekati sempurna. Mesin Turing ini sendiri disebut-sebut dapat mencapai kemampuan dari komputer digital. Beberapa mesin Turing yang dikombinasikan dapat memecahkan masalah seperti pada komputer digital. Melalui dalil Turing, kita dapat melihat bahwa mesin Turing bisa saja digunakan untuk memecahkan masalah seperti pada komputer mekanis. Dalam hal ini, mesin Turing dapat diaplikasikan ke berbagai masalah di komputer.

DAFTAR PUSTAKA 1) Utdirartatmo,Firrar , 2001, Teori Bahasa dan Otomata, Yogyakarta, J&J Learning 2) Hariyanto, Bambang, 2006, Teori Bahasa, Otomata, dan Komputasi serta Terapannya, Bandung, Informatika 3) www.wikipedia.org 4) www.search.google.com

PENGGOLONGAN BAHASA MENURUT HIRARKI CHOMSKY

TUGAS FINAL & READING REPORT

DISUSUN OLEH Ulaen, Hendra, Ch.D 08520102

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT 2009