Вы находитесь на странице: 1из 71

Simple Blog with CI

Lab. Internet
Lembaga Pengembangan Komputerisasi
Universitas Gunadarma
2012

Basic Proses

Lihat Berita

CRUD

Komentar

Input
Komentar

Login

Authenticati
on

Kotak Orange =>


proses yang dilakukan
guest.
Kotak Merah => proses
yang dilakukan logged
user

Langkah-Langkah
Pembuatan
1.Membuat table MySQL :
Table admin
Table berita
Table komentar

2.

Installasi framework CI
3.Konfigurasi framework CI

Database MySQL :
lepkominternet
Admin

Berita

Database MySQL :
lepkominternet

Komentar

Instalasi Codeigniter
Ekstrak package codeigniter ke folder sebuah folder
di htdocs
Ubah nama folder tersebut menjadi lepkominternet
Ubah Base URL (lihat cara konfigurasi config.php di
halaman selanjutnya)
Buka melalui browser
http://localhost/lepkominternet

Konfigurasi

config.php
$config['base_url']='http://localhost/lepkominternet';
$config['encryption_key'] = 'randomkey huruf 4n6k4';

routes.php
$route['default_controller'] = welcome;
Setelah membuat blog, kita akan menggunakan route ke
controller Berita

Konfigurasi database.php

$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = lepkominternet';
$db['default']['dbdriver'] = 'mysql;
$db['default']['dbprefix'] = '';

Proses Pembuatan Blog

MEMBUAT BACK END BLOG


Proses Login & Logout
CRUD Berita

Membuat Back End Blog

PROSES LOGIN & LOGOUT

Controller - Login.php (1/6)

<?php
class Login extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('m_login');
}

Controller - Login.php (2/6)


function index()
{
if($this->session->userdata('login')==TRUE)
{
$data['user']=$this->session->userdata('user');

$this->load->view('v_addnews', $data);
} else {
$data['login']=$this->session->userdata('login');
$data['pesan']="Anda Belum Login";
$this->load->view('v_login',$data);
}
}

Controller - Login.php (3/6)

function proses()
{
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|
max_length[15]');
if($this->form_validation->run()==TRUE)
{
$username=$this->input->post('username');
$pass=$this->input->post('password');

Controller - Login.php (4/6)


if($this->m_login->cek_user($username,$pass)==TRUE)
{
$data=array( 'user'=>$username,
'login'=>TRUE);
$this->session->set_userdata($data);
$this->load->view('v_addnews', $data);
} else {
$data['pesan']="Username atau Password yang diinput tidak sesuai";
$data['login']=$this->session->userdata('login');
$this->load->view('v_login', $data);
}
}

Controller - Login.php (5/6)

else

{
$data['pesan']="Silahkan Masukan Username dan

Password";
$data['login']=$this->session->userdata('login');
$this->load->view('v_login',$data);
}
}

Controller - Login.php (6/6)


function logout()
{
$this->session->sess_destroy();
$this->session->unset_userdata('login');
$data['pesan']="anda telah logout";
$this->load->view('v_login', $data);
}
}
?>

Model m_login.php
<?php
Class m_login extends CI_Model
{
function cek_user($username,$password)
{
$this->db->where('username',$username);
$this->db->where('password',$password);
$query=$this->db->get('admin');
if ($query->num_rows==1)
{
return TRUE;
} else {
return FALSE;
}
}
}
?>

View v_login.php (1/3)


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="<?php echo base_url(); ?>css/default.css" rel="stylesheet" type="text/css"
media="all" />
</head>
<body>
<div id="wrapper">
<div id="logo">
<h1>Simple Blog</h1>
</div>
<div id="page" class="round">

View v_login.php (2/3)


<div id="menu">
<?php if($this->session->userdata('login')==TRUE)
{ $this->load->view('v_admin'); } else { $this->load->view('v_user'); }?>
</div>
<div id="wrapper" class="round">
<center>
<form action="<?php echo base_url();?>Login/proses" method="post" >
<font color="red"><?php echo $pesan;?><br></font>
<p>Username : <input name="username" type="text" onFocus="this.value=''" value="username">
</p>
<p>Password : <input name="password" type="password" onFocus="this.value=''"
value="password"></p>
<input name="submit" type="submit" value="Login" >
</form>
</center>

View v_login.php (3/3)

<div style="clear: both"></div>


</div></div></div>
<div id="footer">
<p>copyright &copy; 2011 Simply Blue. Design Free Website
Templates modified by ika.</p>
</div>
</body>
</html>

Output v_login.php

View v_admin.php

