diff --git a/Shortting/MainActivity.kt b/Shortting/MainActivity.kt new file mode 100644 index 0000000..192de53 --- /dev/null +++ b/Shortting/MainActivity.kt @@ -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): List { + 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 + } +} diff --git a/Shortting/Screenshot 2025-10-16 111214.png b/Shortting/Screenshot 2025-10-16 111214.png new file mode 100644 index 0000000..08e625b Binary files /dev/null and b/Shortting/Screenshot 2025-10-16 111214.png differ