Aplikasi Penyederhanaan Context Free Grammar 1 Rico Andrian, 2 Wamiliana, 3 Andriyan Hutomo 1 Jurusan Ilmu Komputer FMIPA Unila 2 Jurusan Matematika FMIPA Unila 3 Jurusan Ilmu Komputer FMIPA Unila Abstract This research is done by making an application to simplify Context Free Grammar (CFG). The process of making the application starts from designing the algorithm using extreme Programming method as system development methods until get the application to simplify Context Free Grammar (CFG). The testing method to test the application is Black Box Testing. The result shows that the application can simplify Context Free Grammar smoothly, and how to simplify Context Free Grammar step by step. Context Free Grammar (CFG) simplification has three stages, eliminating espsilon production, eliminating unit production and eliminating useless production, those three stages must be done sequentially. Keyword : Black Box Testing, Context Free Grammar, extreme Programming, Simplification. 1 Pendahuluan Teori bahasa automata merupakan salah satu teori komputasi pada Ilmu Komputer. 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), Context Sensitive Grammar (CSG), Context Free Grammar (CFG), dan Regular Grammar (RG)[1]. Context free Grammar atau tata bahasa bebas konteks adalah kumpulan berhingga dari variabelvariabel biasa yang disebut non terminal. Variabel tersebut merepresentasikan suatu bahasa. Bahasa yang direpresentasikan oleh non terminal dideskripsikan secara rekursif, dimana tiap simbol primitive disebut terminal. Aturan-aturan yang berhubungan dengan non terminal disebut produksi[2]. CFG dalam penggunaannya membutuhkan perlakuan seperti penyederhanaan dan perubahan bentuk. CFG sebelum dirubah ke dalam bentuk normal Chomsky harus melalui proses penyederhanaan. Proses penyederhanaan CFG ada tiga tahapan yaitu penghilangan produksi unit, useless dan epsilon (produksi kosong). Penyederhanaan CFG sering menemui kendala seperti banyaknya aturan produksi yang membuat penyederhanaan CFG menjadi sulit. Kesulitan dalam penyederhanaan tersebut menarik untuk dibuat aplikasi yang dapat menyederhanakan CFG. Aplikasi yang dibuat dapat melakukan proses penyederhanaan CFG dan menampilkan langkah penyederhanaannya. Hasil yang didapat adalah CFG yang sudah disederhanakan. 2 Metode Pengembangan Sistem Aplikasi Penyederhanaan Grammar ini dikembangkan menggunakan metode Extreme Programming (XP). Penelitian ini tidak menggunakan seluruh tahapan dalam XP karena aplikasi yang dikembangkan merupakan aplikasi kecil dan tim hanya terdiri dari satu programmer. Tahapantahapan XP yang digunakan dalam pembuatan Aplikasi Penyederhanaan Context Free Grammar adalah sebagai berikut: http://jurnal.fmipa.unila.ac.id/index.php/komputasi Hal. 61 dari 168
Penyederhanaan CFG XP Planning Game Refactoring Simple Design Small Release Aplikasi Penyederhanaan CFG Pengujian Gambar 1. Tahapan Metode Pengembangan sistem 2.1 Planning Game Planning game merupakan tahap menentukan kebutuhan aplikasi. Pengembang bertemu dengan client dan membahas seperti apa aplikasi yang diinginkan oleh client pada tahapan ini. Tahap ini dilakukan secara intensif hingga pengembang dan client memiliki pandangan yang sama tentang aplikasi yang dibuat[3]. Pembuatan algoritma untuk menyederhanakan Context Free Grammar merupakan salah satu proses yang dikerjakan dalam tahapan planning game 2.2 Refactoring Proses penulisan kode dalam membuat aplikasi penyederhanaan grammar ini menggunakan proses refactoring. Proses refactoring adalah proses untuk meningkatkan cara penulisan program namun tidak merubah proses dari program tersebut[3]. 2.3 Simple Design Tahap ini merupakan tahap pembuatan desain. Desain yang dibuat untuk aplikasi ini berupa desain sederhana dimana semua button diberi nama dengan jelas sehingga memudahkan client dalam menggunakannya[3]. Aplikasi ini pada dasarnya digunakan oleh banyak pihak karena aplikasi ini dihosting ke dalam laman web. 2.4 Small Release Pembuatan aplikasi dipecah menjadi empat tahapan. Tujuan dari dilakukannya release berkala adalah untuk menghindari error yang bertumpuk apabila program dikeluarkan langsung secara utuh[3]. http://jurnal.fmipa.unila.ac.id/index.php/komputasi Hal. 62 dari 168
Tabel 1. Tahapan Small Release Release ke- Fungsi Tercapai Release 1 Aplikasi dapat menghilangkan produksi epsilon serta menampilkan prosesnya Release 2 Aplikasi dapat menghilangkan produksi epsilon dan produksi unit serta menampilkan prosesnya Release 3 Aplikasi dapat menghilangkan produksi epsilon, produksi unit dan produksi useless dan menampilkan hasil akhir serta proses pengerjaan. Release 4 Aplikasi dapat menghilangkan produksi epsilon, produksi unit dan produksi useless dan menampilkan hasil akhir serta proses pengerjaan dan memiliki tampilan yang memadai bagi pengguna. 2.5 Pengujian Sistem yang telah selesai dibangun melalui tahap pengkodean, kemudian diuji. Pengujian sistem dilakukan langsung kepada pengguna untuk mengetahui apakah sistem yang dibuat telah memenuhi kebutuhan pengguna atau belum. Pengujian sistem menggunakan metode black box testing. 3 Implementasi dan Hasil Implementasi dan hasil dari pembuatan aplikasi penyederhanaan Context Free Grammar yaitu sebagai berikut. 3.1 Laman Pengenalan Laman pengenalan merupakan laman yang berisi ketentuan aplikasi. Laman ini mengenalkan pengguna tentang CFG dan pengenalan bentuk simbol epsilon yang digunakan dalam aplikasi. Simbol epsilon pada aplikasi berupa tanda ^ bukan ε. Laman Pengenalan dapat dilihat pada Gambar 2 berikut ini. Gambar 2. Laman Pengenalan. http://jurnal.fmipa.unila.ac.id/index.php/komputasi Hal. 63 dari 168
3.2 Laman Penyederhanaan CFG Laman Ini merupakan laman inti dari aplikasi penyederhanaan CFG. Laman ini berisi field untuk memasukkan jumlah produksi yang akan dimasukkan, aturan produksinya dan menampilkan hasil penyederhanaan serta langkah-langkahnya. Laman Aturan Produksi Antarmuka ini menampilkan jumlah field aturan produksi sesuai yang diinginkan oleh pengguna. Antarmuka untuk menampilkan field aturan produksi dapat dilihat pada Gambar 3 berikut ini. Kotak Peringatan Gambar 3. Menampilkan field aturan produksi Kotak peringatan akan kuncul apabila jumlah produksi yang dimasukkan masih salah. Kotak Peringatan dapat dilihat pada Gambar 4 berikut ini. Gambar 4. Kotak Peringatan Laman Hasil Penyederhanaan CFG Laman hasil merupakan laman yang menampilkan hasil akhir dari penyederhanaan CFG. Tampilan laman hasil ditunjukan pada Gambar 5 berikut: http://jurnal.fmipa.unila.ac.id/index.php/komputasi Hal. 64 dari 168
3.3 Pengujian Gambar 5. Laman Hasil Tahap ini adalah tahapan 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 Fungsional Kebutuhan Fungsional No 1. Aplikasi dapat mengecek apakah jumlah produksi yang dimasukkan bukan karakter lain selain angka. 2. Aplikasi dapat menampilkan informasi bentuk Context Free Grammar 3. Aplikasi dapat menampilkan seluruh proses yang terjadi dari aturan Context Free Grammar yang belum disederhanakan sampai Context Free Grammar yang sudah disederhanakan. 4. Aplikasi dapat menampilkan seluruh hasil Context Free Grammar yang telah didapat. Hasil http://jurnal.fmipa.unila.ac.id/index.php/komputasi Hal. 65 dari 168
4. Kesimpulan Kesimpulan yang diperoleh dari penelitian ini adalah ; 1. Penyederhanaan Context Free Grammar memiliki tiga proses yang harus dilakukan secara berurut yaitu, penghilangan produksi epsilon, produksi unit, dan produksi useless. 2. Setiap produksi unit yang selesai di subtitusi akan dihasilkan produksi useless. 5. Referensi [1]Chomsky, Noam. 1959. On Certain Formal Properties Of Grammar. MIT:New Jersey. [2] Utdirartatmo, Firrar. 2005. Teori Bahasa Automata. Graha Ilmu: Yogyakarta. [3] Beck, Kent. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley. http://jurnal.fmipa.unila.ac.id/index.php/komputasi Hal. 66 dari 168