Mari kita mulai perbincangan ini dari sejarah perkembangan web, sebagaimana sudah banyak masyarakat ketahui bahwasannya dunia internet lebih menarik dan lebih berwarna dengan adanya berbagai macam web, bermula dari:
- Web Statis : berbasis HTML dan halaman-halaman
- Web Dinamis : memisahkan antara kode program dan data
- Content Management System (CMS) : web instant berupa template web
- Web Framework
Pemahaman lebih jauh mengenai perbedaan antara web statis dan web dinamis bisa Anda simak di SINI.
1. Content Management System (CMS)
Penggunaan CMS sangat cocok untuk kebutuhan instant pembuatan web, sehingga Anda tidak perlu memulainya dari nol.
Sangat membantu pengembang web pemula, bahkan seorang awam pemrograman bisa mengoperasikannya, sebab dengan menggunakan CMS memungkinkan brainware tidak bersinggungan langsung dengan kode program.
CMS bisa juga digunakan untuk membangun sebuah aplikasi, namum tidak direkomendasikan, karena tidak semua CMS bisa digunakan untuk membangun aplikasi, banyak faktor yang perlu dipertimbangkan.
Beberapa jenis dan contoh CMS:
- Sistem portal : Joomla, Drupal, WordPress, AuraCMS, PHPNuke, dll.
- Elearning : Moodle, Atutor, DrupalEd, dll.
- Ecommerce : PrestaShop, ZendCart, VirtueMart Joomla, OsCommerce, dll.
- Forum diskusi : PHPBB, VFM, dll.
2. Web Framework
Paket ini lebih fleksibel untuk pengembangan aplikasi berbasis web, artinya dengan Web Framework kita bisa membuat CMS sendiri dan kita sesuaikan berdasarkan kebutuhan. Inilah yang membedakan antara CMS dengan Web Framework, dimana CMS bersifat instant dan langsung bisa digunakan oleh orang awam pemrograman sekalipun, sedangkan Web Framework tidak instant dan hanya kalangan programmer yang bisa menggunakannya.
Secara umum lebih secure (aman) dibandingkan CMS, karena struktur sistem terbagi menjadi tiga dan sering diistilahkan dalam bentuk singkatan MVC:
Secara sederhana bisa Anda analogikan Web Framework itu adalah sebuah paket, di dalam paket tersebut ada banyak folder, dan hanya 3 folder saja yang bisa diakses oleh pengembang web secara umum, yaitu Model, View, dan Controller, selebihnya adalah folder sistem utama dan hanya kontributor web framework tersebut yang boleh mengaksesnya.
Model
Adalah dokumentasi yang berkaitan dengan database, seperti DDL, DML.
View
Adalah dokumentasi yang berkaitan dengan tampilan halaman, seperti CSS, HTML, PHP.
Controller
Adalah dokumentasi yang berkaitan dengan request data, pengarahan akses, dan koneksi.
Agar seorang pengembang web bisa menggunakan web framework, maka syarat diperlukan adalah menguasai konsep OOP dan MVC.
Contoh web framework:
CodeIgniter (CI), CakePHP, Zend Framework, Yii, dll.
Jika Anda ingin mengetahui lebih banyak tentang perkembangan web framework, silakan berkunjung ke hotframeworks.com
3. Apa yang dimaksud framework ?
Framework adalah pola kerja dalam menyelesaikan suatu tugas, disusun sedemikian rupa (secara umum) sehingga bisa dikembangkan untuk menyelesaikan suatu tugas berbeda dalam koridor yang sama.
Secara sederhana bisa Anda pahami bahwa framework terdiri dari banyak class dan method atau fungsi yang powerful, dan bisa digunakan untuk menyelesaikan pembuatan web dalam waktu singkat.
4. Pengetahuan Dasar Sebelum Menggunakan Web Framework
[1]
Algoritma Pemrograman
Merupakan pengetahuan paling mendasar, bahkan tidak hanya dipersiapkan untuk menguasai web framework, tapi juga perlu dipersiapkan sebelum Anda mempelajari berbagai macam bahasa pemrograman.
[2]
Basic bahasa pemrograman framework tersebut, seperti; css, html, php, sql, dan javascript.
[3]
Konsep Object Oriented Programming (OOP)
Penggunaan Class dan Enkapsulasi merupakan bentuk implementasi dari konsep OOP di PHP, jika Anda belum memahami kedua hal tersebut, silakan simak pada tautannya.
Manfaat Menggunakan Framework
- Mempermudah dalam memahami mekanisme kerja sebuah aplikasi,
- Waktu yang dihabiskan untuk pembuatan atau pengembangan aplikasi menjadi lebih efisien,
- Integritas antar modul menjadi lebih terjaga.
- Reuseable, jadi suatu kode bisa digunakan berulang-ulang.
5. Pertimbangan Dalam Memilih Framework
a. Dokumentasi dari framework itu sendiri
Sejauh ini pendokumentasian paling lengkap masih dipegang oleh framework CodeIgniter.
b. Kesesuaian framework tersebut dengan aplikasi
Meskipun dokumentasi CodeIgniter sangat lengkap, namun bukan berarti framework tersebut bisa digunakan untuk skala apa saja. Analoginya seperti saat kita ingin memberantas beberapa nyamuk, kita hanya cukup menggunakan obat nyamuk atau tangan kosong atau raket nyamuk. Bukan berarti kita perlu mematikannya dengan rudal, meskipun sebenarnya menggunakan rudal juga bisa.
c. Support dengan fitur tambahan
Perlu diperhatikan juga spesifikasi fiturnya, apakah kedepan memungkinkan untuk berkolaborasi dengan fitur-fitur tambahan diluar framework tersebut.
Kelebihan CodeIgniter
- Banyak digunakan karena berukuran kecil dan ringan diakses,
- Framework dengan konfigurasi minimal,
- Dokumentasi lengkap dan jelas,
- Bersifat opensource dan didukung komunitas yang besar,
- Dapat dikembangkan dengan mudah (plugin, helper dan hook),
- Paket library yang lengkap (database, email, form, tabel, dll).
Note! - Hook adalah pemicu pengiriman email secara otomatis setelah melakukan registrasi.
Saya yakin, Anda pasti sudah pernah mendapatkan pengalaman ini (hook), seperti saat Anda membuat akun facebook, twitter, kaskus, dll. Anda pasti melakukan registrasi terlebih dahulu, lalu mendapatkan email konfirmasi.
6. Keamanan
Framework powerful bukan berarti jauh dari segala bentuk tindak kecurangan atau cybercrime. Karena framework bersifat opensource dan banyak kontributor yang terlibat di dalamnya, dan sudah bisa dipastikan bahwa mereka memiliki knowledge yang lebih terhadap framework, maka kita tidak tahu kapan para kontributor tersebut masih solid dalam visi misi mereka. Oleh sebab itu, kita dianjurkan untuk rajin melakukan update sistem framework yang sedang kita gunakan.
7. Arsitektur Web Framework MVC

