BAB II TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
BAB I PENDAHULUAN 1.1 Latar Belakang

Gambar 2.1 Diagram Alir Algoritma Rabin-Karp

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN 1.1 Latar Belakang

Rancang Bangun Penilaian Keaktifan Menggunakan Teknik Text Similarity Pada Sistem Tutorial Matematika Diskret

APLIKASI PENDETEKSI KEMIRIPANPADA DOKUMEN MENGGUNAKAN ALGORITMA RABIN KARP

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB I PENDAHULUAN. berinovasi menciptakan suatu karya yang original. Dalam hal ini tindakan negatif

APLIKASI STATISTIK PENDETEKSIAN PLAGIARISME DOKUMENT TEXT DENGAN ALGORITMA RABIN KARP

BAB II TINJAUAN PUSTAKA

BAB III METODOLOGI PENELITIAN. Metode pengumpulan data yang digunakan pada penelitian ini berupa studi

PERANCANGAN DAN IMPLEMENTASI SISTEM PENILAIAN JAWABAN ESAI OTOMATIS MENGGUNAKAN ALGORITMA RABIN-KARP KOMPETENSI REKAYASA PERANGKAT LUNAK SKRIPSI

BAB 3 ANALISIS MASALAH DAN PERANCANGAN

1.5 Metode Penelitian

BAB 2 LANDASAN TEORI. 2.1 Pengertian Text Mining

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II LANDASAN TEORI

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang Kesehatan menempati urutan tertinggi dalam menunjang kelangsungan aktivitas harian setiap manusia (Batubara,

BAB I PENDAHULUAN. yang cepat sangat berpengaruh terhadap gaya hidup manusia. Pertukaran

BAB I PENDAHULUAN I-1

PENDETEKSIAN PLAGIASI DENGAN SISTEM PENGUKURAN SIMILARITAS PADA DOKUMEN KARYA ILMIAH MENGGUNAKAN STRING MATCHING ALGORITMA RABIN-KARP

Pemodelan Penilaian Essay Otomatis Secara Realtime Menggunakan Kombinasi Text Stemming Dan Cosine Similarity

APLIKASI PENDETEKSI PLAGIARISME TUGAS DAN MAKALAH PADA SEKOLAH MENGGUNAKAN ALGORITMA RABIN KARP

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB II LANDASAN TEORI

BAB III METODOLOGI PENELITIAN

BAB II LANDASAN TEORI. pembelian dilakukan dengan mengubah bentuk barang. 2003). Menurut Soemarso S.R (1994) kegiatan pembelian dalam perusahaan

DETEKSI PLAGIARISME DENGAN ALGORITMA RABIN KARP DAN ALGORITMA KLASTERISASI SUFFIX TREE PADA TEKS DOKUMEN TUGAS AKHIR

BAB I PENDAHULUAN 1.1. Latar belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Pemanfaatan teknologi pada era globalisasi telah menjadi satu hal yang

