Strategi Algoritmik dan Implementasi
Bayangkan kamu adalah panitia tryout di kelas. Kamu diberi data nilai dari 3 siswa: Ali (85), Budi (70), dan Citra (95). Tugasmu adalah membuat urutan peringkat dari nilai tertinggi ke terendah.
Diskusikan dengan teman sebangkumu dan tuliskan rancangan dua strategi berbeda untuk menyelesaikan masalah ini.
Buat pseudocode untuk membandingkan ketiga nilai secara manual.
Buat pseudocode yang memanfaatkan fitur pengurutan otomatis.
Sebelum implementasi, mari kita pahami beberapa konsep kunci pada Strategi 2.
Struktur data untuk menyimpan pasangan `key: value`. Dalam kasus ini, `key`-nya adalah nama siswa dan `value`-nya adalah nilai.
Fungsi bawaan Python untuk mengurutkan. Kita memberinya instruksi tambahan:
Buka Google Colab, buat Notebook baru, lalu implementasikan kedua strategi ini. Bandingkan hasilnya.
Lengkapi logika `if-elif-else` di bawah ini.
ali = 85
budi = 70
citra = 95
print("--- Hasil Strategi 1 (Manual If-Else) ---")
# Tantangan: Lengkapi logika ini!
if ali >= budi and ali >= citra:
if budi >= citra:
print("Urutan: Ali, Budi, Citra")
else:
print("Urutan: Ali, Citra, Budi")
# Tambahkan kondisi ELIF untuk jika Budi terbesar
# elif ...
# Tambahkan kondisi ELIF untuk jika Citra terbesar
# elif ...
Salin dan jalankan kode ini.
data_siswa = {"Ali": 85, "Budi": 70, "Citra": 95}
data_urut = sorted(data_siswa.items(), key=lambda item: item[1], reverse=True)
print("\n--- Hasil Strategi 2 (List & Sort) ---")
for i, (nama, nilai) in enumerate(data_urut, start=1):
print(f"{i}. {nama} ({nilai})")
Tuliskan jawaban dari pertanyaan-pertanyaan berikut di buku catatanmu sebagai kesimpulan dari pembelajaran hari ini.
1. Perbedaan Mendasar: Jelaskan dengan bahasamu sendiri, apa perbedaan utama antara cara kerja Strategi 1 (manual) dan Strategi 2 (otomatis)?
2. Uji Skalabilitas: Bayangkan jika data siswa ada 1000 orang. Mengapa Strategi 1 menjadi tidak mungkin digunakan? Hubungkan jawabanmu dengan konsep **kerja berulang**.
3. 'Kotak Hitam' `sort()`: Fungsi `sorted()` bekerja seperti 'kotak hitam' yang langsung memberikan hasil terurut. Menurut imajinasimu, langkah-langkah seperti apa yang mungkin terjadi di dalam 'kotak hitam' itu untuk bisa mengurutkan banyak data?
Pertanyaan refleksi nomor 2 dan 3 adalah jembatan untuk materi kita selanjutnya. Kita akan belajar cara-cara yang lebih canggih untuk menangani **kerja berulang** dengan **Loop**, dan membongkar isi 'kotak hitam' dengan mempelajari berbagai **Algoritma Pengurutan** seperti *Bubble Sort* dan *Selection Sort*.