KONSEP DAN IMPLEMENTASI PARSING DENGAN MENGGUNAKAN METODE BRUTE FORCE

Ukuran: px
Mulai penontonan dengan halaman:

Download "KONSEP DAN IMPLEMENTASI PARSING DENGAN MENGGUNAKAN METODE BRUTE FORCE"

Transkripsi

1 KONSEP DAN IMPLEMENTASI PARSING DENGAN MENGGUNAKAN METODE BRUTE FORCE SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains (S.Si) Program Studi Matematika Oleh: Vinsentia Asri Budiarti NIM : PROGRAM STUDI MATEMATIKA JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SANATA DHARMA YOGYAKARTA 2006 i

2

3

4 HALAMAN PERSEMBAHAN Kebanggaan terbesar adalah bukan tidak pernah gagal, tetapi bangkit kembali setiap kali kita jatuh. Kebanyakan dari kita tidak menyukai apa yang sudah kita miliki, tetapi kita selalu menyesali apa yang belum kita capai. Seorang pesimis melihat kesulitan dalam setiap kesempatan, seorang optimis melihat kesempatan dalam setiap kesulitan. Kupersembahkan Karyaku ini Kepada: Yesus Kristus Sang Juru Slamatku, Kedua orangtuaku tercinta JB Tukidjo, Kakaku tersayang mas Bowo, Kekasihku dr Aloysius Sulistyanto, M.D., iv

5 PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah. Yogyakarta, Juli 2006 Penulis Vinsentia Asri Budiarti v

6 ABSTRAK Parsing dengan metode Brute Force adalah parsing yang memilih aturan produksi mulai dari paling kiri, dan melakukan expand semua non terminal pada aturan produksi sampai yang tertinggal adalah simbol terminal. Kemungkinan pertama string masukan sukses di-parsing, bisa juga bila terjadi expansi yang salah untuk suatu simbol variabel maka akan dilakukan backtrack. Algoritma ini membangun pohon parsing yang top down, yaitu mencoba segala kemungkinan untuk setiap simbol non terminal. vi

7 ABSTRACT The Brute Force Parsing method is a method which choosing left most symbol on a production rule and expanding all of non terminal symbol on it until only a terminal symbol left. The first possibility is input string parsed successfully, otherwise it will perform backtracking when expansion have an error. This algorithm create a top-down parse tree which will trying all possibilities for each non terminal symbol. vii

8 KATA PENGANTAR Allah mencipatakan manusia diberi akal dan pikiran. Dengan tidak meninggalkannya kita mampu melewati segala rintangan dan kesulitan yang kita hadapi. Akan tetapi kita sering lupa bahwa kasih dan cintanya senantiasa menyertai kita sepanjang hidup. Dan dengan campur tangan Allah semua dapat terselesaikan dengan mudah. Bunda Maria perawan suci yang telah mengajarkan kepada kita untuk tidak pernah berhenti memohon dalam kesulitan apapun yang kita hadapi, dengan perantaraannya maka akan dikabulkannya. Puji syukur penulis panjatkan kepadamu Bapa di surga yang telah mengabulkan doa-doaku dengan perantaraan Bunda Maria, Ibu sejati dan Ratu surgawi. KepadaMu semua pengharapanku yang besar kucurahkan sehingga dapat menyelesaikan tugas dan tanggungjawabku selama ini dengan baik. Dalam menyusun skripsi ini penulis memperoleh banyak bantuan, petunjuk serta bimbingan yang sangat berharga dari berbagai pihak.. Oleh karena itu dengan ketulusan hati ijinkan penulis secara pribadi menyampaikan ucapan terima kasih sebesar-besarnya kepada: 1. Bpk Ir. Ig. Aris Dwiatmoko, M.Sc. selaku Dekan FMIPA Universitas Sanata Dharma, terima kasih atas saran dan motivasi yang diberikan kepada penulis. 2. Bpk Y.G. Hartono, S.Si., M.Sc. selaku Ketua Program Studi Matematika, terima kasih atas semangat yang diberikan kepada penulis hingga penulis dapat menyelesaikan skripsi ini. 3. Ibu M.V. Any Herawati, S.Si., M.Si. selaku Dosen Pembimbing Akademik, terima kasih atas saran dan motivasinya. viii

9 4. Bpk Iwan Binanto, S.Si. selaku dosen pembimbing skripsi, terima kasih buanyak atas kesabaran, perhatian, motivasi dan kepercayaan yang diberikan kepada penulis hingga selesainya penulisan skripsi ini. Penulis tidak akan pernah melupakan semua bantuan, kesabaran, saran serta kebaikan bapak. 5. Terima kepada semua dosen pengajar serta staff FMIPA atas kerjasamanya selama ini kepada penulis. 6. Bapak dan ibu tercinta JB. Tukidjo, serta kakakku tersayang Mas Bowo, terima kasih atas kasih sayang, perhatian, semangat, kesabaran dan kebaikan yang diberikan kepada penulis. 7. Tak lupa ucapan terima kasih kepada calon suamiku, dr. Aloysius Sulistyanto, M.D., Akp, terima kasih buanyak atas kesabaran, kesetian, cinta, kasih sayang, motivasi, pengertian, ketulusannya hingga saat ini. Sekali lagi terima kasih telah membangkitkan semangat hidupku. 8. Sahabatku Tatik, terima kasih atas semangat yang diberikan, terima kasih juga atas pinjaman kamusnya. 9. Teman-teman kampus angkatan 2000: Tatik, Ayu, Bunga, Pras, Felix, Willy, Tony, Niza, Eros, Tildy, Sinta, Megi, Eros, Tika, Elin, Sunarto, Deny, Wiwid ndut, Dewi, Susi, Wiwid, Andy, Lia, Nety, Heri, Jeng-jeng, polo, Mira, Ferry, Wahyu, Heru. Terima aksih atas persahabatnnya selama ini. 10. Teman kostku Ana, terima kasih atas persahabatannya ini. 11. Mas Koko, terima kasih atas bantuannya. ix

10 12. Semua pihak yang secara langsung maupun tidak langsung yang turut membantu dalam penulisan skripsi ini, maaf tidak dapat disebutkan satu persatu. Penulis menyadari bahwa skripsi ini masih jauh dari kata sempurna, oleh karena itu segala kritik dan saran yang bersifat membangun dari semua pihak akan penulis terima dengan senang hati. Akhir kata penulis mohon maaf atas segala kekurangan dan penulis berharap smoga skripsi ini dapat bermanfaat bagi kita semua. Yogyakarta, Juli 2006 Penulis Vinsentia Asri Budiarti x

11 DAFTAR ISI HALAMAN JUDUL... i HALAMAN PERSETUJUAN PEMBIMBING... ii HALAMAN PENGESAHAN... iii HALAMAN PERSEMBAHAN... iv PERNYATAAN KEASLIAN KARYA... v ABSTRAK... vi ABSTRACT...vii KATA PENGANTAR...viii DAFTAR ISI....xi BAB I PENDAHULUAN.. 1 A. Latar Belakang.1 B. Perumusan Masalah.3 C. Pembatasan Masalah... 3 D. Tujuan Penulisan.. 4 E. Manfaat Penulisan 4 F. Metode Penulisan.4 G. Sistematika Penulisan BAB II DASAR TEORI...6 A. Finite State Automata..6 A.1. Penerapan Finite State Automata.6 A.2. Deterministic Finite State Automata...9 xi

12 A.3. Non Deterministic Finite State Automata...12 B. Bahasa bahasa Reguler...15 B.1. Bahasa-bahasa Reguler dan Ekspresi-ekspresi Reguler 15 B.2. Aturan Produksi Bahasa Reguler...18 C. Tata Bahasa Bebas Konteks..21 C.1. Bahasa bahasa Bebas Konteks 21 C.2. Penyederhanaan Tata Bahasa Bebas Konteks...24 D. Parsing...33 D.1. Parsing Dengan Brute Force..38 D.2. Ambiguitas.39 E. Pointer Di Pascal 43 E.1. Deklarasi Variabel Pointer.45 E.2. Proses Variabel Pointer..49 BAB III PERANCANGAN DAN DIAGRAM ALUR PROGRAM PARSING..52 A. Perancangan Struktur Data.52 B. Diagram Alur Program Parsing..53 BAB IV PENUTUP 63 A. Kesimpulan.63 B. Saran...63 DAFTAR PUSTAKA 64 LAMPIRAN...65 xii

13 BAB I KONSEP DAN IMPLEMENTASI PARSING DENGAN MENGGUNAKAN METODE BRUTE FORCE A. Latar Belakang Masalah Dalam bidang komputer dikenal sebuah bahasa yaitu bahasa otomata berhinggan (finite automata). Sebuah otomata berhingga menguraikan sebuah bahasa sebagai himpunan semua untai yang menggerakkan untai dari state awal ke salah satu state yang diterimanya (himpunan state akhir). Dalam skripsi ini digunakan tata bahasa reguler dan tata bahasa bebas konteks sebagai dasarnya. Bila pada tata bahasa reguler terdapat pembatasan pada ruas kanan atau hasil produksi maka pada tata bahasa bebas konteks tidak terdapat pambatasan hasil produksinya. Sebuah tata bahasa bebas konteks adalah suatu cara yang menunjukkan bagaimana menghasilkan untai-untai dalam sebuah bahasa. Tata bahasa bebas konteks telah banyak memberikan bantuan pada pemrograman dan perancangan parsing. Tata bahasa bebas konteks menjadi dasar dalam pembentukan suatui proses parsing. Penyederhanaan tata bahasa bebas konteks bertujuan untuk melakukan pembatasan posisi munculnya terminal-terminal dan variabel-variabel sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak berarti. Dengan diturunkannya sebuah untai dari tata bahasa bebas konteks, simbol awal diganti oleh suatu untai. Setiap nonterminal dalam untai ini, secara bergantian digantikan oleh untai yang lain, dan seterusnya sampai tinggal tersisa 1

14 2 untai yang hanya terdiri dari simbol-simbol terminal. Selanjutnya tidak ada lagi penggantian karena tidak ada lagi nonterminal untuk digantikan. Kadang-kadang sangat berguna untuk menggambarkan penurunan itu, yaitu yang menunjukkan kontribusi dari masing-masing non terminal pada untai akhir dari terminalterminal. Gambar seperti ini dinamakan pohon penurunan atau pohon penguraian (derivation tree atau pharse tree). Metode parsing ada dua, pertama Top Down dan yang kedua Bottom Up. Top Down sendiri meliputi Backtrack: Brute Force dan No Backtrack: Recursive Descent Parser. Dalam skripsi ini penulis hanya membahas parsing dengan menggunakan metode Top Down Brute Force. Metode ini akan memilih aturan produksi mulai dari paling kiri dan melakukan expand semua non terminal pada aturan produksi sampai yang tertinggal adalah simbol terminal. Skripsi ini hanya membahas parsing dengan menggunakan metode Brute Force karena penulis merasa bahwa dasar teori untuk membahas parsing dengan metode Brute Force pernah penulis terima selama kuliah. Sedangkan parsing dengan metode Recursive Desent Parser dasar teori untuk membahasnya belum pernah penulis terima karena ini tentang compiler (dasar teorinya misal membahas analisis leksikal dan analisis semantik). Sehingga penulis memutuskan untuk menulis skripsi tentang parsing yang menggunakan metode Brute Force. Penulis juga membahas pointer di pascal. Karena pointer di pascal akan mendasari penulis dalam membuat program parsing-nya. Program parsing yang penulis buat menggunakan bahasa pemrograman turbo pascal. Pointer adalah alamat untuk item data. Pascal memungkinkan untuk membuat variabel yang akan

