SOAL Pemrograman Web 2022 kelas A - B - C

 



Kementrian Kelautan dan Perikanan sedang membutuhkan pegawai baru untuk menjalankan tugas di wilayah Provinsi Jawa Timur. Untuk melaksanakan seleksi pegawai membutuhkan sebuah aplikasi pendaftaran dan pelaksanaan ujian.

Alur aplikasi :

  1. Calon Pendaftar membuat user name dengan verifikasi data ktp
  2. Calon Pendaftar mengupload berkas pendaftaran dan foto diri
  3. Panitia memverifikasi berkas pendaftaran. Bagi peserta yang lolos berkas, diberi akses mencetak kartu ujian masuk.
  4. Pendaftar yang lolos verifikasi, mencetak kartu ujian. Kartu Peserta ujian seperti nampak pada gambar di atas.
  5. Pendaftar melaksanakan ujian secara offline sesuai dengan lokasi yang ditentukan.

Pertanyaan.

1. Dikerjakan sesuai jam kuliah dan secara mandiri/ bukan kelompok
  • a. Buatlah deskripsi aplikasi berdasarkan studi kasus di atas dan asumsi-asumsi yang diperlukan.
  • b. Rancang UI/ Prototipe aplikasi.
  • c. Rancang tabel dan database yang dipakai
  • d. Buat algoritma dan nama proses yang diperlukan sebagai back end aplikasi

2. Implementasikan rancangan yang telah dibuat kemudian hostingkan dan diberi nama domain yang profesional. Bisa dikerjakan berkelompok maksimal 3, dikumpulkan paling lambat 20 Desember 2022 pukul 13.00

3. Buat presentasi di youtube dan dokumentasikan di blog, selanjutnya posting link, di komentar 



Soal EAS MPPL - 2022

Diketahui sebuah perusahaan yang bernama PT. Mitra Solusindo adalah perusahaan yang bergerak pada bidang jasa konstruksi. Saat ini perusahaan  membutuhkan suatu aplikasi yang mampu menyimpan, mengolah, dan memberikan informasi terhadap pekerjaan-pekerjaan proyek yang ditangani.

Sistem Informasi Manajemen Proyek di PT. Mitra Solusindo yang akan dibuat diharapkan mampu membuat pencatatan kegiatan pengerjaan proyek. 

Dalam pencatatan awal pengerjaan proyek, sistem ini melakukan pencatatan data barang yang dibutuhkan dalam pengerjaan proyek, serta identitas para konsumen yang menggunakan jasa PT. Mitra Solusindo. Sistem pencatatan dan pembuatan laporan - laporan ini menggunakan basis data yang berguna bagi penyimpanan data dengan jumlah data relatif banyak sehingga dapat mempermudah penyimpanan, pencarian, pengubahan serta penghapusan data.


Alur kerja Proyek di PT. Mitra Solusindo.

Tahapan ini di mulai dari tender yang diterima oleh perusahaan yang kemudian akan dikonfirmasikan kebagian administrasi, selanjutnya administrasi akan melakukan pemesanan bahan baku sesuai dengan rencana anggaran biaya yang telah dibuat sebelumnya pada penyedia bahan dan kemudian pihak tersebut akan memberikan daftar harga bahan yang di beli pada administrasi. 

Pihak administrasi akan memberikan daftar harga keseluruhan dalam satu proyek kepada manager dan akan diteruskan kepada direktur guna mendapatkan persetujuan. maka manager akan mengajukannya ke direktur, jika keduanya menyetujui manager akan

menginformasikannya kebagian administrasi. Untuk proses berjalannya pembangunan proyek manager akan membuatkan sebuah jadwal proyek yang akan diajukan ke Direktur guna mendapatkan persetujuan yang kemudian akan diberikan ke administrasi.

Pada tahap perhitungan upah pekerja manager akan melakukan perhitungan upah-upah yang akan diberikan sesuai dengan jadwal proyek yang sebelumnya telah dibuat, manager akan menginformasikan upah pekerja ke direktur guna mendapatkan persetujuan yang kemudian akan di konfirmasikan pembagian upah ke admnistrasi, maka administrasi akan memberikan upah tersebut pada masing-masing pekerja sesuai dengan jadwal kerjanya.


Pertanyaan :

  1. Berdasarkan deskripsi di atas buatlah prototipe/ desain aplikasinya. (dikerjakan di jam kuliah secara perorangan)
  2. Buatlah Perencanaan Proyek Pembuatan Aplikasi beserta biaya yang dibutuhkan?
  3. Bagaimana penanganan manajemen resikonya?
  4. Presentasikan , rekam, dan upload ke youtube perencanaan proyek yang telah dibuat.

Untuk no 2-4 bisa dikerjakan berkelompok , maksimal 3 orang dan dikumpulkan paling lambat tanggal 17 Desember pukul 23.00


Mengelola Hak Akses User



Dalam membuat aplikasi yang membutuhkan database, biasanya masing-masing user mempunyai hak akses sendiri-sendiri sesuai tugas dan kewenangannya. Sebagai contoh Admin bisa membuka semua menu dan juga menambah atau menghapus data user, sedangkan staff biasanya terbatas pada update profile, ubah password dan membuka halaman tertentu.

1. Login

2. Admin


3. Staff


Untuk membuat pengelolaan hak akses user, terlebih dahulu kita membuat tabel user.



Isi data user, sebagai contoh disi Budiman sebagai Admin, dan Andi sebagai staff.


Lengkapi kode sbb

1. koneksi.php
<?php 
$host = "localhost";
$user = "root";
$pass = "";
$db   = "db_web";

$koneksi = mysqli_connect($host,$user,$pass,$db);
?>

2. Login.php
<!DOCTYPE html>
<html>
<head>
 <title>Aplikasi Login Sederhana</title>
 <style>
 body { font-family: verdana; font-size: 12px; }
 a { text-decoration: none; color: blue; }
 a:hover { color: green; }
 </style>
</head>
<body>
<h1 align="center">Aplikasi Login Sederhana : PHP Session</h1>
<hr>
<form action="login-proses.php" method="post">
<table width="300" border="0" align="center">
<tr>
 <td width="150">Username</td>
 <td>
  <input type="text" name="username" required>
 </td>
</tr>
<tr>
 <td width="150">Password</td>
 <td>
  <input type="password" name="password" required>
 </td>
</tr>
<tr>
 <td width="150"></td>
 <td>
  <input type="submit" value="login" required>
 </td>
</tr>
</table>
</form>
</body>
</html>

3. Login-proses.php
<?php 
session_start();
include "koneksi.php";

$username = $_POST['username'];
$password = $_POST['password'];

//cek data
$sql = "SELECT * FROM user WHERE username='$username' ";
$qry = mysqli_query($koneksi,$sql);
$usr = mysqli_fetch_array($qry);

if( 
 md5($username) == md5($usr['username'])
 AND
 md5($password) == md5($usr['password'])
  )
{
 $_SESSION['iduser']   = $usr['iduser'];
 $_SESSION['username'] = $usr['username'];
 $_SESSION['nama']     = $usr['nama'];
 $_SESSION['level']    = $usr['level']
 $_SESSION['login']    = 1;
 $pesan = "Login berhasil, selamat datan $username";
} else {
 $pesan = "Login gagal, username atau password anda salah!";
}

?>
<script>
 alert('<?php echo $pesan;?>');
 location='index.php';
</script>

4. index.php
<?php
session_start();
$login = $_SESSION['login'];
if($login == 1)
{
include "koneksi.php";
?>
<!DOCTYPE html>
<html>
<head>
 <title>Aplikasi Login Sederhana</title>
 <style>
 body { font-family: verdana; font-size: 12px; }
 a { text-decoration: none; color: blue; }
 a:hover { color: green; }
 </style>
</head>
<body>
<h1 align="center">Aplikasi Login Dengan Level Akses</h1>
<hr>
<?php 
$level = $_SESSION['level'];
if($level == 1) { include "menu_admin.php"; }
if($level == 2) { include "menu_staff.php"; }
?>
<hr>
<?php 
$nama     = $_SESSION['nama'];
$username = $_SESSION['username'];

echo "Selamat Datang $nama ($username) ";
?>
<hr>
</body>
</html>
<?php
}
else {
 include "login.php";
} 
?>

5. menu_admin.php
<a href="index.php">Beranda</a> | 
<a href="index.php?menu=user">Data User</a> | 
<a href="index.php?menu=rekapitulasi">Data Rekapitulasi</a> | 
<a href="logout.php">Logout</a> | 

6. menu_staff.php
<a href="index.php">Beranda</a> | 
<a href="index.php?menu=absensi">Data Absensi</a> | 
<a href="logout.php">Logout</a> | 


7. logout.php

<?php 
session_start();
session_destroy();
?>
<script>
 alert('Logout berhasil');
 location='index.php';
</script>



Referensi :

  1. https://www.belajarwebpedia.com/2019/10/membuat-hak-akses-user-menggunakan-level-dengan-php-mysql.html
  2. https://code.tutsplus.com/id/tutorials/how-to-use-sessions-and-session-variables-in-php--cms-31839
  3. https://www.simmutu.net/web/SelamatDatang.html
  4. https://www.simmutu.net/web/MenjalankanAplikasi.html
  5. http://fajarbaskoro.blogspot.com/2021/12/php-manajemen-user.html