Activity Pada Pemrograman Android
Activity adalah
komponen yang dapat dilihat oleh pengguna, sehingga mereka dapat berinteraksi
dengan aplikasi. Bila dengan dibandingkan dengan aplikasi web dan desktop,
aktivity sama seperti halaman dan form. Activity tidak hidup abadi
selamanya, dia bisa diciptakan dan dihancurkan. Activity memiliki
siklus hidup (lifecycle) yang merupakan kondisi yang akan
dialami saat diciptakan sampai dihancurkan. Ada beberapa kondisi yang akan
dialami oleh Activity seperti yang tergambar pada flow
chart berikut ini.
Penjelasan :
- onCreate() adalah
kondisi awal saat Activity baru diciptakan, biasanya dilakukan
inisialisasi pada tahapan ini.
- onStart() adalah saat
Activity dimulai
- onResume() adalah saat
Activity dibuka kembali, biasanya dieksekusi setelah onPause()
- onPause() akan dipanggil saat
ada Activity lain yang terbuka
- onStop() adalah kondisi saat
Activity tidak ditampilkan dilayar (biasanya saat pengguna menekan tombol
Home)
- onRestart() adalah kondisi
saat Activity kembali dibuka oleh pengguna
- onDestroy() adalah kondisi saat Activity dihancurkan pada memory
LATIHAN ACTIVITY
Membuat project baru dengan klik
File -> New -> New Project... pada Android Studio anda.
Pada bagian ini kita akan memilih tipe
activity awal dari template yang telah disediakan. Saat ini Android
Studio sudah menyediakan berbagai macam template activity dari yang paling
sederhana hingga yang paling kompleks. Saat ini kita pilih tipe Empty Activity,
Klik Next untuk melanjutkan.
Setelah muncul jendela Configure your
Project silahkan anda isi. Kemudian pilih tipe minimum SDK yang akan
digunakan. Disini saya akan memilih nilai minimum SDK ke level
21(Lollipop). Lalu Klik Finish.
Biasanya, tampilan layar anda akan
seperti contoh dibawah ini. Di sebelah kanan anda adalah workspace dimana
Activity anda akan berada dan bernama MainActivity.java dengan layoutnya activity_main.xml. Disebelah kiri anda terdapat struktur project, dimana nanti
kita akan banyak menambahkan berbagai komponen baru, asset dan library.
Selanjutnya kita akan mulai melakukan pengkodean aplikasi atau lebih enaknya disebut ngoding. Berikut Flow umumnya.
1. Ngoding Layout untuk user interface
aplikasi
2. Ngoding Activity untuk menambahkan
logika aplikasi
Untuk mengoptimalkan proses pengetikan,
Anda dapat memanfaatkan code completion dengan menekan ctrl+space. Android
Studio akan meng-import package dari komponen yang digunakan.
Selamat Ngoding 😊!
Menambahkan Code Sederhana pada Layout
Activity
Silahkan pilih tab
berkas activity_main.xml pada workspace Anda
(res/layout/activity_main.xml)
Dan Pastikan project window pada pilihan
Android, seperti gambar dibawah ini :
Maka akan ada tampilan seperti ini, kemudian pilih metode text.
Tambahkan baris-baris berikut :
(Perlu diperhatikan root layout yang dipakai disini adalah LinierLayout. Jika Anda menggunakan Android Studio versi 3 maka secara default yang dipakai adalah ConstraintLayout, jadi agar sesuai dengan latihan ini tinggal diganti menjadi LinierLayout).
<?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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.dicoding.picodiploma.barvolume.MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Panjang" />
<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="Lebar" />
<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="Tinggi" />
<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="Hitung" />
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hasil"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
Jika berkas dimens.xml sudah dibuat, sesuaikan isinya menjadi seperti berikut
Jika terjadi kesalahan pada atribut dimens, maka kita perlu mengubah berkas dimens.xml didalam res -> values -> dimens.xml. Kesalahan ini disebabkan karena pada Android Studio 3, berkas dimens.xml sudah tidak dibuat secara otomatis.
Langsung saja tambahkan dengan cara klik kanan pada directory res. Akan muncul dialog seperti ini :
Kemudian isi sesuai dibawah ini
Jika berkas dimens.xml sudah dibuat, sesuaikan isinya menjadi seperti berikut
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">8dp</dimen>
</resources>
Menambahkan Kode Logika Sederhana pada MainActivity
Selanjutnya setelah selesai, lanjutkan dengan membuka berkas MainActivity.java dan lanjutkan ngoding baris-baris dibawah ini.
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));
}
}
}
Double toDouble(String str) {
try {
return Double.valueOf(str);
} catch (NumberFormatException e) {
return null;
}
}
}
Pilih OK untuk menjalankan dan tunggu hingga proses building dan instalasi APK selesai. Jika sudah, seharusnya hasilnya akan seperti ini. Silakan masukan nilai panjang, lebar dan tinggi kemudian tekan tombol Hitung dan hasilnya akan ditampilkan di obyek textview tvHasil
Apakah kita sudah selesai?
Belum! Masih ada yang kurang. Ketika nilai volume sudah dihitung dan kemudian terjadi pergantian orientasi (portrait-landscape) pada peranti, maka hasil perhitungan tadi akan hilang. 
Kemudian tambahkan juga beberapa baris berikut pada baristerakhir metode onCreate.
Silakan jalankan kembali aplikasinya. Ulangi proses perhitungan seperti sebelumnya. Kemudian ganti orientasi peranti Anda. Jika sudah benar maka hasil perhitungan tidak akan hilang.














Komentar
Posting Komentar