BAB III ANALISA DAN DESAIN APLIKASI
4.2 Assembly
Berdasarkan desain yang telah dibuat pada bab III, langkah-langkah pembuatan
aplikasi dan proses simulasi adalah sebagai berikut:
1) Menentukan struktur permainan masing-masing instrumen gamelan
Secara keseluruhan, struktur permainan tiap instrumen gamelan dalam 1
Gambar 4.2 Struktur permainan instrumen gamelan
Keterangan:
bb : bonang barung p : peking bp : bonang penerus kn : kenong
d : demung kp : kempul
s : saron g : gong
Warna biru muda berisi titik-titik merupakan notasi gendhing lancaran. Warna
kuning dengan teks bb merupakan pola permainan bonang barung, warna oranye
dengan teks bp merupakan pola permainan bonang penerus. Pola permainan demung,
saron digambarkan dengan warna merah jambu dan biru, bertuliskan d dan s. Untuk
peking, pola permainannya digambarkan dengan warna biru terang bertuliskan huruf
abu-abu tua dengan teks kp menggambarkan pola permainan kempul, warna abu-abu-abu-abu
menggambarkan pola permainan gong.
Notasi permainan bonang barung dan bonang penerus mengikuti nada angka
terakhir dalam 1 gatra (4 nada). Untuk balungan (demung, saron, peking), notasi
dimainkan sama dengan notasi masukan dari pengguna. Khusus untuk teknik
permainan peking, per notasi dimainkan 2 kali. Notasi untuk kenong diambil dari
nada angka terakhir dalam 1 gatra. Untuk kempul, kecuali gatra pertama dalam 16
notasi, nada kempul diambil dari nada kedua dalam tiap gatra. Gong dimainkan tanpa
harus membuat notasi tersendiri.
Pola permainan tiap instrumen bila diimplementasikan dengan notasi, dalam hal
ini memakai contoh notasi lancaran Suwe Ora Jamu, dapat dilihat pada gambar 4.2
Gambar 4.3 Struktur permainan instrumen gamelan dengan notasi
2) Mempersiapkan sound yang digunakan untuk simulasi
Suara yang telah diperoleh dari perekaman gamelan, dimodifikasi menggunakan
perangkat lunak Cool Edit Pro 2.0, sehingga diperoleh perbandingan panjang sound
seperti terlihat dalam gambar 4.3 berikut:
Untuk lancaran dengan pola permainan balungan nibani, perbandingan panjang
sound masing-masing instrumen gamelan dalam 1 gatra dapat dilihat pada gambar 4.3
berikut: Bonang Barung Bonang Penerus Demung Saron Peking Kenong Kempul Gong
Gambar 4.4 Perbandingan panjang sound instrumen gamelan untuk lancaran
Keterangan:
• Bagian berwarna kuning merupakan panjang dari suara (sound) bonang barung. Panjang dari suara bonang barung adalah 0,810 detik. Suara
disimpan dengan nama ”bb_.mp3”. Tanda underscore ( _ ) diganti
dengan salah satu nada antara 1 hingga y7.
• Bagian berwarna oranye merupakan suara dari bonang penerus. Panjang dari suara bonang penerus adalah 0,418 detik. Suara disimpan dengan
nama ”bp_e.mp3”. Tanda underscore ( _ ) diganti dengan salah satu
nada antara 1 hingga y7.
• Bagian berwarna biru tua merupakan panjang dari suara demung. Panjang dari suara demung adalah 0,810 detik. Suara disimpan dengan
nama ”dn_.mp3”. Tanda underscore ( _ ) diganti dengan salah satu nada
antara 1 hingga y7.
• Bagian berwarna biru telur merupakan panjang dari suara saron. Panjang dari suara saron adalah 0,810 detik. Suara disimpan dengan
nama ”sn_.mp3”. Tanda underscore ( _ ) diganti dengan salah satu nada
antara 1 hingga y7.
• Bagian berwarna biru terang merupakan panjang dari suara peking. Panjang dari suara peking adalah 0,810 detik. Suara disimpan dengan
nama ”pn_.mp3”. Tanda underscore ( _ ) diganti dengan salah satu nada
• Bagian berwarna ungu merupakan panjang dari suara kenong. Panjang dari suara kenong adalah 0,810 detik. Suara disimpan dengan
nama ”kn_.mp3”. Tanda underscore ( _ ) diganti dengan salah satu nada
antara 1 hingga y7.
• Bagian berwarna abu-abu tua merupakan panjang dari suara kempul. Panjang dari suara kempul adalah 0,810 detik. Suara disimpan dengan
nama ”kp_.mp3”. Tanda underscore ( _ ) diganti dengan salah satu nada
antara 1 hingga y7.
• Bagian berwarna abu-abu merupakan panjang dari suara gong. Panjang dari suara gong adalah 1,620 detik.
Selain suara tersebut di atas, terdapat beberapa tambahan suara, yaitu suara
diam (sil), panjang dari sil adalah 0,810 detik dan 0,418 detik, dan juga suara
balungan mlaku. Suara balungan mlaku (dalam hal ini demung dan saron) berdurasi
separuh dari durasi suara balungan nibani. Penamaan file untuk demung mlaku
adalah ”dm_.mp3”, sedangkan penamaan file untuk saron mlaku adalah ”sm_.mp3”.
Tanda underscore ( _ ) diganti dengan salah satu nada antara 1 hingga y7.
3) Memproses notasi masukan
Notasi untuk simulasi diperoleh dari masukan nada oleh pengguna. Nada yang
array 2 dimensi, dibagi per gatra. Dari array ini akan dibuat lagi array notasi untuk
masing-masing instrumen gamelan, kecuali gong.
Ilustrasi untuk masukan notasi adalah sebagai berikut:
Notasi masukan dari user diandaikan sebagai berikut:
. 3 . 5 . 6 . 5 . 4 . 2 . 1 . 6
Notasi tersebut akan dimasukkan ke dalam array 2 dimensi, per 4 nada (gatra),
seperti terlihat pada gambar 4.5 berikut:
0 1 2 3
0 . 3 . 5 gatra 1
1 . 6 . 5 gatra 2
2 . 4 . 2 gatra 3
3 . 1 . 6 gatra 4
Gambar 4.5 Ilustrasi array 2 dimensi untuk menyimpan notasi
Dari array 2 dimensi tersebut, dibuat array notasi 1 dimensi untuk tiap-tiap
instrumen gamelan, yaitu sebagai berikut:
Array notasi untuk bonang barung dan bonang penerus dapat dilihat pada
gambar 4.6 berikut:
0 1 2 3 4 5 6 7
0 5 5 5 5 2 2 6 6
Array notasi untuk demung, saron, dan peking dapat dilihat pada gambar 4.7
berikut:
0 1 2 3 4 5 6 7
0 3 5 6 5 4 2 1 6
Gambar 4.7 Ilustrasi array 1 dimensi untuk menyimpan notasi demung, saron,
dan peking
Array notasi untuk kenong dapat dilihat pada gambar 4.8 berikut:
0 1 2 3 4 5 6 7
0 diam 5 diam 5 diam 2 diam 6
Gambar 4.8 Ilustrasi array 1 dimensi untuk menyimpan notasi kenong
Array notasi untuk kempul dapat dilihat pada gambar 4.9 berikut:
0 1 2 3 4 5 6 7
0 diam diam 6 diam 4 diam 1 diam
Gambar 4.9 Ilustrasi array 1 dimensi untuk menyimpan notasi kempul
Bonang barung dan bonang penerus mengambil nada terakhir dari gatra, dalam
hal ini mengambil nada array[x][3]. Perintah yang digunakan untuk mengambil nada
Demung, saron, dan peking mengambil nada sama dengan notasi angka. Notasi
titik dianggap perpanjangan nada. Logika yang digunakan untuk pembuatan notasi
demung, saron dan peking adalah sebagai berikut:
• Aplikasi akan membaca notasi masukan,
• Jika notasi masukan yang dibaca sekarang (notasi[x][y]) adalah titik (.), aplikasi akan membaca 1 notasi di depan notasi yang dibaca sekarang
(1]). Jika 1] merupakan angka, maka
notasi[x][y-1] akan diperpanjang. Diperpanjang di sini dalam arti memanggil file
suara balungan nibani. Jika notasi[x][y-1] merupakan titik, array
balungan akan ditambah dengan suara diam (sil).
private function createArrayBonangBarung(in_gatra:Array):String { var kolom:Number = 3;
var cektrue:Boolean = true;
cektrue = createArrayBonangBarungHelper(kolom, in_gatra[kolom]); while (cektrue) { if (kolom>0) { kolom = kolom-1; cektrue = createArrayBonangBarungHelper(kolom, in_gatra[kolom]); } else { return "."; } }
trace("notasi akhir barung: "+in_gatra[kolom]); return in_gatra[kolom];
}
/*--- function untuk mengecek notasi berupa titik ato angka ---*/ private function createArrayBonangBarungHelper(in_kolom:Number,
in_notasi:String):Boolean { if (in_notasi == ".") { return true; } else { return false; } }
• Jika notasi sekarang (notasi[x][y]) merupakan angka, aplikasi akan membaca 1 notasi di belakang notasi yang dibaca sekarang
(notasi[x][y+1]). Jika notasi[x][y+1] merupakan angka, maka array
balungan akan ditambah dengan suara balungan mlaku. Jika
notasi[x][y+1] merupakan titik (.), array balungan akan diisi dengan
suara balungan nibani dengan nada notasi[x][y].
Implementasi logika tersebut adalah sebagai berikut:
/*--kalo notasi sekarang adalah titik--*/
if (inputnotasi[iterasi_baris][iterasi_kolom] == ".") { /*--lihat kolom sebelumnya, kalo kolom sebelumnya = "."--*/ if (inputnotasi[lihatbaris][lihatkolom] == ".") {
saronQueue_array.push(sil_saron); saronQueue_arrayString.push(" "); } else {
/*--klo kolom sebelumnya bukan titik--*/ continue;
} //end if kolom sebelumnya adalah "." } else {
/*--kalo notasi sekarang adalah angka--*/
/*--lihat kolom sesudahnya, kalo kolom sesudahnya = titik--* if (inputnotasi[lihatbaris][lihatkolom] == ".") {
if (inputnotasi[iterasi_baris][iterasi_kolom] == "1") {
/*-- kalo notasi sekarang adalah 1, buat notasi 1 balungan nibani --*/ saronQueue_array.push(sn1); demungQueue_array.push(dn1); pekingQueue_array.push(pn1); saronQueue_arrayString.push("1"); demungQueue_arrayString.push("1"); pekingQueue_arrayString.push("1"); } else if (inputnotasi[iterasi_baris][iterasi_kolom] == "2") { } ...
Kenong mengambil nada terakhir dari gatra (array[x][3]), dan kempul
mengambil nada kedua dari tiap gatra, dimulai dari gatra kedua tiap 1 putaran 16
hitungan (array[x][1]).
Perintah untuk membentuk array notasi kenong sama dengan perintah untuk
membentuk array notasi bonang, karena baik kenong maupun bonang memakai nada
terakhir dari gatra. Untuk pembentukan notasi kempul, perintah yang digunakan
adalah sebagai berikut:
} else {
//klo kolom sesudahnya adalah angka
if (inputnotasi[iterasi_baris][iterasi_kolom] == "1") {
/*-- kalo notasi sekarang adalah 1, buat notasi 1 balungan mlaku --*/ saronQueue_array.push(sm1); demungQueue_array.push(dm1); pekingQueue_array.push(p1); saronQueue_arrayString.push("1"); demungQueue_arrayString.push("1"); pekingQueue_arrayString.push("1"); } else if (inputnotasi[iterasi_baris][iterasi_kolom] == "2") { /*-- kalo notasi sekarang adalah 2, buat notasi 2 balungan mlaku --*/
saronQueue_array.push(sm2); demungQueue_array.push(dm2);
//dan seterusnya hingga notasi adalah 7
4) Memainkan array notasi
Struktur data yang digunakan untuk proses memainkan notasi ini menggunakan
struktur data antrian. Program akan memainkan suara satu per satu sesuai dengan
urutan array notasi. Suara yang dimainkan dipanggil dari luar program (external
sound).
Perintah yang digunakan adalah (contoh script program – memainkan array
suara saron):
private function createArrayKempul(in_gatra1:Array,
in_gatra2:Array):String { var kolom:Number = 1;
var baris:Number = 1;
var cektrue:Boolean = true;
cektrue = createArrayBonangBarungHelper(kolom,
in_gatra1[kolom]); while (cektrue) {
if (baris == 1) {
//baris sekarang = baris ke-1, baris sblom sekarang = baris ke-0 if (kolom>0) { kolom = kolom-1; cektrue = createArrayBonangBarungHelper(kolom, in_gatra1[kolom]); } else { kolom = 3; baris = 0; } } else { if (kolom>=2) { cektrue = createArrayBonangBarungHelper(kolom, in_gatra2[kolom]); kolom--; } else { return "."; } } } return in_gatra1[kolom]; }
Perintah:
digunakan untuk memanggil suara dari luar program. Suara ditempatkan dalam
folder ”saron”. Suara yang dimainkan adalah suara saron index ke-x.
Setelah sebuah suara selesai dimainkan, program akan mengecek suara
berikutnya dalam array. Jika dalam array masih ada suara yang harus dimainkan,
program akan memainkan suara tersebut.
Suara masing-masing instrumen disimpan dalam folder-folder. Suara instrumen
bonang barung ditempatkan dalam folder ”barung”, suara instrumen bonang penerus
ditempatkan dalam folder ”penerus”, suara instrumen demung ditempatkan dalam
folder ”demung”, suara instrumen saron ditempatkan dalam folder ”saron”, suara
instrumen peking ditempatkan dalam folder ”peking”, suara instrumen kenong
ditempatkan dalam folder ”kenong”, suara instrumen kempul ditempatkan dalam
folder ”kempul”, dan suara instrumen gong ditempatkan dalam folder ”gong”.
my_sound.onSoundComplete = function() { my_sound.loadSound("saron/" + arraynotasisaronString[arraynotasisaronString.currentIndex] + ".mp3", true); }; my_sound.loadSound("saron/" + arraynotasisaronString[arraynotasisaronString.currentIndex] + ".mp3", true); my_sound.loadSound("saron/" + arraynotasisaronString[arraynotasisaronString.currentIndex] + ".mp3", true);
Alur arsitektur aplikasi terlihat pada gambar 4.10 berikut:
Gambar 4.10 Alur arsitektur aplikasi simulasi
Aplikasi dijalankan dari home.exe. Bila pengguna memilih untuk melakukan
simulasi gendhing, alur yang terjadi adalah home akan memanggil file
CreateNotasiJogja.as, kemudian dari CreateNotasiJogja, suara untuk tiap-tiap
instrumen dipanggil untuk dimainkan kembali di CreateNotasiJogja. Bila pengguna
memilih untuk melakukan demo gendhing, home akan memanggil file
DemoGendhingJogja.as. Dari sini akan dipanggil CreateNotasiJogja.as, kemudian
dilakukan pemanggilan suara masing-masing instrumen berdasarkan notasi gendhing