PPB - ETS - To-Do List App

Nama: Rafie Zaidan Umara
NRP: 5025231245
Mata Kuliah: Pemrograman Perangkat Bergerak (PPB) C 


Aplikasi To-Do List Personal
Repo Github: todo-list-code

1. Pendahuluan

1.1 Latar Belakang
    Dalam kehidupan sehari-hari, manajemen tugas menjadi salah satu hal penting untuk meningkatkan produktivitas. Banyak pengguna membutuhkan aplikasi sederhana yang dapat membantu mencatat tugas, menentukan deadline, dan memantau progres penyelesaian tugas. Oleh karena itu, dibuat aplikasi Daily Task Manager, yaitu aplikasi berbasis Android yang dikembangkan menggunakan Kotlin dan Jetpack Compose. Aplikasi ini memungkinkan pengguna untuk menambahkan tugas, menentukan deadline, menandai tugas selesai, serta menghapus tugas.

1.2 Tujuan
Tujuan dari pembuatan aplikasi ini adalah:
    Membuat aplikasi manajemen tugas sederhana berbasis Android.
    Menerapkan konsep modern Android Development menggunakan Jetpack Compose.
    - Mengimplementasikan database lokal menggunakan Room Database.
    - Memahami konsep ViewModel dan state management pada Android.
    - Memberikan pengalaman penggunaan aplikasi yang sederhana dan interaktif.

2. Teknologi yang Digunakan

Berikut teknologi yang digunakan dalam pengembangan aplikasi
  - Kotlin: Bahasa pemrograman utama
  - Jetpack Compose: Framework UI modern Android
  - Room Database: Penyimpanan database lokal 
  - ViewModel: Mengelola state aplikasi
  - Android Studio: IDE pengembangan aplikasi
  - Material 3: Desain antarmuka modern

3. Struktur Project

Project Daily Task Manager memiliki struktur folder sebagai berikut:
    - data/
        - Task.kt
        - TaskDao.kt
        - TaskDatabase.kt
    - ui/
        - AddTaskDialog.kt
        - MainActivity.kt
        - TaskItem.kt
        - TaskScreen.kt
    - viewmodel/
        - TaskViewModel.kt

Struktur tersebut digunakan untuk memisahkan logic aplikasi agar lebih rapi dan mudah dikembangkan.

4. Implementasi Aplikasi

4.1 Entity Task
Entity Task digunakan untuk menyimpan data tugas pada database Room. Fitur data yang disimpan:
  ID tugas
  - Judul tugas
  - Deadline
  - Status selesai atau belum




4.2 Room Database
Room Database digunakan untuk menyimpan data task secara lokal pada perangkat Android.
Komponen utama Room Database:
    - Task.kt → Entity
    - TaskDao.kt → Query database
    - TaskDatabase.kt → Konfigurasi database

Aplikasi menggunakan:
    - fallbackToDestructiveMigration(), agar database tetap berjalan ketika terjadi perubahan schema.

4.3 Tampilan Add Task

Fitur Add Task digunakan untuk menambahkan tugas baru.
Pengguna dapat:
    - Mengisi nama tugas
    - Menentukan deadline
    - Menyimpan task

Tampilan dibuat menggunakan:
    - AlertDialog
    - TextField
    - Button
    - Material 3 Components


4.4 Tampilan Task List
Task yang telah dibuat akan muncul pada halaman utama aplikasi.
Fitur yang tersedia:
    - Menampilkan daftar task
    - Menandai task selesai
    - Menghapus task
    - Menampilkan deadline task


4.5 Implementasi Deadline
Deadline pada aplikasi disimpan menggunakan tipe data Long dengan format timestamp. Kemudian timestamp dikonversi menjadi format tanggal menggunakan:

SimpleDateFormat(
    "EEE, dd MMM yyyy HH:mm",
    Locale.getDefault()
)

Contoh hasil tampilan: Tue, 30 Apr 2026 21:00

5. ViewModel dan State Management
Aplikasi menggunakan ViewModel untuk mengelola data task. Keuntungan menggunakan ViewModel:
    - Data tetap tersimpan saat rotasi layar
    - Memisahkan UI dan business logic
    - State lebih mudah dikelola

TaskViewModel bertanggung jawab untuk:
    - Menambah task
    - Menghapus task
    - Mengubah status task
    - Mengambil data task dari database

6. Hasil Akhir Aplikasi
Aplikasi berhasil berjalan dengan fitur:
    Menambahkan task
    Menampilkan task
    - Menyimpan task ke database lokal
    - Menghapus task
    - Menandai task selesai
    - Menampilkan deadline task

Aplikasi memiliki tampilan sederhana dan mudah digunakan.

7. Kesimpulan
Berdasarkan hasil implementasi, aplikasi Daily Task Manager berhasil dibuat menggunakan Kotlin dan Jetpack Compose.

Melalui project ini, diperoleh pemahaman mengenai:
    - Pengembangan aplikasi Android modern
    - Penggunaan Jetpack Compose
    - Implementasi Room Database
    - Pengelolaan state menggunakan ViewModel
    - Pembuatan UI interaktif menggunakan Material 3

Aplikasi ini masih dapat dikembangkan lebih lanjut dengan fitur tambahan seperti:
    - Notifikasi deadline
    - Calendar integration
    - Dark mode
    - Sorting dan filtering task
    - Sinkronisasi cloud database

Comments

Popular posts from this blog

Tugas Eksplorasi Perkembangan Teknologi Rafie Zaidan Umara 5025231245

PPB - Pertemuan 10 dan 11 - Marketplace Siswa

Tugas 4 PBO - Clock Display