Python adalah sebuah bahasa pemrograman tingkat tinggi yang sangat populer bagi berbagai kalangan pengembang, dari pemula hingga profesional sekalipun. Python tidak hanya mudah dipahami dan digunakan, tetapi juga menawarkan berbagai algoritma sorting yang efektif dan efisien. Artikel ini akan membahas beberapa algoritma sorting Python yang cukup populer dalam mengurutkan data.
1. Sorting dengan Metode Built-in: sort() dan sorted()
Python telah menyediakan metode built-in untuk mengurutkan data, yaitu sort() dan sorted(). Metode sort() digunakan pada list untuk mengurutkan elemennya secara in-place, artinya sort() akan memodifikasi list tersebut. Sedangkan sorted() dapat digunakan pada iterable (misalnya list, tuple) dan menghasilkan list baru yang sudah diurutkan.
Contoh penggunaan sort() dan sorted():
#Penggunaan sort()data = [7, 1, 4, 2]data.sort()print(data) # Output: [1, 2, 4, 7]#Penggunaan sorted()data = (7, 1, 4, 2)sorted_data = sorted(data)print(sorted_data) # Output: [1, 2, 4, 7]
2. Bubble Sort
Bubble Sort adalah algoritma yang cukup sederhana dan mudah diterapkan. Algoritma ini bekerja dengan membandingkan setiap pasangan elemen berurutan dan menukar posisi mereka jika mereka tidak dalam urutan yang diinginkan. Proses ini diulangi sampai seluruh list diurutkan.
Implementasi Bubble Sort dalam Python:
def bubble_sort(data): for i in range(len(data)): for j in range(len(data)-1): if data[j] > data[j+1]: data[j], data[j+1] = data[j+1], data[j] return data
3. Quick Sort
Quick Sort adalah algoritma yang menggunakan strategi divide-and-conquer untuk mengurutkan data. Algoritma ini membagi list besar menjadi dua list kecil, dan kemudian mengurutkan setiap list tersebut secara rekursif.
Implementasi Quick Sort dalam Python:
def partition(arr, low, high): i = (low-1) pivot = arr[high] for j in range(low, high): if arr[j] <= pivot: i = i+1 arr[i], arr[j] = arr[j], arr[i] arr[i+1], arr[high] = arr[high], arr[i+1] return (i+1)def quickSort(arr, low, high): if len(arr) == 1: return arr if low < high: pi = partition(arr, low, high) quickSort(arr, low, pi-1) quickSort(arr, pi+1, high)
4. Merge Sort
Merge Sort adalah algoritma lain yang menggunakan pendekatan divide-and-conquer untuk mengurutkan data. Algoritma ini membagi list menjadi dua bagian yang sama, lalu menggabungkan kembali dalam urutan yang sesuai.
Implementasi Merge Sort dalam Python:
def mergeSort(data): if len(data) >1: mid = len(data)//2 L = data[:mid] R = data[mid:] mergeSort(L) mergeSort(R) i = j = k = 0 while i < len(L) and j < len(R): if L[i] < R[j]: data[k] = L[i] i+=1 else: data[k] = R[j] j+=1 k+=1 while i < len(L): data[k] = L[i] i+=1 k+=1 while j < len(R): data[k] = R[j] j+=1 k+=1 return data
Kesimpulannya, Python menawarkan berbagai metode dan algoritma untuk mengurutkan data, dan setiap algoritma memiliki kelebihan dan kekurangan tersendiri tergantung pada jenis data dan spesifikasi masalah yang harus dipecahkan.