Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Kualitas Data dan Validasi Pipeline

Pelajaran 3 dari 14

Kontrak dataset

Rentang, format, dan daftar nilai yang sah

Setelah pelajaran ini kamu bisa memeriksa validitas tanggal, rentang, dan daftar nilai, termasuk tanggal mustahil dan nilai NULL yang lolos NOT IN.

±14 menitDiperiksa 7 Okt 2026

Materi

Validitas, dalam kerangka Pemerintah Inggris, adalah sejauh mana data berada dalam rentang dan format yang diharapkan; contohnya tanggal lahir tidak melewati hari ini dan disimpan sebagai tanggal, bukan teks bebas. Kontrak menuliskannya sebagai tiga jenis aturan: rentang (total lebih dari 0, tanggal di dalam periode data), format (tanggal yyyy-mm-dd yang ada di kalender), dan daftar nilai (status hanya baru, dikirim, selesai, atau batal).

Untuk tanggal yang disimpan sebagai teks, date(kolom) mengembalikan tanggal berbentuk yyyy-mm-dd. Teks yang sama sekali bukan tanggal menghasilkan NULL, tetapi tanggal mustahil tidak selalu ditolak: di SQLite yang dipakai latihan ini, date('2026-02-30') menghasilkan 2026-03-02. Karena itu hasil date() dibandingkan dengan teks aslinya memakai IS NOT. Operator itu memperlakukan NULL seperti nilai biasa, sehingga tanggal yang menghasilkan NULL dan tanggal yang digeser sama-sama tertangkap.

Daftar nilai diperiksa dengan NOT IN, dengan satu jebakan: tabel kebenaran operator IN di dokumentasi SQLite menunjukkan bahwa bila operand kirinya NULL, hasil NOT IN adalah NULL, bukan benar. Baris berstatus NULL lolos dari WHERE status NOT IN (...), jadi aturan wajib terisi ditulis terpisah dengan IS NULL. Perbandingan teks juga peka huruf besar: 'Selesai' bukan 'selesai'.

SELECT siswa_id, nilai
FROM rapor
WHERE nilai IS NULL OR nilai NOT BETWEEN 0 AND 100;

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Pesanan 114 bertotal Rp1.254.000, sedangkan total pesanan lain berkisar Rp17.500–Rp328.000. Kontrak hanya menyebut total bertipe integer dan lebih dari 0. Bagaimana status baris itu?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke