Aplikasi Pembelajaran Biola Bagi Pemula

(1)

BAGI PEMULA

SKRIPSI

FIDA ELVI ANDERIA SEBAYANG 091402090

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(2)

APLIKASI PEMBELAJARAN BIOLA

BAGI PEMULA

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

FIDA ELVI ANDERIA SEBAYANG 091402090

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(3)

PERSETUJUAN

Judul : APLIKASI PEMBELAJARAN BIOLA BAGI

PEMULA

Kategori : SKRIPSI

Nama : FIDA ELVI ANDERIA SEBAYANG

Nomor Induk Mahasiswa : 091402090

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, 28 Agustus 2014

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs. Marihat Situmorang, M.Kom. M. Fadly Syahputra, B.Sc., M.Sc.IT

NIP 19631214 198903 1 001 NIP 19830129 200912 1 003

Diketahui/Disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

M. Anggia Muchtar, ST., MM.IT NIP 19800110 200801 1 010


(4)

iii

PERNYATAAN

APLIKASI PEMBELAJARAN BIOLA BAGI PEMULA

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 28 Agustus 2014

Fida Elvi Anderia Sebayang 091402090


(5)

UCAPAN TERIMA KASIH

Segala puji dan syukur penulis sampaikan kepada Tuhan Yang Maha Kuasa beserta Yesus Kristus yang telah memberikan berkat-Nya yang melimpah dan segala kekuatan sehingga penulis dapat menyelesaikan skripsi ini dengan baik untuk memperoleh gelar Sarjana Program Studi S-1 Teknologi Informasi Universitas Sumatera Utara.

Dengan segala ketulusan hati ucapan terima kasih penulis sampaikan kepada: 1. Ayah Ramli Edi Saputra Sebayang dan Ibu Derliana Tarigan yang telah

memberikan dukungan kepada penulis dan selalu mendoakan penulis untuk menyelesaikan tugas akhir ini. Adik Hariyati Karmila Sebayang dan Ray Indra Andreas Sebayang yang selalu memberikan saya motivasi yang baik dan terus mendukung penulis, dan semua keluarga besar penulis.

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc. dan Drs. Sawaluddin, M.IT. sebagai Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, dan semua dosen serta pegawai di Program Studi S-1 Teknologi Informasi.

3. Bapak Muhammad Fadly Syahputra, B.Sc., M.Sc.IT. selaku pembimbing pertama penulis dan Bapak Drs. Marihat Situmorang, M.Kom. selaku pembimbing kedua penulis yang telah banyak meluangkan waktunya dan memberikan masukan-masukan yang bermanfaat bagi penulis dalam menyelesaikan skripsi ini.

4. Bapak Romi Fadillah Rahmat, B.Comp.Sc., M.Sc. dan Ibu Sarah Purnawati, S.T., M.Sc. yang telah bersedia menjadi dosen penguji dan telah memberikan saran-saran yang baik bagi penulis dalam menyelesaikan skripsi ini.

5. Teman-teman penulis yang selalu menemani dan mendukung penulis, Ade Chania Sion Sagala, S.TI., Stella Maris Harefa, S.TI., Cynthia Arilla Sembiring, S.TI., Riska Vinesia Butarbutar, S.TI., Jihan Meutia Fauzen, S.TI., Annifa Iqramitha, S.TI., dan semua teman angkatan 2009.

6. Teman-teman gereja penulis yang selalu memberikan semangat dan

mengingatkan penulis, Nirmala Sitepu, Regina Anita Sitepu, Yohanes Barus, Bastanta Sembiring, dan semua mudika serta misdinar Gereja St. Antonius Padua Bangun Mulia.

7. Teman-teman penulis dari SD, SMP, dan SMA.

Sekali lagi penulis mengucapkan banyak terima kasih kepada semua pihak yang membantu dalam penyelesaian tugas akhir ini yang tidak dapat disebutkan satu persatu, terima kasih atas masukan, saran, doa, dan motivasi yang diberikan kepada saya.

Penulis menyadari bahwa masih banyak kekurangan dalam skripsi ini, untuk itu penulis mengharapkan saran dan kritik yang bersifat membangun dari semua pihak


(6)

v

ABSTRAK

Ketepatan dalam penempatan jari di fingerboard biola sangat penting karena biola tidak memiliki pembatas seperti gitar. Maka diperlukan suatu aplikasi yang dapat menunjukkan letak jari tersebut. Aplikasi ini menggunakan teknik representasi rule-based knowledge. Teknik ini direpresentasikan dalam bentuk fakta (fact) dan aturan-aturan (rules). Aplikasi ini bertujuan untuk menunjukkan letak jari yang tepat di fingerboard biola sehingga menghasilkan nada yang benar. Hasil dari aplikasi yang dibangun menunjukkan letak jari pada fingerboard biola, pewarnaan jari, dan output suara dari setiap nada.


(7)

APPLICATION OF LEARNING VIOLIN FOR BEGINNERS

ABSTRACT

The precision in the placement of fingers on the violin's fingerboard is very important because violin has no limiter like guitar. Therefore, need an application that can show the location of that finger. This application uses a rule-based representation technique knowledge. This technique is represented in the form of facts (fact) and the rules (rules). This application is bulid to show the exact location of the finger on the violin's fingerboard to produce the correct tone. Results from applications built shows the fingering on the violin's fingerboard, finger staining, and the sound output from every tone.


(8)

vii

DAFTAR ISI

Halaman

PERSETUJUAN ii

PERNYATAAN iii

PENGHARGAAN iv

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR TABEL ix

DAFTAR GAMBAR x

BAB 1 PENDAHULUAN 1

1.1. Latar Belakang 1

1.2. Rumusan Masalah 2

1.3. Batasan Masalah 2

1.4. Tujuan Penelitian 2

1.5. Manfaat Penelitian 2

1.6. Metodologi Penelitian 3

1.7. Sistematika Penulisan 3

BAB 2 TINJAUAN PUSTAKA 5

2.1. Biola 5

2.2. Tangga Nada Mayor 6

2.3. Fingering Chart 6

2.3.1. Fingering Chart Untuk Tangga Nada G Mayor 6

2.3.2. Fingering Chart Untuk Tangga Nada A Mayor 7

2.3.3. Fingering Chart Untuk Tangga Nada D Mayor 8

2.3.4. Fingering Chart Untuk Tangga Nada E Mayor 9

2.4. Metode Pembelajaran Biola Suzuki 9

2.5. Java 10

2.6. Teknik Representasi Pengetahuan 10

2.7. Penelitian Terdahulu 11

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 14

3.1. Analisis Metode Rule-Based Pada Aplikasi Pembelajaran Biola 14

3.2. Flowchart Sistem 18

3.3. Activity Diagram Sistem 22

3.4. Perancangan Sistem 22

3.4.1. Antarmuka Aplikasi 24

3.4.2. Perancangan Database 24

3.4.3. Audio 26

BAB 4 IMPLEMENTASI DAN PENGUJIAN 27


(9)

4.1.1. Spesifikasi Perangkat Lunak 27

4.1.2. Spesifikasi Perangkat Keras 27

4.1.3. Hasil Eksekusi Aplikasi 28

4.2. Pengujian 39

4.2.1. Pengujian Aplikasi 39

4.2.2. Pengujian Aspek Penggunaan Aplikasi 41

BAB 5 KESIMPULAN DAN SARAN 44

5.1. Kesimpulan 44

5.2. Saran 44

DAFTAR PUSTAKA 45

LAMPIRAN A: Kode Program 46

LAMPIRAN B: Kuisioner 60


(10)

ix

DAFTAR TABEL

Halaman

Tabel 2.1 Penelitian Terdahulu 12

Tabel 4.1 Rencana Pengujian Sistem 40

Tabel 4.2 Hasil Pengujian Pada Halaman Utama 40

Tabel 4.3 Hasil Kuesioner Aspek Penggunaan Aplikasi 42


(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Nama Senar Pada Biola 5

Gambar 2.2 Tangga Nada G Mayor 6

Gambar 2.3 Tangga Nada A Mayor 7

Gambar 2.4 Tangga Nada D Mayor 8

Gambar 2.5 Tangga Nada E Mayor 9

Gambar 2.6 Representasi Rule-Based 11

Gambar 3.1 Flowchart Sistem 19

Gambar 3.2 Flowchart Menampilkan Tangga Nada 20

Gambar 3.3 Flowchart Menunjukkan letak jari 21

Gambar 3.4 Activity Diagram Sistem 22

Gambar 3.5 Antarmuka Aplikasi 23

Gambar 3.6 Halaman About 24

Gambar 3.7 Halaman Keterangan 24

Gambar 3.8. Tabel tabel_nada 25

Gambar 3.9. Tabel tabel_kunci 26

Gambar 3.10 Pemotongan Durasi 26

Gambar 4.1 Tampilan Awal Sistem 28

Gambar 4.2 Tampilan Combo Box 29

Gambar 4.3 Tampilan Pemilihan Tangga Nada 30

Gambar 4.4 Tampilan Nada Yang Dipilih 31

Gambar 4.5 Tampilan PLAY 37

Gambar 4.6 Tampilan Halaman Keterangan 38


(12)

v

ABSTRAK

Ketepatan dalam penempatan jari di fingerboard biola sangat penting karena biola tidak memiliki pembatas seperti gitar. Maka diperlukan suatu aplikasi yang dapat menunjukkan letak jari tersebut. Aplikasi ini menggunakan teknik representasi rule-based knowledge. Teknik ini direpresentasikan dalam bentuk fakta (fact) dan aturan-aturan (rules). Aplikasi ini bertujuan untuk menunjukkan letak jari yang tepat di fingerboard biola sehingga menghasilkan nada yang benar. Hasil dari aplikasi yang dibangun menunjukkan letak jari pada fingerboard biola, pewarnaan jari, dan output suara dari setiap nada.


(13)

APPLICATION OF LEARNING VIOLIN FOR BEGINNERS

ABSTRACT

The precision in the placement of fingers on the violin's fingerboard is very important because violin has no limiter like guitar. Therefore, need an application that can show the location of that finger. This application uses a rule-based representation technique knowledge. This technique is represented in the form of facts (fact) and the rules (rules). This application is bulid to show the exact location of the finger on the violin's fingerboard to produce the correct tone. Results from applications built shows the fingering on the violin's fingerboard, finger staining, and the sound output from every tone.


(14)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Biola adalah alat musik yang mempunyai 4 buah senar yaitu senar G, D, A, E. Biola tidak mempunya pembatas seperti gitar. Biola dimainkan dengan cara digesek. Tangan kanan untuk menggerakkan bow dan tangan kiri untuk menekan senar sesuai nada yang kita inginkan. Pemain biola harus tahu dimana menempatkan jarinya, karena bila menempatkan jari yang salah di setiap senar maka itu akan menghasilkan nada yang berbeda.

Bagi pemain biola pemula, biasanya dalam melakukan penempatan jari di senar biola ini dipandu oleh guru pengajar biola mereka atau mereka membuat pembatas sendiri di fingerboard supaya mereka mengetahui dimana meletakkan jari mereka. Walaupun hal ini dilakukan, bagi pemain biola pemula hal tersebut tidaklah mudah karena mereka harus menghapal tempat jari mereka dan menggunakan feeling untuk dapat merasakan nada yang tepat.

Akan tetapi, tidak selamanya pembatas dapat dilekatkan pada biola. Pemain biola harus melepasnya dan membiasakan diri untuk menekan senar biola tanpa pembatas dan guru privat pun tidak selamnya mendampingi dalam melakukan latihan ataupun melakukan koreksi terhadap permainan biola. Para pemain biola memerlukan suatu aplikasi yang dapat membantu mereka dalam melakukan koreksi terhadap latihan mereka.

Bermain biola adalah suatu keahlian yang memerlukan latihan yang benar untuk dapat menguasai permainan biola tersebut. Untuk itu aplikasi yang dibuat harus lah dapat memberikan suatu kemudahan kepada penggunanya dan dapat langsung dipraktekkan bukan hanya terpaku pada aplikasi yang dibuat. Untuk itu penulis ingin membuat aplikasi untuk membantu pemain biola dalam mengetahui letak jari yang benar dengan menghasilkan nada yang sesuai.


(15)

Aplikasi yang ingin penulis buat adalah aplikasi desktop dan dalam pembuatan aplikasi ini, penulis menggunakan metode rule based.

1.2. Rumusan Masalah

Biola adalah alat musik yang memiliki 4 senar dan tidak memiliki pembatas di fingerboard-nya. Namun, bagi pemain biola pemula untuk menempatkan jari di fingerboard sehingga menghasilkan nada yang benar bukanlah hal yang gampang. Pemasalahan yang penulis bahas adalah: Bagaimana menunjukkan letak jari yang benar di fingerboard biola untuk dapat menghasilkan nada yang benar sehingga dapat membantu pemain biola pemula dalam latihan.

1.3. Batasan Masalah

Permasalahan yang akan diteliti memiliki ruang lingkup yang luas, oleh sebab itu penulis membatasi masalah tersebut sebagai berikut:

a. Untuk permainan solo biola

b. Tidak ada bowing (menggesek biola dengan bow) c. Jumlah range nada yang disediakan maksimal 2 oktaf.

d. Menggunakan tangga nada Mayor.

1.4. Tujuan Penelitian

Tujuan utama dari penelitian ini adalah untuk menunjukkan penempatan jari yang benar di fingerboard biola bagi pemain biola sehingga dapat menghasilkan nada yang benar dan membantu latihan bermain biola.

1.5. Manfaat Penelitian

Penelitian ini dilakukan dengan harapan akan memberikan manfaat sebagai berikut: a. Menjadikan alternatif pembelajaran biola apabila tidak didampingi oleh guru

privat.

b. Menambah pengetahuan tentang biola dan dapat mempraktekkannya.

c. Melatih kepekaan terhadap nada yang dihasilkan biola. d. Membantu pemain biola pemula dalam latihan.


(16)

3

1.6. Metodologi Penelitian

Metodologi penelitian yang digunakan adalah sebagai berikut: 1. Studi literatur

Penulis mengumpulkan bahan referensi yang digunakan dalam merancang aplikasi, baik itu dari buku-buku ataupun dari journal yang ada di internet. Sehingga penulis dapat memiliki pengetahuan tentang apa yang dikerjakan dan apa saja yang sudah dikerjakan oleh orang lain.

2. Desain sistem

Dalam tahap ini penulis merancang DFD, use case, dan flowchart dari aplikasi yang dibuat. Hal ini dilakukan untuk mempermudah penulis dalam membangun aplikasi.

3. Pembuatan sistem

Penulis menggunakan DFD dan flowchart yang sudah dirancang unutk mengaplikasikannya dalam sistem.

4. Pengujian sistem

Penulis melakukan pengujian dari sistem yang telah dibuat, memeriksa kesalahan yang ada dan memeperbaiki apabila ada kesalahan yang terdapat di aplikasi. Sehingga aplikasi yang dibuat menjadi lebih baik.

5. Dokumentasi

Penulis membuat dokumentasi dari apa yang telah dibuat dalam bentuk laporan.

1.7. Sistematika Penulisan

Tugas akhir ini disusun dalam 5 bab dengan sistematika penulisan sebagai berikut:

BAB 1. PENDAHULUAN

Bab pendahuluan ini berisi tentang hal-hal yang mendasari dilakukannya penelitian serta pengidentifikasian masalah penelitian. Bagian-bagian yang terdapat dalam bab pendahuluan ini meliputi latar belakang masalah, perumusan masalah batasan masalah, tujuan penelitian, dan manfaat penelitian.


(17)

BAB 2. TINJAUAN PUSTAKA

Tinjauan pustaka menguraikan landasan teori, kerangka pikir dan pengetahuan yang digunakan unutuk membuat sistem ini.

BAB 3. ANALISIS DAN PERANCANGAN SISTEM

Bab ini penulis merancang activity diagram dan flow chart dari aplikasi yang dibuat.

BAB 4. IMPLEMENTASI DAN PENGUJIAN

Pada bab ini akan memaparkan hasil terhadap uji coba metode yang telah digunakan dalam menyelesaikan masalah.

BAB 5. KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan hasil penelitian dan saran-saran yang berkaitan dengan penelitian selanjutnya.


(18)

BAB 2

TINJAUAN PUSTAKA

Pada bab ini penulis menguraikan landasan teori, kerangka pikir, pengetahuan dan teknik yang digunakan untuk membangun sistem ini.

2.1. Biola

Biola adalah sebuah alat musik dawai yang dimainkan dengan cara digesek. Biola memiliki empat senar, senar G, senar D, senar A, dan senar E yang disetel berbeda satu sama lain. Nada yang paling rendah adalah G. Seperti yang terlihat pada Gambar 2.1


(19)

2.2. Tangga Nada Mayor

Tangga nada mayor adalah tangga nada yang sangat umum dipakai untuk musik barat. Ketika dimainkan secara berurutan nada mayor ini dikenal dengan istilah: do-re-mi-fa-sol-la-si-do. Tangga nada ini disusun berdasarkan kekhususan aturan, yaitu kombinasi semitone antara nada-nada yang ada. Jarak 2 nada yang berdekatan disebut semitone, 2 buah semitone disebut tone.

Contohnya : Tangga nada C mayor C – D – E – F – G – A – B –C‟ Interval C ke D adalah 1 (tone) Interval E ke F adalah 1/2 (semitone)

2.3. Fingering chart

Fingering chart adalah tempat jari diletakkan pada saat memainkan biola. Setiap tangga nada yang dimainkan memiliki fingering chart yang berbeda pula. Hal ini dikarenakan setiap nada pada tangga nada yang dimainkan memiliki interval yang berbeda pula.

Setiap senar biola memiliki tangga nada masing-masing. Agar dapat menghasilkan nada yang sesuai, jari harus diletakkan di fingerboard biola di tempat yang sesuai juga.

2.3.1. Fingering chart untuk tangga nada g mayor


(20)

7

Nada G = Jari 0 (hanya senar G digesek tanpa diletakkan jari) Nada A = Jari 1 (jari telunjuk)

Nada B = Jari 2 (jari tengah) Nada C = Jari 3 (jari manis)

Nada D = Jari 0 (hanya senar D digesek tanpa diletakkan jari) Nada E = Jari 1 (jari telunjuk)

Nada F#1 = Jari 2 (jari tengah) Nada G = Jari 3 (jari manis)

Nada A = Jari 0 (hanya senar A digesek tanpa diletakkan jaris) Nada B = Jari 1 (jari telunjuk)

Nada C = Jari 2 (jari tengah) Nada D = Jari 3 (jari manis)

Nada E = Jari 0 (hanya senar E digesek tanpa diletakkan jaris) Nada F# = Jari 1 (jari telunjuk)

Nada G = Jari 2 (jari tengah)

2.3.2. Fingering chart untuk tangga nada a mayor

Gambar 2.3 Tangga nada A mayor

Nada A = Jari 1 (jari telunjuk) Nada B = Jari 2 (jari tengah) Nada C# = Jari 3 (jari manis)

Nada D= Jari 0 (hanya senar D digesek tanpa diletakkan jari) Nada E = Jari 1 (jari telunjuk)


(21)

Nada F# = Jari 2 (jari tengah) Nada G# = Jari 3 (jari manis)

Nada A = Jari 0 (hanya senar A digesek tanpa diletakkan jari) Nada B = Jari 1 (jari telunjuk)

Nada C# = Jari 2 (jari tengah) Nada D = Jari 3 (jari manis)

Nada E = Jari 0 (hanya senar E digesek tanpa diletakkan jari) Nada F# = Jari 1 (jari telunjuk)

Nada G# = Jari 2 (jari tengah) Nada A = Jari 3 (jari manis)

2.3.3. Fingering chart untuk tangga nada d mayor

Gambar 2.4 Tangga nada D mayor

Nada D = Jari 0 (hanya senar D digesek tanpa diletakkan jari) Nada E = Jari 1 (jari telunjuk)

Nada F# = Jari 2 (jari tengah) Nada G = Jari 3 (jari manis)

Nada A = Jari 0 (hanya senar A digesek tanpa diletakkan jari) Nada B = Jari 1 (jari telunjuk)

Nada C# = Jari 2 (jari tengah) Nada D = Jari 3 (jari manis)


(22)

9

2.3.4. Fingering chart untuk tangga nada E mayor

Gambar 2.5 Tangga nada E mayor

Nada E = Jari 1 (jari telunjuk) Nada F# = Jari 2 (jari tengah) Nada G# = Jari 3 (jari manis)

Nada A = Jari 0 (hanya senar A digesek tanpa diletakkan jari) Nada B = Jari 1 (jari telunjuk)

Nada C# = Jari 2 (jari tengah) Nada D# = Jari 3 (jari manis)

Nada E = Jari 0 (hanya senar E digesek tanpa diletakkan jari)

2.4. Metode Pembelajaran Biola Suzuki

Metode Suzuki adalah suatu pendekatan pendidikan instrumen musik (instrumental music education) yang mengacu kepada filosofi pendidikan dan pengajaran dari Dr. Shinichi Suzuki (Jepang).

Elemen dasar Metode Suzuki adalah: - Musik sebaiknya diperkenalkan sejak dini

- Pembelajaran musik sebaiknya dimulai sejak dini - Bermain menggunakan memori

- Memperhatikan setiap detail musik - Mendengarkan musik

- Latihan individu dan kelompok - Tampil di depan umum


(23)

2.5. Java

Java adalah suatu teknologi di dunia software komputer, yang merupakan suatu bahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa pemrograman, Java dikenal sebagai bahasa pemrograman tingkat tinggi. Java mudah dipelajari, terutama bagi programer yang telah mengenal C/C++. Java merupakan bahasa pemrograman berorientasi objek yang merupakan paradigma pemrograman masa depan. Sebagai bahasa pemrograman Java dirancang menjadi handal dan aman. Java juga dirancang agar dapat dijalankan di semua platform. Dan juga dirancang untuk menghasilkan aplikasi – aplikasi dengan performansi yang terbaik, seperti aplikasi database Oracle 8i/9i yang core-nya dibangun menggunakan bahasa pemrograman Java. Sedangkan Java bersifat neutral architecture, karena Java Compiler yang digunakan untuk mengkompilasi kode program Java dirancang untuk menghasilkan kode yang netral terhadap semua arsitekture perangkat keras yang disebut sebagai Java Bytecode. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu:

- Java Virtual Machine (JVM).

- Java Application Programming Interface (Java API). Sun membagi arsitektur Java membagi tiga bagian, yaitu:

- Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi sistem.

tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi. Merupakan superset dari Standar Java.

- Standard Java (J2SE), ini adalah yang biasa dikenal sebagai bahasa Java. Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya yang banyak dipakai adalah untuk wireless device/mobile device.

2.6. Teknik Representasi Pengetahuan

Pengetahuan adalah pemahaman teori dalam sebuah subjek atau domain. Pengetahuan juga merupakan kesimpulan dari pengetahuan dan yang memiliki pengetahuan disebut expert (Negnevitsky, 2005).

Representasi pengetahuan adalah teknik yang digunakan untuk mengkodekan pengetahuan dalam sebuah sistem pakar (Kusrini, 2006).

Teknik representasi rule-based knowledge adalah salah satu model teknik representasi. Teknik ini direpresentasikan dalam bentuk fakta (fact) dan aturan-aturan


(24)

11

(rules). Fakta adalah keadaan yang benar-benar bernilai nyata atau dalam pengetahuan fakta merupakan pengetahuan yang memiliki aturan-aturannya.

Peneliti menggunakan metode rule-based knowledge untuk menentukan tempat jari yang benar sehingga menghasilkan nada yang benar pula. Dalam meletakkan jari di fingerboard memiliki aturan-aturan tertentu sehingga letaknya tidak bisa berubah-ubah.

Tangga Nada mayor Cek setiap nada

yang ada

Rules

Output: Letak jari di fingerboard Audio setiap nada

yang dipilih

Gambar 2.6 Representasi Rule based

2.7. Penelitian Terdahulu

Pembelajaran tentang musik sudah banyak dibuat. Pembelajaran musik yang dibangun menggunakan teknik yang berbeda. Pembelajaran musik yang dibuat sperti piano, gitar, dan drum.

Wijaya, Danang (2012) memanfaatkan Game Logic dalam pembelajaran Piano. Aplikasi yang dibuat berbasis animasi 3D. Aplikasi ini banyak menampilkan akord Pianoyang ditampilkan dalam gambar flash 3D dan audio visual sehingga dapat mengetahui akord dari piano dalam bentuk visual tanpa harus memiliki piano sendiri.

Tanuadji, Maureen (2010) evaluasi permainan biola monophonic. Aplikasi ini melakukan evaluasi permainan biola monophonic untuk menemukan kesalahan mengenai pitch dari not-not yang dimainkan dan kesalahan tempo pada lagu. Proses evaluasi didahului oleh proses transcriber untuk mentranskripsi data masukan dengan menggunakan metode overlap-add dan analisa harmonic structure. Kemudian


(25)

dilanjutkan dengan proses alignment untuk pitch dan tempo. Hasil dari proses evaluasi adalah data kesalahan dari permaian biola disertai dengan sebuah penilaian mengenai hasil pada proses evaluasi. Aplikasi ini dibuat menggunakan Microsoft Visual C# 2005.

Candra, Satria (2011) aplikasi Gitar player pada mobile phone. Dalam aplikasi ini, chord gitar akan ditampilkan apabila kita memasukkan kunci gitar yang ingin kita lihat. Gambar ditampilkan dalam bentuk flash.

Pratama, Aditya (2011) Aplikasi e-Learning Pembelajaran Alat Musik Biola. Dalam aplikasi ini, membuat situs e-Learning mengenai pembelajaran alat musik biola untuk pemula yang dikemas menarik dan interaktif menggunakan bahasa pemrograman PHP yang digunakan bersama dengan tag – tag HTML.

Wahyu et al (2012) menggunakan teknik representasi rule-based knowledge dan frame-based knowledge pendeteksian dan penanganan dini pada penyakit sapi untuk memudahkan para peternak sapi memanfaatkan keahlian seorang pakar dalam bentuk sebuah aplikasi. Deteksi dan penanganan dini terhadap penyakit sapi adalah hal penting untuk peningkatan produktivitas daging sapi. Rules yang ditampilkan adalah gejala-gejala penyakit yang muncul pada sapi. Dalam metode rule-based proses diagnosa dari aplikasi akan mencocokan inputan gejala yang dimasukkan ke dalam aplikasi dengan rules yang tersedia di dalam database. Sedangkan dalam metode frame-based, proses diagnosa diawali dengan memilih jenis penyakit yang akan didiagnosa. Aplikasi akan menampilkan daftar pertanyaan gejala sesuai dengan penyakit yang dipilih.

Penelitan terdahulu dipaparkan dalam Tabel 2.1.: Tabel 2.1 Penelitian Terdahulu

Nama (tahun) Penelitian Kelebihan Teknik

Wijaya, Danang (2012) Pembelajaran Piano berbasis animasi 3D

Memberitahu accord pada piano dalam bentuk animasi yang

menyenangkan dan mudah dimengerti


(26)

13

Tabel 2.1 Penelitian Terdahulu (lanjutan)

Nama (tahun) Penelitian Kelebihan Teknik

Pratama, Aditya(2011) Aplikasi e-Learning Pembelajaran Alat Musik Biola Memberikan pembelajaran biola dengan membuat system e-learning dan dapat dengan mudah

mendengar nada dari biola

-

Candra, Satria (2011) Aplikasi Gitar Player Membuat pengguna dapat bermain gitar dengan cara yang menyenangkan dalam bentuk virtual - Tanuadji, Maureen (2010) Perancangan dan pembuatan aplikasi untuk mengevaluasi permainan biola monophonic Dapat dengan mudah mengoreksi permainan biola dengan memasukkan hasil rekaman permainan pengguna Wahyu et, all (2012) Pendeteksian dan

penanganan dini pada penyakit sapi

- Representasi

Rule-based knowledge dan frame-based knwoledge

Peneliti menggunakan metode pembelajaran Suzuki violin. Pembelajaran yang dimulai dari dasar, pengenalan setiap bagian dalam biola, dan bagaimana penggunaan jari yang benar. Teknik representasi rule-based knowledge dalam aplikasi ini merepresentasikan rules yang dapat menunjukkan letak jari dengan nada yang sesuai.


(27)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini, akan dibahas beberapa hal diantaranya data yang digunakan, flowchart dari sistem serta activity diagram-nya dan analisis perancangan sistem dalam mengimplementasikan teknik rule-based knowledge dengan gambar dari letak jari yang dimuculkan serta audionya.

3.1. Analisis Metode Rule Based Pada Aplikasi Pembelajaran Biola

Pada bagian ini akan dibahas penerapan metode Rule Based pada aplikasi pembelajaran biola.

Langkah- langkah yang dilakukan untuk dapat menunjukkan letak jari pada fingerboard biola adalah sebagai berikut:

1. Memilih tangga nada yang disediakan, mulai dari tangga nada C sampai B 2. Kemudian setelah memilih tangga nada yang dinginkan, maka akan

ditampilkan setiap nada yang ada dalam tangga nada tersebut.

3. Jika sudah ditampilkan, maka pilih nada mana yang ingin dimainkan. 4. Setelah nada dipilih, maka aplikasi akan menunjukkan letaknya di

fingerboard dan mengeluarkan suara sesuai dengan nada yang dipilih. 5. Lakukan langkah (1) jika ingin memilih tangga nada yang berbeda.

Penerapan metode Rule Based pada aplikasi pembelajaran biola. Contoh soal dalam memilih tangga nada C dan memilih nada C dan D adalah sebagai berikut:

- IF tangga nada adalah C

THEN C – D – E – F – G – A – B –C‟ IF nada adalah C

AND berada di senar G


(28)

15

- IF tangga nada adalah C

THEN C – D – E – F – G – A – B –C‟ IF nada adalah D

AND berada di senar D

THEN open string AND tunjuk letak di fingerboard

Penerapan metode Rule Based secara keseluruhan adalah sebagai berikut: - IF tangga nada adalah C

THEN C – D – E – F – G – A – B –C‟ - IF tangga nada adalah D

THEN D – E – F# – G – A – B – C# –D‟ - IF tangga nada adalah E

THEN E – F# – G# – A – B – C# – D# –E‟ - IF tangga nada adalah F

THEN F – G – A – Bb – C – D – E –F‟ - IF tangga nada adalah G

THEN G – A – B – C – D – E – F# –G‟– A – B – C – D – E – F# –G‟‟ IF tangga nada adalah A

THEN A – B – C# – D – E – F# – G# –A‟– B – C# – D – E – F# – G# –

A‟‟

IF tangga nada adalah B

THEN B – C# – D# – E – F# – G# – A# –B‟ Rule untuk setiap nada yang dipilih:

- IF nada adalah G AND berada di senar G

THEN open string AND tunjuk letak di fingerboard - IF nada adalah D

AND berada di senar D

THEN open string AND tunjuk letak di fingerboard - IF nada adalah A

AND berada di senar A


(29)

- IF nada adalah E AND berada di senar E

THEN open string AND tunjuk letak di fingerboard

- IF nada adalah G# AND berada di senar G

THEN first finger AND tunjuk letak di fingerboard - IF nada adalah D#

AND berada di senar D

THEN first finger AND tunjuk letak di fingerboard - IF nada adalah E

AND berada di senar D

THEN first finger AND tunjuk letak di fingerboard - IF nada adalah A#

AND berada di senar A

THEN first finger AND tunjuk letak di fingerboard - IF nada adalah B

AND berada di senar A

THEN first finger AND tunjuk letak di fingerboard - IF nada adalah F

AND berada di senar E

THEN first finger AND tunjuk letak di fingerboard - IF nada adalah F#

AND berada di senar E

THEN first finger AND tunjuk letak di fingerboard

- IF nada adalah A# AND berada di senar G

THEN second finger AND tunjuk letak di fingerboard - IF nada adalah B

AND berada di senar G

THEN second finger AND tunjuk letak di fingerboard - IF nada adalah F


(30)

17

AND berada di senar D

THEN second finger AND tunjuk letak di fingerboard - IF nada adalah F#

AND berada di senar D

THEN second finger AND tunjuk letak di fingerboard - IF nada adalah C

AND berada di senar A

THEN second finger AND tunjuk letak di fingerboard - IF nada adalah C#

AND berada di senar A

THEN second finger AND tunjuk letak di fingerboard - IF nada adalah G

AND berada di senar E

THEN second finger AND tunjuk letak di fingerboard - IF nada adalah G#

AND berada di senar E

THEN second finger AND tunjuk letak di fingerboard

- IF nada adalah C AND berada di senar G

THEN third finger AND tunjuk letak di fingerboard - IF nada adalah C#

AND berada di senar G

THEN third finger AND tunjuk letak di fingerboard - IF nada adalah G

AND berada di senar D THEN third finger - IF nada adalah G#

AND berada di senar D

THEN third finger AND tunjuk letak di fingerboard - IF nada adalah D

AND berada di senar A


(31)

- IF nada adalah D# AND berada di senar A

THEN third finger AND tunjuk letak di fingerboard - IF nada adalah A

AND berada di senar E

THEN third finger AND tunjuk letak di fingerboard - IF nada adalah A#

AND berada di senar E

THEN third finger AND tunjuk letak di fingerboard

3.2. Flowchart Sistem

Flowchart dari sistem menggambarkan tahapan-tahapan dari penyelesaian masalah sistem yang sedang dirancang dan yang ingin dibuat. Tujuan dari flowchart adalah memberikan suatu gambaran untuk mempermudah pemahaman pengguna terhadap sistem yang sedang dirancang. Flowchart sistem yang dirancang menjelaskan proses pengecekan nada yang ada dalam database dan kemudian output yang diberikan berupa audio dan letak jari yang sesuai dari nada tersebut di fingerboard biola. Pada saat aplikasi ini dimulai pengguna dapat memilih tangga nada yang diinginkan kemudian aplikasi akan mengecek tangga nada apa yang dipilih kemudian menampilkan setiap nada yang ada pada tangga nada yang telah dipilih. Kemudian pengguna dapat memilih nada yang tersedia. Aplikasi akan mengecek nada mana yang dipilih oleh pengguna, kemudian menampilkan letak jari dari nada yang dipilih dan output suara. Setelah memilih nada yang ingin dilihat letaknya, pengguna dapat kembali ke memilih tangga nada lain atau langsung ingin memilih nada yang lain untuk dilihat letak dan suaranya tanpa harus menuju ke halaman berikutnya.

Pada saat melakukan pemilihan tangga nada, sistem akan mengecek tangga nada apa yang dipilih. Kemudian setelah diketahui tangga nada yang dipilih, dalam tangga nada yang dipilih tersebut akan dicek nada mana yang dipilih. Sistem akan mengecek di senar bagian mana dan menggunakan jari apa. Setelah itu sistem akan menunjukkan letak jari pada fingerboard biola.


(32)

19

START

Pilih Tangga Nada

Cek tangga Nada Ke Database

Pilih Nada

END Cek tangga Nada

Ke Database Menampilkan

Tangga Nada

Menunjukkan Letak jari

Dan Audio


(33)

Start

Pilih Tangga Nada

Tangga nada

C true Cek Setiap Nada

false Tangga nada D true Cek Tangga Nada Menampilkan Tangga Nada C Pilih Nada Menampilkan Tangga Nada D false Tangga nada E false Tangga nada F false Tangga nada G false Tangga nada A true true true true Menampilkan Tangga Nada E Menampilkan Tangga Nada F Menampilkan Tangga Nada G Menampilkan Tangga Nada A P2 false Tangga nada B true Menampilkan Tangga Nada B false


(34)

21

P1

Nada G, true

false

Nada A

Senar G, true Open String

false Nada B false Nada C false Nada D false Nada E false Nada F false Nada Ab false Nada Bb false Nada Eb false Nada C# Nada D# Nada F# Nada G# false false false false false Senar D, false Senar A, false Senar E First String false false false Second String false Third String true false

Output: Letak jari, Suara

Stop


(35)

3.3. Activity Diagram Sistem

Activity diagram dari sistem menggambarkan urutan aktivitas dalam sistem yang sedang dirancang. Aktivitas yang digambarkan hanya secara umum tidak secara eksak seperti pembuatan flowchart yang terstruktur. Activity diagram membantu memahami proses rancangan sistem secara keseluruhan.

Activity diagram yang peneliti buat untuk menampilkan aktivitas dalam sistem. Aktivitasnya berupa tampilan pilihan tangga nada yang ada di dalam aplikasi.

Interface

Sistem

Pilih Tangga nada

Tampilkan Setiap nada pada setiap tangga nada

yang dipilih

Klik Nada Yang ingin dilihat

letaknya.

Tampilkan letak jari dan audio

yang sesuai Mainkan keseluruhan

nada di dalam tangga nada yang dipilih

Pengecekan nada Yang dipilih

Gambar 3.4 Activity Diagram Sistem

3.4. Perancangan Sistem

Pada bagian perancangan sistem, penulis akan menjelaskan konsep perancangan aplikasi, perancangan alur aplikasi, dan perancangan antarmuka aplikasi pembelajaran biola.


(36)

23

3.4.1 Antarmuka Aplikasi

Perancangan antarmuka aplikasi pembelajaran biola yang ingin dibuat oleh penulis adalah sebagai berikut :

Gambar 3.5 Antarmuka Aplikasi Rancangan tampilan utama dari aplikasi ini adalah :

1. Membuat tiga panel yaitu

- Panel pertama untuk button KETERANGAN dan button ABOUT

- Panel kedua untuk combo box pemilihan tangga nada, menampilkan nada yang ingin dipilih, button PLAY untuk memainkan tangga nada

- Panel ketiga untuk gambar biola dan menunjukkan letak jari jika nada dipilih.

2. Button KETERANGAN berisi tentang posisi yang sering salah saat meletakkan jari pada fingerboard biola.

3. Button ABOUT berisi tentang penulis.


(37)

Tampilan halaman ABOUT dengan membuat jendela baru saat diklik.

Gambar 3.6 Halaman About

Tampilan halaman KETERANGANdengan membuat jendela baru saat diklik

Gambar 3.7 Halaman Keterangan

3.4.2 Perancangan Database

Data yang digunakan dalam aplikasi pembelajaran biola ini berupa nama dari tangga nada dan nama nada. Perancangan database pada aplikasi ini dibuat pada MySQL.


(38)

25

Terdapat dua tabel yang peneliti buat pada database MySQL. Terdiri dari tabel tabel_kunci dan tabel_nada. Berikut adalah penjelasan dari setiap tabel.

1. Tabel tabel_nada

Tabel tabel_nada terdapat empat kolom dengan integer dan varchar, id_nada, nada, jari, senar. Berisi 27 records yang terisi 27 nada. Kolom id_nada dihubungkan untuk pengambilan nada dari setiap tangga nada yang dipilih. Seperti yang terlihat pada Gambar 3.8 berikut.

Gambar 3.8 Tabel tabel_nada

2. Tabel tabel_kunci

Tabel tabel_kunci terdapat tiga kolom dengan integer dan varchar, id, nada_dasar, id_nada. Seperti yang terlihat pada Gambar 3.9 berikut.


(39)

Gambar 3.9 Tabel tabel_kunci

3.4.3 Audio

Audio yang digunakan dalam bentuk wav. Peneliti melakukan pemotongan durasi dari setiap nada dengan menggunakan audacity agar durasi dari setiap nada yang dimainkan tidak terlalu panjang.

Contoh pemotongan durasi dengan menggunakan audacity dapat dilihat pada Gambar 3.10, yaitu pemotongan durasi dari nada A:

Gambar 3.10 Pemotongan Durasi

Pemotongan durasi dari setiap nada dilakukan dengan memilih file audio dari nada kemudian gunakan select tool untuk memilih seberapa lama durasi yang akan digunakan, lalu pilih menu edit->cut.


(40)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Pada bab ini, akan dibahas pengimplementasian sistem ke dalam kode program agar pengujian dapat dilakukan untuk mengetahui jalannya nada yang digunakan dan letaknya di fingerboard biola dengan menggunakan metode rule based knowledge.

4.1. Implementasi

Implementasi Aplikasi Pembelajaran Biola meliputi kebutuhan perangkat lunak dan perangkat keras yang digunakan untuk membangun aplikasi ini. Dalam tahap ini hasil analisi dan perancangan dibuat dalam bahasa pemograman.

4.1.1.Spesifikasi Perangkat Lunak

Aplikasi Pembelajaran biola ini dibangun pada sistem operasi Windows 7 32-bit, menggunakan bahasa pemrograman Java.

Pengkodean dilakukan dengan menggunakan perangkat lunak Netbeans IDE 7.0, untuk bahasa pemrograman Java. Database disimpan dengan menggunakan MySQL.

4.1.2.Spesifikasi Perangkat Keras

Adapun spesifikasi perangkat keras yang digunakan dalam implementasi aplikasi pembelajaran biola ini adalah sebagai berikut:

1. Prosesor AMD A4-3305M APU with Radeon HD Graphics 1,90 GHz

2. Memory (RAM) 2 GB

3. Hard Disk 500 GB


(41)

4.1.3.Hasil Eksekusi Aplikasi

Pada bagian ini akan dijelaskan hasil eksekusi aplikasi pembelajaran biola yang dijalankan. Penjelasan dimulai dari tampilan awal aplikasi ketika dijalankan. Ketika aplikasi pertama kali dijalankan, maka akan muncul tampilan awal sistem menampilkan gambar biola, combo box untuk memilih tangga nada, button untuk memainkan tangga nada yang sudah dipilih, button keterangan, dan button about. Seperti yang terlihat pada Gambar 4.1 berikut.

Gambar 4.1 Tampilan Awal Sistem

Dalam tampilan halaman menu utama ini, terdapat combo box Pilih kunci untuk memilih tangga nada yang ingin dimainkan, button PLAY untuk memainkan tangga nada yang dipilih, button Keterangan untuk melihat keterangan tentang istilah yang ada di dalam aplikasi, dan button About untuk melihat keterangan dari pengembang aplikasi.

Ketika diklik combo box Pilih kunci, maka akan keluar pilihan tangga nada yang ingin dimainkan. Seperti yang terlihat pada Gambar 4.2 berikut.


(42)

29

Gambar 4.2 Tampilan Combo Box

Adapun koding dari combo box yang ditampilkan adalah sebagai berikut:

String[] strKunci = {"--Pilih Tangga Nada--", "A", "B", "C", "D", "E", "F", "G"};

comboKunci = new JComboBox(strKunci); comboKunci.setBackground(Color.pink);

comboKunci.setFont(new Font("Segoe Script", Font.BOLD, 16)); comboKunci.setForeground(Color.black);

comboKunci.addItemListener(new ItemListener() {

public void itemStateChanged(ItemEvent e) { String nadaDasar =

comboKunci.getSelectedItem().toString(); if (e.getStateChange() == 1 && comboKunci.getSelectedIndex() != 0) {

bersihkan_panel(panelKanan);

String kumpulanKunci = ambil_kunci_dari_database(nadaDasar);


(43)

tombol_manager(kumpulanKunci); }

} });

Setelah memilih tangga nada yang ingin dimainkan, maka akan keluar setiap nada yang ada dalam tangga nada yang dipilih. Tampilan nada yang ditampilkan menggunakan button. Seperti yang terlihat pada Gambar 4.3 berikut.

Gambar 4.3 TampilanPemilihan Tangga Nada Adapun coding dari button nada yang ditampilkan adalah sebagai berikut:

if (comboKunci.getSelectedIndex() != 0) { bersihkan_panel(panelKanan);

mainkan_musik(comboKunci.getSelectedItem().toString()); }

} else {

for (int i = 0; i < buttonNada.size(); i++) { if (event.getSource() == buttonNada.get(i)) { bersihkan_panel(panelKanan);

String teks = buttonNada.get(i).getText().toString(); String[] nadaJariSenar = teks.split(" ");

String nada = nadaJariSenar[1].trim(); int jari = 0;


(44)

31

if

(nadaJariSenar[3].toLowerCase().trim().equals("string")) { jari = 0;

} else if

(nadaJariSenar[3].toLowerCase().trim().equals("telunjuk")) { jari = 1;

} else if

(nadaJariSenar[3].toLowerCase().trim().equals("tengah")) { jari = 2;

} else if

(nadaJariSenar[3].toLowerCase().trim().equals("manis")) { jari = 3;

}

String senar = nadaJariSenar[5].trim(); System.out.println(nadaJariSenar[1]); System.out.println(nadaJariSenar[3]); System.out.println(nadaJariSenar[5]); nada_manager(nada + "_" + senar, jari); }

}

Setiap nada yang ditampilkan dapat dipilih dan saat diklik akan menunjukkan suara dan letaknya di fingerboard. Misalnya dipilih nada G maka akan ditampilkan letaknya. Seperti yang terlihat pada gambar 4.4 berikut.

Gambar 4.4 Tampilan nada yang dipilih

Coding untuk menampilkan letak jari dan suara yang dikeluarkan adalah sebagai berikut:


(45)

// System.out.println("Nada Manager :" + angka + nada + kode_jari);

String soundName = null; String warna = "";

//saat diklik maka gambar jari akan dibersihkan

Graphics graphicsPanelKanan = panelKanan.getGraphics(); if (clip != null) {

clip.stop(); }

if (nada.equals("G_G")) {

soundName = "src/suara/G_G.wav"; x = 235;

y = 75;

} else if (nada.equals("Ab_G")) { soundName = "src/suara/Ab_G.wav"; x = 235;

y = 120;

} else if (nada.equals("A_G")) { soundName = "src/suara/A_G.wav"; x = 235;

y = 165;

} else if (nada.equals("Bb_G")) { soundName = "src/suara/Bb_G.wav"; x = 235;

y = 210;

} else if (nada.equals("B_G")) { soundName = "src/suara/B_G.wav"; x = 233;

y = 255;

} else if (nada.equals("C_G")) { soundName = "src/suara/C_G.wav"; x = 232;

y = 300;

} else if (nada.equals("C#_G")) { soundName = "src/suara/C#_G.wav"; x = 232;


(46)

33

y = 345;

} else if (nada.equals("D_D")) { soundName = "src/suara/D_D.wav"; x = 253;

y = 75;

} else if (nada.equals("Eb_D")) { soundName = "src/suara/Eb_D.wav"; x = 253;

y = 120;

} else if (nada.equals("E_D")) { soundName = "src/suara/E_D.wav"; x = 253;

y = 165;

} else if (nada.equals("F_D")) { soundName = "src/suara/F_D.wav"; x = 253;

y = 210;

} else if (nada.equals("F#_D")) { soundName = "src/suara/F#_D.wav"; x = 253;

y = 255;

} else if (nada.equals("G_D")) { soundName = "src/suara/G_D.wav"; x = 253;

y = 300;

} else if (nada.equals("G#_D")) { soundName = "src/suara/G#_D.wav"; x = 253;

y = 345;

} else if (nada.equals("A_A")) { soundName = "src/suara/A_A.wav"; x = 271;

y = 75;

} else if (nada.equals("Bb_A")) { soundName = "src/suara/Bb_A.wav"; x = 271;

y = 120;

} else if (nada.equals("B_A")) { soundName = "src/suara/B_A.wav";


(47)

x = 271; y = 165;

} else if (nada.equals("C_A")) { soundName = "src/suara/C_A.wav"; x = 271;

y = 210;

} else if (nada.equals("C#_A")) { soundName = "src/suara/C#_A.wav"; x = 271;

y = 255;

} else if (nada.equals("D_A")) { soundName = "src/suara/D_A.wav"; x = 271;

y = 300;

} else if (nada.equals("D#_A")) { soundName = "src/suara/D#_A.wav"; x = 271;

y = 300;

} else if (nada.equals("E_E")) { soundName = "src/suara/E_E.wav"; x = 288;

y = 75;

} else if (nada.equals("F_E")) { soundName = "src/suara/F_E.wav"; x = 288;

y = 120;

} else if (nada.equals("F#_E")) { soundName = "src/suara/F#_E.wav"; x = 288;

y = 165;

} else if (nada.equals("G_E")) { soundName = "src/suara/G_E.wav"; x = 288;

y = 210;

} else if (nada.equals("G#_E")) { soundName = "src/suara/G#_E.wav"; x = 288;

y = 255;


(48)

35

soundName = "src/suara/A_E.wav"; x = 288;

y = 300;

}

//untunk mengatur warna berdasarkan kode jari if (kode_jari == 0) {

graphicsPanelKanan.setColor(Color.BLUE); } else if (kode_jari == 1) {

graphicsPanelKanan.setColor(Color.RED); } else if (kode_jari == 2) {

graphicsPanelKanan.setColor(Color.YELLOW); } else if (kode_jari == 3) {

graphicsPanelKanan.setColor(Color.GREEN); }

