Top Banner
FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT i KATA PENGANTAR Puji syukur kepada Tuhan yang Maha Esa atas berkat dan rahmat-Nya yang di berikan kepada penulis, sehingga skripsi yang berjudul “Apliksi Buku Nyanyian Elektronik GMIM berbasis Android” dapat diselesaikan. Adapun skripsi ini dibuat untuk memenuhi persyaratan kurikulum Sarjana Strata-1 pada program studi Teknik Informatika di Universitas Klabat. Penulis menyadari bahwa skripsi ini dapat diselesaikan bukanlah sematamata atas usaha penulis sendiri. Skripsi ini dapat diselesaikan karena bantuan, bimbingan, dan dorongan yang diterima oleh penulis dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terima kasih pada : 1. Bapak Ir. Edson Yahuda Putra, M.Kom selaku Dekan Fakultas Ilmu Komputer Universitas Klabat
221

SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

Dec 27, 2015

Download

Documents

Aldo Christian

Android user
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATi

KATA PENGANTAR

Puji syukur kepada Tuhan yang Maha Esa atas berkat dan rahmat-Nya

yang di berikan kepada penulis, sehingga skripsi yang berjudul “Apliksi Buku

Nyanyian Elektronik GMIM berbasis Android” dapat diselesaikan. Adapun

skripsi ini dibuat untuk memenuhi persyaratan kurikulum Sarjana Strata-1 pada

program studi Teknik Informatika di Universitas Klabat.

Penulis menyadari bahwa skripsi ini dapat diselesaikan bukanlah

sematamata atas usaha penulis sendiri. Skripsi ini dapat diselesaikan karena

bantuan, bimbingan, dan dorongan yang diterima oleh penulis dari berbagai pihak.

Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terima kasih

pada :

1. Bapak Ir. Edson Yahuda Putra, M.Kom selaku Dekan Fakultas Ilmu

Komputer Universitas Klabat

2. Bapak Stenly Pungus, S.Kom, M.T selaku ketua program studi Teknik

Informatika Fakultas Ilmu Komputer

3. Anggota tim penguji yakni bapak Green Mandias, S.Kom, M.Cs dan

bapak Reynoldus Sahulata, MM

4. Bapak Phaneendra Puppala, M.Sc selaku dosen pembimbing skripsi

yang telah memberikan pengarahan , dukungan , dorongan semangat

Page 2: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATii

dan banyak membantu dalam penulisan, baik kritik maupun saran

dalam penyelesaian skripsi ini

5. Para dosen di Universitas Klabat khususnya di Fakultas Ilmu

Komputer

6. Orang tua yang sudah memberikan dukungan baik mental maupun

spiritual

7. Derby selaku administrator kidungonline.com, Rhye, Engka, Angel,

Andrew, dan teman-teman kaskus sub-forum Android yang sudah

memberikan bantuan langsung hingga selesainya skripsi ini

8. Teman-teman angkatan 2010 Fakultas Ilmu Komputer yang tidak

dapat disebutkan satu persatu yang telah memberikan masukan,

bantuan dan dukungan yang bermanfaat bagi penulis

Penulis juga menyadari bahwa dalam skripsi ini masih terdapat banyak

kekurangan karena keterbatasan pengetahuan dan pengalaman penulis. Oleh

karena itu, penulis mengharapkan adanya saran dan tanggapan yang mengarahkan

skripsi ini ke arah yang lebih sempurna.

Semoga skripsi ini dapat memberikan manfaat yang baik bagi pembaca,

pihak yang membutuhkan dan memberikan hasil yang baik dimasa yang akan

datang.

Airmadidi, Mei 2014

Page 3: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATiii

Penulis

Page 4: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATiv

ABSTRAK

Tiap gereja memiliki buku nyanyian untuk mengisi puji-pujian pada ibadah. Sebuah organisasi gereja yakni Gereja Masehi Injili di Minahasa menggunakan lima buku nyanyian untuk mengisi puji-pujian pada ibadah. Banyaknya buku nyanyian ini membuat jemaat bingung untuk belajar lagu pada tiap buku dan tidak praktis apabilia seluruh buku ini harus di bawah pada tempat ibadah. Untuk itu dikembangkan aplikasi buku nyanyian elektronik GMIM pada smartphone Android. Pengembangan aplikasi menggunakan proses model Waterfall dan metodologi penelitian yang yakni rekayasa perangkat lunak. Aplikasi ini bertujuan memberikan kemudahan pada pengguna untuk tidak perlu lagi membawa buku nyanyian pada tempat ibadah dan kemudahan untuk belajar lagu individual. Dan untuk organisasi gereja yakni mengurangi biaya untuk penggunaan kertas dan masalah ketersediaan proyektor ada acara ibadah. Perancangan aplikasi disesuaikan dengan prinsip desain Android sehingga tidak diperlukan pengguna dengan kemampuan komputasi yang tinggi.

Kata Kunci : Buku, Nyanyian, GMIM, Smartphone, Android.

Page 5: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATv

ABSTRACT

Each church has to fill a songbook of praise in worship. An organization of the church Evangelical Church in Minahasa using five song books to fill in the praise worship. This makes many church hymnals confused to learn the songs in each book and impractical apabilia throughout this book should be at the bottom of the place of worship. For applications that are developed electronic songbook GMIM on Android smartphones.

Application development using the Waterfall model and the research methods used in the following study of the literature on similar studies, analysis of similar applications in a play store and data collection in the form of observation. This application gives users the freedom to not have to carry a book singing at places of worship and the ease to learn the songs individually. And for the church organization that reduces costs for paper usage and availability problems exist service the projector. Customized application design with the design principles of Android so that users do not need high computing capabilities

Kata Kunci : Book, Song, GMIM, Smartphone, Android.

Page 6: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATvi

DAFTAR ISI

LEMBAR PENGESAHAN

LEMBAR PERYATAAN KEASLIAN

KATA PENGANTAR.............................................................................................i

ABSTRAK.............................................................................................................iii

ABSTRACT............................................................................................................iv

DAFTAR ISI...........................................................................................................v

DAFTAR GAMBAR..............................................................................................x

DAFTAR TABEL...............................................................................................xiii

BAB I PENDAHULUAN

1.1 Latar Belakang Masalah............................................................................1

1.2 Perumusan Masalah..................................................................................3

1.3 Tujuan Penelitian......................................................................................3

1.4 Manfaat Penelitian....................................................................................3

1.5 Kerangka Teori.........................................................................................4

1.6 Kerangka Konseptual................................................................................6

1.6.1 Kerangka Konseptual Penelitian.................................................6

1.6.2 Kerangka Konseptual Aplikasi....................................................8

Page 7: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATvii

1.7 Cakupan dan batasan...............................................................................10

1.7.1 Cakupan.....................................................................................10

1.7.2 Batasan......................................................................................11

1.8 Daftar Istilah...........................................................................................11

BAB II TINJAUAN LITERATUR

2.1 Notasi Musik...........................................................................................13

2.2 Smartphone.............................................................................................15

2.3 Android...................................................................................................16

2.4 Java..........................................................................................................18

2.5 SQLite.....................................................................................................19

2.6 Android Development Tools...................................................................19

2.7 Eclipse.....................................................................................................20

2.8 Midi.........................................................................................................20

2.9 Buku Nyanyian.......................................................................................21

2.9.1 Kidung Jemaat...........................................................................21

2.9.2 Pelengkap Kidung Jemaat.........................................................23

2.9.3 Nyanyikanlah Kidung Baru.......................................................25

2.9.4 Nyanyikanlah Nyanyian Baru bagi Tuhan................................26

2.9.5 Kumpulan Lagu Ibadah-Ibadah Kreatif dan Kebaktian

Page 8: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATviii

Kebangunan Rohani..................................................................27

2.10 Unified Modeling Language (UML).......................................................27

2.10.1 Use-Case Diagram.....................................................................28

2.10.2 Class Diagram...........................................................................29

2.10.3 Sequence Diagram.....................................................................31

2.10.4 Activity Diagram.......................................................................31

2.11 Rekayasa Perangkat Lunak.....................................................................32

2.12 Penelitian Terkait....................................................................................34

BAB III METODOLOGI PENELITIAN

3.1 Desain Penelitian.....................................................................................35

3.2 Instrumentasi Penelitian..........................................................................35

3.2.1 Jenis Data...................................................................................35

3.2.2 Teknik Pengumpulan Data........................................................35

3.2.3 Instrumen Pengumpulan Data...................................................36

3.2.4 Prosedur Pengumpulan Data.....................................................36

3.3 Lingkungan Pengembangan Aplikasi.....................................................36

BAB IV ANALISIS DAN PERANCANGAN SISTEM

4.1 Analisis....................................................................................................38

4.2 Perancangan Aplikasi..............................................................................38

Page 9: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATix

4.2.1 Use Case Diagram.....................................................................38

4.2.2 Package Diagram.......................................................................44

4.2.3 Class Diagram...........................................................................45

4.2.4 Sequence Diagram.....................................................................49

4.2.5 Activity Diagram.......................................................................56

4.3 Perancangan Tatap Muka........................................................................63

4.3.1 Splash Screen.............................................................................63

4.3.2 Daftar Lagu................................................................................64

4.3.3 Lirik...........................................................................................64

4.3.4 Not angka...................................................................................65

4.4 Perancangan Struktur Data......................................................................66

4.5 Perancangan Algoritma...........................................................................67

BAB V IMPLEMENTASI

5.1 Lingkungan Implementasi.......................................................................73

5.2 Implementasi Antar Muka......................................................................73

5.3 Implementasi Struktur Data....................................................................78

5.4 Implementasi Algoritma.........................................................................79

5.5 Pengujian.................................................................................................84

5.5.1 Whitebox....................................................................................84

Page 10: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATx

5.5.2 Blackbox....................................................................................91

5.5.3 Feedback....................................................................................94

BAB VI KESIMPULAN DAN SARAN

5.6 Kesimpulan.............................................................................................97

5.7 Saran........................................................................................................97

DAFTAR PUSTAKA...........................................................................................99

LAMPIRAN I : JADWAL PENELITIAN.......................................................102

LAMPIRAN II : KARTU KONSULTASI.......................................................103

LAMPIRAN III : SURAT PERYATAAN.......................................................104

LAMPIRAN IV : DAFTAR KETERSEDIAAN NOT ANGKA

DAN MIDI………………………………………………...105

LAMPIRAN VI : KODE PROGRAM.............................................................117

LAMPIRAN VII : BIODATA.............................................................................155

Page 11: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATxi

DAFTAR GAMBAR

Gambar 1.1 Proses model Waterfall........................................................................5

Gambar 1.2 Kerangka konseptual penelitian...........................................................7

Gambar 1.3 Kerangka konseptual aplikasi..............................................................9

Gambar 2.1 Contoh not balok................................................................................13

Gambar 2.2 Contoh not angka...............................................................................14

Gambar 2.3 Arsitektur Android.............................................................................17

Gambar 2.4 Contoh Use-Case diagram.................................................................27

Gambar 2.5 Contoh Class diagram........................................................................29

Gambar 2.6 Contoh Sequence diagram..................................................................29

Gambar 2.7 Contoh Activity diagram.....................................................................30

Gambar 2.8 Lapisan rekayasa perangkat lunak.....................................................31

Gambar 4.1 Use Case diagram..............................................................................38

Gambar 4.2 Package diagram................................................................................43

Gambar 4.3 Class diagram.....................................................................................47

Gambar 4.4 Sequence diagram pencarian..............................................................49

Gambar 4.5 Sequence diagram melihat lirik.........................................................49

Page 12: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATxii

Gambar 4.6 Sequence diagram lirik berikutnya....................................................51

Gambar 4.7 Sequence diagram lirik sebelumnya..................................................52

Gambar 4.8 Sequence diagram mengatur instrumen.............................................53

Gambar 4.9 Sequence diagram mengatur lagu favorit..........................................55

Gambar 4.10 Sequence diagram melihat not angka..............................................55

Gambar 4.11 Sequence diagram pengaturan.........................................................55

Gambar 4.12 Activity diagram pencarian..............................................................56

Gambar 4.13 Activity diagram melihat lirik..........................................................57

Gambar 4.14 Activity diagram lirik berikutnya.....................................................58

Gambar 4.15 Activity diagram lirik sebelumnya...................................................59

Gambar 4.16 Activity diagram mengatur instrumen..............................................60

Gambar 4.17 Activity diagram mengatur lagu favorit...........................................61

Gambar 4.18 Activity diagram melihat not angka.................................................62

Gambar 4.19 Activity diagram pengaturan............................................................62

Gambar 4.20 Tatap muka splash screen................................................................63

Gambar 4.21 Tatap muka daftar lagu.....................................................................64

Gambar 4.22 Tatap muka lirik...............................................................................65

Gambar 4.23 Tatap muka not angka......................................................................66

Gambar 4.24 Struktur data.....................................................................................66

Page 13: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATxiii

Gambar 5.1 Tampilan splash screen......................................................................74

Gambar 5.2 Tampilan daftar lagu..........................................................................75

Gambar 5.3 Tampilan lirik.....................................................................................76

Gambar 5.4 Tampilan not angka............................................................................77

Page 14: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABATxiv

DAFTAR TABEL

Tabel 2.1 Versi Android ......................................................................................... 16

Tabel 2.2 Kategori lagu Kidung Jemaat ................................................................. 21

Tabel 2.3 Kategori lagu Pelengkap Kidung Jemaat ............................................... 23

Tabel 2.4 Kategori lagu Nyanyikanlah Kidung Baru ............................................ 25

Tabel 5.1 Implementasi struktur data .....................................................................78

Tabel 5.2 Pengujian degan metode whitebox .........................................................84

Tabel 5.2 Pengujian degan metode blackbox ......................................................... 91

Tabel 5.3 Hasil feedback untuk pengembang ........................................................ 85

Tabel 5.3 Hasil feedback untuk pengguna ............................................................. 8 6

Page 15: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT1

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Hasil dari majunya teknologi informasi yakni penggunaan smartphone

pada masyarakat luas. Tidak hanya pada kalangan dewasa tapi anak-anak juga

sehingga smartphone telah menjadi salah satu gaya hidup dan pilihan bantuan

untuk beraktivitas tiap harinya. “Fungsi smartphone kini juga sudah mengganti

beragam gadget seperti jam alarm, konsol game dan digital kamera. Beragam

perangkat tersebut kini sudah bisa menyatukan fungsinya di smartphone“ [1].

Sampai sekarang smartphone telah beredar luas dengan berbagai macam jenis

sistem operasi. Berdasarkan data yang dikutip dari comScore [2] sebuah situs

organisasi layanan analisa data di Amerika memberikan informasi penggunaan

perangkat smartphone dengan OS Android yang semakin tinggi dari desember

2011 sampai desember 2012. Dikutip juga dari dailysocial.net [3], lembaga riset

pasar GfK merilis perhitungannya untuk penjualan smartphone di Asia Tenggara

sepanjang periode Januari-Maret 2013 (Kuartal Pertama/Q1). Menurut

perhitungan GfK, seperti dikutip dari CNET Asia [4], dari 12,8 juta smartphone

yang terjual di semua negara Asia Tenggara, 8,8 juta di antaranya (69%)

merupakan smartphone Android. Dari data tersebut dilansir juga penjualan

Android Indonesia mendominasi dengan angka 51% dari total keseluruhan

smartphone.

Page 16: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT2

Berdasarkan data dari comScore, dailysocial.net dan GfK, penggunaan

smartphone dengan basis Android semakin banyak dan diikuti juga dengan

banyaknya aplikasi yang beredar di playstore. Buku dan referensi merupakan

bagian kategori aplikasi di playstore. “Buku merupakan kumpulan kertas atau

bahan lainnya yang dijilid menjadi satu pada salah satu ujungnya dan berisi

tulisan atau gambar namun seiring perkembangan teknologi maka adapun istilah

buku eletronik (ebook) yang mengandalkan perangkat komputer, smartphone, dan

tablet” [5]. Dengan menggunakan aplikasi buku elektronik maka pengguna tidak

perlu membawa buku kemana-mana karena sudah tersimpan pada smartphone

miliknya.

Adapun organisasi gereja yang tergabung di Persekutuan Gereja di

Indonesia (PGI), Gereja Masehi Injili di Minahasa (GMIM) merupakan organisasi

gereja yang menggunakan lima buku nyanyian yakni Kidung Jemaat (KJ),

Pelengkap Kidung Jemaat (PKJ), Nyayikanlah Kidung Baru (NKB),

Nyanyikanlah Nyanyian Baru bagi Tuhan (NNBT), dan Kumpulan Lagu Ibadah

Kreatif dan KKR (KLIK). Banyaknya buku nyanyian ini dinilai tidak praktis dan

sulit untuk mempelajari lagu dari seluruh buku nyanyian yang ada. Solusi yang

diberikan oleh GMIM adalah tersediahnya proyektor sehingga jemaat dapat

melihat lirik lagu pada layar proyektor. Namun penggunaan layar proyektor

memberikan keterbatasan seperti tempat yang tidak luas dan sulit dilihat oleh

anggota jemaat. Untuk itu proyektor tidak dipergunakan pada ibadah di rumah

anggota jemaat atau tempat ibadah yang luasnya tidak memungkinkan untuk

Page 17: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT3

diletakkan proyektor. Solusi lain juga diberikan oleh gereja dengan memberikan

lirik lagu yang telah diperbanyak, tentunya hal ini memberikan biaya untuk

penggunaan hanya sekali pakai untuk satu ibadah. Untuk digunakan kembali,

harus di sunting kemudian perbanyak kembali. Untuk itu diharapkan aplikasi

buku nyanyian GMIM yang didalamnya telah meliputi KJ, PKJ, NKB, NNBT,

dan KLIK pada platform Android dapat memberikan solusi kemudahan pengguna

atau jemaat untuk menggunakan dan belajar lagu pada buku nyanyian yang ada.

1.2 Perumusan Masalah

Peneliti mengembangkan aplikasi buku nyanyian elektronik GMIM yang

digunakan pada smartphone berbasis Android, dengan rumusan masalah yang ada

yaitu :

Bagaimana mengembangkan aplikasi buku nyanyian elektronik GMIM

pada smartphone dengan sistem operasi Android?

1.3 Tujuan Penelitian

Tujuan peneliti adalah mengembangkan aplikasi buku nyanyian elektronik

GMIM pada smartphone dengan sistem operasi Android dilengkapi iringan

instrument dengan format MIDI.

1.4 Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah:

Bagi anggota jemaat:

Page 18: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT4

1. Memberikan kemudahan dengan hanya membawa smartphone

pada tempat pelaksanaan ibadah

2. Untuk belajar lagu secara individual.

Bagi gereja:

1. Mengurangi biaya untuk penggunaan kertas

2. Mengatasi masalah penggunaan proyektor yang tidak

memungkinkan pada tempat yang tidak luas dan terhalang hingga

sulit untuk dilihat anggota jemaat

Bagi peneliti untuk pengembangan selanjutnya dan sebagai refrensi

penelitian yang mirip atau sejenis.

1.5 Kerangka Teori

Peneliti menggunakan proses model Waterfall. Menurut Pressman[6],

Waterfall model atau yang sering disebut classic life cycle, yang menganjurkan

pendekatan secara sistematik dan sequential pada permulaan pengembangan

software dengan kebutuhan customer specification yang dimulai pada tingkat

planning, modeling, construction dan deployment tanpa berhenti sampai

terpenuhinya sebuah software yang lengkap. Tahapan atau alur model Waterfall

dapat dilihat pada penting seperti spesifikasi, pembangunan, validasi, dan evolusi

yang direpresentasikan dalam beberapa tahapan proses seperti tuntutan spesifikasi,

desain sistem dan software, implementasi dan unit testing, intregasi dan system

testing, operasi dan maintenance.

Page 19: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT5

Gambar 1.1 merupakan garis besar dari tahapan pada Waterfall model

yang memberikan Gambaran tahapan pengembangan aplikasi. Berikut adalah

penjelasan untuk tahapan pada Waterfall model yaitu :

1. Communication, melakukan persiapan projek dan mengumpulkan

informasi tentang projek.

2. Planning, tahap ini dilakukan penjadwalan penelitian dan

menentukan estimasi waktu.

3. Modeling, melakukan analisis dan menarik kesimpulan dari seluruh

data yang dikumpulkan dan melakukan desain perancangan pada

aplikasi

Gambar 1.1 Proses model Waterfall [6]

Page 20: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT6

4. Construction, dari hasil modeling dilakukan implementasi kode

program dan melakukan pengujian pada kode program

5. Deployment, tahap akhir ini dilakukannya publikasi untuk

mendapatkan feedback dari pengguna.

1.6 Kerangka Konseptual

Pada bagian ini dibahas mengenai kerangka konseptual penelitian dan

kerangka konseptual aplikasi yang digunakan sebagai dasar pembuatan aplikasi

buku nyanyian GMIM berbasis Android.

1.6.1 Kerangka Konseptual Penelitian

Adapun langkah-langkah penelitian berdasarkan Gambar 1.2 yakni:

1. Komunikasi, peneliti melakukan pengumpulan data dengan

melakukan studi literatur pada penelitian dan aplikasi sejenis, dan

melakukan studi pada tiap buku nyanyian GMIM. Hasil dari tahap

ini yakni Software Requirement Specifications.

2. Perencanaan, peneliti melakukan penjadwalan untuk penelitian

yang disesuaikan dengan estimasi waktu.

3. Analisis, peneliti membuat ringkasan dari hasil pengumpulan data

kemudian melakukan analisis dan menarik kesimpulan dengan

menggunakan pendekatan orientasi objek menggunakan Unified

Modeling Language (UML). Hasil analisis dimuat menjadi Use-

Gambar 1.0.2 Kerangka konseptual penelitian

Page 21: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT7

Case diagram, class diagram, sequence diagram dan activity

diagram. Peneliti menggunakan tools DIA untuk membuat UML.

4. Perancangan, pada tahap ini berdasarkan Use-Case diagram, class