15 3 menunjuk ke data dengan tipe khusus. Variabel pointer mengandung alamat dari data dalam memori B. Perumusan Masalah Pokok permasalahan yang akan dibahas dalam tulisan ini dapat dirumuskan sebagai berikut: 1. Apa yang dimaksud dengan parsing dengan menggunakan metodebrute Force itu? 2. Bagaimana mengimplementasikan parsing dengan menggunakan metode Brute Force? C. Pembatasan Masalah Dalam pembahasan tentang parsing dalam konsep dan implementasinya penulis membatasi masalah hanya pada proses parsing dengan menggunakan metode Brute Force dengan aturan produksi tata bahasa sebagai berikut: S Ba Ab A Sa AAb a B Sb BBa b yang akan menurunkan untai-untai. Misal untai yang diturunkan: bbaaaabb, untai ab, untai ba, untai abba dan sebagainya.

16 4 D. Tujuan Penulisan Tujuan yang ingin dicapai adalah ingin lebih memahami dan mendalami tentang konsep parsing dengan metode Brute Force yang di implementasikan dalam bahasa pemrograman Turbo Pascal. E. Manfaat Penulisan Manfaat yang diperoleh dari mempelajari topik ini adalah supaya semakin memahami dan mengerti tentang konsep parsing dengan metode Brute Force dan implementasinya dengan menggunakan bahasa pemrograman Turbo Pascal. F. Metode Penulisan Metode yang digunakan penulis adalah studi pustaka yaitu dengan membaca dan mempelajari buku-buku yang berkaitan dengan bahan yang telah dipilih. G.Sistematika Penulisan Pada bab I penulis pembahas tentang latar belakang masalah, rumusan masalah, pembatasan masalah, tujuan penulisan, manfaat penulisan, metode penulisan, sistematika penulisan. Pada bab II tentang dasar teori yang isinya membahas Finite State Automata meliputi penerapan finite state automata, deterministic finite state automata, non deterministic finite state automata, Bahasa-bahasa regular yang

17 5 meliputi bahasa-bahasa regular dan ekspresi-ekspresi regular, aturan produksi bahasa regular, Tata bahasa bebas kontrks yang meliputi bahasa-bahasa bebas konteks, penyederhanaan tata bahasa bebas konteks, Parsing meliputi parsing dengan metode brute force, ambiguitas, Pointer meliputi deklarasi variable pointer, proses variable pointer. Pada Bab III membahas tentang perancangan dan diagram alur program parsing yang berisi tentang perancangan dengan menggunakan struktur data, diagram alur program parsing. Pada Bab IV penutup yang berisi kesimpulan dan saran.

18 BAB II DASAR TEORI A. Finite State Automata A.1 Penerapan Finite State Automata Finite State Automata / otomata berhingga state, selanjutnya disingkat dengan FSA, bukanlah mesin fisik tetapi suatu model matematika dari suatu sistem yang menerima input dan output diskrit. Finite State Automata merupakan mesin otomata dari bahasa reguler. Suatu finite state automata memiliki state yang banyaknya berhingga, dan dapat berpindah-pindah dari suatu state ke state yang lain. Perubahan state ini dinyatakan oleh fungsi transisi. Jenis otomata ini tidak memiliki tempat penyimpanan, sehingga kemampuan mengingatnya terbatas. Teori mengenai finite state automata adalah suatu tool yang berguna untuk merancang sistem. Contoh, pada pemeriksa pariti ganjil pengirim akan menambahkan bit paritas sehingga jumlah bit 1 adalah ganjil. Misal terdapat data: 0110 maka pengirim akan menambahkan bit 1, sehingga penerima akan memperoleh bila data: 0111 maka pengirim akan menambahkan bit 0, sehingga penerima akan memperoleh

19 7 bila suatu saat penerima memperoleh jumlah bit 1 yang genap, misal maka penerima akan memutuskan bahwa telah terjadi kesalahan dalam pengiriman. Bisa dibuat sebuah otomata yang akan memeriksa apakah suatu barisan input memiliki bit 1 dalam jumlah ganjil atau genap. Mesin ini akan mempunyai dua state, sebut saja sebagai state EVEN (genap) dan state ODD (ganjil). EVEN ODD gambar 1.1 mesin otomata untuk pemeriksa pariti ganjil Pada finite state automata, arti dari bentuk-bentuk seperti yang ada pada gambar diatas adalah: Lingkaran menyatakan state/kedudukan Label pada lingkaran adalah nama state tersebut Bususr menyatakan transisi yaitu perpindahan kefudukan/state Label pada bususr adalah simbol input Lingkaran didahului sebuah bususr tanpa label menyatakan state awal Lingkaran ganda menyatakan state akhir/final Gambar seperti diatas biasa disebut sebagai graph transisi atau diagram keadaan (state). Pada gambar diatas state awalnya adalah EVEN. Karena mesin ini merupakan pemeriksa pariti ganjil, maka himpunan state akhir yang menyatakan input diterima adalah ODD. Simbol input yang ada {0,1}. Jika mesin mendapatkan input:

20 urutan state yang terjadi EVEN 1 ODD 1 EVEN 0 EVEN 1 ODD Berakhir dengan state ODD sehingga 1101 diterima oleh mesin Bila mesin mendapatkan input: 101 urutan state yang terjadi EVEN 1 ODD 0 ODD 1 EVEN Berakhir dengan state EVEN maka 101 ditolak oleh mesin. Meskipun pada contoh diatas state akhirnya hanya satu, pada umumnya bisa terdapat sejumlah state akhir. Istilah state akhir tidak berarti komputasi (disini berupa perpindahan/transisi) berhenti (halt) begitu state akhir tercapai. State akhir hanya menyatakan kedudukan-kedudukan tertentu sebagai kedudukan-kedudukan yang diterima. Secara formal finite state automata dinyatakan oleh 5 tupel atau M=(Q,Σ,δ,S,F), dimana: Q = himpunan state/kedudukan Σ = himpunan simbol input/masukan/abjad δ = fungsi transisi S = state awal/kesusukan awal, S Q F = himpunan state akhir F adalah jumlah state akhir, jadi jumlah state akhir pada suatu finite state automata bisa lebih dari satu.

21 9 Maka contoh diatas bisa dinyatakan sebagai berikut: Q = {ODD,EVEN} Σ = {0,1} S = EVEN F = {ODD} Finite state automata berdasarkan pada pendefinisian kemampuan berubah state-statenya bisa dikelompokkan ke dalam deterministik maupun non deterministik,. A.2 Deterministic Finite State Automata Pada otomata berhingga deterministik/ Deterministic Finite Automata, selanjutnya disebut dengan DFA, dari suatu state ada tepat satu state berikutnya untuk setiap simbol masukan yang diterima. Sebagai contoh, misal ada otomata seperti pada gambar berikut ini: q 0 a a b b q 1 b a q 2 gambar 2.1 mesin DFA Konfigurasi Deterministic Finite State Automata di atas secara formal dinyatakan sebagai berikut: Q = {q 0,q 1,q 2 } Σ = {a,b} S = q 0 F = {q 2 }

22 10 Fungsi transisi yang ada sebagai berikut: δ(q 0,a) = q 0 δ(q 0,b) = q 1 δ(q 1,a) = q 1 δ(q 1,b) = q 2 δ(q 2,a) = q 1 δ(q 2,b) = q 2 Biasanya fungsi-fungsi transisi ini disajikan dalam sebuah tabel transisi. Tabel transisi tersebut menunjukkan state-state berikutnya untuk kombinasi statestate dan input. Tabel transisi dari fungsi transisi diatas sebagai berikut: δ a b q 0 q 0 q 1 q 1 q 1 q 2 q 2 q 1 q 2 Tabel 1.1 Pada tabel transisi Deterministic Finite Automata diatas, nampak bahwa sebuah state berikutnya yang unik untuk setiap pasangan state-input. Jadi untuk sebuah state dan input yang berlaku, bisa ditentukan tepat satu state berikutnya. Pada Deterministic Finite Automata, δ merupakan sebuah fungsi yang harus terdefinisi untuk semua pasangan state-input yang ada dalam Q X Σ. Sehingga apapun state saat itu atau inputnya, selalu terdapat satu dan hanya satu state

23 11 berikutnya. State berikutnya itu ditentukan oleh informasi yang ada di dalam pasangan state-input. Suatu string x dinyatakan diterima bila δ(s,x) berada pada state akhir. Biasanya secara formal dikatakan bila M adalah sebuah finite state automata, M=(Q, Σ, δ, S, F), menerima bahasa yang disebut L(M), yang merupakan himpunan {x δ(s,x) didalam F}. Misal pada contoh gambar 2.1 diberi input string abb pada mesin tersebut. Maka : δ(q 0,abb)= δ(q 0,bb)= δ(q 1,b)= q 2 karena q 2 termasuk state akhir, maka abb berada dalam L(M) misal pada ontoh gambar 2.1 di beri input string baba pada mesin tersebut, maka: δ(q 0,baba)= δ(q 1,aba) = δ(q 1,ba)= δ(q 1,a) = q 1 karena q 1 tidak termasuk state akhir, maka baba tidak berada dalam L(M). Contoh lain, misal terdapat gambar mesin DFA sebagai berikut: a,b a q 0 q 1 b tabel transisi dari gambar 2.2 adalah : δ a b q 0 q 1 q 1 q 1 q 1 q 0 Tabel 1.2

24 12 Jadi dari suatu gambar/ diagram transisi dapat dibuat tabel transisinya. Sebaliknya dapat pula digambar diagram transisi suatu Deterministic Finite Automata bila diketahuai tabel transisinya. Contoh terdapat tabel transisi: δ a b q 0 q 0 q 1 q 1 q 0 q 0 Tabel 1.3 Dengan S = q 0 F = {q 1 } Maka diagram transisinya dapat dilihat pada gambar 2.3 berikut ini: a b q 0 q 1 a,b gambar 2.3 A.3 Non Deterministic Finite State Automata Pada Non-deterministic Finite Automata (NFA) dari suatu state bisa terdapat 0,1, atau lebih busur keluar (transisi) berlabel simbol input yang sama. Non-deterministic Finite Automata didefinisikan pula dengan lima tupel M = (Q, Σ, δ, S, F), dengan arti yang serupa pada Deterministic Finite Automata. Perbedaannya terletak pada fungsi transisinya, dimana untuk setiap pasangan state-input, bisa memiliki nol atau lebih pilihan untuk state berikutnya.

25 13 Contoh: q 0 a,b a q 1 gambar 2.4 mesin otomata NFA a,b Dari gambar 2.4, dari state q 0 terdapat dua busur keluar yang berlabel input a. Dari state q 0 bila mendapat input a bisa berpindah ke state q 0 atau q 1, yang secara formal dinyatakan: δ(q 0,a)= {q 0,q 1 } maka otomata ini disebut non-deterministik (tidak pasti arahnya). Tabel transisinya sebagai berikut: δ a b q 0 {q 0,q 1 } {q 1 } q 1 {q 1 } {q 1 } Tabel 2.1 Perlu diperhatikan bahwa cara penulisan state hasil transisi pada tabel transisi untuk Non-deterministic Finite State Automata digunakan kurung kurawal { dan }, karena hasil transisinya merupakan suatu himpunan state. Suatu string diterima oleh Non-Deterministic Finite Automata bila terdapat suatu urutan sehubungan dengan input string tersebut dari state awal menuju state akhir. Misalkan saja L(M) adalah bahasa yang diterima oleh Non-

26 14 Deterministic Finite Automata pada gambar 2.4. Tentukan apakah string ab termasuk dalam L(M)? Untuk Non-Deterministic Finite Automata harus mencoba semua kemungkinan yang ada sampai terdapat satu yang mencapai state akhir. Dalam contoh diatas, urutan transisi yang mencapai state akhir: δ(q 0,ab) = δ(q 1,b) = q 1 Jadi untuk membuktikan suatu string diterima oleh Non-Deterministic Finite Automata tersebut dibuktikan dulu suatu urutan transisi yang menuju state akhir. Contoh lain, misal terdapat gambar 3.2 mesin NFA: q 0 b a q1 a gambar 3.2 Terlihat tidak ada busur keluar dari state q 1 untuk simbol input b atau secara formal dinyatakan: δ(q 1,b) = φ