//lingkaran jari

graphicsPanelKanan.fillOval(x, y, 25, 25); graphicsPanelKanan.setFont(

new Font("default", Font.BOLD, 30));

//mainkan suara try {

AudioInputStream audioInputStream =

AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile()); clip = AudioSystem.getClip();

clip.open(audioInputStream); clip.start();

} catch (Exception ex) {

System.out.println("ERROR : " + ex.toString()); } finally {

try {

//waktu delay suara Thread.sleep(500);

} catch (InterruptedException ex) {

Logger.getLogger(Violin.class.getName()).log(Level.SEVERE, null, ex);


(49)

} } }

public String ambil_kunci_dari_database(String nada) { String kunci = "";

KoneksiDatabase koneksiDatabase = new KoneksiDatabase();

java.sql.Connection koneksiTabelKunci =

koneksiDatabase.getKoneksiDatabase();

try {

String sql = "SELECT * FROM tabel_kunci WHERE nada_dasar = '" + nada + "'";

Statement statement = koneksiTabelKunci.createStatement(); ResultSet resultSet = statement.executeQuery(sql);

while (resultSet.next()) {

kunci = resultSet.getString("id_nada").toString(); }

resultSet.close(); statement.close(); } catch (SQLException ex) {

System.out.println("Statement Tampil Nada Error : " +

ex.toString()); }

System.out.println("Kunci dari database : " + kunci); return kunci;

}

