Please enable JavaScript!
Bitte aktiviere JavaScript!
S'il vous plaît activer JavaScript!
Por favor,activa el JavaScript!
antiblock.org

 |  | 
Anda ingin membuat website?
Untuk Anda yang sedang mencari orang untuk jasa pembuatan website, Saya akan bantu buatkan aplikasi sesuai kebutuhan Anda. Segera hubungi : [email protected] Selengkapnya tentang profil saya klik www.rizaldimaulidia.com.

Codeigniter

Cara Mudah Membuat Form Login dengan Codeigniter dan MySQL

img-responsive

Beberapa waktu yang lalu saya sudah membuat catatan / tutorial mengenai Cara Mudah Membuat Form Login dengan Session PHP. Berbeda dengan tutorial yang akan kita bahas kali ini, pada tutorial ini kita akan membuat form login dengan menggunakan Framework Codeigniter 3 dan Database MySQL. Tentunya dalam tutorial ini kita akan menggunakan yang namanya “Session“. Apa itu Session? Session dapat menyimpan sebuah informasi dimana informasi tersebut bisa kita akses pada semua halaman website yang kita buat. Secara default, Session akan terhapus sampai Anda menutup browser. Jadi intinya Session ini bisa menyimpan informasi yang bisa di akses pada semua halaman sampai browser nya ditutup.

Akun User
Saya telah menyiapkan 2 data user untuk tutorial ini, diantaranya :

  1. User Admin
    Username : rizaldi
    Password : 12345678
  2. User Operator
    Username : siska
    Password : siska123

DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :

  1. Download Framework Codeigniter, klik link berikut : download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  2. Buat sebuah folder baru dengan nama login_ci, lalu simpan pada folder xampp/htdocs/.
  3. Ekstrak codeigniter_v3.7z yang telah di download tadi.
  4. Copy semua file dan folder yang ada di folder codeigniter_v3 yang telah di ekstrak tadi ke folder xampp/htdocs/login_ci/.


STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama user. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Mudah Membuat Form Login dengan Codeigniter dan MySQL

    CREATE TABLE `user` (
       `id` int(11) NOT NULL AUTO_INCREMENT,
       `username` varchar(20) NOT NULL,
       `password` varchar(50) NOT NULL,
       `nama` varchar(200) NOT NULL,
       PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1

STEP 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, pertama kita harus melakukan konfigurasi terlebih dahulu pada framework codeigniternya.

  1. Buka folder xampp/htdocs/login_ci/application/config/
  2. Buka file config.php
    Cari kode berikut $config['base_url'] = '';Ubah kode tersebut jadi seperti ini :

    $config['base_url'] = 'http://localhost/login_ci/';

    Kode diatas digunakan untuk menset baseurlnya.
    Lalu simpan file tersebut.

  3. Buka file autoload.php
    Cari kode berikut ini :

    $autoload['libraries'] = array();
    $autoload['helper'] = array();

    Ubah jadi seperti ini :

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

    Kode diatas digunakan untuk memuat (menload) class database dan url.
    Lalu simpan file tersebut.

  4. Buka file routes.php
    Cari kode berikut ini :

    $route['default_controller'] = 'welcome';

    Ubah jadi seperti ini :

    $route['default_controller'] = 'auth';

    Kode diatas digunakan untuk menset controller mana yang akan diload pertama kali. Secara default, Codeigniter telah menset default controller yaitu welcome. Disini kita set default controller menjadi auth.
    Lalu simpan file tersebut.

  5. Buka file database.php
    Cari kode berikut ini :

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

    Ubah jadi seperti ini :

    'hostname' => 'localhost', // Nama host
    'username' => 'root', // Username
    'password' => '', // Jika menggunakan password isi, jika tidak kosongkan saja
    'database' => 'mynotescode', // Nama databasenya

    Kode diatas digunakan untuk koneksi ke database.
    Lalu simpan file tersebut.


STEP 4 – BUAT MODEL
Langkah selanjutnya adalah membuat modelnya. Buat sebuah file dengan nama UserModel.php, Lalu simpan pada folder xampp/htdocs/login_ci/application/models/. Berikut kodenya :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class UserModel extends CI_Model {
    
    public function get($username){
        $this->db->where('username', $username); // Untuk menambahkan Where Clause : username='$username'
        $result = $this->db->get('user')->row(); // Untuk mengeksekusi dan mengambil data hasil query

        return $result;
    }
}

Fungsi get() berguna untuk melakukan query ke tabel user berdasarkan username yang diinput pada form login. Fungs ini akan menghasilkan query sebagai berikut : SELECT * FROM user WHERE username=’$username’.


STEP 5 – BUAT CONTROLLER AUTH
Pada tahap ini, kita akan membuat controller untuk proses login dan logout. Buat sebuah file dengan nama Auth.php, lalu simpan pada folder xampp/htdocs/login_ci/application/controllers/. Berikut ini kodenya :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Auth extends CI_Controller {

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

    $this->load->model('UserModel');
  }

  public function index(){
    if($this->session->userdata('authenticated')) // Jika user sudah login (Session authenticated ditemukan)
      redirect('page/welcome'); // Redirect ke page welcome

    $this->load->view('login'); // Load view login.php
  }

  public function login(){
    $username = $this->input->post('username'); // Ambil isi dari inputan username pada form login
    $password = md5($this->input->post('password')); // Ambil isi dari inputan password pada form login dan encrypt dengan md5

    $user = $this->UserModel->get($username); // Panggil fungsi get yang ada di UserModel.php

    if(empty($user)){ // Jika hasilnya kosong / user tidak ditemukan
      $this->session->set_flashdata('message', 'Username tidak ditemukan'); // Buat session flashdata
      redirect('auth'); // Redirect ke halaman login
    }else{
      if($password == $user->password){ // Jika password yang diinput sama dengan password yang didatabase
        $session = array(
          'authenticated'=>true, // Buat session authenticated dengan value true
          'username'=>$user->username,  // Buat session username
          'nama'=>$user->nama // Buat session authenticated
        );

        $this->session->set_userdata($session); // Buat session sesuai $session
        redirect('page/welcome'); // Redirect ke halaman welcome
      }else{
        $this->session->set_flashdata('message', 'Password salah'); // Buat session flashdata
        redirect('auth'); // Redirect ke halaman login
      }
    }
  }

  public function logout(){
    $this->session->sess_destroy(); // Hapus semua session
    redirect('auth'); // Redirect ke halaman login
  }
}

if($this->session->userdata(‘authenticated’))
Kode diatas berfungsi untuk mengecek apakah session dengan nama authenticated ada atau tidak. Jika ada, artinya user sudah login. Jika tidak ada, berarti user belum login.

$user = $this->UserModel->get($username)
Kode diatas berfungsi untuk memanggil fungsi get() yang ada di UserModel.php untuk mendapatkan data user yang ada didatabase berdasarkan username.

$this->session->set_flashdata(‘message‘, ‘Username tidak ditemukan‘)
Kode diatas untuk membuat session flashdata. Session ini sifatnya hanya sementara, jadi ketika sudah dibaca, maka akan otomatis terhapus. Struktur dasar kodenya adalah $this->session->set_flashdata(‘nama_session‘, ‘isi_session‘). Lebih jelasnya soal session flashdata anda bisa baca disini.

$this->session->set_userdata($session)
Kode diatas berfungsi untuk membuat session. Sebenarnya di codeigniter ada 2 opsi cara membuat array antara lain :

  1. Jika anda ingin membuat session lebih dari 1, sebaiknya pakai cara ini :
    (dalam tutorial ini, kita menggunakan cara ini)
    $session = array(
    ‘nama_session1’=>’isi_session1’,
    ‘nama_session2’=>’isi_session2’,
    ‘nama_session3’=>’isi_session3’ 
    );$this->session->set_userdata($session);
  2. Jika anda ingin membuat hanya 1 session, pakai cara ini :
    $this->session->set_userdata(‘nama_session1’, ‘isi_session1’);


