Cara Cepat Membuat Login dengan Codeigniter


Saat ini untuk fitur pengamanan dalam sebuah website sangatlah dibutuhkan agar data yang terdapat dalam sebuah sistem aman dan terhindar dari tangan-tangan yang tidak bertanggung jawab. Salah satu cara untuk mengamankan data tersebut adalah dengan cara membuat sebuah form atau halaman yang berfungsi untuk mencegah seseorang yang tidak diinginkan mengakses halaman krusial yang terdapat dalam sebuah sistem. Pada umumnya halaman tersebut dinamakan sebagai halaman login. Lalu, bagaimana caranya untuk membuat halaman login tersebut? Berikut akan saya jabarkan bagaimana cara membuat login dengan codeigniter.


Persiapan Membuat Login dengan Codeigniter

Mungkin teman-teman bertanya mengapa saya menggunakan Codeigniter? Dalam hal ini saya secara pribadi memang lebih nyaman menggunakan framework ini, untuk lebih jelasnya kenapa saya menggunakan codeigniter, dapat dilihat pada artikel Kenalan Dengan Codeigniter Yuk !!. Adapun hal beberapa hal yang harus dipersiapkan dalam membuat login dengan Codeigniter adalah sebagai berikut ini.
  1. Menginstall xampp (kalau sudah ada lewatkan saja)
  2. Membaca artikel Cara Super Mudah Menjalankan Codeigniter 3 (Kalau sudah bisa lewatkan saja)
Untuk saat ini 2 hal tersebut sangatlah penting, kemudian yang harus dilakukan adalah menjalankan xampp dan mengaktifkan apache dan mysql. Setelah itu buka browser (chrome/mozilla/lainnya) masuk ke url localhost/phpmyadmin dan buatlah database "login" tanpa tanda kutip. Setelah terbuat, klik pada database login dan pilih sql pada tab diatas. Kemudian masukkan script berikut untuk membuat tabel beserta dengan dummy datanya.


--
-- Database: `login`
--

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

--
-- Table structure for table `admin`
--

CREATE TABLE IF NOT EXISTS `admin` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `admin`
--

