Membuat Login dengan Codeigniter. – Seringkali saat kita membuat aplikasi berbasis web, pasti dihadapkan dengan halaman login baik untuk user ataupun untuk administrator. Pada tutorial kali ini, saya ingin memberikan penjelasan singkat tentang cara mudah membuat halaman login dengan codeigniter. Selaras dengan tutorial sebelumnya, saya akan membahas tutorial yang berkaitan dengan framework codeigniter ini. Pada tutorial kali ini pun saya melengkapinya dengan source code nya, sehingga anda bisa belajar lebih mudah.
BACA:
Sebelum dapat membuat halaman login dengan fungsi-fungsi php didalamnya, maka anda wajib melakukan persiapan terlebih dahulu. Beberapa pengaturan wajib dilakukan agar dapat memanggil library pada codeigniter, sehingga script dapat dijalankan dengan baik.
Persiapan membuat halaman Login dengan Codeigniter
A. Membuat Database.
Persiapan yang paling awal adalah dengan mempersiapkan tabel user, dimana berisi informasi username dan password. Untuk password nya dienkripsi menggunakan fungsi md5 pada phpmyadmin.
Silahkan anda membuat database dengan nama latihan , kemudian dilanjutkan dengan memasukkan kode dibawah ini pada database anda. Anda dapat menjalan perintah SQL dibawah ini melalui halaman phpmyadmin bagian SQL.
Copas kode berikut ini
CREATE TABLE IF NOT EXISTS `tbuser` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `password` varchar(50) NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; INSERT INTO `tbuser` (`user_id`, `username`, `password`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3');
B. Mengaktifkan Library dan Pengaturan File Config Codeigniter
Silahkan anda buka file codeigniter : application/config/config.php kemudian lakukan pengaturan berikut:
$config['base_url'] = 'http://localhost/latihan';
Pengaturan diatas adalah untuk mengatur lokasi file codeigniter anda saat diakses, jika anda install ke dalam hosting maka diisi dengan “http://namadomain.com/”. Pada kesempatan kali ini saya tempatkan di folder “latihan” di localhost.
Dilanjutkan dengan pengaturan koneksi database, silahkan buka file:application/config/database.php yang kemudian anda isi dengan konfigurasi database yang anda buat di phpmyadmin
'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'latihan', 'dbdriver' => 'mysqli',
Dan Seperti contoh diatas adalah pengaturan koneksi yang umum ketika membuat database di localhost, saat anda memindahkan website anda secara online, maka pengaturan diatas mengikuti perubahan konfigurasi database di cpanel anda.
Langkah selanjutnya silahkan buka file :application/config/autoload.php dan aktifkan helper serta libraries berikut ini:
$autoload['libraries'] = array('database','session');
$autoload['helper'] = array('url');
Setelah persiapan selesai dilanjutkan membuat file model, controller dan view.
Membuat Halaman Login Codeigniter
Silahkan buat file Model di application/models/M_login.php , beri nama file tersebut dengan nama M_login.php . Dan perlu diketahui biasakan menulis penulisan model seperti ini termasuk huruf besarnya, karena ada kalanya ketika anda membuat file dengan huruf kecil, maka saat di localhost terbaca akan tetapi saat anda upload di hosting yang berbasis linux, akan tidak terbaca. Hal ini disebabkan linux sangat case sensitif dalam membaca nama file.
File M_Login.php:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class M_login extends CI_Model{ function cek_login($username,$password) { $this->db->where('username', $username); $this->db->where('password', $password); $query = $this->db->get('tbuser'); return $query->num_rows(); } function data_login($username,$password) { $this->db->where('username', $username); $this->db->where('password', $password); return $this->db->get('tbuser')->row(); } }
Setelah file model berhasil dibuat silahkan kembali membuat file controller Login.php dan letakkan di application/controllers/Login.php
File Controller Login.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Login extends CI_Controller{ function __construct(){ parent:: __construct(); //meload model M_login $this->load->model('m_login'); } //saat halaman Login diakses maka akan memanggil file v_login function index(){ $this->load->view('v_login'); } //mengecek hasil input login function aksi_login(){ $username = $this->input->post('username'); $password = md5($this->input->post('password')); $cek = $this->m_login->cek_login($username,$password); if($cek ==1){ $row = $this->m_login->data_login($username,$password); $data_session = array( 'username' => $row->username, 'user_id' => $row->user_id, 'status' => "login" ); $this->session->set_userdata($data_session); $this->load->view('v_member'); }else{ //jika username dan password tidak ditemukan atau tidak sesuai maka akan menampilkan pesan salah $this->session->set_flashdata('item', array('pesan' => 'username atau password salah')); redirect("login"); } } }
Selanjutnya adalah membuat file v_login.php dan ditempatkan di application/views/v_login.php
File View v_login.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Latihan Login</title> </head> <body> <font color="red"><?php $pesan = $this->session->flashdata('item');echo $pesan['pesan'];?></font> <form method="post" action="<?php echo base_url('index.php/login/aksi_login');?>" > <label>Username</label> <input type="text" name="username" ><br> <label>Password</label> <input type="password" name="password" ><br> <input type="submit" name="submit" value="Login"> </form> </body> </html>
Terakhir Buat file view v_member.php yang diletakkan di application/views/v_member.php
File View v_member.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?><!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Halaman member</title> </head> <p> sukses anda masuk ke halaman member</p> </body> </html>
Setelah semua file selesai dibuat, maka anda bisa mengakses file login tersebut di http://localhost/latihan/index.php/login
Penjelasan Singkat
Sedikit pembahasan tentang kode diatas, hasil input username dan password yang berasal dari file v_login.php diterima dan dimasukkan ke dalam variabel di controller Login.php, seperti nampak pada baris kode dibawah :
$username = $this->input->post('username'); $password = md5($this->input->post('password'));
Untuk hasil input password dienkripsi terlebih dahulu dengan md5, atau anda bisa menggunakan alternatif enksripsi yakni sha1.
Dari hasil itu divalidasi dicocokan dengan yang ada di database dengan memanggil file model dan memasukkannya ke file model dengan kode:
$cek = $this->m_login->cek_login($username,$password);
Hasil dari query model tersebut jika ditemukan maka akan bernilai 1, maka dicek apakah variabel $cek ==1, jika iya maka proses menginput session dilakukan dengan array dibawah ini, sedangkan jika tidak ditemukan maka akan dialihkan ke halaman login kembali dengan ditampilkan pesan error.
$data_session = array( 'username' => $row->username, 'user_id' => $row->user_id, 'status' => "login" ); $this->session->set_userdata($data_session);
Catatan Penulis
Anda bisa mendowonload FILE Latihannya DISINI, agar membantu anda dalam berlatih membuat halaman login dengan codeigniter. Jika anda membutuhkan pertanyaan, silahkan tuliskan di kolom komentar.