Arsitektur Web Framework MVC
Prinsipnya siklus diatas bermula dari user mengakses browser, itu artinya dia request ke Controller >> Model >> Controller >> View >> Controller.

Konspe MVC Web Framework. Animation by: wegodev.com
MVC adalah design pattern dalam programming, MVC biasa digunakan oleh framework seperti Codeigniter, Symfony, Laravel dan lainnya.
MVC sendiri singkatan dari Model View Controller, dimana setiap komponen ini memiliki peran masing-masing sebagai berikut:
- Model digunakan untuk melakukan proses query ke database.
- View digunakan untuk melakukan proses pengaturan tampilan (design).
- Controller bisa dibilang sebagai pengendali dari sebuah system karena Controller menerima request dari user, mengelola data dari Model, memberikan data ke View sehingga tampilan sesuai dengan data yang ada dari model dan terakhir Controller akan me-response request yang dilakukan oleh user.
Apa Kelebihan MVC?
Jika kamu bekerja sebagai team yang lengkap dimana ada Data Architect, Front End Developer & Backend Developer maka kamu dapat berbagi tugas & file disaat yang sama dengan pembagian sebagai berikut:
- Data Architect bisa memegang file yang ada di Model.
- Front End Developer bisa memegang file yang ada di dalam view.
- Back End Developer bisa memegang file yang ada di dalam controller.
Apa Kekurangan MVC?
Menurut saya pribadi jika mengikuti alur MVC kita akan lebih banyak membuat file.
8. Praktikum
1. Download CodeIgniter di official webnya www.codeigniter.com
2. Extract ke directory www milik wampserver
3. Open wampserver
4. Run CodeIgniter yang telah diextract tadi

