Anda di halaman 1dari 39

MODUL

LANJUTAN
5, 6, 7, 8 FRAME
WORK CI
Berbasis Framework Dengan Teknik OOP
MODUL 5 : KONFIGURASI ATAU SETTING FRAMEWORK CODEIGNITER

MODUL 6 : MENGENAL CRUD PADA FRAMEWORDK CODEIGNTER

MODUL 7 : MEMBUAT SESSION PADA FRAMEWORDK CODEIGNTER

MODUL 8 : MENGELOLA DATA BERITA


3
MODUL 5
KONFIGURASI ATAU SETTING FRAMEWORK CODEIGNITER

KEGIATAN PRAKTIKUM
A. Membuat database dan Tabel
Sebelum kita merancang sebuah website atau latihan pembelajaran pada pembahasan ini, kita
buat databases terlebih dulu, untuk pembuatan databases dan Tabel kali ini melalui menu console
pada phpmyadmin dengan Langkah-langkah sebagai berikut:
1. Aktifkan apache dan mysql pada Xampp Control Panel

4
2. Buka browse ketikan http://localhost/phpmyadmin pada menu console ketikan script dibawah
ini untuk membuat databases dan Ctrl+Enter untuk menjalankan perintahnya
create database dbportalci

3. Sedangkan untuk tabel ketikan script dibawah ini untuk membuat tabel dan Ctrl+Enter untuk
menjalankan perintahnya
CREATE TABLE `admin` (
`kd_admin` varchar(15) NOT NULL,
`nama_admin` varchar(100) NOT NULL,
PRIMARY KEY (`kd_admin`)
)

Jika kita lihat hasil dari script diatas didapat struktur tabel sebagai berikut
Name Type Keterangan
kd_admin Varchar (15) Primary Key
nama_admin Varchar (100)

5
B. Konfigurasi atau Setting Framework Codeigniter
Setelah kita membuat databases dan table, berikutnya barulah kita masuk kepembahasan setting
framework codeigniter, dengan Langkah-langkah sebagai berikut ini:
1. Sebelum kita lakukan setting framework codeigniter terlebih dulu kita siapkan framework
codeigniter, untuk mendapatkan kita langsung saja kunjungi situs resmi dari framework
codeigniter https://codeigniter.com/download

2. Download codeigniter versi Codeigniter 3 pada pembahasan materi ini, setelah kita berhasil
mendownload framework codeigniter 3, kita extrak pada lokasi menempatkan xampp dengan
lokasi c:\xampp\htdocs dan buat folder baru dengan nama belajarci, hasil extrak ubah namany
Dengan nama projek portalci, pada hal ini penulis xampp berada pada lokasi disk C.

3. Untuk memastikan saja framework codeigniter yang kita download dan yang telah kita extrak
pada lokasi c:\xampp\htdocs\belajarci projek tersebut tidak ada dokumen yang korup atau
rusak maupun error sehingga siap kita gunakan untuk membangun sebuah aplikasi yang kita
inginkan. Buka browse ketikan http://localhost/belajarci/portalci maka secara default akan
tampil halaman welcome to codeigniter menandakan bahwa framework berjalan dengan baik

6
4. Buka text editor atom dan drag projek portalci kedalam text edit atom, untuk melakukan
konfigurasi atau setting kita focus pada folder application\config kita akan buka file
autoload.php pada file ini kita tambahkan database pada [‘libraries’] line 61 seperti gambar
dibawah ini, pada CRUD karena masih sangat sederhana libraries yang kita gunakan baru
memanggil databases

5. Masih pada file application\config\ autoload.php pada file autoload.php namun pada line 92
kita tambahkan array(‘url’) sehingga format url yang kita gunakan akan terbaca

6. Untuk setting pada file application\config\config.php pada file config.php line 26 ini kita ubah
seperti gambar dibawah yaitu line 27-29 dengan tujuan pada saat membuka website pada lokasi
lainnya secara otomastis terbaca tanpa harus mengubah-ubah lokasinya lagi. Misalnya kita tadi

7
menempatkan projek portalci pada folder belajarci, kemudian kita pindahkan ke folder lainnya
secara otomatis tetap terbaca tanpa harus setting kembali pada file config.php dengan script
sebagai berikut:
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ?
"https" : "http");
$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "",
$_SERVER['SCRIPT_NAME']);

7. Untuk setting pada file application\config\database.php pada file database.php karena local
kita focus di line 79 pada username = ‘root’ dan di line 81 pada database= ‘dbportalci’

8. Untuk setting pada file application\config\routes.php pada file routes.php yaitu pada line 52
‘default_controller’ berfungsi untuk memanggil control yang pertama kali dipanggil saat
website dijalankan, secara default framework codeigniter akan memanggil welcome, kali ini
untuk sementara kita biarkan secara default terlebih dulu.

