Welcome Back Gals... Setelah sebelumnya kita coba menyapa
Android, next lanjut ke project selanjutnya, kali ini kita akan mencoba membuat
“Simple Calculator” jangan tanya kenapa? Karenaaa..jawabannya sudah pasti !“ini
tuntutan skenario sob” . Project yang akan kita buat ini nantinya dapat
melakukan perhitungan penambahan, pengurangan, perkalian, pembagian,
pemangkatan dan akar kuadrat dari 2 buah bilangan
Seperti biasanya untuk untuk memulai kita buat dulu project
di workspace, untuk project kali ini saya menggunakan SimpleCalculate
Untuk Selanjutnya kita akan memulai dari main.xml, masuk
package explorer diman project kita berada, masuk ke
res/layout/activity_main.xml
Disini kita menggunakan LinearLayout sebagai dasar
Layoutnya, setelah buka activity_main.xml tambahankan Source Code berikut :
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:ignore="HardcodedText,MangledCRLF,ExtraText,DisableBaselineAlignment,NestedWeights,Deprecated"
>
<EditText
android:id="@+id/input"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:inputType="number"
android:numeric="integer"
android:text="" >
<requestFocus />
</EditText>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
>
<Button
android:id="@+id/satu"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" >
</Button>
<Button
android:id="@+id/empat"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" >
</Button>
<Button
android:id="@+id/tujuh"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" >
</Button>
<Button
android:id="@+id/koma"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="." >
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<Button
android:id="@+id/dua"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" >
</Button>
<Button
android:id="@+id/lima"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" >
</Button>
<Button
android:id="@+id/delapan"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" >
</Button>
<Button
android:id="@+id/nol"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" >
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<Button
android:id="@+id/tiga"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" >
</Button>
<Button
android:id="@+id/enam"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" >
</Button>
<Button
android:id="@+id/sembilan"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" >
</Button>
<Button
android:id="@+id/samadengan"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" >
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<Button
android:id="@+id/tambah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" >
</Button>
<Button
android:id="@+id/kurang"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" >
</Button>
<Button
android:id="@+id/kali"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*" >
</Button>
<Button
android:id="@+id/bagi"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/" >
</Button>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<Button
android:id="@+id/clear"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="CE" >
</Button>
<Button
android:id="@+id/pangkat"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="x^x" >
</Button>
<Button
android:id="@+id/akar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="√" >
</Button>
</LinearLayout>
</LinearLayout>
</LinearLayout>
Untuk penjelasan mengenai Layout
dan teman-temannya tidak saya bahas di sini karena akan saya buatkan materi
tentang Layout tersendiri..
Selanjutnya ,.. eeeiiittsss wait
a second . Sebelumnya siapkan mental anda dahulu untuk lanjut ke step ini karna
menurut saya step ini butuh kosentrasi yang cukup, sebagai tambahan cemilan dan
minuman juga jangan sampai lupa
Oke sekarang kita mulai coding
pada MainActivity.java yang berada di src/ MainActivity.java
Tambahkan SourceCode berikut:
package
com.example.simplecalculate;
import
android.app.Activity;
import android.os.Bundle;
import android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.EditText;
import android.view.Menu;
public class MainActivity extends Activity implements OnClickListener {
Button
satu,dua,tiga,empat,lima,enam,tujuh,delapan,sembilan,
nol,tambah,kali,kurang,bagi,samadengan,akar,clear,koma,pangkat;
EditText
input;
double nilai1, nilai2;
int operator;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input =
(EditText)findViewById(R.id.input);
satu =
(Button)findViewById(R.id.satu);
dua =
(Button)findViewById(R.id.dua);
tiga =
(Button)findViewById(R.id.tiga);
empat =
(Button)findViewById(R.id.empat);
lima =
(Button)findViewById(R.id.lima);
enam =
(Button)findViewById(R.id.enam);
tujuh = (Button)findViewById(R.id.tujuh);
delapan =
(Button)findViewById(R.id.delapan);
sembilan =
(Button)findViewById(R.id.sembilan);
nol =
(Button)findViewById(R.id.nol);
tambah =
(Button)findViewById(R.id.tambah);
kali =
(Button)findViewById(R.id.kali);
kurang =
(Button)findViewById(R.id.kurang);
bagi =
(Button)findViewById(R.id.bagi);
samadengan =
(Button)findViewById(R.id.samadengan);
koma =
(Button)findViewById(R.id.koma);
clear =
(Button)findViewById(R.id.clear);
pangkat = (Button)findViewById(R.id.pangkat);
akar =
(Button)findViewById(R.id.akar);
satu.setOnClickListener(this);
dua.setOnClickListener(this);
tiga.setOnClickListener(this);
empat.setOnClickListener(this);
lima.setOnClickListener(this);
enam.setOnClickListener(this);
tujuh.setOnClickListener(this);
delapan.setOnClickListener(this);
sembilan.setOnClickListener(this);
nol.setOnClickListener(this);
tambah.setOnClickListener(this);
kali.setOnClickListener(this);
kurang.setOnClickListener(this);
bagi.setOnClickListener(this);
samadengan.setOnClickListener(this);
koma.setOnClickListener(this);
clear.setOnClickListener(this);
pangkat.setOnClickListener(this);
akar.setOnClickListener(this);
}
@Override
public boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the
menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private void handleNomor(String
nomor) {
// TODO Auto-generated
method stub
String
txt = input.getText().toString();
txt+=nomor;
input.setText(txt);
}
private void clear(){
input.setText("");
}
@Override
public void onClick(View v) {
// TODO Auto-generated
method stub
switch (v.getId()) {
case R.id.satu:
handleNomor("1");
break;
case R.id.dua:
handleNomor("2");
break;
case R.id.tiga:
handleNomor("3");
break;
case R.id.empat:
handleNomor("4");
break;
case R.id.lima:
handleNomor("5");
break;
case R.id.enam:
handleNomor("6");
break;
case R.id.tujuh:
handleNomor("7");
break;
case R.id.delapan:
handleNomor("8");
break;
case R.id.sembilan:
handleNomor("9");
break;
case R.id.nol:
handleNomor("0");
break;
case R.id.koma:
handleNomor(".");
break;
case R.id.tambah:
nilai1=Double.parseDouble(input.getText().toString());
input.setText("");
operator=1;
break;
case R.id.kurang:
nilai1=Double.parseDouble(input.getText().toString());
input.setText("");
operator=2;
break;
case R.id.kali:
nilai1=Double.parseDouble(input.getText().toString());
input.setText("");
operator=3;
break;
case R.id.bagi:
nilai1=Double.parseDouble(input.getText().toString());
input.setText("");
operator=4;
break;
case R.id.pangkat:
nilai1=Double.parseDouble(input.getText().toString());
input.setText("");
operator=5;
break;
case R.id.akar:
nilai1=Double.parseDouble(input.getText().toString());
double nilai3 = Math.sqrt(nilai1);
input.setText(nilai3+"");
break;
case R.id.samadengan:
nilai2=Double.parseDouble(input.getText().toString());
if(operator==1){
input.setText(Double.toString(nilai1+nilai2));
}else if(operator==2){
input.setText(Double.toString(nilai1-nilai2));
}else if(operator==3){
input.setText(Double.toString(nilai1*nilai2));
}else if(operator==4){
input.setText(Double.toString(nilai1/nilai2));
}else if(operator==5){
double hasil=1;
int i;
for (i=1;i<=nilai2;i++) {
hasil=
hasil*nilai1;
}
input.setText(hasil+"");
}
break;
case R.id.clear:
clear();
break;
default:
break;
}
}
}
Untuk nilai1 adalah nilai dari angka yang akan di pangkatkan
Untuk penjelasannya Disini
kita akan mengimplement OnClickListener, Konsepnya
setiap inputan angka yang kita masukan akan di handle oleh prosedure private void handleNomor(String
nomor) yang akan di tampilkan dalam
TextView, kemudian nantinya akan kita simpan pada variable bernama nilai1 dan
nilai2 dimana nilai1 aktif ketika Button perhitungan di aktifkan untuk nilai2
sendiri di tampung kitika pengaktifan Button samadengan (=) untuk perhitungannya
akan di proses oleh setiap fungsi perhitungan yang berada dalam case dan di wakili oleh operator 1-5Penggunaan
parseDouble(input.getText().toString());Karena inputan dari EditText berupa String jadi harus di konversi ke
tipe data yang diinginkanPenggunaan input.setText(Double.toString(String)); karena pengubahan kembali tipe data ke string digunakan
oleh TextView yang hanya Menerima inputan berupa string
Selamat
anda telah berhasil menyelesaikannya, Semoga dapat bermanfaat
Akhir kata saya tutup dengan kata mutiara “Code is nothing but with code we can do Anything”
Akhir kata saya tutup dengan kata mutiara “Code is nothing but with code we can do Anything”
Tidak ada komentar:
Posting Komentar