Membuat Aplikasi CRUD dengan PHP dan MongoDB

 CRUD dengan PHP dan MongoDB

Pengertian CRUD:

CRUD adalah singkatan dari Create, Read, Update, dan Delete. Ini adalah empat operasi dasar dalam pengelolaan data dalam aplikasi web dan basis data. CRUD adalah metode yang umum digunakan untuk berinteraksi dengan basis data untuk melakukan tugas-tugas seperti membuat, membaca, memperbarui, dan menghapus data.

Penggunaan MongoDB:

MongoDB adalah database NoSQL yang sangat populer, yang menggunakan model dokumen untuk menyimpan data. Dalam PHP, Anda dapat berinteraksi dengan MongoDB menggunakan ekstensi resmi MongoDB atau beberapa pustaka PHP yang tersedia.

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 pada link ini : https://pecl.php.net/package/mongodb
Pastikan pilih yang terdapat link DLL nya


Pilihlah yang sesuai dengan versi php atau xampp anda

Instalasi Driver MongoDB PHP:

1. Setelah mengunduh driver PHP MongoDB yang sesuai dengan versi PHP Anda.

2. Pindahkan file `php_mongodb.dll` ke direktori `ext` dalam instalasi PHP (biasanya berada di `C:\xampp\php\ext` untuk pengguna XAMPP).

3. Edit file `php.ini` yang ada di `C:\xampp\php\php.ini`, dan tambahkan baris berikut di bagian ekstensi:

  extension=php_mongodb.dll


Uji Koneksi dengan MongoDB

Anda dapat menguji koneksi dengan MongoDB dengan membuat skrip PHP sederhana sebagai berikut:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

echo "Koneksi ke MongoDB berhasil.";

?>

Setelah membuat skrip tersebut, buka browser dan akses `http://localhost/mongodb/koneksi-mongodb.php`. Jika Anda melihat pesan "Koneksi ke MongoDB berhasil," itu berarti PHP telah berhasil terkoneksi dengan MongoDB.

Pengembangan Aplikasi CRUD

Proses pembuatan aplikasi CRUD ini dilakukan dalam folder bernama "mongodb" yang terletak di direktori "C:\xampp\htdocs". File utama yang bertanggung jawab atas seluruh logika aplikasi, termasuk tampilan dan operasi CRUD, adalah file "index.php." Anda dapat melihat isi dari file "index.php" dengan mengakses tautan ini.

Uji Coba CRUD

Setelah berhasil membuat aplikasi CRUD, Anda dapat menguji fungsionalitasnya dengan membuka peramban web dan mengakses alamat "http://localhost/mongodb/index.php." Aplikasi ini memberikan Anda kemampuan untuk menambahkan, mengedit, dan menghapus data buku dalam koleksi perpustakaan.


Kuis

Kuis yang diberikan adalah untuk membuat basis data baru pada MongoDB dengan nama "polibest" dan koleksi "mahasiswa" yang memiliki atribut "nim," "nama," "email," dan "alamat." Setelah itu, Anda diminta untuk membuat aplikasi CRUD dengan PHP untuk mengelola data mahasiswa dalam koleksi tersebut.

Langkah-langkah untuk memasukkan koding PHP dalam aplikasi CRUD MongoDB-PHP ke dalam dokumen HTML Anda adalah sebagai berikut:

1. Buka Editor HTML: Buka editor HTML atau teks pilihan Anda, seperti Visual Studio Code.

2. Buat Folder Baru: Buat folder mongodb pada direktori C:\xampp\htdocs\mongodb(sesuai dengan nama file yang akan diberikan) baru dengan ekstensi `.php`. Misalnya, simpan berkas dengan nama `data-polibest.php`.

3. Salin & Tempel Kode: Salin seluruh kode PHP dibawah ini dan tempel ke `data-polibest.php`.

<!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");
    } 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('data.mahasiswa', $bulk);
        if ($result) {
            header("Location: data-polibest.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('data.mahasiswa', $bulk);
        if ($result) {
            header("Location: data-polibest.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('data.mahasiswa', $bulk);
        if ($result) {
            header("Location: data-polibest.php");
        }
    }
    ?>

    <h2>Tambah Mahasiswa</h2>
    <form method="post" action="data-polibest.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="text" 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('data.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='data-polibest.php?edit=" . $mahasiswa->_id . "'>Edit</a> |
            <a href='data-polibest.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('data.mahasiswa', $query);

        foreach ($result as $mahasiswa) {
            ?>
            <h2>Edit Mahasiswa</h2>
            <form method="post" action="data-polibest.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="text" 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>




4. Simpan Perubahan: Simpan perubahan yang telah Anda buat (misalnya, `data-polibest.php`).

5. Tes Aplikasi: Buka aplikasi dalam peramban web Anda dengan mengakses alamat `http://localhost/mongodb/data-polibest.php`. Anda dapat menguji operasi CRUD pada aplikasi tersebut.

Tampilan hasil akan seperti ini:

Jika di isi:




Komentar

Postingan populer dari blog ini

OSINT

LOCAL/REMOTE FILE INCLUSION

OSINT UTS