Cara Membuat Restful API Menggunakan Codeigniter 3 Dengan Sederhana

 

Kali ini kita akan belajar bagaimana membuat restful api menggunakan Codeigniter. Namun kalian tidak usah kuatir, karena yang akan kita lakukan adalah cukup dengan menambah method untuk request request yang kita butuhkan seperti GET, POST, PUT dan DELETE

Bagaimana caranya? Yukkkk, kita selidiki

Langkah Langkah

  • Pertama, download/clone sourcecode berikut dari Github. Letakkan di dalam web server kalian

https://github.com/yasyaindra/ci3-restful-api

Saya sendiri menggunakan Laragon, caranya adalah dengan buka Laragon, klik kanan Quick App, pilih Blank. Lalu kalian masuk ke dalam folder tersebut dan letakkan sourcecode dari github tersebut

  • Kedua, konfigurasikan database pada file database.php yang berada ada folder config

<?php

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

$active_group = 'default';

$query_builder = TRUE;

 

$db['default'] = array(

    'dsn'   => '',

    'hostname' => 'localhost',

    'username' => 'root',

    'password' => '',

    'database' => 'warung',

    'dbdriver' => 'mysqli',

    'dbprefix' => '',

    'pconnect' => FALSE,

    'db_debug' => (ENVIRONMENT !== 'production'),

    'cache_on' => FALSE,

    'cachedir' => '',

    'char_set' => 'utf8',

    'dbcollat' => 'utf8_general_ci',

    'swap_pre' => '',

    'encrypt' => FALSE,

    'compress' => FALSE,

    'stricton' => FALSE,

    'failover' => array(),

    'save_queries' => TRUE

);

  

  • Ketiga, buat database dan table menggunakan sql query. 

CREATE DATABASE warung;

 

USE warung;

CREATE TABLE IF NOT EXISTS `barang` (

  `kode` int(11) NOT NULL AUTO_INCREMENT,

  `nama_barang` varchar(50) NOT NULL,

  `jenis` varchar(13) NOT NULL,

  `harga` int(11) NOT NULL,

  `stok` int(11) NOT NULL,

  PRIMARY KEY (`kode`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8;

 

INSERT INTO barang (kode, nama_barang, jenis, harga, stok)

VALUES

    (1, 'Buku Komputer', 'Alat tulis', 15000, 1000),

    (2, 'Pensil', 'Alat tulis', 5000, 5000),

    (3, 'Tas Gendong', 'Tas', 250000, 30),

    (4, 'Seragam', 'Pakaian', 200000, 500),

    (5, 'Sepatu', 'Alas kaki', 100000, 100);

 

 

  • Keempat, buat file controller pada folder controller berisi class dan method seperti ini

class Barang extends REST_Controller {

 

    function __construct($config = 'rest') {

        parent::__construct($config);

        $this->load->database();

    }

 

    //Menampilkan data barang

    function index_get() {

        $kode = $this->get('kode');

        if ($kode == '') {

            $kontak = $this->db->get('barang')->result();

        } else {

            $this->db->where('kode', $kode);

            $kontak = $this->db->get('barang')->result();

        }

        $this->response($kontak, 200);

    }

 

    // mengirimkan data barang

    function index_post() {

        $data = array(

                    'kode' => $this->post('kode'),

                    'nama_barang' => $this->post('nama_barang'),

                    'jenis' => $this->post('jenis'),

                    'harga' => $this->post('harga'),

                    'stok' => $this->post('stok'));

        $insert = $this->db->insert('barang', $data);

        if ($insert) {

            $this->response($data, 200);

        } else {

            $this->response(array('status' => 'fail', 502));

        }

    }

 

    // mengubah isi data barang

    function index_put() {

        $kode = $this->put('kode');

        $data = array(

            'kode' => $this->put('kode'),

            'nama_barang' => $this->put('nama_barang'),

            'jenis' => $this->put('jenis'),

            'harga' => $this->put('harga'),

            'stok' => $this->put('stok'));

        $this->db->where('kode', $kode);

        $update = $this->db->update('barang', $data);

        if ($update) {

            $this->response($data, 200);

        } else {

            $this->response(array('status' => 'fail', 502));

        }

    }

 

    // menghapus isi data

    function index_delete() {

        $kode = $this->delete('kode');

        $this->db->where('kode', $kode);

        $delete = $this->db->delete('barang');

        if ($delete) {

            $this->response(array('status' => 'success'), 201);

        } else {

            $this->response(array('status' => 'fail', 502));

        }

    }

}

 

  • Lalu kita coba test menggunakan Postman

GET, untuk mendapatkan seluruh response dari isi database. Jika ingin hanya mendapatkan data dengan id spesifik, masukkan parameter ?kode=2

POST, untuk menambah data ke dalam database



PUT, untuk mengubah data yang diinginkan dengan id spesifik



DELETE, untuk menghapus data


Coba cek link tersebut untuk menguji apakah aplikasi yang saya buat berhasil atau tidak

Demo: https://warung.yasya.tech

 

Comments

Popular posts from this blog

Cara Mengatasi Hang/Freeze Pada Laptop Asus TUF Gaming

Cara Menjalankan PHP 8 & Laravel 9 Pada Laragon

Tutorial NextJS 13 & Typescript: Membuat Navbar Dengan Shadcn/UI