Untuk melakukan pembuatan aplikasi bisnis ini maka kita harus mempersiapkan:
1. Framework CI, kita dapat mengunjungi https://codeigniter.com/ untuk mengunduh
versi terbarunya. Untuk diperhatikan ketika menggunakan CI versi 3+ maka PHP
yang digunakan haruslah PHP versi 5.6.+.
2. Persiapkan editor untuk melakukan pengkodean, kita dapat menggunakan Visual
Studio Code, Notepad++, SublimeText, dll.
3. Persiapkan database yang akan digunakan, sebagai contoh kita dapat
menggunakan XAMPP
b. System
Folder system biasanya berisi file, baik itu file aplikasi yang sedang dibuat maupun
core-framework. Diantaranya adalah sebagai berikut :
1. Folder Core, merupakan folder yang digunakan untuk memperluas class inti
codeigniter.
2. Folder Database, merupakan folder yang digunakan untuk menyimpan semua
database driver dan class yang akan digunakan.
3. Folder Fonts, merupakan folder yang digunakan untuk menyimpan font yang
digunakan image manipulation library.
4. Folder Helpers merupakan folder yang digunakan untuk menyimpan helper core
ci.
5. Folder Language, merupakan folder yang digunakan untuk menyimpan semua
bahasa core ci.
c. User_guide
Folder ini biasanya berisi userguide/ manual penggunaan Framework CI. berikut
folder-folder yang ada didalam folder user_guide.
2. Install XAMPP
Sebelum kita melakukan proses instalasi XAMPP, maka terlebih dahulu kita dapat
mengunduh software Bitnami for XAMPP pada laman web
https://www.apachefriends.org/download.html. Link tersebut akan secara otomatis
mengunduh file installer, tunggu sesaat sampai proses unduh selesai dan siap untuk
dilakukan proses instalasi dengan hasil seperti gambar di bawah ini.
Klik dua kali pada aplikasi xampp yang telah diunduh dan akan tampil splash screen
bitnami, setelah itu akan ada peringatan error seperti pada gambar di bawah ini:
Error tersebut terkait dengan masalah hak akses, klik OK maka akan melakukan proses
awal instalasi Setup – XAMPP dengan tampilan seperti di bawah ini:
Setelah itu maka akan tampil halaman pemilihan item apa saja yang akan kita install di
dalam web server xampp. Silahakn disesuaikan dengan kebutuhan kita. Pada kasus ini
kita pilih seluruhnya item-item yang akan diinstall dengan tampilan seperti gambar di
bawah ini :
Selanjutnya pilih tombol Next untuk melanjutkan, dan kita akan diarahkan untuk
menentukan drive dan folder instalasi xampp. Jika secara default installer aplikasi maka
akan diarahkan ke drive C dengan folder nama folder xampp7 sesuai dengan gambar
dibawah ini:
Selanjutnya pilih Next dan akan tampil promosi bitnami menawarkan cara menginstall
CMS seperti pada gambar di bawah ini:
Selanjutnya pilih Next dan proses instalasi akan berjalan untuk melakukan ekstrak file-file
xampp ke dalam hrad drive folder yang telah kita tentukan pada pembahasan
sebelumnya. Selanjutnya tunggu sesaat proses tersebut hingga selesai.
Selanjutnya langkah terakhir dari proses instalasi Xampp adalah akan tampil form
Completing the XAMPP Setup Wizard. Lalu terdapat checkbox Do you want to start the
Control Panel now?, seperti pada gambar di bawah ini:
Biarkan ceklis tersebut, atau jika tidak ada ceklis maka berikan ceklis tersebut maka akan
secara otomatis XAMPP Control Panel akan berjalan lalu klik Finish. Sampai proses ini
instalasi XAMPP telah selesai. Lalu kita coba cek pada folder yang telah kita siapkan
sebelumnya pada proses instalasi. Karena kita memberikan ceklis pada proses akhir,
maka Xampp Control panel akan ditampilkan, namun untuk kali pertama dijalankan akan
Setelah kita pilih OK maka selanjutnya akan tampil Xampp Control Panel seperti pada
gambar di bawah ini:
Lalu kita pilih tombol Start pada Apache dan MySQL untuk menjalankan web server dan
database kita, dan akan tampil seperti pada gambar di bawah ini:
Untuk menguji jika semua sudah berjalan dengan baik, mari kita buka browser dan
arahkan ke alamat URL http://localhost atau http://127.0.0.1 , jika berhasil maka akan
tampil seperti pada gambar di bawah ini:
Dari penjelasan tentang model view dan controller di atas dapat di simpulkan bahwa
controller sebagai penghubung view dan model. misalnya pada aplikasi yang
menampilkan data dengan menggunakan metode konsep mvc, controller memanggil
intruksi pada model yang mengambil data pada database, kemudian controller yang
meneruskannya pada view untuk di tampilkan. jadi jelas sudah dan sangat mudah
dalam pengembangan aplikasi dengan cara mvc ini karena web designer atau front-
Pada pembahasan ini kita akan coba secara bertahap memulai membuat aplikasi bisnis
menggunakan framework CI. Untuk memulai membuat aplikasi menggunakan
CodeIgniter langkah yang harus kita lakukan adalah sebagai berikut:
1. Buat folder baru dan beri nama web2 pada folder C:\xampp7\htdocs\. Perlu
diperhatikan bahwa drive C ini sesuai dengan proses instalasi xampp pada
pembahasan di atas.
2. Ekstrak file CI dari hasil download https://codeigniter.com/download dan simpan pada
under root web server kita. Jika kita menggunakan XAMPP, maka secara default root
tersebut terletak pada C:\xampp7\htdocs\web2\. Hasil ekstrak akan membentuk
struktur file seperti di bawah ini:
3. Selanjutnya kita jalankan CI yang telah kita download pada browser dengan mengetikkan
http://localhost/web2/ dan akan tampil seperti gambar di bawah:
Untuk diketahui sebelumnya bahwa proses menampilkan aplikasi pada bahasa program
PHP Native akan berbeda dengan PHP Framework, khususnya pada Framework
CodeIgniter. Jika dalam PHP Native yang akan ditampilkan adalah file dengan nama
index.php atau index.html, namun pada framework CodeIgniter yang akan ditampilkan
adalah sesuai dengan apa yang kita setting pada file routes.php di dalam folder
application/config/.
Script: $this->load->view('welcome_message');
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to CodeIgniter</title>
<style type="text/css">
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
..........................................................
...........................................................
<?php
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
*/
$config['base_url'] = 'http://localhost/web2';
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = 'index.php';
$autoload['libraries'] = array('database','session');
$autoload['helper'] =array('url','form','html','file');
Pada file autoload tersebut, akan dilakukan load pertama library dan helper yang
dibutuhkan, seperti library => database ataupun helper => url, form, html, file
$route['default_controller'] = 'latihan';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
}
public function method()
{
//mendeklarasikan method POST dengan variabel
$nilai1 = $this->input->post('nilai1');//mengambil nilai1 yang dimasukan
$nilai2 = $this->input->post('nilai2'); //mengambil nilai2 yang dimasukan
$operasi = $this->input->post('operasi'); //mengambil operasi
}
}
<head><title>Latihan1</title></head>
<body>
<h2>Latihan Atrribut method</h2>
<form action="<?php echo base_url().'index.php/latihan/method';?>" method="POST">
<table>
<tr>
<td>Nilai 1</td>
<td><input type="number" name="nilai1"></td>
</tr>
<tr>
<td></td>
<td><select name="operasi">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select></td>
</tr>
<tr>
<td>Nilai 2</td>
<td><input type="number" name="nilai2"></td>
</tr>
<tr>
<td><input type="submit" name="hitung"></td>
</tr>
</table>
</form>
</body>
</html>
?>
<head><title>Latihan2</title></head>
<body>
<h2>Latihan MVC</h2>
<table border=1>
<tr>
<th>NO</th>
<th>NIK</th>
<th>NAMA</th>
<th>JABATAN</th>
</tr>
<?php
$no =1;
foreach($list_pegawai as $rowPegawai){
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $rowPegawai['nik']; ?></td>
<td><?php echo $rowPegawai['nama']; ?></td>
<td><?php echo $rowPegawai['jabatan']; ?></td>
</tr>
<?php
$no++;
3. Session
Session digunakan untuk menyimpan data sementara. Pada sebuah
apliksi atau halaman web kita sering melihat bahwa saat saat login
dengan username dan password yang telah dimiliki muncul halaman
utama web yang menampilkan username. sebagai contoh login dengan
username robert dan password 123456 maka saat login berhasil maka
di menu navigasi akan muncul tulisan “robert” atau “selamat datang
robert”.
• Berikut contoh membuat session :
$this->session->set_userdata('nama_session', 'nilai_session');
sebagai contoh :
$this->session->set_userdata('username','robert');
untuk mengakses variable session yang telah dibuat sebelumnya, dapat
menggunakan kode :
$this->session->set_userdata('username');
function index()
{
//memuat view dengan nama V_latihan3
$this->load->view('v_latihan3');
function cek_login()
{
//mendeklarasikan method POST dengan variabel
$username = $this->input->post('username');
$password = $this->input->post('password');
//jika username atau password benar maka akan masuk ke halaman home
redirect(base_url('/index.php/latihan3/home'));
} else {
//halaman home
function home(){
//cek session jika masih aktif
if($this->session->userdata('username')) {
//redirect ke halaman home jika session masih aktif
$this->load->view('v_latihan3_home');
} else {
//redirect ke halaman index jika session telah dihapus
function logout()
{
//menghapus session yang telah dibuat
$this->session->sess_destroy();
//redirect ke halaman login
redirect(base_url('/index.php/latihan3/'));
}
<head><title>Latihan3</title></head>
<body>
<h2>Latihan Session Login</h2>
<form action="<?php echo base_url().'index.php/latihan3/cek_login';?>" method="POST">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" name="login" value="login"></td>
</tr>
</table>
</form>
</body>
</html>
<head><title>Latihan3</title></head>
<body>
<?php
//Menampilkan session username
echo 'Selamat datang <b>'.$this->session->userdata('username').'</b> di pemrograman web2';
//Logout atau keluar dari aplikasi / hapus session username
echo '<br><a href="'.base_url().'/index.php/latihan3/logout">Logout</a>';
?>
</body>
</html>
c. maka akan muncul seperti dibawah ini, lalu tekan oke untuk
mendownload.
//consturct ini dapat juga berfungsi untuk memanggil pertama helper atau
library yang akan digunakan
function __construct(){
parent::__construct();
}
$this->load->view('v_utama',$data);
}
$this->load->view('v_utama',$data);
}
jika diklik pada menu Data Pegawai maka akan muncul seperti
dibawah ini:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '', //dikosongkan karena database tidak menggunakan
password
'database' => 'db_web2',
'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
);
Setelah itu pastikan load database pada file
application/config/autoload.php, pastikan seperti dibawah ini :
$autoload['libraries'] = array('database','session');
Tabel t_jabatan
$data['content'] = 'v_pegawai';
$this->load->view('v_utama',$data);
}
$this->load->view('v_utama',$data);
}
$this->M_pegawai->delete($id);
$this->session->set_flashdata('success','Pegawai berhasil dihapus');
redirect("pegawai");
}
}
<div class="thumbnail">
<div class="caption">
<h3> Data Pegawai</h3>
</div>
<!-- ========== Notif Flashdata ========== -->
<?php if ($this->session->flashdata('success') || $this->session-
>flashdata('warning')) { ?>
<?php if ($this->session->flashdata('success')) { ?>
<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert"
aria-hidden="true">×</button>
<i class="fa fa-check sign"></i><?php echo $this-
>session->flashdata('success'); ?>
</div>
<div class="caption">
<h3> Form Pegawai</h3>
</div>
<form action="<?php echo base_url();?>index.php/pegawai/save" method="POST">
<input type="hidden" name="id_pegawai" value="<?php echo (isset($row-
>id_pegawai)?$row->id_pegawai:'');?>" class="form-control">
<table class="table" width="100%">
<tr>
<td>NIP</td>
<td>:</td>
<td><input type="text" name="nip" value="<?php echo (isset($row-
>nip)?$row->nip:'');?>" required class="form-control"></td>
</tr>
<tr>
<td>NAMA</td>
<td>:</td>
<td><input type="text" name="nama" value="<?php echo (isset($row-
>nama)?$row->nama:'');?>" required class="form-control"></td>
</tr>
<tr>
<td>JABATAN</td>
<td>:</td>
<td>
<select name="id_jabatan" class="form-control">
<?php
echo '<option value="">--Pilih--</option>';
foreach($jabatan as $row_jabatan) {
if($row_jabatan->id_jabatan==$row->id_jabatan){
echo'<option value="'.$row_jabatan->id_jabatan.'"
selected>'.$row_jabatan->nama_jabatan.'</option>';
} else {
echo'<option value="'.$row_jabatan-
>id_jabatan.'">'.$row_jabatan->nama_jabatan.'</option>';
}
}
f. ketika diklik button Tambah Data, maka akan muncul seperti gambar
dibawah :
function __construct(){
parent::__construct();
// Load model M_Pegawai.php yang sebelumnya sudah dibuat
$this->load->model("M_pegawai");
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Method: PUT, GET, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, x-xsrf-token');
}
Keterangan :
• url : http://localhost/web2/index.php/restfull/get_all_pegawai
• method : GET
}
lalu jalankan pada postman, pastikan id_pegawai karena dicontoh ini
yang dipanggil mempunyai id_pegawai = 5 jadi urlnya
http://localhost/web2/index.php/restfull/get_pegawai/5 dan klik Send
seperti dibawah ini :
Keterangan :
• url : http://localhost/web2/index.php/restfull/get_pegawai/5
• method : GET
if(!empty($nama)){
$data = array(
// field => isi
'nip' => $nip,
'id_jabatan' => $id_jabatan,
'nama' => $nama,
'agama' => $agama,
'telepon' => $telepon,
'jenis_kelamin' => $jenis_kelamin,
'alamat' => $alamat
);
}
echo json_encode($json);
}
lalu jalankan pada postman, klik Send, jika berhasil maka akan
mengeluarkan json status 1 seperti dibawah ini, :
c c c
c
c
Keterangan :
• url : http://localhost/web2/index.php/restfull/add_pegawai
• method : POST
• body : form-data
$nip = $this->input->post('nip');
$id_jabatan = $this->input->post('id_jabatan');
$nama = $this->input->post('nama');
$agama = $this->input->post('agama');
$telepon = $this->input->post('telepon');
$jenis_kelamin = $this->input->post('jenis_kelamin');
$alamat = $this->input->post('alamat');
if(!empty($nama)){
$data = array(
// field => isi
'nip' => $nip,
'id_jabatan' => $id_jabatan,
'nama' => $nama,
'agama' => $agama,
'telepon' => $telepon,
'jenis_kelamin' => $jenis_kelamin,
'alamat' => $alamat
);
// Query ubah di model M_Pegawai.php
$simpan = $this->M_pegawai->update($data, $id);
if($simpan){
$json['status'] = 1;
}else{
$json['status'] = 0;
}
}
echo json_encode($json);
}
lalu jalankan pada postman, pastikan id_pegawai karena dicontoh ini
yang diedit/update mempunyai id_pegawai = 5 jadi urlnya
http://localhost/web2/index.php/restfull/edit_pegawai/5 dan klik
c c c
c
c
Keterangan :
• url : http://localhost/web2/index.php/restfull/edit_pegawai/5
• method : POST
• body : form-data
{
if(!empty($id)){
// Query delete di model M_Pegawai.php
$hapus = $this->M_pegawai->delete($id);
if($hapus){
$json['status'] = 1;
}else{
$json['status'] = 0;
}
}
echo json_encode($json);
}
c c c
Keterangan :
• url : http://localhost/web2/index.php/restfull/delete_pegawai/5
• method : DELETE