Rolt 2007 mengemukakan pendapat bahwa manajemen kearsipan elektronik adalah pengelolaan berbagai jenis dokumen dalam organisasi yang menggunakan
program komputer dan penyimpanan.Sebuah sistem kearsipan elektronik
memungkinkan suatu organisasi dan pengguna untuk membuat dokumen, memindai hard copy dalam bentuk elektronik dan menyimpan, mengedit, mencetak, proses, dan
juga mengelola dokumen.
2.5 Eliminasi Stopwords
Eliminasi stopwords merupakan penghilangan kata-kata yang frekuensinya terlalu banyak terdapat dalam dokumen.Biasanya kata-kata ini tidak memiliki arti yang lebih
di dalam memenuhi kebutuhan seorang pencari di dalam mencari informasi.Eliminasi stopwords bermanfaat dengan adanya pengurangan ukuran strukur indeks Karena
pengurangan ukuran indeks, beberapa kata kerja, kata sifat, dan kata keterangan lainnya dapat juga dapat dimasukkan juga ke dalam daftar stopword.
Berikut ini adalah contoh stopwords dalam bahasa Indonesia : yang, juga, dari, dia, kami, kamu, aku, saya, ini, itu, atau, dan, tersebut, pada, dengan, adalah, yaitu, ke,
tak, tidak, di, pada, jika, maka, ada, pun, lain, saja, hanya, namun, seperti, kemudian.
2.6 Algoritma Turbo Boyer-Moore
Algoritma Turbo Boyer-Moore adalah pengembangan dari algoritma Boyer- Moore.Algoritma Boyer-Moore adalah algoritma pencarian string yang dipublikasikan
pertama kali oleh Robert S. Boyer, dan J. Strother Moore pada tahun 1977. Menurut Christian Thierry Charras dalam bukunya Handbook of Exact String
Matching Algorithm mengatakan algoritma Boyer-Moore adalah algoritma yang paling efisien pada aplikasi umum.Algoritma Boyer-Moore bekerja dengan memulai
pencocokan pattern dari kanan bukan dari kiri. Dengan memulai pencocokan karakter dari kanan, maka akan lebih banyak informasi yang didapat.
Algoritma Turbo Boyer-Moore tidak jauh berbeda dengan algoritma pendahulunya yaitu Algoritma Boyer-Moore yang melakukan pencocokan dimulai
dari karakter yang paling kanan hingga karakter paling kiri pattern. Jika terjadi ketidakcocokan antara karakter paling kanan pattern dengan karakter pada text yang
dicocokkan maka, karakter pada pattern akan diperiksa satu persatu untuk mendeteksi
apakah ada karakter pada teks tersebut yang sama dengan karakter pada pattern. Apabila terjadi kecocokan, maka pattern akan digeser sedemikian rupa sehingga posisi
karakter yang sama antara pattern dan text terletak sejajar menggunakan dua fungsi penggeseranyaitu penggeseran good-suffix dan penggeseran bad-character.
Algoritma ini tidak membutuhkan proses tambahan, hanya membutuhkan ruang tambahan untuk menyimpan faktor dari teks yang cocok dengan akhiran dari
pattern selama attempt terakhir dan hanya jika penggeseran good-suffix dilakukan. Dengan demikian teknik ini memiliki dua keuntungan Charras, 2001, yaitu:
1. Teknik ini memungkinkan segmen yang diingat tadi dilewati tanpa perlu
diperiksa. 2.
Teknik ini mengizinkan sebuah penggeseran turbo Penggeseran bad-character dan good-suffix pada algoritma Turbo Boyer-
Mooresama dengan penggeseran yang dilakukan algoritma Boyer-Moore.Cara kerja algoritma Turbo Boyer-Moore adalah sebagai berikut:
1.
Inisialisasi, karena algoritma ini menggunakan penggeseran good-suffix dan penggeseran bad-characterdari algoritma Boyer-Moore maka untuk
inisialisasi dijalankan prosedur preBmBc dan preBmGs seperti algoritma Boyer-Moore.
2.
Melakukan proses pencocokan karakter pada pattern dengan karakter pada teks. Jika terjadi ketidakcocokan maka dilakukan penggeseran terbesar
berdasarkan tabel BmBc, tabel BmGs dan turbo shift. Sebuah penggeseran turbo pada algoritma Turbo Boyer-Moore dapat terjadi
bila pada attempt yang sedang dilakukan, akhiran dari pattern yang cocok dengan teks lebih pendek dari bagian dari teks yang diingat dari attempt sebelumnya.
Fase inisialisasi pada algoritma ini sama dengan fase inisialisasi pada algoritma Boyer-Moore, yaitu mempunyai kompleksitas waktu dan ruang sebesar On
+ σ dengan σ adalah besar ruang alfabet. Sedangkan pada fase pencocokan, algoritma ini mempunyai kompleksitas waktu sebesar Om, Jumlah pencocokan karakter pada
algoritma ini adalah 2m.
2.6.1 Penggeseran Bad-Character
Penggeseran bad-character yang terdiri dari mensejajarkan karakter y[i+j] dengan kemunculan paling kanan karakter tersebut di pattern, penggeseran ini diilustrasikan
oleh Gambar 2.2. Dan bila karakter tersebut tidak ada di pattern, maka pattern akan disejajarkan dengan y[i+n+1], seperti yang diilustrasikan oleh Gambar 2.3.
Penggeseran bad-character ini akan sering terjadi pada pencocokan string dengan ruang alfabet yang besar dan dengan pattern yang pendek yang sering terjadi di
praktik pada umumnya. Hal ini terjadi karena akan banyak karakter di teks yang tidak muncul di pattern. Namun, untuk file biner, ya
ng mempunyai alfabet Σ ={0, 1}, penggeseran ini kemungkinan besar tidak akan membantu sama sekali. Hal ini dapat
diatasi dengan membandingkan beberapa bit sekaligus Kumara,2009.
Gambar 2.2 Penggeseranbad-character, b muncul pada xCharras, 2001
Gambar 2.3 Penggeseranbad-character, tidak ada kemuncul b pada x Charras, 2001
Pada tabel bad-character, setiap karakter pada pattern diberi nilai sesuai dengan ukuran jauhnya karakter tersebut dari karakter paling kanan dari pattern dan
untuk karakter yang tidak terdapat pada pattern akan diberi nilai sejumlah karakter pada pattern.
Procedure preBmBc input y : array[0..n-1]of char,
input n : integer, inputoutput bmBc : array of integer
Deklarasi i:integer
Algoritma for i=0; iASIZE; ++i
bmBc[i] n
endfor for i=0; i n - 1; ++i
bmBc[y[i]] n – i – 1
endfor
Gambar 2.4Pseudocode Bad-CharacterCharras, 2001
2.6.2 Penggeseran Good-Suffix
Asumsikan bahwa ketidak cocokan terjadi antara karakter x[i] = a pada pattern dan karakter y[i+j] = b pada teks selama attempt pada posisi j, v adalah akhiran dari
pattern setelah b dan u adalah sebuah awalan dari pattern. Kemudian x[i+1 .. m-1] = y[i+j+1 .. j+m-1]= u dan x[i]
≠ y[i+j]. Penggeseran good-suffix terdiri atas mensejajarkan y[i+j+1 .. j+m-1] = x[i+1 .. m-1] dengan kemunculan paling kanan
potongan tersebut pada x yang didahului oleh karakter yang berbeda dari x[i], seperti terlihat pada gambar 2.2. Namun jika tidak ada potongan seperti itu, maka algoritma
akan mensejajarkan akhiran dari v dari y[i+j+1 .. j+m-1] dengan awalan u dari pattern yang sama, seperti yang terlihat pada gambar 2.5.
Gambar 2.5Penggeserangood-suffix, u muncul didahului oleh karakter cCharras, 2001
Gambar 2.6Penggeserangood-suffix, hanya akhiran dari u yang muncul pada y Charras, 2001
Pada tabel Penggeserangood-suffix, nilai Penggeseran digunakan ketika ketidakcocokan ditemukan berdasarkan karakter pada posisi keberapa yang
menyebabkan ketidakcocokan.Untuk menentukan nilai-nilai tersebut, lebih dahulu menghitung nilai tabel suffix yang bertujuan untuk memberi tanda adanya perulangan
akhiran. Dari tabel suffix inilah tabel good-suffixakan didapat. Pada tabel suffix berisi nilai dari tiap karakter yang ada pada pattern yang menunjukkan ada atau tidaknya
perulangan akhiran suffix dan dimana posisi perulangan tersebut sehingga ketika proses perhitungan tabel good-suffix dapat diketahui seberapa banyak penggeseran
yang akan dilakukan untuk pencocokan selanjutnya. Nilai dari setiap karakter yang ada pada pattern bergantung terhadap ada atau tidaknya perulangan akhiransuffix v
dari text pada pattern. Semakin banyak perulangan, maka akan semakin kecil nilai penggeseran.
Procedure suffixes input y: array[0..n-1] of char,
input n: integer, inputoutput suff: array of integer
Deklarasi f, g, i : integer
Algoritma suff[n-1]
n g
n-1 for i = n-2; i = 0; --i
ifi g and suff[i + n – 1 - f] i-gdo suff[i]
suff[i + n – 1 - f] else
ifigdo g
i endif
f = i whileg = 0 and y[g] == y[g + n – 1 - f]do
--g; endwhile
suff[i] f-g;
endif endfor
Gambar 2.7Pseudocode Good-SuffixCharras, 2001
procedure preBmGs input y: array of char,
input n:integer, inputoutput bmGs: array of integer
Deklarasi i, j : integer
suff : array [0..YSIZE] of integer Algoritma
suffixesy, n, suff for i=0; i n; ++i
bmGs [i] n
endfor for i= n-1; i = -1; --1
ifi == -1 or suff[i] == i+1 forj=0; j n-1-i; ++j
ifbmGs[j] == n bmGs[j]
n-1-i endif
endfor endif
endfor for i=0; i = n-2; ++i
bmGs[n-1-suff[i]] n-1-i
endfor
Gambar 2.7Pseudocode Good-Suffix lanjutan
2.6.3 Penggeseran Turbo
Penggeseranturbo dapat terjadi bila pada attempt yang sedang dilakukan, akhiran dari pattern yang cocok dengan teks lebih pendek dari bagian dari teks yang diingat dari
attempt sebelumnya hanya pada saat good-suffix terjadi. Pada kasus ini, anggap u adalah faktor yang diingat dari attempt sebelumnya, dan v adalah bagian dari pattern
yang cocok pada attempt yang sedang dilakukan, sehingga uzv adalah akhiran dari pattern.
Lalu anggap a adalah karakter di teks dan b adalah karakter dari pattern yang sedang dicocokan pada attempt tersebut. Maka av adalah akhiran dari pattern, dan
juga akhiran dari u karena |v||u|.Dua karakter a dan b muncul dengan jarak p di teks, dan akhiran dari uzv dari pattern mempunyai periode p=|zv|, karena u merupakan
pinggiran dari uv, sehingga tidak mungkin melewati duakemunculan karakter a dan b di teks. Penggeseran terkecil yang mungkin dilakukan adalah sebesar |u|-|v|, yang
disebut sebagai penggeseran turbo dan diilustrasikan oleh Gambar 2.8.
Gambar 2.8Penggeseranturbo dapat terjadi jika | v | |u |Charras, 2001
Gambar 2.9c ≠ d, maka tidak dapat disejajarkan pada karakter yang sama di
vCharras, 2001
Masih dalam kasus dimana |v||u|, dan panjang dari penggeseran bad- characterlebih besar dari penggeseran good-suffix maupun penggeseran turbo.Pada
kasus ini, seperti yang diilustrasikan pada Gambar 2.9, dua karakter c dan d pastilah berbeda karena disyaratkan bahwa jika u
≠0 maka penggeseran sebelumnya adalah penggeseran good-suffix. Sebagai akibatnya, jika penggeseran dengan panjang yang
lebih besar dari penggeseran turbo namun lebih kecil dari |u|+1 maka c dan dakan disejajarkan dengan karakter yang sama di teks. Oleh karena itu, dalam kasus ini
panjang penggeseran minimal adalah |u|+1.
procedure Turbo Boyer Moore input m,n : integer,
input y: array of[0..n-1] char, input x: array of[0..m-1] char,
input m:integer Deklarasi
i, j, u, v, shift, bmBcShift, bmGsShift, tuboShift : integer bmGs : array [0..n-1] of integer
bmBc : array [0..ASIZE] of integer
Gambar 2.10Pseudocode Turbo Boyer-MooreCharras, 2001
Algoritma preBmGsy, n, bmGs
preBmBcy, n, bmBc i:= u:=0
shift:=n while i= m-n do
j:= n-1 while j=0 n and T[i+j] = P[j] do
j:= j-1 ifnotu=0 and i=m-1-shift
j:=j-u endif
endwhile ifj0 then
ketemu[i]:=true shift:=bmGs[0]
u=n-shift else
v: =n-1-j turboShift:=u-v
bmBcShift :=bmBc[chartointT[i+j]] – n + j + 1 bmGsShift := BmGs[j]
shift:= maxbmBcShift, bmGsShift shift:= maxshift, turboShift
ifshift = bmGs[i] then
v1:=minm-shift, v else
ifturboShift bmBcShift shift:=maxshift, u+1
endif endif
endif i:= i+shift
endwhile
Gambar 2.10Pseudocode Turbo Boyer-Moore lanjutan 2.7
Algoritma Quick Sort
Algoritma quicksort diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1960, dan dimuat sebagai artikel di Computer Journal 5 pada April 1962.Sedgewick et al
2011 menyatakan bahwa terdapat dua bagian pada pendekatan rekursif, yaitu sort dan partisi. Partisi merupakan bagian yang melakukan tugas untuk mengelompokkan
data, sedangkan sort adalah bagian yang melakukan proses rekursif. Semakin besar jumlah data, maka kompleksitas ruang suatu algoritma rekursif akan semakin besar.
Chhajed et al 2013 Dalam penelitiannya menyimpulkan bahwa quicksort lebih baik dibandingan algoritma lain dalam membandingkan list acak angka dari 10000 sampai
30000. Metode pengurutan quicksort delakukan dengan cara membandingkan suatu
elemen pivot dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga
elemen-elemen lain yang lebih kecil daripada pivot tersebut terletak di sebelah kirinya dan yang lebih besar daripada pivot tersebut terletak di sebelah kanan. Sehingga
dengan demikian telah terbentuk dua sublist kiri dan sublist kanan dari pivot.
algorithm quicksortA, lo, hi if lo hi then
p := partitionA, lo, hi quicksortA, lo, p - 1
quicksortA, p + 1, hi
algorithm partitionA, lo, hi pivot := A[hi]
i := lo place for swapping for j := lo to hi - 1 do
if A[j] ≤ pivot then
swap A[i] with A[j] i := i + 1
swap A[i] with A[hi] return i
Gambar 2.11Pseudocode Algoritma Quicksort Bentley, 1999 2.8
Penelitian Terdahulu
Beberapa penelitian terdahulu tentang pengarsipan elektronik diantaranya adalah penelitian yang dilakukan oleh Sugiarto el al 2013 yang mengembangkan sistem
kearsipan elektronik berbasis clinet-server pada kantor yayasan perguruan tinggi Kristen satya wacana. Pada penelitiannya, Sugiarto el al 2013 membangun sistem
multi user dengan beberapa fitur utama yang pada dasarnya mengadopsi dari sistem kearsipan secara konvensional dan bisa diakses dari berbagai computer melalui
jaringan Local Area NetworkLAN. Penelitian yang dilakukan Sugiharto 2012, Untuk mencapai tujuan
penyelamatan dokumen atau arsip melalui digitalisasi harus tetap mengacu pada prinsip-prinsip preservasi dan mampu menyesuaikan dengan teknologi yang lebih
baru, diantaranya adalah kemampuan menjaga efisiensi dalam digitalisasi dan proses setelah terdigitalisai sehingga lebih hemat waktu dan biaya.
Andika 2011 dalam penelitiannya membangun sebuah sistem manajemen surat dan pengarsipan untuk memecahkan permasalahan surat studi kasus PT. Semen
Padang. Andika menggunakan framework Code Igniter CI dengan metode Object Oriented Analysis and Design sebagai metode pengembangan sistem.
Tabel 2.1 Penelitian Terdahulu tentang Sistem Pengarsipan No Judul
Nama Keterangan
1 Pengembangan Sistem
Kearsipan Elektronik Berbasis Cient-Server
Studi pada Kantor Yayasan Perguruan Tinggi
Kristen Satya Wacana Sugiarto el al
2013 Sugiarto el al membangun
sistemsistem multi user dengan beberapa fitur utama yang pada
dasarnya mengadopsi dari sistem kearsipan secara konvensional dan
bisa diakses dari berbagai computer melalui jaringan Local
Area NetworkLAN. 2
Penyelamatan Informasi DokumenArsip di Era
Teknologi Digital Sugiharto
2012 Untuk mencapai tujuan
penyelamatan dokumen atau arsip melalui digitalisasi harus tetap
mengacu pada prinsip-prinsip preservasi dan mampu
menyesuaikan dengan teknologi yang lebih baru
3 Penerapan CI Code
Igniter dalam Pengembangan Sistem
Informasi Manajemen Surat dan Pengarsipan
Andika 2011
Andika membangun aplikasi menggunakan framework Code
Igniter dengan metode Object Oriented Analysis and Design
sebagai metode pengembangan sistem.
Beberapa penelitian terdahulu tentang algoritma Turbo Boyer Moore diantaranya adalah Siahaan 2011,melakukan penelitian dengan membandingkan
algoritma Boyer-Moore dengan variannya yaitu Turbo Boyer-Moore dalam queryMySql. Hasil yang diperoleh dari penelitian ini adalah untuk perintah query
seperti LIKE, Algoritma Turbo Boyer-Moore dapat melakukan lebih perbandingan dalam penelusurannya. Perbedaan kecepatan penelusuran query kedua algoritma
tersebut tidak jauh berbeda, namun karena kompleksitas waktu untuk kasus terburuk
algoritma Boyer-Moore dapat dikurangi dengan menggunakan algoritma Turbo Boyer- Moore.
Lesmana 2010 menerapkan algoritma pencocokan string boyer moore dan turbo boyer moore untuk keamanan computer. Dalam penelitiannya, jika sebuah file
ingin dieksekusi, maka file tersebut tidak langsung diizinkan untuk dijalankan, namun akan dilakukan pengecekan terlebih dahulu. Kesimpulan yang diperoleh dalam
penelitian ini adalah Algoritma Turbo Boyer-Moorelebih baik dari algoritma Boyer- Moore untuk keamanan computer dalam hal performansi karena tidak memerlukan
permrosesan ekstra dan memungkinkan untuk mengingat potongan teks yang telah diperiksa sebelumnya.
Rizal 2015 dalam penelitiannya juga menggunakan algoritma Turbo Boyer- Moorepermainan tebak kata Bahasa aceh. Pencocokan string yang diterapkan pada
aplikasi permainan tebak kata Bahasa aceh ini menghasilkan pencocokan yang sesuai dengan harapan dengan waktu yang cepat.
Kumar et al 2011 menganalisis perbandingan algoritma exact stirng matching untuk mendeteksi virus signature. Virus signature adalah urutan unik dari
bit dalam kode virus yang dapat digunakan untuk mendeteksi keberadaan virus dalam sebuah file atau memori. Biasanya urutan tersebut dalam bentuk heksa.
Algoritma exact string matching dan Approximate Sting Matching digunakan untuk mendeteksi kecocokan virus signature tersebut dalam sebuah file. Kesimpulan dari
penelitian tersebut adalah, berdasarkan kompleksitas untuk payload text dan pola yang panjang, algoritma Boyer Moore dan variannya Turbo Boyer-Moore, BHM adalah
algoritma paling efisien.
Tabel 2.2 Penelitian Terdahulu tentang Algoritma Turbo Boyer-Moore No Judul
Nama Keterangan
1 Perbandingan Algoritma
Boyer-Moore dan Turbo BoyerMoore dalam
QueryMySQL Siahaan
2011 Untuk perintah query seperti
LIKE, Algoritma Turbo Boyer- Mooredapat melakukan lebih
perbandingan dalam penelusurannya. Perbedaan
kecepatan penelusuran query kedua algoritma tersebut tidak
Tabel 2.2 Penelitian Terdahulu tentang Algoritma Turbo Boyer-Moore lanjutan No Judul
Nama Keterangan
jauh berbeda, namun karena kompleksitas waktu untuk kasus
terburuk algoritma Boyer- Mooredapat dikurangi dengan
menggunakan algoritma Turbo Boyer-Moore .
2 Penerapan Algoritma
Pencocokan String Boyer-Moore untuk
Keamanan Komputer Lesmana
2010 Algoritma Turbo Boyer-
Moorelebih baik dari algoritma Boyer-Moore untuk keamanan
computer dalam hal performansi karena tidak memerlukan
permrosesan ekstra dan memungkinkan untuk mengingat
potongan teks yang telah diperiksa sebelumnya.
3 A Comparative Analysis
of Various Exact String- Matching Algorithms for
Virus SignatureDetection Kumar et al
2011 Berdasarkan kompleksitas untuk
payload text dan pola yang panjang, algoritma Boyer Moore
dan variannya Turbo Boyer- Moore, BHM adalah algoritma
paling efisien. 4
Permainan Tebak Kata Bahasa Aceh
Menggunakan Algoritma Turbo Booyer-Moore
Rizal 2015
Pencocokan string yang diterapkan pada aplikasi
permainan tebak kata Bahasa aceh ini menghasilkan pencocokan
yang sesuai dengan harapan dengan waktu yang cepat.
BAB 1 PENDAHULUAN