Algoritme Pencocokan String (String Matching) Menurut Black (2016), string adalah susunan dari karakter-karakter (angka, alfabet, atau karakte

IMPLEMENTASI ALGORITMA RABIN-KARP MENGGUNAKAN STEMMING NAZIEF DAN ADRIANI UNTUK MENDETEKSI TINGKAT KEMIRIPAN FILE TEKS YANG BERBENTUK SKRIPSI SKRIPSI

PENGEMBANGAN APLIKASI PENDETEKSI PLAGIARISME PADA DOKUMEN TEKS MENGGUNAKAN ALGORITMA RABIN-KARP. Oleh

ANALISIS K-GRAM, BASIS DAN MODULO RABIN-KARP SEBAGAI PENENTU AKURASI PERSENTASE KEMIRIPAN DOKUMEN

BAB I PENDAHULUAN. hal proses pengolahan data, baik itu data siswa, guru, administrasi sekolah maupun data

BAB IV ANALISA DAN PERANCANGAN

IMPLEMENTASI ALGORITMA RABIN-KARP UNTUK SISTEM PENDETEKSI KESAMAAN DOKUMEN PROPOSAL TUGAS AKHIR SKRIPSI

PERANCANGAN APLIKASI PENCARIAN ISI FILE YANG SAMA PADA HARDISK DRIVE DENGAN ALGORITMA STRING MATCHING

BAB 3 LANDASAN TEORI

ANALISIS PENGUKURAN SELF PLAGIARISM MENGGUNAKAN ALGORITMA RABIN-KARP DAN JARO-WINKLER DISTANCE DENGAN STEMMING TALA

Analisis Perbandingan Performansi Algoritma Zhu-Takaoka dan Algoritma Karp-Rabin Pada Pencarian Kata Di Rumah Baca Buku Sunda

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Review of Process Model. SE 3773 Manajemen Proyek Teknologi Informasi *Imelda Atastina*

BAB II LANDASAN TEORI. beberapa ahli, definisi sistem adalah sebagai berikut.

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB III METODOLOGI PENELITIAN

IMPLEMENTASI ALGORITMA RABIN-KARP UNTUK MENDETEKSI DUGAAN PLAGIARISME BERDASARKAN TINGKAT KEMIRIPAN KATA PADA DOKUMEN TEKS

BAB 1 PENDAHULUAN. 1.1.Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PERBANDINGAN PENGUNAAN STEMMING PADA DETEKSI KEMIRIPAN DOKUMEN MENGGUNAKAN METODE RABIN KARP DAN JACCARD SIMILARITY

ESSAY GRADING DENGAN KONSEP SIMILARITY RABIN KARP

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB III METODOLOGI PENELITIAN

BAB II TINJAUAN PUSTAKA

SISTEM REKOMENDASI DOSEN PEMBIMBING TUGAS AKHIR BERBASIS TEXT MINING MENGGUNAKAN VECTOR SPACE MODEL

BAB II LANDASAN TEORI. tenaga kerja pada perusahaan, fokus yang dipelajari MSDM ini hanya masalah yang. berhubungan dengan tenaga kerja manusia saja.

BAB IV HASIL DAN UJI COBA

1 BAB 1 PENDAHULUAN. 1.1 Latar Belakang

SATUAN ACARA PERKULIAHAN(SAP)

Dibuat Oleh : 1. Andrey ( )

SOFTWARE PROCESS MODEL

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Implementasi Algoritma Rabin-Karp untuk Membantu Pendeteksian Plagiat pada Karya Ilmiah

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Rancang Bangun Aplikasi Deteksi Kemiripan Dokumen Teks Menggunakan Algoritma Ratcliff/Obershelp

DETEKSI PLAGIAT DOKUMEN MENGGUNAKAN ALGORITMA RABIN-KARP

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB III METODOLOGI PENELITIAN


BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II LANDASDAN TEORI

BAB I PENDAHULUAN I-1

Jurnal Coding, Sistem Komputer Untan Volume 04, No.1 (2016), hal ISSN : x

BAB III METODOLOGI PENELITIAN

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

SOFTWARE TESTING. Ratna Wardani

BAB I PENDAHULUAN. Untuk mengukur keberhasilan suatu proses pembelajaran dibutuhkan

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN I-1

Penerapan Algoritma Jaro-Winkler Distance untuk Sistem Pendeteksi Plagiarisme pada Dokumen Teks Berbahasa Indonesia

ABSTRAK. Kata kunci: algoritma Smith-Waterman, algoritma Nazief-Adriani, cosine similarity, data mining, dokumen tugas akhir, nilai kemiripan

BAB I PENDAHULUAN. dengan mudah diduplikasi (Schleimer, Wilkerson, & Aiken, 2003). Dengan

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. banyak dimanfatkan perusahaan untuk mencapai tujuannya. Banyak sekali perusahaan

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

SISTEM DETEKSI KEMIRIPAN JUDUL SKRIPSI PRODI TEKNIK INFORMATIKA MENGGUNAKAN ALGORITMA RABIN-KARP

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Transkripsi:

BAB II TINJAUAN PUSTAKA 2.1 Algoritma Rabin-Karp Algoritma Rabin-Karp adalah suatu algoritma pencarian string yang diciptakan Michael O. Rabin dan Richard M. Karp pada tahun 1987 yang menggunakan fungsi hashing untuk menemukan pola berupa substring di dalam sebuah teks. Algoritma ini jarang digunakan untuk melakukan pencarian kata tunggal, namun sangat efektif apabila digunakan untuk pencarian lebih dari satu kata (Atmopawiro, 2006). Dalam implementasinya Algoritma Rabin Karp memiliki tahapan tahapan dalam yang harus dilalui seperti yang digambarkan pada flowchart pada Gambar 2.1 berikut. MULAI Teks : string Pattern : string i=0 Membentuk K-Gram Substring teks : array Pattern Menghitung Nilai Hash Hash teks : array Hash pattern : string i=hash teks. length Hash teks[i] = Hash pattern Substring teks[i] = Substring pattern Hitung similarity pattern dan teks Nilai String Sama Bertambah SELESAI Gambar 2.1 Flowchart Algoritma Rabin-Karp 9

10 Dalam algoritma Rabin-Karp, ada beberapa tahap yang harus dilalui dalam implementasi algoritma tersebut. 1) Preprocessing Tahap ini adalah tahap dimana dilakukan pemrosesan awal untuk mempersiapkan teks agar dapat digunakan dalam proses selanjutnya. Teks akan diubah ke dalam bentuk k-grams, dimana dalam hal ini teks akan dipotong potong dengan panjang K dari sebuah teks yang secara kontinuitas dibaca dari awal dokumen hingga akhir dari dokumen. 2) Rolling Hash Fungsi yang digunakan untuk menghasilkan nilai hash dari rangkaian gram dalam Algoritma Rabin-Karp adalah dengan menggunakan fungsi rolling hash. Fungsi hash H (C1 C k ) didefinisikan sebagai berikut, c 1 b (k 1) + c 2 b (k 2) + + c (k 1) b k + c k..(2.1) Keterangan : c : nilai ASCII karakter b : basis (bilangan prima) k : banyak karakter Metode hashing digunakan untuk mempercepat pencarian atau pencocokan suatu string. Apabila tidak di-hash, pencarian akan dilakukan karakter per karakter. Namun pencarian akan menjadi lebih mangkus setelah di-hash karena hanya akan membandingkan empat digit angka untuk mengetahui kesamaan suatu substring. Berikut ini merupakan contoh penghitungan rolling hash dengan k-grams = 6 dan basis = 101: Diketahui Teks : abracadabra ASCII : a = 97, b = 98, r = 114 Maka hash( abr ) = ( 97 x 101 2 ) + ( 98 x 101 1 ) + ( 114 x 101 0 ) = 999.509 Untuk menghitung nilai hash dari substring selanjutnya, dapat dilakukan dengan mengurangi hash dengan nilai dari karakter yang hilang kemudian

11 mengalikannya dengan basis dan menambahkannya dengan nilai karakter yang ditambahkan. hash( bra ) = [101 x ( 999.509 (97 x 101 2 ))] + ( 97 x 101 0 ) = 1.011.309 3) Pencocokan Proses pencocokan dalam Algoritma Rabin-Karp dilakukan dengan menggunakan sebuah teorema yaitu: Sebuah stringa identik dengan stringb, jika (syarat perlu) stringa memliki hash key yang sama dengan hash key yang dimiliki oleh stringb 4) Pengukuran Nilai Kemiripan Mengukur similarity (kemiripan) dan jarak antara dua entitas informasi adalah syarat inti pada semua kasus penemuan informasi, seperti pada Information Retrieval dan Data Mining yang kemudian dikembangkan dalam bentuk perangkat lunak, salah satunya adalah sistem deteksi kesamaan (Salmusih, 2013). Penggunaan ukuran similarity yang tepat tidak hanya meningkatkan kualitas pilihan informasi tetapi juga membantu mengurangi waktu dan biaya proses sehingga memperangkat lunakkan Dice's Similarity Coefficient dalam penghitungan nilai similarity yang menggunakan pendekatan k-gram. S = K C (A+B)..(2.2) Dimana S adalah nilai similarity, A dan B adalah jumlah dari kumpulan k- grams dalam teks 1 dan teks 2. C adalah jumlah dari k-grams yang sama dari teks yang dibandingkan. Berikut adalah contoh dari penggunaan rumus tersebut. Terdapat dua buah dokumen teks (dok A dan dok B) dengan nilai k-gram masingmasing dokumen secara bertutur-turut adalah 2608 dan 3040, sedangkan nilai k- gram yang sama adalah sebesar 1203. Maka hasil nilai dari kemiripan kedua dokumen tersebut adalah : S = K C (A + B) = 2 1203 (2608 + 3040) = 2406 = 0,4259 x 100% = 42,59% 5648

