diff --git a/README.md b/README.md index 08d4aa4..53f1456 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,36 @@ -Kalkulator BMI -=============== +# Proyek UTS - Aplikasi Kalkulator BMI -Silahkan kembangkan aplikasi ini untuk melakukan perhitungan 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. -Petunjuk lebih detil dapat dibaca di -https://docs.google.com/document/d/1iGiC0Bg3Bdcd2Maq45TYkCDUkZ5Ql51E/edit?rtpof=true +- **Nama:** Hadi Prakoso +- **NPM:** 202310715312 -Starter dimodifikasi dan terinspirasi dari: -https://developer.android.com/codelabs/basic-android-compose-calculate-tip#0 \ No newline at end of file +## 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.