Android

Latihan 1 : Pembuatan Calculator Sederhana di Android Studio

Buat satu project android, kemudian silakan pilih berkas activity_main.xml pada workspace Anda(res/layout/activity_main.xml), dan ikutin coding seperti di bawah : 

 

<?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="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:orientation="vertical">
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/length" />
 
    <EditText
        android:id="@+id/edt_length"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:lines="1" />
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/width" />
 
    <EditText
        android:id="@+id/edt_width"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:lines="1" />
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/height" />
 
    <EditText
        android:id="@+id/edt_height"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:lines="1" />
 
    <Button
        android:id="@+id/btn_calculate"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/calculate" />
 
    <TextView
        android:id="@+id/tv_result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/result"
        android:textSize="24sp"
        android:textStyle="bold" />
</LinearLayout>

 

Penjelasan code di atas :
Layout yang digunakan adalah LinearLayout.
TextView wajib menambahkan attribut id untuk memanipulasi data dan attribut text wajib dimasukan ke berkas res/values/strings.xml atau tekan Alt+Enter pada bagian tanda warning yang muncul di attribut text dan dan extract string resource, isi sesuai dengan data dan akan otomatis masuk ke strings.xml

Selanjutnya setelah selesai, lanjutkan dengan membuka berkas MainActivity dan lanjutkan ngoding baris-baris di bawah ini :

 

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText edtWidth, edtHeight, edtLength;
    private Button btnCalculate;
    private TextView tvResult;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        edtWidth = findViewById(R.id.edt_width);
        edtHeight = findViewById(R.id.edt_height);
        edtLength = findViewById(R.id.edt_length);
        btnCalculate = findViewById(R.id.btn_calculate);
        tvResult = findViewById(R.id.tv_result);
 
        btnCalculate.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_calculate) {
            String inputLength = edtLength.getText().toString().trim();
            String inputWidth = edtWidth.getText().toString().trim();
            String inputHeight = edtHeight.getText().toString().trim();
 
            boolean isEmptyFields = false;
 
            if (TextUtils.isEmpty(inputLength)) {
                isEmptyFields = true;
                edtLength.setError("Field ini tidak boleh kosong");
            }
 
            if (TextUtils.isEmpty(inputWidth)) {
                isEmptyFields = true;
                edtWidth.setError("Field ini tidak boleh kosong");
            }
 
            if (TextUtils.isEmpty(inputHeight)) {
                isEmptyFields = true;
                edtHeight.setError("Field ini tidak boleh kosong");
            }
 
            if (!isEmptyFields) {
                double volume = Double.valueOf(inputLength) * Double.valueOf(inputWidth) * Double.valueOf(inputHeight);
                tvResult.setText(String.valueOf(volume));
            }
        }
    }
}

 

Penjelasan code di atas :
Pertama elemen kosong harus di declare-kan terlebih dahulu.
Kemudian set element dengan textView pada event onCreate dan memberikan perintah untuk action pada button.
Lalu buat event Onclick untuk melakukan perintah, dengan urutan pengambilan data, pengecekan data jika kosong dan memproses data lalu menampilkan pada textView.

untuk mengatasi data hilang ketika perubahan orientasi tambahkan script ini :

 

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private EditText edtWidth;
    private EditText edtHeight;
    private EditText edtLength;
    private Button btnCalculate;
    private TextView tvResult;
 
    private static final String STATE_RESULT = "state_result";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
    }
 
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(STATE_RESULT, tvResult.getText().toString());
    }
 
    ...
}

 

Dan tambahkan juga di dalam onCreate

 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    ...
 
    if (savedInstanceState != null) {
        String result = savedInstanceState.getString(STATE_RESULT);
        tvResult.setText(result);
    }
}

 

*Update Android Studio 4.1
Selamat mencoba, terima kasih



0 Comments


Leave a Reply

Scroll to Top