- Perubahan Tema - Penambahan Speedometer BMI - Gender - Umur
37 lines
2.4 KiB
Markdown
37 lines
2.4 KiB
Markdown
# Proyek UTS - Aplikasi Kalkulator BMI
|
|
|
|
Sebuah aplikasi Android modern yang saya buat untuk tugas Ujian Tengah Semester (UTS). Aplikasi ini berfungsi sebagai kalkulator Indeks Massa Tubuh (BMI) yang fungsional dan punya tampilan menarik.
|
|
|
|
- **Nama:** Hadi Prakoso
|
|
- **NPM:** 202310715312
|
|
|
|
## Fitur Utama
|
|
|
|
- **Kalkulasi BMI Akurat**: Menghitung BMI berdasarkan berat dan tinggi badan pengguna.
|
|
- **Dua Sistem Unit**: Mendukung sistem Metrik (kg, cm) dan USC (lbs, inches).
|
|
- **Input Lengkap**: Memasukkan data tambahan seperti Umur dan Jenis Kelamin untuk konteks.
|
|
- **Visualisasi Hasil**: Menampilkan hasil dengan speedometer interaktif dan kategori yang jelas (Underweight, Normal, Overweight, Obesity).
|
|
- **Detail Tambahan**: Memberikan informasi bermanfaat seperti:
|
|
- Rentang BMI Sehat (18.5 - 25.0)
|
|
- Rentang Berat Badan Sehat (dihitung berdasarkan tinggi)
|
|
- BMI Prime
|
|
- Indeks Ponderal
|
|
- **Validasi Input**: Mencegah pengguna memasukkan data yang tidak valid atau tidak wajar (misalnya, tinggi atau berat badan nol/negatif, umur tidak wajar).
|
|
- **UI/UX Modern**: Dibuat dengan Jetpack Compose, menampilkan tema gelap yang elegan dan mudah digunakan.
|
|
|
|
## Proses Pengembangan & Peran AI (Gemini)
|
|
|
|
Dalam pengerjaan proyek ini, saya banyak dibantu oleh **AI Gemini** sebagai asisten coding. Prosesnya jadi lebih cepat dan saya bisa belajar banyak hal baru.
|
|
|
|
- **Debugging**: Saat jarum speedometer tidak bergerak atau ada error `type mismatch` di unit test, Gemini membantu menemukan penyebab dan memberikan solusinya.
|
|
- **Refactoring & Best Practice**: Gemini memberikan masukan agar kode saya lebih rapi dan sesuai dengan praktik terbaik, misalnya memisahkan logika dari UI.
|
|
- **Dokumentasi & Unit Test**: Saya juga dibantu dalam membuat kerangka awal untuk file `README.md` ini dan file `BMICalculatorTest.kt`, yang kemudian saya sesuaikan lagi.
|
|
|
|
Bantuan dari Gemini sangat mempercepat proses development, terutama saat menghadapi *error* atau butuh ide untuk struktur kode yang lebih baik.
|
|
|
|
## Aspek Teknis Lainnya
|
|
|
|
- **Unit Testing**: Proyek ini dilengkapi dengan unit test (`BMICalculatorTest.kt`) untuk memverifikasi akurasi fungsi `calculateBmi` dan `determineBmiCategory`.
|
|
- **Kualitas Kode**: Kode diusahakan agar mudah dibaca dan modular. Adanya komentar di bagian-bagian penting juga membantu menjelaskan alur program.
|
|
- **Penggunaan Git**: Setiap perubahan signifikan pada proyek ini saya lacak menggunakan Git, lengkap dengan pesan *commit* yang deskriptif.
|