27 15 tabel transisinya sebagai berikut: Tabel 2.2 δ a b q 0 {q 1 } {q 0 } q 1 {q 0 } φ B. Tata Bahasa Reguler B.1. Bahasa-Bahasa Reguler dan Ekspresi-Ekspresi Reguler Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerima bahasa-bahasa. Finite state automata sendiri merupakan model matematika dari suatu sistem yang menerima input dan output diskrit dan juga merupakan mesin otomata dari bahasa reguler. Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana dengan ekspresi regular (Regular Ekspression). Ekspresi regular selanjutnya disebut sebagai ER, yang memberikan cara untuk mendefinisikan bahasa-bahasa. Ekspresi regular memberikan suatu pola untuk untai dari suatu bahasa. Semua untai yang cocok dengan sebuah pola tertentu, dan hanya untai-untai itu, yang menyusun bahasa regular tertentu. Demikian pula sebuah otomata berhingga mendefinisikan sebuah bahasa sebagai himpunan semua untai yang menggerakkan untai dari kedudukan awal ke salah satu dari kedudukan-kedudukan yang diterima Untuk sebuah abjad tertentu, bahasa-bahasa regular atas menarik dari segi teoritis karena membentuk koleksi terkecil dari bahasa-bahasa atas yang tertutup di bawah operasi-operasi perangkaian, penutup bintang dan

28 16 gabungan bahasa dan memuat bahasa kosong Ø dan bahasa-bahasa singleton { a } untuk a Є. Definisi (Kelly, Dean. h 36) Misalkan merupakan sebuah abjad. Koleksi dari bahasa-bahasa regular atas didefinisikan sebagai berikut: a. Ø adalah sebuah bahasa regular. b. { ε } adalah sebuah bahasa regular. c. Untuk setiap a, { a } adalah sebuah bahasa regular. d. Jika A dan B adalah bahasa-bahasa regular maka A B, A. B, dan A* adalah bahasa-bahasa regular. e. Tidak ada bahasa-bahasa lain atas yang regular. Artinya koleksi dari bahasa-bahasa regular atas terdiri dari bahasa kosong, semua bahasa singleton, termasuk { ε }, dan semua bahasa yang dibentuk oleh operasi-operasi bahasa perangkaian, gabungan, dan penutup bintang. Contoh: Misalkan = {a, b} maka yang berikut ini benar: Ø dan { ε } adalah bahasa-bahasa regular. { a } dan { b } adalah bahasa-bahasa regular. { a, b} adalah regular, yang merupakan gabungan dari { a } dan { b }. { ab } adalah reguler. { a, ab, b } adalah regular. { a i i 0 } adalah regular. { a i b j i 0 dan j 0} adalah regular.

29 17 { (ab) i i 0 }adalah regular. Notasi dari ekspresi regular yaitu sebagai berikut: *, +, +,,. * yaitu karakter asterisk, berarti bisa tidak muncul, bisa juga muncul berhingga kali (0-n) + ( pada posisi superscript / di atas) berarti minimal muncul satu kali (1-n) + atau berarti union. (titik) berarti konkatenasi, biasanya titik bisa dihilangkan, misal: ab bermakna sama seperti a.b Telah disepakati bahwa urutan untuk operator-operator *, dan. adalah * pertama,. berikutnya dan yang terakhir. Contoh ekspresi regular ( selanjutnya disingkat sebagai ER): ER: ab*cc Contoh string yang dibangkitkan: abcc, abbcc, abbbcc, abbbbcc, acc ( b bisa tidak muncul atau muncul sejumlah berhingga kali ) ER: 010* Contoh string yang dibangkitkan: 01, 010, 0100, ( jumlah 0 di ujung bisa tidak muncul, bisa muncul berhingga kali ) ER: a + d Contoh string yang dibangkitkan: ad, aad, aaad ( a minimal muncul sekali ) ER: a * b * Contoh string yang dibangkitkan: a, b, aa, bb, aaa, bbb, aaaaa, bbbb

30 18 ER: ( a b ) Contoh string yang dibangkitkan: a, b ER: ( a b )* Contoh string yang dibangkitkan: a, b, ab, ba, abb, bba, aaaa, bbbb ( untai yang memuat a atau b) ER: 01 * 0 Contoh string yang dibangkitkan: 0, 01, 011, 0111, ( string yang berawalan dengan 0, dan selanjutnya boleh diikuti deretan1) B.2. Aturan Produksi Bahasa Reguler Sebuah otomata berhingga mendefinisikan sebuah bahasa sebagai himpunan semua untai yang menggerakkan dari state awal ke salah satu state yang diterima ( himpunan state akhir). Sebagai contoh, pandang otomata berhingga yang diterima oleh transisi dalam gambar dibawah ini. ε Q 2 a b a Q 0 Q 1 ε ε Q 3 b b Q 4 Q4 qq Otomata berhingga diatas menerima bahasa regular a(a* b*)b. Bilamana sebuah lintasan diambil dari kedudukan awal ke yang lain, keluaran simbol itu aa 2 b dengan menggerakkan dari kedudukan Q 0 ke Q 1 ke Q 2 ke Q 2 ke Q 2 ke Q 4.

31 19 Untai yang dipakai dalam bahasa regular a(a* b*)b terdiri dari sebuah a yang diikuti oleh suatu bagian akhir. Misal E dianggap bagian akhir, secara simbolis observasi ini menyajikan S ae. Anak panah ( ) bisa dibaca seperti dapat atau terdiri dari. Bagian akhir dari sebuah untai demikian terdiri dari satu dari dua susunan para a dan para b. Jadi bisa ditulis E A dan E B untuk menunjukkan kemungkinan ganda untuk E. Dua susunan dari para a dan para b bisa dinyatakan sebagai A aa bersama dengan A b untuk menunjukkan sebuah untai dari para a diikuti oleh sebuah b atau sebagai B bb bersama dengan B b, yang menunjukkan sebuah untai para b diikuti oleh b yang lain. Ekspresi-ekspresi tersebut dapat diringkas sebagai berikut: S ae E A E B A b A aa B b B bb Ekspresi-ekspresi tersebut dapat dipandang sebagai aturan-aturan pengganti sewaktu membangkitkan untai-untai. Simbol di sebelah kiri anak panah bisa diganti oleh untai di sebelah kanan. Sebagai contoh, untai aab bisa dihasilkan melalui permulaan S, mengganti S dengan ae, mengganti E dengan aa, dan akhirnya A dengan b. Diperkenalkan simbol yang di baca atau. Dengan menggunakan simbol ini, dua aturan E A dan E B dapat dikombinasikan sebagai E A B, demikiani juga aturan yang lain. Koleksi aturan sebelumnya untuk

32 20 membangkitkan untai-untai tadi kemungkinan bisa ditulis kembali sebagai berikut: 1. S ae 2. E A B 3. A aa b 4. B bb b Untai a 3 b bisa dibangkitkan dari S dengan pertama kali menerapkan aturan 1 untuk mandapatkan ae, kemudian aturan 2 untuk mendapatkan aa, dan kemudian aturan 3 untuk mendapatkan aaa dan aaaa; akhirnya bagian kedua dari aturan 3 dapat diterapkan untuk mendapatkan aaab. Uraian dari proses pembangkitan ini dapat ditulis seperti berikut: S => ae => aa => aaa => aaaa => aaab Untuk anak panah ganda =>Dibaca sebagai menurunkan, menghasilkan, atau membangkitkan. Definisi (Kelly, Dean. h 81) Sebuah tata bahasa regular G didefinisikan dengan 4-tupel G = (, N, S, P), dimana: = sebuah abjad N = sebuah koleksi simbol nonterminal S = suatu nonterminal tertentu yang dinamakan simbol awal (start simbol) P = sebuah koleksi aturan-aturan pengganti, dinamakan produksiproduksi, yang berbentuk A w, untuk A Є N dan w adalah suatu untai atas N yang memenuhi:

33 21 1. w memuat paling banyak satu nonterminal 2. jika w memuat sebuah nonterminal, maka ia muncul sebagai simbol terkanan dari w. Bahasa yang dihasilkan oleh tata bahasa regular G dinotasikan L (G). Contoh: Sebuah tata bahasa regular G = (, N, S, P), untuk = { a, b } N = { S, A } P : S ba A aaa b ε L (G) memuat semua untai yang berbentuk ba 2n b dan ba 2n. yaitu L (G) = b (a 2 )*(b ε). C. Tata Bahasa Bebas Konteks C.1. Bahasa-Bahasa Bebas Konteks Definisi ( Kelly, Dean. Otomata Dan Bahasa-Bahasa Formal. h.86) Sebuah tata bahasa bebas konteks atau Context-Free Grammer (CFG) adalah sebuah 4-tupel, G = ( N,, S, P ) Untuk: N adalah sebuah koleksi berhingga dari nonterminal-nonterminal adalah sebuah abjad ( juga dikenal sebagai sebuah himpunan dari terminal-terminal ) S adalah sebuah nonterminal spesifik yang dinamakan simbol permulaan P adalah sebuah himpunan dari produksi-produksi

34 22 Bahasa yang dihasilkan oleh CFG G dinotasikan L ( G ) dan dinamakan bahasa bebas konteks ( Context-Free Language ) disingkat CFL. Karena suatu tata bahasa regular adalah sebuah CFG, didapatkan juga bahwa suatu tata bahasa regular adalah sebuah CFL. Seperti sebuah tata bahasa regular, sebuah CFG adalah sebuah cara yang menunjukkan bagaimana menghasilkan untai-untai dalam sebuah bahasa. Di CFG juga menggunakan notasi => untuk menunjukkan aksi dari generasi itu sebagai lawan pada, yang merupakan bagian dari sebuah aturan produksi. Ketika menurunkan sebuah untai, nonterminal-nonterminal itu masih mewakili bagianbagian tak terturunkan dari untai itu. Dalam hal tata bahasa-tata bahasa regular, bagian tak terturunkan itu selalu terjadi pada salah satu ujung. Dalam CFG yang tidak merupakan tata bahasa-tata bahasa regular bisa terdapat lebih banyak dari satu bagian tak terturunkan dan bisa terjadi dimana saja dalam untai itu. Ketika penurunan itu telah lengkap, semua bagian tak terturunkan telah diganti oleh untai-untai ( mungkin kosong ) dari simbol-simbol terminal. Misal CFG yang ditentukan oleh: S asb ε Terdapat bahasa-bahasa bebas konteks yang bukan bahasa-bahasa regular. Artinya koleksi bahasa-bahasa bebas konteks sepatutnya memuat koleksi bahasa-bahasa regular. Dalam generalisasi ke tata bahasa-tata bahasa bebas konteks, semua pembatasan pada ruas kanan dari aturan-aturan produksi dihapus, dengan mengizinkan ruas kanan dari produksi itu dibentuk dari suatu untai atas N.

