Sunday, January 7, 2018

Aplikasi Penghitung Volume Balok

Hello guys setelah beberapa lama hening kini awali lagi dengan coding, lohhh kok tetep coding ??? Ya iyalah harus tetep coding, coding yang penuh code-code an hehe.. ehhh tapi coding kali ini berbeda dengan debelumnya loh, yapp coding MOBILE yang sekarang udah jadi trending banget nih, bukan sekarang aja yak, kemarin-kemarin sih udah rending tapi belum nyempe saja belajar nya.

Disini karena belajar itu dimulai dari permulaan maka saya akan membuat tutorial aplikasi menghitung volume kubus, Karena kalo belajar gak ada yang instan ya guys. Tetap sabar dan semangat keinginan pasti tercapai. Eeaaa....


Dalam membuat aplikasi ini memerlukan android studio ya pastinya, kemudian disini saya menggunakan


compileSdkVersion 26

buildToolsVersion "26.0.1"


minSdkVersion 23targetSdkVersion 26versionCode 1versionName "1.0"

dan

compile 'com.android.support:appcompat-v7:26.+'compile 'com.android.support.constraint:constraint-layout:1.0.2'testCompile 'junit:junit:4.12'

di dalam Module.app nya.

Untuk layout saya memerlukan 1 layout dan 1 class java. Dimana 1 layout untuk mengatur tampilannya kemudian 1 class java untuk prosenya.
Pertama buka android studio kalian dan buat New project


Kemudian simpan project dengan nama "Volume" lalu Next
Di bawah ini merupakan pemilihan SDK yang akan anda pakai.

Gunakan layout empty activity untuk membuat aplikasi ini, jadi nanti menyusun tampilan sendiri tanpa bawaan dari tema.
Jika sudah selesai maka akan tampil halaman project seperti dibawah ini.
Pada layout activity_main.xml tuliskan code seperti dibawah ini :

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.elladw.volume.MainActivity">

    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Panjang"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>
    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/edt_length"        android:inputType="numberDecimal"        android:lines="1"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>
    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Lebar"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>
    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/edt_width"        android:inputType="numberDecimal"        android:lines="1"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>
    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Tinggi"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>
    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/edt_height"        android:inputType="numberDecimal"        android:lines="1"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>
    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/btn_calculate"        android:text="Hitung"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>
    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/tv_result"        android:text="Hasil"        android:gravity="center"        android:textSize="24sp"        android:textStyle="bold"        android:layout_marginBottom="@dimen/activity_vertical_margin"/>

</LinearLayout>
Pada activity_main.xml ini saya menggunakan Linear Layout dalam penyusunan kolomnya, dimana linear berarti terstruktur kebawah. Disini menggunaakan TextView, EditText dan Button sebagai design layout.
Kemudian pada class java MainActivity.java tuliskan code seperti dibawah ini :

package com.example.elladw.volume;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText edtWidth, edtHeight, edtLength;
    private TextView tvResult;
    private Button btnCalculate;
    private static final String STATE_HASIL = "state hasil";

    @Override    protected void onSaveInstanceState(Bundle outState){
        outState.putString(STATE_HASIL, tvResult.getText().toString());
        super.onSaveInstanceState(outState);
    }

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        edtWidth = (EditText)findViewById(R.id.edt_width);
        edtHeight = (EditText)findViewById(R.id.edt_height);
        edtLength = (EditText)findViewById(R.id.edt_length);
        tvResult = (TextView)findViewById(R.id.tv_result);
        btnCalculate = (Button)findViewById(R.id.btn_calculate);
        btnCalculate.setOnClickListener(this);

        if (savedInstanceState != null){
            String hasil = savedInstanceState.getString(STATE_HASIL);
            tvResult.setText(hasil);
        }
    }
    @Override    public void onClick(View v) {

        if(v.getId() == R.id.btn_calculate){
            String lenght = edtLength.getText().toString().trim();
            String width = edtWidth.getText().toString().trim();
            String height = edtHeight.getText().toString().trim();

            boolean isEmptyFields = false;
            if (TextUtils.isEmpty(lenght)){
                isEmptyFields = true;
                edtLength.setError("Field ini tidak boleh kosong");
            }
            if (TextUtils.isEmpty(width)){
                isEmptyFields = true;
                edtWidth.setError("Field ini tidak boleh kosong");
            }
            if (TextUtils.isEmpty(height)){
                isEmptyFields = true;
                edtHeight.setError("Field ini tidak boleh kosong");
            }
            if (!isEmptyFields){
                double l = Double.parseDouble(lenght);
                double w = Double.parseDouble(width);
                double h = Double.parseDouble(height);
                double volume = l * w * h;
                tvResult.setText(String.valueOf(volume));
            }

        }
    }
}
Penjelasan code
private EditText edtWidth, edtHeight, edtLength;
digunakan untuk mendeklarasikan variabel dari EditText dengan nama edtwidth,edtHeight,dan edtLength

edtWidth = (EditText)findViewById(R.id.edt_width);
digunakan untuk inisialisasi variabel edtWidth yang telah di deklarasikan diatas dengan id edt_width.

boolean isEmptyFields = false;
            if (TextUtils.isEmpty(lenght)){
                isEmptyFields = true;
                edtLength.setError("Field ini tidak boleh kosong");
            }
sebagai validasi jika saat kolom tidak diisi maka akan keluar alert Field tidak booleh kosong.

if (!isEmptyFields){
                double l = Double.parseDouble(lenght);
                double w = Double.parseDouble(width);
                double h = Double.parseDouble(height);
                double volume = l * w * h;
                tvResult.setText(String.valueOf(volume));
            }
digunakan untuk mendeklarasikan variabel l, w dan h dengan tipe data double, kemudian volume dengan ketentuan rumus balok yaitu V = L * W * H

Finish, aplikasi sudah bisa digunakan


           

=>