Memilih daftar, kamus, dan himpunan
INFO9-05
Memilih struktur data menurut urutan, hubungan kunci, dan kebutuhan keunikan.
Bekal awal: Mengenali daftar serta dictionary sederhana.
Konteks bab
Pembagian giliran adalah model belajar; aturan layanan nyata mengikuti pendamping. Kartu serta jaringan berikut rekaan.
Bacaan dan kasus
2 · Urutan yang berubah tanpa disadari
Bacaan pendalaman
Kasus dan angka yang dibuat untuk latihan adalah simulasi/rekaan; fakta konsep dan sumber dibedakan dalam uraian.
Permintaan berkode A,B,C masuk berurutan. Program model memakai tumpukan sehingga permintaan C keluar lebih dahulu. Pembuat menganggap hasilnya benar karena semua kode masih ada, tetapi petunjuk layanan menjanjikan urutan kedatangan. Masalahnya bukan hilangnya data, melainkan ketidaksesuaian struktur dengan kontrak.
Kelompok membandingkan antrean dan tumpukan di kertas. Mereka menambah D, mengambil dua entri, dan mencatat isi yang tersisa. Daftar langkah memperlihatkan perbedaan yang tidak terlihat dari sekadar jumlah entri. Urutan ternyata bagian penting dari makna data.
Pada tugas lain, mereka menggambar hubungan empat lokasi. Dua jalur mempunyai jumlah sisi sama, tetapi waktu berbeda setelah bobot ditambahkan. Mereka belajar bahwa struktur serta ukuran harus mengikuti pertanyaan. Lebih sedikit langkah, lebih dekat pada gambar, dan lebih cepat di dunia nyata tidak selalu berarti hal yang sama.
Fokus pemeriksaan. Mengapa jumlah entri yang benar belum menjamin perilaku layanan benar?
Struktur mengikuti pertanyaan
Daftar atau list cocok ketika urutan dan pengulangan bermakna, misalnya urutan kartu yang masuk. Dictionary cocok untuk hubungan kunci–nilai, misalnya kode alat ke catatannya. Set atau himpunan cocok untuk memeriksa keanggotaan unik, misalnya kode kategori yang muncul. Jangan memilih struktur hanya karena sintaksnya pendek; perhatikan informasi yang akan hilang atau perlu dipertahankan.
Keunikan tidak sama dengan kelengkapan
Mengubah daftar [A01,A02,A01] menjadi set menyisakan dua kode unik. Ini berguna menghitung jenis, tetapi menghilangkan jumlah kemunculan dan tidak menyimpan urutan untuk tujuan antrean. Jika A01 muncul dua kali karena dua transaksi sah, menghapus pengulangan akan mengurangi data. Jika kode seharusnya unik per objek, duplikat justru perlu dilaporkan sebagai masalah.
Kunci perlu aturan
Dictionary menghubungkan satu nilai pada tiap kunci. Menetapkan nilai baru pada kunci sama mengganti nilai sebelumnya; ini bukan cara otomatis menggabungkan dua catatan. Periksa tabrakan kode sebelum memasukkan data. Model latihan memakai kode benda rekaan; jangan menjadikan struktur data sebagai alasan mengumpulkan identitas yang tidak diperlukan.
Entri berbeda dari jenis unik
kode = ["A01", "A02", "A01"]
print(len(kode))
print(len(set(kode)))Keluaran contoh
3 2
Set dipakai hanya untuk menghitung jenis pada contoh; data awal tetap tersedia dan tidak dihapus.
Telusuri contoh
Daftar A01,A02,A01 berisi berapa entri dan kode unik?
- Ada3 entri dan2 kode unik.
- Makna keduanya berbeda.
- Pilih ukuran sesuai pertanyaan.
Mengapa set tidak cocok sebagai antrean kedatangan?
- Antrean perlu urutan masuk serta kemungkinan beberapa permintaan dari kode sama.
- Set menyimpan keanggotaan unik tanpa urutan antrean.
- Gunakan struktur yang menjaga informasi itu.
Menghapus duplikat tanpa memahami makna dapat membuang transaksi sah; jenis dan frekuensi adalah ukuran berbeda.
Latihan mandiri
1 Kapan list lebih sesuai daripada set?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Ketika urutan atau pengulangan bermakna.
2 Apa akibat menulis ulang nilai pada kunci dictionary sama?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Nilai lama diganti, bukan otomatis dijumlah atau digabung.
3 Apakah semua duplikat harus dihapus?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Tidak; tentukan apakah pengulangan sah atau melanggar skema.
4 Apa struktur untuk kode ke jumlah?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Dictionary dengan kode unik sebagai kunci dan jumlah sebagai nilai, sesuai kontrak.
Perluas pemahamanmu
Rancang pemeriksaan yang melaporkan kode ganda sebelum dictionary dibangun, lalu tentukan apakah harus ditolak atau digabung menurut aturan yang jelas.
Coba dengan umpan balik
Latihan otomatis membantu pemeriksaan; tuliskan alasan dan langkah untuk membuktikan pemahaman.
1 Untuk mempertahankan urutan serta pengulangan, pilih…
Petunjuk awal
Tentukan informasi, konsep dan bukti yang dibutuhkan.
Pembahasan · buka setelah mencoba
A. list. Daftar dapat menyimpan urutan dan entri berulang.
Praktik dan refleksi
Gunakan enam kartu berkode dengan pengulangan. Susun sebagai urutan, kelompok kode, dan tabel jumlah; jelaskan pertanyaan yang dijawab tiap bentuk.
Penanda pribadi di perangkat ini; bukan nilai atau bukti penguasaan.