Membuat Login di Codeigniter Dengan Mudah
Membuat Login di Codeigniter dengan Mudah untuk pemula. Beberapa hari kemarin saya telah membuat tutorial tentang cara setting database di codeigniter. Kenapa sih setting di database codeigniter itu perlu? Ibaratkan motor ya sob jika taka ada bensinya ya tidak bisa jalan, begitu juga jika kita lupa menyetting databasenya otomatis program kita tidak akan bisa jalan sepenuhnya. Tapi kali ini yang kita bahas bukan soal motor ya sob, kemarin ada yang tanya ke saya bagaimana sih cara membuat login di codeigniter bang? Pertama saya jawab “kamu harus belajar hehe”, tapi itu jawaban bercanda ya sob hehe. Okee, di tutorial kali ini saya akan menjelaskan bagaimana cara membuat login di codeigniter dengan mudah.
Membuat Login di Codeigniter
Jika sobat belum punya file codeigniter bisa download di website resminya yaitu disini, saya membuat projek saya dengan nama login_ci, sobat boleh bebas merubah nama projeknya sesuai keinginan sobat1. BUAT DATABASE
Dilangkah awal ini kita akan membuat database terlebih dulu, sebelumnya sudah pernah saya bahas bagaimana cara membuat database di MySQL dengan Xampp. Disini saya memberi username dengan nama dita dan password dita, dan memakai enkripsi MD5 untuk kemanan passwodnya.1. Buat database dengan nama masdita
2. Masuk ke SQL, lalu copy dan paste kan kode di bawah ini
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Jun 01, 2019 at 05:18 AM
-- Server version: 10.1.16-MariaDB
-- PHP Version: 5.6.24
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
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: `masdita`
--
-- --------------------------------------------------------
--
-- Table structure for table `user`
--
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
`nama` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `user`
--
INSERT INTO `user` (`id`, `username`, `password`, `nama`) VALUES
(3, 'dita', 'e6b047aa9378bce37a5260a949d1ea3e', 'dita trinugroho');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `user`
--
ALTER TABLE `user`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `user`
--
ALTER TABLE `user`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
/*!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 */;
2. SETTING CONFIG
Dilangkah ini ada beberapa hal yang harus perlu disetting agar semua berjalan lancar1. Buka xampp/htdocs/login_ci/application/config/config.php,
- Ubah kode sobat menjadi $config['base_url'] = 'http://localhost/login_ci/';
Kode diatas adalah membuat base url kita menjadi default
2. Buka xampp/htdocs/login_ci/application/config/autoload.php
- Ubah $autoload['libraries'] = array('database', 'session');
- Ubah $autoload['helper'] = array('url');
Kode diatas berguna untuk otomatis meload library dan helper yang akan kita gunakan
3. Buka xampp/htdocs/login_ci/application/config/routes.php
- Ubah $route['default_controller'] = 'admin';
Maksut dari kode diatas adalah merubah default controller kita ketika waktu pertama kali membuka projek langsung diarahkan ke halaman admin
- Ubah kode kita seperti dibawah ini
'username' => 'root',
'password' => '',
'database' => 'masdita',
'dbdriver' => 'mysqli',
Maksud dari kode diatas adalah kita memberi userbname kita dengan nama root karena default dari MySQl adalah root, dan passwordnya kosong, database saya beri nama masdita karena menyesuaikan database saya ya sob.
3. MEMBUAT MODEL
Kenapa kita membuat model dahulu? Ya karena MVC adalah singkatan dari Model View Controller. Buat sebuah file dengan nama LoginModel.php, setlah itu simpan pada folder xampp/htdocs/login_ci/application/models/. dibawah ini adalah kodenya, sobat bisa langsung copas aja.
class LoginModel 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;
}
}
4. BUAT CORE DAN CONTROLLER
Setelah kita membuat model biasanya yang perlu kita lakukan adalah membuat sebuah controller untuk menjembatani antara view dan model ya sob.1. Core berfungsi untuk membuat authenticated ketika kita login. buat file dengan nama MY_Controlller.php lalu simpan di folder xampp/htdocs/login_ci/application/core/. dibawah ini adalah kodenya, sobat bisa langsung copas aja.
<?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('Admin'); // Redirect ke halaman login
}
}
2. Buat controller dengan nama file Admin.php lalu simpan di folder xampp/htdocs/login_ci/application/controller/. Dibawah ini adalah kodenya, sobat bisa langsung copas aja.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('LoginModel');
}
public function index(){
if($this->session->userdata('authenticated')) // Jika user sudah login (Session authenticated ditemukan)
redirect('Beranda/selamat_datang'); // 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->LoginModel->get($username); // Panggil fungsi get yang ada di LoginModel.php
if(empty($user)){ // Jika hasilnya kosong / user tidak ditemukan
$this->session->set_flashdata('message', 'Username tidak ditemukan'); // Buat session flashdata
redirect('admin'); // 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('Beranda/selamat_datang'); // Redirect ke halaman welcome
}else{
$this->session->set_flashdata('message', 'Password salah'); // Buat session flashdata
redirect('admin'); // Redirect ke halaman login
}
}
}
public function logout(){
$this->session->sess_destroy(); // Hapus semua session
redirect('admin'); // Redirect ke halaman login
}
}
Biar sobat tidak bingung dengan kode diatas, saya akan jelaskan sedikit ya sob.
If($this->session->userdata(‘autenthecated’())Kode diatas berguna untuk mengecek apakah ada atau tidak. Jika session tersebuat sudah ada berarti user sudah login, dan sebaliknya.
$user=$this->LoginModel->get($username)Kode diatas memanggil model LoginModel.php untuk mengambil data yang ada didatabase berdasarkan username.
$this->session->set_flashdata(‘message’,’Username tidak ditemukan’)Kode diatas untuk membuat flashdata atau notifikasi.
3. Buat controller dengan nama file Beranda.php lalu simpan di folder xampp/htdocs/login_ci/application/controller/. Dibawah ini adalah kodenya, sobat bisa langsung copas aja.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Beranda extends MY_Controller {
public function selamat_datang(){
$this->load->view('selamat_datang');
}
}
Kode diatas berfungsi ketika nanti setelah berhasil login akan dialihkan ke halaman beranda dengan function selamat datang.
5. BUAT TAMPILAN
Pada langkah ini kita akan membuat form login.1. Buat file dengan nama login.php lalu simpan pada folder xampp/htdocs/login_ci/application/views/. Dibawah ini adalah kodenya sobat bisa copas aja.
<html>
<head>
<title>Membuat login di codeigniter</title>
</head>
<body>
<center>
<h1>Membuat login di codeigniter</h1>
<div style="color: orange;margin-bottom: 10px;">
<?php
// Cek apakah terdapat session nama message
if($this->session->flashdata('message')){ // Jika ada
echo $this->session->flashdata('message'); // Tampilkan pesannya
}
?>
</div>
<form action="<?php echo base_url('index.php/Admin/login') ?>" method="post" >
<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>
</center>
</body>
</html>
Kode diatas adalah tampilan form login.
If($this->session->flashdata(‘message’))
Kode diatas ini berfungsi untuk memanggil flashdata yang kita buat dengan nama massage tadi.
2. Buat file dengan nama selamat_datang.php lalu simpan pada folder Xampp/htdocs/login_ci/application/views/. Dibawah ini adalah kodenya sobat bisa copas aja
<html>
<head>
<title>Selamat Datang</title>
</head>
<body>
<center>
<h2>Selamat datang <?php echo $this->session->userdata('nama'); ?></h2>
<h3>Ini adalah halaman selamat datang ketika anda berhasil login</h3>
<a href="<?php echo base_url('index.php/Beranda/terimakasih') ?>">Terimakasih</a> |
<a href="<?php echo base_url('index.php/Admin/logout') ?>">Logout</a>
</center>
</body>
</html>
Itulah tutorial cara membuat login di codeigniter dengan mudah. Semoga bermanfaat. Jika sobat bingung sobat bisa langsung komentar dibawah. Jangan lupa terus kunjungi masdita.com ya sob untuk mendapatkan tuitorial-tutorial terbaru seputar codeigniter.
Untuk sobat yang ingin mengunduh source codenya bisa mendownloadnya disini
test
BalasHapusiyaa
BalasHapus