Blog
Cara Membuat REST Client Menggunakan Codeigniter
- August 23, 2016
- Posted by: Nuris Akbar SST, M.Kom
- Category: Tutorial Codeigniter

Rest Client yang saya maksud dinisi adalah sebuah aplikasi yang mengakses data dari sebuah API/ Rest Server, misalnya aplikasi Facebook mobile yang mengakses API ( Application Programming Interface ) dari facebook, nah aplikasi mobile ini bisa disebut sebagai aplikasi client. yang menarik disini adalah dengan ada nya API tersebut maka aplikasi lintas platform bisa menggunakan data tersebut dengan batasan tertentu tanpa perlu mengakses database secara langsung. sebelum melanjutnya materi ini ada baiknya anda membaca tutorial sebelumnya karena ini merupakan lanjutan dari tutorial sebelumnya.
Baca Juga : Cara membuat Rest Api Menggunakan Codeigniter
Installasi & Konfigurasi Codeigniter
sebelum melakukan instalasi pastikan anda sudah mempersiapkan web server untuk menyimpan aplikasi yang akan kita bangun nantinya karena kita menggunakan codeigniter, jika belum punya anda sangat saya sarankan untuk membaca postingan dibawah ini terlebih dahulu :
Baca juga : Cara Install Xampp Pada OS Microsoft Windows
jika anda sudah menginstall xampp atau yang menggunakan program lain seperti wampp maka sekarang kita akan mulai tahapan menginstall codeigniter terlebih dahulu.
- silahkan download codeigniter pada situs resminya www.codeigniter.com
- kemudia extrack/ unzip file CodeIgniter-3.1.0.zip.
- setelah itu silahkan rename folder CodeIgniter-3.1.0 menjadi rest_client
- pindahkan folder rest_client tersebut ke folder C:\xampp\htdocs.
- sekarang silahkan bukan web browser anda dan masukan http://localhost/rest_client/ pada web address maka akan muncul seperti ini :
selamat sampai pada tahap ini anda sudah berhasil menginstall codeigniter, tahap selanjutnya adalah melakukan konfigurasi dasar, silahkan buka file config.php yang ada dalah folder application/config/config.php menggunakan IDE kesayangan anda. silahkan cari script berikut ini :
$config['base_url'] = '';
dan ubah menjadi seperti ini :
$config['base_url'] = 'http://localhost/rest_client/';
Install Library codeigniter curl
library codeigniter curl adalah sebuah library yang dibuat oleh phil sturgeon yang berasal dari brooklyn, walapun menurut info dari halaman github bahwa library ini udah deprecated tapi masih tetap bisa digunakan jika anda memenggunakan PHP Versi 5. untuk melakukan instalasi library ini silahkan ikuti tahapan berikut :
- download library melalui repository github codeigniter-curl
- extrack file codeigniter-curl-master.zip dan copykan file Curl.php yang ada dalam folder library ke C:\xampp\htdocs\rest_client\application\libraries
langkah selanjutnya kita akan meload beberapa library dan helper yang sering digunakan nantinya, coba buka file autoload.php yang ada dalam folder C:\xampp\htdocs\rest_client\application\config, lalu load library nya dengan cara berikut :
$autoload['libraries'] = array('curl','session'); $autoload['helper'] = array('form','url');
Membuat Controller
langkah selanjutnya adalah membuat controller dengan nama Mahasiswa.php dan tulis lah script berikut ini :
<?php Class Mahasiswa extends CI_Controller{ var $API =""; function __construct() { parent::__construct(); $this->API="http://localhost/rest_server/index.php"; } // menampilkan data mahasiswa function index(){ $data['mahasiswa'] = json_decode($this->curl->simple_get($this->API.'/mahasiswa')); $this->load->view('mahasiswa/list',$data); } // insert data mahasiswa function create(){ if(isset($_POST['submit'])){ $data = array( 'nim' => $this->input->post('nim'), 'nama' => $this->input->post('nama'), 'id_jurusan'=> $this->input->post('jurusan'), 'alamat' => $this->input->post('alamat')); $insert = $this->curl->simple_post($this->API.'/mahasiswa', $data, array(CURLOPT_BUFFERSIZE => 10)); if($insert) { $this->session->set_flashdata('hasil','Insert Data Berhasil'); }else { $this->session->set_flashdata('hasil','Insert Data Gagal'); } redirect('mahasiswa'); }else{ $data['jurusan'] = json_decode($this->curl->simple_get($this->API.'/jurusan')); $this->load->view('mahasiswa/create',$data); } } // edit data mahasiswa function edit(){ if(isset($_POST['submit'])){ $data = array( 'nim' => $this->input->post('nim'), 'nama' => $this->input->post('nama'), 'id_jurusan'=> $this->input->post('jurusan'), 'alamat' => $this->input->post('alamat')); $update = $this->curl->simple_put($this->API.'/mahasiswa', $data, array(CURLOPT_BUFFERSIZE => 10)); if($update) { $this->session->set_flashdata('hasil','Update Data Berhasil'); }else { $this->session->set_flashdata('hasil','Update Data Gagal'); } redirect('mahasiswa'); }else{ $data['jurusan'] = json_decode($this->curl->simple_get($this->API.'/jurusan')); $params = array('nim'=> $this->uri->segment(3)); $data['mahasiswa'] = json_decode($this->curl->simple_get($this->API.'/mahasiswa',$params)); $this->load->view('mahasiswa/edit',$data); } } // delete data mahasiswa function delete($nim){ if(empty($nim)){ redirect('mahasiswa'); }else{ $delete = $this->curl->simple_delete($this->API.'/mahasiswa', array('nim'=>$nim), array(CURLOPT_BUFFERSIZE => 10)); if($delete) { $this->session->set_flashdata('hasil','Delete Data Berhasil'); }else { $this->session->set_flashdata('hasil','Delete Data Gagal'); } redirect('mahasiswa'); } } }
Membuat View
langkah selanjutnya kita akan membuat view untuk menampilkan informasi yang di ambil dari web service dan dikirimkan melalui controller mahasiswa di atas. namun agar file nya terorganisir dengan baik semua view ini nantinya akan kita tampung dalam satu folder yang akan kita beri nama mahasiswa seperti gambar disamping.
yang pertama adalah view list.php akan digunakan untuk menampilkan daftar mahasiswa, scriptnya sebagai berikut :
<?php echo $this->session->flashdata('hasil'); ?> <table> <tr><th>NIM</th><th>NAMA</th><th>ID JURUSAN</th><th>ALAMAT</th><th></th></tr> <?php foreach ($mahasiswa as $m){ echo "<tr> <td>$m->nim</td> <td>$m->nama</td> <td>$m->id_jurusan</td> <td>$m->alamat</td> <td>".anchor('mahasiswa/edit/'.$m->nim,'Edit')." ".anchor('mahasiswa/delete/'.$m->nim,'Delete')."</td> </tr>"; } ?> </table>
selanjutnya adalah view create.php ini berfungsi untuk menampilkan form yang menjadi interface bagi pengguna dalam meng input data baru, scriptnya seperti ini :
<?php echo form_open('mahasiswa/create');?> <table> <tr><td>NIM</td><td><?php echo form_input('nim');?></td></tr> <tr><td>NAMA</td><td><?php echo form_input('nama');?></td></tr> <tr><td>JURUSAN</td><td> <select name="jurusan"> <?php foreach ($jurusan as $j){ echo "<option value='$j->id_jurusan'>$j->nama_jurusan</option>"; } ?> </select> </td></tr> <tr><td>ALAMAT</td><td><?php echo form_input('alamat');?></td></tr> <tr><td colspan="2"> <?php echo form_submit('submit','Simpan');?> <?php echo anchor('mahasiswa','Kembali');?></td></tr> </table> <?php echo form_close(); ?>
lalu yang terakhir adalah view edit.php yang akan digunakan sebagai media untuk menampilkan data yang akan di edit kedalam sebuah form, scriptnya adalah sebagai berikut :
<?php echo form_open('mahasiswa/edit');?> <?php echo form_hidden('nim',$mahasiswa[0]->nim);?> <table> <tr><td>NIM</td><td><?php echo form_input('',$mahasiswa[0]->nim,"disabled");?></td></tr> <tr><td>NAMA</td><td><?php echo form_input('nama',$mahasiswa[0]->nama);?></td></tr> <tr><td>JURUSAN</td><td> <select name="jurusan"> <?php foreach ($jurusan as $j){ echo "<option value='$j->id_jurusan' "; echo $mahasiswa[0]->id_jurusan==$j->id_jurusan?'selected':''; echo ">$j->nama_jurusan</option>"; } ?> </select> </td></tr> <tr><td>ALAMAT</td><td><?php echo form_input('alamat',$mahasiswa[0]->alamat);?></td></tr> <tr><td colspan="2"> <?php echo form_submit('submit','Simpan');?> <?php echo anchor('mahasiswa','Kembali');?></td></tr> </table> <?php echo form_close(); ?>
Download Source Code + Ebook Membangun Web Service Dengan Codeigniter Dan SQL Server 2008
Nuris Akbar SST, M.Kom
Senior Backend Web Developer Dengan Pengalaman Lebih Dari 8 Tahun, Sekarang Menjadi CTO Di Startup Globalvillage, Founder Academy Diigtal Dan Instruktur Training Di PT Brainamtics Cipta Informatika.
Author:nuris


Nuris Akbar SST, M.Kom
Senior Backend Web Developer Dengan Pengalaman Lebih Dari 8 Tahun, Sekarang Menjadi CTO Di Startup Globalvillage, Founder Academy Diigtal Dan Instruktur Training Di PT Brainamtics Cipta Informatika.