INSERT INTO `admin` (`id`, `username`, `password`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3');

Disini kita melakukan enkripsi atau pengamanan terhadap pasword menggunakan md5 dimana username dan passwordnya adalahh admin. Maka hasilnya akan menjadi seperti berikut ini.



Pengaturan pada Codeigniter dalam Membuat Login dengan Codeigniter

Selanjutnya adalah pengaturan dibagian codeigniter. Dalam membuat login dengan codeigniter, setelah mendownload codeigniter, silahkan ekstrak folder tersebut di htdocs yang berada pada tempat anda menginstall xampp (biasaya di C:/xampp/htdocs)  dan ganti nama foldernya menjadi 'login' tanpa tanda kutip. Pada folder login, buka file yang berada pada application/config/autoload.php kemudian
  • Pada autoload.php perhatikan $autoload['libraries'] dan $autoload['helper'] isikan seperti berikut ini :

$autoload['libraries'] = array('database','session');
$autoload['helper'] = array('url');

Hal ini digunakan untuk mengaktifkan fitur session dan database yang terdapat dalam codeigniter. Fitur session disini digunakan untuk menyimpan, apakah pengguna sudah melakukan login atau belum. kemudian fitur database disini digunakan untuk melakukan koneksi dan mengambil data yang terdapat dalam database.

Kemudian buka file yang terdapat pada application/config/config.php kemudian
  • Pada config.php perhatikan $config['base_url'] dan isikan seperti berikut ini :
$config['base_url'] = '/login/';

Hal ini digunakan agar "login" adalah alamat yang dituju ketika kita ingin mengakses nanti.

Kemudian buka file yang terdapat pada application/config/routes.php kemudian
  • Pada routes.php perhatikan $route['default_controller'] dan isikan seperti berikut ini :
$route['default_controller'] = 'login';

Hal ini digunakan ketika mengakses pertama kali, controller yang diakses adalah login.php.

Setelah ini yang harus dilakukan adalah menghubungkan antara codeigniter dengan MySQL, dengan cara membuka file yang terdapat pada application/config/database.php kemudian
  • Pada database.php perhatikan $db['default'] dan isikan seperti berikut ini :

'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'login',

isikan datanya seperti diatas, username defaultnya adalah root, kemudian kalau teman-teman memberikan password pada phpmyadmin maka isikan password tersebut jika tidak kosongkan seperti diatas. Kemudian untuk database, isikan nama database seperti yang sudah dibuat sebelumnya. Setelah ini kita akan masuk ke dalam inti pembuatan login dengan codeigniter.

Mulai Membuat Login dengan Codeigniter

Yang kita lakukan diatas hanyalah persiapan dalam membuat login dengan codeigniter. Ada 3 hal penting yang akan kita lakukan dalam tutorial berikutnya, yaitu membuat controller, model, dan view. Controller digunakan untuk membuat fungsi untuk menampilkan, memverifikasi, dan memberikan fungsi terhadap sistem. Model digunakan untuk mengambil data yang terdapat dalam database dan melemparkan data tersebut ke controller. Terakhir yaitu View digunakan untuk memberikan tampilan agar dapat dilihat dan dimengerti oleh pengguna.

Controller

Seperti yang sudah dijelaskan diatas, controller digunakan untuk membuat fungsi, letaknya ada di application/controller, jadi ketika teman-teman ingin membuat sebuah fungsi silahkan dibuat di dalam folder ini. Untuk saat ini buatlah sebuah file .php dengan nama "Login.php" (tanpa tanda kutip dan usahakan untuk selalu menggunakan huruf kapital, karna ada beberapa OS yang case-sensitive yang membuat file tidak terbaca). Buka file Login.php dan isi seperti berikut ini.


<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
    function __construct(){
        parent::__construct();
        $this->load->model('model_login');
    }
    public function index(){
        $session = $this->session->userdata('login'); 
        if($session != 'login'){
            $this->load->view('view_login');
        }else{
            redirect('admin');
        }
    }
    public function cek_login() {
        $username = $this->security->xss_clean($this->input->post("username"));
        $password = $this->security->xss_clean($this->input->post("password"));
        $cek = $this->model_login->cek_user($username,md5($password));
        if(count($cek) == 1){
            $this->session->set_userdata(array(
                'login'         => "login",
                'username'      => $cek[0]['username'],
            ));
            redirect('admin');
        }else{
            echo "Username atau Password Salah !";
        }
    }
    public function logout(){
        $this->session->sess_destroy();
        redirect('login','refresh');
    }
}

Fungsi __construct()

Dalam controller diatas 4 fungsi, yang pertama yaitu __construct(). __construct() adalah fungsi yang pertama kali dijalankan ketika controller diakses, pada saat ini fungsi ini digunakan untuk memanggil model dimana model yang dipanggil adalah model_login yang nanti akan kita buat.

Fungsi index()

Index() adalah fungsi kedua yang dijalankan ketika controller login diakses, pada fungsi ini saya membuat sebuah kondisi dimana ketika pengguna sudah login, maka ia tidak perlu lagi melakukan login ulang dan langsung masuk ke halaman login, akan tetapi ketika si pengguna belum melakukan login, maka ia akan masuk ke halaman login untuk memasukkan username dan password yang nantinya akan diverifikasi oleh sistem.

Fungsi cek_login()

Fungsi ini digunakan untuk melakukan verifikasi dan autentifikasi terhadap username dan password yang dimasukkan oleh pengguna, dimana disini saya menambahkan fungsi xss_clean yang berfungsi untuk meningkatkan keamanan dari tangan-tangan jahil yang tidak diinginkan. Pada fungsi ini akan melihat apakah pengguna memang pengguna yang sah atau tidak. Ketika ia salah memasukkan username atau pasword maka akan muncul peringatan. Ketika benar, maka otomatis ia akan masuk ke halaman admin.

Fungsi logout()

Fungsi ini digunakan untuk keluar dari sistem, ketika pengguna menggunakan fungsi ini maka otomatis ia akan keluar dari sistem dan diharuskan untuk login ulang agar dapat masuk lagi ke dalam sistem.

Kemudian masih di folder yang sama buatlah file .php dengan nama "Admin.php" file ini berfungsi untuk mengumpulkan fungsi yang terdapat pada admin. buka file Admin.php dan isi seperti berikut ini.