public ArrayList ambil_nada_jari_senar_berdasarkan_id_kunci(int

id_nada) {

String nada = null, jari = null, senar = null;

ArrayList<String> nadaJariSenar = new ArrayList<String>();

KoneksiDatabase koneksiDatabase = new KoneksiDatabase();

java.sql.Connection koneksiTabelKunci =


(50)

37

try {

String sql = "SELECT * FROM tabel_nada WHERE id_nada= '" + id_nada + "'";

Statement statement = koneksiTabelKunci.createStatement(); ResultSet resultSet = statement.executeQuery(sql);

if (resultSet.next()) {

nada = resultSet.getString("nada").toString(); jari = String.valueOf(resultSet.getInt("jari")); senar = resultSet.getString("senar").toString(); }

nadaJariSenar.add(nada); nadaJariSenar.add(jari); nadaJariSenar.add(senar); resultSet.close();

statement.close(); } catch (SQLException ex) {

System.out.println("Statement Tampil Nada Error : " +

ex.toString()); }

return nadaJariSenar; }

Setelah memilih nada, terdapat button PLAY , ketika button PLAY dipilih maka akan dimainkan tangga nada yang dipilih dan menunjukkan letaknya di fingerboard. Seperti yang terlihat pada Gambar 4.5 berikut.


