Tutorial Laravel 12 Dari Nol: Pengenalan dan Instalasi - Eps 1

Pengenalan Laravel dan Keunggulan

Apa itu Laravel?

Laravel adalah salah satu framework PHP (Hypertext Preprocessor) paling populer yang dirancang untuk memudahkan proses pengembangan aplikasi web. Framework ini menerapkan arsitektur MVC (Model, View, Controller), yang membantu memisahkan logika bisnis, tampilan, dan data sehingga aplikasi lebih terstruktur, mudah dikembangkan, dan mudah dipelihara.

Laravel diciptakan oleh Taylor Otwell dan pertama dirilis pada tahun 2011. Hingga kini, Laravel terus berkembang dengan komunitas yang sangat aktif serta ekosistem pendukung yang lengkap. Tujuan utamanya adalah membuat pengembangan web menjadi menyenangkan, elegan, dan efisien, tanpa harus berurusan dengan kompleksitas PHP murni.

Laravel hadir sebagai “teman akrab” bagi developer yang ingin membangun aplikasi dengan cepat tetapi tetap scalable dan maintainable.

Kelebihan dibandingkan framework PHP lain

Laravel memiliki sejumlah keunggulan dibandingkan framework PHP lainnya, di antaranya:

1. Sintaks Elegan dan Developer-Friendly

Laravel dirancang agar penulisan kode terasa natural dan bersih. Developer tidak perlu menulis kode yang kompleks untuk fungsi umum seperti autentikasi, validasi form, dan query database.

2. Routing yang Fleksibel

Laravel menyediakan sistem routing yang mudah digunakan untuk mengatur URL dan request aplikasi.

3. Blade Templating Engine

Blade adalah engine templating yang ringan dan powerful, memudahkan pembuatan tampilan di Laravel yang dinamis dan bersih.

4. Sistem Migrasi dan Seeding Database Laravel menyediakan sistem migrasi untuk mengelola skema database, serta fitur seeding untuk mengisi data awal secara otomatis.

5. Dokumentasi Lengkap dan Komunitas Besar

Dukungan komunitas yang kuat membuat developer mudah menemukan solusi ketika menghadapi masalah. Dokumentasi resminya pun jelas dan mudah dipahami.

6. Fitur Modern dan Up To Date

Laravel selalu mengikuti perkembangan teknologi web modern. Fitur seperti queue, event broadcasting, API rate limiter, hingga job scheduling sudah disediakan.

7. Tingkat Keamanan Tinggi

Laravel menyediakan proteksi terhadap berbagai serangan umum seperti SQL injection, *Cross-Site Scripting (*XSS), dan Cross-Site Request Forgery (CSRF). Token CSRF otomatis melindungi form dari serangan berbahaya.

8. Dukungan Testing

Laravel menyediakan dukungan untuk pengujian aplikasi secara otomatis (unit testing dan feature testing).

Studi kasus aplikasi dengan Laravel

Berikut adalah studi kasus aplikasi yang dapat dibuat dengan menggunakan Laravel, di antaranya:

1. Sistem Informasi Akademik

Aplikasi ini digunakan untuk mengelola data siswa, guru, jadwal pelajaran, nilai, dan absensi. Laravel memudahkan pembuatan fitur seperti:

  • Manajemen data siswa dan guru.
  • Input dan rekap nilai.
  • Jadwal pelajaran otomatis.
  • Laporan absensi.

2. Aplikasi Manajemen Inventaris Barang

Laravel dapat digunakan untuk membangun aplikasi inventaris barang yang mencatat keluar-masuk barang, stok, harga, dan lokasi penyimpanan. Fitur yang dapat diimplementasikan antara lain:

  • CRUD data barang.
  • Laporan stok harian.
  • Fitur pencarian dan filter barang.
  • Export data ke Excel/PDF.

3. Aplikasi E-Commerce

Laravel sangat cocok digunakan untuk membangun toko online sederhana dengan fitur:

  • Katalog produk dan kategori.
  • Keranjang belanja.
  • Proses checkout dan pembayaran.
  • Manajemen pesanan dan stok.

4. Sistem Reservasi Ruangan

Aplikasi ini memudahkan pengguna untuk memesan ruangan, misal di kantor atau hotel. Fitur utamanya:

  • Booking jadwal dan ruangan.
  • Notifikasi konfirmasi.
  • Kalender ketersediaan ruangan.
  • Manajemen user dan admin.

Pada contoh studi aplikasi di atas dapat dibangun dengan menggunakan Laravel dan masih banyak aplikasi lainnya. Misalnya, aplikasi kinerja karyawan untuk memantau dan menilai performa pegawai, aplikasi blog atau portal berita untuk publikasi artikel secara online, dan lain-lain. Dengan berbagai fitur dan fleksibilitas yang dimiliki, Laravel sangat cocok digunakan untuk mengembangkan berbagai solusi aplikasi sesuai kebutuhan organisasi maupun individu.

Langkah Instalasi dan Konfigurasi Laravel

Sebelum memulai instalasi Laravel, pastikan di komputer telah menginstal beberapa tools/software berikut:

  • PHP minimum versi 8.2 atau yang lebih terbaru
  • Composer sebagai dependency manager PHP
  • Node.js digunakan untuk mengelola dan meng-compile aset frontend (CSS, JavaScript) di Laravel, terutama jika menggunakan Laravel Mix atau Vite.
  • Database MySQL
  • Server lokal **XAMPP** untuk pengguna Windows, Linux, dan Mac OS.

Setelah tools/software di atas telah selesai di instal, kita bisa menjalankan aplikasi XAMPP dan memastikan setiap tools sudah terinstal dengan menggunakan perintah di Terminal atau Command Prompt.

  1. Jalankan aplikasi XAMPP

Pada gambar XAMPP di atas, kita bisa menjalankan Apache sebagai web server dan database MySQL sebagai penyimpanan data aplikasi dengan klik Actions Start.

  1. Buka Terminal atau Command Prompt untuk memastikan tools PHP, Composer, Nodejs, dan MySQL sudah terinstal di komputer.

1) Cek versi PHP

php -v

Hasil:

2) Cek versi Composer

composer -v

Hasil:

3) Cek versi Node.js

node -v

Hasil:

4) Cek MySQL

mysql -u root

Hasil:

Cara instalasi Laravel dengan Composer

1. Buka terminal atau command prompt

Navigasikan ke folder tempat Anda ingin membuat proyek Laravel.

2. Install Laravel secara global di sistem komputer dengan menjalankan perintah:

composer global require laravel/installer

Penjelasan:

  • composer: Manajer paket untuk PHP.
  • global: Artinya paket akan diinstal secara global, sehingga bisa digunakan dari mana saja di sistem Anda (bukan hanya di satu proyek).
  • require laravel/installer: Meminta Composer untuk menginstal paket laravel/installer, yaitu tool untuk membuat proyek Laravel dengan mudah.

Hasil:

3. Setelah Laravel di install secara global, selanjutnya jalankan perintah:

laravel new tutorial-laravel-app

Penjelasan:

  • laravel: Tool Laravel Installer yang sudah diinstal secara global sebelumnya.
  • new: Perintah untuk membuat aplikasi baru.
  • tutorial-laravel-app: Nama proyek yang akan dibuat.

Pilihan pertanyaan selama instalasi Laravel

Selama proses instalasi proyek Laravel, akan terdapat pertanyaan di dalam Terminal yang harus dipilih.

1) Pertanyaan Starter Kit

 Which starter kit would you like to install? [None]

Pertanyaan ini menanyakan starter kit (paket awal) yang ingin kamu gunakan untuk pengembangan aplikasi Laravel.

  • None: Tidak menggunakan starter kit, aplikasi akan dibuat dengan fitur dasar Laravel saja.
  • React: Menginstal starter kit yang sudah terintegrasi dengan React, cocok untuk membangun aplikasi dengan frontend React.
  • Vue: Menginstal starter kit dengan integrasi Vue.js, cocok untuk aplikasi dengan frontend Vue.
  • Livewire: Menginstal starter kit dengan Livewire, cocok untuk kamu yang ingin membangun aplikasi interaktif menggunakan Livewire di Laravel.

Pada pertanyaan ini, kita bisa pilih None untuk menggunakan starter kit Laravel dengan fitur dasar.

2) Pertanyaan Testing Framework

Which testing framework do you prefer? [Pest]

