Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
langkah selanjutnya kita akan memperbaiki url system yang kita buat agar menjadi lebih SEO
friendly, secara default codeigniter akan menyertakan index.php sebelum nama controller
ketika di akses pada web browser, nah solusi dari hal ini adalah membuat file .htacces pada
root project anda dan tulislah script berikut ini :
<IfModule mod_rewrite.c>
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
</IfModule>
Atau anda bisa membuat tabel tersebut dengan memasukan query SQL berikut ini :
CREATE TABLE IF NOT EXISTS `customer` (
`customerID` int(11) NOT NULL,
`customerName` varchar(40) NOT NULL,
`customerCity` text NOT NULL,
`customerPhone` varchar(12) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `customergroup` (
`groupID` int(11) NOT NULL,
`groupName` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `customer` ADD PRIMARY KEY (`customerID`);
ALTER TABLE `customergroup` ADD PRIMARY KEY (`groupID`);
ALTER TABLE `customer` MODIFY `customerID` int(11) NOT NULL
AUTO_INCREMENT,AUTO_INCREMENT=6;
ALTER TABLE `customergroup`
AUTO_INCREMENT;
Setelah selesai membuat database maka kita akan mengatur configurasi database
menyesuaikan dengan settingan dari web server, silahkan buka file database.php yang ada
pada application/config/database.php dan sesuaikan dengan konfigurasi anda
$db['default'] = array(
'dsn'
=> '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'webservice',
'dbdriver' => 'mysqli',
'save_queries' => TRUE
);
Langkah selanjutnya adalah membuat controller, controller adalah salah satu bagian dari
konsep MVC yang bertugas menjadi perantara antara model dan view, juga sebagai tempat
untuk melakukan logika atau proses bisniss dari aplikasi yang kita buat, oke langsung saja
buat file baru dengan nama Customer.php didalam folder application/controller dan tulislah
script berikut :
<?php
class Customer extends CI_Controller{
function __construct() {
parent::__construct();
$this->load->model('model_customer');
}
function index(){
$data['customers'] = $this->model_customer->select_all();
$this->load->view('customer/list',$data);
}
function add(){
$this->load->view('customer/add');
}
function store(){
$this->model_customer->save();
redirect('customer');
}
function edit(){
$id = $this->uri->segment(3);
$data['customer'] = $this->model_customer->get_customer($id)
->row_array();
$this->load->view('customer/edit',$data);
}
function update(){
$this->model_customer->update();
redirect('customer');
}
function delete(){
$id = $this->uri->segment(3);
$this->model_customer->delete($id);
Langkah selanjutnya membuat model, model adalah sebuah class yang bertugas untuk
berinteraksi dengan database seperti proses insert, update, delete dan select,oke buatlah
sebuah file baru dengan nama Model_customer.php dan tulislah script berikut :
<?php
class Model_customer extends CI_Model{
// return all data customer
function select_all(){
return $this->db->get('customer');
}
// return one customer
function get_customer($id){
$this->db->where('customerID',$id);
return $this->db->get('customer');
}
// store new customer to database
function save(){
$params = array(
'customerName' => $this->input->post('name'),
'customerCity' => $this->input->post('city'),
'customerphone' => $this->input->post('phone')
);
$this->db->insert('customer',$params);
}
// update data customer
function update(){
$this->db->where('customerID', $this->input->post('id'));
$params = array(
'customerName' => $this->input->post('name'),
'customerCity' => $this->input->post('city'),
'customerphone' => $this->input->post('phone')
);
$this->db->insert('update',$params);
}
// delete customer record
function delete($id){
$this->db->where('customerID',$id);
$this->db->delete('customer');
}
}
Sekarang kita akan membuat view yang merupakan bagian untuk menampilkan informasi
kepada client,lokasinya ada di application/views, oke supaya file file kita lebih terorganisir
maka buatlah sebuah folder dengan nama customer dan buatlah 3 file berikut :
form_open('customer/store');?>
form_input('name', '',"placeholder='Nama'");?><br><br>
form_input('city', '',"placeholder='Kota'");?><br><br>
form_input('phone', '',"placeholder='No HP'");?><br><br>
form_submit('submit','simpan')?>
Lalu buatlah sebuah file baru dengan nama template_master.php pada folder
application/views, file template ini nantinya akan menjadi master template pada aplikasi
kita :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>CRUD DATA CUSTOMER</title>
<link href="<?php echo base_url();?>bootstrap/css/bootstrap.min.css"
rel="stylesheet">
<link href="<?php echo base_url();?>bootstrap/css/sticky-footernavbar.css" rel="stylesheet">
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
Untuk management templating kita akan menggunakan library dari jeromejaglale.com dan
bisa anda download disini http://goo.gl/eLRspS , Kemudian anda harus mengestrack file
ci_template_library3.zip ke folder C:\xampp\htdocs\webservice\application\libraries
Library ini akan sering kita gunakan nantinya jadi oleh karena itu lebih baik kita lakukan
sedikit konfigurasi agar library ini selalu diload oleh system kita dengan menambahkan
template pada list library yang selalu diload, silahkan buka application/config/autoload.php
$autoload['libraries'] = array('database','session','template');
Masih ingat tampilan list customer yang kita buat tadi ? nah sekarang kita akan melakukan
sedikit manipulasi agar tampilan nya menjadi lebih menarik, caranya adalah dengan
menggunakan perintah dari library template agar meload template master yang kita buat,
buka controller customer :
// display all customer list
function index(){
$data['customers'] = $this->model_customer->select_all();
$this->load->view(customer/list,$data);
}
Lalu kita akan ubah juga view untuk list customernya menggunakan style dari boostrap,
buka file views/customer/list.php dan ubahlah sehingga menjadi seperti ini:
<h3>DATA CUSTOMER</h3>
<?php echo anchor('customer/add','ENTRY',array('class'=>'btn btn-danger
btn-sm')); ?>
<table class="table table-bordered">
<tr><td>NO</td><td>NAMA LENGKAP</td><td>ALAMAT</td><td>NO HP</td><td
colspan="2">ACTION</td></tr>
<?php
$no=1;
Maka silahkan akses program anda melalui browser dan akan menjadi seperti ini :
Berikut ini adalah script full untuk controller yang sudah di modifikasi, dan script untuk
pemanggilan viewnya tidak saya hilangkan melainkan hanya diberikan tanda komentar saja :
Hasil dari script berikut akan menghasilkan tampilan seperti ini, lebih rapi dan bagus kan ?
Untuk membuat web service kita akan menggunakan library rest server untuk codeigniter 3
yang dibuat oleh chris kacerguis dari Austin, sourcenya bisa di download disini
https://github.com/chriskacerguis/codeigniter-restserver
Penjelasan:
Tidak jauh berbeda dengan script CRUD yang sudah kita bahas sebelumnya cuman ada
beberapa hal yang perlu diperhatikan yaitu terkait untuk mendapatkan inputan, library restserver ini mendapatkan inputan sesuai dengan method yang disetting, agar lebih jelas
silahkan lihat tabel dibawah ini :
METHOD
GET
POST
PUT
DELETE
CARA REST-SERVER
$this->get(id);
$this->post(id)
$this->put(id);
$this->delete(id);
CARA CODEIGNITER
$this->input->post(id);
$this->input->get(id);
---
Selanjutnya kita bisa mengirimkan response kepada client terhadap status request yang
dilakukan oleh clietn dengan cara $this->response();
Setelah webservicenya sudah beres maka kita akan membuat controller untuk client nya,
caranya buatlah sebuah controller dengan nama Customer.php dan tulislah script berikut ini
} else {
$id = $this->uri->segment(3);
$data['customer'] = $this->__execute(
$this->API.'id/'.$id,'get', array('id' => $id));
$this->template->load('template_master',
'customer/edit', $data);
Viewnya juga harus disesuaikan, pada tutorial pertama tentang codeigniter hasil yang
diberikan adalah berupa array dan sekarang data yang diberikan berupa object sehingga
cara mengakses datanya pun harus kita rubah. Oke silahkan buka view/customer/edit.php
dan sesuaikan dengan script berikut :
Anda bisa memilih salah satu jenis autentifikasi yang ingin digunakan, atau jika anda ingin
membuka akses webservice yang anda buat bisa dengan cara menmeberikan value FALSE
pada config rest_auth;
Lalu jika anda mensetting jenis authetifikasinya dengan basic atau yang lain, maka anda juga
harus menyertakan informasi authetification account yang digunakan untuk mengakses web
service, berikut ini contoh penggunaan nya :
function __execute($url,$method,$param) {
$username = 'admin';
$password = '1234';
$this->load->library('curl');
$this->curl->create($url);
// Optional, delete this line if your API is open
$result_login = $this->curl->http_login($username, $password);
// end optional for autehntification webservice
$this->curl->$method($param);
$result = json_decode($this->curl->execute());
return $result;
}
HP/ WA
PIN BBM
Email
Github
: 089699935552
: 53F552DE
: nuris.akbar@gmail.com
: https://github.com/nurisakbar