Responsive Advertisement

Belajar Form Validation di CodeIgniter 3 (Step by Step)

Halo teman-teman developer!
Hari ini saya mau share catatan belajar saya tentang form validation di CodeIgniter 3. Kebetulan saya lagi bikin sistem registrasi user, dan ternyata cukup banyak hal menarik yang bisa saya pelajari, terutama soal bagaimana CodeIgniter menangani input data sebelum masuk ke database.

Daripada ilmunya hilang begitu aja, saya tulis di blog ini. Siapa tahu bisa bermanfaat buat yang lagi belajar juga

Kenapa Validasi Penting?

Sebelum data masuk ke database, kita wajib ngecek dulu apakah input dari user sudah sesuai aturan. Kalau tidak, bisa berakibat:

  • Database berisi data aneh (misalnya username ada spasi, nomor HP huruf campur angka, dll).

  • Bisa jadi celah keamanan (SQL injection, spam input).

  • Menyulitkan saat data diproses lagi di sistem.

Nah, di CodeIgniter ada library bawaan yang powerful banget: Form Validation

Dua Cara Menulis Validasi

    1. di Controlle, contoh sederhananya :

        $this->form_validation->set_rules('username', 'Username', 'required|min_length[6]');

    2. Dipisahkan ke file config application/config/form_validation.php
        Ini cara yang lebih rapi, karena semua aturan dikumpulkan di satu tempat.

        Contoh:

$config = array(

    'proses_user' => array(

        array(

            'field' => 'username',

            'label' => 'Username',

            'rules' => 'required|min_length[6]|regex_match[/^[a-zA-Z0-9_]+$/]|is_unique[user.username]',

            'errors' => array(

                'required'   => '%s wajib diisi.',

                'min_length' => '%s minimal 6 karakter.',

                'regex_match'=> '%s hanya boleh huruf, angka, dan underscore.',

                'is_unique'  => '%s sudah digunakan.'

            )

        ),

        array(

            'field' => 'email',

            'label' => 'Email',

            'rules' => 'required|valid_email|is_unique[user.email]'

        )

    )

);


Cara panggil di controller:

if ($this->form_validation->run('proses_user') == FALSE) {
    $this->load->view('register_user');
} else {
    // Simpan ke database
}

Validasi dengan Regex

Supaya input lebih ketat, kita bisa pakai regex.

Username: hanya huruf, angka, underscore, tanpa spasi

/^[a-zA-Z0-9_]+$/

Nama lengkap: hanya huruf & spasi

/^[a-zA-Z\s]+$/

Validasi Custom Function

Kadang kita butuh aturan khusus. Misalnya, tanggal harus berformat dd-mm-yyyy.
Bisa bikin function sendiri di controller:

public function valid_date($date)
{
    $d = DateTime::createFromFormat('d-m-Y', $date);
    if ($d && $d->format('d-m-Y') === $date) {
        return TRUE;
    } else {
        $this->form_validation->set_message('valid_date', '{field} harus format dd-mm-YYYY (contoh: 02-10-2025)');
        return FALSE;
    }
}

Lalu dipanggil di rules:

'tanggal_lahir' => 'required|callback_valid_date'

Checklist Validasi Input

Biar gampang, ini checklist aturan yang bisa dipakai:

  • Username → huruf, angka, underscore, minimal 6 karakter, unik.

  • Email → harus email valid, unik.

  • Password → minimal 6 karakter.

  • Konfirmasi password → harus sama dengan password.

  • Nama lengkap → hanya huruf dan spasi.

  • No HP → hanya angka, panjang 10–15 digit.

  • NIK → angka 16 digit.

  • Tanggal lahir → format dd-mm-yyyy.

  • Alamat → wajib diisi.


Tips & Best Practice

✅ Pisahkan rules validasi di form_validation.php.
✅ Selalu gunakan password_hash() untuk simpan password.
✅ Gunakan session flashdata untuk menampilkan pesan error/sukses.
✅ Kalau butuh aturan khusus, bikin callback function.

Penutup

Hari ini saya belajar banyak tentang bagaimana CodeIgniter menjaga kualitas data lewat form validation. Mulai dari aturan bawaan, regex, sampai custom validation function.

Kesimpulannya: validasi itu wajib sebelum data disimpan. Dengan begitu, database kita tetap rapi dan sistem lebih aman.

Semoga catatan ini bermanfaat ya. Kalau ada yang mau diskusi atau nambahin, silakan tulis di komentar.

Artikel Terkait Lainnya:

Codeigniter 3: Cara Membuat Validasi Inputan dengan Mudah 
Belajar Validasi Form di Codeigniter
✅ 
✅ 

Tidak ada komentar:

Responsive Advertisement