Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Algoritma & Pemecahan Masalah

Pelajaran 11 dari 16

Mencari dan mengurutkan

Mengapa urutan langkah memengaruhi hasil

Setelah pelajaran ini kamu bisa menentukan kapan menukar urutan menyaring, mengurutkan, dan memotong mengubah isi hasil, dan memanfaatkan kestabilan pengurutan.

±13 menitDiperiksa 23 Sep 2026

Materi

Menyaring lalu mengurutkan dan mengurutkan lalu menyaring menghasilkan isi yang sama, karena kedua langkah itu tidak membuang data yang satunya perlukan. Begitu langkah memotong masuk, urutannya berubah arti. Memotong sepuluh teratas lalu menyaring wilayah memberi hasil yang berbeda dengan menyaring wilayah lalu memotong sepuluh teratas, karena pemotongan sudah membuang data sebelum penyaringan sempat melihatnya.

# Dua urutan langkah, dua isi hasil yang berbeda.
urut_dulu = sorted(data, key=lambda d: -d["nilai"])[:10]
hasil_a = [d for d in urut_dulu if d["wilayah"] == "X"]   # bisa kurang dari 10

saring_dulu = [d for d in data if d["wilayah"] == "X"]
hasil_b = sorted(saring_dulu, key=lambda d: -d["nilai"])[:10]

Pengurutan Python bersifat stabil: dua data yang kuncinya sama tetap berada pada urutan relatif yang sama seperti sebelum diurutkan. Sifat itu dimanfaatkan untuk urutan bertingkat tanpa tuple, yaitu dengan mengurutkan dua kali, kunci yang paling tidak penting lebih dulu dan kunci utama belakangan. Contoh di luar latihan: daftar transaksi diurutkan berdasarkan tanggal, lalu diurutkan lagi berdasarkan cabang, dan hasilnya tanggal tetap runut di dalam tiap cabang.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Laporan sepuluh pelanggan terbesar di satu wilayah sering berisi kurang dari sepuluh baris, padahal wilayah itu punya ratusan pelanggan. Urutan langkah mana yang menyebabkannya?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi