Aplikasi Selamat Ulang Tahun

 

1. Struktur Utama: MainActivity

  • MainActivity adalah halaman pertama yang dijalankan saat aplikasi dibuka.

  • Di dalam onCreate(), kita:

    • Mengaktifkan Edge-to-Edge layout supaya tampil full screen.

    • Memanggil setContent untuk menampilkan UI menggunakan Jetpack Compose.

    • Memanggil BirthdayGreeting(name = "Budi") untuk menampilkan ucapan ulang tahun.

2. Composable Function: BirthdayGreeting

  • BirthdayGreeting(name: String, modifier: Modifier = Modifier) adalah fungsi Composable.

  • Fungsi ini bertugas menampilkan:

    • Tulisan "Selamat Ulang Tahun!" dengan ukuran besar dan tebal (fontSize = 30.sp, fontWeight = FontWeight.Bold).

    • Nama orang yang berulang tahun (contoh: "Arkan") di bawahnya, dengan font sedikit lebih kecil (fontSize = 24.sp, fontWeight = FontWeight.Medium).

  • Desainnya:

    • Menggunakan Box untuk membuat teks ada di tengah layar.

    • Di dalam Box, pakai Column untuk membuat tulisan tampil berurutan secara vertikal (atas-bawah).

    • Memberikan jarak antar tulisan dengan Spacer(height = 16.dp).

3. Preview Function: BirthdayGreetingPreview

  • @Preview digunakan untuk menampilkan hasil desain di Android Studio tanpa harus menjalankan aplikasinya di emulator atau device.

  • Di dalam BirthdayGreetingPreview(), kita memanggil BirthdayGreeting(name = "Arkan").




4. Material Theme

  • Kita membungkus semua tampilan dalam MyApplicationTheme { ... }.

  • Ini supaya desain aplikasi kita konsisten dengan Material 3 Theme yang modern dan responsif.


5. Layout & Responsiveness

  • Semua tampilan memakai Modifier.fillMaxSize() agar memenuhi seluruh layar.

  • contentAlignment = Alignment.Center membuat tulisan tampil di tengah layar, tidak hanya atas atau kiri.


package com.example.myapplication

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.text.BasicText
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.myapplication.ui.theme.MyApplicationTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
MyApplicationTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
BirthdayGreeting(
name = "Arkan",
modifier = Modifier
.padding(innerPadding)
.fillMaxSize()
)
}
}
}
}
}

@Composable
fun BirthdayGreeting(name: String, modifier: Modifier = Modifier) {
Box(
contentAlignment = Alignment.Center,
modifier = modifier
) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Text(
text = "Selamat Ulang Tahun!",
fontSize = 30.sp,
fontWeight = FontWeight.Bold,
textAlign = TextAlign.Center
)
Spacer(modifier = Modifier.height(16.dp))
Text(
text = name,
fontSize = 24.sp,
fontWeight = FontWeight.Medium,
textAlign = TextAlign.Center
)
}
}
}

@Preview(showBackground = true)
@Composable
fun BirthdayGreetingPreview() {
MyApplicationTheme {
BirthdayGreeting(name = "Arkan")
}
}


Komentar

Postingan populer dari blog ini

Aplikasi Dessert Clicker (Activity dan Intent)

Aplikasi Woof (Material Design)

Aplikasi Unscramble (ViewModel dan Status)