1
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
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.
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,
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).
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
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
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 Hasil Pengujian
Kesimpulan
4. Pengujian Kinerja (Performance Testing)
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
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 Kotak Hitam (Black box Testing)
Pengujian Kotak Putih (White box Testing)
Pengujian Kinerja (Performance Testing)
Terlambat untuk Pengujian