Tutorial Lengkap CRUD Laravel 10: Membangun Aplikasi Aman dengan Autentikasi, Validasi, dan Proteksi Keamanan Siber

Pendahuluan

Laravel 10 merupakan framework PHP modern yang kuat untuk membangun aplikasi web terstruktur. Panduan ini membantu Anda membuat proyek CRUD (Create, Read, Update, Delete) yang aman — mencakup setup, implementasi, dan praktik keamanan siber yang wajib diterapkan.

Mengenal Laravel 10 dan Keunggulannya

Laravel 10 menawarkan stabilitas, dukungan modern PHP, dan banyak fitur bawaan yang mempercepat pengembangan. Laravel memakai arsitektur MVC, Eloquent ORM, sistem routing fleksibel, serta proteksi keamanan dasar seperti CSRF token dan escaping di Blade template.

Persiapan Lingkungan Pengembangan

Persyaratan

  • PHP 8.1 atau lebih baru
  • Composer
  • Database: MySQL / MariaDB / PostgreSQL
  • Editor: Visual Studio Code + ekstensi Laravel (lihat bagian VS Code)

Pilihan Web Server yang Direkomendasikan

Rekomendasi produksi dan development:

  • Laragon (Windows) — cepat untuk development
  • Nginx + PHP-FPM — rekomendasi produksi
  • Apache — mudah untuk pemula (XAMPP)
  • Laravel Sail — Docker untuk lingkungan konsisten

VS Code: Ekstensi Wajib

  • PHP Intelephense
  • Laravel Extension Pack
  • Blade Formatter
  • Laravel Snippets
  • DotENV

Membuat Proyek Laravel 10

composer create-project laravel/laravel crud-laravel10
cd crud-laravel10
php artisan serve

Jika Anda menggunakan Laragon atau Sail, jalankan perintah sesuai dokumentasi masing-masing.

Desain Database dan Migrasi

Contoh tabel users (studi kasus):

Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('email')->unique();
    $table->string('password');
    $table->timestamps();
});

Jalankan migrasi:

php artisan migrate

Implementasi CRUD Laravel 10

Create & Store

Buat controller:

php artisan make:controller UserController --resource

Method store contoh:

public function store(Request $request)
{
    $validated = $request->validate([
        'name' => 'required|string|max:255',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|string|min:8',
    ]);

    $validated['password'] = Hash::make($validated['password']);

    User::create($validated);

    return redirect()->route('users.index')->with('success', 'User berhasil dibuat');
}

Read & Pagination

public function index()
{
    $users = User::paginate(10);
    return view('users.index', compact('users'));
}

Update

public function update(Request $request, User $user)
{
    $validated = $request->validate([
        'name' => 'required|string|max:255',
        'email' => ['required','email', Rule::unique('users')->ignore($user->id)],
    ]);

    $user->update($validated);

    return redirect()->route('users.index')->with('success', 'User diperbarui');
}

Delete

public function destroy(User $user)
{
    $user->delete();
    return redirect()->route('users.index')->with('success', 'User dihapus');
}

Gunakan route resource:

Route::resource('users', UserController::class)->middleware('auth');

Keamanan Siber pada Aplikasi Laravel 10

Proteksi CSRF

Gunakan token CSRF di form Blade:

<form action="{{ route('users.store') }}" method="POST">
  @csrf
  <!-- fields -->
</form>

Pencegahan SQL Injection

Gunakan Eloquent / parameter binding. Hindari query mentah tanpa binding.

Perlindungan XSS

Gunakan Blade escaping {{ $variable }}. Untuk menampilkan HTML yang aman, gunakan Purifier atau sanitize data pada saat input.

Validasi Input

Selalu validasi data di server, jangan hanya di client-side.

HTTPS & Konfigurasi .env

  • Gunakan HTTPS di produksi
  • Jangan commit file .env
  • Pastikan APP_KEY aman

Pengujian & Debugging

Jalankan test bawaan Laravel:

php artisan test

Gunakan fitur logging dan debugbar saat development (non-production).

Deployment & Rekomendasi Server Produksi

Langkah singkat deploy:

  1. Gunakan Nginx + PHP-FPM di server produksi
  2. Aktifkan cache konfigurasi dan route: php artisan config:cache && php artisan route:cache
  3. Set permissions folder storage dan bootstrap/cache
  4. Gunakan supervisor / systemd untuk menjalankan queue-worker jika ada

Penutup

Dengan menerapkan praktik di atas—struktur MVC, validasi, proteksi CSRF, sanitasi input, dan konfigurasi server yang tepat—Anda membangun aplikasi CRUD Laravel 10 yang aman dan siap produksi.