Laravel
Membangun aplikasi web dengan Laravel: routing, model Eloquent, autentikasi, queue, dan deployment, dijelaskan dengan contoh praktis yang bisa langsung dipakai di proyek nyata.
Belum ada artikel di sini!
Kami belum menulis tentang ini. Silakan lihat topik lain, atau kembali lagi nanti!
Questions about this topic
Quick, clear answers to what readers ask most about this topic.
Apa itu Laravel?
Laravel adalah framework PHP gratis dan open source untuk membangun aplikasi web. Laravel memberi developer komponen siap pakai untuk routing, database, login, email, queue, dan pengujian, sehingga kode berulang yang ditulis lebih sedikit. Framework ini mengikuti pola model, view, controller dan memiliki komunitas yang besar.
Laravel digunakan untuk apa?
Laravel digunakan untuk membangun aplikasi web seperti sistem manajemen, portal pelanggan, toko online, platform booking, dan API untuk aplikasi mobile. Laravel cocok untuk proyek apa pun yang membutuhkan pengguna, database, dan aturan bisnis. Banyak perusahaan menjalankan sistem privat berskala besar di atas Laravel karena framework ini stabil dan mudah dikembangkan.
Apakah Laravel cocok untuk pemula?
Laravel cocok untuk pemula yang sudah menguasai dasar PHP, karena kodenya mudah dibaca dan dokumentasi resminya jelas. Laravel juga memiliki komunitas besar, banyak tutorial, dan starter kit yang langsung menyiapkan halaman login. Mempelajari PHP murni lebih dulu membuat framework ini jauh lebih mudah dipahami.
Bagaimana cara menginstal Laravel di komputer?
Laravel diinstal dengan memasang PHP dan Composer lebih dulu, lalu menjalankan composer create-project laravel/laravel diikuti nama proyek Anda. Laravel installer yang dipanggil dengan laravel new melakukan hal yang sama dan menawarkan starter kit. Setelah itu, php artisan serve menjalankan server lokal agar aplikasi bisa dibuka di browser.
Versi PHP berapa yang dibutuhkan Laravel?
Laravel membutuhkan versi PHP 8 yang terbaru, dan setiap rilis Laravel menyebutkan versi PHP terendah yang didukungnya. Rilis Laravel yang lebih baru menghentikan dukungan untuk versi PHP lama begitu versi itu berakhir masa dukungan keamanannya. Selalu periksa panduan upgrade versi Laravel yang akan Anda pakai.
Apa itu routing di Laravel?
Routing di Laravel menghubungkan alamat web dan metode HTTP, seperti GET atau POST, dengan kode yang menjawabnya. Route ditulis di file seperti routes/web.php untuk halaman dan routes/api.php untuk API. Sebuah route bisa memanggil closure atau metode controller dan bisa membawa middleware untuk login dan pemeriksaan lain.
Apa itu Eloquent di Laravel?
Eloquent adalah ORM milik Laravel, yaitu bagian yang memungkinkan Anda mengolah tabel database sebagai class PHP yang disebut model. Setiap model mewakili satu tabel dan setiap objek mewakili satu baris, sehingga data bisa dibaca dan disimpan tanpa menulis SQL. Eloquent juga menangani relasi seperti one-to-many dan many-to-many.
Bagaimana cara kerja relasi Eloquent di Laravel?
Relasi Eloquent di Laravel adalah metode pada model, seperti hasMany, belongsTo, dan belongsToMany, yang menjelaskan bagaimana dua tabel saling terhubung. Setelah didefinisikan, data terkait bisa dibaca seperti $order->customer tanpa menulis join. Eager loading dengan metode with memuat baris terkait sekaligus dan menghindari query berulang yang lambat.
Apa itu masalah query N+1 di Laravel?
Masalah query N+1 di Laravel terjadi ketika kode memuat daftar data lalu menjalankan satu query tambahan untuk setiap data guna mengambil data terkaitnya. Halaman dengan 100 pesanan bisa berakhir menjalankan 101 query dan menjadi lambat. Eager loading dengan metode with memperbaiki masalah ini dengan mengambil baris terkait dalam satu query.
Apa itu migration di Laravel?
Migration di Laravel adalah file PHP yang membuat dan mengubah tabel database lewat kode. Menjalankan php artisan migrate menerapkannya, sehingga setiap developer dan setiap server memiliki struktur database yang sama. Karena migration disimpan di version control, riwayat setiap perubahan tabel tetap tercatat.
Apa itu Blade di Laravel?
Blade adalah template engine Laravel untuk menulis halaman HTML dengan tag sederhana untuk perulangan, kondisi, dan layout. Blade secara bawaan melakukan escape pada nilai yang dicetak, sehingga halaman terlindungi dari cross-site scripting. Template dikompilasi menjadi PHP biasa dan di-cache, sehingga Blade hampir tidak menambah beban pada setiap permintaan.
Bagaimana cara kerja autentikasi di Laravel?
Autentikasi di Laravel bekerja melalui guard yang memeriksa siapa penggunanya dan provider yang memuat data pengguna dari database. Starter kit seperti Laravel Breeze menambahkan halaman login, registrasi, dan reset kata sandi yang siap pakai. Kata sandi di-hash dengan bcrypt atau Argon2, sehingga tidak pernah disimpan sebagai teks biasa.
Apa perbedaan Laravel Sanctum dan Laravel Passport?
Laravel Sanctum menyediakan login berbasis token dan cookie yang sederhana untuk single-page app, aplikasi mobile, dan API dasar, sedangkan Laravel Passport adalah server OAuth2 lengkap. Sebagian besar proyek cukup memakai Sanctum karena lebih ringan dan mudah diatur. Passport cocok untuk kasus di mana aplikasi luar harus login atas nama pengguna Anda.
Apa itu middleware di Laravel?
Middleware di Laravel adalah lapisan yang memeriksa atau mengubah permintaan sebelum sampai ke kode Anda, atau mengubah response sebelum dikirim keluar. Middleware yang umum menangani pemeriksaan login, perlindungan CSRF, pembatasan jumlah permintaan, dan pengaturan bahasa. Middleware bisa dipasang pada satu route, sekelompok route, atau seluruh aplikasi.
Bagaimana cara kerja queue di Laravel?
Queue di Laravel memindahkan tugas lambat, seperti mengirim email atau membuat laporan, keluar dari permintaan web menjadi job di latar belakang. Job dimasukkan ke driver queue seperti Redis atau database, lalu worker yang dijalankan dengan php artisan queue:work mengeksekusinya. Pengguna mendapat respons cepat sementara pekerjaan berat selesai di latar belakang.
Kapan sebaiknya memakai queue di aplikasi Laravel?
Queue sebaiknya dipakai di aplikasi Laravel setiap kali sebuah tugas memakan waktu lebih dari sesaat atau berkomunikasi dengan layanan luar, seperti email, pengolahan file, atau webhook pembayaran. Queue menjaga halaman tetap cepat dan membuat job yang gagal bisa diulang otomatis. Laravel Horizon menyediakan dashboard untuk memantau queue Redis.
Bagaimana cara menjadwalkan tugas di Laravel?
Tugas dijadwalkan di Laravel dengan mendefinisikannya di scheduler memakai metode seperti daily atau everyFiveMinutes, lalu menjalankan php artisan schedule:run setiap menit dari satu entri cron di server. Scheduler kemudian menentukan tugas mana yang sudah waktunya dijalankan. Cara ini menyimpan semua tugas terjadwal di dalam kode, bukan di banyak baris cron terpisah.
Bagaimana cara memvalidasi data formulir di Laravel?
Data formulir divalidasi di Laravel dengan metode validate pada request atau dengan class Form Request yang menyimpan aturan validasinya. Aturan seperti required, email, max, dan unique memeriksa setiap kolom sebelum kode Anda memakainya. Jika validasi gagal, Laravel mengembalikan pengguna ke formulir beserta pesan error dan isian sebelumnya.
Bagaimana Laravel melindungi aplikasi dari serangan web umum?
Laravel melindungi aplikasi dari serangan web umum dengan token CSRF pada formulir, output yang di-escape di Blade, parameter binding pada query database, dan kata sandi yang di-hash. Pengaturan bawaan ini memblokir cross-site request forgery, cross-site scripting, dan SQL injection dalam penggunaan normal. Developer tetap perlu memvalidasi input, memeriksa hak akses, dan memperbarui framework.
Bagaimana cara deploy aplikasi Laravel ke server?
Aplikasi Laravel di-deploy dengan menarik kode ke server, menjalankan composer install tanpa paket dev, mengatur file .env, dan menjalankan migration. Setelah itu, cache config, route, dan view, lalu arahkan web server ke folder public. Banyak tim mengotomatiskan langkah-langkah ini dari Git agar setiap rilis selalu sama.
Server seperti apa yang dibutuhkan aplikasi Laravel?
Aplikasi Laravel membutuhkan server dengan PHP, web server seperti Nginx atau Apache, database seperti MySQL atau PostgreSQL, dan Composer. Redis sering ditambahkan untuk cache dan queue, dan process manager menjaga worker queue tetap berjalan. Hostrena, merek hosting Linkysoft, menawarkan hosting aplikasi web untuk Laravel yang di-deploy langsung dari Git.
Bagaimana cara membuat aplikasi Laravel lebih cepat?
Aplikasi Laravel dibuat lebih cepat dengan melakukan cache pada config, route, dan view, memakai eager loading untuk relasi, dan menambahkan index pada kolom database yang sering dicari. Memindahkan pekerjaan lambat ke queue dan menyimpan hasil query berat di cache Redis membantu lebih jauh. Mengaktifkan PHP OPcache di server memberi peningkatan besar dengan usaha kecil.
Bagaimana cara menguji aplikasi Laravel?
Aplikasi Laravel diuji dengan PHPUnit atau Pest, yang sudah disiapkan di setiap proyek baru. Feature test mengirim permintaan tiruan ke route Anda lalu memeriksa response dan database, sedangkan unit test memeriksa class secara terpisah. Perintah php artisan test menjalankan seluruh rangkaian pengujian.
Apakah Laravel sanggup menangani aplikasi besar dengan banyak pengguna?
Laravel sanggup menangani aplikasi besar dengan banyak pengguna jika berjalan di server yang baik dengan caching, queue, index database, dan lebih dari satu server aplikasi di balik load balancer. Framework-nya sendiri jarang menjadi batas, yang biasanya menjadi batas adalah query lambat dan cache yang tidak ada. Karena alasan inilah Linkysoft membangun aplikasi web custom dengan PHP, Laravel, MySQL, dan Redis.
Seberapa sering saya perlu meng-upgrade versi Laravel?
Versi Laravel sebaiknya di-upgrade paling lambat sebelum versi yang Anda pakai berhenti menerima perbaikan keamanan. Laravel merilis versi mayor sekitar setahun sekali, dan setiap versi disertai panduan upgrade. Upgrade kecil yang rutin jauh lebih mudah daripada melompati beberapa versi sekaligus.