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: 1 dari 16
Durasi: 150 menit (3 Γ 50 menit)
Studi Kasus Berkelanjutan: Sistem Manajemen Perpustakaan
PERTEMUAN 1
KONTRAK KULIAH & PENGANTAR BACKEND WEB
A. KONTRAK KULIAH
1 Identitas Mata Kuliah
| Komponen | Keterangan |
|---|---|
| Nama Mata Kuliah | Pemrograman Website 2 |
| Kode Mata Kuliah | INF2419 |
| Rumpun MK | Mata Kuliah Wajib Program Studi |
| Bobot (SKS) | T=0, P=3 (Total 3 SKS) |
| Semester | Genap 2025/2026 |
| Prasyarat | Pemrograman Website 1 |
| Dosen Pengampu | Mohammad Reza Maulana, M.Kom |
2 Deskripsi Mata Kuliah
Mata kuliah Pemrograman Website 2 merupakan kelanjutan dari Pemrograman Website 1, berfokus pada pengembangan sisi backend aplikasi web. Mahasiswa akan mempelajari konsep server-side programming menggunakan PHP, pengelolaan database dengan MySQL, serta pengembangan terstruktur menggunakan framework Laravel dengan pendekatan MVC.
Seluruh pembelajaran dibangun di atas satu studi kasus berkelanjutan β Sistem Manajemen Perpustakaan β yang dikembangkan secara bertahap dari PHP Native (fase 1) hingga Laravel (fase 2), sehingga mahasiswa memahami evolusi nyata pengembangan aplikasi web dari sederhana menuju terstruktur.
3 Capaian Pembelajaran Lulusan (CPL) Program Studi
Mata kuliah ini mendukung pencapaian CPL-Prodi berikut:
- CPL04: Menguasai konsep teoretis bidang ilmu komputer/informatika dan mampu memformulasikan penyelesaian masalah prosedural.
4 Capaian Pembelajaran Mata Kuliah (CPMK)
- CPMK04.1: Memahami konsep dasar pengembangan web backend menggunakan PHP dan database.
5 Metode Pembelajaran
- Ceramah Interaktif β Penjelasan konsep dengan partisipasi aktif mahasiswa
- Demonstrasi Live Coding β Dosen mendemonstrasikan kode secara langsung
- Praktikum Terbimbing β Mahasiswa mengerjakan langkah-langkah praktikum dengan panduan
- Studi Kasus Berkelanjutan β Seluruh pertemuan terhubung dalam satu proyek nyata
- Tugas Mandiri β Eksplorasi dan pengembangan fitur secara independen
6 Sistem Penilaian
| No | Komponen Penilaian | Bobot (%) | Keterangan |
|---|---|---|---|
| 1 | Kehadiran & Partisipasi | 10% | Minimal 75% kehadiran untuk mengikuti UAS |
| 2 | Tugas Mingguan | 25% | Dikumpulkan via Ngaji UIN Gusdur sebelum pertemuan berikutnya |
| 3 | Ujian Tengah Semester (UTS) | 30% | Project PHP Native: fitur CRUD lengkap Sistem Perpustakaan |
| 4 | Ujian Akhir Semester (UAS) | 35% | Project Laravel: sistem perpustakaan full-stack dengan autentikasi |
| TOTAL | 100% |
7 Ketentuan Perkuliahan
a. Kehadiran
- Mahasiswa wajib menghadiri minimal 75% dari total pertemuan untuk dapat mengikuti UAS
- Keterlambatan maksimal 15 menit masih diperkenankan mengikuti perkuliahan
- Lebih dari 15 menit dianggap tidak hadir
- Mahasiswa yang berhalangan hadir wajib memberitahukan dosen sebelum perkuliahan dimulai
b. Tugas dan Pengumpulan
- Semua tugas dikumpulkan via Ngaji UIN Gusdur sesuai deadline yang ditentukan
- Keterlambatan pengumpulan akan mengurangi nilai:
- Terlambat 1β24 jam: pengurangan 10%
- Terlambat 1β3 hari: pengurangan 25%
- Lebih dari 3 hari: tidak diterima (nilai 0)
- Format pengumpulan tugas menggunakan link repository GitHub
c. Integritas Akademik
- Plagiarisme dalam bentuk apapun tidak ditoleransi, sanksi nilai 0 untuk komponen terkait
- Kode yang dikumpulkan harus merupakan hasil pekerjaan sendiri
- Diskusi antar mahasiswa diperbolehkan, namun hasil akhir wajib dikerjakan secara mandiri
- Penggunaan AI generatif (ChatGPT, Copilot, dll.) wajib diungkapkan secara transparan dalam keterangan pengumpulan
d. Komunikasi
- Pengumuman resmi perkuliahan melalui Ngaji UIN Gusdur
- Komunikasi cepat dan informal melalui WhatsApp Group
- Pertanyaan teknis disarankan diposting di forum diskusi Ngaji UIN Gusdur agar bermanfaat untuk semua mahasiswa
- Response time dosen maksimal 1Γ24 jam
e. Etika Kelas
- Laptop/komputer wajib dibawa setiap pertemuan praktikum
- Tidak menggunakan perangkat untuk hal di luar perkuliahan selama sesi berlangsung
- Menggunakan bahasa yang santun dalam komunikasi
- Aktif bertanya dan membantu sesama mahasiswa
f. Revisi dan Update
- Kontrak kuliah ini dapat direvisi jika diperlukan dengan persetujuan bersama
- Perubahan akan dikomunikasikan melalui Ngaji UIN Gusdur dan WhatsApp Group
8 Rencana Pertemuan (16 Minggu)
| Minggu | Topik | Fase | Metode |
|---|---|---|---|
| 1 | Kontrak Kuliah, Pengantar Backend Web, Setup Environment | Fondasi | Ceramah, Demonstrasi, Praktikum |
| 2 | PHP Dasar: Variabel, Tipe Data, Operator, Output | PHP Native | Ceramah, Live Coding, Praktikum |
| 3 | Kontrol Alur: If-Else, Loop, Switch | PHP Native | Ceramah, Live Coding, Praktikum |
| 4 | Array, Fungsi PHP | PHP Native | Ceramah, Live Coding, Praktikum |
| 5 | Form Handling dengan PHP | PHP Native | Ceramah, Live Coding, Praktikum |
| 6 | Database MySQL untuk Web | PHP + DB | Demonstrasi, Praktikum |
| 7 | PHP-MySQL Integration (CRUD Native) | PHP + DB | Live Coding, Praktikum |
| 8 | UTS β Project PHP Native: Sistem Perpustakaan | Evaluasi | Ujian Praktik |
| 9 | Pengenalan Framework Laravel & MVC | Laravel | Ceramah, Demonstrasi, Praktikum |
| 10 | Database dengan Migration & Model | Laravel | Live Coding, Praktikum |
| 11 | Controller & View (MVC Pattern) | Laravel | Ceramah, Live Coding, Praktikum |
| 12 | CRUD Buku dengan Laravel | Laravel | Live Coding, Praktikum |
| 13 | CRUD Anggota dengan Laravel | Laravel | Demonstrasi, Praktikum |
| 14 | Authentication & Transaksi Peminjaman | Laravel | Live Coding, Praktikum |
| 15 | Integrasi Sistem & Finalisasi | Laravel | Studi Kasus, Review Proyek |
| 16 | UAS β Project Laravel: Sistem Perpustakaan Lengkap | Evaluasi | Ujian Praktik |
9 Tools dan Software yang Digunakan
| No | Tools | Fungsi | Versi |
|---|---|---|---|
| 1 | XAMPP / Laragon | Web server lokal (Apache + MySQL + PHP) | PHP 8.x |
| 2 | Visual Studio Code | Code editor utama | Terbaru |
| 3 | phpMyAdmin | Manajemen database secara visual | Bawaan XAMPP |
| 4 | Ngaji UIN Gusdur | Pengumpulan tugas & pengumuman | β |
| 5 | Composer | Dependency manager PHP untuk Laravel | Terbaru |
| 6 | Git | Version control (diperkenalkan di fase Laravel) | Terbaru |
10 Referensi Utama
- Welling, L. & Thomson, L. (2016). PHP and MySQL Web Development (5th Edition). Addison-Wesley. ISBN: 978-0321833891
- Stauffer, M. (2023). Laravel: Up & Running (3rd Edition). O'Reilly Media. ISBN: 978-1098153267
- PHP Manual β https://www.php.net/manual/en/ (opens in a new tab)
- Laravel Official Documentation β https://laravel.com/docs (opens in a new tab)
- MySQL Documentation β https://dev.mysql.com/doc/ (opens in a new tab)
11 Catatan Penting untuk Mahasiswa
π Environment yang diinstall di pertemuan ini digunakan sepanjang semester. Pastikan instalasi berhasil sebelum pertemuan berakhir.
π Studi kasus Perpustakaan bukan sekadar latihan β ini simulasi proyek nyata. Biasakan mendokumentasikan progress dan melakukan backup kode secara berkala.
π Pahami konsepnya sebelum copy-paste kode. Kemampuan debugging dan pemahaman alur logika jauh lebih berharga dari kode yang bekerja tanpa dimengerti.
π Fase PHP Native adalah fondasi fase Laravel. Jangan skip atau menganggap enteng pertemuan 2β7.
B. INFORMASI PERTEMUAN
1 Sub-CPMK Pertemuan 1
Sub-CPMK04.1.1: Mahasiswa mampu menjelaskan konsep dasar arsitektur web backend dan menyiapkan lingkungan pengembangan (development environment) untuk keperluan praktikum selama satu semester.
2 Tujuan Pembelajaran (Learning Objectives)
Setelah mengikuti pertemuan ini, mahasiswa akan mampu:
- Menjelaskan perbedaan frontend dan backend dalam pengembangan web (C2 β Memahami)
- Menggambarkan alur request-response HTTP dan arsitektur 3-tier secara diagramatik (C2 β Memahami)
- Mengidentifikasi peran PHP, MySQL, dan Laravel dalam ekosistem backend web (C1 β Mengingat)
- Menginstal dan mengkonfigurasi XAMPP atau Laragon sebagai development environment (P3 β Presisi)
- Membuat file PHP pertama yang menampilkan data server dan statistik perpustakaan statis (P4 β Artikulasi)
3 Kompetensi yang Dikembangkan
| Domain | Kompetensi |
|---|---|
| Kognitif | Memahami (C2), Mengidentifikasi (C1) |
| Afektif | Menghargai pentingnya pemahaman konsep sebelum implementasi; Membangun kebiasaan kerja yang terstruktur |
| Psikomotorik | Menginstal tools, mengkonfigurasi environment, membuat file PHP pertama |
4 Indikator Pencapaian
Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu:
- Menjelaskan minimal 3 perbedaan antara frontend dan backend
- Menggambarkan alur request-response HTTP dari browser hingga database
- Menyebutkan peran masing-masing teknologi (PHP, MySQL, Laravel) dalam sistem yang akan dibangun
- Menjalankan Apache dan MySQL melalui XAMPP/Laragon dengan sukses
- Menampilkan halaman index.php di browser melalui localhost
5 Alokasi Waktu
| No | Kegiatan | Durasi | Keterangan |
|---|---|---|---|
| 1 | Pembukaan & Perkenalan | 10 menit | Perkenalan dosen, gambaran umum semester |
| 2 | Kontrak Kuliah | 20 menit | Fokus poin krusial; dokumen lengkap di Ngaji UIN Gusdur |
| 3 | Materi 1: Konsep Backend Web & Arsitektur 3-Tier | 25 menit | Ceramah interaktif + tanya jawab |
| 4 | Materi 2: Peran PHP, MySQL, Laravel & Intro Studi Kasus | 15 menit | Ceramah + roadmap visual |
| 5 | Break | 10 menit | β |
| 6 | Praktikum 1: Instalasi XAMPP/Laragon | 20 menit | Terbimbing, troubleshoot bersama |
| 7 | Praktikum 2: Membuat File PHP Pertama | 20 menit | Live coding + eksplorasi mandiri |
| 8 | Praktikum 3: Eksplorasi phpMyAdmin | 10 menit | Demonstrasi dosen |
| 9 | Evaluasi, Briefing Tugas & Penutup | 20 menit | Kuis singkat, penjelasan tugas, Q&A |
| Total | 150 menit |
C. PENDAHULUAN
1. Deskripsi Singkat
Pertemuan pertama ini terbagi menjadi dua bagian utama. Bagian pertama adalah Kontrak Kuliah, yaitu kesepakatan bersama tentang aturan, sistem penilaian, dan ekspektasi selama satu semester. Bagian kedua adalah Pengantar Backend Web, di mana mahasiswa akan mempelajari konsep dasar arsitektur web, peran PHP/MySQL/Laravel, dan mempersiapkan development environment yang akan digunakan sepanjang semester.
2. Keterkaitan dengan Pertemuan Lain
Pertemuan ini adalah fondasi dari seluruh pembelajaran:
- Pertemuan 1 (ini): Kontrak kuliah, konsep backend, dan setup environment
- Pertemuan 2β5: Environment yang disiapkan hari ini langsung digunakan untuk praktikum PHP
- Pertemuan 6β7: Database yang dibuat di phpMyAdmin hari ini akan diintegrasikan dengan PHP
- Pertemuan 9β15: Pemahaman konsep arsitektur 3-tier dan MVC yang ditanam hari ini menjadi landasan teori untuk Laravel
3. Manfaat Pembelajaran
- Memahami konteks dan tujuan besar mata kuliah sebelum memulai coding
- Menyiapkan environment yang digunakan sepanjang satu semester penuh
- Membangun mental model yang benar tentang bagaimana web bekerja dari sisi server
- Mengenal studi kasus Sistem Perpustakaan yang menjadi benang merah seluruh pertemuan
4. Relevansi dengan Studi Kasus
Di pertemuan ini, mahasiswa akan melihat gambaran besar Sistem Manajemen Perpustakaan yang akan dibangun secara bertahap. Sistem ini memiliki tiga entitas utama (Buku, Anggota, Transaksi) dengan business rules nyata, dan akan berkembang dari halaman statis sederhana hingga aplikasi web penuh dengan autentikasi menggunakan Laravel.
D. MATERI PEMBELAJARAN
1 Konsep Frontend dan Backend
a. Definisi Frontend (Client-Side)
Frontend adalah bagian aplikasi web yang berinteraksi langsung dengan pengguna, dijalankan di browser pengguna.
Karakteristik Frontend:
- Dieksekusi di sisi client (browser)
- Mengatur tampilan dan interaksi visual
- Dapat dilihat dan diinspeksi langsung oleh pengguna
Teknologi Frontend: HTML, CSS, JavaScript, React, Vue.js
b. Definisi Backend (Server-Side)
Backend adalah bagian aplikasi web yang mengelola logika bisnis, pemrosesan data, dan komunikasi dengan database, dijalankan di server.
Karakteristik Backend:
- Dieksekusi di sisi server
- Tidak terlihat langsung oleh pengguna
- Mengelola keamanan, autentikasi, dan integritas data
Teknologi Backend: PHP, Python, Node.js, Java, MySQL, PostgreSQL
c. Perbandingan Frontend dan Backend
| Aspek | Frontend | Backend |
|---|---|---|
| Lokasi Eksekusi | Browser (client) | Server |
| Visibilitas | Terlihat pengguna | Tersembunyi |
| Fungsi Utama | Tampilan & interaksi | Logika & data |
| Bahasa Utama | HTML, CSS, JavaScript | PHP, Python, SQL |
| Output | UI / Halaman web | Data, response JSON/HTML |
Analogi Restoran:
- Frontend = Ruang makan dan pelayan (berinteraksi langsung dengan pelanggan)
- Backend = Dapur (memproses pesanan, mengolah bahan)
- Database = Gudang penyimpanan bahan makanan
2 Alur Request-Response HTTP
a. Penjelasan Alur
Setiap kali pengguna mengakses halaman web, terjadi komunikasi antara browser dan server melalui protokol HTTP:
1. User mengetik URL di browser
β
2. Browser mengirim HTTP Request ke Web Server (Apache)
β
3. Apache meneruskan ke PHP Engine
β
4. PHP mengeksekusi kode dan query ke Database MySQL
β
5. MySQL mengembalikan hasil query ke PHP
β
6. PHP membangun HTML dari data yang diterima
β
7. Apache mengirim HTTP Response (HTML) ke browser
β
8. Browser merender dan menampilkan halaman ke penggunab. HTTP Methods
| Method | Fungsi | Contoh dalam Sistem Perpustakaan |
|---|---|---|
| GET | Mengambil data | Menampilkan daftar buku |
| POST | Mengirim data baru | Menambah buku baru |
| PUT | Memperbarui data secara lengkap | Mengubah semua data buku |
| PATCH | Memperbarui sebagian data | Mengubah stok buku saja |
| DELETE | Menghapus data | Menghapus buku dari sistem |
3 Arsitektur Web 3-Tier
Arsitektur Three-Tier membagi sistem aplikasi menjadi tiga lapisan yang memiliki tanggung jawab berbeda namun saling terhubung.
βββββββββββββββββββββββββββββββββββββββ
β PRESENTATION TIER β
β HTML, CSS, JavaScript (Browser) β β Pengguna berinteraksi di sini
ββββββββββββββββββββ¬βββββββββββββββββββ
β HTTP Request / Response
ββββββββββββββββββββ΄βββββββββββββββββββ
β APPLICATION TIER β
β PHP / Laravel (Server) β β Logika bisnis diproses di sini
ββββββββββββββββββββ¬βββββββββββββββββββ
β SQL Query / Result
ββββββββββββββββββββ΄βββββββββββββββββββ
β DATA TIER β
β MySQL Database β β Data disimpan dan dikelola di sini
βββββββββββββββββββββββββββββββββββββββPemisahan lapisan ini membuat sistem lebih terstruktur, mudah dikembangkan, dan aman, karena setiap tier dapat dimodifikasi secara independen tanpa mengganggu lapisan lainnya.
4 Peran Teknologi dalam Studi Kasus Perpustakaan
PHP (Hypertext Preprocessor)
- Peran: Memproses request, menjalankan logika bisnis, berkomunikasi dengan database
- Digunakan: Pertemuan 2β7 (PHP Native) dan 9β15 (Laravel)
- Contoh penggunaan: Mengecek apakah stok buku tersedia, menghitung denda keterlambatan
MySQL
- Peran: Menyimpan dan mengelola data buku, anggota, dan transaksi secara persisten
- Digunakan: Sepanjang semester
- Contoh penggunaan:
SELECT * FROM buku WHERE stok > 0
Laravel
- Peran: Framework PHP yang menyediakan struktur MVC, ORM, routing, dan autentikasi secara terintegrasi
- Digunakan: Pertemuan 9β15 (refactoring dari PHP Native)
- Kapan digunakan: Project skala menengah-besar yang membutuhkan maintainability tinggi
5 Studi Kasus: Gambaran Sistem Perpustakaan
Sepanjang semester, kita akan membangun Sistem Manajemen Perpustakaan secara bertahap. Berikut gambaran besarnya:
Entitas Utama dan Strukturnya:
BUKU ANGGOTA
- id_buku (PK) - id_anggota (PK)
- kode_buku (UNIQUE) - nama
- judul - email
- kategori - telepon
- pengarang - alamat
- penerbit - tanggal_daftar
- tahun_terbit - status
- isbn
- harga
- stok
β β
TRANSAKSI
- id_transaksi (PK)
- id_buku (FK)
- id_anggota (FK)
- tanggal_pinjam
- tanggal_kembali
- status
- dendaCatatan: Skema lengkap ini adalah target akhir yang akan dibangun secara bertahap. Di Pertemuan 1 kita hanya membuat versi sederhana untuk pengenalan. Skema penuh dengan SQL DDL lengkap akan dibuat di Pertemuan 6.
Business Rules:
- Anggota hanya bisa meminjam jika stok buku > 0
- Maksimal 3 buku per anggota dalam satu waktu
- Durasi pinjam: 7 hari
- Denda keterlambatan: Rp 1.000/hari
- Stok buku otomatis berkurang saat dipinjam dan bertambah saat dikembalikan
Roadmap Development:
- Fase 1 (PHP Native β P2 s/d UTS): Data statis β Form input β CRUD + Database
- Fase 2 (Laravel β P9 s/d UAS): Refactor ke MVC β ORM β Autentikasi β Transaksi lengkap
E. PRAKTIKUM
1 Tujuan Praktikum
- Menginstal dan mengkonfigurasi development environment (XAMPP atau Laragon)
- Memverifikasi bahwa PHP dan MySQL berjalan dengan benar
- Membuat file PHP pertama dan menampilkannya di browser
- Mengenal antarmuka phpMyAdmin untuk manajemen database
2 Instalasi Development Environment
Opsi A β XAMPP (Windows / Mac / Linux)
Langkah 1: Download
- Buka https://www.apachefriends.org (opens in a new tab)
- Download XAMPP versi terbaru (PHP 8.x) sesuai sistem operasi
Langkah 2: Instalasi (Windows)
- Jalankan installer
xampp-windows-xxx.exe - Klik Next hingga selesai
- Pastikan komponen berikut tercentang: Apache, MySQL, PHP, phpMyAdmin
Langkah 3: Menjalankan XAMPP
- Buka XAMPP Control Panel
- Klik Start pada Apache dan MySQL
- Status berubah menjadi hijau jika berhasil
Langkah 4: Verifikasi
- Buka browser, akses http://localhost (opens in a new tab)
- Harus muncul halaman selamat datang XAMPP
- Folder project:
C:\xampp\htdocs
Opsi B β Laragon (Direkomendasikan untuk Windows)
Langkah 1: Download di https://laragon.org (opens in a new tab) β pilih Laragon Full Langkah 2: Install β Next hingga selesai Langkah 3: Buka Laragon β klik Start All Langkah 4: Verifikasi di http://localhost (opens in a new tab) β muncul halaman Laragon
- Folder project:
C:\laragon\www
3 Membuat File PHP Pertama
Langkah 1: Buat Folder Project
- Masuk ke
C:\xampp\htdocsatauC:\laragon\www - Buat folder baru:
perpustakaan
Langkah 2: Buat File index.php
Buat file baru bernama index.php di dalam folder perpustakaan, isi dengan kode berikut:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sistem Perpustakaan</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 800px;
margin: 50px auto;
padding: 20px;
background-color: #f4f4f4;
}
.card {
background: white;
padding: 25px;
border-radius: 8px;
margin: 15px 0;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
h1 { color: #2c3e50; border-bottom: 3px solid #27ae60; padding-bottom: 10px; }
.info { background: #e8f5e9; border-left: 4px solid #27ae60; padding: 12px; margin: 10px 0; }
.server { background: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 10px 0; }
</style>
</head>
<body>
<div class="card">
<h1>ποΈ Sistem Manajemen Perpustakaan</h1>
<div class="info">
<h3>Selamat Datang!</h3>
<p><strong>Dibuat oleh:</strong> <?php echo "Nama Mahasiswa Anda"; ?></p>
<p><strong>Tanggal:</strong> <?php echo date('d F Y'); ?></p>
<p><strong>Waktu Server:</strong> <?php echo date('H:i:s'); ?></p>
</div>
<div class="server">
<h3>Informasi Server</h3>
<p><strong>PHP Version:</strong> <?php echo phpversion(); ?></p>
<p><strong>Server Software:</strong> <?php echo $_SERVER['SERVER_SOFTWARE']; ?></p>
<p><strong>Document Root:</strong> <?php echo $_SERVER['DOCUMENT_ROOT']; ?></p>
</div>
<?php
// Data statis β belum dari database
$nama_perpus = "Perpustakaan Universitas ABC";
$total_buku = 1250;
$total_anggota = 450;
$buku_dipinjam = 178;
$buku_tersedia = $total_buku - $buku_dipinjam;
$persen_pinjam = round(($buku_dipinjam / $total_buku) * 100, 1);
?>
<div class="info">
<h3>π Statistik <?php echo $nama_perpus; ?></h3>
<p><strong>Total Buku:</strong> <?php echo number_format($total_buku); ?> buku</p>
<p><strong>Total Anggota:</strong> <?php echo number_format($total_anggota); ?> orang</p>
<p><strong>Sedang Dipinjam:</strong> <?php echo $buku_dipinjam; ?> buku (<?php echo $persen_pinjam; ?>%)</p>
<p><strong>Tersedia:</strong> <?php echo number_format($buku_tersedia); ?> buku</p>
</div>
</div>
</body>
</html>Langkah 3: Jalankan dan Verifikasi
- Buka browser
- Akses: http://localhost/perpustakaan/ (opens in a new tab)
- Halaman statistik perpustakaan harus tampil dengan benar
Langkah 4: Pahami Struktur Kode
<?php ... ?>β Tag pembuka dan penutup blok PHPechoβ Menampilkan output ke halamandate()β Fungsi tanggal dan waktu bawaan PHP$_SERVERβ Array superglobal berisi informasi server$variabelβ Cara deklarasi variabel di PHPnumber_format()β Memformat angka dengan pemisah ribuan
4 Eksplorasi phpMyAdmin
Langkah 1: Akses phpMyAdmin
- Buka browser β akses http://localhost/phpmyadmin (opens in a new tab)
- Login (default: username =
root, password = kosong)
Langkah 2: Buat Database
- Klik tab Databases
- Isi nama database:
perpustakaan_db - Collation:
utf8mb4_general_ci - Klik Create
Langkah 3: Buat Tabel buku (Versi Preview)
Catatan: Tabel yang dibuat di sini adalah versi sederhana untuk pengenalan antarmuka phpMyAdmin. Skema lengkap dengan semua kolom (kode_buku, kategori, penerbit, tahun_terbit, isbn, harga, dll.) akan dibuat menggunakan SQL DDL di Pertemuan 6. Jangan khawatir jika tabel ini terasa kurang lengkap β itu memang disengaja.
- Pilih database
perpustakaan_db - Isi nama tabel:
buku, jumlah kolom: 4 β klik Go - Isi definisi kolom:
| Kolom | Tipe | Keterangan |
|---|---|---|
| id | INT | Primary Key, Auto Increment |
| judul | VARCHAR(200) | Not Null |
| pengarang | VARCHAR(100) | Not Null |
| stok | INT | Default 0 |
- Klik Save
Langkah 4: Insert Data dan Uji Query
- Klik tab Insert β tambahkan 3 data buku dummy
- Klik tab SQL β jalankan query berikut:
SELECT * FROM buku WHERE stok > 0;- Perhatikan hasilnya β ini adalah dasar dari semua operasi Read yang akan kita bangun
F. TUGAS
1 Tugas 1: Dokumentasi Environment (40%)
Instruksi: Buat dokumen PDF berisi screenshot beserta penjelasan singkat dari setiap tampilan:
- XAMPP Control Panel atau Laragon dengan Apache & MySQL berstatus running
- Halaman http://localhost (opens in a new tab) (halaman default server)
- Halaman http://localhost/perpustakaan/ (opens in a new tab) (file index.php Anda)
- Antarmuka phpMyAdmin setelah tabel
bukuberhasil dibuat
Sertakan Nama, NIM, dan Kelas di bagian atas dokumen.
Deadline: Sebelum Pertemuan 2 Platform: Ngaji UIN Gusdur (opens in a new tab)
2 Tugas 2: Modifikasi index.php (60%)
Instruksi:
Salin index.php menjadi index_v2.php, kemudian modifikasi dengan menambahkan:
- Nama Anda sebagai pembuat di bagian selamat datang
- Variabel
$alamat_perpusdan$telepon_perpus, tampilkan di dalam card info - Variabel
$jam_bukadan$jam_tutupuntuk jam operasional - Card baru bertema Informasi Perpustakaan yang menampilkan: alamat, telepon, jam operasional, dan hari libur (SabtuβMinggu)
- Perhitungan dan tampilan persentase buku yang tersedia (bukan dipinjam):
$persen_tersedia = round(($buku_tersedia / $total_buku) * 100, 1);Deadline: Sebelum Pertemuan 2 Platform: Ngaji UIN Gusdur (submit link repository GitHub)
G. EVALUASI
1 Kuis Singkat (Dikerjakan di Kelas)
Pilihan Ganda:
-
Apa kepanjangan dari PHP?
- A. Personal Home Page
- B. PHP: Hypertext Preprocessor
- C. Private Hypertext Processor
- D. Public HTML Processor
-
Teknologi berikut yang termasuk kategori frontend:
- A. PHP
- B. MySQL
- C. JavaScript
- D. Laravel
-
HTTP Method yang digunakan untuk mengambil data:
- A. POST
- B. GET
- C. PUT
- D. DELETE
-
Port default Apache Web Server:
- A. 3306
- B. 8080
- C. 80
- D. 443
-
Dalam arsitektur 3-tier, MySQL termasuk ke dalam tier:
- A. Presentation Tier
- B. Application Tier
- C. Data Tier
- D. Business Tier
Essay Singkat:
- Jelaskan minimal 3 perbedaan antara frontend dan backend pengembangan web!
- Gambarkan dan jelaskan alur request-response HTTP dari browser hingga database!
- Sebutkan 3 entitas data utama dalam Sistem Perpustakaan yang akan kita bangun, beserta minimal 3 atributnya masing-masing!
H. REFERENSI
1 Referensi Utama
- Welling, L. & Thomson, L. (2016). PHP and MySQL Web Development (5th Edition). Addison-Wesley. ISBN: 978-0321833891
- Stauffer, M. (2023). Laravel: Up & Running (3rd Edition). O'Reilly Media. ISBN: 978-1098153267
2 Referensi Online
- PHP Manual β https://www.php.net/manual/en/ (opens in a new tab)
- W3Schools PHP Tutorial β https://www.w3schools.com/php/ (opens in a new tab)
- Laravel Official Documentation β https://laravel.com/docs (opens in a new tab)
- MySQL Documentation β https://dev.mysql.com/doc/ (opens in a new tab)
- XAMPP Documentation β https://www.apachefriends.org/docs/ (opens in a new tab)
3 Video Resources
- Traversy Media β "PHP For Beginners" (YouTube)
- Laravel Daily β "Laravel for Beginners" (YouTube)
- freeCodeCamp β "PHP Programming Language Tutorial" (YouTube)
I. LAMPIRAN
Lampiran A: Checklist Persiapan Mahasiswa
Gunakan checklist ini untuk memastikan kesiapan sebelum pertemuan 2:
- XAMPP atau Laragon berhasil diinstal
- Apache berjalan dan http://localhost (opens in a new tab) dapat diakses
- MySQL berjalan dan phpMyAdmin dapat diakses
- Folder
perpustakaansudah dibuat di dalamhtdocsatauwww - File
index.phptampil dengan benar di http://localhost/perpustakaan/ (opens in a new tab) - Database
perpustakaan_dbberhasil dibuat di phpMyAdmin - Tabel
bukuberhasil dibuat dengan 4 kolom - Tugas 1 dan Tugas 2 sudah dikumpulkan di Ngaji UIN Gusdur
Lampiran B: Panduan Troubleshooting Umum
| Masalah | Kemungkinan Penyebab | Solusi |
|---|---|---|
| Apache tidak bisa start | Port 80 dipakai program lain | Ganti port Apache ke 8080 di XAMPP Config, akses via http://localhost:8080 (opens in a new tab) |
| MySQL tidak bisa start | Port 3306 dipakai program lain | Cek Task Manager, matikan proses MySQL lain |
| localhost tidak bisa diakses | Apache belum jalan | Pastikan status Apache = Running (hijau) di XAMPP |
| File PHP tidak dieksekusi | File disimpan di luar htdocs | Pastikan folder project ada di dalam C:\xampp\htdocs |
| phpMyAdmin tidak bisa dibuka | MySQL belum running | Start MySQL terlebih dahulu di XAMPP Control Panel |
Lampiran C: Contoh Struktur Folder Project
C:\xampp\htdocs\
βββ perpustakaan\
βββ index.php β File utama (dibuat hari ini)
βββ index_v2.php β Tugas 2
βββ (folder lain akan dibuat di pertemuan selanjutnya)PENUTUP
Pertemuan 1 ini adalah fondasi dari seluruh perjalanan semester. Pemahaman tentang arsitektur backend dan keberhasilan setup environment akan menentukan kelancaran praktikum di pertemuan-pertemuan berikutnya.
Key Messages:
- Backend bukan hanya soal coding β ini tentang memahami bagaimana data mengalir dari pengguna ke database dan kembali lagi
- Studi kasus Perpustakaan adalah proyek nyata yang akan terus berkembang β jaga kode Anda dengan baik
- Jangan ragu bertanya jika environment bermasalah β lebih baik selesaikan sekarang daripada tertinggal di pertemuan berikutnya
Persiapan Pertemuan 2:
- Pastikan environment sudah berjalan sempurna
- Baca materi PHP Dasar (variabel, tipe data, operator) dari referensi yang disediakan
- Kumpulkan Tugas 1 dan Tugas 2 sebelum Pertemuan 2 dimulai
Disusun oleh: Mohammad Reza Maulana, M.Kom Program Studi Informatika UIN K.H. Abdurrahman Wahid Pekalongan
Revisi: Februari 2026