<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller{
 function __construct(){
  parent::__construct();
 }
 function index(){
  $this->load->view('view_admin');
 }
}

Dalam file admin.php pada saat ini hanya berfungsi untuk menampilkan file view_admin.php yang terdapat pada folder view yang nanti akan kita buat.

Model

Sama halnya seperti controller, tetapi saat ini buka application/model dan buatlah file .php dengan nama "Model_login.php" (tanpa tanda kutip dan gunakan juga huruf kapital). Kemudian buka file Model_login.php dan isikan seperti berikut ini.


<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Model_login extends CI_Model{
    function __construct(){
        parent::__construct();
    }
    function cek_user($username,$password){
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $query = $this->db->get('admin');
        return $query->result_array();
    }
}

Dalam file model_login.php ini terdapat 2 fungsi akan tetapi fungsi yang digunakan hanya fungsi cek_user(), fungsi ini membutuhkan input / masukan berupa username dan password. Kemudian dari masukan inilah akan dilakukan pengecekan apakah masukan tersebut ada dalam database atau tidak.

View

Setelah itu, masuk ke folder application/view dan nanti kita akan membuat 2 buah file yaitu "view_login.php" dan "view_admin.php" tanpa tanda kutip. Untuk yang pertama kita buat dulu view_login.php buka file tersebut dan isi seperti berikut ini.


<!DOCTYPE html>
<html>
<head>
 <title>Membuat Login Dengan CodeIgniter | https://sugrahaku.com</title>
</head>
<body>
 <form action="<?php echo base_url('index.php/login/cek_login'); ?>" method="post" style="width:500px; margin:auto; text-align:center">
  <h1>Login <br/> https//sugrahaku.com</h1>
  <table style="width:100%">
   <tr>
    <td>Username</td>
    <td><input type="text" name="username" style="width:100%"></td>
   </tr>
   <tr>
    <td>Password</td>
    <td><input type="password" name="password" style="width:100%"></td>
   </tr>
   <tr>
    <td></td>
    <td><button type="submit" value="Login">Login</button></td>
   </tr>
  </table>
 </form>
</body>
</html>

File ini digunakan untuk membuat sebuah form yang nantinya digunakan untuk memasukkan username dan password oleh pengguna. Kemudian kita buat file yang kedua yaitu "view_admin.php" buka file tersebut dan isi seperti berikut ini.


<!DOCTYPE html>
<html>
<head>
 <title>Membuat Login Dengan CodeIgniter | https://sugrahaku.com</title>
</head>
<body>
 <h1>Akhirnya berhasil !</h1>
 <h2>Halo, <?php echo $this->session->userdata("username"); ?>. Ciyee, akhirnya bisa :p</h2>
 <a href="<?php echo base_url('index.php/login/logout'); ?>">Logout</a>
</body>
</html>

file diatas digunakan untuk memperlihatkan bagaimana halaman admin ketika pengguna sudah berhasil untuk login. Dengan ini sudah selesai untuk bagian codingnya, ayo silahkan dicoba.


Dengan begini selesai sudah tutorial Cara Cepat Membuat Login dengan Codeigniter. Semoga apa yang sudah saya jelaskan diatas dapat dimengerti, dipahamin dan yang pastinya bermanfaat. Jika ada pertanyaan atau ingin file yang sudah jadi bisa dituliskan didalam komentar. Sekian dan Terima kasih.

4 Komentar untuk "Cara Cepat Membuat Login dengan Codeigniter"

  1. Gak Bisa Kebukak Halaman Loginnya gan :
    Error :
    404 Page Not Found

    The page you requested was not found.

    BalasHapus
  2. coba buka dengan localhost/index.php/login

    BalasHapus
  3. Mantap gan ..
    Simple banget

    BalasHapus

Jika ada pertanyaan, Mari kita diskusikan :)

Note : Komentar yang mengandung "SARA, Pornografi, Merugikan, Tidak Sopan, Berkata Kasar, Memasukan Link Aktif" akan saya hapus untuk menghindari SPAM. Berkomentarlah dengan komentar yang RELEVAN dengan artikel.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel