• Tidak ada hasil yang ditemukan

Aplikasi Pembelajaran Biola Bagi Pemula

N/A
N/A
Protected

Academic year: 2019

Membagikan "Aplikasi Pembelajaran Biola Bagi Pemula"

Copied!
15
0
0

Teks penuh

(1)

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;

}

(2)

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();

(3)

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());

(4)

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");

(5)

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); }

(6)

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));

(7)

}

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 = "";

(8)

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;

(9)
(10)

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;

(11)

}

//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);

} } }

(12)

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 + "'";

(13)

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);

(14)

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(); }

(15)

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.

Referensi

Dokumen terkait

Pada sistem yang diusulkan, akan membuatkan 3 level user pada aplikasi ini, yaitu Pemilik hewan yang diberikan hak akses untuk memasuki modul pelayanan hewan dan

Berdasar pada hasil penilitian mengenai Indeks Kepuasan Masyarakat (IKM) yang telah dilakukan di lapangan dengan menggunakan 14 unsur/ indikator yang didasarkan pada

Peserta didik melakukan pengamatan dengan cara membaca dan menyimak tentang materi pemasaran online melalui berbagai sumber belajar (modul

Hal ini sesuai dengan dimensi-dimensi perilaku konsumtif, antara lain Fitriana, 2015; 1 Pemenuhan keinginan, 2 Barang iluar jangkauan, 3 Barang menjadi tidak produktif, 4 Status,

Begitu juga dengan hasil penelitian sebelumnya yang juga melakukan klasifikasi pada data yang sama, optimisasi parameter SVM yang sistematis menggunakan

siswa dengan kegunaan air bagi mahluk hidup. Guru menyampaikan tujuan pembelajaran dan pokok materi yang akan dipelajari. Guru membagikan siswa ke dalam beberapa kelompok

Puji dan syukur penulis panjatkan kehadiran Allah SWT, berkat rahmat dan karunia-Nya penulis dapat menyelesaikan skripsi dengan judul “Hubungan Faktor Budaya dan Tingkat

Untuk ukuran partikel titik hujan yang sama dengan nilai permitivitas air absolut 1,33, didapat bahwa semakin besar frekuensi yang digunakan, semakin besar pula.