Cara Membuat REST API di Framework CodeIgniter #5 : Update Data ke Database


Cara Membuat REST API di Framework CodeIgniter #5 : Update Data ke Database

Cara Membuat REST API di Framework CodeIgniter #5 : Update Data ke Database - Halo teman-teman semuanya, di artikel sebelumnya kita sudah berhasil menampilkan data berdasarkan ID menggunakan REST API di Framework CodeIgniter.

Pada kesempatan kali ini kita semua akan belajar bagaimana cara mengupdate data menggunskan REST API di Framework CodeIgniter dan menggunakan Method PUT.

Langsung saja, silahkan tambahkan fungsi di bawah ini ke dalam controller Siswa.php di dalam folder application/controllers.

/**
     * Update Data Siswa
     */    
    public function update()
    {
        //set validasi
        $this->form_validation->set_rules('id_siswa','ID Siswa','required');
        $this->form_validation->set_rules('nama_siswa','Nama Siswa','required');
        $this->form_validation->set_rules('alamat','Alamat Siswa','required');

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

            $id['id_siswa'] = $this->input->post("id_siswa");
            $data = array(
                'nama_siswa' => $this->input->post("nama_siswa"),
                'alamat'     => $this->input->post("alamat"),
            );

            $update = $this->M_siswa->update_siswa($data, $id);

            if($update) {

                header('Content-Type: application/json');
                echo json_encode(
                    array(
                        'success' => true,
                        'message' => 'Data Berhasil Diupdate!'
                    )
                );

            } else {

                header('Content-Type: application/json');
                echo json_encode(
                    array(
                        'success' => false,
                        'message' => 'Data Gagal Diupdate!'
                    )
                );
            }

        }else{

            header('Content-Type: application/json');
            echo json_encode(
                array(
                    'success'    => false,
                    'message'    => validation_errors()
                )
            );

        }
    }

Kode diatas digunakan untuk mengupdate data siswa berdasarkan ID. Jika controller Siswa.php ditulis dengan lengkap kurang lebih seperti berikut ini :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Siswa extends CI_Controller {

    public function __construct() {
        parent::__construct();

        //load model
        $this->load->model('M_siswa');

        //load library form validasi
        $this->load->library('form_validation');
    }

    /**
     * Get All Data
     */
    public function index()
    {
        $siswa = $this->M_siswa->get_all();

        $response = array();

        foreach($siswa->result() as $hasil) {

            $response[] = array(
                'nama_siswa' => $hasil->nama_siswa,
                'alamat'     => $hasil->alamat         
            );

        }
        
        header('Content-Type: application/json');
        echo json_encode(
            array(
                'success' => true,
                'message' => 'Get All Data Siswa',
                'data'    => $response  
            )
        );

    }

    /**
     * Simpan Data
     */
    public function simpan()
    {
        //set validasi
        $this->form_validation->set_rules('nama_siswa','Nama Siswa','required');
        $this->form_validation->set_rules('alamat','Alamat Siswa','required');

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

            $data = array(
                'nama_siswa' => $this->input->post("nama_siswa"),
                'alamat'     => $this->input->post("alamat"),
            );

            $simpan = $this->M_siswa->simpan_siswa($data);

            if($simpan) {

                header('Content-Type: application/json');
                echo json_encode(
                    array(
                        'success' => true,
                        'message' => 'Data Berhasil Disimpan!'
                    )
                );

            } else {

                header('Content-Type: application/json');
                echo json_encode(
                    array(
                        'success' => false,
                        'message' => 'Data Gagal Disimpan!'
                    )
                );
            }

        }else{

            header('Content-Type: application/json');
            echo json_encode(
                array(
                    'success'    => false,
                    'message'    => validation_errors()
                )
            );

        }

    }


    /**
     * Detail Data Siswa
     */
    public function detail($id_siswa)
    {
        //get ID siswa from URL
        $id_siswa = $this->uri->segment(3);

        $siswa = $this->M_siswa->detail_siswa($id_siswa)->row();
     
        if($siswa) {

            header('Content-Type: application/json');
            echo json_encode(
                array(
                    'success' => true,
                    'data'    => array(
                        'nama_siswa' => $siswa->nama_siswa,
                        'alamat'     => $siswa->alamat   
                    )  
                )
            );

        } else {

            header('Content-Type: application/json');
            echo json_encode(
                array(
                    'success' => false,
                    'message' => 'Data Siswa Tidak Ditemukan!'
                )
            );

        }
    }

    /**
     * Update Data Siswa
     */    
    public function update()
    {
        //set validasi
        $this->form_validation->set_rules('id_siswa','ID Siswa','required');
        $this->form_validation->set_rules('nama_siswa','Nama Siswa','required');
        $this->form_validation->set_rules('alamat','Alamat Siswa','required');

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

            $id['id_siswa'] = $this->input->post("id_siswa");
            $data = array(
                'nama_siswa' => $this->input->post("nama_siswa"),
                'alamat'     => $this->input->post("alamat"),
            );

            $update = $this->M_siswa->update_siswa($data, $id);

            if($update) {

                header('Content-Type: application/json');
                echo json_encode(
                    array(
                        'success' => true,
                        'message' => 'Data Berhasil Diupdate!'
                    )
                );

            } else {

                header('Content-Type: application/json');
                echo json_encode(
                    array(
                        'success' => false,
                        'message' => 'Data Gagal Diupdate!'
                    )
                );
            }

        }else{

            header('Content-Type: application/json');
            echo json_encode(
                array(
                    'success'    => false,
                    'message'    => validation_errors()
                )
            );

        }
    }

}

