Membuat Aplikasi Bangun Datar di Android

Pada tutorial yang lalu, kita telah belajar membuat menu untuk menhitung luas bangun datar, tugas kita sekarang adalah membuat form-form (Kalau 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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Menghitung Luas Persegi Panjang"
    />
<TextView android:text="Panjang :" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/txtPanjang" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
<TextView android:text="Lebar :" android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/txtLebar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
<Button android:text="Hitung Luas" android:id="@+id/btnHitung" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="hitungLuas"></Button>
<TextView android:text="Luas :" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView>
<EditText android:text="" android:id="@+id/txtLuas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"></EditText>
<Button android:text="Kembali ke Menu" android:id="@+id/btnBack" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="backtoMenu"></Button>
</LinearLayout>
  1. Pada package com.agus buat file baru dengan nama HitungPersegiPanjang.java

Ketikkan kode berikut

package com.agus;

/**
 * Class HitungPersegiPanjang
 * @version 1.0 Oct 03, 2010
 * @author Agus Haryanto (agus.superwriter@gmail.com)
 * @website http://agusharyanto.net
 */

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class HitungPersegiPanjang extends Activity {
	private EditText txtPanjang;
	private EditText txtLebar;
	private EditText txtLuas;
	private Button btnHitung;

	/**
	 * Method yang dipanggil pada saat applikaasi dijalankan
	 * */
	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.persegipanjang);
		txtPanjang = (EditText) findViewById(R.id.txtPanjang);
		txtLebar = (EditText) findViewById(R.id.txtLebar);
		txtLuas = (EditText) findViewById(R.id.txtLuas);
		btnHitung = (Button) findViewById(R.id.btnHitung);

	}

	/**
	 * Method untuk Menghitung Luas Persegi panjang dipanggil pada saat button
	 * Hitung Luas diklik
	 *
	 * @param view
	 */
	public void hitungLuas(View view) {
		try {

			int panjang = Integer.parseInt(txtPanjang.getText().toString());
			int lebar = Integer.parseInt(txtLebar.getText().toString());
			int luas = panjang * lebar;
			txtLuas.setText(String.valueOf(luas));

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Method untuk menutup activity dan kembali ke menu
	 * @param view
	 */
	public void backtoMenu(View view){
		finish();
	}
}

Form Menghitung Luas Segitiga

  1. pada folder layout, buat file baru dengan nama segitiga.xml

ketikkan kode berikut

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Menghitung Luas Segitiga"
    />
<TextView android:text="Alas :" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/txtAlas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
<TextView android:text="Tinggi :" android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/txtTinggi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
<Button android:text="Hitung Luas" android:id="@+id/btnHitung" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="hitungLuas"></Button>
<TextView android:text="Luas :" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView>
<EditText android:text="" android:id="@+id/txtLuas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"></EditText>
<Button android:text="Kembali ke Menu" android:id="@+id/btnBack" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="backtoMenu"></Button>
</LinearLayout>
  1. Pada package com.agus buat file baru dengan nama HitungSegitiga.java

Ketikkan kode berikut

package com.agus;

/**
 * Class HitungSegitiga
 * @version 1.0 Oct 03, 2010
 * @author Agus Haryanto (agus.superwriter@gmail.com)
 * @website http://agusharyanto.net
 */

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class HitungSegitiga extends Activity {
	private EditText txtAlas;
	private EditText txtTinggi;
	private EditText txtLuas;
	private Button btnHitung;

	/**
	 * Method yang dipanggil pada saat applikaasi dijalankan
	 * */
	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.segitiga);
		txtAlas = (EditText) findViewById(R.id.txtAlas);
		txtTinggi = (EditText) findViewById(R.id.txtTinggi);
		txtLuas = (EditText) findViewById(R.id.txtLuas);
		btnHitung = (Button) findViewById(R.id.btnHitung);

	}

	/**
	 * Method untuk Menghitung Luas Segitiga dipanggil pada saat button
	 * Hitung Luas diklik
	 *
	 * @param view
	 */
	public void hitungLuas(View view) {
		try {

			int alas = Integer.parseInt(txtAlas.getText().toString());
			int tinggi = Integer.parseInt(txtTinggi.getText().toString());
			int luas = (alas * tinggi) / 2;
			txtLuas.setText(String.valueOf(luas));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Method untuk menutup activity dan kembali ke menu
	 * @param view
	 */
	public void backtoMenu(View view){
		finish();
	}
}

Form Menghitung Luas Lingkaran

  1. pada folder layout, buat file baru dengan nama lingkaran.xml

ketikkan kode berikut

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Menghitung Luas Lingkaran"
    />
<TextView android:text="Jari-jari :" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/txtJari" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned|numberDecimal"></EditText>
<Button android:text="Hitung Luas" android:id="@+id/btnHitung" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="hitungLuas"></Button>
<TextView android:text="Luas :" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" ></TextView>
<EditText android:text="" android:id="@+id/txtLuas" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false"></EditText>
<Button android:text="Kembali ke Menu" android:id="@+id/btnBack" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="backtoMenu"></Button>
</LinearLayout>
  1. Pada package com.agus buat file baru dengan nama Lingkaran.java

Ketikkan kode berikut

package com.agus;

/**
 * Class HitungLingkaran
 * @version 1.0 Oct 03, 2010
 * @author Agus Haryanto (agus.superwriter@gmail.com)
 * @website http://agusharyanto.net
 */

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class HitungLingkaran extends Activity {
	private EditText txtJari;
	private EditText txtLuas;
	private Button btnHitung;

	/**
	 * Method yang dipanggil pada saat applikaasi dijalankan
	 * */
	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.lingkaran);
		txtJari = (EditText) findViewById(R.id.txtJari);
		txtLuas = (EditText) findViewById(R.id.txtLuas);
		btnHitung = (Button) findViewById(R.id.btnHitung);

	}

	/**
	 * Method untuk Menghitung Luas Lingkaran dipanggil pada saat button
	 * Hitung Luas diklik
	 *
	 * @param view
	 */
	public void hitungLuas(View view) {
		try {

			int jarijari = Integer.parseInt(txtJari.getText().toString());
			double phi = 3.14;
			double luas =  phi * jarijari * jarijari;
			txtLuas.setText(String.valueOf(luas));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Method untuk menutup activity dan kembali ke menu
	 * @param view
	 */
	public void backtoMenu(View view){
		finish();
	}
}

Setelah tiga activity diatas selesai dibuat jangan lupa untuk mendaftarkannya pada file AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.agus"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MenuBangunDatar"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name="HitungPersegiPanjang" android:label="Persegi Panjang">
        </activity>
         <activity android:name="HitungSegitiga" android:label="Segitiga">
        </activity>
         <activity android:name="HitungLingkaran" android:label="Lingkaran">
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="8" />
</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

package com.agus;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MenuBangunDatar extends ListActivity {

	/**
	 * Called when the activity is first created. Method ini akan dipanggil pada
	 * saat aplikasi dijalankan
	 */
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);

		// Create an array of Strings, that will be put to our ListActivity
		String[] bangundatar = new String[] { "Persegi Panjang", "Segitiga",
				"Lingkaran", "Exit" };
		// Create an ArrayAdapter, that will actually make the Strings above
		// appear in the ListView
		// Menset nilai array ke dalam list adapater sehingga data pada array
		// akan dimunculkan dalam list
		this.setListAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, bangundatar));
	}

	@Override
	/**method ini akan mengoveride method onListItemClick yang ada pada class List Activity
	 * method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih
	 */
	protected void onListItemClick(ListView l, View v, int position, long id) {
		super.onListItemClick(l, v, position, id);
		// Get the item that was clicked
		// Menangkap nilai text yang dklik
		Object o = this.getListAdapter().getItem(position);
		String pilihan = o.toString();
		// Menampilkan hasil pilihan menu dalam bentuk Toast
		tampilkanPilihan(pilihan);
	}

	/**
	 * Tampilkan Activity sesuai dengan menu yang dipilih
	 *
	 */
	protected void tampilkanPilihan(String pilihan) {
		try {
			//Intent digunakan untuk sebagai pengenal suatu activity
			Intent i = null;
			if (pilihan.equals("Persegi Panjang")) {
				i = new Intent(this, HitungPersegiPanjang.class);
			} else if (pilihan.equals("Segitiga")) {
				i = new Intent(this, HitungSegitiga.class);
			} else if (pilihan.equals("Lingkaran")) {
				i = new Intent(this, HitungLingkaran.class);
			} else if (pilihan.equals("Exit")) {
				finish();
			} else {
				Toast.makeText(this,"Anda Memilih: " + pilihan + " , Actionnya belum dibuat", Toast.LENGTH_LONG).show();
			}
			startActivity(i);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Perhatikan kode

String[] bangundatar = new String[] { “Persegi Panjang”, “Segitiga”,”Lingkaran”, “Exit” };

Saya menambahkan “Exit” yang akan digunakan untuk keluar dari Aplikasi

Perhatikan method tampilkanPilihan()

protected void tampilkanPilihan(String pilihan) {
		try {
			//Intent digunakan untuk sebagai pengenal suatu activity
			Intent i = null;
			if (pilihan.equals("Persegi Panjang")) {
				i = new Intent(this, HitungPersegiPanjang.class);
			} else if (pilihan.equals("Segitiga")) {
				i = new Intent(this, HitungSegitiga.class);
			} else if (pilihan.equals("Lingkaran")) {
				i = new Intent(this, HitungLingkaran.class);
			} else if (pilihan.equals("Exit")) {
				finish();
			} else {
				Toast.makeText(this,"Anda Memilih: " + pilihan + " , Actionnya belum dibuat", Toast.LENGTH_LONG).show();
			}
			startActivity(i);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

method inilah yang digunakan untuk memanggil dan menampilkan activity yang dipilih

Intent i = null;
if (pilihan.equals("Persegi Panjang")) {
i = new Intent(this, HitungPersegiPanjang.class);
}

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, makaakan tampil Form Lingkaran

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

untuk source code tutorial ini bisa didownload disini {filelink=4}

Nah, mudahkan membuat aplikasi di android.

insya Allah, di tutorial selanjutnya kita akan menyentuh Fitur HP androidnya seperti Call, SMS, GPS dan Accelerometer

Tetap Semangat

Salam Hangat

Agus Haryanto

Tekan tombol kembali ke Menu, maka akan kembali ke Menu, pada Menu Pilih Lingkaran, makaakan tampil Form Lingkaran

Tekan tombol kembali ke Menu, maka akan kembali ke Menu, pada Menu Pilih Exit, maka akan keluar dari aplikasi

Tekan tombol kembali ke Menu, maka akan kembali ke Menu, pada Menu Pilih Lingkaran, makaakan tampil Form Lingkaran

Tekan tombol kembali ke Menu, maka akan kembali ke Menu, pada Menu Pilih Exit, maka akan keluar dari aplikasi

73 comments to Membuat Aplikasi Bangun Datar di Android

  • putri

    pak,kok saya nggak bisa masuk ke layout lingkaran ya?
    padahal nggak ada yang error dan program bisa jalan

  • saya mau tanya gimana cara menambahkan luas bangun datar lain ke dalam menu? saya sudah mencoba membuat layout bujur sangkar dan membuat java hitung bujur sangkar ke dalam menu bangun ruang, tapi error terus. padahal dari main sampe manifestnya telah saya tambahkan layout dan java bujur sangkarnya. kenapa ya pak? bisa tolong berikan contoh bagaimana cara menambahkan luas bangun datar bujur sangkar atau bangun datar lain ke dalam menu bangun datar? terima kasih 🙂 mohon bantuannya 🙂

  • Aplikasi Bangun Ruang untuk Ponsel atau Tablet Android, sudah ditest di Sony Ericsson Live, lancar. Minimum Versi Android Gingerbread.
    http://aksisoft.com/aplikasi-bangun-ruang-android/

  • pak, saya sudah ikuti untuk menu Exit kenapa muncul error yaa?

    finish(); utk apa fungsinya?

  • Chepy

    gan bgaimana cranya, supaya pas d klik hitung gx lngsung kembali ke menu awal??

  • ladytuwisty

    mas mau tanya aku hampir mirip dgn itu tp begitu diklik buttonnya itu lgsg force close kenapa ya?

  • ladytuwisty

    aku bikin program hampir mirip dgn ini,cmn pd button aplikasi saya pas dirun itu force close kenapa ya?

  • CLP48

    pak agus,,makasih banget,. tutorialnya sangat-sangat bermanfaat,..lanjut terus pak dengan contoh yang lebih yess pah,…

  • yogi

    Masa agus untuk pembuatan projec intent di atas , masa pakai eclipse apa??

  • mifta

    mas agus saya telah menggabungkan list bertingkat dan aplikasi bangun datar, semuanya berjalan dengan baik. Tetapi saya ingin menambahkan background gambar atau menyisipkan imageview, setelah saya tambahkan di xmlnya tidak ada warning atau error, problemnya adalah pada saat di run gambar background atau imageview tidak tamppil mas , mohon bantuan dan solusinya mass ??? 🙂

  • budy_yelyeh

    kalo ada eror premature end of file gmna cara benerinnya yaa mas ???
    erornya pas di persegipanjang.xml

  • Agus Haryanto

    @budi_yelyeh, belum pernah nemu error seperti ini, coba hapus filenya lalu buat lagi

  • zaki

    kok saya gx bisa buka ke tampilan lingkaran ya ?
    padahal gx ada yang error kok

    mohon solusinya T_T

  • eka

    pak mau tanya donk,hasil perhitungannya itukan langsung keluar dimenu bawahnya yah. Nah gimana kalo hasil perhitungannya itu ditampilkan pada halaman yang lain dan inputan yang sudah dimasukkan dihalaman awal juga muncul dihalaman selanjutnya.

    ditunggu jawabannya ya pak,terima kasih,.

  • Pak bro biasanya software yg di gunakan itu apa aja ya ?

  • Windu

    Terima kasih banyak gan ilmu nya 🙂 😀

  • aje

    linknya downloadnya mati, tolong diupdate lagi linknya makasih

  • vincent

    om, source codenya gak bisa di download

  • vincent

    makasi om,,sudah bisa di download..mungkin tadi ada gangguan..
    kalo mau tambahkan rumus bangun ruang caranya bagaimana om??

  • Rifky Sultan Karisma A

    Makasih Buanyaaakkk pak agus, artikel yang sangat sangat membantu 🙂

  • panji

    terimakasih banyak pak atas artikel yg telah bapak bagikan ini, semoga bapak sekeluarga selalu sehat walafiat

  • koq gk bisa di download mas? mohon pencerahan

  • izin download buat tugas kampus kak, terima kasih banyak,,.. 🙂 🙂 🙂 🙂 (y) (y) (y) (y)

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>