diagram, sequence diagram dan activity diagram kemudian

dilakukan perancangan tatap muka, struktur data, arsitektur dan

algoritma.

Perencanaan

Analisis

Perancangan Aplikasi

Pengkodean

Pengujian

Komunikasi

Instalasi

Gambar 1.2 Kerangka konseptual penelitian

Page 22: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT8

5. Pengkodean, proses pengkodean dilakukan dimana peneliti

menggunakan bahasa pemrograman Java pada platform Android.

Peneliti menggunakan tools pendukung untuk pengkodean yakni

Android Development Tools yang didalamnya sudah ada Eclipse

IDE dan terintegrasi dengan SDK Android.

6. Pengujian, peneliti melakukan pengujian kode program dengan

metode whitebox bagi peneliti sendiri dan blackbox bagi pengguna.

Setelah pegujian whitebox, kode program di gabungkan dengan

kode program lain untuk menjadi sebuah program dan kemudian

dilakukan pengujian secara menyeluruh yakni blackbox.

7. Instalasi, penyerahan aplikasi untuk dilakukan instalasi, setelah itu

pengguna memberikan feedback dilihat dari segi kemampuan dan

desain tatap muka aplikasi. Feedback ini lebih dikhususkan pada

pengembang yakni peneliti sendiri. Dan feedback dilihat dari segi

masalah sesuai latar belakang. Feedback ini lebih dikhususkan

pada pengguna.

1.6.2 Kerangka Konseptual Aplikasi

Berikut merupakan kerangka konseptual aplikasi buku nyanyian elektronik

GMIM berbasis Android.

Berdasarkan Gambar 1.3, pengguna memulai dengan membuka aplikasi

yang berjalan pada smartphone Android. Berikut adalah fungsi dan fitur pada

aplikasi :

Page 23: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT9

1. Pencarian, pengguna melakukan pencarian dengan menggunakan

nomor atau judul lagu berdasarkan buku nyanyian atau daftar lagu

favorit. Aplikasi melakukan filter pada daftar lagu sesuai input

pengguna.

INCLUDEPICTURE

"http://icons.iconarchive.com/icons/oxygen-icons.org/oxygen/32/Devices-media-

optical-audio-icon.png" \* MERGEFORMATINET INCLUDEPICTURE

"http://icons.iconarchive.com/icons/gakuseisean/ivista-2/64/Misc-Database-3-

icon.png" \* MERGEFORMATINET INCLUDEPICTURE

"http://icons.iconarchive.com/icons/iconshock/real-vista-project-managment/64/

data-management-icon.png" \* MERGEFORMATINET INCLUDEPICTURE

"http://icons.iconarchive.com/icons/oxygen-icons.org/oxygen/48/Devices-media-

optical-audio-icon.png" \* MERGEFORMATINET INCLUDEPICTURE

"http://icons.iconarchive.com/icons/oxygen-icons.org/oxygen/64/Devices-media-

optical-audio-icon.png" \* MERGEFORMATINET INCLUDEPICTURE

"http://icons.iconarchive.com/icons/hopstarter/sleek-xp-basic/32/Folder-icon.png"

\* MERGEFORMATINET

Response (3)

Pencarian menggunakan nomor atau judul lagu berdasarkan buku nyayian atau daftar lagu favorit

Penanda lagu (favorite)

Kontrol instrument (Play, pause dan stop)

Melihat lirik lagu

Melihat not angka

Resources( SD Card)

Sdcard/Android/ Data/com.egmim

Request (1)(2)

(3)(4)(5)

Database

SQLite

Response

(1)(2)

Requet (3)

(5)

Response

(5)

Media framework

R

e

s

p

o

n

s

e

(

3

)

R

e

s

p

o

n

d

R

e

q

u

e

s

t

P

e

n

g

g

u

n

a

Aplikasi Buku Nyanyian

Elektronik GMIM

R

e

s

/

r

a

w

R

e

q

u

e

s

t

(

4

)

Res

pon

se

(4)

Page 24: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT10

2. Penanda lagu, pengguna memilih dan menandai lagu favoritnya.

Aplikasi memasukkan tanda lagu favorit pada database dan kemudian

memberikan hasil berbentuk informasi pesan bahwa lagu yang dipilih

sudah ditandai atau dihilangkan dari favorit

3. Pengguna mengontrol instrument (play, pause, stop). Aplikasi

mengambil file lagu dari resource dan menggunakan library media

framework dari library Android untuk memainkan lagu.

4. Pengguna melihat lirik lagu, aplikasi mengambil data dari resource

dan menampilkan lirik tersebut

5. Pengguna melihat not angka, aplikasi mengambil data dari resource

dan menampilkan not angka tersebut

1.7 Cakupan dan batasan

Pada pengembangan aplikasi buku nyanyian elektronik GMIM berbasis

Android ada beberapa cakupan dan batasan masalah yang perlu diperhatikan

yaitu:

1.7.1 Cakupan

1. Pengguna melakukan pencarian berdasarkan nomor atau judul lagu

dan jenis buku atau daftar lagu favorit

2. Pengguna menandai lagu favorit sesuai lagu yang dipilih

Gambar 1.3 Kerangka konseptual aplikasi

Page 25: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT11

3. Instrumen menggunakan format MIDI pada buku KJ, PKJ, NKB,

dan NNBT

4. Pengguna mengatur instrument (play, pause dan stop) pada kontrol

instrument

5. Pengguna melihat lagu selanjutnya atau sebelumnya setelah

memilih lagu

6. Jumlah lagu sesuai dengan masing-masing buku nyanyian: KJ 487

lagu, PKJ 308 lagu, NKB 230 lagu, NNBT 50 lagu, dan KLIK 477

lagu.

1.7.2 Batasan

1. Pada buku KLIK hanya tersedia lirik dan nada dasar

2. Pada not angka, hanya lirik ayat pertama dan reffrein yang

ditampilkan

3. Sistem operasi minimal 4.0.4 Ice Cream Sandwich.

1.8 Daftar Istilah

1. Gfk : atau Society for Consumer Research.

2. GMIM : Gereja Masehi Injili di Minahasa, Sebuah organisasi

gereja protestan aliran calvinalisme di Sulawesi Utara yang diakui

oleh PGI

Page 26: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT12

3. Blackbox : Jenis pengujian yang dilakukan hanya memperhatikan

output

4. Whitebox : Jenis pengujian yang di lakukan pada bagian-bagian

terkecil dalam sebuah aplikasi, yakni kode program.

5. Midi : Musical Instrument Digital Interface (MIDI) merupakan

binary instructions list yang sangat panjang pada program atau

perangkat MIDI

6. DIA : Merupakan aplikasi yang sejenis dengan VISIO keluaran

Windows. DIA membantu untuk menggambar diagram relasi,

UML, flowcharts, network dan diagram lainnya.

Page 27: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT13

BAB II

TINJAUAN LITERATUR

1.9 Notasi Musik

Notasi music adalah sistem penulisan karya music [7]. Dalam notasi

musik, nada dilambangkan oleh not. Tulisan musik biasa disebut partitur.

1. Not balok

Gambar 2.1 Contoh not balok [7]

Pada notasi balok, sistem paranada bergaris lima digunakan sebagai dasar.

Bersama dengan keterangan mengenai tempo, ketukan, dinamika, dan

instrumentasi yang digunakan, not ditempatkan pada paranada dan dibaca dari kiri

ke kanan. Durasi nada dilambangkan dengan nilai not yang berbeda-beda,

sedangkan tinggi nada dilambangkan dalam posisi not secara vertikal pada

paranada. Interval dua not yang dipisahkan satu garis seperti digambarkan pada

Gambar 2.1 merupakan interval terts, sedangkan interval antara not pada spasi

dengan not pada garis adalah interval sekunde. Tanda kunci pada awal paranada

menunjukkan tinggi nada yang diwakili oleh garis dan spasi pada paranada

tersebut. Pada gambar di samping, kunci-G digunakan, menandakan bahwa garis

Page 28: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT14

kedua dari bawah melambangkan nada g¹. Dengan demikian, interval terts pada

gambar di samping adalah pasangan nada a1–c2, sedangkan interval sekunde

merupakan pasangan nada a1–b1. Not-not yang melambangkan tinggi nada di luar

jangkauan kelima garis paranada dapat digambarkan dengan menggunakan garis

bantu yang diletakkan di atas atau di bawah paranada.

2. Not angka

Gambar 2.2 Contoh not angka [7]

Pada Gambar 2.2, not ditentukan dengan angka 1 (do), 2 (re), 3 (mi), 4

(fa), 5 (sol), 6 (la) dan 7 (si). Nada 1 tanpa titik merupakan nada C natural di

notasi balok. Tanda satu titik di atas not, menunjukkan bahwa not tersebut naik

satu birama dari nada asli, sedangkan tanda satu titik di bawah not menunjukkan

bahwa not tersebut turun satu birama dari nada asli.

Berikut adalah cara membaca notasi not angka berdasarkan Gambar 2.2

1. Do = G menunjukkan nada dasar lagu tersebut.

2. 4/4 menunjukkan Tanda birama yang menunjukkan ritme lagu. Angka

di bagian atas tanda birama menunjukkan jumlah ketukan per birama,

sedangkan angka di bawah menunjukkan nilai not per ketukan. Tanda

Page 29: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT15

birama 4/4 di sini menunjukkan bahwa terdapat empat ketukan dalam

birama, satu ketukan kuat diikuti tiga ketukan lemah, dan masing-

masing ketukan bernilai not seperempat

3. Tempo = 66 menunjukkan tempo lagu, artinya dalam satu menit ada

66 ketuk.

4. SATB menunjukkan tipe suara yang menyanyikan baris tersebut.

5. P berarti 'piano' yang berarti lembut, artinya lagi ini dengan dinamika

yang lembut.

6. Tanda Crescendo yang dilanjutkan dengan tanda decrescendo,

menunjukkan ada perubahan dinamika, yakni mengeras, kemudian

melembut lagi.

7. Garis birama yang merupakan pemisah antar birama.

Pada penelitian ini, peneliti menggunakan notasi music yakni not angka

karena not angka lebih mudah untuk dimengerti dibandingkan not balok yang

harus mempunyai pengetahuan lebih lanjut.

1.10 Smartphone

Smartphone menyediakan fasilitas internet dan akses ke layanan data yang

beragam. Teknologi smartphone telah pindah ke perangkat yang sangat visual dan

menarik banyak pengguna, serta memberikan banyak fasilitas untuk

berkomunikasi. Beberapa sistem operasi yang sedang berkembang saat ini adalah

Blackberry, iOs, dan Android [8].

Page 30: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT16

1.11 Android

Android adalah sistem operasi mobile yang berbasis pada versi modifikasi

linux. Android pada awalnya dikembangkan oleh startup dengan nama yang sama,

Android, Inc [9].

Keuntungan menggunakan Android adalah pendekatan terpadu untuk

pengembangan aplikasi. Pengembang hanya perlu mengembangkan untuk

Android, dan aplikasi tersebut mampu berjalan pada seluruh perangkat selama itu

menggunakan Android. Tabel 2.1 adalah versi Android yang terakhir di release

sampai 1 November 2013.

Tabel 2.1

Versi Android [10]

Sistem operasi Android dibagi menjadi 5 bagian dalam 4 lapisan utama.

Page 31: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT17

Berikut penjelasan dari Gambar 2.3. Linux kernel, lapisan ini berisi semua

perangkat driver lowlevel untuk berbagai macam komponen hardware dari

perangkat Android.

1. Libraries, lapisan ini berisi semua code yang menyediakan fitur-

fitur utama dari sistem operasi Android. Contohnya library SQLite

menyediakan dukungan database sehingga aplikasi bisa

menggunakannya untuk penyimpanan data.

2. Android runtime, lapisan ini berada pada lapisan yang sama

dengan libraries. Lapisan ini menyediakan satu set library yang

memungkinkan developer untuk membuat aplikasi Android

menggunakan bahasa pemrograman Java. Lapisan ini juga

mencakup mesin virtual Dalvik, yang memungkinkan setiap

aplikasi Android untuk berjalan dalam prosesnya sendiri dengan

instance-nya masing-masing dalam mesin virtual Dalvik. Dalvik

adalah mesin virtual khusus yang dirancang terutama untuk

Android dan dioptimalkan untuk perangkat mobile bertenaga

baterai dengan memori dan CPU yang terbatas.

3. Application framework, lapisan ini memaparkan berbagai

kemampuan sistem operasi Android kepada developer aplikasi

Gambar 2.3 Arsitektur Android [10]

Page 32: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT18

sehingga developer bisa menggunakannya pada aplikasi yang

dikembangkan.

4. Applications, pada lapisan teratas ini, terdapat aplikasi yang sudah

ada pada perangkat Android, seperti telepon, kontak, browser, dan

aplikasi lainya yang langsung dapat digunakan oleh pengguna.

Pada lapisan ini juga terdapat aplikasi-aplikasi yang di-download

dan di-install dari Android Market. Setiap aplikasi yang dibuat

ditempatkan pada lapisan ini.

1.12 Java

Bahasa Java diciptakan pertama kali oleh sekelompok tim yang dipimpin

oleh James Gosling di Sun Microsystems yang pertama kalinya disebut sebagai

Oak yang diciptakan tahun 1991 untuk digunakan pada chip yang ditanamkan di

peralatan elektronik [11].

Java itu sederhana, object oriented, aman, portable, memiliki performansi

yang tinggi, multithreaded, dan dinamis. Java juga merupakan bahasa

pemrograman yang penuh fitur dan dapat digunakan untuk membuat berbagai

aplikasi baik yang umum maupun yang tingkat tinggi. Sekarang ini java

digunakan tidak hanya untuk pemrograman web tetapi juga untuk membuat

aplikasi yang bisa berdiri sendiri meskipun berbeda perangkat seperti pada server,

komputer, ataupun pada perangkat mobile.

Page 33: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT19

1.13 SQLite

SQLite merupakan mesin database SQL embedded. Tidak seperti

kebanyakan database SQL lainnya, SQLite tidak memiliki proses server yang

terpisah. SQLite membaca dan menulis secara langsung ke disk. Database SQL

lengkap dengan multiple tabel, indices, triggers, dan views, semua terdapat dalam

sebuah disk file tunggal. Format file database adalah cross-platform yaitu kita

bebas mengcopy database antara 32-bit dan sistem 64-bit [12].

Penggunaan memori yang kecil dan tidak membutuhkan database

administrator sehingga SQLite sangat cocok untuk digunakan pada gadget seperti

telepon selular, PDA, MP3, dan gadget lainnya. Selain itu cocok juga database

web untuk skala kecil sampai menengah, aplikasi enterprise untuk membuat demo

aplikasi atau prototype, dan sebagai pengganti format file seperti XML, JSON,

CSV.

1.14 Android Development Tools

Android Development Tools merupakan extension untuk IDE Eclipse

yang mendukung pengembangan dan debugging aplikasi Android [9]. Dengan

menggunakan ADT, Eclipse memiliki kemampuan untuk:

1. Membuat proyek aplikasi Android

2. Akses tools untuk emulator Android

3. Compile dan debug aplikasi Android

4. Export Android menjadi APK

Page 34: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT20

5. Membuat sertifikat untuk code-signing pada APK.

1.15 Eclipse

Eclipse adalah sebuah open source software yang gunanya menyediakan

tool platform yang sangat terintegrasi [9]. Dalam penggunaannya Eclipse meliputi

core project dimana yang berisi generic framework untuk tool integration dan

sebuah Java development environment. Proyek pada Eclipse terimplementasikan

pada Java dan dapat dijalankan pada beberapa sistem operasi meliputi Windows,

Mac OSX dan Linux.

Proyek Eclipse mendukung pengembangan dari sebuah platform atau

framework untuk pengimplementasian dari Integrated Development Environment

(IDE) dan aplikasi lainnya. Meskipun framework dari Eclipse diimplemesntasikan

pada Java tidak menutup kemungkinan pengembangan juga dilakukan pada

bahasa pemograman lainnya seperti C++, XML dan sebagainya.

1.16 Midi

Musical Instrument Digital Interface (MIDI) merupakan binary

instructions list yang panjang pada program MIDI atau perangkat MIDI yang

telah terstandardisasi secara internasional sehingga dapat digunakan untuk saling

bertukar data antar perangkat musik elektronik dan komputer dari jenis dan merek

berbeda [13]. Struktur dari berkas MIDI terdiri atas satu potongan pembuka atau

header chunk dan sejumlah track chunk yang berisi events. Kedua elemen ini

memberikan informasi mengenai identitas dan lagu .dalam berkas MIDI.

Page 35: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT21

1.17 Buku Nyanyian

Berikut merupakan jenis-jenis buku nyanyian yang digunakan organisasi

gereja GMIM:

1.17.1 Kidung Jemaat

Kidung Jemaat [14] merupakan buku nyanyian pertama yang di terbitkan

pada tahun 1985 oleh Yayasan Musik Gerejawi yang bekerja sama dengan Dewan

Gereja-gereja di Indonesia dan kini menjadi Persekutuan Gereja-gereja di

Indonesia. Buku nyanyian ini menampung nyanyian sepanjang sejarah sampai

saat ini sesuai dengan kebutuhan ibadah. Tabel 2.2 merupakan daftar kelompok

lagu buku Kidung Jemaat.

Tabel 2.2

Kategori lagu Kidung Jemaat

Kategori Lagu Nomor Lagu

Menghadap AllahPuji-pujian dan Pembukaan Ibadah 1-22Pengakuan dan Pengampunan Dosa 23-41Kyrie dan Gloria 42-48

Pelayanan FirmanPembacaan Alkitab 49-59Penciptaa dan Pemeliharaan 60-69Perjanjian Lama 70-75Penantian Mesias dan Masa Adven 76-91Kelahiran Yesus dan Masa Natal 92-127Akhir Masa Natal dan Epifania 128-143Kisah Pelayanan Yesus 144-154

Tabel 2.2

Kategori lagu Kidung Jemaat (Lanjutan)

Kategori Lagu Nomor Lagu

Page 36: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT22

Sengsara Yesus dan Jumat Agung 164-186Kebangkitan Yesus dan Masa Paskah

187-217

Hari Kenaikan 218-227Roh Kudus dan Hari Pentakosta 228-241Allah Tritunggal dan Hari Trinitatis 242-246Gereja dan Kerajaan Allah 247-261Kehidupan Sorgawi 262-271Akhir Zaman dan Penggenapan 272-279

Respons Terhadap Pelayanan FirmanPeryataan Keyakinan Iman 280-285Pengucapan Syukur dan Persemba-han

286-303

Pelayanan KhususBaptisan Kudus dan Peneguhan Sidi

304-309

Perjamuan Kudus 310-315Pernikahan 316-318Peristiwa Istimewa Gerejawi 319-320

Waktu dan MusimPagi dan Siang 321-323Petang dan Malam 324-329Pergantian Tahun 330-332Musim dan Panen 333-335Bangsa dan Negara 336-337

Penutupan IbadahPengutusan 338-344Berkat 345-350

Hidup Beriman Sehari-hariPanggilan Juruselamat 351-360Penyerahan Diri 361-376Kebesaran Rahmat Tuhan 377-390Sukacita dalam Tuhan 391-399Hidup Bersama Tuhan 400-405Tuntunan Tuhan 406-421Tanggung Jawab Pengikut Kristus 422-437

Tabel 2.2

Kategori lagu Kidung Jemaat (Lanjutan)

Kategori Lagu Nomor LaguKemenangan dalam Perjuangan 438-446

Page 37: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT23

Keluarga dan Persekutuan 447-451Doa Setiap Waktu 452-471Haleluya, Amin dan Lain-lain 472-478

1.17.2 Pelengkap Kidung Jemaat

Pelengkap Kidung Jemaat adalah buku nyanyian yang dibuat untuk

melengkapi Kidung Jemaat, diterbitkan oleh Yayasan Musik Gereja di Indonesia

(Yamuger) [15]. Tabel 2.3 merupakan daftar kelompok lagu buku Pelengkap

Kidung Jemaat.

Tabel 2.3

Kategori lagu Pelengkap Kidung Jemaat

Kategori Lagu Nomor LaguMenghadap Allah

Puji-pujian dan Pembukaan Ibadah 1-36Pengakuan dan Pengampunan Dosa, Kyrie dan Gloria 37-51

Pelayanan FirmanPembacaan Alkitab 52-53Penciptaa dan Pemeliharaan 54-58Perjanjian Lama 59Masa Adven, Masa Natal dan Epifania 60-75Kisah Pelayanan Yesus 76-78Masa Prapaskah 79Sengsara Yesus dan Jumat Agung 80-85Kebangkitan Yesus dan Masa Paskah 86-91Hari Kenaikan, Hari Pentakosta dan Hari Trinitasi 92-101Gereja,Kerajaan Allah dan Kehidupan Sorgawi 102-114Akhir Zaman dan Penggenapan 115-116

Tabel 2.3

Kategori lagu Pelengkap Kidung Jemaat (Lanjutan)

Page 38: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT24

Kategori Lagu Nomor LaguRespons Terhadap Pelayanan Firman

Peryataan Keyakinan Iman 117-144Pengucapan Syukur dan Persembahan 145-150

Pelayanan KhususBaptisan Kudus, Peneguhan Sidi, Perjamuan Kudus, dan Pernikahan 151-159Pemakaman dan Penghiburan 160-166

Waktu dan MusimPagi dan Siang 167-170Petang dan Malam 171-174Bangsa dan Negara 175-176

Penutupan IbadahPengutusan 177-185Berkat 186

Hidup Beriman Sehari-hariPanggilan Juruselamat 187-192Penyerahan Diri 193-202Kebesaran Rahmat Tuhan 203-212Sukacita dalam Tuhan 213-224Hidup Bersama Tuhan 225-250Tuntunan Tuhan 251-263Tanggung Jawab Pengikut Kristus 264-283Kemenangan dalam Perjuangan 284-285Keluarga dan Persekutuan 286-289Doa Setiap Waktu 290-291Haleluya, Amin dan Lain-lain 292-296Taize 297-308

