Your First Laravel Project: A Beginner’s Guide to Setup and Basic Structure
Proyek Laravel Pertama Anda: Panduan Pemula untuk Pengaturan dan Struktur Dasar
Selamat datang di dunia pengembangan web yang dinamis! Jika Anda tertarik untuk membangun aplikasi web modern, Anda pasti akan bertemu dengan Laravel. Laravel adalah kerangka kerja (framework) PHP yang sangat populer dan kuat, dirancang untuk membuat proses pengembangan menjadi lebih cepat, menyenangkan, dan efisien. Dengan sintaksisnya yang ekspresif dan beragam fitur bawaan, Laravel memungkinkan Anda fokus pada fitur aplikasi Anda, bukan pada pekerjaan dasar yang berulang.
Sebagai seorang pemula, melangkah ke kerangka kerja baru seperti Laravel mungkin terasa sedikit menakutkan pada awalnya. Ada banyak istilah baru, konsep, dan alat yang perlu dipelajari. Jangan khawatir! Tutorial ini dirancang khusus untuk Anda. Kami akan memandu Anda langkah demi langkah dalam menyiapkan proyek Laravel pertama Anda, mulai dari instalasi alat yang diperlukan hingga memahami struktur dasar folder dan file-file pentingnya.
Pada akhir panduan ini, Anda akan memiliki proyek Laravel yang berfungsi penuh di komputer Anda dan pemahaman yang kuat tentang bagaimana semuanya tersusun. Ini adalah landasan penting untuk perjalanan Anda membangun aplikasi web yang luar biasa!
Mari kita mulai petualangan Laravel Anda!
1. Prasyarat: Apa yang Anda Butuhkan Sebelum Memulai?
Sebelum kita bisa mulai menginstal Laravel, ada beberapa "alat" dasar yang perlu Anda miliki di sistem Anda. Anggap saja ini sebagai toolkit seorang pembangun:
a. PHP (Minimal Versi 8.1)
Laravel dibangun di atas PHP, jadi tentu saja, Anda perlu menginstal PHP di komputer Anda. Laravel versi terbaru (saat ini Laravel 10) membutuhkan PHP versi 8.1 atau yang lebih tinggi.
Untuk memeriksa apakah PHP sudah terinstal dan versi berapa, buka Terminal (macOS/Linux) atau Command Prompt/PowerShell (Windows) dan ketik perintah berikut:
php -v
Jika PHP sudah terinstal, Anda akan melihat output seperti ini: PHP 8.2.0 (cli) (built: Jan 22 2023 10:04:19) ...
Jika Anda belum menginstal PHP atau versinya lebih rendah dari 8.1, jangan panik. Kami akan membahasnya di bagian berikutnya tentang lingkungan pengembangan lokal.
b. Composer: Manajer Dependensi untuk PHP
Composer adalah alat fundamental dalam ekosistem PHP modern. Ini adalah manajer dependensi, yang berarti ia membantu Anda mengelola semua pustaka (libraries) dan paket yang dibutuhkan proyek PHP Anda. Laravel sendiri adalah sebuah paket yang diinstal melalui Composer.
Mengapa Composer penting? Bayangkan Anda ingin membangun sebuah rumah. Anda tidak akan membuat setiap batu bata sendiri, kan? Anda akan membeli bahan-bahan dari pemasok. Composer melakukan hal yang sama untuk proyek PHP Anda. Ini secara otomatis mengunduh semua "bahan" (dependensi) yang dibutuhkan proyek Anda dan memastikan semuanya kompatibel.
Cara menginstal Composer:
- Windows: Unduh dan jalankan
Composer-Setup.exedari situs web resmi Composer. Ikuti instruksi instalasi. Pastikan Anda mencentang opsi untuk menambahkan Composer ke PATH sistem Anda agar dapat diakses dari Command Prompt mana pun. - macOS/Linux: Buka Terminal dan jalankan perintah berikut secara berurutan:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Perintah terakhir memindahkan composer.phar ke lokasi global sehingga Anda bisa menjalankan composer dari mana saja.
Setelah instalasi, verifikasi Composer dengan menjalankan:
composer -v
Anda akan melihat informasi versi Composer.
c. Database (MySQL/PostgreSQL)
Hampir semua aplikasi web membutuhkan database untuk menyimpan data. Laravel mendukung berbagai jenis database seperti MySQL, PostgreSQL, SQLite, dan SQL Server. Untuk tutorial ini, kita akan berasumsi Anda akan menggunakan MySQL, yang paling umum digunakan. Anda tidak perlu mengaturnya sekarang, tetapi pastikan Anda memiliki server database yang terinstal dan berjalan.
d. Editor Kode
Meskipun Anda bisa menulis kode di Notepad, sangat disarankan untuk menggunakan editor kode modern yang dirancang untuk pengembangan web. Editor ini menawarkan fitur seperti penyorotan sintaksis, pelengkapan otomatis, dan integrasi terminal yang akan sangat meningkatkan produktivitas Anda.
Beberapa pilihan populer:
- Visual Studio Code (VS Code): Gratis, ringan, dan sangat kuat dengan ekosistem ekstensi yang luas. Sangat direkomendasikan untuk pemula.
- PhpStorm: IDE (Integrated Development Environment) berbayar yang sangat lengkap, dirancang khusus untuk pengembangan PHP.
- Sublime Text: Editor teks berbayar yang cepat dan ringan.
Pilih salah satu dan instal di sistem Anda.
2. Memilih Lingkungan Pengembangan Lokal Anda
Untuk menjalankan aplikasi Laravel, Anda memerlukan server web (seperti Apache atau Nginx) dan PHP. Lingkungan ini memungkinkan komputer Anda bertindak sebagai "server" yang dapat melayani aplikasi web Anda. Ada beberapa cara untuk menyiapkan ini:
a. XAMPP / MAMP / WAMP (Paling Mudah untuk Pemula)
Ini adalah solusi "all-in-one" yang sangat direkomendasikan untuk pemula, terutama di Windows dan macOS.
- XAMPP: (X-platform Apache MySQL PHP Perl) Tersedia untuk Windows, macOS, dan Linux.
- MAMP: (Macintosh Apache MySQL PHP) Dirancang khusus untuk macOS. Ada juga versi Windows.
- WAMP: (Windows Apache MySQL PHP) Dirancang khusus untuk Windows.
Ketiga paket ini menginstal Apache (server web), MySQL (database), dan PHP (interpreter) untuk Anda, dan biasanya menyediakan antarmuka grafis untuk mengelola server.
Langkah Instalasi (Contoh XAMPP):
- Unduh XAMPP dari situs web resmi Apache Friends.
- Jalankan installer dan ikuti petunjuknya. Biasanya Anda dapat menggunakan pengaturan default.
- Setelah instalasi selesai, buka "XAMPP Control Panel".
- Mulai modul Apache dan MySQL. Pastikan statusnya berubah menjadi "Running".
Dengan XAMPP/MAMP/WAMP, Anda akan memiliki lingkungan yang siap pakai untuk Laravel.
b. Laravel Valet (untuk macOS dan Linux)
Jika Anda menggunakan macOS atau Linux dan berencana untuk mengerjakan banyak proyek Laravel, Valet adalah pilihan yang sangat cepat dan ringan. Ini adalah lingkungan pengembangan minimalis yang mengkonfigurasi Mac/Linux Anda untuk melayani situs Anda secara otomatis menggunakan Nginx.
Keunggulan: Sangat cepat, mengonsumsi sedikit sumber daya, dan Anda tidak perlu mengkonfigurasi virtual host secara manual untuk setiap proyek baru. Kekurangan: Hanya untuk macOS/Linux, bukan solusi "all-in-one" seperti XAMPP/MAMP (Anda masih perlu menginstal PHP dan MySQL secara terpisah).
Jika Anda tertarik dengan Valet setelah Anda lebih nyaman dengan Laravel, Anda dapat menemukan panduan instalasi di dokumentasi resmi Laravel.
c. Laravel Homestead (Lingkungan Virtual)
Homestead adalah kotak Vagrant yang sudah dikonfigurasi sebelumnya dan menyediakan lingkungan pengembangan yang sangat lengkap dan terisolasi. Ini mencakup PHP, Nginx, MySQL, PostgreSQL, Redis, Node, dan banyak lagi.
Keunggulan: Lingkungan yang konsisten untuk tim, mudah untuk berpindah antar mesin, dan mencerminkan lingkungan produksi lebih dekat. Kekurangan: Membutuhkan VirtualBox dan Vagrant, konsumsi sumber daya lebih tinggi, dan memiliki kurva pembelajaran yang sedikit lebih curam.
Untuk pemula, kami sangat merekomendasikan XAMPP/MAMP/WAMP karena kesederhanaannya dalam memulai.
3. Menginstal Proyek Laravel Pertama Anda
Setelah Anda memiliki PHP dan Composer, dan lingkungan pengembangan lokal Anda (misalnya XAMPP dengan Apache dan MySQL berjalan), saatnya untuk membuat proyek Laravel pertama Anda!
Buka Terminal atau Command Prompt Anda. Arahkan ke direktori tempat Anda ingin menyimpan proyek Anda. Biasanya, di XAMPP, ini adalah folder htdocs. Jadi, jika XAMPP Anda terinstal di C:\xampp, Anda akan ingin masuk ke C:\xampp\htdocs.
# Contoh di Windows:
cd C:\xampp\htdocs
# Contoh di macOS/Linux:
cd /Applications/XAMPP/htdocs/
# atau
cd /opt/lampp/htdocs/ # untuk XAMPP di Linux
Sekarang, jalankan perintah Composer berikut untuk membuat proyek Laravel baru:
composer create-project laravel/laravel my-first-laravel-app
Mari kita bedah perintah ini:
composer create-project: Perintah Composer untuk membuat proyek baru dari sebuah paket.laravel/laravel: Nama paket Laravel di Packagist (repositori paket PHP).my-first-laravel-app: Ini adalah nama folder yang akan dibuat oleh Composer untuk proyek Anda. Anda bisa menggantinya dengan nama apa pun yang Anda inginkan (misalnya,blog-app,e-commerce).
Proses ini akan memakan waktu beberapa menit karena Composer akan mengunduh semua file Laravel dan dependensinya. Setelah selesai, Anda akan melihat pesan "Application ready! Build something amazing."
Selamat! Anda baru saja menginstal proyek Laravel pertama Anda!
4. Menjalankan Proyek Laravel Anda
Ada beberapa cara untuk menjalankan proyek Laravel, tetapi yang paling mudah untuk pengembangan lokal adalah menggunakan Artisan, alat baris perintah bawaan Laravel.
Arahkan Terminal/Command Prompt Anda ke dalam direktori proyek Laravel yang baru Anda buat:
cd my-first-laravel-app
Kemudian, jalankan perintah Artisan berikut:
php artisan serve
Anda akan melihat output seperti ini:
Laravel development server started: http://127.0.0.1:8000
Buka browser web Anda dan kunjungi URL yang ditampilkan (biasanya http://127.0.0.1:8000). Anda akan melihat halaman selamat datang Laravel.
Ini berarti proyek Anda berjalan dengan sukses! Jika Anda menggunakan XAMPP/MAMP, Anda juga bisa mengaksesnya melalui server web Anda (misalnya, http://localhost/my-first-laravel-app/public), tetapi php artisan serve jauh lebih mudah untuk pengembangan.
5. Memahami Struktur Direktori Laravel
Salah satu hal pertama yang perlu Anda pahami saat memulai dengan kerangka kerja baru adalah bagaimana filenya diatur. Laravel memiliki struktur direktori yang jelas dan terorganisir yang mengikuti prinsip Konvensi di atas Konfigurasi (Convention over Configuration) dan pola desain Model-View-Controller (MVC).
Mari kita jelajahi folder dan file utama dalam proyek Laravel Anda:
my-first-laravel-app/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
├── vendor/
├── .env
├── .env.example
├── .gitattributes
├── .gitignore
├── artisan
├── composer.json
├── composer.lock
├── package.json
├── postcss.config.js
├── vite.config.js
└── README.md
Mari kita bahas folder dan file yang paling penting untuk pemula:
a. app/
Ini adalah "jantung" aplikasi Anda. Folder ini berisi kode inti aplikasi Anda, termasuk:
Http/Controllers: Di sinilah Anda akan menempatkan file controller yang menangani logika permintaan HTTP.Models: File model Anda berada di sini. Model berinteraksi dengan database dan mewakili tabel database Anda.Providers: Penyedia layanan (service providers) adalah tempat yang bagus untuk mendaftarkan layanan aplikasi Anda.
b. bootstrap/
Folder ini berisi file yang diperlukan untuk memulai kerangka kerja dan konfigurasi otomatis. Biasanya, Anda tidak perlu memodifikasi file di sini.
c. config/
Berisi semua file konfigurasi aplikasi Anda (misalnya, konfigurasi database, konfigurasi layanan, dll.). Setiap file mewakili kategori konfigurasi tertentu.
d. database/
Folder ini menyimpan file-file yang terkait dengan database Anda:
migrations: File migrasi adalah "versi kontrol" untuk skema database Anda. Mereka memungkinkan Anda untuk membuat, memodifikasi, dan menghapus tabel database menggunakan kode PHP.seeders: File seeder digunakan untuk mengisi database Anda dengan data dummy untuk pengujian atau pengembangan awal.factories: Berisi "pabrik" untuk membuat data model palsu dengan cepat.
e. public/ (Sangat Penting!)
Ini adalah direktori akar web dari aplikasi Laravel Anda. Semua permintaan HTTP masuk melalui folder ini.
index.php: Ini adalah file "front controller" Laravel. Semua permintaan melewati file ini, yang memuat kerangka kerja Laravel dan mengarahkan permintaan ke rute yang sesuai.- Di sinilah Anda akan menempatkan aset yang dapat diakses publik seperti gambar, CSS, dan JavaScript. Jangan pernah menempatkan file sensitif di sini.
f. resources/
Folder ini berisi aset-aset yang perlu dikompilasi atau diproses sebelum disajikan ke pengguna:
views: File-file tampilan (Blade templates) Anda berada di sini. Tampilan adalah apa yang dilihat pengguna di browser mereka (HTML dengan sintaks Blade).css/,js/: Berisi aset mentah CSS dan JavaScript Anda yang akan dikompilasi.lang/: Berisi file-file terjemahan untuk aplikasi multibahasa.
g. routes/
Ini adalah salah satu folder terpenting untuk pemula. Di sinilah Anda akan mendefinisikan URL aplikasi Anda dan bagaimana mereka merespons permintaan.
web.php: Untuk rute aplikasi web Anda yang menghadap ke browser. Ini adalah tempat Anda akan menghabiskan sebagian besar waktu Anda di awal.api.php: Untuk rute API yang bersifat stateless (tanpa sesi), biasanya digunakan untuk aplikasi mobile atau JavaScript frontend.console.php: Untuk perintah Artisan kustom.channels.php: Untuk mendaftarkan semua saluran penyiaran acara yang didukung aplikasi Anda.
h. storage/
Folder ini berisi file-file yang dihasilkan oleh Laravel, seperti:
app: File yang diunggah oleh pengguna (misalnya, gambar profil).framework: File-file internal kerangka kerja seperti sesi, cache, dan file view yang dikompilasi.logs: File log aplikasi Anda.
i. tests/
Berisi file-file untuk pengujian otomatis aplikasi Anda (unit tests dan feature tests).
j. vendor/
Folder ini berisi semua dependensi Composer yang diinstal oleh Composer. Anda TIDAK boleh memodifikasi file di folder ini secara manual.
k. .env (File Lingkungan)
Ini adalah file yang sangat penting! .env adalah file konfigurasi lingkungan Anda. Ini berisi variabel-variabel yang berbeda antara lingkungan pengembangan (komputer Anda) dan lingkungan produksi (server live Anda), seperti kredensial database, kunci API, dan pengaturan debug.
APP_NAME: Nama aplikasi Anda.APP_ENV: Lingkungan aplikasi (misalnya,local,production).APP_DEBUG: Mengaktifkan atau menonaktifkan mode debug. Setel ketruedi pengembangan untuk melihat pesan kesalahan, danfalsedi produksi.APP_URL: URL dasar aplikasi Anda.DB_CONNECTION,DB_HOST,DB_PORT,DB_DATABASE,DB_USERNAME,DB_PASSWORD: Kredensial database Anda.
Penting: File .env tidak boleh diunggah ke repositori kontrol versi (seperti Git) karena berisi informasi sensitif. Laravel menyediakan .env.example sebagai templat.
l. artisan
Ini adalah skrip baris perintah Laravel. Ini memungkinkan Anda untuk menjalankan berbagai perintah yang berguna untuk pengembangan, seperti membuat controller, model, menjalankan migrasi database, dan banyak lagi. Anda akan sering menggunakan php artisan.
m. composer.json
Mirip dengan package.json di Node.js, file ini mendefinisikan dependensi proyek Composer Anda dan skrip-skrip yang dapat dijalankan melalui Composer.
6. Memahami Konsep Dasar: MVC di Laravel
Laravel sangat mengandalkan pola desain Model-View-Controller (MVC). Memahami ini akan membantu Anda menavigasi struktur direktori Laravel dan memahami bagaimana berbagai bagian bekerja sama.
- Model (M): Bertanggung jawab untuk berinteraksi dengan database. Model mewakili tabel database Anda dan menyediakan cara untuk mengambil, menyimpan, memperbarui, dan menghapus data. Di Laravel, model berada di folder
app/Models. - View (V): Bertanggung jawab untuk menyajikan data kepada pengguna. Ini adalah antarmuka pengguna aplikasi Anda (HTML, CSS, JavaScript). Di Laravel, tampilan berada di folder
resources/views. - Controller (C): Bertindak sebagai "jembatan" antara Model dan View. Controller menerima permintaan dari pengguna, berinteraksi dengan Model untuk mendapatkan atau memproses data, dan kemudian memilih View yang tepat untuk menampilkan hasilnya. Di Laravel, controller berada di folder
app/Http/Controllers.
Bagaimana ini bekerja di Laravel:
- Seorang pengguna membuat permintaan HTTP (misalnya, mengunjungi
http://127.0.0.1:8000/about). - Permintaan ini masuk melalui
public/index.php. - Laravel mencocokkan URL dengan rute yang didefinisikan dalam
routes/web.php. - Rute tersebut mengarahkan permintaan ke metode tertentu di sebuah Controller (misalnya,
AboutController@index). - Controller dapat berinteraksi dengan Model untuk mengambil data dari database (misalnya, daftar produk).
- Controller kemudian memuat View dan meneruskan data yang diambil.
- View merender HTML dan mengirimkannya kembali ke browser pengguna.
7. Langkah Selanjutnya Setelah Pengaturan Awal
Sekarang setelah Anda memiliki proyek Laravel yang berfungsi dan pemahaman dasar tentang strukturnya, apa selanjutnya?
- Eksplorasi
routes/web.php: Buka fileroutes/web.phpdi editor kode Anda. Anda akan melihat rute default:
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Ini adalah rute untuk halaman utama (/). Rute ini mengembalikan sebuah view bernama welcome. Anda dapat menemukan file welcome.blade.php di resources/views/. Coba buat rute baru dan tampilkan pesan sederhana!
Buat Controller Pertama Anda: Pelajari cara membuat controller menggunakan Artisan (
php artisan make:controller NamaController) dan bagaimana menghubungkannya dengan rute Anda.Bekerja dengan Database: Konfigurasi koneksi database Anda di file
.env. Pelajari tentang migrasi (php artisan make:migration create_users_table) untuk membuat tabel, dan model untuk berinteraksi dengan data.Blade Templating: Laravel menggunakan Blade, mesin templating yang kuat dan sederhana, untuk membuat tampilan. Pelajari tentang sintaks dasar Blade seperti
@extends,@section, dan@include.Dokumentasi Resmi Laravel: Sumber daya terbaik Anda adalah dokumentasi resmi Laravel (laravel.com/docs). Ini sangat komprehensif, diperbarui secara teratur, dan memiliki banyak contoh.
Kesimpulan
Selamat! Anda telah menyelesaikan langkah pertama dan paling penting dalam perjalanan pengembangan Laravel Anda. Anda sekarang telah berhasil menyiapkan Laravel beginner project setup Anda, menginstal semua prasyarat, memilih lingkungan pengembangan lokal, dan yang terpenting, Anda memiliki pemahaman dasar tentang struktur file dan folder Laravel.
Ini mungkin terlihat seperti banyak informasi sekaligus, tetapi setiap langkah ini adalah bagian penting dari fondasi yang kuat. Luangkan waktu Anda untuk menjelajahi folder-folder tersebut, membaca file-file .env dan web.php, dan bermain-main dengan perintah php artisan serve.
Ingat, setiap pengembang hebat pernah menjadi pemula. Kesabaran, konsistensi, dan keingintahuan adalah kunci. Sekarang, setelah Anda siap, mulailah berkreasi! Bangun sesuatu yang menakjubkan dengan Laravel!
Happy coding!
