Tampilkan postingan dengan label php. Tampilkan semua postingan
Tampilkan postingan dengan label php. Tampilkan semua postingan

Senin, 08 November 2021

Menginstall Composer Di Android

Pendahuluan

Composer merupakan salah satu tools yang sangat sseing digunakan pada pemrograman PHP. Composer digunakan untuk menambahkan dan mengatur pustaka yang dibutuhkan untuk suatu software.

Persiapan

Untuk menggunkanya pada handphone anda, anda hanya perlu menyiapkan:
> Termux
> PHP
> Curl

Proses Pemasangan Composer

Untuk memasangnya mari update dulu package kita di termux dengan perintah
pkg update
Setelah itu install Curl dan PHP
pkg install curl php
Baru kita install composer menggunakan perintah curl
curl -sS https://getcomposer.org/installer | php -- --install-dir=/data/data/com.termux/files/usr/bin --filename=composer
Untuk memriksa apakah composer telah terpasang dengan benar kamu bisa gunakan perintah
composer
Kamu akan melihat penampilan termux kamu seperti ini.
composer php di handphone

Sip deh kamu tinggal gunakan untuk download pustaka php apapun yang kamu mau atau penginstalan framework php juga bisa. Keren bukan. Happy Coding all!

Upload File Atau Foto Pada PHP

Pendahuluan

Pada artikel sebelumya kita sering sekali menggunakan data berbentuk angka atau atau kata (kalimat). Kali ini kita akan membuat data yang berbentuk file atau foto yang biasanya digunakan untuk memperjelas informasi dari data yang disampaikan.
Kita sesungguhnya tidak menyimpan mentah-mentah file atau gambar tersebut tetapi hanya lokasinya saja. Mengapa lokasinya karena kita mengunggahnya ke folder/tempat yang disiapkan pada server.

Persiapan

Sebelum menggunakan upload file mari setting pengaturan di php.ini yang berisi line file_uploads untuk di atur jadi On file_uploads = On. Untuk membuat upload gambar atau file kita memerlukan ini:
>PHP
>Code Editor

Pembuatan Upload File atau Gambar

Untuk membuatnya kita harus membuat file yang bernama unggah.php yang berfungsi untuk mmbuat formulir pengunggahan dan mengunggahnya ke server.
<?php
$status ="Silahkan upload 1 gambar";
if(isset($_POST['submit'])){
    $filename = $_FILES['file']['name'];
    try{
        move_uploaded_file($_FILES['file']['tmp_name'],'upload/'.$filename);
        $status = htmlspecialchars( basename( $_FILES["file"]["name"])). " sukses terupload";
    }catch(Exception $e){
        $status = $e;
    }catch(Error $e){
        $status = $e;
    }
}
echo $status;
?>
<form method='post' enctype='multipart/form-data'>
 <input type="file" name="file" id="file" multiple>

 <input type='submit' name='submit' value='Upload'>
</form>

Pembuatan Upload Banyak File atau Gambar

