6
pemeriksaan kode program. Sehingga tetap memperhitungkan kesamaan kode program untuk bahasa pemrograman yang sama. Pemeriksaan dilakukan
dengan memperhatikan struktur dan konten pada kode program tersebut.
2.1.1 Elemen Dasar Bahasa Java
Untuk memeriksa kesamaan kode program dalam bahasa Java, sistem harus mengetahui beberapa elemen dasar dari Java yaitu tata cara
atau format penulisan kode program, kata kunci keyword pada Java, dan separator. Untuk tata cara atau format penulisan kode program,
Rahardjo, dkk 2007 menjelaskan elemen yang dimaksud diantaranya seperti komentar, variabel, kontrol program, inputoutput, kelas dan
objek, dsb. Berikut merupakan tabel yang menjelaskan format penulisan elemen-elemen pada program Java beserta penjelasannya
Tabel 2.3. Format penulisan elemen kode program pada java
NO FORMAT PENULISAN
PENJELASAN 1
ini komentar
Komentar untuk satu baris. 2
ini komentar beberapa baris
Komentar untuk
beberapa baris.
3
Program “HelloWorld” author Wisesa
Komentar untuk
keperluan dokumentasi suatu program.
4
tipe namaVariabel;
Deklarasi satu variabel dengan tipe data tertentu.
5
tipe variabel1,variabel2;
Deklarasi beberapa variabel dengan tipe data yang sama.
6
tipe variabel = nilai;
Inisialisasi nilai pada sebuah variabel.
7
tipe variabel1 = nilai1, variabel2 = nilai2;
Inisialisasi beberapa nilai pada beberapa variabel.
8
tipe variabel1 =tipeTarget nilai;
Proses typecasting konversi nilai ke tipe data yang berbeda.
9
tipe[] namaArray;
Deklarasi array satu dimensi.
7
10
variabelArray = new tipe[jumlahElemen];
Inisialisasi array satu dimensi. 11
tipe[][] namaArray;
Deklarasi array dua dimensi. 12
variabelArray = new tipe[jumElemen][jumElemen]
Inisialisisasi array dua dimensi. 13
ifkondisi{ ..
}
Prosedur kontrol if untuk pemilihan 1 kondisi.
14
ifkondisi{ ..
}else{ ..
}
Prosedur kontrol if-else untuk pemilihan 2 kondisi.
15
ifkondisi1{ ..
}else ifkondisi2{ ..
}else{ ..
}
Prosedur kontrol if-elseif-else untuk pemilihan 3 atau lebih
kondisi.
16
switchekspresi{ case nilai1:
.. break;
case nilai2: ..
break; default: ..
}
Prosedur kontrol switch-case untuk pemilihan kondisi.
17
forinisialisasi; kondisi; iterasi{
.. }
Prosedur kontrol for untuk sebuah perulangan.
18
forinisialisasi1, inisialisasi2; kondisi1;
iterasi1, iterasi2{ ..
}
Prosedur kontrol for untuk sebuah
perulangan dengan
beberapa inisialisasi dan iterasi. 19
inisialisasi; whilekondisi{
.. iterasi;
}
Prosedur kontrol while untuk sebuah perulangan.
8
20
inisialisasi; do{
.. iterasi;
}whilekondisi;
Prosedur kontrol
do-while untuk sebuah perulangan.
21
class NamaKelas{ ..
}
Deklarasi sebuah kelas.
22
NamaKelas variabel = new NamaKelas;
Instansiasi kelas
dan memasukkan
referensi ke
sebuah variabel. 23
tipe namaMethoddaftar- parameter{
.. }
Deklarasi sebuah method pada sebuah kelas.
24
tipe namaMethoddaftar- parameter{
.. return nilai;
}
Deklarasi sebuah method pada sebuah kelas dengan suatu nilai
balik. 25
namaKonstruktordaftar- parameter{
.. }
Deklarasi konstruktor pada sebuah kelas.
26
tingkat-akses tipe namaVariabel;
Deklarasi variabel
dengan tingkat akses.
27
tingkat-akses tipe namaMethoddaftar-
parameter{ ..
}
Deklarasi method
dengan tingkat akses dan parameter.
28
class nama-subclass extends nama-superclass{
.. }
Melakukan proses penurunan terhadap suatu kelas.
29
try{ ..
}catchtipeEksepsi namaVariabel{
.. }
Deklarasi try-catch
untuk pencegahan eksepsi dengan 1
tipe eksepsi.
9
30
try{ ..
}catchtipeEksepsi1 namaVariabel1{
.. }catchtipeEksepsi2
namaVariabel2{ ..
}
Deklarasi try-catch
untuk pencegahan eksepsi dengan
beberapa tipe eksepsi.
Format penulisan kode program pada tabel 2.3 nantinya akan menjadi acuan pada sistem untuk memeriksa konten dari kode program ataupun
mengenali struktur dari kode program. Selain format penulisan, sistem juga harus mengenali kata kunci
keyword pada Java. Menurut Rahardjo, dkk 2007, kata kunci adalah kata-kata yang telah didefinisikan oleh compiler dan memiliki arti dan
tujuan spesifik. Java melarang pembuatan sebuah pengenal nama variabel, konstanta, kelas, maupun method dengan menggunakan kata
kunci. Tabel 2.4 berikut ini menunjukkan kata kunci yang terdapat di dalam Java.
Tabel 2.4. Kata kunci pada Java
abstract double
int strictfp
boolean else
interface super
break extends
long switch
byte final
native synchronized
case finally
new this
catch float
package throw
char for
private throws
class goto
protected transient
const if
public try
continue implements
return void
default import
short volatile
do instanceof
static while
Kata kunci dapat diklasifikasikan menjadi beberapa fungsi yaitu tipe data, percabangan, perulangan, tingkat akses, dsb. Beberapa kata kunci
memiliki fungsi khusus seperti
return
,
new
,
final
,
static
, dsb. Karena untuk memeriksa kesamaan kode program, tidak membutuhkan makna
10
dari kode, melainkan hanya membutuhkan tata cara penulisan kode program, maka makna penulisan kata kunci dapat diabaikan.
Elemen dasar yang juga penting dari sebuah bahasa pemrograman, khususnya java adalah adanya separator. Separator digunakan untuk
memisahkan salah satu bagian program dengan bagian lainnya. Salah satu contoh dari separator yang paling sering digunakan pada setiap
kode program adalah semicolon tanda titik koma ;, yang digunakan untuk memisahkan statement yang satu dengan yang lainnya. Tabel 2.5
menunjukkan daftar separator di dalam Java.
Tabel 2.5. Daftar separator di dalam Java
SIMBOL NAMA
SEPARATOR KEGUNAAN
Parentheses tanda kurung
Digunakan untuk mengisikan daftar
parameter di
dalam method; untuk mengapit sebuah
ekspresi dalam operasi tertentu misalnya: operasi aritmetika,
mengapit ekspresi di dalam statement kontrol, dan untuk
melakukan typecast.
{ } Braces kurung
kurawal Digunakan untuk membuat blok
program kelas, method, kontrol pemilihan,
dan kontrol
pengulangan dan
untuk mengisikan nilai inisial pada
deklarasi array.
[ ] Bracket kurung
siku Digunakan
untuk mendeklarasikan array dan untuk
mengambilmengisi nilai dari elemen array.
; Semicolon titik
koma Digunakan untuk memisahkan
statemen.
11
, Comma koma
Digunakan untuk memisahkan variabel
pada saat
proses deklarasi. Juga dapat digunakan
pada saat menggunakan statemen
for
. .
Period titik Digunakan untuk memisahkan
nama paket, subpaket, dan kelas. Juga
digunakan untuk
memisahkan datamethod dari sebuah referensi objek.
2.2 Ekspresi Reguler