Dalam tutorial ini kita akan belajar membuat kalkulator android studio di android bagaimana caranya? Mudah kami akan sampaikan secara rinci kepada kalian, sehingga bisa menerapkannya tanpa kesalahan.
Bagaimana cara membuat kalkulator android studio?
Tutorial ini dibuat menggunakan android studio versi 4.0. Sehingga kompatibel jika anda menggunakan android studio versi terbaru saat ini.
- Buat proyek baru
Buat proyek baru di studio android dengan nama aplikasi proyek “kalkulator” atau anda dapat menyesuaikan sendiri. Langkah membuat kalkulator android studio sangat sederhana dan mudah.
- Mengubah ikon
Ikon default untuk aplikasi bawaan dari android adalah logo android (robot hijau). Kali ini kita akan mengganti icon aplikasi dengan icon yang kita download dari situs flat icon dengan cara sebagai berikut.
- Klik folder res
- Klik kanan pada folder mipmap
- Aset gambar baru
Setelah itu ganti nama ic_launcher menjadi ics calc – pilih gambar pada aset type – pilih icon dari komputer pada path – next – done
- Buat tata letak
Buat tata letak kalkulator di activity_main.xml. Kita akan menggunakan beberapa widget, yaitu:
- Tampilan teks
- Tombol
Textview akan digunakan sebagai layar nomor kalkulator, ditambah beberapa tombol yang diperlukan. Textview dapat digunakan sebagai penggeanti dari apk edittext, tujuannya untuk mencegah input pengguna manual menggunakan keypad default android. Tata letak yang digunakan adalah:
- Tata letak relatif
- Tata letak linier

Baca Juga: 2 Cara Mengatasi Driver Power State Failure Windows 10
Kode selengkapnya adalah sebagai berikut:
<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”
Tools:context=”.mainactivity”>
<textview
Android:id=”@+id/txtscreen”
Android:layout_width=”match_parent”
Android:layout_height=”wrap_content”
Android:layout_alignparenttop=”true”
Android:layout_centerhorizontal=”true”
Android:gravity=”right|center_vertical”
Android:maxlength=”16″
Android:padding=”10dp”
Android:textappearance=”?Android:attr/textappearancelarge”
Android:textsize=”30sp”
Android:typeface=”serif” />
<linearlayout
Android:layout_width=”match_parent”
Android:layout_height=”match_parent”
Android:layout_below=”@+id/txtscreen”
Android:orientation=”vertical”>
<linearlayout
Android:layout_width=”match_parent”
Android:layout_height=”0dp”
Android:layout_weight=”1″>
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnseven”
Android:text=”7″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btneight”
Android:text=”8″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnnine”
Android:text=”9″/>
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btndivide”
Android:text=”/”/>
</linearlayout>
<linearlayout
Android:layout_width=”match_parent”
Android:layout_height=”0dp”
Android:layout_weight=”1″>
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnfour”
Android:text=”4″/>
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnfive”
Android:text=”5″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnsix”
Android:text=”6″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnmultiply”
Android:text=”*” />
</linearlayout>
<linearlayout
Android:layout_width=”match_parent”
Android:layout_height=”0dp”
Android:layout_weight=”1″>
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnone”
Android:text=”1″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btntwo”
Android:text=”2″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnthree”
Android:text=”3″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnsubtract”
Android:text=”-” />
</linearlayout>
<linearlayout
Android:layout_width=”match_parent”
Android:layout_height=”0dp”
Android:layout_weight=”1″>
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btndot”
Android:text=”.” />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnzero”
Android:text=”0″ />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnclear”
Android:text=”c” />
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnadd”
Android:text=”+” />
</linearlayout>
<linearlayout
Android:layout_width=”match_parent”
Android:layout_height=”0dp”
Android:layout_weight=”1″>
<button
Android:layout_width=”0dp”
Android:layout_height=”match_parent”
Android:layout_weight=”1″
Android:textsize=”30sp”
Android:id=”@+id/btnequal”
Android:text=”=” />
</linearlayout>
</linearlayout>
</relativelayout>

