Skip to content

alifiharafi/vsga-perpus-peserta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proyek Akhir VSGA JWD 2022

Proyek Sistem Informasi Perpustakaan merupakan proyek akhir yang dikerjakan oleh peserta VSGA JWD 2022. Proyek yang disediakan pada repositori ini, 50% sumber kode telah disediakan oleh instruktur, sehingga peserta pelatihan dapat melengkapi sumber kode sampai dengan 100% dengan melihat sebagian contoh sumber kode yang telah disediakan tersebut.

Proses pengerjaan proyek ini dibagi menjadi Proyek 4, Proyek 5 dan Proyek 6, yang akan dijelaskan lebih detil di bawah. Setiap proyek terdiri dari beberapa task.

Prasyarat

  • PHP minimal versi 7.2.x
  • Web Server: Apache/NginX
  • DBMS: MySQL/MariaDB

Akun

  • Username: admin
  • Password: vsga

Proyek 4

Task #1

  • Menggunakan session login
  • Tampilkan nama yang disimpan pada session

Task #2

  • Menggunakan password_hash() dan password_verify() pada proses login
  • Menyesuaikan struktur field password pada table admin (length: 60 digit)

Task #3

  • Memindahkan source code bagian header ke file layout/header.php
  • Lakukan include layout/header.php pada file index.php

Task #4

  • Memindahkan source code bagian sidebar ke file layout/sidebar-menu.php
  • Lakukan include layout/sidebar-menu.php pada file index.php

Task #5

  • Memindahkan source code bagian footer ke file layout/footer.php
  • Lakukan include layout/footer.php pada file index.php

Task #6

  • Buatlah file 404.php dengan copy source code dari beranda.php
    • Pada bagian div.page-title, ubah menjadi: <h3>Error 404</h3>
    • Pada bagian div.page-content, ubah menjadi:
  • "Halaman Tidak Ditemukan!" dengan Tag Heading Lv4
  • "Ups! Halaman yang Anda cari tidak ditemukan. Silahkan gunakan menu navigasi disamping kiri." dengan Tag Paragraph

Task #7

  • Create database sesuai model yang disediakan
  • Lakukan insert minimal 1 baris pada tabel Kategori, Penulis, Penerbit

Task #8

  • CRUD Kategori
  • Tambahkan fitur pencarian dengan method post, tampilkan hasil tanpa limit
  • Tambahkan fitur pagination dengan limit 5
  • Uji pagination dengan menambahkan setidaknya 6 data

Task #9

  • CRUD Penulis
  • Tambahkan fitur pencarian dengan method post, tampilkan hasil tanpa limit
  • Tambahkan fitur pagination dengan limit 5
  • Uji pagination dengan menambahkan setidaknya 6 data

Task #10

  • CRUD Penerbit
  • Tambahkan fitur pencarian dengan method post, tampilkan hasil tanpa limit
  • Tambahkan fitur pagination dengan limit 5
  • Uji pagination dengan menambahkan setidaknya 6 data

Proyek 5

Task #11

  • CRUD Buku
  • Tambahkan fitur pencarian dengan method post, tampilkan hasil tanpa limit
  • Tambahkan fitur pagination dengan limit 5
  • Uji pagination dengan menambahkan setidaknya 6 data
  • Rule:
    • CRUD Kategori, Penulis, Penerbit harus diselesaikan lebih dahulu
    • Data untuk Kategori, Penulis, Penerbit harus tersedia, minimal 1 baris agar bisa melakukan CRUD Buku

Task #12

  • C (Create) Peminjaman (dari table Transaksi)
  • Buatlah form tambah peminjaman
  • Form yang dibuat hanya menampilkan buku-buku yang statusnya Tersedia
  • Pastikan status buku yang dipinjam berubah (Tersedia -> Dipinjam)
  • Tambahkan data minimal 2 data

Task #13

  • Tambahkan folder helpers dengan tingkat hirarki L1
  • Buat file helper_umum.php
  • Buat fungsi dengan nama _d() disertai 1 parameter/ argumen $str
  • Source code pada fungsi tersebut berisikan:
	echo '<pre>';
	var_dump($str);
	echo '</pre>';
  • Fungsi _d() ditujukan untuk memudahkan proses dump/identifikasi nilai dari suatu variable

