Rest Web Service Codeigniter Bagian Ketiga (Database)

31 Dec, 2020 | Ditulis oleh : Fadlur Rohman

Rekomendasi Kelas
Membangun Toko Online Menggunakan Laravel

Laravel adalah salah framework php dengan pengguna terbanyak. Dengan banyaknya pengguna otomatis ketika kita menghadapi error akan lebih mudah menemukan solusin...

Bagian Pertama

Bagian Kedua

Pada bagian ini kita akan mensetting koneksi ke database yang akan kita gunakan sebagai lokasi penyimpanan data hasil pembacaan sensor.

Langkah pertama, kita akan membuat koneksi ke database yang kita buat dengan mengedit config/database.php.

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',//host
	'username' => 'root',//username
	'password' => 'root',//password
	'database' => 'iot_db',//nama database
	'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
);

Kemudian kita tambahkan library database ke config/autoload.php.

$autoload['libraries'] = array('database');

Setelah setup sudah selesai, sekarang kita buat table di database yang sudah kita buat tadi. Kita akan membuat dua buah table, yaitu table unit_client dan monitor_client.

CREATE TABLE `unit_client` (
  `id_unit` int(11) NOT NULL,
  `unit` varchar(16) DEFAULT NULL,
  `unit_create` datetime DEFAULT NULL,
  `unit_update` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `monitor_client` (
  `id_monitor` int(11) NOT NULL,
  `unit_id` int(11) DEFAULT NULL,
  `output` varchar(12) DEFAULT NULL,
  `monitor_created` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Setelah selesai membuat table, masukkan data ke table unit_client secara manual dengan nilai id_unit = 1, dan unit = “LM35”.

Tabel sudah siap, sekarang kita buat model untuk table tersebut.

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

class Model_unit extends CI_Model{

    public function getAll(){
        $query = $this->db->get('unit_client');
        return $query;
    }
    public function getMonitorByUnit($id){
        $this->db->select('*');
        $this->db->from('monitor_client');
        $this->db->where('unit_id', $id);
        $this->db->limit('100');
        $this->db->order_by('id_monitor','desc');
        $this->db->join('unit_client', 'unit_client.id_unit = monitor_client.unit_id');
        $query = $this->db->get('');
        return $query;
    }

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

class Model_monitor extends CI_Model{

    public function create($unit,$output){
        $data = array('unit_id' => $unit,
        'output'=>$output,
        'monitor_created'=>date('Y-m-d H-i-s'));
        $query = $this->db->insert('monitor_client', $data);
        return $query;
    }
    public function getByUnitId($id){
        $this->db->where('unit_id', $id);
        $query = $this->db->get('monitor_client');
        return $query;
    }

}

Dan terakhir kita edit controller dengan nama Monitor.php menjadi seperti berikut :

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

require APPPATH . '/libraries/REST_Controller.php';//lokasi library rest

class Monitoring extends REST_Controller{
    public function __construct(){
      parent::__construct();
      $this->load->model(array('model_monitor'));
    }

    function unit_get(){
        $data = array('respon : '.$this->get('id'));
        $this->response($data);
    }
    function unit_put(){
        $intruksi = $this->model_monitor->create($this->put('unit_id'),$this->put('output'));
        if ($intruksi==FALSE) {
            $this->set_response(array('status'=>'error'));
        }else{
            $this->set_response(REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
        }
    }
    function unit_post(){
        $data = array('respon : '.$this->post('id'));
        $this->response($data);
    }
    function unit_delete(){
        $data = array('respon : '.$this->delete('id'));
        $this->response($data);
    }

}

Setelah selesai, sekarang kita coba akses menggunakan postman. Responnya harus seperti ini.

Sampe bagian ini harusnya sudah cukup untuk membuat server IoT untuk monitoring.

Oke, selamat mencoba. Kalo bermanfaat silahkan share, kalo ada yang error silahkan tanya-tanya di kolom komentar.




Related Post :

Rest Api Authentication Laravel 8 menggunakan sanctum

22 Jan, 2021 - Fadlur Rohman

Laravel 8 menyediakan sistem authentication untuk SPA (single page app...

Restful API Menggunakan Laravel Framework

31 Dec, 2020 - Fadlur Rohman

Laravel telah dilengkapi fitur untuk membuat backend API, diantaranya:...

Sistem registrasi menggunakan codeigniter ion auth

31 Dec, 2020 - Fadlur Rohman

Sistem login untuk aplikasi simplegis sudah kita buat sebelumnya, untu...

Membuat sistem login menggunakan codeigniter ion auth

31 Dec, 2020 - Fadlur Rohman

Pada aplikasi simple gis yang kita buat, pengguna dapat mengakses hala...

Membuat Grafik Menggunakan CanvasJs

31 Dec, 2020 - Fadlur Rohman

Grafik digunakan untuk menampilkan ringkasan dari sekumpulan data, bia...

Rest Web Service Codeigniter Bagian Keempat (API KEY)

31 Dec, 2020 - Fadlur Rohman

Setelah kita membuat&nbsp;database&nbsp;untuk menyimpan data hasil mon...

Mau Bikin Aplikasi Web & Aplikasi Android?

Saya membuka jasa pembuatan aplikasi web dan android untuk aplikasi seperti toko online, monitoring (IoT), interface mesin absensi atau kasir

Silahkan kontak link di bawah ini untuk teknis dan harganya