CRUD MongoDB-PHP
CRUD MongoDB-PHP
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
Download Driver MongoDB https://pecl.php.net/package/mongodb
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
Uji Koneksi MongoDB
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 (no 13):
https://docs.google.com/document/d/1JFlofE0BICnLb9-Cz3LtzWG-pgxNmyFJW3wpfrhK8GA/edit?usp=sharing
Test CRUD
1. Buat browser dan ketikkan http://localhost/mongodb/index.php
2. Lakukan test CRUD
Contoh:
1. Pada MongoDB buat database polibest dan koleksi mahasiswa yang
terdiri dari nim, nama, email dan alamat
2. Buat CRUD dengan menggunakan PHP
Visual Studio Code
<!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