Pertemuan 12 PWEB - Update Database Pendaftaran Siswa
Nama : Kadek Fajar Pramartha Yasodana
NRP : 5025231185
Kelas : PWEB E
Update Database Pendaftaran Siswa
Pada tugas kali ini saya melakukan update dari applikasi website yang telah dibuat pada pertemuan sebelumnya sesuai kriteria yang diminta. Terdapat beberapa update seperti penambahan tabel baru pada database yaitu pegawai. Pada list-siswa.php juga dapat menampilkan semua pegawai. Selain itu ui juga sedikit diperbarui pada form-pendaftaran dan form-update dengan menambahkan select option untuk pegawai pendaftaran.
Source Code : GitHub
Pada penambahan table, saya tinggal menambahkan query untuk membuat tabel begawai, untuk melakukan seeding untuk menambahkan data pegawai dengan cara langsung melakukan eksekusi query INSERT INTO pada wait_for_database.sh
#!/bin/bash
./wait_for_it.sh -h $DB_HOST -p $MYSQL_PORT -t 30 -s && {
mysql --password="$MYSQL_ROOT_PASSWORD" --execute="GRANT ALL PRIVILEGES ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'%';
"
mysql --user="$MYSQL_USER" --password="$MYSQL_PASSWORD" --execute="CONNECT $MYSQL_DATABASE;
CREATE TABLE pegawai (
id INT NOT NULL AUTO_INCREMENT,
nama VARCHAR(255) NOT NULL,
jabatan VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
);
CREATE TABLE calon_siswa (
id INT NOT NULL AUTO_INCREMENT,
nama VARCHAR(255) NOT NULL,
alamat VARCHAR(255) NOT NULL,
jenis_kelamin VARCHAR(16) NOT NULL,
agama VARCHAR(16) NOT NULL,
sekolah_asal VARCHAR(64) NOT NULL,
pegawai_pendaftar_id INT NOT NULL,
FOREIGN KEY(pegawai_pendaftar_id) REFERENCES pegawai(id),
PRIMARY KEY (id)
);
INSERT INTO pegawai (nama, jabatan) VALUE ('Putu Dongklek Tangkas', 'Admin Registrasi');
INSERT INTO pegawai (nama, jabatan) VALUE ('Asep Rinaldi', 'Admin Registrasi');
INSERT INTO pegawai (nama, jabatan) VALUE ('Victoria Wu', 'Admin Registrasi');
INSERT INTO pegawai (nama, jabatan) VALUE ('Grace Chen', 'Admin Registrasi');
INSERT INTO pegawai (nama, jabatan) VALUE ('Muhammad Bima Jago', 'Admin Registrasi');
SHOW TABLES;
"
}
Pada tabel calon_siswa terdapat attribute baru yaitu pegawai_pendaftar_id sebagai foreign key untuk mereferensikan id pada tabel pegawai. Attribute ini nantinya akan digunakan untuk query nama petugas yang sesuai pada list-siswa dan lainnya.
Setelah itu saya menambahkan opsi untuk memilih petugas pendaftaran yang sedang bekerja menambah data siswa saat pendaftaran, dengan melakukan query untuk menambahkan opsi
<select class="w-full p-2 border border-solid rounded-md mt-2 mb-2" name="petugas_id" required>
<option value="" selected disabled class="text-gray-50">Masukkan petugas pendaftaran...</option>
<?php
include("config.php");
$sql = "SELECT * FROM pegawai";
$query = mysqli_query($db, $sql);
while($petugas = mysqli_fetch_array($query))
{
echo "<option value=".$petugas['id']."> ".$petugas['nama']."</option>";
}
?>
</select><br>
Dan untuk form-update, karena bisa mendapatkan data sebelumnya, saya menambahkan sedikit logic pada echo untuk menambahkan selected pada option yang sesuai
echo "<option value=".$petugas['id']." ".(($siswa['pegawai_pendaftar_id'] ==
$petugas['id']) ? "selected" : "").">".$petugas['nama']."</option>";
Untuk pendeployan masih sama dengan sebelumnya, bisa menggunakan docker pada aplikasi dan database. Dan juga ada penambahan bisa juga menggunakan hybrid method dengan applikasi pada host, dan database pada docker.
index.php
Comments
Post a Comment