Contoh Program Bubble Sort pada Python

 


Bubble Sort adalah salah satu algoritma pengurutan sederhana yang bekerja dengan cara membandingkan elemen yang berdekatan dalam array. Jika elemen tersebut tidak dalam urutan yang benar, maka dilakukan penukaran. Proses ini diulangi hingga tidak ada lagi elemen yang perlu ditukar.

Berikut adalah contoh implementasi Bubble Sort menggunakan bahasa pemrograman Python.


Program Bubble Sort pada Python

def bubble_sort(arr):

    n = len(arr)

    for i in range(n - 1):

        # Loop untuk membandingkan elemen

        for j in range(n - i - 1):

            if arr[j] > arr[j + 1]:

                # Menukar elemen jika tidak dalam urutan yang benar

                arr[j], arr[j + 1] = arr[j + 1], arr[j]

 

# Fungsi untuk mencetak array

def print_array(arr):

    for item in arr:

        print(item, end=" ")

    print()

 

# Fungsi utama

if __name__ == "__main__":

    arr = [64, 34, 25, 12, 22, 11, 90]

    print("Array sebelum diurutkan:")

    print_array(arr)

 

    bubble_sort(arr)

 

    print("Array setelah diurutkan:")

    print_array(arr)


Penjelasan Program

  1. Deklarasi Array: Array arr diinisialisasi dengan elemen-elemen yang belum diurutkan.
  2. Fungsi bubble_sort:
    • Fungsi ini menggunakan dua loop:
      • Loop luar menentukan jumlah iterasi.
      • Loop dalam membandingkan elemen yang berdekatan dan menukarnya jika elemen kiri lebih besar daripada elemen kanan.
    • Setelah setiap iterasi, elemen terbesar akan "menggelembung" ke posisi terakhir.
  3. Fungsi print_array: Fungsi ini digunakan untuk mencetak elemen array sebelum dan setelah pengurutan.
  4. Fungsi Utama: Program memanggil fungsi untuk mencetak array sebelum dan setelah proses pengurutan.

Output Program

Jika kode di atas dijalankan, hasilnya adalah sebagai berikut:

Array sebelum diurutkan:

64 34 25 12 22 11 90

Array setelah diurutkan:

11 12 22 25 34 64 90


Kelebihan dan Kekurangan Bubble Sort

Kelebihan:

  • Sangat sederhana dan mudah dipahami.
  • Cocok untuk dataset kecil atau yang hampir terurut.

Kekurangan:

  • Tidak efisien untuk dataset besar karena kompleksitas waktu sebesar O(n2)O(n^2).

Modifikasi untuk Efisiensi

Untuk meningkatkan efisiensi, kita bisa menambahkan flag untuk mendeteksi apakah ada pertukaran yang terjadi dalam satu iterasi. Jika tidak ada pertukaran, pengurutan dapat dihentikan lebih awal.

Berikut adalah versi yang lebih efisien:

def optimized_bubble_sort(arr):

    n = len(arr)

    for i in range(n - 1):

        swapped = False

        for j in range(n - i - 1):

            if arr[j] > arr[j + 1]:

                arr[j], arr[j + 1] = arr[j + 1], arr[j]

                swapped = True

        if not swapped:

            break

Dengan cara ini, algoritma berhenti lebih cepat jika array sudah terurut.


Semoga artikel ini membantu Anda memahami bagaimana Bubble Sort diimplementasikan dalam Python. Selamat mencoba! 😊

 

Next Post Previous Post
No Comment
Add Comment
comment url