78 lines
2.3 KiB
Kotlin
78 lines
2.3 KiB
Kotlin
package com.example.programsorting
|
|
|
|
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.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 androidx.compose.ui.unit.sp
|
|
import com.example.programsorting.ui.theme.ProgramsortingTheme
|
|
|
|
class MainActivity : ComponentActivity() {
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
enableEdgeToEdge()
|
|
setContent {
|
|
ProgramsortingTheme {
|
|
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
|
|
Tampilan(
|
|
data = intArrayOf(15, 20, 35, 50, 85),
|
|
modifier = Modifier.padding(innerPadding)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Fungsi Bubble Sort
|
|
fun bubbleSort(numbers: IntArray): IntArray {
|
|
val arr = numbers.copyOf()
|
|
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 Tampilan(data: IntArray, modifier: Modifier = Modifier) {
|
|
|
|
// Acak angka dulu biar berbeda
|
|
val shuffledData = data.copyOf()
|
|
shuffledData.shuffle()
|
|
|
|
// Lalu sort
|
|
val sorted = bubbleSort(shuffledData)
|
|
|
|
Column(modifier = modifier.padding(16.dp)) {
|
|
Text(text = "Data sebelum sort (acak):", fontSize = 18.sp)
|
|
Text(text = shuffledData.joinToString(", "), fontSize = 18.sp)
|
|
|
|
Text(text = "\nData setelah sort:", fontSize = 18.sp)
|
|
Text(text = sorted.joinToString(", "), fontSize = 18.sp)
|
|
}
|
|
}
|
|
|
|
@Preview(showBackground = true)
|
|
@Composable
|
|
fun TampilanPreview() {
|
|
ProgramsortingTheme {
|
|
Tampilan(intArrayOf(15, 20, 35, 50, 85))
|
|
}
|
|
}
|