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
- Deklarasi Array: Array arr diinisialisasi dengan elemen-elemen yang belum diurutkan.
- 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.
- Fungsi print_array: Fungsi ini digunakan untuk mencetak elemen array sebelum dan setelah pengurutan.
- 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! 😊