MODUL 5
SESSION, COOKIES, & HALAMAN LOGIN
NIM : 21104410049
NAMA : Viery Nugroho
JURUSAN : Teknik Informatika
KELAS : TI 4B
TGL. PRAKTEK : 12 Juli 2023
MODUL 5
SESSION, COOKIES, & HALAMAN LOGIN
NIM : 21104410049
NAMA : Viery Nugroho
JURUSAN : Teknik Informatika
KELAS : TI 4B
TGL. PRAKTEK : 12 Juli 2023
Disetujui,
NIDN. 0710058506
PENDAHULUAN
2. Membuat Table
CREATE TABLE `nama_table` ( `id` INT NOT NULL , `name`
VARCHAR(30) NOT NULL , `age` INT NOT NULL , PRIMARY KEY (`id`))
ENGINE = InnoDB;
Untuk membuat table pada database MySQL menggunakan perintah
CREATE TABLE diikuti dengan nama table nya, kemudian pada tanda
dalam kurung berisikan nama atribut, tipe data, length, dll.
3. Membaca Data
SELECT * FROM contoh
Untuk membaca data (read) menggunakan perintah SELECT, tanda * disini
bermaksud untuk memanggil semua data.
4. Menambah Data
INSERT INTO `mahasiswa` (`nim`, `nama`, `alamat`,
5. Menghapus Data
DELETE FROM `mahasiswa` WHERE `mahasiswa`.`nim` = 1
6. Merubah Data
UPDATE `mahasiswa` SET `nama` = 'viery nugroho' WHERE
`mahasiswa`.`nim` = 1"
TUGAS PRAKTIKUM
2.1 Koneksi DB
if (!$conn) {
echo "<div class='alert alert-danger m-2 fw-bold'>Koneksi Gagal:
" . mysqli_connect_error() . "</div>";
}
Berikut ini merupakan source code untuk koneksi.php yang akan digunakan untuk
mengoneksikan website dengan database yang sudah dibuat menggunakan mysqli
dan terdapat pengecekan apakah website berhasil terkoneksi ke DB atau tidak.
a. Soal
b. Source Code
<?php
session_start();
c. Tampilan
d. Penjelasan
a. Soal
b. Source Code
<?php
const NIM = 21104410049;
// Cookie 1 hari
setcookie('nama', 'Viery Nugroho', time() + 86400, "/");
setcookie('nim', NIM, time() + 86400, "/");
c. Tampilan
Gambar 2 cookie
Gambar 3 cookie
d. Penjelasan
a. Soal
b. Penjelasan
a. Soal
b. Tampilan
c. Penjelasan
Id merupakan sebuah primary key bertipe data integer dan bersifat auto
increment, sedangkan username dan password merupakan field bertipe data
varchar dengan length 255.
a. Soal
b. Source Code
Login
<?php
// TODO session start
session_Start();
if (!$conn) {
echo "<div class='alert alert-danger m-2 fw-bold'>Koneksi Gagal: "
. mysqli_connect_error() . "</div>";
}
// TODO Login
if (isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
if ($query_login->num_rows > 0) {
$user_login = mysqli_fetch_assoc($query_login);
if (!$conn) {
echo "<div class='alert alert-danger m-2 fw-bold'>Koneksi Gagal: " .
mysqli_connect_error() . "</div>";
}
Logout
// TODO Logout
if (isset($_POST['logout'])) {
echo "<script>
Toast.fire({
icon: 'success',
title: 'Logout Sukses!'
})
Login:
Mekanisme login sama seperti pada Latihan, hanya saja pesan yang
dikirimkan berupa alert dengan pesan sesuai eror yang terjadi.
Login index.php:
Mekanisme login sama seperti pada Latihan, hanya saja terdapat pesan
yang dikirimkan berupa alert dan pada halaman index juga akan menerima
semua data yang dimiliki user yang telah login.
Logout:
a. Soal
b. Tampilan
c. Penjelasan
Untuk mengisi data pada database menggunakan perintah SQL bisa dengan
perintah INSERT INTO nama_table diikuti dengan attribute kemudian diikuti
dengan values nya. Atau bisa dengan cara instan yaitu input secara GUI
pada phpMyAdmin.
a. Soal
Perbaiki tampilan
b. Source Code
Login
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>21104410049 - Login</title>
<link rel="shortcut icon" href="./../assets/Viery_Nugroho.png"
type="image/x-icon">
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400
,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet">
<script>
const Toast = Swal.mixin({
toast: true,
position: 'top-end',
showConfirmButton: false,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
});
</script>
</head>
<body class="bg-gradient-bts">
<?php
// TODO session start
session_Start();
// TODO Logout
if (isset($_POST['logout'])) {
echo "<script>
Toast.fire({
icon: 'success',
title: 'Logout Sukses!'
})
</script>";
session_destroy();
}
if (!$conn) {
echo "<div class='alert alert-danger m-2 fw-bold'>Koneksi Gagal: "
. mysqli_connect_error() . "</div>";
}
// TODO Login
if (isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
if ($query_login->num_rows > 0) {
$user_login = mysqli_fetch_assoc($query_login);
</html>
Index.php
<?php
// TODO session start
session_Start();
if (!$conn) {
echo "<div class='alert alert-danger m-2 fw-bold'>Koneksi Gagal: " .
mysqli_connect_error() . "</div>";
}
?>
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>21104410049 - Dashboard</title>
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400
,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet">
<body id="page-top">
href="https://drive.google.com/drive/folders/15SFkQ4UuMvM1MKjm7fxsR8Vswo4F
F4gG?usp=sharing"> <i
class="fas fa-tasks"></i> Link
Tugas</a>
</div>
</ul>
<!-- End of Sidebar -->
</ul>
</nav>
<!-- End of Topbar -->
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
</div>
<!-- End of Content Wrapper -->
<script>
const Toast = Swal.mixin({
toast: true,
position: 'top-end',
showConfirmButton: false,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Toast.fire({
icon: 'success',
title: 'Signed in successfully'
})
</script>
</body>
</html>
Gambar 4 login
Gambar 5 index.php
IMPLEMENTASI PRAKTIKUM
a. Soal
Memulai Session
b. Tampilan
c. Source Code
<?php
// TODO Memulai Session
session_start();
$_SESSION['username'] = "administrasi";
$_SESSION['password'] = "12345678";
?>
d. Penjelasan
a. Soal
b. Tampilan
c. Source Code
<?php
// TODO Memulai Session
session_start();
echo "Username : " . $_SESSION['username'];
echo "<br>";
echo "Password : " . $_SESSION['password'];
?>
d. Penjelasan
a. Soal
Menghapus Session
b. Tampilan
c. Source Code
<?php
// TODO Memulai Session
session_start();
session_unset();
session_destroy();
echo "Username : " . $_SESSION['username'];
echo "<br>";
echo "Password : " . $_SESSION['password'];
?>
d. Penjelasan
a. Soal
Membuat Cookie
b. Tampilan
Gambar 10 cookie
c. Source Code
<?php
setcookie('username', 'administrator', time() + (60 * 60 * 24 * 5),
'/');
setcookie('nama', 'Viery Nugroho', time() + (60 * 60 * 24 * 15),
'/');
?>
d. Penjelasan
a. Soal
Membaca Cookie
b. Tampilan
c. Source Code
<?php
echo "Username : " . $_COOKIE['username'];
echo "<br>";
echo "Nama : " . $_COOKIE['nama'];
?>
d. Penjelasan
Sama seperti halnya session, untuk membaca cookie sama halnya seperti
membaca array asosiatif.
a. Soal
Membaca Cookie
b. Tampilan
c. Source Code
<?php
// unset($_COOKIE['username']);
// unset($_COOKIE['nama']);
setcookie('username', '');
?>
d. Penjelasan
Untuk menghapus sebuah cookie bisa dengan meng set ulang value dan
exp date menjadi waktu sebelum sekarang atau bisa dengan menggunakan
method unset.
a. Soal
b. Source Code
<?php
// TODO session start
session_Start();
if(mysqli_connect_errno()){
echo "<div class='alert alert-danger m-2 fw-bold'>Koneksi Gagal:
" . mysqli_connect_error() . "</div>";
}
c. Penjelasan
a. Soal
b. Tampilan
c. Source Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Login Dengan PHP</title>
</head>
<body>
<h2>Login</h2>
<br>
<?php
if(isset($_GET['pesan'])){
if($_GET['pesan'] == 'gagal'){
echo "Login Gagal! Username / Password Salah!";
} else if($_GET['pesan'] == 'logout'){
LAPORAN KE-5 PRAKTIKUM PEMROGRAMAN WEB
VIERY NUGROHO (21104410049)
echo "Anda telah berhasil logout!";
} else if($_GET['pesan'] == 'belum_login'){
echo "Anda harus login untuk mengakses halaman admin";
}
}
?>
d. Penjelasan
Terdapat pengecekan pesan yang dikirim melalui URL dengan method get.
Dan juga form login sederhana yang dimana data akan dikirimkan ke
cek_login.php dengan method post.
a. Soal
b. Source Code
<?php
session_start();
require_once './../database/database.php';
$username = $_POST['username'];
$password = $_POST['password'];
$cek = mysqli_num_rows($data);
c. Penjelasan
Dan jika terdapat data yang sesuai akan dilanjutkan ke inisialisasi variable
session username yang diisi dengan variable username dan juga session
status yang diisi dengan login, kemudian akan diarahkan ke halaman admin,
dan jika gagal akan dikembalikan ke halaman login
a. Soal
b. Tampilan
c. Source Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Login Dengan PHP</title>
</head>
<body>
<h2>Halaman Admin</h2>
<br>
<?php
session_start();
if($_SESSION['status'] != 'login'){
header("Location: ../login.php?pesan='belum_login'");
}
?>
d. Penjelasan
a. Soal
b. Source Code
<?php
session_start();
session_destroy();
header("Location: ../login.php?pesan='logout'");
?>
c. Penjelasan
PENUTUP
4.1 Kesimpulan
Kesimpulan dari praktikum pertama mengenai Session, Cookie, Login pada PHP.
Bahwa pada PHP kita dapat menyimpan data padadengan aman dan data akan dapat
digunakan di berbagai halaman sehingga akan memudahkan kita sebagai developer untuk
mengelola sebuah data.
4.2 Saran
Hendra, A. (2022). Apa itu PHP? Pengertian, Sejarah, Dan bagaimana Cara Kerjanya. Bandung: Teknik
Informatika Universitas Pasundan.
Juliarto, R. (2021). Apa Itu Web Server dan Fungsinya. Bandung: Dicoding.