35 23 Satu-satunya tempat yang tersisa untuk generalisasi pada ruas kiri dari aturanaturan produksi itu. Tata bahasa frasa-tersruktur ( phrase-structured grammer ) adalah salah satu tata bahasa yang ruas kiri aturan-aturan produksinya itu bisa dibentuk dari suatu untai tak kosong atas N, yang memuat suatu nonterminal. Jadi untuk sebuah tata bahasa frasa-terstruktur, koleksi dari aturan-aturan produksi P memenuhi: P ( N )* N ( N )* ( N )* Tata bahasa-tata bahasa frasa tersruktur juga dikenal sebagai tata bahasatata bahasa tipe 0 atau tak dibatasi. Istilah bebas konteks, apabila diterapkan pada tata bahasa-tata bahasa mengingatkan akan adanya tata bahasa-tata bahasa yang terhadapnya konteks bersifat sensitif. Tata bahasa-tata bahasa konteks sensitif ( context-sensitive grammer ) adalah tata bahasa-tata bahasa frasa terstruktur yang disini dibatasi oleh produksi-produksi α β sedemikian sehingga α β. Terdapat sebuah bentuk normal untuk tata bahasa-tata bahasa ini yang setiap produksinya berbentuk α 1 Aα 2 α 1 βα 2 dengan β ε. Produksi-produksi demikian mengizinkan penggantian nonterminal A dengan untai β hanya bila A terjadi dalam konteks dari α 1 dan α 2. Tata bahasa-tata bahasa konteks sensitif tidak dapat menurunkan bahasa yang sama banyak dengan tata bahasa-tata bahasa frasa terstruktur, tetapi tata bahasa-tata bahasa konteks sensitif mengizinkan terjadinya penurunan-penurunan didalam cara yang dapat diduga. Walaupun demikian, perhatikan bahwa karena S = 1 dan karena ε = 0, tidaklah mungkin untuk menurunkan untai kosong

36 24 dalam sebuah tata bahasa konteks sensitif yang benar. Bahasa-bahasa pemrograman sering kali dirancang agar konteks sensitif sebagai sebuah cara untuk menyederhanakan proses kompilasi. Contoh : Untuk tata bahasa bebas konteks yang ditentukan oleh S AA A AAA a ba Ab Tata bahasa bebas konteks diatas dapat menurunkan untai b 2 aba 2 ba sebagai berikut: S => AA => AAAA => baaaa => bbaaaa => bbaaaa => bbabaaa => bbabaaa => bbabaaba => bbabaaba => bbabaaba => b 2 aba 2 ba. C.2. Penyederhanaan Tata Bahasa Bebas Konteks Penyederhanaan tata bahasa bebas konteks bertujuan untuk melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak berarti. Misalkan terdapat tata bahasa bebas konteks ( dengan simbol awal S ): S A B C D A B C D a A Tata bahasa bebas konteks tersebut memiliki kelemahan terlalu panjang jalannya padahal berujung pada S a, produksi D A juga menyebabkan kerumitan.

37 25 Suatu tata bahasa bebas konteks dapat disederhanakan dengan tiga cara sebagai berikut: 1. Penghilangan produksi useless ( tidak berguna ) 2. Penghilangan produksi unit 3. Penghilangan produksi ε. Selanjutnya akan dibahas satu persatu cara penyederhanaan tata bahasa bebas konteks tersebut. 1. Penghilangan Produksi Useless Produksi useless adalah: Produksi yang memuat simbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya ( maksudnya menuju terminal ), produksi ini tidak berguna karena bila diturunkan tidak akan pernah selesai ( masih ada simbol variabel yang tersisa ). Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan (berlebihan). Contoh : 1. Terdapat tata bahasa bebas konteks: S aab ceb A dbe eec B ff C ae D h

38 26 Dari tata bahasa bebas konteks diatas dapat diterangkan bahwa: 1). Aturan produksi S ceb, A dbe, E tidak memiliki penurunan 2). Aturan produksi B ff, D h, redundan maka dari tata bahasa bebas konteks diatas, produksi yang useless: S ceb A dbe B ff D h Jadi tata bahasa bebas konteks setelah disederhanakan menjadi: S A C aab eec ae 2. Terdapat tata bahasa bebas konteks: S abd B cd Ab D ef A Ed F dc Dari tata bahasa bebas konteks diatas dapat diterangkan sebagai berikut: 1). Aturan produksi A Ed, E tidak memiliki penurunan 2). Aturan produksi F dc, redundan 3). Aturan produksi B Ab, A tidak memiliki penurunan

39 27 maka dari tata bahasa bebas konteks tersebut yang useless yaitu: B Ab A Ed F dc Jadi aturan produksi untuk tata bahasa bebas konteks tersebut setelah disederhanakan menjadi: S abd B cd D ef Pada prinsipnya setiap kali melakukan penyederhanaan harus diperiksa lagi aturan produksi yang tersisa, apakah semua produksi yang useless sudah dihilangkan. 2. Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan ruas kanan aturan produksinya hanya berupa satu simbol variabel, misalkan A B, C D. Keberadaan produksi unit membuat tata bahasa bebas konteks memiliki kerumitan yang tidak perlu atau menambah panjang penurunan. Penyederhanaan ini dilakukan dengan melakukan penggantian aturan produksi unit. Contoh: 1. Tata bahasa bebas konteks: S A B C D E Cba D bbc Sc ddd ea f C E SABC gh

40 28 Penggantian yang dilakukan dari tata bahasa bebas konteks diatas adalah: D E menjadi D gh C C dihapus S D menjadi S gh SABC Sehingga aturan produksi setelah penyederhanaan menjadi: S Cba gh SABC A bbc B Sc ddd C ea f D gh SABC E gh 2. Tata bahasa bebas konteks: S A S Aa A B B C B b C D C ab D b Penggantian yang dilakukan dari tata bahasa bebas konteks diatas adalah: 1). C D menjadi C b 2). B C menjadi B b ab, karena B b sudah ada maka cukup dituliskan B ab 3). A B menjadi A ab b 4). S A menjadi S ab b sehingga aturan produksi setelah penyederhanaan menjadi:

41 29 S ab b S Aa A ab b B ab B b C b C ab D b 3. Penghilangan Produksi ε. Produksi ε adalah produksi dalam bentuk α ε atau bisa dianggap sebagai produksi kosong ( empty ). Penghilangan produksi ε dilakukan dengan melakukan penggantian produksi yang memuat variabel yang bisa menuju produksi ε, atau biasa disebut nullable. Prinsip penggantiannya bisa dilihat kasus berikut: S bcad A ε Pada kasus diatas A nullable, serta A ε satu-satunya produksi dari A, maka variabel A bisa ditiadakan. Hasil penyederhanaan tata bahasa bebas konteks menjadi: S bcd Tetapi bila kasusnya: S bcad A bd ε Pada kasus diatas A nullable, tapi A ε bukan satu-satunya produksi dari A, maka hasil penyederhanaannya menjadi:

42 30 S bcad bcd A bd Contoh: 1. Terdapat tata bahasa bebas konteks: S AB A abb aca ε B ba BB ε C ε Variabel yang nullable adalah A, B, C. Dari S AB maka S juga nullable, maka dilakukan penggantian: A aca menjadi A aa B ba menjadi B ba b B BB menjadi B BB B A abb menjadi A abb ab S AB menjadi S AB A B ε C ε, B ε, A ε dihapus Perlu diperhatikan bahwa untuk penggantian S AB disini tetap mempertahankan produksi S ε, karena S merupakan simbol awal. Ini satusatunya perkecualian produksi ε yang dihasilkan oleh simbol awal. Jadi hasil akhir penyederhanaannya menjadi: S AB A B ε A abb ab aa B ba b BB B 2. Tata bahasa bebas konteks: S da Bd A bc

43 31 A ε B c Variabel yang nullable adalah A. A ε bukan penurunan satu-satunya dari A (terdapat A bc), maka S da diganti menjadi S da d. A ε dihapus. Tata bahasa bebas konteks setelah penyederhanaan menjadi: S da d Bd A bc B c Pada prinsipnya ketiga penyederhanaan penghilangan useless, unit dan ε dilakukan bersama pada suatu tata bahasa bebas konteks, yang nantinya menyiapkan tata bahasa bebas konteks tersebut untuk diubah ke dalam suatu Bentuk Normal Chomsky. Bentuk Normal Chomsky tidak penulis bahas. Hal yang memerlukan perhatian dari tata bahasa bebas konteks adalah penghilangan suatu tipe produksi bisa menghasilkan produksi tipe yang lain, hal ini didasari kenyataan bahwa penghilangan produksi ε bisa menghasilkan produksi unit. Perhatikan juga bahwa penghilangan produksi unit tidak menghasilkan produksi ε, dan penghilangan produksi useless tidak menghasilkan produksi unit maupun ε. Maka semua produksi yang tidak diinginkan bisa dihapuskan dengan melakukan urutan sebagai berikut: Menghilangkan produksi ε Menghilangkan produksi unit Menghilangkan produksi useless

44 32 Hasil yang diperoleh nanti adalah tata bahasa yang sudah bebas dari ketiga jenis produksi tersebut. Contoh: 1. Tata bahasa bebas konteks: S AA C bd A Bb ε B AB d C de Pertama-tama dilakukan penghilangan produksi ε, sehingga aturan produksinya menjadi : S A AA C bd A Bb B B AB d C de Selanjutnya penghilangan produksi unit, sehingga aturan produksinya menjadi: S Bb AA de bd A Bb B AB d C de Penghilangan produksi useless, maka hasilnya menjadi: S A B Bb AA de bd Bb AB de Jadi hasil akhir aturan produksi tidak lagi memiliki produksi ε, produksi unit maupun produksi useless.

45 33 D. Parsing Dengan diturunkannya sebuah untai dari tata bahasa bebas konteks, simbol awal diganti oleh suatu untai. Setiap nonterminal dalam untai ini, secara bergantian digantikan oleh untai yang lain, dan seterusnya sampai tinggal tersisa untai yang hanya terdiri dari simbol-simbol terminal. Selanjutnya tidak ada lagi penggantian karena tidak ada lagi nonterminal untuk digantikan. Kadang-kadang sangat berguna untuk menggambarkan penurunan itu, yaitu yang menunjukkan kontribusi dari masing-masing nonterminal pada untai akhir dari terminalterminal. Gambar seperti ini dinamakan pohon penurunan atau pohon penguraian (derivation tree atau pharse tree). Sebuah pohon (tree) adalah suatu graph terhubung tidak sirkuler, yang memiliki satu simpul (node)/vertex disebut akar (root) dan dari situ memiliki lintasan ke setiap simpul. Pohon penurunan (derivation tree/pharse tree) berguna untuk menggambarkan bagaimana memperoleh suatu string (untai) dengan cara menurunkan simbol-simbol variabel menjadi simbol-simbol terminal. Setiap simbol variabel akan diturunkan menjadi terminal, sampai tidak ada simbol variabel yang belum tergantikan. Misal terdapat tata bahasa bebas konteks dengan aturan produksi (simbol awal S, selanjutnya didalam bahasan ini S digunakan sebagai simbol awal untuk tata bahasa bebas konteks): S AA A AAA a ba Ab

46 34 Dari aturan produksi tata bahasa bebas konteks tersebut akan digambarkan pohon penurunan untuk memperoleh untai bbabaaba. Pada pohon tersebut simbol awal akan menjadi akar (root). Setiap kali penurunan dipilih aturan produksi yang menuju ke solusi. Simbol-simbol variabel akan menjadi simpul-simpul yang mempunyai anak. Simpul-simpul yang tidak mempunyai anak akan menjadi simbol terminal. Jadi gambar dari aturan produksi tersebut adalah: S A A b A A A A b A b A a b A a a a Proses penurunan atau parsing bisa dilakukan dengan cara : 1. Penurunan terkiri (leftmost derivation) : simbol variabel terkiri yang diperluas terlebih dulu. 2. Penurunan terkanan (rightmost derivation) : simbol variabel terkanan yang diperluas terlebih dulu. Misal terdapat tata bahasa bebas konteks: S aas a A SbA ba Untuk memperoleh untai aabbaa dari tata bahasa bebas konteks diatas ( => bisa dibaca menurunkan ) :

47 35 1. Dengan penurunan terkiri : S => aas => asbas => aabas => aabbas => aabbaa 2. Dengan penurunan terkanan : S => aas => aaa => asbaa => asbbaa => aabbaa Meskipun proses penurunannya berbeda akan tetapi memiliki pohon penurunan yang sama, yaitu sebagai berikut: S a A S S b A a a b a Biasanya persoalan yang diberikan berkaitan dengan pohon penurunan adalah untuk mencari penurunan yang hasilnya menuju kepada suatu untai yang ditentukan. Dalam hal ini, perlu untuk melakukan percobaan pemililihan aturan produksi yang bisa menuju ke solusi. Misalkan sebuah tata bahasa bebas konteks memiliki aturan produksi sebagai berikut: S aad ab A b c B ccd ddc Pohon penurunan dari tata bahasa bebas konteks diatas untuk memperoleh untai accd bisa dilihat pada gambar berikut ini: a S c B c d

48 36 Contoh: 1. Untuk tata bahasa bebas konteks berikut: S Ba Ab A Sa AAb a B Sb BBa b Dari tata bahasa bebas konteks tersebut diperoleh penurunan untai bbaaaabb sebagai berikut: S =>Ab => AAbb => SaAbb => BaaAbb =>BBaaaAbb => bbaaaabb => bbaaaabb => bbaaaabb Pohon penurunannya sebagai berikut: S A b A A b S a a B a B B a b b 2. Sebuah tata bahasa bebas konteks memiliki aturan produksi: S ab ba A a as baa B b bs abb

49 37 Pohon penurunan untuk memperoleh untai aaabbabbba bisa dilihat pada gambar dibawah ini: S a B a B B a B B b S b b S b A a B a b Metode Parsing Di dalam mengimplementasikan sebuah metode parsing ke dalam program perlu diperhatikan tiga hal: 1. Rentang waktu eksekusi 2. Penanganan kesalahan 3. Penanganan kode Metode parsing bisa digolongkan sebagai berikut: 1. Top Down Kalau dilihat dari terminologi pohon penurunan, metode ini melakukan penelusuran dari root/puncak menuju ke leaf/daun (simbol awal sampai simbol terminal). Metode top down sendiri meliputi: 1.Backtrack/backup : Brute Force 2.No backtrack : Recursive Descent Parser

50 38 2. Bottom Up Metode ini melakukan penelusuran dari leaf/daun menuju ke root/puncak. Pada skripsi ini hanya dibahas parsing dengan metode Top Down Brute Force. D.1. Parsing Dengan Brute Force Metode ini memilih aturan produksi mulai dari paling kiri, dan melakukan expand semua non terminal pada aturan produksi sampai yang tertinggal adalah simbol terminal. Kemungkinan pertama string masukan sukses di-parsing, bisa juga bila terjadi expansi yang salah untuk suatu simbol variabel maka akan dilakukan backtrack. Algoritma ini membangun pohon parsing yang top down, yaitu mencoba segala kemungkinan untuk setiap simbol non terminal. Contoh suatu bahasa dengan aturan produksi sebagai berikut: S aad ab A b c B ccd ddc Misal ingin dilakukan parsing untuk string: accd. Tahapan yang terjadi bisa dilihat pada gambar berikut: i) S ii) S iii) S a A d a A d b

51 39 iv) S v) S vi) S a A d a B a B c c c d Terlihat pada penurunan iii) A b, terjadi kegagalan, maka dilakukan backtrack dan penurunan iv) yang dilakukan adalah expansi A c. karena terjadi kegagalan maka backtrack lagi, dan naik ke atas sampai terjadi penurunan v) S ab. Penurunan vi) B ccd memberikan hasil akhir bahwa accd diterima oleh bahasa tersebut. D.2. Ambiguitas Ambiguitas/mendua arti terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda untuk memperoleh suatu untai. Keduaartian dapat menjadi sebuah masalah untuk bahasa-bahasa tertentu jika artinya bergantung dalam bagian pada struktur, seperti halnya dengan bahasa-bahasa asli dan pemrograman. Jika sebuah struktur bahasa mempunyai lebih dari satu dekomposisi dan jika kontruksi sebagian menentukan arti, maka arti itu adalah mendua arti. Sebagai contoh dari hal mendua arti yang mengaburkan arti yaitu pandang tata bahasa-tata bahasa untuk pernyataan-pernyataan penugasan sederhana berikut ini: A I E I := E a b c E + E E * E ( E ) I Dalam tata bahasa diatas simbol-simbol terminal itu telah digaris bawahi.

52 40 Untai a := b + c * a adalah sebuah untai dalam bahasa dari pernyataanpernyataan penugasan ini. Ada dua pohon penurunan yang berbeda untuk tata bahasa tersebut, yaitu: A A I := E I := E a E + E a E * E I E * E E + E I b I I I I a c a b c Jika dicoba untuk menentukan berapa nilai pada sebelah kanan dari operator penugasan itu (simbol :=) dihitung, akan terdapat dua hasil yang mungkin yaitu b + ( c * a ) atau ( b + c ) * a. Pada umumnya hasil-hasil ini tidaklah sama. Contoh: Terdapat tata bahasa bebas konteks: S SbS ScS a Terdapat dua cara membangkitkan sebuah untai yaitu penurunan terkiri dan penurunan terkanan. Dalam sebuah penurunan terkiri (leftmost derivations) nonterminal terkiri yang selalu diperluas. Begitu juga dalam sebuah penurunan terkanan (rightmost derivations) nonterminal terkanan yang selalu diperluas. Jadi untuk tata bahasa bebas konteks diatas, penurunan terkiri untuk untai abaca yaitu

53 41 S => ScS => SbScS => abscs =>abacs => abaca Penurunan terkanan untuk untai abaca sebagai berikut: S => ScS => Sca => SbSca => Sbaca => abaca Diketahui dua penurunan ini mempunyai pohon penurunan yang sama. S S c S S b S a a a Dalam tata bahasa berikut ini yang juga menurunkan untai abaca : S => SbS => abs => abscs => abacs => abaca dan S => SbS => SbScS => SbSca => Sbaca => abaca Penurunan terkiri berbeda dari penurunan sebelumnya begitu juga dengan penurunan terkanan juga berbeda dengan penurunan sebelumnya. Kehadiran dari dua penurunan terkiri dan terkanan yang berbeda ada hubungannya dengan keberadaan dua pohon penurunan yang berbeda. Jadi sebuah tata bahasa yang mendua arti dapat dicirikan sebagai salah satu tata bahasa yang mempunyai dua atau lebih penurunan terkiri dan terkanan yang berbeda untuk untai yang sama.

54 42 Pohon penurunan yang satunya sebagai berikut: S S b S a S c S a a Contoh lain dari tata bahasa bebas konteks yang ambigu adalah: S A B ab ba a as baa b bs abb Tata bahasa bebas konteks diatas dapat menurunkan untai aabbaabb, penurunannya sebagai berikut: S => ab => aabb => aabb => aabbs => aabbab => aabbaabb => aabbaabb => aabbaabb S => ab => aabb => aabsb => aabbab => aabbab => aabbaabb =>aabbaabb => aabbaabb Pohon penurunannya: S S a B a B a B B a B B b b S b S a B B a B b A b b a B B a b b

55 43 Jadi untuk menunjukkan bahwa suatu tata bahasa bebas konteks ambigu, bias dilakukan dengan menemukan untai yang memungkinkan pembentukan lebih dari satu pohon penurunan. Ambiguitas dapat menimbulkan masalah pada bahasabahasa tertentu, baik bahasa alami maupun pada bahasa pemrograman. Bila suatu struktur bahasa memiliki lebih dari suatu dekomposisi (penurunan), dan susunannya akan menentukan arti, maka artinya menjadi ambigu. E. Pointer Di Pascal Nama perubah, yang digunakan untuk mewakili suatu nilai data, sebenarnya merupakan atau menunjukkan suatu lokasi tertentu dalam pengingat komputer dimana data yang diwakili oleh nama perubah tersebut disimpan. Pada saat sebuah program dikompilasi, kompiler akan melihat pada bagian deklarasi perubah (var) untuk mengetahui nama-nama perubah apa saja yang akan digunakan, sekaligus mengalokasikan atau menyediakan tempat dalam pengingat untuk menyimpan nilai data tersebut. Perubah-perubah yang demikian ini dinamakan dengan perubah satatis. Dari pengertian diatas, bahwa sesudah suatu lokasi pengingat ditentukan untuk suatu nama perubah, maka dalam program tersebut perubah yang dimaksud akan tetap menempati lokasi yang telah ditentukan dan tidak mungkin diubah. Dengan melihat pada sifat-sifat perubah statis maka banyaknya data yang bias diolah adalah terbatas. Sebagai contoh, missal diketahui perubah dengan deklarasi sebagai berikut:

56 44 Var tabel : array [1..100,1..50] of integer; Perubah tabel diatas hanya mampu untuk menyimpan data sebanyak 100X50 = 5000 buah data. Jika tetap nekat untuk menambah data pada perubah tersebut, eksekusi program akan terhenti karena deklarasi lariknya kurang. Jika ingin mengolah data yang banyaknya tidak bias dipastikan sebelumnya, maka pascal menyediakan satu fasilitas yang memungkinkan menggunakan suatu perubah yang disebut dengan perubah dinamis. Perubah dinamis adalah suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi. Dengan kata lain, pada saat program dikompilasi, lokasi untuk perubah tersebut belum ditentukan. Kompiler hanya akan mencatat bahwa suatu perubah akan diperlakukan sebagai perubah dinamis. Hal ini membawa keberuntungan pula, bahwa perubah-perubah dinamis tersebut bias dihapus pada saat program dieksekusi, sehingga ukuran pengingat akan selalu berubah. Hal inilah yang menyebabkan perubah dinamakan sebagai perubah dinamis. Karena alasan inilah perubah dinamis lebih dikenal dengan sebuatan pointer yang artinya menunjuk ke sesuatu. Dalam perubah dinamis, nilai data yang ditunjuk suatu pointer biasanya disebut sebagai simpul/node.

57 45 E.1. Deklarasi Variabel Pointer Bentuk umum: Var <Nama Var> : <^TipeData> Contoh: Var P : ^integer; Pendeklarasian variabel pointer tidak jauh berbeda dengan pendeklarasian biasa, hanya perlu ditambahkan simbol topi (^) sebelum tipe datanya. Simbol topi tersebut menandakan bahwa variabel tersebut menunjuk ke lokasi tertentu pada memori. Dapat digambarkan variable P seperti ditunjukkan pada diagram berikut: P Variabel pointer dapat pula dibuat yang tipe record. Pendeklarasiannya adalah seperti berikut: Bentuk Umum: Type Var <NamaPointer>= <^NamaRecord>; <NamaRecord> = Record <item1> : <TipeData1>; <item2> : <TipeData2>;.. <itemn> : <TipeDataN>; End; <Namavar> : <NamaPointer>;

58 46 Contoh: Type Var Str30 = String[30]; Point = ^Data; Data = record Nama : string[24]; Alm : string[30]; Pekerjaan: string[30]; End; P1,P2 : point; A,B,C : string[30]; Pada contoh diatas, P1 dan P2 masing-masing bertipe pointer, sedang A,B,C perubah statis bertipe string. Pada saat program dikompilasi, perubah P1 dan P2 akan menempati lokasi tertentu dalam pengingat. Kedua perubah ini masing-masing belum menunjuk ke suatu simpul. Pointer yang belum menunjuk ke suatu simpul nilainya dinyatakan dengan nil. Untuk mengalokasikan simpul dalam pengingat, statemen yang digunakan adalah statemen new, yang mempunyai bentuk umum: New (perubah); Dengan perubah adalah nama perubah yang bertipe pointer. Sebagai contoh, dengan deklarasi perubah seperti diatas dan statemen: New(P1); New(P2); Maka sekarang dipunyai dua buah simpul yang ditunjuk oleh P1 dan P2. P1 P2 Program ini kemudian menyerahkan nilai ke dua item data tersebut dalam sembarang cara dengan menggunakan referensi P1^ dan P2^. Sebagai

