ListUp: Aplikasi Catatan Pribadi

ETS - Pemrograman Perangkat Bergerak (D)


Disusun oleh:

Nadia Evi Nathania / 5025221063


Sebagai bentuk Evaluasi Tengah Semester, kami diberi tugas proyek membuat aplikasi mobile sederhana. Saya bersama teman kelompok saya memilih tema aplikasi to-do list personal, dengan nama "ListUp".

Deskripsi:

ListUp adalah aplikasi To-Do List yang membantu pengguna mencatat dan mengelola tugas harian.

Fitur Utama:

  • Input tugas dengan nama dan deadline
  • Checkbox untuk status tugas (selesai/belum)
  • Penyortiran tugas berdasarkan nama, deadline, dan status

Desain:

 

Langkah Pengerjaan:

Buat Project Baru di Android Studio

Buka Android Studio → New Project
Pilih Empty Activity
Pilih Bahasa: Kotlin, dan tentukan nama project (ListUp)

Tambahkan Dependencies di build.gradle

Tambahkan berikut ke file build.gradle (Module: app):

implementation "androidx.recyclerview:recyclerview:1.3.1"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.2"

Tujuan: Menggunakan RecyclerView untuk daftar tugas dan ViewModel untuk manajemen data

Buat Data Class Task

Contoh kode:

data class Task(
    val id: Int,
    var name: String,
    var deadline: LocalDate,
    var isCompleted: Boolean = false
)

Tujuan: Menyimpan data tugas, termasuk nama, tanggal deadline, dan status selesai

Buat Layout XML

Edit activity_main.xml untuk membuat antarmuka input dan daftar:

<EditText android:id="@+id/editTextTask" />
<Button android:id="@+id/btnPickDate" android:text="Pilih Tanggal" />
<Button android:id="@+id/btnAddTask" android:text="Tambah Tugas" />
<Spinner android:id="@+id/spinnerSort" />
<androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerViewTasks" />

Tujuan: Memberikan tampilan bagi pengguna untuk memasukkan tugas dan melihat daftar

Buat Adapter RecyclerView (TaskAdapter)

Adapter mengelola data dan menampilkannya dalam bentuk daftar
Tambahkan fitur checkbox di item untuk mengubah status tugas
Contoh:

class TaskAdapter(...) : RecyclerView.Adapter<TaskViewHolder>() {
    // binding item layout, update status isCompleted
}

Buat ViewModel (TaskViewModel)

Gunakan LiveData agar RecyclerView otomatis update saat data berubah:
class TaskViewModel : ViewModel() {
    val taskList = MutableLiveData<MutableList<Task>>()
    fun addTask(task: Task) { ... }
    fun sortTasksBy(criteria: String) { ... }
}

Gunakan DatePickerDialog

Untuk memilih tanggal deadline dengan dialog:
val datePicker = DatePickerDialog(...)
datePicker.setOnDateSetListener { _, year, month, day ->
    val date = LocalDate.of(year, month + 1, day)
}

Tambahkan Penyortiran di Spinner

Spinner memungkinkan pemilihan cara urut:
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
    override fun onItemSelected(...) {
        viewModel.sortTasksBy(selectedOption)
    }

}


Hasil Akhir Produk:

  

Implementasi:

  • Menambah catatan baru dengan menekan tombol +
  • Mengatur deadline catatan
  • Mencentang checkbox untuk catatan/task yang telah selesai
  • Menghapus catatan dengan mengklik ikon tempat sampah
  • Memperbarui tata letak dan tampilan antarmuka


Video Aplikasi: [Link Youtube]

Link source code: [Link Github]

Komentar

Postingan populer dari blog ini

Jetpack Compose: The Basics App

Composable: Birthday Wish Card

Infografis Perkembangan Teknologi Perangkat Bergerak