Minggu, 31 Maret 2019

Mengenal Bahasa PHP [bagian 10] : Tentang SESSION



Loha loha.. kuy kuy kita belajar lagi kuy.🙌 

Jangan bosen-bosennya kalo baca ginian gaiss😪.. selain ilmu kalian bertambah, ini juga mempermudah kita membuat laporan gaes. Meskipun rasa malas dan lelah menimpa kita, lapen dan lapres harus tetap selesai, temund.💂

Nah, kali ini kita akan membahas tentang ‘SESSION’. Apa itu SESSION❓ Sebelumnya kita lihat contoh visualisasi ini lebih dulu.

<form method="post" action="submit.php">
Bilangan ke-1 <input type="text" name="bil1" /><br />
Bilangan ke-2 <input type="text" name="bil2" /><br />
<input type="submit" name="submit" value="Submit" />
</form>



Form di atas untuk memasukkan 2bilangan. Selanjutnya kita akan membuat script untuk menampilkan nilai masukan kedua bilangan tersebut.

<?php
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>";
?>



Pada submit.php ini juga terdapat link menuju script lanjut.php. Dalam script lanjut.php, kita akan menampilkan kedua bilangan masukan lagi.

<?php
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>";
?>


Nah, kira-kira apa yang akan terjadi jika kita mengklik link lanjut.php❔ Apakah kedua bilangan akan terbaca lagi seperti sebelumnya❓❓ Jawabannya adalah TIDAK❌. Nyatanya, kedua bilangan hanya bisa terbaca di script submit.php saja👀. Mengapa❔ Karena submit.php adalah halaman pertama setelah form.php.
Mungkin saja, karena pikiran kalian yang terlalu kreatif💥, kalian bisa berpikir jika perlu ditambah perintah seperti ini pada lanjut.php.
$bil1 = $_POST[‘bil1’];
$bil2 = $_POST[‘bil2’];
Percayalah temund-temund sekalian. Cara ini juga tidak berhasil😺.
Terus gimana❓😭 
Untuk mengatasi masalah yang mbulet ini, kita bisa menggunakan 2 jalan, yaitu ❶menggunakan GET method dan ❷SESSION. Ingat❗❗ Tidak ada jalan pintas untuk masalah mbulet ini, temund.
Jika kita menggunakan GET method, maka caranya adalah menyisipkan parameter untuk kedua bilangan pada link menuju lanjut.php. Selanjutnya di lanjut.php, parameter kedua bilangan dibaca nilainya.
<?php
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php?bil1=".$bil1."&bil2=".$bil2."'>Klik di sini</a>";
?>