Sekarang kita juga akan menambah sebuah fungsi baru di dalam Model M_siswa.php, kurang lebih seperti berikut ini :

    /**
     * Update Data Siswa
     */
    public function update_siswa($data, $id)
    {
        $update = $this->db->update("tbl_siswa", $data, $id);

        if($update) {
            return TRUE;
        } else {
            return FALSE;
        }

    }

Kode diatas digunakan untuk mengupdate data siswa berdasarkan ID. Jika Models M_siswa.php ditulis dengan lengkap kurang lebih seperti berikut ini :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class M_siswa extends CI_Model {

    /**
     * Get All Data Siswa
     */
    public function get_all()
    {
        $this->db->select("*");
        $this->db->from("tbl_siswa");
        $this->db->order_by("id_siswa", "DESC");
        return $this->db->get();
    }

    /**
     * Simpan Data Siswa
     */
    public function simpan_siswa($dara)
    {
        $simpan = $this->db->insert("tbl_siswa", $data);

        if($simpan) {
            return TRUE;
        } else {
            return FALSE;
        }

    }

     /**
     * Detail Data Siswa
     */
    public function detail_siswa($id_siswa)
    {
        $this->db->select("*");
        $this->db->from("tbl_siswa");
        $this->db->where("id_siswa", $id_siswa);
        return $this->db->get();
    }

    /**
     * Update Data Siswa
     */
    public function update_siswa($data, $id)
    {
        $update = $this->db->update("tbl_siswa", $data, $id);

        if($update) {
            return TRUE;
        } else {
            return FALSE;
        }

    }

}

Sekarang kita bisa langsung ujia aplikasi REST API kita untuk mengupdate data melalui http://localhost/api-codeigniter/index.php/siswa/update dengan menggunakan Method POST. Jangan lupa tambahkan kolom id_siswa di form body pada Postman. Kurang lebih seperti gambar dibawah ini :


Jika kalian berhasil mengupdate data, kurang lebih kalian akan mendapatkan hasil response seperti berikut ini :

{
    "success": true,
    "message": "Data Berhasil Diupdate!"
}

Sampai disini pembahasan tentang cara update Data dengan REST API di Framework CodeIgniter. Terima kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami