Instalasi Framework Laravel & Implementasi Alur Kerja Konsep MVC.
Koneksi Database, Migration, Seeder & Implementasi CRUD Laravel.
Laravel Relationship: One-to-Many & Many-to-Many pada Sistem Akademik.
Laravel UI, Bootstrap Templating & Manajemen Users pada Sistem Informasi Sekolah.
Oleh:
NIM. 2411533017
Dosen Pengampu:
NURFIAH, S.ST, M.Kom.
Mata Kuliah:
PEMROGRAMAN WEB
Praktikum ini berfokus pada penerapan Laravel UI untuk fitur autentikasi bawaan, Bootstrap Templating menggunakan template SB Admin 2, serta pembangunan modul
Manajemen Users (CRUD) dalam sebuah studi kasus Sistem Informasi Sekolah (SISFO). Laravel menyediakan paket laravel/ui yang mampu men-generate halaman login, register, dan dashboard
secara otomatis, sehingga proses pengembangan fitur autentikasi menjadi jauh lebih cepat dan terstruktur. Beberapa konsep utama yang dipelajari pada praktikum ini meliputi:
Package laravel/ui yang men-generate controller, model, view, dan route autentikasi (login, register, forgot password) secara otomatis berbasis Bootstrap.
Penambahan kolom kustom username, level, dan status pada tabel users bawaan Laravel melalui file migration tambahan.
Pembuatan layout utama main.blade.php dengan komponen sidebar dan topbar terpisah menggunakan direktif @include, @yield, dan @extends.
Manajemen data pengguna secara lengkap (Create, Read, Update, Delete) menggunakan UserController --resource dengan DataTables dan Select2.
Tujuan dari praktikum ini adalah agar mahasiswa mampu menginstalasi dan mengonfigurasi paket laravel/ui untuk autentikasi, melakukan kustomisasi tabel users melalui migration, membangun layout global
aplikasi menggunakan template SB Admin 2 dengan Blade, serta mengimplementasikan fitur manajemen pengguna (CRUD) yang dilengkapi DataTables untuk pencarian dan paginasi, dan Select2 untuk input level multi-pilihan.
Pengerjaan praktikum dibagi menjadi lima tahap utama: instalasi autentikasi, kustomisasi tabel users, konfigurasi templating global, pembuatan fitur CRUD manajemen users, dan penambahan menu sidebar. Berikut adalah dokumentasi lengkap setiap tahapannya:
Project Laravel baru dibuat dengan nama laravel-sisfo menggunakan Composer. Selanjutnya paket laravel/ui diinstall dan perintah
php artisan ui bootstrap --auth dijalankan untuk men-generate seluruh scaffolding autentikasi secara otomatis. Perintah npm install && npm run dev dijalankan untuk
mengompilasi aset CSS dan JavaScript Bootstrap. Setelah migration berhasil dijalankan, halaman login dan register sudah dapat diakses.
Gambar 1: Halaman Login Aplikasi SISFO dengan Template SB Admin 2
Gambar 2: Halaman Dashboard Setelah Berhasil Login
composer create-project laravel/laravel=^9.0 laravel-sisfo --prefer-distcomposer require laravel/uiphp artisan ui bootstrap --authnpm install && npm run devphp artisan migrate
Tabel users bawaan Laravel hanya memiliki 8 kolom dasar. Untuk kebutuhan SISFO, ditambahkan tiga kolom baru melalui migration kustom: username (varchar unique),
level (varchar, disimpan dalam format JSON untuk mendukung multi-level), dan status (enum: ACTIVE/INACTIVE). Setelah migration berhasil, dibuat AdminSeeder untuk mengisi
data akun admin awal dengan level JSON ["ADMIN"]. Hasil akhir struktur tabel users dapat dilihat di PhpMyAdmin seperti gambar berikut.
Gambar 3: Struktur Tabel Users Setelah Custom Migration (11 Kolom: +username, +level, +status)
Gambar 4: Hasil Seeding — Akun Admin Berhasil Ditambahkan dan Login Berhasil
php artisan make:migration costum_table_usersphp artisan migratephp artisan make:seeder AdminSeederphp artisan db:seed --class=AdminSeeder
Template SB Admin 2 diunduh dari startbootstrap.com dan asetnya disalin ke folder public/sbadmin. Tiga file Blade utama dibuat: app.blade.php (halaman login),
main.blade.php (layout utama dengan @yield), sidebar.blade.php, dan topbar.blade.php yang di-include ke main.blade.php. Setiap
halaman konten cukup menggunakan @extends('layouts.main') dan @section('konten') untuk mewarisi seluruh tampilan layout global. Hasilnya adalah dashboard aplikasi SISFO yang tampil
sepenuhnya dengan sidebar navigasi dan topbar profil pengguna.
Gambar 5: Tampilan Dashboard SISFO Menggunakan Layout Global main.blade.php dengan Sidebar & Topbar
Gambar 6: Dropdown Topbar — Profile, Settings, dan Logout dengan Nama User Aktif
Gambar 7: Sidebar Navigasi dengan Menu Dashboard dan Users
UserController dibuat dengan flag --resource sehingga otomatis memiliki tujuh method CRUD standar Laravel. Route resource didaftarkan di web.php dengan satu baris
Route::resource('users', UserController::class). Tampilan daftar user (index.blade.php) menggunakan DataTables untuk fitur search dan pagination. Form tambah dan edit user
menggunakan Select2 untuk input level multi-pilihan (ADMIN/GURU/STAFF) dengan data level disimpan dalam format JSON. Konfirmasi hapus data ditangani via dialog native browser
confirm().
Gambar 8: Halaman Index Users — Daftar User dengan DataTables, Tombol Tambah User, Edit & Hapus
Gambar 9: Form Edit User — Input Nama, Email, Username, dan Select2 Multi-Level
Gambar 10: Notifikasi "User berhasil diubah" Setelah Operasi Update Sukses
Gambar 11: Dialog Konfirmasi Hapus Data User
Gambar 12: Notifikasi "User berhasil dihapus" dan Daftar User Setelah Penghapusan
Gambar 13: Notifikasi "User baru berhasil ditambahkan" dan Tampilan Data Users Setelah Create
php artisan make:controller UserController --resourcephp artisan serve
Kesimpulan dari praktikum kali ini adalah saya telah berhasil membangun fondasi aplikasi Sistem Informasi Sekolah (SISFO) secara menyeluruh. Dimulai dari instalasi paket laravel/ui yang
men-generate scaffolding autentikasi berbasis Bootstrap secara otomatis, dilanjutkan dengan kustomisasi tabel users melalui migration untuk menambahkan kolom username, level,
dan status sesuai kebutuhan aplikasi. Selanjutnya, diimplementasikan sistem Blade Templating menggunakan template SB Admin 2 dengan arsitektur layout modular (main, sidebar, topbar)
yang memanfaatkan direktif @include, @extends, dan @yield. Puncak dari praktikum ini adalah berhasilnya pembangunan modul Manajemen Users secara penuh (CRUD)
menggunakan resource controller yang dilengkapi DataTables untuk fungsionalitas tabel interaktif serta Select2 untuk input level multi-pilihan berbasis JSON, sehingga seluruh operasi pengelolaan data pengguna dapat
berjalan dengan baik dan aman.
Website profile dijadikan Progressive Web App agar bisa diinstall.
WebAplikasi desktop Java untuk booking rumah.
App
Sistem manajemen laundry lengkap (Java).
AppInstalasi Framework Laravel & Implementasi Alur Kerja Konsep MVC.
Koneksi Database, Migration, Seeder & Implementasi CRUD Laravel.
Laravel Relationship: One-to-Many & Many-to-Many pada Sistem Akademik.
Website bisa diinstall seperti aplikasi.
WebBooking rumah dengan Java Swing.
App
Sistem manajemen laundry.
App
Konversi berbagai satuan (Java).
Other
Oleh:
NIM. 2411533017
Dosen Pengampu:
NURFIAH, S.ST, M.Kom.
Mata Kuliah:
PEMROGRAMAN WEB
Praktikum ini akan berfokus pada bagaimana cara memasang laravel pada perangkat masing masing. Laravel digunakan karena laravel merupakan suatu framework PHP yang populer. Laravel ini dikembangkan oleh taylor otwell. Laravel merupakan proyek open source untuk mengembangkan aplikasi berbasis web dengan arsitektur MVC atau model view controller. Fitur utamanya meliputi:
Memudahkan interaksi database menggunakan sintaks PHP intuitif.
Sistem manajemen template layout HTML bersih dan dinamis.
Command line interface untuk mempercepat pembuatan modul controller & model.
Sistem mapping URL request yang fleksibel.
Tujuan dari praktikum ini adalah agar mahasiswa mampu melakukan instalasi laravel, membuat project baru pada laravel, mengenal struktur laravel, dan memahami konsep mvc laravel.
Langkah pertama yang dilakukan yaitu kita harus mendownload atau menginstal composer terlebih dahulu. Composer merupakan dependensi manajer untuk PHP. Untuk mengecek kelayakan status instalasi, jalankan perintah
composer di cmd:
Gambar 1: Eksekusi Perintah Cek Composer.
Gambar 2: Output Kelayakan Berhasil.
Selanjutnya jalankan perintah pembentukan repositori aplikasi web baru: composer create-project laravel/laravel example-app. Pastikan path CMD berada di dalam area folder root htdocs XAMPP. Jangan lupa
konfigurasikan library penunjang aset Javascript dengan perintah npm install lalu dilanjutkan npm run dev.
Gambar 3: Proses Unduhan Node Modules Dependensi.
Gunakan utilitas perintah php artisan serve untuk menyalakan akses modul local web server target:
Gambar 4: Menjalankan Server Melalui Artisan Console.
Gambar 5: Landing Page Utama Sistem Framework Default.
Berikut merupakan tampilan susunan folder default di dalam sistem utama penunjang kinerja arsitektur framework Laravel:
Gambar 6: Pemetaan Hirarki Penempatan File Project.
UserController.php di sub-folder app/Http/Controllers/ dengan struktur fungsi balikan:

index.blade.php di sub-direktori path tujuan resources/views/user/:

Uji Coba Path Alamat Rute "/halo"
Uji Coba Tampilan Render Alamat Rute "/user"
Kesimpulan dari praktikum kali ini adalah saya telah berhasil melakukan proses setup dan instalasi framework Laravel di local drive komputer masing-masing, membuat repositori struktur project baru, mengenali susunan folder fungsional bawaannya, serta memahami jalannya alur arsitektur MVC (Model-View-Controller) secara fundamental. Keberhasilan penyelesaian seluruh rangkaian instruksi ini dibuktikan dengan berfungsinya kustomisasi rute, logic controller, dan pemanggilan file view target di dalam browser dengan sukses.
Oleh:
NIM. 2411533017
Dosen Pengampu:
NURFIAH, S.ST, M.Kom.
Mata Kuliah:
PEMROGRAMAN WEB
Praktikum kali ini berfokus pada integrasi framework Laravel dengan sistem manajemen basis data relasional (MySQL) menggunakan arsitektur MVC (Model-View-Controller). Laravel mempermudah pengelolaan database melalui fitur-fitur modern yang membuat proses development menjadi lebih terstruktur, aman, dan cepat. Fitur utama yang dipelajari pada praktikum ini meliputi:
Version control untuk database yang memungkinkan pembuatan skema tabel lewat kode PHP.
Pemetaan objek database yang aman menggunakan properti proteksi fillable pada model.
Penyusunan fungsi logika standar CRUD secara otomatis dalam satu modul controller.
Pemetaan jalur URL request CRUD yang rapi hanya dengan satu baris kode routing.
Tujuan dari praktikum ini adalah agar mahasiswa mampu mengonfigurasi koneksi database pada Laravel, memahami dan mengimplementasikan database migration, mengatur fillable mass assignment pada model, membuat resource controller untuk menangani logic data, serta membangun aplikasi web CRUD utuh yang responsif menggunakan Bootstrap 5.
Proses pengerjaan praktikum dibagi menjadi dua sub-bagian utama, yaitu penyelesaian Modul Utama (Manajemen Data Produk) sesuai instruksi panduan dasar, serta pengembangan mandiri pada bagian Latihan (Manajemen Data Mahasiswa). Berikut merupakan dokumentasi dan alur kerja kodenya:
DB_DATABASE=programingweb6.php artisan make:model Product -m.protected $fillable di file Model Produk agar data form bisa lolos validasi.php artisan make:controller ProductController --resource untuk menghasilkan struktur fungsi CRUD bawaan Laravel.
Gambar 1: Interface Awal Halaman CRUD Utama (Kondisi Kosong / No Data)
Gambar 2: Form Interface Menambahkan Produk Asus Vivobook
Gambar 3: Data Produk Berhasil Ter-render dan Disimpan ke Database
Eksperimen mandiri mereplikasi arsitektur MVC ke entitas data Mahasiswa untuk memvalidasi pemahaman fungsi CRUD terisolasi menggunakan route resource kustom.
Gambar 4: Tampilan Interface Indeks Modul Mahasiswa (Kondisi Kosong)
Gambar 5: Fungsionalitas Form Update/Edit Data Mahasiswa Berdasarkan Alamat ID
Gambar 6: Data Profil Sukses Ditambahkan ke Grid Tabel Utama
Kesimpulan dari praktikum kali ini adalah saya telah berhasil memahami dan mengimplementasikan proses koneksi basis data relasional pada framework Laravel, mengelola skema melalui fungsionalitas Migration, serta menerapkan operasi CRUD (Create, Read, Update, Delete) secara utuh. Melalui pengerjaan dua entitas terpisah, yaitu data Produk (Modul Utama) dan data Mahasiswa (Latihan Mandiri), dibuktikan bahwa arsitektur MVC Laravel mampu memisahkan logika data backend dan rendering user interface secara modular, aman dari error conflict, serta memiliki sistem proteksi Mass Assignment yang andal.
Oleh:
NIM. 2411533017
Dosen Pengampu:
NURFIAH, S.ST, M.Kom.
Mata Kuliah:
PEMROGRAMAN WEB
Praktikum ini berfokus pada pemahaman dan implementasi konsep Relationship dalam framework Laravel menggunakan Eloquent ORM. Relationship merupakan fitur inti Laravel yang memungkinkan developer mendefinisikan dan mengelola hubungan antar tabel database secara elegan langsung dari layer Model, tanpa perlu menulis query SQL JOIN yang kompleks secara manual. Dalam praktikum ini dibangun sebuah sistem akademik sederhana yang mengelola hubungan antar entitas Student, Major, dan Subject. Jenis relationship yang dipelajari meliputi:
Satu jurusan (Major) memiliki banyak mahasiswa (Student). Diimplementasikan dengan method hasMany() pada model Major.
Setiap mahasiswa (Student) dimiliki oleh satu jurusan (Major). Diimplementasikan dengan method belongsTo() pada model Student.
Mahasiswa dapat mengambil banyak mata kuliah, dan setiap mata kuliah bisa diambil oleh banyak mahasiswa. Dikelola via tabel pivot student_subject.
Teknik pengambilan data relasi secara efisien menggunakan method with() untuk menghindari masalah N+1 query pada aplikasi.
Tujuan dari praktikum ini adalah agar mahasiswa mampu memahami konsep relationship dalam Laravel, mengimplementasikan One-to-Many dan Many-to-Many relationship pada Eloquent Model, membuat migration dengan foreign key dan tabel pivot, menggunakan Eloquent relationship untuk query data antar tabel, serta menampilkan data beserta relasi-relasinya secara lengkap di dalam view Blade.
Pengerjaan praktikum dibagi menjadi beberapa langkah sistematis mulai dari pembuatan migration, model beserta definisi relationship, seeder untuk data sampel, controller dengan eager loading, routing resource, hingga tampilan view Blade. Berikut adalah dokumentasi seluruh alur implementasinya:
Tahap pertama adalah mendefinisikan skema database melalui file migration. Terdapat empat tabel yang dibuat: majors, students, subjects, dan tabel pivot
student_subject. Tabel students memiliki foreign key major_id yang merujuk ke tabel majors, sementara tabel pivot menyimpan kombinasi unik student_id dan subject_id.
Setelah migration berhasil dijalankan, data seeder diisi dan tampilan awal aplikasi Student Management System dapat diakses di browser.
Gambar 1: Halaman Index — Daftar Mahasiswa Beserta Jurusan, Mata Kuliah Badge, dan Total SKS
Gambar 2: Halaman Detail Mahasiswa — Menampilkan Data Lengkap Beserta SKS Per Mata Kuliah dan Total Beban Studi
php artisan make:migration create_majors_tablephp artisan make:migration create_students_tablephp artisan make:migration create_subjects_tablephp artisan make:migration create_student_subject_tablephp artisan migrate
Pada tahap ini, tiga model Eloquent dibuat beserta definisi method relationship-nya. Model Major mendefinisikan hasMany(Student::class), model Student mendefinisikan
belongsTo(Major::class) dan belongsToMany(Subject::class), sementara model Subject mendefinisikan belongsToMany(Student::class) untuk relasi balik. Setelah model
dan relationship terdefinisi, operasi CRUD seperti hapus data dan ubah relasi mata kuliah berjalan dengan benar berkat method detach() dan sync().
Gambar 3: Operasi Delete Berhasil — Notifikasi "Student deleted successfully" dan Data Sisa Mahasiswa
Gambar 4: Detail Mahasiswa Setelah Edit — Relasi Mata Kuliah Diperbarui via sync(), Total 11 SKS
php artisan make:model Majorphp artisan make:model Studentphp artisan make:model Subject
Seeder dibuat untuk mengisi tabel database dengan data sampel awal. MajorSeeder mengisi 4 jurusan, SubjectSeeder mengisi 5 mata kuliah, dan StudentSeeder mengisi 5 data mahasiswa
sekaligus melakukan assignment mata kuliah secara acak via method attach() pada relasi many-to-many. Semua seeder didaftarkan pada DatabaseSeeder dan dijalankan secara berurutan. Setelah
seeder berjalan, form Edit Mahasiswa membuktikan bahwa data relasi dapat dimodifikasi dengan centang mata kuliah yang diinginkan.
Gambar 5: Form Edit Mahasiswa — Input NIM, Nama, Alamat, Dropdown Jurusan, dan Checkbox Mata Kuliah dengan Status Checked Sesuai Relasi Aktif
php artisan make:seeder MajorSeederphp artisan make:seeder SubjectSeederphp artisan make:seeder StudentSeederphp artisan db:seed
StudentController dibuat dengan metode CRUD lengkap yang memanfaatkan Eager Loading (Student::with(['major', 'subjects'])->get()) untuk menghindari N+1 query problem. Routing didefinisikan
menggunakan Route::resource('students', StudentController::class) yang otomatis memetakan 7 endpoint RESTful. Selain CRUD utama, dikerjakan pula Latihan Query Relationship yang menampilkan
empat jenis query sekaligus dalam satu halaman: daftar mahasiswa + jurusan + mata kuliah, jurusan dengan mahasiswa terbanyak, mata kuliah mahasiswa tertentu, serta total SKS akumulasi tiap mahasiswa.
Gambar 6: Halaman Hasil Latihan & Tugas — Query No.1 (Semua Mahasiswa + Jurusan + Matkul), No.2 (Jurusan Terbanyak), No.3 (Matkul Mahasiswa Tertentu)
Gambar 7: Query No.4 — Tabel Total SKS Akumulasi Setiap Mahasiswa (Nama, Total Matkul, Total SKS)
Gambar 8: Halaman Detail Mahasiswa — Menampilkan SKS Per Mata Kuliah dengan Badge dan Total Beban Studi
php artisan make:controller StudentControllerphp artisan serve
Kesimpulan dari praktikum kali ini adalah saya telah berhasil memahami dan mengimplementasikan konsep Relationship pada framework Laravel secara menyeluruh. Melalui pembangunan sistem akademik sederhana
dengan entitas Major, Student, dan Subject, dibuktikan bahwa Eloquent ORM mampu merepresentasikan hubungan antar tabel database (One-to-Many dan Many-to-Many) secara intuitif langsung dari layer Model. Penggunaan teknik
Eager Loading dengan method with() terbukti mampu mengoptimalkan performa query dengan menghindari masalah N+1. Selain itu, operasi pivot table seperti attach(),
sync(), dan detach() pada relasi Many-to-Many memberikan kemudahan pengelolaan data junction yang andal, aman, dan efisien tanpa perlu interaksi langsung dengan tabel pivot di level kode controller.
Detail pengerjaan proyek mengubah website profil statis menjadi aplikasi web progresif yang mendukung instalasi langsung di smartphone atau desktop.
Sistem informasi managemen data booking dan transaksi perumahan real-estate berbasis desktop Java Swing.
Aplikasi pencatatan transaksi kasir, status cucian pelanggan, dan cetak struk nota menggunakan Object-Oriented Programming Java.
Aplikasi utilitas perhitungan konversi konvensional data suhu, panjang, berat, dan volume.