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
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:
Aksi: [UPDATE FILE]
Cara: Buka file
routes/web.phpAksi: [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:
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.
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
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):
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:
- Harus OTOMATIS redirect ke
2. Test Redirect Sudah Login:
- Login dengan
- Buka tab baru:
- Harus OTOMATIS redirect ke
1. Test Redirect Belum Login:
- Logout dulu jika sedang login
- Buka browser:
http://localhost:8000/- Harus OTOMATIS redirect ke
http://localhost:8000/login2. 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
Error "Route [login] not defined"?
Solusi: Pastikan Laravel Breeze sudah terinstall (Lesson 5)
Masih muncul halaman Welcome?
Solusi: Pastikan route "/" sudah diubah di
routes/web.php. Coba php artisan route:clearError "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:
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:
Semangat! Anda sudah di jalur yang benar untuk membangun SIMRS yang powerful!
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!