BAB II LANDASAN TEORI
2.1 Perpustakaan Perpustakaan berasal dari kata “pustaka”. Arti pustaka adalah buku (Library dari bahasa Yunani). Perpustakaan dapat pula diartikan sebagai tempat kumpulan buku atau tempat buku dihimpun dan diorganisasikan sebagai media belajar. Sedangkan Wafford mengartikan perpustakaan sebagai salah satu organisasi sumber belajar yang mengelola, menyimpan, dan memberikan layanan bahan pustaka baik buku maupun non buku kepada masyarakat tertentu maupun masyarakat umum. Lebih luas lagi pengertian perpustakaan adalah salah satu unit kerja yang berupa tempat untuk mengatur, mengelola, menyimpan, dan mengumpulkan koleksi bahan pustaka secara sistematis untuk digunakan oleh pemakai
sebagai
sumber informasi
sekaligus
sebagai
sarana belajar yang
menyenangkan. (Darmono, 2007) Perpustakaan adalah suatu tempat pengoleksi buku, skripsi, majalah dan lain sebagainya menurut tata susunan tertentu sesuai dengan jenisnya yang digunakan para pembaca atau pencari informasi, bukan untuk dijual. Koleksi buku-buku yang dimiliki biasanya berupa buku, kaset CD atau DVD, berkas, dan lainnya. Menurut Radom House, dalam bukunya Dictionary of The English Language, perpustakaan adalah suatu tempat , berupa sebuah ruangan atau gedung yang berisi buku dan bahan lain untuk bacaan, studi, ataupun rujukan. Menurut Ensiklopedia Britannica, perpustakaan adalah himpunan bahanbahan tertulis atau tercetak yang diatur dan diorganisir untuk tujuan studi dan penelitian atau pembacaan umum atau kedua-duanya. Menurut Reitz, perpustakaan adalah koleksi atau sekumpulan koleksi buku atau bahan lainnya yang diorganisasikan dan dipelihara untuk penggunaan atau 7
http://digilib.mercubuana.ac.id/
keperluan membaca, konsultasi, belajar, meneliti, yang dikelola oleh pustakawan dan staf terlatih lainnya dalam rangka menyediakan layanan untuk memenuhi kebutuhan pengguna. Menurut RUU Perpustakaan pada Bab I pasal 1 menyatakan Perpustakaan adalah institusi yang mengumpulkan pengetahuan tercetak dan terekam, mengelolanya dengan cara khusus guna memenuhi kebutuhan intelektualitas para penggunanya melalui beragam cara interaksi pengetahuan. Secara lebih konkrit perpustakaan dapat dirumuskan sebagai suatu unit kerja dari sebuah lembaga pendidikan yang berupa tempat penyimpanan koleksi buku-buku pustaka untuk menunjang proses pendidikan. Dari beberapa pengertian diatas,
dapat
disimpulkan
bahwa
perpustakaan
adalah
tempat
untuk
mengembangkan informasi dan pengetahuan yang dikelola oleh suatu lembaga pendidikan, sekaligus sebagai sarana edukatif untuk membantu memperlancar cakrawala pendidik dan peserta didik dalam kegiatan belajar mengajar. (Riadi, 2013) Perpustakaan berperan sebagai salah satu upaya untuk memelihara dan meningkatkan efisiensi serta efektifitas proses belajar-mengajar. Tujuan perpustakaan adalah untuk membantu masyarakat dalam segala umur dengan memberikan kesempatan dengan dorongan melelui jasa pelayanan perpustakaan agar mereka:
Dapat mendidik dirinya sendiri secara berkesimbungan
Dapat tanggap dalam kemajuan pada berbagai lapangan ilmu pengetahuan, kehidupan sosial dan politik
Dapat memelihara kemerdekaan berfikir yang konstruktif untuk menjadi anggota keluarga dan masyarakat yang lebih baik
Dapat mengembangkan kemampuan berfikir kreatif, membina rohani dan dapat menggunakan kemampuannya untuk dapat menghargai hasil seni dan budaya manusia
Dapat meningkatkan taraf kehidupan sehari-hari dan lapangan pekerjaannya
8
http://digilib.mercubuana.ac.id/
Dapat menjadi warga negara yang baik dan dapat berpartisipasi secara aktif dalam pembangunan nasional dan dalam membina saling pengertian antar bangsa
Dapat menggunakan waktu senggang dengan baik yang bermanfaat bagi kehidupan pribadi dan sosial.
Perpustakaan secara umum menyediakan empat model pelayanan, diantaranya :
Koleksi perpustakaan ada pada kampus cabang
Berpusat pada layanan pinjam antar perpustakaan , resource sharing , dan mahasiswa dapat menggunakan perpustakaan afiliasi
Pengiriman materi dari instruksi induk kepada para mahasiswa
Berhubungan dengan penggunaan teknologi untuk mengakses sumbersumber informasi elektronik
UPT Perpustakaan UMB merupakan salah satu unsur pendukung dalam melaksanakan Tri Dharma Perguruan Tinggi (Pendidikan, Penelitian dan Pengabdian Kepada Masyarakat). Sebagai jantungnya universitas perpustakaan berfungsi sebagai penyedian sumber informasi ilmu pengetahuan bagi para civitas akademika dalam proses pendidikan, penelitian, dan pengabdian pada masyarakat. Aktivitasnya tersebut pada muaranya akan menghasilkan inovasi rekayasa ilmu pengetahuan itu sendiri. (User, 2014) Perpustakaan di Universitas Mencubuana adalah salah satu tempat favorit yang sering dikunjungi oleh mahasiswa mercubuana dan pengunjung dari luar (bukan warga universitas mercubuana), dengan berbagai macam alasan, baik itu untuk sekedar menunggu waktu matakuliah berikutnya, mencari referensi Tugas Akhir, referensi Kerja Praktek, Thesis, tugas kuliah dari beberapa dosen tertentu, atau untuk mencari informasi lainnya. Perpustakaan Mercubuana hampir tidak pernah tutup kecuali hari-hari besar kalender, contohnya disaat liburan semester. Perpustakaan Universitas Mercu Buana (UMB) ini masih tetap dibuka, dikarenakan masih banyak mahasiswa atau pengunjung yang sering datang untuk beberapa alasan yang telah disebutkan sebelumnya. Perpustakaan UMB juga
9
http://digilib.mercubuana.ac.id/
sudah memiliki aplikasi dalam bentuk website dengan menyediakan beberapa macam jenis buku yang tersedia pada http://digilib.mercubuana.ac.id/.
Pada
website ini, hanya anggota yang dapat mengunggah berkas yang dicari (untuk internal). Aplikasi ini memiliki sistem pencarian yang masih menggunakan beberapa parameter inputan untuk mendapatkan berkas yang dicari dengan sistem pencocokan langsung pada database. Kendala yang sering dialami adalah beberapa pengunjung tidak dapat menemukan berkas yang benar-benar dia cari atau file not found. Hal tersebut sering terjadi apabila parameter yang menjadi kunci masukan user terlalu banyak dan jika salah satu parameter tidak sama persis dengan data yang ada di database, berkas tersebut tidak akan muncul. Misalkan , Diana sedang mencari jurnal mengenai judul “Pendeteksi plagiarisme dengan algoritma Rabin Karp” di tahun “2015”, sedangkan pada database judul tersebut tersedia di tahun “2014”, maka aplikasi tidak akan menampilkan data yang di cari. Dengan pendekatan tersebut, penulis memberikan solusi untuk memperbaiki sistem pencarian data berkas tersebut dengan menggunakan salah satu algoritma string matching . 2.2 String Matching String Matching atau pencocokan string merupakan bagian terpenting dari sebuah proses pencarian string dalam sebuah dokumen. Pencocokan string melakukan pencarian untuk semua kemunculan string pendek yang disebut pola (pattern) terhadap string yang lebih panjang atau disebut teks. Hasil dari pencarian string dalam dokumen tergantung pada teknik atau cara pencocokan string yang digunakan. Pencocokkan string merupakan permasalahan paling sederhana dari semua permasalahan string lainnya, dan dianggap sebagai bagian dari pemrosesan data, pengkompresian data, analisis leksikal, dan temu balik informasi. Teknik untuk
menyelesaikan
permasalahan
pencocokkan
string
biasanya
akan
menghasilkan implikasi langsung ke aplikasi string lainnya. (Aliem, 2015) Pada proses pencocokan string, digunakan sebuah window yang akan bergeser di teks. Window itu memiliki panjang yang sama dengan panjang pola. Pada awal proses pencocokan string, window diletakkan pada ujung kiri teks, lalu karakter-
10
http://digilib.mercubuana.ac.id/
karakter pada window dibandingkan dengan karakter-karakter pada pola, kemudian window akan digeser ke kanan di teks dengan jarak tertentu, dan pergeseran tersebut baru akan berhenti bila window tersebut sampai pada ujung kanan teks atau sampai pola yang ditemukan cocok. Pencocokan string memiliki beberapa algoritma yang sesuai untuk pencarian berkas, diantaranya adalah : 2.2.1 Brute Force Algoritma brute force merupakan algoritma pencocokan string yang ditulis tanpa memikirkan peningkatan performa. Algoritma ini sangat jarang dipakai dalam praktik, namun berguna dalam studi pembanding dan studi-studi lainnya.(Aliem, 2015) Cara kerja algoritma brute force adalah : Secara sistematis, langkah-langkah yang dilakukan algoritma brute force pada saat mencocokkan string adalah: 1. Algoritma brute force mulai mencocokkan pattern pada awal teks. 2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi: 1. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch). 2. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemuan di posisi ini. 3. Algoritma kemudian terus menggeser pattern sebesar satu ke kanan, dan mengulangi langkah ke-2 sampai pattern berada di ujung teks.
11
http://digilib.mercubuana.ac.id/
Berikut adalah Algoritma brute force yang sedang bekerja mencari string: Teks : n
o
b
o
d
y
n
o
t
i
c
e
d
h
i
m
o
d
y
n
o
t
i
c
e
d
h
i
m
d
y
n
o
t
i
c
e
d
h
i
m
y
n
o
t
i
c
e
d
h
i
m
n
o
t
i
c
e
d
h
i
m
n
o
t
i
c
e
d
h
i
m
Pattern : n
o
t
Proses 1 : n
o
b
n
o
t
1
2
3
Proses 2 : n
o
b
o
n
o
t
b
o
d
n
o
t
o
d
y
n
o
t
d
y
n
o
1 Proses 3 n
o
1 Proses 4 : n
o
b
1 Proses 5 n
o
b
o
t
1
12
http://digilib.mercubuana.ac.id/
Proses 6 n
o
b
o
d
y n
n
o
t
i
c
e
d
h
i
m
n
o
t
i
c
e
d
h
i
m
o
t
n
o
t
i
c
e
d
h
i
m
n
o
t
1
2
3
o
t
1 Proses 7 n
o
b
o
d
y n 1
Proses 8 n
o
b
o
d
y
Karakteristik : -
Mudah diimplementasikan
-
Tidak cerdas dan tidak efektif
Butuh jumlah langkah yang besar
Naive algorithm, kata “force” mengindikasikan “tenaga” ketimbang “otak”
-
Sering kali bukan pilihan yang disukai
-
Dapat ditemukan algoritma yang lebih cerdas dan efektif
Dengan mencari pola-pola yang mendasar, keteraturan, atau trik-trik khusus
-
Kadang brute force lebih tepat daripada algoritma lain , ditinjau dari implementasinya
-
Hampir semua permasalahan dapat diselesaikan dengan brute force
Malah, ada beberapa masalah yang hanya bisa diselesaikan dengan brute force
13
http://digilib.mercubuana.ac.id/
Kelebihan : -
Digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability)
-
Sederhana dan mudah dimengerti
-
Menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks
-
Menghasilkan algoritma baku (standart) untuk tugas-tugas komputasi seperti penjumlahan atau perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (list)
Kekurangan : -
Metode brute force jarang menghasilkan algoritma yang efektif
-
Beberapa algoritma brute force lambat sehingga tidak dapat diterima
-
Tidak sekontruktif atau sekreatif teknik pemecahan masalah lainnya
-
Ken Thompson (salah seorang penemu Unix) mengatakan: “When in doubt, use brute force” , faktanya kernel Unix yang asli lebih menyukai algoritma yang sederhana dan kuat (robust) daripada algoritma yang cerdas tapi rapuh
2.2.2 Boyer Moore Algoritma Boyer-Moore adalah salah satu algoritma pencarian string, dipublikasikan oleh Robert S.Boyer, dan J.Strother Moore pada tahun 1977. Algoritma ini dianggap lebih efisien pada aplikasi umum. Algoritma BoyerMoore mulai mencocokkan karakter dari sebelah kanan pattern. Kenapa dari kanan ? bahwa dengan memulai pencocokan karakter dari kanan dan bukan dari kiri, maka akan lebih banyak informasi yang didapat. Dengan mengunakan algoritma ini, secara rata-rata proses pencarian akan menjadi lebih cepat jika dibandingakan dengan algoritma lainnya. Secara sistematis, langkah-langkah yang dilakukan algoritma Boyer-Moore pada saat mencocokkan string adalah : 1.
Algoritma Boyer-Moore mulai mencocokkan pattern pada awal teks.
2.
Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi :
14
http://digilib.mercubuana.ac.id/
karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch)
semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan penemu di posisi ini.
3.
Algoritma kemudian bergeser pattern dengan memaksimalkan nilai pergeseran good-suffix dan penggeseran bad-character, lalu mengulangi langkah 2 sampai pattern berada diujung teks. Tabel untuk pergeseran bad-character dan good-suffix dapat dihitung
dengan kompleksitas waktu dan ruang sebesar O(n + ϭ) dengan ϭ adalah besar ruang alfabet. Sedangkan pada fase pencarian, algoritma ini membutuhkan waktu sebesar O(mn), pada kasus terburuk, algoritma ini akan melakukan 3n pencocokan karakter, namun pada performa terbaiknya algoritma ini hanya akan melakukkan O(m/n) pencocokkan. Contoh : Proses 1 : A
B
D
E
D
F
C
A
E
D
F
E
1 Pencocokan dimulai dari F dan ketika mencocokkan F dengan karakter pada kalimat ditemui ketidakcocokan, dan ditemui bahwa D berada di posisi ketiga pada kalimat, maka pola digeser sebanyak 1 langkah ke kanan (selisih dari posisi D yang ada di pola) Proses 2 : A
B
D
C
E
D
F
A
E
D
F
E
1 Ketika mencocokkan F, ternyata ditemui ialah C, dan C tidak ditemukan di pola, maka dilakukan sebesar panjang dari pola (sebesar 3 langkah)
15
http://digilib.mercubuana.ac.id/
Proses 3 A
B
D
C
A
E
D
E
D
F
F
E
1 Ditemukan lagi bahwa F tidak cocok dengan karakter yang satu posisi dengan F pada kalimat. Selain itu, posisi D pada kalimat selisih satu dengan posisi D pada pola, sehingga pola bergeser 1 langkah ke kanan. Proses 4 A
B
D
C
A
E
D
F
E
D
F
3
2
1
E
Pertama, mencoba mencocokkan F dengan karakter pada kalimat, karena sesuai, maka pencocokan dilanjutkan ke D, dan sekali lagi cocok, sehingga dilanjutkan ke karakter paling awal pada pola dan ditemukan bahwa cocok, sehingga akan dikembalikan bahwa pola tersebut ada di kalimat tersebut pada posisi ke 6. Algotitma yang termasuk pada pattern seperti ini umumnya dikatakan sebagai algoritma yang menghasilkan hasil terbaik pada prakteknya. Algoritma ini cocok untuk pencarian string yang memiliki kata kunci pencarian dalam bentuk kalimat dan lain sebagainya. Algoritma Boyer-Moore biasanya akan bekerja sangat bagus bila dipakai untuk pola yang relatif panjang, sedangkan untuk pola yang relatif pendek, kompleksitasnya mencapai O(n). 2.2.3 Knuth-Morris-Pratt (KMP) Algoritma Knuth-Morris-Pratt (KMP) dikembangkan oleh D.E. Knuth, bersama dengan J.H. Morris dan V.R.Pratt. Untuk pencarian string dengan menggunakan algoritma Brute Force, setiap kali ditemukan ketidakcocokan pattern dengan teks, maka pattern akan digeser satu karakter ke kanan, sedangkan pada algoritma KMP, kita memelihara informasi yang digunakan untuk 16
http://digilib.mercubuana.ac.id/
melakukan jumlah pergeseran. Ide dari algoritma ini adalah bagaimana dapat memanfaatkan karakter-karakter pola yang sudah diketahui ada di dalam teks sampai terjadinya ketidakcocokan untuk melakukan pergeseran.(Robiansyah, 2015) Algoritma Knuth-Morris-Pratt adalah algoritma pencarian string yang mencari dengan cara menghitung dari dimulai dari ketidakcocokan ditemukan, dari ketidakcocokan tersebut akan dihitung dari mana pencarian selanjutnya sebaiknya dimulai. Algoritma Knuth-Morris-Pratt menggunakan fungsi pembatas untuk menghitung urutan keberapa perbandingan harus dilakukan yang dihitung dengan menghitung panjang prefix yang terdapat pada sebuah pattern yang sama dengan suffix-nya. KMP dapat menghemat perbandingan pergeseran yang dilakukan, yang selanjutnya akan meningkatkan kecepatan pencarian. Secara sistematis, langkah-langkah yang dilakukan algoritma Knuth-MorrisPratt pada saat mencocokkan string : 1. Algoritma Knuth-Morris-Pratt mulai mencocokkan pattern pada awal teks 2. Dari kiri ke kanan, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi : -
Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch)
-
Semua
karakter
di
pattern
cocok.
Kemudian
algoritma
akan
memberitahukan penemuan diposisi ini. -
algoritma kemudian menggeser pattern berdasarkan tabel next, lalu mengulangi langkah 2 sampai pattern berada di ujung teks.
Contoh : Search :
Ozona
Data pada database :
17
http://digilib.mercubuana.ac.id/
Tabel 2.1 Data dari Database Author
Tittle
Ozonani Dira
Databases
Publisher Apress
Year
Category
2014
Book
2015
Book
2015
Book
System Kozofozonaozon Aplikasi berbasis Admika web menggunakan algoritma KMP Zonani Merdeka
Pengembangan
Admika
mobile menggunakan algoritma Boyer Moore Proses Pencarian : Dalam sistem pencarian data menggunakan algoritma Knuth-Morriss-Pratt ini terbagi menjadi 2 tahap, diantaranya : 1. Prefix function Berikut langkah-langkah penghitungannya : Begin Length <- |P| Prefix[1] <- 0 a <- 0 For b = 2 up to length step 1 do While a > 0 & P[a+1] =P[b] do a <- Prefix[a] if P[a+1] = P[b] then a <- a+1 Prefix[b] <- a Return Prefix End
18
http://digilib.mercubuana.ac.id/
P
O
Z
O
N
A
Prefix
0
0
1
0
0
0
1
0
0
2
3
4
5
A
0
B
2. String matching i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
T
K
O
Z
O
F
O
Z
O
N
A
O
Z
O
N
j
1
2
3
4
5
P
O
Z
O
N
A
PREFIX
0
0
1
0
0
N = 14 , m = 5 i = 1, j = 1, k =1 While n – k >= m do While j <= m & T[i] = P[j] do I=i+1 J=j+1 If j > m then output k If Prefix[j-1] > 0 then K <- i – Prefix[j-1] Else If i = k then i <- i + 1 K <- i If j > 1 then j <- Prefix[j-1] + 1
19
http://digilib.mercubuana.ac.id/
I
1
2
5
5
6
11
15
J
1
1
2
1
1
1
1
K
1
2
2
5
6
11
15
6
Jadi pattern “OZONA” terletak pada indeks ke 6.
Kelebihan dan kekurangan dari algoritma Knuth-Morris-Pratt ini adalah : Kelebihan dari algoritma Knuth-Morris-Pratt selain cepat juga sangat baik digunakan pada berkas berukuran besar karena pencarian kecocokan tidak perlu kembali ke belakang pada input teks karena algoritma ini dapat memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma ini menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya dalam satu karakter. Namun memilki kekurangan yakni efektifitas dari algoritma ini akan berkurang seiring dengan bertambahnya jumlah alphabet (jenis karakter) dari teks. 2.3 Studi Literatur Ulasan Teori Berdasarkan tiga sumber jurnal yang saya dapatkan dari internet, diantaranya berjudul “APLIKASI SEARCH ENGINE MENGGUNAKAN ALGORITMA KNUTH-MORRIS-PRATT”, “Penerapan Algoritma Knuth-Morris-Pratt pada Aplikasi Pencarian Berkas di Komputer” dan “IMPLEMENTASI ALGORITMA BRUTE FORCE DAN ALGORITMA KNUTH-MORRIS-PRATT (KMP) DALAM PENCARIAN WORD SUGGESTION”, saya mengambil kesimpulan sebagai berikut :
20
http://digilib.mercubuana.ac.id/
Tabel 2.2 Studi Literatur APLIKASI SEARCH Penerapan
IMPLEMENTASI
ENGINE
Algoritma
ALGORITMA
MENGGUNAKAN
Knuth-Morris-
FORCE
ALGORITMA
Pratt
ALGORITMA KNUTH-
KNUTH-MORRIS-
pada
PRATT (KMP)
Pencarian
BRUTE DAN
Aplikasi MORRIS-PRATT
Berkas
(KMP) di PENCARIAN
Komputer
DALAM WORD
SUGGESTION ABSTRAK
Compare Fokus pada pemecahan masalah dari ketiga jurnal yang saya ambil adalah dengan pemanfaatan penggunaan algoritma Knuth-Morris-Pratt sebagai sarana yang digunakan oleh user atau pengguna dalam melakukan pencarian data sehingga
lebih mudah, akurat dan dapat
memperhitungkan kecepatan waktu pencarian dan berapa presentase kemiripannya Contrast
Sistem pencarian berkas adanya
fitur adanya fitur pencarian data
data
data yang tersembunyi
bahkan berkas pencarian
yang ke supper hidden yang sekalipun
dengan tersembunyi
memangkas waktu dan mencari data.
keakuratan
Tidak
terdapat
presentase kemiripan.
21
http://digilib.mercubuana.ac.id/
Tabel 2.3 Studi Literatur (Lanjutan) APLIKASI
Penerapan
IMPLEMENTASI
SEARCH ENGINE Algoritma
ALGORITMA
MENGGUNAKAN
Knuth-
FORCE
ALGORITMA
Morris-Pratt
ALGORITMA
KNUTH-MORRIS-
pada
MORRIS-PRATT
PRATT (KMP)
Aplikasi
DALAM
Pencarian
WORD SUGGESTION
Berkas
BRUTE DAN KNUTH(KMP)
PENCARIAN
di ABSTRAK
Komputer Critisize
adanya
implementasi
autocomplete
atau
word
suggestion dalam penerapan algoritma pencarian
KMP berkas
aplikasi data
menjadi semakin cepat dalam memangkas waktu dan lebih akurat karena nama berkas yang
dimunculkan
inputan
sesuai
autocomplete
layaknya google search atau facebook Synthesize
Pemilihan algoritma yang sesuai dengan kebutuhan memang perlu dipelajari dan dimengerti. Algoritma yang sesuai akan lebih menghasilkan output yang tentunya lebih bagus dari algoritma yang lainnya. Misalkan untuk string matching pendeteksi plagiarisme, Rabin Karp lebih bagus dan akurat, sedangkan untuk sistem pancarian KMP dan boyer-moore lebih cocok. KMP untuk pattern string yang pendek, sedangkan untuk boyer-moore pattern kata yang lebih panjang akan memangkas waktu lebih cepat.
22
http://digilib.mercubuana.ac.id/
Tabel 2.4 Studi Literatur (Lanjutan) APLIKASI
Penerapan
IMPLEMENTASI
SEARCH ENGINE Algoritma
ALGORITMA
MENGGUNAKAN
Knuth-
FORCE DAN ALGORITMA
ALGORITMA
Morris-
KNUTH-MORRIS-PRATT
KNUTH-MORRIS- Pratt
(KMP)
PRATT (KMP)
pada
PENCARIAN
Aplikasi
SUGGESTION
Pencarian
ABSTRAK
Berkas
BRUTE
DALAM WORD
di
Komputer Summarize
guna
mendukung
laporan
Tugas
Akhir
yang
berjudul
“PENERAPAN ALGORITMA STRING MATCHING KNUTTMORRIST-PRATT
UNTUK
PENCARIAN
BERKAS
PADA
DIGITAL LIBRARY MERCUBUANA”, ketiga jurnal tersebut sangat dibutuhkan untuk mendapatkan informasi mengenai tools apa yang kira-kira cocok dan mendukung adanya pembuatan aplikasi ini, juga dalam pemilihan bahasa pemrograman dan database apa yang kirakira lebih cocok sesuai kebutuhan dan dapat menghasilkan output yang
lebih akurat serta tepat dengan waktu yang relatif cepat
sehingga dapat memuaskan user atau pengguna.
23
http://digilib.mercubuana.ac.id/
2.4 Rekayasa Perangkat Lunak 2.4.1 Metodologi SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi. Menurut ahli : System Development Live Cycle (SDLC) adalah pendekatan bertahap untuk melakukan analisa dan membangun rancangan sistem dengan menggunakan siklus yang spesifik terhadap kegiatan pengguna. Berdasarkan pada penjelasan diatas maka SDLC dapat disimpulkan sebagai “Sebuah siklus untuk membangun sistem dan memberikannya kepada pengguna melalui tahapan perencanaan, analisa, perancangan dan implementasi dengan cara memahami dan menyeleksi keadaan dan proses yang dilakukan pengguna untuk dapat mendukung kebutuhan pengguna”. (Ismo Broto, 2016) Dengan siklus SDLC, proses membangun sistem dibagi menjadi beberapa langkah dan pada sistem yang besar, masing-masing langkah dikerjakan oleh tim yang berbeda. SDLC tidak hanya penting untuk proses produksi software, tetapi juga sangat penting untuk proses maintenance software itu sendiri.. Metode SDLC yang paling dikenal adalah Waterfall Method. Metode SDLC yang lain diantaranya : Incremental, Rapid Application Development (RAD), Prototyping Model, Metode Spriral, dan Agile. Metode model yang akan penulis gunakan adalah metode waterfall. Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini pertama kali yang diperkenalkan oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan berurutan. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Model pengembangan ini bersifat linear dari tahap awal pengembangan system yaitu tahap perencanaan sampai tahap akhir pengembangan system yaitu
24
http://digilib.mercubuana.ac.id/
tahap pemeliharaan. Tahapan berikutnya tidak akan dilaksanakan sebelum tahapan sebelumnya selesai dilaksanakan dan tidak bisa kembali atau mengulang ke tahap sebelumnya. (Glandangan, 2016) Langkah-langkah yang dapat digunakan untuk membuat sistem dengan metode ini, yaitu :
Gambar 2.1 Konsep SDLC – Tahapan Waterfall(Rinjani, 2013) Keterangan :
Analysis Analisis atau analisa ini merupakan tahap awal yang dilakukan oleh peneliti
dalam
mengembangkan
sistem.
Dalam
analisis
ini
harus
mendapatkan beberapa hal yang dianggap menunjang penelitian yang dilakukan, seperti : mencari permasalahan yang ada, mengumpulkan data (data fisik, non fisik), wawancara dan lain-lain.
Requirements specification Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface dan sebagainya. 25
http://digilib.mercubuana.ac.id/
Design Desain yang dimaksud bukan hanya tampilan atau interfacenya saja, tetapi yang dimaksud desain dalam metode ini adalah desain sistem yang meliputi : alur kerja sistem, cara pengoprasian sistem, hasil keluaran (output) dengan menggunakan metode-metode seperti UML (Unified Modeling Language) tampilan sistem dan lain-lain yang telah disesuaikan dengan analisis kebutuhan pada tahap awal untuk menyelesaikan permasalahan tersebut. Sehingga programer atau pihak yang terlibat dalam pembuatan kode program akan dipermudah karena sudah terarah seperti apa sistem ini akan berjalan dan seperti apa alur yang ada didalam sistem maupun diluar sistem.
Implementation Bagian pengodean merupakan bagian para programmer untuk memasukan script kode pemrograman ke dalam sebuah software programming untuk menghasilkan aplikasi yang telah di desain, software programming yang dapat digunakan harus disesuaikan dengan desain sistem yang dibuat. Untuk software programming dapat menggunakan Borland C++, Dev C++, Delphi, Visual Basic, NetBeans dan lain-lain. Penulis disini menggunakan software programming java.
Testing and Integration Tahap ini adalah tahap pengujian dan tahap pendukung yang artinya sistem yang telah dibuat dari hasil analisis masalah yang telah melalui tahaptahap desain, pengodean barulah masuk kedalam pengujian sistem, sehingga akan dapat diketahui seperti apa hasil kinerja sistem yang baru ini dibandingkan dengan sistem yang lama, kemudian dapat diketahui pula apakan dalam sistem yang baru ini masih ada kelemahan yang kemudian akan dikembangkan oleh peneliti berikutnya
Operation and Maintenance Pemeliharaan suatu software yang diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang belum
26
http://digilib.mercubuana.ac.id/
ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya. Kelebihan Metode Waterfall :
Mudah untuk dimengerti dan mudah untuk digunakan
Dapat digunakan untuk staf yang belum berpengalaman
Kualitas dari sistem yang dihasilkan akan baik.
Document pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
Kekurangan Metode Waterfall :
Diperlukan majemen yang baik.
Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan.
Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidakpastian pada saat awal pengembangan
27
http://digilib.mercubuana.ac.id/
2.4.2 Metode Perancangan 2.4.2.1 Usecase Usecase adalah menggambarkan sekelompok use cases dan aktor yang disertai dengan hubungan diantaranya. Diagram use cases ini menjelaskan dan menerangkan kebutuhan atau requirement yang diinginkan/ dikehendaki user/pengguna, serta sangat berguna dalam menentukan struktur organisasi dan model dari pada sebuah sistem.(Teorey, 2006) Usecase adalah rangkaian atau uraian sekelompok yang saling terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. Use case digunakan untuk membentuk tingkah laku benda dalam sebuah model serta direalisasikan oleh sebuah collaboration. Umumnya use case digambarkan dengan sebuah elips dengan garis yang solid, biasanya mengandung nama. Use case menggambarkan proses system (kebutuhan sistem dari sudut pandang user). Secara umum use case adalah :
Pola perilaku sistem
Urutan transaksi yang berhubungan yang dilakukan oleh satu aktor
Karakteristik :
Use case adalah interaksi atau dialog antara sistem dan aktor, termasuk pertukaran pesan dan tindakan yang dilakukan oleh sistem.
Use case diprakarsai oleh aktor dan mungkin melibatkan peran aktor lain. Use case harus menyediakan nilai minimal kepada satu aktor.
Use case bisa memiliki perluasan yang mendefinisikan tindakan khusus dalam interaksi atau use case lain mungkin disisipkan.
Use case class memiliki objek use case yang disebut skenario. Skenario menyatakan urutan pesan dan tindakan tunggal
28
http://digilib.mercubuana.ac.id/
Use case diagram terdiri dari :
Use case Use case adalah
gambaran fungsionalitas dari suatu sitem, sehingga
pengguna sistem paham dan mengerti menganai kegunaan sistem yang akan dibangun. (Christine, 2016) Berikut merupakan cara menentukan use case dalam suatu sistem : 1. Pola perilaku perangkat lunak aplikasi 2. Gambaran tugas dari sebuah aktor 3. Sistem atau “benda” yang memberikan sesuatu yang bernilai kepada aktor 4. Ada yang dikerjakan oleh suatu perangkat lunak (*bukan bagaimana cara mengerjakannya) Input data
Actors Pada dasarnya actor bukanlah bagian dari use case diagram, namun untuk dapat terciptanya suatu use case diagram diperlukan beberapa actor. Actor tersebut mempresentasikan seseorang atau sesuatu (seperti perangkat, sistem lain) yang berinteraksi dengan sistem. Sebuah actor mungkin hanya memberikan informasi inputan pada sistem, hanya menerima informasi dari sistem atau keduanya menerima, dan memberi informasi pada sistem. Actor hanya berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Actor digambarkan dengan stick man. Actor dapat digambarkan secara secara umum atau spesifik, dimana untuk membedakannya kita dapat menggunakan relationship.(Christine, 2016)
Administrator
29
http://digilib.mercubuana.ac.id/
Relationship Ada beberapa relasi yang terdapat pada use case diagram : 1. Association, menghubungkan link antar elemen 2. Generalization, disebut juga inheritance (pewarisan), sebuah elemen dapat merupakan spesialisasi dari elemen lainnya 3. Dependency, sebuah elemen bergantung dalam beberapa cara ke elemen lainnya 4. Aggregation, bentuk assosiation dimana sebuah elemen berisi elemen lainnya Tipe relasi atau stereotype yang mungkin terjadi pada use case diagram : 1. <
> yaitu kelakuan yang harus terpenuhi agar sebuah event dapat terjadi, dimana pada kondisi ini sebuah use case adalah bagian dari use case lainnya 2. <<extends>> kelakuan yang hanya berjalan di bawah kondisi tertentu seperti menggerakkan alarm 3. <> mungkin ditambahkan untuk asosiasi yang menunjukkan assosiasinya adalah communicates assosiasion. Ini merupakan pilihan selama asosiasi hanya tipe ralationship yang dibolehkan antara aktor dan use case
System boundary boxes (optional)
Packages (optional)
2.4.2.2 Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak
30
http://digilib.mercubuana.ac.id/
menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Dipakai pada business modeling untuk memperlihatkan urutan aktifitas proses bisnis. Struktur diagram ini mirip flowchart atau Data Flow Diagram pada perancangan terstruktur. Sangat bermanfaat apabila kita membuat diagram ini terlebih dahulu dalam memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan.(Yulisopianti, 2015) Activity diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram. 2.4.2.3 Sequence Diagram Sequence diagram (diagram urutan) adalah suatu diagram yang memperlihatkan atau menampilkan interaksi-interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Interaksi antar objek tersebut termasuk pengguna, display, dan sebagainya berupa pesan/message. (Yulisopianti, 2015) Sequence Diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai sebuah respon dari suatu kejadian/even untuk menghasilkan output tertentu. Sequence Diagram diawali dari apa yang me-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Diagram ini secara khusus berasosiasi dengan use case diagram. Sequence diagram juga memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu didalam use case. Sequence diagram juga dapat merubah atribut atay method pada class yang telah dibentuk oleh class diagram, bahkan menciptakan sebuah class baru. Sequence diagram memodelkan aliran logika dalam sebuah system dalam cara yang visual. Sequence diagram biasanya digunakan untuk tujuan analisa dan desain, memfokuskan pada identifikasi method didalam sebuah system. Sequence diagram biasanya dipakai untuk memodelkan :
31
http://digilib.mercubuana.ac.id/
Deskripsi tentang system yang ada pada sebuah / beberapa use case pada use case diagram, yang menggambarkan hubungan antara actor dan use case diagram.
Logika dari method (operation, function atau procedure)
Logika dari service (high level method)
2.4.2.4 Class Diagram Class
adalah blok-blok pembangun pada
pemrograman
berorientasi
obyek.Sebuah class digambarkan sebagai sebuah kotak yang terbagi
atas 3
bagian. Bagian atas adalah bagian nama dari class. Bagian tengah mendefinisikan property/atribut class. Bagian akhir mendefinisikan method-method dari sebuah class. (Booch, 1999) Class diagram adalah diagram yang menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. kelas memiliki 3 bagian utama yaitu attribute, operation, dan name. kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsi-fungsi sesuai dengan kebutuhan sistem. Sususan struktur kelas ynag baik pada diagram kelas sebaiknya memiliki jenis-jenis kelas berikut : 1. Kelas Main. Yaitu kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan 2. Kelas Interface. Kelas yang mendefinisikan dan mengatur tampilan ke pemakai. Biasanya juga disebut kelas boundaries. 3. Kelas yang diambil dari pendefinisian usecase. Merupakan kelas yang menangani fungsi-fungsi yang harus ada dan diambil dari pendefinisian usecase 4. Kelas Entitas. Merupakan kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data Relasi yang digunakan dalam penggambaran kelas diagram dapat dilihat dalam tabel berikut :
32
http://digilib.mercubuana.ac.id/
Tabel 2.5 Simbol Kelas Diagram
Dalam suatu diagram kelas attribut dan method dapat memiliki salah satu sifat berikut : 1. Private : tidak dapat dipanggil dari luar kelas yang bersangkutan 2. Protected : Hanya dapat dipanggil oleh kelas yang bersangkutan dan anakanak kelas yang mewarisinya. 3. Public : Dapat dipanggil oleh siapa saja Multiplicity adalah jumlah banyaknya objek sebuah kelas yang berelasi dengan sebuah objek lain dari kelas lain yang berasosiasi dengan kelas tersebut. Macammacam multiplicity disajikan dalam tabel berikut :
Berikut adalah contoh dari class diagram :
33
http://digilib.mercubuana.ac.id/
Gambar 2.2 Contoh Class Diagram(Priska, 2012) 2.5 Teknologi Berikut adalah beberapa teknologi yang digunakan dalam pembuatan aplikasi pendeteksi plagiarisme : 2.5.1 Database (MySQL) MySQL adalah sistem manajemen database SQL yang bersifat Open Source dan paling populer saat ini. Sistem Database MySQL mendukung beberapa fitur seperti multithreaded, multi-user, dan SQL database managemen sistem (DBMS). Database ini dibuat untuk keperluan sistem database yang cepat, handal dan mudah digunakan.(etunas, 2012)
34
http://digilib.mercubuana.ac.id/
Ulf Micheal Widenius adalah penemu awal versi pertama MySQL yang kemudian pengembangan selanjutnya dilakukan oleh perusahaan MySQL AB. MySQL AB yang merupakan sebuah perusahaan komersial yang didirikan oleh para pengembang MySQL. MySQL sudah digunakan lebih dari 11 millar instalasi saat ini. Informasi-informasi terbaru mengenai MySQL dapat diperoleh dengan mengunjungi http://www.mysql.com/ . Kelebihan MySQL Berikut ini beberapa kelebihan MySQL sebagai database server antara lain : 1. Source MySQL dapat diperoleh dengan mudah dan gratis. 2. Sintaksnya lebih mudah dipahami dan tidak rumit. 3. Pengaksesan database dapat dilakukan dengan mudah. 4. MySQL merupakan program yang multithreaded, sehingga dapat dipasang pada server yang memiliki multi CPU. 5. Didukung programprogram umum seperti C, C++, Java, Perl, PHP, Python, dsb. 6. Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi sistem database. 7. Memiliki sistem sekuriti yang cukup baik dengan verifikasi host. -
Scability and Limits, mampu menangani database dalam skala besar, dengan jumlah records >50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya
-
Connectivity, berkoneksi dengan client menggunakan TCP/IP atau Unix socket atau Named Pipes (NT)
-
Interface, memiliki interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API
-
Clients and tools, dilengkapi dengan berbagai tools yang dapat digunakan antara administrasi database dan pada setiap tool yang ada disertakan petunjuk online.
8. Mendukung ODBC untuk sistem operasi Windows.
35
http://digilib.mercubuana.ac.id/
9. Mendukung record yang memiliki kolom dengan panjang tetap atau panjang bervariasi. 10. Portability, MySQL dapat berjalan stabil pada berbagai sistem operasi seperti windows, Linux, FreeBSD, Solaris, dan lain-lain. 11. Multi User, MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik 12. Performance Tuning, MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 13. Column Types, MySQL memiliki tipe kolom yang sangat komplek, seperti integer, double, char, text, date, dan lain-lain. 14. Command and Function, MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah select dan where dalam query. MySQL dan PHP merupakan sistem yang saling terintegrasi. Maksudnya adalah pembuatan database dengan menggunakan sintak PHP dapat di buat. Sedangkan input yang di masukkan melalui aplikasi web yang menggunakan script serverside seperti PHP dapat langsung dimasukkan ke database MySQL yang ada di server dan tentunya web tersebut berada di sebuah web server. 2.5.2 Spring Framework Spring merupakan sebuah framework (kerangka kerja) yang digunakan untuk membangun sebuah aplikasi Enterprise. Spring termasuk framework yang lightweight (ringan) untuk mendukung secara penuh dalam pengembangan aplikasi Enterprise siap pakai. Spring dapat digunakan untuk melakukan
pengaturan
deklarasi
manajemen transaksi, remote access dengan menggunakan RMI atau layanan web lainnya, fasilitas mailing, dan beragam opsi untuk pengaturan data ke database. Spring juga memungkinkan kita menggunakan
hanya
modul-modul
tertentu
sehingga
36
http://digilib.mercubuana.ac.id/
kita
tidak
perlu
menggunakan semua modul spring dalam aplikasi apabila tidak diperlukan. (Latief, 2016) Spring framework memiliki beberapa fitur, diantaranya : 1. Transaction Management : Spring framework menyediakan sebuah layer abstrak yang generik untuk manajemen transaksi, sehingga memudahkan para developer dalam melakukan manajemen transaksi 2. JDBC Exception Handling : layer abstrak JDBC menawarkan exception yang bersifat hierarki sehingga memudahkan penanganan error 3. Integration with Hibernate, JDO, and iBatis : Spring menawarkan layanan integrasi terbaik dengan Hibernate, JDO dan iBatis 4. AOP Framework : Spring merupakan framework AOP Terbaik yang pernah ada 5. MVC Framework : Spring hadir dengan framework aplikasi web MVC, yang dibangun di atas inti Spring. Spring merupakan framework yang sangat fleksibel dalam pengaturan strategi interface, dan mengakomodasi beberapa teknologi view seperti JSP, Velocity, Tiles, iText, dan POI Berikut adalah arsitektur dari Spring :
Gambar 2.3 Arsitektur Spring(TOHA, 2010) 37
http://digilib.mercubuana.ac.id/
Keterangan : 1. Spring AOP Salah satu komponen utama Spring adalah AOP Framework, AOP framework digunakan untuk :
Untuk
menyediakan
layanan
Enterprise,
terutama
sebagai
pengganti EJB. Layanan terpenting dalam layanan ini adalah untuk mendekralitf manajemen transaksi, yang telah disediakan dalam abstraksi spring transaction
Untuk memungkinkan pengguna dalam menerapkan AOP dalam penggunaan OOP
2. Spring ORM Spring ORM berhubungan dengan akses database dan menyediakan lapisan layer terintegrasi dengan ORM yang populer termasuk JDO, Hibernate dan iBatis. 3. Spring Web Merupakan bagian dari modul pengembangan Web Spring termasuk Spring Web MVC. 4. Spring DAO DAO (Data Access Object) mendukung standarisasi akses data yang menggunakan teknologi seperti JDBC, Hibernate dan JDO. 5. Spring Context Paket ini didasari pada paket beans untuk menambah dukungan sumber pesan dan untuk pola desain Observer, dan kemampuan untuk mendapatkan sumber daya yang konsisten dengan menggunakan API. 6. Spring Web MVC Menyediakan implementasi MVC untuk aplikasi web. 7. Spring Core Paket Spring Core ini merupakan komponen paling penting dari Spring Framework. Komponen ini menyediakan fitur Dependency Injection. BeanFactory memisahkan dependensi seperti inisialisasi, pembentukan dan akses object dari logika program anda.
38
http://digilib.mercubuana.ac.id/
2.5.3 Hibernate Hibernate adalah suatu alat yang digunakan untuk melakukan Object Relational Mapping (ORM) pada lingkungan java. Istilah ORM mengacu pada teknik untuk memetakan data yang terletak pada objek ke database relational. ORM sendiri adalah untuk mengkonversi tipe data antara dua hal yang tidak kompatibel yaitu database relasional dan pemrograman berorientasi obyek bahasa. Dimana database relational berbicara mengenai kolom, record sedangkan pada pemrograman berorientasi objek pada attribut dan objek. (Amikom, 2010) ORM bertugas memetakan Tabel atau query kedalam class Java atau POJO atau Java Beans. ORM adalah middleware pada persistence layer yang menangani persistent object. ORM bukan merupakan satu-satunya solusi permasalahan yang digunakan untuk menangani persistent object, cara lain yang bisa digunakan adalah dengan EJB atau langsung memakai SQL yang mengkopi nilai yang dari JDBC result set pada persistent object di domain model.
Gambar 2.4 Arsitektur Hibernate(Ballarpure, 2014) Hibernate mendukung banyak DBMS (Database Management System) antara
lain
Oracle,
DB2,
MySQL,
PostgreSQL,
Sybase,
SAP
DB,
HypersonicSQL, Microsoft SQL Server, Posgress, McKoi SQL, Pointbase dan Interbase. Hibernate dapat diintegrasikan dengan Framework-framework java yang lain seperti JBoss (hibernate sekarang merupakan bagian dari JBoss
39
http://digilib.mercubuana.ac.id/
Project), Spring Framework, Struts, JSF maupun framework java yang lain sebagai persistence layer. 2.5.4 Java Java adalah bahasa pemrograman yang multi platform dan multi device. Java merupakan bahasa pemrograman tingkat tinggi yang berorientasi objek dan program tersusum dari bagian yang disebut class. Class terdiri dari beberapa method yang melakukan suatu pekerjaan dan mengembalikan informasi setelah melakukan tugasnya. Java merupakan bahasa berorientasi objek (OOP) yaitu cara ampuh dalam pengorganisasian dan pengembanagan perangkat lunak. Pada OOP, program komputer sebagai kelompok objek yang saling berinteraksi. (Amikom, 2010) Java bersifat multiplatform. Dikatakan multiplatform karena Java dapat dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda. Java juga memiliki library yang lengkap. Library disini adalah sebuah kumpulan dari program yang disertakan dalam Java. Kelengkapan library dapat ditambahkan dari hasil karya programmer (komunitas Java). Java juga termasuk bahasa Multithreading. Thread adalah untuk menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan class untuk menulis program multithreaded, program mempunyai lebih dari satu thread eksekusi pada saat yang sama sehingga memungkinkan program menangani beberapa tugas secara konkuren. Java menggunakan model pengaman tiga lapis (three-layer security) untuk melindungi sistem dari untrusted Java code. Pertama, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java. Kedua, class loader menangani pemuatan class java ke runtinme interpreter. Ketiga, menajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem berkas, port jaringan, proses eksternal dan sistem window.
40
http://digilib.mercubuana.ac.id/
Bahasa pemrograman Java merupakan salah satu bahasa pemrograman
yang
umum digunakan untuk mengembangkan aplikasi basis data.
2.5.5 JSP JSP atau kepanjangan dari Java Server Pages adalah suatu teknologi web berbasis bahasa pemrogramanJava dan berjalan di platform Java, serta merupakan bagian teknologi J2EE (Java 2 Enterprise Edition). JSP sangat sesuai untuk menangani presentasi di web. Sedangkan J2EE merupakan platform Java untuk pengembangan sistem aplikasi enterprise dengan dukungan API (Application Programming Interface) yang lengkap dan portabilitas serta memberikan sarana untuk membuat suatu aplikasi yang memisahkan antara business logic (sistem) , presentasi dan data. (Yuliana, 2012) JSP adalah bahasa scripting untuk web programming yang bersifat server side seperti halnya PHP dan ASP. JSP dapat berupa gabungan antara baris HTML dan fungsi-fungsi dari JSP itu sendiri.
Gambar 2.5 Daur Hidup JSP(Yuliana, 2012)
2.5.6 Bootstrap Bootstrap adalah front-end framework yang solek, bagus dan luar biasa yang mengedapankan tampilan untuk mobile device (Handphone, smartphone dll.) guna mempercepat dan mempermudah pengembangan website. Bootstrap menyediakan HTML, CSS dan Javascript siap pakai dan mudah untuk dikembangkan. (Fadul, 2016) Bootstrap merupakan framework untuk membangun desain web secara responsif. Artinya, tampilan web yang dibuat oleh bootstrap akan menyesuaikan 41
http://digilib.mercubuana.ac.id/
ukuran layar dari browser yang kita gunakan baik di desktop, tablet ataupun mobile device. Fitur ini bisa diaktifkan ataupun dinon-aktifkan sesuai dengan keinginan kita sendiri. Berikut adalah halaman resmi bootstrap yang dapat memberikan informasi dan bahan belajar cara pengaplikasian bootstrap untuk aplikasi web : http://getbootstrap.com/components/. 2.5.7 Javascript JavaScript adalah bahasa pemograman web yang bersifat Client Side Programming Language. Client Side Programming Language adalah tipe bahasa pemograman yang pemrosesannya dilakukan oleh client. Aplikasi client yang dimaksud merujuk kepada web browser seperti Google Chrome dan Mozilla Firefox. Jenis bahasa pemograman Client Side berbeda dengan bahasa pemograman Server Side seperti PHP, dimana untuk server side seluruh kode program dijalankan di sisi server. (Andre, 2014) Untuk menjalankan JavaScript, kita hanya membutuhkan aplikasi text editor, dan web browser. JavaScript memiliki fitur: high-level programming language, clientside, loosely tiped, dan berorientasi objek. 2.6 Word Suggestion Word suggestion merupakan kata berbahasa inggris yang berarti “Sugesti Kata”. Jika kita uraikan menurut Kamus Umum Bahasa Indonesia, “Kata” berarti unsur bahasa yang diucapkan atau dituliskan yang merupakan perwujudan kesatuan perasaan dan pikiran yang dapat digunakan dalam berbahasa, sedangkan “Sugesti” adalah pendapat yang dikemukakan (untuk dipertimbangkan); anjuran; saran; (2) pengaruh yang dapat menggerakkan hati orang ; dorongan. (KBBIOnline, 2016) Word Suggestion adalah aplikasi pencari sugesti hasil terdekat dalam sebuah pencarian.
42
http://digilib.mercubuana.ac.id/