Thursday, May 10, 2012

Membuat Aplikasi Bangun Datar Di Android

      Pada tutorial ini, kita akan belajar membuat menu untuk menhitung luas bangun datar, tugas kita sekarang adalah membuat form-form (Jika diandroid lebih dikenal dengan activity) untuk menghitung luas persegi panjang, luas segitiga dan luas lingkaran.

Form Menghitung Luas Persegi Panjang
  1. Pada folder layout, buat file baru dengan nama persegipanjang.xml
ketikkan kode berikut
01<?xml version="1.0" encoding="utf-8"?>
02<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03    android:orientation="vertical"
04    android:layout_width="fill_parent"
05    android:layout_height="fill_parent"
06    >
07 
08<TextView
09    android:layout_width="fill_parent"
10    android:layout_height="wrap_content"
11    android:text="Menghitung Luas Persegi Panjang"
12    />
13<TextView android:text="Panjang :" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
14<EditText android:text="" android:id="@+id/txtPanjang" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
15<TextView android:text="Lebar :" android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
16<EditText android:text="" android:id="@+id/txtLebar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
17<Button android:text="Hitung Luas" android:id="@+id/btnHitung" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="hitungLuas"></Button>
18<TextView android:text="Luas :" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView>
19<EditText android:text="" android:id="@+id/txtLuas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"></EditText>
20<Button android:text="Kembali ke Menu" android:id="@+id/btnBack" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="backtoMenu"></Button>
21</LinearLayout>
  1. Pada package com.ardhian buat file baru dengan nama HitungPersegiPanjang.java
Ketikkan kode berikut
01package com.ardhian;
02 
03/**
04 * Class HitungPersegiPanjang
05 * @version 1.0 may 03, 2012
06 * @author Ardhian Pratama (ardhiansatya@gmail.com)
07 * @website http://ardhiansatya.blogspot.com
08 */
09 
10import android.app.Activity;
11import android.os.Bundle;
12import android.view.View;
13import android.widget.Button;
14import android.widget.EditText;
15 
16public class HitungPersegiPanjang extends Activity {
17    private EditText txtPanjang;
18    private EditText txtLebar;
19    private EditText txtLuas;
20    private Button btnHitung;
21 
22    /**
23     * Method yang dipanggil pada saat applikaasi dijalankan
24     * */
25    @Override
26    public void onCreate(Bundle savedInstanceState) {
27 
28        super.onCreate(savedInstanceState);
29        setContentView(R.layout.persegipanjang);
30        txtPanjang = (EditText) findViewById(R.id.txtPanjang);
31        txtLebar = (EditText) findViewById(R.id.txtLebar);
32        txtLuas = (EditText) findViewById(R.id.txtLuas);
33        btnHitung = (Button) findViewById(R.id.btnHitung);
34 
35    }
36 
37    /**
38     * Method untuk Menghitung Luas Persegi panjang dipanggil pada saat button
39     * Hitung Luas diklik
40     *
41     * @param view
42     */
43    public void hitungLuas(View view) {
44        try {
45 
46            int panjang = Integer.parseInt(txtPanjang.getText().toString());
47            int lebar = Integer.parseInt(txtLebar.getText().toString());
48            int luas = panjang * lebar;
49            txtLuas.setText(String.valueOf(luas));
50            finish();
51        } catch (Exception e) {
52            e.printStackTrace();
53        }
54    }
55 
56    /**
57     * Method untuk menutup activity dan kembali ke menu
58     * @param view
59     */
60    public void backtoMenu(View view){
61        finish();
62    }
63}
Form Menghitung Luas Segitiga
  1. pada folder layout, buat file baru dengan nama segitiga.xml
ketikkan kode berikut
01<?xml version="1.0" encoding="utf-8"?>
02<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03    android:orientation="vertical"
04    android:layout_width="fill_parent"
05    android:layout_height="fill_parent"
06    >
07 
08<TextView
09    android:layout_width="fill_parent"
10    android:layout_height="wrap_content"
11    android:text="Menghitung Luas Segitiga"
12    />
13<TextView android:text="Alas :" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
14<EditText android:text="" android:id="@+id/txtAlas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
15<TextView android:text="Tinggi :" android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
16<EditText android:text="" android:id="@+id/txtTinggi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
17<Button android:text="Hitung Luas" android:id="@+id/btnHitung" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="hitungLuas"></Button>
18<TextView android:text="Luas :" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView>
19<EditText android:text="" android:id="@+id/txtLuas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"></EditText>
20<Button android:text="Kembali ke Menu" android:id="@+id/btnBack" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="backtoMenu"></Button>
21</LinearLayout>
  1. Pada package com.ardhian buat file baru dengan nama HitungSegitiga.java
Ketikkan kode berikut
01package com.ardhian;
02 
03/**
04 * Class HitungSegitiga
05 * @version 1.0 may 03, 2012
06 * @author Ardhian Pratama (Ardhiansatya@gmail.com)
07 * @website http://Ardhiansatya.blogspot.com
08 */
09 
10import android.app.Activity;
11import android.os.Bundle;
12import android.view.View;
13import android.widget.Button;
14import android.widget.EditText;
15 
16public class HitungSegitiga extends Activity {
17    private EditText txtAlas;
18    private EditText txtTinggi;
19    private EditText txtLuas;
20    private Button btnHitung;
21 
22    /**
23     * Method yang dipanggil pada saat applikaasi dijalankan
24     * */
25    @Override
26    public void onCreate(Bundle savedInstanceState) {
27 
28        super.onCreate(savedInstanceState);
29        setContentView(R.layout.segitiga);
30        txtAlas = (EditText) findViewById(R.id.txtAlas);
31        txtTinggi = (EditText) findViewById(R.id.txtTinggi);
32        txtLuas = (EditText) findViewById(R.id.txtLuas);
33        btnHitung = (Button) findViewById(R.id.btnHitung);
34 
35    }
36 
37    /**
38     * Method untuk Menghitung Luas Segitiga dipanggil pada saat button
39     * Hitung Luas diklik
40     *
41     * @param view
42     */
43    public void hitungLuas(View view) {
44        try {
45 
46            int alas = Integer.parseInt(txtAlas.getText().toString());
47            int tinggi = Integer.parseInt(txtTinggi.getText().toString());
48            int luas = (alas * tinggi) / 2;
49            txtLuas.setText(String.valueOf(luas));
50        } catch (Exception e) {
51            e.printStackTrace();
52        }
53    }
54 
55    /**
56     * Method untuk menutup activity dan kembali ke menu
57     * @param view
58     */
59    public void backtoMenu(View view){
60        finish();
61    }
62}
Form Menghitung Luas Lingkaran
  1. pada folder layout, buat file baru dengan nama lingkaran.xml
ketikkan kode berikut
01<?xml version="1.0" encoding="utf-8"?>
02<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03    android:orientation="vertical"
04    android:layout_width="fill_parent"
05    android:layout_height="fill_parent"
06    >
07 
08<TextView
09    android:layout_width="fill_parent"
10    android:layout_height="wrap_content"
11    android:text="Menghitung Luas Lingkaran"
12    />
13<TextView android:text="Jari-jari :" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
14<EditText android:text="" android:id="@+id/txtJari" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
15<Button android:text="Hitung Luas" android:id="@+id/btnHitung" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="hitungLuas"></Button>
16<TextView android:text="Luas :" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView>
17<EditText android:text="" android:id="@+id/txtLuas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"></EditText>
18<Button android:text="Kembali ke Menu" android:id="@+id/btnBack" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="backtoMenu"></Button>
19</LinearLayout>
  1. Pada package com.ardhian buat file baru dengan nama Lingkaran.java
Ketikkan kode berikut
01package com.ardhian;
02 
03/**
04 * Class HitungLingkaran
05 * @version 1.0 May 03, 2012
06 * @author Ardhian Pratama (Ardhiansatya@gmail.com)
07 * @website http://ardhiansatya.blogspot.com
08 */
09 
10import android.app.Activity;
11import android.os.Bundle;
12import android.view.View;
13import android.widget.Button;
14import android.widget.EditText;
15 
16public class HitungLingkaran extends Activity {
17    private EditText txtJari;
18    private EditText txtLuas;
19    private Button btnHitung;
20 
21    /**
22     * Method yang dipanggil pada saat applikaasi dijalankan
23     * */
24    @Override
25    public void onCreate(Bundle savedInstanceState) {
26 
27        super.onCreate(savedInstanceState);
28        setContentView(R.layout.lingkaran);
29        txtJari = (EditText) findViewById(R.id.txtJari);
30        txtLuas = (EditText) findViewById(R.id.txtLuas);
31        btnHitung = (Button) findViewById(R.id.btnHitung);
32 
33    }
34 
35    /**
36     * Method untuk Menghitung Luas Lingkaran dipanggil pada saat button
37     * Hitung Luas diklik
38     *
39     * @param view
40     */
41    public void hitungLuas(View view) {
42        try {
43 
44            int jarijari = Integer.parseInt(txtJari.getText().toString());
45            double phi = 3.14;
46            double luas =  phi * jarijari * jarijari;
47            txtLuas.setText(String.valueOf(luas));
48        } catch (Exception e) {
49            e.printStackTrace();
50        }
51    }
52 
53    /**
54     * Method untuk menutup activity dan kembali ke menu
55     * @param view
56     */
57    public void backtoMenu(View view){
58        finish();
59    }
60}
     Setelah tiga activity diatas selesai dibuat jangan lupa untuk mendaftarkannya pada file AndroidManifest.xml
01<?xml version="1.0" encoding="utf-8"?>
02<manifest xmlns:android="http://schemas.android.com/apk/res/android"
03      package="com.ardhian"
04      android:versionCode="1"
05      android:versionName="1.0">
06    <application android:icon="@drawable/icon" android:label="@string/app_name">
07        <activity android:name=".MenuBangunDatar"
08                  android:label="@string/app_name">
09            <intent-filter>
10                <action android:name="android.intent.action.MAIN" />
11                <category android:name="android.intent.category.LAUNCHER" />
12            </intent-filter>
13        </activity>
14 
15        <activity android:name="HitungPersegiPanjang" android:label="Persegi Panjang">
16        </activity>
17         <activity android:name="HitungSegitiga" android:label="Segitiga">
18        </activity>
19         <activity android:name="HitungLingkaran" android:label="Lingkaran">
20        </activity>
21 
22    </application>
23    <uses-sdk android:minSdkVersion="8" />
24</manifest>
Setelah semua file selesai dibuat, maka dalam project kita structur foldernya menjadi

