64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
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
 | 
						|
    }
 | 
						|
}
 |