Pengurutan Nilai Tryout Siswa

Strategi Algoritmik dan Implementasi

⏱ JP 1: Kontekstualisasi & Perancangan Solusi (45 Menit)

🎯 Skenario Masalah

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.

✍️ Tugas Pasangan: Rancang Solusinya di Buku Catatan

Diskusikan dengan teman sebangkumu dan tuliskan rancangan dua strategi berbeda untuk menyelesaikan masalah ini.

Strategi 1: Logika Manual (If-Else Bertingkat)

Buat pseudocode untuk membandingkan ketiga nilai secara manual.

Strategi 2: Menggunakan Fitur Bawaan (Sort)

Buat pseudocode yang memanfaatkan fitur pengurutan otomatis.

⏱ JP 2: Implementasi Teknis & Refleksi (45 Menit)

📚 Bacaan Materi: Membedah Kode Strategi 2 (Klik untuk Buka)

Sebelum implementasi, mari kita pahami beberapa konsep kunci pada Strategi 2.

1. `dictionary`

Struktur data untuk menyimpan pasangan `key: value`. Dalam kasus ini, `key`-nya adalah nama siswa dan `value`-nya adalah nilai.

2. `sorted()`

Fungsi bawaan Python untuk mengurutkan. Kita memberinya instruksi tambahan:

  • `key=lambda item: item[1]`: Perintah untuk mengurutkan berdasarkan `value` (nilai), bukan `key` (nama).
  • `reverse=True`: Perintah untuk mengurutkan dari terbesar ke terkecil.

💻 Aktivitas: Implementasi & Perbandingan

Buka Google Colab, buat Notebook baru, lalu implementasikan kedua strategi ini. Bandingkan hasilnya.

🐍 Strategi 1: Kode If-Else Bertingkat

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 ...
                                

🚀 Strategi 2: Kode List & Sort

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})")
                                

🤔 Refleksi Akhir & Kesimpulan

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?

🔭 Apa Selanjutnya?

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*.