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.
5
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 unitunit 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
Use case
Deskripsi Fungsionalitas yang disediakan sistem
use case
sebagai unit-unit yang saling bertukar pesan antar unit atau aktor. Use case biasanya diawali dengan kata kerja di awal nama use case.
Aktor
Orang, proses atau sistem lain yang berinteraksi dengan sistem informasi nama aktor
yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri. Walaupun symbol aktor berbentuk gambar orang belum tentu aktor merupakan orang.
Asosiasi
/
Komunikasi antara aktor dan use case
association
yang berpartisipasi pada use case atau use case memiliki interaksi dengan aktor.
Ekstensi / extend
Relasi use case tambahan ke sebuah <<extend>>
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
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 Package
Simbol
Deskripsi Package merupakan sebuah bungkusan dari satu atau lebih kelas
Kelas
Kelas pada struktur sistem
Antarmuka /
Sama dengan konsep interface dalam
interface
pemrograman berorientasi objek
Asosiasi /
Relasi antar kelas dengan makna
Association
umum, asosiasi biasanya juga disertai dengan multiplicity
Asosiasi berarah/
Relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas yang
11
Directed
lain, asosiasi biasanya juga disertai
association
dengan multiplicity
Generalisasi
Relasi antar kelas dengan makna generalisasi
-
spesialisasi
(umum
khusus) Kebergantungan /
Relasi antar kelas dengan makna
Dependency
kebergantungan antar kelas
Agregasi /
Relasi antar kelas dengan makna
agregation
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
Orang, proses, atau sistem lain yang
garis hidup
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
Menyatakan objek yang berinteraksi Nama_objek : nama_kelas
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
mengirimkan
data
suatu /
objek
masukan
/
informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi Pesan tipe
1: keluaran
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
Menyatakan suatu objek mengakhiri
destroy
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
Status awal
Deskripsi Status awal aktivitas sistem
Aktivitas
aktivitas
Aktivitas yang dilakukan sistem. Penamaan biasanya diawali dengan kata kerja
Percabangan
/
Jika ada pilihan aktivitas lebih dari
decision
satu
Penggabungan
/
Asosiasi penggabungan dimana lebih
join
dari
satu
aktivitas
digabungkan
menjadi satu Status akhir
Status akhir yang dilakukan sistem
Swimlane
Memisahkan organisasi bisnis yang
Title nama swimlane
yang terjadi
Phase
2.3.5
bertanggung jawab terhadap bisnis
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
Simbol
Deskripsi
Komponen Entitas / entity
Nama_entitas
Entitas merupakan data inti yang akan disimpan atau bakal tabel pada basis data
Atribut
Kolom data yang disimpan dalam Nama_atribu t
suatu entitas
14
Atribut kunci
Nama_atribut
primer
Kolom data yang disimpan dalam suatu entitas dan digunakan sebagai kunci akses tabel
Atribut
Kolom data yang disimpan dalam Nama_atribut
multinilai
suatu entitas yang memiliki nilai lebih dari satu
Relasi
Komponen yang menghubungkan Nama _relasi
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).
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
Pattern
s
e
n
a
n
g
s
e
n
a
n
Pergeseran
a
b
c
d
e
f
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
Pattern
s
e
n
a
n
g
Pergeseran 3.
a
b
c
d
e
f
s
e
n
a
n
g
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
Pattern
s
e
n
a
n
g
Pergeseran
a
b
c
d
e
f
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
Pattern
s
e
n
a
n
g
Pergeseran
a
b
c
d
e
f
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
Pattern
s
e
n
a
n
g
Pergeseran
a
b
c
d
e
f
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
Pattern
s
e
n
a
i n
t
u
s
e
s
e
n
a
n
g
a
n
g
g n
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
Pattern
t
u
s
e s
s
e
n
n
a
n
g
e
n
a
n
a
n
g
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 Pattern
a
n
a
k
i
t
u s
e
s
e
n
a
n
a
n
g
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
Pattern
i
t
u
s
e
n
a
n
g
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 Sangat tinggi teruji
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
Reaksi Pengguna
saat mengakses < 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 menunjukkan
mendekati bahwa
10
detik,
penelitian
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.