diff --git a/MainActivitySorting.kt b/MainActivitySorting.kt new file mode 100644 index 0000000..1d60bb6 --- /dev/null +++ b/MainActivitySorting.kt @@ -0,0 +1,99 @@ +package com.example.dendiyogiapratama_sorting + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.layout.Column +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.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.example.dendiyogiapratama_sorting.ui.theme.DendiYogiaPratamaSortingTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContent { + DendiYogiaPratamaSortingTheme { + Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> + val numbers = listOf(64, 34, 25, 12, 22, 11, 90) + val sortedNumbers = bubbleSortAngka(numbers) + + Greeting( + name = "AndroidDen", + numbers = numbers, + sortedNumbers = sortedNumbers, + modifier = Modifier.padding(innerPadding) + ) + } + } + } + } +} + +fun bubbleSortAngka(numbers: List): List { + val arr = numbers.toMutableList() + val n = arr.size + + for (i in 0 until n - 1) { + for (j in 0 until n - i - 1) { + if (arr[j] > arr[j + 1]) { + val temp = arr[j] + arr[j] = arr[j + 1] + arr[j + 1] = temp + } + } + } + + return arr +} + +@Composable +fun Greeting( + name: String, + numbers: List, + sortedNumbers: List, + modifier: Modifier = Modifier +) { + Column(modifier = modifier.padding(16.dp)) { + Text( + text = "Hello $name!", + style = MaterialTheme.typography.headlineMedium, + modifier = Modifier.padding(bottom = 8.dp) + ) + + Text( + text = "Angka asli: ${numbers.joinToString(", ")}", + style = MaterialTheme.typography.bodyLarge, + modifier = Modifier.padding(bottom = 4.dp) + ) + + Text( + text = "Angka yang terurut (Bubble Sort): ${sortedNumbers.joinToString(", ")}", + style = MaterialTheme.typography.bodyLarge, + color = MaterialTheme.colorScheme.primary + ) + } +} + +@Preview(showBackground = true) +@Composable +fun GreetingPreview() { + val numbers = listOf(64, 34, 25, 12, 22, 11, 90) + val sortedNumbers = bubbleSortAngka(numbers) + + DendiYogiaPratamaSortingTheme { + Greeting( + name = "AndroidDen", + numbers = numbers, + sortedNumbers = sortedNumbers + ) + } +} \ No newline at end of file diff --git a/Screenshot 2025-10-09 at 14.59.55.png b/Screenshot 2025-10-09 at 14.59.55.png new file mode 100644 index 0000000..162c799 Binary files /dev/null and b/Screenshot 2025-10-09 at 14.59.55.png differ