Taize merupakan komunitas yg didirikan pada 1940 oleh Frère Roger

(Bruder Roger), yang tetap menjadi kepalanya hingga wafatnya pada 16 Agustus

2005 dan diabdikan kepada rekonsiliasi. Komunitas ekumenis ini terdiri dari lebih

dari 100 orang laki-laki dari berbagai bangsa yang mewakili denominasi protestan

dan katolik Roma dari agama kristen.

1.17.3 Nyanyikanlah Kidung Baru

Page 39: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT25

Nyanyikanlah Kidung Baru adalah buku himne yang diterbitkan oleh

Badan Pengerja Majelis Sinode (BPMS) Gereja Kristen Indonesia [16]. Tabel 2.4

merupakan daftar kelompok lagu Nyanyikanlah Kidung Baru.

Tabel 2.4

Kategori lagu Nyanyikanlah Kidung Baru

Kategori Lagu Nomor LaguMenghadap Allah

Panggilan Beribadah 1-8Pengakuan Dosa 9-14Pengampunan Dosa 15-23Kyrie dan Gloria 24-31

Pelayanan FirmanPenciptaa dan Pemeliharaan 32-35Pagi dan Malam 36-45Pergantian Tahun 47-49Pranatal/Adven 50-54Kelahiran Yesus/Natal 55-67Kisah Pelayanan Yesus Kristus 68-73Kesengsaraan Yesus Kristus 74-78Kematian Yesus Kristus 79-85Kebangkitan Yesus Kristus / Paskah 86-92Kenaikan Yesus Kristus ke Sorga 93-95Pencurahan Roh Kudus/Pentakosta 96-106Allah Tritunggal 107-110Gereja dan Kerajaan Allah 111-114

Sambutan Atas Pelayanan FirmanPengaminan Firman 115-119Pengakuan Iman 120-121Penyerahan Diri 122-131Pengucapan Syukur 132-135

Tabel 2.4

Kategori lagu Nyanyikanlah Kidung Baru (Lanjutan)

Page 40: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT26

Kategori Lagu Nomor LaguDoa Setiap Hari 117-144Pengharapan dan Pemenuhan Janji Allah 145-150

Pelayanan KhususSakramen Baptisan dan Pengakuan Percaya 151-155Sakramen Perjamuan Kudus 156-158Pernikahan/Hidup Keluarga 159-160Penghiburan 161-173Peristiwa Gerejawi 174-175

PengutusanHidup Mengikut Yesus 167-170Bersekutu dengan Sesama 171-174Bersaksi kepada Dunia 194-205Melayankan Kasih dan Keadilan 206-213Memelihara Perdamaian dan Keutuhan Ciptaan 214-217Membela Bangsa dan Negara 218-219

Akhir IbadahBerkat 220-221Haleluya Amin 222-229

Himne GKIBerderaplah Satu 230

1.17.4 Nyanyikanlah Nyanyian Baru bagi Tuhan

Merupakan buku nyanyian yang didalamnya berisi lagu-lagu dari warga

GMIM. Lagu-lagu tersebut merupakan lagu abad ini. Mulanya terbentuk buku ini

merupakan hasil dari pertemuan Sidang Sinode GMIM Lengkap dan diteruskan

oleh seksi bidang musik [17].

1.17.5 Kumpulan Lagu Ibadah-Ibadah Kreatif dan Kebaktian Kebangunan

Rohani

Page 41: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT27

Merupakan kumpulan lagu yang berbeda dari buku nyanyian yang lain.

Didalamnya berisi lagu-lagu masa kini yang telah di pilih oleh organisasi gereja

GMIM [18].

1.18 Unified Modeling Language (UML)

Untuk memudahkan komunikasi antar pengembang perangkat lunak

diperlukan adanya satu spesifikasi standar [19]. Para pengembang perangkat lunak

harus mengikuti standar dan petunjuk yang telah ditetapkan pada proyek

pengembangan perangkat lunak, dan beberapa petunjuk tersebut direpresentasikan

dalam model.

Model direpresentasikan dengan notasi umum dan model yang standar

akan lebih mudah dipahami dan digunakan. Model ini akan meningkatkan

komunikasi antar pengembang dan mengurangi kesalahan terjadinya

kesalahpahaman saat mengembangkan suatu perangkat lunak. Menggunakan

model ini juga akan menghemat waktu karena model telah memberikan jawaban

atas pilihan, dan menyebabkan pengembang lebih fokus terhadap pengembangan.

UML adalah salah satu model yang standar dan banyak digunakan oleh

pengembang perangkat lunak. UML mendefinisikan notasi dengan sangat baik

dan memiliki arti yang sangat mendekati pemodelan berorientasi objek.

1.18.1 Use-Case Diagram

Page 42: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT28

Use-Case Diagram menampilkan relasi antara aktor dengan Use-Case

dalam suatu sistem. Use-Case Diagram digunakan untuk:

1. Memberikan Gambaran keseluruhan dari kebutuhan sistem atau

organisasi dalam bentuk model,

2. Mengkomunikasikan ruang lingkup dari suatu proyek

pengembangan,

3. Memodelkan analisa kebutuhan di dalam suatu Use-Case model.

Use-Case Diagram sebaiknya dibuat berdasarkan sudut pandang dari

stakeholder. Elemen-elemen yang terdapat pada Use-Case diagram adalah

sebagai berikut:

1. Use-Case, mendeskripsikan sekumpulan aksi yang dilakukan oleh

aktor dan diGambarkan dalam bentuk eclipse.

2. Actor, adalah satu orang, organisasi, proses lokal atau sistem

eksternal yang memainkan suatu peran dalam satu atau lebih

interaksi dengan sistem dan diGambarkan dengan bentuk figur

orang.

3. Relationship, relasi antara Actor dengan Use-Case yang

digambarkan dengan garis lurus.

4. System Boundary, kotak disekeliling Use-Case yang menandakan

ruang lingkup dari sistem. Use-Case yang berada dalam system

Page 43: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT29

boundary merepresentasikan fungsi-fungsi yang akan

diimplementasikan.

Pada Gambar 2.4 merupakan contoh dari sebuah use-case diagram

Gambar 2.4 Contoh Use-Case diagram [19]

1.18.2 Class Diagram

Class Diagram digunakan untuk menampilkan kelas dari sistem,

hubungannya, dan juga operasi serta atribut yang dimiliki oleh kelas tersebut.

Class Diagram digunakan untuk:

1. Memodelkan suatu konsep,

2. Menganalisa kebutuhan dalam model konseptual,

3. Menggambarkan rancangan sistem atau perangkat lunak

berorientasi objek.

Page 44: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT30

Sebuah model terdiri dari satu atau lebih Class Diagram dan spesifikasi

pendukung yang menjelaskan elemen dari diagram termasuk kelas, relasi antar

kelas dan juga antarmuka.

Berikut adalah visibility options pada Class Diagrams:

1. Public, ditandai dengan simbol (+) yang digunakan untuk

menandakan bahwa atribut atau operasi dapat diakses oleh seluruh

kelas dalam satu sistem.

