Pengertian SESSION, Fungsi, dan Cara Penggunaannya

Wednesday, May 6, 2020 : May 06, 2020

0 komentar

Penggunaan SESSION dalam pembuatan aplikasi berbasis web terutama dalam bahasa pemrograman PHP pasti tidak akan lepas dengan hal tersebut. Kadang kala orang  yang membuat aplikasi berbasis web sering kali menghiraukan keamanan aplikasi dan fokus terhadap design aplikasi atau logic nya, sama seperti saya :D.

Namun hal tersebut harus diperhatikan dan penting untuk dilakukan. Pikirkan saja jika kalian membuat aplikasi web dengan berbagai fitur didalamnya namun aplikasi tersebut sangat rentan untuk dibobol atau dihack, pastinya akan sangat merugikan baik dari pihak developer maupun penggunanya.

Keamanan data merupakan hal yang paling utama dalam pembuatan aplikasi. Jika aplikasi yang kalian buat sudah cukup aman, maka akan memberikan dampak positif bagi penggunanya. Meski tidak ada yang 100% aman dari serangan hacker, setidaknya kita sudah berusaha untuk mengamankan aplikasi tersebut.

Penggunaan SESSION memiliki banyak sekali manfaat, salah satunya untuk keamanan data. Meski begitu apa sih yang disebut dengan SESSION ini sendiri? Mari kita ulas dibawah ini.

Pengertian SESSION

SESSION adalah sebuah cara untuk menyimpan data kedalam server yang bisa digunakan diberbagai halaman dan sifatnya sementara. Kenapa sementara ? jika kalian keluar dari browser dan mencoba masuk kembali kedalam aplikasi tersebut maka SESSION yang telah dibuat sebelumnya akan terhapus, berbeda dengan COOKIE yang disimpan pada sisi client. SESSION sendiri dideklarasikan dalam sebuah variable global berbentuk $_SESSION

SESSION tidak hanya dimanfaatkan untuk keamanan data saja, kalian bisa menggunakan session untuk keperluan hak akses, mengirim data kehalaman lain, membuat sebuah pesan kepada user dengan memanfaatkan session dan masih banyak lagi.

Saya ambil contoh kasus pengunaan SESSION ketika login di platform gmail. Kalian akan diminta memasukkan gmail dan password, dengan memanfaatkan SESSION kalian tidak perlu login kembali ketika tidak sengaja menutup tab halaman tersebut karena sudah ada SESSION sebelumnya. Tapi jika kalian menutup browser yang kalian gunakan maka SESSION akan terhapus.

Fungsi Dalam SESSION

Ada beberapa fungsi / function dalam session yang sering digunakan diantaranya :
  • session_start() berfungsi untuk mengaktifkan session.
  • session_destroy() berfungsi untuk menghapus seluruh session yang telah dibuat.
  • unset() berfungsi untuk menghapus  data session yang dipilih saja.
Sebelum membahas mengenai function unset(), saya akan menjelaskan terlebih dahulu cara mengaktifkan sesssion itu sendiri dan mendeklarasikan sebuah variable global session. Buatlah file php dengan nama index.php, tuliskan syntaxnya seperti dibawah ini.

<?php

//Mengaktifkan session dengan memanggil fungsi session_start()
session_start();

//Mendeklarasikan variable global session
$_SESSION['nama'] = 'Restu Kersana';

?>

Kemudian buatlah file baru dengan nama ceksession.php, dan tuliskan syntax seperti dibawah ini.
<?php

//Aktifkan session terlebih dahulu
session_start();

//Tampilkan session dari halaman index.php
echo $_SESSION['nama'];
?>

Cara penulisan function unset() untuk menghapus session yang telah kita buat sebelumnya.

<?php
//Aktifkan SESSION
session_start();
//Hapus SESSION yang telah dibuat sebelumnya
unset($_SESSION['nama']);
?>

