Bab 2 Tinjauan Pustaka -...
-
Upload
trinhkhuong -
Category
Documents
-
view
221 -
download
0
Transcript of Bab 2 Tinjauan Pustaka -...
6
Bab 2
Tinjauan Pustaka
2.1 Penelitian Terdahulu
Penelitian mengenai penggunaan metode String Matching
salah satunya adalah oleh McCulloch dan Pitts pada Finite
automata. Finite automata dapat dinyatakan sebagai model
pengenal bahasa. Bahasa yang dikenal finite automata adalah
bahasa sederhana. Ada dua macam finite automata yaitu
deterministic finite automata dan non deterministic finite
automata. Finite automata merupakan alat abstrak yang berguna
untuk mengkomputasi suatu string. Sebagai contoh, automata
dapat dipakai untuk komputasi biologi yaitu mencocokkan string
DNA. Pada artikel ini akan diangkat permasalahan untuk
mencocokkan string DNA pada Aves. Salah satu cara untuk
mempercepat proses komputasi adalah dengan memperlakukan
string sebagai vektor pada algoritma vektor yang dikerjakan oleh
finite automata (Yessica Nataliani, 2007).
Sedangkan penelitian tentang penggunaan algoritma
Levensthein adalah oleh Dra. Sulis Janu Hartati, MT dan Soliq,
ST ., M.Kom tentang Penerapan Text Mining Pada Aplikasi
Penilaian Kinerja Pegawai di BKKBN. Penilaian kinerja untuk
setiap pegawai sangat diperlukan oleh perusahaan. Namun masih
ada permasalahan yang sering timbul dalam proses penilaian
kinerja. Sering kali pegawai kurang puas dengan hasil penilaian
7
dari atasan. Hal tersebut disebabkan karena kurang adanya
transparansi antara atasan dengan pegawai. Oleh karena itu,
diperlukan adanya suatu transparansi dalam penilaian kinerja
untuk menghindari masalah-masalah yang muncul karena
terjadinya ketidakpuasan dalam penilaian kinerja pegawai dalam
suatu perusahaan. Uji coba tugas akhir terhadap pegawai
BKKBN Kabupaten Madiun dilakukan dengan memasukkan nilai
(Free Text) berupa kalimat sederhana maupun kalimat bertingkat
yang diperoleh dari Manager Bagian (Pejabat Penilai) kemudian
dilakukan proses sehingga menghasilkan nilai yang berupa angka.
Nilai angka tersebut dapat dijadikan ukuran terhadap hasil kinerja
pegawai tiap periode di BKKBN Kabupaten Madiun (Prasetyo,
2008).
Pada penelitian ini menjelaskan tentang seberapa besar
tingkat kemiripan judul dan abstract skripsi. Dengan
menginputkan judul dan abstract maka aplikasi ini akan memberi
saran dengan menampilkan skripsi yang serupa atau hampir sama
dengan yang diinputkan.
2.2 Plagiarisme
Plagiarisme merupakan tindakan menjiplak, mencuri atau
mengambil ide, hasil karya atau tulisan orang lain, baik seluruh,
sebagian besar maupun sebagian kecil, untuk jadi ide atau karya
tulisan sendiri tanpa menyebutkan nama penulis dan sumber
aslinya.
8
Ada sejumlah pola umum atau modus operandi yang
biasanya dilakukan seorang penulis dalam melakukan plagiasi
terhadap karya orang lain maupun karyanya sendiri. Pertama,
seorang penulis mengambil tulisan orang lain dan mengklaim
sebagai tulisannya sendiri. Kedua, seorang penulis mengambil
gagasan orang lain menjadi gagasannya sendiri. Misalnya, dalam
suatu diskusi, peserta diskusi mengajukan sejumlah gagasan unik
yang menarik. Dalam menulis suatu artikel, penulis yang menjadi
narasumber atau peserta diskusi lalu menulis dan menyatakan
gagasan itu berasal dari dirinya.
Ketiga, mengambil hasil riset orang lain jadi temuannya
sendiri. Keempat, mengakuisisi hasil riset atau hasil karya
kelompok jadi hasil riset atau hasil karya sendiri. Kelima,
menerbitkan kembali hasil tulisannya sendiri yang sudah
diterbitkan sebelumnya dalam suatu buku atau jurnal meskipun
menyebutkan sumbernya. Keenam, meringkas dan
memparafrasekan (mengutip tak langsung) suatu pemikiran dari
suatu sumber ke dalam karya tulisnya tanpa menyebutkan
sumbernya (Lako, 2012).
Klasifikasi mengenai plagiarisme dapat dibuat tergantung
dari berbagai aspek pandang :
– Dari segi substansi yang dicuri,
– Dari segi kesengajaan,
– Dari segi volume/proporsi
9
– Dari pola pencurian, dapat dilakukan kata demi kata,
maupun dapat diseling dari berbagai sumber dan dengan
kata-kata sendiri,
– Ada pula Auto-plagiarism/self-plagiarism.
Self-plagiarism terjadi ketika seseorang menggunakan
ulang karya sendiri dari suatu publikasi sebelumnya tanpa
mencantumkan referensi karya lama ke suatu publikasi yang
baru. Jenis plagiarism ini sebenarnya dapat dianggap “ringan”,
namun bila dimaksudkan atau di kemudian hari dimanfaatkan
misal untuk menambah kredit akademik, maka dapat dianggap
sebagai pelanggaran “berat” etika akademik.
Terdapat pula jenis plagiarisme lainnya, yakni accidental
plagiarism. Sebagai contoh, seorang ibu membacakan sebuah
cerita kepada anaknya yang masih kecil secara berkala. Saat
dewasa, anak itu membuat tugas atau laporan berdasarkan cerita
ibunya tersebut. Jika beberapa orang secara independen
menuangkan ide dan analisis yang sama maka hal ini bukan
dikatakan sebagai plagiat.
Sedangkan plagiarisme dalam penulisan akademik ada dua
tipe utama yaitu:
Plagiarisme ide adalah menggunakan ide (misalnya
penjelasan, teori, kesimpulan, hipotesis, kiasan) secara
keseluruhan atau sebagian, atau dengan pengubahan sedikit
tanpa memberi kredit pada penciptanya. Pencipta ide tadi
10
tidak menuliskan idenya di media publikasi yang bisa
dirujuk.
Plagiarisme teks.
2.3 Net Beans
Pengembangan NetBeans diawali dari Xelfi, sebuah proyek
mahasiswa tahun 1997 di bawah bimbingan Fakultas Matematika
dan Fisika Universitas Charles, Praha. Sebuah perusahaan
kemudian dibentuk untuk proyek tersebut dan menghasilkan versi
komersial NetBeans IDE hingga kemudian dibeli oleh Sun
Microsystem pada tahun 1999. Sun kemudian menjadikan
NetBeans open source pada bulan Juni tahun 2000. Sejak itu
komunitas NetBeans terus berkembang.
NetBeans mengacu pada dua hal, yakni platform untuk
pengembangan aplikasi desktop java, dan sebuah Integrated
Development Environment (IDE) yang dibangun menggunakan
platform NetBeans. Platform NetBeans memungkinkan aplikasi
dibangun dari sekumpulan komponen perangkat lunak moduler
yang disebut „modul‟. Sebuah modul adalah suatu arsip Java
(Java archive) yang memuat kelas-kelas Java untuk berinteraksi
dengan NetBeans Open API dan file manifestasi yang
mengidentifikasinya sebagai modul. Karena modul dapat
dikembangkan secara independen, aplikasi berbasis platform
NetBeans dapat dengan mudah dikembangkan oleh pihak ketiga
secara mudah dan powerful.
11
2.4 Bahasa Pemrograman Java
Bahasa Java merupakan bahasa pemrograman Object
Oriented Programming (OOP) karya Sun Microsystem Inc. Rilis
resmi level beta dilakukan pada November 1995. Dua bulan
berikutnya Netscape menjadi perusahaan pertama yang
memperoleh lisensi bahasa Java dari Sun Microsystem Inc
(Hariyanto, 2007).
Java dirancang untuk menjadi bahasa yang memiliki
kemampuan tinggi dalam hal portabilitas dan pemanfaatan
jaringan tanpa mengabaikan kestabilan, keamanan, serta
kemudahan dari sisi desain dan pemrograman aplikasi.
Java yang semula ditujukan untuk pemprograman applet di
web browser telah berkembang menjadi bahasa pemprograman
pengembangan aneka ragam aplikasi, mulai dari yang berjalan di
handheld devices seperti handphone, PDA (Personal Digital
Assistant) sampai aplikasi tersebar skala enterprise di beragam
komputer server. Java merupakan bahasa orientasi objek untuk
pengembangan aplikasi mandiri, aplikasi berbasis internet,
aplikasi untuk perangkat cerdas yang dapat berkomunikasi lewat
internet/jaringan komunikasi. Java tidak lagi hanya bahasa untuk
membuat applet yang memperindah halaman web tapi Java telah
menjadi bahasa untuk pengembangan aplikasi skala enterprise
berbasis jaringan besar (Hariyanto, 2007).
Sebutan Java 2 diberikan untuk java versi 1.2 dan versi
berikutnya. Java 2 terbagi dalam 3 kategori, yaitu:
12
Java 2 Standart Edition (J2SE). Kategori ini digunakan
untuk menjalankan aplikasi Java pada level komputer
personal.
Java 2 Enterprise Edition (J2EE). Kategori ini
dikhususkan untuk pengembangan aplikasi Java pada
lingkungan enterprise/server.
Java 2 Micro Edition (J2ME). Kategori ini digunakan
untuk pengembangan aplikasi Java yang
diimplementasikan pada perangkat semacam ponsel,
Palm, PDA, dan PocketPC.
2.5 String Matching
Pengertian string menurut Dictionary of Algorithms and
Data Structures, National Institute of Standards and Technology
(NIST) adalah susunan dari karakter-karakter (angka, alfabet atau
karakter yang lain) dan biasanya direpresentasikan sebagai
struktur data array. String dapat berupa kata, frase, atau kalimat.
Pencocokan string merupakan bagian penting dari sebuah
proses pencarian string (string searching) dalam sebuah
dokumen. Hasil dari pencarian sebuah string dalam dokumen
tergantung dari teknik atau cara pencocokan string yang
digunakan.
Pencocokan string (string matching) menurut Dictionary of
Algorithms and Data Structures, National Institute of Standards
and Technology (NIST), diartikan sebagai sebuah permasalahan
13
untuk menemukan pola susunan karakter string di dalam string
lain atau bagian dari isi teks.
Pencocokan string (string matching) secara garis besar
dapat dibedakan menjadi dua yaitu :
1 Exact string matching, merupakan pencocokan string
secara tepat dengan susunan karakter dalam string yang
dicocokkan memiliki jumlah maupun urutan karakter dalam
string yang sama. Contoh : kata step akan menunjukkan
kecocokan hanya dengan kata step.
2 Inexact string matching atau Fuzzy string matching,
merupakan pencocokan string secara samar, maksudnya
pencocokan string dimana string yang dicocokkan memiliki
kemiripan dimana keduanya memiliki susunan karakter
yang berbeda (mungkin jumlah atau urutannya) tetapi
string-string tersebut memiliki kemiripan baik kemiripan
tekstual/penulisan (approximate string matching) atau
kemiripan ucapan (phonetic string matching). Inexact string
matching masih dapat dibagi lagi menjadi dua yaitu :
a. Pencocokan string berdasarkan kemiripan penulisan
(approximate string matching) merupakan pencocokan
string dengan dasar kemiripan dari segi penulisannya
(jumlah karakter, susunan karakter dalam dokumen).
Tingkat kemiripan ditentukan dengan jauh tidaknya beda
penulisan dua buah string yang dibandingkan tersebut
dan nilai tingkat kemiripan ini ditentukan oleh
14
pemrogram (programmer). Contoh : c mpuler dengan
compiler, memiliki jumlah karakter yang sama tetapi ada
dua karakter yang berbeda. Jika perbedaan dua karakter
ini dapat ditoleransi sebagai sebuah kesalahan penulisan
maka dua string tersebut dikatakan cocok.
b. Pencocokan string berdasarkan kemiripan ucapan
(phonetic string matching) merupakan pencocokan
string dengan dasar kemiripan dari segi pengucapannya
meskipun ada perbedaan penulisan dua string yang
dibandingkan tersebut. Contoh step dengan steb dari
tulisan berbeda tetapi dalam pengucapannya mirip
sehingga dua string tersebut dianggap cocok. Contoh
yang lain adalah step, dengan steppe, sttep, stepp, stepe.
2.5.1 Approximate String Matching
Dalam metode ini, dilakukan suatu penghitungan perbedaan
antara dua string. Penghitungan tersebut meliputi tiga operasi
string yaitu operasi penghapusan, operasi penyisipan dan operasi
penggantian. Untuk contoh yang akan digunakan, diasumsikan S
adalah string sumber pencarian dan T adalah string yang ingin
dicari.
Operasi Penghapusan
Misalnya S = memori dan T = meri. Penghapusan dilakukan
untuk karakter m pada lokasi ke-3 dan o pada lokasi ke-4. Dua
15
operasi penghapusan tersebut menunjukkan transformasi S ke T
yang diilustrasikan pada Rumus 2.1.
1 2 3 4 5 6
T = m e - - r i
S = m e m o r i
Rumus 2.1 Operasi Penghapusan
Operasi Penyisipan
Misalnya S = brian dan T = barisan. Operasi sisip
dilakukan dengan menyisipkan a dan s pada posisi 2 dan 5 yang
dapat ditunjukkan pada Rumus 2.2.
1 2 3 4 5 6 7
T = b a r i s a n
S = b – r i – a n
a s
Rumus 2.2 Operasi Penyisipan
Operasi Penggantian
Misalnya S = perasa dan T = pewara. String T
ditransformasikan menjadi S dengan melakukan penggantian
(subtitusi) pada posisi ke-3 dan ke-5. Huruf r dan s pada S
digantikan dengan w dan r pada T. Prosesnya dapat ditunjukkan
pada Rumus 2.3.
16
1 2 3 4 5 6
T = p e w a r a
S = p e r a s a
w r
Rumus 2.3 Operasi Penggantian
Ketiga operasi di atas dapat digunakan dalam contoh
berikut ini. Misalnya T = abrakadabra dan S = avrakhadabah. S
dapat ditransformasikan menjadi T pada Rumus 2.4.
1 2 3 4 5 6 7 8 9 10 11 12 13
T = a b r a k - a d a b r a -
S = a v r a k h a d a b - a h
b r
Rumus 2.4 Operasi Gabungan
Operasi yang dilakukan pada Rumus 2.4 yaitu:
mengganti v pada posisi 2
menghapus h pada posisi 6
menyisipkan r pada posisi 11
menghapus h pada posisi 13
Secara keseluruhan terdapat 4 operasi, yaitu 1 penggantian, 2
penghapusan, dan 1 penyisipan.
17
2.6 Levenshtein Distance
Algoritma Levenshtein, atau sering disebut dengan
Levenshtein Distance atau Edit Distance merupakan algoritma
pencarian jumlah perbedaan string yang ditemukan oleh Vladimir
Levenshtein, seorang ilmuwan Rusia, pada tahun 1965.
Algoritma ini digunakan secara luas dalam berbagai bidang,
misalnya mesin pencari, pengecek ejaan (spell checking),
pengenal pembicaraan (speech recognition), pengucapan dialek,
analisis DNA, pendeteksi pemalsuan, dan lain-lain.
Pada dasarnya, algoritma ini menghitung jumlah minimum
pentransformasian suatu string menjadi string lain yang meliputi
penggantian, penghapusan, dan penyisipan. Algoritma ini
digunakan untuk mengoptimalkan pencarian tersebut karena
sangat tidak efisien jika dilakukan pencarian setiap kombinasi
operasi-operasi string tersebut. Oleh karena itu, algoritma ini
tergolong program dinamis dalam pencarian nilai minimal
tersebut.
Dalam algoritma ini, dilakukan penyeleksian panjang kedua
string terlebih dahulu. Jika salah satu atau kedua string
merupakan string kosong, jalannya algoritma ini berhenti dan
memberikan hasil edit distance yang bernilai nol atau panjang
string yang tidak kosong.
levDis( “”, “” ) = 0
levDis( s , “” ) = levDis( “” , s ) = |s|
Rumus 2.5 Edit Distance
18
Jika panjang string keduanya tidak nol, setiap string
memiliki sebuah karakter terakhir, misalnya c1 dan c2. Misalnya
bagian string pertama tanpa c1 adalah s1 dan bagian string kedua
tanpa c2 adalah s2, dapat dikatakan penghitungan yang dilakukan
adalah cara mentransformasikan s1+c1 menjadi s2+c2. Jika c1
sama dengan c2, dapat diberikan nilai cost 0 dan nilai edit
distance-nya adalah nilai edit distance dari pentransformasian s1
menjadi s2. Jika c1 berbeda dengan c2, dibutuhkan pengubahan
c1 menjadi c2 sehingga nilai cost-nya 1. Akibanya, nilai edit
distance-nya adalah nilai edit distance dari pentransformasian s1
menjadi s2 ditambah 1. Kemungkinan lain adalah dengan
menghapus c1 dan merubah s1 menjadi s2+c2 sehingga nilai edit
distance-nya dari pentransformasian s1 menjadi s2+c2 ditambah
1. Begitu pula dengan penghapusan c2 dan merubah s1+c1
menjadi s2. Digunakan s1 sebagai string sumber dan s2 sebagai
string target maka implementasinya pada Java seperti pada
Gambar 2.1.
Gambar 2.1 Implementation Edit Distance
19
Untuk dua string, X adalah panjang dari n dan Y adalah
panjang dari m. ditetapkan D(i,j) dengan edit distance diantara
X[1..i] dan Y[1..j] di mana i adalah karakter pertama dari X dan j
adalah karakter pertama dari Y. Maka edit distance diantara X
dan Y adalah D(n,m).
Untuk menghitung edit distance ed(x,y) diantara string x
dan y, menyusun matrik M1...m+1,1...n+1 dimana Mi,j adalah nilai
minimum dari operasi perubahan yang diperlukan untuk
menyamakan x1..i ke y1..j ditunjukan pada Rumus 2.6.
D(i,0) = i i = 1 ... M
D(0,j) = j j = 1 ... N
D(i-1 , j) + 1
D(i , j) = min D(i , j-1) + 1
D(i-1 , j-1) + 1 ; if X(i) ≠ Y(j)
0 ; if X(i) = Y(j)
Rumus 2.6 Min Edit Distance
Tabel 2.1 Edit Distance
20
Dari Tabel 2.1 ditetapkan tabel untuk i adalah kata
PENJARA dan untuk j adalah kata JARAK. Dengan
menerapakan Rumus 2.6 maka diperoleh hasil seperti pada Tabel
2.2.
Tabel 2.2 Hasil Min Edit Distance
Recurrence relation :
For each i = 1…M
For each j = 1…N
D(i-1 , j) + 1 deletion
D(i , j) = min D(i , j-1) + 1 insertion
D(i-1 , j-1) + 1 ; if X(i) ≠ Y(j) substitution
0 ; if X(i) = Y(j)
LEFT deletion
ptr(i,j) = DOWN insertion
DIAG subtitution
Rumus 2.7 Arah Min Edit Distance
21
Dari Tabel 2.2 diambil contoh untuk tabel distance (1,1) yaitu :
D(1-1 , 1) + 1
D(1,1) = min D(1 , 1-1) + 1
D(1-1 , 1-1) + 0 →
D(0 , 1) + 1 → 2
D(1,1) = min D(1 , 0) + 1 → 2
D(0 , 0) + 0 → 0
Rumus 2.8 Nilai Minimum
Dari Rumus 2.8 maka D(1,1) memiliki satu nilai minimum
yaitu 0. Pada Tabel 2.2 Elemen terakhir (yang paling kanan
bawah) adalah elemen yang nilainya menyatakan jarak kedua
string yang dibandingkan atau disebut nilai distance, yaitu 4.
Setelah didapatkan distance dari kedua string, maka dapat
ditentukan formula untuk menghitung derajat plagiarisme kedua
string.
Rumus 2.9 Derajat Plagiarisme
Keterangan untuk Rumus 2.9 yaitu:
Diff = distance
Max(CS,ST) = merupakan nilai yang paling panjang yang
diberikan dari perbandingan CS dan ST
+0 karena e = i dengan kondisi
+1 if X(i) ≠ Y(j)
+0 if X(i) = Y(j)
22
CS = PENJARA
ST = JARAK
Diff = 4
Maka perhitungannya adalah sebagai berikut :
Plagiarized Value = {1 - (4 / 7)} * 100
= {3/7} * 100
= 42,857
Jadi, derajat plagiarismenya adalah 42,857%.