2. Protected, ditandai dengan simbol (#) yang digunakan untuk

menandakan bahwa atribut atau operasi hanya dapat diakses oleh

kelas itu sendiri dan subclass-nya.

3. Private, ditandai dengan simbol (-) yang digunakan untuk

menandakan bahwa atribut atau operasi hanya dapat diakses oleh

kelas itu sendiri.

4. Default, ditandai dengan symbol (~) yang digunakan untuk

menandakan bahwa atribut atau operasi hanya dapat diakses oleh

kelas itu sendiri dan kelas yang terdapap pada package yang sama.

Pada Gambar 2.5 merupakan contoh sebuah class diagram

Page 45: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT31

Gambar 2.5 Contoh Class diagram [19]

1.18.3 Sequence Diagram

Sequence Diagram adalah salah satu teknik pemodelan yang dinamis.

Sequence Diagram digunakan untuk merepresentasikan interaksi antara

komponen sistem dan terkadang agen eksternal juga termasuk di dalamnya. Pada

Gambar 2.6 merupakan contoh sequence diagram

Gambar 2.6 Contoh Sequence diagram [19]

1.18.4 Activity Diagram

Page 46: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT32

Activity Diagram adalah diagram yang digunakan untuk

merepresentasikan:

1. Sebuah operasi yang rumit.

2. Sebuah proses bisnis yang rumit.

3. Sebuah Use-Case.

4. Sebuah proses perangkat lunak.

Pada Gambar 2.7 merupakan contoh activity diagram.

Gambar 2.7 Contoh Activity diagram [19]

1.19 Rekayasa Perangkat Lunak

Metode yang digunakan dalam penelitian ini adalah metode rekayasa

perangkat lunak. Metode rekayasa perangkat lunak adalah penggunaan

pendekataan yang sistematik, disiplin, dan dapat diukur pada pengembangan,

operasi, dan perawatan perangkat lunak [6].

Page 47: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT33

Kerangka kerja rekayasa perangkat lunak dibentuk oleh empat lapisan

rekayasa perangkat lunak seperti yang ditunjukan pada Gambar 2.8 dan dijelaskan

sebagai berikut :

1. Quality Focus, merupakan lapisan dasar rekayasa perangkat lunak

yang menekankan pada kualitas yang baik dari perangkat lunak

yang akan dikembangkan

2. Process, mendeskripsikan langkah-langkah untuk mengembangkan

perangkat lunak.

3. Methods, menjelaskan bagaimana mengembangkan perangkat

lunak sesuai dengan prinsip rekayasa perangkat lunak. Metode

yang digunakan pada penelitian ini adalah Waterfall, telah

dijelaskan pada sub-bab 1.5.

4. Tools, mencakup semua perangkat atau alat bantu yang digunakan

dala pengembangan sistem. Tools yang akan digunakan untuk

mengembangkan sistem dijelaskan pada sub-bab 3.3.

Kerangka kerja perangkat lunak Komunikasi: Untuk memahami tujuan-

tujuan stakeholder atas proyek perangkat lunak yang sedang dikembangkan dan

Gambar 2.8 Lapisan rekayasa perangkat lunak [6]

Page 48: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT34

mengumpulkan kebutuhan-kebutuhan yang merujuk pada fitur-fitur perangkat

lunak serta fungsi-fungsinya.

Perencanaan: Menggambarkan tugas-tugas teknis yang harus dilakukan,

resiko-resiko yang mungkin muncul, sumber daya yang akan dibutuhkan, produk-

produk kerja yang harus dihasilkan dan jadwal-jadwal kerja.

Pemodelan: Membuat model-model untuk memahami kebutuhan

perangkat lunak maupun rancangan-rancangan yang akan memenuhi kebutuhan.

Konstruksi: Gabungan pembentukan kode (code generation) dan

pengujian yang sangat dibutuhkan untuk menemukan kekeliruan-kekeliruan

dalam kode program komputer yang dihasilkan selanjutnya.

1.20 Penelitian Terkait

1. Pemanfaatan Media Pembelajaran Aplikasi Finale 2006 Untuk

Meningkatkan Minat Dan Ketrampilan Membaca Notasi Musik Siswa

Kelas II TKJ 1 SMK 3 Kendal Tahun Ajaran 2008/ 2009

Aplikasi Finale merupakan tools untuk membantu pengguna membuat

instrument dari berbagai alat musik ke dalam suatu format suara. Alat music

tersebut dapat berupa string, drum set, piano, suling, dan cello. Untuk membuat

suatu instrument pengguna membaca not balok kemudian memasukannya sebagai

input pada aplikasi Finale. Pengguna memilih jenis-jenis alat music yang akan

digunakan [20].

2. Aplikasi Kamus Kebidanan Berbasis Android

Page 49: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT35

Aplikasi ini dapat berjalan pada jaringan online maupun offline. Pengguna

dapat menambah kata atau melihat daftar kata. Aplikasi ini menggunakan SQLite

sebagai media penyimpanan data dimana SQLite dapat menyiman ratusan sampai

ribuan record data [21].

3. Pembangunan Aplikasi Latihan Trompet Pada Ponsel Android

Penelitian ini menjelaskan bagaimana trompet dapat dimainkan pada

ponsel dengan system operasi Android. Untuk memainkan trompet, aplikasi

memainkan dengan format MIDI [13].

Page 50: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT36

BAB III

METODOLOGI PENELITIAN

1.21 Desain Penelitian

Penulis memilih menggunakan metodologi Rekayasa Perangkat Lunak

(RPL) yang telah dijelaskan pada sub-bab 2.11 dalam pengembangan aplikasi

buku nyanyian elektronik GMIM pada smartphone Android.

1.22 Instrumentasi Penelitian

Dalam instrumentasi penelitian, terdapat empat hal yang dibahas penulis,

yaitu jenis data yang dikumpulkan, teknik, instrumen dan prosedur pengumpulan

data.

1.22.1 Jenis Data

Peneliti menggunakan data sekunder pada penelitian karena data buku

nyanyian KJ, PKJ, NKB, NNBT dan KLIK telah tersedia dan dikemas dalam

bentuk buku.

1.22.2 Teknik Pengumpulan Data

Untuk mendapatkan data yang tepat untuk penelitian ini, maka digunakan

teknik studi literatur. Studi literatur yang dilakukan adalah mencari data dan

informasi dalam hal teori-teori yang mendukung untuk pengembangan aplikasi

buku nyanyian elektronik GMIM pada platform Android. Peneliti mengumpulkan

Page 51: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT37

dan mempelajari penelitian yang sejenis dengan penelitian ini dan aplikasi yang

sejenis dan telah beredar luas.

1.22.3 Instrumen Pengumpulan Data

Peneliti menggunakan laptop untuk mengelola data yang dikumpulkan.

Dan tablet Android digunakan untuk mencatat hasil pencarian di perpustakaan

dan internet.

1.22.4 Prosedur Pengumpulan Data

Adapun prosedur pengumpulan data dalam penelitian ini yakni

1. Mencari dan mengumpulkan data yakni jurnal, skripsi, dan buku

yang sejenis dengan penelitian ini

2. Melakukan analisa dan menarik kesimpulan dari data yang ada

3. Mencari aplikasi sejenis yang beredar di playstore dan melakukan

analisa perbandingan kelebihan, kekurangan dan komentar

pengguna setelah itu menarik kesimpulan.

1.23 Lingkungan Pengembangan Aplikasi

Pada pengembangan aplikasi ini penulis mengembangkan aplikasi pada

perangkat emulator Android GenyMotion Version 2.2.0 yakni Motorola MotoX

4.4.2 API 19. Dan perangkat notebook AXIOO NEON MNN 2012 dengan

spesifikasi berikut:

1. Prosesor : Intel Core 2 Duo, @ 2.00 GHz

Page 52: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT38

2. Video Card: NVidia Geforce 512 MB

3. RAM 3 GB

4. HDD 320 GB

Adapun perangkat lunak yang mendukung dalam penelitian ini yakni:

1. Android Development Tools (Eclipse Helios), merupakan IDE yang

terintegrasi dengan Android SDK, langsung dari

developer.android.com yang digunakan untuk menulis kode

program pada Android.

2. Java, bahasa pemrograman yang digunakan.

3. Java Development Kit (JDK) 7u2: merupakan dasar dari Android

SDK

4. Finale 2012, merupakan tools untuk membuat instrumen

5. Windows 7 Home Premium, Sistem operasi yang digunakan untuk

pengembangan aplikasi.

6. DIA, tools yang digunakan untuk membuat UML.

7. dan Adobe Photoshop CS3, untuk perancangan sketsa interface.

Page 53: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT39

BAB IV

ANALISIS DAN PERANCANGAN SISTEM

1.24 Analisis

Peneliti mengambil rumusan masalah yakni Bagaimana

mengembangkan aplikasi buku nyanyian elektronik GMIM pada smartphone

dengan sistem operasi Android?

Peneliti menggunakan Java karena bahasa pemrograman ini mampu

berjalan pada seluruh sistem operasi karena Java menggunakan Java Run-time

Environment untuk melakukan compile dan running kode program. Adapun

Android mendukung format pemutar audio MIDI dengan menggunakan media

framework pada library Android. Untuk melakukan pengkodean pada Android,

peneliti menggunakan Android Development Tools dimana IDE ini telah

terintegrasi langsung dengan library Android (SDK Android).

1.25 Perancangan Aplikasi

Untuk menggambarkan model dari aplikasi yang dikembangkan maka

peneliti menggunakan Use Case Diagram, Class Diagram, Sequence Diagram

dan Activity Diagram yang telah dijelaskan pada sub bab 2.10.

1.25.1 Use Case Diagram

Berikut merupakan Use case diagram dari aplikasi buku nyanyian

elektronik GMIM berbasis Android.

Page 54: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT40

Gambar 4.3 Use case diagram

Berikut merupakan use case scenario berdasarkan Gambar 4.1.

1. Use Case Name : Pencarian

Actor : Pengguna

Precondition : Pengguna telah menjalankan aplikasi

Postcondition : Pengguna menemukan hasil pencarian dari

nomor lagu atau potongan judul lagu

Step performed :

1. Pengguna memasukan keyword pencarian pada field pencarian

2. Aplikasi melakukan filter sesuai keyword dan menampilkan

daftar lagu sesuai hasil filter.

Page 55: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT41

Description : Pencarian berdasarkan buku nyanyian atau

daftar lagu favorit

2. Use Case Name : Melihat Lirik

Actor : Pengguna

Precondition : Pengguna telah memilih lagu

Postcondition : Pengguna melihat lirik lagu

Step performed :

1. Pengguna membuka aplikasi

2. Aplikasi menampilkan daftar lagu

3. Pengguna memilih lagu

4. Aplikasi menampilkan lirik lagu yang dipilih pengguna

Description : Melihat lirik lagu

3. Use Case Name : Lirik berikutnya

Actor : Pengguna

Precondition :Pengguna sementara melihat lirik lagu

Postcondition : Pengguna melihat lirik lagu berikutnya

Step performed :

Page 56: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT42

1. Pengguna memilih button berikutnya

2. Aplikasi melakukan pengecekan, jika lagu yang sementara

dipilih pengguna adalah lagu pada urutan terakhir maka

aplikasi tidak menampilkan lagu berikutnya. Jika tidak aplikasi

menampilkan lagu berikutnya

Description : Menampilkan lagu dengan nomor urutan

berikutnya dari lagu yang sementara

dilihat

4. Use Case Name : Lirik sebelumnya

Actor : Pengguna

Precondition : Pengguna sementara melihat lirik lagu

Postcondition : Pengguna melihat lirik lagu sebelumnya

Step performed :

1. Pengguna memilih button sebelumnya

2. Aplikasi melakukan pengecekan, jika lagu yang sementara

dipilih pengguna adalah lagu pada urutan pertama maka lagu

sebelumnya tidak ditampilkan. Jika tidak aplikasi menampilkan

lagu sebelumnya

Page 57: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT43

Description : Menampilkan lagu dengan nomor urutan

sebelumnya dari lagu yang sementara

dilihat

5. Use Case Name : Mengatur instrumen

Actor : Pengguna

Precondition : Pengguna sementara melihat lirik lagu

Postcondition : Instrumen diatur oleh pengguna

Step performed :

1. Jika pengguna memilih button play, maka aplikasi memainkan

lagu yang dipilih

2. Jika pengguna memilih button pause, maka aplikasi

menghentikan sementara lagu yang dipilih

3. Jika pengguna memilih button stop, maka aplikasi

menghentikan lagu

Description : Mengontrol instrument dari lagu yang.

Kontrol tersebut mencakup play, pause

dan stop

Page 58: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT44

6. Use Case Name : Mengatur lagu favorit

Actor : Pengguna

Precondition : Pengguna sementara membuka lagu

Postcondition : Lagu favorit diatur

Step performed :

1. Pengguna memilih button favorit

2. Aplikasi menambahkan Lagu favorit ke daftar lagu favorit

Description : Pengguna dapat menambahkan lagu di

yang sementara di tampilkan ke daftar

lagu favorit

7. Use Case Name : Melihat not angka

Actor : Pengguna

Precondition : Pengguna sementara melihat lirik lagu

yang dia pilih

Postcondition : Pengguna melihat not angka dari lagu yang

dia pilih

Step performed :

1. Pengguna memilih tab not angka

Page 59: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT45

2. Aplikasi menampilkan not angka dari lagu yang dipilih

Description : Menampilkan lagu yang sementara dilihat

dalam bentuk not angka

8. Use Case Name : Pengaturan

Actor : Pengguna

Precondition : Pengguna telah menjalankan aplikasi

Postcondition : Pengguna melakukan pengaturan

Step performed :

1. Pengguna memilih menu

2. Aplikasi menampilkan sub-menu

3. Jika pengguna memilih sub-menu ganti latar, aplikasi

mengganti latar aplikasi

4. Jika pengguna memilih sub-menu ukuran huruf lirik, aplikasi

menampilkan jenis ukuran untuk dipilih pengguna.

Description : Pengaturan tampilan pada aplikasi

1.25.2 Package Diagram

Page 60: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT46

Gambar 4.2 Package diagram

Pada Gambar 4.2 merupakan package diagram untuk aplikasi buku

nyanyian elektronik GMIM berbasis Android terbagi dua package yakni package

com.example.egmim yang merupakan package main aplikasi dan package

com.example.support yang merupakan package pendukung.

1.25.3 Class Diagram

Berikut merupakan class pada package com.example.egmim yang terdiri

dari :

1. Class Splashscreen, merupakan activity class yang berfungsi untuk

menampilkan splash screen sebelum pengguna masuk dalam

aplikasi. Pada saat splash screen ditampilkan, dilakukan sebuah

proses dibelakangnya yakni menyalin data (file Midi & file Not

angka) ke SD Card pengguna.

2. Class DaftarLagu, merupakan activity class yang dieksekusi

setelah class Splashscreen. Class DaftarLagu berfungsi

menampilkan daftar lagu berdasarkan buku atau favorit dan

melakukan pencarian.

Page 61: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT47

3. Class MainKonten, merupakan activity fragment class yang

digunakan untuk mengeksekusi dua fragment class yakni Lirik dan

NotAngka dalam bentuk tab.

4. Class Lirik, merupakan fragment class untuk menampilkan lirik

dan memainkan instrument.

5. Class NotAngka, merupakan fragment class untuk menampilkan

partitur not angka.

6. Class About, merupakan activity class untuk menampilkan

informasi tentang aplikasi.

7. Class SetTheme, merupakan activity class untuk mengatur tema

dari aplikasi.

8. Class Help, merupakan activity class untuk menampilkan bantuan

atau user manual aplikasi.

Berikut merupakan class pada package com.example.support yang terdiri

dari :

1. Class databaseImport, merupakan class yang digunakan untuk

melakukan import file database (SQLite) ke smartphone.

2. Class dbAdapter, merupakan class yang digunakan untuk

mengakses SQLite database pada smartphone.

3. Class SpinnerNavItem, merupakan class yang digunakan untuk

menampilkan spinner menu pada action bar daftar lagu.

Page 62: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT48

4. Class TitleNavigationAdapter, merupakan class pendukung

SpinnerNavItem.

5. Class TabsPagerAdapter, merupakan class yang digunakan untuk

membuat pager atau tabs.

6. Class TouchImageView, merupakan class yang digunakan untuk

zoom in dan zoom out partitur not angka.

Pada Gambar 4.3 merupakan class diagram dari aplikasi buku nyanyian

GMIM berbasis Android :

Page 63: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT49

Page 64: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT50

1.25.4 Sequence Diagram

Berikut merupakan Sequence diagram dari aplikasi buku nyanyian

elektronik GMIM berbasis Android.

1. Pencarian

Pada Gambar 4.4 sebelum melakukan pencarian aplikasi akan

menampilkan seluruh daftar lagu dengan menggunakan method

displayData(), pada method displayData()merupakan proses inisilisasi

dan pengambilan data dari database dengan menggunakan method . Setelah daftar

lagu ditampilkan pengguna mengisi keyword pencarian yakni judul atau nomor

lagu, aplikasi akan langsung melakukan filter dan langsung menampilkan dalam

bentuk daftar lagu.

Gambar 4.4 Sequence diagram pencarian

Page 65: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT51

2. Melihat lirik

Pada Gambar 4.5 untuk melihat lirik, pengguna telah memilih lagu dari

daftar lagu. Class DaftarLagu mengeksekusi fragment class Lirik dengan inner

method yang terdapat pada method onCreate(). Aplikasi menjalankan method

gettingData() untuk mengambil data lagu dari database dan inisialisasi dari

data tersebut. Untuk dapat mengambil data lagu dari database menggunakan

method getData() dari class dbAdapter. Setelah eksekusi method

gettingData() selesai, method loadLirik() dijalankan untuk mengambil

data dari resources sesuai data yang di inisialisasi dan menampilkan lagu yang

dipilih pengguna.

Gambar 4.5 Sequence diagram melihat lirik

Page 66: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT52

3. Lirik berikutnya

Gambar 4.6 Sequence diagram lirik berikutnya

Pada Gambar 4.6 untuk melihat lirik lagu berikutnya, pengguna memilih

button berikutnya. Aplikasi menjalankan method next() dari class Lirik untuk

increment nilai id. Setelah method next() selesai dijalankan, aplikasi

menjalankan method gettingData() untuk mengambil data lagu dari

database dan inisialisasi dari data tersebut. Untuk dapat mengambil data lagu dari

database menggunakan method getData() dari class dbAdapter. Setelah

eksekusi method gettingData() selesai, method loadLirik() dijalankan

Page 67: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT53

untuk mengambil data dari resources sesuai data yang di inisialisasi dan

menampilkan lagu yang dipilih pengguna.

4. Lirik sebelumnya

Gambar 4.7 Sequence diagram lirik sebelumnya

Pada Gambar 4.7 untuk melihat lirik lagu berikutnya, pengguna memilih

button berikutnya. Aplikasi menjalankan method prev() dari class Lirik untuk

decrement nilai id. Setelah method prev() selesai dijalankan, aplikasi

menjalankan method gettingData() untuk mengambil data lagu dari

database dan inisialisasi dari data tersebut. Untuk dapat mengambil data lagu dari

database menggunakan method getData() dari class dbAdapter. Setelah

eksekusi method gettingData() selesai, method loadLirik() dijalankan

Page 68: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT54

untuk mengambil data dari resources sesuai data yang di inisialisasi dan

menampilkan lagu yang dipilih pengguna.

5. Mengatur instrumen

Gambar 4.8 Sequence diagram mengatur instrumen

Pada Gambar 4.8 untuk melakukan kontrol instrument, Jika pengguna

memilih button play maka method loadInstrumen() akan dijalankan untuk

mengambil path file MIDI pada SD Card dan membuat object media player.

Page 69: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT55

Setelah itu method start() dari object media player dijalankan untuk

memainkan instrumen.

Jika pengguna memilih button pause maka method pause() dari object

media player akan dijalankan untuk menghentikan sementara instrumen.

Jika pengguna memilih button stop maka method stop()dari object media

player akan dijalankan dan instrumen akan dihentikan.

6. Mengatur lagu favorit

\

Gambar 4.9 Sequence diagram mengatur lagu favorit

Pada Gambar 4.9 untuk mengatur lagu ke daftar lagu favorit, pengguna

memilih button favorit maka aplikasi menjadikan atau menghilangkan lagu yang

dipilih pengguna sebagai favorit dengan menggunakan method

setfavorite() dari class Lirik. Pada setfavorite()sebelum dijadikan

atau dihilangkan sebagai lagu favorit, aplikasi melakukan pengecekan jika lagu

tersebut adalah favorit (true) atau bukan favorit (false). Setelah pengecekan

Page 70: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT56

aplikasi memperbaharui lagu pada database dengan method

updateData()pada class dbAdapater.

7. Melihat not angka

Pada Gambar 4.10 untuk melihat not angka, pengguna memilih tab not

angka. Aplikasi memanggil class konten dan menjalankan method

loadNotangka() untuk mendapatkan informasi lagu yang sementara dilihat

pengguna dan mencari data yang akan ditampilkan.

Gambar 4.10 Sequence diagram melihat not angka

8. Pengaturan

Page 71: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT57

Gambar 4.11 Sequence diagram pengaturan

Pada Gambar 4.11 untuk melakukan pengaturan, pengguna memilih menu

dan sub-menu akan ditampilkan. Jika pengguna memilih sub-menu ganti latar

maka aplikasi akan memanggil class SetTheme kemudian pada method

onCreate() memanggil kembali class Daftarlagu. Untuk mengganti ukuran

huruf lirik, method showDialog() dipanggil untuk menampilkan single choice

dialog dimana pengguna akan memilih ukuran dari huruf lirik setelah dipilih

aplikasi akan langsung merubah ukuran huruf.

1.25.5 Activity Diagram

Berikut merupakan Activity diagram dari aplikasi buku nyanyian

elektronik GMIM berbasis Android.

Page 72: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT58

1. Pencarian

Gambar 4.12 Activity diagram pencarian

Pada Gambar 4.12 aplikasi menampilkan daftar lagu, pengguna dapat

melakukan pencarian dengan mengisi field pencarian dengan keyword berupa

nomor atau judul lagu. Aplikasi melakukan filter dan menampilkan daftar lagu

sesuai input pengguna.

2. Melihat lirik

Pada Gambar 4.13, pengguna telah memilih lagu. Aplikasi melakukan

pencarian data pada database menurut lagu yang dipilih pengguna. Setelah

ditemukan, data tersebut diinisialisasi dan menampilkan lirik.

Page 73: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT59

Gambar 4.13 Activity diagram melihat lirik

3. Lirik berikutnya

Pada Gambar 4.14, pengguna memilih button berikutnya. Aplikasi

melakukan increase id lagu dan melakukan pencarian pada database menurut id

lagu. Setelah ditemukan, data di inisialisasi dan lirik ditampilkan.

Page 74: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT60

Gambar 4.14 Activity diagram lirik berikutnya

4. Lirik sebelumnya

Page 75: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT61

Gambar 4.15 Activity diagram lagu sebelumnya

Pada Gambar 4.15 pengguna memilih button berikutnya. Aplikasi

melakukan increase id lagu dan melakukan pencarian pada database menurut id

lagu. Setelah ditemukan, data di inisialisasi dan lirik ditampilkan.

5. Mengatur instrument

Pada Gambar 4.16 pengguna dapat melakukan pengaturan instrument. Jika

pengguna memilih button play, aplikasi akan melakukan inisialisasi path dari file

instrument setelah itu instrument dimainkan dan button play menjadi pause. Jika

pengguna memilih button pause, aplikasi akan menghentikan sementara

instrument dan mengubah button play menjadi pause. Jika pengguna memilih

button stop, aplikasi akan menghentikan instrument.

Page 76: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT62

Gamba

r 4.16 Activ

ity diagram

mengatur

instrumen

Page 77: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT63

6. Mengatur lagu favorit

Gambar 4.17 Activity diagram mengatur lagu favorit

Pada Gambar 4.17, pengguna memilih button favorit. Aplikasi melakukan

pengecekan jika lagu yang sementara dipilih pengguna sudah atau belum menjadi

lagu favorit. Jika belum aplikasi menambahkan sebagai lagu favorit dan merubah

warna button. Jika sudah aplikasi menghilangkan sebagai lagu favorit dan

memperbaharui database kemudian merubah warna button.

7. Melihat not angka

Pada Gambar 4.18, pengguna memilih tab not angka. Aplikasi melakukan

melakukan inisialisasi path file not angka dan menampilkan not angka dari lagu

yang dipilih.

Page 78: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT64

Gambar 4.18 Activity diagram melihat not angka

8. Pengaturan

Page 79: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT65

Gambar 4.19 Activity diagram pengaturan

Pada Gambar 4.19 aplikasi menampilkan sub-menu untuk pengaturan

tampilan. Pengguna memilih pengaturan yang ada yakni pengaturan latar dan

ukuran huruf lirik.

1.26 Perancangan Tatap Muka

Berikut merupakan rancangan tatap muka aplikasi buku nyanyian

elektronik GMIM berbasis Android.

1.26.1 Splash Screen

Pada Gambar 4.20 merupakan layar awal pada saat aplikasi dijalankan.

Pengguna akan langsung diperhadapkan dengan splash screen dengan logo gereja

dan status penyalinan data ke SD Card

Page 80: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT66

Gambar 4.20 Tatap muka splash screen

Page 81: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT67

1.26.2 Daftar Lagu

Pada Gambar 4.21 merupakan tatap muka daftar lagu. Pada daftar lagu,

terdapat textfield untuk pencarian, spinner menu untuk memilih buku atau favorit,

menu untuk memilih sub-menu ganti latar, ukuran font, bantuan dan tentang

aplikasi.

1.26.3 Lirik

Pada Gambar 4.22 merupakan tatap muka melihat lirik. Pada lirik terdapat

tab lirik dan not angka, textview nomor dan judul, textview lirik, button lagu

selanjutnya dan sebelumnya, dan button kontrol instrumen dan mengatur favorit.

Gambar 4.21 Tatap muka daftar lagu

Page 82: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT68

1.26.4 Not angka

Pada Gambar 4.23 merupakan tatap muka not angka, pengguna dapat

melihat gambar not angka juga melakukan pembesaran atau perkecil gambar. Juga

terdapat dua button untuk melihat halaman selanjutnya/sebelumnya jika not angka

tersebut ada sambungan.

Gambar 4.22 Tatap muka lirik

Page 83: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT69

1.27 Perancangan Struktur Data

Pada Gambar 4.24 merupakan rancangan struktur data aplikasi buku

nyanyian elektronik GMIM berbasis Android.

Gambar 4.24 Struktur data

Gambar 4.23 Tatap muka pengaturan

Page 84: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT70

1. id, berisikan informasi nomor lagu secara keseluruhan

2. buku, berisikan informasi nama buku

3. nolagu, berisikan informasi nomor lagu berdasarkan buku

4. judullagu, berisikan judul lagu

5. favorite, merupakan penanda jika nomor lagu tersebut adalah

favorit

1.28 Perancangan Algoritma

Berikut merupakan rancangan algoritma aplikasi buku nyanyian elektronik

GMIM berbasis Android berdasarkan use case pada sub-bab 4.2.1.

1. Algoritma pencarian

Tampilkan daftar lagu dari database

Filter daftar lagu sesuai dengan input field pencarian

2. Algoritma lihat lirik

Pilih lagu

String split[] = Split data berdasarkan spasi

IF field pencarian != NULL OR markerBuku == favorite

SET posisi=0

ELSE

Increment posisi

posisi = posisi + idbuku mulai

SET passingValue = posisi

SET passingValue = spliterData

SET passingValue = markerBuku

Panggil activity mainKonten

Panggil fragment Lirik

Page 85: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT71

Ambil data passingValue

SET valueId= passingValue.posisi

IF valueId = 0

Ambil data dari hasil pencarian

ELSE

Lakukan pencarian sesuai valueId pada database

Ambil data dari hasil pencarian

END IF

IF favorite = true

Set image favorite

ELSE

Set image unfavorite

IF buku= “nama buku”

SET path raw file sesuai nama buku

Tampilkan lirik berdasarkan seleksi lineawal dan lineakhir pada raw file sesuai nama buku

3. Algoritma lirik selanjutnya

Increment valueId

IF valueId = 0

Ambil data dari hasil pencarian

ELSE

Lakukan pencarian sesuai valueId pada database

Ambil data dari hasil pencarian

END IF

IF favorite = true

Set image favorite

ELSE

Page 86: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT72

Set image unfavorite

IF buku= “nama buku”

SET path raw file sesuai nama buku

Tampilkan lirik berdasarkan seleksi lineawal dan lineakhir pada raw file sesuai nama buku

4. Algoritma lirik sebelumnya

Decrement valueId

IF valueId = 0

Ambil data dari hasil pencarian

ELSE

Lakukan pencarian sesuai valueId pada database

Ambil data dari hasil pencarian

END IF

IF favorite = true

Set image favorite

ELSE

Set image unfavorite

IF buku= “nama buku”

SET path raw file sesuai nama buku

Tampilkan lirik berdasarkan seleksi lineawal dan lineakhir pada raw file sesuai nama buku

5. Algoritma mengatur instrumen (play & pause)

IF statusPlayer = pertama kali dimainkan

SET path source MIDI sesuai lagu dari buku yang dipilih

IF source MIDI not exists

Tampilkan pesan “konten (MIDI) tidak tersedia”

ELSE

Mainkan MIDI

END IF

Page 87: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT73

SET image button play/pause menjadi pause

SET statusPlayer = instrument sementara dimainkan

BREAK;

ELSE IF statusPlayer = instrument sementara dimainkan

Hentikan sementara instrument

SET image button play/pause menjadi play

SET statusPlayer = instrument sementara dihentikan sementara

BREAK

ELSE IF statusPlayer = instrument sementara dihentikan sementara

Lanjutkan mainkan instrument

SET image button play/pause menjadi pause

SET statusPlayer = instrument sementara dimainkan

BREAK

END IF

6. Algoritma mengatur instrumen (stop)

Hentikan instrument

SET image button play/pause menjadi play

SET statusPlayer = pertama kali dimainkan

7. Algoritma mengatur lagu favorit

IF favorite =TRUE

SET image button favorite menjadi unfavorite

SET favorite = FALSE

ELSE

SET image button favorite menjadi favorite

SET favorite = TRUE

END IF

Perbaharui database

8. Algoritma melihat not angka

Pilih lagu

String split[] = Split data berdasarkan spasi

Page 88: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT74

IF field pencarian != NULL OR markerBuku == favorite

SET posisi=0

ELSE

Increment posisi

posisi = posisi + idbuku mulai

SET passingValue = posisi

SET passingValue = spliterData

SET passingValue = markerBuku

Panggil activity mainKonten

Panggil fragment Lirik

Ambil data passingValue

SET valueId= passingValue.posisi

IF valueId = 0

Ambil data dari hasil pencarian

ELSE

Lakukan pencarian sesuai valueId pada database

Ambil data dari hasil pencarian

END IF

Passing hasil pencarian ke fragment Notangka

Panggil fragment Notangka

Atur path Not angka sesuai lagu yang dipilih

IF path not exists

Tampilkan “Not angka tidak tersedia”

ELSE

Tampilkan Not angka sesuai path yang diatur

END IF

9. Algoritma pengaturan

IF aturTheme

IF themeStatus = holo light

Page 89: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT75

SET themeStatus = holo dark

ELSE

SET themeStatus = holo light

END IF

ELSE IF aturFontSize

IF fontSize = BESAR

SET FONT_SIZE = 17

BREAK

ELSE IF fontSize = SEDANG

SET FONT_SIZE = 15

BREAK

ELSE IF fontSize = KECIL

SET FONT_SIZE = 13

BREAK

END IF

Passing value themeStatus ke activity Daftarlagu dan mainKonten

Passing value FONT_SIZE ke fragment Lirik

Page 90: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT76

BAB V

IMPLEMENTASI

1.29 Lingkungan Implementasi

Aplikasi buku nyanyian elektronik GMIM ini merupakan aplikasi yang

dirancang untuk diimplementasikan pada smartphone Android dengan spesifikasi

minimum SDK API (Application Programming Interface) level 15 yakni Android

4.0.4 Ice Cream Sandwich dan maksimum SDK API level 18 yakni Android 4.3

Jelly Bean. Aplikasi dikembangkan pada emulator Android GeanyMotion.

1.30 Implementasi Antar Muka

Berikut merupakan implementasi antar muka pada aplikasi buku nyanyian

elektronik GMIM berdasarkan perancangan tatap muka pada sub-bab 4.3.

1. Tampilan splash screen

Gambar 5.1 merupakan tampilan splash screen untuk aplikasi. Pada proses

menampilkan splash screen, diikuti juga proses menyalin data ke SD Card.

Page 91: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT77

Gambar 5.1 Tampilan splash screen

Source code splash screen:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_splash);

/*

* Stay light

*/

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");

this.mWakeLock.acquire();

statusSplash = (TextView) findViewById(R.id.statusSplash);

new PrefetchData().execute();

}

Page 92: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT78

2. Tampilan daftar lagu

Gambar 5.2 merupakan tampilan halaman awal setelah splash screen

berakhir. Pada halaman awal terdapat daftar lagu, spinner menu untuk buku atau

favorit, field pencarian, dan menu.

Gambar 5.2 Tampilan daftar lagu

Source code daftar lagu:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Intent theme = getIntent();

if(theme!=null){

THEME_STATUS= theme.getIntExtra("STATUS_THEME", 0);

}else{

THEME_STATUS= 0;

Page 93: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT79

}

if(THEME_STATUS==1){

this.setTheme(android.R.style.Theme_DeviceDefault);//light theme for API 14 (holo dark)

}else if(THEME_STATUS==0){

this.setTheme(R.style.LightTheme);

}

setContentView(R.layout.activity_main);

}

3. Tampilan lirik

Pada Gambar 5.3 merupakan tampilan lirik dan partitur pada tab lirik.

Pada halaman terdapat lirik, pengaturan instrument, dan button lirik berikutnya

dan sebelumnya.

Gambar 5.3 Tampilan lirik

Page 94: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT80

Source code lirik:

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.lirik_view, container, false);

getActivity().setTitle("Lirik & Partitur"); //title action bar

detailLirik();

return rootView;

}

4. Tampilan not angka

Pada Gambar 5.4 merupakan tampilan lirik dan partitur pada tab not

angka. Pada halaman not angka terdapat button refresh untuk menampilkan not

angka dan button berikutnya dan selanjutnya untuk not angka.

Page 95: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT81

Gambar 5.4 Tampilan not angka

Source code not angka:

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

getActivity().setTitle("Lirik & Partitur");

View rootView = inflater.inflate(R.layout.notangka_view, container, false);

return rootView;

}

1.31 Implementasi Struktur Data

Pada Tabel 5.1 merupakan implementasi struktur data pada aplikasi buku

nyanyian elektronik GMIM berdasarkan perancangan struktur data pada sub-bab

4.4.

Page 96: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT82

Tabel 5.1

Implementasi struktur data

id buku nolagu judul lineawal lineakhir favorite1 KJ 1 HALELUYA PUJILAH 4 28 FALSE2 KJ 2 SUCI SUCI SUCI 29 55 FALSE3 KJ 3 KAMI PUJI DENGAN RIANG 56 82 FALSE4 KJ 4 HAI MARI SEMBAH 83 121 FALSE5 KJ 5 TUHAN ALLAH, NAMAMU 122 162 FALSE

. . . . . . .

. . . . . . .

. . . . . . .1568 KLIK 476 SAKAENG 7342 7354 FALSE1569 KLIK 477 MABU MANINAGE SI KAU 7356 7357 FALSE

1.32 Implementasi Algoritma

Berikut merupakan implementasi algoritma dalam bentuk source code

pada aplikasi buku nyanyian elektronik GMIM berdasarkan perancangan

algoritma pada sub-bab 4.5.

1. Source code pencarian

inputSearch.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {

// When user changed the Text

DaftarLagu.this.adapterArray.getFilter().filter(cs);

stringSearch = String.valueOf(cs);

}

Page 97: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT83

});

2. Source code lihat lirik

list.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int posisi, long arg3) {

String data = (String) list.getItemAtPosition(posisi);

String[] spliterData = data.split(" ");

if(stringSearch!=null || markerBuku==favorite){

posisi=0;

}else{

posisi++;

posisi=posisi+positionBookId;

}

Intent passingValue = new Intent(getApplicationContext(), MainKonten.class);

passingValue.putExtra("Posisi", posisi);passingValue.putExtra("keywordSearch", spliterData);passingValue.putExtra("markerBuku", markerBuku);

passingValue.putExtra("THEME_STATUS", THEME_STATUS);

passingValue.putExtra("FONT_SIZE", FONT_SIZE);

startActivity(passingValue);

}

});

