Bonus: Direct Login Flow

Bonus: Direct Login Flow

Di lesson bonus ini, kita akan mengubah alur aplikasi agar user langsung diarahkan ke halaman login. Ini cocok untuk aplikasi internal seperti SIMRS.

Mengapa Perlu Direct Login?

Aplikasi Publik Perlu Landing Page untuk promosi, informasi, ajakan daftar
Aplikasi Internal (SIMRS) TIDAK perlu Landing Page. User langsung login untuk bekerja.
Yang Akan Dibuat:

1. Redirect otomatis dari "/" ke halaman login
2. Jika sudah login, langsung ke Dashboard
3. Tips performance untuk SIMRS

Step 1: Update Route untuk Direct Redirect

Lokasi File: routes/web.php
Aksi: [UPDATE FILE]
Cara: Buka file routes/web.php, cari route "/" di bagian atas, ubah menjadi seperti di bawah:
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DashboardController;

// ===== DIRECT LOGIN FLOW =====
// Jika user belum login -> redirect ke login
// Jika user sudah login -> redirect ke dashboard
Route::get('/', function () {
    if (auth()->check()) {
        return redirect()->route('dashboard');
    }
    return redirect()->route('login');
});
// ===== END DIRECT LOGIN FLOW =====

// Protected routes (butuh login)
Route::middleware(['auth'])->group(function () {
    // Dashboard
    Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
    Route::get('/dashboard/stats', [DashboardController::class, 'stats'])->name('dashboard.stats');
    
    // Routes lainnya akan ditambahkan di Section 2...
});

require __DIR__.'/auth.php';
Penjelasan Kode:

auth()->check() Cek apakah user sudah login (return true/false)
redirect()->route('dashboard') Redirect ke halaman dashboard
redirect()->route('login') Redirect ke halaman login

Step 2: Hapus File Welcome Page (Opsional)

Lokasi: Terminal / Command Prompt
Aksi: [JALANKAN COMMAND] (OPSIONAL)
Cara: Karena kita tidak lagi menggunakan halaman welcome, file ini bisa dihapus:
# Hapus file welcome.blade.php (opsional)
# Windows
del resources\views\welcome.blade.php

# Mac/Linux
rm resources/views/welcome.blade.php
Catatan:
Ini opsional. Jika tidak dihapus juga tidak masalah, file tersebut hanya tidak dipakai.

Step 3: Tips Performance untuk SIMRS

Tipe: [TEORI - TIDAK ADA KODE]
Tujuan: Memahami cara meningkatkan performa aplikasi SIMRS
4 Tips Performance:
Tips Penjelasan Contoh
1. CDN Assets Gunakan CDN untuk Bootstrap, jQuery agar loading lebih cepat cdn.jsdelivr.net
2. Eager Loading Gunakan with() untuk load relasi sekaligus, hindari N+1 query Pasien::with('kunjungan')->get()
3. Server-side DataTables Untuk tabel besar (>1000 rows), proses di server bukan browser Yajra DataTables
4. Queue Jobs Proses berat (generate PDF, kirim email) dilakukan di background dispatch(new GenerateReport)
Penjelasan N+1 Query Problem:

Tanpa Eager Loading (BURUK):
// 1 query untuk get semua pasien
$pasiens = Pasien::all();

// PROBLEM: 100 query tambahan jika ada 100 pasien!
foreach ($pasiens as $pasien) {
    echo $pasien->kunjungan->count(); // Query baru setiap iterasi
}
Dengan Eager Loading (BAGUS):
// 2 query saja, tidak peduli berapa banyak pasien
$pasiens = Pasien::with('kunjungan')->get();

foreach ($pasiens as $pasien) {
    echo $pasien->kunjungan->count(); // Data sudah di-load
}

Full Source Code

File yang Dimodifikasi (1 file):

1 routes/web.php [UPDATE FILE] Step 1

Checkpoint - Test Manual

Langkah Testing:

1. Test Redirect Belum Login:
- Logout dulu jika sedang login
- Buka browser: http://localhost:8000/
- Harus OTOMATIS redirect ke http://localhost:8000/login

2. Test Redirect Sudah Login:
- Login dengan admin@simrs.test / password
- Buka tab baru: http://localhost:8000/
- Harus OTOMATIS redirect ke http://localhost:8000/dashboard
Troubleshooting:

Masih muncul halaman Welcome?
Solusi: Pastikan route "/" sudah diubah di routes/web.php. Coba php artisan route:clear

Error "Route [login] not defined"?
Solusi: Pastikan Laravel Breeze sudah terinstall (Lesson 5)

Ringkasan Section 1

Selamat! Section 1 Selesai!

Di Section 1 ini, Anda sudah belajar dan membuat:

1 Memahami arsitektur SIMRS dan konsep Monolith
2 Install Laravel dan membuat Helper Functions
3 Memahami struktur folder project
4 Membuat Layout Dashboard dengan Bootstrap 5
5 Implementasi Role & Permission dengan Spatie
6 Membuat Database Seeder untuk data contoh
7 Memahami best practices organisasi kode
8 Setup Direct Login Flow dan tips performance
Next: Section 2 - Master Data

Di Section 2, kita akan mulai membangun fitur-fitur utama SIMRS:

Lesson 1-2 Setup DataTables dan CRUD Poliklinik
Lesson 3-4 CRUD Dokter dan Jadwal Praktek
Lesson 5-8 Tarif Tindakan, Obat, Kamar, Lab

Semangat! Anda sudah di jalur yang benar untuk membangun SIMRS yang powerful!