Penulisan kali ini akan membahas proses pembuatan login untuk user (pendaftar kursus). Nantinya, user akan meng-input username dan password untuk bisa masuk ke dashboard user.
Di artikel sebelumnya, penulis telah membuat database bernama inwepo dengan nama table tb_pengguna yang nantinya akan digunakan untuk melakukan verifikasi login.
Baca juga:
- Tutorial Membuat Web Pendaftaran Kursus Menggunakan Codeigniter: Menu Workshop [Bagian 3]
- Tutorial Membuat Web Pendaftaran Kursus Menggunakan Codeigniter: Table dan Database [Bagian 4]
- Membuat Website Kursus Menggunakan Codeigniter: Dashboard User [Bagian 5]
PEMBUATAN VERIFIKASI LOGIN USER
1. Membuat folder bernama user di dalam controllers.
2. Selanjutnya membuat file Login.php di dalam folder C:\xampp\htdocs\inwepo\application\controllers\user.
<?php
class login extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->model('m_login');
$this->load->library(array('form_validation','session'));
$this->load->database();
$this->load->helper('url');
}
public function index(){
$session = $this->session->userdata('Login');
if($session !='berhasil'){
$this->load->view('header');
$this->load->view('home');
$this->load->view('footer');
}else{
redirect('user/welcome');
}
}
public function login_form(){
if ($this->session->userdata('Login')== 'berhasil') {
redirect('user/welcome');
}
$this->form_validation->set_rules('username', 'Username', 'required|trim');
$this->form_validation->set_rules('npm', 'NPM', 'required|trim');
$this->form_validation->set_error_delimiters('<span class="error">', '</span>');
if($this->form_validation->run()==FALSE){
$this->load->view('header');
$this->load->view('home');
$this->load->view('footer');
}else{
$username = $this->input->post('username');
$npm = $this->input->post('npm');
$cek= $this->m_login->getPengguna($username, $npm,1);
if($cek->num_rows() == 1) {
foreach ($cek->result() as $c) {
$data_user['Login'] = 'berhasil';
$data_user['username'] = $c->username;
$data_user['id_user'] = $c->id_user;
$data_user['nama'] = $c->nama;
$data_user['kelas'] = $c->kelas;
$data_user['level'] = $c->level;
}
if($data_user['level']==1){
$this->session->set_userdata($data_user);
redirect('user/welcome');
} else {
echo " <script>
alert('Gagal Login: Cek username dan password anda!');
history.go(-1);
</script>";
}
}else{
echo " <script>
alert('Gagal Login: Cek username dan password anda!');
history.go(-1);
</script>";
}
}
}
}
?>
3. Membuat file bernama M_login.php di dalam folder models.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class m_login extends CI_Model{
public $table = 'tb_pengguna';
function cek_user($username,$npm)
{
$query = $this->db->get_where($this->tbl,array('username' => $username, 'npm' => $npm));
$query = $query->result_array();
return $query;
}
function ambil_user($username)
{
$query = $this->db->get_where($this->tbl, array('username' => $username));
$query = $query->result_array();
if($query){
return $query[0];
}
}
function ambil($id){
return $this->db->get_where('tb_pengguna', array('id_user'=>$id));
}
public function getPengguna($username, $npm){
$this->db->select('*');
$this->db->from('tb_pengguna');
$this->db->where('username', $username);
$this->db->where('npm', $npm);
$query = $this->db->get();
return $query;
}
public function data($username){
$this->db->select('*');
$this->db->where('username', $username);
$query = $this->db->get('tb_pengguna');
return $query->row();
}
function updateProfile($data,$id_user){
$this->db->where('id_user',$id_user);
$this->db->update('user',$data);
}
}
4. Jangan lupa untuk memanggil model M_login di dalam controller Welcome.php yang terdapat di C:\xampp\htdocs\inwepo\application\controllers\user. Berikut ini perintahnya:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model(array('m_login'));
$this->load->database();
}
}
Nah sekarang coba buka URL http://localhost/inwepo/ lalu klik menu Login. Kemudian input username: yunan.helmi.al.anbarry (sesuai dengan record di dalam table tb_pengguna). Untuk password disini penulis menggunakan NPM (59413587).

Di artikel sebelumnya penulis sudah menjelaskan tentang pembagian session untuk Login yaitu berdasarkan Level. Jadi jika level bernilai 1 maka adalah user, sedangkan jika bernilai 2 maka itu adalah session untuk admin.
Ok, nantikan artikel selanjutnya untuk membahas function session agar bisa memunculkan usernme supaya data yang masuk hanya khusus untuk pengguna tersebut.