BAB I PENDAHULUAN 1.1
Latar Belakang Dalam pencarian sumber referensi untuk pembuatan dokumen karya
ilmiah, laporan atau skripsi dapat dilakukan dengan mudah. Hal tersebut didukung dengan adanya jaringan internet yang memudahkan dalam mencari ide ataupun gagasan
sebagai
referensi
pembuatan.
Namun,
kemudahan
tersebut
disalahgunakan dalam mencari suatu referensi. Banyak naskah atau dokumen hasil penelitian yang dibuat oleh mahasiswa memiliki kemiripan, baik dari masalah yang diambil hingga tata penulisan dari dokumen tersebut. Bahkan memungkinkan dokumen tugas akhir antar mahasiswa dalam satu jurusan yang sama ada kemiripan antara dokumen yang satu dengan yang lainnya. Terdapat beberapa aplikasi berbasis web maupun dekstop yang berfungsi untuk melihat tingkat kesamaan dokumen, diantaranya adalah CopyCatchGold dan TurnItIn. Aplikasi CopyCatchGold menerapkan metode perbandingan teks lengkap, dimana metode ini membandingkan seluruh isi dokumen. Metode ini sangat efektif digunakan karena seluruh isi dokumen dibandingkan sehingga akurasi menjadi lebih baik. Namun, metode ini membutuhkan waktu yang cukup lama untuk melakukan perbandingkan dokumen. TurnItIn menerapakan metode dokumen fingerprint, dimana teknik yang digunakan dengan teknik hashing (mengonversi setiap string menjadi bilangan). Dengan teknik tersebut, perbandingan dokumen dapat dilakukan lebih cepat. Namun dari kedua aplikasi tersebut, baik CopyCatchGold maupun TurnItIn merupakan aplikasi berbayar sehingga kalangan tertentu saja yang dapat menggunakannya. Aplikasi tersebut juga tidak dapat secara langsung terintegrasi pada sistem informasi tugas akhir (SINTA) pada jurusanan ilmu komputer. Pada jurusan ilmu komputer telah ada sistem informasi tugas akhir yang melayani proses proposal dan skripsi, tapi sistem tersebut belum terlengkapi dengan sistem deteksi kesamaan proposal tugas akhir. Padahal sistem informasi tersebut sangat memerlukan fungsi mendeteksi kesamaan antar dokumen proposal tugas akhir, jika tidak disertai maka
1
2
pemeriksaan kesamaan dokumen proposal tugas akhir dilakukan secara manual. Pemeriksaan dilakukan untuk menjamin bahwa proposal yang dibuat oleh mahasiswa tidak persis sama dengan proposal lainnya. Sistem pendeteksi kesamaan proposal tugas akhir
yang dibuat,
menggunakan algoritma yang menerapkan metode fingerprint dengan tujuan agar proses yang dilakukan berlangsung dengan cepat. Salah satu algoritma yang menggunakan teknik dokumen fingerprint adalah algoritma Rabin-Karp. Algoritma
Rabin-Karp
adalah
suatu
algoritma
pencarian
string
yang
menggunakan hashing untuk menemukan sebuah substring dalam sebuah teks (Firdaus, 2008). Algoritma Rabin-Karp tergolong algoritma multiple pattern search yang sangat efisien dalam mencari string dengan pola yang banyak, mengingat bahwa dokumen proposal tugas akhir memiliki string yang panjang dan pola yang beragam. Selain itu, dengan teknik dokumen fingerprint yang digunakan maka perbandingan dokumen juga berlangsung lebih cepat. Algortima Rabin-Karap yang telah ada, kemudian diimplementasikan dalam bentuk sistem berbasis web. Dengan menerapkan sistem berbasis web maka sistem ini dapat diakses dimana saja dan kapan saja oleh pengguna. Sistem pendeteksi kesamaan tersebut dapat juga mengurangi kesalahan dalam penentuan suatu dokumen proposal tugas akhir memilki kesamaan atau bukan, jika diperiksa oleh manusia. Pemeriksaan dokumen juga dapat berlangsung dengan cepat dan mudah untuk dilakukan. 1.2
Rumusan Masalah Sesuai dengan latar belakang yang telah disampaikan diatas, dapat
dirumuskan
permasalahan
dalam
penelitian
ini
yaitu
bagaimana
mengimplementasikan algoritma rabin-karp untuk mendeteksi kesamaan dalam dokumen proposal tugas akhir. 1.3
Tujuan Peneltian Tujuan dilakukannya penelitian ini adalah menerapkan algoritma rabin-
karp pada sistem pendeteksi kesamaan dokumen proposal tugas akhir berbasis web.
3
1.4
Batasan Masalah Batasan masalah dari penelitian ini adalah data dokumen yang digunakan
dalam penelitian adalah dokumen proposal tugas akhir pada Jurusan Ilmu Komputer Fakultas MIPA Universitas Udayana. 1.5
Manfaat Penelitian Manfaat dari penelitian ini adalah membantu komisi tugas akhir dalam
memeriksa kesamaan proposal tugas akhir milik mahasiswa. 1.6
Metodologi Penelitian
1.6.1 Desain Penelitian Pada penelitian ini desain penelitian yang digunakan adalah suatu studi kasus, penelitian mengambil tempat pada Jurusan Ilmu Komputer Fakultas MIPA Universitas Udayana. Sistem berbasis web ini dibangun secara online dimana implementasi program secara pada server yang telah disediakan sehingga dapat mudah diintegrasikan ke dalam sistem informasi tugas akhir yang telah ada. Data-data yang digunakan tentunya berasal dari data-data proposal tugas akhir mahasiswa yang disimpan pada server. Metode pengembangan perangkat lunak
adalah
model
spiral
digunakan
dalam
setiap
langkah-langkah
pengembangan perangkat lunak ini nantinya. Selain itu juga berkerjasama dengan dosen-dosen yang ada dalam komisi tugas akhir untuk mendapat data-data proposal tugas akhir mahasiswa dan masukan lainnya dalam pembuatan perangkat lunak berbasis web ini. Dalam tahap awal pengumpulan kebutuhan perangkat lunak, dibuatkan suatu bentuk dokumentasi perangkat lunak. Hal ini diperlukan dalam kepentingan melakukan pengujian statis dalam tahap awal pengembangan. Setiap tahap dalam model pengembangan spiral dilakukan empat pengujian, yakni pengujian statis, pengujian kotak putih, pengujian kotak hitam dan pengujian kinerja. 1.6.2 Pengumpulan Data Data penelitian diperoleh melalui metode wawancara kepada pengguna. Wawancara digunakan untuk mengetahui seluruh kebutuhan sistem yang dibuat,
4
kebutuhan tersebut dapat berupa kebutuhan fungsional dan non fungsional. Kebutuhan fungsional diantaranya adalah mampu menunjukan hasil tingkat kesamaan dokumen proposal tugas akhir, hasilnya dapat ditunjukan dengan angka persentase kesamaan antar dokumen. Kebutuhan non fungsional diantaranya adalah kemudahan penggunaan sistem dan desain sistem seperti warna serta tampilannya. Setelah data kebutuhan sistem terpenuhi, maka data yang paling penting adalah data-data dokumen proposal tugas akhir yang diperlukan untuk melakukan uji selama pembuatan sistem berlangsung. 1.6.3 Pengolahan Data Awal Data yang diperoleh dari hasil wawancara dibagi menjadi dua kelompok. Pertama adalah kelompok kebutuhan pengguna yang dapat dimengerti dengan jelas dan dapat ditentukan perancangannya di awal. Kedua adalah kelompok kebutuhan pengguna yang belum dapat ditentukan pada awal perancangan perangkat lunak. Untuk setiap kebutuhan pengguna yang masuk dilakukan pengujian statis dengan membuat suatu dokumentasi perangkar lunak. 1.6.4 Metode yang Digunakan Pada penelitian ini dalam membangun perancangan dan implementasi algoritma Rabin-Karp untuk mendeteksi kesamaan dalam suatu dokumen, digunakan metode pengembangan perangkat lunak yakni model spiral. Model spiral memiliki beberapa keunggulan dalam pembangunan suatu perangkat lunak, diantaranya dapat disesuaikan agar perangkat lunak bisa dipakai selama siklus hidup perangkat lunak dan juga mampu mempertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permasalahan yang serius. Untuk metode pengujian perangkat lunak yang digunakan adalah strategi papan catur yang di dalamnya terdiri dari empat jenis pengujian (pengujian statis, pengujian kotak putih, pengujian kotak hitam dan pengujian kinerja).
5
1.6.5 Eksperimen dan Pengujian Metode Pembangunan sistem pendeteksi kesamaan dokumen proposal tugas akhir dengan menggunakan metode pengembangan perangkat lunak model spiral, tahapan yang dilakukan adalah sebagai berikut 1)
Objective setting Tahap pertama merupakan tahap dimana pengumpulan data-data mengenai
sistem yang dibuat atau pendefinisian perangkat lunak. Ada dua hal dilakukan, yakni komunikasi dengan pengguna dan perencanaan. Komunikasi dengan pengguna diperlukan untuk mengetahui sistem seperti apa yang dibuat. Kebutuhan yang sudah jelas dan langsung dapat ditentukan pengerjaanya. 2)
Risk assessment and reduction Analisis resiko, tugas-tugas yang dibutuhkan untuk menaksir resiko-resiko
yang dapat muncul selama pengerjaan sistem, baik resiko secara manajemen maupun resiko secara teknis teknis. Resiko secara manajemen dapat terjadi pada waktu pengembangan sistem yang dapat melewati batas akhir sistem seharusnya selesai. Resiko secara teknis dapat terjadi pada sistem, seperti masalah pada struktur kode atau data pendukung tidak cukup. 3)
Development and validation Pada tahapan ini kebutuhan pengguna diimplementasikan ke dalam bahasa
pemrograman berbasis web. Jika program telah terbentuk, kemudian dilakukan serangkaian pengujian pada masing-masing fungsi yang sudah diselesaikan. 4)
Planning Untuk memperoleh umpan balik (feedback) dari pengguna dengan
didasarkan pada evaluasi representasi perangkat lunak, yang dibuat selama masa perekayasaan dan dimplementasikan selama masa pemasangan. Jika pengguna telah puas sistem yang dibuat maka sistem diluncurkan, jika belum maka sistem mengalami perubahan sesuai dengan kebutuhan pengguna yang baru diajukan. Berikut adalah diagram alur kerja dari pengembangan perangkat lunak (Gambar 1.1) yang dilakukan
6
Gambar 1.1 Diagram Pengembangan Perangkat Lunak 1.6.6 Evaluasi dan Validasi Hasil Dalam proses pengembangan perrangkat lunak diiperlukan suatu pengujian, pada penelitan ini digunakan empat jenis pengujian perangkat lunak. 1.
Pengujian Statis (Static Testing) Pengujian statis membandingkan hasil perancangan yang dibuat dengan
kebutuhan yang telah didapat dari pengguna. Jadi, pengujian tidak hanya dilakukan pada saat sistem telah diimplementasikan tapi juga saat perancangan juga dilakukan pengujian. Secara umum, perancangan dan implementasi dijelaskan pada bab 3 dan bab 4 pada dokumen Tugas Akhir. Untuk memeriksa kebenaran antara kebutuhan dengan perancangan maka dibuat tabel untuk memeriksanya (Tabel 1.1). Tabel 1.1 Rancangan Tabel Pengujian Statis No.
Kebutuhan
Sub Proses
Kesimpulan
7
2.
Pengujian Kotak Putih (White box Testing) Pengujian white box adalah pengujian yang didasarkan pada pengecekan
terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara prosedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Dalam melakukan pengujian ini, digunakan suatu notasi yang mewakili alur kerja dari suau kode yang diimplementasikan dalam suatu fungsi. Notasi yang digunakan untuk menggambarkan jalur eksekusi adalah notasi diagram alir (atau grafik program), yang menggunakan notasi lingkaran (simpul atau node) dan anak panah (link atau edge). Notasi ini menggambarkan aliran kontrol logika yang digunakan dalam suatu bahasa pemrograman. 3.
Pengujian Kotak Hitam (Black box Testing) Pengujian dilakukan untuk mengetahui apakah perangkat lunak yang
dibangun telah berfungsi sebagaimana mestinya sesuai dengan kebutuhan pengguna, pengujian dituangkan dalam bentuk tabel uji (Tabel 1.2). Dengan melakukan berbagai macam skenario terhdapat sistem dilihat hasilnya dan disimpulkan validasinya. Tabel 1.2 Rancangan Tabel Pengujian Black box No.
Skenario Pengujian
Keluaran Pengujian
4.
Pengujian Kinerja (Performance Testing)
Hasil Pengujian
Kesimpulan
Pengujian kinerja dilakukan untuk mengukur sebarapa tahan sistem mengerjakan tugas yang diberikan, bisanya hal ini terlihat dari waktu proses yang dilakukan oleh sistem. Jika waktu proses cepat maka proses tersebut masih dapat dilakukan dengan baik sedangkan jika tergolong lama maka proses yang dikerjakan sangat besar. Jika hal ini dibiarkan, maka tidak menutup kemungkinan sistem mengalami semacam crash suatu saat nanti. Hal paling berpengaruh pada kecepatan kerja sistem adalah jumlah data proposal tugas akhir, hasil pengujian dibuat berupa tabel dan grafik atau kurva
8
Strategi Pengujian Dua Dimensi Papan Catur Setelah ditentukan keempat jenis pengujian, maka digunakan strategi pengujian dua dimensi “papan catur” (Tabel 1.3) pada setipa tahap pengembangan perangkat lunak. Tabel 1.3 Rancangan Tabel Uji Dua Dimensi Papan Catur Aplikasi Konektivitas Sumber Daya Data Keamanan Sistem Operasi Kebutuhan dan Analisis Resiko
Implementasi
Sistem Akhir
Peluncuran
Penggunaan
Keterangan : Pengujian Statis (Static Testing)
Pengujian
Pengujian
Kotak Hitam
Kotak Putih
(Black box
(White box
Testing)
Testing)
Pengujian
Terlambat
Kinerja
untuk
(Performance
Pengujian
Testing)