Database Advanced "CRUD MongoDB-PHP
CRUD MongoDB-PHP
Setelah memahami mongoDB, bisa memberikan perintah dasar, dan menseting PHP agar support MongoDB, maka langkah selanjutnya adalah membuat pengolahan data CRUD dengan PHP dan MongoDB. Langkah-langkah untuk melakukannya dijelaskan sebagai berikut:
Download driver MongoDB
Untuk menginstal driver PHP MongoDB secara manual, ikuti langkah-langkah berikut:
- Unduh driver PHP MongoDB yang sesuai dengan versi PHP Anda di sini
- Pindahkan file php_mongodb.dll ke direktori ext dalam instalasi PHP di XAMPP (biasanya ada di C:\xampp\php\ext).
- Edit file php.ini yang ada di C:\xampp\php\php.ini, tambahkan baris berikut di bagian ekstensi: extension=php_mongodb.dll
- Setelah melakukan proses tersebut, restart Apache pada xampp control panel
- Buka browser & ketikkan http://localhost/dashboard/phpinfo.php
- Pastikan mongoDB sudah terinstall pada phpinfo()
Uji Koneksi MongoDB
- Untuk menguji koneksi MongoDB buatlah skrip PHP di C:\xampp\htdocs dan beri nama koneksimongodb.php lalu tuliskan skrip berikut ini
- Selanjutnya buka browser dan akses http://localhost/mongodb/koneksi-mongodb.php
- Jika muncul tulisan “Koneksi ke MongoDB berhasil.”, maka PHP sudah berhasil terkoneksi dengan MongoDB
Membuat Aplikasi CRUD
Buat folder mongodb pada direktori C:\xampp\htdocs lalu buat file index.php dan masukkan skrip pada file (no 13). Klik di sini untuk melihat skrip yang digunakan.
Uji Coba CRUD
Setelah membuat aplikasi CRUD lakukan test dengan mengakses http://localhost/mongodb/index.php pada browser Anda. Maka akan muncul hasil seperti di bawah ini:
KUIS
- Pada MongoDB buat database polibest dan koleksi mahasiswa yang terdiri dari nim, nama, email dan alamat
- Buat CRUD dengan menggunakan PHP
Langkah-langkah :
- Buka editor HTML, misalnya di sini saya menggunakan Visual Studio 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, lalu simpan perubanhannya
<!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>
Komentar
Posting Komentar