(51)

Coding untuk memainkan tangga nada yang dipilih adalah sebagai berikut: public void mainkan_musik(String nadaDasar) {

String kumpulanKunci = ambil_kunci_dari_database(nadaDasar); String[] kunci = kumpulanKunci.split("_");

ArrayList<String> nadaJariSenar = new ArrayList<String>(); nadaJariSenar.clear();

for (int i = 0; i < kunci.length; i++) { String kodeNada = "";

nadaJariSenar=

ambil_nada_jari_senar_berdasarkan_id_kunci(Integer.parseInt(kunci[i])); int kodeJari = Integer.parseInt(nadaJariSenar.get(1));

kodeNada = nadaJariSenar.get(0) + "_" + nadaJariSenar.get(2); int urutan = i + 1;

if (urutan > 7) {

urutan = urutan - 7; }

nada_manager(kodeNada, kodeJari); System.out.println(kodeNada); }

}


(52)

39

Gambar 4.7 Tampilan Halaman About

Pada halaman keterangan ditampilkan istilah yang ada pada aplikasi dan menunjukkan keterangan nama dari setiap senar biola. Halaman About berisi tentang nama penulis.

4.2. Pengujian

Pengujian aplikasi merupakan tahap untuk melakukan pemeriksaan terhadap aplikasi yang telah dibuat. Pengujian berguna untuk melihat apakah hasil yang didapat sudah sesuai dengan hasil yang diharapkan dari aplikasi yang dibuat.

