Hallo bosan semuanya,blogger amatiran ini akan membuat tutorial bagaimana cara membuat simple login dengan menggunakan framework codeigniter , langsung saja 

Bahan - bahan yang di perlukan :

  1. xampp (sesuai selera boleh wamp,dll)
  2. text editor (saya pake sublime text)
  3. browser (the best performance menggunakan chrome/bebas)
  4. framework codeiniternya
Langsung saja ke tutorialnya :

  • Pertama download bahan-bahan diatas 
  • Install bahan-bahan
  • Nyalakan xampp
  • Membuat folder (latihan-ci)
  • Ekstrak file codeigiter nya ke htdocs (C:\xampp\htdocs atau sesuaikan dengan lokasi instalan xampp)
  • Buka text editor , dan buka folder (C:\xampp\htdocs\latihan-ci atau sesuaikan)
  • Persiapan selanjutnya membuat database dengan nama " hanyabosan " dan buat table dengan nama " tbl_pengguna " yang berisi 4 column (id,pengguna,kata_sandi,hak_akses) lebih cepatnya para bosan boleh import sql berikut ini :
-- phpMyAdmin SQL Dump
-- version 4.8.3
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Mar 31, 2019 at 12:39 PM
-- Server version: 10.1.36-MariaDB
-- PHP Version: 5.6.38

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--

-- Database: `hanyabosan`
--

-- --------------------------------------------------------


--

-- Table structure for table `tbl_pengguna`
--