<?php
$bil1=$_GET['bil1'];
$bil2=$_GET['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
?>

Kalau dilihat dari hasilnya, programnya berhasil gaiss....👏 Namun, cara ini juga memiliki kelemahan, yaitu ditampilkannya nilai input sebagai parameter dalam URL link.💔
Lalu, bagaimana jika kita menggunakan SESSION❔❔ Tentu saja, jika kita menggunakan ini, kita tidak perlu repot-repot menuliskan nilai input dalam URL link🙇. Nilai input ini nantinya akan disimpan dalam variabel SESSION. Selama browser masih aktif, atau sengaja dinonaktifkan (dihapus) SESSIONnya, maka variabel SESSION ini masih terus aktif.
Nilai yang disimpan dalam variabel ini bisa dibaca atau dikenali di beberapa halamaan script. Beda dengan variabel biasa, yang hanya dikenali pada halaman script itu saja.
Nah, sekarang bagaimana cara menyimpan nilai ke dalam variabel SESSION❓ Yang harus kita lakukan adalah mengaktifkan SESSIONnya terlebih dulu 👌menggunakan perintah.
$_SESSION[‘namaSession’] = value;
Nilai yang disimpan dalam SESSION bisa berupa bilangan, array, karakter, maupun string.
Jika teknik ini diterapkan pada script di atas, maka akan jadi seperti ini.
<?php
session_start(); // mengaktifkan SESSION
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
// menyimpan kedua bilangan ke dalam SESSION
$_SESSION['bil1']=$bil1;
$_SESSION['bil2']=$bil2;
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>";
?>

<?php
session_start();
// membaca nilai dari variabel SESSION
$bil1=$_SESSION['bil1'];
$bil2=$_SESSION['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
?>

Keterangan :
Pada script lanjut.php di atas kita tetap memberikan perintah session_start() karena dalam script lanjut.php ini kita masih memanfaatkan variabel SESSION.
Menghapus Variabel 🅂🄴🅂🅂🄸🄾🄽
Nah, bagaimana cara menghapus variabel SESSION❔ Cara pertama, kalian bisa langsung menghapus SESSION★ bila kalian keluar dari browser (EXIT). Atau cara kedua, kalian gunakan perintah ini★.
session_destroy();
dengan perintah tersebut, maka semua variabel SESSION akan terhapus. Namun, bagaimana jika kita hanya ingin menghapus variabel tertentu saja❓ Pakek perintah ini aja.
unset($_SESSION[‘nama session’]);
Penerapan 🅂🄴🅂🅂🄸🄾🄽
Biasanya SESSION digunakan untuk keperluan autentifikasi user melalui login. Adapun idenya adalah apabila user sukses melakukan login, maka username ini akan disimpan dalam sebuah SESSION. Mungkin kalian tidak mengerti kalimat di atas, ini sedikit mirip dengan saat kita ingin login ke dalam suatu akun 🐥.
Nah, muncullah sebuah pertanyaan. Mengapa username ini harus disimpan ke dalam SESSION❔ Agar dapat digunakan untuk mencegah adanya penyusup yang masuk aplikasi tanpa melalui login.
Mungkin kalimat ini sering kalian dengar saat kalian jadi sasaran empuk buat dimarahin.
‘Loh👀❓ Kok bisa😐❓❓ Logikanya mana😒❓❓❓’
Gini temund, untuk mengecek ada tidaknya penyusup yang masuk aplikasi tanpa login, kita bisa melakukannya hanya dengan mengecek SESSIONnya. Jika penyusup tadi masuk tanpa login, otomatis SESSIONnya belum ada, karena SESSION baru ada ketika user login dengan sukses.

Tugas Untuk Anda
Buatlah  autentifikasi  user  dari  suatu  aplikasi  web  menggunakan  konsep  SESSION. Adapun username-username yang boleh mengakses aplikasi ini adalah
Username dan password di atas harus disimpan dalam sebuah ARRAY. Adapun konsepnya sama seperti pada pengerjaan soal no. 5 Bab 11.
Berikut ini gambaran aplikasinya:
Terlebih dahulu buatlah sebuah desain halaman web dengan layout seperti di bawah ini:
Selanjutnya, bagi-bagilah layout tersebut ke dalam modul header.php dan footer.php Untuk halaman utama, tampilkan form login untuk user.
Selanjutnya bila login berhasil tampilkan halaman berikut ini (munculkan link navigasi) 
Login  dikatakan  berhasil  bila  password  yang  dimasukkan  oleh  seorang  user melalui form login sama dengan password yang tersimpan dalam aplikasi (dalam hal ini password yang ada dalam array). XXX adalah username yang sukses login.
Untuk setiap halaman Link 1, 2, dan 3 berikut ini tampilannya
Catatan:
Aplikasi yang dibuat harus bisa menghandle apabila login salah, misalnya muncul keterangan “Password yang dimasukkan salah” bila username terdaftar namun passwordnya salah, atau “Username tidak terdaftar” bila usernamenya tidak terdaftar dalam aplikasi.
Bila password login salah atau user tidak terdaftar, maka menu link navigasi tidak ditampilkan
Aplikasi  yang  dibuat  harus  bisa  menghandle   adanya  penyusup  yang  ingin langsung masuk ke halaman Link 1, 2 dan 3 tanpa melalui login (autentifikasi). Aplikasi yang dibuat harus bisa menghandle proses logout.
Jawab:
Berikut ini listing programnya, meskipun banyak mohon dimaklumi. Sekedar info, ku suka PUTIH :))
formsession1.php

<form method="post" action="submit1.php">
Username <input type="text" name="un" /><br />
Password <input type="password" name="pass" /><br />
<input type="submit" name="submit" value="Submit" />
</form>

