• Tidak ada hasil yang ditemukan

MEMBUAT SESSION PADA FRAMEWORDK CODEIGNTER ( Pertemuan 6)

Dalam dokumen Modul web Programming II (Halaman 44-61)

A. TUJUAN

1. Mengenal CRUD dasar framework codeigniter 2. Penerapan MVC dengan Teknik OOP

B. TUGAS PENDAHULUAN

1. Bagaimana Mahasiswa mampu menguasai CRUD dengan baik 2. Mahasiswa mampu menerapkan MVC dengan Teknik OOP C. 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

46

<?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);

} }

?>

2. Tambahkan file Template.php pada lokasi application\libraries dengan dengan script sebagai berikut:

47

<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>

3. Dengan views class Template dengan nama file template.php pada lokasi

application\views\backend\template.php

48

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

?>

49

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

50

<?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

51

7. Membuat model dari control Auth dengan nama M_auth.php pada lokasi file );

$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');

}

}

52

<?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();

}

}

application\models\M_auth.php

53

<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>

8. Dengan view control Auth dengan nama file login.php pada lokasi file

application\views\backend\login.php

54

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

55

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 (Enkripsi 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 ,

56

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

57

<?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);

}

}

58

59

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

<head>

<meta charset="utf-8">

<title>portalci</title>

</head>

<body>

<h2>Halaman Beranda</h2>

</body>

</html>

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

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

60

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

<head>

<meta charset="utf-8">

<title>portalci</title>

</head>

<body>

<h2>Halaman Beranda</h2>

</body>

</html>

61

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

62

MODUL 6

MENGELOLA DATABERITA

Dalam dokumen Modul web Programming II (Halaman 44-61)

Dokumen terkait