4.2.1 Pengujian aplikasi

Pada tahap pengujian aplikasi ini, pengujian dilakukan terhadap setiap proses yang ada pada aplikasi. Pengujian ini menggunakan metode black box, yaitu metode pengujian yang dilakukan hanya pada representasi sistem yang terlihat tanpa perlu mengetahui bagaimana cara kerja sistem tersebut.

Pada metode black box pengujian dilakukan dengan cara membandingkan hasil eksekusi dengan hasil yang diharapkan. Jika hasil eksekusi sesuai dengan hasil yang diharapkan, maka aplikasi dianggap berhasil. Sebaliknya, jika hasil eksekusi


(53)

tidak sesuai dengan hasil yang diharapkan maka perlu dilakukan perbaikan terhadap aplikasi tersebut.

A.Proses pada Halaman Menu Utama

Hasil pengujian proses pada Halaman Menu Utama dapat dilihat pada Tabel 4.1 berikut.

Tabel 4.1 Rencana Pengujian Sistem

No. Komponen sistem yang diuji Butir uji

1 Halaman utama sistem Mencoba semua menu pada aplikasi

2 Halaman Keterangan Menampilkan istilah yang ada di dalam

aplikasi agar lebih mempermudah

pengguna mengerti istilah yang ada di dalam aplikasi.

3 Halaman about Menampilkan data pembuat skripsi

Tabel 4.2 Hasil Pengujian pada Halaman Utama

No Komponen sistem yang diuji Hasil yang Diharapkan Hasil

Pengujian Keterangan

1 Tampilan

halaman utama saat aplikasi dijalankan Aplikasi menampilkan halaman menu utama yang berisi menu dan gambar biola

Aplikasi menampilkan

halaman menu utama yang berisi menu da gambar biola

Baik

2 Pemilihan menu Pilih Tangga Nada Aplikasi menampilkan tangga nada Aplikasi menampilkan tangga nada Baik

3 Pemilihan

setiap tangga nada Aplikasi menampilkan nada Aplikasi menampilkan nada Baik


(54)

41

Tabel 4.2 Hasil pengujian pada halaman utama (lanjutan)

No Komponen sistem yang diuji Hasil yang Diharapkan Hasil

Pengujian Keterangan

4 Pemilihan setiap nada

Aplikasi

menampilkan suara dan letak jari di fingerboard

Aplikasi

menampilkan suara dan letak jari di fingerboard

Baik

5 Pemilihan Menu Play

Aplikasi

memainkan tangga nada yang dipilih , mengeluarkan suara , dan letak jari di fingerboard

Aplikasi memainkan tangga nada yang dipilih ,

mengeluarkan suara , dan letak jari di fingerboard

Baik

4.2.2. Pengujian Aspek Penggunaan Aplikasi

Pengujian pada tahap ini bertujuan untuk mendapatkan informasi dari pengguna aplikasi mengenai tingkat kesulitan dalam menjalankan aplikasi tersebut. Dari hasil pengujian ini akan diperoleh informasi apakah pengguna memahami aturan permaianan yang telah tersedia serta memahami fungsi-fungsi dari menu yang ada. Metode yang digunakan dalam pengujian aplikasi ini dengan menggunakan metode kuisioner. Pengguna yang digunakan sebagai objek populasi adalah pengguna biasa yang tahu tentang biola dan tidak tahu tentang biola yang berjumlah 10 orang.

Teknik yang digunakan dalam pengambilan sampel adalah accidental sampling, yakni teknik pengambilan sampel yang digunakan dengan cara memilih siapa saja yang ditemui pada saat pengujian dan pengumpulan data yang akan dijadikan sebagai sumber data. Untuk menentukan ukuran sampel digunakan rumus Slovin.

Adapun rumus Slovin ialah sebagai berikut:


(55)

Dimana:

n = ukuran sampel

N = ukuran populasi

e = persen kelonggaran karena kesalahan sampel yang dapat ditolerir atau diinginkan yaitu sebesar 5%

Berdasarkan rumus tersebut,maka jumlah sampel yang akan diambil dalam penelitian ini adalah:

n = 10 responden

Setiap responden memberikan nilai pada setiap sasaran penilaian dengan nilai dalam skala 5 dengan kategori sebagai berikut:

1. Kategori „Sangat Baik‟ dengan bobot nilai 5. 2. Kategori „Baik‟ dengan bobot nilai 4.

3. Kategori „Cukup‟ dengan bobot nilai 3. 4. Kategori „Buruk‟ dengan bobot nilai 2.

5. Kategori “Sangat Buruk‟ dengan bobot nilai 1.

Hasil kuesioner aspek penggunaan aplikasi pembelajaran biola dapat dilihat pada Tabel 4.3 berikut.

Tabel 4.3 Hasil kuesioner aspek penggunaan aplikasi

No. Sasaran Penilaian

Hasil Penilaian Sangat

Baik Baik Cukup Buruk Sangat Buruk

1. Kemudahan

menggunakan aplikasi

5 4 1 - -

2. Kemudahan memahami

fungsi menu-menu yang ada

7 3 - - -

3. Pemahaman gambar

yang ditunjukkan

4 4 2 - -

4. Pemahaman istilah

dalam aplikasi


(56)

43

Dari hasil kuisioner aspek penggunaan aplikasi kemudian dihitung nilai setiap sasaran penilaian dengan menggunakan persamaan (1) maka diperoleh nilai untuk aspek penggunaan aplikasi sebagai berikut :

1. Kemudahan menggunakan aplikasi

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk = (5/10)*5 + (4/10)*4 + (1/10)*3 + (0/10)*2 + (0/10)*1 = 2,5 + 1,9

= 4,4

2. Kemudahan memahami fungsi menu-menu yang ada

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk = (7/10)*5 + (3/10)*4 + (0/10)*3 + (0/10)*2 + (0/10)*1 = 3,5 + 1,2

= 4,7

3. Kesesuaian tingkat kesulitan pada setiap level

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk = (4/10)*5 + (4/10)*4 + (2/10)*3 + (0/10)*2 + (0/10)*1 = 2 + 1,6 + 0,6

= 4,2

4. Pemahaman aturan dan cara bermain

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk = (5/10)*5 + (4/10)*4 + (1/10)*3 + (0/10)*2 + (0/10)*1 = 2,5 + 1,6 + 0,3

= 4,4

Kemudian dihitung nilai total keseluruhan dari aspek penggunaan aplikasi dengan menggunakan persamaan (2) dan diperoleh nilai keseluruhan dari aspek penggunaan aplikasi sebagai berikut:

Stotal = 4,4 + 4,7 + 4, 2 + 4,4 /4 = 4,425

Dari perhitungan nilai keseluruhan pada aspek penggunaan aplikasi pembelajaran biola diperoleh nilai 4.425 maka dapat disimpulkan bahwa hasil penilaian penggunaan aplikasi adalah „Baik‟.


(57)

BAB 5

KESIMPULAN DAN SARAN

Pada bab ini, akan dibahas kesimpulan dan saran yang diperoleh dari penyelesaian permasalahan pembelajaran penempatan jari saat bermain biola dengan menggunakan metode rule based knowledge

5.1. Kesimpulan

Kesimpulannya yaitu:

a. Penempatan jari di fingerboard biola dapat terlihat dengan jelas karena diberi warna sehingga memudahkan pengguna untuk membedakan setiap nada yang dimainkan dan jari yang akan digunakan.

b. Keluarnya suara dari setiap nada yang dimainkan sudah sesuai dengan nada biola yang sebenarnya.

5.2. Saran

Penelitian bisa dikembangkan dengan menggunakan pitch recognation untuk mengenal setiap nada biola yang dimasukkan kemudian menunjukkan letak nada yang dimainkan di fingerboard biola.


(58)

45

DAFTAR PUSTAKA

Ardianto, W., Anggraeni, W., Mukhlason, A. 2012. Pembuatan Sistem Pakar Untuk Pendeteksian Dan Penanganan Dini Pada Penyakit Sapi Berbasis Mobile Android Dengan Kajian Kinerja Teknik Knowledge Representasi. Jurnal Teknik ITS Vol.1, (September, 2012) ISSN: 2301-9271. (online) http://ejurnal.its.ac.id (06 April 2014).

Deitel, PJ, Deitel, HM. 2006. JAVA How to program. Seventh Edition. England. Eckel, B. 2006. Thinking in Java. Fourth Edition. United States

Herfurth, P.2006.A Tune A Day for violin. Boston Music Company: London. Kodijat, Latifah, Marzoeki. 2004. Tangga Nada dan Tri Nada. Djambatan: Jakarta. Kusrini. 2006. Sistem Pakar Teori dan Aplikasi. Andi: Yogyakarta.

