From 17621df31fec97731b1c257bc68ab8a4e3a2e8f7 Mon Sep 17 00:00:00 2001
From: 202310715130 DWI FEBRYANTI <202310715130@mhs.ubharajaya.ac.id>
Date: Fri, 7 Nov 2025 17:00:19 +0700
Subject: [PATCH] Upload Tugas ProgramSorting
---
ProgramSorting/MainActivity.kt | 77 ++++++++++++++++++
.../Screenshot 2025-11-05 192819.png | Bin 0 -> 7011 bytes
2 files changed, 77 insertions(+)
create mode 100644 ProgramSorting/MainActivity.kt
create mode 100644 ProgramSorting/Screenshot 2025-11-05 192819.png
diff --git a/ProgramSorting/MainActivity.kt b/ProgramSorting/MainActivity.kt
new file mode 100644
index 0000000..3a80c21
--- /dev/null
+++ b/ProgramSorting/MainActivity.kt
@@ -0,0 +1,77 @@
+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))
+ }
+}
diff --git a/ProgramSorting/Screenshot 2025-11-05 192819.png b/ProgramSorting/Screenshot 2025-11-05 192819.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7507ce4cff444ef2f0c891f99b9d1f597b95d04
GIT binary patch
literal 7011
zcmeI1_g7Qfw#QM9a)gtEh~NPP6hWj2M-h>30U>nhMTiXpp+rik0n{r3N|8_^{eTqd
zNUsUVp&3YMAyPtAN`OF+5(0!IZ*#}E@2C6T`vcznVULWp*Us8&tvT0se&*b9Ru)De
zesO*t9v%?b*ua{H=ZFw+MgDpmxKngp
@v{!1$xW;77x#-B!Pp6
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