Tutorial CI
Tutorial CI
http://poedjex.wordpress.com
Profil
Nama Alamat :Puji Rahmadiyanto :Jatisarono , Nanggulan, Kulon Progo ,Yogyakarta Tempat/tgl lahir Sekolah :Kulon Progo /29 Mei 1990 : SD N Jatisarono ,SMP N 1 Nanggulan SMA N 1 Sentolo Kuliah : Universitas Ahmad Dahlan Fakultas Teknologi Industri Program Studi Teknik Informatika 2008 About me :
Aku Puji Rahmadiyanto sering di panggil Puji, kuliah di Universitas Swasta di Kota Jogja. Pada awal perkuliahan sempat stress dengan matakuliah yang banyak itung-itungannya tapi I like it hehe :D . tidak mengenal bahasa pemrograman apapun Dulu ada mata kuliah pemrograman C++ , ku pikir C++ adalah resep obat .. e ternyata bahasa pemrograman dari C (apa lagi tu gak ngerti pada saat itu ). Lamakelamaan C++ akrab dengan ku, ternyata menarik juga. Nah dari situ sampai sekarang aku gemar coding Pada awal semester 3 aku coba-coba untuk mendaftar menjadi assisten praktikum C++ dan di terima. Ternyata dari situ aku mendapatkan banyak ilmu. Sebenarnya Di perkuliahan aku tidak menadapatkan ilmu apa-apa (jujur) ilmuilmu itu aku peroleh dari kakak tingkat teman assisten. dari situ pula aku kenal dengan PHP,CMS lanjut Frame Work Dan sekarang Tiada hari tanpa coding semboyan hidupku, mungkin cita-cita jadi programmer ini dulu gak terbersit di dalam benakku Cita-citaku ini bertolak belakang dengan target S1 TI yaitu jadi seorang analis( kata dosenku) tapi aku malah pengen jadi programmer. Tapi gak papa lah hidup adalah sebuah pilihan jika kita tekun menjalaninya maka kesuksesanlah yang kita dapat Mengapa aku memilih Codeigniter ? hmm codeigniter menurutku banyak tutorialnya. Mudah , bisa di integrasikan dengan ajax , sudah dilengkappi dengan user guide, open source Pokoknya Hidup Codeigniter hehe :D
http://poedjex.wordpress.com
PHP
Kisah Sang PHP
Web pada kisah awalnya sangat menjemukan bagi orang-orang yang dinamis. Bagaimana tidak, pemakainya hanya dicekoki oleh isi (content) halaman web yang meskipun bersifat saling terhubung dengan halaman web yang lain (hyperlink) tetap saja tidak memberikan saluran bagi pengguna yang ingin mengemukakan pendapatnya. Tidak ada demokrasi, karena pengguna hanya bersifat pasif dan tidak bisa berinteraksi secara aktif dalam web. Ketika akhirnya ditemukan tag <FORM> barulah kejemuan dan kebuntuan yang ada menjadi sirna. Pengguna menjadi bisa secara aktif berinteraksi dengan halaman web, dan mulailah era aplikasi berbasis web yang dinamis. Secara tradisi, bahasa script Perl menjadi bahasa utama yang digunakan oleh programmer web untuk menangani pemrosesan form dalam berinteraksi dengan pengguna web. Tidak diragukan lagi kedigjayaan dari Perl dalam menangani urusan ini, hal ini juga didukung dengan begitu dominannya bahasa ini digunakan di situs-situs web yang ada. Perl bisa menjadi alat bantu yang sangat hebat di tangan ahlinya, namun akan berubah menjadi mimpi paling buruk bagi seorang programmer web pemula yang dikejar waktu dan bosnya untuk segera merilis halaman webnya. Tidak mudah memang, mempelajari bahasa Perl, dan seringkali dibutuhkan langkah panjang dan rumit untuk sebuah maksud yang sederhana saja. Pendek kata, dibutuhkan suatu bahasa yang lebih praktis dan mudah dipelajari serta adidaya untuk memudahkan dalam membangun sebuah aplikasi yang berbasis web. Di rimba belantara web, tersebutlah dua bahasa yang paling kondang yang mampu menggantikan tugas-tugas Perl namun dengan tingkat kesulitan belajar yang rendah, ASP (Active Server Page) dan PHP (PHP: Hypertext Preprocessor). ASP yang dijagokan oleh Pak Bill Gates tentu saja berjalan di lingkungan sistem operasi Windows dan sampai saat ini belum terlihat akan di-porting ke platform yang lain. Padahal dunia web saat ini masih didominasi oleh platform UNIX dan variant-nya termasuk sistem operasi like UNIX seperti Linux. Selain itu, untuk dapat menggunakan ASP yang resmi, kita juga harus merelakan sebagian uang kita untuk menambah isi kantong Pak Bill Gates. PHP sebagai alternatif lain memberikan solusi sangat murah (karena gratis digunakan) dan dapat berjalan di berbagai jenis platform. Awalnya memang PHP berjalan di sistem UNIX dan variant-nya, namun kini dapat berjalan dengan mulus di lingkungan sistem operasi Windows. Suatu nilai tambah yang luar biasa karena proses development program berbasis web dapat dilakukan lintas sistem operasi. Pak Fulan, misalnya, bisa mencuri waktu memrogram aplikasi untuk usaha pribadinya di kantor yang menggunakan sistem operasi Windows dan meneruskannya di rumahnya dengan komputer yang menggunakan sistem operasi Linux. Dengan luasnya cakupan sistem operasi yang mampu menjalankan PHP dan ditambah begitu lengkapnya fungsi-fungsi program (tersedia lebih dari 400 fungsi di
Created by Puji Rahmadiyanto http://poedjex.wordpress.com
PHP yang sangat berguna) tidak heran jika PHP ini semakin menjadi trend di kalangan programmer web. Konon, saat ini lebih dari satu juta situs web menggunakan PHP sebagai script pemrogramannya. Pak Rasmus Lerdorf adalah bapak penemu awal bahasa PHP ini, yang bermula dari keinginan sederhana Pak Lerdorf untuk mempunyai alat bantu (tools) dalam memonitor pengunjung yang melihat situs web pribadinya. Inilah sebabnya pada awal pengembangannya, PHP merupakan singkatan dari Personal Home Page tools, sebelum akhirnya dipaksakan menjadi singkatan rekursif dari PHP: Hypertext Preprocessor. Pertengahan tahun 1995 dirilis PHP/FI (FI adalah singkatan dari Form Interpreter) yang memiliki kemampuan dasar membangun aplikasi web, memproses form, dan mendukung database mSQL. Antusias komunitas internet terhadap bahasa PHP ini begitu besar, sehingga Pak Rasmus Lerdorf akhirnya menyerahkan pengembangan PHP ini kepada sebuah team pemrograman dalam kerangka gerakan open source. Team ini membangun kembali PHP dari awal dengan menulis ulang program parser PHP Hasilnya adalah PHP 3.0 yang memiliki dukungan lebih luas lagi terhadap database yang ada termasuk MySQL dan Oracle. PHP 4.0 sebagai versi lanjutan dari PHP 3.0 dirilis setelah itu dengan menggunakan mesin scripting Zend (akronim dari pengembangnya, Zeev Suraski dan Andi Gutmans) untuk memberikan kinarja yang lebih cepat dan lebih baik Versi terakhir ini mampu mendukung server web selain Apache dan secara built-in telah mampu menangani manajemen session. Singkat kata, PHP kita pilih sebagai bahasa untuk pengembangan web yang akan kita pelajari di bagian selanjutnya. Sebelum memulainya, ada baiknya Anda mengetahui kebutuhan-kebutuhan dasar yang akan membantu Anda memahami tulisan ini. Anda diasumsikan telah memiliki sebuah sistem yang telah terinstalasi dan terkonfigurasi dengan baik Apache Web Server, PHP 4, dan database MySQL. Ketiganya adalah program open source yang tersedia secara gratis di Internet dan dapat berjalan di berbagai platform (Windows maupun UNIX/Linux). Seperti halnya Codeigniter adalah framework PHP jadi fungsi-fungsi PHP murninya sudah di masukan kedalam Codeigniter
FrameWork
Anda sebagai seorang programmer PHP pasti pernah mengalami kejenuhan dalam membuat sebuah aplikasi web, kadang sebuah ritme yang monoton pasti sering anda alami dalam membuat sebuah web dinamis entah itu untuk website klien atau web untuk anda sendiri. Sebetulnya dari sebuah ritme tersebut ada beberapa hal yang dapat dibuat permanen dari struktur dasar kode program anda. Mempelajari Object Oriented Programming (OOP) dalam PHP sangat penting Tujuan pemrograman menggunakan class (OOP)disini adalah code reuse, yang berarti kode program anda dapat di gunakan kembali untuk project-project web yang lainnya. Karena pada intinya dalam sebuah program yang berhubungan dengan
Created by Puji Rahmadiyanto http://poedjex.wordpress.com
database, variable yang selalu berubah-rubah adalah struktur database dan user interface. Dimana struktur database dan tampilan user interface ini selalu mengikuti alur business process dari pengguna program anda. Framework adalah kerangka kerja siap bangun yang sudah dilengkapi library dan fungsi-fungsi. beda framework dengan CMS (content management system ) jika framework kita benar-benar membangun web tetapi sudah disediakan library dan fungsi-fungsi yang mendukung sedangkan CMS adalah web siap guna sudah lengkap dan tidak repot-repot coding Saat ini banyak sekali framework PHP yang ditawarkan di internet seperti Code Igniter, Cake PHP, Zend Framework, VCL Delphi PHP, Blue Shoes, dan masih banyak lagi
CodeIgniter awalnya dikembangkan oleh Rick Ellis (CEO Ellislab, Inc). Frame Work ini ditulis untuk kinerja di dunia nyata, dengan banyak class libraries, helpers, dan sub-systems yang disediakan dari kode-dasar ExpressionEngine. Saat ini CI dikembangkan dan dikelola oleh Tim Pengembangan ExpressionEngine.
Gambar 1.1
yang sederhana dan struktur logika untuk mengakses libraries tersebut. CodeIgniter meminimalkan jumlah sintak untuk tugas tertentu. Pertimbangan-Pertimbangan
Anda menginginkan kerangka kerja dengan proses cepat. Anda membutuhkan kinerja luar biasa. Anda perlu luas kompatibilitas dengan account hosting standar yang menjalankan berbagai versi dan konfigurasi PHP. Anda menginginkan sebuah kerangka kerja yang memerlukan konfigurasi hampir nol. Anda menginginkan sebuah kerangka kerja yang tidak mengharuskan Anda untuk menggunakan baris perintah. Anda menginginkan sebuah kerangka kerja yang tidak mengharuskan Anda untuk mematuhi aturan pengkodean ketat. Anda tidak tertarik pada skala besar seperti PEAR libraries monolitik. Anda tidak mau dipaksa untuk belajar bahasa template (meskipun template parser adalah opsional tersedia jika Anda inginkan). Anda menghindari kerumitan, menyukai solusi sederhana. Anda perlu jelas, teliti dokumentasi.
Model-View-Controller
Gambar 1.2
CodeIgniter didasarkan pada Model-View-Controller pola pengembangan. MVC adalah sebuah pendekatan perangkat lunak aplikasi yang memisahkan logika dari antarmuka. Dalam praktiknya, hal itu memungkinkan halaman web Kamu berisi minimal scripting sejak antarmuka terpisah dari PHP scripting.
Created by Puji Rahmadiyanto http://poedjex.wordpress.com
Model mengkomunikasikan dengan struktur data. Biasanya kelas-kelas model akan berisi fungsi yang membantu Kamu mengambil, memasukkan, dan mengupdate informasi dalam database. View adalah informasi yang sedang disajikan kepada user. Yang bisa dilihat di halaman web, tetapi dalam CodeIgniter, view juga dapat dipisah-pisah menjadi halaman seperti header atau footer Controller berfungsi sebagai perantara antara Model, View, dan sumber daya lainnya yang dibutuhkan untuk memproses permintaan HTTP dan menghasilkan suatu halaman web.
CodeIgniter memiliki pendekatan yang cukup longgar untuk MVC Model karena tidak diperlukan. Jika anda tidak memerlukan Model, dan menemukan bahwa mempertahankan kompleksitas model, anda dapat mengabaikan model dan membangun aplikasi seminimal mungkin dengan menggunakan Controller dan Views saja. CodeIgniter juga memungkinkan kamu untuk memasukkan script buatan anda sendiri, atau bahkan mengembangkan libraries inti untuk sistem Fitur-fitur di dalam CI
Model-View-Controller Based System PHP 4 Compatible Extremely Light Weight Full Featured database classes with support for several platforms. Active Record Database Support Form and Data Validation Security and XSS Filtering Session Management Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, and Mail) and more. Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM File Uploading Class FTP Class Localization Pagination Data Encryption Benchmarking Full Page Caching Error Logging Application Profiling Scaffolding Calendaring Class User Agent Class
http://poedjex.wordpress.com
Zip Encoding Class Template Engine Class Trackback Class XML-RPC Library Unit Testing Class Search-engine Friendly URLs Flexible URI Routing Support for Hooks, Class Extensions, and Plugins Large library of "helper" functions
Flow chart CI
Gambar 1.3
Dapat dilihat di flowchart di atas Controller bisa di ibaratkan sebagai polisi lalulintas index.php berfungsi sebagai pengendali depan, menginisialisasi basis sumber daya yang dibutuhkan untuk menjalankan CodeIgniter. Router memeriksa HTTP request untuk menentukan apa yang harus dilakukan dengan hal itu. Jika file cache ada, maka langsung dikirim ke browser, melewati sistem normal eksekusi.
Di codeigniter
Created by Puji Rahmadiyanto http://poedjex.wordpress.com
Kelihatannya emang agak sedikit rumit tapi jika ditulis dengan PHP akan panjang Sintak php echo bisa menggunakan =
<?=hello word?> sama
Penulisan Model
Class namamodel extends Model{ function namamodel(){ parent::Model(); } function tambahan(){ } }
http://poedjex.wordpress.com
Gambar 1.4
Controller
Apa itu Controller ? Controller adalah sebuah file class yang dapat dikaitkan dengan URI.
Created by Puji Rahmadiyanto http://poedjex.wordpress.com
Controller juga bertindak sebagai polisi lalu lintas antara Model dan View
Gambar 1.5
Penulisan
Class namacontroller extends Controller{ function namacontroller(){ parent::Controller(); } function namafungsitambahan(){ //penjabaran fungsi } }
Constructor harus dibuat di awal dengan membuat nama function sama dengan nama class atau kalau dengan PHP 5 __construct() Parent::Controller(); Menunjukan bahwa controller yang telah kita buat adalah class turunan dari class controller Contoh : controller bernama contohcontroller.php
http://poedjex.wordpress.com
<?php class Contohcontroller extends Controller{ function Contohcontroller(){ parent::Controller(); } function index(){ echo "controller contohcontroller sedang berjalan"; } function fungsi(){ echo "function fungsi pada contohcontroller sedang berjalan "; } }
Pemanggilan di urlnya http://localhost/contohci/index.php/contohcontroller/ Output nya adalah yang berada di function index() controller contohcontroller sedang berjalan
Sedangkan untuk memanggil function fungsi() cukup tambahkan nama function tersebut di belakang sendiri
http://localhost/contohci/index.php/contohcontroller/fungsi
VIEW
View adalah Sebuah tampilan pada halaman web, atau halaman fragmen, seperti sebuah header, footer, sidebar, dll View tidak pernah panggil secara langsung, view harus dimuat pada sebuah Controller. Ingat bahwa dalam kerangka MVC, Controller bertindak sebagai polisi lalu lintas, sehingga bertanggung jawab untuk mengambil view tertentu Membuat View Pada view sebenarnya cukup mudah karena bermain dengan HTML ataupun PHP
Created by Puji Rahmadiyanto http://poedjex.wordpress.com
Misalkan contohview.php
<html> <head> <title>Contoh CI</title> </head> <body> <h1>Selamat datang</h1> </body> </html>
View diatas tidak mungkin bisa dipanggil langsung di browser kalau tidak ada controllernya Misalnya
<?php class Contohcontroller extends Controller{ function Contohcontroller(){ parent::Controller(); } function index(){ $this->load->view('contohview'); } } ?>
bertindak mengload file view bernama contohview.php Dalam penulisannya tidak menggunakan .php untuk mencobanya
$this->load->view('contohview');
http://localhost/contohci/index.php/contohcontroller
Controller memberikan beban data bernama title kedalam view Di view ,title dianggap sebagai variable menjadi $title
<html> <head> <title>Contoh CI</title> </head> <body> <h1><?php echo $title;?> </h1> </body> </html>
Model
Model adalah class yang bertugas sebagai pengolah database
<?php class Contohmodel extends Model{ function Contohmodel(){ parent::Model(); } function ambildata(){ $query =$this->db->get('artikel'); return $query; } function insertdata($judul,$isi){ $data=array('judul'=>$judul, 'isiartikel'=>$isi
http://poedjex.wordpress.com
database.php ( system/application/config/database.php)
$db['default']['hostname'] = "localhost";
http://poedjex.wordpress.com
DATABASE
1. Query standard dengan hasil multiple (object version)
$query=select nama,alamat,telp from mahasiswa; $hasil=$this->db->query($query); foreach ($hasil as $row) { echo $row->nama; echo $row->alamat; echo $row->telp; } echo Hasil Nilai :. $hasil->num_rows();
http://poedjex.wordpress.com
Untuk menampilkan sebuah hasil query, kita dapat menggunakan syntax sbb :
$query->row()
Contoh :
4. Query Bindings
$this->db->query($sql,array('andi','jakarta');
CI menggunakan teknik active record, di samping juga dapat memproses perintah sql. Cara
http://poedjex.wordpress.com
a. Selecting Data
- $this->db->get()
Contoh :
- $this->db->get('mahasiswa');
- $query=$this->db->get('mytable',10,20)
- $this->db->get_where();
http://poedjex.wordpress.com
Fungsi : Untuk menampilkan semua isi tabel dengan di tambah kondisi where
Contoh :
// Sama dengan : select * from mytable where id='$id' limit 20, 10;
- $this->db->select();
Fungsi : Untuk memilih tabel yang akan di proses dengan perintah select.
Contoh :
$this->db->select('nama,nilai,alamat');
$query=$this->db->get('mahasiswa);
http://poedjex.wordpress.com
- $this->db->join();
Contoh :
- $this->db->where();
http://poedjex.wordpress.com
$this->db->group_by(kota); $query=$this->db->get(mahasiswa);
b.Inserting Data
- $this->db->insert();
Kita dapat menggunakan data yang akan di insert berupa array atau object.
http://poedjex.wordpress.com
$data=array(
'nim'=>'0811500292',
'nama'=>'ali',
'kota'=>'jakarta');
$this->db->insert('mahasiswa',$data);
class kelasku
{ var $nim=0811500292,
var $nama=ali,
var $kota=jakarta}
$obj=new kelasku;
$this->db->insert(mahasiswa,$obj);
http://poedjex.wordpress.com
- $this->db->set();
Fungsi : Fungsi ini mengambil data untuk di lakukan perintah insert dan update.
Contoh : $this->db->set('nama',$nama);
$this->db->insert('mahasiswa');
c.Updating Data
- $this->db->update();
$data=array(
nim'=>'$nim',
'nama'=>'$nama',
http://poedjex.wordpress.com
'kota'=>'$kota');
$this->db->where('id',$id);
$this->db->update('mahasiswa',$data);
where id=$id;
Class kelasku {
var $nim=$vnim,
var $nama=$vnama,
var $kota=$vkota;
$this->db->where ('id',$id);
$this->db->update (mahasiswa,$object);
http://poedjex.wordpress.com
d.Deleting Data
- $this->db->delete()
contoh :
$this->db->delete(mahasiswa,array('nim'->$nim));
http://poedjex.wordpress.com
Disini Kita akan membuat Webblog dengan assumsi Berita Kategori Komentar User Dengan mengacu 4 hal diatas dapat dibuat 4 table Berita
Id Kategori
Judul
Isi
Tanggal
Penulis
Status
Id_kategori
Id Komentar
Nama_kategori
id User
Id_berita
Nama
Website
Tanggal
Isi_komentar
Id Tampilan Home
Nama_lengkap Username
Password
status
http://poedjex.wordpress.com
Gambar 2.1
Tampilan adminpanel
Gambar 2.2
http://poedjex.wordpress.com
Rename folder codeiniter dengan nama blog atau yang lain terserah Dan pindahkan folder application yang berada di dalam system menjadi diluar system
Gambar 2.3
Sebenarnya folder application tidak di pindah juga tidak apa-apa hanya disini sesuai dengan keinginan programmer (saya )
C. Setingan awal
config.php - (application/config/config.php ) Ganti pada:
$config['base_url'] = "http://example.com/";
menjadi
$config['base_url'] = "http://localhost/blog/";
http://poedjex.wordpress.com
Gambar 2.4
Sebenarnya
tutorial
lengkap
ada
di
user
guide
silahkan
masuk
ke
http://localhost/blog/user_guide
database.php (application/config/database.php)
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "blogdb"; //yang telah dibuat tadi $db['default']['dbdriver'] = "mysql";
routes.php (application/config/routes.php)
$route['default_controller'] = "home"; //default controller
Persiapan controller
http://poedjex.wordpress.com
D. Halaman Depan
Buat file php di controller dengan nama home.php (merupakan controller default yang telah kita seting di routes)
<?php class Home extends Controller{
function Home(){ parent::Controller(); } function index(){ $data['title']='contoh codeiniter'; //$title di view $data['content']='content'; //akan kita buat file content.php di view $data['berita']='ini adalah berita pertama'; //$berita di view $data['footer']='poedjex.wordpress.com'; //$footer di view $this->load->view('template',$data); //load ke view template.php dengan beban $data } } ?>
http://poedjex.wordpress.com
Dicek http://localhost/blog
http://poedjex.wordpress.com
function Home(){ parent::Controller(); $this->load->model('mberita'); } function index(){ $data['title']='contoh codeiniter'; //$title di view $data['content']='content'; //akan kita buat file content.php di view $data['berita']=$this->mberita->getberita(); $data['footer']='poedjex.wordpress.com'; //$footer di view $this->load->view('template',$data); //load ke view template.php dengan beban $data } function selengkapnya(){ $id=$this->uri->segment(3); $data['title']='contoh codeiniter'; $data['content']='selengkapnya'; $data['berita']=$this->mberita->selengkapnya($id); $data['footer']='poedjex.wordpress.com'; $this->load->view('template',$data); }
http://poedjex.wordpress.com
Gambar 2.5
Dalam sekenario ketika link selengkanya di klick maka akan tampil seluruh postingan dan ada bagian komentar di bawahnya
Created by Puji Rahmadiyanto http://poedjex.wordpress.com
http://poedjex.wordpress.com
?>
function Home(){ parent::Controller(); $this->load->model(array('mberita','mkomentar')); $this->load->scaffolding('berita'); } function index(){ $data['title']='contoh codeiniter'; //$title di view $data['content']='content'; //akan kita buat file content.php di view $data['berita']=$this->mberita->getberita(); $data['footer']='poedjex.wordpress.com'; //$footer di view $this->load->view('template',$data); //load ke view template.php dengan beban $data } function selengkapnya(){ $id=$this->uri->segment(3); $data['title']='contoh codeiniter'; $data['content']='selengkapnya'; $data['berita']=$this->mberita->selengkapnya($id); $data['komentar']=$this->mkomentar->liskoment($id); $data['footer']='poedjex.wordpress.com'; $this->load->view('template',$data); } function addkoment(){
http://poedjex.wordpress.com
} } ?>
http://poedjex.wordpress.com
Agar tampilan lebih menarik Kita buat folder template/css di dekat folder system (masih di dalam folder blog) Buatlah file style.css
http://poedjex.wordpress.com
</head> <body> <div class="main"> <div class="header"><br> <div id="title"><h3><?php echo $title;?></h3></div> <div id="nav">
http://poedjex.wordpress.com
</ul> </div> </div> <div class="content_resize"> <div class="sidebar"> <div id="widget"> <h2>Kategori</h2> </div> </div> <div class="right">
Gambar 2.6
http://poedjex.wordpress.com
Cara Mudah Membuat Blog dengan Codeiniter 1.7.2 Sekarang pembuatan Link kategori Terlebih dahulu buat table bernama kategori
CREATE TABLE `kategori` ( `id` int(11) NOT NULL auto_increment, `nama_kategori` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; INSERT INTO `KATEGORI` (`id`, `nama_kategori`) VALUES (1, 'Uncategory');
Karena kategori di akses disetiap fungsi maka untuk mempermudah kita taruh di view template.php caranya
<div id="widget"> <h2>Kategori</h2> <?php $kategori=$this->mkategori->getkategori();?> <ul> <?php foreach($kategori->result() as $kat){?> <li><?php echo anchor('home/perkategori/'.$kat->id,$kat->nama_kategori);?></li> <?php }?> </ul>
http://poedjex.wordpress.com
Gambar 2.7
E. Halaman Admin
Untuk membuat halaman admin kita harus berfikir ganda tentang keamanannya. Dalam halaman admin ini kita Sudah menggunakan DML (Data Manipulation Langguage) yang kita butuhkan hanya menambah , delete dan update Oke kita mulai. Hal pertama yang perlu kita siapkan adalah tabel dalam database kita. Beri nama user
CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `nama_lengkap` varchar(255) NOT NULL, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `status` int(11) NOT NULL default '0',
http://poedjex.wordpress.com
Untuk tampilan kita butuh 2 tampilan 1. Halaman login fungsinya memasukan username dan password dengan form
kategori
http://poedjex.wordpress.com
<body>
http://poedjex.wordpress.com
kita buat controller baru bernama administrator.php supaya seperti CMS joomla dengan maka kita hilangkan index.php sehingga seharusnya http://localhost/blog/index.php/administrator menjadi http://localhost/blog /administrator tanpa index.php kita buat terlebih dahulu file bernama .htaccess di dekat index.php (masih di dalam folder blog) isikan :
RewriteEngine On RewriteCond $1 !^(index\.php|image|css|public|ajax|tmp|download|javascript|rte|document| xinha|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
http://poedjex.wordpress.com
$id_user=$row->id; } } $user= $this->muser->cek_user($username,$password); if($user == TRUE){ $data = array( 'nama_lengkap' => $nama, 'username'=> $username,
http://poedjex.wordpress.com
Untuk pengecekan dengan table user maka kita buat juga model bernama muser.php
<?php class Muser extends Model { function Muser() { parent::Model(); } function cek_user($username, $password) {
http://poedjex.wordpress.com
Terlihat bahwa jika user dan password dicocokan akan memberikan nilai pengembali TRUE dan FALSE
Halaman Dashboard
Dalam dashboard ini kita perlu pisahkan controller maupun view dengan folder admin misalkan
http://poedjex.wordpress.com
http://poedjex.wordpress.com
Buat folder admin dan buat file dashboard.php di dalam folder view/admin
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Administrator</title> <style type="text/css"> body{ background:#FFFFFF; } a{ padding:2px; background:#FF99FF; text-decoration:none; } a:hover{ background:#999933; } .main{ width:960px; margin:auto; } .header{ width:100%; height:70px; background:#00CCFF;
} .header ul li {
http://poedjex.wordpress.com
} .header ul li a { color:#FFFFFF; padding:10px; background:#000000; text-decoration:none; } .header ul li a:hover{ background:#0000FF; } .content{ width:100%;
background:#FFFFFF; border:1px solid #000000; } .footer{ background:#000000; color:#66FF00; width:100%; height:45px; } .depan{ width:400px; margin-left:100px; height:400px; } .depan ul{ list-style:none; } .depan ul li{
http://poedjex.wordpress.com
background:#CCCCCC;
<body> <div class="main"> <div class="header"> <ul> <li><?php echo anchor('administrator','Admin');?></li> <li><?php echo anchor('admin/berita','Berita');?></li> <li><?php echo anchor('admin/kategori','Kategori');?></li> <li><?php echo anchor('administrator/logout','logout');?></li> </ul>
http://poedjex.wordpress.com
Kita akan membuat halaman pengaturan berita dan kategori jadi yang di butuhkan di controller adalah controller berita dan kategori dilengkapi Dengan fungsi-fungsi: Function index
Function tambah() Function submit() Function edit() Function edit_submit() Function delete()
function index(){ $this->load->model(array('mberita','mkomentar','mkategori')); $data['berita']=$this->mberita->getallberita(); $data['content']='admin/list_berita'; $this->load->view('admin/dashboard',$data); } function tambah(){ $this->load->model(array('mberita','mkomentar','mkategori')); $data['content']='admin/form_berita'; $this->load->view('admin/dashboard',$data); } function submit(){ $this->load->model(array('mberita','mkomentar','mkategori')); $judul=$this->input->post('judul',TRUE); $isi=$this->input->post('isi',TRUE);
http://poedjex.wordpress.com
} function edit_submit(){ $this->load->model(array('mberita','mkomentar','mkategori')); $id=$this->input->post('id',TRUE); $judul=$this->input->post('judul',TRUE); $isi=$this->input->post('isi',TRUE); $status=$this->input->post('status',TRUE); $kategori=$this->input->post('kategori',TRUE); $this->mberita->updateberita($id,$judul,$isi,$status,$kategori); redirect('admin/berita'); } function delete(){ $id=$this->uri->segment(4); $this->load->model(array('mberita','mkomentar','mkategori')); $this->mberita->deleteberita($id); redirect('admin/berita'); } } ?>
http://poedjex.wordpress.com
View Admin/list_berita.php
<br> <table width="700" border="0" align="center"> <tr> <td>No</td> <td>Berita</td> <td>Aksi </td> <td>Status</td> </tr> <?php $i=1;?> <?php foreach($berita->result() as $row):?> <tr> <td><?php echo $i;?></td> <td><?php echo "<b>$row->judul</b><br/><p>".word_limiter($row->isi,10)."</p>"; ?></td> <td><?php echo anchor('admin/berita/edit/'.$row->id,'edit')."|".anchor('admin/berita/delete/'.$row->id,'delete',array ('onClick' => "return confirm('apakah anda yakin ')"));?></td> <td><?php if($row->status==1){echo "Aktif";}else{echo "Nonaktif";}?></td> </tr> <?php $i++;?> <?php endforeach;?> </table> <?php echo anchor('admin/berita/tambah','tambah berita');?>
http://poedjex.wordpress.com
Admin/form_berita.php
<?php echo form_open('admin/berita/submit');?> <table width="200" border="0" cellspacing="2" cellpadding="1" align="center"> <tr> <td>Judul<br><input name="judul" type="text" size="50"/></td> </tr> <tr> <td>Isi Berita<br><textarea name="isi" cols="50" rows="20"></textarea></td> </tr> <tr>
<td><select name="kategori">
<option value="<?php echo $kategori->id;?>" ><?php echo $kategori->nama_kategori?></option> <?php endforeach;?> </select> </td> </tr> <tr> <td><select name="status"> <option value="1" selected="selected">Aktif</option> <option value="0" >Nonaktif</option> </select> </td> </tr> <tr> <td><input type="submit" value="Post">|<input type="reset" value="Reset"></td> </tr> </table>
http://poedjex.wordpress.com
Admin/form_edit_berita.php
<?php foreach($berita->result() as $brt){ $judul=$brt->judul; $isi=$brt->isi; $kategori_id=$brt->id_kategori; $status=$brt->status; $id=$brt->id;
<table width="200" border="0" cellspacing="2" cellpadding="1" align="center"> <tr> <td>Judul<br><input name="judul" type="text" size="50" value='<?php echo $judul;?>' /></td> </tr> <tr> <td>Isi Berita<br><textarea name="isi" cols="50" rows="20"><?php echo $isi;?></textarea></td>
http://poedjex.wordpress.com
<td><select name="kategori">
} else { $select=""; } ?> <option value="<?php echo $kategori->id;?>" <?php echo $select;?>><?php echo $kategori>nama_kategori?></option> <?php endforeach;?> </select> </td> </tr> <tr> <td><select name="status"> <?php if ($status==1){?> <option value="1" selected="selected">Aktif</option> <option value="0" >Nonaktif</option> <?php }else{?> <option value="1" >Aktif</option> <option value="0" selected="selected">Nonaktif</option> <?php }?> </select> </td> </tr> <?php echo form_hidden('id',$id);?>
http://poedjex.wordpress.com
Pasti masih error karena function untuk untuk update, delete, insertnya masih belum ada maka kembai ke model mberita.php Tambahkan function berikut
function getallberita(){ $this->db->order_by('id','desc'); $q=$this->db->get('berita'); return $q; } function tambahberita($judul,$isi,$status,$kategori){ $data=array('judul'=>$judul, 'isi'=>$isi, 'tanggal'=>date('Y-m-d'), 'penulis'=>$this->session->userdata('id_user'),
http://poedjex.wordpress.com
http://poedjex.wordpress.com
http://poedjex.wordpress.com
View Admin/list_kategori.php
<?php echo anchor('admin/kategori/tambah','tambah kategori');?><br> <?php $i=1;?> <table width="200" border="0" cellspacing="2" cellpadding="1" align="center"> <tr> <td>No</td> <td>Kategori</td> <td>Aksi</td> </tr> <?php foreach($kategori->result() as $kat):?> <tr> <td><?php echo $i;?></td> <td><?php echo $kat->nama_kategori;?></td> <td><?php echo anchor('admin/kategori/edit/'.$kat->id,'edit')."|".anchor('admin/kategori/delete/'.$kat->id,'delete',array ('onClick' => "return confirm('apakah anda yakin ')"));?></td> </tr> <?php $i++; endforeach;?> </table>
http://poedjex.wordpress.com
Admin/form_kategori.php
<?php echo form_open('admin/kategori/submit')?> <table width="200" border="0" cellspacing="2" cellpadding="1" align="center"> <tr> <td><input name="kategori" size="40" type="text" /></td> </tr> <tr><td><input type="submit" value="Tambah"/></td> </tr> </table> <?php echo form_close();?>
Admin/form_edit_kategori.php
<?php foreach($kategori->result() as $kat){ $judul=$kat->nama_kategori; $id=$kat->id; }?> <?php echo form_open('admin/kategori/edit_submit')?> <table width="200" border="0" cellspacing="2" cellpadding="1"> <tr> <td><input name="kategori" size="40" type="text" value='<?php echo $judul;?>'/></td> </tr> <?php echo form_hidden('id',$id);?> <tr><td><input type="submit" value="Update"/></td> </tr> </table> <?php echo form_close();?>
http://poedjex.wordpress.com
Samahalnya dengan management berita diatas form-form tersebut akan error karena model mkategori belum ditambahkan function untuk insert ,update dan delete Tambahkan function di model mkategori.php
function tambahkategori($kategori){ $this->db->insert('kategori',array('nama_kategori'=>$kategori)); } function ambilkategori($id){ $this->db->where('id',$id); return $this->db->get('kategori'); } function updatekategori($id,$kategori){
Sekarangan Blog sederhana buatan anda sudah selesai. Untuk masuk ke halaman admin username dan passwordnya admin tanpa tanda petik Blog diatas masih banyak bug-bugnya jika ingin menambah ataupun merombak semua script silahkan karena disini saya juga masih belajar Terima Kasih
http://poedjex.wordpress.com
http://poedjex.wordpress.com
http://poedjex.wordpress.com