&nbsp &nbsp
<font color="white" size=4 face="comic sans ms">
<?php echo "Hai, ".$user; ?>
</font>
<center>
<a href="<?php echo base_url();?>./Berita/tambah_berita"><font color="white" size=4 face="comic
sans ms">Input Berita</font></a>
<a href="<?php echo base_url();?>./Berita"><font color="white" size=4 face="comic sans ms">Lihat
Berita</font></a>
<a href="<?php echo base_url();?>./Login/Logout"><font color="white" size=4 face="comic sans
ms">Logout</font></a>
</center>

Membuat Back End Blog

CRUD BERITA

Controller Berita.php
(1/11)
<?php
class Berita extends CI_Controller{
function __construct()
{
parent::__construct();
$this->load->model('m_berita');
}

Controller Berita.php
(2/11)
function index()
{
if($this->session->userdata('login')==TRUE) {
$data['user']=$this->session->userdata('user');
$data['pesan']="";
$config['base_url'] = site_url("Berita/index/");
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';
config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_news', $data);
} else {

Controller Berita.php
(3/11)
$data['pesan']="";
$config['base_url'] = base_url().index.php/Berita/index';
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';
$config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_news', $data);
}
}

Controller Berita.php
(4/11)
function tambah_berita()
{
if($this->session->userdata('login')==TRUE)
{
$data['user']=$this->session->userdata('user');
$data['title'] = Tambah Berita';
$data['pesan']="";
$this->load->view('v_addnews', $data);
} else {

Controller Berita.php
(5/11)
$data['pesan']="";
$config['base_url'] = base_url().index.php/Berita/index';
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';
$config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_news', $data);
}
}

Controller Berita.php
(6/11)
function input_berita()
{
if($this->session->userdata('login')==TRUE)
{
$author=$this->session->userdata('user');
$this->m_berita->input_berita($author);
redirect('Berita');
} else {

Controller Berita.php
(7/11)
$data['pesan']="";
$config['base_url'] = base_url().index.php/Berita/index';
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';
$config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_news', $data);
}
}

Controller Berita.php
(8/11)
function hapus_berita($id)
{
if($this->session->userdata('login')==TRUE)
{
$this->m_berita->hapus_berita($id);
redirect('Berita');
}else
{

Controller Berita.php
(9/11)
$data['pesan']="";
$config['base_url'] = base_url().index.php/Berita/index';
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';
$config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_news', $data);
}
}

Controller Berita.php
(10/11)
function ubah_berita($id)
{
if($this->session->userdata('login')==TRUE) {
if($_POST==NULL) {
$data['no'] = $this->m_berita->pilih_berita($id);
$data['user']=$this->session->userdata('user');
$this->load->view('v_editnews',$data);
} else {
$author=$this->session->userdata('user');
$this->m_berita->ubah_berita($id,$author);
redirect('Berita');
}

Controller Berita.php
(11/11)
$data['pesan']="";
$config['base_url'] = base_url().index.php/Berita/index';
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';
$config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_news', $data);
}
}
}
?>

Model m_berita.php (1/6)


<?php
class m_berita extends CI_Model
{
function selectAll($num,$offset)
{
$this->db->order_by("id","desc");
return $this->db->get('berita',$num,$offset)->result();
}

Model m_berita.php (2/6)


function input_berita($author)
{
$data = array(
'posted'=>date('Y-m-d'),
'judul'=>$this->input->post('judul'),
'berita'=>$this->input->post('berita'),
'penulis'=>$author );
$this->db->insert('berita',$data);
}

Model m_berita.php (3/6)


function hapus_berita($id) {
$this->db->delete('berita', array('id'=>$id));
}

function pilih_berita($id) {
return $this->db->get_where('berita', array('id'=>$id))->row();
}

function lihat_berita($judul) {
$this->db->where('id', $judul);
return $this->db->get('berita',5)->result();
}

Model m_berita.php (4/6)


function ubah_berita($id,$author) {
$data = array(
posted'=>date('Y-m-d'),
'judul'=>$this->input->post('judul'),
'berita'=>$this->input->post('berita'),
'penulis'=>$author );
$this->db->where('id', $id);
$this->db->update('berita', $data);
}

Model m_berita.php (5/6)


function tambah_komentar($id_judul)
{
$data = array(
'posted'=>date('Y-m-d'),
'nama'=>$this->input->post('nama'),
'komen'=>$this->input->post('komentar'),
'id_judul'=>$id_judul);
$this->db->insert('komentar', $data);
}

Model m_berita.php (6/6)

function lihat_komentar($id_judul)
{
$this->db->where('id_judul', $id_judul);
return $this->db->get('komentar')->result();
}
}
?>

View v_news.php (1/4)


<html>
<head>
<link href="<?php echo base_url(); ?>css/default.css" rel="stylesheet" type="text/css"
media="all />
</head>
<body>
<div id="wrapper">
<div id="logo">
<h1>Simple Blog</h1>
</div>
<div id="page" class="round">
<div id="menu">
<?php if($this->session->userdata('login')==TRUE)
{ $this->load->view('v_admin'); } else {$this->load->view('v_user');} ?>

View v_news.php (2/4)

<div id="wrapper" class="round">


<?php
foreach ($news as $row): ?><br>
<h2><a href=<?php echo base_url().index.php/Berita/pilih_berita/'.$row>id;?>>
<?php echo $row->judul?></a><br>
</h2>
<?php echo $row->posted?> | | by : <?php echo $row->penulis?><br>
<?php echo $row->berita?><br>

View v_news.php (3/4)

<?php if($this->session->userdata('login')==TRUE)
{
echo anchor('Berita/ubah_berita/'.$row->id, ' Ubah ') . '| | ' . anchor('Berita/hapus_berita/'.$row>id, ' Hapus ');
} ?>
<br>
------------------------------------------------------------------------- <br>
<?php endforeach ?>
<br>
<p class=center><?php echo $this->pagination->create_links();?></p>
</div>

View v_news.php (4/4)

<div style="clear: both"></div><!-- End Wrapper 2 -->


</div> </div> </div>
<div id="footer">
<p>copyright &copy; 2011 Simply Blue. Design Free Website Templates
modified by ika.</p>
</div>
</body>
</html>

Output v_news.php

View v_addnews.php (1/3)


<html>
<head>
<link href="<?php echo base_url(); ?>css/default.css" rel="stylesheet" type="text/css"
media="all />
</head>
<body>
<div id="wrapper">
<div id="logo">
<h1>Simple Blog</h1>
</div>
<div id="page" class="round">
<div id="menu">
<?php if($this->session->userdata('login')==TRUE)
{ $this->load->view('v_admin'); } else {$this->load->view('v_user');} ?>

View v_addnews.php (2/3)


<div id="wrapper" class="round">
<?php echo form_open('Berita/input_berita');?>
<table>
<tr>
<th>Judul</th>
<td><textarea name="judul" cols=75 ></textarea></td>
</tr>
<tr>
<th>Berita</th>
<td><textarea name="berita" class="text-input textarea tiny_mce" cols=40
rows=30></textarea></td>
</tr>

View v_addnews.php (3/3)


<tr>
<td></td>
<td><center> <input type="submit" value="Publish" /></center></td>
</tr>
</table>
</form>
</div>
<div style="clear: both"></div>
</div> </div> </div>
<div id="footer">
<p>copyright &copy; 2011 Simply Blue. Design Free Website Templates modified by
ika.</p>
</div>
</body>
</html>

Output v_addnews

View v_editnews.php (1/3)


<html>
<head>
<link href="<?php echo base_url(); ?>css/default.css" rel="stylesheet" type="text/css"
media="all />
</head>
<body>
<div id="wrapper">
<div id="logo">
<h1>Simple Blog</h1>
</div>
<div id="page" class="round">
<div id="menu">
<?php if($this->session->userdata('login')==TRUE)
{ $this->load->view('v_admin'); } else {$this->load->view('v_user');} ?>

</div>

View v_editnews.php (2/3)


<div id="wrapper" class="round">
<?php echo form_open('');?>
<table>
<tr>
<th>Judul</th>
<td><textarea name="judul" cols=75 > <?php echo $no->judul ?> </textarea></td>
</tr>
<tr>
<th>Berita</th>
<td><textarea name="berita" class="text-input textarea tiny_mce" cols=40 rows=30>
<?php echo $no->berita ?> </textarea></td>
</tr>

View v_editnews.php (3/3)


<tr>
<td></td>
<td><center> <input type="submit" value="Publish" /></center></td>
</tr>
</table>
</form>
</div>
<div style="clear: both"></div>
</div> </div> </div>
<div id="footer">
<p>copyright &copy; 2011 Simply Blue. Design Free Website Templates modified by
ika.</p>
</div>
</body>
</html>

Output v_editnews.php

Proses Pembuatan Blog

MEMBUAT FRONT END BLOG


Halaman Depan (Homepage)
Halaman Pilih Berita
Proses Komentar

View v_user.php

<center>
<a href="<?php echo base_url();?>index.php/Berita"><font color="white" size=4 face="comic sans
ms">Beranda</font></a>
<a href="<?php echo base_url();?>index.php/Login"><font color="white" size=4 face="comic sans
ms">Login</font></a>
</center>

