Insert Data Pada CodeIgniter

5 Oct 2018 14:25 1535 Hits 0 Comments
Bagaimana cara melakukan insert data pada CodeIgniter?

Pada kesempatan sebelumnya, sempat dibahas banyak mengenai CodeIgniter sendiri. Dimulai dari pembedahan folder config, sistem kerja controller, hingga index pada CodeIgniter. Di kesempatan kali ini, akan dibahas mengenai sistem kerja transaksi data pada CodeIgniter, atau yang lebih kita kenal dengan istilah CRUD atau Create Read Update And Delete.

Hari ini, saya akan membahas mengenai cara memasukkan data dari halaman web menuju ke database pada CodeIgniter. Bagaimana cara melakukan insert data pada CodeIgniter?Berikut pembahasannya.

Untuk melakukan insert data ini, diperlukan sebuah routes atau url khusus agar halaman web yang dibuka tidak mengganggu kinerja halaman web lainnya. Untuk membuat url tersebut, bisa dilakukan pada file routes di folder config, dan buatlah routes berikut:

$route[‘folder_yang_dituju/nama_file’] =  ‘folder_yang_dituju/nama_file’;

Untuk klausa folder_yang_dituju itu dilakukan bila mana kalian menyimpan file dalam sebuah folder di folder views. Tapi, jika tidak menggunakan folder lagi, maka klausa tersebut tidak diperlukan, cukup klausa nama filenya saja yang dimasukkan. Setelah itu, buatlah sebuah file di folder views, terserah mau disimpan dimana, asalkan route dan controller bisa membaca file yang dibuat tersebut.

Misalkan file yang dibuat yaitu file create.php. Setelah dibuat, masukkan sebuah klausa validasi agar ketika nantinya kita gagal memasukkan data, maka akan muncul error pada halaman web tersebut. Klausa tersebut dijelaskan sebagai berikut:

<!--?php echo validation_errors(); ?-->

Sebelum pembahasan tersebut dilanjutkan, kemarin sempat dibahas mengenai perbedaan site_url dan base_url. Dimana, site_url bisa digunakan untuk menentukan aksi pada sebuah form. Untuk membuat sebuah aksi tersebut ada 2 cara, yang pertama menggunakan site_url. Penggunaan site_url tersebut bisa dijelaskan sebagai berikut:

form action=’site_url(‘nama_folder/create’)’ method=’post’

Bilamana file create tidak disimpan didalam sebuah folder lagi, maka klausa nama_folder dihilangkan saja. Dan ada cara kedua yaitu menggunakan klausa form_open dari php. Pendeklarasian klausa tersebut dijelaskan seperti berikut:

<!--?php echo form_open('nama_folder(bila_disimpan_di_folder)/create'); ?-->

Perbedaan dari 2 klausa tersebut yaitu, bila menggunakan site url maka menggunakan tag form pada HTML. Sedangkan klausa form_open menggunakan tag php dan ditutup dibawahnya menggunakan klausa form_close. Setelah itu, buatlah atribut-atribut form yang akan kalian gunakan seperti text box, text area, tombol dan sebagainya.

Apa itu sudah bisa dijalankan?Tentu saja belum, karena form tersebut belum disetting pada controller dan model. Untuk mengendalikan validasi dari form, masukkanlah kode berikut pada sebuah method baru dengan nama public function create():

$this->load->helper('form');

    $this->load->library('form_validation');

    $this->form_validation->set_rules('name_pada_text_box', 'nama_pada_label', 'required');

    if ($this->form_validation->run() == FALSE) {

      $this->load->view('nama_folder/nama_file);

    }else{

      $this->news_model->set_news();

      redirect(‘route_utama_yang_disetting');

    }

Penjelasan pada kode diatas:

Untuk nama helper dan library sendiri diambil berdasarkan apa yang akan dilakukan oleh user. Karena ini melibatkan form, maka helper dan library sendiri melibatkan tentang form itu sendiri. Lalu, ada juga pembuatan aturan seperti method set_rules. Apa itu?Yaitu untuk mengatur validasi dari form itu sendiri, misalkan ada atribut form seperti text box dan yang lainnya ingin disetting agar mereka harus diisi oleh user.

Dan juga ada penggunaan klausa if else. Hal ini dilakukan bila mana ada data yang tidak terisi, maka user tidak bisa pindah ke halaman lain sebelum data tersebut diisi. Ada juga penggunaan method set_news. Itu didapat dari model yang kita buat. Selain itu, ada juga penggunaan redirect. Ini didapat dari file routes tadi, misalkan settingan utama url kita yaitu melalui klausa news, maka ketika kita buka klausa localhost/folder_ci/news, maka akan membuka halaman utama dari news tersebut.

Masih belum selesai, karena pada model belum terdapat method set_news. Penggunaan method tersebut dijelaskan dalam kode berikut:

    $this->load->helper('url');

    $data = array(

      'kolom pada tabel database' => $this->input->post('name_pada_atribut_form'),

    );

    return $this->db->insert('nama_db', $data);

Penjelasan:

Pada method helper ada klausa bernama url, hal itu didapat dari nama url yang kita setting sebelumnya pada file routes. Lalu, ada penggunaan array, mengapa?Karena bila jumlah data yang dimasukkan lebih dari satu, maka gunakanlah method array. Dan ketika semua data telah benar-benar terisi, maka data tersebut akan tersimpan di database melalui klausa return diatas, dan akan mengembalikan user ke halaman utama news tadi.

Oke, itulah penjelasan mengenai insert data pada CodeIgniter. Semoga informasi ini dapat bermanfaat bagi kalian semua.
Tags

About The Author

Aldi Saepurahman-4 39
Ordinary

Aldi Saepurahman-4

My Coding My Adventure
Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel