Pada pertemuan ini penulis mencoba untuk melakukan pembahasan terhadap tahap yang
diperlukan untuk membangun aplikasi Kord
Gitar untuk semua kalangan. berbasis android, dimana tahap tersebut akan
dijelaskan pada subbab yang terpisah secara umum. Dimulai dari gambaran umum,
rancangan awal tampilan aplikasi, rancangan alur program, penjelasan program,
cara menggunakan aplikasi, dan pengimplementasiannya.
3.1
Struktur Navigasi
Struktur navigasi berfungsi untuk menceritakan struktur atau alur
cerita dari suatu program. Struktur navigasi yang digunakan untuk membuat
aplikasi edukatif ini yaitu struktur navigasi Hirarki. Berikut gambar dari struktur navigasinya :
Gambar 3.1 Struktur Navigasi
3.2
Bagan
Alir (Flowchart)
Flowchart ini merupakan langkah awal pembuatan program.
Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada
penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai
disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program
dengan bahasa pemrograman.
|
Gambar
3.2 Flowchart Kord Gitar
|
Gambar 3.2
Lanjutan
3.3
Rancangan
Input/Output
Aplikasi Kord Gitar adalah sebuah aplikasi yang
dibuat dengan dasar pemrograman Java untuk sistem operasi Android. Untuk itu
pertama-tama harus dibuat terlebih dahulu rancangan interface tampilan awal untuk aplikasi ini yang terdiri dari
perancangan tampilan layar menu, tampilan
layar kunci dasar, tampilan layar kunci balok dan tampilan layar petunjuk. Kemudian melakukan pembuatan kode program dengan menggunakan software
Eclipse Galileo. Setelah proses
pembuatan kode program
selesai selanjutnya
dilakukan proses kompilasi program dengan menggunakan
emulator
pada Android SDK.
3.3.1
Layar
Menu
Layar Menu merupakan tampilan awal sebelum
masuk dalam layar kord gitar. Pada layar Menu
ini terdapat beberapa struktur navigasi yang dimaksudkan untuk mempermudah
pemain mengakses aplikasi ini. Struktur navigasi tersebut diwakili oleh empat
tombol aktif yaitu tombol Kunci Dasar, Kunci Balok, Petunjuk, dan Keluar.
Gambar 3.3 Tampilan Layar Menu
3.3.2 Layar Kunci Dasar
Layar Kunci Dasar merupakan tampilan untuk memasukkan
kunci-kunci dasar pada gitar. Pengguna
dapat memilih nada major atau minor yang akan di tampilkan pada output. Tombol
Kembali dipilih untuk kembali ke
layar Menu.
Gambar 3.4 Tampilan Layar Kunci Dasar
3.3.3 Layar Kunci Balok
Sama halnya pada kunci dasar, Layar Kunci Balok merupakan tampilan untuk memasukkan
kunci-kunci balok/gantung pada gitar.
Gambar 3.5 Tampilan Layar Kunci Balok
3.3.4 Layar Petunjuk
Layar Petunjuk
merupakan sebuah informasi dan petunjuk untuk penggunaan aplikasi Kord Gitar.
Gambar 3.6 Tampilan Layar Petunjuk
3.4
Pembuatan
Android Project
Untuk membuat aplikasi
kord gitar ini, pertama penulis membuka eclipse terlebih dahulu. Dengan cara
klik kanan pada mouse, lalu pilih windows explorer, pilih local disk system,
pilih eclipse, dan klik icon eclipse tersebut.
Gambar 3.7
Tampilan Windows Exlpore
Kemudian
mengisi nama project, memilih target platform versi android yang
diinginkan (pada pembuatan project ini
penulis menggunakan android versi 2.2 agar dapat digunakan pada versi lainnya),
mengisi nama aplikasi, package, activity, dan versi SDK.
Gambar 3.8 Tampilan New Android Project
3.5 Penggalan Program
Untuk pembuatan kode
program disini menggunakan bahasa pemrograman java dengan bantuan aplikasi Eclipse Galileo versi Eclipse IDE untuk Java Developer, dengan langkah-langkah
sebagai berikut:
3.5.1
Pembuatan
Splash Screen
Splash screen merupakan tampilan awal
aplikasi sebelum masuk pada layar menu, dengan kode program sebagai berikut:
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gitaricon"
android:layout_gravity="center"
android:layout_marginBottom="90px"
/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Loading ..."
android:layout_marginBottom="10px"
android:layout_gravity="center"
>
android:id="@+id/progg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
/>
Pada script "vertical"
menandakan layout yang akan kita buat dengan
posisi vertical. Lalu pada "@drawable/gitaricon"
kita akan menampilkan gambar yang akan
muncul pada Interface Please Wait. Untuk menampilkan gambar tersebut
simpan gambar tersebut pada folder drawable yang terdapat pada folder res.
Sedangkan android:layout_gravity="center"
berfungsi untuk mengatur letak gambar
agar berada pada posisi tengah pada layar. Selanjutnya kita akan membuat tulisan
pada interface Please Wait dengan mengetikkan script "Loading
…". maka akan muncul tulisan “Loading -” pada interface. Lalu untuk membuat sebuah
gambar progress bar berikut ini scriptnya style="android:attr/progressBarStyleHorizontal".
Setelah penulisan kode selesai maka akan muncul
tampilan seperti ini :
Gambar 3.9
Tampilan Splash Screen
Setelah selesai Pembuatan Layout Splash Screen, langkah
selanjutnya adalah pembuatan kode program Splash Screen.
public class gitar extends
Activity{
private static int progress = 0;
private int status = 0;
ProgressBar progressBar;
Handler handler = new Handler();
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progressBar = (ProgressBar)
findViewById(R.id.progg);
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while(status < 100){
status = loading();
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated
method stub
progressBar.setProgress(status);
}
});
}
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method
stub
Intent inten = new Intent(gitar.this,
Menu.class);
gitar.this.startActivity(inten);
gitar.this.finish();
Pada penggalan script
terakhir public void run di sini kita
membuat sebuah inten baru, dimana setelah splash screen ini. Otomatis akan
membuka class java baru, sedangkan
splash screen sendiri otomatis akan berakhir.
3.5.2
Pembuatan
Menu
Selanjutnya pembuatan layar menu, dengan
kode program sebagai berikut:
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:padding="60dip"
android:orientation="horizontal"
android:background="@drawable/slash"
android:gravity="center_vertical">
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="center">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MENU"
android:layout_marginBottom="10px"
android:layout_gravity="center"
>
android:id="@+id/button_dasar"
android:src="@drawable/mulai"
android:layout_gravity="center"
android:layout_width="165px"
android:layout_height="55px">
android:id="@+id/button_balok"
android:src="@drawable/mulaii"
android:layout_gravity="center"
android:layout_width="165px"
android:layout_height="55px">
android:id="@+id/button_petunjuk"
android:src="@drawable/petunjuk"
android:layout_gravity="center"
android:layout_width="165px"
android:layout_height="55px">
android:id="@+id/button_keluar"
android:src="@drawable/exit"
android:layout_gravity="center"
android:layout_width="165px"
android:layout_height="55px">
Pada script kita memberikan variabel button_dasar
pada widget button ini. Lalu script android:src="@drawable/mulai”
untuk memanggil gambar dengan nama “mulai” pada button, sama halnya dengan
button yang lain. Setelah selesai maka akan muncul tampilan seperti ini:
Gambar 3.10
Tampilan Menu
Pada menu.java ini kita mencoba untuk
menjalankan interface yang telah kita buat pada main.xml, dengan mengetikkan
script berikut ini:
package com.dhindhin;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import
android.view.View.OnClickListener;
public class Menu extends Activity
implements OnClickListener {
/**
Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
// Set up click listeners for all the buttons
View dasarButton =
findViewById(R.id.button_dasar);
dasarButton.setOnClickListener(this);
View balokButton = findViewById(R.id.button_balok);
balokButton.setOnClickListener(this);
View petunjukButton =
findViewById(R.id.button_petunjuk);
petunjukButton.setOnClickListener(this);
View keluarButton =
findViewById(R.id.button_keluar);
keluarButton.setOnClickListener(this);
}
Pada menu.java ini kita
menggunakan interface main.xml setContentView(R.layout.main); lalu kita
deklarasikan widget – widget yang telah kita buat di file xml yakni, dasarButton
akan mendeklarasikan variabel button_dasar pada file xml. Begitu juga dengan
balokButton, petunjukButton dan keluarButton akan mendeklarasikan variabel
button_balok, button_petunjuk dan button_keluar pada file xml.
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_dasar:
Intent
dasar = new Intent(this, dasar.class);
startActivity(dasar);
break;
case R.id.button_balok:
Intent balok = new Intent(this,
balok.class);
startActivity(balok);
break;
case R.id.button_petunjuk:
Intent tentang = new Intent(this,
tentang.class);
startActivity(tentang);
break;
case R.id.button_keluar:
finish();
break;
}
}
}
Disini penulis
menggunakan kendali proses dengan menggunakan statement switch yang berfungsi
sebagai pilihan. Disini penulis membuat empat buah pilihan yakni dasar, balok,
petunjuk dan keluar. Jika kita memilih dasar maka kita akan masuk ke kelas java
baru dengan nama dasar.class. Sedangkan jika kita memilih balok maka kita akan
masuk ke kelas java baru yakni balok.class. Jika kita memilih keluar maka kita
akan keluar dari aplikasi ini.
3.5.3
Pembuatan
Kunci Dasar
Kode
program pembuatan kunci dasar sebagai berikut:
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/slash"
xmlns:android="http://schemas.android.com/apk/res/android"
>
android:id="@+id/txtinput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
>
android:id="@+id/widget36"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="1px"
android:layout_y="50px"
>
android:id="@+id/radio_mayor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Major"
>
android:id="@+id/radio_minor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Minor"
>
android:id="@+id/button_konversi"
android:layout_width="75px"
android:layout_height="70px"
android:text="Klik"
android:layout_x="30px"
android:layout_y="215px"
>
android:id="@+id/btnKembali"
android:text="Kembali"
android:layout_gravity="center_horizontal"
android:layout_width="75px"
android:layout_height="70px"
android:onClick="BackMainMenu"
android:layout_x="140px"
android:layout_y="215px"
>
Pada widget EditText di
atas berfungsi untuk menginput data yang dimasukkan oleh pengguna. EditText
tersebut kita beri variabel dengan nama
txtinput. Pada Interface ini kita membuat dua buah RadioButton dengan
nama Major dan Minor. Dan dengan nama variabel radio_mayor dan radio_minor.
Fungsi dari RadioGroup
untuk mengelompokkan kedua RadioButton yang sudah dibuat kedalam satu kelompok.
Artinya kita hanya memilih salah satu dari kedua RadioButton. Sedangkan
RadioButton yang lain akan false. Pada RadioGroup terdapat script
android:orientation="vertical" yang berfungsi untuk mengatur letak
RadioButton secara vertical. Maka kedua RadioButton akan berderet dari atas ke
bawah. Sedangkan script android:layout_x="1px" dan
android:layout_y="50px" untuk mengatur posisi kedua RadioButton pada
layout secara horizontal dengan nilai x=1 dan vertical dengan nilai y=50
Sedangkan
pada Button terdapat script android:layout_width="75px"
android:layout_height="70px" untuk mengatur ukuran Button, seperti di
bawah ini:
Gambar 3.11
Tampilan Kunci Dasar
Setelah selesai pembuatan Layout Kunci
Dasar, langkah selanjutnya adalah pembuatan kode programnya, pembuatan kode
program ini dibuat agar tampilan layout Kunci Dasar yang telah dibuat
dapat dijalankan dengan source code sebagai berikut:
package com.dhindhin;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import
android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.Toast;
public class dasar extends Activity
implements OnClickListener{
private EditText txtinput;
RadioButton radio_mayor;
RadioButton radio_minor;
Button button_konversi;
Button btnKembali;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dasar);
txtinput = (EditText)
findViewById(R.id.txtinput);
radio_mayor =
(RadioButton)this.findViewById(R.id.radio_mayor);
radio_mayor.setChecked(true);
radio_minor =
(RadioButton)this.findViewById(R.id.radio_minor);
button_konversi =
(Button)this.findViewById(R.id.button_konversi);
button_konversi.setOnClickListener(this);
}
public void onClick(View v) {
if
(radio_mayor.isChecked()) {
mayor();
}
if
(radio_minor.isChecked()) {
minor();
}
}
Disini penulis
menggunakan sebuah gambar. Lalu penulis juga membuat dua buah radio button dengan
nama Major dan Minor. Major kita buat secara default bernilai true pada saat
aplikasi ini dijalankan sedangkan radio button yang lain akan false.
protected
void mayor() {
try {
String kunci =
txtinput.getText().toString();
if (kunci.equals("A")){
Toast toastGambar = new Toast(this);
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.amajor);
toastGambar.setView(iv);
toastGambar.show();}
else
if (kunci.equals("C")){
Toast
toastGambar = new Toast(this);
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.cmajor);
toastGambar.setView(iv);
toastGambar.show();}
. . .
. .
else
{
Toast.makeText(getBaseContext(),
"andak salah menginput", Toast.LENGTH_SHORT).show(); }
}catch (Exception e) {
e.printStackTrace();}}
Penulis akan membuat
variable baru dengan nama kunci bertipe string. Nilai variabel kunci di dapat
dari txtkunci. Kemudian penulis menggunakan statement if-else untuk percabangan
untuk mengecek variabel kunci.
3.5.4
Pembuatan
Kunci Balok
Kode program pada
pembuatan kunci balok sama dengan pembuatan kunci dasar yang membedakan hanya
pada tampilan kunci gitarnya saja, dengan kode program sebagai berikut:
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/slash"
xmlns:android="http://schemas.android.com/apk/res/android"
>
android:id="@+id/txtinput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
>
android:id="@+id/widget36"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="1px"
android:layout_y="50px"
>
android:id="@+id/radio_mayor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Major"
>
android:id="@+id/radio_minor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Minor"
>
android:id="@+id/button_konversi"
android:layout_width="75px"
android:layout_height="70px"
android:text="Klik"
android:layout_x="30px"
android:layout_y="215px"
>
android:id="@+id/btnKembali"
android:text="Kembali"
android:layout_gravity="center_horizontal"
android:layout_width="75px"
android:layout_height="70px"
android:onClick="BackMainMenu"
android:layout_x="140px"
android:layout_y="215px"
>
Pada widget EditText di
atas berfungsi untuk menginput data yang dimasukkan oleh pengguna. EditText
tersebut kita beri variabel dengan nama
txtinput. Pada Interface ini kita membuat dua buah RadioButton dengan
nama Major dan Minor. Dan dengan nama variabel radio_mayor dan radio_minor.
Fungsi dari RadioGroup
untuk mengelompokkan kedua RadioButton yang sudah dibuat kedalam satu kelompok.
Artinya kita hanya memilih salah satu dari kedua RadioButton. Sedangkan
RadioButton yang lain akan false. Pada RadioGroup terdapat script
android:orientation="vertical" yang berfungsi untuk mengatur letak RadioButton
secara vertical. Maka kedua RadioButton akan berderet dari atas ke bawah.
Sedangkan script android:layout_x="1px" dan
android:layout_y="50px" untuk mengatur posisi kedua RadioButton pada
layout secara horizontal dengan nilai x=1 dan vertical dengan nilai y=50
Sedangkan
pada Button terdapat script android:layout_width="75px" android: layout_height=
"70px" untuk mengatur ukuran Button. Setelah selesai maka akan tampil
layout seperti ini:
Gambar 3.12
Tampilan Kunci Balok
Selanjutnya membuat kode program java
untuk memroses inputan, dengan kode
program sebagai berikut:
package com.dhindhin;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import
android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.Toast;
public class balok extends Activity
implements OnClickListener{
private EditText txtinput;
RadioButton radio_mayor;
RadioButton radio_minor;
Button button_konversi;
Button btnKembali;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.balok);
txtinput = (EditText)
findViewById(R.id.txtinput);
radio_mayor =
(RadioButton)this.findViewById(R.id.radio_mayor);
radio_mayor.setChecked(true);
radio_minor = (RadioButton)this.findViewById(R.id.radio_minor);
button_konversi =
(Button)this.findViewById(R.id.button_konversi);
button_konversi.setOnClickListener(this); }
public void onClick(View v) {
if
(radio_mayor.isChecked()) {
mayor();
}
if
(radio_minor.isChecked()) {
minor();
} }
Disini penulis
menggunakan sebuah gambar. Lalu penulis juga membuat dua buah radio button dengan
nama Major dan Minor. Major kita buat secara default bernilai true pada saat
aplikasi ini dijalankan sedangkan radio button yang lain akan false.
protected void mayor() {
try {
String kunci =
txtinput.getText().toString();
if
(kunci.equals("A")){
Toast toastGambar = new Toast(this);
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.a);
toastGambar.setView(iv);
toastGambar.show();}
else
if (kunci.equals("B")){
Toast
toastGambar = new Toast(this);
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.b);
toastGambar.setView(iv);
toastGambar.show();}
else
if (kunci.equals("C")){
Toast
toastGambar = new Toast(this);
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.c);
toastGambar.setView(iv);
toastGambar.show();}
. . . .
else
{
Toast.makeText(getBaseContext(), "andak
salah menginput", Toast.LENGTH_SHORT).show();
}
}catch (Exception e) {
e.printStackTrace(); }
}
Penulis akan membuat
variable baru dengan nama kunci bertipe string. Nilai variabel kunci di dapat
dari txtkunci. Kemudian penulis menggunakan statement if-else untuk percabangan
untuk mengecek variabel kunci.
3.5.5
Pembuatan
Petunjuk
Agar memudahkan
pengguna dalam menggunakan aplikasi ini, maka di buat menu petunjuk pada layar
menu yang berisikan petunjuk dan informasi pada aplikasi ini. Dengan kode
program sebagai berikut:
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/cara"
>
Setelah mengetikkan kode program
tersebut maka akan muncul layar sebagai berikut:
Gambar 3.13
Tampilan Petunjuk
Setelah membuat
tampilan layout petunjuk, maka langkah selanjutnya adalah membuat tombol
kembali pada program java dengan kode program sebagai berikut:
package com.dhindhin;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class tentang extends
Activity {
private
Button btnKembali;
@Override
public
void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.tentang);
btnKembali
= (Button) findViewById(R.id.btnKembali);
}
public void BackMainMenu(View view){
finish();
}
}
3.6 Uji Coba Aplikasi
Setelah proses
pembuatan aplikasi selesai, langkah terakhir yang harus dilakukan adalah uji
coba aplikasi pada komputer. Sebelum melakukan uji coba, penulis memastikan
terlebih dahulu apakah program tersebut terdapat kesalahan atau tidak. Jika
semua coding sudah benar, maka siap untuk dilakukan uji coba.
Pilih
package ChordGitar yang ada pada workspace, kemudian klik kanan, pilih run as, Android Application.
Gambar 3.14 Tampilan menu Run As Application
Setelah proses kompilasi program
berhasil maka akan muncul emulator untuk menampilkan aplikasi yang telah
dibuat.
Gambar
3.15 Tampilan Menu Emulator
3.7 Implementasi Aplikasi
Setelah proses
kompilasi berhasil dan aplikasi dapat berjalan pada emulator Android,
yang dilakukan selanjutnya adalah mengimplementasikan aplikasi ini pada ponsel yang
memiliki sistem operasi android dengan versi Android 2.2 (Froyo). Langkah
pertama adalah instal software
APKInstaller pada komputer, lalu hubungkan ponsel android dengan komputer.
Kemudian salin ke dalam ponsel file Kord
Gitar.apk yang terdapat pada folder bin di dalam folder aplikasi yang terletak pada workspace
Eclipse di komputer.
Gambar 3.16 File Kord Gitar.apk
Setelah disalin, proses selanjutnya adalah pilih tombol Install pada
jendela APKInstaller yang muncul.
Gambar 3.17 Proses
Instalasi Aplikasi ke Ponsel Android
Kemudian tunggu sampai proses instalasi selesai dan
aplikasi Kord Gitar telah dapat digunakan pada ponsel
android.
Gambar
3.19 Aplikasi Kord Gitar Pada Ponsel Android
3 komentar:
keren mas tapi kok manifest.xml nya tidak dijelasin sekalian mbox jangan nanggung kalau memberi tutorial biar pembaca tidak bingungg...
coz share source code-nya mbox-an biar kami bisa belajar
gan file xml kok tidak jelas ma'af ya mohon koreksi... masih pemula ki.. jadi bingung jika agan tidak memberi penjelasan yang rinci...
for pemula bangets
keren mas.. Ada source code untuk aplikasi lirik lagu yang di input dari file txt nggak mas ?
Posting Komentar