3. Source code lirik selanjutnya

public void next(){

Context con = getActivity().getApplicationContext();

if(valueId==1569){

Toast.makeText(con, "Konten tidak tersedia", Toast.LENGTH_LONG).show();

Page 98: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT84

}else{

lirik.setText("");

valueId ++;

detailLirik();

}

}

4. Source code lirik sebelumnya

public void prev(){

Context con = getActivity().getApplicationContext();

if(valueId==1){

Toast.makeText(con, "Konten tidak tersedia", Toast.LENGTH_LONG).show();

}else{

lirik.setText("");

valueId --;

detailLirik();

}

}

5. Source code mengatur instrumen (play & pause)

playBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Log.v("Status player", "Status "+STATUS_PLAYER);

try{

switch(STATUS_PLAYER){

case 0:

instrumen.reset();

loadInstrumen();

statusText.setText("Memainkan "+buku+" "+nolagu+" "+judullagu);

instrumen.start();playBtn.setImageResource(R.drawable.pause);

Page 99: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT85

STATUS_PLAYER=1;

break;

case 1:

instrumen.pause();

statusText.setText("Jeda"+buku+" "+nolagu+" "+judullagu);

playBtn.setImageResource(R.drawable.play);

STATUS_PLAYER=2;

break;

case 2:

instrumen.start();

playBtn.setImageResource(R.drawable.pause);

STATUS_PLAYER=1;

break;

}

}catch(Exception eg){

eg.printStackTrace();

}

}

});

6. Souce code mengatur instrumen (stop)

stopBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

instrumen.stop();

statusText.setText("Berhenti "+buku+" "+nolagu+" "+judullagu);

STATUS_PLAYER=0;

playBtn.setImageResource(R.drawable.play);

}

});

Page 100: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT86

7. Source code mengatur lagu favorit

favoriteBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

setFavorite();

}

});

8. Source code melihat not angka

public void detailNotangka(){

//tampilkan

Bitmap myBitmap = BitmapFactory.decodeFile(addImage);

TouchImageView img = (TouchImageView) getActivity().findViewById(R.id.img);

img.setImageBitmap(myBitmap);

img.setMaxZoom(4);

}

9. Source code pengaturan

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.action_mode:

Intent theme = new Intent(getApplicationContext(), SetTheme.class);

if(THEME_STATUS==0){

THEME_STATUS=1;

}else{

THEME_STATUS=0;

}

theme.putExtra("STATUS_THEME", THEME_STATUS);

startActivity(theme);

Page 101: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT87

finish();

return true;

case R.id.action_font:

showDialog();

return true;

default:

return super.onOptionsItemSelected(item);

}

}

1.33 Pengujian

Berikut merupakan pengujian aplikasi buku nyanyian elektronik GMIM

berbasis Android dengan menggunakan whitebox, blackbox dan feedback dari

pengguna.

1.33.1 Whitebox

Tabel 5.1 merupakan pengujian dengan metode whitebox yakni pengujian

pada struktur dan logika aplikasi dengan menggunakan tool pseudocode. Seperti

pada sub-bab 1.6.1, pengujian ini lebih dikhususkan pada pengembang.

Tabel 5.1

Pengujian dengan metode whitebox

1. Struktur program pengaturan ukuran huruf lirik

Page 102: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT88

switch ukuran fontcase besar :

deklarasi FONT_SIZE = 17case sedang :

deklarasi FONT_SIZE = 15case kecil :

deklarasi FONT_SIZE = 13 Output :

Inisialisasi salah satu ukuran font yang akan dikirim ke class Lirik

Hasil : BERHASIL

2. Struktur program melihat lirik selanjutnyaset TextView lirik = null;increment valueIdlakukan proses lihat lirikOutput :

Increment valueId sebelum melakukan proses lihat lirik

Hasil : BERHASIL

Tabel 5.1

Pengujian dengan metode whitebox (Lanjutan)

3. Struktur program melihat lirik sebelumnyaset TextView lirik = null;decrement valueIdlakukan proses lihat lirikOutput :

decrement valueId sebelum melakukan proses lihat lirikHasil : BERHASIL

4. Struktur program mengatur instrument (play)inisialisasi instrumen, statusText, STATUS_PLAYERswitch STATUS_PLAYER

case 0:instrumen resetpanggil method loadInstrumen()mainkan instrumenganti icon button play dengan logo pauseatur STATUS_PLAYER=1

case 1:untuk menghentikan sementara

case 2:untuk melanjutkan

Page 103: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT89

Method loadInstrumen()

inisialisasi sourceMidi = null;

if buku == kjatur sourceMidi = "com.egmim/kj"+nolagu"+.MID"

else if buku == pkjatur sourceMidi = "com.egmim/pkj"+nolagu"+.MID"

else if buku == nkbatur sourceMidi = "com.egmim/nkb"+nolagu"+.MID"

else if buku == nnbtatur sourceMidi = "com.egmim/nnbt"+nolagu"+.MID"

else if buku == kliktampilkan "Konten (midi) tidak tersedia"

elsePrint "Pemilihan buku gagal pada loadInstrumen()"

inisialisasi url = "/sdcard/Android/data/"+sourceMidiinisialisasi file midi = urlif midi tidak ada

tampilkan "Konten (midi) tidak tersedia"

atur source instrumen = urlOutput :

1. Path untuk file midi berhasil diinisialisasi2. Fungsi memainkan instrument berhasil

Hasil : BERHASILTabel 5.1

Pengujian dengan metode whitebox (Lanjutan)

5. Struktur program mengatur instrument (stop)atur instrumen stop()atur STATUS_PLAYER = 0ubah button play atau pause menjadi playOutput :

1. Perubahan icon button play dan inisialisasi STATUS_PLAYER2. stop() berhasiL dijalankan

Hasil : BERHASIL6. Struktur program melihat not angka

inisialisasi nilai dari lirik: buku dan nolaguinisialisasi page value = 1

panggil method gettingData (page value)panggil method detailNotangka()

method gettingData

ubah buku toLowerCase()

Page 104: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT90

inisialisasi path for not angka imginisialisasi path sebagai file

if file tidak ditemukanubah pathinisialisasi path sebagai fileif file tidak ditemukan && page value !=1

ubah page value = 1panggil method gettingData(page value)tampilkan "Konten (not angka) tidak tersedia"

method detailNotangka

atur path sebagai bitmaptampilkan not angka Output :

1. Path image berhasil diinisialisasi2. Image diatur ke bitmap3. Not angka ditampilkan

Hasil : BERHASIL7. Struktur program melihat halaman not angka selanjutnya

increment page valuepanggil method gettingData(page value)panggil method detailNotangka(); Output :

Increment page value sebelum menjalankan method gettingData() dan detailNo-tangka()

Hasil : BERHASILTabel 5.1

Pengujian dengan metode whitebox (Lanjutan)

8. Struktur program melihat halaman not angka sebelumnyadecrement page valuepanggil method gettingData(page value)panggil method detailNotangka(); Output :

decrement page value sebelum menjalankan method gettingData() dan detailNo-tangka()

Hasil : BERHASIL9. Struktur program melakukan pencarian

split data judul lagu menjadi buku dan id

if field search != null || markerBuku == favoriteatur posisi = 0

elseincrement posisiposisi = posisi + id

}

Page 105: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT91

panggil class MainKontenpanggil method dataResultfromsearch()

lakukan pencarian pada database berdasarkan buku dan idsimpan hasil pencarian pada attribute searchResult[] Output :

Hasil pencarian berhasil disimpan pada array searchResult[]Hasil : BERHASIL

10. Struktur program pengaturan ganti latarif THEME_STATUS == 0

atur THEME_STATUS = 1; else THEME_STATUS == 1

atur THEME_STATUS = 0

panggil class setThemeclass setTheme memanggil class DaftarLagu

if THEME_STATUS == 0atur theme light holo

else THEME_STATUS == 1atur theme holo dark

Output :1. Inisialisasi THEME_STATUS 0/12. Method onCreate() pada DaftarLagu di create kembali

Hasil : BERHASIL

Tabel 5.1

Pengujian dengan metode whitebox (Lanjutan)

11. Struktur program daftar lagu menurut kelompok laguswitch jenis bukucase semua:

atur markerBuku = semuaatur id = 0panggil method diplayData()

case kj:atur markerBuku = KJatur id = 0panggil method diplayData()

case pkj:atur markerBuku = PKJatur id = 500panggil method diplayData()

case nkb:atur markerBuku = NKBatur id = 808panggil method diplayData()

Page 106: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT92

case nnbt:atur markerBuku = NNBTatur id = 1038panggil method diplayData()

case klik:atur markerBuku = KLIKatur id = 1088panggil method diplayData()

case favorite:atur markerBuku = favoritedisplayData()

Method displayData()

hapus daftar lagu

switch merkerBukucase seluruh buku

ambil data dari database seluruh bukucase berdasarkan buku

ambil data dari database berdasarkan bukucase favorit

ambil data dari database dengan nilai favorit==true

tampilkan ke daftar lagu

Output Daftar lagu ditampilkan dalam bentuk list

Hasil : BERHASILTabel 5.1

Pengujian dengan metode whitebox (Lanjutan)

12. Struktur program melihat lirikjalankan gettingData() untuk mengambil data dari database dan inisialisasiif favorite == true

atur button favorite menjadi favoriteelse

atur button favorite menjadi unfavorite

if buku == kjinisialisasi file kj dari res/raw

else if buku == pkjinisialisasi file pkj dari res/raw

else if buku == nkbinisialisasi file nkb dari res/raw

else if buku == nnbtinisialisasi file nkb dari res/raw

Page 107: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT93

else if buku == klikinisialisasi file klik dari res/raw

inisialisasi fileinisialisasi baris=0if file != null

while baris tidak kosongincrement barisif baris == lineawal lagu

atur sebagai judulif baris == lineawal lagu+1 && baris<= lineakhir lagu

atur sebagai isi lirikOutput :

Text file hanya menampilkan isi dari lineawal sampai lineakhirHasil : BERHASIL

Tabel 5.1

Pengujian dengan metode whitebox (Lanjutan)

13. Struktur program mengatur instrument (pause)inisialisasi instrumen, statusText, STATUS_PLAYERswitch STATUS_PLAYER

case 0:untuk memulai pertama kali

case 1:atur instrumen pause()ganti icon button pause dengan logo playatur STATUS_PLAYER=2

case 2:atur instrumen start()ganti icon button play dengan logo pauseatur STATUS_PLAYER=1

Output :1. Perubahan icon button pause ke play atau play ke pause

Page 108: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT94

2. Inisialisasi STATUS_PLAYER3. Pause() atau start() berhasil dijalankan

Hasil : BERHASIL

14. Struktur program mengatur lagu favoritif favorite == true....(2)

Ubah button favorite menjadi unfavorite....(3)atur favorite = false;

else ....(2)Ubah button unfavorite menjadi favorite....(3)atur favorite = true;

perbaharui database....(4)if berhasil di perbaharui

tampilkan "lagu favorite ditambah / dihilangkan"else gagal di perbaharui

tampilkan "gagal diperbaharui" Output :

1. Button favorit diubah menjadi favorite/unfavorite2. Perubahan pada database

Hasil : BERHASIL

Page 109: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT95

1.33.2 Blackbox

Tabel 5.1 merupakan pengujian dengan metode blackbox yakni pengujian

pada fungsi input output aplikasi. Seperti pada sub-bab 1.6.1, pengujian ini lebih

dikhususkan pada pengguna.

Tabel 5.2

Pengujian dengan metode blackbox (Lanjutan)

1. Pengujian daftar lagu menurut kelompok lagu

Deskripsi Daftar lagu menurut kelompok (seluruh lagu, favorit, buku).

Input Memilih jenis kelompok lagu pada spinner menuOutput Menampilkan daftar lagu menurut kelompokHasil Berhasil

2. Pengujian pengaturan ukuran huruf lirik

Deskripsi Ukuran lirik lagu berdasarkan kategori (besar, normal, ke-cil)

Input Memilih sub-menu Ukuran huruf lirikOutput Ukuran huruf lirik berubah sesuai pilihan penggunaHasil Berhasil

3. Pengujian pengaturan ganti latarDeskripsi Mengubah latar atau tema aplikasi (light,dark)Input Memilih sub-menu Ganti latarOutput Latar atau tema berubah setiap kali sub-menu dipilihHasil Berhasil

4. Pengujian melakukan pencarian

Deskripsi Mencari berdasarkan potongan nomor lagu, judul atau buku lagu

Input Memasukan potongan nomor lagu, judul atau buku lagu

Output Menampilkan daftar lagu terkait potongan nomor lagu, judul atau buku lagu

Hasil Berhasil

Page 110: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT96

Tabel 5.2

Pengujian dengan metode blackbox (Lanjutan)

5. Pengujian melihat lirikDeskripsi Melihat lirik sesuai pilihan pada daftar laguInput Memilih lagu pada daftar lagu dan memilih tab lirikOutput Lirik ditampilkan sesuai lagu yang dipilihHasil Berhasil

6. Pengujian melihat not angkaDeskripsi Melihat not angka sesuai pilihan pada daftar lagu

Input Memilih lagu pada daftar lagu dan memilih tab not angka

Output Lirik ditampilkan sesuai lagu yang dipilihHasil Berhasil

7. Pengujian mengatur instrumen (play)Deskripsi Memainkan instrumen sesuai lirik yang ditampilkanInput Memilih icon button play

Output Instrumen dimainkan, Button play berubah menjadi pause

Hasil Berhasil

8. Pengujian mengatur instrumen (pause)Deskripsi Menghentikan sementara instrumen yang dimainkanInput Memilih icon button pause

Output Instrumen dihentikan sementara, button pause berubah menjadi play

Hasil Berhasil

9. Pengujian mengatur instrumen (stop)Deskripsi Menghentikan instrumen yang dimainkanInput Memilih icon button stopOutput Instrumen dihentikanHasil Berhasil

10. Pengujian mengatur lagu favoritDeskripsi Menambah/menghilangkan lagu dari daftar lagu favoritInput Memilih icon button favorit

Output Lagu favorit ditambah/dihilangkan dari daftar lagu favorit, button favorit berubah simbol

Hasil- Berhasil

Page 111: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT97

Tabel 5.2

Pengujian dengan metode blackbox (Lanjutan)

11. Pengujian melihat lirik selanjutnyaDeskripsi Melihat lirik selanjutnya dari lirik yang sementara dilihatInput Memilih icon button next Output Lirik lagu selanjutnya ditampilkanHasil Berhasil

12. Pengujian melihat lirik sebelumnya

Deskripsi Melihat lirik sebelumnya dari lirik yang sementara dilihat

Input Memilih icon button prev Output Lirik lagu sebelumnya ditampilkanHasil Berhasil

13. Pengujian zoom in/out pada not angkaDeskripsi Melakukan zoom in/out pada image not angkaInput Melakukan tap pada image not angkaOutput Not angka dapat melakukan zoom in/outHasil Berhasil

14. Pengujian melihat halaman not angka selanjutnyaDeskripsi Melihat sambungan not angka selanjutnyaInput Memilih button icon next pada tab not angkaOutput Dapat melihat halaman not angka selanjutnyaHasil Berhasil

15. Pengujian melihat halaman not angka sebelumnyaDeskripsi Melihat sambungan not angka sebelumnyaInput Memilih button icon prev pada tab not angkaOutput Dapat melihat halaman not angka sebelumnyaHasil Berhasil

Page 112: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT98

1.33.3 Feedback

Pada Tabel. 5.3 merupakan feedback dilihat dari segi kemampuan aplikasi

dan interaksi manusia dan komputer. Feedback ini lebih dikhusukan pada

pengembang aplikasi atau peneliti.

Tabel 5.3

Hasil feedback untuk pengembang

No Peryataan

Nilai

sangat setuju

setuju Cukup tidak setuju

sangat tidak

setuju

A Interaksi Manusia dan Komputer

1

Pengguna dapat menggunakan ap-likasi dengan baik

2 (20%)

7 (70%)

1 (10%)

0 (0%)

0 (0%)

2Desain tata letak sudah baik 1

(10%)3 (30%)

6 (60%)

0 (0%)

0 (0%)

3Tampilan dan penggunaan warna aplikasi sesuai

0 (0%)

7 (70%)

3 (30%)

0 (0%)

0 (0%)

4Tampilan menu sesuai 1

(10%)7 (70%)

2 (20%)

0 (0%)

0 (0%)

5Ukuran button sesuai 0

(0%)5 (50%)

5 (50%)

0 (0%)

0 (0%)

B Kemampuan aplikasi

1 Kinerja aplikasi sudah baik 1 (10%)

8 (80%)

1 (10%)

0 (0%)

0 (0%)

2 Instrumen dapat dimainkan 1 (10%)

7 (70%)

2 (20%)

0 (0%)

0 (0%)

3 Dapat menambah atau mengurangi lagu favorit

4 (40%)

6 (60%)

0 (0%)

0 (0%)

0 (0%)

4 Dapat melihat not angka degan baik 5 (50%)

3 (30%)

2 (20%)

0 (0%)

0 (0%)

5 Pencarian sesuai dengan input 3 (30%)

7 (70%)

0 (0%)

0 (0%)

0 (0%)

6 Lirik ditampilkan dengan baik 2 (20%)

4 (40%)

3 (30%)

1 (10%)

0 (0%)

7 Pengaturan yang ada sudah cukup 2 (20%)

5 (50%)

1 (10%)

2 (20%)

0 (0%)

Page 113: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT99

Tabel 5.3

Hasil feedback untuk pengembang (Lanjutan)

No

Nilai

sangat setuju

setuju Cukup tidak setuju

sangat tidak

setuju

Hasil (x/12) 1.84 5.75 2.17 0.25 0

Berdasarkan kuesioner pada Tabel 5.3 memberikan hasil rata-rata memilih

setuju dari sepuluh orang yang mengisi kuestioner dengan nilai rata-rata 5.75.

Pada Tabel 5.4 merupakan hasil feedback berdasarkan latar belakang

penelitian. Feedback ini lebih dikhusukan pada pengguna.

Tabel 5.4

Hasil feedback untuk pengguna

No Peryataan

Nilai

sangat setuju

setuju Cukup tidak setuju

sangat tidak

setuju

C Berdasarkan latar belakang masalah (Jemaat)

1

Kemudahan dengan hanya mem-bawa smartphone pada tempat pelaksanaan ibadah

1 (33%)

2 (67%)

0 (0%)

0 (0%)

0 (0%)

2Belajar lagu secara individual 0

(0%) 3 100%

0 (0%)

0 (0%)

0 (0%)

D Berdasarkan latar belakang masalah (Gereja)

1Mengurangi biaya untuk penggu-naan kertas

0 (0%)

2 (67%) 1 (33%)

0 (0%)

0 (0%)

2

Mengatasi masalah penggunaan proyektor yang tidak memungkinkan pada tempat yang tidak luas dan sulit dilihat anggota jemaat

0 (0%)

2 (67%) 1 (33%)

0 (0%)

0 (0%)

Page 114: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT100

Hasil (x/4) 0.25 2.25 0.5 0 0

Berdasarkan kuesioner pada Tabel 5.4 memberikan hasil rata-rata memilih

setuju dari empat orang yang mengisi kuestioner dengan nilai rata-rata 2.25.

Page 115: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT101

BAB VI

KESIMPULAN DAN SARAN

1.34 Kesimpulan

1. Aplikasi buku nyanyian elektronik GMIM hanya berjalan pada

smartphone dengan sistem operasi Android.

2. Aplikasi dilengkapi dengan lirik, instrument, partitur not angka dan

fitur pengaturan latar dan ukuran huruf lirik.

3. Aplikasi memberikan kemudahan dengan tidak perlu lagi membawa

buku pada tempat acara ibadah dan kemudahan untuk belajar lagu

secara individual

4. Aplikasi mengurangi biaya untuk memperbanyak lirik lagu dan

mengatasi masalah proyektor yang tidak memungkinkan pada tempat

yang tidak luas dan terhalang hingga sulit untuk dilihat anggota jemaat

1.35 Saran

Pada penelitian ini peneliti masih perlu adanya penyempurnaan aplikasi.

Berikut adalah saran untuk kelengkapan aplikasi selanjutnya:

1. Partitur not angka untuk tiap buku dilengkapi

2. Aplikasi mendukung tata letak pada device tablet

3. Aplikasi mendukung sistem operasi selain Android

Page 116: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT102

4. Lagu diatur untuk dikategorikan menurut kategori lagu seperti pada

sub-bab 2.9.

5. Aplikasi dapat melakukan generated lagu yang akan digunakan sesuai

kategori lagu atau ibadah seperti pada sub-bab 2.9.

6. Aplikasi dilengkapi fitur MIDI nada dasar

Page 117: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT103

DAFTAR PUSTAKA

x

[1] Didik Purwanto. (2012, Juli) tekno.kompas.com. [Online]. Available

http://tekno.kompas.com/read/2012/07/03/06480749/Pengguna.Smartpho

ne.Lebih.Jarang.Ngoceh

[2] Comscore, inc. (2013, Februari) [Online]. Available

http://www.comscore.com/content/download/19423/949669/file/Mobile-

Future-In-Focus-Report-2013.pdf

[3] Amir Karimudin. (2013, Mei) PT. Digital Startup Nusantara. [Online].

Available http://dailysocial.net/post/gfk-android-dominasi-penjualan-

smartphone-di-indonesia-dan-asia-tenggara-kuartal-pertama-2013

[4] Aloysius Low. (2013, Mei) cnet asia. [Online]. Available

http://asia.cnet.com/android-dominated-sea-in-q1-2013-62221402.htm

[5] (2013) Wikipedia. [Online]. Available http://id.wikipedia.org/wiki/Buku

[6] Roger S.Pressman Ph.D, Rekayasa Perangkat Lunak, 7th ed., Dhewiberta

Hardjono, Ed. Yogyakarta, Indonesia: ANDI, 2012.

[7] (2013) Wikipedia. [Online]. Available

http://id.wikipedia.org/wiki/Notasi_musik

[8] AKHIL M. JAISWAL and PROF. P. L. RAMTEKE, "SECURITY IN

Page 118: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT104

MOBILE COMPUTING," INTERNATIONAL JOURNAL OF PURE

AND, vol. 1, p. 2, April 2013.

[9] Wei-Meng Lee, BEGINNING: Android 4 Application Development.

Indianapolis, United States of America: John Wiley & Sons, Inc, 2012.

[10] (2013) Wikipedia. [Online]. Available

http://id.wikipedia.org/wiki/Android

[11] Herbert Schildt, The Complete Refrence Java, 7th ed. New york, United

States of America: Mc Graw Hill, 2007.

[12] Sqlite. [Online]. Available http://sqlite.org/about.html

[13] Emeraldy Widiyadi and S.T., M.T Bugi Wibowo, "Pembangunan

Aplikasi Latihan Trompet pada," Jurnal Sarjana Institut Teknologi

Bandung bidang Teknik Elektro dan Informatika, vol. 1, no. 3, p. 1,

Oktober 2012.

[14] Yayasan Musik Gereja, Kidung Jemaat. Jakarta, Indonesia: Persekutuan

Gereja-Gereja di Indonesia.

[15] Yayasan Musik Gereja, Pelengkap Kidung Jemaat. Jakarta, Indonesia:

Persekutuan Gereja-Gereja di Indonesia, 2007.

[16] Sinode Am GKI, Nyayikanlah Kidung Baru, Asih S.D. cs, Ed. Jakarta,

Indonesia: BPK Gunung Mulia, 2005.

[17] Bidang Musik Sinode GMIM, Nyayikanlah Nyayian Baru Bagi Tuhan.

Page 119: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT105

Tomohon, Indonesia: Badan Pekerja Sinode GMIM, 2010.

[18] Pnt. Drs A. J Waleleng, Kumpulan Lagu Ibadah-Ibadah Kreatif & KKR

(KLIK)., 2007.

[19] Scott W. Ambler, The Elements of UML 2.0 Style. New York, United

States of America: Cambridge University Press, 2005.

[20] Yusuf Aryo Seto, “Pemanfaatan Media Pembelajaran Aplikasi Finale

2006 Untuk Meningkatkan Minat Dan Ketrampilan Membaca Notasi

Musik Siswa Kelas II TKJ 1 SMK 3 Kendal Tahun Ajaran 2008/ 2009”.

Under Graduates thesis, Universitas Negeri Semarang, Semarang,

Indonesia, 2009.

[21] Vinanda U,un Ayuningtyas, “Aplikasi Kamus Kebidanan Berbasis

Android”. Under graduates thesis, Institut Sepuluh Nopember Surabaya,

Surabaya, Indonesia, 2011.

Page 120: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT106

JADWAL PENELITIAN

Page 121: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT107

KARTU KONSULTASI

Page 122: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT108

SURAT PERYATAAN

Page 123: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT109

DAFTAR KETERSEDIAAN NOT ANGKA DAN MIDI

(Sumber : kidungonline.com)

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

1 Ada Ada Ada 2 Ada Ada Ada 3 Ada Tidak Ada Ada 4 Ada Ada Ada 5 Ada Ada Ada 6 Ada Tidak Ada Ada 7 Ada Ada Ada 8 Ada Tidak Ada Ada 9 Ada Tidak Ada Ada

10 Ada Tidak Ada Ada 11 Ada Tidak Ada Ada 12 Ada Tidak Ada Ada 13 Ada Ada Ada 14 Ada Ada Ada 15 Ada Ada Ada 16 Ada Tidak Ada Ada 17 Ada Tidak Ada Ada 18 Ada Tidak Ada Ada 19 Ada Tidak Ada Ada 20 Ada Tidak Ada Ada 21 Ada Ada Ada 22 Ada Ada Ada 23 Ada Tidak Ada Ada 24 Ada Tidak Ada Tidak Ada 25 Ada Tidak Ada Tidak Ada 26 Ada Tidak Ada Tidak Ada 27 Ada Ada Tidak Ada 28 Ada Tidak Ada Tidak Ada 29 Ada Tidak Ada Ada

30a Ada Tidak Ada Tidak Ada 30b Ada Tidak Ada Tidak Ada 31 Ada Tidak Ada Tidak Ada

Page 124: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT110

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

32 Ada Tidak Ada Tidak Ada 33 Ada Tidak Ada Tidak Ada 34 Ada Tidak Ada Ada 35 Ada Tidak Ada Ada 36 Ada Tidak Ada Tidak Ada 37 Ada Ada Tidak Ada 38 Ada Tidak Ada Ada 39 Ada Ada Tidak Ada 40 Ada Ada Tidak Ada 41 Ada Tidak Ada Tidak Ada 42 Ada Tidak Ada Ada 43 Ada Ada Tidak Ada 44 Ada Tidak Ada Tidak Ada 45 Ada Tidak Ada Tidak Ada 46 Ada Ada Tidak Ada 47 Ada Tidak Ada Tidak Ada 48 Ada Tidak Ada Ada 49 Ada Tidak Ada Ada 50 Ada Tidak Ada Ada 51 Ada Tidak Ada Tidak Ada 52 Ada Tidak Ada Ada 53 Ada Tidak Ada Tidak Ada 54 Ada Tidak Ada Ada 55 Ada Ada Tidak Ada 56 Ada Tidak Ada Tidak Ada 57 Ada Tidak Ada Ada 58 Ada Ada Tidak Ada 59 Ada Tidak Ada Tidak Ada 60 Ada Ada Tidak Ada 61 Ada Tidak Ada Tidak Ada 62 Ada Tidak Ada Tidak Ada 63 Ada Tidak Ada Tidak Ada 64 Ada Tidak Ada Tidak Ada 65 Ada Tidak Ada Tidak Ada 66 Ada Tidak Ada Tidak Ada 67 Ada Tidak Ada Tidak Ada 68 Ada Tidak Ada Tidak Ada 69 Ada Tidak Ada Ada

Page 125: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT111

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

70 Ada Tidak Ada Tidak Ada 71 Ada Tidak Ada Ada 72 Ada Tidak Ada Ada 73 Ada Tidak Ada Ada 74 Ada Ada Ada 75 Ada Tidak Ada Tidak Ada 76 Ada Tidak Ada Tidak Ada 77 Ada Tidak Ada Ada 78 Ada Tidak Ada Tidak Ada 79 Tidak Ada Tidak Ada Tidak Ada 80 Tidak Ada Tidak Ada Tidak Ada 81 Ada Tidak Ada Tidak Ada 82 Ada Tidak Ada Tidak Ada 83 Ada Tidak Ada Ada 84 Ada Tidak Ada Ada 85 Ada Tidak Ada Ada 86 Ada Tidak Ada Tidak Ada 87 Ada Tidak Ada Ada 88 Tidak Ada Tidak Ada Tidak Ada 89 Tidak Ada Tidak Ada Tidak Ada 90 Tidak Ada Tidak Ada Ada 91 Ada Tidak Ada Tidak Ada 92 Ada Tidak Ada Tidak Ada 93 Tidak Ada Tidak Ada Tidak Ada 94 Ada Tidak Ada Tidak Ada 95 Tidak Ada Tidak Ada Tidak Ada 96 Ada Tidak Ada Tidak Ada 97 Ada Tidak Ada Tidak Ada 98 Ada Tidak Ada Ada 99 Ada Tidak Ada Tidak Ada

100 Ada Tidak Ada Ada 101 Ada Tidak Ada Tidak Ada 102 Ada Tidak Ada Ada 103 Tidak Ada Tidak Ada Tidak Ada 104 Tidak Ada Tidak Ada Ada 105 Ada Ada Tidak Ada 106 Tidak Ada Tidak Ada Tidak Ada 107 Tidak Ada Tidak Ada Tidak Ada

Page 126: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT112

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

108 Ada Tidak Ada Tidak Ada 109 Ada Tidak Ada Tidak Ada 110 Tidak Ada Tidak Ada Tidak Ada 111 Ada Tidak Ada Tidak Ada 112 Ada Tidak Ada Ada 113 Tidak Ada Tidak Ada Tidak Ada 114 Tidak Ada Tidak Ada Ada 115 Tidak Ada Tidak Ada Ada 116 Tidak Ada Tidak Ada Ada 117 Tidak Ada Ada Ada 118 Tidak Ada Tidak Ada Tidak Ada 119 Ada Tidak Ada Ada 120 Ada Tidak Ada Ada 121 Ada Tidak Ada Ada 122 Tidak Ada Tidak Ada Ada 123 Ada Ada Ada 124 Tidak Ada Tidak Ada Tidak Ada 125 Tidak Ada Ada Ada 126 Tidak Ada Tidak Ada Ada 127 Tidak Ada Tidak Ada Ada 128 Tidak Ada Ada Ada 129 Tidak Ada Tidak Ada Ada 130 Tidak Ada Tidak Ada Ada 131 Tidak Ada Tidak Ada Ada 132 Tidak Ada Tidak Ada Tidak Ada 133 Ada Ada Ada 134 Ada Ada Ada 135 Ada Tidak Ada Tidak Ada 136 Tidak Ada Tidak Ada Tidak Ada 137 Tidak Ada Tidak Ada Ada 138 Tidak Ada Ada Ada 139 Tidak Ada Tidak Ada Tidak Ada 140 Tidak Ada Tidak Ada Ada 141 Tidak Ada Tidak Ada Tidak Ada 142 Tidak Ada Tidak Ada Tidak Ada 143 Ada Ada Tidak Ada

144a Tidak Ada Tidak Ada Tidak Ada 144b Ada Tidak Ada Tidak Ada

Page 127: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT113

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

145 Tidak Ada Ada Tidak Ada 146 Tidak Ada Ada Ada 147 Tidak Ada Ada Ada 148 Tidak Ada Ada Tidak Ada 149 Ada Ada Tidak Ada 150 Ada Tidak Ada Tidak Ada 151 Tidak Ada Ada Tidak Ada 152 Tidak Ada Ada Ada 153 Tidak Ada Ada Ada 154 Ada Tidak Ada Ada 155 Ada Tidak Ada Tidak Ada 156 Tidak Ada Tidak Ada Tidak Ada 157 Ada Ada Ada 158 Ada Tidak Ada Tidak Ada 159 Tidak Ada Ada Ada 160 Ada Tidak Ada Tidak Ada 161 Ada Tidak Ada Tidak Ada 162 Ada Tidak Ada Tidak Ada 163 Tidak Ada Tidak Ada Ada 164 Tidak Ada Ada Ada 165 Tidak Ada Ada Ada 166 Tidak Ada Tidak Ada Tidak Ada 167 Ada Tidak Ada Ada

168a Tidak Ada Tidak Ada Ada 168b Tidak Ada Tidak Ada Ada 168c Ada Tidak Ada Ada 169 Ada Tidak Ada Ada 170 Ada Tidak Ada Ada 171 Tidak Ada Tidak Ada Tidak Ada 172 Tidak Ada Tidak Ada Tidak Ada 173 Tidak Ada Tidak Ada Ada 174 Tidak Ada Tidak Ada Tidak Ada 175 Ada Ada Ada 176 Tidak Ada Tidak Ada Tidak Ada 177 Ada Ada Ada 178 Ada Ada Ada 179 Tidak Ada Ada Ada 180 Tidak Ada Ada Ada

Page 128: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT114

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

181 Tidak Ada Tidak Ada Tidak Ada 182 Tidak Ada Tidak Ada Tidak Ada 183 Ada Ada Ada 184 Tidak Ada Ada Ada 185 Tidak Ada Ada Ada 186 Tidak Ada Tidak Ada Tidak Ada 187 Ada Tidak Ada Tidak Ada 188 Ada Tidak Ada Ada 189 Tidak Ada Tidak Ada Ada 190 Tidak Ada Tidak Ada Ada 191 Ada Tidak Ada Ada 192 Ada Tidak Ada Tidak Ada 193 Ada Tidak Ada Tidak Ada 194 Ada Tidak Ada Ada 195 Tidak Ada Tidak Ada Ada 196 Tidak Ada Tidak Ada Ada 197 Ada Tidak Ada Ada 198 Tidak Ada Tidak Ada Tidak Ada 199 Tidak Ada Ada Ada 200 Tidak Ada Tidak Ada Ada 201 Tidak Ada Tidak Ada Ada 202 Tidak Ada Ada Ada 203 Tidak Ada Tidak Ada Ada 204 Tidak Ada Tidak Ada Ada 205 Tidak Ada Ada Ada 206 Tidak Ada Tidak Ada Ada 207 Tidak Ada Tidak Ada Ada 208 Tidak Ada Tidak Ada Ada 209 Tidak Ada Ada Tidak Ada 210 Tidak Ada Tidak Ada Ada 211 Ada Tidak Ada Ada 212 Tidak Ada Tidak Ada Ada 213 Tidak Ada Tidak Ada Ada 214 Tidak Ada Tidak Ada Tidak Ada 215 Tidak Ada Tidak Ada Tidak Ada 216 Ada Ada Ada 217 Tidak Ada Tidak Ada Ada 218 Tidak Ada Tidak Ada Ada

Page 129: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT115

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

219 Tidak Ada Ada Ada 220 Ada Tidak Ada Ada 221 Tidak Ada Tidak Ada Tidak Ada 222 Tidak Ada Tidak Ada Ada 223 Tidak Ada Tidak Ada Tidak Ada 224 Tidak Ada Tidak Ada Ada 225 Ada Tidak Ada Ada 226 Tidak Ada Tidak Ada Tidak Ada 227 Tidak Ada Tidak Ada Ada 228 Tidak Ada Tidak Ada Ada 229 Tidak Ada Tidak Ada Tidak Ada 230 Tidak Ada Tidak Ada Ada 231 Tidak Ada Tidak Ada 232 Tidak Ada Tidak Ada 233 Ada Tidak Ada 234 Tidak Ada Tidak Ada 235 Ada Tidak Ada 236 Tidak Ada Tidak Ada 237 Ada Tidak Ada 238 Tidak Ada Tidak Ada 239 Ada Ada

240a Ada Tidak Ada 240b Tidak Ada Tidak Ada 241 Ada Ada 242 Ada Ada 243 Tidak Ada Tidak Ada 244 Tidak Ada Tidak Ada 245 Tidak Ada Tidak Ada 246 Ada Tidak Ada 247 Ada Tidak Ada 248 Tidak Ada Tidak Ada 249 Ada Tidak Ada 250 Tidak Ada Tidak Ada 251 Tidak Ada Tidak Ada 252 Ada Tidak Ada 253 Tidak Ada Tidak Ada 254 Tidak Ada Tidak Ada 255 Ada Ada

Page 130: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT116

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

256 Ada Tidak Ada 257 Tidak Ada Tidak Ada 258 Ada Ada 259 Ada Tidak Ada 260 Ada Tidak Ada 261 Tidak Ada Tidak Ada 262 Ada Tidak Ada 263 Tidak Ada Tidak Ada 264 Tidak Ada Ada 265 Tidak Ada Ada 266 Ada Tidak Ada 267 Tidak Ada Ada 268 Tidak Ada Tidak Ada 269 Ada Tidak Ada 270 Tidak Ada Ada 271 Tidak Ada Tidak Ada 272 Tidak Ada Tidak Ada 273 Ada Ada 274 Tidak Ada Ada 275 Tidak Ada Tidak Ada 276 Tidak Ada Tidak Ada 277 Ada Tidak Ada 278 Ada Tidak Ada 279 Tidak Ada Tidak Ada 280 Ada Tidak Ada 281 Ada Tidak Ada 282 Ada Tidak Ada 283 Tidak Ada Tidak Ada 284 Tidak Ada Tidak Ada 285 Tidak Ada Ada 286 Ada Tidak Ada

287a Ada Tidak Ada 287b Tidak Ada Tidak Ada 288 Ada Ada 289 Ada Ada 290 Tidak Ada Tidak Ada

Page 131: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT117

Nomor Lagu

KJ PKJ NKBNot Angka Midi Not Angka Midi Not Angka Midi

291 Ada Tidak Ada 292 Ada Tidak Ada 293 Ada Tidak Ada 294 Tidak Ada Tidak Ada 295 Tidak Ada Tidak Ada 296 Tidak Ada Tidak Ada 297 Tidak Ada Tidak Ada 298 Ada Tidak Ada 299 Ada Tidak Ada 300 Ada Tidak Ada 301 Ada Tidak Ada 302 Ada Ada 303 Ada Tidak Ada 304 Ada Tidak Ada 305 Tidak Ada Tidak Ada 306 Tidak Ada Tidak Ada 307 Tidak Ada Ada 308 Tidak Ada Tidak Ada

Nomor Lagu

KJNot Angka Midi

325 Tidak Ada 326 Tidak Ada 327 Tidak Ada 328 Tidak Ada 329 Tidak Ada 330 Tidak Ada 331 Ada 332 Ada 333 Tidak Ada 334 Tidak Ada 335 Tidak Ada 336 Ada 337 Ada 338 Tidak Ada 339 Ada 340 Tidak Ada

Page 132: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT118

Nomor Lagu

KJNot Angka Midi

377 Tidak Ada 378 Ada 379 Ada 380 Tidak Ada 381 Ada 382 Ada 383 Ada 384 Tidak Ada 385 Tidak Ada 386 Tidak Ada 387 Ada 388 Ada 389 Ada 390 Tidak Ada 391 Ada 392 Ada 393 Ada 394 Tidak Ada 395 Ada 396 Ada 397 Ada 398 Tidak Ada 399 Tidak Ada 400 Ada 401 Ada 402 Ada 403 Ada 404 Tidak Ada 405 Ada 406 Ada 407 Ada 408 Ada 409 Ada 410 Ada 411 Tidak Ada 412 Ada

Nomor Lagu

KJNot Angka Midi

449 Tidak Ada 450 Ada 451 Ada 452 Ada 453 Ada 454 Tidak Ada 455 Tidak Ada 456 Tidak Ada 457 Ada 458 Tidak Ada 459 Tidak Ada 460 Ada 461 Ada 462 Ada 463 Tidak Ada 464 Ada 465 Tidak Ada 466 Tidak Ada 467 Ada 468 Ada 469 Tidak Ada 470 Tidak Ada 471 Ada 472 Tidak Ada 473 Ada 474 Tidak Ada 475 Tidak Ada 476 Tidak Ada 477 Tidak Ada 478 Ada 479 Tidak Ada 480 Tidak Ada 481 Tidak Ada 482 Tidak Ada 483 Tidak Ada

Page 133: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT119

Nomor Lagu

KJNot Angka Midi

484 Tidak Ada

Page 134: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT120

485 Tidak Ada 486 Tidak Ada 487 Tidak Ada

Page 135: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT121

KODE PROGRAM

Splashscreen.java

package com.example.egmim;

import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;

import com.example.support.DatabaseImport;

import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.res.AssetManager;import android.database.SQLException;import android.os.AsyncTask;import android.os.Bundle;import android.os.Environment;import android.os.PowerManager;import android.util.Log;import android.widget.TextView;import android.widget.Toast;

public class Splashscreen extends Activity{

private TextView statusSplash;public DatabaseImport dc;protected PowerManager.WakeLock mWakeLock;

@Override public void onDestroy() { this.mWakeLock.release(); super.onDestroy(); }

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); /* * Stay light */ final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

Page 136: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT122

this.mWakeLock = pm.newWakeLock(PowerManag-er.SCREEN_DIM_WAKE_LOCK, "My Tag"); this.mWakeLock.acquire(); statusSplash = (TextView) findViewById(R.id.statusSplash); /** * Showing splashscreen while making network calls to download necessary * data before launching the app Will use AsyncTask to make http call */ new SDCardProcess().execute(); }

/** * Async Task to make http call */ private class SDCardProcess extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { super.onPreExecute(); // before making http calls Log.e("onPreExcute", "sebelum eksekusi"); statusSplash.setText("Mempersiapkan data"); } @Override protected Void doInBackground(Void... arg0) { /* * Will make http call here This call will download required data * before launching the app * example: * 1. Downloading and storing in SQLite * 2. Downloading images * 3. Fetching and parsing the xml / json * 4. Sending device information to server * 5. etc., */ /* * SPLASH SCREEN * createDatabase -> import database * copyFilesToSdCard -> copy content(midi & notangka) to sdCard */ statusSplash.setText("Menyalin data ke SD Card"); Log.v("Test", "sukses menampilkan splash"); createDatabase(); String PATH = Environment.getExternalStorageDirec-tory()+"/Android/data/com.egmim/kj";

Page 137: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT123

File dirKJ = new File(PATH); Log.v("SplashScreen.doInBackground", "copy file, path "+PATH); Log.v("SplashScreen.doInBackground", "copy file, value "+dirKJ.exists()); if(!dirKJ.exists()){ Log.v("SplashScreen.doInBackground", "copy file dijalankan"); try{

copyFileOrDir("com.egmim/kj"); copyFileOrDir("com.egmim/kjnotangka");

}catch(Exception ex){ Toast.makeText(getApplicationCon-text(), "Periksa kembali additional file", Toast.LENGTH_LONG).show(); } } return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); // After completing http call // will close this activity and lauch main activity statusSplash.setText("Data selesai di salin"); Log.v("Splashscreen.onPostExecute()", "menjalankan post execute"); Intent i = new Intent(Splashscreen.this, DaftarLagu.-class); startActivity(i); // close this activity finish(); } } public void createDatabase(){

dc= new DatabaseImport(this);

try { dc.createDataBase(); } catch (IOException ioe) { Log.v("Testing database", "Gagal "+ioe); } try { dc.openDataBase(); }catch(SQLException sqle){ throw sqle;

Page 138: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT124

}}

public void copyFilesToSdCard(String PATH_TARGET) {

copyFileOrDir(PATH_TARGET);

}

private static String extStorageDirectory = Environment.ge-tExternalStorageDirectory().toString();

