PPB I - EAS

    

Nama : Rachel Anggieuli AP
NRP : 5025201263
Tahun : 2023/2024
Kelas : PPB I

EAS

Soal EAS:

  1. Buat spesifikasi dan deskripsi aplikasi yang mampu dibuat berdasarkan studi kasus di atas?
  2. Buat use case dan flowchart yang akan diimplementasikan ?
  3. Gambarkan UI yang akan diimplementasikan
  4. Implementasikan Rancangan
  5. Buat presentasi dan demo implementasi upload di Youtube, dan isi lembar monitoring?
Jawaban Essay terdapat di Docs
Link DOCS: Link Docs EAS PBB

Demo Aplikasi
Link Youtube: Link Youtube EAS PPB

MainActivity.kt
    <>
package com.example.myalfamind

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            LoginActivity()
        }
    }
}
<>
LoginActivity.kt
<>
package com.example.myalfamind

import android.util.Log
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.ClickableText
import androidx.compose.material3.Button
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text
import androidx.compose.material3.ButtonDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.*
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
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.PasswordVisualTransformation
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.AnnotatedString


@Composable
fun LoginActivity() {
    var email by remember { mutableStateOf("") }
    var password by remember { mutableStateOf("") }

    Column(
        modifier = Modifier.fillMaxSize(),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        Image(
            painter = painterResource(id = R.drawable.logo),
            contentDescription = "Login Image",
            modifier = Modifier.size(200.dp)
        )
        Text(text = "Welcome Back", fontSize = 28.sp, fontWeight = FontWeight.Bold)

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

        Text(text = "Login to your account")

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

        OutlinedTextField(
            value = email,
            onValueChange = { email = it },
            label = { Text(text = "Email address") }
        )

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

        OutlinedTextField(
            value = password,
            onValueChange = { password = it },
            label = { Text(text = "Password") },
            visualTransformation = PasswordVisualTransformation()
        )

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

        Button(
            onClick = {
                Log.i("Credential", "Email : $email Password : $password")
            },
            colors = ButtonDefaults.buttonColors(containerColor = Color.Red)
        ) {
            Text(text = "Login")
        }

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

        ClickableText(
            text = AnnotatedString("Forgot Password?"),
            onClick = {},
            style = androidx.compose.ui.text.TextStyle(color = Color(0xFFC30010))
        )

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

        Text(text = "Or sign in with")

        Row(
            modifier = Modifier
                .fillMaxWidth()
                .padding(30.dp),
            horizontalArrangement = Arrangement.SpaceEvenly
        ) {
            Image(
                painter = painterResource(id = R.drawable.google),
                contentDescription = "Google",
                modifier = Modifier
                    .size(50.dp)
                    .clickable { }
            )

            Image(
                painter = painterResource(id = R.drawable.fb),
                contentDescription = "Facebook",
                modifier = Modifier
                    .size(50.dp)
                    .clickable { }
            )

            Image(
                painter = painterResource(id = R.drawable.twitter),
                contentDescription = "X",
                modifier = Modifier
                    .size(50.dp)
                    .clickable { }
            )
        }
    }
}

@Preview(showBackground = true, showSystemUi = true, name = "My Preview")
@Composable
fun LoginActivityPreview() {
    LoginActivity()
}
<>

Comments

Popular posts from this blog

PPB I - Tugas Pert 11

PPB I - Tugas Pert 8

PPB I - ETS