12 2.2 Peningkatan Performa Algoritma Rabin-Karp Pada Algoritma Rabin-Karp spurious hit merupakan beban tambahan bagi algoritma yang akan meningkatkan waktu proses. Hal ini dikarenakan algoritma harus membandingkan pola terhadap teks yang hasil modulonya sama tetapi nilai hashnya berbeda. Untuk menghindari pencocokan yang tidak perlu, Chillar dan Kochar (2008) memberikan solusi untuk tidak hanya membandingkan sisa hasil bagi, tetapi membandingkan hasil baginya juga. Jadi, successful hit harus memenuhi dua syarat, yaitu nilai sisa hasil bagi dan nilai hasil baginya harus sama. Selebihnya adalah unsuccessful hit tanpa perlu melakukan pencocokan lagi. Hal ini berarti tidak ada pemborosan waktu untuk mengecek spurious hit. Berikut merupakan flowchart dari Algoritma Rabin-Karp yang telah dimodifikasi: MULAI Teks : string Pattern : string i=0 Membentuk K-Gram Substring teks : array Pattern Menghitung Nilai Hash Hash teks : array Hash mod pattern: string Hash div pattern : string i=hash teks. length Hash teks[mod][i] = Hash mod pattern && Hash teks[div][i] = Hash div pattern SELESAI Hitung similarity pattern dan teks Nilai String Sama Bertambah Gambar 2.2 Flowchart Algoritma Rabin-Karp varian Chillar - Kochar

13 2.3 Text Preprocessing Melihat dari kemungkinan berbagai macam bentuk struktur data teks yang akan diproses, maka sebelum dilakukannya penghitungan kesamaan teks perlu dilakukan beberapa tahap awal yang bertujuan untuk agar teks dapat diubah menjadi lebih terstruktur dan menghilangkan noise pada dokumen. Proses preprocessing tersebut meliputi case folding, tokenizing, filtering, dan stemming. Gambar 2.3 berikut merupakan gambaran dari tahapan tahapan text preprocessing Gambar 2.3 Tahapan Text Preprocessing 2.3.1 Case Folding Case folding merupakan proses pertama dari rangkaian preprocessing dokumen. Dalam proses ini akan dilakukan perubahan pada kata kata dalam dokumen menjadi huruf kecil (a sampai z). Gambar 2.4 menunjukan flowchart dari proses case folding.

14 MULAI Teks : array of char i=0 Teks[i] = lower case( Teks[i] ) i=teks.length SELESAI Gambar 2.4 Flowchart Case Folding Berikut ini merupakan contoh dari proses case folding : [1] Input : Rabin Karp adalah algoritma pencarian kata yang mencari sebuah pola dalam sebuah teks. [2] Output : rabin karp adalah algoritma pencarian kata yang mencari sebuah pola dalam sebuah teks. 2.3.2 Tokenizing Tokenizing merupakan tahapan dimana dilakukannya pemotongan terhadap string input berdasarkan atas delimiter yang telah ditentukan. Karakter selain huruf akan dianggap sebagai delimiter dan akan dihilangkan atau dihapus untuk proses mendapat kata kata penyusun teks. Dari proses ini akan dihasilkan kata kata penyusun string / teks atau yang sering disebut token/term.

