CRUD MongoDB-PHP

 aplikasi CRUD dengan menggunakan PHP & MongoDB


Skenario 

• Membuat aplikasi CRUD dengan menggunakan PHP & MongoDB 

• Database yang digunakan adalah Perpustakaan dengan koleksi Buku yang terdiri dari judul dan tahun 

• Aplikasi bisa melakukan operasi tambah, edit dan hapus data yang terkoneksi langsung dengan MongoDB

MenDownload Driver MongoDB



MenDownload Driver MongoDB

Untuk menginstal driver PHP MongoDB secara manual, ikuti langkah-langkah berikut: 
1. Unduh driver PHP MongoDB yang sesuai dengan versi PHP Anda. 
2. Pindahkan file php_mongodb.dll ke direktori ext dalam instalasi PHP di XAMPP (biasanya ada di C:\xampp\php\ext). 
3. Edit file php.ini yang ada di C:\xampp\php\php.ini, tambahkan baris berikut di bagian ekstensi: extension=php_mongodb.dll

Cek Instalasi

1. Setelah melakukan proses tersebut, restart Apache pada xampp control panel 
2. Buka browser & ketikkan http://localhost/dashboard/phpinfo.php 
3. Pastikan mongoDB sudah terinstall pada phpinfo()



Uji Koneksi MongoDB
1. Buat skrip PHP di C:\xampp\htdocs dan beri nama koneksimongodb.php 
2. Tuliskan skrip berikut ini 

Selanjutnya....
1. Buka browser dan ketikkan http://localhost/mongodb/koneksi-mongodb.php 
2. Jika muncul tulisan “Koneksi ke MongoDB berhasil.”, maka PHP sudah berhasil terkoneksi dengan MongoDB

Membuat File index.php

1. Buat folder mongodb pada direktori C:\xampp\htdocs 
2. Buat file index.php dan masukkan skrip pada file berikut

<!DOCTYPE html>
<html>
<head>
    <title>Aplikasi CRUD Mahasiswa</title>
</head>
<body>
    <h1>Aplikasi CRUD Mahasiswa</h1>

    <?php
    // Inisialisasi koneksi MongoDB
    try {
        $mongo = new MongoDB\Driver\Manager("mongodb://localhost:27017");
        $database = "polibest";
    } catch (MongoDB\Driver\Exception\Exception $e) {
        echo "Koneksi MongoDB gagal: " . $e->getMessage();
        exit;
    }

    if (isset($_POST['tambah'])) {
        // Operasi tambah mahasiswa
        $nim = $_POST['nim'];
        $nama = $_POST['nama'];
        $email = $_POST['email'];
        $alamat = $_POST['alamat'];

        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->insert(['nim' => $nim, 'nama' => $nama, 'email' => $email, 'alamat' => $alamat]);

        $result = $mongo->executeBulkWrite("$database.mahasiswa", $bulk);
        if ($result) {
            header("Location: index.php");
        }
    } elseif (isset($_GET['hapus'])) {
        // Operasi hapus mahasiswa
        $id = new MongoDB\BSON\ObjectId($_GET['hapus']);

        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->delete(['_id' => $id]);

        $result = $mongo->executeBulkWrite("$database.mahasiswa", $bulk);
        if ($result) {
            header("Location: index.php");
        }
    } elseif (isset($_POST['edit'])) {
        // Operasi edit mahasiswa
        $id = new MongoDB\BSON\ObjectId($_POST['id']);
        $nim = $_POST['nim'];
        $nama = $_POST['nama'];
        $email = $_POST['email'];
        $alamat = $_POST['alamat'];

        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->update(['_id' => $id], ['$set' => ['nim' => $nim, 'nama' => $nama, 'email' => $email, 'alamat' => $alamat]]);

        $result = $mongo->executeBulkWrite("$database.mahasiswa", $bulk);
        if ($result) {
            header("Location: index.php");
        }
    }
    ?>

    <h2>Tambah Mahasiswa</h2>
    <form method="post" action="index.php">
        <label for="nim">NIM:</label>
        <input type="text" name="nim" required>
        <label for="nama">Nama:</label>
        <input type="text" name="nama" required>
        <label for="email">Email:</label>
        <input type="email" name="email" required>
        <label for="alamat">Alamat:</label>
        <input type="text" name="alamat" required>
        <button type="submit" name="tambah">Tambah</button>
    </form>

    <h2>Daftar Mahasiswa</h2>
    <table border="1">
        <tr>
            <th>NIM</th>
            <th>Nama</th>
            <th>Email</th>
            <th>Alamat</th>
            <th>Aksi</th>
        </tr>
        <?php
        $query = new MongoDB\Driver\Query([]);
        $result = $mongo->executeQuery("$database.mahasiswa", $query);

        foreach ($result as $mahasiswa) {
            echo "<tr>";
            echo "<td>" . $mahasiswa->nim . "</td>";
            echo "<td>" . $mahasiswa->nama . "</td>";
            echo "<td>" . $mahasiswa->email . "</td>";
            echo "<td>" . $mahasiswa->alamat . "</td>";
            echo "<td><a href='index.php?edit=" . $mahasiswa->_id . "'>Edit</a> | <a href='index.php?hapus=" . $mahasiswa->_id . "'>Hapus</a></td>";
            echo "</tr>";
        }
        ?>
    </table>

    <?php
    if (isset($_GET['edit'])) {
        $id = new MongoDB\BSON\ObjectId($_GET['edit']);
        $query = new MongoDB\Driver\Query(['_id' => $id]);
        $result = $mongo->executeQuery("$database.mahasiswa", $query);

        foreach ($result as $mahasiswa) {
    ?>
            <h2>Edit Mahasiswa</h2>
            <form method="post" action="index.php">
                <input type="hidden" name="id" value="<?php echo $mahasiswa->_id; ?>">
                <label for="nim">NIM:</label>
                <input type="text" name="nim" value="<?php echo $mahasiswa->nim; ?>" required>
                <label for="nama">Nama:</label>
                <input type="text" name="nama" value="<?php echo $mahasiswa->nama; ?>" required>
                <label for="email">Email:</label>
                <input type="email" name="email" value="<?php echo $mahasiswa->email; ?>" required>
                <label for="alamat">Alamat:</label>
                <input type="text" name="alamat" value="<?php echo $mahasiswa->alamat; ?>" required>
                <button type="submit" name="edit">Simpan Perubahan</button>
            </form>
    <?php
        }
    }
    ?>
</body>
</html>


Test CRUD
1. Buat browser dan ketikkan http://localhost/mongodb/index.php 
2. Lakukan test CRUD

Database di Mongodb




Komentar

Postingan populer dari blog ini

LOCAL/REMOTE FILE INCLUSION

DASAR WEB HACKING

BRUTE FORCE