Siapa sih yang tidak kenal gitar? Dari yang muda sampai tua, dari desa hingga kota hampir setiap saat kita menemukan orang bermain gitar. Masalanya kadang mereka tidak tau apakah nada gitarnya sudah pas sedangkan harga efek atau tuner gitar relative mahal.

Guitar Tuner Android
Tidak ada salahnya kita sebagai orang IT, membantu mereka membuatkan aplikasi sederhana untuk mencocokkan nada-nada gitar mereka secara standar.
Aplikasi ini dilengkapi 6 button masingmasing mewakili 1 senar, dan sebuah button untuk keluar. Jika button "Senar A" di klik, maka android mengeluarkan bunyi senar gitar nada A. Kira-kira seperti itulah idenya.
Untuk project ini, silakan mendownload dari internet bunyi string gitar (www.omayib.com/downloads).
Mari, sekarang kita lihat code aplikasinya
Bikin project baru
Bikin folder baru /res/raw. Paste file suara string gitar didalam folder ini, lihat gambar

Gambar 21.1. Isi folder /res/raw
3. Siapkan dulu data string di Strings.xml
1: <?xml version="1.0" encoding="utf-8"?>
2: <resources>
3: <string name="hello">Pilih salah satu string</string>
4: <string name="app_name">Guitar Tuner </string>
5: <color name="bg">#ffffff</color>
6: <color name="textColor">#ff0000</color>
7: <color name="textColor2">#000000</color>
8: <string name="e1">Senar E</string>
9: <string name="a">Senar A</string>
10: <string name="d">Senar D</string>
11: <string name="g">Senar G</string>
12: <string name="b">Senar B</string>
13: <string name="e2">Senar E</string>
14: <string name="keluarBtn">Keluar</string>
15: <string name="Deskripsi_Gambar">Guitar Image</string>
16: </resources>
4. Sekarang kita bikin layoutnya di Main.xml
1: <?xml version="1.0" encoding="utf-8"?>
2: <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
3: android:id="@+id/scrollView1"
4: android:layout_width="fill_parent"
5: android:layout_height="fill_parent" >
6:
7: <LinearLayout
8: android:layout_width="fill_parent"
9: android:layout_height="wrap_content"
10: android:background="@color/bg"
11: android:orientation="vertical" >
12:
13: <TextView
14: android:layout_width="fill_parent"
15: android:layout_height="wrap_content"
16: android:fitsSystemWindows="true"
17: android:focusable="true"
18: android:focusableInTouchMode="true"
19: android:gravity="top"
20: android:text="@string/hello"
21: android:textColor="@color/textColor2" />
22:
23: <ImageView
24: android:id="@+id/imageView1"
25: android:layout_width="wrap_content"
26: android:layout_height="wrap_content"
27: android:layout_gravity="center_horizontal"
28: android:contentDescription="@string/Deskripsi_Gb"
29: android:scaleType="center"
30: android:src="@drawable/gitar" />
31:
32: <Button
33: android:id="@+id/stringE1"
34: android:layout_width="fill_parent"
35: android:layout_height="wrap_content"
36: android:text="@string/e1" >
37: </Button>
38:
39: <Button
40: android:id="@+id/stringA"
41: android:layout_width="fill_parent"
42: android:layout_height="wrap_content"
43: android:text="@string/a" >
44: </Button>
45:
46: <Button
47: android:id="@+id/stringD"
48: android:layout_width="fill_parent"
49: android:layout_height="wrap_content"
50: android:text="@string/d" >
51: </Button>
52:
53: <Button
54: android:id="@+id/stringG"
55: android:layout_width="fill_parent"
56: android:layout_height="wrap_content"
57: android:text="@string/g" >
58: </Button>
59:
60: <Button
61: android:id="@+id/stringB"
62: android:layout_width="fill_parent"
63: android:layout_height="wrap_content"
64: android:text="@string/b" >
65: </Button>
66:
67: <Button
68: android:id="@+id/stringE"
69: android:layout_width="fill_parent"
70: android:layout_height="wrap_content"
71: android:text="@string/e2" >
72: </Button>
73:
74: <TextView
75: android:id="@+id/keterangan"
76: android:layout_width="fill_parent"
77: android:layout_height="wrap_content"
78: android:layout_gravity="center_horizontal"
79: android:text=""
80: android:textColor="@color/textColor"
81: android:textStyle="bold" >
82: </TextView>
83:
84: <Button
85: android:id="@+id/keluar"
86: android:layout_width="wrap_content"
87: android:layout_height="wrap_content"
88: android:layout_gravity="right"
89: android:text="@string/keluarBtn" >
90: </Button>
91:
92: </LinearLayout>
93:
94: </ScrollView>
5. Berikut adalah activity tunerGitar.java
1: package code.tunerGitar;
2:
3: import android.app.Activity;
4: import android.media.MediaPlayer;
5: import android.os.Bundle;
6: import android.view.View;
7: import android.view.View.OnClickListener;
8: import android.widget.Button;
9: import android.widget.TextView;
10: import android.widget.Toast;
11:
12: public class tunerGitar extends Activity {
13:
14: private static final String isPlaying = "Kamu
15: mendengarkan ";
16: private MediaPlayer player;
17: private Button EButton;
18: private Button BButton;
19: private Button GButton;
20: private Button DButton;
21: private Button AButton;
22: private Button E2Button;
23: private Button keluar;
24: TextView keterangan;
25:
26: /** Called when the activity is first created. */
27: @Override
28: public void onCreate(Bundle savedInstanceState) {
29: super.onCreate(savedInstanceState);
30: setContentView(R.layout.main);
31: EButton = (Button) this.findViewById(R.id.stringE);
32: EButton.setOnClickListener(new OnClickListener() {
33: @Override
34: public void onClick(View arg0) {
35: playSound(1);
36: }
37: });
38: BButton = (Button) this.findViewById(R.id.stringB);
39: BButton.setOnClickListener(new OnClickListener() {
40: @Override
41: public void onClick(View arg0) {
42: playSound(2);
43: }
44: });
45: GButton = (Button) this.findViewById(R.id.stringG);
46: GButton.setOnClickListener(new OnClickListener() {
47: @Override
48: public void onClick(View arg0) {
49: playSound(3);
50: }
51: });
52: DButton = (Button) this.findViewById(R.id.stringD);
53: DButton.setOnClickListener(new OnClickListener() {
54: @Override
55: public void onClick(View arg0) {
56: playSound(4);
57: }
58: });
59: AButton = (Button) this.findViewById(R.id.stringA);
60: AButton.setOnClickListener(new OnClickListener() {
61: @Override
62: public void onClick(View arg0) {
63: playSound(5);
64: }
65: });
66: E2Button = (Button)this.findViewById(R.id.stringE1);
67: E2Button.setOnClickListener(new OnClickListener() {
68: @Override
69: public void onClick(View arg0) {
70: playSound(6);
71: }
72: });
73: keluar = (Button) this.findViewById(R.id.keluar);
74: keluar.setOnClickListener(new OnClickListener() {
75: @Override
76: public void onClick(View arg0) {
77: tunerGitar.this.finish();
78: }
79: });
80: keterangan = (TextView)
81: this.findViewById(R.id.keterangan);
82: }
83:
84: @Override
85: public void onPause() {
86: try {
87: super.onPause();
88: player.pause();
89: } catch (Exception e) {
90: }
91: }
92:
93: public void onStop() {
94: super.onStop();
95: player.stop();
96: }
97:
98: private void playSound(int arg) {
99: try {
100: if (player.isPlaying()) {
101: player.stop();
102: player.release();
103: }
104: } catch (Exception e) {
105: Toast.makeText(this, e.toString(),
106: Toast.LENGTH_SHORT).show();
107: }
108: if (arg == 1) {
109: player = MediaPlayer.create(this, R.raw.e3);
110: keterangan.setText(isPlaying + "String E");
111: } else if (arg == 2) {
112: player = MediaPlayer.create(this, R.raw.b2);
113: keterangan.setText(isPlaying + "String B");
114: } else if (arg == 3) {
115: player = MediaPlayer.create(this, R.raw.g2);
116: keterangan.setText(isPlaying + "String G");
117: } else if (arg == 4) {
118: player = MediaPlayer.create(this, R.raw.d2);
119: keterangan.setText(isPlaying + "String D");
120: } else if (arg == 5) {
121: player = MediaPlayer.create(this, R.raw.a1);
122: keterangan.setText(isPlaying + "String A");
123: } else if (arg == 6) {
124: player = MediaPlayer.create(this, R.raw.e1);
125: keterangan.setText(isPlaying + "String E");
126: }
127: player.setLooping(true);
128: player.start();
129: }
130: }
Selamat bermain gitar !!!!
Sumber
omayib.com