15 MULAI Teks : array of char Delimiter : array of char string Kata : array of string i=0, j=0 Count = 0 Teks[i] = Delimiter[j] j=0 Kata[i] = Substring Substring = j++ Substring = Substring + Teks[i] i=teks.length Kata SELESAI Gambar 2.5 Flowchart Tokenizing Berikut ini merupakan contoh dari proses tokenizing : [1] Input : rabin karp adalah algoritma pencarian kata yang mencari sebuah pola dalam sebuah teks. [2] Output : {rabin} {karp} {adalah} {algoritma} {pencarian} {kata} {yang} {mencari} {sebuah} {pola} {dalam} {sebuah} {teks} 2.3.3 Filtering Filtering merupakan tahap pengambilan kata kata penting dari hasil tokenizing string. Filtering dilakukan dengan membuang kata kata yang telah terdaftar ke dalam stopword/stoplist. Stopword adalah kata-kata yang sering muncul dalam teks dalam jumlah besar dan dianggap tidak memiliki makna penting.

16 MULAI Kata : array of string Stop word : array of string i : 0 j : 0 Kata[i] = Stop word [j] Hapus Kata[i] j++ i++ j=0 i = Kata.length Kata SELESAI Gambar 2.6 Flowchart Filtering Berikut ini merupakan contoh dari proses filtering : [1] Input : {rabin} {karp} {adalah} {algoritma} {pencarian} {kata} {yang} {mencari} {sebuah} {pola} {dalam} {sebuah} {teks} [2] Output : {rabin} {karp} {algoritma} {pencarian} {kata} {mencari} {pola} {teks} 2.3.4 Stemming Stemming merupakan proses yang dilakukan untuk mendapatkan kata dasar dari suatu kata. Stemming Nazief Adriani merupakan suatu algoritma stemming yang dibuat oleh Bobby Nazief dan Mirna Adriani.

17 MULAI Kata : String Apakah kata terdapat di kamus kata dasar Hapus Inflection Suffixes Apakah kata terdapat di kamus kata dasar Hapus Derivation Suffixes Apakah kata terdapat di kamus kata dasar Hapus Derivation Prefix SELESAI Gambar 2. 7 Flowchart Stemming Nazief Adriani Pencarian kata dasar dilakukan dengan menghilangkan semua imbuhan dari kata, baik itu awalan (prefiks), sisipan (infiks), maupun akhiran (suffiks). Berikut ini merupakan contoh dari proses stemming : [1] Input : {rabin} {karp} {algoritma} {pencarian} {kata} {mencari} {pola} {teks} [2] Output : {rabin} {karp} {algoritma} {cari} {kata} {cari} {pola} {teks} 2.4 Metode Pengembangan Waterfall Model proses mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat dalam

18 rekayasa perangkat lunak. Model proses Waterfall merupakan suatu model proses klasik yang bersifat sistematis, berurutan dari satu tahap ke tahap lain dalam membangun perangkat lunak (Sommerville, 2011). Model proses Waterfall memiliki tahapan - tahapan dalam prosesnya, setiap tahapan tersebut harus diselesaikan sebelum berlanjut ke tahap berikutnya. Berikut tahapan yang ada dalam Waterfall adalah (Sommerville, 2011): Gambar 2.8 Model proses waterfall Berikut merupakan tahapan-tahapan dalam model proses Waterfall: 1) Analisis kebutuhan dan definisi (requirements analysis and definition) Layanan sistem, kendala, dan tujuan yang ditetapkan dengan berkonsultasi dengan pengguna sistem. Kemudian didefinisikan secara rinci dan dijadikan sebagai spesifikasi sistem. 2) Design sistem dan perangkat lunak (system and software design) Software desain meliputi mengidentifikasi dan menggambarkan abstraksi sistem perangkat lunak yang mendasar dan hubungan mereka. 3) Implementasi dan pengujian unit (implementation and unit testing) Selama tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Unit pengujian melibatkan verifikasi bahwa setiap unit memenuhi spesifikasinya. 4) Integrasi dan pengujian sistem (integration and system testing) Tahapan dimana unit program individu atau program yang terintegrasi diuji sebagai sistem yang lengkap untuk memastikan bahwa persyaratan

