Integritas data — validasi dan verifikasi
| English | Bahasa Indonesia |
|---|---|
| integrity/ɪnˈteɡrɪti/ | integritas |
| validation/ˌvælɪˈdeɪʃn/ | validasi |
| verification/ˌverɪfɪˈkeɪʃn/ | verifikasi |
| range check/reɪndʒ tʃek/ | pemeriksaan rentang |
| check digit/tʃek ˈdɪdʒɪt/ | digit pengecek |
| double entry/ˈdʌbl ˈentri/ | entri ganda |
| parity check/ˈpærɪti tʃek/ | pemeriksaan paritas |
| checksum/ˈtʃeksəm/ | checksum |
| cyclic redundancy check/ˈsaɪklɪk rɪˈdʌndənsi tʃek/ | pemeriksaan redundansi siklik |
| parity block check/ˈpærɪti blɒk tʃek/ | pemeriksaan blok paritas |
Setiap angka melewati setiap pemeriksaan
- Pada bulan September 1999, Mars Climate Orbiter NASA menembakkan mesinnya untuk memasuki orbit dan tidak pernah terdengar lagi. Ia terbang 170 km lebih rendah dari rencana dan terbakar habis.
- Perangkat lunak satu tim menghasilkan angka dorongan dalam satuan pound-force detik; perangkat lunak penerima mengharapkan newton-detik. Setiap nilai merupakan angka yang terbentuk dengan baik dalam rentang yang masuk akal. Setiap nilai salah dengan faktor 4,45.
- Tidak ada pemeriksaan format yang dapat menahannya, karena datanya tidak cacat format. Datanya hanyalah bukan apa yang diklaimnya. $327 juta.
- Pelajaran ini adalah dua keluarga pemeriksaan yang menjaga integritas: validasi, yang menanyakan apakah data masuk akal, dan verifikasi, yang menanyakan apakah data disalin dengan benar. Dan celah di antara keduanya yang menyebabkan Mars jatuh.
Dua pertanyaan
- Data memiliki integritas ketika akurat, konsisten, dan lengkap.
- Validasi adalah pemeriksaan otomatis bahwa data yang dimasukkan masuk akal dan mengikuti aturan yang ditetapkan. Pertanyaannya: apakah ini masuk akal?
- Verifikasi memeriksa bahwa data telah dimasukkan atau ditransfer dengan benar, dengan membandingkannya dengan sumber atau dengan nilai yang dihitung ulang. Pertanyaannya: apakah ini disalin dengan benar?
- Neither proves the data is true. Both are needed.
Laboratorium konsep komputasi
Klasifikasikan contoh konkret berdasarkan ide komputasi yang ditunjukkannya.
Metode validasi
| Pemeriksaan | Aturan | Contoh |
|---|---|---|
| pemeriksaan rentang | di antara dua batas | satu bulan adalah 1 hingga 12 |
| pemeriksaan batas | di satu sisi dari satu batas tunggal | usia ≥ 18 |
| pencocokan eksistensi (cari) | nilai ada dalam daftar atau tabel | kode produk ada |
| pencocokan panjang | jumlah karakter yang benar | kode pos sepanjang 6 karakter |
| pencocokan tipe / karakter | jenis data yang tepat | bidang telepon hanya mengizinkan angka |
| pencocokan format | sesuai dengan pola | email mengandung @ |
| pencocokan kehadiran | kolom wajib tidak boleh kosong | nama telah diisi |
| angka pengecek | digit tambahan yang dihitung dari digit lainnya | ISBN, nomor kartu |
Memeriksa apakah bulan yang dimasukkan berada antara 1 dan 12 adalah sebuah:
Pemeriksaan rentang memastikan nilai berada dalam batas yang masuk akal.
Pasangkan setiap pemeriksaan validasi dengan tujuannya.
Kehadiran = tidak kosong; format = sesuai pola; digit pengecek = dihitung untuk menangkap digit yang salah ketik.
Tambahan digit yang dihitung dari digit lain untuk menangkap angka yang salah ketik (seperti pada ISBN dan nomor kartu) adalah digit ______.
Digit pengecek dihitung ulang dari sisanya dan dibandingkan, menangkap sebagian besar kesalahan digit tunggal dan pertukaran.
Contoh terpecahkan: sebutkan pengecekan apa yang dilakukan pseudocode ini
| Pseudocode | Pengecekan |
|---|---|
IF x < 0 OR x > 10 THEN OUTPUT "Invalid" |
range check: di antara dua batas |
IF x = "" THEN OUTPUT "Invalid" |
kehadiran check: tidak kosong |
IF NOT(x = "Red" OR x = "Yellow" OR x = "Blue") THEN OUTPUT "Invalid" |
eksistensi (lookup) check: salah satu dari daftar |
IF LENGTH(x) <> 6 THEN OUTPUT "Invalid" |
panjang check: enam karakter |
IF MID(x, 1, 1) < "A" OR MID(x, 1, 1) > "Z" THEN OUTPUT "Invalid" |
format check: karakter pertama adalah huruf |
- Nomor registrasi mobil dengan satu huruf, tiga digit, dan dua huruf memerlukan format check pada setiap posisi dan panjang check untuk enam karakter. Tanggal lahir memerlukan format check (
DD/MM/YYYY), range check (bulan 1 hingga 12, tahun bukan di masa depan) dan kehadiran check.
Pasangkan setiap baris pseudocode dengan pemeriksaan validasi yang dilakukannya.
Uji kekosongan = kehadiran; jumlah karakter = panjang; dua batas = rentang; daftar nilai yang diizinkan = keberadaan atau pencarian.
Contoh terpecahkan: angka pengecek, dan apa yang terlewatinya
- Skema sederhana: angka pengecek adalah sisa pembagian jumlah digit oleh 10, lalu ditambahkan ke angka tersebut.
4162memiliki jumlah digit 13, sehingga disimpan sebagai41623. - Pengguna mengetik
41523: jumlah sekarang menjadi 12, angka pengecek seharusnya 2, jadi kesalahan terdeteksi. - Pengguna mengetik
14623: dua digit pertama tertukar, tetapi jumlah masih 13, sehingga angka pengecek cocok dan kesalahan tidak terdeteksi. Skema nyata (ISBN, nomor kartu) memberi bobot pada setiap posisi sehingga pertukaran mengubah hasil.
Apa yang validasi tidak dapat lakukan
- Validasi menangkap data yang formatnya salah atau berada di luar rentang.
- Validasi tidak dapat menangkap data yang formatnya benar namun faktanya salah.
Bobyang diketik untukBiblolos setiap pengecekan; begitu pula setiap roket yang dikirim ke Mars. - Untuk itu diperlukan verifikasi terhadap sumber, dan seseorang yang membaca apa yang diketiknya.
Mengapa validasi masih bisa membiarkan data buruk lolos?
Validasi memeriksa bentuk, bukan kebenaran — nilai yang berformat benar tetapi salah tetap lolos.
Verifikasi selama input data
- Input ganda: data dimasukkan dua kali, oleh orang yang sama atau oleh dua orang, dan komputer membandingkan kedua versi serta melaporkan perbedaannya. Pengaturan kata sandi baru adalah contoh sehari-hari.
- Pengecekan visual: pengguna membandingkan apa yang ada di layar dengan dokumen sumber asli dan memperbaiki perbedaan sebelum menyimpan.
- Keduanya melindungi integritas dengan memastikan data yang tersimpan sesuai dengan sumber.
Meminta pengguna mengetikkan kata sandi baru dua kali adalah contoh dari:
Entri ganda membandingkan dua salinan diketik untuk memverifikasi data telah dimasukkan dengan benar.
Verifikasi selama transfer data
- Bit dapat berubah saat transit. Parity check menambahkan satu bit ekstra ke setiap byte agar jumlah 1 genap (even parity) atau ganjil; penerima menghitung ulang, dan satu bit yang berubah gagal hitungan.
- Checksum adalah nilai yang dihitung dari blok data oleh algoritma dan dikirim bersamanya; penerima menghitung ulang dan membandingkannya. Transfer file video dari kamera ke server bekerja dengan cara ini: ketidakcocokan berarti transmisi ulang.
- Cyclic redundancy check (CRC) adalah checksum yang lebih kuat menggunakan pembagian polinomial, menangkap banyak pola kesalahan.

