Laporan Praktikum
20 Mei 2025 ~ Oleh Surya Andika
Pendahuluan
Laravel merupakah satu framework PHP yang populer yang dikembangkan oleh Taylor Otwell. Laravel merupakan proyek open source yang digunakan untuk mengembangkan aplikasi berbasis web dengan arsitektur MVC (Model – View – Controller). Beberapa fitur yang tersedia pada Laravel :
- Eloquent ORM (Object-Relational Mapping): Memudahkan interaksi dengan database menggunakan sintaks PHP yang intuitif. Anda dapat mendefinisikan model untuk setiap tabel database dan melakukan operasi CRUD (Create, Read, Update, Delete) dengan mudah. Eloquent juga mendukung relasi antar tabel (one-to-one, one-to-many, many-to-many).
- Blade Templating Engine: Sistem templating yang sederhana namun powerful, memungkinkan Anda menggunakan sintaks PHP dalam template HTML dengan cara yang bersih dan aman. Blade menyediakan direktif-direktif seperti @if, @foreach, @extends, @yield, dan komponen untuk membuat tampilan dinamis.
- Artisan Console: Command-line interface (CLI) yang disertakan dengan Laravel. Artisan menyediakan banyak perintah berguna untuk otomatisasi tugas-tugas umum seperti membuat model, migration, controller, seeder, menjalankan pengujian, membersihkan cache, dan banyak lagi.
- Routing: Sistem perutean yang fleksibel memungkinkan Anda mendefinisikan URL aplikasi Anda dan mengaitkannya dengan controller atau closure functions. Laravel mendukung berbagai jenis rute dan middleware untuk mengontrol akses.
- Form Request Validation: Memudahkan proses validasi data yang dikirim melalui form. Anda dapat membuat kelas Form Request khusus dengan aturan validasi yang jelas dan Laravel akan secara otomatis menangani proses validasi dan menampilkan pesan kesalahan.
- Security: Laravel dibangun dengan mempertimbangkan keamanan. Beberapa fitur keamanan bawaan meliputi proteksi terhadap CSRF (Cross-Site Request Forgery), XSS (Cross-Site Scripting), dan SQL injection.
- Authentication & Authorization: Menyediakan sistem otentikasi (login, registrasi, lupa kata sandi) dan otorisasi (hak akses pengguna) yang mudah diimplementasikan. Laravel Breeze dan Jetstream menyediakan scaffolding UI untuk fitur-fitur ini.
- Testing: Dukungan bawaan untuk berbagai jenis pengujian, termasuk unit testing, integration testing, dan end-to-end testing. Laravel menyediakan helper functions dan assertion methods untuk memudahkan penulisan tes.
- Queues: Sistem antrian yang memungkinkan Anda menunda tugas-tugas yang memakan waktu (seperti pengiriman email atau pemrosesan data) dan menjalankannya di latar belakang. Ini meningkatkan responsivitas aplikasi Anda.
- Caching: Mendukung berbagai sistem caching (seperti Redis, Memcached, file) untuk meningkatkan performa aplikasi dengan menyimpan data yang sering diakses dalam memori.
- Events & Listeners: Implementasi dari pola Observer, memungkinkan Anda membuat event dan listener untuk menjalankan kode tertentu ketika event tersebut terjadi dalam aplikasi Anda.
- Notifications: Memudahkan pengiriman notifikasi ke berbagai saluran, seperti email, SMS, database, atau layanan pihak ketiga.
- Broadcasting: Memungkinkan Anda melakukan siaran event secara real-time melalui WebSockets. Ini berguna untuk fitur seperti live chat atau notifikasi real-time.
- Task Scheduling: Memungkinkan Anda menjadwalkan tugas-tugas cron menggunakan sintaks yang ekspresif dalam kode PHP Anda.
- Passport(OAuth2 Server): Paket resmi untuk mengimplementasikan otentikasi OAuth2, memungkinkan aplikasi Anda menjadi penyedia otentikasi untuk aplikasi lain.
- Sanctum (API Authentication): Paket ringan untuk mengimplementasikan sistem otentikasi berbasis token untuk Single-Page Applications (SPAs), mobile applications, dan simple APIs.
- Socialite (Social Authentication): Memudahkan integrasi otentikasi dengan berbagai penyedia layanan OAuth seperti Facebook, Twitter, Google, dan lainnya.
- Filesystem: Abstraksi untuk berinteraksi dengan berbagai sistem penyimpanan file, baik lokal maupun cloud (seperti Amazon S3 atau Google Cloud Storage).
- Mail: Memudahkan pengiriman email dengan dukungan untuk berbagai driver seperti SMTP, Mailgun, dan Amazon SES.
- Pusher (Realtime Services): Integrasi mudah dengan layanan Pusher untuk menambahkan fitur realtime ke aplikasi Anda.
- Localization: Memudahkan pembuatan aplikasi multibahasa dengan fitur untuk mengelola terjemahan.
- Packages:Ekosistem paket yang kaya dan berkembang pesat melalui Composer, memungkinkan Anda dengan mudah menambahkan fungsionalitas tambahan ke aplikasi Anda.
Langkah-langkah Membuat CRUD Sederhana OOP PHP dan MySQL
1. Tujuan
Tujuan praktikum ini yaitu mampu installasi Laravel, membuat project baru Laravel, mengenal struktur Laravel, konsep MVC laravel.
2. Alat yang digunakan
- XAMPP (SQL)
- Visual Studio Code
- Composer
- Git (jika perlu)
3. Langkah-langkah
A. Install XAMPP
- Download XAMPP dari apachefriends.org
- Jalankan installer dan pilih komponen:
Apache
MySQL
PHP
phpMyAdmin
- Verifikasi instalasi dengan buka
localhost
- Versi PHP
B. Install Composer
- Composer merupakan package manager untuk PHP, composer akan digunakan untuk menambahkan package-package yang dibutuhkan pada saat development. Download compose pada link https://getcomposer.org/Composer-Setup.exe, selanjutnya install sesuai dengan Langkah-langkah wizard
# Download installer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# Jalankan installer
php composer-setup.php
# Pindahkan ke PATH global
mv composer.phar /usr/local/bin/composer
- Versi Composer
C. Install GIT
D. Install Node JS dan NPM
- Node JS pada Laravel berfungsi untuk menangani masalah frontedn dan build asset UI (Library UI). Buka situs resmi node js https://nodejs.org/ kemudian download dan install sesuai dengan Langkah-langkah wizard. NPM (Node Package Manager) yang berfungsi mengelola paket untuk ekosistem Javascript, NPM biasanya secara otomatis terinstall Ketika menginstall node js.
E. Buat Project Laravel
- Via Composer:
composer create-project laravel/laravel nama-project
- Atau menggunakan Laravel Installer:
composer global require laravel/installer
laravel new nama-project
-
Untuk menjalankan project laravel dapat membuat dengan
npm install && npm run build
-
Setelah itu untuk mendapatkan localhost dari laravel dapat memasukkan php artisan serve di cmd/cmder nya
- Hello World
F. MVC Laravel
- Model
Berfungsi untuk mengakses dan mengelola data / database seperti query ke database, insert, update, delete dll
- View
Berfungsi sebagai tampilan atau antarmuka aplikasi, yaitu menampilkan data yang didapatkan dari suatu model melalui controller.
- Controller
(php artisan make:controller SiswaController)
Berfungsi untuk menangani request dan response, menerima request dan memproses request kemduian mengembalikannya dalam bentuk data atau view dari suatu model.