19 perangkat lunak telah dipenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada pengguna. 5) Pengoprasian dan maintenance (operation and maintenance) Biasanya tahap ini merupakan tahapan dengan masa waktu paling lama. Pemeliharaan meliputi kesalahan mengoreksi yang tidak ditemukan pada awal tahap siklus hidup, meningkatkan implementasi unit sistem dan meningkatkan pelayanan sistem sebagai kebutuhan baru ditemukan. Model ini memiliki keunggulan dalam kemudahan pengaplikasiannya, selain itu kelebihan lain yang dimiliki oleh model proses Waterfall adalah ketika seluruh kebutuhan sistem dapat didefinisikan secara lengkap, eksplisit, dan benar di awal proyek, maka fase - fase dalam pembangunan sistem akan dapat berjalan dengan baik. Sedangkan kekurangan utama dari model proses Waterfall ini adalah kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus lengkap dan telah selesai sebelum dapat lanjut mengerjakan fase berikutnya. 2.5 Pengujian Sistem Terdapat 4 jenis pengujian yang dapat dilakukan pada suatu perangkat lunak, yaitu static testing, blackbox testing, whitebox testing, performance testing (Everett, 2007). 2.5.1 Static Testing Sekitar 85% kecacatan perangkat lunak bisa dilihat pada fase design dari pengembangan (Software Testing, Testing Across the Entire Software Development Life Cycle), sehingga diperlukan sebuah pengujian pada fase design tersebut untuk mengurangi cacat yang ada. Pengujian dilakukan dengan cara menguji dokumen dokumen pendukung sistem, hal ini dilaksanakan dikarenakan proses dokumentasi telah dimulai dan dibuat dari saat pengembangan dimulai, berlanjut, bahkan berakhir. Pengujian dokumentasi dapat dilakukan dengan beberapa cara, diantaranya adalah dilakukan dengan inspeksi, presentasi, walktrough, dan pengecekkan. Teknik teknik tersebut akan menguji kebenaran dan kelengkapan dari suatu dokumen. Dan apabila

20 ditemukkan kekurangan atau kecacatan pada dokumen, maka dokumen tersebut harus segera dikoreksi atau dibenahi. 2.5.2 Blackbox Testing Blackbox Testing merupakan test yang dapat dilakukan walaupun tester tidak memiliki source code dari software yang diuji, dan hanya yang software yang bisa dijalankan. Testing blackbox dilakukan dengan menjalankan aplikasi dan melakukan apa yang bisa dikerjakan oleh aplikasi, apa yang dilakukan dan bagaimana hasil yang diberikan aplikasi adalah hal yang diteliti. Hal penting yang harus dilakukan pada testing ini adalah, apakah tester mengetahui hasil (benar) apa yang diharapkan dan apakah tester melakukan test dengan benar. Dari kedua hal tersebut maka bisa dilihat apabila terjadi kesalahan, apakah kesalah tersebut dikarenakan kesalahan aplikasi atau kesalahan implementasi. 2.5.3 Whitebox Testing Whitebox testing merupakan sebuah pengujian yang dapat dilakukan saat user atau tester memiliki source code dari software yang akan dilakukan test. Testing whitebox dapat dilakukan oleh developer dengan cara mengetest tiap line dalam code satu-persatu. Namun Hal ini akan memakan banyak waktu untuk mengetest masing-masing line, terutama jika line mencapai ribuan hingga puluhan ribu, sehingga developer terkadang harus membuat rencana testing yang mengetest kebanyakan source code secara metodis. Testing seperti inipun lebih condong ke pengujian logika karena dominannya analisis jalur logika bagaimana input yang dimasukkan di proses oleh perangkat lunak menjadi hasil-hasil yang akan diproses hingga menjadi hasil yang diinginkan. Salah satu metode yang digunakan dalam White Box Testing adalah pengujian basis path testing atau disebut dengan Cylomatic Complexity. Dalam pelaksanaan White Box Testing, berikut langkah yang dilakukan (Pressman, 2010): a. Menggambar flowgraph yang ditransfer oleh flowchart. b. Menghitung Cylomatic Complexity V (G) untuk flowgraph yang telah dibuat. V(G) untuk flowgraph dapat dihitung dengan rumus:

