0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
75 tayangan6 halaman
Jurnal skripsi jurusan Teknik Informatika yang berjudul Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left Corner Parsing dan Regex
Judul Asli
Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left Corner Parsing dan Regex
Jurnal skripsi jurusan Teknik Informatika yang berjudul Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left Corner Parsing dan Regex
Jurnal skripsi jurusan Teknik Informatika yang berjudul Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left Corner Parsing dan Regex
DAN DOKUMENTASI PERANGKAT LUNAK MENGGUNAKAN METODE REGULAR EXPRESSION DAN LEFT CORNER PARSING
JURNAL SKRIPSI
Oleh : RENDRA KURNIAWAN 06.2009.1.04900
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI INSTITUT TEKNOLOGI ADHI TAMA SURABAYA 2013 Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak Menggunakan Metode Regular Expression dan Left Corner Parsing
ABSTRAK Komentar berperan menjadi struktur bantuan dari source code dalam memahami maksud dan tujuan dari sebuah program atau source code tersebut. Komentar merupakan satu-satunya bentuk dokumentasi yang tersedia untuk sebuah sistem, menjelaskan sebuah algoritma, menentukan kendala seperti pre-conditions dan post-conditions atau memberikan peringatan kepada pihak pengembang terhadap suatu keanehan dari baris kode sumber yang kompleks. Dokumentasi sangat penting untuk menghindari kesalahpahaman bagi pihak pengembang pada aplikasi terkait. Kebanyakan pengembang tidak memiliki alat bantu yang tepat untuk menciptakan pemeliharaan dokumentasi, secara umum hal ini dianggap sebagai tugas yang tidak menguntungkan bahkan dianggap membuang waktu dalam pengerjaan proyek perangkat lunak. Maka dari itu penulis mencoba mengembangkan sebuah aplikasi pembantu pemahaman komentar dan dokumentasi perangkat lunak yang menggunakan metode Regular Expression dan Left Corner Parsing. Sebuah aplikasi yang cukup fleksibel yang mampu membantu pembuatan dokumentasi proyek serta membantu pengembang mempercepat pemahaman akan suatu proyek atau kode sumber program.
Kata kunci : Komentar, Kode Sumber, Regular Expression, Left Corner Parsing . I. PENDAHULUAN Komentar berperan menjadi struktur bantuan dari source code untuk selanjutnya disebut kode sumber dalam memahami program dan karenanya dapat mengurangi biaya pemeliharaan (Elshoff & Marcotty, 1982). Selama dekade terakhir, proses rekayasa perangkat lunak telah terus berevolusi untuk mencerminkan perubahan budaya, sosial, teknologi, dan organisasi. Komentar merupakan satu-satunya bentuk dokumentasi yang tersedia untuk sebuah sistem, menjelaskan suatu algoritma, menentukan kendala seperti pre-conditions dan post-conditions, atau memberikan peringatan kepada pihak pengembang terhadap suatu keanehan dari baris kode sumber yang kompleks (Woodfield et al., 2007). Dokumentasi tersebut sangat penting untuk menghindari kesalahpahaman bagi pihak pengembang pada aplikasi terkait seperti usia dan berkembang (Brooks, 1995). Tidak sedikit pengembang menggunakan komentar untuk tujuan selain menggambarkan kode sumber, tetapi sebagai informasi yang sangat berguna baginya untuk melakukan pengembangan (Ying et al., 1983). Kebanyakan pengembang tidak memiliki alat bantu yang tepat untuk menciptakan dan pemeliharaan dokumentasi, secara luas hal ini dianggap sebagai tugas yang tidak menguntungkan, bahkan dianggap membuang waktu dalam pengerjaan proyek perangkat lunak (Khamis et al., 2010). Saat ini generator dokumentasi proyekbanyak dikembangkan dan dirancang untuk meringankan upaya para pengembang saat mendokumentasikan proyek perangkat lunak mereka, dan oleh karenanya menjadi diterima dan digunakan secara luas. Berdasarkan berbagai permasalahan yang timbul diatas, maka diperlukan suatu upaya untuk memperbaiki kebiasaan dalam membangun dan mengembangkan sebuah proyek perangkat. Dengan begitu proses dokumentasi perangkat lunak akan semakin mudah serta informasi yang dihasilkan bisa optimal, sehingga dapat memberikan kemudahan pada pengembangan proyek selanjutnya baik oleh pengembang yang sama maupun berbeda. Maka untuk mempermudah pelaksanaan tersebut, melalui skripsi ini akan dibuat suatu aplikasi pembantu dalam menyelesaikan permasalahan tersebut. Diharapkan dengan adanya aplikasi Rendra Kurniawan Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Adhi Tama Surabaya rendra@kreasigaruda.com Ir. Wahyu Widodo, M. Kom. Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Adhi Tama Surabaya
Andy Rachman, S.T. Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Adhi Tama Surabaya
ini dapat membantu pihak pengembang lebih mudah dalam mengatur dan mengembangkan proyek perangkat lunaknya.
II. REGULAR EXPRESSION Sebuah regex (Regular Expression) mendefinisikan pola pencarian untuk string. Kalimat biasa dapat digunakan untuk mencari, mengedit dan memanipulasi teks. Pola didefinisikan oleh susunan kombinasi simbol dan karakter dalam regex yang mungkin cocok dengan satu atau beberapa atau tidak sama sekali untuk string yang diberikan atau diolah (Vogel, 2012). Pola didefinisikan oleh regex yang diterapkan pada string dari kiri ke kanan. Setelah karakter sumber telah digunakan dalam proses pencocokan, maka sudah tidak dapat digunakan kembali. Misalnya regex "aba" akan cocok dengan "ababababa" hanya dua kali (aba_aba__). Sebuah contoh sederhana dari regex adalah sebuah (literal) string. Misalnya regex untuk Hello World akan cocok dengan string "Hello World". . (dot) adalah sebuah contoh lain dari regex. Sebuah symbol titik akan cocok pada satu karakter apapun, misalkan akan cocok pada karakter a atau z atau angka 1. A. Deteksi Komentar Berikut ini adalah susunan pola regex yang dipakai penulis untuk mencari dan menentukan komentar-komentar yang ada di dalam kode sumber program :
Gambar 1 Pattern Regex Deteksi Komentar Berdasarkan pola regex untuk deteksi komentar yang tertera diatas, bisa lebih dijelaskan bahwa aturan-aturan yang akan dipakai adalah sebagai berikut : a) Cocokkan karakter yang berawalan / b) Cocokkan karakter apapun setelahnya mulai dari huruf, angka dan symbol-simbol lainnya tanpa ada batas. c) Cocokkan karakter yang tidak berawalan dengan symbol *. d) Dan atau cocokkan string yang berawalan dengan karakter //. e) Cocokkan semua karakter single selama buka karakter untuk ganti baris. B. Deteksi Method / Class Berikut ini adalah susunan pola regex yang dipakai penulis untuk mencari dan menentukan method yang ada di dalam kode sumber program :
Gambar 2 Pattern Regex Deteksi Method Berdasarkan Gambar 2 pola regex untuk deteksi komentar yang tertera diatas, bisa lebih dijelaskan bahwa aturan yang dipakai adalah sebagai berikut : a) Cocokkan karakter yang termasuk karakter kata (huruf, angka, simbol). b) Cocokkan karakter spasi setelahnya. c) Cocokkan karakter yang termasuk karakter kata (huruf, angka, simbol). d) Cocokkan karakter spasi setelahnya. e) Cocokkan karakter dengan simbol (. f) Cocokkan karakter apapun selain karakter / simbol ). g) Cocokkan karakter dengan simbol ). h) Cocokkan karakter spasi setelahnya kemudian lanjutkan dengan pencocokan karakter { pada akhir pencarian. Pola yang dipakai jauh berbeda dengan yang dipakai untuk mencari dan menentukan komentar-komentar yang ada di dalam kode sumber program. Pola yang dipakai untuk pencarian method ini secara umum lebih sederhana dibandingkan dengan pola regex untuk pendeteksian komentar kode sumber. III. LEFT CORNER PARSING Ada tiga jenis parser yang digunakan untuk sebuah grammar. Universal Parsing, seperti Algoritma Earley dan Algoritma lainnya yaitu Top Down Parsing dan Bottom Up Parsing.Left Corner Parsing (LCP) merupakan salah satu pendekatan dari Bottom Up Parsing. Dasar teori dari LCP ini pertama kali dikemukakan oleh (Rosenkrantz & Lewis II, 1970). LCP merupakan strategi parsing yang menggunakan data secara bottom up (dari aturan left corner) dan prediksi top down (dari aturan sisanya). Resenkrantz dan Lewis /\*(?>(?:(?>[^*]+)|\*(?!/))*)\*/|(//.* ) \w+ +\w+ *\([^\)]*\) *\{ menunjukkan bagaimana mengubah Contxt Free Grammar menjadai grammar yang apabila digunakan oleh Top Down Parser mengikuti jalur yang sama dengan LCP (Rosenkrantz & Lewis II, 1970). Parsing adalah proses menentukan apakah sekumpulan string yang dibuat dari token dapat dibuat oleh sebuah grammar. Parser ini diharapkan dapat menunjukkan kesalahan-kesalahan sintaksis yang ada di dalam kumpulan string tersebut. Parser mempunyai peranan dalam sebuah pengenal sintaksis sebagai pengolah data dari pengenal lexical dan membuat pohon parser sehingga dapat dihasilkan informasi keluaran berupa pola kalimat yang telah dikenali (Rosenkrantz & Lewis II, 1970). Dalam penggunaan LCP akan digunakan Context Free Grammar sebagai bahasa yang akan diolah oleh parser. Untuk LCP ini akan digunakan beberapa istilah dalam mengolah masukan sehingga didapatkan hasil pola kalimat : 1. Aturan tata bahasa yang berisi pola kalimat yang berbentuk Context Free Grammar. Pada aturan tata bahasa yang ada terdapat aturan produksi yang akan diproses untuk dicari Left Corner-nya. 2. Stack atau tumpukan kata yang berfungsi sebagai tempat penyimpanan aturan produksi yang sedang dan akan diproses. 3. Right Hand Side (RHS) adalah sisi bagian kanan dari aturan produksi. 4. Left Hand Side (LHS) adalah sisi bagian kiri dari aturan produksi yang ada. 5. Left Corner Item (LTI) adalah item / bagian paling kiri yang berada pada sisi bagian kanan dari sebuah aturan produksi.
A. Penetuan Kelas Kata Penentuan kelas kata (POS Tagger) yang digunakan pada penelitian ini mengacu pada (N. et al., 2009). Penentuan kelas kata tersebut bersifat rule-based dan memiliki tiga tahap pemrosesan. Jika pada suatu tahap jenis kelas kata sudah dapat ditentukan, maka tidak perlu melanjutkan ke tahap berikutnya. Dalam penelitian ini hanya digunakan dua tahap saja, yaitu pengecekan menggunakan kamus kelas kata dan prediksi berdasar aturan morfologi bahasa Indonesia. Tahap pertama dari proses penentuan kelas kata adalah mencari kelas kata menggunakan kamus kelas kata pada Tabel 1. Tahap selanjutnya dilakukan jika kata yang dicari tidak terdapat dalam kamus. Pada tahap ini diprediksi kelas kata yang mungkin untuk kata tersebut berdasar aturan morfologi bahasa Indonesia. Jika kelas kata dapat diprediksi maka kata tersebut digunakan untuk memperkaya kamus kelas kata. Namun jika kelas kata belum dapat ditentukan maka kata tersebut dianggap memiliki kelas nomina. Tabel 1 Daftar Penggolongan Aturan Kata Simbol Kelas Kata Keterangan ADJ Adjektiva Kata Sifat ADV Adverbia Kata ADVB Adverbia (Penekanan) Kata ART Artikula CC Konjungtor Koordinatif Kata hubung yang menghubungkan klausa pada kalimat majemuk setara CS Konjungtor Subordinatif Kata hubung pada kalimat majemuk bertingkat M Modal PRO Pronomina N Nomina Kata Benda NPER Nomina Kata Benda NP Nomina Penolong Kata benda yang menjadi penggolong numeralia NPS Nomina Penolong Kata benda berimbuhan yang menjadi penggolong numeralia NUM Numeralia Kata Bilangan P Preposisi Kata Depan PAR Partikel Kata Kerja TRAN Verba Kata Kerja INTR Verba Kata Kerja PASIF Verba Pasif Kata Kerja NAM Nomina Nama BUKA Adverbia Kata Ingkar AUX Auxiliary ASP Aspek
IV. IMPLEMENTASI Fasilitas-fasilitas yang tersedia pada sistem yang akan memungkinkan pengguna untuk melakukan masukan terhadap program : - Memberikan masukan berupa proyek perangkat lunak berbasis Java. - Melakukan proses scanning terhadap file yang berisi kode sumber, kemudian melakukan parsing terhadap komentar kode sumber yang berhasil didapatkan. - Memperbaiki pola kalimat yang didapat dari hasil terjemahan komentar kode sumber. - Membuat dokumentasi terhadap perangkat lunak tersebut. A. Data Masukan Data masukan yang digunakan perangkat lunak ini beberapa data sebagai inisialisasi sebagai parameter yang diperlukan dalam proses tersebut yaitu : - Kode sumber perangkat lunak berbasis bahasa pemrograman Java - Komentar kode sumber yang berbahasa Inggris guna proses terjemahan ke dalam bahasa Indonesia. B. Data Saat Pemrosesan Data-data yang akan diproses oleh aplikasi adalah sebagai berikut : - Kode sumber dari sebuah perangkat lunak. - Komentar kode sumber perangkat lunak yang diperoleh dari hasil scanning pemisahan antara kode sumber dan komentar kode sumber. - Kumpulan kata pada komentar kode sumber yang sudah diterjemahkan (jika komentar kode sumber adalah bahasa Inggris). - Urutan yang menunjukkan berada pada posisi mana seharusnya kata dalam kalimat masukan tersebut (komentar kode sumber hasil terjemahan) yang sesuai dengan struktur bakudalam bahasa Indonesia. - Kumpulan method atau function pada kode sumber perangkat lunak dilengkapi dengan komentar yang terkait dengan method tersebut.
C. Data Keluaran Data keluaran yang dihasilkan dari aplikasi ini adalah sebagai berikut ini : - Komentar kode sumber disertai dengan informasi yang detil tentang perubahan yang terjadi pada kode sumber. - Pola kalimat bahasa Indonesia yang baik pada komentar kode sumber perangkat lunak. - Dokumentasi perangkat lunak secara umum dalam bentuk file Hyper Text Markup Language (HTML) yang sudah disertai dengan komentar kode sumber terkait. Pada Gambar 3 berikut ini merupakan diagram alir yang menggambarkan proses umum aplikasi serta proses- proses utama secara yang akan dilalui dalam aplikasi ini, yaitu deteksi komentar dan dokumentasi :
Gambar 3 Diagram Alir Aplikasi
V. KESIMPULAN Dari uraian pada bab bab sebelumnya, dapat diambil kesimpulan tentang pemahaman komentar program dan dokumentasi perangkat lunak adalah sebagai berikut ini : 1. Sistem yang dirancang dapat menterjemahkan komentar kode sumber program dari bahasa Inggris menjadi bahasa Indonesia. 2. Dengan adanya komentar yang berbahasa Indonesia akan lebih memudahkan pihak pengembang dalam memahami suatu kode sumber, algoritma yang ada dan alur dari kode sumber itu sendiri. 3. Dengan adanya sebuah dokumentasi proyek perangkat lunak, akan lebih memudahkan pihak pengembang dalam melakukan perawatan dan kelanjutan proses pengembangan proyek selanjutnya.
VI. DAFTAR PUSTAKA Brooks, F.P., 1995. The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2nd ed. Elshoff, J.L. & Marcotty, M., 1982. Improving computer program readability to aid modification. Communications of the ACM. 25(8), pp.512-21. Khamis, N., Witte, R. & Rilling, J., 2010. Automatic Quality Assessment of Source Code Comments: The Javadoc Miner. N., R.P., Widyantoro, D.H. & Purwarianti, A., 2009. Pengurai Kalimat Bahasa Indonesia Sebagai Alat Bantu Untuk Pengembangan Aplikasi PBA. INAGP, p.5. Rosenkrantz, D.J. & Lewis II, P.M., 1970. Deterministic Left Corner Parsing. pp.139-52. Vogel, L., 2012. Java Regex Tutorial. [Online] (2.1) Available at: http://www.vogella.com/articles/JavaRegularExpressions/arti cle.html [Accessed April 2013]. Woodfield, S.N., Dunsmore, H.E. & Shen, V.Y., 2007. The effect of modularization and comments on program comprehension. pp.145-58. Ying, A.T.T., Wright, J.L. & Abrams, S., 1983. An exploration of Eclipse task comments and their implication to repository mining.
VII. PENULIS Nama : Rendra Kurniawan NPM : 06.2009.1.04900 Email : rendra@kreasigaruda.com Blog : http://wp.me/98wt