Menginput data ke database adalah salah satu fungsi paling mendasar dalam pengembangan web. Dalam framework CodeIgniter, proses ini menjadi sangat terstruktur dan aman, berkat arsitektur Model-View-Controller (MVC) yang dimilikinya. Tutorial ini akan memandu Anda langkah demi langkah untuk menginput data dari form HTML ke database MySQL menggunakan CodeIgniter 3.
Persiapan Awal
Sebelum memulai, pastikan Anda sudah memiliki hal-hal berikut:
- Instalasi CodeIgniter: Framework CodeIgniter sudah terinstal dan berjalan dengan baik di server lokal Anda (XAMPP, WAMP, atau lainnya).
- Koneksi Database: Pastikan Anda sudah mengkonfigurasi file
database.phpdi folderapplication/configuntuk terhubung ke database MySQL Anda. - Tabel Database: Buatlah sebuah tabel di database Anda. Misalnya, kita akan membuat tabel
mahasiswadengan struktur sebagai berikut:SQLCREATE TABLE `mahasiswa` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(255) NOT NULL, `nim` varchar(20) NOT NULL, `jurusan` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Langkah 1: Membuat View (Form HTML)
View bertanggung jawab untuk menampilkan form kepada pengguna. Kita akan membuat form sederhana untuk menginput data mahasiswa.
Buat file baru bernama v_input.php di dalam folder application/views.
application/views/v_input.php
<!DOCTYPE html>
<html>
<head>
<title>Input Data Mahasiswa</title>
</head>
<body>
<center>
<h3>Input Data Mahasiswa Baru</h3>
</center>
<form action="<?php echo base_url(). 'crud/tambah_aksi'; ?>" method="post">
<table style="margin:20px auto;">
<tr>
<td>Nama</td>
<td><input type="text" name="nama"></td>
</tr>
<tr>
<td>NIM</td>
<td><input type="text" name="nim"></td>
</tr>
<tr>
<td>Jurusan</td>
<td><input type="text" name="jurusan"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Tambah"></td>
</tr>
</table>
</form>
</body>
</html>
form action: Atributactionpada form mengarahkan data yang di-submit ke controllercruddan methodtambah_aksi.base_url(): Helper CodeIgniter untuk mendapatkan URL dasar proyek Anda.
Langkah 2: Membuat Model
Model adalah tempat kita menulis logika untuk berinteraksi dengan database. Ini adalah praktik terbaik (best practice) untuk memisahkan logika database dari controller.
Buat file baru bernama m_data.php di dalam folder application/models.
application/models/m_data.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_data extends CI_Model{
function input_data($data, $table){
$this->db->insert($table, $data);
}
}
CI_Model: ClassM_dataharus mewarisi classCI_Modelagar dapat menggunakan fungsi-fungsi database dari CodeIgniter.$this->db->insert(): Fungsi bawaan CodeIgniter untuk menginput data ke database. Fungsi ini menerima dua parameter: nama tabel ($table) dan data yang akan dimasukkan ($data).
Langkah 3: Membuat Controller
Controller adalah jembatan antara View dan Model. Controller menerima permintaan dari pengguna, memuat model untuk berinteraksi dengan database, dan kemudian memuat view untuk menampilkan hasilnya.
Buat file baru bernama Crud.php di dalam folder application/controllers.
application/controllers/Crud.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Crud extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('m_data');
$this->load->helper('url');
}
public function index(){
$this->load->view('v_input');
}
public function tambah_aksi(){
$nama = $this->input->post('nama');
$nim = $this->input->post('nim');
$jurusan = $this->input->post('jurusan');
$data = array(
'nama' => $nama,
'nim' => $nim,
'jurusan' => $jurusan
);
$this->m_data->input_data($data,'mahasiswa');
redirect('crud/index');
}
}
__construct(): Ini adalah fungsi konstruktor yang akan dijalankan pertama kali saat class diinstansiasi. Di sini, kita memuat modelm_datadan helperurl.index(): Method ini akan dijalankan saat Anda mengakseshttp://localhost/namaproyek/crud. Fungsinya hanya memuat viewv_input.tambah_aksi(): Method ini akan dipanggil saat form disubmit.$this->input->post(): Fungsi ini digunakan untuk mengambil data yang dikirimkan melalui method POST dari form.$data: Kita mengemas semua data input ke dalam sebuah array asosiatif. Kunci array ('nama','nim','jurusan') harus sama persis dengan nama kolom di tabel database Anda.$this->m_data->input_data(...): Memanggil fungsiinput_datadari modelm_datauntuk menyimpan data ke tabelmahasiswa.redirect(): Setelah data berhasil disimpan, kita mengarahkan pengguna kembali ke halaman utama (index) dari controllercrud.
Langkah 4: Menjalankan Aplikasi
Sekarang, buka browser Anda dan akses URL berikut:
http://localhost/namaproyek/index.php/crud
Anda akan melihat form input. Isi data, lalu klik tombol “Tambah”. Setelah berhasil, Anda akan dialihkan kembali ke halaman form dan data baru sudah tersimpan di tabel mahasiswa dalam database Anda.
Kesimpulan
Menginput data ke database dengan CodeIgniter menjadi lebih mudah dan terorganisir dengan memisahkan logika ke dalam Model, View, dan Controller. Pendekatan MVC ini tidak hanya membuat kode Anda lebih rapi dan mudah dikelola, tetapi juga meningkatkan keamanan dan skalabilitas aplikasi Anda di masa depan. Selamat mencoba!