Skema data, kunci, dan hubungan catatan
INFO9-02
Merancang catatan yang menjaga identitas objek dan tipe nilai.
Bekal awal: Mengenali baris, kolom, daftar, serta kunci data.
Konteks bab
Peminjaman serta pengembalian alat pada Hiwarut Thalabah (PDF17 dan109) memberi konteks. Jumlah dan kode benda berikut seluruhnya rekaan.
Bacaan dan kasus
1 · Nol bukan berarti belum diketahui
Bacaan pendalaman
Kasus dan angka yang dibuat untuk latihan adalah simulasi/rekaan; fakta konsep dan sumber dibedakan dalam uraian.
Tiga catatan simulasi menyebut A01 total10 dipinjam4, A02 total6 dipinjam6, dan A03 total kosong dipinjam2. Penyusun pertama mengisi semua kolom kosong dengan0 agar tabel tampak lengkap. Akibatnya A03 menghasilkan sisa−2 dan laporan sulit dipahami.
Pemeriksa mengembalikan data awal. A02 memang mempunyai sisa0, sedangkan total A03 belum diketahui. Dua keadaan itu tidak sama. Ia menandai A03 perlu verifikasi dan mempertahankan jejak perubahan, alih-alih mengubah dipinjam2 menjadi0 untuk menghilangkan nilai negatif.
Kelompok kemudian menulis kontrak: total serta dipinjam harus bilangan bulat, tidak negatif, dan dipinjam tidak lebih besar daripada total. Kontrak memeriksa kelayakan model; catatan sumber tetap diperlukan untuk memastikan angka benar. Mereka menyepakati tidak menambah identitas santri karena tujuan latihan hanya menghitung persediaan benda.
Fokus pemeriksaan. Apa informasi yang hilang jika kosong dan nol disamakan?
Satu catatan menggambarkan satu objek
Model persediaan memakai kode, nama, total, dan dipinjam. Kode stabil membantu membedakan dua objek bernama mirip. Nama dapat diperbaiki tanpa mengubah identitas objek. Jangan memakai posisi baris sebagai identitas permanen karena posisi dapat berubah setelah pengurutan. Kode rekaan seperti A01 tidak memuat identitas santri.
Skema menjadi kesepakatan
Skema menjelaskan kolom, tipe, arti, dan aturan. Kode berupa teks unik, nama berupa teks tidak kosong, total serta dipinjam bilangan bulat. Menyimpan kode 001 sebagai angka dapat menghilangkan nol depan. Menyimpan jumlah sebagai teks dapat membuat pengurutan “10” berada sebelum “2” secara leksikografis. Pilih representasi menurut makna, bukan penampilan sel.
Hubungan tidak boleh terlepas
Jika nama dan jumlah dipisahkan menjadi dua daftar, pengurutan salah satu saja dapat memasangkan jumlah dengan objek yang salah. Daftar catatan menjaga nilai satu objek bersama. Dalam Python, kamus atau dictionary menyimpan pasangan kunci–nilai; daftar dapat berisi beberapa kamus. Struktur ini merupakan model kecil, bukan pengganti seluruh rancangan basis data.
Satu objek sebagai dictionary
alat = {"kode": "A01", "total": 12, "dipinjam": 5}
print(alat["kode"])
print(alat["total"] - alat["dipinjam"])Keluaran contoh
A01 7
Tanda kurung siku mengambil nilai berdasarkan kunci. Semua catatan rekaan; kunci yang tidak ada perlu penanganan tersendiri.
Telusuri contoh
Mengapa kode “001” disimpan sebagai teks?
- Kode ialah identitas, bukan besaran yang dijumlahkan.
- Nol depan mungkin bermakna.
- Tipe teks menjaga bentuknya.
Apa risiko mengurutkan nama saja?
- Jumlah tetap pada urutan lama.
- Nama dan jumlah dapat berpindah pasangan.
- Urutkan catatan utuh atau gunakan hubungan berdasarkan kode.
Indeks baris bukan identitas permanen; bentuk yang tampak angka belum tentu bermakna bilangan.
Latihan mandiri
1 Apa fungsi kode stabil?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Menjaga identitas objek meskipun nama atau posisi berubah.
2 Apa empat kolom model?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Kode, nama, total, dan dipinjam.
3 Mengapa jumlah sebaiknya bukan teks untuk hitungan?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Operasi serta urutan perlu makna numerik; teks dapat memiliki perilaku berbeda.
4 Apa isi dictionary?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Pasangan kunci–nilai untuk menghubungkan nama kolom dengan nilai dalam catatan.
Perluas pemahamanmu
Tambahkan perubahan nama dan penghapusan satu objek dalam model. Jelaskan mengapa kode lama tidak sembarang dipakai ulang bila masih dirujuk catatan lain.
Coba dengan umpan balik
Latihan otomatis membantu pemeriksaan; tuliskan alasan dan langkah untuk membuktikan pemahaman.
1 Cara menjaga nama dan jumlah saat pengurutan ialah…
Petunjuk awal
Tentukan informasi, konsep dan bukti yang dibutuhkan.
Pembahasan · buka setelah mencoba
A. mengurutkan catatan utuh. Hubungan atribut satu objek harus tetap terjaga.
Praktik dan refleksi
Buat tiga kartu objek dengan kode unik. Urutkan berdasarkan nama sambil menjaga jumlah tetap pada kartu yang sama.
Penanda pribadi di perangkat ini; bukan nilai atau bukti penguasaan.