Secara default akan menampilkan halaman welcome
5. Pendekatan pertama kami diminta merubah tulisan "Welcome to CodeIgniter" menjadi kalimat lain (suka-suka), tapi dengan cara yang benar, bukan cara inspeksi elemen!
Maka yang perlu kita lakukan adalah mengakses folder CodeIgniter >> application >> controller, lalu buka file Welcome.php, di situ kita akan tau default pengaturan index CodeIgniter.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see https://codeigniter.com/user_guide/general/urls.html
*/
public function index()
{
$this->load->view('welcome_message');
/*CI secara default mengontrol index ke halaman welcome_message yang ada di folder view,
Maka kita bisa modifikasi di sana (welcome_message)*/
}
}
?>
6. Modifikasi heading < h1 > file "welcome_message.php" di folder view
<body>
<div id="container">
<!-- <h1>Welcome to CodeIgniter</h1> -- SEBELUM -->
<h1>Monggo Sinau CodeIgniter</h1> <!-- SESUDAH -->
<div id="body">
<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
<p>If you would like to edit this page you'll find it located at:</p>
<code>application/views/welcome_message.php</code>
<p>The corresponding controller for this page is found at:</p>
<code>application/controllers/Welcome.php</code>
<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p>
</div>
<p class="footer">Page rendered in <strong>0.1092</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>
</body>
Maka tampilannya akan berubah seperti ini;

Rename heading Welcome to CodeIgniter
7. Berikutnya kami diminta untuk membuat file baru dengan class baru di controller, dan file baru di view. Caranya duplikat file yang sudah ada lalu modifikasi!
Saya buat file WowCi.php dengan nama class WowCi, lalu default index saya arahkan ke file wow.php yang ada di folder view
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class WowCi extends CI_Controller {
/*
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see https://codeigniter.com/user_guide/general/urls.html
*/
public function index()
{
$this->load->view('wow');
}
}
?>
Berikutnya saya buat file wow.php di folder view, dan heading <h1> saya beri nama berbeda agar tahu perbedaannya, antara percobaan 1, 2, dan 3.
<?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">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#body {
margin: 0 15px 0 15px;
}
p.footer {
text-align: right;
font-size: 11px;
border-top: 1px solid #D0D0D0;
line-height: 32px;
padding: 0 10px 0 10px;
margin: 20px 0 0 0;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
</style>
</head>
<body>
<div id="container">
<h1>Wow 404</h1> <!-- Percobaan ke 3 (Terakhir) -->
<div id="body">
<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
<p>If you would like to edit this page you'll find it located at:</p>
<code>application/views/welcome_message.php</code>
<p>The corresponding controller for this page is found at:</p>
<code>application/controllers/Welcome.php</code>
<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p>
</div>
<p class="footer">Page rendered in <strong>0.1092</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>
</body>
</html>
8. Running file WowCi di controller, caranya sebagaimana telah dijelaskan di file Welcome.php yang terkandung dalam sintak komentar.
Berikut uri segmen untuk mengaksesnyahttp://localhost/CodeIgniter-3.1.0/index.php/WowCi

Tampilan file wow yang dikontrol file WowCi, SELESAI!