A. Persiapan
1. Membuat Dummy Data pada Database
Sebelum membuat fitur login, mari kita siapkan dulu dummy data user untuk nanti
dijadkan ujicoba sistem. Untuk itu silakan isikan data pada tabel user pada database. Pada
masing-masing jenis user minimal buatlah 1 user sebagai dummy. Perhatikan dalam
pembuatan data dummy gunakanlah enkripsi pada isian kolom password, kali ini yang akan
kita coba adalah menggunakan enkripsi MD5. Kalian dibebaskan untuk membuat datanya,
untuk memudahkan dalam pembuatan materi maka akan dicoba membuat data seperti pada
tabel 1 berikut.
Jika kalian langsung melakukan input data pada database dimungkinkan akan
menemui error, hal ini dikarenakan pada saat membuat database lalu kita membuat
persyaratan bahwasanya kolom outlet pada tabel user mengambil data dari kolom tabel
outlet. Untuk menangani masalah ini maka silakan membuat dulu data dummy pada tabel
outlet, bisa dengan menambahkan sebuah data yaitu data outlet pusat. Untuk dummy data bisa
ditirukan sesuai contoh pada tabel 2.
Setelah kalian melakukan insert data dummy pada database, maka kita akan
mendapati bahwa kita memiliki serangkain data sebagai berikut. Catatan penting, jangan lupa
mengaktifkan enkripsi MD5 saat mengisikan data password.
Setelah selesai membuat data dummy, selanjutnya kita akan membuat koneksi dengan
database. Hal ini dilakukan agar project kita akan dapat terhubung dengan database yang
telah kita buat. Caranya sangat mudah, silakan kalian membuat file baru bernama
koneksi.php setelah itu tuliskan syntax sebagai berikut.
<?php
// Periksa Koneksi
if (mysqli_connect_errno()){
echo "Koneksi database gagal : " . mysqli_connect_error();
}
?>
Untuk dapat memastikan apakah database sudah terkoneksi, kalian bisa mengakses
pada url dengan mengakses file koneksi.php. Jika tidak ada tampilan pesan error, secara
sederhana database kita telah terkoneksi. Silakan dapat kalian lihat pada gambar berikut
untuk detailnya.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>
Dengan menambahkan file ini kedalam project kita, untuk mengakses suatu file dalam
project yang sebelumnya perlu dituliskan dengan ekstensinya sekarang cukup dengan
memanggil nama filenya saja. Hal ini juga berlaku ketika mengaksesnya ketika melalui url.
B. Membuat Fitur Login
<div class="form-group">
<label>Username</label>
<input type="text" class="form-control" name="username">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" name="password">
</div>
Tambahkan syntax yang ditandai pada sourcode form dalam file index.php project
kalian. Hal ini dimaksudkan kita memberikan perintah ketika submit inputan dari form maka
akan dilemparkan datanya menuju file login.php. Secara prinsip login disitu menuju pada file
login.php yang berisi rangkaian syntax untuk memproses algoritma login. Kita dapat
menuliskan nama filenya saja tanpa ekstensi karena sebelumnya kita telah membuat .htaccess
pada project yang kita kembangkan. Jika tanpa hal tersebut maka perlu dituliskan utuh
dengan ekstensi filenya. Selanjutnya method yang digunakan untuk mengirimkan data adalah
menggunakan method post.
2. Membuat Login.php
Untuk melakukan proses olah data login, maka kita akan menampungnya dalam
rangkaian syntax yang dituliskan didalam file login.php. Dalam file login.php inilah
algoritma login pada project aplikasi kita diproses. Silakan kalian buat file bernama
login.php lalu tuliskan syntax sebagai berikut.
<?php
// menghubungkan dengan koneksi
include 'koneksi.php';
//membuat value untuk membaca kondisi data, jika ditemukan value 1 jika tidak 0
$cek = mysqli_num_rows($login);
//membuat algoritma untuk membedakan data level user sebagai bahan penentuan login
if($data['user_level'] == "admin"){
header("location:admin/");
}else if($data['user_level'] == "kasir"){
header("location:kasir/");
}else if($data['user_level'] == "owner"){
header("location:owner/");
}else{
header("location:index?alert=gagal");
}
}else{
header("location:index?alert=gagal");
}
Setelah kalian tulis sourcecode diatas, silakan lakukan test pada aplikasi kalian.
Cobalah untuk melakukan login melalui form dengan mengisikan data username dan
passwordnya. Jika data yang diisikan sesuai dengan yang ada pada database maka user dapat
masuk kepada halaman sesuai jenis level usernya. Namun jika yang diisikan tidak sesuai
makan akan ada pesan gagal yang dapat kalian pada bagian form url.
Jika sudah berhasil maka syntax tersebut sudah berjalan sesuai fungsinya. Namun hal
ini baru dasar dari penerapan fitur login, untuk melangkap fungsional dari fitur login maka
kita akan menambahkan konsep session sebagai penambahan pengamanan pada project
aplikasi kita. Silakan kalian ikuti materi selanjutnya.
Kalian bisa menambahkan syntax diatas kedalam file index.php, letakkan didalam
container diatas syntax form. Jika kalian sesuai dalam penerapannya maka akan
menghasilkan tampilan pesan sebagai berikut.
5. Menambahkan Session
Untuk menambahkan session, kita akan melakukan 2 proses dalam penerapannya.
Yang pertama melakukan penambahan session pada algoritma di file login.php. Langkah
pertama ini bertujuan untuk mengaktifkan session dan membuat data session. Lalu yang
kedua menambahkan session pada sisi dashboard masing-masing user, yaitu pada file
index.php di masing-masing folder user. Langkah kedua bertujuan membuat syarat kondisi
ketika ingin mengakses file ini maka memerlukan suatu data session tertentu. Untuk lebih
jelasnya kalian dapat mengikuti panduan sebagai berikut.
Bukalah file login.php lalu lakukan perubahan pada sourcecode nya dengan
menambahkan beberapa syntax session sebagai berikut. Merubah susunan sourcode pada
bagian decision didalam file login.php.
//mengaktifkan session
session_start();
$_SESSION['id'] = $data['user_id'];
$_SESSION['username'] = $data['user_username'];
$_SESSION['nama'] = $data['user_nama'];
$_SESSION['level'] = $data['user_level'];
//membuat algoritma untuk membedakan data level user sebagai bahan penentuan login
if($data['user_level'] == "admin"){
header("location:admin/");
//membuat kondisi session untuk akses data
$_SESSION['status'] = "admin_login";
}else{
header("location:index?alert=gagal");
}
}else{
header("location:index?alert=gagal");
}
Setelah melakukan perubahan pada file login.php selanjutnay kita akan menambahkan
session pada bagian index.php dimasing-masing folder user yang ada dalam project aplikasi
kita. Penambahan syntax yang dilakukan dapat mengikuti panduan sebagai berikut. Kalian
dapat meletakan syntax didalam bagian head pada file index.
Letakan penambahan syntax ini pada bagian head dalam file index.php dimasing-
masing folder user. Untuk lebih detailnya dapat kalian lihat pada ganbar berikut.
Setelah sebelumnya kita belajar membuat fitur login pada aplikasi, selanjutnya kita
akan menambahkan fitur logout sebagai pasangan dari login. Caranya sangat mudah, tidak
sepanjang ketika kita membuat login. Kalian dapat mengikuti cara membuat fitur logout
sebagai berikut.
Fitur logout dapat digunakan ketika user sudah melakukan login terlebih dahulu.
Secara prinsip begitulah cara fitur ini bekerja, sehingga kita bisa membuat logout dari menu
yang ada didalam aplikasi masing-masing user. Untuk itu, silakan buka file index.php dari
masing-masing user lalu tambahkan syntax untuk mengakses file logout.php yang berisi
algoritma untuk melakukan perintah logout. Silakan perhatikan pada gambar berikut.
<?php
session_start();
session_destroy();
header("location:../index?alert=logout");
?>
Jika sudah menambahkan file tersebut, selanjutnya kita akan melakukan penambahan
alert sesuai dengan yang kita lakukan pada fitur logout, yaitu alert “logout”. Untuk itu
silakan kalian buka index.php yang ada di root aplikasi atau index.php halaman login.
Lakukan update alert dengan menambahkan syntax sebagai berikut.