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
- 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>
- 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
- 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>
- 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
- 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>
- 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
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?
gan bgaimana cranya, supaya pas d klik hitung gx lngsung kembali ke menu awal??
mas mau tanya aku hampir mirip dgn itu tp begitu diklik buttonnya itu lgsg force close kenapa ya?
aku bikin program hampir mirip dgn ini,cmn pd button aplikasi saya pas dirun itu force close kenapa ya?
pak agus,,makasih banget,. tutorialnya sangat-sangat bermanfaat,..lanjut terus pak dengan contoh yang lebih yess pah,…
Masa agus untuk pembuatan projec intent di atas , masa pakai eclipse apa??
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 ??? 🙂
kalo ada eror premature end of file gmna cara benerinnya yaa mas ???
erornya pas di persegipanjang.xml
@budi_yelyeh, belum pernah nemu error seperti ini, coba hapus filenya lalu buat lagi
kok saya gx bisa buka ke tampilan lingkaran ya ?
padahal gx ada yang error kok
mohon solusinya T_T
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 ?
Terima kasih banyak gan ilmu nya 🙂 😀
linknya downloadnya mati, tolong diupdate lagi linknya makasih
om, source codenya gak bisa di download
makasi om,,sudah bisa di download..mungkin tadi ada gangguan..
kalo mau tambahkan rumus bangun ruang caranya bagaimana om??
Makasih Buanyaaakkk pak agus, artikel yang sangat sangat membantu 🙂
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)