PWEB 7 – KONFIGURASI LARAVEL

Konsep Laravel

Laravel merupakan salah satu framework PHP populer yang dikembangkan oleh Taylor Otwell. Laravel adalah proyek open source untuk mengembangkan aplikasi berbasis web dengan arsitektur MVC (Model – View – Controller).

Beberapa fitur yang tersedia pada Laravel antara lain:

  • 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 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 dan mengaitkannya dengan controller atau closure functions. Laravel mendukung berbagai jenis rute dan middleware untuk mengontrol akses.
  • Middleware: Mekanisme untuk memfilter HTTP request yang masuk ke aplikasi Anda. Middleware dapat digunakan untuk autentikasi, logging, validasi, dan tugas-tugas lain sebelum atau sesudah request ditangani.
  • 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 secara otomatis menangani validasi serta menampilkan pesan kesalahan.
  • Security: Laravel dibangun dengan mempertimbangkan keamanan, seperti 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 menunda tugas-tugas berat (seperti pengiriman email) dan menjalankannya di latar belakang untuk meningkatkan responsivitas aplikasi.
  • Caching: Mendukung berbagai sistem caching (Redis, Memcached, file) untuk meningkatkan performa dengan menyimpan data yang sering diakses dalam memori.
  • Events & Listeners: Implementasi pola Observer untuk menjalankan kode saat event tertentu terjadi dalam aplikasi.
  • Notifications: Memudahkan pengiriman notifikasi ke berbagai saluran, seperti email, SMS, database, atau layanan pihak ketiga.
  • Broadcasting: Mendukung siaran event secara real-time melalui WebSockets untuk fitur seperti live chat atau notifikasi real-time.
  • Task Scheduling: Menjadwalkan tugas-tugas cron menggunakan sintaks ekspresif dalam kode PHP.
  • Passport (OAuth2 Server): Paket resmi untuk implementasi otentikasi OAuth2, memungkinkan aplikasi menjadi penyedia otentikasi untuk aplikasi lain.
  • Sanctum (API Authentication): Paket ringan untuk otentikasi berbasis token untuk SPA, mobile apps, dan simple APIs.
  • Socialite (Social Authentication): Memudahkan integrasi otentikasi dengan berbagai penyedia OAuth seperti Facebook, Twitter, dan Google.
  • Filesystem: Abstraksi untuk berinteraksi dengan berbagai sistem penyimpanan file, lokal maupun cloud (Amazon S3, Google Cloud Storage).
  • Mail: Memudahkan pengiriman email dengan dukungan berbagai driver seperti SMTP, Mailgun, dan Amazon SES.
  • Pusher (Realtime Services): Integrasi mudah dengan layanan Pusher untuk fitur realtime.
  • Localization: Mendukung aplikasi multibahasa dengan fitur pengelolaan terjemahan.
  • Packages: Ekosistem paket yang kaya melalui Composer untuk menambahkan fungsionalitas tambahan dengan mudah.

Konfigurasi Laravel

Persyaratan Sistem

Laravel memiliki persyaratan minimal sistem. Berikut adalah persyaratan Laravel 12:

  • PHP >= 8.2
  • Ekstensi PHP: BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
  • Composer (dependency manager)
Database Structure

Struktur Direktori Laravel

Struktur folder utama Laravel meliputi:

  • app/: Berisi kode sumber aplikasi seperti Models, Controllers, dan layanan lainnya.
  • bootstrap/: File bootstrap dan cache aplikasi.
  • config/: File konfigurasi aplikasi.
  • database/: Migration, seeders, dan factory database.
  • public/: Folder yang dapat diakses publik, berisi entry point aplikasi (index.php) dan aset seperti gambar, CSS, dan JavaScript.
  • resources/: Template view, file bahasa, dan aset mentah (sebelum kompilasi).
  • routes/: Definisi route aplikasi.
  • storage/: File log, cache, dan file upload.
  • tests/: Kode pengujian aplikasi.
  • vendor/: Dependensi composer.

Konfigurasi File .env

File .env adalah tempat konfigurasi lingkungan aplikasi, seperti pengaturan database, mail, dan lain-lain. Contoh pengaturan database:


                    DB_CONNECTION=mysql
                    DB_HOST=127.0.0.1
                    DB_PORT=3306
                    DB_DATABASE=nama_database
                    DB_USERNAME=root
                    DB_PASSWORD=
                

Menjalankan Server Development

Untuk menjalankan server development bawaan Laravel, gunakan perintah:

php artisan serve

Server akan berjalan di alamat http://127.0.0.1:8000 secara default.