//PATH DATA ASSET private final static String TARGET_BASE_PATH = extStorageDi-

rectory+"/Android/data/";

private void copyFileOrDir(String path) {Log.v("Splash-Screen.copyFileOrDir", "Path "+path);

AssetManager assetManager = this.getAssets(); String assets[] = null; try { Log.i("tag", "copyFileOrDir() "+path); assets = assetManager.list(path); if (assets.length == 0) { copyFile(path); } else { String fullPath = TARGET_BASE_PATH + path; Log.i("tag", "path="+fullPath); File dir = new File(fullPath); if (!dir.exists()) if (!dir.mkdirs()); Log.i("tag", "could not create dir

"+fullPath); for (int i = 0; i < assets.length; ++i) { String p; if (path.equals("")) p = ""; else p = path + "/";

copyFileOrDir( p + assets[i]); } } } catch (IOException ex) { Log.e("tag", "I/O Exception", ex); }}

private void copyFile(String filename) { AssetManager assetManager = this.getAssets();

InputStream in = null; OutputStream out = null; String newFileName = null; try {

Page 139: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT125

Log.i("tag", "copyFile() "+filename); in = assetManager.open(filename); /*if (filename.endsWith(".jpg")) // extension was

added to avoid compression on APK file newFileName = TARGET_BASE_PATH + filename.sub-

string(0, filename.length()-4); else*/ newFileName = TARGET_BASE_PATH + filename; out = new FileOutputStream(newFileName);

byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); in = null; out.flush(); out.close(); out = null; } catch (Exception e) { Log.e("tag", "Exception in copyFile() of "+newFile-

Name); Log.e("tag", "Exception in copyFile()

"+e.toString()); }

}}

DaftarLagu.java

package com.example.egmim;

import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;

import com.example.support.SpinnerNavItem;import com.example.support.TitleNavigationAdapter;import com.example.support.dbAdapter;

import android.os.AsyncTask;

import android.os.Bundle;import android.os.Environment;

Page 140: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT126

import android.app.ActionBar;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.Intent;import android.content.res.AssetManager;import android.database.Cursor;import android.text.Editable;import android.text.Html;import android.text.TextWatcher;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.EditText;import android.widget.ListView;import android.widget.AdapterView.OnItemClickListener;import android.widget.TextView;

public class DaftarLagu extends Activity implements ActionBar.On-NavigationListener{

/* * Variabel untuk proses switch * Switch variable */private final static int semua=0;private final static int KJ=1;private final static int PKJ=2;private final static int NKB=3;private final static int NNBT=4;private final static int KLIK=5;private final static int favorite=6;private int markerBuku;private int positionBookId=0;private int THEME_STATUS;private final static int FONT_BESAR=0;private final static int FONT_SEDANG=1;private final static int FONT_KECIL=2;private int FONT_SIZE=13;public ProgressDialog dialog;public String PACKAGE_BUKU;//---------------------------END--HERE--FOR--SWITCH--VARI-

ABLE-----------------------

/* * Object untuk action bar * Action bar process * Action bar untuk menu dan spinner menu

Page 141: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT127

*/// action barprivate ActionBar actionBar;// Title navigation Spinner dataprivate ArrayList<SpinnerNavItem> navSpinner;// Navigation adapterprivate TitleNavigationAdapter adapter;// Refresh menu item//private MenuItem refreshMenuItem;//---------------------------END--HERE--FOR--ACTION-BAR--

VARIABLE-----------------------

/* * Object untuk database * Database Process Object */

private dbAdapter db = new dbAdapter(this);//---------------------------END--HERE--FOR--DATABASE--OB-

JECT-----------------------

/* * Object untuk field input (melakukan search [SEARCHING]) * & Listview (menampilkan data [DATA LIST FROM DB]) */public EditText inputSearch;public ArrayAdapter<String> adapterArray;//---------------------------END--HERE--FOR--FIELD--LIST--

OBJECT-----------------------

/* * Variabel untuk menerima data dari Database * Database retrieve variable */private String joiner=null;private ArrayList<String> daftarlagu = new

ArrayList<String>();private String buku = null;private String nolagu = null; private String judullagu = null;private ListView list;private String stringSearch = null;//private int MARKER_BUKU;

private static String extStorageDirectory = Environment.ge-tExternalStorageDirectory().toString();

//PATH DATA ASSET private final static String TARGET_BASE_PATH = extStorageDi-

rectory+"/Android/data/";

@Override public void onBackPressed() { // Write your code here

Page 142: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT128

//finish();

super.onBackPressed(); }

/* * (non-Javadoc) * @see android.app.Activity#onOptionsItemSelected(an-

droid.view.MenuItem) * Menu Process */@Overridepublic boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {case R.id.action_mode:

Intent theme = new Intent(getApplicationCon-text(), SetTheme.class);

if(THEME_STATUS==0){THEME_STATUS=1;

}else{THEME_STATUS=0;

}theme.putExtra("STATUS_THEME", THEME_STATUS);startActivity(theme);finish();/*if (item.isChecked() == true) {

item.setChecked(false); Intent theme = new Intent(getApplicationCon-

text(), SetTheme.class);theme.putExtra("STATUS_THEME", 1);startActivity(theme);finish();

} else { item.setChecked(true); //this.setTheme(android.R.style.Holo_light); }*/

return true;case R.id.action_bantuan:

Log.v("testing", "menjalankan bantuan");Intent bantuan = new Intent(getApplicationCon-

text(), Bantuan.class);startActivity(bantuan);return true;

case R.id.action_font:showDialog();return true;

case R.id.action_tentang:Log.v("testing", "menjalankan tentang");Intent about = new Intent(getApplicationCon-

text(), About.class);startActivity(about);

Page 143: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT129

return true;default:

return super.onOptionsItemSelected(item);}

}

/* * Actionbar navigation item select listener * Listener untuk spinner menu */@Overridepublic boolean onNavigationItemSelected(int itemPosition,

long itemId) {// Action to be taken after selecting a spinner itemswitch(itemPosition){case 0:

Log.v("testing spinner", "spinner no "+itemPosi-tion);

markerBuku = semua;positionBookId=0;displayData();break;

case 1:Log.v("testing spinner", "spinner no "+itemPosi-

tion);markerBuku= KJ;positionBookId= 0;displayData();break;

case 2:Log.v("testing spinner", "spinner no "+itemPosi-

tion);markerBuku= PKJ;copyAddtionalFileToSDCard();positionBookId=500;displayData();break;

case 3:Log.v("testing spinner", "spinner no "+itemPosi-

tion);markerBuku = NKB;copyAddtionalFileToSDCard();positionBookId=808;displayData();break;

case 4:Log.v("testing spinner", "spinner no "+itemPosi-

tion);markerBuku = NNBT;copyAddtionalFileToSDCard();positionBookId=1038;displayData();break;

Page 144: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT130

case 5:Log.v("testing spinner", "spinner no "+itemPosi-

tion);markerBuku = KLIK;copyAddtionalFileToSDCard();positionBookId=1088;displayData();break;

case 6:Log.v("testing spinner", "spinner no "+itemPosi-

tion);markerBuku = favorite;displayData();break;

default:break;

}adapterArray = new ArrayAdapter<String>(this, R.lay-

out.list_item, R.id.product_name, daftarlagu);list.setAdapter(adapterArray);return true;

}

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main_ac-tions, menu);

return true;}

private void copyAddtionalFileToSDCard(){

new SdCardProcess().execute();

}

/* * Dialog for font size */private void showDialog(){

android.app.AlertDialog.Builder builder = new AlertDi-alog.Builder(this); builder.setTitle(R.string.font_size); builder.setItems(R.array.font, new DialogInter-face.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Log.v("dialog font", "value which "+which); switch(which){ case FONT_BESAR:

Page 145: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT131

FONT_SIZE=17; break; case FONT_SEDANG: FONT_SIZE=15; break; case FONT_KECIL: FONT_SIZE=13; break; } dialog.dismiss(); } }); builder.setNegativeButton("Batal", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); AlertDialog alert = builder.create(); alert.show(); }

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Intent theme = getIntent();if(theme!=null){

THEME_STATUS= theme.getIntExtra("STATUS_THEME", 0);

}else{THEME_STATUS= 0;

}

if(THEME_STATUS==1){this.setTheme(android.R.style.Theme_DeviceDe-

fault);//light theme for API 14 (holo dark)}else if(THEME_STATUS==0){

this.setTheme(R.style.LightTheme);}

setContentView(R.layout.activity_main);

list = (ListView) findViewById(R.id.list_view);inputSearch = (EditText) findViewById(R.id.input-

Search);

/* * ACTION BAR PROCESS [SPINNER MENU] */

Page 146: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT132

actionBar = getActionBar();// Hide the action bar titleactionBar.setDisplayShowTitleEnabled(false);// Enabling Spinner dropdown navigationactionBar.setNavigationMode(Action-

Bar.NAVIGATION_MODE_LIST);// Spinner title navigation datanavSpinner = new ArrayList<SpinnerNavItem>();navSpinner.add(new SpinnerNavItem("SEMUA", R.drawable.-

book));navSpinner.add(new SpinnerNavItem("KJ", R.drawable.-

book));navSpinner.add(new SpinnerNavItem("PKJ", R.drawable.-

book));navSpinner.add(new SpinnerNavItem("NKB", R.drawable.-

book));navSpinner.add(new SpinnerNavItem("NNBT", R.drawable.-

book));navSpinner.add(new SpinnerNavItem("KLIK", R.drawable.-

book));navSpinner.add(new SpinnerNavItem("Favorit", R.draw-

able.favorites));// title drop down adapteradapter = new TitleNavigationAdapter(getApplication-

Context(),navSpinner);// assigning the spinner navigationactionBar.setListNavigationCallbacks(adapter, this);// Changing the action bar icon// actionBar.setIcon(R.drawable.ico_actionbar);//--------------------END-FOR-ACTION-BAR-

PROCESS------------------------

/* * Listener input search * Desc: When user fill the field, Listener'll be se-

lection */inputSearch.addTextChangedListener(new TextWatcher() {

@Overridepublic void onTextChanged(CharSequence cs, int

arg1, int arg2, int arg3) {// When user changed the TextDaftarLagu.this.adapterAr-

ray.getFilter().filter(cs);stringSearch = String.valueOf(cs);

}

@Override

Page 147: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT133

public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,

int arg3) {// TODO Auto-generated method stub

}

@Overridepublic void afterTextChanged(Editable arg0) {

// TODO Auto-generated method stub

}});//--------------------END-FOR-LISTENER-

TEXT------------------------

/* * Listener list * Desc: When user click/touch the item on list, Lis-

tener'll be do some action */list.setOnItemClickListener(new OnItemClickListener()

{public void onItemClick(AdapterView<?> arg0,

View arg1, int posisi, long arg3) {String data = (String) list.getItemAtPosi-

tion(posisi);Log.v("testing [SEARCH]", "menampilkan in-

put search "+data+stringSearch);Log.v("testing [LISTENER ITEM]",

"menampilkan posisi "+posisi);String[] spliterData = data.split(" ");

if(stringSearch!=null || markerBuku==fa-vorite){

Log.v("DaftarLagu.onCreate().listlistener","menjalankan po-sisi 0");

posisi=0;}else{

posisi++;posisi=posisi+positionBookId;

}

Log.v("Testing", "Nomor lagu yang dipilih "+posisi);

Intent next = new Intent(getApplication-Context(), MainKonten.class);

next.putExtra("Posisi", posisi);next.putExtra("keywordSearch", spliter-

Data);next.putExtra("markerBuku", markerBuku);next.putExtra("THEME_STATUS", THEME_STA-

TUS);

Page 148: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT134

next.putExtra("FONT_SIZE", FONT_SIZE);startActivity(next);

}}); //--------------------END-FOR-LISTENER-

LIST----------------------------------} //--------------------END-FOR-

onCreate()------------------------------------