Contoh Penggunaan SESSION Dalam Login

Setelah mengetahui dasar - dasar penggunaan SESSION, saya akan melanjutkan kedalam studi kasus penerapan SESSION untuk login. Kalian bisa menggunakan syntax ini untuk keperluan aplikasi kalian, meskipun cara ini terbilang sederhana namun tidak ada salahnya untuk mencoba membuat aplikasi kalina semakin aman. Buat lah file dengan nama login.php.

Ini adalah contoh kasus login yang sudah menggunakan hash didalamnya.


<?php
//Aktifkan SESSION terlebih dahulu
session_start();
//parameter 1 = nama hostnya
//parameter 2 = db usernamenya
//parameter 3 = db passwordnya
//parameter 4 = nama databasenya
$koneksi = mysqli_connect('localhost','root','','nama_database');
//Cek apakah tombol submit telah ditekan

if(isset($_POST['submit'])) {
 //Ambil data yang diinputkan olehh user
   $username = mysql_real_escape_string($_POST['nama']);
   $password = $_POST['password'];

 //Cek pada database apakah username tersedia atau tidak
  if($result = mysqli_query($koneksi, "SELECT * FROM user WHERE username='$username'")){
    //Jika ada maka akan menghasilkan nilai 1
    if(mysqli_num_rows($result) === 1) {
       //ambil data query tadi menggunakan function mysqli_fetch_assoc()
       $data = mysqli_fetch_assoc($result);
        
        //cek apakah password cocok dengan didatabase
        if(password_verify($password, $data['password'])){
          $_SESSION['hak_akses'] = 'Admin';
          
          //pindahkan kehalaman yang dituju
          header('Location: admin.php');
        }
      } 
    }
  }
?>

Ini adalah contoh penggunaan login yang tidak menggunakan hash.


<?php
//Aktifkan SESSION terlebih dahulu
session_start();
//parameter 1 = nama hostnya
//parameter 2 = db usernamenya
//parameter 3 = db passwordnya
//parameter 4 = nama databasenya
$koneksi = mysqli_connect('localhost','root','','nama_database');
//Cek apakah tombol submit telah ditekan

if(isset($_POST['submit'])) {
 //Ambil data yang diinputkan olehh user
   $username = mysql_real_escape_string($_POST['nama']);
   $password = $_POST['password'];

 //Cek pada database apakah username tersedia atau tidak
  if($result = mysqli_query($koneksi, "SELECT * FROM user WHERE username='$username'")){
    //Jika ada maka akan menghasilkan nilai 1
    if(mysqli_num_rows($result) === 1) {
       //ambil data query tadi menggunakan function mysqli_fetch_assoc()
       $data = mysqli_fetch_assoc($result);
        
        //cek apakah password cocok dengan didatabase
        if($password == $data['password'])){
          $_SESSION['hak_akses'] = 'Admin';
          
          //pindahkan kehalaman yang dituju
          header('Location: admin.php');
        }
      } 
    }
  }
?>

Setelah itu buatlah file dengan nama admin.php dan copy syntaxnya dibawah ini.


<?php
 session_start();
 //cek terlebih dahulu apakah session hak_akses telah dibuat
  if(!isset($_SESSSION['hak_akses'] === 'Admin')){
    header('Location: login.php');
  }

  echo 'Selamat Datang Admin !';
?>

Penutup

Berikut adalah ulasan mengenai pengertian SESSION, fungsi dan cara penggunaannya. Bagaimana menurut kalian penjelasan diatas dapat membantu kalian ? Oh iya disini saya hanya sharing pengalaman saya mengenai penggunaan SESSION, apabila ada kesalahan mohon untuk dikoreksi. Terimakasih telah berkunjung ke infokuy, nantikan artikel menarik lainnya.
Share this Article
< Previous Article
Next Article >

0 komentar :

Copyright © 2020 Infokuy - All Rights Reserved