Nama Kelompok : 1. Jeremia Sebastian Marpaung (202310715096) 2. Muhammad Fadzel Hadean Rukrus (202310715220) # To-Do List: Aplikasi Android Modern dengan Jetpack Compose ![Placeholder untuk Screenshot atau GIF Aplikasi](https://via.placeholder.com/800x400.png?text=Tampilan+Aplikasi+Anda) ## Pendahuluan Selamat datang di To-Do List, sebuah aplikasi Android fungsional yang dibangun dari awal untuk menunjukkan kekuatan dan keanggunan pengembangan UI modern menggunakan **Kotlin** dan **Jetpack Compose**. Aplikasi ini bukan sekadar daftar tugas biasa; ia adalah sebuah studi kasus tentang implementasi fitur-fitur canggih seperti notifikasi alarm, input suara, dan desain responsif dalam satu paket yang kohesif. Tujuan proyek ini adalah untuk menciptakan sebuah aplikasi manajemen tugas yang tidak hanya fungsional tetapi juga intuitif dan menyenangkan untuk digunakan, cocok untuk pelajar, profesional, atau siapa pun yang ingin mengelola tugas harian mereka dengan lebih baik. ## Fitur Unggulan Aplikasi ini dikemas dengan fitur-fitur canggih untuk meningkatkan produktivitas: - **Manajemen Tugas Lengkap** - **Buat**: Tambahkan tugas baru dengan cepat melalui antarmuka yang bersih. - **Edit**: Ubah detail tugas, termasuk teks, deadline, dan alarm, kapan saja. - **Hapus**: Hapus tugas dengan mudah, baik dari daftar aktif maupun yang sudah selesai. - **Selesaikan**: Tandai tugas sebagai selesai dengan sekali sentuh. Tugas akan secara otomatis pindah ke tab "Selesai". - **Deadline & Sistem Pengingat Cerdas** - **Tanggal Deadline**: Atur tanggal deadline menggunakan *date picker* yang terintegrasi. - **Peringatan Visual**: Tugas yang melewati batas waktu akan ditandai dengan label **"TERLAMBAT!"** berwarna merah yang jelas. - **Analisis Keterlambatan**: Pada tugas yang sudah selesai, terdapat catatan **"Tugas ini terlambat diselesaikan!"** jika diselesaikan melewati deadline, membantu refleksi manajemen waktu. - **Alarm Notifikasi** - Atur alarm pengingat untuk tugas-tugas penting menggunakan *time picker*. - Menerima notifikasi _push_ yang terjadwal dan akan berbunyi bahkan saat aplikasi ditutup, berkat implementasi `AlarmManager` dan `BroadcastReceiver`. - **Input Suara (Voice-to-Task)** - Tambahkan tugas secara _hands-free_ dengan menekan ikon mikrofon dan mengucapkan isi tugas. Aplikasi akan secara otomatis mengubah suara menjadi teks. - **Antarmuka Modern & Responsif** - **Splash Screen**: Kesan pertama yang profesional dengan layar pembuka yang elegan. - **Tema Dinamis**: Palet warna biru yang sejuk dengan dukungan mode Terang dan Gelap secara otomatis. - **Navigasi Intuitif**: _Bottom Navigation Bar_ untuk beralih antara **Tugas Aktif**, **Tugas Selesai**, dan **Statistik**. - **Layar Kosong (Empty State)**: Pesan dan ikon yang ramah akan muncul saat tidak ada tugas, membuat aplikasi terasa lebih hidup. - **Statistik Produktivitas** - Halaman khusus untuk memantau progres, menampilkan total tugas, jumlah tugas yang selesai, dan persentase tingkat penyelesaian secara keseluruhan. *(Fitur saat ini dalam tahap pengembangan dasar)*. ## Struktur Proyek Struktur proyek ini diorganisir untuk skalabilitas dan kemudahan pemeliharaan: - **`MainActivity.kt`**: File utama yang menjadi host dari semua komponen Jetpack Compose. Mengatur navigasi utama (Splash Screen & Aplikasi Utama) dan logika inti. - **`ui/theme/`**: Direktori ini berisi semua file yang mendefinisikan tampilan dan nuansa aplikasi. - **`Color.kt`**: Mendefinisikan palet warna utama untuk tema terang dan gelap. - **`Theme.kt`**: Menggabungkan skema warna, tipografi, dan bentuk menjadi satu tema Material 3 yang utuh. - **`Type.kt`**: Mendefinisikan hierarki tipografi aplikasi. - **`Shape.kt`**: Mendefinisikan bentuk-bentuk sudut yang digunakan oleh komponen seperti `Card`. - **`AlarmReceiver.kt`**: Sebuah `BroadcastReceiver` yang bertugas menerima dan menampilkan notifikasi alarm yang telah dijadwalkan. ## Tumpukan Teknologi (Tech Stack) - **Bahasa Pemrograman**: [Kotlin](https://kotlinlang.org/) (100%) - **UI Toolkit**: [Jetpack Compose](https://developer.android.com/jetpack/compose) - Pendekatan deklaratif modern untuk membangun UI Android. - **Prinsip Desain**: [Material 3](https://m3.material.io/) - Implementasi terbaru dari sistem desain Google. - **Arsitektur**: Mengadopsi prinsip-prinsip arsitektur Android modern seperti Unidirectional Data Flow (UDF) dan _State Hoisting_ pada level UI. - **Library Jetpack Utama**: - `androidx.activity:activity-compose` - `androidx.compose.material3` - `androidx.compose.material:material-icons-extended` - `androidx.lifecycle:lifecycle-runtime-ktx` - **API & Sensor**: `AlarmManager`, `NotificationManager`, dan `RecognizerIntent` untuk mikrofon. ## Panduan Instalasi & Menjalankan Untuk menjalankan proyek ini di lingkungan lokal Anda, ikuti langkah-langkah berikut: 1. **Clone Repositori**: `git clone https://[URL_repositori_Anda].git` 2. **Buka di Android Studio**: Buka proyek menggunakan Android Studio (versi Giraffe atau yang lebih baru direkomendasikan). 3. **Sinkronisasi Gradle**: Tunggu hingga Android Studio selesai mengunduh dan menyinkronkan semua dependensi yang diperlukan. 4. **Jalankan Aplikasi**: Pilih emulator atau perangkat fisik Android, lalu klik tombol 'Run'. Aplikasi memerlukan izin Mikrofon untuk fitur input suara. ## Kontribusi Saat ini, proyek ini dikelola secara pribadi. Namun, jika Anda memiliki ide atau saran untuk perbaikan, jangan ragu untuk membuka _Issue_ di repositori ini. ## Lisensi Proyek ini dilisensikan di bawah [Lisensi MIT](https://choosealicense.com/licenses/mit/). --- *README ini dibuat sebagai bagian dari proses pengembangan iteratif dengan bantuan AI.*