21 V(G) = E N + 2 Keterangan: E = Jumlah edge pada flowrgaph N = Jumlah node pada flowrgaph c. Menentukan jalur pengujian dari flowgraph yang berjumlah sesuai dengan Cyclomatic Complexity yang telah ditentukan. Cyclomatic complexity yang tinggi menunjukkan prosedur kompleks yang sulit untuk dipahami, diuji dan dipelihara. Ada hubungan antara cyclomatic complexity dan resiko dalam suatu prosedur. Berikut hubungan antara cyclomatic complexity dan resiko dalam suatu prosedur. Tabel 2.1 Hubungan Cyclomatic Complexity dan resiko Cyclomatic Complexity Evaluasi Resiko 1-10 Sebuah program sederhana, tanpa banyak resiko 11-20 Agak kompleks, resiko sedang 21-50 Kompleks, program resiko tinggi Lebih dari 50 Program belum diuji (resiko sangat tinggi) 2.6 Tinjauan Studi Ada beberapa penelitian terkait yang pernah dilakukan mengenai sistem penilaian jawaban esai otomatis dan Algoritma Rabin-Karp, antara lain yaitu: 1) Automatic Essay Grading System Menggunakan Metode Latent Semantic Analysis (Bayu P, Baizal, dan Firdaus, 2011) Penelitian ini memiliki tujuan untuk membangun serta menganalisis kelayakan Automatic Essay Grading dengan mengimplementasikan Latent Semantic Analysis (LSA). Pada jurnal penilitian ini peniliti juga melakukan analisis mengenai seberapa besar pengaruh stemming pada proses essay grading bahasa Indonesia pada penerapan Latent Semantic Analysis. Pada penilitian ini peniliti menggunakan LSA dikarenakan LSA telah digunakan pada IEA dan memiliki kecocokan dengan human rater serta dianggap reliable dalam memberikan skor yang sama dengan human rater. Dalam penelitian ini peniliti menyatakan bahwa tingkat akurasi rata rata dari penilaian yang oleh sistem tidak tinggi, akurasi

22 berada di kisaran 45,03% dan 50,55%. Hal ini dikarenakan beberapa hal, seperti perbedaan panjang jawaban dengan kunci jawaban, persebaran term pada kalimat jawaban serta ketidakmampuan sistem untuk mendeteksi adanya maksud jawaban yang sama maupun sinonim. Selain itu dinyatakan pula bahwa proses stemming mampu menambah keakuratan dalam penilaian dengan rata rata nilai perbedaan 0,49% dan 0,63%. 2) A Comparison of Rabin Karp and Semantic-Based Plagiarism Detection (Supriyanto, Rakasiwi, & Syukur, 2012) Pada penilitian ini dilakukan perbandingan dua buah algoritma yaitu Rabin- Karp dan LSA. Penelitian ini bertujuan untuk membandingkan performa kedua algoritma tersebut dalam mendeteksi plagiarisme pada dokumen. Di dalam penilitian ini dihasilkan suatu kesimpulan bahwa performa Algoritma Rabin-Karp dalam pendeteksian plagiarisme melebihi performa dari Algoritma LSA. 3) Deteksi Plagiat Dokumen menggunakan Algoritma Rabin Karp (Firdaus, 2008) Pada penelitian ini peneliti membahas secara skematis bagaimana Algoritma Rabin-Karp bekerja dalam mendeteksi kesamaan pada suatu dokumen. Algoritma Rabin-Karp digunakan dalam mendeteksi kesamaan sebab memungkinkan untuk mencari pola tulisan yang didapat dari substring-substring pada sebuah teks dalam dokumen, dimana algoritma pencarian string tunggal sangat tidak efisien dan praktis. Untuk peningkatan akurasi pencarian pola dokumen kesamaan, dapat dikembangkan varian dari Algoritma Rabin-Karp untuk menyesuaikan dengan jenis dokumen. Salah satu contohnya menyesuaikan filtering dengan menambah atau mengubah kata-kata apa saja yang dapat diabaikan dan yang tidak. Selain itu dapat pula melakukan teknik pengelompokkan nilai hash. Dalam penelitian ini dihasilkan suatu kesimpulan bahwa Algoritma Rabin- Karp menghasilkan efisiensi waktu yang baik dalam mendeteksi string yang memiliki lebih dari satu pola.