Langsung ke konten utama

Membuat Sistem Login & Logout – CodeIgniter

Membuat Sistem Login & Logout – CodeIgniter

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.

Nama Jenis Keterangan
id INT Auto Increment & Primary
username Varchar
email Varchar
password Varchar

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 !

Komentar

Postingan populer dari blog ini

Pemograman R Studio

  Metode Numerik Menggunakan R Pengantar Gambaran Isi Buku Cara Berkontribusi dalam Buku Ini Ucapan Terima Kasih Lisensi 1  Bahasa Pemrograman R 1.1  Sejarah R 1.2  Fitur dan Karakteristik R 1.3  Kelebihan dan Kekurangan R 1.4  RStudio 1.5  Menginstall R dan RStudio 1.6  Working Directory 1.6.1  Mengubah Lokasi Working Directory 1.6.2  Mengubah Lokasi Working Directory Default 1.7  Memasang dan Mengaktifkan Paket R 1.8  Fasilitas Help 1.8.1  Mencari Help dari Suatu Perintah Tertentu 1.8.2  General Help 1.8.3  Fasilitas Help Lainnya 1.9  Referensi 2  Kalkulasi Menggunakan R 2.1  Operator Aritmatik 2.2  Fungsi Aritmetik 2.3  Operator Relasi 2.4  Operator Logika 2.5  Memasukkan Nilai Kedalam Variabel 2.6  Tipe dan Struktur Data 2.7  Vektor 2.7.1  Membuat vektor 2.7.2  Missing Values 2.7.3  Subset Pada Vektor 2.7.4  Operasi Matematis Menggunakan Vektor ...

MIGRASI DATABASE DARI SQLite KE MySQL (Part-1)

  MIGRASI DATABASE DARI SQLite KE MySQL (Part-1) Pemakaian yang mana lebih baik dalam membuat database_musik di mysql atau Exel yang cell Cell pada tabel dilakukan operasi fungsi logika matematika. Untuk keperluan membuat database atau tabel yang memerlukan operasi logika atau matematika, seperti yang Anda sebutkan, MySQL jauh lebih baik dibandingkan Excel. Berikut adalah beberapa alasan mengapa MySQL lebih disarankan: 1. **Kapasitas dan Skalabilitas**: MySQL dapat menangani jumlah data yang jauh lebih besar daripada Excel. Ini penting jika Anda berencana untuk menyimpan banyak data atau melakukan operasi yang kompleks di atas data tersebut. 2. **Kekuatan dan Kinerja**: MySQL dirancang khusus untuk memproses query dan operasi basis data dengan cepat. Ini termasuk operasi matematika, logika, dan agregasi data yang umum dilakukan dalam aplikasi. 3. **Fleksibilitas Struktur**: Dalam MySQL, Anda dapat dengan mudah menentukan struktur tabel yang kompleks dan melakukan kueri yang lebih r...

Cara Menjadi Pengembang Front End – Keterampilan Front End Web Dev

  Menyumbangkan Belajar coding —  kurikulum 3.000 jam gratis 10 JUNI 2022 / #PENGEMBANGAN UJUNG DEPAN Bagaimana Menjadi Pengembang Front End – Keterampilan Front End Web Dev Joel Olawanle Beberapa profesional dengan bayaran tertinggi di dunia adalah pengembang front-end.  Mereka menggunakan pengetahuan dan bakat mereka untuk merancang situs web yang menarik dan ramah pengguna. Pengembang front-end tidak memerlukan gelar atau sertifikat sekolah untuk bekerja.  Sebaliknya, mereka harus memahami dasar-dasar pengembangan front-end, bahasa pemrograman, dan kerangka kerja pengembangan front-end. Dalam panduan ini, Anda akan belajar bagaimana menjadi pengembang front end dengan terlebih dahulu memahami apa yang dimaksud dengan pengembangan front end, keterampilan teknis dan soft skill yang diperlukan, bahasa dan kerangka kerja yang tersedia, dan beberapa langkah untuk memulai. Seorang pengembang front-end di Amerika Serikat dapat memperoleh rata-rata $86,178 per tahun, menu...