Membuat Sistem Login & Logout – CodeIgniter

Lebih Cepat Dibanding Native

Setelah membuat beberapa tutorial mengenai sistem login menggunakan PHP native, kali ini saya akan membagikan cara membuat sistem login menggunakan PHP framework yaitu CodeIgniter atau yang biasa disebut CI. Sebetulnya tidak berebda jauh, tapi tetap pasti ada perbedaan karena sudah berbeda ranah (native dan framework), tentunya (seharusnya) lebih menggunakan framework karena kita cukup memanggil class-class yang sudah disediakan.

Belum punya framework CodeIgniter ? Download dan lihat cara install nya disini.

Apache & MySQL

Hal yang pertama kali dilakukan yaitu memasang apache & sql controller terlebih dahulu misalnya XAMPP, kemudian jalankan bagian Apache dan MySQL nya. Setelah itu, tentu harus memastikan databasenya. Belum punya XAMPP ? Download dan lihat cara installnya disini. Setelah itu, pastikan table database untuk kredensial login sudah tersedia misalnya table user. Jika belum, mari kita buat terlebih dahulu.

Membuat Table Database “users”

Buka phpMyAdmin (localhost/phpmyadmin), jika belum memiliki database maka perlu membuat database nya terlebih dahulu (lihat disini bagaimana cara membuat database di phpMyAdmin). Disini saya akan menggunakan database yang sudah ada, namanya yaitu “tutorialcirio“. Maka di dalam database ini saya tinggal membuat table users.

Buka database tutorialcirio kemudian klik buat table baru (New), berinama users. Lengkapilah table ini seperti biasanya membuat table untuk kredensial atau akun misalnya mengandung username, email, password. Pastikan memiliki email/username dan password, karena ini yang akan digunakan untuk login.

 

NamaJenisKeterangan
idINTAuto Increment & Primary
usernameVarchar
emailVarchar
passwordVarchar

 

Contoh table users yang sederhana

Pastikan table ini sudah memiliki user, ini akan digunakan untuk praktek login nantinya. Misalnya akun admin dengan usernameadmin“, emailadmin@email.com” dan password123456“.

Konfigurasi Database

Sekarang kembali ke codingan, buka file databse.php di dalam application -> config pada folder project CI. Hanya memastikan saja, konfigurasi database nya sudah benar. Cari bagian hostname dan isi dengan “localhost“, username di isi dengan “root“, password biarkan kosong, database di isi dengan nama database (tutorialcirio). Ini adalah setelan default dari user database, jika sudah pernah membuat database dengan username lain dan diberikan password, maka silahkan isi sesuai aslinya.

Autoload

Hanya untuk memastikan saja, silahkan buka file autoload.php di dalam application -> config pada project CI lalu cari autoload[libraries] dan isi dengan session & database$autoload['libraries'] = array('session', 'database');karena pada sistem login akan bermain dengan session dan database. Pastikan juga pada autoload helper nya terisi form, misalnya seperti ini: $autoload['helper'] = array('url', 'file', 'form');

Encryption Key

Jangan lupa untuk memasukkan value didalam encryption key yang ada di dalam file config.php pada folder application -> config. Cari encryption key dan isi dengan value, misalnya encLog$config['encryption_key'] = 'encLog';ini diperlukan karena kita akan menggunakan session dalam proses login.

Views

Setelah mengkonfigurasi instalasi untuk sistem login, sekarang mulai membuat halaman login nya terlebih dahulu. Buatlah file baru didalam folder application -> views misalnya dengan nama login.php. Didalam login.php yang ada di views ini silahkan buat tampilan untuk halaman login, sederhananya saya hanya mencontohkan dengan formulir login saja supaya cepat. Misalnya seperti ini:

<?php
echo form_open('auth/login');
?>
<input type="text" name="username">
<input type="text" name="password">
<button type="button" name="submit">LOGIN</button>
</form>

Biarkan saja dulu seperti ini, sekarang kita lanjutkan ke controller dulu.

Controller

Buatlah file baru di dalam folder application -> controllers dengan nama yang diinginkan, misalnya auth.php. Salin kode berikut kedalam file auth.php:

<?php
class auth extends CI_Controller{

function __construct(){
  parent::__construct();
  $this->load->model('model_userLog');
}

