BAB II TINJAUAN PUSTAKA - sinta.unud.ac.id 2.pdf · Android adalah sistem operasi untuk telepon...
-
Upload
truongdang -
Category
Documents
-
view
215 -
download
0
Transcript of BAB II TINJAUAN PUSTAKA - sinta.unud.ac.id 2.pdf · Android adalah sistem operasi untuk telepon...
5
BAB II
TINJAUAN PUSTAKA
2.1 Multimedia
Pada modul Aplikasi Multimedia dalam Pendidikan (Sutopo, 2011),
“multimedia merupakan kombinasi antara teks, seni, suara, animasi, dan video yang
disampaikan melalui komputer atau peralatan elektronik dan digital”. Jika
menggunakan bersama-sama dengan suara, video dan teks maka akan dapat
memberikan makna yang jelas kepada orang yang memerlukannya. Aplikasi
multimedia dibagi menjadi beberapa kategori, yaitu presentasi bisnis, aplikasi
pelatihan dan pembelajaran, promosi dan penjualan, game, dan lain-lain (Luther,
1994).
Menurut Luther, suatu informasi dengan berbasis multimedia mempunyai
beberapa keuntungan yaitu :
1. Lebih komunikatif
Informasi yang menggunakan gambar dan animasi lebih mudah dipahami
oleh audiens dibandingkan informasi yang dibuat dengan cara lain. Informasi yang
diperoleh dengan membaca kadang-kadang sulit dimengerti dan perlu dibaca
berulang-ulang.
2. Mudah dilakukan perubahan
Dalam pengembangan multimedia, untuk suatu informasi bisa
menggunakan file sehingga mudah diperbaharui sesuai dengan kebutuhan. Semua
file dan hasil pengembangan bisa disimpan dalam komputer
3. Interaktif
Penggunaan aplikasi interaktif seperti untuk presentasi, pelatihan,
pembelajaran, dan lain-lain. Pengguna dapat interaktif dan keinginan pengguna bisa
langsung terpenuhi dalam artian sesuai kebutuhan dan keinginan dari pengguna.
6
2.2 Android
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux.
Android menyediakan platform terbuka bagi para pengembang dalam menciptakan
berbagai aplikasi. Awalnya, Google Inc. membeli Android Inc. yang merupakan
pendatang baru yang membuat piranti lunak untuk ponsel/smartphone. Untuk
mengembangkan android dibentuklah Open Handset Alliance, konsorsium 34
perusahaan piranti keras, piranti lunak dan telekomunikasi. Sekitar september 2007
Google mengenalkan Nexus One, salah satu jenis smartphone yang menggunakan
android sebagai sistem operasinya (Safaat, 2014).
Android dipuji sebagai “platform mobile pertama yang lengkap, terbuka dan
bebas”. Lengkap dalam artian android merupakan sistem operasi yang aman dan
banyak menyediakan tools dalam membangun software dan memungkinkan untuk
peluang pengembangan aplikasi. Terbuka dalam artian pengembang dapat dengan
bebeas untuk mengembangkan aplikasi. Bebas dalam artian android adalah aplikasi
yang bebas untuk develop, tidak ada lisensi atau biaya royalti untuk dikembangkan
pada platform android (Safaat, 2014).
Telpon pertama yang memakai sistem operasi android adalah HTC Dream
yang rilis pada 22 Oktober 2008. Pada tahun 2010 diperkirakan hampir semua vendor
seluler dunia menggunakan android sebagai sistem operasinya. Versi android yang
pernah dirilis : android 1.1, android 1.5 (Cupcake), android 1.6 (Donut), android
2.0/2.1 (Éclair), android 2.2 (Froyo), android 2.3 (Gingerbread), android 3.0
(Honeycomb), android 4.0 (Ice Cream Sandwich), android 4.1-4.3 (Jelly Bean),
android 4.4 (Kitkat), android 5.0-5.1 (Lollipop), android 6.0 (Marhmallow). Versi 4.0
keatas merupakan platform yang bisa di pakai di smartphone dan tablet pc (Safaat,
2014).
2.2.1 Android SDK
Android SDK adalah tools Application Programming Interface (API) yang
diperlukan untuk mengembangkan aplikasi pada platform berbasis Android.
Google saat ini menyediakan Android Software Development Kit (SDK) sebagai
alat bantu dan API untuk mengembangkan aplikasi pada platform android
menggunakan bahasa pemrograman Java. Dengan adanya android, pengembang
diberikan kesempatan untuk mengembangkan kemampuannya dalam membuat
7
aplikasi yang dibutuhkan oleh pengembang selain dari aplikasi bawaan smartphone
(Safaat, 2014).
2.2.2 Android Development Tools (ADT)
Android Development Tools (ADT) adalah plug-in yang didesain untuk IDE
Eclipse dengan tujuan memberikan pengembang aplikasi kemudahan dalam
mengembangkan aplikasi android. Dengan menggunakan ADT untuk Eclipse,
pengembang aplikasi lebih mudah membuat aplikasi android, membuat interface
aplikasi, menambahkan komponen-komponen yang diperlukan, menjalankan
aplikasi yang sudah dibuat dan bisa melakukan pembuatan package android (.apk)
yang digunakan untuk distribusi aplikasi android yang sudah dirancang (Safaat,
2014).
2.2.3 Integrated Development Environment (IDE) Eclipse
Eclipse adalah sebuah Integrated Development Environment (IDE) untuk
mengembangkan perangkat lunak dan dapat dijalankan di semua platform. Eclipse
merupakan salah satu IDE favorit karena gratis dan open source. Eclipse memiliki
kemampuan untuk menambahkan komponen (plug in) yang diperlukan oleh
pengembang (Fatimah, 2011). Eclipse yang digunakan untuk perancangan aplikasi
Gegendingan Bali nantinya adalah Eclipse versi Luna. Eclipse memiliki beberapa
sifat yaitu (Fatimah, 2011) :
1. Multi platform maksudnya target sistem operasi eclipse adalah Windows,
Linux, Solaris, AIX, HP-UX dan Mac OS X.
2. Multi language maksudnya eclipse dikembangkan dengan bahasa
pemrograman Java, namun Eclipse bisa mendukung pengembangan aplikasi berbasis
bahasa pemrograman lain, seperti Cobol, Python, Perl, PHP, C/C++ dan lain
sebagainya.
3. Multi role maksudnya eclipse selain sebagai IDE untuk pengembangan
aplikasi, bisa juga digunakan untuk aktivitas dalam siklus pengembangan perangkat
lunak, seperti dokumentasi, tes perangkat lunak, pengembangan web dan lain
sebagainya.
8
2.2.4 Java Development Kit (JDK)
Untuk membuat suatu program java diperlukan kompiler dan interpreter
untuk program java yang berbentuk Java Development Kit (JDK). JDK sendiri
diproduksi oleh Sun Microsystems. Sun Microsystems juga yang memperkenalkan
Java pada tahun 1990. Java adalah nama untuk sekumpulan teknologi untuk
membuat dan menjalankan perangkat lunak pada komputer yang berdiri sendiri
maupun komputer pada lingkungan jaringan. Sebelum menginstalasi Android SDK,
terlebih dahulu harus menginstalasi JDK. JDK yang digunakan untuk perancangan
aplikasi Gegendingan Bali ini adalah Java SE Development Kit 7.
2.3 Diagram Perancangan
Beberapa diagram yang penting untuk merepresentasikan suatu
pengembangan aplikasi yaitu :
2.3.1 Diagram Use Case
Diagram ini merupakan pemodelan untuk kelakuan (behavior) sistem
informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu
atau lebih aktor dengan sistem informasi yang akan dibuat. Syarat penamaan pada
use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Pada
use case terdapat dua hal utama yaitu pendefinisian apa yang disebut aktor dan use
case (Shalahudin dkk, 2008).
1. Aktor merupakan orang, proses atau sistem lain yang berinteraksi dengan
sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu
sendiri. Walaupun symbol aktor berbentuk gambar orang belum tentu aktor
merupakan orang (Shalahudin dkk, 2008).
2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-
unit yang saling bertukar pesan antar unit atau aktor (Shalahudin dkk, 2008).
Diagram use case menggunakan beberapa simbol seperti pada tabel 2.1.
9
Tabel 2. 1 Simbol pada diagram use case (Shalahudin dkk, 2008)
Nama Simbol Simbol Deskripsi
Use case
use case
Fungsionalitas yang disediakan sistem
sebagai unit-unit yang saling bertukar
pesan antar unit atau aktor. Use case
biasanya diawali dengan kata kerja di
awal nama use case.
Aktor
nama aktor
Orang, proses atau sistem lain yang
berinteraksi dengan sistem informasi
yang akan dibuat di luar sistem
informasi yang akan dibuat itu sendiri.
Walaupun symbol aktor berbentuk
gambar orang belum tentu aktor
merupakan orang.
Asosiasi /
association
Komunikasi antara aktor dan use case
yang berpartisipasi pada use case atau
use case memiliki interaksi dengan
aktor.
Ekstensi / extend
<<extend>>
Relasi use case tambahan ke sebuah
use case dimana use case yang
ditambahkan dapat berdiri sendiri
walau tanpa use case tambahan itu; use
case ini biasanya memiliki nama depan
yang sama dengan use case yang
ditambahkan. Arah panah mengarah ke
use case yang ditambahkan.
Generalisasi /
generalization
Hubungan generalisasi dan spesialisasi
(umum-khusus) antara dua buah use
case dimana fungsi yang satu adalah
fungsi yang lebih umum dari lainnya.
10
Arah panah mengarah ke use case
umum.
Menggunakan /
include / uses
<<include>>
Relasi use case tambahan ke sebuah
use case dimana use case yang
ditambahkan memerlukan use case ini
untuk menjalankan fungsinya atau
sebagai syarat dijalankan use
case ini
2.3.2 Diagram Kelas
Diagram kelas atau class diagram menggambarkan struktur sistem dari segi
pendefinisian kelas-kelas yang dibuat untuk membangun sistem. Kelas memiliki
apa yang disebut atribut dan metode atau operasi (Shalahuddin dkk, 2008).
i. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas
ii. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas
Pada diagram kelas ada beberapa simbol yang digunakan seperti tabel 2.2.
Tabel 2. 2 Simbol pada diagram kelas (Shalahuddin dkk, 2008)
Nama Simbol Simbol Deskripsi
Package
Package merupakan sebuah bungkusan
dari satu atau lebih kelas
Kelas
Kelas pada struktur sistem
Antarmuka /
interface
Sama dengan konsep interface dalam
pemrograman berorientasi objek
Asosiasi /
Association
Relasi antar kelas dengan makna
umum, asosiasi biasanya juga disertai
dengan multiplicity
Asosiasi berarah/ Relasi antar kelas dengan makna kelas
yang satu digunakan oleh kelas yang
11
Directed
association
lain, asosiasi biasanya juga disertai
dengan multiplicity
Generalisasi Relasi antar kelas dengan makna
generalisasi - spesialisasi (umum
khusus)
Kebergantungan /
Dependency
Relasi antar kelas dengan makna
kebergantungan antar kelas
Agregasi /
agregation
Relasi antar kelas dengan makna
semua-bagian (whole-part)
2.3.3 Diagram Sekuen
Diagram sekuen menggambarkan kelakuan objek pada use case dengan
mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima
antar objek. Banyaknya diagram sekuen yang harus digambar adalah sebanyak
pendefinisian use case yang memiliki proses sendiri atau yang penting semua use
case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram
sekuen (Shalahuddin dkk, 2008). Pada diagram sekuen ada beberapa simbol yang
digunakan seperti tabel 2.3.
Tabel 2. 3 Simbol pada diagram sekuen (Shalahuddin dkk, 2008)
Nama simbol Simbol Deskripsi
Aktor dengan
garis hidup
Orang, proses, atau sistem lain yang
berinteraksi dengan sistem informasi
yang akan dibuat di luar sistem
informasi yang akan dibuat itu sendiri,
jadi walaupun simbol dari aktor
adalah gambar orang, tapi aktor belum
tentu merupakan orang;
Objek Nama_objek : nama_kelas
Menyatakan objek yang berinteraksi
pesan
12
Waktu aktif
Menyatakan objek dalam keadaan
aktif dan berinteraksi pesan
Pesan tipe create << create >>
Menyatakan suatu objek membuat
objek yang lain, arah panah mengarah
pada objek yang dibuat
Pesan tipe call 1: nama_metode()
Menyatakan suatu objek memanggil
operasi/metode yang ada pada objek
lain atau dirinya sendiri,
Pesan tipe send 1: masukan
Menyatakan bahwa suatu objek
mengirimkan data / masukan /
informasi ke objek lainnya, arah
panah mengarah pada objek yang
dikirimi
Pesan tipe
keluaran
1: keluaran
Menyatakan bahwa suatu objek yang
telah menjalankan suatu operasi atau
metode menghasilkan suatu
kembalian ke objek tertentu, arah
panah mengarah pada objek yang
menerima kembalian
Pesan tipe
destroy
Menyatakan suatu objek mengakhiri
hidup objek yang lain, arah panah
mengarah pada objek yang diakhiri,
sebaiknya jika ada create maka ada
destroy
2.3.4 Diagram Aktivitas
Diagram aktivitas atau activity diagram menggambarkan aliran kerja atau
aktivitas dari sebuah sistem atau proses bisnis. Diagram aktivitas banyak digunakan
untuk mendefinisikan hal-hal seperti rancangan proses bisnis, urutan atau
pengelompokan tampilan dari sistem dan rancangan pengujian (Shalahudin dkk,
2008). Pada diagram aktivitas terdapat simbol-simbol seperti tabel 2.4.
13
Tabel 2. 4 Simbol pada diagram aktivitas (Shalahudin dkk, 2008)
Nama simbol Simbol Deskripsi
Status awal Status awal aktivitas sistem
Aktivitas aktivitas
Aktivitas yang dilakukan sistem.
Penamaan biasanya diawali dengan
kata kerja
Percabangan /
decision
Jika ada pilihan aktivitas lebih dari
satu
Penggabungan /
join
Asosiasi penggabungan dimana lebih
dari satu aktivitas digabungkan
menjadi satu
Status akhir Status akhir yang dilakukan sistem
Swimlane Title
nama swimlane
Phas
e
Memisahkan organisasi bisnis yang
bertanggung jawab terhadap bisnis
yang terjadi
2.3.5 Diagram Hubungan Entitas
Diagram Hubungan Entitas atau Entity Relationship Diagram (ERD) adalah
suatu pemodelan awal untuk basis data yang paling banyak digunakan (Shalahudin
dkk, 2008). Ada beberapa komponen yang digunakan pada ERD seperti tabel 2.5.
Tabel 2. 5 Simbol pada ERD (Shalahudin dkk, 2008)
Nama
Komponen
Simbol Deskripsi
Entitas / entity
Entitas merupakan data inti yang
akan disimpan atau bakal tabel pada
basis data
Atribut
Kolom data yang disimpan dalam
suatu entitas
Nama_entitas
Nama_atribu
t
14
Atribut kunci
primer
Kolom data yang disimpan dalam
suatu entitas dan digunakan sebagai
kunci akses tabel
Atribut
multinilai
Kolom data yang disimpan dalam
suatu entitas yang memiliki nilai
lebih dari satu
Relasi
Komponen yang menghubungkan
antar entitas, biasanya diawali
dengan kata kerja
Asosiasi 1 0..*
Komponen penghubung antara
relasi dan entitas dimana kedua
ujungnya memiliki nilai.
2.4 Gegendingan Bali
Menurut Bapak I G.K. Ranuh (Tinggen, 1994), Gegendingan itu merupakan
suatu kalimat/kumpulan kalimat yang dinyanyikan dan isinya pada umumnya
pendek-pendek dan tidak merupakan suatu ceritera. Gegendingan itu dibagi
menjadi 3 jenis, yaitu :
1. Gending rare
Gending rare ini dinyanyikan oleh anak-anak pada waktu bermain-main
atau bersenda gurau dengan kawan-kawannya. Tembang ini mempunyai system
berbeda-beda. Umpama : Jaring Guling, Juru Pencar, Jenggot Uban, Made Cenik,
Mati Delod Pasih, dan lain sebagainya (Tinggen, 1994).
2. Gending jejangeran
Gending jejangeran ini sama dengan gending rare dan biasanya dinyanyikan
bersama-sama saling sahuti antarai kelompok satu dengan yang lain. Ada yang
menjadi janger (kelompok wanita) ada yang menjadi kecak (kelompok laki-laki).
Lama kelamaan gending jejangeran ini dinyanyikan juga oleh orang-orang dewasa
di dalam tontonan dengan jalan memberi variasi gerak-gerik atau variasi lakon
(lelampahan). Umpama : Putri Ayu, Siap Sangkur, Mejejangeran, dan lain
sebagainya (Tinggen, 1994).
Nama_atribut
Nama_atribut
Nama
_relasi
15
3. Gending Sanghyang
Gending Sanghiang itu dinyanyikan untuk menurunkan (nedunang)
Sanghiang-Sanghiang, umpama : Sanghiang Dedari, Sanghiang Memedi, System
atau ortenan tembang-tembang ini sama dengan gending-gending rare lainnya tidak
dipakai karang-mengarang ceritera sebagai pada tembang-tembang macapat.
Umpama : Puspa Panganjali, Kukus Arum, Suaran Kumbang dan lain sebagainya
(Tinggen, 1994).
4. Pop Bali
Biasanya lagu pop Bali ini memiliki ciri tersendiri seperti alur tembang yang
masih mengikuti tembang - tembang traditional dan biasanya masih banyak dihiasi
dengan instrumen traditional seperti : Gupek, Kempul, Seruling dan Gangsa. Jenis
gending pop bali ini ditambahkan untuk memperbanyak gending pada database
Gegendingan Bali.
2.5 Algoritma Boyer Moore
Algoritma Boyer Moore dianggap sebagai algoritma pencocokkan string yang
paling efisien. Algoritma ini melakukan pencocokkan pola dari kanan ke kiri tetapi
pergeseran tetap dari kiri ke kanan (Charras et al, 2004). Langkah-langkah yang
dilakukan algoritma boyer moore pada saat mencocokkan string adalah (Soleh,
2010/2011) :
1. Algoritma boyer moore mulai mencocokan pattern pada awal teks.
2. Dari kanan ke kiri, algoritma ini mencocokkan karakter per karakter pattern
dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi :
i. Karakter di pattern dan di teks yang dibandingkan tidak cocok.
ii. Semua karakter di pattern cocok. Kemudian algoritma akan
memberitahukan penemuan di posisi ini.
3. Algoritma kemudian menggeser pattern dengan memaksimalkan nilai
pergeseran good-suffix dan pergeseran bad-character, lalu mengulangi langkah 2
sampai pattern berada di ujung teks.
16
2.5.1 Pergeseran bad-character
Pergeseran bad-character adalah pergeseran yang dilakukan berdasarkan
karakter apa yang menyebabkan tidak cocok dan seberapa jauh karakter tersebut
dari karakter paling akhir (Argakusumah dkk, 2014). 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 diberi nilai sejumlah
karakter pada pattern (Tania, 2015). Pseudocode untuk pergeseran bad-character
(Argakusumah dkk, 2014) :
Procedure prebadChars ( Input P : array[0..n-1] of char Input n : integer Input/output badChars : array[0..n-1] of integer ) Deklarasi : i : integer Algoritma : for (i := 0 to Asize-1) badChars[i] := m; endfor for(i := 0 to m – 2) badChars[P[i]] := m – i – 1; endfor
2.5.2 Menghitung nilai bad-character
Pada subbab ini, digunakan pattern “senang” sebagai contoh perhitungan
bad-character. Tahapan menghitung nilai bad-character dari pattern tersebut yaitu:
1. Lakukan pencacahan dari posisi terakhir pattern sampai ke posisi awal,
dimulai dengan nilai pergeseran 0 (dalam pattern ini karakter “g”).
2. Mundur ke posisi sebelumnya, nilai pergeseran sebelumnya ditambah 1,
karena karakter ”n” belum pernah ditemukan, maka nilai pergeserannya 1.
3. Mundur ke posisi sebelumnya, nilai pergeseran sebelumnya ditambah 1,
karena karakter ”a” belum pernah ditemukan, maka nilai pergeserannya 2.
4. Mundur ke posisi sebelumnya, karena karakter “n” sudah pernah ditemukan
maka nilai pergeseran sama dengan karakter “n” yang sebelumnya yaitu 1.
5. Mundur ke posisi sebelumnya, karena karakter “e” belum pernah ditemukan
maka nilai pergeserannya adalah 4 (nilai pencacah pada karakter “e” ditambah 2
karena nilai pergeseran “n” pernah ditemukan).
17
6. Mundur ke posisi sebelumnya, nilai pergeseran sebelumnya ditambah 1,
karena karakter ”s” belum pernah ditemukan, maka nilai pergeserannya 5.
Catatan : untuk karakter selain “s, e, n, a, g” nilai pergeserannya sebesar
panjang pattern, yaitu 6 karakter (sepanjang pattern).
Nilai pergeseran dari bad-character yang sudah didapatkan :
Posisi 1 2 3 4 5 6
Pattern s e n a n g *
Nilai pergeseran bad-character 5 4 1 2 1 0 6
2.5.3 Pergeseran good-suffix
Pergeseran good-suffix adalah pergeseran yang dilakukan berdasarkan
posisi ketidakcocokan karakter yang terjadi (Argakusumah dkk, 2014). Nilai
pergeseran good-suffix digunakan ketika ketidakcocokan ditemukan berdasarkan
karakter pada posisi keberapa yang menyebabkan ketidakcocokan. Nilai dari setiap
karakter yang ada pada pattern bergantung terhadap ada atau tidaknya perulangan
akhiran dari teks pada pattern. Semakin banyak perulangan, maka akan semakin
kecil nilai pergeseran (Tania, 2015).
Untuk menentukan nilai tersebut, hitung lebih dahulu nilai tabel suffix yang
bertujuan untuk memberi tanda adanya perulangan akhiran. Dari tabel suffix inilah
tabel good-suffix akan didapat. Nilai pada tabel suffix akan memberitahu posisi
perulangan sehingga saat proses perhitungan tabel good-suffix dapat diketahui
seberapa banyak pergeseran yang akan dilakukan untuk pencocokkan selanjutnya
(Tania, 2015). Pseudocode mencari nilai suffix (Argakusumah dkk, 2014) :
Procedure suffixes ( Input P : array[0..n-1] of char Input n : integer Input/output suff : array[0..n-1] of integer ) Deklarasi : f, g, i : integer Algoritma : suff [n - 1] := n; g := n – 1; for (i := n – 2 downto 0) { if ( i > g and (suff [i + n – 1 - f] < i – g)) suff[i] := suff[i + n – 1 – f ]; else if (i < g)
18
g := i; endif f := i; while (g >= 0 and P[g] = P[g + n – 1 – f]) --g; endwhile suff [i] = f – g; endif endfor
Pseudocode pergeseran good-suffix (Argakusumah dkk, 2014) :
Procedure goodsuffix ( Input P : array[0..n-1] of char Input n : integer Input/output goodsuffixes : array[0..n-1] of integer ) Deklarasi : i, j : integer suff : array [0..RuangAlpabet] of integer Algoritma : suffixes(x,n,suff); for( i := 0 to m-1) goodsuffixes[i] := n endfor j := 0 for (i := n – 1 downto 0) if (suff[i] = i + 1) for (j := j to n – 2 – i) if (goodsuffixes[j] = n) goodsuffixes[j] := n – 1 – i endif endfor endif endfor for(i = 0 to n – 2) goodsuffixes[n – 1 suff[i]] := n – 1 – i; endfor
Setelah diperoleh nilai bad-character dan good-suffix, algoritma boyer
moore akan menggunakan nilai maksimum antara kedua nilai tersebut untuk
melakukan pergeseran saat pencocokkan (Tania, 2015). Pseudocode algoritma
boyer moore (Argakusumah dkk, 2014) :
Procedure BoyerMooreSearch ( Input m, n : integer Input P : array[0..n-1] of char Input T : array[0..m-1] of char output ketemu : array[0..m-1] of boolean ) Deklarasi : i, j, shift, goodsuffixesshift, badcharactershift : integer goodsuffixes : array[0..255] of integer badChars : array[0..n-1] of integer
19
Algoritma : goodsuffix(n, P, goodsuffixes) prebadChars(n, P, badChars) i := 0 while (i <= m – n) do j := n – 1 while (j >= 0 n and T[i + j] = P[j]) do j := j – 1 endwhile if (j < 0) then ketemu[i] := true; shift := goodsuffixes[0] else badcharactershift := badChars[chartoint(T[i + j])] – n + j + 1 goodsuffixesshift := goodsuffixes[j] shift := max(badcharactershift, goodsuffixesshift) endif i := i + shift endwhile
2.5.4 Menghitung nilai good-suffix
Pada subbab ini, digunakan pattern “senang” sebagai contoh perhitungan
good-suffix. Tahapan menghitung nilai good-suffix dari pattern tersebut yaitu :
1. Pencocokkan dimulai dari karakter terakhir yaitu “g”, apabila karakter
terakhir pada teks bukan “g” maka geser 1 posisi sehingga nilai pergeserannya 1,
berlaku untuk semua pattern yang dicari.
Teks s e n a n x a b c d e f
Pattern s e n a n g
Pergeseran s e n a n g
2. Jika karakter “g” sudah cocok, tetapi karakter sebelumnya bukan “n” maka
geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks
tersebut bukan “senang”.
Teks s e n a x g a b c d e f
Pattern s e n a n g
Pergeseran s e n a n g
3. Jika karakter “ng” sudah cocok, tetapi karakter sebelumnya bukan “a”
maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks
tersebut bukan “senang”.
Teks s e n x n g a b c d e f
20
Pattern s e n a n g
Pergeseran s e n a n g
4. Jika karakter “ang” sudah cocok, tetapi karakter sebelumnya bukan “n”
maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks
tersebut bukan “senang”.
Teks s e x a n g a b c d e f
Pattern s e n a n g
Pergeseran s e n a n g
5. Jika karakter “nang” sudah cocok, tetapi karakter sebelumnya bukan “e”
maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks
tersebut bukan “senang”.
Teks s x n a n g a b c d e f
Pattern s e n a n g
Pergeseran s e n a n g
6. Jika karakter “enang” sudah cocok, tetapi karakter sebelumnya bukan “s”
maka geser pattern sebanyak 6 karakter sehingga nilai pergeserannya 6, karena teks
tersebut bukan “senang”.
Teks x e n a n g a b c d e f
Pattern s e n a n g
Pergeseran s e n a n g
Nilai pergeseran dari good-suffix yang sudah didapatkan :
Posisi 1 2 3 4 5 6
Pattern s e n a n g
Nilai pergeseran good-suffix 6 6 6 6 6 1
2.5.5 Pencarian dengan algoritma boyer moore
Sebelum melakukan pencarian dengan algoritma boyer moore, harus
mencari nilai pergeseran bad-character dan pergeseran good-suffix dari pattern
terlebih dahulu. Pattern dan teks yang digunakan adalah :
Pattern (p) : senang
Teks (t) : anak itu senang
21
Berdasarkan nilai pergeseran bad-character dan good-suffix yang sudah
didapatkan pada sub bab 2.5.2 dan sub bab 2.5.4. Tahapan pencocokkan antara
pattern dengan teks sebagai berikut :
Posisi 1 2 3 4 5 6
Pattern s e n a n g *
Nilai pergeseran bad-character (bc) 5 4 1 2 1 0 6
Nilai pergeseran good-suffix (gs) 6 6 6 6 6 1
1. Pencocokkan pertama, karakter “i” pada teks tidak cocok dengan karakter
“g” pada pattern sehingga nilai pergeseran good-suffix 1, karena ketidakcocokan
pada karakter terakhir. Karakter “i” tidak ada pada pattern, maka nilai pergeseran
bad-character 6. Karena nilai pergeseran bad-character lebih besar, maka geser
pattern sebanyak 6 karakter.
Teks a n a k i t u s e n a n g
Pattern s e n a n g
s e n a n g
2. Pencocokkan selanjutnya, karakter “n” pada teks tidak cocok dengan
karakter “g” pada pattern sehingga nilai pergeseran good-suffix 1, karena
ketidakcocokan pada karakter terakhir. Karakter “n” ada pada pattern, maka nilai
pergeseran bad-character 1. Karena nilai pergeseran sama, maka geser pattern
sebanyak 1 karakter.
Teks a n a k i t u s e n a n g
Pattern s e n a n g
s e n a n g
3. Pencocokkan selanjutnya, karakter “a” pada teks tidak cocok dengan
karakter “g” pada pattern sehingga nilai pergeseran good-suffix 1, karena
ketidakcocokan pada karakter terakhir. Karakter “a” ada pada pattern, maka nilai
pergeseran bad-character 2. Karena nilai pergeseran bad-character lebih besar,
maka geser pattern sebanyak 2 karakter.
Teks a n a k i t u s e n a n g
Pattern s e n a n g
22
s e n a n g
4. Pencocokkan selanjutnya, karena karakter pada pattern dan teks cocok,
maka pencocokkan dihentikan.
Teks a n a k i t u s e n a n g
Pattern s e n a n g
2.6 Pengujian
2.6.1 Pengujian Black Box
Pengujian ini mengarah kepada persyaratan fungsional perangkat lunak.
Pengujian memungkinkan penguji mendapatkan serangkaian kondisi input yang
memenuhi persyaratan fungsional suatu program. Pengujian berusaha menemukan
kesalahan dengan kategori seperti fungsi yang salah, kesalahan antarmuka,
kesalahan struktur data, kesalahan kinerja atau kesalahan inisialisasi. Pengujian
black box biasanya dilakukan pada tahap akhir pengujian (Nugroho dkk, 2009).
2.6.2 Pengujian White Box
Pengujian ini adalah metode desain kasus uji yang menggunakan struktur
kontrol desain prosedural untuk memperoleh kasus uji. Untuk pengujian pada
aplikasi multimedia Gegendingan Bali ini menggunakan jenis pengujian white box
basis path testing. Basis path testing memungkinkan untuk mengukur kompleksitas
logis dari rancangan procedural dan bisa digunakan sebagai pedoman untuk
menetapkan jalur eksekusi dasar (basis set) (Nugroho dkk, 2009).
Jenis ini menggunakan notasi flow graph yang menggambarkan aliran
kontrol logika. Untuk menentukan jalur independen dari graph digunakan nilai
kompleksitas siklomatis (ukuran kuantitatif terhadap kompleksitas suatu program
(Nugroho dkk, 2009). Ada 3 cara mencari kompleksitas siklomatis :
1. Jumlah region flow graph
2. Kompleksitas siklomatis V(G) untuk flow graph G dihitung V(G) = jumlah
edge – jumlah node + 2
3. V(G) = jumlah node predikat pada flow graph + 1
Nilai dari cyclomatic complexity (Aivosto, 2013), sebuah cyclomatic
complexity tinggi menunjukan prosedur kompleks yang sulit dipahami, tes dan
23
pengelolaan. Pada tabel 2.6 menjelaskan hubungan nilai cyclomatic complexity
dengan risiko dalam prosedur.
Tabel 2. 6 Hubungan cyclomatic complexity dengan risiko (Aivosto, 2013)
CC Jenis prosedur Risiko
1-4 prosedur sederhana Rendah
5-10 Prosedur stabil dan terstruktur Rendah
11-20 Prosedur yang lebih kompleks Sedang
21-50 Prosedur yang kompleks dan mengkhawatirkan Tinggi
>50 Kesalahan rawan, sangat merepotkan, prosedur tak
teruji
Sangat tinggi
2.6.3 Stress Testing
Pengujian ini dilakukan untuk melawan program pada keadaan abnormal.
Pengujian ini mengeksekusi sistem dalam kondisi kuantitas sumber daya yang
abnormal (Nugroho dkk, 2009). Pada pengujian ini menggunakan perangkat lunak
untuk pengujian web yang bernama webserver stress tool. Pengujian ini akan
memastikan bahwa pengguna mengakses web akan merasa nyaman dan tidak
terganggu. Jakob Nielsen menyarankan ambang batas kinerja untuk website seperti
pada tabel 2.7.
Tabel 2. 7 Tabel ambang batas kinerja untuk website (Paessler)
Waktu tunggu pengguna
saat mengakses
Reaksi Pengguna
< 0,1 detik Pengguna merasa bahwa sistem bereaksi seketika
< 1,0 detik Pengguna tidak terganggu. Pengguna tidak senang
dengan menunggu, tapi pengguna masih fokus pada
halaman web saat ini
< 10 detik Menunggu mendekati 10 detik, penelitian
menunjukkan bahwa kemungkinan gangguan
pengguna sangat meningkat
> 10 detik Pengguna kemungkinan besar terganggu dari situs
yang diakses dan kehilangan minat
24
Pengujian dilakukan dengan metode Click Test, tes ini diuji dengan
melakukan klik pada web. Tes ini selesai ketika jumlah klik yang diuji untuk web
oleh setiap pengguna terpenuhi. Tes ini cocok untuk menguji urutan halaman web
tertentu.
2.6.4 Pengujian Input Data
Pengujian input data ini adalah tindakan untuk menguji edit dan kontrol
dalam pemasukan data, misalnya : validasi dan cek digit. Ada beberapa pengujian
saat input data seperti pengecekan karakter, pengecekan nilai numerik, pengecekan
digit, pengujian batas, pengujian kelogisan, kompatibilitas internal, cek data silang,
transaksi ganda dan lain sebagainya (Supriyanto, 2005).
2.6.5 Penilaian Relevansi
Penilaian relevansi dimaksudkan untuk menyatakan dokumen mana yang
dinilai sesuai atau tepat dari dokumen-dokumen yang telah ditemukan dari proses
temu balik informasi. Ada dua hal penting yang biasanya digunakan sebagai acuan
dalam mengukur kemampuan suatu Sistem Temu Balik Informasi (STBI) yaitu
perolehan (recall) dan ketepatan (precision/presisi) (Hasugian, 2006).
Perolehan berhubungan dengan kemampuan sistem untuk memanggil
dokumen yang relevan sedangkan ketepatan berkaitan dengan kemampuan sistem
untuk tidak memanggil dokumen yang tidak relevan. Recall sebenarnya sulit diukur
karena jumlah seluruh dokumen yang relevan dalam database sangat besar. Oleh
karena itu presisi-lah yang biasanya menjadi salah satu ukuran yang digunakan
untuk menilai keefektifan suatu STBI (Hasugian, 2006). Menghitung presisi
menggunakan rumus :
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝐽𝑢𝑚𝑙𝑎ℎ 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑟𝑒𝑙𝑒𝑣𝑎𝑛 𝑦𝑎𝑛𝑔 𝑡𝑒𝑟𝑎𝑚𝑏𝑖𝑙
𝐽𝑢𝑚𝑙𝑎ℎ 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑦𝑎𝑛𝑔 𝑡𝑒𝑟𝑎𝑚𝑏𝑖𝑙 𝑑𝑎𝑙𝑎𝑚 𝑝𝑒𝑛𝑐𝑎𝑟𝑖𝑎𝑛
Rentang nilai ketepatan yang digunakan adalah 0 sampai 1, dengan toleransi
2 digit dibelakang koma. Ada tiga kelas presisi yaitu : presisi tinggi, sedang dan
rendah. Tolak ukur yang digunakan untuk menyatakan kategori tersebut ialah skala
interval dengan mencari selisih kemungkinan angka presisi tertinggi (1) dengan
kemungkinan angka presisi terendah (0) kemudian dibagi 3 sesuai kategori
penilaian, riilnya adalah (1-0) : 3 = 0,33 (Hasugian, 2006).
25
Tabel 2. 8 Tiga kategori precision (Hasugian, 2006)
No Kategori Rentang (angka precision)
1 Presisi rendah 0,00 – 0,33
2 Presisi sedang 0,33 – 0,66
3 Presisi tinggi 0,67 – 1,00
Untuk pengujian pencarian lirik Gegendingan Bali pada aplikasi multimedia
Gegendingan Bali ini menggunakan penilaian ketepatan (precision).
2.7 Tinjauan Studi
2.7.1 Penerapan Algoritma Boyer Moore pada Aplikasi Pengajuan Judul
Skripsi Berbasis Web (Ginting, 2014)
Pada jurnal penelitian tersebut, penulis membuat aplikasi pengajuan judul
skripsi berbasis web dengan menerapkan algoritma Boyer Moore. Penulis melakukan
pengujian algoritma tersebut dengan mencocokan antara kata kunci dengan judul
skripsi yang dicari. Aplikasi ini dibangun dengan bahasa pemrograman CSS, PHP dan
MySQL. Pengujian dilakukan dengan membandingkan 2 judul dalam 12 tahap. Dari
hasil perbandingan kedua judul tersebut didapatkan hasil persentase kesamaan kata
11.11 % atau 3 kata yang cocok dari 9 kata yang di uji.
Dari kesimpulan yang didapatkan penulis, algoritma Boyer Moore cocok
digunakan untuk melakukan pencarian string tetapi tidak cocok digunakan untuk
mengambil informasi dari kecocokan string berdasarkan satu kata atau lebih. Pada
jurnal penelitian ini, masih menggunakan bahasa pemrograman PHP dan MySQL
sehingga hanya bisa dijalankan pada perangkat keras komputer dan penulis belum
menerapkan pada perangkat smartphone atau tablet.
2.7.2 Rancang Bangun Aplikasi Pengenalan dan Pembelajaran Seni
Karawitan Berbasis Multimedia Studi Kasus Komunitas Turus
(Hidayat, 2014)
Pada jurnal penelitian ini, penulis membuat suatu aplikasi yang bisa digunakan
sebagai media pengenalan dan pembelajaran seni karawitan. Untuk metode
pengembangan penulis menggunakan metode pengembangan menurut Luther yang
terdiri dari 6 tahap, yaitu konsep, perancangan, pengumpulan bahan, pembuatan,
26
pengujian dan distribusi. Pada aplikasi ini menggunakan algoritma pencarian
sequential.
Aplikasi ini menggunakan bahasa pemrograman Java dan PHP untuk database
pada aplikasi ini menggunakan MySQL. Untuk pengujian, penulis melakukan
pengujian sebanyak 13 kali terhadap aplikasi tersebut. Pada jurnal ini, penulis tidak
menjelaskan beberapa hardware yang digunakan, seperti smartphone maupun
komputer karena pada pengujian terdapat uji login dan pengelolaan data namun pada
aplikasi tidak terdapat fasilitas tersebut.
2.7.3 Implementasi Algoritma Boyer-Moore pada Aplikasi Kamus
Kedokteran Berbasis Android (Argakusumah dkk, 2014)
Pada jurnal penelitian ini, penulis menerapkan algoritma pencarian string
Boyer-Moore pada aplikasi kamus kedokteran. Aplikasi ini menggunakan bahasa
pemrograman Java berbasis android. Untuk database pada aplikasi ini menggunakan
SQLite. Pengujian pada aplikasi ini dilakukan oleh 45 orang responden. 45 orang
tersebut terdiri dari dokter, perawat, bidan dan mahasiswa kedokteran. Pengujian ini
menggunakan 4 parameter yang diujikan, seperti kemudahan menggunakan aplikasi,
keakuratan kata dengan hasil proses pencarian, keindahan desain dan manfaat yang bisa
diberikan.
Dari hasil pengujian, pencarian kata menggunakan algoritma Boyer-Moore
berhasil dilakukan dengan persentase sebesar 100%. Responden yang menguji
menyatakan bahwa proses pencarian memberikan penjelasan yang sesuai dengan yang
diharapkan. Pada jurnal penelitian ini, uji coba pencarian hanya dilakukan terhadap 8
istilah pada kedokteran sehingga kemungkinan pada perbendaharaan katanya masih
kurang.