Anda di halaman 1dari 7

BAB 8

Login Authentikasi

Login Authentikasi digunakan apabila kita ingin membatasi hak akses


pengguna. Disini kita akan belajar untuk membatasi hak akses untuk halaman
Administrator, tapi untuk login Member bisa juga loh..
Sebelumnya buat tabel terlebih dahulu dengan nama user didalam database
latihanci, isikan dengan 4 field. Adapun spesifikasinya sebagai berikut :
Field Type Length PrimaryKey Autoincreamen
id INT 11 * *t
username Varchar 32
pass Varchar 32
nama Varchar 50

Setelah isikan data pada tabel tersebut melalui tab INSERT. Lihat contoh
datanya pada gambar 7.1.

Gambar 8.1. Data tabel user


Sengaja kita tidak meng-enkripsi password, dengan tujuan untuk mempermudah
Anda dalam meringkas pembuatan teknik Login.
Buat file model dengan nama mlogin.php dan simpan dalam folder
system/application/models, untuk kemudian isikan skrip berikut :

1
<?php
class Mlogin extends Model {

function cekdb() {
$username = $this->input->post('username');
$pass = $this->input->post('pass');

$this->db->where('username', $username);
$this->db->where('pass', $pass);
$query = $this->db->get('user');
return $query->result();
}
}
?>

Penjelasan Kode :
 class Mlogin extends Model , skrip deklarasi untuk menciptakan
class model bernama mlogin.
 function cekdb() , skrip untuk membuat function cekdb yang
digunakan untuk mencek terhadap database berdasarkan username dan
password yang dikirimkan.
 $username = $this->input->post('username'); , membuat
variabel $username untuk menampung parameter POST username dari
form.
 $pass = $this->input->post('pass'); , membuat variabel $pass
untuk menampung parameter POST password dari form.
 $this->db->where('username', $username); , untuk menyeleksi
filter data berdasarkan username.
 $this->db->where('pass', $pass); , untuk menyeleksi filter data
berdasarkan password. Jadi jika digabungkan akan menghasilkan kode
:

Where username=’$username’ and pass=’$pass’;

 $query = $this->db->get('user'); , untuk mengambil seluruh data


pada tabel user. Karena kita telah membuat aturan pengambilan data
berdasarkan username dan password, maka jika digabungkan akan
menghasilkan kode berikut :

SELECT * from user WHERE username=’$username’ and


pass=’$pass’;

2
 return $query->result(); , skrip untuk mengembalikan nilai hasil
dari $query.

Buat file controller dengan nama clogin.php dan letakkan dalam folder
system/application/controllers. Adapun skripnya sebagai berikut :

<?php
class Clogin extends Controller {

function Clogin() {
parent::Controller();
$this->load->model('mlogin');
$this->load->library('session');
}

function index() {
$this->load->view('vlogin');
}
}
?>

Penjelasan Kode :
 class Clogin extends Controller , skrip deklarasi untuk
menciptakan class controller Clogin.
 function Clogin() , function ini merupakan function constructor.

 $this->load->model('mlogin'); , skrip untuk me-load file model


bernama mlogin.php.
 $this->load->library('session'); , skrip untuk me-load library
session.
 function index() , deklarasi untuk membuat function index, function
ini yang akan pertama kali kita akses untuk menampilkan form login.
 $this->load->view('vlogin'); , skrip untuk me-load file view
bernama vlogin.php.

Berdasarkan function index tersebut, dilakukan load terhadap file view bernama
vlogin.php, oleh karena itu, kita buat file dengan nama tersebut dan letakkan
dalam folder system/application/views. Adapun skripnya sebagai berikut :

<h4> Login User </h4>

<?php echo form_open('clogin/usermasuk'); ?>


<table>
<tr>

3
<td> Username </td>
<td> : <?php echo form_input('username'); ?> </td>
</tr>
<tr>
<td> password </td>
<td> : <?php echo form_password('pass'); ?> </td>
</tr>
<tr>
<td> <?php echo form_submit('submit', 'Login'); ?> </td>
</tr>
</table>
<?php echo form_close(); ?>

Penjelasan Kode :
 <?php echo form_open('clogin/usermasuk'); ?> , skrip untuk
membuka form, dimana form ini akan diarahkan kepada
clogin/usermasuk.
 <?php echo form_input('username'); ?> , membuat input teks
bernama username. Lihat pada penanganan Form. Skrip ini berlaku
untuk kode yang mirip dibawah.
 <?php echo form_close(); ?> , skrip untuk menutup form.

Pada form, diarahkan kepada function bernama usermasuk. Oleh karena itu,
tambahkan function usermasuk didalam file controller berikut :

<?php
class Clogin extends Controller {

function Clogin() {
parent::Controller();
$this->load->model('mlogin');
$this->load->library('session');
}

function index() {
$this->load->view('vlogin');
}

function cekuser() {
$data['username'] = $this->input->post('username');
$data['pass'] = $this->input->post('pass');
$data['hasil'] = $this->mlogin->cekdb();

if($data['hasil'] == null) {
return "no";
}
else {
return "yes";
}

4
}

function usermasuk() {
if($this->cekuser() == "yes") {
$data['username'] = $this->input-
>post('username');
$newdata = array('username' => $data['username'],
'status' => 'ok');
$this->session->set_userdata($newdata);
$data['tampil'] = $this->mlogin->cekdb();
$this->load->view('loginsukses', $data);
}
else {
echo "Login gagal";
}
}
}
?>

Penjelasan Kode :
 function cekuser() , untuk membuat function cekuser.

 $data['hasil'] = $this->mlogin->cekdb(); , memanggil function


cekdb yang terdapat dalam class model mlogin, kemudian ditampung
dalam variabel $data.
 function usermasuk(), skrip untuk membuat function usermasuk.

 if($this->cekuser() == "yes") , jika cek user menghasilkan nilai


yes, maka akan dilakukan sesi selanjutnya.
 $data['tampil'] = $this->mlogin->cekdb(); , mengakses function
cekdb dalam class model mlogin, kemudian menampungnya dalam
variabel $data.
 $this->load->view('loginsukses', $data); , me-load file view
bernama loginsukses.php dimana telah mengandung sebuah variabel
$data.

 else { , jika cekuser menghasilkan nilai no, maka akan ditampilkan


pesan “Login Gagal”.

Sebagai langkah akhir, buat file view bernama loginsukses.php kemudian


letakkan dalam folder system/application/views, adapun skripnya sebagai
berikut:

<html>
<head>

5
<title> Login Sukses </title>
</head>
<body>

<?php foreach($tampil as $row): ?>


<h4> Anda Login sebagai <b> <?php echo $row->nama; ?> </b> </h4>
<?php endforeach; ?><br>
Anda berhasil login <br>
<a href="<?php echo site_url(); ?>/clogin/logout"> Logout </a>

</body>
</html>

Penjelasan Kode :
 <?php foreach($tampil as $row): ?> , untuk mengulang variabel
bernilai array ke dalam satuan record $row.
 <?php echo $row->nama; ?> , menampilkan field nama dari tabel
user.
 <a href="<?php echo site_url(); ?>/clogin/logout"> Logout
</a> , membuat link Logout.

Buka web browser Anda dan ketikkan url


http://localhost/codeigniter/index.php/clogin. maka akan tampil form login
sepeti pada gambar 8.2. kemudian isikan username dan password sesuai dengan
yang tersedia dalam tabel user yang telah dibuat.

Gambar 8.2. Form login

6
Gambar 8.3. Login berhasil
Ada satu function yang belum kita buat. Apa hayoo.. ? that’s right brother,
function logout!... yang digunakan apabila kita ingin keluar dari halaman
tersebut. tambahkan function logout pada file controller clogin.php berikut :

function logout() {
$this->session->sess_destroy();
echo "Anda telah keluar (logout)";
}

Refresh/reload pada web browser, kemudian klik link Logout, maka Anda akan
keluar dari halaman user tersebut. lihat gambar 8.4.

Gambar 8.4. Logout berhasil

Anda mungkin juga menyukai