Silakan unduh XAMPP melalui tautan https://www.apachefriends.org/index.html dan lakukan instalasi mengikuti panduan yang ditampilkan oleh wizard. Setelah proses instalasi selesai, akan tersedia folder bernama htdocs secara default di direktori C:\xampp\htdocs. Folder inilah yang nantinya digunakan untuk menyimpan dan mengembangkan berbagai project Laravel. Dengan menginstal XAMPP, Anda juga akan secara otomatis mendapatkan web server Apache, PHP, dan PhpMyAdmin yang siap digunakan untuk pengembangan web. Setelah itu, silakan lakukan pengecekan versi pada Command Prompt.

Database Structure

Composer adalah package manager untuk bahasa pemrograman PHP yang berfungsi untuk mengelola dan menambahkan paket-paket yang dibutuhkan selama proses pengembangan aplikasi. Untuk menggunakannya, unduh installer Composer melalui tautan https://getcomposer.org/Composer-Setup.exe , lalu ikuti langkah-langkah instalasi yang ditampilkan oleh wizard hingga selesai. Setelah itu, silakan lakukan pengecekan versi pada Command Prompt.

Database Structure

Silakan unduh Git installer melalui tautan https://git-scm.com/downloads/win , kemudian jalankan proses instalasi dengan mengikuti petunjuk yang tersedia. Setelah itu, silakan lakukan pengecekan versi pada Command Prompt.

Database PHP Code

Pastikan Node.js dan npm sudah tersedia. Node.js digunakan dalam proyek Laravel untuk mengelola bagian frontend dan proses build aset UI seperti library dan framework tampilan. Untuk menginstalnya, kunjungi situs resmi Node.js di https://nodejs.org/, lalu unduh dan jalankan instalasinya sesuai petunjuk wizard. Saat menginstal Node.js, secara otomatis NPM (Node Package Manager) juga akan terpasang. NPM berfungsi sebagai pengelola paket dalam ekosistem JavaScript yang sangat membantu dalam pengembangan antarmuka web.

Config PHP Code

Install Laravel

Terdapat dua cara yang dapat digunakan untuk membuat project Laravel, yaitu melalui Laravel Installer dan Composer.

  1. Laravel Installer – Cara ini dimulai dengan menginstal Laravel Installer melalui Composer. Setelah proses instalasi selesai, kamu dapat langsung membuat project Laravel baru hanya dengan satu perintah sederhana. Langkah-langkahnya:
    1. Download installer Laravel menggunakan Composer dengan mengetik perintah berikut pada terminal (cmder):
      composer global require laravel/installer
    2. Buat project baru dengan perintah:
      laravel new example-app
  2. Composer – Alternatif lainnya adalah membuat project Laravel secara langsung menggunakan Composer. Dalam metode ini, kamu akan menentukan versi Laravel serta nama project yang ingin dibuat. Caranya:
    composer create-project laravel/laravel=^versi nama_project --prefer-dist

Pada kesempatan kali ini, akan digunakan metode pertama yaitu Laravel Installer.

Silakan ketikkan perintah installer Laravel pada CMD, lalu sesuaikan starter pack yang diinginkan sesuai kebutuhan, dan tunggu hingga proses instalasi selesai.

Alert PHP Code

Buat project baru dengan perintah laravel new example-app. Tunggu hingga proses instalasi selesai.

Mahasiswa Class Part 1

Setelah berhasil membuat project Laravel, masuk ke dalam direktori project Laravel dan ketik perintah berikut:


                    npm install && npm run build
                    composer run dev
                    
Mahasiswa Class Part 2

Selanjutnya buka VSCode atau code editor lainnya, lalu masuk ke project Laravel yang telah dibuat sebelumnya. Untuk menjalankan project Laravel, gunakan perintah: php artisan serve.

Mahasiswa Class Part 2

Setelah muncul URL yang mengarahkan ke halaman website, silakan klik link tersebut. Jika muncul tampilan Laravel, maka project siap dibuat.

Mahasiswa Class Part 2

Salah satu cara sederhana untuk membuat halaman baru di Laravel adalah dengan mendefinisikan route langsung di file web.php. Contohnya, kode berikut:

Route::get('/halo', function () {
                        echo 'Hello world';
                    });
akan menampilkan tulisan "Hello world" ketika pengguna mengakses URL /halo di browser. Pendekatan ini cocok untuk keperluan pengujian atau pembuatan halaman statis sederhana sebelum dikembangkan lebih lanjut menggunakan controller dan view.

Mahasiswa Class Part 3