submit1.php
<?php
session_start();
$un = $_POST['un'];
$pass = $_POST['pass'];
$_SESSION['un'] = $un;
$_SESSION['pass'] = $pass;
array ( Username , Password,
        A , password1,
        B , password2,
        C , password3,
        D , password4,
E , password5 );
switch($un)
{
    case $un == ' ' && $pass == ' ' :
    echo "<b>Anda belum memasukkan Username dan Password</b>";
    include "layout.php";
    break;
    case $un == 'A' && $pass == 'password1' ;
    include "layout1.php";
    break;
    case $un == 'B' && $pass == 'password2' ;
    include "layout1.php";
    break;
    case $un == 'C' && $pass == 'password3' ;
    include "layout1.php";
    break;
    case $un == 'D' && $pass == 'password4' ;
    include "layout1.php";
    break;
    case $un == 'E' && $pass == 'password5' ;
    include "layout1.php";
    break;
    default : echo "<b>Username atau Password Salah</b>". include "layout.php";
}
?>

layout.php
<html>
<head>
<title>Layout</title>
</head>
<body>
    <table width=100% border="1">
    <tr>
    <td colspan=2><center><b>Session</b></center></td>
    </tr>
    <tr>
<td><center><b>Silahkan Login</b></center></br>
        <center>
            <?php
            include "formsession1.php";
            ?>
        </center>
    </td>
    </tr>
    <tr>
        <td colspan=2><center><b>FOOTER</b></center></td>
    </tr>
</body>
</html>

layout1.php
<?php
    session_start();
    $un = $_SESSION['un'];
?>
<html>
<head>
<title>Layout</title>
</head>
<body>
    <table width=100% border=1>
    <tr>
    <td colspan=2><center><b>Session</b></center></br>
        <?php
        echo "Username : ".$un;
        ?>
    </td>
    </tr>
    <tr>
        <td><center><b>Anda Telah Berhasil Login</b></center></br>
            <center><a href=isi1.php>Microsoft Visual Studio</a>
            <a href=isi2.php>Microsoft Visual Studio Code</a>
            <a href=isi3.php>Belajar PHP</a>
            </center></br>
                <a href=logout.php><center>Logout</center></a>
    </tr>
    <tr>
        <td colspan=2><center><b>FOOTER</b></center></td>
    </tr>
</body>
</html>

Jika dipilih Microsoft Visual Studio:
isi1.php
<?php
session_start();
$un = $_SESSION['un'];
?>
<?php
include "header.php";
?>
<tr>
        <td><center><b>Microsoft Visual Studio</b></center></br>
        <p>Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.</p></br>
        </br>

        <center><img src="Visual Studio.PNG" width=500 high=800/></center></br>

        <center><b>Tampilan awal Microsoft Visual Studios 2012</b></center></br>
        </br>


        Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas .NET Framework). Selain itu, Visual Studio juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di atas .NET Compact Framework).

        Visual Studio kini telah menginjak versi Visual Studio 9.0.21022.08, atau dikenal dengan sebutan Microsoft Visual Studio 2008 yang diluncurkan pada 19 November 2007, yang ditujukan untuk platform Microsoft .NET Framework 3.5. Versi sebelumnya, Visual Studio 2005 ditujukan untuk platform .NET Framework 2.0 dan 3.0. Visual Studio 2003 ditujukan untuk .NET Framework 1.1, dan Visual Studio 2002 ditujukan untuk .NET Framework 1.0. Versi-versi tersebut di atas kini dikenal dengan sebutan Visual Studio .NET, karena memang membutuhkan Microsoft .NET Framework. Sementara itu, sebelum muncul Visual Studio .NET, terdapat Microsoft Visual Studio 6.0 (VS1998).
        <a href="layout1.php"><center><b>Back</b></center></a>
    </tr>
<?php
include "footer.php";
?>

Jika dipilih Microsoft Visual Studio Code:
isi2.php
<?php
session_start();
$un = $_SESSION['un'];
?>
<?php
include "header.php";
?>
    <tr>
        <td><center><b>Microsoft Visual Studio Code</b></center></br>
<center><img src="vs.png" width=200 high=300/></center></br>

Merupakan software yang dikembangkan oleh Microsoft untuk proses code editing. Software ini mendukung untuk berbagai jenis bahasa pemrograman. Fitur penting adalah kemampuan untuk membuat ekstensi yang menambahkan dukungan untuk bahasa baru, debugging , melakukan status code analyst , menambahkan liner code , menggunakan Language Server Protocol dan terhubung ke layanan tambahan.</br>
<br>
Visual Studio Code mencakup beberapa ekstensi untuk FTP, yang memungkinkan software untuk digunakan sebagai alternatif untuk pengembangan web. Kode dapat disinkronkan antara editor dan server, tanpa mengunduh software  tambahan.</br>
<br>
Visual Studio Code didukung oleh hampir setiap bahasa pemrograman utama. Untuk default terdiri dari : JavaScript, TypeScript, CSS, dan HTML tetapi ekstensi bahasa lainnya dapat ditemukan dan diunduh secara gratis dari VS Code Marketplace.
<br>
<br><center><img src="VS Code.png" width=300 high=400/></center></br>
<br>Cara membuat program baru :</br>
1. Buka software Microsoft Visual studio Code</br>
2. Pada menu Start atau File, pilih New File</br>
3. Masukkan program dengan benar</br>
4. Untuk menyimpan, gunakan format HTML jika ingin ditampilkan pada browser (Chrome, Mozila Firefox, dll)</br>
        <a href="layout1.php"><center><b>Back</b></center></a>
    </tr>
<?php
include "footer.php";
?>

Jika dipilih Belajar PHP:
isi3.php
<?php
session_start();
$un = $_SESSION['un'];
?>
<?php
include "header.php";
?>
<tr>
        <td><center><h1><b>Belajar PHP</b></h1></center></br>
<center><img src=php.jpg width=200 high=300/></center></br>
<br>
PHP (Hypertext Preprocessor) merupakan Bahasa yang dapat disispkan ke dalam HTML, yang bertujuan untuk memprogram situs web ke dalam bentuk yang dinamis. PHP  sendiri termasuk kedalam program server side (sisi penyedia), dimana suatu hal yang berada padaClient belum tentu sama dengan yang ada di Server.</br>
<br>
Terdapat beberapa sintaks dasar yang digunakan pada penyusunan program PHP. </br>
<br>
<b>Pembatas</b></br>
Sebagai awal dan akhir dari program. Terdiri dari < ?php dan diakhiri dengan ?>. Pembatas tersebut berfungsi sebagai pemisah antara kode PHP dengan kode yang lainnya, seperti HTML.</br>
<br>
<b>Variabel</b></br>
Untuk penunjukan variable, diawali dengan "$ Masukkan fungsi";</br>
<br>
<b>Komentar</b></br>
Terdapat jenis untuk pemberian komentar. Yaitu /* . . . */ untuk komentar multi baris dan // . . . // untuk komentar satu baris. Berfungsi untuk meningalkan catatan pada kode PHP  dan tidak akan ditampilkan pada program.</br>
<br>
<b>Fungsi</b></br>
Terdapat beragam fungsi yang disediakan oleh. Sebagai contoh echo berfungsi untuk menampilkan suatu variable pada web.</br>
<br>
<b>Cara Membuat Program Baru</b></br>
1. Buka software Visual Studio Code.</br>
2. Masukkan program sesuai urutan.</br>
<center><img src=php1.jpg width=300 high=500/></center></br>
3. Jalankan terlebih dahulu software XAMPPLITE sesuai dengan prosedur penggunaanya.</br>
<center><img src=xampplite.JPG width=300 high=500/></center></br>
4. Simpan program yang telah dibuat pada folder default XAMPPLITE >> htdocs >> New Folder >>Save.</br>
<center><img src=niko.JPG width=300 high=500/></center></br>
5. Buka web browser yang akan digunakan. Ketikkan localhost/nama file , kemudian tekan enter. Hasil akan ditampilkan pada web browser. </br>
<center><img src=web.JPG width=300 high=500/></center></br>
<br>
<center><img src=web1.JPG width=300 high=500/></center></br>
<br>
<center><h2><b>Selamat Mencoba . . .</b></h2></center></br>
        <a href="layout1.php"><center><b>Back</b></center></a>
    </tr>
<?php
include "footer.php";
?>

Sekian... Makasih yaaa pak!!

Upload File dengan PHP dan MySQL

Upload file adalah salah satu bagian terpenting dalam membuat aplikasi, khususnya yang berbasis web.Contohnya saat kita harus mengupload ent...