STEP 6 – BUAT FORM LOGIN
Pada tahap ini, kita akan membuat form loginnya. Buat sebuah file dengan nama login.php, lalu simpan pada folder xampp/htdocs/login_ci/application/views/. Berikut ini tampilan dan kodenya :

Form Login - Cara Mudah Membuat Form Login dengan Codeigniter dan MySQL

<html>
<head>
  <title>Form Login</title>
</head>
<body>
  <h1>Silahkan login terlebih dahulu...</h1>

  <div style="color: red;margin-bottom: 15px;">
    <?php
    // Cek apakah terdapat session nama message
    if($this->session->flashdata('message')){ // Jika ada
      echo $this->session->flashdata('message'); // Tampilkan pesannya
    }
    ?>
  </div>

  <form method="post" action="<?php echo base_url('index.php/auth/login') ?>">
    <label>Username</label><br>
    <input type="text" name="username" placeholder="Username"><br><br>

    <label>Password</label><br>
    <input type="password" name="password" placeholder="Password"><br><br>

    <button type="submit">Login</button>
  </form>
</body>
</html>

if($this->session->flashdata(‘message‘))
Kode diatas berfungsi untuk memanggil session flashdata dengan nama message yang dibuat pada controller auth fungsi login (jika data user tidak ditemukan). Struktur dasar kodenya adalah $this->session->flashdata(‘nama_session‘).


STEP 7 – BUAT CORE SENDIRI
Pada tahap ini, kita akan membuat sebuah core. Core ini berfungsi untuk mengkontrol akses ke halaman setelah login. Buat sebuah file dengan nama MY_Controller.php, lalu simpan pada folder xampp/htdocs/login_ci/application/core/. Berikut ini kodenya :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends CI_Controller{
    public function __construct(){
        parent::__construct();

        // Cek apakah terdapat session dengan nama authenticated
        if( ! $this->session->userdata('authenticated')) // Jika tidak ada
            redirect('auth'); // Redirect ke halaman login
    }
}

Seperti yang saya bilang, core ini akan kita manfaatkan untuk mengkontrol akses ke halaman setelah login. Core ini nanti harus di gunakan pada controller-controller yang bisa diakses setelah login.

