Pemateri :
Hasanuddin, S.T.,M.Cs.
Kerjasama Prodi Teknik Informatika & SIG WAP dan Web Programming
Fakultas Teknologi Industri
Universitas Ahmad Dahlan
2010
KATA PENGANTAR
Alhamadulillah, puji syukur kami panjatkan kehadirat Allah SWT yang telah
melimpahkan rahmat-Nya hingga kami dapat menyelenggarakan Pelatihan Web
Framework CodeIgniter. Workshop ini dapat terselenggara atas kerjasama Pimpinan
Prodi Teknik Informatika dan Special Interest Group (SIG) WAP dan Web Programming
Program Studi (Prodi) Teknik Informatika Fakultas Teknologi Industri Universitas
Ahmad Dahlan (UAD) Yogyakarta.
Materi dalam pelatihan ini disajikan secara sistematis dan mendasar karena
untuk menguasai web framework sejenis CodeIgniter apalagi dengan latar belakang
kompetensi yang beragam, tidak bisa instan dalam waktu yang singkat, namun perlu
bertahap. Pada materi ini difokuskan untuk menguasai dasar-dasar OOP (Object
Oriented Programming) dan MVC (Model, View, Controller) serta pengenalan
framework CodeIgniter. Secara keseluruhan materi dalam pelatihan ini disadur dari
berbagai sumber untuk memudahkan peserta dalam memahami materi yang disajikan.
Harapan yang ingin dicapai dengan adanya pelatihan ini adalah semoga
para peserta dapat membangun suatu aplikasi berbasis web menggunakan Framework
CodeIgniter. Semoga dengan pelatihan ini dapat menambah wawasan dan bekal bagi
calon pembimbing/penguji KP/TP/TA di masa-masa mendatang. Jika terdapat suatu
kekurangan, kami mohon maaf sebesar-besarnya. Kritik dan saran dapat dilayangkan
ke hasan@uad.ac.id.
1. Pendahuluan
2. Latihan
Persiapan :
Pastikan web server telah aktif dan dapat menjalankan http://localhost
tanpa error.
Gunakan editor web yang tersedia (misalnya Macromedia Dreamweaver)
Letakkan file program pada folder masing-masing di web root (misalnya
C:/XAMPP/htdocs/workshop/).
<?php
$nama = "Budiman";
$alamat = "Yogyakarta";
$a = 3;
$b = 7;
$c = $a + $b;
for($i=$a;$i<$b;$i++)
{
echo $i."<br>";
}
?>
Ketik dan jalankan kode program di atas melalui web browser.
for($i=0; $i<count($nama);$i++)
{
echo "Indeks ke-".$i." Isinya = ".$nama[$i]."<br>";
}
?>
Ketik dan jalankan kode program di atas melalui web browser.
function kali()
{
$a = 5; $b = 10;
return ($a*$b);
}
echo "Hasil kali 5 dan 10 adalah ".kali();
echo "<br><br>";
function Konsumen() {
$this->belanja=0;
}
function beli($harga,$jum) {
$hasil = $harga * $jum;
$this->belanja = $this->belanja + $hasil;
}
function cetak() {
echo "Total belanja = ".$this->belanja;
}
}
$budi = new Konsumen();
echo "Data pertama <br>";
$budi->cetak();
1. Pendahuluan
Untuk melakukan instalasi CodeIgniter, anda harus memiliki source code atau
bendel paket CodeIgniter. Anda dapat mendownload pada
www.codeigniter.com (dalam workshop ini, master CodeIgniter 1.7.2 telah
disediakan).
Struktur isi file instalasi CodeIgniter adalah :
o file index.php file utama web
o file license.txt lisensi produk
o folder system folder sistem aplikasi
o folder user_guide file dokumentasi bagi pengguna
Web framework secara arsitektur sistem terdiri dari 3 bagian yang dikenal
dengan konsep MVC. Ketiga bagian tersebut yaitu :
o Model berhubungan dengan penyajian dan manipulasi data dari dan
ke database
o View berhubungan dengan penyajian data pada tampilan halaman
web
o Controller logic pemrograman yang mengatur keterlibatan Model dan
View.
2. Latihan
Persiapan :
Pastikan web server telah aktif dan dapat menjalankan http://localhost
tanpa error.
Gunakan editor web yang tersedia (misalnya Macromedia Dreamweaver)
Pastikan master CodeIgniter 1.7.2 terdapat di komputer anda.
f. Buka web browser dan ketikkan alamat URL sistem, maka akan tampil
halaman utama aplikasi CodeIgniter.
Contoh URL : http://localhost/workshop
$route['default_controller'] = "welcome";
Menjadi :
$route['default_controller'] = "latihan1";
<?php
class latihan2 extends Controller {
function latihan2()
{
parent::Controller();
}
function index() {
echo "Selamat datang di CodeIgniter";
echo br(1).anchor('latihan2/coba1/uad','Ke Fungsi Coba1');
echo br(1).anchor('latihan2/coba2/3/7','Ke Fungsi Coba2');
}
function coba1($teks) {
echo "Teks yang diterima pada fungsi Coba1 : ".$teks;
echo br(1).anchor('latihan2','Ke Halaman Utama');
}
function coba2($bilangan1, $bilangan2) {
echo "Bilangan yang diterima melalui fungsi Coba2 : ".$bilangan1.
dan .$bilangan2;
$hasil = $bilangan1 + $bilangan2;
echo br(1).Hasil jumlah keduanya adalah = .$hasil;
echo br(1).anchor('latihan2','Ke Halaman Utama');
}
}
?>
1. Pendahuluan
<?php
class Mahasiswa extends Controller {
function Mahasiswa()
{
parent::Controller();
}
function index()
{
echo "Menggunakan view dan controller<br>";
echo "Isilah form dengan klik link berikut<br>";
echo anchor('mahasiswa/form','Form Input Mahasiswa');
}
function form()
{
$this->load->view('formMahasiswa');
}
<?php
$this->load->helper('form');
$this->load->library('table');
$this->table->set_caption('Form Input Data Mahasiswa');
echo form_open("mahasiswa/kirim");
$this->table->add_row("NIM : ", form_input('nim'));
$this->table->add_row("Nama : ", form_input('nama'));
$this->table->add_row("Program Studi: ",
form_dropdown('prodi',array('Teknik Informatika','Teknik Elektro','Teknik
Industri',Teknik Kimia),'0'));
$this->table->add_row(form_submit('submit','Simpan'));
echo $this->table->generate();
echo form_close();
?>
c. Buat file view dengan nama kirimMahasiswa.php yang terletak di folder
/system/application/views/ berisi script berikut :
<?php
echo "<h3 align='center'>Hasil Input Data Mahasiswa</h3>";
echo "NIM :".$nim.'<br>';
echo "Nama Lengkap :".$nama.'<br>';
echo "Program Studi:".$prodi.'<br><br>';
echo anchor('mahasiswa/form','Isi Form Lagi');
?>
d. Untuk melihat hasil dari studi kasus ini, buka web browser dan masukkan URL
di bawah ini:
http://localhost/workshop/index.php/mahasiswa
e. Amati hasil output program di atas dan lakukan percobaan input data melalui
form
<?php
class model_barang extends Model{
function model_barang()
{
parent::Model();
}
function getBarang()
{
$this->load->database();
$query = $this->db->query('select kode_barang, nama_barang,
harga_satuan from barang order by kode_barang desc limit 1');
if($query->num_rows() > 0)
{
foreach($query->result() as $row)
{
$this->kode = $row->kode_barang;
$this->nama = $row->nama_barang;
$this->harga = $row->harga_satuan;
}
} else {
$this->kode = 'Kosong';
$this->nama = 'Kosong';
$this->harga = 'Kosong';
}
}
function addBarang($data)
{
$this->load->database();
$this->db->set('kode_barang',$data['kode']);
$this->db->set('nama_barang',$data['nama']);
$this->db->set('harga_satuan',$data['harga']);
$this->db->insert('barang');
}
}
?>
function lihat() {
$this->load->model('model_barang');
$this->model_barang->getBarang();
$data = array ( 'kode' => $this->model_barang->kode,
'nama' => $this->model_barang->nama,
'harga' => $this->model_barang->harga
);
$this->load->view('view_barang', $data);
}
function kirim() {
$data = array ( 'kode' => $_POST['kode'],
'nama' => $_POST['nama'],
'harga' => $_POST['harga']
);
$this->load->model('model_barang');
$this->model_barang->addBarang($data);
echo anchor('toko/lihat','Lihat Data Barang');
}
}
?>
e. Untuk melihat hasil program di atas, buka web browser dan masukkan URL di
bawah ini:
http://localhost/workshop/index.php/toko
f. Amati hasil output program di atas dan lakukan percobaan input data melalui
form
1. Pendahuluan
Kalkulatorku merupakan aplikasi sederhana untuk mengolah angka dalam
fungsi penjumlah dan perkalian.
Arsitektur MVC dari aplikasi tersebut adalah sebagai berikut :
Pada bagian Model, kita hanya akan membuat satu file model yaitu
mkalkulator.php. Pada model ini dalamnya akan terdapat fungsi penjumlahan
dan fungsi perkalian.
Pada bagian Controller, kita juga hanya membuat sebuah file controller yang
kita beri nama kalkulator.php. Di dalam controller ini terdapat fungsi-fungsi
pengaturan logika jalannya aplikasi kita.
Pada bagian View, kita akan membuat 2 buah file. File pertama (vutama.php)
berfungsi untuk menampilkan form input dari kalkulator, sedangkan file kedua
(vhasil.php) berfungsi untuk menampilkan hasil perhitungan kalkulator.
$config['base_url'] = "http://localhost/kalkulatorku";
$autoload['helper'] = array('url','form','html');
$autoload['library'] = array('table');
$route['default_controller'] = "kalkulator";
<?php
Class mkalkulator extends Model {
function mkalkulator(){
parent::Model();
}
function penjumlahan($a, $b)
{
$hasil_jumlah = $a + $b;
return $hasil_jumlah;
}
function perkalian($i, $j)
{
$hasil_kali = $i * $j;
return $hasil_kali;
}
}
?>
<?php
class kalkulator extends Controller {
function kalkulator(){
parent::Controller();
}
function index(){
$this->load->view('vutama');
}
function hasil(){
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
$operasi = $_POST['operasi'];
if($operasi=='jumlah'){
$this->load->model('mkalkulator');
$data = array ( 'bil1' => $bil1, 'bil2' => $bil2, 'tanda' => '+', 'hasil' =>
$this->mkalkulator->penjumlahan($bil1,$bil2));
$this->load->view('vhasil',$data);
} else {
1. Pendahuluan
Pada folder Model, kita hanya akan membuat satu file model saja yaitu
phone_model.php. Pada model ini kita akan membuat sebuah model dengan
nama Phone_model. Di dalamnya akan terdapat fungsi-fungsi yang
berhubungan dengan database. karena sudah jelas semua data kontak kita
akan disimpan di database.
Pada folder Controller, kita juga hanya membuat sebuah file controller yang
kita beri nama phone.php. Di dalam phone.php ini kita akan membuat sebuah
controller yang bernama Phone dimana akan terdapat fungsi-fungsi pengaturan
logika jalannya aplikasi kita.
Dan yang terakhir adalah pada folder Views, kita akan membuat 4 buah file
dimana masing-masing file views akan mempunyai tugas untuk menampilkan
data dari controller.
$config['base_url'] = "http://localhost/phonebook";
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url');
$route['default_controller'] = "phone";
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "phonebookdb";
<?php
Class Phone_model extends Model {
function Phone_model(){
parent::Model();
}
function get_all()
{
$query = $this->db->query('select * from phdata order by id');
return $query->result();
}
function get_one($id)
{
$query = $this->db->query('select * from phdata where id='.$id);
return $query->result();
}
}
?>
<?php
Class Phone extends Controller {
function Phone(){
parent::Controller();
}
function index(){
$this->show_all();
}
function show_all(){
$data['querys']=$this->phone_model->get_all();
$this->load->view('showall',$data);
}
function show_one($id){
$data['querys']=$this->phone_model->get_one($id);
$this->load->view('showone',$data);
}
}
?>
<html><head>
<title>Web Phone Book 1.0 by Pande Putu Eka Putra</title>
</head>
<body><h1>Contact Detail:</h1>
<table cellpadding="5" cellspacing="1" border="1">
<?php foreach($querys as $rows) {?>
<tr><td>ID</td><td><?php echo $rows->id;?></td></tr>
<tr><td>Name</td><td><?php echo $rows->name;?></td></tr>
<tr><td>Phone</td><td><?php echo $rows->phone;?></td></tr>
<tr><td>Adress</td><td><?php echo $rows->address;?></td></tr>
<tr><td>Desc</td><td><?php echo $rows->additional_desc;?></td></tr>
<?php } ?>
</table>
<?php
echo "<br>".anchor('phone','Kembali');
?>
</body></html>
http://localhost/phonebook
1. Pendahuluan
Gallery merupakan aplikasi sederhana untuk mengupload dan menampilkan list
file yang telah diupload.
Arsitektur aplikasi tersebut adalah sebagai berikut :
Pada bagian Model, kita hanya akan membuat satu file model untuk operasi
upload file.
Pada bagian Controller, kita juga hanya membuat sebuah file dimana akan
terdapat fungsi-fungsi pengaturan logika jalannya aplikasi kita.
Pada folder Views, kita akan membuat 2 buah file. Pertama file untuk
menampilkan form upload file dan kedua file untuk menampilkan list file yang
diupload.
$config['base_url'] = "http://localhost/gallery";
$autoload['helper'] = array('url','form','file','html');
$route['default_controller'] = "gallery";
<?php
class MGallery extends Model{
var $gallery_path;
function MGallery(){
parent::Model();
$this->gallery_path = realpath(APPPATH . 'images');
}
function do_upload(){
$config = array(
'allowed_types'=>'jpg|jpeg|gif|png',
'upload_path' => $this->gallery_path,
'max_size' => 2000
);
$this->load->library('upload',$config);
$this->upload->do_upload();
$image_data = $this->upload->data();
$config = array(
'source_image'=> $image_data['full_path'],
'new_image'=>$this->gallery_path . '/thumbs',
'maintain_ration'=>true,
'width'=>160,
'height'=>120
);
$this->load->library('image_lib', $config);
$this->image_lib->resize();
}
}
?>
if($this->input->post('upload')){
$this->MGallery->do_upload();
}
$this->load->view('gallery_view');
}
function lihat(){
$this->load->view('gallery_lihat');
}
}
?>
<?php
echo form_open_multipart('gallery');
echo form_upload('userfile');
echo form_submit('upload','Upload');
echo form_close();
echo br(1).anchor('gallery/lihat','Lihat Gallery');
?>
<?php
echo heading('Daftar File Dalam Gallery',3);
$data = get_filenames('system/application/images/thumbs/');
foreach($data as $df)
{
echo $df.br(1);
}
echo br(1).anchor('gallery','Input Gallery Lagi');
?>
http://localhost/gallery