Mochamad Kolbi Nuron_5025231183_PPB B_MembuatLoginPageMVVM

 Nama: Mochamad Kolbi Nuron

Kelas: PPB B

NRP: 5025231183

1. Pendahuluan

Laporan ini disusun untuk mendokumentasikan pengembangan aplikasi "Login App" berbasis Android. Aplikasi ini bertujuan untuk menyediakan sistem autentikasi sederhana (Login dan Registrasi) dengan penyimpanan data pengguna secara lokal. Fokus utama pengembangan adalah pada efisiensi akses UI, persistensi data, dan performa aplikasi melalui pemrograman asinkron.

2. Teknologi dan Library yang Digunakan

Aplikasi ini dikembangkan menggunakan teknologi Android modern dengan beberapa library pendukung untuk meningkatkan efisiensi pengembangan dan kualitas aplikasi.

Teknologi yang digunakan meliputi:

1. Bahasa Pemrograman Kotlin

Kotlin digunakan sebagai bahasa utama dalam pengembangan aplikasi Android karena memiliki sintaks yang lebih ringkas, aman, serta mendukung fitur modern seperti Coroutines.

2. View Binding

View Binding digunakan untuk menghubungkan komponen antarmuka (UI) pada XML dengan kode Kotlin. Library ini menggantikan penggunaan findViewById() sehingga akses terhadap komponen UI menjadi lebih aman, sederhana, dan mengurangi kemungkinan terjadinya error null pointer.

3. Room Database

Room Database digunakan sebagai sistem penyimpanan data lokal. Room merupakan library abstraksi dari SQLite yang mempermudah proses pembuatan database, pengelolaan tabel, serta proses query data.

4. Kotlin Coroutines dan lifecycleScope

Kotlin Coroutines digunakan untuk menjalankan proses yang membutuhkan waktu lama, seperti operasi database, secara asynchronous. Dengan menggunakan lifecycleScope, proses database dapat berjalan di background thread sehingga antarmuka aplikasi tetap responsif dan tidak mengalami lag.

5. Material Design

Material Design digunakan untuk membuat tampilan aplikasi yang modern, konsisten, dan mengikuti standar desain antarmuka Android.

3. Arsitektur Data (Room Database)

Aplikasi ini menerapkan Room Database dengan tiga komponen utama, yaitu:

1. Entity (User)

Entity berfungsi sebagai representasi tabel pada database. Pada aplikasi ini terdapat entity User yang digunakan untuk menyimpan data pengguna.

Struktur tabel users terdiri dari:

  • id: Primary key pengguna

  • username: Nama pengguna

  • email: Email pengguna

  • password: Password pengguna

2. DAO (UserDao)

DAO (Data Access Object) berfungsi sebagai penghubung antara aplikasi dengan database.

Pada DAO terdapat beberapa fungsi untuk mengelola data, seperti:

  • registerUser()
    Digunakan untuk menyimpan data pengguna baru ke database.

  • getUserByUsername()
    Digunakan untuk mengambil data pengguna berdasarkan username saat proses login.

3. Database Class (AppDatabase)

AppDatabase merupakan class utama yang mengatur koneksi dan instance database.

Database dibuat menggunakan pola Singleton, sehingga hanya terdapat satu instance database yang digunakan selama aplikasi berjalan.

4. Implementasi Fitur Utama

A. Implementasi View Binding

View Binding diterapkan pada setiap Activity untuk mempermudah akses terhadap komponen UI.

Dengan View Binding, setiap elemen seperti EditText, Button, dan TextView dapat langsung dipanggil melalui objek binding tanpa menggunakan findViewById().

B. Autentikasi dan Validasi Input

Fitur autentikasi digunakan untuk mengatur proses registrasi dan login pengguna.

Pada halaman:

  • RegisterActivity

    • Pengguna memasukkan username, email, dan password.

    • Sistem melakukan validasi untuk memastikan semua data telah diisi.

    • Jika valid, data pengguna akan disimpan ke database Room.

  • LoginActivity

    • Pengguna memasukkan username dan password.

    • Sistem melakukan pengecekan data pengguna melalui database.

    • Jika data ditemukan dan password sesuai, pengguna berhasil masuk ke halaman utama.

C. Operasi Database Asynchronous dengan Coroutines

Operasi database dijalankan menggunakan Kotlin Coroutines melalui lifecycleScope.

Penggunaan asynchronous process bertujuan agar proses membaca dan menyimpan data tidak mengganggu proses utama aplikasi (Main Thread), sehingga aplikasi tetap berjalan dengan lancar.

D. Navigasi Antar Halaman Menggunakan Intent

Navigasi antar Activity menggunakan Intent.

Data tambahan seperti username dapat dikirimkan antar halaman menggunakan metode putExtra().

Contohnya:

  • Login berhasil → berpindah ke MainActivity

  • Username dikirimkan untuk ditampilkan pada halaman utama

5. Analisis Alur Kerja Sistem (Workflow)

1. Proses Registrasi

Alur proses registrasi:

  1. User membuka halaman Register.

  2. User memasukkan data username, email, dan password.

  3. Sistem melakukan validasi input.

  4. Data dikirimkan ke Room Database.

  5. Data tersimpan pada tabel users.

  6. User diarahkan kembali ke halaman Login.

2. Proses Login

Alur proses login:

  1. User memasukkan username dan password.

  2. Sistem melakukan query ke database Room.

  3. Database mencari data berdasarkan username.

  4. Jika data ditemukan, sistem membandingkan password.

  5. Jika password sesuai, user berhasil login.

  6. User diarahkan menuju halaman utama (MainActivity).

3. Keamanan Sederhana

Sistem menerapkan validasi sederhana menggunakan pengecekan kondisi:

  • User harus tersedia di database.

  • Password yang dimasukkan harus sesuai dengan password yang tersimpan.

Jika kondisi terpenuhi, akses login diberikan.

6. Kesimpulan

Aplikasi Login App berhasil menerapkan sistem autentikasi sederhana menggunakan Kotlin, View Binding, dan Room Database.

Penggunaan View Binding membantu meningkatkan keamanan dalam pengelolaan komponen UI, sedangkan Room Database mempermudah proses penyimpanan serta pengambilan data pengguna secara lokal.

Selain itu, implementasi Kotlin Coroutines dan lifecycleScope membuat proses database berjalan secara asynchronous sehingga aplikasi tetap responsif dan mengikuti standar pengembangan Android modern.

Lampiran dan Dokumentasi

Untuk melengkapi laporan, disarankan menambahkan:

  1. Screenshot aplikasi

    • Halaman Login

    • Halaman Register

    • Halaman utama setelah login berhasil

    • Tampilan Toast ketika login berhasil atau gagal

  2. Detail teknis project

    • compileSdk version

    • minSdk version

    • versi Kotlin

    • library yang digunakan

  3. Error Handling

    • Pesan error ketika username/password salah

    • Validasi ketika input masih kosong

    • Notifikasi ketika registrasi berhasil atau gagal



      source code

Komentar

Postingan populer dari blog ini

Membuat Ucapan Happy BirthDay

Mochamad Kolbi Nuron_5025231183_ETS PBO A

Mochamad Kolbi Nuron_5025231183_ETS PPB B