1 Belajarphp.net tutorial web development MEMBANGUN WEB SERVICE MENGGUNAKAN CODEIGNITER DAN SQL SERVER BATAM, NOVEMBER TRAINER : NURIS AKBAR SST Nuris...
MEMBANGUN WEB SERVICE MENGGUNAKAN CODEIGNITER DAN SQL SERVER BATAM, 25 – 27 NOVEMBER 2015
TRAINER : NURIS AKBAR SST
Nuris Akbar SST 1/1/2015
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER
PENGANTAR DARI PENULIS Ebook ini adalah softcopy dari workshop tentang membangun web service yang saya ajarkan di batam kemarin untuk salah satu perusahaan BUMN. Alhamdulillah dalam 2 hari kami menyelesaikan belajar codeigniter dari basic dan pada hari kedua membangun web service termasuk aplikasi untuk client nya. Tidak ada jaminan anda akan mendapatkan hasil yang sama walupun anda punya panduan yang sama karna ebook ini hanya bersifat pendukung, suasana belajar yang efektik merupakan kunci keberhasilan mereka belajar dengan cepat dan efektif. Hal yang sama saya juga saya terapkan dalam panduan belajar web development yang saya buat, anda akan saya pandu belajar step by step + layanan konsultasi jika anda mendapatkan masalah sehingga proses belajar jadi lebih cepat dan efektif. Sudah banyak testimony yang bias anda lihat sendiri di web. Sekarang giliran anda untuk sukses Untuk pemesanan video tutorial web development : Tokopedia : https://tokopedia.com/tutorialpemogram SMS/ WA : 08969993552 BBM : 7D4D3286
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER INSTALASI DAN KONFIGURASI DASAR CODEIGNITER Codeigniter adalah salah satu framework yang memiliki minim konfigurasi, langkah pertama yang akan kita lakukan adalah mengdownload master framework codeigniter disini https://codeload.github.com/bcit-ci/CodeIgniter/zip/3.0.3 setelah itu Extrack source master codeigniter tersebut ke C:\xampp\htdocs dan ubahlah nama folder codeigniter tersebut menjadi websrvice. Langkah selanjutnya Aktifkan local web server yang sudah anda install dan setelah itu buka web browser anda, coba akses http://localhost/webservice/ maka jika muncul welcome codeigniter maka artinya anda sudah berhasil melakukan proses install codeigniter Setelah proses instalasi berhasil maka kita akan melakukan beberapa konfigurasi seperti konfigurasi web, database dan autoload . yang pertama adalah konfigurasi web ( config.php) yang ada pada file application/config/config.php : $config['base_url'] = 'http://localhost/webservice/'; $config['index_page'] = '';
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 : 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]
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER
MEMBUAT DAN KONFIGURASI DATABASE Langkah selanjutnya kita akan membuat database dengam nama webservice, nantinya kita akan membutuhkan 2 tabel sederhana untuk menyimpan data kita, strukturnya sebagai berikut
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;
MODIFY `groupID` int(11) NOT NULL
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 );
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER MEMBUAT APLIKASI DENGAN KONSEP MVC Pada tahap ini kita akan membuat aplikasi sederhana untuk mengelola data customer dangan konsep MVC ( model view controller ), nantinya kita akan memanfaatkan helper dari codeigniter untuk mengenerate form, oleh karena itu kita perlu mengload dulu helpernya, bukalah file autoload.php yang ada dalam folder config dan ubah sehinggan menjadi seperti dibawah ini : $autoload['libraries'] = array('database','session','template'); $autoload['helper'] = array('file','form','url');
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 : 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);
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER redirect('customer'); } }
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 : 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 :
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER Source code edit.php
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER INTEGRASI DENGAN BOOSTRAP Langkah selanjutnya adalah kita akan memperbaiki tampilan aplikasi yang kita buat dengan bantuan boostrap, untuk memulainya kita harus download boostrap dulu dan extrak kedalam project kita, lalu rename folder tersebut menjadi boostrap
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 : <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=""> CRUD DATA CUSTOMER
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
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER
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 ubah menjadi // display all customer list function index(){ $data['customers'] = $this->model_customer->select_all(); $this->template->load('template_master','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:
DATA CUSTOMER
'btn btn-danger btn-sm')); ?>
NO
NAMA LENGKAP
ALAMAT
NO HP
ACTION
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER foreach ($customers->result() as $customer){ echo "
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 :
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER load->model('model_customer'); } // display all customer list function index(){ $data['customers'] = $this->model_customer->select_all(); //$this->load->view('customer/list',$data); $this->template->load('template_master','customer/list',$data); } // load form new customer function add(){ //$this->load->view('customer/add'); $this->template->load('template_master','customer/add'); } // store customer to database 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); $this->template->load('template_master','customer/edit',$data); } function update(){ $this->model_customer->update(); redirect('customer'); } function delete(){ $id = $this->uri->segment(3); $this->model_customer->delete($id); redirect('customer'); } }
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER Customer/add.php
Nama
Kota
No HP
Hasil dari script berikut akan menghasilkan tampilan seperti ini, lebih rapi dan bagus kan ?
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER Application/edit.php
Nama
Kota
No HP
'btn btndanger btn-sm'));?>
Hasilnya akan menjadi seperti berikut ini :
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER MEMBANGUN WEBSERVICE Pada bab ini kita akan mencoba membuat webservice untuk layanan data customer, dimana akan ada 2 resource yang akan bertindak sebagai client dan server. Server adalah source web service yang menyediakan layanan data yang bersumber dari database sedangkan client adalah source yang akan mengakses data yang diberikan oleh webservice.
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
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER Oke sebagai langkah pertama kita akan membangun web service nya terlebih dahulu, silahkan extrack library codeigniter rest-server tadi kedalam project kita dan nanti anda akan menemukan file rest.php yang ada difolder config dan REST_controller.php yang ada di folder libraries. Sekarang kita akan membuat controllernya dulu, buatlah sebuah file dengan nama Api.php dan tulis scriptnya : get('id'); if ($id) { $customer = $this->db->get_where('customer', array('customerID' => $id))->result(); } else { $customer = $this->db->get('customer')->result(); } // generate response if($customer){ $this->response($customer,200); }else{ $this->response(array('status'=>'not found'),404); } } function customers_post() { $params = array( 'customerName' => $this->post('name'), 'customerPhone' => $this->post('phone'), 'customerCity' => $this->post('city')); $process = $this->db->insert('customer', $params); if($process){ // 201 artinya Successful creation of a resource. $this->response(array('status'=>'succes'),201); }else{ // 502 artinya Backend service failure (data store failure). return $this->response(array('status'=>'fail'), 502); }
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER } function customers_put() { $params = array( 'customerName' => $this->put('name'), 'customerPhone' => $this->put('phone'), 'customerCity' => $this->put('city')); $this->db->where('customerID', $this->put('id')); $execute = $this->db->update('customer', $params); if($execute){ $this->response(array('status'=>'succes'),201); }else{ return $this->response(array('status'=>'fail'), 502); } } function customers_delete($id) { $this->db->where('customerID', $this->delete('id')); $execute = $this->db->delete('customer'); if($execute){ $this->response(array('status'=>'succes'),201); }else{ return $this->response(array('status'=>'fail'), 502); } } }
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
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER API="http://localhost/webservice/customer/customers/"; } function index() { $data['customers'] = $this->__execute($this->API,'get', ''); $this->template->load('template_master', 'customer/list', $data); } function add() { if (isset($_POST['submit'])) { $params = array( 'name' => $this->input->post('name'), 'phone' => $this->input->post('phone'), 'city' => $this->input->post('city')); $this->__execute($this->API,'post', $params); redirect('customer'); } else { $this->template->load('template_master', 'customer/add'); } } function edit() { if (isset($_POST['submit'])) { $params = array( 'name' => $this->input->post('name'), 'id' => $this->input->post('id'), 'phone' => $this->input->post('phone'), 'city' => $this->input->post('city')); $result = $this->__execute($this->API.'format/json/','put', $params); redirect('customer');
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER } } function delete($id) { $this->__execute($this->API,'delete', array('id' => $id)); redirect('customer'); } 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); $this->curl->$method($param); $result = json_decode($this->curl->execute()); return $result; } }
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 :
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER AUTHENTIFIKASI PENGGUNA Library rest-server ini sudah menyediakan fasilitas authetifikasi yang memudahkan kita untuk mengatur siapa saja yang mempunyai hak akses untuk menggunakan webservice yang kita bangun, ada beberapa jenis authentifikasi yang disediakan yaitu basic, digest dan session, kita juga bisa menggunakan library authetification yang lain untuk library ini |-------------------------------------------------------------------------| REST Login |-------------------------------------------------------------------------| | Set to specify the REST API requires to be logged in | | FALSE No login required | 'basic' Unsecure login | 'digest' More secure login | 'session' Check for a PHP session variable. See 'auth_source' to set the | authorization key | */ $config['rest_auth'] = 'basic';
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; }
------- Selesai --------
MEMBANGUN WEB SERVICE MENGGUNAKAN 2015 CODEIGNITER DAN SQL SERVER TENTANG PENULIS Saya adalah seorang web developer dari Nanggroe Aceh Darussalam, sekarang sedang menyelesaikan pendidikan magister di salah satu sekolah tinggi ilmu komputer dibandung. Kegiatan utama saya adalah sebagai seorang freelancer, Trainer dan pembuat video tutorial web development dan pengelola website belajarphp.net.