Satu bit ekstra membuat jumlah 1 genap; bit yang berubah merusaknya

Hitung, kirim, hitung ulang, bandingkan
Pemeriksaan paritas bekerja dengan cara:
Bit paritas membuat jumlah 1 genap atau ganjil; penerima menghitung ulang untuk mendeteksi kesalahan satu-bit.
Manakah yang merupakan metode verifikasi yang digunakan selama transfer data? Pilih semua yang berlaku.
Paritas dan checksum menghitung ulang nilai di ujung penerima. Entri ganda dan pemeriksaan visual terjadi saat entri data.
Pemeriksaan paritas byte mendeteksi setiap kemungkinan kesalahan transmisi dalam byte tersebut.
Dua bit terbalik meninggalkan jumlah 1 tidak berubah, sehingga mereka lolos. Paritas hanya dapat diandalkan untuk menangkap kesalahan satu-bit.
Contoh terpecahkan: blok paritas menemukan bit mana
- Parity block check mengatur byte dalam sebuah grid: setiap byte membawa bit paritas baris, dan satu byte paritas ekstra menampung paritas kolom dari byte-byte di atasnya.
- Empat byte dikirim dengan even parity, diikuti oleh byte paritas. Hitung 1 di setiap baris dan kolom: byte 3 memiliki lima dan kolom 4 memiliki tiga, keduanya ganjil.
- Bit di persimpangan baris dan kolom tersebut adalah bit yang berubah, sehingga direset dari 1 menjadi 0. Satu bit paritas mendeteksi kesalahan; blok menemukan dan memperbaikinya.

