Tugas Shorting

This commit is contained in:
202310715312 HADI GUNA PRAKOSO 2025-10-16 11:14:49 +07:00
parent edd9f7e112
commit ee2848c070
2 changed files with 63 additions and 0 deletions

63
Shortting/MainActivity.kt Normal file
View File

@ -0,0 +1,63 @@
package com.example.shorting
import android.os.Bundle
import android.widget.TextView // Import TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
// 1. Siapkan data angka yang akan di-sorting
val numbers = listOf(64, 34, 25, 12, 22, 11, 90)
// 2. Panggil fungsi sorting untuk mendapatkan hasilnya
val sortedNumbers = bubbleSort(numbers)
// 3. Hubungkan ke komponen TextView di layout XML
val originalNumbersTextView: TextView = findViewById(R.id.originalNumbersTextView)
val sortedNumbersTextView: TextView = findViewById(R.id.sortedNumbersTextView)
// 4. Tampilkan hasilnya ke TextView
originalNumbersTextView.text = "Angka Asli: ${numbers.joinToString(", ")}"
sortedNumbersTextView.text = "Angka Terurut: ${sortedNumbers.joinToString(", ")}"
// --- Kode bawaan untuk mengatur padding, biarkan saja ---
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
}
/**
* Fungsi untuk mengurutkan daftar Angka (Integer) menggunakan algoritma Bubble Sort.
* @param numbers List angka yang belum terurut.
* @return List angka yang sudah terurut dari kecil ke besar.
*/
private fun bubbleSort(numbers: List<Int>): List<Int> {
val arr = numbers.toMutableList() // Salin list agar bisa diubah
val n = arr.size
// Looping untuk setiap elemen
for (i in 0 until n - 1) {
// Looping untuk membandingkan dan menukar elemen
for (j in 0 until n - i - 1) {
// Jika elemen saat ini lebih besar dari elemen berikutnya
if (arr[j] > arr[j + 1]) {
// Tukar posisi
val temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
return arr // Kembalikan list yang sudah terurut
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB