Python List - Mengurutkan List (Sorting)

Reno Iqbalsah

01/04/2023

Bagian ini memembahas tentang bagaimana kita dapat mengubah urutan item-item di dalam sebuah list pada bahasa pemrograman Python. Misalnya mengurutkan secara ascending dan descending, membalik urutan (reverse), dan menukar posisi item.

Selain menambah, mengurangi, dan mengubah item dalam sebuah list, kita juga dapat mengubah urutan item yang ada dalam sebuah list.

Mengurutkan list dengan Metode .sort()

Untuk menggunakan metode .sort(), cukuplah mudah, kita tidak harus memasukkan argumen apapun ke dalam metode ini.

    
list_a = ["kucing", "ayam", "kambing", "sapi"] list_b = [50, 31, 15, 45] print(list_a.sort()) # output : ["ayam", "kambing", "kucing", "sapi"] print(list_b.sort()) # output : [15, 31, 45, 50]

Secara default, metode ini akan mengurutkan list secara ascending (dari kecil ke besar), untuk mengubahnya menjadi descending, kita hanya perlu menambahkan argumen reverse=True

    
list_a = ["kucing", "ayam", "kambing", "sapi"] list_b = [50, 31, 15, 45] print(list_a.sort(reverse=True)) # output : ["sapi", "kucing", "kambing", "ayam"] print(list_b.sort(reverse=True)) # output : [50, 45, 31, 15]

Menggunakan Fungsi Kustom sebagai Argumen

Selain argumen reverse=, metode .sort() juga menerima argumen key=. Argumen ini menerima fungsi sebagai value yang kemudian fungsi ini akan diaplikasikan pada setiap item dalam list.

Misalnya saja kita ingin mengurutkan angka mana yang paling mendekati 30. Kita dapat membuat fungsi yang menghasilkan selisih setiap item dengan angka 30.

    
angka = [50, 31, 15, 45] def selisih_30(angka): return abs(angka-30) print(angka.sort(key=selisih_30)) # output : [31, 45, 15, 50]

Fungsi selisih_30 akan menghasilkan nilai setiap angka dikurangi 30, kita juga menggunakan fungsi abs di dalam fungsi selisih_30 yang artinya absolute, agar fungsi selisih_30 akan selalu menghasilkan angka mutlak / positif.

Hal ini juga bisa diterapkan pada item berupa string. Misalnya saja, ketika kita menggunakan metode .sort() pada item string, secara default akan mengurutkan huruf kapital sebelum huruf kecil. Dengan kode di bawah ini, kita dapat mengurutkan string dengan mengabaikan huruf besar dan kecil.

    
hewan = ["Kucing", "ayam", "Sapi", "rusa"] def kecil(teks): return teks.lower() print(hewan.sort()) # output : ["Kucing", "Sapi", "ayam", "rusa"] print(hewan.sort(key=kecil)) # output : ["ayam", "Kucing", "rusa", "Sapi"]

Fungsi kecil akan memperlakukan semua item sebagai huruf kecil, sehingga seolah-olah tidak ada perbedaan besar-kecil.

Jika kita perhatikan juga, argumen key= akan mengubah urutan dari .sort(), tapi tidak mengubah nilai dari masing-masing item (besar kecil tetap, angka tetap). Hal ini dikarenakan operasi fungsi tersebut hanya terjadi di latar belakang, dan tidak mengubah item secara langsung.

Membalik Urutan Item dengan Metode .reverse()

Metode ini sangat simpel, metode ini akan membalik urutan item dari sebuah list.

    
list_a = ["kucing", "ayam", "kambing", "sapi"] list_b = [50, 31, 15, 45] print(list_a.reverse()) # output : ["sapi", "kambing", "ayam", "kucing"] print(list_b.sort(reverse=True)) # output : [45, 31, 15, 45]

Metode ini hanya akan membalikkan urutan dari sebuah list, tanpa memperhatikan nilai dari item (besar-kecil angka, huruf, dsb).

Selain dua metode di atas, masih ada metode lain untuk mengubah urutan dari list, salah satunya menggunakan tuple unpacking. Namun, metode ini akan dijelaskan ketika kita membahas tentang tuple.