/* * displayData() * desc: retrieve data from DB SQLite */private void displayData() {

//clear the list viewdaftarlagu.clear();//do something on databasedb.open();

Cursor c = null; switch(markerBuku){ case semua: Log.v("displayData", "Menjalankan semua"); c = db.getAllData(); break; case KJ: Log.v("displayData", "Menjalankan KJ"); c = db.searchingBook("KJ"); break; case PKJ: Log.v("displayData", "Menjalankan semua PKJ"); c = db.searchingBook("PKJ"); break; case NKB: Log.v("displayData", "Menjalankan semua PKJ"); c = db.searchingBook("NKB"); break; case NNBT: Log.v("displayData", "Menjalankan semua PKJ"); c = db.searchingBook("NNBT"); break; case KLIK: Log.v("displayData", "Menjalankan semua PKJ"); c = db.searchingBook("KLIK"); break; case favorite: Log.v("displayData", "Menjalankan semua fa-vorit"); c = db.reatrivefavorite("true"); break; default: break;

Page 149: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT135

} if(markerBuku==semua){

if (c.moveToFirst()) { do { buku = c.getString(0); nolagu= c.getString(1); judullagu= c.getString(2); joiner = buku+" "+nolagu+"

"+judullagu; daftarlagu.add(joiner); } while (c.moveToNext()); }

}else{ if (c.moveToFirst())

{ do { buku = c.getString(1); nolagu= c.getString(2); judullagu= c.getString(3); joiner = buku+" "+nolagu+"

"+judullagu; daftarlagu.add(joiner); } while (c.moveToNext()); }

} db.close();

} //--------------------END-FOR-

displayData()----------------------------------

/** * Async Task */ private class SdCardProcess extends AsyncTask<Void, Void, Void> { @Override protected void onPreExecute() { super.onPreExecute(); // before making http calls Log.e("onPreExcute", "sebelum eksekusi"); dialog = ProgressDialog.show(DaftarLagu.this, "Menyalin data ke SD Card", "Proses ini memakan waktu", true); } @Override protected Void doInBackground(Void... arg0) { String PATH = "";

Page 150: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT136

File dir; switch(markerBuku){ case PKJ: PATH = Environment.getExternalStorageDirectory()+"/Android/data/com.egmim/pkj"; dir = new File(PATH); Log.v("DaftarLagu.doInBackground", "copy file, value "+dir.exists()); Log.v("DaftarLagu.doInBackground", "copy file, path "+PATH); if(!dir.exists()){ Log.v("DaftarLagu.doInBackground", "copy file dijalankan"); copyFileOrDir("com.egmim/pkj"); copyFileOrDir("com.egmim/pkjnotangka"); Log.v("DaftarLagu.doInBackground()", "data sele-sai disalin"); } break; case NKB: PATH = Environment.getExternalStorageDirectory()+"/Android/data/com.egmim/nkb"; dir = new File(PATH); Log.v("DaftarLagu.doInBackground", "copy file, path "+PATH); Log.v("DaftarLagu.doInBackground", "copy file, value "+dir.exists()); if(!dir.exists()){ Log.v("DaftarLagu.doInBackground", "copy file dijalankan"); copyFileOrDir("com.egmim/nkb"); copyFileOrDir("com.egmim/nkbnotangka"); Log.v("DaftarLagu.doInBackground()", "data sele-sai disalin"); } break; case NNBT: PATH = Environment.getExternalStorageDirectory()+"/Android/data/com.egmim/nnbt"; dir = new File(PATH); Log.v("DaftarLagu.doInBackground", "copy file, path "+PATH); Log.v("DaftarLagu.doInBackground", "copy file, value "+dir.exists()); if(!dir.exists()){ Log.v("DaftarLagu.doInBackground", "copy file dijalankan"); copyFileOrDir("com.egmim/nnbt");

Page 151: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT137

//copyFileOrDir("com.egmim/nnbtnotangka"); Log.v("DaftarLagu.doInBackground()", "data sele-sai disalin"); } break; } //ProgressDialog.show(DaftarLagu.this, "", "Data sele-sai disalin", true); return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); // After completing http call Log.v("DaftarLagu.onPostExecute()", "Menjalankan dia-log.dismiss()"); dialog.dismiss(); } }

private void copyFileOrDir(String path) {Log.v("Splash-Screen.copyFileOrDir", "Path "+path);

AssetManager assetManager = this.getAssets(); String assets[] = null; try { Log.i("tag", "copyFileOrDir() "+path); assets = assetManager.list(path); if (assets.length == 0) { copyFile(path); } else { String fullPath = TARGET_BASE_PATH + path; Log.i("tag", "path="+fullPath); File dir = new File(fullPath); if (!dir.exists()) if (!dir.mkdirs()); Log.i("tag", "could not create dir

"+fullPath); for (int i = 0; i < assets.length; ++i) { String p; if (path.equals("")) p = ""; else p = path + "/";

copyFileOrDir( p + assets[i]); } } } catch (IOException ex) { Log.e("tag", "I/O Exception", ex);

Page 152: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT138

}}

private void copyFile(String filename) { AssetManager assetManager = this.getAssets();

InputStream in = null; OutputStream out = null; String newFileName = null; try { Log.i("tag", "copyFile() "+filename); in = assetManager.open(filename); /*if (filename.endsWith(".jpg")) // extension was

added to avoid compression on APK file newFileName = TARGET_BASE_PATH + filename.sub-

string(0, filename.length()-4); else*/ newFileName = TARGET_BASE_PATH + filename; out = new FileOutputStream(newFileName);

byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); in = null; out.flush(); out.close(); out = null; } catch (Exception e) { Log.e("tag", "Exception in copyFile() of "+newFile-

Name); Log.e("tag", "Exception in copyFile()

"+e.toString()); }

}

}

SetTheme.java

package com.example.egmim;

import android.app.Activity;import android.content.Intent;import android.os.Bundle;

public class SetTheme extends Activity{

Page 153: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT139

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);Intent i = getIntent();int THEME = i.getIntExtra("STATUS_THEME", 0);

Intent theme = new Intent(getApplicationContext(), DaftarLagu.class);

theme.putExtra("STATUS_THEME", THEME);startActivity(theme);finish();

}}

MainKonten.java

package com.example.egmim;import com.example.support.TabsPagerAdapter;import com.example.support.dbAdapter;

import android.annotation.TargetApi;import android.app.ActionBar;import android.app.FragmentTransaction;import android.app.ActionBar.Tab;import android.content.Intent;import android.database.Cursor;import android.os.Build;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.util.Log;

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)public class MainKonten extends FragmentActivity implements Ac-tionBar.TabListener, Lirik.calledFromActivity {

/* * Variabel untuk proses switch * Switch variable */

private final static int favorite=6;private int markerBuku;//---------------------------END--HERE--FOR--SWITCH--VARI-

ABLE-----------------------

public int nomorpilihan;public String[] keywordSearch;private ViewPager viewPager;private TabsPagerAdapter mAdapter;private ActionBar actionBar;

Page 154: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT140

// Tab titlesprivate String[] tabs = { "Lirik", "Notangka"};

private int THEME_STATUS;private int FONT_SIZE;

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Intent i = getIntent();THEME_STATUS=i.getIntExtra("THEME_STATUS", 0);FONT_SIZE= i.getIntExtra("FONT_SIZE", 0);

settingSet();if(THEME_STATUS==1){

this.setTheme(android.R.style.Theme_DeviceDe-fault);//light theme for API 14 (holo dark)

}else if(THEME_STATUS==0){this.setTheme(R.style.LightTheme);

}

setContentView(R.layout.activity_kontenmain);

nomorpilihan = i.getIntExtra("Posisi", 0);keywordSearch = i.getStringArrayExtra("keyword-

Search");markerBuku = i.getIntExtra("markerBuku", 0);

Log.v("MAIN KONTEN", "Getting markerBuku value "+markerBuku);Log.v("Testing", "Proses Intent dijalankan, nomor yang

dipilih adalah "+nomorpilihan);

//Kondisi untuk pencarianif(nomorpilihan==0 || markerBuku==favorite){

Log.v("MainKonten.onCreate", "melakukan pencar-ian");

dataResultfromsearch();}

// InitilizationviewPager = (ViewPager) findViewById(R.id.pager);actionBar = getActionBar();mAdapter = new TabsPagerAdapter(getSupportFragmentMan-

ager());

viewPager.setAdapter(mAdapter);actionBar.setHomeButtonEnabled(false);actionBar.setNavigationMode(Action-

Bar.NAVIGATION_MODE_TABS);

// Adding Tabsfor (String tab_name : tabs) {

Page 155: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT141

actionBar.addTab(action-Bar.newTab().setText(tab_name)

.setTabListener(this));}

/** * on swiping the viewpager make respective tab selected * */viewPager.setOnPageChangeListener(new ViewPager.On-

PageChangeListener() {

@Overridepublic void onPageSelected(int position) {

// on changing the page// make respected tab selectedactionBar.setSelectedNavigationItem(position);

}

@Overridepublic void onPageScrolled(int arg0, float arg1, int

arg2) {}

@Overridepublic void onPageScrollStateChanged(int arg0) {}

});}

@Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft)

{}

@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {// on tab selected// show respected fragment view

viewPager.setCurrentItem(tab.getPosition());}

@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft)

{

}

@Overridepublic int positionOfsong() {

// TODO Auto-generated method stubint posisi = nomorpilihan;Log.v("INTERFACE", "menjalankan main konten");return posisi;

}

Page 156: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT142

public int[] settingSet(){int[] value={0,0};value[0] = THEME_STATUS;value[1] = FONT_SIZE;

return value;}

public String[] dataResultfromsearch(){

Log.v("INTERFACE", "menjalankan dataResultfrom-search");

dbAdapter db = new dbAdapter(this);String[] searchResult = {null, null, null, null, null,

null, null};Log.v("testing keyword search", " "+keywordSearch[0]+"

"+keywordSearch[1]);try{

db.open(); Cursor c = db.searching(keywordSearch[0], keyword-

Search[1]); if (c.moveToFirst()){ searchResult[0] = String.valueOf(c.getInt(0));

//id searchResult[1] = c.getString(1); //buku searchResult[2] = c.getString(2); //nolagu searchResult[3] = c.getString(3); //judul searchResult[4] = String.valueOf(c.getInt(4));

//lineawal | int searchResult[5] = String.valueOf(c.getInt(5));

//lineakhir | int searchResult[6] = c.getString(5); //favorite |

string Log.v("dataResultfromSearch()","Result id

"+searchResult[0]+" \nResult nolagu"+searchResult[2]); }else{ Log.v("Testing", "Data tidak ditemukan"); } db.close(); }catch(NumberFormatException ex){ Log.v("Testing", "Terdapat kesalahan

gettingData :"+ex+" \nMelakukan proses pemisahan (error han-dling)");

}catch(Exception ex){ Log.v("Testing", "Terdapat kesalahan "+ex); ex.printStackTrace(); }

return searchResult;

}

Page 157: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT143

}

Lirik.java

package com.example.egmim;

import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.LineNumberReader;

import com.example.support.dbAdapter;

import android.app.Activity;

import android.content.Context;import android.database.Cursor;import android.media.AudioManager;import android.media.MediaPlayer;

import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentTransaction;import android.text.method.ScrollingMovementMethod;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;

public class Lirik extends Fragment {

private TextView headerJudul;private TextView lirik;private TextView statusText;public ImageView playBtn;public ImageView nextBtn;public ImageView prevBtn;public ImageView stopBtn;public ImageView favoriteBtn;private MediaPlayer instrumen = new MediaPlayer();

private int STATUS_PLAYER=0;

Page 158: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT144

public String buku;public String nolagu;public String judullagu;public int lineawal;public int lineakhir;public String keyInstrumen;public boolean favorite;public dbAdapter db;

public int valueId;public calledFromActivity nilai;

private int[] SETTING= {0,0};

protected interface calledFromActivity{public int positionOfsong();public int[] settingSet();public String[] dataResultfromsearch();

}

@Overridepublic void onCreateOptionsMenu(Menu menu, MenuInflater in-

flater) { inflater.inflate(R.menu.activity_main_actions, menu); super.onCreateOptionsMenu(menu,inflater);}

@Override public void onAttach(Activity activity) { super.onAttach(activity);

// the callback interface. If not, it throws an exception. try { nilai = (calledFromActivity) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement "); } catch (Exception ex){ ex.printStackTrace(); } }

@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup

container,Bundle savedInstanceState) {

SETTING=nilai.settingSet();if(SETTING[0]==1){

getActivity().setTheme(android.R.style.Theme_De-viceDefault);//light theme for API 14 (holo dark)

}else if(SETTING[0]==0){

Page 159: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT145

getActivity().setTheme(R.style.LightTheme);}View rootView = inflater.inflate(R.layout.lirik_view,

container, false);

getActivity().setTitle("Lirik & Partitur"); //title action bar

valueId = nilai.positionOfsong();Log.v("LIRIK", "ID lagu "+valueId);

statusText= (TextView) rootView.findViewById(R.id.sta-tusText);

headerJudul = (TextView) rootView.findViewById(R.id.-headerView);

lirik = (TextView) rootView.findViewById(R.id.lirikView);

lirik.setMovementMethod(new ScrollingMovementMethod());

playBtn = (ImageView) rootView.findViewById(R.id.-playBtn);

stopBtn = (ImageView) rootView.findViewById(R.id.stopBtn);

nextBtn = (ImageView) rootView.findViewById(R.id.nextBtn);

prevBtn = (ImageView) rootView.findViewById(R.id.pre-vBtn);

favoriteBtn = (ImageView) rootView.findViewById(R.id.-favoriteBtn);

lirik.setTextSize(SETTING[1]); //ukuran lirikLog.v("Testing", "Menjalankan proses pengambilan data

dari activity ");db = new dbAdapter(getActivity());detailLirik();

//Jika buku klik maka pengaturan instrumen dihilangkanplayBtn.setVisibility(1);stopBtn.setVisibility(1);if(buku.equals("KLIK")){

playBtn.setVisibility(View.INVISIBLE);stopBtn.setVisibility(View.INVISIBLE);

}else{playBtn.setVisibility(View.VISIBLE);stopBtn.setVisibility(View.VISIBLE);

}

favoriteBtn.setOnClickListener(new View.OnClickLis-tener() {

@Overridepublic void onClick(View arg0) {

// TODO Auto-generated method stubsetFavorite();

Page 160: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT146

}});

instrumen.setOnPreparedListener(new MediaPlayer.OnPre-paredListener() {

@Override public void onPrepared(MediaPlayer instrumen) { // TODO Auto-generated method stub instrumen.start(); } });

instrumen.setOnCompletionListener(new MediaPlayer.On-CompletionListener(){

public void onCompletion(MediaPlayer instrumen) {

instrumen.reset(); playBtn.setImageResource(R.drawable.play); STATUS_PLAYER=0;

}});

playBtn.setOnClickListener(new View.OnClickListener() {

@Overridepublic void onClick(View arg0) {

// TODO Auto-generated method stubLog.v("Status player", "Status

"+STATUS_PLAYER);try{

switch(STATUS_PLAYER){case 0:

instrumen.reset();loadInstrumen();statusText.setText("Memainkan

"+buku+" "+nolagu+" "+judullagu);instrumen.start();playBtn.setImageResource(R.-

drawable.pause);STATUS_PLAYER=1;break;

case 1:instrumen.pause();statusText.setText("Jeda

"+buku+" "+nolagu+" "+judullagu);playBtn.setImageResource(R.-

drawable.play);STATUS_PLAYER=2;break;

case 2:instrumen.start();playBtn.setImageResource(R.-

drawable.pause);STATUS_PLAYER=1;break;

Page 161: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT147

}}catch(Exception eg){

eg.printStackTrace();}

}});

stopBtn.setOnClickListener(new View.OnClickListener() {

@Overridepublic void onClick(View arg0) {

// TODO Auto-generated method stubLog.v("Testing", "Menjalankan button stop

| merubah button play");instrumen.stop();//instrumen.release();//instrumen.reset();statusText.setText("Berhenti "+buku+"

"+nolagu+" "+judullagu);STATUS_PLAYER=0;playBtn.setImageResource(R.drawable.play);//instrumen.release();

}});

nextBtn.setOnClickListener(new View.OnClickListener() {

@Overridepublic void onClick(View arg0) {

// TODO Auto-generated method stubLog.v("Testing", "Button next di-

jalankan");next();

}});

prevBtn.setOnClickListener(new View.OnClickListener() {

@Overridepublic void onClick(View arg0) {

// TODO Auto-generated method stubLog.v("Testing", "Button prev di-

jalankan");prev();

}});

return rootView;}

Page 162: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT148

public void detailLirik(){//Pencarian pada database untuk mendapatkan datagettingData();try {

Log.v("Testing", "Menjalankan load lirik");loadLirik();

} catch (IOException e) {e.printStackTrace();

}Log.v("Testing", "Proses selesai");

}

private void gettingData(){

if(valueId==0){String searchResult[]= nilai.dataResultfrom-

search();valueId = Integer.parseInt(searchResult[0]); //

idbuku = searchResult[1]; //bukunolagu = searchResult[2]; Log.v("buku from

search", "buku "+buku);judullagu = searchResult[3];

lineawal = Integer.parseInt(searchResult[4]); Log.v("lineawal from search [LIRIK]", "result "+lineawal); lineakhir = Integer.parseInt(searchResult[5]); Log.v("lineawal from search [LIRIK]", "result "+lineakhir); favorite = Boolean.valueOf(searchResult[6]);

}else{

try{db.open();

Cursor c = db.getData(valueId); Log.v("LIRIK", "Getting data using valueid

"+valueId); if (c.moveToFirst()){ buku = c.getString(0); nolagu = c.getString(1); judullagu = c.getString(2); lineawal = Integer.par-

seInt(c.getString(3)); lineakhir = Integer.par-

seInt(c.getString(4)); favorite = Boolean.val-

ueOf(c.getString(5)); Log.v("Testing","Data:\n" + "buku "+buku+"\nnolagu "+no-

lagu+"\njudullagu "+judullagu+"\nlineawal "+lineawal+"\nlineakhir "+lineakhir);

}else{ Log.v("Testing", "Data tidak ditemukan");

Page 163: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT149

} db.close(); }catch(NumberFormatException ex){ Log.v("LIRIK", "Terdapat kesalahan

gettingData :"+ex+" \nMelakukan proses pemisahan (error han-dling)");

}catch(Exception ex){ Log.v("LIRIK", "Terdapat kesalahan "+ex); ex.printStackTrace(); }}

/* * Passing value from Lirik to Notangka * code from: developer.android.com */Notangka notangka = (Notangka)

getFragmentManager().findFragmentById(R.id.fragmentnotangka);

if(notangka == null ){Log.v("notangka checker", "not angka sama dengan

null");}Log.v("Lirik.gettingdata", "menjalankan notangka !=

null "+buku+nolagu);notangka = Notangka.newInstance(buku, nolagu);FragmentTransaction transaction =

getFragmentManager().beginTransaction();

transaction.replace(R.id.fragmentnotangka, notangka);transaction.commit();//=====================================END=FROM=PASS-

ING=VALUE============================================

}

public void setFavorite(){

if(favorite){favoriteBtn.setImageResource(R.drawable.unfa-

vorite);favorite = false;

}else{favoriteBtn.setImageResource(R.drawable.fa-

vorites);favorite = true;

}

Context con = getActivity().getApplicationContext();try{

db.open();Log.v("[Lirik]", "cek input "+valueId+" dan

"+favorite);

Page 164: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT150

if(db.updateData(valueId, favorite)){if(favorite){

Toast.makeText(con, "Lagu ditam-bahkan sebagai favorite", Toast.LENGTH_LONG).show();

}else{Toast.makeText(con, "Lagu dihi-

langkan dari favorite", Toast.LENGTH_LONG).show();}

}else{Toast.makeText(con, "Terjadi kesalahan,

saran : restart aplikasi", Toast.LENGTH_LONG).show();}db.close();

}catch(Exception ex){ex.printStackTrace();

}}

private void loadLirik() throws IOException{

int lineNumber = 0;

if(favorite){favoriteBtn.setImageResource(R.drawable.fa-

vorites);}else{

favoriteBtn.setImageResource(R.drawable.unfa-vorite);

}

String str="";StringBuffer buf = new StringBuffer();Log.v("Testing", "Menjalankan proses inisialisasi

buku");

InputStream is = this.getResources().openRawResource(R.raw.kj);

this.keyInstrumen= "KJ";Log.v("Testing","Membuka file raw sesuai buku "+buku);if(buku.equals("PKJ")){

is = this.getResources().openRawResource(R.raw.pkj);

this.keyInstrumen="pkj";}else if(buku.equals("NKB")){

is = this.getResources().openRawResource(R.raw.nkb);

this.keyInstrumen="nkb";}else if(buku.equals("NNBT")){

is = this.getResources().openRawResource(R.raw.nnbt);

this.keyInstrumen="nnbt";}else if(buku.equals("KLIK")){

is = this.getResources().openRawResource(R.raw.klik);

Page 165: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT151

this.keyInstrumen="klik";}else{

Log.v("LIRIK [LOAD LIRIK]", "Tidak ditemukan se-lain KJ");

}

BufferedReader reader = new BufferedReader(new Input-StreamReader(is)); // membaca file

LineNumberReader linenumber = new LineNumberReader(reader);

if (is!=null) { // membaca file jika tidak kosong

while ((str = reader.readLine()) != null) { //membaca line dari file tidak kosong

//buf.append(str + "\n" );lineNumber++; //hitung jumlah line//Log.v("Testing", "Menampilkan lirik\n

LINENUMBER"+linenumber+" \nMenampilkan String "+str);if(lineNumber == lineawal){

headerJudul.setText(str); //judul}if(lineNumber>= lineawal+1 && lineNumber<=

lineakhir){lirik.append(str +" \n"); //

lirik}

}Log.v("Testing", "Selesai reading file");

}is.close(); // akses file ditutup

}

public void loadInstrumen(){

String sourceMidi = null;

Log.v("testing", "menjalankan instrumen");

Log.v("Testing", "Menjalankan pemilihan buku dengan data buku :"+buku+ "pada load instrumen");

if (buku.equals("KJ")){sourceMidi = "com.egmim/kj/"+nolagu+".MID";Log.v("Testing", "No lagu adalah "+sourceMidi);

}else if(buku.equals("NKB")){sourceMidi = "com.egmim/nkb/"+nolagu+".MID";Log.v("Testing", "No lagu adalah "+sourceMidi);

}else if(buku.equals("PKJ")){sourceMidi = "com.egmim/pkj/"+nolagu+".MID";Log.v("Testing", "No lagu adalah "+sourceMidi);

}else if(buku == "NNBT"){sourceMidi = "com.egmim/nnbt/"+nolagu+".MID";Log.v("Testing", "No lagu adalah "+sourceMidi);

Page 166: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT152

}else if(buku == "KLIK"){//Disable button instrumen / notify to userContext con = getActivity().getApplicationCon-

text();Toast.makeText(con, "Konten (midi) tidak terse-

dia", Toast.LENGTH_LONG).show();}else{

Log.v("Testing", "Pemililihan buku pada loadin-strumen() gagal");

}String url = "/sdcard/Android/data/"+sourceMidi;File midi = new File(url);if(!midi.exists()){

Context con = getActivity().getApplicationCon-text();

Toast.makeText(con, "Konten (midi) tidak terse-dia", Toast.LENGTH_LONG).show();

}Log.v("Instrumen", "Tampilkan URL :"+url);instrumen.setAudioStreamType(AudioManager.STREAM_MU-

SIC);try {

instrumen.setDataSource(url);} catch (IllegalArgumentException e) {

e.printStackTrace();} catch (SecurityException e) {

e.printStackTrace();} catch (IllegalStateException e) {

e.printStackTrace();} catch (IOException e) {

e.printStackTrace();}instrumen.prepareAsync();

}

public void next(){lirik.setText("");valueId ++;detailLirik();

}

public void prev(){

Context con = getActivity().getApplicationContext();if(valueId==1){

Toast.makeText(con, "Konten tidak tersedia", Toast.LENGTH_LONG).show();

}else{lirik.setText("");valueId --;detailLirik();

}}

Page 167: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT153

}

Notangka.java

package com.example.egmim;

import java.io.File;

import com.example.support.TouchImageView;

import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Environment;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.Toast;

public class Notangka extends Fragment{

public String addImage;public String[] dataToshow={null, null};

public String pathAll;public String standardPath= "/Android/Data/com.egmim/";public String buku="kj";public String namafile="";public int valueFrpage=1;

public final static String extension=".jpg";public String nolagu;public ImageView nextNotangka;public ImageView prevNotangka;

public static Notangka newInstance(String bukuLirik, String nolaguLirik) {

Notangka f = new Notangka();

// Supply index input as an argument. Bundle args = new Bundle(); args.putString("buku", bukuLirik); args.putString("nolagu", nolaguLirik); f.setArguments(args);

Page 168: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT154

return f; }

public void getShownIndex() {buku = getArguments().getString("buku", null);nolagu = getArguments().getString("nolagu", null);Log.v("Notangka().getShownIndex","value buku "+buku+"

nolagu "+nolagu);}

@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup

container,Bundle savedInstanceState) {

getActivity().setTitle("Lirik & Partitur");

View rootView = inflater.inflate(R.lay-out.notangka_view, container, false);

nextNotangka = (ImageView) rootView.findViewById(R.id.nextNotangka);

prevNotangka = (ImageView) rootView.findViewById(R.id.prevNotangka);

try{//Using try and catch,// So whenever the fragment create for the first

time// Fragment never get result NullPointerExcep-

tion

getShownIndex();gettingData(1);

detailNotangka();}catch(NullPointerException eg){

eg.printStackTrace();}

nextNotangka.setOnClickListener(new View.OnClickLis-tener() {

@Overridepublic void onClick(View arg0) {

// TODO Auto-generated method stubvalueFrpage++;gettingData(valueFrpage);detailNotangka();

}});

prevNotangka.setOnClickListener(new View.OnClickLis-tener() {

Page 169: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT155

@Overridepublic void onClick(View arg0) {

// TODO Auto-generated method stubvalueFrpage--;gettingData(valueFrpage);detailNotangka();

}});

return rootView;}

//view not angkapublic void detailNotangka(){

//tampilkan Log.v("testing not angka", "String add "+addImage);

Bitmap myBitmap = BitmapFactory.decodeFile(addImage);

TouchImageView img = (TouchImageView) getActivity().findViewById(R.id.img);

img.setImageBitmap(myBitmap); img.setMaxZoom(4);

}

private void gettingData(int page){

//inisialisasiContext con = getActivity().getApplicationContext();//Path = /Android/Data/

com.egmim/"namafolder_buku"/"nolagu"/"nolagu"-"page".jpgbuku = buku.toLowerCase();pathAll= standardPath+buku+"notangka/"+no-

lagu+"/"+nolagu+"-"+page+extension;addImage = Environment.getExternalStorageDirec-

tory()+pathAll; //"/Android/Data/kjnotangka/1-1.jpg";File file = new File(addImage);

if(!file.exists()){ pathAll= standardPath+buku+"notangka/"+no-

lagu+"/"+page+extension; addImage = Environment.getExternalStorageDirec-

tory()+pathAll; //"/Android/Data/kjnotangka/1-1.jpg"; file = new File(addImage); if(!file.exists() && page != 1){ // Untuk halaman selanjutnya valueFrpage=1; gettingData(valueFrpage); Toast.makeText(con, "Konten (Not angka)

tidak tersedia", Toast.LENGTH_LONG).show(); }else if(!file.exists()){ Toast.makeText(con, "Konten (Not angka)

tidak tersedia", Toast.LENGTH_LONG).show();

Page 170: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT156

} }

Log.v("Notangka.gettingData()", "Path: "+addIm-age);

}}

dbAdapter.java

package com.example.support;

import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;

public class dbAdapter { public static final String KEY_ID = "id"; public static final String KEY_BUKU = "buku"; public static final String KEY_NOLAGU = "nolagu"; public static final String KEY_JUDULLAGU = "judullagu"; public static final String KEY_LINEAWAL = "lineawal"; public static final String KEY_LINEAKHIR = "lineakhir"; public static final String KEY_FAVORITE = "favorite"; public boolean favorite = false; public static final String TAG = "DBAdapter";

public static final String DATABASE_NAME = "bukuNyanyian"; public static final String DATABASE_TABLE = "daftarLagu"; public static final int DATABASE_VERSION = 1; static final String DATABASE_CREATE = "create table daftarLagu (id integer primary key au-toincrement, " + "buku text not null, nolagu integer not null);";

final Context context;

DatabaseHelper DBHelper; SQLiteDatabase db; public dbAdapter(Context ctx) {

Page 171: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT157

this.context = ctx; DBHelper = new DatabaseHelper(context); }

private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db) { try { //db.execSQL(DATABASE_CREATE); } catch (SQLException e) { e.printStackTrace(); } }

@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + old-Version + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS con-tacts"); onCreate(db); } }

//---opens the database--- public dbAdapter open() throws SQLException { db = DBHelper.getWritableDatabase(); return this; }

//---closes the database--- public void close() { DBHelper.close(); }

//---retrieves daftar lagu--- public Cursor getAllData() { return db.query(DATABASE_TABLE, new String[] {KEY_BUKU, KEY_NOLAGU, KEY_JUDULLAGU}, null, null, null, null, null); }

Page 172: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT158

//---retrieves lagu--- public Cursor getData(int rowId) throws SQLException { String query= "SELECT buku,nolagu,judullagu,lineawal,lin-eakhir,favorite FROM daftarLagu WHERE id='"+rowId+"'"; Log.w(TAG, query); Cursor mCursor = db.rawQuery(query,null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; }

//---updates lagu--- public boolean updateData(int rowId, boolean favorite) { String parsFavorite = String.valueOf(favorite); ContentValues args = new ContentValues(); args.put(KEY_FAVORITE, parsFavorite); Log.v("DB ADAPTER", "Sukses menjadikan favorite / unfa-vorite "+favorite); return db.update(DATABASE_TABLE, args, KEY_ID + "='"+rowId+"'", null) > 0; } //---searching lagu--- public Cursor searching(CharSequence buku, CharSequence no) { String query= "SELECT * FROM daftarLagu WHERE nolagu='"+no+"' AND buku='"+buku+"'"; Log.w(TAG, query); Cursor mCursor = db.rawQuery(query,null); if (mCursor != null) { Log.v("SEARCH on DB", "Data available"); mCursor.moveToFirst(); } return mCursor; } //---searching by book--- public Cursor searchingBook(CharSequence buku) { String query= "SELECT * FROM daftarLagu WHERE buku='"+buku+"'"; Log.w(TAG, query); Cursor mCursor = db.rawQuery(query,null); if (mCursor != null) { Log.v("SEARCH on DB", "Data available");

Page 173: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT159

mCursor.moveToFirst(); } return mCursor; } //---searching favorite--- public Cursor reatrivefavorite(CharSequence favorit) { String query= "SELECT * FROM daftarLagu WHERE favorite='"+favorit+"'"; Log.w(TAG, query); Cursor mCursor = db.rawQuery(query,null); if (mCursor != null) { Log.v("SEARCH on DB", "Data available"); mCursor.moveToFirst(); } return mCursor; }

}

Page 174: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy

FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT160

BIODATA

Nama : Rivaldo Christian Lasut

Nim : 10520016

Fakultas : Ilmu Komputer

Program studi : Teknik Informatika

Jenjang pendidikan : S1

Alamat : Kolongan, Kecamatan Tomohon Tengah

Telepon : 089698553454

Email : [email protected]

Pendidikan :

(2010-2014) Universitas Klabat

(2007-2010) SMA Kristen 1 Tomohon

(2004-2007) SMP Katolik Stella Maris Tomohon

(2001-2004) SD Katolik Santa Clara Tomohon

(1999-2001) SD Katolik Don Bosco Manado

(1998-1999) TK Katolik Santa Anna Manado

Page 175: SKRIPSI Aplikasi Buku Nyanyian Elektronik GMIM Berbasis Android - Copy