59 47 contoh, pernyataan berikut akan menyerahkan nilai 2.0 ke item yang ditunjuk dengan P1 dan menambah 1 ke nilai tersebut, menyimpan hasilnya ke dalam item data yang ditunjuk dengan P2: P1^ := 2.0; P2^ := P1^ + 1.0; Isi memori dapat digambarkan sebagai berikut: P1 2.0 P2 3.0 Variabel pointer dapatr digunakan sebagai argumen ke prosedur new. Variable pointer dapat dapat digunakan dalam pernyataan penugasan, disediakan dua variable yang mempunyai tipe sama. Asumsikan P1 dan P2 menunjuk ke item data, seperti ditunjukkan dalam contoh sebelumnya. Pernyataan tersebut: P2 := P1; Akan menyebabkan P1 dan P2 menunjuk ke item data yang sama, seperti ditunjukkan: P1 P Maka isi dari P2 (yang berupa alamat) telah diganti dengan nilai (yang berupa alamat) yang dikandung dari P1. yang terjadi adalah item data yang sebelumnya ditunjuk dengan P2 masih ada, tetapi tidak ada cara untuk mengakses isi tersebut. Salah satu keistimewaan yang sangat berguna pada tipe data pointer adalah kemampuan untuk melekatkan pointer ke dalam record. Keistimewan ini akan sangat penting dalam menerapkan struktur data abstrak. Sebagai contoh,

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA MODUL X TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami tentang tata bahasa bebas konteks dan membangun pohon penurunan tata bahasa bebas konteks Materi : Pohon Derivatif Tata Bahasa Bebas Konteks

Lebih terperinci

POHON PENURUNAN Context Free Grammar

POHON PENURUNAN Context Free Grammar POHON PENURUNAN Context Free Grammar Bila pada tata bahasa regular terdapat pembatasan pada ruas kanan atau hasil produksinya, maka pada tata bahasa bebas konteks/ context free grammar, selanjutnya disebut

Lebih terperinci

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA [TBO] TEORI BAHASA DAN OTOMATA [TBO] Tata Bahasa Bebas Konteks Bila pada tata bahasa regular terdapat pembatasan pada ruas kanan atau hasil produksinya, maka pada tata bahasa bebas konteks/ context free grammar,

Lebih terperinci

Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S a, produksi D A juga menyebabkan kerumitan.

Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S a, produksi D A juga menyebabkan kerumitan. PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS Tujuan : Melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak berarti. Contoh

Lebih terperinci

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA [TBO] TEORI BAHASA DAN OTOMATA [TBO] Tata Bahasa Bebas Konteks Bila pada tata bahasa regular terdapat pembatasan pada ruas kanan atau hasil produksinya, maka pada tata bahasa bebas konteks/ context free grammar,

Lebih terperinci

PENYEDERHANAAN Context Free Grammar

PENYEDERHANAAN Context Free Grammar PENYEDERHANAAN Context Free Grammar Bila pada tata bahasa regular terdapat pembatasan pada ruas kanan atau hasil produksinya, maka pada tata bahasa bebas konteks/ context free grammar, selanjutnya disebut

Lebih terperinci

Analisis Sintaksis (syntactic analyzer atau parser)

Analisis Sintaksis (syntactic analyzer atau parser) Analisis Sintaksis (syntactic analyzer atau parser) pohon (tree) suatu graph terhubung yang tidak sirkuler, memiliki satu buah simpul (atau vertex / node) yaitu akar (root) dan dari akar ini memiliki lintasan

Lebih terperinci

Teori Bahasa dan Otomata 1

Teori Bahasa dan Otomata 1 Teori Bahasa dan Otomata 1 KATA PENGANTAR Teori Bahasa dam Otomata merupakan matakuliah wajib yang harus diambil oleh seluruh mahasiswa jurusan Teknik Indonesia di lingkungan Sekolah Tinggi Teknologi Indonesia.

Lebih terperinci

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA [TBO] TEORI BAHASA DAN OTOMATA [TBO] Ekspresi Regular (1) Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state automata

Lebih terperinci

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state EKSPRESI REGULAR Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana

Lebih terperinci

TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)

TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR) TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR) Oleh: Bagus Adhi Kusuma Teori Bahasa dan Otomata STIMIK AMIKOM Purwokerto Program Studi Teknik Informatika 2013/2014 CFG (Bahasa Bebas Konteks) sebuah tata

Lebih terperinci

Penyederhanaan Tata Bahasa Bebas Konteks. Kuliah Online : TBA [2012/2013]

Penyederhanaan Tata Bahasa Bebas Konteks. Kuliah Online : TBA [2012/2013] Penyederhanaan Tata Bahasa Bebas Konteks Kuliah Online : TBA [2012/2013] Tujuan Penyederhanaan untuk melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak

Lebih terperinci

Tujuan Penyederhanaan

Tujuan Penyederhanaan VII.1 MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA BAB VII PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS Tujuan Penyederhanaan IF Penyederhanaan tata bahasa bebas konteks bertujuan untuk melakukan pembatasan

Lebih terperinci

Teknik Kompiler 6. oleh: antonius rachmat c, s.kom

Teknik Kompiler 6. oleh: antonius rachmat c, s.kom Teknik Kompiler 6 oleh: antonius rachmat c, s.kom Analisis Sintaks (Parser) Analisis Sintaks bergantung pada bahasa pemrograman masing-masing. Karena masing-masing bahasa pemrograman memiliki bentuk sintaks

Lebih terperinci

DIKTAT TEORI BAHASA DAN OTOMATA

DIKTAT TEORI BAHASA DAN OTOMATA DIKTAT TEORI BAHASA DAN OTOMATA DISUSUN OLEH Ir. Sudiadi, M.M.A.E. Ir. Rizani Teguh, M.T. Sekolah Tinggi Manajemen Informatika dan Komputer Global Informatika MDP 207 Hal KATA PENGANTAR Pertama-tama kami

Lebih terperinci

Parsing dapat dilakukan dengan cara : Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri diturunkan (tuntas) dahulu

Parsing dapat dilakukan dengan cara : Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri diturunkan (tuntas) dahulu Parsing atau Proses Penurunan Parsing dapat dilakukan dengan cara : Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri diturunkan (tuntas) dahulu Penurunan terkanan (rightmost derivation):

Lebih terperinci

21/11/2016. Pohon Sintaks. Syntax?? Proses Penurunan. Analisis Syntax (Parser) Metode Parsing ANALISIS SINTAKS TEKNIK KOMPILASI

21/11/2016. Pohon Sintaks. Syntax?? Proses Penurunan. Analisis Syntax (Parser) Metode Parsing ANALISIS SINTAKS TEKNIK KOMPILASI Pohon Sintaks TEKNIK KOMPILASI ANALISIS SINTAKS SHINTA P. SARI Jurusan Informatika Fasilkom Universitas Indo Global Mandiri Berupa pohon penurunan yang menggambarkan bagaimana memperoleh suatu string dengan

Lebih terperinci

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA MODUL VIII TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami ekspresi reguler dan dapat menerapkannya dalam berbagai penyelesaian persoalan. Materi : Hubungan antara DFA, NFA, dan ekspresi regular

Lebih terperinci

ALGORITMA PEMROGRAMAN 1C SINTAKS

ALGORITMA PEMROGRAMAN 1C SINTAKS ALGORITMA PEMROGRAMAN 1C SINTAKS Indah Wahyuni PENDAHULUAN Bahasa mesin adalah bentuk terendah komputer. Kita dapat berhubungan langsung dengan bagianbagian yang ada didalam komputer seperti bits, register.

Lebih terperinci

Teknik Kompiler 7. oleh: antonius rachmat c, s.kom

Teknik Kompiler 7. oleh: antonius rachmat c, s.kom Teknik Kompiler 7 oleh: antonius rachmat c, s.kom Transformasi TBBK Dimaksudkan untuk memperoleh TBBK yang memenuhi kriteria-kriteria tertentu yang lebih efisien. Transformasi boleh dilakukan asalkan tidak

Lebih terperinci

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1) Tata Bahasa Kelas Tata Bahasa Risnawaty 2350376 Jurusan Teknik Informatika Institut Teknologi Bandung Page 1 Konsep Bahasa (1) String(kata) adalah suatu deretan berhingga dari simbol-simbol. Panjang string

Lebih terperinci

Contents.

Contents. Contents FINITE TATE AUTOMATA (Otomata Hingga)... 2 Deterministic/Non Deterministic Finite Automate... 2 Ekwivalensi DFA dan NFA... 4 Contex Free Grammer(CFG)... 8 Penyederhanaan CFG... 9 Bentuk Normal

Lebih terperinci

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA Bab V Context Free Grammar dan Push Down Automata 26 BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA TUJUAN PRAKTIKUM 1. Memahami CFG dan PDA 2. Memahami Context Free Grammar 3. Memahami Push Down Automata

Lebih terperinci

Tata Bahasa Bebas Konteks

Tata Bahasa Bebas Konteks Tata Bahasa Beas Konteks By mei Dalam tataahasa eas konteks Ruas kiri dari aturan produksi terdiri dari ATU simol non terminal Ruas kanan dapat erupa string yang dientuk dari simol terminal dan non terminal

Lebih terperinci

FINITE STATE MACHINE / AUTOMATA

FINITE STATE MACHINE / AUTOMATA FINITE STATE MACHINE / AUTOMATA BAHASA FORMAL Dapat dipandang sebagai entitas abstrak, yaitu sekumpulan string yang berisi simbol-simbol alphabet Dapat juga dipandang sebagai entitasentitas abstrak yang

Lebih terperinci

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular Hirarki Comsky Unrestricted Context Sensitive Context free Regular Contoh Tata Bahasa Sederhana BEGIN END ;

Lebih terperinci

BAB I PENDAHULUAN 1-1

BAB I PENDAHULUAN 1-1 BAB I PENDAHULUAN 1.1 Pendahuluan Ilmu komputer memiliki dua komponen utama: pertama, model dan gagasan mendasar mengenai komputasi, kedua, teknik rekayasa untuk perancangan sistem komputasi, meliputi

Lebih terperinci

TEORI BAHASA & OPERASI MATEMATIS (2)

TEORI BAHASA & OPERASI MATEMATIS (2) PERTEMUAN III TEORI BAHASA & OPERASI MATEMATIS (2) Mahasiswa memahami bahasa sebagai himpunan dan operasi 2 -nya, cara mendefinisikan bahasa, serta cara mengenali anggota 2 bahasa JURUSAN TEKNIK INFORMATIKA

Lebih terperinci

PENDAHULUAN Teori Bahasa

PENDAHULUAN Teori Bahasa PERTEMUAN I PENDAHULUAN Teori Bahasa Teori bahasa membicarakan bahasa formal (formal language), terutama untuk kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor). Bahasa

Lebih terperinci

Parsing. A -> a as baa B -> b bs abb

Parsing. A -> a as baa B -> b bs abb Parsing Misalnya: S -> ab ba A -> a as baa B -> b bs abb Penurunan untuk string aaabbabba Dalam hal ini perlu untuk melakukan percobaan pemilihan aturan produksi yang bisa mendapatkan solusi Metode Parsing

Lebih terperinci

IF-UTAMA 1. Penurunan (Derivation) [2] Penurunan (Derivation) Contoh Penurunan [1] Parse Tree [1]

IF-UTAMA 1. Penurunan (Derivation) [2] Penurunan (Derivation) Contoh Penurunan [1] Parse Tree [1] Penurunan (Derivation) [2] Penurunan (Derivation) Pertemuan : 5 Dosen Pembina : Danang Junaedi IF-UTM 1 Berfungsi untuk menggambarkan atau mengetahui bagaimana memperoleh suatu string dari dari suatu tata

Lebih terperinci

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA MODUL I TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami pengertian dan kedudukan Teori Bahasa dan Otomata (TBO) pada ilmu komputer Definisi dan Pengertian Teori Bahasa dan Otomata Teori bahasa dan

Lebih terperinci

anggota alfabet dinamakan simbol terminal atau token.

