Pada proses pengembangan aplikasi berbasis data, database menjadi komponen kritikal untuk menyimpan, mengolah, dan menyediakan data bagi berbagai kebutuhan bisnis. Namun, kesalahan dalam input data, ketidaksesuaian format, dan inkonsistensi relasi antar tabel dapat menurunkan kualitas data secara signifikan.
QA Data bertanggung jawab memastikan bahwa data di dalam database konsisten, akurat, dan sesuai dengan aturan bisnis. Berbeda dari validasi berbasis otomatisasi (Python atau tools lain), artikel ini memfokuskan pada pendekatan manual menggunakan query SQL sebagai metode verifikasi langsung ke database.
Pendekatan ini umum digunakan pada tahap UAT, SIT, atau proses investigasi defect yang membutuhkan cross-check data secara presis
Tujuan
Artikel ini bertujuan untuk:
- Menjelaskan cara melakukan validasi kualitas data menggunakan SQL query.
- Memberikan checklist teknis untuk pengecekan data secara manual.
- Menyediakan contoh query validasi integritas data.
- Menstandarkan proses QA saat melakukan review database.
Pengertian Validasi Data
Validasi data adalah proses untuk memastikan bahwa:
- Nilai data sesuai format yang benar.
- Nilai data lengkap dan tidak kosong.
- Data memenuhi aturan bisnis.
- Relasi tabel konsisten.
Contoh:
- Kolom email harus berformat valid.
- Kolom date_of_birth mengikuti format YYYY-MM-DD.
- Foreign key user_id pada tabel transaksi harus ada di tabel users.
Pentingnya Integritas Data pada Database
Integritas data memastikan bahwa data dalam database:
- Terstruktur dengan benar
- Konsisten lintas tabel
- Dapat dipercaya untuk laporan, analitik, dan proses bisnis
Jenis integritas:
- Entity Integrity: setiap record punya primary key valid.
- Referential Integrity: relasi antar tabel (FK) konsisten.
- Domain Integrity: data sesuai tipe dan batas nilai.
Business Rule Integrity: mengikuti aturan bisnis khusus.
Persiapan Sample Testing
Untuk melakukan pengecekan manual via SQL, diperlukan:
- Akses ke database (MySQL/PostgreSQL/SQL Server).
- Tools client SQL:
- DBeaver
- DataGrip
- MySQL Workbench
- psql CLI / mysql CLI
- Hak akses read-only (recommended untuk QA).
Struktur Folder
public/
├── users
│ ├── id (PK)
│ ├── name
│ ├── email
│ └── created_at
├── transactions
│ ├── id (PK)
│ ├── user_id (FK → users.id)
│ ├── amount
│ └── status
└── products
├── id (PK)
├── sku
├── price
└── stockJenis Validasi Manual dengan SQL
Berikut jenis pengecekan yang wajib dalam QA Data:
- Validasi Kelengkapan Data
- Field penting tidak boleh kosong.
- Data wajib (required) terisi lengkap.
- Validasi Format Data
- Tipe angka harus numerik.
- Format tanggal harus valid.
- Email harus sesuai pola.
- Validasi Referential Integrity
- Foreign key tidak boleh orphan.
- Referensi tabel induk harus ada.
- Validasi Business Rule
- Status hanya boleh dalam daftar tertentu.
- Jumlah transaksi ≥ 0.
- Produk tanpa stok tidak boleh diproses.
- Validasi Duplicate Data
- Duplicate email
- Duplicate SKU
- Duplicate transaksi
Implementasi Query Validasi (SQL)
1. Cek Field Wajib Tidak Boleh Null
SELECT * FROM users
WHERE name IS NULL OR email IS NULL;
2. Validasi Format Email
SELECT * FROM users
WHERE email NOT REGEXP
‘^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$’;
3. Validasi Nilai Angka
SELECT *
FROM products
WHERE price <= 0 OR price IS NULL;
4. Cek Foreign Key Orphan
Transaksi tanpa user terdaftar:
SELECT t.* FROM transactions t
LEFT JOIN users u ON t.user_id = u.id
WHERE u.id IS NULL;
5. Cek Duplikasi Email
SELECT email, COUNT(*) AS total
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
6. Validasi Aturan Bisnis: Status Valid
SELECT * FROM transactions
WHERE status NOT IN (‘SUCCESS’, ‘FAILED’, ‘PENDING’);
7. Cek Tanggal Tidak Valid
SELECT * FROM users
WHERE created_at > NOW();
Eksekusi dan Dokumentasi Hasil
Setelah menjalankan query, hasil validasi bisa didokumentasikan dalam format seperti:
| Validasi | Query | Jumlah Temuan | Status | Catatan |
| Email invalid | Regex email | 12 | FAIL | Email tidak sesuai format |
| Orphan FK | Join user & transaksi | 2 | FAIL | Ada transaksi tanpa user |
| Harga invalid | Price < 0 | 0 | PASS | – |
Studi Kasus Validasi Data
Kasus: Banyak transaksi tidak memiliki user
Hasil query:
SELECT t.id, t.user_id, t.amount
FROM transactions t
LEFT JOIN users u ON t.user_id = u.id
WHERE u.id IS NULL;
Output: 27 rows
Kesimpulan: Data tidak valid → biasanya disebabkan oleh proses ETL yang tidak dimigrasikan dengan user tertentu.
Manfaat Pendekatan Ini
| Aspek | Manfaat |
| Kualitas Data | Validasi manual memberikan presisi tinggi |
| Auditability | Bukti pengecekan dapat disimpan sebagai query |
| Efisiensi Investigasi | Akar masalah cepat ditemukan |
| Reusability | Query dapat dijadikan template QA |
| Flexibilitas | Mendukung berbagai tipe database |
Kesimpulan
Validasi manual menggunakan SQL merupakan langkah penting untuk memastikan integritas data dalam database. Pendekatan ini memberikan fleksibilitas dan akurasi tinggi dalam identifikasi masalah data, terutama saat menangani kasus yang kompleks atau membutuhkan verifikasi langsung.
Dengan mengikuti langkah-langkah pengecekan kelengkapan data, referential integrity, format, dan aturan bisnis, QA dapat menjaga kualitas data sebelum digunakan dalam analitik, integrasi sistem, atau operasional bisnis lainnya.