Pertanyaan ini menanyakan framework pengujian (testing framework) yang kamu inginkan untuk mengetes aplikasi.

  • Pest: Framework testing modern yang lebih sederhana dan clean dibanding PHPUnit.
  • PHPUnit: Framework testing standar yang sudah lama digunakan di PHP dan Laravel.

Pada pertanyaan ini, kita bisa pilih Pest sebagai framework testing yang lebih modern.

3) Pertanyaan Database

Which database will your application use? [MySQL]

Pertanyaan ini menanyakan database yang akan digunakan untuk menyimpan data aplikasi.

  • MySQL: Database relasional yang paling umum dipakai pada aplikasi web. Stabil, cepat, dan didukung luas oleh Laravel serta berbagai platform hosting.
  • MariaDB: Versi turunan dari MySQL yang bersifat open source. Kinerjanya sering kali lebih cepat dan menjadi alternatif MySQL di banyak server.
  • SQLite: Database berbasis file tanpa server. Sangat cocok untuk aplikasi kecil, development, atau testing karena mudah digunakan tanpa instalasi server tambahan.
  • PostgreSQL: Database relasional canggih dengan kemampuan query kompleks dan dukungan fitur enterprise. Cocok untuk aplikasi berskala besar dan data yang kompleks.
  • SQL Server: Database milik Microsoft, digunakan pada lingkungan enterprise berbasis Windows atau integrasi sistem Microsoft lainnya.

Pada pertanyaan ini, kita bisa pilih MySQL sebagai penyimpanan data di proyek tutorial laravel app.

4) Would you like to run the default database migrations?

Pertanyaan ini menanyakan apakah kamu ingin langsung menjalankan migrasi database bawaan Laravel.

  • Yes: Migrate akan langsung dijalankan, sehingga tabel-tabel default Laravel (seperti users, password_resets, dll) langsung dibuat di database.
  • No: Migrasi tidak dijalankan sekarang, kita bisa menjalankannya nanti dengan perintah php artisan migrate.

Pada pertanyaan ini, kita bisa pilih No karena belum setup environment pada proyek Laravel dan akan menggunakan perintah manual menggunakan php artisan migrate nanti.

5) Pertanyaan NPM (Node Package Manager)

Would you like to run npm install and npm run build? [Yes]

Penjelasan:

  • npm install

Perintah ini digunakan untuk menginstal semua dependensi JavaScript yang dibutuhkan oleh proyek Laravel, seperti paket untuk frontend, CSS, dan tools build.

  • npm run build

Perintah ini digunakan untuk meng-compile seluruh aset frontend (JavaScript, CSS, dll) agar siap digunakan oleh aplikasi Laravel. Biasanya hasilnya akan ada di folder public/.

Pada pertanyaan ini, kita bisa pilih Yes agar Laravel langsung menjalankan kedua perintah ini secara otomatis, sehingga semua aset frontend siap digunakan.

Hasil:

4. Masuk ke folder proyek Laravel

cd tutorial-laravel-app

5. Jalankan server pengembangan Laravel

composer run dev

Penjelasan:

  • composer: Manajer paket untuk PHP.
  • run: Perintah untuk menjalankan script custom yang tercantum di file composer.json.
  • dev: Nama script yang ingin dijalankan.

Perintah composer run dev akan sekaligus menjalankan server pengembangan Laravel dan npm run dev bertujuan untuk menjalankan proses kompilasi aset frontend melalui npm, sehingga CSS dan JS aplikasi siap dipakai.

Hasil:

Penjelasan struktur folder Laravel

Laravel memiliki struktur direktori yang rapi dan terorganisasi. Berikut penjelasan singkat folder penting:

  • app/: Berisi kode inti aplikasi seperti Model, Controller, Middleware, dan Logic bisnis lain.
  • bootstrap/: Melakukan bootstrap framework dan mengoptimalkan performa.
  • config/: Menyimpan file konfigurasi aplikasi (database, mail, cache, dsb).
  • database/: Menyimpan file migrasi, seeders, dan factory untuk database.
  • public/: Dokument root aplikasi. Berisi index.php, file aset seperti gambar, CSS, dan JS.
  • resources/: Berisi file tampilan Blade, file CSS/JS sebelum di-compile, terjemahan (lang).
  • routes/: Semua routing aplikasi seperti, web.php dan api.php
  • storage/: Menyimpan file cache, logs, dan hasil compile view.
  • tests/: Tempat untuk menulis unit test dan feature test.
  • vendor/: Berisi semua library dan package bawaan serta hasil instalasi melalui Composer.

