Update : Kode Programnya udah di migrasi ke CI 2.0.2, biar lebih fresh…
, selengkapnya di => Website Sekolah dengan CodeIgniter : Migrasi ke CodeIgniter 2.0.2
Heii semua….
Alhmdulillah.. kali ini ak masih diberi kesempatan utk melanjutkan tulisan ku tentang membuat website sekolah dengan CodeIgniter. Pada bagian II ini aku akan Login Authentikasi User untuk Admin, Guru, Siswa, dan Alumni. Tentu dng algorithm yg sederhana.. Krn aku baru bisa yang sederhana2 gt…:)
Download Full Source Code | Demo Online
Baiklah kita mulai saja… dan langkahnya adalh sebagai berikut:
1. Download master CodeIgniter versi terbaru di CodeIgniter.com
2. Install CodeIgniter di webserver. Pada kesempatan kali aku pake WampServer. Temen2 bisa baca di CodeIgniter 1 # Instalasi dan Konfigurasi untuk langkah instalasinya.
3. Ektrak master CodeIgniter di wamp\www\ , rename menjadi sekolahku ,
4. Ubah base_url pada file config.php dalam folder application/config menjadi seperti ini:
$config['base_url'] = "http://localhost/sekolahku/";
5. Ubah konfigurasi database.php menjadi seperti berikut (sesuikan dengan konfigurasi database server temen2):
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "sekolahkudb";
6. Buat database dengan nama dbsekolah sesuai dengan rancangan database pada bagian pertama dari tutorial ini. Atau temen2 bisa copy dan run SQL berikut ini:
-- -------------------------------------------------------- -- -- Table structure for table `alumni` -- CREATE TABLE `alumni` ( `nama_lengkap` varchar(100) default NULL, `tahun_lulus` int(11) default NULL, `alamat` varchar(45) default NULL, `pekerjaan` varchar(100) default NULL, `users_id` int(11) NOT NULL, PRIMARY KEY (`users_id`), KEY `fk_alumni_users1` (`users_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Table structure for table `categories` -- CREATE TABLE `categories` ( `id` int(11) NOT NULL auto_increment, `name` varchar(100) NOT NULL, `description` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Table structure for table `comments` -- CREATE TABLE `comments` ( `id` int(11) NOT NULL auto_increment, `name` varchar(100) default NULL, `email` varchar(100) default NULL, `address` varchar(100) default NULL, `message` varchar(255) default NULL, `status` tinyint(4) default NULL, `posts_id` int(11) NOT NULL, `users_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_comments_posts1` (`posts_id`), KEY `fk_comments_users1` (`users_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Table structure for table `pages` -- CREATE TABLE `pages` ( `id` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL, `permalink` varchar(255) NOT NULL, `body` text NOT NULL, `status` tinyint(4) NOT NULL, `users_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_pages_users1` (`users_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Table structure for table `posts` -- CREATE TABLE `posts` ( `id` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL, `permalink` varchar(255) NOT NULL, `body` text NOT NULL, `status` tinyint(4) NOT NULL, `categories_id` int(11) NOT NULL, `users_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_posts_categories1` (`categories_id`), KEY `fk_posts_users1` (`users_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Table structure for table `students` -- CREATE TABLE `students` ( `nis` varchar(45) NOT NULL, `nama_lengkap` varchar(100) NOT NULL, `kelas` varchar(45) NOT NULL, `alamat` varchar(255) NOT NULL, `users_id` int(11) NOT NULL, PRIMARY KEY (`users_id`), KEY `fk_students_users` (`users_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Table structure for table `teachers` -- CREATE TABLE `teachers` ( `nip` varchar(45) NOT NULL, `nama_lengkap` varchar(100) NOT NULL, `golongan` varchar(10) NOT NULL, `alamat` varchar(255) NOT NULL, `users_id` int(11) NOT NULL, PRIMARY KEY (`users_id`), KEY `fk_teachers_users1` (`users_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Table structure for table `users` -- CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(100) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(100) NOT NULL, `type` varchar(45) NOT NULL, `status` tinyint(4) NOT NULL, `registered` datetime default NULL, `last_login` datetime default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
7. Masukan beberapa sampel data pada tabel user. Masing2 satu data untuk admin, teachers,students, dan alumni. Temen2 bisa run SQL berikut ini:
INSERT INTO `users` (`id`, `username`, `password`, `email`, `type`, `status`, `registered`, `last_login`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@gie-art.com', 'admin', 1, '2011-01-19 03:18:21', '2011-01-19 03:18:26'), (2, 'students', '75d37c6cbf460947005c97e3f12906a9', 'students@gie-art.com', 'students', 1, '2011-01-19 03:18:03', '2011-01-19 03:18:08'), (3, 'teachers', 'ad7d0e29419cc0843e35c6fe93b14d09', 'teachers@gie-art.com', 'teachers', 1, '2011-01-19 03:16:41', '2011-01-19 03:16:44'), (4, 'alumni', '9855f5cdff0306ae33a49f89e087ccbc', 'alumni@gie-art.com', 'alumni', 1, '2011-01-19 03:19:10', '2011-01-19 03:19:12');
Naaah…. sekarang adalah saatnya coding di CodeIgniter. Aku terbiasa mulai dari pembuatan model terlebih dahulu, baru kemudian membuat Controller dan View.
Login user yang akan dibuat kali ini adalah untuk memfasilitasi 4 tipe user, yaitu admin,teachers, students, dan alumni. Jadi hasil akhir pada bagian ini adalah bahwa setiap user bisa login dengan akun yang telah ditentukan dan user tersebut akan di arahkan ke halamannya masing2. Ketika seorang admin login dan berhasil maka dia akan dibawa ke halaman administrator, begitu pula untuk students,teachers, dan alumni.
Sebelum pembuatan model, ada beberapa library dan helper yang perlu di set autoload terlebih dahulu pada file autoload.php dalam folder application/config :
$autoload['libraries'] = array('database', 'session', 'form_validation');
$autoload['helper'] = array('url', 'form', 'text');
8. Membuat model users_model. Masuklah pada folder application/model kemudian buat file php dengan nama users_model.php. Kemudian ketik program seperti berikut:
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
class Users_model extends CI_Model {
var $tabel_name = 'users';
function __construct() {
parent::__construct();
}
function cek_user_login($username, $password) {
$this->db->select('*');
$this->db->where('username', $username);
$this->db->where('password', md5($password));
$query = $this->db->get($this->tabel_name, 1);
if ($query->num_rows() == 1) {
return $query->row_array();
}
}
}
?>
9. Masuklah pada folder controllers kemudian buat file users.php dan ketikkan kode program berikut ini:
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
class Users extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('Users_model');
}
function login() {
$this->form_validation->set_rules('username', 'username', 'required|xss_clean');
$this->form_validation->set_rules('password', 'password', 'required|xss_clean');
$this->form_validation->set_error_delimiters('', '<br/>');
if ($this->form_validation->run() == TRUE) {
$username = $this->input->post('username');
$password = $this->input->post('password');
$login_data = $this->Users_model->cek_user_login($username, $password);
if($login_data){
$session_data = array(
'user_id' => $login_data['id'],
'username' => $login_data['username'],
'type' => $login_data['type'],
'is_login' => TRUE
);
$this->session->set_userdata($session_data);
redirect('users/dashboard');
}else{
$this->session->set_flashdata('message','Login Gagal, Kombinasi username dan password salah.');
redirect('users/login');
}
}
$this->load->view('users/login');
}
function dashboard() {
$this->check_logged_in();
$this->load->view('users/dashboard');
}
function logout() {
$data = array
(
'user_id' => 0,
'username' => 0,
'type' => 0,
'is_login' => FALSE
);
$this->session->sess_destroy();
$this->session->unset_userdata($data);
redirect('users/login');
}
public function check_logged_in() {
if ($this->session->userdata('is_login') != TRUE) {
redirect('users/login', 'refresh');
exit();
}
}
public function is_logged_in() {
if ($this->session->userdata('logged_in') == TRUE) {
return TRUE;
} else {
return FALSE;
}
}
10. Masukklah pada folder views kemudian buat folder users dan di dalamnya buat dua file yaitu : login.php dan dashboard.php dengan kode program masing2 sperti berikut:
login.php
<h2>Login User</h2>
<hr/>
<?php if($this->session->flashdata('message')):?>
<?php echo $this->session->flashdata('message');?>
<?php endif;?>
<?php echo validation_errors();?>
<?php echo form_open('users/login') ?>
<br/>
Username : <?php echo form_input('username') ?><br/>
Password : <?php echo form_password('password'); ?><br/>
<?php echo form_submit('submit', 'Login') ?>
<?php echo form_close(); ?>
dashboard.php
<h2>Dashboard User</h2><br/>
Anda adalah :
<?php
if ($this->session->userdata('type') == 'admin'):
echo 'Admin';
elseif ($this->session->userdata('type') == 'teachers'):
echo 'Teachers';
elseif ($this->session->userdata('type') == 'students'):
echo 'Students';
elseif ($this->session->userdata('type') == 'alumni'):
echo 'Alumni';
endif;
?>
<br/>
<h3><strong><?php echo anchor('users/logout', 'Logout') ?></strong></h3>
Baiklaaah.. sampai disini kita sudah mengerjakan 1 buah modul untuk login user. Dan kita bisa melihat hasilnya dengan mengetikkan http://localhost/sekolahku/index.php/users/login . Apabila tidak ada kesalahan maka tampilanya akan seperti berikut ini:
Download Full Source Code | Demo Online
Sekian… selamat mencoba dan kita jumpa lagi di episode berikutnya….:-)
CodeIgniter 1 # Instalasi dan Konfigurasi


Recent Comments