Laporan Praktikum Pemrograman Web Pertemuan 7

Pendahuluan

Halo! Selamat datang di blog kedua saya. Pada blog kali ini, kita akan mencoba untuk menginstall Laravel pada website yang ingin kita buat.

Laravel merupakah satu framework PHP yang pupuler yang dikembangkan oleh taylor otwell,Laravel merupakan proyek open source 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.
  • 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.

Tujuan Praktikum

Tujuan praktikum ini yaitu mampu installasi Laravel, membuat project baru Laravel, mengenal struktur Laravel, konsep MVC laravel.

Langkah-langkah

Install aplikasi yang dibutuhkan

  • Web server (menggunakan Apache dari XAMPP)
  • Database (menggunakan MySQL dari XAMPP)
  • Composer
  • Cmder (untuk memudahkan melakukan command di terminal)
  • Node.js dan npm
  • GIt

Selain itu, persyaratan untuk menggunakan Laravel 12 Adalah sebagai berikut:

  • PHP >= 8.2
  • Ctype PHP Extension
  • cURL PHP Extension
  • DOM PHP Extension
  • Fileinfo PHP Extension
  • Filter PHP Extension
  • Hash PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PCRE PHP Extension
  • PDO PHP Extension
  • Session PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

Pertama, install aplikasi XAMPP di https://www.apachefriends.org/index.html. Jika sudah terinstall, kita bisa mengecek PHP yang sudah terinstall dari XAMPP dengan command:

php --version

Gunakan command tersebut di terminal. Hasilnya akan seperti berikut:

Kemudian, install Composer di https://getcomposer.org/Composer-Setup.exe. Composer merupakan package manager untuk PHP, composer akan digunakan untuk menambahkan package-package yang dibutuhkan pada saat development. Install sesuai ketentuan langkah wizard setup yang diberikan. Setelah instalasi, kita bisa mengecek Composer yang telah terinstall dengan command:

composer --version

Gunakan command tersebut di terminal. Hasilnya akan seperti berikut:

Setelah itu, install Git di https://git-scm.com/downloads/win. Install sesuai ketentuan langkah wizard setup yang diberikan. Setelah instalasi, kita bisa mengecek Git yang telah terinstall dengan command:

git --version

Gunakan command tersebut di terminal. Hasilnya akan seperti berikut:

Kemudian, install node.js dan npm di https://nodejs.org/. Node JS pada Laravel berfungsi untuk menangani masalah frontedn dan build asset UI (Library UI). Install sesuai ketentuan langkah wizard setup yang diberikan. Setelah instalasi, kita bisa mengecek Git yang telah terinstall dengan command:

node --version
npm --version

Gunakan command tersebut di terminal. Hasilnya akan seperti berikut:

Setelah melakukan instalasi, kita perlu mengecek apakah spesifikasi sistem kita sesuai dengan ketentuan laravel. Gunakan file berikut untuk mengecek spesifikasi dan letakkan di folder project. Anda bisa mendownload file tersebut disini

Pastikan setelah menjalankan file, akan berbentuk seperti berikut:

Selanjutnya, kita akan membuat project Laravel. Ada beberapa cara untuk membuat project Laravel yaitu kita menggunakan installer atau menggunakan composer.

  • Laravel Installer

Dowload installer Laravel menggunakan composer, caranya ketik perintah berikut pada terminal (cmder):

composer global require laravel/installer

Kemudian, buat project baru dengan perintah:

laravel new example-app
  • Composer

Buat project Laravel menggunakan perintah berikut.

composer create-project laravel/laravel=^[versi] nama_project --prefer-dist

Pada praktikum kali ini, kita akan menggunakan Laravel Installer. Install Laravel Installer dengan menggunakan command Laravel Installer seperti diatas. Hasilnya akan seperti ini.

Setelah itu, buat project laravel baru. Hasilnya akan seperti berikut:

Pilih none pada starter kit.

Untuk testing framework, gunakan Pest.

Setelah application key sukses, database yang digunakan adalah MySQL

Lakukan database migration

Setelah database sukses dibuat, lakukan npm install dan npm run build

Setelah seperti ini, artinya project yang dibuat berhasil dibuat.

Langkah selanjutnya, kita akan me-running project Laravel yang telah kita buat. Caranya, buka project dengan code editor seperti vscode, kemudian running di terminal dengan command berikut:

php artisan serve

Hasilnya akan seperti berikut:

Pergi ke alamat yang diberikan dari terminal. Hasilnya akan seperti berikut:

Kemudian, kita akan mengetes Routing dari laravel. Caranya dengan pergi ke routes.web.php dan tambahkan kode berikut:

Route::get('/helo', function(){
return "Hello World";
});

Untuk mengakses hasil routing, pergi ke http://127.0.0.1:8000/helo. Hasilnya akan berikut:

Kemudian, kita akan membuat sebuah model. Model dalam Laravel Berfungsi untuk mengakses dan mengelola data / database seperti query ke database, insert, update, delete, dan lain-lain. Caranya dengan menggunakan kode berikut di terminal:

php artisan make:model SebuahModel

Pada praktikum ini kita akan mencoba model Siswa. Hasilnya adalah sebagai berikut:

Kemudian, kita akan membuat view dari model menggunakan Controller, caranya adalah menggunakan kode berikut di terminal:

php artisan make:controller SiswaController

Hasilnya adalah sebagai berikut:

Kesimpulan

Berdasarkan praktikum yang telah dibuat, dapat disimpulkan bahwa praktikum ini memberikan pemahaman dasar yang penting mengenai framework Laravel, mulai dari proses instalasi hingga pengenalan fitur-fitur utamanya seperti routing, Blade templating, dan Artisan CLI. Dengan mempelajari Laravel, saya menyadari bahwa framework ini sangat mempermudah dalam membangun aplikasi web secara terstruktur, efisien, dan aman. Praktikum ini menjadi langkah awal yang sangat berguna untuk memahami pengembangan web modern berbasis PHP dengan pendekatan MVC.

Leave a Comment

Your email address will not be published. Required fields are marked *