Membuat Front End Blog

Halaman Depan (Homepage)

Controller Berita.php(1/3)

Koding yang digunakan untuk melihat berita secara keseluruhan telah terdapat
di dalam fungsi index di controller berita, yaitu :
function index()
{
if($this->session->userdata('login')==TRUE) {
$data['user']=$this->session->userdata('user');
$data['pesan']="";
$config['base_url'] = site_url("Berita/index/");
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';

Controller Berita.php (2/3)


$config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_berita', $data);
} else {
$data['pesan']="";
$config['base_url'] = base_url().'/Berita/index';
$config['total_rows'] = $this->db->count_all('berita');
$config['per_page'] = 3';

Controller Berita.php (3/3)


$config['next_link'] = 'Next Entries >>';
$config['prev_link'] = '<< Previous Entries';
$offset=$this->uri->segment(3);
$data['news'] = $this->m_berita->selectAll($config['per_page'],$offset);
$this->pagination->initialize($config);
$this->load->view('v_berita', $data);
}
}

Membuat Front End Blog

Halaman Pilih Berita

Controller Berita.php

Tambahkan fungsi berikut di dalam controller Berita.php


function pilih_berita($id_judul)
{
$data['komen']=$this->m_berita->lihat_komentar($id_judul);
$data['news']=$this->m_berita->lihat_berita($id_judul);
$data['pesan']="";
$data['user']=$this->session->userdata('user');
$data['id_judul']=$id_judul;
$this->load->view('v_selectnews',$data);
}

View v_selectnews.php
(1/5)
<html>
<head>
<link href="<?php echo base_url(); ?>css/default.css" rel="stylesheet" type="text/css"
media="all />
</head>
<body>
<div id="wrapper">
<div id="logo">
<h1>Simple Blog</h1>
</div>
<div id="page" class="round">
<div id="menu">
<?php if($this->session->userdata('login')==TRUE)
{ $this->load->view('v_admin'); } else {$this->load->view('v_user');} ?>

</div>

view v_selectnews.php (2/5)


<div id="wrapper" class="round">
<?php
foreach ($news as $row): ?><br>
<h2><?php echo $row->judul?></h2><br>
<?php echo $row->posted?> | | by : <?php echo $row->penulis?><br>
<?php echo $row->berita?><br>
<?php endforeach ?>
<?php
if($this->session->userdata('login')==TRUE)
{

view v_selectnews.php (3/5)

echo anchor('Berita/ubah_berita/'.$row->id, ' Edit ') . '| | ' . anchor('Berita/hapus_berita/'.


$row->id, ' Hapus ');
} ?>
<br><br>
<h2>Komentar</h2>
<?php
foreach ($komen as $row): ?>
<font face="comic sans ms" color="navy"><?php echo $row->nama;?>&nbsp </font><br>
<font color="gray"> <?php echo $row->posted;?> </font><br>
<?php echo $row->komen;?><br>
----------------------------------------- <br>

view v_selectnews.php (4/5)


<?php endforeach ;?>
<?php echo $pesan;?>
<?php echo form_open('Berita/tambah_komentar/');?>
<table>
<tr>
<th>Nama</th>
<td><input type="text" name="nama"></td>
</tr>
<tr>
<th>Komentar</th>
<td><textarea name="komentar" cols=30 rows=10></textarea></td>
</tr>

view v_selectnews.php (5/5)

<input type="hidden" name="id_judul" value="<?php echo $id_judul?>">


<td></td><td> <input type="submit" value="Submit" /></td>
</tr>
</table>
<?php echo form_close();?>
<div style="clear: both"></div>
</div> </div></div>
<div id="footer">
<p>copyright &copy; 2011 Simply Blue. Design Free Website Templates
modified by ika.</p>
</div>
</body>
</html>

Output v_selectnews

Membuat Front End Blog

Mengirim Komentar

Controller Berita.php (2/2)

Tambahkan fungsi berikut di dalam controller Berita.php


function tambah_komentar()
{
$id_judul = $this->input->post('id_judul');
$this->m_berita->input_komentar($author);
$red = 'Berita/pilih_berita/.$id_judul;
redirect($red);
}

model m_berita.php

Tambahkan fungsi berikut di dalam model m_berita.php


function input_komentar($author)
{
$data = array(
'posted'=>date('Y-m-d'),
'nama'=>$this->input->post('nama'),
'komen'=>$this->input->post('komentar'),
'id_judul'=>$this->input->post('id_judul'));
$this->db->insert('komentar',$data);
}

CSS

Tambahkan beberapa hiasan CSS untuk mempercantik


tampilan blog.

Вам также может понравиться