๐Ÿ›ก๏ธ Data Pipeline: Tahap 5 โ€” Rawat (Maintain)

Data Validation: Mengapa Data Kacau Lahir dari Pintu yang Tidak Dijaga

Aurino Djamaris โ€ข 8 Menit Baca โ€ข Belajar Excel

Di artikel-artikel sebelumnya, kita sudah membangun Pabrik Resik: TRIM untuk spasi liar, Text to Columns untuk pemisahan, Remove Duplicates untuk baris kembar. Tapi pernahkah Anda bertanya: mengapa kekacauan itu bisa masuk sejak awal?

Jawabannya sederhana dan menyakitkan: karena pintu masuknya tidak dijaga. Di industri ada pepatah tua: “Garbage In, Garbage Out.” Dan dua dosa asal yang paling sering terjadi:

  1. Semua disimpan sebagai string. Tanggal “1 janu 2025” lolos karena bagi sistem itu hanyalah teks โ€” tidak ada yang bertanya “apakah ini tanggal yang sah?”
  2. Tidak ada validasi di pintu masuk. Kolom kota berupa teks bebas adalah undangan terbuka bagi “jaksel”, “Jakarta”, “DKI Jakarta”, sampai nama desa.

Di sinilah ekonomi kualitas data bekerja โ€” aturan 1-10-100: mencegah satu data salah di pintu masuk biayanya 1; memperbaikinya kemudian biayanya 10; membiarkannya lolos dan jadi keputusan bisnis biayanya 100. Selama ini kita membayar di lantai 10 dan 100. Saatnya kita bangun pertahanan di lantai 1.

๐Ÿ”‘ Insight Kunci: Dropdown adalah Tabel Alias yang Dipindahkan ke Hulu

Perhatikan ini โ€” tabel alias yang kita bangun untuk membersihkan data itu sebenarnya adalah dropdown yang seharusnya ada di pintu masuk. Asetnya sama persis! Hanya posisinya yang beda:

๐Ÿ“Š Tabel Alias (sama untuk dua gerbang)

A (alias)B (kota_baku)
1aliaskota_baku
2jakselJakarta Selatan
3jakarta selatanJakarta Selatan
4dki jakartaJakarta
5jakartaJakarta
  • Di hilir (pembersihan): tblAlias dipakai XLOOKUP untuk menerjemahkan “jaksel” โ†’ “Jakarta Selatan”.
  • Di hulu (pencegahan): tblAlias dipakai Data Validation โ†’ List sehingga “jaksel” tidak pernah bisa diketik โ€” pengguna hanya bisa memilih dari dropdown.

Satu aset, dua gerbang. Itulah mengapa Named Range dan Table yang kita ajarkan di Data Pipeline bukan sekadar trik rumus โ€” mereka adalah bahan baku sistem pencegahan.

๐Ÿ›ก๏ธ Tabel Inversi: Penyakit โ†’ Pencegahan di Pintu Masuk

๐Ÿ”’ Dari Penyakit ke Obat (Data Validation)

Penyakit di DataAkarPencegahan (Data Validation)
1jaksel / Jakarta / DKI / desaTeks bebasList dari tblKotaBaku (dropdown)
2“1 janu 2025”, “30 feb 2000”Tanggal = stringSel berformat Date + validasi rentang 1/1/1900โ€“31/12/2010
3kota_tujuan “0” / kosongTak ada aturan wajib isiValidasi: tidak boleh blank/0 + Error Alert “Stop”
4agama lowercase campurTeks bebasDropdown 6 agama resmi
5“L “, “laki”, “P” campurTeks bebasDropdown P / L
6Qty/angka sebagai teksSemua stringFormat Number + validasi Whole Number

๐Ÿ› ๏ธ Langkah 1: Membuat Dropdown (List Validation)

  1. Siapkan tblKotaBaku di sheet terpisah (kolom A: alias, kolom B: kota_baku).
  2. Pilih sel tempat pengguna akan mengisi kota (misal C2:C100).
  3. Tab Data โ†’ Data Validation.
  4. Di kotak Allow, pilih List.
  5. Di kotak Source, ketik =tblKotaBaku[kota_baku] (kalau pakai Table) atau blok range manual.
  6. Centang In-cell dropdown โ†’ OK.

Sekarang pengguna tidak bisa mengetik “jaksel” โ€” mereka hanya bisa memilih “Jakarta Selatan” dari dropdown. Konsistensi terjamin sejak baris pertama.

๐Ÿš€ Pro Tip: Dependent Dropdown (Dropdown Bertingkat)

Bisa buat dropdown kota yang berubah tergantung provinsi yang dipilih sebelumnya. Rumusnya: =INDIRECT(B2) di Source, dengan Named Range untuk setiap provinsi. Ini mencegah “Jakarta” terpilih saat provinsi “Banten” dipilih.

๐Ÿ› ๏ธ Langkah 2: Menjaga Tanggal (Date Validation)

  1. Pilih sel tanggal lahir (misal D2:D100).
  2. Data Validation โ†’ Allow: Date.
  3. Data: between. Start date: 1/1/1900. End date: =TODAY().
  4. Tab Error Alert โ†’ Style: Stop. Title: “Tanggal Tidak Valid”. Message: “Tanggal lahir harus antara 1900 dan hari ini.”
  5. OK.

Sekarang “1 janu 2025” ditolak mentah-mentah oleh sistem โ€” bahkan sebelum masuk ke sel. Pengguna mendapat pesan error yang jelas, dan data tetap bersih.

