Pengertian SESSION, Fungsi, dan Cara Penggunaannya

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.

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.

Oleh karena itu, kalian harus mengetahui cara menggunakan session php untuk project sederhana sekalipun.

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

Pengertian SESSION

SESSION adalah salah satu fitur penting dalam pengembangan website. Secara umum, SESSION adalah mekanisme untuk menyimpan informasi khusus pada server web. 

Informasi tersebut dapat digunakan untuk mengidentifikasi pengguna, mempertahankan keadaan sesi, serta memperbaiki keamanan dan privasi.

Kenapa sementara ? jika kalian keluar dari browser dan mencoba masuk kembali kedalam aplikasi tersebut maka SESSION yang telah dibuat sebelumnya akan terhapus. 

Nah, untuk $_SESSION adalah sebuah variable global yang digunakan untuk mengirim session ke halaman lain. 

Biasanya $_SESSION berisi data hasil fetching dari database atau data yang dibuat oleh programmer itu sendiri untuk kebutuhan validasi, dan masih banyak lagi.

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 email 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 SESSION PHP

Fungsi dari SESSION ini sendiri sangat beragam. Salah satu fungsinya adalah untuk membuat website lebih interaktif. 

Ketika pengguna berinteraksi dengan website, data yang dimasukkan oleh pengguna disimpan dalam SESSION dan dapat digunakan kembali saat pengguna kembali ke halaman yang sama atau ke halaman lain dalam website. 

Dengan SESSION, pengguna dapat menjelajahi website dengan lebih mudah dan cepat.

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']);
?>

Cara Menggunakan SESSION PHP

Setelah mengetahui dasar - dasar penggunaan session php, saya akan menjelaskan cara menggunakan session php.

Di bawah ini merupakan penerapan session login sederhana yang bisa kalian tiru nanti. Pemanfaatan session php disini nantinya untuk mengecek apakah user telah login atau belum dan bisa melakukan validasi ketika user mengakses halaman tersebut lewat URL. 

Jika user tidak login dan mengakses halaman lewat URL nantinya akan dikembalikan lagi ke halaman login karena tidak memiliki session login di dalamnya.

Ini adalah contoh kasus cara menggunakan session di php untuk halaman login:

<?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

Dari pembahasan di atas, dapat disimpulkan bahwa SESSION adalah fitur penting dalam pengembangan website yang dapat meningkatkan interaktivitas dan keamanan website. 

Dengan menggunakan SESSION, pengguna dapat dengan mudah berinteraksi dengan website dan website dapat mengatur akses pengguna dengan lebih baik.

Namun, penggunaan SESSION juga memerlukan perhatian khusus dalam hal keamanan dan privasi pengguna. 

Oleh karena itu, penting bagi pengembang website untuk memahami pengertian, fungsi, dan cara penggunaan SESSION dengan baik.

Setelah memahami pengertian session, fungsi, dan cara kerjanya, anda wajib mengetahui juga pengertian cookie. Silahkan cek ulasan lengkapnya di infokuy.

Next Post Previous Post
No Comment
Add Comment
comment url