Task #14

  • Menggunakan variable konfigurasi (config/konfigurasi-umum.php) yang telah didefinisikan:
    • Judul Situs: $_SITE_TITLE
    • Deskripsi Alamat: $_SITE_DESC_ADDRESS
    • Deskripsi Telepon: $_SITE_DESC_PHONE
    • Info Situs: $_SITE_INFO
    • Credit Situs: $_SITE_CREDIT
    • Path Aplikasi: $_PATH_APP
    • Path Gambar: $_PATH_IMAGE
    • Query Limit: $_QUERY_LIMIT
  • Silahkan cari dan gunakan secara mandiri, dimana saja variable konfigurasi ini perlu digunakan!

Task #15

  • Tambahkan include koneksi-db.php hanya pada satu file saja, yaitu index.php
  • Letakkan diposisi atas pada block code php
  • Lalu hapus semua koneksi-db.php yang ada pada setiap file yang diakses melalui index.php
  • Dengan begitu cukup melakukan satu kali include koneksi-db.php

Task #16

  • Tambahkan class .active untuk setiap menu yang dipilih/aktif pada menu sidebar
  • Perhatikan pada file style.css terdapat class nav ul li a.active yang sudah didefinisikan
  • Gunakan JS untuk memeriksa halaman yang sedang aktif dan gunakan class .active pada menu
  • Tuliskan code JS pada file app.js

Task #17

  • CRUD Peminjaman
  • Tambahkan fitur pencarian dengan method post, tampilkan hasil tanpa limit
  • Tambahkan fitur pagination dengan limit 5
  • Uji pagination dengan menambahkan setidaknya 11 data
  • Tambahkan menu cetak data peminjaman
  • Rule:
    • Peminjaman tidak dapat dihapus, hanya dapat diubah
  • Referensi: Flowchart Peminjaman

Task #18

  • CRUD Pengembalian
  • Tambahkan fitur pencarian dengan method post, tampilkan hasil tanpa limit
  • Tambahkan fitur pagination dengan limit 5
  • Uji pagination dengan menambahkan setidaknya 11 data
  • Tambahkan menu cetak data pengembalian
  • Rule:
    • Pengembalian tidak dapat diubah, hanya dapat dihapus
    • Jika pengembalian dihapus atau batal, maka transaksi tanggal_kembali menjadi 0000-00-00 dan status pada buku menjadi Dipinjam
    • Proses penghapusan atau pembatalan pengembalian harus memeriksa kondisi bahwa buku yang dipinjam tidak tidak dalam status Tersedia
  • Referensi: Flowchart Pengembalian

Task #19

  • Buatlah procedure pagination() pada file helper_umum.php
  • Terdapat 4 parameter untuk procedure tersebut, yaitu: $row, $menu, $menu, $limit
  • Gunakan procedure tersebut pada setiap halaman yang menampilkan data dalam bentuk tabel, yaitu anggota, kategori, penulis, penerbit, buku, peminjaman & pengembalian.

Task #20

  • Buatkan file terpisah untuk layout/container.php
  • Sehingga pada file index.php hanya melakukan include layout/container.php
  • File layout/container.php berisikan source code untuk memproses request $_GET['p'] yang telah ada pada file index.php

Task #21

  • Pada bagian layout/footer.php menampilkan tahun 2021. Gunakan function native pada PHP sehingga tahun yang ditampilkan menjadi dinamis dengan nilai tahun aktual saat ini.

Proyek 6

Task #22

  • Deploy seluruh hasil pekerjaan Anda baik Aplikasi dan Basis Data di hosting!
  • Silahkan gunakan hosting gratis seperti 000webhost, InfinityFree atau hosting lainnya yang mendukung PHP dan basis data MySQL, serta harus bisa diakses melalui domain/sub-domain/IP Public
  • Diperbolehkan menggunakan hosting pribadi jika memiliki, namun lebih direkomendasikan menggunakan hosting gratis.

Catatan

Referensi

Requirement Proyek Sistem Informasi Perpustakaan ini dapat dilihat pada tautan: https://bit.ly/vsga-jwd-req-perpus

Ketentuan Pengumpulan

Bagi peserta VSGA JWD 2022, silahkan kumpulkan seluruh proyek pada LMS Kominfo dan harus membaca ketentuan dan instruksi yang diberikan pada Assignment Proyek masing-masing.

Pembelajar Selain Peserta Pelatihan

Sumber kode ini terbuka, tidak terbatas hanya untuk peserta VSGA JWD 2022, namun bagi siapapun yang ingin belajar pemograman web menggunakan bahasa pemograman PHP.

About

Sistem Informasi Perpustakaan VSGA JWD 2022

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published