Tugas PPB - Membuat Login Page Sederhana

Nama : Mavaldi Rizqy Hazdi

NRP : 5025211086

Kelas : Pemrograman Perangkat Bergerak D


    Tugas kali ini adalah membuat sebuah login page sederhana menggunakan android studio kotlin, pada aplikasi ini akan terdapat 2 input teks berupa email dan password. 


File MainActivity.kt :

package com.example.loginpage

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.*
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.loginpage.ui.theme.LoginpageTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LoginpageTheme {
Surface(modifier = Modifier.fillMaxSize()) {
LoginPage()
}
}
}
}
}

@Composable
fun LoginPage() {
var email by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
var passwordVisible by remember { mutableStateOf(false) }

Column(
modifier = Modifier
.fillMaxSize()
.padding(24.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "Enter your account",
fontSize = 28.sp,
fontWeight = FontWeight.Bold
)

Spacer(modifier = Modifier.height(32.dp))

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

Spacer(modifier = Modifier.height(16.dp))

OutlinedTextField(
value = password,
onValueChange = { password = it },
label = { Text("Password") },
singleLine = true,
visualTransformation = if (passwordVisible) VisualTransformation.None else PasswordVisualTransformation(),
trailingIcon = {
val iconText = if (passwordVisible) "Hide" else "See"
Text(
text = iconText,
modifier = Modifier
.clickable { passwordVisible = !passwordVisible }
.padding(8.dp),
color = MaterialTheme.colorScheme.primary
)
},
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
modifier = Modifier.fillMaxWidth()
)

Spacer(modifier = Modifier.height(8.dp))

Text(
text = "Forgot Password?",
color = MaterialTheme.colorScheme.primary,
modifier = Modifier
.align(Alignment.End)
.clickable { /* Aksi lupa password */ }
)

Spacer(modifier = Modifier.height(24.dp))

Button(
onClick = { /* Aksi login */ },
modifier = Modifier
.fillMaxWidth()
.height(50.dp)
) {
Text("Continue")
}

Spacer(modifier = Modifier.height(24.dp))

Text("Or login with")

Spacer(modifier = Modifier.height(16.dp))

Row(
horizontalArrangement = Arrangement.spacedBy(24.dp)
) {
Image(
painter = painterResource(id = R.drawable.ic_google),
contentDescription = "Google Login",
modifier = Modifier
.size(48.dp)
.clickable { /* Aksi login google */ }
)

Image(
painter = painterResource(id = R.drawable.ic_facebook),
contentDescription = "Facebook Login",
modifier = Modifier
.size(48.dp)
.clickable { /* Aksi login facebook */ }
)
}
}
}

@Preview(showBackground = true, showSystemUi = true)
@Composable
fun LoginPagePreview() {
LoginpageTheme {
LoginPage()
}
}


Tampilan Aplikasi pada Android Studio


Tampilan Aplikasi pada Emulator


*terdapat fitur see dan hide pada bagian input password, agar saat memasukkan password, pengguna bisa melihat ketikan password mereka. Serta juga terdapat icon google dan facebook pada bagian bawah sebagai pilihan login lainnya.


Link Github : Github

Vidio Presentasi 




Komentar

Postingan populer dari blog ini

Tugas PPB - Membuat Aplikasi Sederhana Menggunakan Jetpack Compose

ETS PPB - Aplikasi Galeri (MyGallery)

EAS Pemrograman Perangkat Bergerak - Aplikasi Sight