CRUD MongoDB-PHP

Belajar CRUD MongoDB-PHP

Koneksi dengan MongoDB

Aplikasi ini akan terkoneksi langsung dengan basis data MongoDB. Untuk mengaktifkan koneksi PHP dengan MongoDB, Anda perlu mengunduh dan menginstal driver MongoDB PHP. Anda dapat mengikuti langkah-langkah berikut:

Download Driver MongoDB PHP:

- Unduh driver PHP MongoDB yang sesuai dengan versi PHP yang Anda gunakan di sini

Download 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 

<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
echo "Koneksi ke MongoDB berhasil.";
?>

Uji Koneksi MongoDB 

1. Buka browser dan ketikkan http://localhost/mongodb/koneksimongodb.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 "klik disini" pada file berikut (no 13)


Test CRUD

1. Buat browser dan ketikkan http://localhost/mongodb/index.php 

2. Lakukan test CRUD


Kuis 

1. Pada MongoDB buat database polibest dan koleksi mahasiswa yang terdiri dari nim, nama, email dan alamat 

2. Buat CRUD dengan menggunakan PHP

  • Buka editor html, disini saya menggunakkan VS Code
  • Buat folder baru pada direktori C:\xampp\htdocs dengan ekstensi `.php` (misalnya index.php)
  • Masukkan seluruh kode di bawah ini pada index.php yang telah dibuat sebelumnya
<!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>

  • Lakukan test aplikasi CRUD dengan membuka browser lalu akses`http://localhost/mongodb/polibest/index.php`. 
  •  Maka akan muncul hasil seperti di bawah ini



Komentar