MODUL PEMROGRAMAN WEBSITE 2
Mata Kuliah: Pemrograman Website 2
Kode MK: INF2419
SKS: 3 (Praktikum)
Semester: Genap 2025/2026
Program Studi: Informatika
Fakultas: FEBI / Saintek
Universitas: UIN K.H. Abdurrahman Wahid Pekalongan
Dosen Pengampu: Mohammad Reza Maulana, M.Kom
NIP: 199110082025051002
Pertemuan: 16 dari 16
Durasi: 150 menit (3 Γ 50 menit)
Studi Kasus Berkelanjutan: Sistem Manajemen Perpustakaan
PERTEMUAN 16
UJIAN AKHIR SEMESTER (UAS)
A. INFORMASI PERTEMUAN
| Aspek | Keterangan |
|---|---|
| Capaian Pembelajaran Lulusan (CPL) | CPL10: Mampu mendesain, mengimplementasikan, dan mengevaluasi solusi berbasis komputasi sesuai kebutuhan pengguna. |
| Capaian Pembelajaran Mata Kuliah (CPMK) | CPMK10.1: Mampu mengembangkan dan mengevaluasi aplikasi web backend sesuai kebutuhan pengguna. |
| Sub-CPMK yang Diuji | Sub-CPMK10.1.2: Mampu menguji fungsionalitas aplikasi web backend berdasarkan skenario penggunaan. Sub-CPMK10.1.3: Mampu menyajikan dan menjelaskan hasil pengembangan aplikasi web secara sistematis. |
| Indikator Pencapaian | Mahasiswa mampu: 1. Mempresentasikan sistem perpustakaan yang telah dibangun 2. Mendemonstrasikan semua fitur aplikasi secara live 3. Menjelaskan arsitektur dan teknologi yang digunakan 4. Menjelaskan implementasi MVC pattern 5. Menjelaskan database relationships dan business logic 6. Menjawab pertanyaan teknis dengan baik 7. Menunjukkan kemampuan problem-solving 8. Mengevaluasi kelebihan dan kekurangan sistem |
| Format Ujian | β’ Presentasi Project (40%) β’ Demo Aplikasi Live (40%) β’ Tanya Jawab (20%) β’ Durasi: 15-20 menit per mahasiswa |
B. PENDAHULUAN
1. Deskripsi Ujian Akhir Semester
Ujian Akhir Semester (UAS) untuk mata kuliah Pemrograman Website 2 berbentuk presentasi dan demo project yang telah dikerjakan mahasiswa sepanjang semester. Mahasiswa akan mempresentasikan Sistem Manajemen Perpustakaan yang telah dibangun menggunakan Laravel, mendemonstrasikan fitur-fitur utama secara live, dan menjawab pertanyaan teknis dari dosen penguji.
UAS ini bertujuan untuk:
- Mengevaluasi pemahaman mahasiswa terhadap konsep backend development
- Mengukur kemampuan implementasi teori ke dalam praktik
- Menilai kualitas code dan best practices
- Menguji kemampuan presentasi dan komunikasi teknis
- Mengidentifikasi problem-solving skills mahasiswa
2. Rangkuman Perjalanan Pembelajaran
Journey Lengkap (Pertemuan 1-16):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PEMROGRAMAN WEBSITE 2 - COMPLETE
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π FASE 1: PHP FOUNDATION (Week 1-7)
ββ Week 1: Backend Introduction & Web Concepts
ββ Week 2: PHP Basics (Variables, Data Types, Operators)
ββ Week 3: Control Flow (If/Else, Switch, Loops)
ββ Week 4: Functions & Arrays
ββ Week 5: Form Handling & Superglobals
ββ Week 6: MySQL Database & SQL
ββ Week 7: CRUD Native PHP/MySQL
π WEEK 8: UTS (Mid-Semester Exam) β
β‘ FASE 2: LARAVEL FOUNDATION (Week 9-10)
ββ Week 9: Laravel Introduction & MVC
ββ Week 10: Migration & Eloquent ORM
ποΈ FASE 3: CRUD DEVELOPMENT (Week 11-13)
ββ Week 11: Controller & View
ββ Week 12: CRUD Buku (Complete)
ββ Week 13: CRUD Anggota (DRY Principle)
π FASE 4: INTEGRATION (Week 14-15)
ββ Week 14: Authentication + Transaksi
ββ Week 15: System Integration & Finalization
π― WEEK 16: UAS (Final Exam & Presentation) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TOTAL: 16 WEEKS
~90 Praktikum | 1 UTS | 1 Project | 1 UAS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ3. Sistem yang Dipresentasikan
Sistem Manajemen Perpustakaan - Fitur Lengkap:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SISTEM PERPUSTAKAAN LARAVEL β
β (Production-Ready System) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β β
AUTHENTICATION & AUTHORIZATION β
β ββ Login dengan email & password β
β ββ Register user baru β
β ββ Logout session management β
β ββ Middleware protection β
β ββ Password hashing (bcrypt) β
β β
β β
MANAJEMEN BUKU β
β ββ Create: Tambah buku baru β
β ββ Read: Daftar & detail buku β
β ββ Update: Edit informasi buku β
β ββ Delete: Hapus buku β
β ββ Search: Cari buku β
β ββ Filter: Filter per kategori β
β ββ Validation: Form validation lengkap β
β β
β β
MANAJEMEN ANGGOTA β
β ββ Create: Daftar anggota baru β
β ββ Read: Daftar & detail anggota β
β ββ Update: Edit data anggota β
β ββ Delete: Hapus anggota β
β ββ Date Picker: Input tanggal lahir β
β ββ Email Validation: Format & unique β
β ββ Phone Validation: Regex Indonesia β
β β
β β
TRANSAKSI PEMINJAMAN β
β ββ Form peminjaman buku β
β ββ Auto-generate kode transaksi β
β ββ Auto-calculate tanggal kembali (+7 hari) β
β ββ Update stok buku otomatis (-1) β
β ββ Validasi: Stok tersedia, Anggota aktif β
β ββ Relasi database (FK constraints) β
β β
β β
PENGEMBALIAN BUKU β
β ββ Update status β Dikembalikan β
β ββ Set tanggal dikembalikan β
β ββ Perhitungan denda otomatis (Rp 5.000/hari) β
β ββ Update stok buku otomatis (+1) β
β ββ Alert keterlambatan β
β β
β β
DASHBOARD & ANALYTICS β
β ββ Statistics Cards (8 metrics) β
β ββ Chart transaksi 6 bulan (Line Chart) β
β ββ Chart kategori buku (Pie Chart) β
β ββ Top 5 buku populer β
β ββ Top 5 anggota aktif β
β ββ Recent transactions table β
β ββ Quick action buttons β
β β
β β
GLOBAL SEARCH β
β ββ Search box di navigation β
β ββ Search across: Buku, Anggota, Transaksi β
β ββ Results dalam tabs β
β ββ Keyword highlighting β
β ββ Empty state handling β
β β
β β
LAPORAN TRANSAKSI β
β ββ Filter: Date range, Status, Anggota β
β ββ Statistics summary β
β ββ Tabel laporan lengkap β
β ββ Print-friendly layout β
β ββ Export Excel/PDF (optional) β
β β
β β
UI/UX FEATURES β
β ββ Responsive design (mobile-friendly) β
β ββ Flash messages (success/error/warning) β
β ββ Confirmation dialogs (SweetAlert2) β
β ββ Loading indicators β
β ββ Form validation dengan error messages β
β ββ Bootstrap 5.3 components β
β ββ Bootstrap Icons β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββC. PERSIAPAN UAS
1. Checklist Persiapan Teknis
1-2 Minggu Sebelum UAS:
A. Project Completion Checklist
FITUR WAJIB:
β
[ ] Authentication System
β
[ ] Register berfungsi
β
[ ] Login berfungsi
β
[ ] Logout berfungsi
β
[ ] Middleware protecting routes
β
[ ] Password hashed dengan bcrypt
β
[ ] CRUD Buku Lengkap
β
[ ] Create: Form & validation
β
[ ] Read: Index & Show
β
[ ] Update: Edit form & update
β
[ ] Delete: Dengan confirmation
β
[ ] Search & Filter berfungsi
β
[ ] CRUD Anggota Lengkap
β
[ ] Create: Form dengan date picker
β
[ ] Read: Index & Show
β
[ ] Update: Edit form
β
[ ] Delete: Dengan confirmation
β
[ ] Email & phone validation
β
[ ] Transaksi Peminjaman
β
[ ] Form peminjaman
β
[ ] Auto-generate kode
β
[ ] Auto-calculate tanggal kembali
β
[ ] Update stok buku (-1)
β
[ ] Validation rules
β
[ ] Pengembalian Buku
β
[ ] Update status
β
[ ] Perhitungan denda
β
[ ] Update stok (+1)
β
[ ] Display denda info
β
[ ] Dashboard
β
[ ] Min 6 statistics cards
β
[ ] Min 2 charts (Chart.js)
β
[ ] Recent data tables
β
[ ] Quick actions
β
[ ] Global Search
β
[ ] Search box functional
β
[ ] Results dalam tabs
β
[ ] Keyword highlighting
β
[ ] Laporan Transaksi
β
[ ] Filter berfungsi
β
[ ] Statistics correct
β
[ ] Print-friendly
QUALITY ASSURANCE:
β
[ ] No console errors
β
[ ] No PHP errors/warnings
β
[ ] All forms validated
β
[ ] Flash messages working
β
[ ] Responsive di mobile
β
[ ] Loading states implemented
β
[ ] Error handling proper
DATABASE:
β
[ ] Migrations complete
β
[ ] Foreign keys configured
β
[ ] Seeders with sample data
β
[ ] Database normalized
DOCUMENTATION:
β
[ ] README.md lengkap
β
[ ] Code commented
β
[ ] User manual created
β
[ ] Screenshots preparedB. Testing Checklist
TESTING SCENARIOS:
Authentication:
[ ] Register user baru
[ ] Login dengan credentials benar
[ ] Login dengan credentials salah
[ ] Logout
[ ] Access protected route tanpa login β redirect
CRUD Buku:
[ ] Create buku dengan data valid
[ ] Create buku dengan data invalid β validation error
[ ] View daftar buku
[ ] View detail buku
[ ] Update buku
[ ] Delete buku β confirmation
[ ] Search buku
[ ] Filter by kategori
CRUD Anggota:
[ ] Create anggota dengan data valid
[ ] Email duplicate β validation error
[ ] Phone invalid format β validation error
[ ] View daftar anggota
[ ] Update anggota
[ ] Delete anggota
Transaksi:
[ ] Pinjam buku (stok > 0) β success
[ ] Pinjam buku (stok = 0) β error
[ ] Pinjam dengan anggota nonaktif β error
[ ] Kembalikan tepat waktu β denda = 0
[ ] Kembalikan terlambat β denda calculated
[ ] Check stok updated correctly
Dashboard:
[ ] Statistics showing correct numbers
[ ] Charts displaying data
[ ] Quick actions working
Search:
[ ] Search keyword β results appear
[ ] Tabs switching correctly
[ ] Highlighting working
Laporan:
[ ] Filter by date range
[ ] Filter by status
[ ] Filter by anggota
[ ] Print layout correctC. Technical Setup Checklist
ENVIRONMENT:
[ ] XAMPP/Laragon running
[ ] MySQL database ready
[ ] Apache/Nginx configured
[ ] .env configured correctly
[ ] APP_KEY generated
[ ] Database migrated
[ ] Sample data seeded
DEPENDENCIES:
[ ] Composer dependencies installed
[ ] NPM packages installed
[ ] Assets compiled (npm run build)
CODE CLEANUP:
[ ] Remove dd(), dump(), var_dump()
[ ] Remove commented code blocks
[ ] No TODO comments
[ ] Consistent code formatting
[ ] Remove unused imports
BACKUP:
[ ] Database backup (.sql)
[ ] Code backup (GitHub/GitLab)
[ ] Screenshots backup
[ ] Video demo backup2. Materi Presentasi
A. Struktur Slide Presentasi
Slide Deck Structure (10-15 slides):
SLIDE 1: COVER
ββ Judul: Sistem Manajemen Perpustakaan
ββ Nama & NIM
ββ Mata Kuliah: Pemrograman Website 2
ββ Logo Universitas
SLIDE 2: AGENDA
ββ Pendahuluan
ββ Tech Stack
ββ Fitur Sistem
ββ Database Schema
ββ Demo
ββ Q&A
SLIDE 3: PENDAHULUAN
ββ Latar Belakang
ββ Tujuan Sistem
ββ Scope & Limitations
ββ Target Users
SLIDE 4: TECH STACK
ββ Backend: Laravel 12.x
ββ Database: MySQL 8.x
ββ Frontend: Blade, Bootstrap 5.3, Chart.js
ββ PHP: 8.2+
ββ Tools: Composer, NPM, Git
ββ Icons: Bootstrap Icons
SLIDE 5: ARSITEKTUR SISTEM
ββ MVC Pattern Diagram
ββ Request-Response Flow
ββ Authentication Layer
ββ Business Logic Layer
SLIDE 6: DATABASE SCHEMA
ββ ERD (Entity Relationship Diagram)
ββ Tables: users, buku, anggota, transaksis
ββ Relationships:
β ββ transaksis belongsTo anggota
β ββ transaksis belongsTo buku
β ββ anggota hasMany transaksis
β ββ buku hasMany transaksis
ββ Foreign Keys & Constraints
SLIDE 7: FITUR UTAMA (Part 1)
ββ Authentication
β ββ Login, Register, Logout, Middleware
ββ CRUD Buku
β ββ Create, Read, Update, Delete, Search
ββ CRUD Anggota
ββ Validation, Date Picker, Status
SLIDE 8: FITUR UTAMA (Part 2)
ββ Transaksi Peminjaman
β ββ Auto-generate, Auto-calculate, Update stok
ββ Pengembalian Buku
β ββ Perhitungan denda, Restore stok
ββ Dashboard
ββ Statistics, Charts, Top Data
SLIDE 9: FITUR UTAMA (Part 3)
ββ Global Search
β ββ Multi-module search, Highlighting
ββ Laporan Transaksi
β ββ Filter, Statistics, Print
ββ UI/UX Features
ββ Responsive, Flash messages, Confirmations
SLIDE 10: BUSINESS LOGIC
ββ Peminjaman:
β ββ Check stok tersedia
β ββ Check anggota aktif
β ββ Update stok (-1)
β ββ Generate kode transaksi
ββ Pengembalian:
β ββ Calculate denda (Rp 5.000/hari)
β ββ Update status
β ββ Restore stok (+1)
ββ Validation Rules
SLIDE 11: CHALLENGES & SOLUTIONS
ββ Challenge 1: N+1 Query Problem
β ββ Solution: Eager Loading with()
ββ Challenge 2: Date Handling
β ββ Solution: Carbon + Flatpickr
ββ Challenge 3: Relasi Database
ββ Solution: Foreign Keys + Eloquent
SLIDE 12: CODE QUALITY
ββ Best Practices:
β ββ DRY Principle (Form Request)
β ββ MVC Pattern (Separation of Concerns)
β ββ SOLID Principles
β ββ PSR Standards
ββ Security:
β ββ CSRF Protection
β ββ Password Hashing
β ββ Input Validation
β ββ SQL Injection Prevention
ββ Testing: Manual Testing Scenarios
SLIDE 13: DEMO
ββ Live Demo Sistem
ββ Walkthrough Fitur Utama
ββ Edge Cases Handling
SLIDE 14: LESSONS LEARNED
ββ Technical Skills:
β ββ Laravel Framework
β ββ Eloquent ORM
β ββ MVC Pattern
β ββ Database Design
ββ Soft Skills:
β ββ Problem Solving
β ββ Time Management
β ββ Documentation
ββ Future Improvements
SLIDE 15: CLOSING
ββ Summary
ββ Thank You
ββ Contact Info
ββ Q&AB. Tips Membuat Slide yang Baik
Design Principles:
- Gunakan template yang profesional (tidak terlalu ramai)
- Maksimal 6-7 bullet points per slide
- Font size minimal 24pt (agar terbaca dari jauh)
- Gunakan high contrast (dark text on light background)
- Konsisten dalam color scheme
- Gunakan icons/images untuk visual aid
- Hindari wall of text
Content Principles:
- Slide = outline, bukan script
- Speak, don't read
- Focus on key points
- Use technical terms correctly
- Show, don't just tell (code snippets, diagrams)
- Prepare backup slides untuk Q&A
3. Skenario Demo Live
Demo Script (8-10 menit):
ββββββββββββββββββββββββββββββββββββββββββββββββββ
DEMO SCRIPT - SISTEM PERPUSTAKAAN
ββββββββββββββββββββββββββββββββββββββββββββββββββ
[0:00-0:30] OPENING
"Selamat pagi/siang Bapak/Ibu. Saya akan mendemonstrasikan
Sistem Manajemen Perpustakaan yang telah saya bangun."
[0:30-1:30] 1οΈβ£ AUTHENTICATION
β
Buka halaman login
β
Demo login dengan credentials yang benar
β "Saya login sebagai admin dengan email admin@perpustakaan.com"
β
Show dashboard setelah login
β "Setelah login, user diarahkan ke dashboard"
β
Show navbar dengan user info
β "Di sini terlihat nama user dan ada menu logout"
[1:30-3:00] 2οΈβ£ CRUD BUKU
β
Klik menu Buku
β "Ini halaman daftar buku dengan statistics"
β
Demo filter kategori
β "Bisa filter berdasarkan kategori"
β
Demo search
β "Fitur search untuk mencari buku"
β
Klik "Tambah Buku"
β
Isi form create buku
β "Form validation mencegah input invalid"
β
Submit β lihat flash message
β "Muncul pesan sukses dan buku baru muncul di list"
β
Klik detail buku
β "Detail lengkap buku dengan informasi stok"
β
Klik edit β update data
β "Bisa edit informasi buku"
β
Klik delete β confirmation
β "Ada konfirmasi sebelum hapus untuk mencegah accidental delete"
[3:00-4:00] 3οΈβ£ CRUD ANGGOTA
β
Klik menu Anggota
β
Demo tambah anggota dengan date picker
β "Date picker untuk input tanggal lahir"
β
Submit form
β
Show validation error (misal: email duplicate)
β "Validation mencegah email duplicate"
β
Fix dan submit lagi
β
Show detail anggota
β "Detail lengkap dengan umur yang dihitung otomatis"
[4:00-6:00] 4οΈβ£ TRANSAKSI PEMINJAMAN
β
Klik menu Transaksi β Pinjam Buku
β
Pilih anggota dari dropdown
β "Hanya anggota aktif yang muncul"
β
Pilih buku yang ada stoknya
β "Hanya buku dengan stok > 0 yang bisa dipinjam"
β
Input tanggal pinjam
β "Tanggal kembali otomatis +7 hari"
β
Submit transaksi
β "Kode transaksi di-generate otomatis"
β
Check stok buku berkurang
β "Stok otomatis berkurang 1"
β
Show detail transaksi
β "Detail lengkap dengan info peminjaman"
[6:00-7:00] 5οΈβ£ PENGEMBALIAN BUKU
β
Buka detail transaksi yang dipinjam
β
Show status "Dipinjam"
β
Klik button "Kembalikan Buku"
β
Konfirmasi dengan SweetAlert
β
Submit pengembalian
β
Show perhitungan denda (jika terlambat)
β "Denda dihitung otomatis Rp 5.000 per hari"
β
Check stok buku bertambah
β "Stok kembali bertambah 1"
[7:00-8:30] 6οΈβ£ DASHBOARD & FEATURES
β
Klik Dashboard
β
Show statistics cards
β "Real-time statistics dari database"
β
Show charts
β "Grafik transaksi 6 bulan terakhir"
β "Pie chart kategori buku"
β
Show top 5 data
β "Buku paling populer dan anggota paling aktif"
β
Demo global search
β "Search di navigation mencari semua module"
β
Show search results dalam tabs
β "Results dipisah per module dengan highlighting"
[8:30-9:30] 7οΈβ£ LAPORAN
β
Klik Laporan Transaksi
β
Demo filter by date range
β
Demo filter by status
β
Show statistics summary
β "Total transaksi, denda, dll"
β
Demo print preview
β "Layout print-friendly tanpa navbar"
[9:30-10:00] 8οΈβ£ CLOSING DEMO
β
Logout
β
Show redirect ke login page
β "Setelah logout, redirect ke login"
β
Try access protected route without login
β "Protected route otomatis redirect ke login"
"Demo selesai. Ada yang ingin ditanyakan?"
ββββββββββββββββββββββββββββββββββββββββββββββββββTips Demo yang Baik:
-
Persiapan:
- Bersihkan browser cache sebelum demo
- Tutup tab lain yang tidak perlu
- Siapkan data dummy yang bagus
- Test demo flow 2-3 kali sebelumnya
- Bookmark URL penting
-
Saat Demo:
- Bicara sambil demo (narasi yang jelas)
- Slow down, jangan terburu-buru
- Point ke layar saat explain
- Zoom in jika perlu (Ctrl + Plus)
- Jika ada error, stay calm & explain
-
Handling Errors:
- Jangan panic
- Explain what went wrong
- Show how you would debug it
- Have backup plan (screenshots/video)
4. Persiapan Tanya Jawab
Bank Pertanyaan yang Mungkin Ditanya:
A. Konsep & Teori (30% kemungkinan)
-
"Jelaskan apa itu MVC pattern dan bagaimana Anda implementasikan di sistem ini?"
Jawaban tersedia di dokumen kunci jawaban dosen.
-
"Apa perbedaan Eloquent ORM dengan Query Builder?"
Jawaban tersedia di dokumen kunci jawaban dosen.
-
"Jelaskan alur autentikasi di Laravel Breeze!"
Jawaban tersedia di dokumen kunci jawaban dosen.
B. Implementasi Spesifik (40% kemungkinan)
-
"Bagaimana cara Anda menghitung denda keterlambatan?"
Jawaban tersedia di dokumen kunci jawaban dosen.
-
"Bagaimana Anda handle update stok buku saat peminjaman?"
Jawaban tersedia di dokumen kunci jawaban dosen.
-
"Kenapa pakai Form Request instead of validasi di controller?"
Jawaban tersedia di dokumen kunci jawaban dosen.
C. Problem Solving (20% kemungkinan)
-
"Apa challenge terbesar yang Anda hadapi dan bagaimana solve nya?"
Jawaban tersedia di dokumen kunci jawaban dosen.
-
"Bagaimana Anda memastikan sistem ini secure?"
Jawaban tersedia di dokumen kunci jawaban dosen.
D. Code Quality (10% kemungkinan)
-
"Apa itu DRY principle dan bagaimana Anda terapkan?"
Jawaban tersedia di dokumen kunci jawaban dosen.
-
"Kenapa pakai Laravel, bukan framework lain atau native PHP?"
Jawaban tersedia di dokumen kunci jawaban dosen.
D. TIPS & STRATEGI SUKSES
1. Saat Presentasi
DO β
- Datang 15-30 menit lebih awal
- Test laptop & koneksi internet
- Buka sistem sebelum giliran Anda
- Login ke sistem sebelumnya
- Prepare backup (screenshots, video)
- Speak clearly & confident
- Eye contact dengan penguji
- Control your pace (jangan terlalu cepat)
- Use hand gestures naturally
- Explain while you demo
- Point ke screen saat menjelaskan
- Anticipate questions
DON'T β
- Datang terlambat/mepet
- Baru buka sistem saat giliran
- Membaca slide word by word
- Berbicara terlalu cepat/pelan
- Membelakangi penguji
- Panik saat ada error
- Berbohong saat tidak tahu
- Skip important features
- Go over time limit
- Argue dengan penguji
2. Handling Errors/Technical Issues
Jika Sistem Crash/Error:
SCENARIO 1: Error saat Demo
βββββββββββββββββββββββββββ
β BAD RESPONSE:
"Waduh error... Ini harusnya jalan... Aneh..."
(panik, diam lama, tidak tahu apa yang salah)
β
GOOD RESPONSE:
"Oh, muncul error. Let me check..."
[Check error message]
"Ini error [jelaskan error]. Normally saya akan:
1. Check di log file
2. Debug dengan dd()
3. Verify database connection
Untuk demo, saya akan skip ke fitur berikutnya dulu.
Saya punya screenshot fitur ini working sebelumnya."
[Show screenshot]
KEY POINTS:
- Stay calm
- Read error message
- Explain what error means
- Show how you debug
- Have backup plan
- Move on gracefullySCENARIO 2: Lupa Credentials
βββββββββββββββββββββββββββββ
β BAD RESPONSE:
"Lupa password... Hmm... Coba ini... Salah..."
β
GOOD RESPONSE:
"Saya ada test account. Email: test@test.com Password: password
Atau saya bisa register account baru untuk demo."
[Proceed with alternative]
KEY POINTS:
- Have test accounts ready
- Write down credentials
- Quick recoverySCENARIO 3: Internet Mati (untuk online presentation)
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BAD RESPONSE:
"Internet saya mati... Tunggu ya... WiFi error..."
β
GOOD RESPONSE:
"Koneksi saya sepertinya bermasalah. Sementara menunggu,
saya bisa jelaskan technical implementation dari slide.
[Explain code/architecture]
Atau saya bisa share screen video demo yang sudah saya record."
KEY POINTS:
- Have backup internet (mobile hotspot)
- Record video demo beforehand
- Continue with slides while reconnecting3. Handling Difficult Questions
Strategi Menjawab:
SCENARIO 1: Tahu Jawabannya
βββββββββββββββββββββββββββ
β
CONFIDENT ANSWER:
"[Jawab langsung dengan jelas]
[Berikan contoh jika perlu]
[Reference ke code jika relevan]"
Example:
Q: "Bagaimana Anda handle validation?"
A: "Saya menggunakan Form Request. Contohnya
StoreBukuRequest yang berisi validation rules.
[Open file dan show code]
Benefit-nya adalah separation of concerns dan
validation logic terpisah dari controller."SCENARIO 2: Tidak Yakin
βββββββββββββββββββββββ
β
HONEST APPROACH:
"Hmm, saya kurang yakin tentang detail teknisnya,
tapi setahu saya [jelaskan apa yang Anda tahu].
Untuk implementation spesifik, saya perlu riset lebih lanjut."
β WRONG:
[Mengarang/menebak jawaban yang salah]
[Akan caught dan nilai minus]SCENARIO 3: Tidak Tahu Sama Sekali
βββββββββββββββββββββββββββββββββββ
β
HONEST & PROFESSIONAL:
"Maaf Pak/Bu, untuk topik ini saya belum pelajari.
Tapi saya tertarik untuk explore lebih lanjut.
Apakah Bapak/Ibu bisa recommend resource untuk belajar?"
KEY POINTS:
- Jujur lebih baik daripada mengarang
- Shows willingness to learn
- Professional attitude
- Penguji appreciate honesty4. Time Management
Timeline Management:
IDEAL TIMELINE (15 menit):
βββββββββββββββββββββββββ
00:00 - 00:30 Opening (30s)
00:30 - 05:00 Presentasi (4.5 min)
05:00 - 13:00 Demo (8 min)
13:00 - 14:30 Q&A (1.5 min)
14:30 - 15:00 Closing (30s)
TIPS:
β
Practice dengan timer
β
Know which parts bisa di-skip jika over time
β
Prioritize critical features di demo
β
Jika over time, penguji akan cut β immediate switchFeature Priority untuk Demo:
MUST SHOW (prioritas tertinggi):
1. Login
2. CRUD Buku (minimal create & read)
3. CRUD Anggota (minimal create & read)
4. Transaksi Peminjaman
5. Pengembalian Buku
NICE TO SHOW (jika ada waktu):
6. Dashboard & Charts
7. Global Search
8. Laporan
CAN SKIP (jika waktu habis):
9. Filter & advanced features
10. UI details
11. Error handling edge cases5. Body Language & Communication
Effective Communication:
-
Voice:
- Volume: Cukup keras, jelas
- Pace: Tidak terlalu cepat/lambat
- Intonasi: Variatif (tidak monoton)
- Pause: Beri jeda di poin penting
-
Posture:
- Stand/sit upright (tidak slouching)
- Face the audience/camera
- Gestures: Natural, tidak berlebihan
- Eye contact dengan penguji
-
Language:
- Use technical terms correctly
- Explain jargon if needed
- Mix Indonesian & English naturally
- Avoid "emm", "eee", excessive "jadi", "nah"
E. SETELAH UAS
1. Self-Reflection
Pertanyaan untuk Diri Sendiri:
TECHNICAL SKILLS:
β‘ Apakah saya comfortable dengan Laravel sekarang?
β‘ Bisakah saya build sistem similar dari scratch?
β‘ Apakah saya paham MVC pattern dengan baik?
β‘ Bisakah saya explain code saya ke orang lain?
SOFT SKILLS:
β‘ Apakah presentasi saya effective?
β‘ Bagaimana saya handle pressure/nervousness?
β‘ Apakah time management saya baik?
β‘ Bagaimana saya respond ke kritik/pertanyaan?
PROJECT MANAGEMENT:
β‘ Apakah saya plan dengan baik dari awal?
β‘ Apakah saya efficient dengan waktu?
β‘ Bagaimana saya handle obstacles?
AREAS TO IMPROVE:
1. ___________________________
2. ___________________________
3. ___________________________2. Next Steps - Continuous Learning
Immediate Actions (1-2 minggu setelah UAS):
-
Polish Your Project:
β‘ Fix bugs yang ditemukan saat UAS β‘ Implement feedback dari dosen β‘ Improve UI/UX β‘ Add missing features β‘ Write better documentation -
Deploy to Production:
Platform options: - Heroku (free tier) - Railway.app - Render - Shared hosting (cpanel) - VPS (DigitalOcean, Vultr) Make it live: https://perpustakaan-anda.herokuapp.com -
Showcase Your Work:
β‘ Update GitHub README with screenshots β‘ Write blog post about your journey β‘ Post on LinkedIn β‘ Add to portfolio website β‘ Share in Laravel Indonesia community
Short-term (1-3 bulan):
-
Deepen Laravel Knowledge:
Topics to learn: - Testing (PHPUnit, Pest) - Queues & Jobs - Events & Listeners - API Development (REST, GraphQL) - Laravel Packages - Advanced Eloquent -
Learn Modern Frontend:
Pick one: - Vue.js 3 (recommended for Laravel) - React.js - Alpine.js (lightweight) - Livewire (no JS needed) -
Build More Projects:
Project ideas: - E-commerce platform - Task management system - Blog/CMS - Booking system - Inventory management - Social media clone
Long-term (3-12 bulan):
-
Full-Stack Development:
Backend: - Advanced Laravel - Design Patterns - Microservices - GraphQL Frontend: - Modern JS framework - State management - TypeScript - Frontend tooling DevOps: - Docker - CI/CD (GitHub Actions) - Server management - Cloud platforms (AWS, GCP) -
Contribute to Open Source:
- Fix bugs in Laravel packages - Create your own package - Help in Laravel Indonesia community - Answer questions on Stack Overflow -
Professional Development:
- Build portfolio website - Apply for internships - Freelance projects - Join tech communities - Attend meetups/conferences
3. Career Pathways
Possible Career Paths:
BACKEND DEVELOPER
ββ Focus: Laravel, PHP, Database, API
ββ Skills: Laravel advanced, Testing, Design Patterns
ββ Job Title: Backend Developer, PHP Developer, Laravel Developer
ββ Salary Range: 5-15 juta (junior), 15-30 juta (senior)
FULL-STACK DEVELOPER
ββ Focus: Backend + Frontend
ββ Skills: Laravel + Vue/React, Database, DevOps
ββ Job Title: Full-Stack Developer, Software Engineer
ββ Salary Range: 7-20 juta (junior), 20-50 juta (senior)
FREELANCE DEVELOPER
ββ Focus: Building projects for clients
ββ Skills: Full-stack, Communication, Project Management
ββ Platforms: Upwork, Freelancer, Sribulancer, Projects.co.id
ββ Income: Varies (10-100 juta+/month depending on projects)
TECH STARTUP
ββ Focus: Build products, startups, scale systems
ββ Skills: Full-stack, Product thinking, Speed
ββ Role: Founding Engineer, Early Employee
ββ Compensation: Equity + SalaryF. PENUTUP
1. Ucapan Terima Kasih
Terima kasih telah mengikuti mata kuliah Pemrograman Website 2 sampai akhir. Perjalanan dari Pertemuan 1 hingga Pertemuan 16 ini telah membawa Anda dari tidak tahu apa itu backend development, sampai mampu membangun full-stack web application yang kompleks dengan Laravel.
2. Final Words
Untuk Mahasiswa:
"The expert in anything was once a beginner. You've proven that with dedication, practice, and perseverance, you can master complex technical skills. The Sistem Perpustakaan you've built is not just a project for gradesβit's proof of your capability to build real-world applications."
Remember:
- This is just the beginning. Web development terus berkembang. Keep learning!
- Your project is a portfolio piece. Polish it, deploy it, showcase it!
- Skills > Grades. Yang terpenting bukan nilai A, tapi skill yang Anda punya.
- Community matters. Join Laravel Indonesia, contribute, help others.
- Build things. The best way to learn is by building projects.
3. Motivational Closing
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β "Every MASTER was once a DISASTER." β
β β
β Semester ini Anda sudah menempuh perjalanan: β
β β
β Week 1: Tidak tahu PHP β
β Week 8: Bisa CRUD native PHP β
β Week 16: Full-stack Laravel Developer! π β
β β
β That's AMAZING progress! β
β β
β Skills yang sudah Anda kuasai: β
β β
PHP Programming β
β β
Laravel Framework β
β β
MVC Pattern β
β β
Database Design β
β β
Authentication β
β β
CRUD Operations β
β β
Business Logic β
β β
Frontend Development β
β β
Problem Solving β
β β
Project Management β
β β
β You are now a WEB DEVELOPER! π» β
β β
β Next steps: β
β 1. Polish your project β
β 2. Deploy to production β
β 3. Build more projects β
β 4. Keep learning β
β 5. Apply for jobs/internships β
β β
β "The only way to do great work is to β
β love what you do." - Steve Jobs β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββ4. Resources untuk Masa Depan
Official Documentation:
- Laravel: https://laravel.com/docs (opens in a new tab)
- PHP: https://www.php.net/docs.php (opens in a new tab)
- MySQL: https://dev.mysql.com/doc/ (opens in a new tab)
Learning Platforms:
- Laracasts: https://laracasts.com (opens in a new tab) (highly recommended!)
- Laravel Daily: https://laraveldaily.com (opens in a new tab)
- Udemy: Laravel courses
- YouTube: Traversy Media, The Net Ninja, Laravel Daily
Indonesian Community:
- Laravel Indonesia (Telegram): https://t.me/laravelindonesia (opens in a new tab)
- Facebook Group: Laravel Indonesia
- Discord: Laravel Indonesia
Practice & Challenge:
- LeetCode: Algorithm practice
- HackerRank: PHP challenges
- Exercism: PHP track
- Laravel Challenges: Build small projects
Stay Updated:
- Laravel News: https://laravel-news.com (opens in a new tab)
- Laravel Weekly: Newsletter
- PHP Weekly: Newsletter
- Dev.to: Laravel articles
I. CHECKLIST HARI H
1. Pre-UAS Checklist (1 hari sebelum)
SISTEM:
β
[ ] Sistem berjalan 100%
β
[ ] Database seeded dengan data bagus
β
[ ] No console errors
β
[ ] No PHP errors
β
[ ] Test semua fitur 2-3x
β
[ ] Backup database (.sql)
β
[ ] Backup code (GitHub)
PRESENTASI:
β
[ ] Slide sudah final
β
[ ] Slide di-save ke laptop & cloud
β
[ ] Practice presentasi 2-3x
β
[ ] Timing sudah pas (15 menit)
β
[ ] Siapkan jawaban untuk 10 possible questions
BACKUP PLAN:
β
[ ] Screenshot semua fitur
β
[ ] Record video demo (3-5 menit)
β
[ ] Print dokumentasi (jika offline)
β
[ ] USB drive dengan backup
TECHNICAL:
β
[ ] Laptop charged full
β
[ ] Charger dibawa
β
[ ] XAMPP/Laragon tested
β
[ ] Browser updated
β
[ ] Internet connection tested (jika online)
β
[ ] Backup internet (mobile hotspot)
PERSONAL:
β
[ ] Tidur cukup (min 7 jam)
β
[ ] Makan sebelum UAS
β
[ ] Pakaian rapi (formal casual)
β
[ ] Datang 30 menit lebih awal
β
[ ] Mindset positif & confident2. Checklist Saat UAS
SEBELUM MULAI:
β
[ ] Setup laptop & projector
β
[ ] Open slides
β
[ ] Open sistem (localhost)
β
[ ] Login ke sistem
β
[ ] Test internet (jika online)
β
[ ] Close unnecessary apps/tabs
β
[ ] Volume speaker OK
β
[ ] Take a deep breath
SAAT PRESENTASI:
β
[ ] Greet penguji with confidence
β
[ ] Start dengan opening yang baik
β
[ ] Speak clearly & slowly
β
[ ] Maintain eye contact
β
[ ] Demo smooth & explain
β
[ ] Handle questions professionally
β
[ ] End dengan closing yang baik
β
[ ] Thank the examiners
SETELAH PRESENTASI:
β
[ ] Save & close files
β
[ ] Pack up equipment
β
[ ] Reflect on performance
β
[ ] Note feedback for improvementGOOD LUCK untuk UAS Anda! ππ
You've got this! πͺπ
End of Module - Pertemuan 16
Akhir dari Pemrograman Website 2
Total Journey:
- β 16 Pertemuan Selesai
- β ~90 Praktikum Dikerjakan
- β 1 UTS Passed
- β 1 Project Completed
- π― 1 UAS Ready
Selamat! Anda telah menyelesaikan seluruh pembelajaran! π
Next: Your Career as a Web Developer! π»π
SEMOGA SUKSES! πβ¨