Pratama, A.R. 2011. Aplikasi ELearning Pembelajaran Alat Musik Biola. Skripsi. (online) http://library.gunadarma.ac.id/repository/view/19384/aplikasi-elearning-pembelajaran-alat-musik-biola.html/ (06 April 2014).

Rouf, A. 2012. Suzuki Pengujian Perangkat Lunak Dengan Menggunakan Metode WHhite Box dan Black Box. Jurnal, Vol.8, No.1 (online)

http://www.ejournal.himsya.ac.id/index.php/HIMSYATECH/article/view/28 (12 Desember 2013).

Tanuadji, M. 2010. Perancangan dan pembuatan aplikasi untuk mengevaluasi permainan biola monophonic. Skripsi. (online)

http://incuvl.petra.ac.id/catalog/ft_detail.php?knokat=19448 (10 Agustus 2013). Wijaya, D. 2012. Perancangan Aplikasi Pembelajaran Piano Berbasis Animasi 3D

Memanfaatkan Game Logic (Studi Kasus: Lembaga Kursus Piano Must Basf Salatiga). Skripsi. (online)

http://repository.library.uksw.edu/handle/123456789/1081 (06 April 2014). Yayla, F. 2008. Suzuki Violin Teaching Method:Its Theory, Philosophy, And


(59)

LAMPIRAN A: Kode Program

1. KoneksiDatabase.java package violin;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;

public class KoneksiDatabase {

Connection koneksiDatabase = null; public Connection getKoneksiDatabase() { try {

Class.forName("com.mysql.jdbc.Driver");

// System.out.println("Class Driver Ditemukan "); koneksiDatabase =

DriverManager.getConnection("jdbc:mysql://localhost:3306/belajar_biola", "root", "");

// System.out.println("Driver Manager Ditemukan ");

} catch (SQLException ex) {

System.out.println("Driver Manager Tidak Ditemukan " + ex.toString());

} catch (ClassNotFoundException ex) {

System.out.println("Class Driver Tidak Ditemukan : " + ex.toString());

}

return koneksiDatabase; }


(60)

47

1. Violin.java package violin;

import java.awt.*; import java.awt.event.*;

import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.*;

import java.io.File; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList;

import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip;

public class Violin extends JFrame implements ActionListener {

private JComboBox comboKunci;

private JButton buttonMainkanMusik = new JButton("PLAY"); private int x = 315;

private int y = 120; private int x1 ; private int y1 ;

//deklarasi global, agar suara bisa stop dan start Clip clip = null;

JPanel panelKanan = new JPanel() {

@Override

protected void paintComponent(Graphics g) { super.paintComponent(g);

Graphics2D g2 = (Graphics2D) g;

Image gambarBiola =

Toolkit.getDefaultToolkit().getImage("src/gambar/biola.jpg"); g2.drawImage(gambarBiola, 0, 0, this); g2.finalize();

} };


(61)

JPanel panelKiri = new JPanel() {

@Override

public void paintComponents(Graphics g) { super.paintComponents(g);

} };

JPanel panelTengah = new JPanel() { @Override

protected void paintComponent(Graphics g) { super.paintComponent(g);

Graphics2D g2 = (Graphics2D) g;

Image gambarBiola =

Toolkit.getDefaultToolkit().getImage("src/gambar/vio3.jpg"); g2.drawImage(gambarBiola, 1, 0, this); g2.finalize();

} };

ArrayList<String> nada = new ArrayList<String>(); ArrayList<Integer> angka = new ArrayList<Integer>(); ArrayList<Integer> kode_jari = new ArrayList<Integer>(); ArrayList<JButton> buttonNada = new ArrayList<JButton>(); ArrayList<String> stringNada = new ArrayList<String>();

//menghindari error jika menghapus button sementara button belum ada //jika button sudah ada, button dihapus di panelTengah

int status_panel_kiri = 0;

//id kunci yang sudah di split setelah dapat dari database String[] id_kunci = null;

JButton buttonKeterangan, buttonAbout;

public Violin() {

ImageIcon ico = new ImageIcon("src/gambar/biola.jpg"); setIconImage(ico.getImage());

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("Aplikasi Pembelajaran Biola");


(62)

49

setSize(1360, 720); setResizable(false); setVisible(true);

buttonMainkanMusik.setBackground(Color.pink); buttonMainkanMusik.setForeground(Color.black);

buttonMainkanMusik.setFont(new Font("Segoe Script", Font.BOLD,

16));

panelKanan.setLayout(new GridLayout(2, 0)); panelKanan.setBackground(Color.pink);

String[] strKunci = {"--Pilih Tangga Nada--", "A", "B", "C", "D", "E", "F", "G"};

comboKunci = new JComboBox(strKunci); comboKunci.setBackground(Color.pink);

comboKunci.setFont(new Font("Segoe Script", Font.BOLD, 16)); comboKunci.setForeground(Color.black);

comboKunci.addItemListener(new ItemListener() {

public void itemStateChanged(ItemEvent e) {

String nadaDasar = comboKunci.getSelectedItem().toString();

if (e.getStateChange() == 1 &&

comboKunci.getSelectedIndex() != 0) {

bersihkan_panel(panelKanan);

String kumpulanKunci =

ambil_kunci_dari_database(nadaDasar);

tombol_manager(kumpulanKunci); }

} });

buttonKeterangan = new JButton("Keterangan");

buttonKeterangan.setPreferredSize(new Dimension(200, 40)); buttonKeterangan.setBackground(Color.pink);


(63)

buttonKeterangan.setFont(new Font("Segoe Script", Font.BOLD, 16)); buttonKeterangan.addActionListener(this);

buttonAbout = new JButton("About");

buttonAbout.setPreferredSize(new Dimension(200, 40)); buttonAbout.setBackground(Color.pink);

buttonAbout.setFont(new Font("Segoe Script", Font.BOLD, 16)); buttonAbout.addActionListener(this);

panelKiri.setBackground(Color.pink);

ImageIcon gbr3 = new ImageIcon("src/gambar/mozart.jpg"); JLabel LabelGambar3 = new JLabel(gbr3);

panelKiri.add(buttonKeterangan); panelKiri.add(buttonAbout); panelKiri.add(LabelGambar3);

panelTengah.add(comboKunci);

buttonMainkanMusik.addActionListener(this); panelTengah.add(buttonMainkanMusik);

panelTengah.setLayout(new GridLayout(20, 100)); //panelTengah.setBackground(Color.PINK);

GridLayout myLayout = new GridLayout(1, 2); setLayout(myLayout);

add(panelKiri); add(panelTengah); add(panelKanan); }

public void tombol_manager(String nada_dasar) {

//bersihkan button dinamis dari panelTengah if (status_panel_kiri > 0) {

for (int i = 0; i < id_kunci.length; i++) { panelTengah.remove(buttonNada.get(i)); // JOptionPane.showMessageDialog(null, j); }


(64)

51

status_panel_kiri++;

panelTengah.revalidate(); panelTengah.repaint(); buttonNada.clear();

id_kunci = nada_dasar.split("_");

for (int i = 0; i < id_kunci.length; i++) {

ArrayList<String> nadaJariSenar = new ArrayList<String>(); nadaJariSenar.clear();

nadaJariSenar =

ambil_nada_jari_senar_berdasarkan_id_kunci(Integer.parseInt(id_kunci[i]));

String nada = "Nada " + nadaJariSenar.get(0);

String jari = "";

if (nadaJariSenar.get(1).equals("0")) { jari = " Open String";

} else if (nadaJariSenar.get(1).equals("1")) { jari = " Jari Telunjuk";

} else if (nadaJariSenar.get(1).equals("2")) { jari = " Jari Tengah";

} else if (nadaJariSenar.get(1).equals("3")) { jari = " Jari Manis";

}

String senar = " Senar " + nadaJariSenar.get(2);

JButton button = new JButton(nada + jari + senar);// + urutan);

buttonNada.add(button);

button.setBackground(Color.pink); button.setForeground(Color.black);

button.setFont(new Font("Segoe Script", Font.BOLD, 16));

buttonNada.get(i).addActionListener(this); panelTengah.add(buttonNada.get(i));


(65)

}

public static void bersihkan_panel(JPanel f) { f.paint(f.getGraphics());

f.revalidate(); }

public void mainkan_musik(String nadaDasar) {

String kumpulanKunci = ambil_kunci_dari_database(nadaDasar); String[] kunci = kumpulanKunci.split("_");

ArrayList<String> nadaJariSenar = new ArrayList<String>(); nadaJariSenar.clear();

for (int i = 0; i < kunci.length; i++) { String kodeNada = "";

nadaJariSenar =

ambil_nada_jari_senar_berdasarkan_id_kunci(Integer.parseInt(kunci[i])); int kodeJari = Integer.parseInt(nadaJariSenar.get(1));

kodeNada = nadaJariSenar.get(0) + "_" + nadaJariSenar.get(2); int urutan = i + 1;

if (urutan > 7) {

urutan = urutan - 7; }

nada_manager(kodeNada, kodeJari); System.out.println(kodeNada); }

}

public void nada_manager(String nada, int kode_jari) {

// System.out.println("Nada Manager :" + angka + nada + kode_jari);

String soundName = null; String warna = "";


(66)

53

Graphics graphicsPanelKanan = panelKanan.getGraphics(); if (clip != null) {

clip.stop(); }

if (nada.equals("G_G")) {

soundName = "src/suara/G_G.wav"; x = 235;

y = 75; x1 = 235; y1 = 80;

} else if (nada.equals("Ab_G")) { soundName = "src/suara/Ab_G.wav"; x = 235;

y = 120;

} else if (nada.equals("A_G")) { soundName = "src/suara/A_G.wav"; x = 235;

y = 165;

} else if (nada.equals("Bb_G")) { soundName = "src/suara/Bb_G.wav"; x = 235;

y = 210;

} else if (nada.equals("B_G")) { soundName = "src/suara/B_G.wav"; x = 233;

y = 255;

} else if (nada.equals("C_G")) { soundName = "src/suara/C_G.wav"; x = 232;

y = 300;

} else if (nada.equals("C#_G")) { soundName = "src/suara/C#_G.wav"; x = 232;

y = 345;

} else if (nada.equals("D_D")) { soundName = "src/suara/D_D.wav"; x = 253;


(67)

y = 75;

} else if (nada.equals("Eb_D")) { soundName = "src/suara/Eb_D.wav"; x = 253;

y = 120;

} else if (nada.equals("E_D")) { soundName = "src/suara/E_D.wav"; x = 253;

y = 165;

} else if (nada.equals("F_D")) { soundName = "src/suara/F_D.wav"; x = 253;

y = 210;

} else if (nada.equals("F#_D")) { soundName = "src/suara/F#_D.wav"; x = 253;

y = 255;

} else if (nada.equals("G_D")) { soundName = "src/suara/G_D.wav"; x = 253;

y = 300;

} else if (nada.equals("G#_D")) { soundName = "src/suara/G#_D.wav"; x = 253;

y = 345;

} else if (nada.equals("A_A")) { soundName = "src/suara/A_A.wav"; x = 271;

y = 75;

} else if (nada.equals("Bb_A")) { soundName = "src/suara/Bb_A.wav"; x = 271;

y = 120;

} else if (nada.equals("B_A")) { soundName = "src/suara/B_A.wav"; x = 271;

y = 165;

} else if (nada.equals("C_A")) { soundName = "src/suara/C_A.wav";


(68)

55

x = 271; y = 210;

} else if (nada.equals("C#_A")) { soundName = "src/suara/C#_A.wav"; x = 271;

y = 255;

} else if (nada.equals("D_A")) { soundName = "src/suara/D_A.wav"; x = 271;

y = 300;

} else if (nada.equals("D#_A")) { soundName = "src/suara/D#_A.wav"; x = 271;

y = 300;

} else if (nada.equals("E_E")) { soundName = "src/suara/E_E.wav"; x = 288;

y = 75;

} else if (nada.equals("F_E")) { soundName = "src/suara/F_E.wav"; x = 288;

y = 120;

} else if (nada.equals("F#_E")) { soundName = "src/suara/F#_E.wav"; x = 288;

y = 165;

} else if (nada.equals("G_E")) { soundName = "src/suara/G_E.wav"; x = 288;

y = 210;

} else if (nada.equals("G#_E")) { soundName = "src/suara/G#_E.wav"; x = 288;

y = 255;

} else if (nada.equals("A_E")) { soundName = "src/suara/A_E.wav"; x = 288;


(69)

}

//untunk mengatur warna berdasarkan kode jari if (kode_jari == 0) {

graphicsPanelKanan.setColor(Color.BLUE); } else if (kode_jari == 1) {

graphicsPanelKanan.setColor(Color.RED); } else if (kode_jari == 2) {

graphicsPanelKanan.setColor(Color.YELLOW); } else if (kode_jari == 3) {

graphicsPanelKanan.setColor(Color.GREEN); }

//lingkaran jari

graphicsPanelKanan.fillOval(x, y, 25, 25); graphicsPanelKanan.setFont(

new Font("default", Font.BOLD, 30));

//mainkan suara try {

AudioInputStream audioInputStream =

AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile()); clip = AudioSystem.getClip();

clip.open(audioInputStream); clip.start();

} catch (Exception ex) {

System.out.println("ERROR : " + ex.toString()); } finally {

try {

//waktu delay suara Thread.sleep(1500);

} catch (InterruptedException ex) {

Logger.getLogger(Violin.class.getName()).log(Level.SEVERE, null, ex);

} } }


(70)

57

String kunci = "";

KoneksiDatabase koneksiDatabase = new KoneksiDatabase();

java.sql.Connection koneksiTabelKunci =

koneksiDatabase.getKoneksiDatabase();

try {

String sql = "SELECT * FROM tabel_kunci WHERE nada_dasar = '" + nada + "'";

Statement statement = koneksiTabelKunci.createStatement(); ResultSet resultSet = statement.executeQuery(sql);

while (resultSet.next()) {

kunci = resultSet.getString("id_nada").toString(); }

resultSet.close(); statement.close(); } catch (SQLException ex) {

System.out.println("Statement Tampil Nada Error : " +

ex.toString()); }

System.out.println("Kunci dari database : " + kunci); return kunci;

}