anggota alfabet dinamakan simbol terminal atau token. GRAMMAR DAN BAHASA MATERI MINGGU KE-2 TATA BAHASA Dalam pembicaraan tata bahasa, anggota alfabet dinamakan simbol terminal atau token. Kalimat adalah deretan hingga simbo-lsimbol terminal. Bahasa adalah

Lebih terperinci

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013 Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013 KONTRAK KULIAH 1. Presensi 15 menit diawal perkuliahan dan dilakukan sendiri (tidak Boleh Titip Presensi), setelahnya sistem akan ditutup 2.

Lebih terperinci

BAB II TINJAUAN PUSTAKA. Bahasa menurut kamus Websters adalah the body of words and methods of

BAB II TINJAUAN PUSTAKA. Bahasa menurut kamus Websters adalah the body of words and methods of BAB II TINJAUAN PUSTAKA 2.1 Bahasa Alami dan Bahasa Formal Bahasa menurut kamus Websters adalah the body of words and methods of combining words used and understood by a considerable community, sedangkan

Lebih terperinci

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs Teknik Kompiler 5 oleh: antonius rachmat c, s.kom, m.cs TATA BAHASA Tata bahasa / Grammar dalam OTOMATA adalah kumpulan dari himpunan variabel (non-terminal), simbol-simbol awal dan terminal yang dibatasi

Lebih terperinci

Teori Bahasa dan Otomata

Teori Bahasa dan Otomata Teori Bahasa dan Otomata Disajikan oleh: Bernardus Budi Hartono Web : http://pakhartono.wordpress.com/ E-mail : pakhartono at gmail dot com budihartono at acm dot org Teknik Informatika [Gasal 2009 2010]

Lebih terperinci

Grammar dan Tingkat Bahasa

Grammar dan Tingkat Bahasa CSG3D3 Teori Komputasi Grammar dan Tingkat Bahasa Agung Toto Wibowo Ahmad Suryan Yanti Rusmawati Mahmud Dwi Sulistiyo Kurniawan Nur Ramadhani Said Al Faraby Dede Rohidin KK Intelligence, Computing, and

Lebih terperinci

TEKNIK KOMPILASI Bahasa Regular

TEKNIK KOMPILASI Bahasa Regular TEKNIK KOMPILASI Bahasa Regular Sekolah Manajemen Informatika dan Komputer (STMIK) Palangkaraya 2012 Tata bahasa reguler Sebuah bahasa dinyatakan regular jika terdapat Finite State Automata (FSA) yang

Lebih terperinci

Teori Komputasi 11/23/2016. Bab 6: Context-Free Grammar & Parsing. Context-Free Grammar. Context-Free Grammar

Teori Komputasi 11/23/2016. Bab 6: Context-Free Grammar & Parsing. Context-Free Grammar. Context-Free Grammar Teori Komputasi Bab 6: Context-Free Grammar & Parsing Agenda. Context-Free Grammar Fakultas Teknologi dan Desain Program Studi Teknik Informatika Contex-Free Grammar & Parsing 2 Context-Free Grammar Bentuk

Lebih terperinci

Pendahuluan [6] FINITE STATE AUTOMATA. Hubungan RE & FSA [5] Finite State Diagram [6] 4/27/2011 IF-UTAMA 1

Pendahuluan [6] FINITE STATE AUTOMATA. Hubungan RE & FSA [5] Finite State Diagram [6] 4/27/2011 IF-UTAMA 1 FINITE STATE AUTOMATA Pertemuan 9 & 10 Dosen Pembina : Danang Junaedi 1 Pendahuluan [6] Bahasa formal dapat dipandang sebagai entitas abstrak, yaitu sekumpulan string yang berisi simbol-simbol alphabet

Lebih terperinci

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN: MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN: Mira Kania S.,ST.,MT Utami Dewi W.,S.Kom IF I. PENDAHULUAN PENDAHULUAN Komputer digunakan sebagai alat bantu untuk menyelesaikan pekerjaan(task). Dua pertanyaan

Lebih terperinci

Dasar Teori Bahasa & Grammar

Dasar Teori Bahasa & Grammar Dasar Teori Bahasa & Grammar Dasar Teori Bahasa Grammar & Bahasa Klasifikasi Noam Chomsky Teori Bahasa Teori bahasa membicarakan bahasa formal (formal language), terutama untuk kepentingan perancangan

Lebih terperinci

TEORI BAHASA & AUTOMATA

TEORI BAHASA & AUTOMATA TEORI BAHASA & AUTOMATA Dosen: Dadang mulyana Alamat email untuk tugas: dadangstmik@gmail.com 1 Cara pengiriman tugas: Dalam subjek email tuliskan: Instansi_kelas_nama_matakuliah_jenistugas Contoh: Ahmad

Lebih terperinci

MODUL 1: PENGANTAR TEORI BAHASA

MODUL 1: PENGANTAR TEORI BAHASA MODUL 1: PENGANTAR TEORI BAHASA Pengantar Automata dan Bahasa Teori Pendukung Konsep Bahasa Slide 1 dari 38 PENGANTAR AUTOMATA DAN BAHASA Obyektif membahas model-model komputasi sebagai mesin abstraks

Lebih terperinci

BAHASA REGULER 1. Ekspresi Regular

BAHASA REGULER 1. Ekspresi Regular BAHASA REGULER 1. Ekspresi Regular Bahasa regular adalah penyusun ekspresi regular (ER) Ekspresi regular terdiri dari kombinasi simbol-simbol atomik menggunakan 3 operator : concate, alternate, dan closure/repetisi.

Lebih terperinci

Teori Bahasa dan Automata. Finite State Automata & Non Finite State Automata

Teori Bahasa dan Automata. Finite State Automata & Non Finite State Automata Teori Bahasa dan Automata Finite State Automata & Non Finite State Automata Finite State Automata Model matematika suatu sistem yang menerima input dan output diskrit Mesin automata dari bahasa Regular

Lebih terperinci

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran SILABUS MATAKULIAH Revisi : 2 Tanggal Berlaku : Maret 2014 A. Identitas 1. Nama Matakuliah : A11. 54401/ Teori dan Bahasa Otomata 2. Program Studi : Teknik Informatika-S1 3. Fakultas : Ilmu Komputer 4.

Lebih terperinci

TEKNIK KOMPILASI Konsep & Notasi Bahasa

TEKNIK KOMPILASI Konsep & Notasi Bahasa TEKNIK KOMPILASI Konsep & Notasi Bahasa Sekolah Manajemen Informatika dan Komputer (STMIK) Palangkaraya 2012 Konsep dan Notasi bahasa Teknik Kompilasi merupakan kelanjutan dari konsepkonsep yang telah

Lebih terperinci

Lecture Notes Teori Bahasa dan Automata

Lecture Notes Teori Bahasa dan Automata Penyederhanaan CFG (edisi 1) 1/8 Lecture Notes Teori Bahasa dan Automata Penyederhanaan Context Free Grammar Thompson Susabda Ngoen Pendahuluan Context Free Grammar (CFG) terdiri atas sejumlah production

Lebih terperinci

Komponen sebuah Kompilator

Komponen sebuah Kompilator Komponen sebuah Kompilator Program Subjek Program Objek ANALISIS SINTESIS Penganalisis Leksikal (Scanner) Penganalisis Sintaks (Parser) Penganalisis Semantik Pembentuk Kode Pengoptimal Kode TABEL 1 Scanning

Lebih terperinci

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan BAB 1 PENDAHULUAN 1.1 Latar Belakang Dalam hierarki kelas-kelas bahasa menurut Chomsky, kelas bahasa yang paling sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan tepat

Lebih terperinci

PERTEMUAN II. Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA)

PERTEMUAN II. Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA) PERTEMUAN II Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA) dadang mulyana 1 INGA.INGAT MULAI MINGGU DEPAN KULIAH TBO DIMULAI JAM 13.00 MAAF UNTUK

Lebih terperinci

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS) RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS) Kode / Nama Mata Kuliah : A11. 54401/ Teori dan Bahasa Otomata Revisi 2 Satuan Kredit Semester : 3 SKS Tgl revisi : Februari 2014 Jml Jam kuliah dalam

Lebih terperinci

IF-UTAMA 1. Definisi. Grammar. Definisi

IF-UTAMA 1. Definisi. Grammar. Definisi Definisi Grammar Bahasa adalah himpunan kata-kata atau kalimat yang telah disepakati, contoh : {makan, tidur, bermain, belajar} Bahasa Indonesia {shit, sheet, damn, kiss, smell} Bahasa Inggris {konichiwa,

Lebih terperinci

BAB III CFG DAN PARSING

BAB III CFG DAN PARSING BAB 3 CFG DAN PARSING 32 BAB III CFG DAN PARSING TUJUAN PRAKTIKUM 1) Memahami dan mengerti CFG. 2) Memahami dan mengerti metode parsing. TEORI PENUNJANG 3.1. Pendahuluan Bentuk umum produksi CFG adalah

Lebih terperinci

KONSEP GRAMMAR DAN BAHASA

KONSEP GRAMMAR DAN BAHASA KONSEP GRAMMAR DAN BAHASA Konsep Dasar 1. Dalam pembicaraan grammar, anggota alfabet dinamakan simbol terminal atau token. 2. Kalimat adalah deretan hingga simbol-simbol terminal. 3. Bahasa adalah himpunan

Lebih terperinci

Ekspresi Reguler Definisi. Notasi Ekspresi Regular. Contoh Ekspresi Reguler [2]

Ekspresi Reguler Definisi. Notasi Ekspresi Regular. Contoh Ekspresi Reguler [2] Ekspresi Reguler Definisi Pertemuan : 3 Dosen Pembina : Danang Junaedi IF-UTAMA 1 Suatu cara untuk merepresentasikan bahasa regular [4] Pola (pattern) atau template untuk string dari suatu bahasa [3] Cara

Lebih terperinci

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA MODUL II TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami Finite State Automata (FSA) dan dapat mengeksekusi suatu mesin otomata Materi : FSA dan Implemetasi FSA Deterministic Finite Automata (DFA)

Lebih terperinci

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA Jurnal Matematika Vol.6 No., November 26 [ 63-7 ] EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA Jurusan Matematika, UNISBA, Jalan Tamansari No, Bandung,46, Indonesia dsuhaedi@eudoramail.com

Lebih terperinci

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product Teori Himpunan Matematika Dasar untuk Teori Bahasa Otomata Teori Bahasa & Otomata Semester Ganjil 2009/2010 Himpunan adalah sekumpulan entitas tidak memiliki struktur sifatnya hanya keanggotaan Notasi

Lebih terperinci

FINITE STATE AUTOMATA

FINITE STATE AUTOMATA Otomata & Teori Bahasa FINITE STATE AUTOMATA www.themegallery.com Contents 2 3 4 Finite State Automata Implementasi FSA Deterministic Finite Automata (DFA) Non-deterministic Finite Automata (NFA) Finite

Lebih terperinci

Amir Hamzah AKPRIND PRESS 2009

Amir Hamzah AKPRIND PRESS 2009 1 TEORI BAHASA DAN OTOMATA Amir Hamzah AKPRIND PRESS 2009 1 TEORI BAHASA DAN OTOMATA Amir Hamzah JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA AKPRIND

Lebih terperinci

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal FINITE STATE AUTOMATA (FSA) DAN FINITE STATE MACHINE (FSM) MATERI MINGGU KE-3 Finite State Automata (FSA) Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine

Lebih terperinci

BAB II SINTAKS 2.1. SINTAKS

BAB II SINTAKS 2.1. SINTAKS BAB II SINTAKS 2.1. SINTAKS merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa. mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar. Kata

Lebih terperinci

APLIKASI PROGRAM DINAMIS DALAM ALGORITMA COCKE- YOUNGER -KASAMI (CYK)

APLIKASI PROGRAM DINAMIS DALAM ALGORITMA COCKE- YOUNGER -KASAMI (CYK) APLIKASI PROGRAM DINAMIS DALAM ALGORITMA COCKE- YOUNGER -KASAMI (CYK) Inas Luthfi 1) NIM 13506019 1) Jurusan Teknik Informatika ITB, Jalan Ganesha 10 Bandung Indonesia 40132 email: if16019@students.if.itb.ac.id

Lebih terperinci

Teknik Kompilasi. Notasi Bahasa

Teknik Kompilasi. Notasi Bahasa Teknik Kompilasi Notasi Bahasa TATA BAHASA Tata bahasa / Grammar dalam OTOMATA adalah kumpulan dari himpunan variabel (non-terminal), simbol-simbol awal dan terminal yang dibatasi oleh aturan-aturan produksi.

Lebih terperinci

BAB VI METODE PARSING

BAB VI METODE PARSING Bab VI Metode Parsing 35 BAB VI METODE PARSING TUJUAN PRAKTIKUM 1. Memahami Metode Parsing 2. Memahami Parsing Top - Down 3. Memahami Parsing Bottom - Up 4. Mengerti Tentang Operasi - Operasi yang dilakukan

Lebih terperinci

Teori Bahasa Formal dan Automata

Teori Bahasa Formal dan Automata Teori Bahasa Formal dan Automata Pertemuan 9 Semester Genap T.A. 2017/2018 Rahman Indra Kesuma, S.Kom., M.Cs. T. Informatika - ITERA POKOK BAHASAN Grammar Grammar secara Formal Context Free Grammar Terminologi

Lebih terperinci

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga Teori Komputasi Fakultas Teknologi dan Desain Program Studi Teknik 1-1 Informatika Bab 5: Agenda. Deterministic Finite Automata DFA (Otomata Hingga Deterministik) Equivalen 2 DFA Finite State Machine FSA

Lebih terperinci

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA MODUL III TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa memahami Finite State Automata (FSA) dan dapat menyederhanakan sebuah FSA. Materi : Useless state State distinguishable dan state indistinguishable

Lebih terperinci

Teori Bahasa & Otomata

Teori Bahasa & Otomata Teori Bahasa & Otomata Pendilkom/Ilkom Universitas Pendidikan Indonesia 1 Daftar Isi Bab 1 Pendahuluan Bab 2 Matematika Dasar Bab 3 Dasar-Dasar Teori Bahasa Bab 4 Representasi Bahasa Bab 5 Klasifikasi

Lebih terperinci

FTIK / PRODI TEKNIK INFORMATIKA

FTIK / PRODI TEKNIK INFORMATIKA Halaman : 1dari 12 LEMBAR PENGESAHAN DIBUAT OLEH MENYETUJUI Tim SOP dan JUKNIS Prodi IF Mira Kania Sabariah, S.T., M.T Ka Prodi TeknikInformatika Halaman : 2dari 12 DAFTAR ISI Lembar Pengesahan... 1 Daftar

Lebih terperinci

Non-deterministic Finite Automata Dengan -Move

Non-deterministic Finite Automata Dengan -Move Non-deterministic Finite Automata Dengan -Move Terdapat jenis otomata baru yang disebut NFA dengan -move ( disini bisa dianggap sebagai empty). Pada NFA dengan -move (transisi ), diperbolehkan merubah

Lebih terperinci

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal Abdurrahman Dihya R./13509060 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

Penerapan Finite State Automata Pada Proses Peminjaman Buku di Perpustakaan Universitas Kristen Satya Wacana Artikel Ilmiah

Penerapan Finite State Automata Pada Proses Peminjaman Buku di Perpustakaan Universitas Kristen Satya Wacana Artikel Ilmiah Penerapan Finite State Automata Pada Proses Peminjaman Buku di Perpustakaan Universitas Kristen Satya Wacana Artikel Ilmiah Peneliti : Raymond Elias Mauboy (672013158) Prof. Ir. Danny Manongga, MS.c.,

Lebih terperinci

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA [TBO] TEORI BAHASA DAN OTOMATA [TBO] PENGGABUNGAN 2 FSA Pada 2 mesin FSA dapat dilakukan penggabungan, disebut union serta konkatenasi. Misalkan terdapat dua mesin NFA, M1 dan M2 Gambar 5: M1 Gambar 6: M2 OPERASI

Lebih terperinci

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA MODUL VI TEORI BAHASA DAN AUTOMATA Tujuan : Mahasiswa dapat malakukan operasi gabungan/konkatenasi, dan membangun FSA optimal Materi : Operasi Gabungan Operasi Konkatenasi Alur Pengembangan FSA Contoh-contoh

Lebih terperinci

BAB I TEORI BAHASA DAN AUTOMATA

BAB I TEORI BAHASA DAN AUTOMATA Bab 1 Teori Bahasa dan Automata 1 BAB I TEORI BAHASA DAN AUTOMATA TUJUAN PRAKTIKUM 1. Memahami Tentang Teori Bahasa 2. Memahami Automata dan Istilah Istilah yang terdapat dalam Automata 3. Mengerti Tentang

Lebih terperinci

Reduksi DFA [Deterministic Finite Automata]

Reduksi DFA [Deterministic Finite Automata] Reduksi DFA [Deterministic Finite Automata] Untuk suatu bahasa regular kemungkinan ada sejumlah DFA yang dapat menerimanya Perbedaannya umumnya adalah pada jumlah state yang dimiliki oleh otomata-otomata

Lebih terperinci

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu: SINTAKS Bahasa mesin adalah bentuk terendah komputer. Kita dapat berhubungan langsung dengan bagian-bagian yang ada di dalam komputer seperti bits, register. Bahasa mesin terdiri dari bit-bit 0 dan 1.

Lebih terperinci

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN OTOMATA [TBO] TEORI BAHASA DAN OTOMATA [TBO] NFA DENGAN -MOVE Terdapat jenis otomata baru yang disebut NFA dengan -move ( disini bisa dianggap sebagai empty). Pada NFA dengan -move (transisi ), diperbolehkan merubah

Lebih terperinci

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu: PENDAHULUAN Pengertian Komputer mengikuti sejumlah prosedur sistematis, atau algoritme, yang dapat diaplikasikan untuk serangkaian input (string) yang menyatakan integer dan menghasilkan jawaban setelah

Lebih terperinci

NonDeterministic Finite Automata. B.Very Christioko, S.Kom

NonDeterministic Finite Automata. B.Very Christioko, S.Kom NonDeterministic Finite Automata Perbedaan DFA dan NFA DFA (Deterministic Finite Automata) FA di dalam menerima input mempunyai tepat satu busur keluar. NFA (Non Deterministic Finite Automata) FA di dalam

Lebih terperinci

Tujuan perancangan bhs program

Tujuan perancangan bhs program Tujuan perancangan bhs program Komunikasi dengan manusia Pencegahan dan deteksi kesalahan Usability Efektifitas pemrograman Compilability (mengurangi kompleksitas,mis:penggunaan bracket) Efisiensi dengan

Lebih terperinci

1, 2, 3

1, 2, 3 Penerapan Algoritma Depth First Search (DFS) Dinamis Untuk Menentukan Apakah Sebuah String Diterima Oleh Bahasa Reguler yang Didefinisikan Nondeterministic Finite Automata (NFA) Muhammad Ihsan, Ilden Abi

Lebih terperinci

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner Jansen 13510611 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia

Lebih terperinci

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Mata Kuliah : Teori Bahasa dan Automa Bobot Mata Kuliah : 3 Sks GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Deskripsi Mata Kuliah : Micro processing dan Memory, Memory Addressing; Register, Struktur Program,

Lebih terperinci

Teori Bahasa Formal dan Automata

Teori Bahasa Formal dan Automata Teori Bahasa Formal dan Automata Pertemuan 12 Semester Genap T.A. 2017/2018 Rahman Indra Kesuma, S.Kom., M.Cs. T. Informatika - ITERA POKOK BAHASAN Penghilangan ε-production Penghilangan Unit Production

Lebih terperinci

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan SATUAN ACARA PERKULIAHAN (SAP) Nama Mata Kuliah Kode Mata Kuliah Bobot Kredit Semester Penempatan Penanggung Jawab Mata Kuliah : Teori Bahasa Automata : TI 2A & TI 2B : 3 SKS : III : Fathiah, ST. M. Eng.

Lebih terperinci

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I Konsep dan Notasi bahasa Thn 56-59 Noam chomsky melakukan penggolongan tingkatan dalam bahasa, yaitu menjadi 4 class

Lebih terperinci

Penyederhanaan Tata Bahasa Bebas Konteks dalam Bentuk Normal Chomsky Menggunakan PHP

Penyederhanaan Tata Bahasa Bebas Konteks dalam Bentuk Normal Chomsky Menggunakan PHP Penyederhanaan Tata Bahasa Bebas Konteks dalam Bentuk Normal Chomsky Menggunakan PHP 1 Rico Andrian, 2 Wamiliana dan 3 Ismail Indra Pratama 1 Jurusan Ilmu Komputer FMIPA Unila 3 Jurusan Ilmu Komputer FMIPA

Lebih terperinci

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu: SINTAKS Bahasa mesin adalah bentuk terendah komputer. Kita dapat berhubungan langsung dengan bagian-bagian yang ada di dalam komputer seperti bits, register. Bahasa mesin terdiri dari bit-bit 0 dan 1.

Lebih terperinci

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik

Lebih terperinci

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA MATERI KULIAH TEORI BAHASA DAN OTOMATA Oleh : Heru Cahya Rustamaji, S.Si, M.T JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS PEMBANGUNAN NASIONAL VETERAN YOGYAKARTA 2004 1 PERTEMUAN

Lebih terperinci

GRAMMAR AND LANGUAGE

GRAMMAR AND LANGUAGE GRAMMAR AND LANGUAGE Konsep Dasar Anggota alfabet dinamakan simbol terminal. Kalimat adalah deretan hingga simbol-simbol terminal. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga

Lebih terperinci

Fr*snd*mffi. Fakultns tlmu Komputer, l;nivrrsitfls. f&,# d *-B. ,, :..:.4 t:,{;. ${r= st :rir"l, r;t. .j"s*l!&,. '":*& \',?Srlrlfu. :1i-,=-+n 3r: lvqd

Fr*snd*mffi. Fakultns tlmu Komputer, l;nivrrsitfls. f&,# d *-B. ,, :..:.4 t:,{;. ${r= st :rirl, r;t. .js*l!&,. ':*& \',?Srlrlfu. :1i-,=-+n 3r: lvqd :1i-,=-+n 3r: lvqd n l : Fr*snd*mffi w *-B f&,# d.j"s*l!&,.,,! +: :.....,?i. -;" '":*& \',?Srlrlfu $ f,, :..:.4 t:,{;. ${r= st :rir"l, r;t Fakultns tlmu Komputer, l;nivrrsitfls 1 Palindrom Context Free

Lebih terperinci

Teori Bahasa dan Otomata

Teori Bahasa dan Otomata Teori Bahasa dan Otomata i iv Pengantar Teori Bahasa & Otomata TEORI BAHASA & OTOMATA Penulis: Adi Sulistyo Nugroho, S.Kom., M.M. Edisi Kedua Cetakan Pertama, 2013 Hak Cipta 2013 pada penulis, Hak Cipta

Lebih terperinci

Teori Bahasa Formal dan Automata

Teori Bahasa Formal dan Automata Teori Bahasa Formal dan Automata Pertemuan 2 Semester Genap T.A. 2017/2018 Rahman Indra Kesuma, S.Kom., M.Cs. T. Informatika - ITERA POKOK BAHASAN Finite Automata Notasi Finite Automata Deterministic Finite

Lebih terperinci

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara BAB 3 ANALISIS DAN PERANCANGAN PROGRAM 3.1 Analisis Kebutuhan Sistem Analisis kebutuhan sistem merepresentasikan daftar kebutuhan sistem yang akan dirancang dan selanjutnya dapat diketahui gambaran dan

Lebih terperinci