Cara Membuat REST API di Framework CodeIgniter #4 : Detail Data Berdasarkan ID


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com

Cara Membuat REST API di Framework CodeIgniter #4 : Detail Data Berdasarkan ID - Halo teman-teman semuanya, jika sebelumnya kita sudah membahas bagaimana cara menampilkan semua data dengan REST API di Framework CodeIgniter.

Pada kesempatan kali ini kita semua akan belajar bagaimana cara menampilkan data dengan REST API berdasarkan ID atau detail data.

Langsung saja kita mulai, silahkan buka Siswa.php di dalam folder application/controllers dan silahkan kalian tambahkan fungsi dibawah ini :

/**
     * 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!'
                )
            );

        }
        
    }

Kode diatas digunakan untuk menampilkan detail data siswa berdasarkan ID siswa. Sekarang coba kalian perhatikan pada kode ini :

//get ID siswa from URL
$id_siswa = $this->uri->segment(3);

Kode diatas otomatis di dapatkan dari URL segment ke 3, dimana itu jika kalian perhatikan merupakan ID dari data siswa.

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!'
                )
            );

        }
        
    }

}

Sekarang kita juga akan menambahkan satu fungsi baru lagi di dalam Models M_siswa.php, kurang lebih seperti berikut ini :

     /**
     * 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();
    }

Kode diatas digunakan untuk menampilkan data siswa berdasarkan ID. Jika Models M_siswa.php di tulis 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();
    }

}

Oke sekarang kita bisa mencoba menjalankan aplikasi kita menggunakan Postman. Silahkan buka Postman dan akses http://localhost/api-codeigniter/index.php/siswa/detail/1.

Jika kalian berhasil, maka kalian akan mendapatkan sukses response kurang lebih seperti berikut ini :

{
    "success": true,
    "data": {
        "nama_siswa": "Fika Ridaul Maulayya",
        "alamat": "Jombang, Jawa Timur"
    }
}

Atau kurang lebih seperti gambar dibawah ini :


Sampai disini pembahasan tentang menampilkan detail data berdasarkan ID dengan REST API di Framework CodeIgniter. Terima Kasih


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com
KEBIJAKAN KOMENTAR

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

KOMENTAR