  function login()
  {
    if(isset($_POST['submit'])){
      $username = $this->input->post('username');
      $password = $this->input->post('password');
      $berhasil = $this->model_userLog->login($username,$password);
      echo $berhasil;
    }else{
        $this->load->view('form_login');
    }
  }
}

Seperti yang kita ketahui, pada framework CodeIgniter kita memerlukan model untuk sistemnya. Lihat pada auth.php terdapat model dengan nama model_userLog. Mari kita buat model nya terlebih dahulu.

Buat file baru dengan nama model_userLog (atau nama apapun, tapi sesuaikan juga di controller auth.php nya) di dalam folder application -> models. Selanjutnya salin kode berikut didalam file model yang baru saja dibuat:

<?php
class model_userLog extends CI_Model{

function login($username,$password){
  $periksa = $this->db->get_where('users',array('username'=>$username,'password'=> md5($password)));
  if($periksa->num_rows()>0){
    return 1;
  }else{
    return 0;
  }
}
}

Di kodingan ini terdapat kondisi “jika kredensial yang digunakan untuk login memang benar ada pada database maka akan menampilkan angka 1 sedangkan jika tidak ada maka menampilkan 0” dan di file auth.php nya tadi kita tidak menentukan kemana user akan diarahkan jika berhasil / gagal login maka sistem akan membaca kondisi yang ada di dalam model ini. Ini hanya untuk contoh saja karena nantinya kita akan arahkan ke halaman yang diinginkan misalnya halaman dashboard akun.

Sampai sini, silahkan test terlebih dahulu kali aja ada kesalahan. Jika sudah benar, maka sistem login ini sudah berhasil. Nah, sekarang mari kita mulai mengarahkan user yang berhasil login dan user yang gagal login.

Redirect

Silahkan buka file auth.php, sebelumnya kita hanya menampilkan saja (echo $berhasil) tapi sekarang mari kita buat kondisi yang akan mengarahkan user yang berhasil login dan yang gagal login. Hapus echo $berhasil;dan tambahkan kondisi berikut:

if($berhasil == 1){
        $this->session->set_userdata(array('status_login'=>'sukses'));
        redirect('dasbor');
      }else{
        redirect('index.php/auth/login');
      }

Ini adalah contoh ketika user berhasil login dengan kredensial yang ada di database maka diarahkan ke dasbor tapi jika ternyata gagal maka tetap berada di halaman login. Silahkan tentukan halaman arahan yang diinginkan, simpan dan lihat hasilnya.

Logout

Setelah berhasil, tentu kita perlu membuat sistem logout nya juga supaya makin joooos. Karena disini belum ada halamannya dan belum ada tombol logoutnya, kita contohkan lewat function saja. Salin kode berikut setelah penutup isi function login:

function logout(){
    $this->session->sess_destroy();
    redirect('');

Nama function nya saya contohkan dengan logout, maka sekarang isi dari file auth.php nya seperti ini:

<?php
class auth extends CI_Controller{

function __construct(){
  parent::__construct();
  $this->load->model('model_userLog');
}

  function login()
  {
    if(isset($_POST['submit'])){
      $username = $this->input->post('username');
      $password = $this->input->post('password');
      $berhasil = $this->model_userLog->login($username,$password);
      if($berhasil == 1){
        $this->session->set_userdata(array('status_login'=>'sukses'));
        redirect('dasbor');
      }else{
        redirect('index.php/auth/login');
      }
    }else{
        $this->load->view('form_login');
    }
  }
  function logout(){
    $this->session->sess_destroy();
    redirect('');
  }
}

Silahkan tentukan saja sesuai keinginan. redirect nya pun silahkan tentukan kemana ingin mengarahkan user jika berhasil logout. Jika di kosongkan seperti itu maka akan diarahkan ke halaman beranda (home).

Masih bingung ? Lihat : Video tutorial cara membuat sistem login & logout CodeIgniter.

Sekarang, silahkan coba login dengan kredensial yang benar hingga diarahkan ke halaman dasbor tadi dan coba function logout. Tadi login di localhost/tutorialcirio/index.php/auth/login maka sekarang coba logout dengan merubah function login menjadi logout localhost/tutorialcirio/index.php/auth/logout.

Selamat mencoba !

Lihat Post Lainnya:
Komentar
Memuat...