Dengan struktur ini, developer dengan mudah dapat menavigasi dan mengorganisasi kode aplikasi secara profesional.

Konfigurasi environment

Laravel menggunakan file konfigurasi bernama .env untuk menyimpan pengaturan yang sensitif dan dinamis seperti koneksi database, key aplikasi, dan setting mail.

1. Membuat File .env Setelah instalasi, pastikan file .env sudah ada. Jika belum jalankan perintah di bawah untuk copy file .env.example menjadi file baru .env:

cp .env.example .env

2. Generate Application Key

Kunci ini untuk keamanan enkripsi dan sesi pengguna:

php artisan key:generate

3. Atur Konfigurasi Database

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

Penjelasan:

  • DB_CONNECTION=mysql

Mengatur jenis database yang digunakan, dalam hal ini adalah MySQL.

  • DB_HOST=127.0.0.1

Menentukan alamat host database. 127.0.0.1 adalah alamat IP lokal (localhost), artinya database dijalankan di komputer yang sama dengan aplikasi Laravel.

  • DB_PORT=3306

Menentukan port yang digunakan untuk koneksi ke database MySQL. Port default MySQL adalah 3306.

  • DB_DATABASE=tutorial_laravel_app

Nama database yang akan digunakan oleh aplikasi Laravel.

  • DB_USERNAME=root

Username untuk mengakses database MySQL. Secara default, username MySQL lokal biasanya adalah root.

  • DB_PASSWORD=root

Password untuk username database. Pada contoh ini, passwordnya adalah root.

Membuat Database

Setelah .env telah di konfigurasi dengan benar, kita bisa langsung membuat database baru di MySQL menggunakan CLI (Command Line Interface) dengan langkah-langkah berikut:

1. Buka Command Prompt atau Terminal

Pastikan MySQL sudah berjalan pada XAMPP Control Panel dengan klik Actions Start.

2. Jalankan perintah berikut untuk masuk ke MySQL:

mysql -u root -p

Penjelasan:

  • u root: Menggunakan username root.
  • p: Akan meminta Anda memasukkan password MySQL (masukkan password sesuai konfigurasi, misalnya root jika Anda menggunakan XAMPP default).

3. Membuat Database Baru

Setelah berhasil login, buat database dengan perintah:

CREATE DATABASE tutorial_laravel_app;

Perintah ini akan membuat database kosong bernama tutorial_laravel_app yang siap digunakan oleh aplikasi Laravel.

4. Tampilkan Databases

Periksa hasil database yang baru telah dibuat dengan menjalankan perintah:

show databases;

Perintah ini akan menampilkan semua isi database pada MySQL. Pastikan database tutorial_laravel_app ditampilkan pada hasil di Terminal.

Hasil:

5. Keluar dari MySQL CLI

Setelah selesai, keluar dari MySQL dengan perintah:

exit

Penutup

Laravel telah membuktikan dirinya sebagai salah satu framework PHP paling handal, modern, dan mudah digunakan untuk membangun berbagai jenis aplikasi web. Dengan sintaks yang elegan, fitur lengkap, serta komunitas yang aktif, Laravel menawarkan kemudahan bagi pengembang untuk menciptakan aplikasi yang terstruktur, efisien, dan scalable.

Pada artikel ini, kita telah mempelajari mulai dari pengenalan Laravel dan keunggulannya, contoh studi kasus aplikasi yang dapat dibangun, hingga proses instalasi, konfigurasi lingkungan, dan pembuatan database sebagai fondasi awal proyek. Dengan mengikuti setiap langkah dan memahami konsep dasar Laravel, diharapkan Anda bisa memulai pengembangan aplikasi web berbasis Laravel dengan lebih percaya diri.

Semoga artikel ini bermanfaat dan menjadi referensi awal yang baik dalam perjalanan belajar dan mengembangkan aplikasi bersama Laravel.

Selamat mencoba dan semoga sukses!

Referensi

  1. Dokumentasi Laravel