Membuat Aplikasi Penghitung Volume Bangun Ruang Dan Luas Bangun Datar
Baiklah pada tulisan kali ini kita akan belajar membuat aplikasi penghitung volume bangun ruang dan luas bangun datar. Dimana yang kita hitung adalah volume bangun datar, volume kerucut, luas lingkaran, dan luas persegi.
Langsung saja ke pembahasan, yang pertama kita harus membuat proyek baru dengan cara klik File > New > Android Application Project. Lalu isi identitas proyek yang akan kita buat seperti berikut:
Application Name: Volume dan Luas
Project Name: VolumeDanLuas
Package Name: com.premanteknologi.volumedanluas
Next
Next
Selanjutnya silakan kombinasikan logo dari aplikasi yang akan kita buat sesuai dengan keinginan kita, jika bingung bisa lewatkan tahapan ini untuk menggunakan pengaturan default. Next
Selanjutanya pada tahap ini bisa menggunakan pengaturan default saja. Next
Kembali gunakan pengaturan default.
Activity Name: MainActivity
Layout Name: activity_main
Finish
Kemudian tambah file java ke dalam paket com.premanteknologi.volumedanluas yang terdapat dalam folder src dengan cara klik kanan pada paket com.premanteknologi.volumedanluas pilih New pilih Class
Isi nama class dengan Tabung
Lakukan hal yang sama untuk menambah file java kerucut, lingkaran, dan persegi.
Isikan kode berikut untuk file MainActivity.java
package com.premanteknologi.volumedanluas;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
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 MainActivity extends ListActivity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// Create an array of Strings, that will be put to our ListActivity
String[] activity_main = new String[] { "Volume Tabung", "Volume Kerucut", "Lingkaran","Persegi","Exit" };
// 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, activity_main));
//getListView().setBackgroundResource(R.drawable.bg);
}
@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("Volume Tabung")) {
i = new Intent(this, Tabung.class);
} else if (pilihan.equals("Volume Kerucut")) {
i = new Intent(this, Kerucut.class);
} else if (pilihan.equals("Lingkaran")) {
i = new Intent(this, Lingkaran.class);
} else if (pilihan.equals("Persegi")) {
i = new Intent(this, Persegi.class);
} else if (pilihan.equals("Exit")) {
// Intent exit = new Intent(Intent.ACTION_MAIN);
// startActivity(exit);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Anda Yakin Ingin Menutup Aplikasi?")
.setCancelable(false).setPositiveButton("Ya",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
Intent exit = new Intent(
Intent.ACTION_MAIN);
exit.addCategory(Intent.CATEGORY_HOME);
exit
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(exit);
}
}).setNegativeButton("Tidak",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
}).show();
} else {
Toast.makeText(
this,
"Anda Memilih: " + pilihan
+ " , Actionnya belum dibuat",
Toast.LENGTH_LONG).show();
}
startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Tabung.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Tabung extends Activity {
private EditText txtTinggi,txtAlas,txtHasil;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabung);
txtTinggi = (EditText) findViewById(R.id.txtPanjang);
txtAlas = (EditText) findViewById(R.id.txtLebar);
txtHasil = (EditText) findViewById(R.id.txtLuas);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double tinggi=Double.parseDouble(txtTinggi.getText().toString());
Double alas=Double.parseDouble(txtAlas.getText().toString());
Double hasil =alas * tinggi;
txtHasil.setText("" + hasil);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Kerucut.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Kerucut extends Activity {
private EditText txtR,txtT,txtOut;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kerucut);
txtR = (EditText) findViewById(R.id.txtR);
txtT = (EditText) findViewById(R.id.txtT);
txtOut = (EditText) findViewById(R.id.txtOut);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double r=Double.parseDouble(txtR.getText().toString());
Double t=Double.parseDouble(txtT.getText().toString());
Double hasil =r * t;
txtOut.setText("" + hasil);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Lingkaran.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Lingkaran extends Activity {
private EditText txtJari,txtLuas;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lingkaran);
txtJari = (EditText) findViewById(R.id.txtPanjang);
txtLuas = (EditText) findViewById(R.id.txtLuas);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double jari=Double.parseDouble(txtJari.getText().toString());
Double luas =3.14* jari* jari ;
txtLuas.setText("" + luas);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Persegi.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Persegi extends Activity {
private EditText txtPanjang,txtLebar,txtLuas;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_persegi);
txtPanjang = (EditText) findViewById(R.id.txtPanjang);
txtLebar = (EditText) findViewById(R.id.txtLebar);
txtLuas = (EditText) findViewById(R.id.txtLuas);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double panjang=Double.parseDouble(txtPanjang.getText().toString());
Double lebar=Double.parseDouble(txtLebar.getText().toString());
Double luas = panjang * lebar;
txtLuas.setText("" + luas);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Jika mendapatkan beberapa error abaikan saja untuk sementara dan lanjutkan saja ke langkah berikutnya. Beberapa error tersebut ditimbulkan karena file java memanggil file layout dan mengharapkan beberapa id, sementara file layout yang diminta belum kita buat dan tentunya id yang diharapkan belum ada.
Untuk membuat file layout yang diminta kita bisa klik kanan pada folder layout yang terdapat pada folder res lalu pilih New dan pilih Android XML File dan isikan nama file activity_tabung dan pilih Finish
Lakukan hal yang sama untuk membuat file xml activity_kerucut, activity_lingkaran, dan activity_persegi. Isikan kode berikut:
file activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.premanteknologi.bangun_ruang.MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tinggi" />
<EditText
android:id="@+id/txtPanjang"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Luas Alas" />
<EditText
android:id="@+id/txtLebar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil" />
<EditText
android:id="@+id/txtLuas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
activity_kerucut.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inputkan Panjang Jari-jari" />
<EditText
android:id="@+id/txtR"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inputkan Tinggi" />
<EditText
android:id="@+id/txtT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil" />
<EditText
android:id="@+id/txtOut"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
activity_lingkaran.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jari-jari" />
<EditText
android:id="@+id/txtPanjang"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil" />
<EditText
android:id="@+id/txtLuas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
activity_persegi.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Panjang" />
<EditText
android:id="@+id/txtPanjang"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lebar" />
<EditText
android:id="@+id/txtLebar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Luas" />
<EditText
android:id="@+id/txtLuas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
Sampai disini sebenarnya aplikasi sudah bisa menampilkan form induk yang merupakan tampilan awal aplikasi, namun menu yang berfungsi hanyalah exit saja karena menu exit tidak memanggil form lain. Sementara form lain belum bisa dipanggil karena class nya belum didaftarkan di AndroidManifest.xml
Untuk memanggilnya kita bisa memasukkan kode berikut di AndroidManifest.xml:
<activity android:name="Tabung"></activity>
<activity android:name="Kerucut"></activity>
<activity android:name="Lingkaran"></activity>
<activity android:name="Persegi"></activity>
Dalam kasus proyek saya maka kode AndroidManifest.xml menjadi seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.premanteknologi.volumedanluas"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="25" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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="Tabung"></activity>
<activity android:name="Kerucut"></activity>
<activity android:name="Lingkaran"></activity>
<activity android:name="Persegi"></activity>
</application>
</manifest>
Namun masih ada kekurangan pada tampilannya nanti yaitu pada judul semua form masih sama dengan Application Name yaitu Volume dan Luas. Maka untuk memberi nama judul masing-masing form secara berbeda kita perlu menambahkan label sehingga kodenya menjadi seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.premanteknologi.volumedanluas"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="25" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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="Tabung"
android:label="@string/tabung">
</activity>
<activity
android:name="kerucut"
android:label="@string/kerucut">
</activity>
<activity
android:name="Lingkaran"
android:label="@string/lingkaran">
</activity>
<activity
android:name="Persegi"
android:label="@string/persegi">
</activity>
</application>
</manifest>
Kendalanya sekarang label yang diminta dari file strings belum kita buat, maka sekarang kita buat labelnya di file strings.xml yang ada dalam folder values sehingga kode lengkapnya seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Volume dan Luas</string>
<string name="tabung">Volume Tabung</string>
<string name="kerucut">Volume Kerucut</string>
<string name="lingkaran">Luas Lingkaran</string>
<string name="persegi">Luas Persegi</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>
Sekarang aplikasi bisa dijalankan dengan baik.
Semoga bermanfaat!
Langsung saja ke pembahasan, yang pertama kita harus membuat proyek baru dengan cara klik File > New > Android Application Project. Lalu isi identitas proyek yang akan kita buat seperti berikut:
Application Name: Volume dan Luas
Project Name: VolumeDanLuas
Package Name: com.premanteknologi.volumedanluas
Next
Next
Selanjutnya silakan kombinasikan logo dari aplikasi yang akan kita buat sesuai dengan keinginan kita, jika bingung bisa lewatkan tahapan ini untuk menggunakan pengaturan default. Next
Selanjutanya pada tahap ini bisa menggunakan pengaturan default saja. Next
Kembali gunakan pengaturan default.
Activity Name: MainActivity
Layout Name: activity_main
Finish
Kemudian tambah file java ke dalam paket com.premanteknologi.volumedanluas yang terdapat dalam folder src dengan cara klik kanan pada paket com.premanteknologi.volumedanluas pilih New pilih Class
Isi nama class dengan Tabung
Lakukan hal yang sama untuk menambah file java kerucut, lingkaran, dan persegi.
Isikan kode berikut untuk file MainActivity.java
package com.premanteknologi.volumedanluas;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
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 MainActivity extends ListActivity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// Create an array of Strings, that will be put to our ListActivity
String[] activity_main = new String[] { "Volume Tabung", "Volume Kerucut", "Lingkaran","Persegi","Exit" };
// 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, activity_main));
//getListView().setBackgroundResource(R.drawable.bg);
}
@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("Volume Tabung")) {
i = new Intent(this, Tabung.class);
} else if (pilihan.equals("Volume Kerucut")) {
i = new Intent(this, Kerucut.class);
} else if (pilihan.equals("Lingkaran")) {
i = new Intent(this, Lingkaran.class);
} else if (pilihan.equals("Persegi")) {
i = new Intent(this, Persegi.class);
} else if (pilihan.equals("Exit")) {
// Intent exit = new Intent(Intent.ACTION_MAIN);
// startActivity(exit);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Anda Yakin Ingin Menutup Aplikasi?")
.setCancelable(false).setPositiveButton("Ya",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
Intent exit = new Intent(
Intent.ACTION_MAIN);
exit.addCategory(Intent.CATEGORY_HOME);
exit
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(exit);
}
}).setNegativeButton("Tidak",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
}).show();
} else {
Toast.makeText(
this,
"Anda Memilih: " + pilihan
+ " , Actionnya belum dibuat",
Toast.LENGTH_LONG).show();
}
startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Tabung.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Tabung extends Activity {
private EditText txtTinggi,txtAlas,txtHasil;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabung);
txtTinggi = (EditText) findViewById(R.id.txtPanjang);
txtAlas = (EditText) findViewById(R.id.txtLebar);
txtHasil = (EditText) findViewById(R.id.txtLuas);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double tinggi=Double.parseDouble(txtTinggi.getText().toString());
Double alas=Double.parseDouble(txtAlas.getText().toString());
Double hasil =alas * tinggi;
txtHasil.setText("" + hasil);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Kerucut.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Kerucut extends Activity {
private EditText txtR,txtT,txtOut;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kerucut);
txtR = (EditText) findViewById(R.id.txtR);
txtT = (EditText) findViewById(R.id.txtT);
txtOut = (EditText) findViewById(R.id.txtOut);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double r=Double.parseDouble(txtR.getText().toString());
Double t=Double.parseDouble(txtT.getText().toString());
Double hasil =r * t;
txtOut.setText("" + hasil);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Lingkaran.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Lingkaran extends Activity {
private EditText txtJari,txtLuas;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lingkaran);
txtJari = (EditText) findViewById(R.id.txtPanjang);
txtLuas = (EditText) findViewById(R.id.txtLuas);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double jari=Double.parseDouble(txtJari.getText().toString());
Double luas =3.14* jari* jari ;
txtLuas.setText("" + luas);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Lalu isikan kode berikut untuk file Persegi.java
package com.premanteknologi.volumedanluas;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
public class Persegi extends Activity {
private EditText txtPanjang,txtLebar,txtLuas;
private Button btProses;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_persegi);
txtPanjang = (EditText) findViewById(R.id.txtPanjang);
txtLebar = (EditText) findViewById(R.id.txtLebar);
txtLuas = (EditText) findViewById(R.id.txtLuas);
btProses = (Button) findViewById(R.id.btProses);
btProses.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
prosesHasil(v);
}
});
}
public void prosesHasil(View view){
try{
Double panjang=Double.parseDouble(txtPanjang.getText().toString());
Double lebar=Double.parseDouble(txtLebar.getText().toString());
Double luas = panjang * lebar;
txtLuas.setText("" + luas);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Jika mendapatkan beberapa error abaikan saja untuk sementara dan lanjutkan saja ke langkah berikutnya. Beberapa error tersebut ditimbulkan karena file java memanggil file layout dan mengharapkan beberapa id, sementara file layout yang diminta belum kita buat dan tentunya id yang diharapkan belum ada.
Untuk membuat file layout yang diminta kita bisa klik kanan pada folder layout yang terdapat pada folder res lalu pilih New dan pilih Android XML File dan isikan nama file activity_tabung dan pilih Finish
Lakukan hal yang sama untuk membuat file xml activity_kerucut, activity_lingkaran, dan activity_persegi. Isikan kode berikut:
file activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.premanteknologi.bangun_ruang.MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
file activity_tabung.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tinggi" />
<EditText
android:id="@+id/txtPanjang"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Luas Alas" />
<EditText
android:id="@+id/txtLebar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil" />
<EditText
android:id="@+id/txtLuas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
activity_kerucut.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inputkan Panjang Jari-jari" />
<EditText
android:id="@+id/txtR"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inputkan Tinggi" />
<EditText
android:id="@+id/txtT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil" />
<EditText
android:id="@+id/txtOut"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
activity_lingkaran.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jari-jari" />
<EditText
android:id="@+id/txtPanjang"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil" />
<EditText
android:id="@+id/txtLuas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
activity_persegi.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Panjang" />
<EditText
android:id="@+id/txtPanjang"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lebar" />
<EditText
android:id="@+id/txtLebar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
<Button
android:id="@+id/btProses"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Luas" />
<EditText
android:id="@+id/txtLuas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
Sampai disini sebenarnya aplikasi sudah bisa menampilkan form induk yang merupakan tampilan awal aplikasi, namun menu yang berfungsi hanyalah exit saja karena menu exit tidak memanggil form lain. Sementara form lain belum bisa dipanggil karena class nya belum didaftarkan di AndroidManifest.xml
Untuk memanggilnya kita bisa memasukkan kode berikut di AndroidManifest.xml:
<activity android:name="Tabung"></activity>
<activity android:name="Kerucut"></activity>
<activity android:name="Lingkaran"></activity>
<activity android:name="Persegi"></activity>
Dalam kasus proyek saya maka kode AndroidManifest.xml menjadi seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.premanteknologi.volumedanluas"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="25" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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="Tabung"></activity>
<activity android:name="Kerucut"></activity>
<activity android:name="Lingkaran"></activity>
<activity android:name="Persegi"></activity>
</application>
</manifest>
Namun masih ada kekurangan pada tampilannya nanti yaitu pada judul semua form masih sama dengan Application Name yaitu Volume dan Luas. Maka untuk memberi nama judul masing-masing form secara berbeda kita perlu menambahkan label sehingga kodenya menjadi seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.premanteknologi.volumedanluas"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="25" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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="Tabung"
android:label="@string/tabung">
</activity>
<activity
android:name="kerucut"
android:label="@string/kerucut">
</activity>
<activity
android:name="Lingkaran"
android:label="@string/lingkaran">
</activity>
<activity
android:name="Persegi"
android:label="@string/persegi">
</activity>
</application>
</manifest>
Kendalanya sekarang label yang diminta dari file strings belum kita buat, maka sekarang kita buat labelnya di file strings.xml yang ada dalam folder values sehingga kode lengkapnya seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Volume dan Luas</string>
<string name="tabung">Volume Tabung</string>
<string name="kerucut">Volume Kerucut</string>
<string name="lingkaran">Luas Lingkaran</string>
<string name="persegi">Luas Persegi</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>
Sekarang aplikasi bisa dijalankan dengan baik.
Semoga bermanfaat!
Posting Komentar untuk "Membuat Aplikasi Penghitung Volume Bangun Ruang Dan Luas Bangun Datar"