Baca Juga: 4 Cara Membuat Nomor Otomatis Di Excel Android, Cepat Dan Mudah
- Gaya pada tombol
Tombol pada layout yang dibuat pada langkah 3 terlihat kurang menarik. Kami akan menata tombol agar lebih menarik. Berikut cara membuat kalkulator android studio:
- Klik folder res
- Klik kanan pada drawable
- Pilih new
- Pilih file sumber daya yang dapat digambar
- Kami menamai file yang dapat digambar tombol
- Lalu masukkan kode berikut drawable/button.xml
- Latar belakang tombol
Setelah anda membuat file button.xml di drawable. Maka langkah selanjutnya adalah menggunakan button.xml sebagai tombol background di activity_main.xml.
- Tambahkan kode berikut ke setiap tombol.
- Android:background=”@drawable/button”
- Library
Untuk mengevaluasi ekspresi aritmatika, perpustakaan exp4j digunakan dalam membuat kalkulator android studio ini.
- Kalian harus buka file “build.gradle (modul: app)” tepatnya berada di skrip gradle
- Tambahkan kode berikut:
- Implementasi ‘net.objecthunter:exp4j:0.4.4’
- Pastikan terhubung ke internet lalu klik sinkronkan sekarang.
7. Mainactivity.java
Mainactivity.java harus kalian ubah dengan beberapa kode dibawah ini.
Package com.example.kalkulator;
Import androidx.appcompat.app.appcompatactivity;
Import android.os.bundle;
Import android.view.view;
Import android.widget.button;
Import android.widget.textview;
Import net.objecthunter.exp4j.expression;
Import net.objecthunter.exp4j.expressionbuilder;
Public class mainactivity extends appcompatactivity {
// ids of all the numeric buttons
Private int[] numericbuttons = {r.id.btnzero, r.id.btnone, r.id.btntwo, r.id.btnthree, r.id.btnfour, r.id.btnfive, r.id.btnsix, r.id.btnseven, r.id.btneight, r.id.btnnine};
// ids of all the operator buttons
Private int[] operatorbuttons = {r.id.btnadd, r.id.btnsubtract, r.id.btnmultiply, r.id.btndivide};
// textview used to display the output
Private textview txtscreen;
// represent whether the lastly pressed key is numeric or not
Private boolean lastnumeric;
// represent that current state is in error or not
Private boolean stateerror;
// if true, do not allow to add another dot
Private boolean lastdot;
@override
Protected void oncreate(bundle savedinstancestate) {
Super.oncreate(savedinstancestate);
Setcontentview(r.layout.activity_main);
// find the textview
This.txtscreen = (textview) findviewbyid(r.id.txtscreen);
// find and set onclicklistener to numeric buttons
Setnumericonclicklistener();
// find and set onclicklistener to operator buttons, equal button and decimal point button
Setoperatoronclicklistener();
}
/**
* find and set onclicklistener to numeric buttons.
*/
Private void setnumericonclicklistener() {
// create a common onclicklistener
View.onclicklistener listener = new view.onclicklistener() {
@override
Public void onclick(view v) {
// just append/set the text of clicked button
Button button = (button) v;
If (stateerror) {
// if current state is error, replace the error message
Txtscreen.settext(button.gettext());
Stateerror = false;
} else {
// if not, already there is a valid expression so append to it
Txtscreen.append(button.gettext());
}
// set the flag
Lastnumeric = true;
}
};
// assign the listener to all the numeric buttons
For (int id : numericbuttons) {
Findviewbyid(id).setonclicklistener(listener);
}
}
/**
* find and set onclicklistener to operator buttons, equal button and decimal point button.
*/
Private void setoperatoronclicklistener() {
// create a common onclicklistener for operators
View.onclicklistener listener = new view.onclicklistener() {
@override
Public void onclick(view v) {
// if the current state is error do not append the operator
// if the last input is number only, append the operator
If (lastnumeric && !Stateerror) {
Button button = (button) v;
Txtscreen.append(button.gettext());
Lastnumeric = false;
Lastdot = false; // reset the dot flag
}
}
};
// assign the listener to all the operator buttons
For (int id : operatorbuttons) {
Findviewbyid(id).setonclicklistener(listener);
}
// decimal point
Findviewbyid(r.id.btndot).setonclicklistener(new view.onclicklistener() {
@override
Public void onclick(view v) {
If (lastnumeric && !Stateerror && !Lastdot) {
Txtscreen.append(“.”);
Lastnumeric = false;
Lastdot = true;
}
}
});
// clear button
Findviewbyid(r.id.btnclear).setonclicklistener(new view.onclicklistener() {
@override
Public void onclick(view v) {
Txtscreen.settext(“”); // clear the screen
// reset all the states and flags
Lastnumeric = false;
Stateerror = false;
Lastdot = false;
}
});
// equal button
Findviewbyid(r.id.btnequal).setonclicklistener(new view.onclicklistener() {
@override
Public void onclick(view v) {
Onequal();
}
});
}
/**
* logic to calculate the solution.
*/
Private void onequal() {
// if the current state is error, nothing to do.
// if the last input is a number only, solution can be found.
If (lastnumeric && !Stateerror) {
// read the expression
String txt = txtscreen.gettext().tostring();
// create an expression (a class from exp4j library)
Expression expression = new expressionbuilder(txt).build();
Try {
// calculate the result and display
Double result = expression.evaluate();
Txtscreen.settext(double.tostring(result));
Lastdot = true; // result contains a dot
} catch (arithmeticexception ex) {
// display an error message
Txtscreen.settext(“error”);
Stateerror = true;
Lastnumeric = false;
}
}
}
}
8. Androidmanifest.xml
Ubah android:icon menjadi @mipmap/ic_calc agar icon tidak lagi menjadi robot hijau.
- Menjalankan aplikasi
Silahkan jalankan aplikasinya di perangkat android, emulator genymotion, atau langsung menggunakan perangkat android. Membuat kalkulator android studio tidak sulit sama sekali bukan?
Tujuan dari tutorial ini bukan untuk membuat kalkulator yang sempurna seperti aplikasi bawaan android. Setidaknya kita bisa mengetahui cara dasar membuat kalkulator android studio sederhana dari tutorial ini.
Baca Juga: 10 Cara Membuat Corel Draw X7 Full Version, Mudah Dan Cepat