Praktikum 1: Aplikasi BMI Sederhana
Aplikasi yang hendak dibuat pada kegiatan kali ini adalah aplikasi penghitung indeks bobot tubuh atau dikenal dengan istilah body mass index (BMI).
Secara ringkas, urutan perjalanan aplikasi yang dibuat berawal dari kemunculan sebuah splash screen dan dilanjutkan dengan antarmuka utama yaitu kalkulator BMI dengan aturan pengguna harus memasukkan beberapa data antara lain:
- Jenis kelamin (Radio Group),
- Berat badan (Edit Text),
- Tinggi badan (Edit Text), dan
- Umur (Edit Text).
Hasil ditampilkan melalui dialog box berisi informasi dari masukan yang telah diberikan oleh pengguna.
Pada bagian ini, template yang digunakan adalah template asli yang disediakan oleh Android Studio.
Pembuatan project
- Buka aplikasi Android Studio, pilih
Start a new Android Studio Project
. - Jenis project yang dipilih adalah
empty activity
. - Beri nama project (contoh: Aplikasi Kalkulator BMI) dan nama packagenya (contoh: polinema.ac.id.aplikasikalkulatorbmi) yang sesuai.
- Project awal selesai dibuat.
Penataan Layout
Layout yang dibuat meliputi beberapa komponen yaitu RadioGroup
, TextView
, EditText
, dan Button
. Layout yang akan dibuat akan berbentuk seperti berikut.
- Buka activity_main.xml yang terletak di app -> res -> layout -> activity_main.xml.
- Buat layout dengan jenis
Constraint Layout
. tambahkan id dengan namaactivity_main
. - Tambahkan sebuah komponen
radio group
. Perhatikan bahwa constraint yang berlaku pada komponen radio grup ini antara lain:app:layout_constraintEnd_toEndOf="parent"
,app:layout_constraintStart_toStartOf="parent"
, danapp:layout_constraintTop_toTopOf="parent"
. - Item-item pada
radio group
diwujudkan sebagairadio button
, tambahkan properti-properti berikut diradio button
,abaikan sementara tanda merah di kode program. - Tambahkan tiga buah TextView, berikan nama masing-masing Bobot(kg), Tinggi(cm), Umur(th).
Tambahkan dua buah
Button
dan sebuahEditText
dengan posisi setelahTextView
yang telah dibuat. Perhatikan bahwaButton
danEditText
memiliki id yang berbeda.a.
Button
danEditText
pada bobot.b.
Button
danEditText
pada tinggi.c.
Button
danEditText
pada umur.- Tambahkan sebuah
Button
di bagian layout paling bawah untuk tombol proses hitung BMI. Tanda merah yang terdapat di kode program diatasi dengan memperhatikan posisi
value
yang seharusnya diletakkan, seperti @string/ berarti terletak di app -> res -> values -> string.a. string.xml, di dalam string.xml selain
logo_plus
danlogo_minus
terdapat beberapa string yang sudah tertulis, oleh karena itu sebaiknya peserta menuliskan semua string sesuai dengan petunjuk di bawah ini sehingga seluruh sumber daya string yang digunakan pada aplikasi yang dibuat langsung tersedia tanpa harus menyediakan string tersebut pada setiap langkah penulisan kode program.b. dimen.xml
c. drawable, berdasarkan properti pada
RadioButton
yang sudah dibuat di activity_main.xml yaituandroid:background="@drawable/radio_flat_selector"
danandroid:textColor="@drawable/radio_flat_text_selector"
, maka di direktori drawable perlu penambahan berkas sumber daya bernama radio_flat_selector.xml yang berfungsi memberikan efek ganti warna padaRadioButton
ketika dipilih (berwarna pink) atau tidak dipilih (warna putih) dan radio_flat_text_selector.xml yang berfungsi untuk memberikan warna yang khas ketika terpilih (teks berwarna putih) dan tidak terpilih (teks berwarna pink) bagi setiap teks diRadioButton
tersebut.radio_flat_selector.xml
Perlu diketahui bahwa di dalam radio_flat_selector.xml ternyata membutuhkan radio_flat_selected.xml sebagai penanda perubahan warna untuk
RadioButton
yang terpilih dan radio_flat_regular.xml sebagai penanda perubahan warna untukRadioButton
yang tidak terpilih di direktori drawable, oleh karena itu tambahkan dua berkas tersebut.radio_flat_selected.xml
radio_flat_regular.xml
Perhatikan tag
<shape>
di kedua berkas radio flat, terdapatandroid:shape="rectangle"
yang menandakanRadioButton
yang dibuat berbentuk persegi (miripButton
, bukan bulatan point sepertiRadioButton
pada umumnya). Jika@color/colorWhite
belum terdaftar di colors.xml di values maka tambahkan<color name="colorWhite">#FFFFFF</color>
di dalamnyaAdapun isi dari radio_flat_text_selector.xml adalah sebagai berikut:
radio_flat_text_selector.xml
Fitur BMI
Fungsi yang dikembangkan dibuat di MainActivity.java meliputi: fungsi dasar, fungsi hitung BMI, dan tampilan hasil melalui Dialog Box.
Fungsi Dasar
Berdasarkan kegiatan sebelumnya, diketahui terdapat tiga komponen antarmuka untuk masukan yang dibuat, yaitu:
EditText
,RadioGroup
, danRadioButton
. Walaupun terdapat beberapaButton
yang memiliki id yaitucalc
,krgBerat
,tmbBerat
,krgTinggi
,tmbTinggi
,krgUmur
, dantmbUmur
untuk memproses nilai masukan,Button
tersebut tidak perlu diinisialisasikan di MainActivity.java karena sudah didaftarkanandroid:onClick=""
diButton
tersebut (secara otomatis mengarah ke method yang dituju).Tambahkan inisialisasi tipe data dari setiap
EditText
yang ditampilkan di antarmuka.Kenalkan komponen tersebut sesuai id yang didaftarkan melalui activity_main.xml.
Khusus
RadioGroup
pastikan juga diberikan sebuah variabel bernamapilihGender
untuk mendapatkan id dariRadioButton
yang dipilih.Supaya tombol plus dan minus yang terdapat pada setiap menu bobot, tinggi, dan umur berfungsi maka buat method untuk mengaktifkan pengurangan dan penambahan nilai pada
EditText
di setiap menu. Contoh pada menu bobotBuat juga method yang lain untuk menu tinggi dan umur sesuai yang terdaftar di
android:onClick=""
di activity_main.xml. JikadisplayBerat()
masih berwarna merah, abaikan saja karena method ini dibuat di langkah selanjutnya.Supaya method yang dibuat pada langkah 4 (langkah sebelumnya) berfungsi di EditText, maka tambahkan method display untuk setiap menu.
Buat juga method yang lain untuk menu tinggi dan umur.
Versi lengkap dari langkah 4 dan 5 adalah sebagai berikut
method krg dan tmb.
method display.
Hitung BMI
Penghitungan BMI membutuhkan method calculateBMI()
sesuai dengan properti android:onClick="calculateBMI"
pada Button
dengan id calc
.
Buat method
calculateBMI()
.Inisialisasi tipe data string untuk variabel
bobotStr
dantinggiStr
.Untuk menghitung BMI, pastikan kolom bobot dan tinggi tidak null (kosong).
Tambahkan penghitungan BMI.
Tambahkan
displayBMI()
untuk menampilkan hasil penghitungan BMI. JikadisplayBMI()
bertanda merah, abaikan dulu karena method akan dibuat pada subbab selanjutnya.
Tampil Hasil Hitung BMI
Hasil peghitungan BMI ditampilkan dalam bentuk AlertDialog
yang diproses di method displayBMI()
.
Buat method
displayBMI()
.Buat variabel dengan tipe data String bernama
bmiLabel
(untuk menampilkan hasil penghitungan BMI) daninfoUmur
(untuk menampilkan nilai dari kolom umur yang telah dimasukkan).Tambahkan informasi kategori BMI berdasarkan kriteria berikut.
Kriteria BMI
Terlalu sangat kurus : 0 - 15.0
Sangat kurus : 15.0 - 16.0
Kurus : 16 - 18.5
Normal : 18.5 - 25
Gemuk : 25 - 30
Cukup Gemuk : 30 - 35
Sangat Gemuk : 35 - 40
Terlalu sangat gemuk : > 40
Tambahkan
bmiLabel
sebagai variabel penampung data yang dimasukkan dan hasil penghitungan BMI.bmiLabel = "Jenis kelamin: " + rdGender.getText() + "\n\n" + "Hasil Penghitungan BMI : " + bmi + " --- " + "Kategori: " + "(" + bmiLabel + ")" + "\n\n" + "Umur : " + infoUmur;
Hasil yang ditampilkan berupa
AlertDialog
, buatAlertDialog
dengan mengambil data daribmiLabel
dan jenis tombol penutupnya adalahNeutralButton
tanpa perintah apapun di dalamonClick
.AlertDialog.Builder tampilBMI = new AlertDialog.Builder(this); tampilBMI.setTitle("Hasil Penghitunan BMI"); tampilBMI.setMessage(bmiLabel).setNeutralButton("Tutup", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); AlertDialog alertDialog = tampilBMI.create(); alertDialog.show();
Fitur Splash Screen
SplashScreen dibuat sebagai pengantar dari aplikasi dibuka.
Layout splash screen
Buat layout baru bernama splashbmi.xml dengan satu komponen
TextView
(boleh ditambah komponen lain). Warna background pada modul ini menggunakan warna#3395ff
.Hasil layout splashbmi.xml.
Fungsi splash screen
Buat SplashActivity.java, intent diarahkan ke MainActivity.java melalui handler
, splash screen diatur selama 3.000 second.
Konfigurasi Android Manifest
Karena tampilan awal dari aplikasi ini adalah splash screen, maka harus dilakukan perubahan pengaturan di AndroidManifest.xml dengan cara sebagai berikut:
- Buka AndroidManifest.xml di app -> manifest - AndroidManifest.xml.
- Ubah
<activity android:name=".MainActivity">
menjadi<activity android:name=".SplashActivity">
. - Tambahkan activity baru dengan nama
.MainActivity
sehingga kode di dalam AndroidManifest.xml secara keseluruhan adalah sebagai berikut.
Hasil Aplikasi
Jalankan aplikasi yang telah dibuat, jika berhasil maka aplikasi akan berjalan sesuai tahapan berikut:
Muncul splashscreen sebagai tampilan pembuka aplikasi.
Tampilan berikutnya adalah tampilan kalkulator dengan set nilai pada setiap menu bobot, tinggi, dan umur adalah 0 (sesuai set saat inisialisasi di kode program).
Percobaan pengisian data.
Tekan tombol Hitung BMI dan laporan hasil penghitungan ditampilkan.