Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left...

download Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left Corner Parsing dan Regex

of 6

description

Jurnal skripsi jurusan Teknik Informatika yang berjudul Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left Corner Parsing dan Regex

Transcript of Aplikasi Pembantu Pemahaman Komentar Program dan Dokumentasi Perangkat Lunak dengan Metode Left...

  • i

    APLIKASI PEMBANTU PEMAHAMAN KOMENTAR PROGRAM 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 [email protected]

    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 : [email protected] Blog : http://wp.me/98wt