8
MODUL 6
MENGENAL CRUD PADA FRAMEWORDK CODEIGNTER

KEGIATAN PRAKTIKUM
1. Pada pembuatan script yang pertama kali kita buat adalah control terlebih dulu,
bagaiaman mana cara membuat control masuk ke lokasi folder application\controllers
klik kanan pilih New File beri nama control Admin.php dengan diawalin huruf dengan
menggunakan huruf kapital, diakhir enter pada keybord untuk membuat file

2. Untuk membantu script control karen kita telah instal package codeigniter kita bisa
memanggil package dengan mengetikan cic maka secara otomatis package codeigniter
akan mengarahkan script pada package codeigniter yang biasa digunakan dalam
pembuatan aplikasi framework codeigniter dan pilih cicontroller dengan menekan
tombol enter untuk membuat control

9
3. Kita telah membuat control sampai ini kita ubah nama Classname dan function kita
sesuaikan dengan kebutuhan. Jangan lupa untuk menyimpan file ctrl+s jika melalui
keybord atau melalui menu bar file-save.

4. Kemudian kita lengkapi script control Admin, untuk penjelasan script telah diberi
penjelasan pada komentar script, dengan ditandai // atau /* */
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Admin extends CI_Controller{


/*
$view berfungsi untuk membaca file view seperti read.php, create.php
dan edit.php dengan lokasi folder views/backend/v_admin/
*/
private $view = "backend/v_admin/";
//memanggil control Admin/index dalam keadaan refresh
private $redirect = "Admin";

public function construct()


{
parent:: construct();

10
//control Admin menghubungkan model M_admin
$this->load->model('M_admin');
}

function index(){
//memanggil model M_admin dengan function GetAll
$read = $this->M_admin->GetAll();
$data = array(
//'read' variabel yang akan dipanggil pada view read.php
'read'=> $read
);
/*
dengan $this->view artinya memanggil private $view="backend/v_admin/"
dilanjutkan dengan 'read' untuk memanggil read.php
*/
$this->load->view($this->view.'read', $data);
}

public function create(){


//untuk create tidak memangil model, langsung ke view dengan data baru
$data = array(
'create' => ''
);
$this->load->view($this->view.'create', $data);
}

public function save(){


$data = array(
'kd_admin'=> $this->input->post('kd_admin'),
'nama_admin'=> $this->input->post('nama_admin')
);
$this->M_admin->save($data);
//dengan $this->redirect artinya memanggil private $redirect = "Admin"
redirect($this->redirect,'refresh');
}

public function edit(){


/*
segment 1 adalah control, segment 2 adalah function, segment 2 adalah PK,
data yang akan ditambilkan hanya yang dipilih saja sesuai PK yang dipilih
*/
$kd = $this->uri->segment(3);
$data = array(
//'edit' variabel yang akan dipanggil pada view edit.php
'edit' => $this->M_admin->edit($kd)
);
$this->load->view($this->view.'edit', $data);
}

11
public function update(){
$kd = $this->uri->segment(3);
$data = array(
/*
'nama_admin' =nama yang diambil dari fild pada tabel
$this->input->post('nama_admin') =nama yang diambil dari form
*/
'nama_admin'=> $this->input->post('nama_admin')
);
$this->M_admin->update($kd,$data);
redirect($this->redirect,'refresh');
}

public function delete(){


$kd = $this->uri->segment(3);
$data = array(
//data akan dihapus sesuai uri->segment(3) yang dipilih
'kd_admin' => $kd
);
$this->M_admin->delete($data);
redirect($this->redirect,'refresh');
}

5. Setelah kita membuat control selanjutnya kita akan membuat model, dimana pada
control Admin membutuhkan model dengan nama M_admin. Untuk membuat model
pada application\models klik kanan pilih New File kita bernama M_admin.php dan
tekan Enter pada Keyborad sehingga tampil seperti gambar dibawah ini. Sama seperti
pada control untuk memudahkan script pembutakan model dengan mengetikan cim
kemudian pilih cimodel tekan Enter pada Keyborad

6. Ganti Classname dan Function sesuai dengan kebutuhan, berikut script model yang

12
digukanan pada M_admin dengan menambahakan komentar sebagai penjelasan script
sebagai berikut:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class M_admin extends CI_Model{


//$table sebagai tabel yang digunakan, dengan pemanggilannya $this->table
private $table = 'admin';
//$pk atau Primary Key yang digunakan, dengan pemanggilannya $this->pk
private $pk = 'kd_admin';

public function GetAll(){


$this->db->order_by($this->pk, 'desc');
return $this->db->get($this->table);
}

public function save($data){


return $this->db->insert($this->table, $data);
}

public function edit($kd){


$this->db->where($this->pk, $kd);
return $this->db->get($this->table)->row_array();
}

public function update($kd,$data){


$this->db->where($this->pk, $kd);
return $this->db->update($this->table, $data);
}

public function delete($data){


$this->db->where($data);
return $this->db->delete($this->table);
}

7. Berikutnya baru kita masuk dibagian view, pada modul ini pembahasan projek kita
focus pada bagian backend maka dari itu pada folder view kita buat lagi folder backend
sebagai view pada bagian administrator. Setelah kita membuat folder backend didalam
folder, kita kembali membuat folder yakni v_admin yang berarti bahwa view dari
control dari Admin yakni view dari file read.php, create.php dan edit.php
8. Pada view pertama yang kita buat tentu saja read.php karena sebagai view index dari
control admin dengan kita telah membuat read.php kita bisa memanggil halaman

13
lainnya seperti view dari create.php, edit.php dan aksi dari delete. Berikut ini adalah
script dari view read.php yang berfungsi untuk menampilkan seluruh record pada tabel
admin. Klik kanan pada folder v_admin pilih New File
<!--untuk memanggil halaman tambah atau file create.php-->
<a href="<?php echo site_url('Admin/create') ?>"><button type="button"
name="button" title="untuk menambah data">Tambah</button></a>

<table border="1" width="70%">


<tr>
<td>No</td>
<td>Kode</td>
<td>Nama</td>
<td>Aksi</td>
</tr>
<?php
$no=1;
//$read yang diambil dari control function index
foreach ($read->result_array() as $row) {
?>
<tr>
<td><?php echo $no ?></td>
<td><?php echo $row['kd_admin'] ?></td>
<td><?php echo $row['nama_admin'] ?></td>
<td>
<!--memanggil halaman edit atau edit.php-->
<a href="<?php echo site_url('Admin/edit/'.$row['kd_admin'])?>"
title="tombol utk merubah data">Ubah</a> |
<!--memanggil aksi delete-->
<a href="<?php echo site_url('Admin/delete/'.$row['kd_admin'])?>"
onclick="javascript: return confirm('Yakin Mau dihapus <?php echo
$row['nama_admin'];?>')">Hapus</a>
</td>
</tr>
<?php
$no++;
}
?>
</table>

9. Sampai pada view read.php ini kita dapat melihat hasil dari control admin, yakni kita
kembali pada setting framework codeigniter untuk memanggil control admin
application\config\routes.php kita ganti default_controller sebelumnya memanggil
welcome menjadi Admin

14
10. Buka browse ketikan http://localhost/belajarci/portalci maka secara default control
Admin yang akan dijalankan, untuk data tidak terlihat karena kita belum mengisikan
record pada tabel admin

11. Disinilah kita akan menambahkan data melalui file create.php dimana view dari control
admin pada function create yang berfungsi untuk menambah record pada tabel admin.
Klik kanan pada folder v_admin pilih New File dan beri nama create.php
<form class="" action="<?php echo site_url ('Admin/save') ?>" method="post">
<label>Kode Admin</label><br>
<input type="text" name="kd_admin" value=""><p></p>

<label>Nama Admin</label><br>
<input type="text" name="nama_admin" value=""><p></p>

<button type="submit" name="button">Simpan</button>


<a href="<?php echo site_url('Admin') ?>"><button type="button"
name="button">Batal</button></a>

</form>

15
12. Sehingga saat kita mengisikan data pada form create.php dan menyimpannya akan
redirect ke control admin

13. View terakhir yaitu view edit.php yakni view data control Admin dengan function edit
yang berfungsi untuk mengubah data pada tabel admin. Klik kanan pada folder v_admin
pilih New File dan beri nama edit.php. Jika kita perhatikan pada text dengan nama
kd_admin terdapat 2(dua) text, yang membedakaan adalah disable dan hidden. Disable
yang artinya text tidak dapat di isi atau diubah datanya, tp dengan disable tentu saja text
ini tidak dapat dikirim melalui form. Sebagai pengganti data yang bisa dikirim adalah
yang text hidden sehingga text dapat dikirim melalui form.
<form class="" action="<?php echo site_url('Admin/update/'.$edit['kd_admin'])
?>" method="post">
<label>Kode Admin</label><br>
<input type="text" name="kd_admin" disabled value="<?php echo
$edit['kd_admin'] ?>"><p></p>
<input type="text" name="kd_admin" hidden value="<?php echo
$edit['kd_admin'] ?>"><p></p>

<label>Nama Admin</label><br>
<input type="text" name="nama_admin" value="<?php echo
$edit['nama_admin'] ?>"><p></p>

<button type="submit" name="button">Perbaharui</button>


<a href="<?php echo site_url('Admin') ?>"><button type="button"
name="button">Batal</button></a>

</form>

16
Tugas
1. Sebagai pengembangan pada CRUD pada control Admin, dengan menabahkan
lebih detail field pada tabel admin, tentu saja hal ini akan mempengarui view pada
read, create dan edit. Dengan struktur tabel admin sebagai berikut:
Name Type Keterangan
kd_admin Varchar (15) Primary Key
nama_admin Varchar (100)
email_admin Varchar (100)
hp_admin Varchar (13)
pswd_admin Varchar (100) Enkripsi MD5

2. Isi record dengan data nama kelompok mahasiswa

17
MODUL 7
MEMBUAT SESSION PADA FRAMEWORDK CODEIGNTER

KEGIATAN PRAKTIKUM
Session adalah sebuah variable yang disimpan pada server bersifat sementara pada akhirnya
menjadi data sementara dengan tujuan dari segi keamanan sebuah aplikasi dan data terssebut
akan hancur dengan mengakhiri data tersebut. Dengan kata lainnya session adalah validasi
login atau hak akses untuk sebuah keamanan yakni ketika kita berhasil login pada aplikasi
dan ketika kita logout dari aplikasi tersebut. Pada framework codeigniter untuk session telah
disediakan yakni pada library session, sehingga memudahkan kita tinggal memanggilnya
saja dengan demikian memudahkan kita dalam penulisan script session. Berikut ini kita
terapkan session pada projek dengan Langkah-langkah sebagai berikut:
1. Kembali kita setting framework codeigniter pada application\config\autoload.php
line 61 kita tambahakan 'session' dan 'template'. 'session' berfungsi untuk
mengaktifkan session pada libraries. Selain kita menambahakan session penulis
langsung membahas bersamaan dengan 'template' berfungsi untuk halaman utama
untuk mempercantik tampilan website, namun kali ini template disini dibuat sangat
sederhana hanya dalam bentuk tombol-tombol saja untuk memanggil halaman lainnya,
dengan catatan setelah kita memahami pembahasan mengenai template css atau
bootstrap tentu saja file ini bisa langsung kita digunakan sebagai template pada halaman
website kita yakni dengan menempatkan file sesuai dengan pembahasan pada modul ini
dan memberi nama file css atau bootstrap dengan nama yang sama yakni template.php

18
2. Tambahkan file Template.php pada lokasi application\libraries dengan dengan script
sebagai berikut:
<?php
class Template {

var $template_data = array();


function set ($name,$value){
$this->template_data[$name] = $value;
}

function load($template = '', $view = '', $view_data = array(), $return =


FALSE){
$this->CI =& get_instance();
$this->set('contents', $this->CI->load->view($view, $view_data, TRUE));
return $this->CI->load->view($template,$this->template_data, $return);
}
}
?>

19
3. Dengan views class Template dengan nama file template.php pada lokasi
application\views\backend\template.php
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>portalci</title>
</head>
<body>

<a href="<?php echo site_url('Home') ?>">Beranda</a> |


<a href="<?php echo site_url('Admin') ?>">Data Admin</a> |
<a href="<?php echo site_url('Kategori') ?>">Data Kategori</a> |
<a href="<?php echo site_url('Berita') ?>">Data Berita</a> |
<a href="<?php echo site_url('Auth/logout') ?>">Keluar</a>
<hr>
<?php echo $judul; echo '<small>'; echo' >> '; echo $sub; echo '</small>'; ?>
<p></p>

<!--isi content-->
<?php echo $contents ?>
<!--end isi content-->

</body>
</html>

20
4. Masih pada autoload.php yakni pada application\config\autoload.php line 92 dengan
menambahkan islogin_helper.php berfungsi untuk memanggil function dengan
pemberian nilai atau algorima lainnya pada islogin_helper.php

5. Kita tambahkan islogin_helper.php pada lokasi folder application\helpers dengan


dengan script sebagai berikut:
<?php
//-->session
function IsAdmin(){
$ci =& get_instance();
//session akan aktif jika session bernilai 1
if($ci->session->userdata('IsAdmin')<>1){
redirect('auth','refresh');
}
}
//-->Endsession
?>

21
6. Berikutnya kita buat control Auth dengan tujuan memvalidasi data ketika akan
memasuki halaman utama administrator secara default akan menampilkan view login,
control Auth lokasi file pada application\controllers\Auth.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Auth extends CI_Controller {

private $redirect = "admin";

public function construct(){


parent:: construct();
//Load model
$this->load->model('M_auth');
}

public function index(){


$this->session->sess_destroy();
$data = array(
'login' => ''
);
$this->load->view('backend/login', $data);
}

public function login(){


$kd = $this->input->post('kd_admin');
$pwd = md5($this->input->post('pswd_admin'));
$data = $this->M_auth->CekLogin('admin','kd_admin',$kd);
//jika login
if($data['pswd_admin'] == $pwd AND $data['kd_admin'] == $kd){
$array = array(
'kd_admin' => $data['kd_admin'],
'nama_admin' => $data['nama_admin'],
'IsAdmin' => 1

22
);
$this->session->set_userdata($array);
redirect('Home','refresh');
}else{
echo "<script>alert('Username atau Password
salah!');</script>";
redirect('Auth','refresh');
}
}

public function logout()


{
//data session akan di hancurkan
$this->session->sess_destroy();
redirect('Auth','refresh');
}

7. Membuat model dari control Auth dengan nama M_auth.php pada lokasi file
application\models\M_auth.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class M_auth extends CI_Model {

public function CekLogin($table,$pk,$kd){


$this->db->where($pk, $kd);
return $this->db->get($table)->row_array();
}

23
8. Dengan view control Auth dengan nama file login.php pada lokasi file
application\views\backend\login.php

<form method="post" action="<?php echo site_url('auth/login') ?>">

<label>Kode Admin</label><br>
<input type="text" name="kd_admin" value=""><p></p>

<label>Password</label><br>
<input type="password" name="pswd_admin" value=""><p></p>

<input type="submit" value="Login">


</form>

9. Kali ini kita bisa melihat hasil dari control Auth, jangan lupa pada setting framework
codeigniter pada bagian default_controller ganti pada control Auth

24
10. Buka browse ketikan http://localhost/belajarci/portalci maka secara default akan
memanggil control Auth dengan view login.php sehingga untuk masuk pada halaman
utama atau halaman berikutnya ditahan untuk melakukan validasi login terlebih dulu

11. Lakukan login dengan memasukkan kode admin dan passoword (E nkripsi MD5), jika
berhasil login maka secara default memanggil control Home, maka akan tampil Page Not
Found seperti gambar dibawah, hal ini karena control Home belum tersedia.

12. Pada langkah ini kita buat control Home, script control Home jika kita perhatikan pada
line 15 IsAdmin() yang artinya pada file home.php yakni control Admin telah
mengaktifkan session, sehingga jika control ini dipanggil kita harus mempunyai nilai
session atau telah berhasil login melalui validasi control Auth yakni validasi login.
Demikian juga script saat pemanggilan view pada line 27 telah memanggil libraries
template dengan demikain saat kita akan memanggil view seperti read.php ,
create.php dan edit.php views pemanggilan harus melalui libraries template, maka
script pemanggilan view pada control Admin pada pembahasan sebelumnya diganti
seperti script pemanggilan view pada control Home

25
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller {


private $view = "backend/v_home/";
private $redirect = "Home";

public function construct(){


parent:: construct();
//mengaktifkan session dengan demikian halaman ini jika dipanggil kini
membutuhkan session
IsAdmin();
}

public function index(){


$data = array(
'judul' => "BERANDA",
'sub' => "Halaman Beranda"
);
/*
$this->template memanggil libraries template,
load('backend/template' artinya memanggil file template.php,
$this->view.'read' memanggil file read.php
catatan: setelah kita mengetahui untuk view kali ini script ada penambahan
template,
maka CRUD Admin pembalajaran sebelumnya mengikuti script seperti pada
control Home */
$this->template->load('backend/template',$this->view.'read', $data);
}

26
13. Pada control Home kali ini, control Home tidak memanggil model yakni langsung
memanggil view dengan script sebagai berikut

<html lang="en" dir="ltr">


<head>
<meta charset="utf-8">
<title>portalci</title>
</head>
<body>

<h2>Halaman Beranda</h2>

</body>
</html>

14. Untuk view control Home dengan nama file read.php dengan lokasi folder
application\views\backend\v_home\read.php script view read.php sebagai berikut

<html lang="en" dir="ltr">


<head>
<meta charset="utf-8">
<title>portalci</title>
</head>
<body>
<h2>Halaman Beranda</h2>
</body>
</html>

27
15. Kali ini refresh browser pada langkah nomor 11 maka control Home bisa kita panggil
dengan tampilan sebagai berikut

Tugas
1. Tambahkan tabel kategori pada databases dbportalci dengan struktur tabel sebagai
berikut:
Name Type Keterangan
id_kategori Int (4) PK (Auto_Increment)
nama_kategori Varchar (30)

2. Buat Contol, Model dan View untuk pengelolaah data pada tabel kategori

28
MODUL 8
MENGELOLA DATA BERITA

KEGIATAN PRAKTIKUM

1. Tambahkan tabel berita pada databases dbportalci dengan struktur tabel sebagai
berikut:

Name Type Keterangan


id_berita Int (11) PK (Auto_Increment)
kd_admin Varchar (15)
id_kategori Int (4)
st_berita Varcahr(6)
tgl_berita Date
jam_berita Time
judul_berita Varchar (100)
isi_berita Text
img_berita Varcahr(100)

2. Membuat Control Berita pada lokasi application\controllers dengan nama file


Berita.php script sebagai berikut

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Berita extends CI_Controller {


private $view = "backend/v_berita/";
private $redirect = "berita";

29
public function construct(){
parent:: construct();
//Load model
$this->load->model('M_berita');
$this->load->model('M_kategori');
IsAdmin();
}

public function index(){


if ($this->input->get('search')) {
$q = $this->M_berita->search($this->input->get('search'));
}
else{
$q = $this->M_berita->GetAll();
}
$data = array(
'judul' => "DATA BERITA",
'sub' => "Lihat Berita",
'read'=> $q
);
$this->template->load('backend/template',$this->view.'read', $data);
}

public function create(){


$data = array(
'judul' => "DATA BERITA",
'sub' => "Tambah Berita",
'kategori' => $this->M_kategori->GetAll(),
'create'=>''
);
$this->template->load('backend/template',$this->view.'create', $data);
}

public function save(){


//img_berita
$name_imgberita = $_FILES['img_berita']['name'];
$type_imgberita = $_FILES['img_berita']['type'];
$tmp_imgberita = $_FILES['img_berita']['tmp_name'];
//upload img
if (!empty($tmp_imgberita)){
if ($type_imgberita != "image/jpeg" AND $type_imgberita !=
"image/jpg" AND $type_imgberita != "image/png"){
echo "<script>alert('Format yang digunakan
jpeg|jpg|png');</script>";
redirect($this->redirect,'refresh');
}
else{
$img_berita =

30
UploadImg($_FILES['img_berita'],'./assets/img_berita/','berita',500);
$data = array(
'judul_berita'=> $this->input->post('judul_berita'),
'id_kategori'=> $this->input->post('id_kategori'),
'st_berita'=> 'Blokir',
'isi_berita'=> $this->input->post('isi_berita'),
'tgl_berita'=> date('Y-m-d'),
'jam_berita'=> date('H:i:s'),
'kd_admin' => $this->session->userdata('kd_admin'),
'img_berita'=> $img_berita
);
$this->M_berita->save($data);
redirect($this->redirect,'refresh');
}
}
}

public function edit(){


$kd = $this->uri->segment(3);
$data = array(
'judul' => "DATA BERITA",
'sub' => "Ubah Berita",
'kategori' => $this->M_kategori->GetAll(),
'edit' => $this->M_berita->edit($kd)
);
$this->template->load('backend/template',$this->view.'edit', $data);
}

public function update(){


$kd = $this->uri->segment(3);
//img_berita
$name_imgberita = $_FILES['img_berita']['name'];
$type_imgberita = $_FILES['img_berita']['type'];
$tmp_imgberita = $_FILES['img_berita']['tmp_name'];
//upload img
if (!empty($tmp_imgberita)){
if ($type_imgberita != "image/jpeg" AND $type_imgberita !=
"image/jpg" AND $type_imgberita != "image/png"){
echo "<script>alert('Format yang digunakan
jpeg|jpg|png');</script>";
redirect($this->redirect,'refresh');
}
else{
$img_berita =
UploadImg($_FILES['img_berita'],'./assets/img_berita/','berita',500);
$data = array(
'judul_berita'=> $this->input-
>post('judul_berita'),
'id_kategori'=> $this->input-

31
>post('id_kategori'),
'isi_berita'=> $this->input->post('isi_berita'),
'tgl_berita'=> $this->input->post('tgl_berita'),
'jam_berita'=> $this->input-
>post('jam_berita'),
'kd_admin' => $this->session-
>userdata('kd_admin'),
'img_berita' => $img_berita
);
}
}
else{
$data = array(
'judul_berita'=> $this->input->post('judul_berita'),
'id_kategori'=> $this->input->post('id_kategori'),
'isi_berita'=> $this->input->post('isi_berita'),
'tgl_berita'=> $this->input->post('tgl_berita'),
'jam_berita'=> $this->input->post('jam_berita'),
'kd_admin' => $this->session-
>userdata('kd_admin'),
);
}
$this->M_berita->update($kd,$data);
redirect($this->redirect,'refresh');
}

public function status(){


$kd = $this->uri->segment(3);
$data = array(
'st_berita' => $this->uri->segment(4)
);
$this->M_berita->update($kd,$data);
redirect($this->redirect,'refresh');
}

public function delete(){


$kd = $this->uri->segment(3);
$data = array(
'id_berita' => $kd
);
$this->M_berita->delete($data);
redirect($this->redirect,'refresh');
}

32
3. Membuat Model M_berita pada control Berita pada lokasi application\models dengan
nama file M_berita.php script sebagai berikut

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class M_berita extends CI_Model {


private $table = 'berita';
private $pk = 'id_berita';

public function GetAll(){


$this->db->order_by ('tgl_berita', 'desc');
$this->db->order_by ('jam_berita', 'desc');
$this->db->join('admin','berita.kd_admin=admin.kd_admin');
$this->db->join('kategori','berita.id_kategori=kategori.id_kategori');
return $this->db->get($this->table);
}

public function save($data){


return $this->db->insert($this->table, $data);
}

public function edit($kd){


$this->db->where($this->pk, $kd);
$this->db->join('kategori','berita.id_kategori=kategori.id_kategori');
return $this->db->get($this->table)->row_array();
}

public function update($kd,$data){


$this->db->where($this->pk, $kd);
return $this->db->update($this->table, $data);
}

public function delete($data){


$this->db->where($data);
return $this->db->delete($this->table);
}

public function status($kd,$data){


$this->db->where($this->pk, $kd);
return $this->db->update($this->table, $data);
}

public function search($data){


$this->db->like($this->pk, $data);
$this->db->or_like('judul_berita', $data);
$this->db->or_like('nama_kategori', $data);
$this->db->join('kategori','berita.id_kategori=kategori.id_kategori');
return $this->db->get($this->table);

33
}

4. Tambahkan function pada file islogin_helper.php pada lokasi application\helpers


dengan script sebagai berikut

//-->format_img
function UploadImg($file,$dst,$style,$size){
$date= date('YmdHis').'_'.$style;
//Penjabaran File
$filename = $file['name'];
$filetype = $file['type'];
$filetmp = $file['tmp_name'];
$fileupload = $dst.$filename;
//upload ukuran sebenarnya
move_uploaded_file($filetmp, $fileupload);
//Identifikasi Gambar
if ($filetype == 'image/jpeg' || $filetype == 'image/jpg') {
$src = imagecreatefromjpeg($fileupload);
}elseif ($filetype == 'image/png') {
$src = imagecreatefrompng($fileupload);
}
$wsrc = imageSX($src);
$hsrc = imageSY($src);
//Set Ukuran Gambar
$wdst = $size;
$hdst = ($wdst / $wsrc) * $hsrc;
//Proses Perubahan Ukuran
$filecreate = imagecreatetruecolor($wdst, $hdst);
imagecopyresampled($filecreate, $src, 0, 0, 0, 0, $wdst,
$hdst, $wsrc, $hsrc);
//Nama Acak
$x = explode(".", $filename);
$name = $x[0];
$extension = $x[1];
$filename = $date.'.'.$extension;
//Reupload
if ($filetype == 'image/jpeg' || $filetype == 'image/jpg') {
imagejpeg($filecreate,$dst.$filename);
}elseif ($filetype == 'image/png') {
imagepng($filecreate,$dst.$filename);
}
//Hapus Foto Lama
unlink($fileupload);
return $filename;
}

34
//-->Endformat_img

5. Membuat view read pada control Berita pada lokasi


application\views\backend\v_berita dengan nama file read.php script sebagai berikut

<a href="<?php echo site_url('berita/create'); ?>" title="Tambah Data"> <button


type="button">Tambah</button> </a>
<!--Table-->
<table border="1" width=70%>
<tr>
<th>No</th>
<th>Kategori</th>
<th>Tanggal</th>
<th>Status</th>
<th>Judul</th>
<th>Author</th>
<th>Aksi</th>
</tr>
<?php
$no=1;
foreach ($read->result_array() as $row) {
?>
<tr>
<td><?php echo $no ?></td>
<td><?php echo $row['nama_kategori'] ?></td>
<td><?php echo $row['tgl_berita'];echo' ';echo
$row['jam_berita'] ?></td>
<td><?php echo $row['st_berita'] ?></td>
<td><?php echo $row['judul_berita'] ?></td>
<td><?php echo $row['kd_admin'] ?></td>
<td>
<?php
if($row['st_berita']=='Publik'){
?>
<a href="<?php echo
site_url('berita/status/'.$row['id_berita']).'/'.'Blokir'; ?>" title="Ubah status ke
Blok">
<button class="">Blokir</button></a>
<?php
}elseif($row['st_berita']=='Blokir'){
?>
<a href="<?php echo
site_url('berita/status/'.$row['id_berita']).'/'.'Publik'; ?>" title="Ubah status ke
Publik">
<button class="">Publik</button></a>
<?php
}
?>

35
<a href="<?php echo site_url('berita/edit/'.$row['id_berita'])
?>" title="Ubah">
<button class="">Ubah</button></a>
<a href="<?php echo
site_url('berita/delete/'.$row['id_berita']) ?>" title="Delete" onclick="javascript:
return confirm('Yakin Mau dihapus <?php echo $row['judul_berita'];?>')">
<button class="">Hapus</button></a>
</td>
</tr>
<?php
$no++;
}
?>
</table>
<!--EndTable-->

6. Membuat view create pada control Berita pada lokasi


application\views\backend\v_berita dengan nama file create.php script sebagai berikut

<!--Form-->
<form method="post" action="<?php echo site_url('berita/save') ?>"
enctype="multipart/form-data">

<label>Judul Berita</label><br>
<input type="text" name="judul_berita" class="" placeholder="Masukan
Judul Berita" value="" required oninvalid="this.setCustomValidity('Judul
Berita Harus Di Isi')" oninput="setCustomValidity('')"><p></p>

<label>Kategori</label><br>
<select name="id_kategori" class="" required>
<option value=0 selected>- Pilih kategori -</option>
<?php
foreach ($kategori->result_array() as $r) {
?>
<option value="<?php echo $r['id_kategori'] ?>"><?php echo
$r['nama_kategori']; ?></option>
<?php } ?>
</select><p></p>

<label>Isi Berita</label><br>

<textarea name="isi_berita" class="" id="" placeholder="isi Berita"


rows="20" cols="80" required></textarea><p></p>

<label>Foto Berita</label><br>
<input type="file" name="img_berita" required><p></p>

36
<button class="" type="submit">Simpan </button>
<a href="<?php echo site_url('berita') ?>"><button class=""
type="button">Batal</button></a>

</form>
<!--EndForm-->

7. Membuat view edit pada control Berita pada lokasi application\views\backend\v_berita


dengan nama file edit.php script sebagai berikut

<!--Form-->
<form method="post" action="<?php echo
site_url('berita/update/'.$edit['id_berita']) ?>" enctype="multipart/form-data">

<label>Judul Berita</label><br>
<input type="text" name="judul_berita" class="" placeholder="Masukan Judul
Berita" value="<?php echo $edit['judul_berita'] ?>" required
oninvalid="this.setCustomValidity('Judul Berita Harus Di Isi')"
oninput="setCustomValidity('')"><p></p>

<label>Tanggal</label><br>
<input type="date" name="tgl_berita" class="" value="<?php echo
$edit['tgl_berita'] ?>" required oninvalid="this.setCustomValidity('Judul Berita
Harus Di Isi')" oninput="setCustomValidity('')"><p></p>

<label>Jam</label><br>
<input type="time" name="jam_berita" class="" value="<?php echo
$edit['jam_berita'] ?>" required oninvalid="this.setCustomValidity('Judul Berita
Harus Di Isi')" oninput="setCustomValidity('')"><p></p>

<label>kategori</label><br>
<select name="id_kategori" class="" required>
<option value="<?php echo $edit['id_kategori'] ?>"><?php echo
$edit['nama_kategori'] ?></option>
<?php
foreach ($kategori->result_array() as $r) {
?>
<option value="<?php echo $r['id_kategori'] ?>"><?php echo
$r['nama_kategori']; ?></option>
<?php } ?>
</select><p></p>

<label>Isi Berita</label><br>
<textarea name="isi_berita" class="" id="" placeholder="isi Berita" rows="20"
cols="80" required><?php echo $edit['isi_berita'] ?></textarea>
<p></p>

<img src="<?php echo base_url('assets/img_berita/'.$edit['img_berita']) ?>"

37
width="400" height="300"><br>
<label>Ganti Foto</label><br>
<input type="file" name="img_berita"><p></p>

<button class="" type="submit">Perbaharui</button>


<a href="<?php echo site_url('admin') ?>"><button class=""
type="button">Batal</button></a>

</form>
<!--EndForm-->

38
DAFTAR PUSTAKA

Habibi, R., & Sandi, K. (2020). Aplikasi bank sampah istimewa menggunakan framework
PHP Codeigniter dan DBMS MySQL. Kreatif.
Hadi, D. A. (n.d.). Codeigniter Part 1 : Pengertian dan Cara Menggunakan CodeIgniter.
https://www.malasngoding.com/pengertian-dan-cara-menggunakan-codeigniter/
Idcloudhost. (2017). Mengetahui Fungsi, Kelebihan dan Kekurangan Framework
CodeIgniter. Https://Idcloudhost.Com/. https://idcloudhost.com/panduan/mengetahui-
fungsi-kelebihan-dan-kekurangan-codeigniter/
Widodo, I. W. (2013). Membangun Web Super Cepat dengan CodeIgniter GroceryCRUD
dan TankAuth.

47

Anda mungkin juga menyukai