Satu baris salah, satu kolom salah: bit berada di persimpangan
Susun langkah-langkah pemeriksaan blok paritas dalam urutan.
Baris mendeteksi, kolom mendeteksi, persimpangan melokalisasi, dan pembalikan memperbaiki. Itulah yang ditambahkan blok ini dibandingkan dengan satu bit paritas tunggal.
Contoh terpecahkan: pengecekan mana menangkap kesalahan mana
- Pengguna mengetik tanggal lahir mereka sebagai
31/02/2009, kemudian mengetik alamat email mereka dua kali. Pengecekan mana yang menangkap kesalahan mana, dan apa perbedaannya? - Validasi: format check atau range check menolak
31/02/2009, karena Februari tidak pernah memiliki 31 hari. Komputer menguji nilai terhadap aturan. - Verifikasi: input ganda membandingkan dua alamat email dan melaporkan ketidakcocokan jika berbeda. Komputer membandingkan dua salinan, dan akan menerima alamat yang salah jika diketik identik dua kali.
- Validasi bertanya apakah data masuk akal; verifikasi bertanya apakah data dimasukkan dengan benar.

Masuk akal, atau disalin dengan benar: dua pertanyaan berbeda
Pernyataan mana yang benar?
Validasi menguji kelogisan berdasarkan aturan; verifikasi menguji apakah data dimasukkan/ditransfer tanpa perubahan.
Verifikasi membuktikan bahwa data disalin atau dimasukkan tanpa perubahan — tetapi bukan bahwa nilainya benar secara faktual.
Entri ganda / checksum membuktikan data tiba tanpa perubahan; hanya manusia atau pemeriksaan silang yang dapat mengonfirmasi bahwa itu benar-benar benar.
⟦⟧ Nilai yang sering terlewat
- Check digit adalah validasi saat input; parity dan checksum memverifikasi transfer. Jangan mengelompokkannya di bawah judul yang salah.
- Tiada pemeriksaan mana-mana yang membuktikan data tersebut benar. Validasi bermaksud "wajar"; pengesahan bermaksud "sepadan dengan sumber".
- Parity check byte melewatkan dua bit yang berubah dalam byte yang sama karena saling menghilangkan. Katakan "kesalahan single-bit".
- Enkripsi adalah langkah keamanan. Ia tidak memberikan perlindungan integritas apa pun.
Anda telah memahaminya
- validasi = aturan otomatis saat input: range, limit, existence, length, type, format, presence, check digit; tidak dapat menangkap nilai yang formatnya benar tapi isinya salah
- verifikasi saat masuk = pencatatan ganda dan pemeriksaan visual; saat transfer = paritas (byte atau blok), checksum, CRC
- Blok paritas menemukan bit yang terbalik di persimpangan baris dan kolom yang gagal
- Validasi bertanya "masuk akal?"; verifikasi bertanya "disalin dengan benar?"; keduanya tidak bertanya "benar?"