๐Ÿ› ๏ธ Langkah 3: Mewajibkan Isi (No Blanks)

  1. Pilih sel yang wajib diisi (misal A2:A100 untuk Nama).
  2. Data Validation โ†’ Allow: Custom.
  3. Di kotak Formula, ketik: =LEN(TRIM(A2))>0
  4. Tab Error Alert โ†’ Style: Stop. Title: “Wajib Diisi”. Message: “Kolom ini tidak boleh kosong.”
  5. OK.

Rumus LEN(TRIM(...))>0 menolak dua hal sekaligus: sel kosong dan sel yang hanya berisi spasi โ€” karena ” ” juga kekacauan.

๐Ÿง  Aha! Moment: Dua Lapis Pertahanan

๐Ÿ›ก๏ธ Dari Rawat menuju Rajin:

Data Validation adalah gerbang pertama โ€” mencegah kekacauan masuk. Tapi bagaimana dengan data kiriman dari sistem luar yang tidak bisa kita atur pintu masuknya? Di situlah Pabrik Resik (Power Query + alias + karantina) berdiri sebagai gerbang kedua. Dua lapis pertahanan: hulu dijaga, hilir menyaring. Itulah wujud nyata Rajin dalam 5R โ€” sistem yang tidak hanya bersih, tapi kebal terhadap kekacauan.

๐Ÿ”ง Protect Sheet: Mengunci Sistem dari Tangan Jail

Setelah Data Validation dipasang, jangan lupa mengunci sheet agar pengguna tidak bisa menghapus atau mengubah aturan validasi:

  1. Buka sel yang boleh diedit (misal C2:E100) โ†’ klik kanan โ†’ Format Cells โ†’ tab Protection โ†’ hilangkan centang Locked.
  2. Tab Review โ†’ Protect Sheet โ†’ beri password โ†’ OK.

Sekarang pengguna hanya bisa mengisi sel yang diizinkan, dan tidak bisa mengutak-atik Data Validation. Sistem Anda aman dari tangan jail.

โš ๏ธ Catatan Prudent: Password protect sheet di Excel bukan enkripsi โ€” ia hanya “gembok pintu depan” yang bisa dibobol dengan tools gratis. Untuk data sensitif, gunakan Protect Workbook dengan password yang kuat, atau simpan file di folder terenkripsi.

๐Ÿ“Š Hasil Akhir: Sistem yang Kebal Kekacauan

โœ… SESUDAH: Input Terkendali, Data Konsisten

A (Nama)B (Kota)C (Tanggal Lahir)D (Qty)
1NamaKotaTanggal LahirQty
2Budi SantosoJakarta Selatan19-Feb-2000120
3Siti RahayuJakarta14-May-200045

Hasil: Kota konsisten (dropdown), tanggal valid (1900โ€“hari ini), Qty angka bulat. Tidak ada “jaksel”, tidak ada “1 janu 2025”, tidak ada teks di kolom angka.

๐Ÿ“ฅ File Latihan

Unduh latihan-data-validation.xlsx: berisi dua sheet โ€” Tanpa_Penjaga (bebas mengetik apa saja) dan Dengan_Penjaga (semua Data Validation sudah terpasang). Ketik kekacauan yang sama di keduanya, dan rasakan sendiri bedanya membersihkan versus mencegah.

โฌ‡๏ธ Unduh File Latihan (.xlsx)

๐Ÿงช Sesi Uji di Sheet Dengan_Penjaga

  1. Kolom Kota: ketik jaksel โ†’ ditolak. Pilih Jakarta Selatan dari dropdown โ†’ diterima.
  2. Kolom Tanggal Lahir: ketik 1 janu 2025 โ†’ ditolak (bukan tanggal sah). Ketik 1/1/2030 โ†’ ditolak (di luar rentang). Ketik 1/1/2000 โ†’ diterima.
  3. Kolom Qty: ketik dua belas โ†’ ditolak. Ketik 12,5 โ†’ ditolak (harus bulat). Ketik 12 โ†’ diterima.
  4. Kolom Nama: biarkan kosong lalu Enter โ†’ ditolak. Isi Budi โ†’ diterima.
๐Ÿ”‘ Mengapa “1 janu 2025” ditolak tapi “1/1/2000” diterima?
Karena pintu dijaga dua lapis: validasi Date membuat teks bebas tidak diakui sama sekali, dan validasi rentang (1/1/1900 โ€“ hari ini) membuat tanggal di luar nalar tidak lolos. Pintu masuk yang dijaga tidak butuh tukang bersih-bersih di hilir.

๐ŸŽฏ Penutup: Filosofi 5R yang Utuh

Data Pipeline 5R kini lengkap:

  1. Resik: bersihkan spasi, duplikat, format berantakan.
  2. Rapi: ubah jadi Table (Ctrl+T) agar dinamis.
  3. Namai: beri nama range agar rumus terbaca.
  4. Analisis: gunakan IF, XLOOKUP, Pivot Table.
  5. Rawat: jaga pintu masuk dengan Data Validation, kunci sheet dengan Protect.

Dengan filosofi ini, spreadsheet Anda bukan lagi “kanvas lukis” yang harus digambar ulang setiap bulan โ€” ia adalah mesin analisis yang bekerja sendiri, yang memperbarui dirinya saat data baru datang, yang kebal terhadap kekacauan.

Itulah wujud nyata Rajin โ€” bukan rajin membersihkan, tapi rajin mencegah agar tidak perlu dibersihkan.

๐Ÿ“ข Bagikan Materi Ini

Bantu teman kuliah, rekan kerja, atau sesama pebisnis membangun sistem spreadsheet yang kebal kekacauan:

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

๐ŸŽง Audio Reader + Karaoke
Gaya BicaraNormal
SuaraMemuatโ€ฆ
Kecepatan1.0x
โณ Memuat scriptโ€ฆ