BAB II TINJAUAN PUSTAKA - sinta.unud.ac.id 2.pdf · Android adalah sistem operasi untuk telepon...

22
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.

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.