Anda di halaman 1dari 6

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
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

Anda mungkin juga menyukai