Penyaringan, pemetaan, dan agregasi catatan
INFO9-10
Mengolah daftar catatan melalui langkah yang dapat ditelusuri tanpa kehilangan hubungan data.
Bekal awal: Memahami loop, dictionary, dan akumulator.
Konteks bab
Ketelitian memeriksa pekerjaan menjadi bentuk amanah. Program dan data digunakan sebagai contoh, tanpa akun atau transaksi nyata.
Bacaan dan kasus
3 · Program yang selalu tampak berhasil
Bacaan pendalaman
Kasus dan angka yang dibuat untuk latihan adalah simulasi/rekaan; fakta konsep dan sumber dibedakan dalam uraian.
Fungsi model menerima total8 dan dipinjam3. Pembuat berharap sisa5, tetapi kode menjumlahkan keduanya sehingga keluar11. Karena program tidak berhenti dengan pesan kesalahan, hasil semula dianggap benar. Pemeriksa kemudian meminta kontrak dan hitungan manual.
Perbaikan pertama mengganti penjumlahan dengan pengurangan. Uji8,3 lulus, tetapi data2,5 menghasilkan−3. Kelompok menyadari perhitungan benar belum cukup tanpa validasi. Mereka menambahkan pemeriksaan rentang serta kasus0,0 dan pinjam=total.
Laporan uji mencatat data, harapan, aktual, dan alasan. Kelompok tidak mengubah harapan5 menjadi11 agar semua tampak lulus. Mereka menyimpan versi awal untuk menjelaskan perubahan. Bukti belajar muncul dari kemampuan menemukan hubungan antara kontrak, bug, perbaikan, dan hasil uji.
Fokus pemeriksaan. Mengapa program yang selesai berjalan masih dapat salah?
Penyaringan memilih catatan
Filter mempertahankan catatan yang memenuhi kondisi. Dalam model persediaan, kita memilih alat dengan tersedia lebih dari0. Objek dengan tersedia0 tetap valid, tetapi tidak masuk hasil filter untuk pertanyaan “mana yang dapat dipinjam?”. Jangan menyebut catatan yang tidak terpilih sebagai data salah. Tujuan filter menentukan kelompok yang terlihat.
Pemetaan membentuk informasi baru
Untuk tiap catatan, hitung tersedia=total−dipinjam dan pertahankan kode. Langkah ini mengubah bentuk informasi sambil menjaga kaitan ke objek. Data awal sebaiknya tetap tersedia untuk pemeriksaan. Jika total atau dipinjam invalid, selesaikan validasi sebelum mengolah; jangan menghitung seluruh baris lalu berharap grafik memperbaiki kesalahan.
Agregasi merangkum dengan batas
Menjumlahkan tersedia menjawab total unit, sedangkan menghitung baris terpilih menjawab jumlah jenis alat yang masih tersedia. Keduanya tidak sama. Pada model A01 tersedia7, A02 tersedia0, dan A03 tersedia2: total9 unit pada2 jenis yang dapat dipinjam. Ringkasan kehilangan beberapa detail sehingga catatan asal dan kriteria filter perlu disimpan.
Mengolah tiga catatan yang sudah valid
data = [
{"kode": "A01", "total": 12, "dipinjam": 5},
{"kode": "A02", "total": 4, "dipinjam": 4},
{"kode": "A03", "total": 3, "dipinjam": 1},
]
hasil = []
for baris in data:
sisa = baris["total"] - baris["dipinjam"]
if sisa > 0:
hasil.append((baris["kode"], sisa))
print(hasil)
print(sum(sisa for kode, sisa in hasil))Keluaran contoh
[('A01', 7), ('A03', 2)]
9Contoh menganggap skema, keunikan kode, serta rentang sudah divalidasi. Tuple menyimpan pasangan kode dan sisa; generator pada sum membaca nilai sisa.
Telusuri contoh
Bedakan total9 dan jumlah jenis2.
- 7+0+2=9 unit.
- Hanya A01 serta A03 mempunyai tersedia>0, jadi2 jenis.
- Satuan dan pertanyaan berbeda.
Apakah A02 tersedia0 perlu dihapus dari data awal?
- Tidak.
- Nilai0 sah; hanya tidak memenuhi filter tertentu.
- Simpan catatan asal agar keadaan keseluruhan tetap diketahui.
Tidak terpilih oleh filter tidak berarti data invalid; jumlah jenis berbeda dari jumlah unit.
Latihan mandiri
1 Apa fungsi filter?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Memilih catatan yang memenuhi kondisi sesuai pertanyaan.
2 Apa yang dipertahankan saat menghitung tersedia?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Kode serta hubungan ke catatan sumber.
3 Berapa total unit pada kasus?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
9 unit.
4 Mengapa ringkasan perlu kriteria dan sumber?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Agar pembaca tahu catatan mana yang masuk dan dapat memeriksa kehilangan detail.
Perluas pemahamanmu
Tambahkan A04 dengan tersedia3. Prediksi perubahan total unit dan jumlah jenis sebelum menjalankan program:12 unit dan3 jenis.
Coba dengan umpan balik
Latihan otomatis membantu pemeriksaan; tuliskan alasan dan langkah untuk membuktikan pemahaman.
1 Dari tersedia7,0,2, jumlah jenis dengan stok positif ialah…
Petunjuk awal
Tentukan informasi, konsep dan bukti yang dibutuhkan.
Pembahasan · buka setelah mencoba
D. 2. Dua catatan memenuhi kondisi >0; sembilan ialah jumlah unit.
Praktik dan refleksi
Gunakan tiga kartu kasus dan susun jejak data awal→tersedia→filter→ringkasan. Tulis satuan pada tiap hasil.
Penanda pribadi di perangkat ini; bukan nilai atau bukti penguasaan.