Berikut ini merupakan skrip kode untuk menggunggah banyak file dan (atau) gambar.
<?php 
if(isset($_POST['submit'])){
 
 // Count total files
 $countfiles = count($_FILES['file']['name']);

 // Looping all files
 for($i=0;$i<$countfiles;$i++){
  $filename = $_FILES['file']['name'][$i];
  
  // Upload file
  
  move_uploaded_file($_FILES['file']['tmp_name'][$i],'upload/'.$filename);
 
 }
?>
<form method='post' enctype='multipart/form-data'>
 <input type="file" name="file[]" id="file" multiple>

 <input type='submit' name='submit' value='Upload'>
</form>
Skrip ini juga bisa digunakan dalam penyaringan menurut ukuran dan jenis file. Untuk tambahan $_FILES['file']['size'] digunakan untuk mengetahui ukuran file yang diunggah. Sedangkan $_FILES['file']['type'] mengetahui tipe filenya. Mari kita gunakan pada script kode yang sudah kita buat.
multiple upload file php
<?php
if(isset($_POST['submit'])){
 $stat = 1;
 // Membuat fungsi penyaringan
 function Filtering(&$arrFiles){
    $file_ary = array();
    $file_count = count($arrFiles['name']);
    $file_keys = array_keys($arrFiles);

    for ($i=0; $i<$file_count; $i++) {
        foreach ($file_keys as $key) {
            $file_ary[$i][$key] = $arrFiles[$key][$i];
        }
    }

    return $file_ary;
 }
 $file_ary = Filtering($_FILES['file']);
 // Memasukan semua file ke dalam fungsi penyaringan
    foreach ($file_ary as $file) {
        if ($file['size'] > 500000){
            $stat = 0;
            print 'File terlalu besar' . $stat;
        }
        //untuk menyimpan lokasi file kamu bisa menggunakan variabel baru
       //yang berisi 'upload/'.basename($file['name'])
       //ini bisa digunakan untuk data pada database kamu.
        $TipeFile = strtolower(pathinfo( 'upload/'.basename($file['name']),PATHINFO_EXTENSION));
        if($TipeFile != 'png'
        && $TipeFile != 'jpeg'
        && $TipeFile != 'jpg'
        && $TipeFile != 'gif'){
            $stat = 0;
            print 'File bukan gambar' . $stat;
        }
        //hapus tanda untuk melihat informasi file
        print '<br />Nama File: ' . $file['name'];
        print '<br />Tipe File: ' . $TipeFile;
        print '<br />Ukuran File: ' . $file['size'];
    }
 $countfiles = count($_FILES['file']['name']);
 // Looping all files
 for($i=0;$i<$countfiles;$i++){
  $filename = $_FILES['file']['name'][$i];
  // Upload file
  if($stat == 1){
      move_uploaded_file($_FILES['file']['tmp_name'][$i],'upload/'.$filename);
      print '<br />Sukses terunggah : upload/'.$filename;
     }
 }
}
?>
<form method='post' enctype='multipart/form-data'>
 <input type="file" name="file[]" id="file" multiple>

 <input type='submit' name='submit' value='Upload'>
</form>
Diatas saya menggunakan satu fungsi yang sederhana untuk membuat semua file yang diunggah menjadi array. Dan menambahkan variabel $stat untuk memberi tanda bahwa file sudah sesuai dengan kriteria kita yakni tidak lebih dari 500k dan berekstensi gambar. Semoga bermanfaat Dan happy coding yah.

Sabtu, 30 Oktober 2021

Pencarian Data PHP

Pada suatu waktu pasti kita akan mencari data yang terkait dalam banyak data yang kita kelola. Ini memang mudah dilakukan apabila data kita tidak mencapai ratusan tapi bagaimana jika data yang kita kelola lebih dari ratusan. Hal sederhana ini akan sangatlah menyiksa. Untuk itu mari kita buat form cari data untuk memudahkan kita dalam berinteraksi dengan data yang kita kelola.

Untuk membuat pencarian kita menggunakan form pencarian yang kita akan tarud diatas tabel data tamu pada file read.php. Mari kita buat formnya dengan script ini.

        <!--- ini form pencarian -->

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button><input type="text" name="namadpn" required></div>

        </form>

Bila kita menekan tombol cari maka kita akan mengirimkan namadpn yang dicari. Setelah itu buatlah file search.php dimana kita akan menampilkan data yang ditemukan berikut juga form pencariannya lagi sehingga pengguna tidak perlu kembali ke halaman read.php untuk mencari data yang lain.

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>CARI Data <?php echo $_GET['namadpn']; ?></title>

    </head>

    <body>

        <!--- ini form pemcarian -->

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button><input type="text" name="namadpn" required></div>

        </form>

        <?php

        require_once("connectdb.php");

        if(!isset($_GET['namadpn'])){

        $namadpn = '*';

        }else{

        $namadpn = $_GET['namadpn'];

        }

        $perhalaman = 100;

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu where namadpn=\"".$namadpn."\"";

        $result = $conn->query($sql);

        $jumlahResult = $result->num_rows;

        $nomer_halaman = ceil ($jumlahResult / $perhalaman);  

  

    //determine which page number visitor is currently on  

        try{

        if (!isset ($_GET['halaman']) ) {  

        $halaman = 1;  

        } elseif (is_numeric($_GET['halaman'])) {  

        $halaman = $_GET['halaman'];  

        }else{

        echo "<p><b>halaman tidak ditemukan</b></p>";

        }

  

        //determine the sql LIMIT starting number for the results on the displaying page  

        $halaman_pertama = ($halaman-1) * $perhalaman;

        $sql = "SELECT *FROM tamu where namadpn = \"".$namadpn."\" LIMIT " . $halaman_pertama . ',' . $perhalaman;

        $result = $conn->query($sql);

        if ($jumlahResult > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td><a  onclick=\"konfirmasi(".$row["id"].")\">Hapus</a></td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        }catch(Exception $e){

        print "System sedang sibuk harap kembali lagi nanti";

        }catch(Error $e){

        print "404 error";

        }

        $conn->close();

        

        for($halaman = 1; $halaman<= $nomer_halaman; $halaman++) {  

                echo '<a href = "search.php?namadpn='.$namadpn.'&halaman=' . $halaman . '">' . $halaman . ' </a>';  

        }

        ?>

<!--- Dibawah ini fungsi javascript untuk konfirmasi penghapusan data --->

<script>

    function konfirmasi(id){

    let  a = confirm("Apakah kamu yakin ingin menghapus data dengan id "+id+"?");

    if (a==true){

        window.location.href = "/remove.php?id="+id ;

    }

    }

</script>

    </body>

</html>

Bagaimana bila kita ingin mencari data dari namablkg. Kita bisa memodifikasinya form pencarian dengan menambahkan nama kolom yang ingin dicari seperti id, nama belakang atau email. Saya menggunakan tag select yang elemen optionya berupa kolom yang akan dicari yakni id, nama depan, nama belakang dan email.

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button>

            <select name="kolom">

                <option value="id">ID</option>

                <option value="namadpn">Nama Depan</option>

                <option value="namablkg">Nama Belakang</option>

                <option value="email">email</option>

            </select>

            <input type="text" name="namadpn" required></div>

        </form>

Tampilannya akan menjadi seperti ini

Pencarian data pada php

Maka script kode yang dibuat akan menjadi seperti ini

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>CARI Data <?php echo $_GET['namadpn']; ?></title>

    </head>

    <body>

        <!--- ini form pemcarian -->

        <form action="search.php" method="get">

            <div><button type="submit">Cari</button>

            <select name="kolom">

                <option value="id">ID</option>

                <option value="namadpn">Nama Depan</option>

                <option value="namablkg">Nama Belakang</option>

                <option value="email">email</option>

            </select>

            <input type="text" name="namadpn" required></div>

        </form>

        <?php

        $kolom = $_GET['kolom'];

        require_once("connectdb.php");

        if(!isset($_GET['namadpn'])){

        $namadpn = '*';

        }else{

        $namadpn = $_GET['namadpn'];

        }

        $perhalaman = 100;

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu where ".$kolom."=\"".$namadpn."\"";

        $result = $conn->query($sql);

        $jumlahResult = $result->num_rows;

        $nomer_halaman = ceil ($jumlahResult / $perhalaman);  

  

    //determine which page number visitor is currently on  

        try{

        if (!isset ($_GET['halaman']) ) {  

        $halaman = 1;  

        } elseif (is_numeric($_GET['halaman'])) {  

        $halaman = $_GET['halaman'];  

        }else{

        echo "<p><b>halaman tidak ditemukan</b></p>";

        }

  

        //determine the sql LIMIT starting number for the results on the displaying page  

        $halaman_pertama = ($halaman-1) * $perhalaman;

        $sql = "SELECT *FROM tamu where ".$kolom." = \"".$namadpn."\" LIMIT " . $halaman_pertama . ',' . $perhalaman;

        $result = $conn->query($sql);

        if ($jumlahResult > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td><a  onclick=\"konfirmasi(".$row["id"].")\">Hapus</a></td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        }catch(Exception $e){

        print "System sedang sibuk harap kembali lagi nanti";

        }catch(Error $e){

        print "404 error";

        }

        $conn->close();

        

        for($halaman = 1; $halaman<= $nomer_halaman; $halaman++) {  

                echo '<a href = "search.php?namadpn='.$namadpn.'&halaman=' . $halaman . '">' . $halaman . ' </a>';  

        }

        ?>

<!--- Dibawah ini fungsi javascript untuk konfirmasi penghapusan data --->

<script>

    function konfirmasi(id){

    let  a = confirm("Apakah kamu yakin ingin menghapus data dengan id "+id+"?");

    if (a==true){

        window.location.href = "/remove.php?id="+id ;

    }

    }

</script>

    </body>

</html>

Bila kamu punya pesan error periksa kembali script kode yang kamu buat. Tetapi bila kamu ingin bertanya tentang eror yang terjadi kamu bisa berkomentar dikolam komentar atau kamu bisa menghubungi saya di halaman kontak website ini. Happy coding yah.

Pagination Pada PHP

Untuk selanjutnya yakni pada tutorial ini akan membahas tampilan data. Bagaimana bila tampilan data yang kita kelola sangat besar mencapai ribuan bahkan jutaan data, tentu ini akan sangat banyak memakan waktu ketika menampilkan data dalam satu halaman. Dengan demikian kita harus membaginya jadi persekian data perhalaman agar waktu untuk menampilkan data lebih cepat atau yang sering disebut pagination.
Paginasi php


Buatlah variabel untuk data yang ditampilkan pada file read.php dengan variabel $perhalaman dimana jumlah data perhalaman yang akan ditampilkan. Untuk variabel $jumlahResult untuk jumlah semua data dari sql yang kita jalankan. Pada variabel $nomer_halaman kita menggunakan fungsi ceil yang menggunakan hasil pembagian semua data dengan jumlah data yang akan ditampilkan perhalamannya. Berikut ini contoh penggunaanya.
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
        <meta name="description" content="php programming" />
        <meta name="author" content="Yusuf Abdulloh" />
        <title>BACA Data</title>
    </head>
    <body>
        <?php
        require_once("connectdb.php");
        $perhalaman = 50
        ;
        $sql = "SELECT id, namadpn, namablkg , email FROM tamu";
        $result = $conn->query($sql);
        $jumlahResult = $result->num_rows;
        $nomer_halaman = ceil ($jumlahResult / $perhalaman);  
        if (!isset ($_GET['halaman']) ) {  
        $halaman = 1;  
        } elseif (is_numeric($_GET['halaman'])) {  
        $halaman = $_GET['halaman'];  
        }else{
        echo "<p><b>halaman tidak ditemukan</b></p>";
        }  
        $halaman_pertama = ($halaman-1) * $perhalaman;
        $sql = "SELECT *FROM tamu LIMIT " . $halaman_pertama . ',' . $perhalaman;
        $result = $conn->query($sql);
        try{
        if ($jumlahResult > 0) {
            echo "<table>";
            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";
            while($row = $result->fetch_assoc()) {
                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td><a  onclick=\"konfirmasi(".$row["id"].")\">Hapus</a></td></tr>";
            }
        echo "</table>";
        } else {
            echo "Data tidak tersedia";
        }
        }catch(Exception $e){
        print "System sedang sibuk harap kembali lagi nanti";
        }catch(Error $e){
        print "404 error";
        }
        $conn->close();
        
        for($halaman = 1; $halaman<= $nomer_halaman; $halaman++) {  
                echo '<a href = "read.php?halaman=' . $halaman . '">' . $halaman . ' </a>';  
        }
        ?>
<!--- Dibawah ini fungsi javascript untuk konfirmasi penghapusan data --->
<script>
    function konfirmasi(id){
    let  a = confirm("Apakah kamu yakin ingin menghapus data dengan id "+id+"?");
    if (a==true){
        window.location.href = "/remove.php?id="+id ;
    }
    }  
</script>
    </body>
</html>
Pada script kode diatas kita menggunakan metode get yang merupakan metode yang bisa saja menjadi cela atau bug keamanan maka dari itu saya menaruh try-catch block pada pengeksekusian sql perhalaman sehingga script diatas sudah aman dari bug keamanan tersebut. Disisi lain kamu harus perhatikan pada script $_GET['halaman'] yang merupakan hasil dari metode get untuk nomer halaman yang akan ditampilkan. Saya juga menggunakan fungsi is_numeric untuk memfilter masukan dari metode get untuk nomer halaman dimana yang bisa dieksekusi dengan benar hanyalah data tipe nomer. selain itu akan dialihkan ke status error yang dibuat.
Program ini cukup kompleks dan memakan banyak waktu untuk program besar yang membutuhkan proses maintenance (pembaruan) secara berkala. sehingga terkadang kita menambah waktu untuk menulis kembali kode yang mesti digunakan. Tetapi sangat bagus untuk dipelajari sebagai dasar pembuatan website atau blog yang dinamis. Happy coding all!

Jumat, 22 Oktober 2021

Hapus Data Mysqli-PHP

Menghapus data yang sudah tidak berguna cukuplah mudah. Ubah file read.php menjadi:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>READ Data</title>

    </head>

    <body>

        <?php

        require_once("connectdb.php");

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu";

        $result = $conn->query($sql);


        if ($result->num_rows > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td><a href=\"remove.php?id=".$row["id"]."\">Hapus</a></td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        $conn->close();

        ?>

    </body>

</html>

Pada script kode <a href=\"remove.php?id=".$row["id"]."\">Hapus</a> kita secara tidak langsung membuat method get untuk id menurut no id sesuai dengan id baris datanya. Selanjutnya kita membuat file remove.php dengan script kode dibawah ini:

<?php

require_once("connectdb.php");

$id = $_GET["id"];

$sql = "DELETE FROM tamu WHERE id=".$id;


if (mysqli_query($conn, $sql)) {

   // echo "Record deleted successfully";

    header("location:read.php",true,301);

    exit();

} else {

  echo "Error deleting record: " . mysqli_error($conn);

}


mysqli_close($conn);

?>

Disini kita menggunakan method get untuk menentukan id data yang dihapus. Bila proses ini berhasil maka kamu akan langsung beralih ke halaman read.php dan bisa melihat pperasi hapus yang kamu lakukan.

Untuk membuat konfirmasi sebelum proses penghapusan kamu bisa menambahkan function click memakai javascript atau bisa juga mengalihkan ke page lain untuk konfirmasi ini. Untuk contoh scriptnya kamu bisa merubah file read.php dengan kode ini:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>READ Data</title>

    </head>

    <body>

        <?php

        require_once("connectdb.php");

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu";

        $result = $conn->query($sql);


        if ($result->num_rows > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td><a  onclick=\"konfirmasi(".$row["id"].")\">Hapus</a></td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        $conn->close();

        ?>

<!--- Dibawah ini fungsi javascript untuk konfirmasi penghapusan data --->

<script>

    function konfirmasi(id){

    let a = confirm("Apakah kamu yakin ingin menghapus data dengan id "+id+"?");

    if (a==true){

        window.location.href = "/remove.php?id="+id ;

    }

    }

</script>

    </body>

</html>

Bila kamu berhasil maka akan tampil pop up seperti ini bila klik teks hapus pada tabel. Jika kamu mengklik ok maka akan menghapus data.

hapus data mysqli php


Selamat anda sudah pada bagian akhir dari Operasi CRUD MySqli dengan PHP. Untuk itu sebagai hadiah dari penulis untuk pembaca setia saya kirimkan file-file yang telah saya buat untuk tutorial ini. Semoga bermanfaat Happy coding semua!

Perbarui Data PHP-MySqli

Pendahuluan

Untuk artikel ini saya akan membahas cara memperbarui data pada database menggunakan satu formulir yang dimana kita dengan leluasa memperbaruinya. Sebelumnya kamu harus mengedit file read.php yang sebelumnya dibuat pada artikel Membaca Data PHP-MySqli dengan skrip kode ini:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>READ Data</title>

    </head>

    <body>

        <?php

        require_once("connectdb.php");

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu";

        $result = $conn->query($sql);


        if ($result->num_rows > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th><th colspan=\"2\">Aksi</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td><td><a href=\"view.php?id=".$row["id"]."\">Perbarui</a></td><td>Hapus</td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        $conn->close();

        ?>

    </body>

</html>

Disini kita menambahkan tabel Aksi yang berisi Perbarui dan Hapus. Dimana kita menambahkan url yang mengirimkan no id yang akan diperbarui.

perbarui data mysqli dengan php

Perbarui Data

Selanjutnya kita membuat file view.php yang berisi formulir untuk memperbarui data berdasarkan dengan id yang telah dikirimkan. Isi dari file view.php yakni

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>VIEW Data</title>

    </head>

    <body>

        <?php

        require_once("connectdb.php");

        $id = $_GET["id"];

        $sql = "SELECT * FROM tamu WHERE id=".$id;

        $result = $conn->query($sql);

        if ($result->num_rows > 0) {

            echo "<table>";

            echo "<tr><th colspan=\"2\">Formulir Update Data Id ".$id."</th></tr>";

            echo "<form action=\"update.php\" method=\"post\">";

            echo "<input type=\"hidden\" value= \"".$id ."\" name=\"id\" required>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>Nama Depan</td><td><input type=\"text\" value= \"".$row["namadpn"] ."\" name=\"namadpn\" required></td></tr><tr><td>Nama Belakang</td><td> <input type=\"text\" value= \"".$row["namablkg"] ."\" name=\"namablkg\" required></td></tr><tr><td>Email</td><td><input type=\"email\" value= \"".$row["email"] ."\" name=\"email\" required></td></tr><tr><td><button type=\"submit\">Perbarui</button><a href=\"read.php\"><button>Batal</button></a></td></tr>";

            }

            echo "</form>";

            echo "</table>";

        } else {

            echo "Data tidak tersedia";

        }

        $conn->close();

        ?>

    </body>

</html>

Bila script kode kamu benar kamu akan mendapatkan tampilan seperti ini:

update data mysqli dengan php

Selajutnya kita akan membuat file update.php yang akan memanipulasi data yang sudah dikirim dari formulir update ke database mysqli. Pada kali ini saya menggunakan metode post agar selalu aman dalam memanipulasi data. Isi dari file update.php yakni:

<?php
$id = $_POST['id'];
$namadpn = $_POST['namadpn'];
$namablkg = $_POST['namablkg'];
$email = $_POST['email'];
require_once("connectdb.php");
$sql = "UPDATE tamu SET namadpn='$namadpn', namablkg='$namablkg', email='$email' WHERE id=".$id;

if ($conn->query($sql) === TRUE) {
    header("location:read.php",true,301);
    exit();
} else {
  echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
Bila script kode kamu benar maka kamu akan langsung teralihkan ke halaman READ Data dan kamu bisa melihat perubahan data itu sendiri. Untuk artikel yang akan datang akan membahas tentang hapus data pada database mysqli.


Membaca Data PHP-MySqli

Pendahuluan

Pada artikel sebelumnya saya membahas tentang menghubungkan applikasi kita ke mysqli dan menambahkan data atau create data. Kesempatan ini saya akan membuat applikasi php yang berguna untuk membaca data tamu. Dengan applikasi ini kita bisa dengan mudah membaca data yang ada.

Membaca Data


membaca data mysqli dengan php

Untuk membaca data kita buat file read.php yang berisi code berikut ini:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>READ Data</title>

    </head>

    <body>

        <?php

        require_once("connectdb.php");

        $sql = "SELECT id, namadpn, namablkg , email FROM tamu";

        $result = $conn->query($sql);


        if ($result->num_rows > 0) {

            // output data of each row

            echo "<table>";

            echo "<tr><th>ID</th><th>Nama</th><th>Email</th></tr>";

            while($row = $result->fetch_assoc()) {

                echo "<tr><td>" . $row["id"]. "</td><td>" . $row["namadpn"]. " " . $row["namablkg"]."</td><td>" .$row["email"]."</td></tr>";

            }

        echo "</table>";

        } else {

            echo "Data tidak ada";

        }

        $conn->close();

        ?>

    </body>

</html>

Bila data kamu tidak ada maka akan tampil kalimat Data tidak ada pada browser kamu bila kamu mengakses localhost:8000/read.php. Kamu bisa langsung melihatnya dalam bentuk tabel. $result merupakan array yang berisi data tamu.Selamat Mencoba! Happy Coding! Untuk tutorial selanjutnya kita akan membuat pembaruan data tamu.

Catatan: Jangan lupa untuk membuat terlebih dahulu membuat file connectdb.php

Kamis, 21 Oktober 2021

Menambah Data PHP-MySqli

Pendahuluan


Dalam pembuatan suatu applikasi tidak dipungkiri bahwa kita membutuhkan Database atau Basisdata untuk data pada applikasi yang dibuat. Data dari database sendiri diolah menjadi suatu informasi. Pengolahan data tersebut meliputi 4 dasar operasi yakni 

1.Menambah Data

2.Membaca Data

3.Perbarui Data

4.Hapus Data

Operasi pengolahan data tersebut sering dikenal sebagai CRUD (Create Read Update Delete). Tetapi sebelum itu kita harus bisa  menghubungkan applikasi dengan database MySqli yang kita gunakan.

Menghubungkan MySqli Dengan PHP

Ini merupakan skrip code untuk menghubungkan MySqli dengan applikasi yang kita buat. Contoh dibawah merupakan cara prosedural. Buatlah nama file connectdb.php dengan isi skrip code sebagai berikut ini:

<?php

$servername = "localhost";

$username = "root";

$password = "123";


// Create connection

$conn = mysqli_connect($servername, $username, $password);


// Check connection

if (!$conn) {

  die("Koneksi gagal karena : " . mysqli_connect_error());

}

echo "Koneksi sukses";

?>


Bila kamu berhasil maka akan muncul tampilan seperti ini. Untuk menutup koneksi database kita bisa menggunakan satu baris kode ini.

mysqli_close($conn);

Sebelumnya kita harus membuat Database dengan nama mydb dan tabel tamu. Caranya yakni masuk ke mysql dan jalankan code berikut ini.

Membuat database mydb:

create database mydb;

Menggunakan database mydb:

use mydb;

Membuat tabel tamu:

CREATE TABLE tamu (

id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

namadpn VARCHAR(30) NOT NULL,

namablkg VARCHAR(30) NOT NULL,

email VARCHAR(50),

reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

);

Untuk melihat tabel yang ada di database mydb gunakan perintah ini:

show tables;

Untuk melihat isi tabel tamu
select * from tamu;
menambahkan data dengan mysql pada console

Menambah Data

Create data atau memasukan data tamu. Sebelum itu kita mesti menambahkan database yang kita gunakan pada file connectdb.php salin dan tempel kode ini :

<?php

$servername = "localhost";

$username = "root";

$password = "123";

$dbname = "mydb";


// Create connection

$conn = mysqli_connect($servername, $username, $password,$dbname);


// Check connection

if (!$conn) {

  die("Koneksi gagal karena : " . mysqli_connect_error());

}

//echo "<div>Koneksi sukses</div>";

?>


Kita buat create.php dengan kode berikut ini:

<?php

require_once("connectdb.php");

$sql = "INSERT INTO tamu (namadpn, namablkg, email)

VALUES ('Yusuf', 'Abdulloh', '[email protected]')";


if ($conn->query($sql) === TRUE) {

  echo "Sukses Ditambahkan";

} else {

  echo "Error: " . $sql . "<br>" . $conn->error;

}

$conn->close();

?>

Jika berhasil kamu akan mendapatkan tampilan seperti ini.

menambahkan data mysqli php

Untuk membuat form tambahkan data tamu untuk memudahkan dalam penambahan data. Buatlah form.php dengan skrip kode sebagai berikut ini:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

        <meta name="description" content="php programming" />

        <meta name="author" content="Yusuf Abdulloh" />

        <title>CREATE Data</title>

    </head>

    <body>

        <form action="create.php" method="post">

            <table>

                <tr><td>Nama Depan</td><td><input type="text" name="namadpn" required/></td></tr>

                <tr><td>Nama Belakang</td><td><input type="text" name="namablkg" required/></td></tr>

                <tr><td>Email</td><td><input type="email" name="email" required/></td></tr>

                <tr><td colspan="2"><input type="submit" name="submit" value="Submit" /></td></tr>

            </table>

        </form>

    </body>

</html>


Modifikasilah file create.php dengan kode skrip ini:

<?php

$namadpn = $_POST['namadpn'];

$namablkg = $_POST['namablkg'];

$email = $_POST['email'];

require_once("connectdb.php");

$sql = "INSERT INTO tamu (namadpn, namablkg, email)

VALUES ('$namadpn', '$namablkg', '$email')";


if ($conn->query($sql) === TRUE) {

    header("location:read.php",true,301);

    exit();

} else {

  echo "Error: " . $sql . "<br>" . $conn->error;

}

$conn->close();

?>

Selanjutnya kita akan membuat applikasi web untuk melihat data tamu pada applikasi kita. Terimakasih telah membaca tutorial ini semoga bermanfaat. Happy Coding All.

Rabu, 20 Oktober 2021

Inheritace Pada PHP

Inheritance Class

Class-class bisa menurunkan properti dan method yang ada pada class lainya. Class yang diturunkan biasanya disebut subclass sedangkan class yang menurunkanya disebut parent class. Inheritace sendiri bisa digunakan menggunakan kata extends. Seperti dalam penggunaan class pemain dan class kiper

class pemain{

    public $nama;

    public function tendang(){

    echo "tendang bola";

    }

}

class kiper extends pemain{

}

$yusuf = new kiper();

$yusuf -> tendang();

Tampilan Properti Dan Method PHP

Pada artikel sebelumnya kita sering menggunakan kata public sebelum membuat properti dan method pada class Buku di file yang kita bernama buku.php. Kata public tersebut menandakan bahwa setiap orang dari manapun bisa mengaksesnya. Ini disebut tampilan properti dan method atau visibility properti dan method. PHP sendiri memiliki 3 tampilan dalam menampilkan properti dan method yakni:

Jenis Visibility/TampilanHak akses
privateHanya mengizinkan untuk mengakses member dari class yang sama. Jika class A dan B menginstance ke class C. Maka class A bisa mengakses class B maupun sebaliknya.
protectedMemberikan akses ke member class ketika proses inheritance
publicSemua class dan file bisa mengaksenya tanpa terkecuali

Mari kita buat class Konsumen pada file konsumen.php dengan menggunakan private, agar data dari konsumen kita tidak bisa dilihat oleh sembarang orang.

<?php

class Konsumen {

 private $id;

 private $namadpn;

 private $namablkg;

 private $email;

 public function __construct(

 int $id,

 string $namadpn,

 string $namablkg,

 string $email

 ) {

 $this->id = $id;

 $this->namadpn = $namadpn;

 $this->namablkg = $namablkg;

 $this->email = $email;

 }

 public function getId(): id {

 return $this->id;

 }

 public function getNamadpn(): string {

 return $this->namadpn;

 }

 public function getNamablkg(): string {

 return $this->namablkg;

 }

 public function getEmail(): string {

 return $this->email;

 }

 public function setEmail(string $email) {

 $this->email = $email;

 }

}

Lalu buatlah class buku seperti ini:

<?php

class Buku {

 private $isbn;

 private $judul;

 private $pengarang;

 private $tersedia;

 public function __construct(

 float $isbn,

 string $judul,

 string $pengarang,

 int $tersedia = 0

 ) {

 $this->isbn = $isbn;

 $this->judul = $judul;

 $this->pengarang = $pengarang;

 $this->tersedia = $tersedia;

 }

 public function getIsbn(): float {

 return $this->isbn;

 }

 public function getJudul(): string {

 return $this->judul;

 }

 public function getPengarang(): string {

 return $this->pengarang;

 }

 public function tersedia(): int {

 return $this->tersedia;

 }

 public function getPrintableTitle(): string {

 $result = '<i>' . $this->judul . '</i> - ' . $this->pengarang;

 if (0>$this->tersedia) {

     $result .= ' <b>Tidak tersedia</b>';

 }

 return $result;

 }

 public function getCopy(): bool {

 if ($this->tersedia < 1) {

 return false;

 } else {

 $this->tersedia--;

 return true;

 }

 }

 public function addCopy() {

 $this->tersedia++;

 }

}

?>

Kemudian untuk menggunakanya kita menggunakan class init.php dengan code sebagai berikut:

<?php

required_once("/buku.php");

required_once("/konsumen.php");

$buku1 = new Buku(9785267006323,"1984", "George Orwell", 12);

$buku2 = new Buku(9780061120084,"To Kill a Mockingbird", "Harper Lee", 2);

$konsumen1 = new Konsumen(1, 'John', 'Tor', '[email protected]');

$konsumen2 = new Konsumen(2, 'Mary', 'Vania', '[email protected]');

?>

Dengan demikian kode yang kamu buat lebih rapi dan mudah untuk digunakan.

PHP Interface

Sebuah interface atau antarmuka pada php yang digunakan untuk daftar method digunakan untuk setiap class. Tetapi method tidak dijabarkan. Untuk menggunakannya kamu bisa menggunakan kata kunci implements. Buatlah file bernama implementasi.php dengan script kode sebagai berikut:

<?php

interface bukuInterface{

public function tersedia();

}

class Buku implements bukuInterface{

public $tersedia;

public function __construct(int $tersedia){

$this->tersedia = $tersedia;

}

public function tersedia(){

if ($this->tersedia > 0){

echo "tersedia";

}

}

}

$bukuDongeng = new Buku(12);

$bukuDongeng -> tersedia();

?>

static dan final Method / Properti

static adalah kata kunci yang digunakan untuk mendefinisikan static method atau properti yang bisa diakses tanpa membuat suatu object di class tersebut.

class Konsumen{

static $nama = "konsumen baru";

static function getNama(){

echo self::$nama;

}

}

$ucup = new Konsumen();

$ucup::getNama();

Sedangkan kata kunci final didefinisikan method atau properti tidak bisa diganti pada childclass. Sehingga tidak bisa diturunkan (inherit) pada yang lain.

class Ayah{

final function gunakanUang(){

echo "Gunakan sebijak-bijaknya";

}

}

class Anak extends Ayah{

public function bermain(){

echo "bermain dengan teman teman";

}

}

Inheritance PHP

Class Abstract

Kata kunci abstrak digunakan untuk membuat class dan method abstrak. Method abstak hanya bisa diguanakan pada abstrak class. Keuntungan abstrak class dapat digunakan hanya ketika diturunkan pada child class, dan harus mengimplementasikan semua abstrak method.

abstract class AdminFee{

abstract public function pembayaran($bayar);

protected function addFee(){

return 2;

}

}

class Total extends AdminFee{

public function pembayaran($bayar){

return $this->addFee() + $bayar;

}

}

$transaksi = new Total();

echo $transaksi->pembayaran(6000); //menampilkan 6002

Kamis, 14 Oktober 2021

OOP Pada PHP

Pendahuluan

Pemrograman Berbasis Objek atau (OOP) berfungsi untuk membuat program menjadi lebih nyata seperti didunia. OOP juga salah satu paradigma tersering digunakan. Ketika sebuah applikasi berkembang, tumbuh dan membutuhkam data yang lebih spesifik disini para ilmuan komputer menemukan konsep Object Oriented Programming (OOP).

Untuk permulaan pada pengenalan OOP ini kita bagi menjadi 2 hal yang ada pada Pemrograman Berbasis Objek (OOP) yakni Class dan Object. Diharapkan dengan adanya artikel ink akan membuat pengembang lebih paham dan tepat dalam menggunakan OOP pada applikasi yang dibuat.

Class dan Object

Object diciptakan menggunakan class. Sedangkan class sendiri adalah definisi dari tentang objek, apa yang bisa dilakukan oleh objek itu kurang lebih seperti sebuah rumus untuk objek.

Mari kita buatkan contoh untuk Toko Buku yang pernah kita buat.Kita akan buat dua buah class yakni buku dan pelanggan. Dengan mengggu akan kodenya yakni:

<?php

class Buku{

}

class Pelanggan{

}

?>

Untuk membuat objek dari class Buku, kiata hanya cukup menambahkan kata new diikuti nama class.Kita menginisiasinya kedalam bentuk variabel seperti ini:

$buku = new Buku();

$pelanggan = new Pelanggan();

Dengan begitu kita bisa membuat objek sebanyak yang kita mau dengan menggunakan satu class.

$buku1 = new Buku();

$buku2 = new Buku();


Properti Class

Mari kita lanjutkan ke pembahasan properti class pada OOP. Kita akan membahas properti dari buku dulu yakni seperri isbn, judul, pengarang, halaman dan ketersediaan. Buatlah file bernama Buku.php yang isinya:

<?php

class Buku {

 public $isbn;

 public $judul;

 public $pengarang;

 public $halaman;

 public $ketersediaan;

}

?>

Mari kita buat objek dengan class Buku sekaligus propertinya.


$buku1 = new Buku();

$buku1 -> judul = "Laskar Pelangi";

$buku1 -> pengarang ="Habiburrahman";

$buku1 -> ketersediaan= true;

$buku1 -> halaman = 336;

$buku1 -> isbn = 9780061120084;

var_dump($buku1);


Menginisiasi banyak objek dan nilainya menggunakan satu class. Contohnya seperti ini


$book1 = new Buku();

$book1->title = "1984";

$book2 = new Buku();

$book2->title = "To Kill a Mockingbird";

var_dump($book1, $book2);


Class Methods

Methods adalah function-function yang dibuat dalam sabuah class. Methods juga memiliki sifat yang sama dengan function-function biasanya. Mari kita buat dalam class Buku

<?php

class Buku {

 public $isbn;

 public $judul;

 public $pengarang;

 public $halaman;

 public $ketersediaan;

 public function getPrintableTitle(): string {

 $result = '<i>' . $this->judul

 . '</i> - ' . $this->pengarang;

 if (!$this->ketersediaan) {

 $result .= ' <b>Tidak tersedia</b>';

 }

 return $result;

 }

 public function getCopy(): bool {

 if ($this->ketersediaan < 1) {

  return false;

 } else {

  $this->ketersediaan--;

  return true;

  }

 }

}

$buku = new Buku();

$buku -> judul = "1984";

$buku -> pengarang = "George Orwell";

$buku -> isbn = 9785267006323;

$buku -> halaman =345;

$buku -> ketersediaan = 12;

if ($buku->getCopy()) {

 echo 'Ini sudah terduplikat.<br \>';

} else {

 echo 'Bukunya sudah tidak tersedia lagi.';

}

var_dump($buku);

?>

Constructors

Constructors ialah function dalam class yang memudahkan seseorang dalam penginisiasian attribut untuk suatu object. Bila kita ingin menginisiasi attribut yang ada pada class dengan cara yang diatas akan memakan waktu yang lumayan banyak. Gunakanlah constructors agar memudahkan dalam penginisiasianya. Constructors dibuat dengan menggunakan __construct. Sebagai contoh dalam penggunaaan di script kode ini:


public function __construct(float $isbn, string $judul, string $pengarang, 

,int $halaman, int $ketersediaan){

 $this->isbn = $isbn;

 $this->judul = $judul;

 $this->pengarang = $pengarang;

 $this->halaman = $halaman;

 $this->ketersediaan = $ketersediaan;

}

Untuk membuat object sekaligus menginisiasi attribut class buku kita hanya perlu membuat satu baris kode yakni:

$buku = new Buku(9780061120084, "Laskar Pelangi", "Habiburrahman", 340, 12);

Atau kita bisa membuat ketersediaan otomatis dengan tidak memberikan attribut untuk ketersediaan menjadi 0. Yakni dengan mengubah sedikit constructorsnya menjadi

public function __construct(

 float $isbn,

 string $title,

 string $author,

 int $available = 0

)

oop php


Kemudian kita bisa menambahkan object tanpa jumlah ketersediaan. Seperti ini

$buku = new Buku(9785267006323,"1984", "George Orwell", 200, 3);

$buku2 = new Buku(9780061120084, "Laskar Pelangi", "Habiburrahman", 340);

Destructors

Destructors dipanggil ketika sebuah object dihancurkan atau akhir / berhenti dari script. Gunakanlah kata __destruct untuk membuat Method Destructors.Sebagai contoh

 function __destruct() {

    echo "Nama buku adalah {$this->judul} pengarangnya {$this->pengarang}, isbn {$this->isbn} memiliki {$this->halaman}. Jumlahnya {$this->ketersediaan}.";

  }

Maka ia akan memerikan informasi object yang telah dibuat dalam script kita yakni $buku dan $buku2.

Penting untuk diingat bila kamu menggunakan Destructors sebaiknya taruhlah dibagian paling bawah. Tetapi untuk Constructors taruhlah pada bagian paling atas class.

Magic Methods

Magic Method ialah Method-method spesial yang sangat berguna dalam proses OOP. Ada 3 Magic Method yang harus diketahui yakni

Magic MethodManfaat
__toStringmengembalikan nilai suatu object menjadi string tanpa ada parameter apapun
__callmemanggil method-methods pada suatu class php. Bila tidak mendapatkan method(-methods) yang dipanggail maka akan menjadi sebiah string dari data-data parameter digunakan array.
__getmemanggil nama properti yang dicari dengan mencoba mengakses menggunakan parameter

Magic Method ini memang sangatlah bermanfaat dan gunakanlah dengan bijak karena tidak semua orang tahu method-method ini. Sebagai contoh dalam penggunaanya di class Buku.


  public function __toString() {

 $result = '<i>' . $this->judul . '</i> - ' . $this->pengarang;

 if ($this->ketersediaan < 0) {

 $result .= ' <b>Tidak tersedia lagi</b>';

 }

 return $result;

}

Kemudian kamu bisa menggunakanya dengan menggunakan script kode ini:

$string = (string) $buku;

echo $string;

Minggu, 10 Oktober 2021

Memanipulasi File Dengan PHP

Pendahuluan

PHP menyuguhkan kita untuk membuat, membaca, mengupload dan  mengedit file. File ini bisa digunakan untuk penyimpanan data dan juga informasi dalam suatu applikasi.



Membuka File

Cukup menggunakan fopen() akan membuka atau menciptakan file bila file yang ingin dibuka tidak ada. Pada fungsi fopen,fwrite memiliki beberapa pilihan mode,mode fungsi fopen bisa dilihat pada tabel dibawah ini:

ModeKegunaan
rHanya membaca file
wMembuka dan menuliskan file. Ini akan mebghapus semua isi file atau membuat file baru bila file tidak ada
aMembuka file untuk menulis saja
xMembuat file untuk menulis saja
r+membuka file untuk membaca dan menulis
w+Membuka file untuk membaca dan menulis. Menghapus semua isi file bila ada, bila tidak maka akan membuat file
a+Membuka file untuk menulis atau membaca. Membuat file baru jika tidak ada
x+Membuat file baru untuk membaca dan menulis

Membaca File

Untuk membaca suatu file kita hanya perlu menggunakan fungsi file. Fungsi ini akan membaca file dalam bentuk array. Untuk itu bila iingin membaca file dengan baik gunakanlah fungsi foreach.

Kita hanya perlu menggunakan fungsi fwrite. funhsi ini digunakan setelah kita menggunakan fungsi fopen.

Bila ingin menutup file yang sedang dibuka gunakanlah fungsi fclose. Fungsi ini akan mengembalikan TRUE jika berhasil dan FAILURE jika gagal.

Contoh Penggunaan Pada Applikasi

Dalam contoh-contoh dibawah ini saya akan memberikan penggunaan dalam bentuk applikasi yang bisa digunakan.

Buku Tamu

manipulasi file php

Ini merupakan contoh penggunaan dari fungsi-fungsi PHP untuk memanipulasi file.

<?php

$namafile = "undangan.txt";

if(isset($_POST['text'])&&isset($_POST['alamat'])) {

  $name = $_POST['text'];

  $alamat = $_POST['alamat'];

  $handle = fopen($namafile, 'a');

  fwrite($handle, $name." beralamat ".$alamat."\n");

  fclose($handle);

}

?>

<h1>Daftar Tamu Undangan</h1>

<form method="post">

  Name: <input type="text" name="text" required/><br />

  Alamat: <input type="text" name="alamat" required/><br />

  <input type="submit" name="submit" />

</form>

<h4>Nama Para Tamu Undangan</h4>

<?php if(file_exists($namafile)): ?>

<div>

<?php 

  $baca = file($namafile);

  foreach ($baca as $baca2):

?> 

<p><?php echo $baca2; ?></p>

<?php endforeach;?>

</div>

<?php else: ?>

<div>Belum ada data tamu</div>

<?php endif ?>

Toko Buku

manipulasi file pada php

Membuat applikasi pembelian buku pada toko buku. Penggunaan dalam pembacaan file yang berbentuk json. Mari kita buat file buku2.json dengan isi data

[{"title":"Laskar Pelangi",

"author":"Habiburrahman",

"available":false,

"pages":336,

"isbn":9780061120084

},

{"title":"Choirul Tanjung",

"author":"Choirul Tanjung",

"available":true,

"pages":267,

"isbn":9780547249643

},

{"title":"Politic Has No Moral",

"author":"Marquez",

"available":true,

"pages":457,

"isbn":9785267006323

}]

Buat file index.php dengan isi:

<?php require_once 'function.php

<?php require_once 'function.php' ?>

<!DOCTYPE html>

<html>

<head>

 <meta charset="UTF-8">

 <title>Toko Buku</title>

</head>

<body>

 <p><?php echo loginMessage(); ?></p>

<?php

$booksJson = file_get_contents('buku2.json');

$books = json_decode($booksJson, true);

if (isset($_GET['title'])) {

 echo '<p>Buku yang dicari  <b>' . $_GET['title'] . '</b></p>';

 if (bookingBook($books, $_GET['title'])) {

 echo 'Booked!';

 updateBooks($books);

 } else {

 echo 'Bukunya sudah ada yang pinjam atau beli..';

 }

} else {

 echo 'Kamu bukanya sedang mencari?';

}

?>

 <ul>

 <?php foreach ($books as $book): ?>

 <li>

 <a href="?title=<?php echo $book['title']; ?>">

 <?php echo printableTitle($book); ?>

 </a>

 </li>

<?php endforeach; ?>

 </ul>

</body>

</html>

Buat file login.php dengan isi:

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Bookstore - Login</title>

</head>

<body>

 <p>Masukan data kamu:</p>

 <form action="otoritas.php" method="post">

 <label>Nama</label>

 <input type="text" name="username" />

 <label>Password</label>

 <input type="password" name="password" />

 <input type="submit" value="Login"/>

 </form>

</body>

</html>

Untuk file otoritas.php isinya:

<?php

setcookie('username', $_POST['username']);

$submitted = !empty($_POST);

?>

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Bookstore</title>

</head>

<body>

 <p>Form submitted? <?php echo (int) $submitted; ?></p>

 <p>Your login info is</p>

 <ul>

 <li><b>Nama</b>: <?php echo $_POST['username']; ?></li>

 <li><b>Password</b>: <?php echo $_POST['password']; ?></li>

 </ul>

 <p><a href="/">Ke Tokobuku</a></p>

</body>

</html>

Buat fungsi-fungsi pada file function.php

<?php

function loginMessage() {

 if (isset($_COOKIE['username'])) {

 return "You are " . $_COOKIE['username'];

 } else {

 return "Kamu belum masuk \n<a href=\"\login.php\"\>Masuk dulu</a>";

 }

}

function printableTitle(array $book): string {

 $result = '<i>' . $book['title'] . '</i> - ' . $book['author'];

 if (!$book['available']) {

 $result .= ' <b>Tidak tersedia</b>';

 }

 return $result;

}

function bookingBook(array &$books, string $title): bool {

 foreach ($books as $key => $book) {

 if ($book['title'] == $title) {

 if ($book['available']) {

 $books[$key]['available'] = false;

 return true;

 } else {

 return false;

 }

 }

 }

 return false;

}

function updateBooks(array $books) {

 $booksJson = json_encode($books);

 file_put_contents(__DIR__ . '/buku2.json', $booksJson);

}

?>

Jalankanlah pada browser kamu lalu masuk ke halaman login dan kembali ke halaman tokobuku dan kamu akan bisa melihat data buku-buku yang ada pada file buku2.json.

Applikasi ini mudah dan gampang dilihat datanya pada file yang kita inginkan tetapi disisi lain dalam ini tidak bagus jika digunakan untuk applikasi yang besar. Untuk applikasi yang besar saya sangat menyarankan agar menyimpan data-data pada database.

Kamis, 07 Oktober 2021

Superglobal (Variabel Predefined)

Pendahuluan

Superglobal adalah variabel yang sangat spesial. Superglobal dapat diakses pada fungsi, class atau file manapun. $_SERVER, $GLOBALS, $_REQUEST, $_POST, $_GET, $_FILES, $_ENV, $_COOKIE, $_SESSION merupakan daftar Variabel Predefined atau Superglobal.

$_SERVER

$_SERVER mencakup informasi tentang header,path dan lokasi skrip(file). $_SERVER ini tercipta oleh web server.

Kode/ScriptDeskripsi
$_SERVER["HTTP_HOST"]Mengembalikan Header Host dalam request
$_SERVER["PHP_SELF"]Mengembalikan namafile dan skrip eksekusi
$_SERVER["REMOTE_ADDR"]Mengembalikan ipadress dari dimana tempat pengguna melihat halaman
$_SERVER["REMOTE_HOST"]Mengembalikan nama host dari pengguna yang sedang melihat halaman website
$_SERVER["REMOTE_NAME"]Mengembalikan nama host server
$_SERVER["REMOTE_PORT"]Mengembalikan nomer port yang digunakan pengguna sengan mesin yang digunakan untuk berinteraksi dengan website
$_SERVER["SCRIPT_FILENAME"]Mengembalikan nama path yang sebenarnya yang sedang mengeksekusi skrip
$_SERVER["SCRIPT_NAME"]Mengembalikan path itu sendiri
$_SERVER["SCRIPT_URI"]mengembalikan halaman URI
$_SERVER["SERVER_PORT"]Mengembalikan port dari mesin server yang digunakan untuk web server untuk berkomunikasi(seperti port 80)
$_SERVER["SERVER_NAME"]Mengembalikan nama host server

$_POST dan $_GET

Untuk mengirim masukan dalam website kita menggunakan dua metode yakni POST dan GET. Masukan yang menggunakan metode POST tidak terlihat oleh orang lain dari semua nama maupun nilainya karena terbungkus oleh body dari pesan HTTP. Dan POST tidak memiliki batas banyak jumlah data dan huruf yang dikirimkan. Sebaliknya pengiriman data menggunakan metode GET sama sekali tidak aman karena semua orang bisa melihatnya dalam bentuk URL dan juga memiliki kekurangan yakni tidak boleh melebihi dari 2000 huruf/karakter dalam sekali pengiriman masukan. Tetapi ini berguna untuk memberi halaman sebuah bookmark karena bisa terlihat dalam url. Metode GET sendiri sangat tidak disarankan bila digunakan untuk pengiriman masukan dengan data yang sensitif seperti password dan lainya.

Sebagai contoh dalam penggunaan HTML yakni.

Buatlah sebuah file yang bernama form.php yang berisi kode berikut ini:


<form action="kirim.php" method="POST">

  <p>Nama: <input type="text" name="nama" /></p>

  <p>Umur: <input type="text" name="umur" /></p>

  <p><input type="submit" name="submit" value="Submit" /></p>

</form>

form post php

Lalu buatlah sebuah file bernama kirim.php yang berisi kode ini


Welcome <?php echo $_POST["nama"]; ?><br />

Umur kamu : <?php echo $_POST["umur"]; ?>

form get php

Jalankanlah pada browser kamu form.php dan masukan nama serta umur lalu klik tombol submit maka nama dan data kamu akan terkirim ke file kirim.php dengan metode POST. Bagaimana bila kamu ingin menggunakan metode GET? Gampang sekali. Kamu tinggal mengganti kata POST pada file form.php dan kirim.php dengan GET, kemudian jalankan ulang file form.php dan masukan kembali nama dan umur kamu lalu submit maka kamu akan melihat URL pada kirim.php berbeda dengan ketika menggunakan metode POST.

$_SESSION

Session digunakan untuk menyimpan informasi yang bisa digunakan untuk halamna lainya. Dengan menggunakan $_SESSION kamu bisa mengatur variabel yang kamu inginkan. Seperti username dan id. Tetapi sebelum menggunakan session kamu harus memulai session dengan kode session_start().

$_SESSION["usename"] = "yusuf";

$_SESSION["id"] = "1";

//mencetaknya

echo "nama pengguna ". $_SESSION["usename"]. " dengan id " .$_SESSION["id"];


session_unset();

echo "<br />setelah unset()<br />";

echo "nama pengguna ". $_SESSION["usename"]. " dengan id " .$_SESSION["id"];

session php

Menghapus semua global session manual yakno dengan session_unset() dan menghilangkan atau menagkhiri session bisa dengan session_destroy() yang biasanya digunakan pada halaman logout suatu akun.

Untuk mengidentifikasi user dengan menggunakan cookies. Dengan menggunakan PHP kita bisa membuat dan melihat semua isi cookies. Membuat cookies dengan kode

setcookie(name, value, expire, path, domain, secure, httponly);

Dengan catatan setcookie digunakan sebelum tag HTML. Juga jangan pernah sekalipun mengguakan cookies untuk menyimpan data atau informasi yang sensitif.

Contoh dalam penggunaanya dalam file cookie.php yang isinya yakni:

<?php

$value = "Yusuf";

setcookie("user", $value, time() + (60), '/');

?>

<!DOCTYPE html>

<html>

<head>

 <meta charset="UTF-8">

 <title>Cookies</title>

</head>

<body>

 <p>Reload page ini setelah 1 menit</p>

 <?php

 if(isset($_COOKIE['user'])) {

  echo "Nama Cookie adalah : ". $_COOKIE['user'];

}

?>

</body>

</html>


Bila mereload halaman tersebut maka akan hilang tulisan Nama Cokie adalah : Yusuf. Hal itu menandakan bahwa sudah lebih dari 60 detik atau 1 menit.

Rabu, 06 Oktober 2021

Function Pada PHP

Pendahuluan

Function adalah sebuah blok kode yang bisa digunakan ulang memberikan masukan, pilihan, menampilkan aksi dan mengembalikan hasil(nilai). Function pada PHP sebenarnya sudah pernah kita gunakan seperti var_dump, print_r, empty, isset dan sebagainya, kamu bisa lihat disini. Tetapi kita juga bisa membuat function kita sendiri pada php agar memudahkan dan tidak menulis berulang-ulang kode yang sama untuk tujuan yang sama seperti dalam pembuatan fungsi ini.

Mendeklarasikan Function

Pendeklarasian function yakni dengan menuliskab function sebelum nama function yang kita buat lalu bisa menambahkan () sebelum kurung kurawa {} untuk memberikan nilai(-nilai) variabel yang dibutuhkan.
<?php
function Hello(){
echo "Hai";
}
?>
Hello();//menggunakan function Hello
Di contoh skrip yang kedua yaitu kita berasumsi kita ingin membuat fungsi penghitungan keliling lingkaran.
<?php
function kelilinglingkaran($jari2){
return 22 / 7 * $jari2;
}
echo kelilinglingkaran(7);//jika panjang jari-jarinya 7
echo kelilinglingkaran(14);//jika panjang jari-jarinya 14
?>
Kita hanya tinggal mengganti panjang jari-jari yang ingin kita ketahui kelilingnya.

Menentukan Nilai Variabel

functions bisa juga digunakan untuk menentukan nilai variabel.Contoh kode blok lainya yakni mereset pengaturan bahasa dengan kata asalnya. Disini kita berasumsi sudah mengatur bahasa ke bahasa indonesia dan ingin mengubahnya ke asalnya yakni inggris.
<?php
function kembali($lang){
$lang = "english";
}
$lang ="indonesia";
kembali($lang);
echo $lang;
?>
script kode diatas hanya akan menampilkan $lang menjadi indonesia karena kita tidak menggunakan tanda & sebelum mendeklarasikan variabel yangingin dipakai pada function reset.
function kembali(&$lang){
$lang = "english";
}

Menentukan Nilai Variabel Asli

Pada suatu fungsi kita juga bisa menggunakan variabel asli bila mana tidak ingin atau tidak ada variabel yang dimasukan di dalam suatu fungsi.Cara menentukanya yaitu setelah manuliskan nama variabel lalu berikan nilainya setelah sama dengan =. Sebagai contoh yakni

<?php
function welcome($nama = "dunia"){
echo "Hallo ".$nama;
}
welcome();
welcome("yusuf");
?>

Menentukan Tipe Variabel

Pada PHP versi 7 para developer bisa menentukan tipe variabel dan pengembalian nilai dari function yang dibuat. Dengan menggunakan kode declare(strict_types=1) pada bagian paling atas dan menambahkan tipe data sebelum nama variabel yang ingin digunakan pada function. Sebagai contohnya
<?php
declare(strict_types=1);
function penambahan(int $a, int $b, bool $tampilHasil): int {
 $hasil = $a + $b;
 if ($tampilHasil) {
 echo 'Hasilnya adalah ' . $hasil;
 }
 return $hasil;
}
penambahan(1, 2, true);
penambahan(1, '2', true);
penambahan(1, 'something', true);
?>
php function
sebagai catatan tambahan kamu bisa menambahkan tipe dari nilai yang ingin dihasilkan pada function tersebut dengan menambahkan titik dua dan tipe yang diinginkan sebelum kurung kurawa pada function.
Semoga bermanfaat dan happy coding!