Sorting dan Reverse Python adalah dua konsep dasar yang sangat penting dalam pemrograman, terutama saat bekerja dengan data dalam bentuk list (daftar). Dalam artikel ini, kita akan membahas secara lengkap bagaimana cara melakukan sorting (mengurutkan data) dan reverse (membalik urutan data) menggunakan Python dengan contoh-contoh praktis yang mudah dipahami.
Apa Itu Sorting dan Reverse di Python?
Sorting berarti mengurutkan data dari kecil ke besar (ascending) atau sebaliknya (descending).
Sedangkan Reverse berarti membalik urutan elemen dalam list, tanpa memperhatikan besar kecil nilainya.
1. Sorting dengan Fungsi sorted()
Python menyediakan fungsi bawaan sorted() yang dapat digunakan untuk mengurutkan data secara mudah. Fungsi ini menghasilkan list baru tanpa mengubah list asli.
# Contoh sorting list angka
angka = [5, 2, 9, 1, 7]
hasil_sort = sorted(angka)
print("Hasil sorting:", hasil_sort)
print("List asli:", angka)
Output:
Hasil sorting: [1, 2, 5, 7, 9] List asli: [5, 2, 9, 1, 7]
Perhatikan bahwa list angka tidak berubah. Fungsi sorted() membuat salinan baru yang sudah diurutkan.
Mengurutkan Secara Menurun (Descending)
Kita bisa menggunakan parameter reverse=True untuk mengurutkan data secara terbalik (besar ke kecil).
angka = [5, 2, 9, 1, 7]
hasil_desc = sorted(angka, reverse=True)
print("Hasil descending:", hasil_desc)
Output:
Hasil descending: [9, 7, 5, 2, 1]
2. Sorting Langsung dengan list.sort()
Berbeda dengan sorted(), metode list.sort() akan mengubah urutan elemen dalam list secara langsung tanpa membuat salinan baru.
buah = ["apel", "jeruk", "mangga", "pisang"]
buah.sort()
print("Setelah sort:", buah)
Output:
Setelah sort: ['apel', 'jeruk', 'mangga', 'pisang']
Jika ingin mengurutkan secara menurun:
buah = ["apel", "jeruk", "mangga", "pisang"]
buah.sort(reverse=True)
print("Descending:", buah)
Output:
Descending: ['pisang', 'mangga', 'jeruk', 'apel']
3. Sorting Berdasarkan Kriteria Tertentu (Custom Key)
Python memungkinkan kamu melakukan sorting berdasarkan kriteria tertentu menggunakan parameter key. Misalnya, mengurutkan berdasarkan panjang kata.
buah = ["apel", "jeruk", "semangka", "kiwi"]
buah.sort(key=len)
print("Sort berdasarkan panjang:", buah)
Output:
Sort berdasarkan panjang: ['kiwi', 'apel', 'jeruk', 'semangka']
Kamu juga bisa menggunakan fungsi lambda untuk kriteria yang lebih kompleks.
buah = ["apel", "Jeruk", "mangga", "Pisang"]
buah.sort(key=lambda x: x.lower())
print("Sort tanpa memperhatikan huruf besar kecil:", buah)
4. Reverse dengan Metode list.reverse()
Untuk membalik urutan list tanpa mengurutkannya, gunakan metode reverse().
Berbeda dengan sorted(), fungsi ini tidak mengubah posisi berdasarkan nilai, melainkan hanya membalik urutan elemen.
angka = [10, 20, 30, 40, 50]
angka.reverse()
print("Setelah reverse:", angka)
Output:
Setelah reverse: [50, 40, 30, 20, 10]
5. Reverse Menggunakan Slicing
Kamu juga dapat membalik urutan list dengan teknik slicing menggunakan tanda titik dua ganda [::-1].
angka = [1, 2, 3, 4, 5]
balik = angka[::-1]
print("Reverse slicing:", balik)
Output:
Reverse slicing: [5, 4, 3, 2, 1]
6. Kombinasi Sorting dan Reverse
Terkadang kamu perlu melakukan sorting dulu, kemudian membalik urutannya. Python memudahkan hal ini karena kamu dapat memanggil dua metode secara berurutan.
data = [8, 3, 9, 1, 5]
data.sort()
data.reverse()
print("Hasil sort lalu reverse:", data)
Output:
Hasil sort lalu reverse: [9, 8, 5, 3, 1]
7. Kesimpulan
Dalam Python, proses mengurutkan (sorting) dan membalik (reverse) sangat mudah berkat fungsi-fungsi bawaan seperti sorted(), list.sort(), dan reverse().
Gunakan sorted() jika kamu ingin membuat list baru tanpa mengubah data asli, dan gunakan list.sort() jika ingin mengurutkan data secara langsung.
Untuk membalik urutan elemen, kamu bisa memakai list.reverse() atau teknik slicing [::-1].
Dengan memahami perbedaan dan cara kerja keduanya, kamu bisa mengelola data list di Python dengan lebih efisien dan rapi.
8. Contoh Kasus Lengkap: Sorting dan Reverse Data Nama
nama = ["Rafi", "Budi", "Dina", "Andi", "Cici"]
# Sort ascending
nama.sort()
print("Ascending:", nama)
# Sort descending
nama.sort(reverse=True)
print("Descending:", nama)
# Reverse urutan (bukan sorting)
nama.reverse()
print("Reverse:", nama)
Output:
Ascending: ['Andi', 'Budi', 'Cici', 'Dina', 'Rafi'] Descending: ['Rafi', 'Dina', 'Cici', 'Budi', 'Andi'] Reverse: ['Andi', 'Budi', 'Cici', 'Dina', 'Rafi']
Dengan latihan sederhana di atas, kamu sudah memahami perbedaan antara sorting dan reverse di Python.
Keduanya sangat berguna dalam pengolahan data seperti daftar nama, angka, atau objek lainnya.