Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rplcoders.android.latihanactivity
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.view.View
- import android.widget.Button
- import android.widget.EditText
- import android.widget.TextView
- class MainActivity : AppCompatActivity(), View.OnClickListener {
- // pendeklarasian variabel penampung objek dari view components yang akan digunakan
- private lateinit var edtWidth: EditText
- private lateinit var edtHeight: EditText
- private lateinit var edtLength: EditText
- private lateinit var btnCalculate: Button
- private lateinit var tvResult: TextView
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- // pengambilan object EditText, Button, dan TextView untuk dioperasikan di codingan
- 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)
- // mengeset OnClickListener untuk tombol Hitung
- btnCalculate.setOnClickListener(this)
- // jika ada state yang tersimpan, ambil teks untuk tvResult dari situ
- if (savedInstanceState != null) {
- tvResult.text = savedInstanceState.getString(STATE_RESULT)
- }
- }
- override fun onClick(v: View) {
- // mengecek apakah tombol yang diklik adalah Button dengan ID btn_calculate
- if (v.id == R.id.btn_calculate) {
- // ambil nilai dari EditText, lewatkan fungsi trim
- val inputLength = edtLength.text.toString().trim()
- val inputWidth = edtWidth.text.toString().trim()
- val inputHeight = edtHeight.text.toString().trim()
- // inisialisasi variabel pengecekan validitas inputan
- var isEmptyFields = false
- // pengecekan kosong tidaknya inputan
- if (inputLength.isEmpty()) {
- isEmptyFields = true
- edtLength.error = "Panjang tidak boleh kosong"
- }
- if (inputWidth.isEmpty()) {
- isEmptyFields = true
- edtWidth.error = "Lebar tidak boleh kosong"
- }
- if (inputHeight.isEmpty()) {
- isEmptyFields = true
- edtHeight.error = "Tinggi tidak boleh kosong"
- }
- // jika inputan valid semua, baru lakukan kalkulasi dan menampilkan ke TextView
- if (!isEmptyFields) {
- val volume = inputLength.toDouble() * inputWidth.toDouble() * inputHeight.toDouble()
- tvResult.text = volume.toString()
- }
- }
- }
- // pembuatan companion object untuk membantu mendeklarasikan konstanta STATE_RESULT
- companion object {
- private const val STATE_RESULT = "state_result"
- }
- // function override untuk menyimpan state saat terjadi pemuatan ulang Activity
- override fun onSaveInstanceState(outState: Bundle) {
- super.onSaveInstanceState(outState)
- outState.putString(STATE_RESULT, tvResult.text.toString())
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement