Pengesahihan (validation) ialah semakan automatik bahawa data munasabah dan dibenarkan sebelum program menggunakannya. Dalam soalan peperiksaan, anda biasanya diberi keperluan dalam perkataan biasa dan diminta menamakan semakan atau menulisnya. Kemahirannya ialah memadankan perkataan dalam keperluan dengan jenis semakan yang betul.
Ini pelajaran pertama dalam modul pengesahihan, pengesahan dan ujian.
Semakan manakah sepadan dengan keperluan manakah?
Baca keperluan dan cari kata kunci. Kata kunci itu memberitahu anda semakan yang diperlukan.
| Perkataan dalam keperluan | Semakan | Apa yang diuji |
|---|---|---|
| “mesti antara 13 dan 17” | Semakan julat | Nilai berada dalam had bawah dan had atas |
| “sekurang-kurangnya 8 aksara” | Semakan panjang | Bilangan aksara |
| “mesti nombor bulat” | Semakan jenis | Data berjenis data yang betul |
| “tidak boleh dibiarkan kosong” | Semakan kehadiran | Sesuatu telah dimasukkan |
| “dua huruf kemudian tiga digit” | Semakan format | Aksara mengikut corak tetap |
Digit semak (check digit) ialah satu lagi kaedah pengesahihan, digunakan untuk nombor seperti kod bar. Ia dibincangkan dalam penghantaran dan penyemakan data.
Contoh berlangkah
Sebuah kelab sekolah rekaan meminta umur ahli. Keperluannya: “Umur mesti nombor bulat dari 13 hingga 17 termasuk kedua-duanya.”
Langkah 1, cari kata kunci. “Nombor bulat” berkaitan jenis data. “Dari 13 hingga 17” berkaitan had.
Langkah 2, namakan semakan. Semakan jenis (integer) dan semakan julat.
Langkah 3, tulis semakan julat. Terus meminta input sehingga nilai diterima:
REPEAT
INPUT Age
IF Age < 13 OR Age > 17 THEN
OUTPUT "Age must be 13 to 17"
ENDIF
UNTIL Age >= 13 AND Age <= 17
Langkah 4, jejak (trace) dengan input 20, 12, 15.
| Input | Age < 13 OR Age > 17 | Mesej | UNTIL benar? |
|---|---|---|---|
| 20 | TRUE (20 > 17) | dipaparkan | Tidak |
| 12 | TRUE (12 < 13) | dipaparkan | Tidak |
| 15 | FALSE | tiada | Ya |
Gelung tamat pada 15, jadi program hanya diteruskan dengan nilai yang diterima.
Semakan panjang mengikut bentuk yang sama. Di sini kata laluan mesti sekurang-kurangnya 8 aksara:
REPEAT
INPUT Password
IF LENGTH(Password) < 8 THEN
OUTPUT "At least 8 characters needed"
ENDIF
UNTIL LENGTH(Password) >= 8
Kesilapan yang perlu dielakkan
Jawapan yang salah: “Semakan julat memastikan kata laluan cukup panjang.”
Pelajar ingat perkataan “semakan” tetapi tidak ingat sifat apa yang diuji.
Panjang kata laluan ialah semakan panjang, kerana ia mengira aksara. Semakan julat membandingkan nilai dengan had. Sebelum menamakan semakan, sebut apa yang diuji: saiz nilai, bilangan aksara, jenis data, sama ada sesuatu dimasukkan, atau coraknya.
Semak diri anda
1. Borang berkata: “Skor peperiksaan mesti dari 0 hingga 100.” Namakan semakan itu.
Show answer
Semakan julat, dengan had bawah 0 dan had atas 100.
2. Borang berkata: “Kotak e-mel tidak boleh dibiarkan kosong.” Namakan semakan itu, dan nyatakan sama ada ia membuktikan e-mel itu sebenar.
Show answer
Semakan kehadiran. Ia tidak membuktikan e-mel itu sebenar. Ia hanya membuktikan bahawa sesuatu telah ditaip.
3. Kod pelajar mesti tepat “CS” diikuti tiga digit, seperti CS417. Semakan apakah ini, dan adakah CS999 lulus?
Show answer
Semakan format. CS999 lulus kerana mengikut corak, walaupun tiada pelajar yang mempunyai kod itu. Pengesahihan menyemak corak, bukan kebenaran.
Ke mana selepas ini?
Pelajaran seterusnya menunjukkan mengapa pengesahan (verification) ialah tugas yang berbeza daripada pengesahihan. Kemudian anda akan mereka data ujian untuk semakan seperti ini. Anda boleh menjejak gelung seperti di atas dalam alat jejak pseudokod terhad, kemudian cuba set latihan campuran.
Jika memilih semakan yang betul masih menjadi masalah, itu sesuatu yang kami bantu dalam tuisyen Computer Science dalam talian satu dengan satu.