Aplikasi Selamat Ulang Tahun

Pertemuan 3

Nama: Rayhan Almer Kusumah

NRP: 5025211115

Kelas: Pemrograman Perangkat Bergerak (A)

Tahun: 2025

Aplikasi Selamat Ulang Tahun

Dokumentasi

Source Code

GitHub:  Go to code!
package com.example.happy_birthday_android_app

import android.os.Bundle
import android.os.Message
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
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.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.happy_birthday_android_app.ui.theme.HappyBirthdayAndroidAppTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
HappyBirthdayAndroidAppTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
GreetingText(
message = "Happy Birthday Rayhan!",
from = "From Almer",
modifier = Modifier.padding(8.dp)
)
}
}
}
}
}

@Composable
fun GreetingText(message: String, from: String, modifier: Modifier = Modifier) {
Column(
verticalArrangement = Arrangement.Center,
modifier = modifier
) {
Text(
text = message,
fontSize = 100.sp,
lineHeight = 116.sp,
textAlign = TextAlign.Center
)
Text(
text = from,
fontSize = 36.sp,
modifier = Modifier
.padding(16.dp)
.align(alignment = Alignment.End)
)
}
}

@Preview(showBackground = true)
@Composable
fun BirthdayCardPreview() {
HappyBirthdayAndroidAppTheme {
GreetingText("Happy Birthday Rayhan!", "From Almer")
}
}
Pada pertemuan ini ditugaskan membuat aplikasi Happy Birthday yaitu sebuah aplikasi sederhana yang menampilkan sebuah ucapan ulang tahun beserta signature dari pengirim. Berikut adalah beberapa konsep utama yang dibahas pada tugas pertemuan kali ini setelah mengikuti referensi codelab.

Key Concept

Composable Functions

Fungsi @Composable merupakan inti dari Jetpack Compose. Dalam aplikasi ini, UI utama dibangun menggunakan fungsi GreetingText() yang menerima dua parameter: message dan from.

    @Composable
    fun GreetingText(message: String, from: String, modifier: Modifier = Modifier)

Text() dan Styling

Jetpack Compose memungkinkan kita untuk mengatur gaya teks langsung di dalam kode. Teks ucapan ulang tahun ditampilkan dengan ukuran huruf sangat besar:
    
    Text(
    text = message,
    fontSize = 100.sp,
    lineHeight = 116.sp,
    textAlign = TextAlign.Center
    )

Sementara itu, teks pengirim disusun di bawahnya dengan ukuran yang lebih kecil dan diposisikan ke kanan:

    Text(
    text = from,
    fontSize = 36.sp,
    modifier = Modifier
    .padding(16.dp)
    .align(alignment = Alignment.End)
    )

Column dan Modifier

Agar teks dapat ditampilkan secara vertikal, digunakan Column, sebuah layout yang menyusun elemen dari atas ke bawah:

    Column(
    verticalArrangement = Arrangement.Center,
    modifier = modifier
    )

Penggunaan Modifier memungkinkan penyesuaian posisi, padding, dan ukuran setiap komponen secara fleksibel.

Preview

Jetpack Compose menyediakan anotasi @Preview untuk melihat hasil UI tanpa menjalankan aplikasi. Ini sangat membantu untuk iterasi desain:

    @Preview(showBackground = true)
    @Composable
    fun BirthdayCardPreview() {
    HappyBirthdayAndroidAppTheme {
    GreetingText("Happy Birthday Rayhan!", "From Almer")
    }
    }

Comments

Popular posts from this blog

Aplikasi Dice Roller

Aplikasi Kalkulator

Aplikasi Hello Android