Sekarang tugas kita adalah membuat menu bangun datar yang telah kita buat dapat memanggil ketiga form tersebut sesuai dengan menu yang dipilih.
Buka file MenuBangunDatar.java.
Rubah kode yang ada menjadi seperti ini
01package com.ardhian;
02 
03import android.app.AlertDialog;
04import android.app.ListActivity;
05import android.content.Intent;
06import android.os.Bundle;
07import android.util.Log;
08import android.view.View;
09import android.widget.ArrayAdapter;
10import android.widget.ListView;
11import android.widget.Toast;
12 
13public class MenuBangunDatar extends ListActivity {
14 
15    /**
16     * Called when the activity is first created. Method ini akan dipanggil pada
17     * saat aplikasi dijalankan
18     */
19    public void onCreate(Bundle icicle) {
20        super.onCreate(icicle);
21 
22        // Create an array of Strings, that will be put to our ListActivity
23        String[] bangundatar = new String[] { "Persegi Panjang", "Segitiga",
24                "Lingkaran", "Exit" };
25        // Create an ArrayAdapter, that will actually make the Strings above
26        // appear in the ListView
27        // Menset nilai array ke dalam list adapater sehingga data pada array
28        // akan dimunculkan dalam list
29        this.setListAdapter(new ArrayAdapter<String>(this,
30                android.R.layout.simple_list_item_1, bangundatar));
31    }
32 
33    @Override
34    /**method ini akan mengoveride method onListItemClick yang ada pada class List Activity
35     * method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih
36     */
37    protected void onListItemClick(ListView l, View v, int position, long id) {
38        super.onListItemClick(l, v, position, id);
39        // Get the item that was clicked
40        // Menangkap nilai text yang dklik
41        Object o = this.getListAdapter().getItem(position);
42        String pilihan = o.toString();
43        // Menampilkan hasil pilihan menu dalam bentuk Toast
44        tampilkanPilihan(pilihan);
45    }
46 
47    /**
48     * Tampilkan Activity sesuai dengan menu yang dipilih
49     *
50     */
51    protected void tampilkanPilihan(String pilihan) {
52        try {
53            //Intent digunakan untuk sebagai pengenal suatu activity
54            Intent i = null;
55            if (pilihan.equals("Persegi Panjang")) {
56                i = new Intent(this, HitungPersegiPanjang.class);
57            } else if (pilihan.equals("Segitiga")) {
58                i = new Intent(this, HitungSegitiga.class);
59            } else if (pilihan.equals("Lingkaran")) {
60                i = new Intent(this, HitungLingkaran.class);
61            } else if (pilihan.equals("Exit")) {
62                finish();
63            } else {
64                Toast.makeText(this,"Anda Memilih: " + pilihan + " , Actionnya belum dibuat", Toast.LENGTH_LONG).show();
65            }
66            startActivity(i);
67        } catch (Exception e) {
68            e.printStackTrace();
69        }
70    }
71}
Perhatikan kode
String[] bangundatar = new String[] { “Persegi Panjang”, “Segitiga”,”Lingkaran”, “Exit” };
Saya menambahkan “Exit” yang akan digunakan untuk keluar dari Aplikasi
Perhatikan method tampilkanPilihan()
01protected void tampilkanPilihan(String pilihan) {
02        try {
03            //Intent digunakan untuk sebagai pengenal suatu activity
04            Intent i = null;
05            if (pilihan.equals("Persegi Panjang")) {
06                i = new Intent(this, HitungPersegiPanjang.class);
07            } else if (pilihan.equals("Segitiga")) {
08                i = new Intent(this, HitungSegitiga.class);
09            } else if (pilihan.equals("Lingkaran")) {
10                i = new Intent(this, HitungLingkaran.class);
11            } else if (pilihan.equals("Exit")) {
12                finish();
13            } else {
14                Toast.makeText(this,"Anda Memilih: " + pilihan + " , Actionnya belum dibuat", Toast.LENGTH_LONG).show();
15            }
16            startActivity(i);
17        } catch (Exception e) {
18            e.printStackTrace();
19        }
20    }
method inilah yang digunakan untuk memanggil dan menampilkan activity yang dipilih
1Intent i = null;
2if (pilihan.equals("Persegi Panjang")) {
3i = new Intent(this, HitungPersegiPanjang.class);
4}
    Intent digunakan untuk memanggil activity lain. Tanpa Intent kita tidak bisa berpindah activity.
Akhirnya selesai juga untuk pembuatan kode aplikasinya, sekarang mari kita run aplikasi ini.
Hasil yang seharusnya didapat adalah

       Pilih Persegi Panjang, akan muncul form Persegi Panjang

    Tekan tombol kembali ke Menu, maka akan kembali ke Menu, pada Menu Pilih Segitiga, maka kan tampil Form Segitiga

      Tekan tombol kembali ke Menu, maka akan kembali ke Menu, pada Menu Pilih Lingkaran, maka akan tampil Form Lingkaran
      Tekan tombol kembali ke Menu, maka akan kembali ke Menu, pada Menu Pilih Exit, maka akan keluar dari aplikasi.

No comments:

Post a Comment