Skip to main content

Login - Android

 

Nama: Richard Ryan

NRP: 5025211141

Kelas: PPB (G)

Tema: Halaman Login


Link Github :  Github

Penjelasan Kode

Pertama diperlukan beberapa variabel untuk menyimpan data yang ada di halaman login. Variabel email dan password digunakan untuk menyimpan teks yang akan ditulis di textfield. Variabel passwordVisible merupakan variabel yang menyatakan apakah password dapat terlihat karakternya ataukah ter-encrypt

var email by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
var passwordVisible by remember { mutableStateOf(false) }

Kemudian, untuk textbox email buat sebagai berikut.

OutlinedTextField(
            value = email,
            onValueChange = { email = it },
            label = { Text("Masukkan Email") },
            singleLine = true,
            modifier = Modifier
                .fillMaxWidth()
                .padding(top = 4.dp)
        )

Untuk textbox password agak sedikit berbeda untuk mengakomodir penggantian status terlihat dan tidak
OutlinedTextField(
            value = password,
            onValueChange = { password = it },
            label = { Text("Masukkan Password") },
            singleLine = true,
            visualTransformation = if (passwordVisible) VisualTransformation.None 
                                   else PasswordVisualTransformation(),
            trailingIcon = {
                val icon = if (passwordVisible) "🙈" else "👁"
                Text(
                    text = icon,
                    fontSize = 18.sp,
                    modifier = Modifier
                        .clickable { passwordVisible = !passwordVisible }
                        .padding(end = 8.dp)
                )
            },
            modifier = Modifier
                .fillMaxWidth()
                .padding(top = 4.dp)
        )


Opsional

Sebagai tambahan, juga dapat langsung dicek apakah input valid (user ada) atau tidak

Pertama, buat terlebih dahulu data class User yang menyimpan bentuk entity User sebagai berikut
data class User(
    val username: String,
    val email: String,
    val password: String
)

Kemudian, buat daftar user yang terdaftar di sistem, misalkan sebagai berikut
val Users = listOf(
    User("user 1", "user1@gmail.com", "password1"),
    User("user 2", "user2@gmail.com", "password2")
)

Setelah itu, ubah kode tombol login sebagai berikut. Pertama akan dicari apakah ada entity User dari list dengan email dan password yang sesuai dengan input di halaman login, apabila ada maka dapat berpindah ke halaman selanjutnya dengan mempassing pula username serta emailnya. Apabila data tidak ditemukan, maka buat teks yang menyatakan gagal login di bawah tombol
var loginError by remember { mutableStateOf(false) }

Button(
    onClick = {
        val matchedUser = Users.find { it.email == email && it.password == password }

        if (matchedUser != null) {
            val intent = Intent(context, HelloActivity::class.java).apply {
                putExtra("email", matchedUser.email)
                putExtra("username", matchedUser.username)
            }
            context.startActivity(intent)
            (context as? ComponentActivity)?.finish()
        } else {
            loginError = true
        }
    },
    modifier = Modifier.fillMaxWidth()
) {
    Text("Login")
}

if (loginError) {
    Spacer(modifier = Modifier.height(16.dp))
    Text(
        text = "Email atau password salah",
        color = MaterialTheme.colorScheme.error
    )
}

Hasil

Comments

Popular posts from this blog

Starbucks Clone - Android

  Nama: Richard Ryan NRP: 5025211141 Kelas: PPB (G) Tema: Aplikasi Starbucks Link Github :  Github Hasil

Trash2Cash

  Trash2Cash Aplikasi Manajemen Bank Sampah

Simple Calculator - Android

  Nama: Richard Ryan NRP: 5025211141 Kelas: PPB (G) Tema: Calculator Link Github :   Github Penjelasan Kode Pertama buat variabel yang akan digunakan untuk menyimpan persamaan dan hasilnya var equation by remember { mutableStateOf("") } var result by remember { mutableStateOf("") } Setelah itu buat beberapa fungsi utility yang akan digunakan untuk memproses / menghitung persamaan Fungsi calc() akan menggunakan Expression() dari library  org.mariuszgromada.math.mxparser.Expression yang dapat digunakan untuk mendapatkan nilai suatu persamaan dari string ekspresi Fungsi addToEq()  digunakan untuk menambahkan karakter ke persamaan Fungsi clearEq() digunakan untuk menghapus persamaan yang ada Fungsi dropLast() digunakan untuk menghapus karakter terakhir dari fungsi Fungsi equals() digunakan untuk memindahkan hasil perhitungan ke persamaan sehingga dapat mempermudah perhitungan berikutnya Fungsi calc() akan dipanggil sebagai langkah pertama setiap fungsi...