public ArrayList ambil_nada_jari_senar_berdasarkan_id_kunci(int

id_nada) {

String nada = null, jari = null, senar = null;

ArrayList<String> nadaJariSenar = new ArrayList<String>();

KoneksiDatabase koneksiDatabase = new KoneksiDatabase();

java.sql.Connection koneksiTabelKunci =

koneksiDatabase.getKoneksiDatabase();

try {

String sql = "SELECT * FROM tabel_nada WHERE id_nada= '" + id_nada + "'";

Statement statement = koneksiTabelKunci.createStatement(); ResultSet resultSet = statement.executeQuery(sql);


(1)

x = 271; y = 210;

} else if (nada.equals("C#_A")) { soundName = "src/suara/C#_A.wav"; x = 271;

y = 255;

} else if (nada.equals("D_A")) { soundName = "src/suara/D_A.wav"; x = 271;

y = 300;

} else if (nada.equals("D#_A")) { soundName = "src/suara/D#_A.wav"; x = 271;

y = 300;

} else if (nada.equals("E_E")) { soundName = "src/suara/E_E.wav"; x = 288;

y = 75;

} else if (nada.equals("F_E")) { soundName = "src/suara/F_E.wav"; x = 288;

y = 120;

} else if (nada.equals("F#_E")) { soundName = "src/suara/F#_E.wav"; x = 288;

y = 165;

} else if (nada.equals("G_E")) { soundName = "src/suara/G_E.wav"; x = 288;

y = 210;

} else if (nada.equals("G#_E")) { soundName = "src/suara/G#_E.wav"; x = 288;

y = 255;

} else if (nada.equals("A_E")) { soundName = "src/suara/A_E.wav"; x = 288;


(2)

}

//untunk mengatur warna berdasarkan kode jari if (kode_jari == 0) {

graphicsPanelKanan.setColor(Color.BLUE); } else if (kode_jari == 1) {

graphicsPanelKanan.setColor(Color.RED); } else if (kode_jari == 2) {

graphicsPanelKanan.setColor(Color.YELLOW); } else if (kode_jari == 3) {

graphicsPanelKanan.setColor(Color.GREEN); }

//lingkaran jari

graphicsPanelKanan.fillOval(x, y, 25, 25); graphicsPanelKanan.setFont(

new Font("default", Font.BOLD, 30));

//mainkan suara try {

AudioInputStream audioInputStream =

AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile()); clip = AudioSystem.getClip();

clip.open(audioInputStream); clip.start();

} catch (Exception ex) {

System.out.println("ERROR : " + ex.toString()); } finally {

try {

//waktu delay suara Thread.sleep(1500);

} catch (InterruptedException ex) {

Logger.getLogger(Violin.class.getName()).log(Level.SEVERE, null, ex);

} } }


(3)

String kunci = "";

KoneksiDatabase koneksiDatabase = new KoneksiDatabase();

java.sql.Connection koneksiTabelKunci =

koneksiDatabase.getKoneksiDatabase();

try {

String sql = "SELECT * FROM tabel_kunci WHERE nada_dasar = '" + nada + "'";

Statement statement = koneksiTabelKunci.createStatement(); ResultSet resultSet = statement.executeQuery(sql);

while (resultSet.next()) {

kunci = resultSet.getString("id_nada").toString(); }

resultSet.close(); statement.close(); } catch (SQLException ex) {

System.out.println("Statement Tampil Nada Error : " + ex.toString());

}

System.out.println("Kunci dari database : " + kunci); return kunci;

}

public ArrayList ambil_nada_jari_senar_berdasarkan_id_kunci(int id_nada) {

String nada = null, jari = null, senar = null;

ArrayList<String> nadaJariSenar = new ArrayList<String>();

KoneksiDatabase koneksiDatabase = new KoneksiDatabase();

java.sql.Connection koneksiTabelKunci =

koneksiDatabase.getKoneksiDatabase();

try {

String sql = "SELECT * FROM tabel_nada WHERE id_nada= '" + id_nada + "'";

Statement statement = koneksiTabelKunci.createStatement(); ResultSet resultSet = statement.executeQuery(sql);


(4)

if (resultSet.next()) {

nada = resultSet.getString("nada").toString(); jari = String.valueOf(resultSet.getInt("jari")); senar = resultSet.getString("senar").toString(); }

nadaJariSenar.add(nada); nadaJariSenar.add(jari); nadaJariSenar.add(senar);

resultSet.close(); statement.close(); } catch (SQLException ex) {

System.out.println("Statement Tampil Nada Error : " + ex.toString());

}

return nadaJariSenar; }

@Override

public void actionPerformed(ActionEvent event) {

if (event.getSource() == buttonKeterangan) { new violin2();

} else if (event.getSource() == buttonAbout) { new violin3();

} else if (event.getSource() == buttonMainkanMusik) {

if (comboKunci.getSelectedIndex() != 0) {

bersihkan_panel(panelKanan);

mainkan_musik(comboKunci.getSelectedItem().toString()); }

} else {

for (int i = 0; i < buttonNada.size(); i++) { if (event.getSource() == buttonNada.get(i)) { bersihkan_panel(panelKanan);

String teks = buttonNada.get(i).getText().toString(); String[] nadaJariSenar = teks.split(" ");


(5)

String nada = nadaJariSenar[1].trim(); int jari = 0;

if

(nadaJariSenar[3].toLowerCase().trim().equals("string")) { jari = 0;

} else if

(nadaJariSenar[3].toLowerCase().trim().equals("telunjuk")) { jari = 1;

} else if

(nadaJariSenar[3].toLowerCase().trim().equals("tengah")) { jari = 2;

} else if

(nadaJariSenar[3].toLowerCase().trim().equals("manis")) { jari = 3;

}

String senar = nadaJariSenar[5].trim();

System.out.println(nadaJariSenar[1]); System.out.println(nadaJariSenar[3]); System.out.println(nadaJariSenar[5]);

nada_manager(nada + "_" + senar, jari); }

} } }

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() { new Violin(); }

}); } }


(6)

LAMPIRAN B: Kuesioner

KUESIONER PENILAIAN PENGGUNA APLIKASI PEMBELAJARAN

BIOLA BAGI PEMULA

Aspek Penggunaan Aplikasi

1. Kemudahan menggunakan aplikasi

2. Kemudahan memahami fungsi menu-menu yang ada

3. Pemahaman gambar yang ditunjukkan

4. Pemahaman istilah dalam aplikasi

No

Nama

Ttd

Aspek Penggunaan

Aplikasi

1

2

3

4

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.