Cara menginstal proyek berbasis laravel di VPS menggunakan Ubuntu + aaPanel

Laravel adalah framework PHP open-source yang dirancang untuk mempermudah pengembangan aplikasi web dengan sintaks yang elegan dan terstruktur. Dibuat oleh Taylor Otwell, Laravel menyediakan berbagai fitur seperti routing, sesi, autentikasi, dan caching, yang memudahkan pengembang membangun aplikasi dengan lebih cepat dan aman. Laravel juga mendukung arsitektur MVC (Model-View-Controller) yang memisahkan logika aplikasi dari tampilan, sehingga kode lebih terorganisir dan mudah dipelihara.
Kelebihan Laravel
Laravel memiliki beberapa kelebihan dibandingkan framework lain, antara lain:
- Sintaks yang Elegan: Laravel menawarkan sintaks yang bersih dan sederhana, membuat kode lebih mudah dipahami dan ditulis.
- Ekosistem yang Kuat: Laravel dilengkapi dengan ekosistem tools yang lengkap seperti Laravel Forge, Laravel Vapor, dan Laravel Mix, yang memudahkan deployment, server management, dan asset compilation.
- Eloquent ORM: Eloquent ORM Laravel memungkinkan interaksi dengan database menggunakan model yang intuitif, mengurangi penggunaan query SQL mentah.
- Blade Templating Engine: Blade, engine template Laravel, menawarkan fitur untuk membuat tampilan dinamis dengan cara yang efisien dan ringan.
- Dukungan Komunitas Besar: Dengan komunitas yang luas dan aktif, Laravel terus berkembang dengan banyaknya plugin, tutorial, dan dokumentasi yang tersedia.
- Built-in Features: Laravel menyediakan fitur bawaan untuk routing, middleware, autentikasi, authorization, validasi, dan manajemen sesi, sehingga mempermudah pengembangan aplikasi.
- Testing yang Mudah: Laravel dilengkapi dengan testing tools yang memudahkan pengujian aplikasi secara unit dan fungsional.
- Security: Laravel menawarkan berbagai mekanisme keamanan bawaan seperti proteksi terhadap serangan CSRF (Cross-Site Request Forgery) dan SQL Injection.
Kombinasi fitur-fitur tersebut membuat Laravel sangat cocok untuk pengembangan aplikasi web yang cepat, aman, dan terstruktur.
Bagian penting Laravel
Dalam Laravel, ada beberapa bagian penting yang berperan dalam pengembangan aplikasi web:
-
Routing: Mengatur alur permintaan HTTP ke kontroler atau closure tertentu. Laravel memiliki sistem routing yang fleksibel dan mudah digunakan.
- File:
routes/web.php(untuk rute web) danroutes/api.php(untuk rute API).
- File:
-
Middleware: Lapisan filter yang digunakan untuk memeriksa dan mengubah permintaan sebelum diteruskan ke aplikasi. Middleware membantu menangani autentikasi, logging, dan validasi request.
- Contoh:
authuntuk mengautentikasi pengguna.
- Contoh:
-
Controllers: Tempat logika aplikasi ditempatkan. Kontroler mengelola request dan berinteraksi dengan model untuk mengolah data dan memberikan respons ke pengguna.
- File: Berada di dalam
app/Http/Controllers/.
- File: Berada di dalam
-
Models dan Eloquent ORM: Laravel menggunakan Eloquent ORM untuk berinteraksi dengan database. Model mewakili tabel database dan memungkinkan penggunaan query builder yang bersih dan intuitif.
- File: Berada di dalam
app/Models/.
- File: Berada di dalam
-
Blade Templating Engine: Mesin template yang ringan untuk menulis tampilan (view) menggunakan logika minimal dalam file HTML.
- File: Berada di dalam
resources/views/.
- File: Berada di dalam
-
Migration dan Schema: Migrations digunakan untuk mengelola perubahan struktur database secara programatik. Laravel Schema Builder menyediakan cara mudah untuk membuat, mengubah, atau menghapus tabel di database.
- File: Berada di dalam
database/migrations/.
- File: Berada di dalam
-
Artisan CLI: Command-line interface Laravel yang kuat. Dengan
artisan, pengembang dapat menjalankan berbagai tugas seperti membuat file baru, mengelola database, melakukan migrasi, menjalankan tes, dll.- Contoh:
php artisan migrateuntuk menjalankan migrasi database.
- Contoh:
-
Service Providers: Ini adalah titik awal aplikasi Laravel. Service provider bertanggung jawab untuk mem-boot aplikasi, mendaftarkan layanan, dan menyiapkan konfigurasi.
- File: Berada di dalam
app/Providers/.
- File: Berada di dalam
-
Validation: Laravel memiliki sistem validasi yang mudah dan kuat untuk memverifikasi data input pengguna sebelum menyimpan ke database.
- Validasi dapat ditulis dalam kontroler atau menggunakan form request classes.
-
Queue dan Task Scheduling: Laravel mendukung pengelolaan antrian untuk pemrosesan tugas yang tertunda (asynchronous), serta penjadwalan tugas untuk otomatisasi menggunakan cron jobs.
- Konfigurasi di
config/queue.php.
- Konfigurasi di
Bagian-bagian ini adalah fondasi utama yang memungkinkan pengembangan aplikasi web yang efisien, terstruktur, dan scalable di Laravel.
Istilah di Laravel
Berikut adalah beberapa istilah penting yang sering digunakan dalam Laravel:
-
Artisan: Command-line interface (CLI) Laravel yang menyediakan berbagai perintah untuk membantu pengembangan aplikasi, seperti membuat file, menjalankan migrasi, membersihkan cache, dll.
- Contoh:
php artisan make:model Post.
- Contoh:
-
Controller: Komponen yang menghubungkan antara model dan view. Controller menerima permintaan dari pengguna, memproses data melalui model, dan mengirimkan hasilnya ke view.
- Contoh:
PostController.
- Contoh:
-
Model: Representasi tabel database dalam kode. Model digunakan untuk berinteraksi dengan data melalui Eloquent ORM.
- Contoh:
Postmodel yang mewakili tabelposts.
- Contoh:
-
View: Bagian dari aplikasi yang bertanggung jawab untuk menampilkan data kepada pengguna. Laravel menggunakan Blade sebagai mesin templating untuk view.
- Contoh:
post.blade.php.
- Contoh:
-
Middleware: Filter yang digunakan untuk memproses request sebelum mencapai controller atau setelah respons dihasilkan. Middleware dapat digunakan untuk autentikasi, logging, atau proteksi CSRF.
- Contoh:
authmiddleware untuk autentikasi.
- Contoh:
-
Route: Definisi alur permintaan HTTP dalam aplikasi. Routing menentukan bagaimana permintaan tertentu (GET, POST, PUT, DELETE) dipetakan ke kontroler atau tindakan spesifik.
- Contoh:
Route::get('/posts', [PostController::class, 'index']);.
- Contoh:
-
Migration: Struktur file yang digunakan untuk mengelola perubahan dalam skema database. Migrations memungkinkan Anda membuat dan mengubah tabel secara programatis.
- Contoh:
create_posts_table.php.
- Contoh:
-
Seeder: File yang digunakan untuk memasukkan data dummy atau default ke dalam database. Seeder sangat membantu untuk pengujian dan pengembangan aplikasi.
- Contoh:
PostsTableSeeder.
- Contoh:
-
Eloquent ORM: Object-Relational Mapping yang digunakan Laravel untuk mengelola dan berinteraksi dengan database menggunakan model. Eloquent memungkinkan pengelolaan data dengan query builder yang sederhana dan efisien.
- Contoh:
Post::where('status', 'published')->get();.
- Contoh:
-
Blade: Mesin template Laravel untuk membuat tampilan yang dinamis. Blade memungkinkan penggunaan logika seperti loop dan kondisi dalam file HTML tanpa memperlambat performa.
- Contoh:
@foreach($posts as $post) ... @endforeach.
- Contoh:
-
Service Provider: Komponen yang bertanggung jawab untuk mem-boot layanan aplikasi. Semua service provider didaftarkan dalam file
config/app.phpdan berfungsi untuk menginisialisasi berbagai komponen Laravel.- Contoh:
AppServiceProvider.
- Contoh:
-
Request: Objek yang berisi informasi tentang permintaan HTTP yang masuk, seperti data input, file yang diunggah, cookie, dan banyak lagi.
- Contoh:
$request->input('title');.
- Contoh:
-
Response: Objek yang berisi informasi yang akan dikirim kembali ke klien setelah permintaan diproses. Bisa berupa view, JSON, atau bahkan redirect.
- Contoh:
return response()->json($data);.
- Contoh:
-
Queue: Sistem Laravel yang mendukung pengelolaan antrian pekerjaan untuk melakukan tugas-tugas yang membutuhkan waktu lama secara asynchronous, seperti pengiriman email atau pemrosesan file.
- Contoh:
dispatch(new SendEmailJob($user));.
- Contoh:
-
Session: Tempat penyimpanan sementara data pengguna, seperti informasi login atau data sementara lainnya. Laravel menyediakan API session yang mudah digunakan untuk menyimpan dan mengambil data session.
- Contoh:
session()->put('key', 'value');.
- Contoh:
-
Event: Sistem Laravel untuk menangani event-driven programming. Anda bisa mendefinisikan event dan listener untuk melakukan tindakan ketika event terjadi.
- Contoh:
event(new PostCreated($post));.
- Contoh:
-
Job: Unit kerja yang dapat diproses secara terpisah melalui sistem queue. Laravel menyediakan command untuk membuat job yang menangani tugas seperti pemrosesan data atau pengiriman email.
- Contoh:
php artisan make:job ProcessPodcast.
- Contoh:
-
Facades: API statis yang menyediakan akses singkat ke berbagai layanan Laravel. Facade memungkinkan akses mudah ke komponen Laravel, seperti database, cache, atau queue.
- Contoh:
Cache::get('key');.
- Contoh:
-
Composer: Dependency manager PHP yang digunakan Laravel untuk mengelola paket dan library yang dibutuhkan oleh aplikasi.
- Contoh:
composer install.
- Contoh:
- Symfony : berfungsi sebagai framework PHP yang membantu pengembang membangun aplikasi web dengan lebih cepat dan terstruktur. Ia menyediakan berbagai alat dan komponen untuk menangani tugas-tugas umum seperti routing (mengatur URL), manajemen database, pengelolaan template, serta keamanan. Dengan Symfony, pengembang bisa membuat aplikasi yang efisien, modular, dan mudah dipelihara.
Istilah-istilah ini adalah bagian penting dari Laravel dan sering muncul dalam dokumentasi maupun pengembangan sehari-hari.
Cara menginstal Laravel di VPS
Video tutorial memasang web PPDB Online berbasis Laravel di VPS
Uji Kehebatan VPS Biznet Gio Cloud 1vCPU, 1GB RAM untuk web PPDB berbasis Laravel
Informasi seputra pengujian concurrent users di VPS :
- Blazmeter digunakan untuk merekam skrip dan Jmeter digunakan untuk pegujian concurrent users
- Hardware dan internet disisi penguji akan mempengaruhi hasil pengujian, bisa jadi anda menggunakan spesifikasi yang berbeda dengan yang saya pakai maka hasilnya akan berbeda pula. Disarankan hardware disisi penguji menggunakan hardware berspesifikasi tertinggi dan teknologi paling baru
- Mensimulasikan pengguna mencapai ribuan membutuhkan hardware yang mumpuni dan kecepatan internet yang tinggi pula disisi penguji.
- Pengujian concurrent users bisa menghabiskan 20-30% durasi video utama
- Pengujian di waktu berbeda memungkinkan akan menghasilkan hasil yang berbeda pula (bisa lebih tinggi bisa lebih rendah) dikarenakan bisa jadi disisi layanan VPS ada upgrade hardware/downgrade hardware

