commit e71ed02dea1f5626e5dedb563cc0cd783c9adf3e Author: 202310715123 FARIS NAUFAL PRIATNA <202310715123@mhs.ubharajaya.ac.id> Date: Thu Oct 30 19:31:59 2025 +0700 Upload files to "/" Tugas Membuat Kartu Nama diff --git a/MainActivity.kt b/MainActivity.kt new file mode 100644 index 0000000..41e794c --- /dev/null +++ b/MainActivity.kt @@ -0,0 +1,123 @@ +//Faris Naufal Priatna +//202310715123 +package com.example.kartunama + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Call +import androidx.compose.material.icons.filled.Email +import androidx.compose.material.icons.filled.Share +import androidx.compose.material3.* +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.kartunama.ui.theme.KartuNamaTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContent { + KartuNamaTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.surfaceVariant + ) { + BusinessCard() + } + } + } + } +} + +@Composable +fun BusinessCard() { + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.surfaceVariant) + ) { + // () + Column( + modifier = Modifier + .align(Alignment.Center) + .padding(16.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Image( + painter = painterResource(id = R.drawable.gambarfaris), + contentDescription = "Logo", + modifier = Modifier + .size(120.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + + Spacer(modifier = Modifier.height(16.dp)) + + Text( + text = "Faris Naufal Priatna", + fontSize = 30.sp, + fontWeight = FontWeight.Bold + ) + + Text( + text = "University Of Ubhara Jaya", + fontSize = 16.sp, + color = MaterialTheme.colorScheme.primary + ) + } + + // (Kontak) + Column( + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(bottom = 32.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + ContactRow(icon = Icons.Filled.Call, text = "+62 857 1115 6094") + ContactRow(icon = Icons.Filled.Share, text = "@Farisnaufal") + ContactRow(icon = Icons.Filled.Email, text = "202310715123@ubharajaya.ac.id") + } + } +} + +@Composable +fun ContactRow(icon: androidx.compose.ui.graphics.vector.ImageVector, text: String) { + Row( + modifier = Modifier + .padding(vertical = 4.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + imageVector = icon, + contentDescription = null, + modifier = Modifier + .padding(end = 8.dp) + .size(20.dp) + ) + Text(text = text, fontSize = 14.sp) + } +} + +@Preview(showBackground = true) +@Composable +fun BusinessCardPreview() { + KartuNamaTheme { + BusinessCard() + } +}