public function __construct(){
Kode diatas berguna sebagai fungsi awal yang akan dieksekusi setiap kali Core MY_Controller dipanggil. Jadi sebelum mengeksekusi fungsi lainnya, kode yang ada didalam fungsi __construct() akan terlebih dahulu dieksekusi diawal.

if( ! $this->session->userdata(‘authenticated’))
Fungsi dari kode diatas adalah untuk mengecek apakah session dengan nama authenticated ada atau tidak. Pada if kondisi diatas saya menambahkan tanda seru “!“. Tanda seru tersebut artinya kebalikannya, jadi If disitu jika di terjemahkan adalah jika session authenticated tidak ada, maka redirect ke halaman login.


STEP 7 – BUAT CONTROLLER PAGE
Selanjutnya, kita akan membuat controller page. Buat sebuah file dengan nama Page.php, lalu simpan pada folder xampp/htdocs/login_ci/application/controllers/. Berikut ini kodenya :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Page extends MY_Controller {

  public function welcome(){
    $this->load->view('welcome');
  }

  public function thanks(){
    $this->load->view('thanks');
  }
}

Controller ini hanya bisa di akses setelah login. Seperti yang saya bilang pada step sebelumnya, controller yang hanya bisa diakses setelah login harus menggunakan core MY_Controller yang tadi kita buat. Pertanyaannya, cara menggunakannya gimana? Dari kode diatas, anda bisa lihat bahwa controller Page meng-extends ke MY_Controller (class Page extends MY_Controller {). Secara default ketika kita menggunakan Framework Codeigniter, maka setiap controller harus meng-extends ke CI_Controller. Tapi karena pada kasus ini kita telah membuat Core sendiri dengan nama MY_Controller, maka ketika kita akan menggunakan core tersebut, controllernya harus meng-extends ke MY_Controller.

Jadi setiap kita membuka salah satu fungsi di dalam controller Page, maka dia akan mengeksekusi terlebih dahulu kode yang ada di dalam fungsi __construct() pada core MY_Controller, baru setelah itu dia akan mengeksekusi kode yang ada didalam fungsi yang kita buka / panggil.

Kesimpulannya, dengan cara ini, Kode kita akan lebih efisiensi karena kita tidak perlu lagi menambahkan fungsi if untuk mengecek apakah user sudah login atau belum pada setiap fungsi. Karena sudah kita letakan kode tersebut pada core MY_Controller.


STEP 8 – BUAT VIEW WELCOME
Selanjutnya, kita akan membuat tampilan selamat datang yang akan ditampilkan setelah login. Buat sebuah file dengan nama welcome.php, lalu simpan pada folder xampp/htdocs/login_ci/application/views/. Berikut ini tampilan dan kodenya :

Halaman Welcome - Cara Mudah Membuat Form Login dengan Codeigniter dan MySQL

<html>
<head>
  <title>Welcome Page</title>
</head>
<body>
  <h1>Selamat datang <?php echo $this->session->userdata('nama'); ?></h1>
  <h4>Anda berhasil login ke dalam aplikasi. Halaman ini hanya bisa diakses setelah login.</h4>

  <a href="<?php echo base_url('index.php/page/thanks') ?>">Thanks Page</a> |
  <a href="<?php echo base_url('index.php/auth/logout') ?>">Logout</a>
</body>
</html>

$this->session->userdata(‘nama‘)
Kode diatas berfungsi untuk memanggil session dengan nama nama yang dibuat pada controller auth fungsi login. Struktur dasar kodenya adalah $this->session->userdata(‘nama_session‘).


STEP 9 – BUAT VIEW THANKS
Selanjutnya, kita akan membuat tampilan selamat datang yang akan ditampilkan setelah login. Buat sebuah file dengan nama thanks.php, lalu simpan pada folder xampp/htdocs/login_ci/application/views/. Berikut ini tampilan dan kodenya :

Halaman Thanks - Cara Mudah Membuat Form Login dengan Codeigniter dan MySQL

<html>
<head>
  <title>Welcome Page</title>
</head>
<body>
  <h1>Terimakasih <?php echo $this->session->userdata('nama'); ?></h1>
  <h4>Ini adalah halaman thanks yang hanya bisa di akses setelah login</h4>

  <a href="<?php echo base_url('index.php/page/welcome') ?>">Welcome Page</a> |
  <a href="<?php echo base_url('index.php/auth/logout') ?>">Logout</a>
</body>
</html>

Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.
Bingung cara downloadnya? klik disini untuk melihat caranya.


SUMBER & REFERENSI
Dokumentasi Codeigniter : https://www.codeigniter.com/user_guide
https://www.datatables.net/examples/server_side/
https://www.datatables.net/examples/server_side/post.html
Cara mudah menggunakan jQuery DataTables dengan codeigniter dan mysql, tutorial lengkap menggunakan jQuery DataTables dengan php dan mysql, Implementasi jQuery DataTables dengancodeigniter dan MySQL, tutorial step by step menggunakan jQuery DataTables dengancodeigniter dan MySQL

Login Codeigniter

(Total : 254 viewers, 2 viewers today)
form-login-dengan-codeigniter-mysql

ABOUT THE AUTHOR

Interested in android programming, long time focused on web development. Visit My Profile Site at www.rizaldimaulidia.com

POST YOUR COMMENTS

Your email address will not be published. Required fields are marked *

Name *

Email *

Website

NOTE ARCHIVES