CREATE TABLE `tbl_pengguna` (

  `id` int(11) NOT NULL,
  `pengguna` varchar(30) NOT NULL,
  `kata_sandi` varchar(64) NOT NULL,
  `hak_akses` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Dumping data for table `tbl_pengguna`
--

INSERT INTO `tbl_pengguna` (`id`, `pengguna`, `kata_sandi`, `hak_akses`) VALUES

(1, 'admin', 'd033e22ae348aeb5660fc2140aec35850c4da997', 'Admin'),
(2, 'member', '6467baa3b187373e3931422e2a8ef22f3e447d77', 'Member');

--

-- Indexes for dumped tables
--

--

-- Indexes for table `tbl_pengguna`
--
ALTER TABLE `tbl_pengguna`
  ADD PRIMARY KEY (`id`);

--

-- AUTO_INCREMENT for dumped tables
--

--

-- AUTO_INCREMENT for table `tbl_pengguna`
--
ALTER TABLE `tbl_pengguna`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;



Disini kita menggunakan sha1 untuk kata_sandinya , agar lebih aman , untuk isi data nya  :
  • pengguna : admin , kata sandi admin 
  • pengguna : member  , kata sandi : member
Langkah selanjutnya :

  • aktifkan library form_validation,session,database,simple_login dan juga helper di application/config/autoload.php


  • Hubungkan codeigniter dengan mySql konfigurasi di application/config/database.php (sesuaikan konfigurasi kalian)

  • Membuat controller form login di application/controllers/ (di baguskan untuk nama file di controllers diawali dengan Upper Case / Huruf besar) dengan nama Masuk.php

<?php defined('BASEPATH') OR exit('Tidak ada akses skrip langsung diizinkan');

class Masuk extends CI_Controller{


    public function index(){


        $validasi = $this->form_validation;

        $validasi->set_rules('pengguna', 'Pengguna', 'required',
                        array('required' => 'Pengguna Harus Di isi !'));
        $validasi->set_rules('kata_sandi', 'Kata Sandi', 'required',
                        array('required' => 'Kata Sandi Harus Di isi !'));

        $pengguna = $this->input->post('pengguna');

        $kata_sandi = $this->input->post('kata_sandi');

        if($validasi->run()){

                $this->simple_login->masuk($pengguna, $kata_sandi);
        }

        $data = array('title' => 'Halaman Login',

                     'judul' => 'Selamat Datang');
        $this->load->view('masuk' , $data);
    }

    public function keluar(){

        $this->simple_login->keluar();
    }
}

  • Membuat views form login di application/views/ (di baguskan untuk nama file di views diawali dengan Lower Case / Huruf kecil) dengan nama masuk.php
<!DOCTYPE html>
<html>
<head>
<title><?=$title ?></title>
</head>
<body>
<h1><?=$judul ?></h1>
<form action="<?php echo base_url('masuk') ?>" method="POST">
<?php
      echo validation_errors();
      if($this->session->flashdata('pesan')){
    echo $this->session->flashdata('pesan');
      }
   ?>
<table>
<tr>
<td>Pengunna</td>
<td><input type="text" name="pengguna"></td>
</tr>
<tr>
<td>Kata Sandi</td>
<td><input type="password" name="kata_sandi"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="MASUK"></td>
</tr>
</table>
</form>
</form>
</body>
</html>
  • oh iyah jangan lupa arahkan halaman awal controllers Masuk.php di application/config/routes.php
  • juga jangan lupa base_url() nya di atur dulu di application/config/config.php
  • ini juga jangan lupa lagi bosan wkwk , atur juga .htaccess nya di root directory
  • Membuat library di application/libraries/ dengan nama Simple_login.php
<?php defined('BASEPATH') OR exit('Tidak ada akses skrip langsung diizinkan');

class Simple_login{
    var $CI = NULL;
    public function __construct(){
        $this->CI =& get_instance();
    }

    public function masuk($pengguna, $kata_sandi){
        $kuery = $this->CI->db->get_where('tbl_pengguna', array(
                                            'pengguna' => $pengguna,
                                            'kata_sandi' => sha1($kata_sandi)        
                                        ));
        if($kuery->num_rows() == 1){
            $baris          = $this->CI->db->query('SELECT * FROM tbl_pengguna WHERE pengguna = "'.$pengguna.'"');
            $admin          = $baris->row();
            $id             = $admin->id;
            $pengguna       = $admin->pengguna;
            $hak_akses      = $admin->hak_akses;

            $this->CI->session->set_userdata('id', $id);
            $this->CI->session->set_userdata('pengguna',$pengguna);
            $this->CI->session->set_userdata('hak_akses',$hak_akses);
            redirect(base_url('beranda'));

        }else{
            $this->CI->session->set_flashdata('pesan','Pengguna/Kata Sandi Salah !');
            redirect(base_url().'masuk');
        }
        return false;
    }

    public function cek_login(){
        if($this->CI->session->userdata('pengguna') == '' && $this->CI->session->userdata('id')==''){
            $this->CI->session->set_flashdata('pesan','Silahkan Login Terlebih Dahulu !');
            redirect(base_url('masuk'));    
        }
    }

    public function keluar(){
        $this->CI->session->unset_userdata('id');
        $this->CI->session->unset_userdata('pengguna');
        $this->CI->session->unset_userdata('hak_akses');
        $this->CI->session->set_flashdata('pesan','Anda Berhasil Logout');
        redirect(base_url('masuk'));
    }

}

  • Membuat lagi controller di application/controllers/ dengan nama Beranda.php
<?php defined('BASEPATH') OR exit('Tidak ada akses skrip langsung diizinkan');

class Beranda extends CI_Controller{

    function __construct(){
parent:: __construct();
}

    public function index(){
        $data = array('title' => 'Halaman Beranda',
        'judul' => 'Selamat Datang');
        $this->load->view('beranda', $data);
    }
}

  • Membuat lagi view di application/views/ dengan nama beranda.php 
<?php $this->simple_login->cek_login(); ?>
<!DOCTYPE html>
<html>
<head>
<title><?=$title?></title>
</head>
<body>
<h1><?=$judul?></h1>
<?php if($this->session->userdata('hak_akses')== 'Admin'){ ?>
<h1>Anda Admin</h1>
<?php }elseif($this->session->userdata('hak_akses') == 'Member'){ ?>
<h1>Anda Member</h1>
<?php } ?>
<a href="<?=base_url('masuk/keluar') ?>">Keluar</a>
</body>
</html>

*Untuk multiusernya menggunakan kondisi $this->session->userdata('hak_akses')== 'Admin' (untuk admin) dan $this->session->userdata('hak_akses')== 'Member' (untuk member) 
  • jika sudah maka coba langsungg . ini halaman login nya :

  • Menampilkan validasi ketika salah pengguna/kata sandi

  • Halaman admin ketika sudah masuk


  • Halaman member ketika sudah masuk
  • Tampilan sesudah logout di kembalikan ke halaman login dan memunculkan validasi
  • Validasi ketika user belum login menerobos ke menu beranda
segitu aja dulu buat bosan , jika tidak mengerti / ada yang mau di tanyakan silahkan di komentar (jangan spam okee), jangan lupa juga share artikelnya. 

Membuat Simple Login Multiuser + validasi dengan Codeigniter