public class MainActivity extends AppCompatActivity implements View.OnClickListener{ EditText edtWidth, edtHeight, edtLength; Button btnCalculate; 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; boolean isInvalidDouble = 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"); } Double length = toDouble (inputLength); Double width = toDouble (inputWidth); Double height = toDouble (inputHeight); if (length == null) { isInvalidDouble = true; edtLength.setError("Field ini harus berupa nomer yang valid"); } if (width == null) { isInvalidDouble = true; edtWidth.setError("Field ini harus berupa nomer yang valid"); } if (height == null) { isInvalidDouble = true; edtHeight.setError("Field ini harus berupa nomer yang valid"); } if (!isEmptyFields && !isInvalidDouble) { double volume = length * width * height; tvResult.setText(String.valueOf(volume)); } } } private Double toDouble(String str) { try { return Double.valueOf(str); } catch (NumberFormatException e) { return null; } } }