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 2 dari 14

Kontrak dataset

Tipe dan nullability: apa yang boleh kosong

Setelah pelajaran ini kamu bisa menemukan nilai yang tipenya menyimpang dari kontrak dengan typeof() dan membedakan NULL, teks kosong, dan nol.

±14 menitDiperiksa 7 Okt 2026

Materi

Banyak basis data menolak teks di kolom angka. SQLite tidak: dokumentasinya menyebut tipe kolom sebagai afinitas, yaitu tipe yang dianjurkan, bukan diwajibkan, dan kolom apa pun tetap bisa menyimpan data bertipe apa pun. Kolom INTEGER mengubah teks '150' menjadi angka 150, tetapi teks 'Rp150.000' tersimpan apa adanya sebagai teks tanpa pesan galat. Sejak versi 3.37.0 tersedia tabel STRICT yang menolak isian bila nilainya tidak bisa diubah ke tipe kolom tanpa kehilangan, tetapi data yang sudah telanjur masuk tetap harus diperiksa.

Alat pemeriksanya typeof(), yang mengembalikan kelas penyimpanan sebuah nilai: null, integer, real, text, atau blob. Pemeriksaan tipe dijalankan sebelum pemeriksaan rentang, karena aturan pembanding SQLite menempatkan setiap nilai INTEGER atau REAL di bawah nilai TEXT mana pun. Akibatnya teks '96.000' di kolom tanpa tipe lolos syarat total > 0.

Nullability adalah keputusan per kolom: boleh kosong atau tidak. Kontrak juga harus menetapkan arti kosong. NULL berarti nilainya tidak diketahui, teks '' adalah nilai yang ada tetapi tidak berisi, dan 0 adalah angka. COUNT(kolom) menghitung '' sebagai terisi, jadi aturan yang menganggap teks kosong sebagai pelanggaran harus ditulis eksplisit dengan trim(kolom) = ''.

SELECT buku_id, typeof(tahun_terbit) AS tipe
FROM buku
WHERE typeof(tahun_terbit) NOT IN ('integer', 'null');

Latihan

0/3 lulus

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

Latihan 3 dari 3

Kolom harga di tabel biasa (bukan STRICT) dideklarasikan INTEGER. Aplikasi menyisipkan teks 'Rp96.000'. Apa yang terjadi?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke