Aplikasi Pengubah Bentuk Normal Chomsky Menjadi Bentuk Normal
Greibach dengan Metode Substitusi
1Rico Andrian, 2Wamiliana, 3Andikha Y.C. Dabukke 1Jurusan Ilmu Komputer FMIPA Unila
2Jurusan Matematika FMIPA Unila 3Jurusan Ilmu Komputer FMIPA Unila
Abstract
The research was conducted with making an application to change Chomsky Normal Form (CNF) to Greibach Normal Form (GNF) with substitution method. One way of representing Context Free Grammar (CFG) is using Greibach Normal Form (GNF). The development of the application starts by making algorithm with prototype method to change Chomksy Normal Form (CNF) to Greibach Normal Form (GNF). This application is used to change Chomsky Normal Form to Greibach Normal Form and the results show that the application can change Chomsky Normal Form to Greibach Normal Form smoothly.The input for the application must be on Chomksy Normal Form (CNF).
Keywords: Chomsky Normal Form, Context Free Grammar, Greibach Normal Form, Prototype
Method
1
Pendahuluan
Teori bahasa automata merupakan salah satu teori komputasi. Teori bahasa automata dapat dijadikan suatu gagasan mendasar dalam komputasi yang menjadi tools untuk mengenali suatu persoalan atau masalah karena dapat memberikan konsep dan prinsip untuk suaru permasalahan yang berkolerasi dengan bidang Ilmu Komputer.
Teori bahasa automata memiliki empat tipe grammar yang disebut dengan Hirarki Chomsky, yaitu
Unrestricted Grammar (UG)[1], Context Sensitive Grammar (CSG), Context Free Grammar (CFG),
dan Regular Grammar (RG).Tata Bahasa Bebas Konteks (CFG) dapat dinyatakan dalam berbagai bentuk, antara lain Bentuk Normal Chomsky (CNF) dan Bentuk Normal Greibach (GNF). Syarat yang harus dipenuhi untuk mendapatkan bentuk normal Greibach adalah aturan produksinya harus dalam bentuk normal Chomsky (CNF), tidak bersifat rekursif kiri, dan tidak memuat produksi yang menghasilkan (epsilon). Bentuk normal Greibach dapat dilakukan dengan dua cara yaitu dengan substitusi dan matriks.
Aturan produksi dalam teori bahasa automata adalah proses yang menspesifikasikan bagaimana suatu tata bahasa mentransformasi suatu string ke bentuk lainnya. Aturan produksi dinyatakan dalam bentuk
α → β, α menghasilkan atau menurunkan β. α merupakan simbol ruas kiri sedangkan β merupakan
simbol ruas kanan. Simbol – simbol tersebut dapat berupa terminal dan nonterminal dimana simbol nonterminal dapat diturunkan menjadi simbol terminal. Simbol terminal disimbolkan dengan huruf kecil (a,b,c, dan sebagainya ), sedangkan simbol nonterminal disimbolkan dengan huruf besar (A,B,C, dan sebagainya).
Penulisan notasi Tata Bahasa Bebas Konteks (CFG) dapat ditulis dengan 4-tsupel : G : (N, Σ, S, P), dimana N adalah himpunan berhingga dari nonterminal, Σ adalah himpunan berhingga dari terminal, S adalah terminal spesifik yang dinamakan simbol awal, dan P adalah himpunan dari produksi-produksi[2]. Penulisan Tata Bahasa Bebas Konteks (CFG) didasarkan pada ketentuan sebagai berikut : Simbol nonterminal ditulis dengan huruf A sampai dengan Z, kecuali S, Sdigunakan sebagai simbol awal, dan huruf a sampai dengan z, huruf Yunani α sampai ζ, dan bilangan (digit) adalah simbol
2
Metode
Tahapan pada penelitian ini adalah tahapan pembentukan bentuk normal Greibach dengan metode substitusi, metode pengembangan sistem prototype, dan aplikasi bentuk normal Greibach dengan metode substitusi.
Gambar 1. Tahapan Metode Penelitian
Proses pembentukan bentuk normal Greibach dengan metode substitusi ini dilakukan pada tahap awal penelitian. Tahap penelitian ini dilakukan untuk merancang algoritma yang sesuai untuk membuat aplikasi pengubah bentuk normal Chomsky menjadi bentuk normal Greibach dengan metode subtitusi. Algoritma aplikasi ini disampaikan melalui sebuah flowchart. Flowchart ini menggambarkan bagaimana masukan aturan produksi awal hingga proses – proses yang terjadi didalamnya hingga mendapatkan hasil. Flowchart ini diperlukan untuk mendapat gambaran dalam pengerjaan tahap selanjutnya dalam pengerjaan aplikasi ini. Flowchart pengubah bentuk normal Chomsky menjadi bentuk normal Greibach dengan metode subtitusi dapat dilihat pada Gambar 4 berikut ini.
Gambar 2. Flowchart Pembentukan GNF dengan Substitusi
Metode prototype merupakan tahap yang dilakukan selanjutnya setelah mendapatkan bentuk
flowchart pembentukan aplikasi ini. Flowchart yang telah didapat dijadikan referensi dalam
pengerjaan tahap selanjutnya. Tahap ini menjelaskan tahapan secara rinci metode yang dilakukan dalam pembuatan aplikasi ini. Tahap prototype ini memiliki 6 tahapan utama seperti berikut [3] :
Gambar 3. Tahapan metode prototype
2.1
Identifikasi Alternatif Prototype
Tahap identifikasi alternatif prototype ini merupakan tahap awal dilakukannya penelitian. Pengumpulan data yang dilakukan berupa identifikasi seluruh kebutuhan pelanggan, serta mencari data – data yang mendukung aplikasi ini. Data – data tersebut didapatkan dari buku – buku atau jurnal - jurnal yang terkait dengan aplikasi. Identifikasi alternatif prototype ini yang diutamakan adalah proses input dan output aplikasi.
2.2
Rancang Bangun Prototype
Tahap rancang bangun prototype ini dilakukan setelah tahap identifikasi alternatif prototype selesai. Tahap ini dilakukan agar mendapatkan bentuk – bentuk prototype yang dapat dievaluasi sebelum diterapkan. Tahap rancang bangun prototype ini memiliki 3 tahapan prototype yang dilakukan untuk membuat perangkat lunak tersebut.
Tabel 1. Tahap Desain Prototype
Prototype Fungsi yang diinginkan
1 Fungsi yang diinginkankan prototype1: 1. Fungsi untuk membuat field untuk masukan produksi.
2. Fungsi untuk mengecek apakah masukan produksi memenuhi syarat yang sudah ditetuntukan atau belum, dalam hal ini harus dalam bentuk normal Chomsky.
2 Fungsi yang diinginkan prototype 2: 1. Fungsi untuk menentukan urutan variabel produksi.
2. Fungsi untuk melakukan subtitusi bermasalah.
3. Fungsi untuk menemukan jika terdapat bentuktidak rekursif kiri.
4. Fungsi untuk melakukan subtitusi mundur. 5. Fungsi untuk menampilkan langkah – langkah
proses pengerjaan apabila tidak terdapat bentuk rekursif kiri.
6. Fungsi untuk menamplikan semua hasil bentuk normal Greibach yang telah didapat. 3 Fungsi yang diinginkan prototype 3: 1. Fungsi untuk menemukan jika terdapat
bentuk rekurif kiri.
2. Fungsi untuk mengubah bentuk rekursif kiri menjadi bentuk normal Greibach.
3. Fungsi untuk melakukan substitusi mundur. 4. Fungsi untuk menampilkan langkah – langkah
proses perngerjaan apabila terdapat bentuk rekursif kiri.
5. Fungsi untuk menamplikan semua hasil bentuk normal Greibach yang telah didapat.
2.3
Evaluasi Prototype
Evaluasi sistem ini dilakukan secara langsung kepada pihak pengguna, sehingga jika masih terdapat kekurangan dapat langsung diperbaiki. Kekurangan atau ketidaksesuaian prototype pada aplikasi ini diperbaiki pada pembangunan prototype selanjutnya. Tahap ini diperlukan untuk memastikan apakah aplikasi berjalan dengan baik, serta mengindentifikasi kesalahan, sehingga dapat langsung dilakukan perbaikan hingga aplikasi dapat digunakan.
2.4
Kode Program
Kode sistem dilakukan jika tahap evaluasi prototype telah selesai. Tahap ini prototype yang sudah ditentukan, diterjemahkan ke dalam bahasa pemograman yang sesuai untuk menyatukannya menjadi aplikasi yang komplit. Aplikasi ini menggunakan bahasa pemograman PHP (Hypertext Preprocessor) untuk membuat aplikasinya.
Sistem yang telah selesai pada tahap kode sistem, kemudian dilakukan pengujian. Pengujian dilakukan secara langsung kepada pelanggan untuk mengetahui apakah kebutuhan sudah sesuai dengan kebutuhan pelanggan atau belum. Pengujian sistem menggunaka black box testing. Pengujian
black box testing berfokus pada output yang didapat dari berbagai jenis input. Pengujian sistem ini
meliputi pengujian terhadap prototype dan fungsional yang telah dibuat oleh pengembang dan disetujui oleh pelanggan.
2.6
Transformasi Sistem
Transformasi sistem merupakan tahap terakhir pada metode prototype. Prototype selanjutnya diubah menjadi perangkat lunak yang dapat beroperasi penuh. Aktivitas ini dilakukan dengan menghilangkan kode – kode yang tidak dibutuhkan, penambahan program – program baru yang diinginkan dan perbaikan serta pengujian perangkat lunak secara berulang. Tahap akhir dari transformasi sistem ini adalah aplikasi yang telah diuji dan dapat diterima oleh pengguna siap digunakan.
3
Implementasi dan Hasil
Implementasi dan hasil dari aplikasi pengubah bentuk normal Chomsky menjadi bentuk normal
Greibach dengan metode substitusi dapat dinyatakan sebagai berikut :
3.1
Antarmuka pengenalan
Antarmuka pengenalan merupakan halaman awal dari aplikasi ini. Antarmuka ini menampilkan informasi tentang bentuk normal Greibach dan bentuk normal Chomsky. Pengguna yang belum mengetahui tentang bentuk normal Greibach dan bentuk normal Chomsky diharapkan dengan adanya informasi ini jadi mengetahui bagaimana bentuk normal Greibach dan bentuk normal Chomsky. Antarmuka Pengenalan dapat dilihat ada Gambar 4 berikut ini.
Gambar 4. Antarmuka Pengenalan CNF dan GNF
Tahap identifikasi alternatif prototype ini merupakan tahap awal dilakukannya penelitian. Pada tahap ini, pengembang melakukan analisis kebutuhan user terhadap sistem yang akan dibuat. Pengembang melakukan interview mengenai kebutuhan sistem yang diinginkan oleh user. Kemudian pengembang mencacat fungsi apa saja yang diperlukan oleh sistem. Pada identifikasi alternatif ini, yang diutamakan adalah proses input dan output sistem.
3.2
Antarmuka GNF
Antarmuka GNF merupakan halaman inti dari aplikasi ini. Antarmuka ini akan menampilkan field untuk jumlah aturan produksi yang ingin dimasukkan oleh pengguna, menampilkan kotak pesan apabila aturan produksi yang dimasukkan masih salah, menampilkan langkah – langkah proses yang dilakukan aplikasi dan seluruh hasil bentuk normal Greibach yang didapat.
Field Aturan Produksi
Antarmuka ini menampilkan jumlah field aturan produksi sesuai yang diinginkan oleh pengguna. Antarmuka untuk menampilkan field aturan produksi dapat dilihat pada Gambar 5 berikut ini.
Gambar 5. Antarmuka menampilkan filed aturan produksi
Antarmuka Kotak Pesan Peringatan
Field yang sebelumnya telah ditentukan berapa banyak aturan produski yang diinginkan pengguna,
kemudian diisi aturan produksinya. Semua field harus diisi pada antarmuka ini, karena apabila ada salah satu field yang masih kosong program tidak akan dapat berjalan. Field yang telah diisi semua dan apabila terdapat aturan produksi yang tidak dalam bentuk normal Chomsky maka akan diberi peringatan sebuah kotak pesan. Aplikasi juga menampilkan bagian field yang masih salah dan belum dalam bentuk normal Chomsky dengan field yang bermasalah diberi warna merah. Antarmuka kotak pesan peringatan apabila aturan produksi yang dimasukkan masih salah dapat dilihat pada Gambar 6 berikut ini.
Gambar 6. Antarmuka kotak pesan peringatan
Antarmuka menampilkan langkah – langkah dan hasil bentuk GNF
Antarmuka ini menampilkan proses penyederhanaan dan hasil bentuk normal Greibach yang dilakukan oleh aplikasi. Antarmuka ini juga menampilkan aturan produksi yg dimasukkan oleh pengguna untuk mengingatkan kembali pengguna soal aturan produksi yang telah dimasukkan. Antarmuka menampilkan proses dan hasil dari bentuk normal Greibach dapat dilihat pada Gambar 7 berikut ini.
Gambar 7. Antarmuka menampilkan langkah dan hasil GNF
3.3
Pengujian
Pada tahap ini dilakukan pengujian terhadap aplikasi yang telah dikembangkan. Pengujian ini bertujuan mencari kesalahan – kesalahan pada aplikasi. Aplikasi harus benar – benar sesuai dengan kebutuhan pelanggan.
Tabel 2. Hasil Pengujian Fungsional
No Kebutuhan Fungsional Hasil
1. Aplikasi dapat mengecek apakah aturan produksi yang dimasukkan sesuai aturan dengan syarat yang sudah ditentukan atau belum, dalam hal ini harus sudah dalam bentuk normal Chomsky.
Baik
2. Aplikasi dapat menampilkan informasi berupa bentuk normal Greibach dan bentuk normal Chomsky.
Baik
3. Aplikasi dapat menampilkan seluruh proses yang terjadi dari aturan produksi bentuk normal Chomsky hingga akhirnya menjadi bentuk normal Greibach.
Baik
4. Aplikasi dapat menampilkan seluruh hasil bentuk normal Greibach yang telah didapat.
Baik
4. Kesimpulan
Kesimpulan dari penelitian ini adalah bentuk normal Greibach dengan metode substitusi hanya bisa didapat apabila masukan produksi yang dimasukkan sudah dalam bentuk normal Chomsky dan dalam pengerjaan mencari bentuk normal Greibach dengan metode substitusi masih memiliki kekurangan dalam proses pengerjaannya.
1. Aplikasi bentuk normal Greibach ini dapat ditambahkan metode matriks, sehingga aplikasi memiliki dua metode dalam pengerjaanya.
2. Aplikasi dapat dikembangkan dengan menampilkan peringatan kalau aturan produksi tidak dapat dikerjakan, dalam hal ini soal bentuk normal Chomsky yang rekursif tetapi tidak memiliki turunan fungsi produksi.
6. Referensi
[1]Chomsky, Noam. 1959. On Certain Formal Properties Of Grammar. MIT:New Jersey.
[2]Merliana, Melly. 2014. Perangkat Lunak untuk Pembelajaran Penyederhanaan Tata Bahasa Bebas
Konteks dan Pengubahan kedalam Bentuk Normal Greibach dengan Metode Substitusi.
UNIKOM:Bandung.
[3] Mulyanto, Agus. 2008. Sistem Informasi Konsep dan Aplikasi. Pustaka Belajar: Yogyakarta.