IF330L Pemrograman Web
IF330L Pemrograman Web
DESKRIPSI TEMA
Mahasiswa mempersiapkan development environment untuk melakukan pengembangan aplikasi
berbasis web, yaitu melakukan installasi XAMPP sebagai local web server, Visual Studio Code sebagai
code editor dan Postman untuk melakukan pengujian API.
LANGKAH-LANGKAH PRAKTIKUM
PHP merupakan salah satu Bahasa scripting sisi server yang paling popular saat ini. Kode PHP dapat
berdiri sendiri atau disisipkan pada kode HTML. Kode PHP diproses oleh sebuah interpreter PHP yang
didukung oleh Zend Engine.
Sintaks PHP
- Kode PHP selalu dibungkus menggunakan tag <?php dan ?>
- Setiap baris kode diakhiri dengan titik-koma (;)
- Untuk menulis komentar, menggunakan double-slash (//) atau /* dan */
Hello World
Buatlah sebuah file dengan nama “index.php”, simpan pada folder “htdocs”, dan ketikkan kode berikut:
Setelah menjalankan servis Apache, arahkan browser URL ke http://localhost/path/index.php dan lihat
hasilnya.
Selain menggunakan Apahcer Service melalui XAMPP, local webserver juga bisa diaktifkan menggunakan
PHP CLI. Ketikkan command berikut melalui terminal, pada path dimana file index.php berada.
Kemudian arahkan URL pada web browser ke http://localhost:8000 dan lihat hasilnya.
HTML + PHP
PHP juga dapat disisipkan kedalam kode HTML, ubah kode pada file index.php menjadi seperti berikut:
Buat file navbar.php dan data.php, simpan pada direktori yang sama dengan index.php. Potong kode dari
index.php, sehingga menjadi seperti berikut.
navbar.php
data.php
Ketika dibuka di browser, maka akan menampilkan halaman web yang sama seperti sebelumnya.
Selanjutnya coba ganti nama file pada baris ke-2 dan ke-13, sehingga nama file tidak sesuai (missal
navbar1.php dan data1.php), kemudian jalankan Kembali di browser, kode php akan tetap di proses dan
halaman web ditampilkan meskipun tidak lengkap.
TUGAS
1. Ganti function include menjadi require, jelaskan apa yang terjadi.
2. Pelajari dan jelaskan perbedaan antara function include() dan include_once() serta require()
dan require_once().
DESKRIPSI TEMA
Mahasiswa mempraktikan dasar-dasar pemrograman dengan PHP, yaitu variable, array, function dan
struktur kontrol.
LANGKAH-LANGKAH PRAKTIKUM
1. [TUGAS 1] Buatlah sebuah array dua dimensi bernama negara. Dimensi pertama terdiri dari nama
negara, dan dimensi kedua adalah associative arrays (menggunakan string sebagai indeksnya) yang
berisi atribut :
a. ibuKota,
b. kodeTel dan
c. mataUang
Ketentuan: masing-masing data dibuat dengan array 2 dimensi, dengan struktur array/penamaan bebas.
Dengan menggunakan foreach/for, tampilkan seluruh data (data bebas) dalam Bootstrap’s Data Table
(https://datatables.net/manual/styling/bootstrap5).
Simpan dalam file jawaban2.php.
Ketentuan: Buat menggunakan perulangan sebanyak 24 kali untuk menampilkan jam dalam format 24 jam,
dan buat function untuk menampilkan format waktu 12 jam dan salam.
Berikut adalah contoh potongan kode untuk menampilkan baris data:
MINGGU 3
PHP FORMS, SESSION, COOKIE
DESKRIPSI TEMA
Mahasiswa mempraktikkan bagaimana melakukan pemrosesan data dari formulir menggunakan
PHP, menggunakan Session, dan melakukan penyimpanan data pada Cookie.
LANGKAH-LANGKAH PRAKTIKUM
Proses PHP Form
1. Buatlah sebuah file “form_get.php”, simpan dalam folder “Week-03 NIM Nama”, kemudian buatlah
sebuah form seperti gambar berikut menggunakan HTML:
4. Kerjakan Tugas 1
Cookie Sederhana
1. Buatlah sebuah file “cookie.php”, kemudian tuliskan kode berikut:
2. Coba buka melalui browser, maka akan muncul tampilan seperti berikut:
3. Coba refresh web browser, maka akan muncul tampilan seperti berikut:
4. Jalankan “cookie_read.php” pada web browser, maka akan muncul tampilan berikut:
6. Jalankan Kembali file “cookie_read.php” melalui web browser, maka akan muncul tampilan seperti
berikut:
Kemudian buat file “proses_post.php” yang akan menerima data dari form_post dan menampilkannya
seperti gambar berikut:
Ketika tombol Calculate BMI di-click, maka data akan dikirimkan ke “proses_bmi.php” yang akan
melakukan validasi, apakah semua field sudah diisi, jika belum, maka akan muncul pesan seperti
berikut:
Jika pengisian formulir lengkap dan tombol Calculate BMI di-click, maka data akan diproses pada
proses_bmi.php dengan rumus perhitungan BMI:
Setiap kali melakukan perhitungan BMI, data akan disimpan menggunakan Cookie, dan dapat dilihat
pada menu History.
Catatan: Perhatikan halaman BMI Result dan BMI History, terdapat warna yang ditentukan
berdasarkan hasil perhitungan BMI.
Hijau – Normal, Kuning – Underweight / Overweight, Merah – Obese.
DESKRIPSI TEMA
Mahasiswa mempraktikkan bagaimana menerapkan konsep pemrograman berorientasi obyek
menggunakan PHP
LANGKAH-LANGKAH PRAKTIKUM
Buat sebuah folder Week04_NIM_Nama, simpan semua file yang akan dibuat pada praktikum ini pada
folder tersebut.
Modifikasi Class Mobil, tambahkan constructor untuk menge-set property nama dan merk pada saat
pembuatan object, dan tambahkan destructor yang akan menampilkan informasi produk.
Berikut adalah hasil dari perubahan kode yang diharapkan.
Ubah access modifier dari property nim dan nama menjadi private. Jika program dijalankan maka akan
mengalami error. Modifikasi program sehingga dapat berjalan seperti semula dengan tetap menggunakan
access modifier private untuk nim dan nama (Tidak boleh menggunakan constructor)
9. Berikut adalah potongan kode pada file proses.php yang menampilkan hasil seperti pada gambar poin 7
dan 8.
10. Gunakan init.php untuk melakukan autoloading class Mahasiswa dari folder Sarjana dan Magister.
DESKRIPSI TEMA
Mahasiswa mempraktikkan bagaimana melakukan upload file dan membuat file (PDF dan Excel)
menggunakan PHP
LANGKAH-LANGKAH PRAKTIKUM
File Upload Sederhana
1. Buatlah sebuah folder “01_file_upload”, kemudian buat file index.php dan proses.php
5. Ubah kode pada file proses.php untuk menyimpan file yang diupload secara permanen pada folder
uploads
6. Lakukan upload file Kembali, apakah file berhasil tersimpan di folder uploads?
7. Tambahkan kode berikut untuk melakukan validasi upload file hanya untuk file gambar saja.
5. Kerjakan Tugas 1
4. Buat file Greetings.php di dalam folder src/, dan tuliskan kode berikut
6. Buat file index.php pada di dalam folder 03_composer (pada level yang sama dengan file
composer.json)
9. Jika ya, jalankan command: composer dump-autoload, kemudian coba jalankan Kembali di
browser, apakah berhasil?
TUGAS
1. Modifikasi file index.php untuk menghasilkan file PDF dengan tampilan seperti berikut
2. Modifikasi aplikasi perhitungan BMI yang Anda kerjakan pada pertemuan ke-3 sehingga data hasil
perhitungan BMI disimpan ke dalam file Excel dan data history diambil dari file Excel yang sama.
DESKRIPSI TEMA
Mahasiswa mempraktikkan proses manipulasi data pada database menggunakan PHP dan MySQL.
LANGKAH-LANGKAH PRAKTIKUM
MySQLi Extension
1. Buka phpMyAdmin dan buat sebuah database baru (nama database bebas, contoh ini menggunakan
nama database umn_genap2122_pemweb_w6), buat sebuah table mahasiswa dengan struktur seperti
berikut
5. Modifikasi kode php menjadi seperti berikut untuk menampilkan 2 data dari database. Perhatikan
bahwa setiap kali function mysqli_fetch_assoc() dijalankan, maka akan menarik baris data berikutnya
dari database.
8. Tampilan di browser
9. Untuk melakukan INSERT, UPDATE, dan DELETE Anda dapat mengubah kode SQL yang akan
dijalankan. Berikut contoh kode untuk melakukan INSERT data mahasiswa.
3. Untuk melakukan INSERT, UPDATE, dan DELETE dapat dilakukan dengan mengubah kode SQL.
Berikut adalah contoh kode untuk melakukan UPDATE.
2. Buat sebuah file dengan nama insert_proses.php dan tuliskan kode berikut
4. Ketika link “Detail” di-klik maka akan menampilkan data dari masing-masing mahasiswa.
TUGAS
DESKRIPSI TEMA
Mahasiswa mempraktikkan bagaimana membangun aplikasi yang aman dengan PHP
LANGKAH-LANGKAH PRAKTIKUM
Password Hash, Password Verify & Random Token
1. Buatlah sebuah file password_hash.php, kemudian tuliskan kode berikut:
2. Ketika dijalankan di browser, akan menampilkan 60 karakter string hasil enkripsi. Jika browser
di-refresh, maka akan dihasilkan 60 karakter string hasil enkripsi yang berbeda.
6. Ketika di jalankan, function random_bytes akan menghasilkan random bytes sebanyak 20 karakter
dan function bin2hex akan mengkonversi bytes menjadi hexadecimal.
Authentication System
1. Buatlah sebuah database dengan table users2 dengan struktur seperti berikut
9. Coba lakukan login, apakah berhasil masuk ke halaman internal.php? Kemudian logout, dan coba
buka halaman internal.php tanpa login. Jika dilakukan dengan benar, maka halaman internal.php
hanya bisa diakses jika user telah login.
TUGAS
Modifikasi tugas pada pertemuan sebelumnya (minggu ke-6), dimana manajemen (CRUD) data
mahasiswa hanya bisa dilakukan oleh user yang telah login.
DESKRIPSI TEMA
Mahasiswa mempraktikkan dasar-dasar pengembangan web dengan konsep MVC menggunakan
framework Laravel.
LANGKAH-LANGKAH PRAKTIKUM
Installasi Laravel
1. Arahkan directory command prompt/terminal pada folder yang diinginkan sebagai tempat instalasi
project, kemudian jalankan command berikut:
2. Masuk ke folder project, kemudian jalankan command php artisan serve untuk menjalankan
local web server.
6. Tambahkan kode berikut untuk membuat Route dengan Parameter lebih dari satu
DESKRIPSI TEMA
Mahasiswa mempraktikkan penggunaan Controller dan View pada Framework Laravel
LANGKAH-LANGKAH PRAKTIKUM
Membuat Controller
1. Controller berada pada direktori app/Htpp/Controllers
2. Terdapat dua cara untuk membuat Controller, yaitu secara manual dengan membuat file php pada
folder Controller dan menulis kode secara manual, atau bisa dilakukan secara otomatis menggunakan
php artisan. Untuk membuat Controller menggunakan php artisan, gunakan terminal dan ketikkan
command berikut: php artisan make:controller PostController
4. Kita akan mencoba membuat file PostController dengan beberapa fungsi dasar. Sebelumnya, hapus
terlebih dahulu file PostController yang baru saja dibuat.
Kode tersebut akan membuat route /post untuk memanggil function index() yang ada di
PostController.
Passing Data
1. Buka file routes/web.php, kemudian tambahkan {id} pada parameter ‘/post/{id}’.
2. Kemudian pada PostController.php, ubah kode pada function index() menjadi seperti berikut:
7. Jalankan command berikut untuk melihat semua list yang sudah didefinisikan:
4. Coba hasilnya pada browser. (http://localhost/posts/test) Perhatikan bahwa hasilnya tidak sesuai
dengan yang kita harapkan (menampilkan view yang sebelumnya dibuat).
6. Untuk mengirimkan data dari Controller ke View, digunakan array assosiatif. Modifikasi kode
PostController.php dan test.blade.php menjadi seperti berikut:
Blade Features
1. Tambahkan kode berikut pada PostController.php
TUGAS
1. Buat sebuah controller dengan nama StudentController.
2. Buat sebuah route ‘/students’ dengan method GET yang menggunakan function index() pada
StudentController.
3. Buat file views/students/index.blade.php
MINGGU 10
MODEL & MIGRATION
DESKRIPSI TEMA
Mahasiswa mempraktikkan proses CRUD menggunakan framework Laravel dengan memanfaatkan
Model dan Migration.
Migrations
1. Sebelum menggunakan database, kita lakukan setting terlebih dulu informasi database yang akan
digunakan pada file .env. Ubah kode .env seperti contoh pada gambar berikut:
2. Buka phpMyAdmin dan buat database baru dengan nama sesuai dengan yang dituliskan pada file
.env.
3. Perhatikan folder database/migrations, terdapat empat file migrations yang sudah ada secara default.
5. Buka phpMyAdmin, perhatikan database yang sebelumnya dibuat. Setelah migration, kini terdapat 5
tabel.
Method timestamp() akan membuat dua kolom pada table database, yaitu created_at dan
updated_at.
3. Tambahkan kode berikut untuk memodifikasi struktur table dasar yang sudah dibuat secara default.
6. Misalnya jika kita ingin membatalkan migration yang baru saja dilakukan, ketikkan command berikut:
7. Migration terakhir yang kita lakukan adalah membuat table posts, ketika di-rollback, maka akan
menghapus table posts. Buka phpMyAdmin dan cek apakah table posts sudah dihapus.
8. Misalnya kita ingin mengubah salah satu nama kolom pada tabel posts, dari “body” menjadi
“content”. Ubah file migration posts menjadi seperti berikut:
2. Migration file otomatis dibuat. Ubah kode pada migration file tersebut menjadi seperti berikut:
Semua status Ran?=No, artinya belum ada file migration yang dijalankan, karena baru saja kita reset.
Inserting Data
1. Ketikkan kode berikut pada file routes/web.php
3. Buka phpMyAdmin, dan cek apakah tabel post sudah berisi data.
Reading Data
1. Ketikkan kode berikut pada file routes/web.php
3. Variable $results merupakan variable array yang menampung hasil SELECT. Coba ubah kode pada
routes/web.php menjadi seperti berikut:
Deleting Data
1. Ketikkan kode berikut pada routes/web.php
Latihan:
Coba insert beberapa data dengan cara ini, kemudian tampilkan data yang sudah di-insert tersebut.
Update dan delete beberapa data di antaranya.
Database Eloquent/ORM
Kita akan melakukan manipulasi database menggunakan method yang sudah disediakan oleh Laravel.
Reading Data
1. Kita mulai dengan membuat Model dengan command php artisan
2. File model akan otomatis dibuatkan. Secara default, Model Post akan mengakses tabel posts pada
database (bentuk jamak dari Post – lowercase) dan menganggap tabel database memiliki primary key
dengan nama id.
4. Tambahkan kode berikut pada routes/web.php (komentari bagian Raw SQL Queries) sehingga Anda
dapat membandingkan cara kerja Raw SQL dengan Eloquent.
5. Pastikan terdapat data pada tabel posts. Jika belum, Anda dapat melakukan insert secara manual
menggunakan phpMyAdmin.
2. Jalankan di browser
3. Jalankan di browser
2. Jalankan di browser
2. Jalankan di browser
5. Jalankan di browser
7. Kita juga dapat menggunakan query untuk memilih record yang akan dihapus dengan kode berikut:
2. Buat migration untuk menambahkan kolom “deleted_at” pada tabel posts dengan mengetikkan
command berikut pada terminal.
3. File migration akan otomatis dibuatkan, tambahkan kode berikut pada file tersebut.
6. Jika sebelumnya tabel posts tidak memiliki data (karena sudah dihapus semua pada sesi sebelumnya),
tambahkan dengan memanggil route “/create”.
7. Lihat di phpMyAdmin hasilnya, perhatikan bahwa kolom deleted_at memiliki nilai NULL.
5. Jalankan di browser
TUGAS
1. Buat file Model “Student.php” dan file migration untuk membuat table “students” dengan command
“php artisan make:model Student -m”.
2. Struktur tabel students:
id INT PRIMARY AUTO_INCREMENT
nim VARCHAR(10) UNIQUE
nama VARCHAR(50)
prodi VARCHAR(20)
3. Ulangi semua tahap yang sebelumnya sudah dipelajari, untuk melakukan proses CRUD pada tabel
posts dengan routes “/students/THEPROCESS”.
DESKRIPSI TEMA
Mahasiswa mempraktikkan Eloquent Relationship menggunakan Framework Laravel
LANGKAH-LANGKAH PRAKTIKUM
Praktikum minggu ini menggunakan code-base yang sama/melanjutkan dari minggu sebelumnya.
One-to-One Relationship
(Target: Menampilkan post berdasarkan user_id)
1. Kita akan menambahkan kolom user_id pada tabel posts untuk menghubungkan posts dengan users.
Edit file migration yang digunakan untuk membuat tabel posts (kita akan melakukan refresh – drop all
migration and migrate all, alternative lain bisa membuat file migration baru dan melakukan migrate)
2. Lakukan migrate:refresh
10.Jika kita ingin menampilkan salah satu kolom, misal judul, tambahkan kode berikut:
Many-to-Many Relationship
1. Buat model Role menggunakan PHP artisan command:
4. Pada file migration untuk membuat tabel role_user, tambahkan dua kolom untuk menghubungkan
antara tabel users dan roles, yaitu user_id dan role_id.
5. Lakukan migrate
6. Lihat hasilnya di phpMyAdmin tabel roles dan role_user sudah berhasil dibuat.
9. Tambahkan data pada tabel role_user, kita akan menjadikan user_id 1 sebagai administrator dan
user_id 2 menjadi subscriber, user_id 3 menjadi administrator sekaligus subscriber.
11.Tambahkan route baru untuk menampilkan role berdasarkan user id yang di-supply pada URL.
TUGAS
1. Apa yang baru saja kita lakukan menampilkan kumpulan post title dari user_id 1. Coba modifikasi
sehingga pilihan user_id menjadi dinamis dengan route.
Misal: /user/3/posts 🡪 akan menampilkan semua post title dari user_id 3.
2. Buat sebuah route ‘/role/{id}/user’ yang akan menampilkan daftar user yang memiliki role berdasarkan
id tertentu. Contoh hasil di browser:
PROGRAM STUDI INFORMATIKA | PRAKTIKUM PEMROGRAMAN WEB Hal. 104 dari
127
PROGRAM STUDI INFORMATIKA | PRAKTIKUM PEMROGRAMAN WEB Hal. 105 dari
127
MINGGU 12
FORMS & VALIDATION
DESKRIPSI TEMA
Mahasiswa mempraktikkan penggunaan form, melakukan upload file dan validasi form
menggunakan framework Laravel.
LANGKAH-LANGKAH PRAKTIKUM
Persiapan
1. Buatlah sebuah project Laravel baru dengan nama app-w12.
2. Sesuaikan konfigurasi database pada file .env
Persiapan View
1. Tuliskan kode berikut pada file create.blade.php
10.Ubah kode pada StudentController agar setelah meyimpan ke database, otomatis redirect ke daftar
mahasiswa
RETRIEVE Students
1. Tuliskan kode berikut pada StudentController untuk menampilkan view index
EDIT Student
1. Tambahkan kode berikut pada StudentController untuk menampilkan view Edit.
2. Tambahkan kode berikut pada edit.blade.php untuk menampilkan form edit dengan data lama yang
berasal dari database.
3. Coba lihat hasilnya di browser dengan meng-klik link EDIT pada index.
File Upload
1. Tambahkan kode berikut pada create.blade.php untuk melakukan file Upload
PROGRAM STUDI INFORMATIKA | PRAKTIKUM PEMROGRAMAN WEB Hal. 116 dari
127
2. Tambahkan kode berikut pada StudentController untuk menyimpan file
4. Perhatikan folder storage, file yang diupload disimpan pada folder storeage/app/photos
TUGAS
Buatlah sebuah project Laravel untuk melakukan CRUD pada sebuah tabel, dengan fitur file upload dan
validasi keseluruhan field. Jumlah field/kolom ditentukan berdasarkan angka terakhir dari NIM Anda.
● NIM: xxx0, xxx1: Jumlah kolom: 7
● NIM: xxx2, xxx3: Jumlah kolom: 8
● NIM: xxx4, xxx5: Jumlah kolom: 9
● NIM: xxx6, xxx7: Jumlah kolom: 10
●NIM: xxx8, xxx9: Jumlah kolom: 11
Jumlah kolom termasuk (timestamp: created_at dan updated_at), Anda bisa memodifikasi tidak
menggunakan timestamp. Nama tabel dan nama kolom bebas. Dikerjakan secara individu.
DESKRIPSI TEMA
Mahasiswa mempraktikkan implementasi Authentikasi pada proyek Laravel
LANGKAH-LANGKAH PRAKTIKUM
Laravel Breeze
1. Buatlah sebuah project Laravel baru.
2. Instal Laravel Breeze menggunakan composer dengan command seperti berikut:
4. Coba jalankan aplikasi, perhatikan pada pojok kanan atas terdapat link Login dan Register
2. Buat sebuah Model “Book” beserta dengan file migration-nya. Tuliskan kode berikut pada Model Book
6. Buat route untuk books. Perhatikan terdapat middleware(‘auth’) merupakan mekanisme untuk
memproteksi route sehingga hanya bisa diakses oleh user yang sudah login.
7. Buat BookController, tuliskan kode berikut untuk function index(), create() dan store()
DESKRIPSI TEMA
(Apa yang akan dipelajari mahasiswa pada minggu ini)
LANGKAH-LANGKAH PRAKTIKUM
…
REFERENSI