Menyusun data numerik yang berantakan menjadi rapi adalah makanan sehari-hari bagi seorang programmer. Banyak yang mengira proses ini rumit, padahal bahasa pemrograman ini sudah menyediakan fungsi bawaan yang sangat instan. Mengetahui cara mengurutkan list di python akan menghemat waktu Anda secara signifikan saat mengeksekusi manipulasi data numerik.
Saya sering melihat pemula terjebak membuat logika perulangan manual yang panjang hanya untuk merapikan deretan angka acak. Padahal, ekosistem bahasa pemrograman ini sudah dirancang sangat fleksibel untuk menangani berbagai tipe data. Mari kita bedah bagaimana cara pakai fungsi sorted python dan metode bawaan lainnya secara taktis.
Sebelum melompat ke sintaksis kode, Anda harus paham bahwa objek berupa daftar kelompok data atau list di Python bersifat mutable. Sifat mutable ini berarti elemen di dalamnya dapat dimodifikasi secara langsung setelah objek tersebut dibuat. List juga sangat fleksibel karena bisa menyimpan tipe data apa saja, mulai dari numerik, string, dictionary, hingga list lain di dalamnya.
Saat kita menangani kumpulan data numerik, karakter ASCII untuk huruf kapital memiliki nilai numerik yang lebih kecil dibandingkan dengan huruf kecil. Namun, jika fokus kita murni pada angka, Python akan membaca nilai matematisnya secara langsung. Proses mengurutkan data dari terkecil ke terbesar python secara default disebut sebagai pengurutan naik atau ascending.
Satu hal yang menarik dari fitur bawaan ini adalah adanya parameter reverse pada metode sort yang memiliki nilai default berupa False. Jika Anda membiarkannya default, deretan angka acak Anda akan langsung tersusun rapi dari nilai minus hingga nilai positif terbesar. Fleksibilitas inilah yang membuat bahasa ini begitu digemari oleh para praktisi data di seluruh dunia.
Eksperimen Fungsi sorted vs Metode sort dalam Praktik
Bagi Anda yang baru belajar, pertanyaan yang paling sering muncul adalah "apa bedanya sort dan sorted di python?" Keduanya tampak serupa tetapi memiliki dampak yang sepenuhnya berbeda pada memori komputer Anda. Perbedaan mendasar ini terletak pada apakah Anda ingin mempertahankan data asli atau langsung mengubahnya di tempat.
Metode sort() diaplikasikan langsung pada objek daftar data dan akan mengubah urutan elemen di dalam objek asli tersebut tanpa membuat salinan baru. Sementara itu, fungsi sorted() akan menerima objek daftar data sebagai argumen, lalu mengembalikan sebuah objek daftar baru yang sudah rapi tanpa merusak susunan data asli Anda.
Untuk memudahkan pemahaman Anda mengenai perbedaan kedua fitur bawaan ini, mari kita lihat perbandingannya secara mendalam.
| Karakteristik | Metode list.sort() | Fungsi sorted() |
|---|---|---|
| Efek pada Objek Asli | Mengubah langsung (In-place) | Tidak mengubah objek asli |
| Output Fungsi | Mengembalikan nilai None | Mengembalikan list baru |
| Nilai Default Reverse | False (Ascending) | False (Ascending) |
| Kompatibilitas Objek | Hanya untuk tipe data list | Semua objek iterable |
Kedua cara di atas sama-sama menyediakan argumen opsional berupa reverse=True untuk melakukan pengurutan secara mundur atau descending. Jadi, jika Anda ingin menyusun data dari nilai paling besar ke yang paling kecil, Anda cukup menambahkan argumen tersebut di dalam kurung.
Logika Manual dengan Tutorial Selection Sort Python untuk Pemula
Menggunakan fungsi bawaan memang sangat praktis, tetapi memahami logika di balik algoritma pengurutan akan melatih insting pemrograman Anda secara tajam. Salah satu algoritma klasik yang sangat bagus untuk dipelajari adalah Selection Sort. Konsep dasar algoritma ini adalah memindai seluruh data, menemukan elemen terkecil, lalu menukarnya ke posisi terdepan.
Menurut Finn Christoffer K., seorang penulis artikel di binus.ac.id, Selection Sort merupakan perbaikan dari algoritma bubble sort dengan mengurangi jumlah perbandingan elemen. Mari kita simulasikan algoritma ini menggunakan sebuah contoh kumpulan elemen array nyata yang terdiri dari angka-angka acak.
Sebagai bahan simulasi, kita bisa menggunakan contoh elemen array yang diberikan untuk simulasi pengurutan yaitu {5, 1, 12, -5, 16, 2, 12, 14}. Melalui algoritma ini, sistem akan mencari nilai paling kecil di seluruh deretan tersebut, yang mana adalah -5, lalu menempatkannya di indeks pertama.
Proses pencarian elemen terkecil ini akan diulangi untuk sisa angka yang belum terurut hingga seluruh baris angka tersusun rapi. Contoh nyata lainnya, masukan angka "414807256" akan menghasilkan urutan "012445678" setelah diproses secara bertahap dari yang terkecil ke terbesar.
Analisis Efisiensi dan Sisi Minus Algoritma Selection Sort
Meskipun logika dari algoritma ini tergolong mudah dipahami oleh pemula, Anda harus tahu bahwa algoritma ini memiliki kelemahan besar dalam hal performa. Jika Anda berencana mengolah data dalam skala raksasa, algoritma manual ini bukanlah pilihan yang bijak. Kompleksitas performa waktu dan ruang dari algoritma ini wajib menjadi bahan pertimbangan Anda.
Berdasarkan analisis struktur kodenya, kompleksitas waktu untuk algoritma Selection Sort adalah O(n^2) pada kasus terbaik (best case), rata-rata (average case), maupun terburuk (worst case). Hal ini disebabkan oleh adanya dua loop atau perulangan bersarang yang masing-masing harus berjalan sebanyak n kali di sepanjang proses pengurutan data.
Artinya, jika jumlah data Anda meningkat sepuluh kali lipat, waktu yang dibutuhkan untuk menyelesaikan pengurutan akan membengkak hingga seratus kali lipat. Sisi positifnya, kompleksitas ruang dari Selection Sort adalah O(1) karena hanya membutuhkan ruang tambahan konstan untuk variabel temporer saat proses penukaran elemen berlangsung.
Teknik Menghapus Elemen Ekstrem Setelah Data Terurut
Setelah berhasil merapikan kumpulan data numerik Anda, sering kali ada kebutuhan untuk membuang nilai terkecil atau terbesar untuk kebutuhan analisis statistik. Di sinilah metode manipulasi list lainnya ikut bermain untuk membantu membersihkan struktur data Anda secara efisien.
Salah satu alat yang paling sering dikombinasikan setelah proses pengurutan selesai adalah fungsi penghapusan elemen berdasarkan posisi indeksnya. Metode list.pop(index=-1, /) secara default akan menghapus dan mengembalikan item terakhir dalam list jika indeks tidak ditentukan secara spesifik oleh pengguna.
Jika data Anda sudah terurut secara ascending, memanggil metode pop() tanpa argumen secara otomatis akan memotong angka terbesar yang berada di ujung akhir daftar. Sebaliknya, jika Anda ingin membuang angka terkecil, Anda tinggal memasukkan angka nol sebagai argumen indeksnya.
- Gunakan metode sort() jika Anda ingin menghemat memori pada data yang besar.
- Manfaatkan fungsi sorted() jika data asli masih dibutuhkan untuk proses analisis lain.
- Hindari algoritma Selection Sort untuk aplikasi produksi massal dengan volume data tinggi.
Pilihan terbaik untuk pengerjaan proyek nyata tetaplah menggunakan fungsi bawaan sorted() atau metode sort(). Kedua fitur bawaan tersebut menggunakan algoritma Timsort yang jauh lebih cepat dan adaptif dibandingkan dengan pendekatan Selection Sort manual yang cenderung lambat pada volume data besar.







