Ujikom 2017470104
Ujikom 2017470104
Ujikom 2017470104
04 : TUGAS PRAKTEK-DEMONSTRASI/PRAKTEK
Skema : PROGRAMMER
Waktu : 3 Jam
A. Petunjuk
1. Baca dan pelajari setiap langkah/instruksi dibawah ini semuanya dengan cermat sebelum
melaksanakan praktek
2. Laksanakan pekerjaan sesuai dengan urutan proses yang sudah ditetapkan
3. Seluruh proses kerja mengacu kepada sop/wi/ik yang dipersyaratkan
4. Waktu pengerjaan yang disediakan 3 jam
B. Skenario Ujian Praktek
1. Buatlah satu buat program, dengan tema dan kegunaan bebas, atau ditentukan sendiri
2. Secara umum proses pengerjaan dimulai dari perancangan atau pemodelan, kemudian
pembuatan source code, kompile atau build, debugging, dokumentasi, dan melakukan unit test.
3. Program yang dibuat secara umum memenuhi ketentuan-ketentuan sebagai berikut :
a. Program yang dibuat harus sesuai dengan rancangan yang dibuat
b. Menerapkan coding guidlines sesuai dengan bahasa pemrograman yang digunakan
c. Program yang dibuat mempunyai interface input dan ouput(tampilan) ke pengguna
d. Program yang dibuat harus menerapkan tipe data yang sesuai, mengikuti sytax Bahasa
pemrograman yang digunakan, dan mempunyai sturutur control percabangan
(if..then..else) dan pengulangan (do while....for...dll)
e. Program yang dibuat harus menerapkan penggunaan prosedur, fungsi, atau method
f. Program yang dibuat harus menggunaan Array
g. Program yang dibuat harus mempunyai fasilitas untuk menyimpan dan membaca data
di media penyimpan
h. Program harus menerapkan hak akses tipe data dengan benar, mempunyai properties,
menerapkan inheritance, polymorpy, overloading, dan interface.
i. Program yang dibuat harus terdiri dari 2 atau lebih namespace atau package
j. Program yang dibuat harus menggunakan atau menanfaatkan eksternal library yang
sudah ada dan tersedia
k. Program harus menggunakan basis data
l. Program harus didokumentasikan dengan baik dengan standard atau guidelines
dokumentasi sesuai dengan bahasa pemrograman yang digunakan
Jawaban
c. Pengkodean
Disini saya menggunakan php dengan framework laravel. Langkah-langkahnya
diantaranya ;
1. Membuat index (menampilkan data pada menu Modul)
a. Membuat route ke index
Route::get('/modul', [ModulController::class, 'index']);
Route a adalah route ketika ada pemanggilan dari url “/modul” dimana route
ini akan mengaktifkan atau menggunakan ModulController yang memiliki
fungsi “index”
b. Membuat controller function index
#ModulController
public function index()
{
$dataModul = Modul::all();
return view ('modul.index', compact('dataModul'));
}
ModulController fungsi index melakukan pemanggilan method view
“modul.index” dimana didalamnya terdapat variable dataModul yang berisi
data dari Model Modul
c. Model Modul
class Modul extends Model
{
use HasFactory;
protected $table = 'modul';
protected $fillable = ['id_modul',
'nama_modul','kelas_id','tanggal_praktek'];
protected $primaryKey = 'id_modul';
public function kelas()
{
return $this->belongsTo(Praktikum::class, 'kelas_id',
'id_praktikum');
}
public function membermodul()
{
return $this->belongsTo(Membermodul::class, 'id_modul',
'modul_id');
}
public function alat()
{
return $this->belongsToMany(Alats::class,
'membermodul','modul_id', 'alat_id');
}
}
Pada Model Modul terlihat bahwa model ini memiliki table yang bernama
modul dimana pada table modul tersebut memiliki beberapa field yaitu
'id_modul','nama_modul','kelas_id','tanggal_praktek'
Data-data inilah yang kemudian dipanggil pada
ModulController fungsi index untuk kemudian ditampilkan pada
view “modul.index”
d. View.index
@extends('dashboard.layouts.main')
@section('container')
<div>
<h3 class="title my-3">List Modul</h3>
<a class="btn btn-success my-3 ms-auto"
href="/modul/createmodul" role="button">Tambah Modul</a>
</div>
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $dt->nama_modul }}</td>
<td>{{ $dt->tanggal_praktek }}</td>
<td>{{ $dt->kelas->nama_kelas }}</td>
<td>
<a href="#" class="badge bg-success" data-bs-
toggle="modal" data-bs-target="#Modaldetail-{{ $dt->id_modul
}}"><span data-feather="eye"></span></a>
<a href="#" class="badge bg-info"><span data-
feather="edit"></span></a>
<a href="#" class="badge bg-danger"><span data-
feather="x-circle"></span></a>
</td>
</tr>
@endforeach
</tbody>
</table>
@endsection
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script
src="https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.
js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#example').DataTable();
});</script>
<link href="https://cdn.jsdelivr.net/npm/[email protected]
alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-
datepicker/1.9.0/css/bootstrap-datepicker.min.css">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/4.7.0/css/font-awesome.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.m
in.js"></script>
@section('container')
<h3 class="h5 my-3 fw-normal text-center">Tambah Modul
Praktikum</h3>
<form action="/modul/createmodul" method="POST" class="col-
md d-block align-item-center mx-auto">
@csrf
<div class="form-group mb-1">
<label for="nama_modul">Nama Modul</label>
<input type="text" name="nama_modul" class="form-
control @error('nama_modul') is-invalid @enderror"
id="nama_modul" placeholder="Nama modul" required
value="{{ old ('nama_modul') }}" >
@error('nama_modul')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
</form>
</div>
<!-- end of from area -->
</div>
<!-- end of col -->
</div>
<!-- end of row -->
</div>
@endsection
@push('styles')
<link href="{{ asset('select/css/bootstrap-
select.min.css')}}" rel="stylesheet">
@endpush
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/boots
trap.bundle.min.js"></script>
<!--<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.m
in.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]
alpha3/dist/js/bootstrap.bundle.min.js"></script>-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-
datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-
select/1.14.0-beta2/js/bootstrap-select.min.js"></script>-->
<script type="text/javascript">
$(function() {
$('#tanggal_praktek',).datepicker(
{format:'yyyy-mm-dd'}
);