Laravel AUTH, CRUD Multi Level User

Card image

1. Pertama buat Project Laravel dengan Nama Laravel-sisfo terlebih dahulu

Ada beberapa cara yang dapat digunakan untuk membuat project baru Laravel:

  1. Menggunakan Global Installer Laravel
  2. Menggunakan Composer

1. Global Installer Laravel

Langkah 1: Persiapan Folder

Buat folder workspace terlebih dahulu di dalam folder htdocs (kami menggunakan nama laravel).

C:\xampp\htdocs\laravel
                        
Langkah 2: Buka Terminal

Buka terminal/command prompt/cmder dan masuk ke dalam workspace:

cd C:\xampp\htdocs\laravel
                        
Langkah 3: Install Laravel Installer

Ketikan perintah berikut untuk melakukan instalasi:

composer global require "laravel/installer"
                        
Langkah 4: Buat Project

Setelah instalasi selesai, buat project laravel dengan perintah:

 laravel new laravel-sisfo
                        

2. Menggunakan Composer

Alternatif lain adalah membuat project langsung menggunakan Composer:

composer create-project laravel/laravel=^12.0 laravel-sisfo --prefer-dist
                        
Card image Card image

2. Setelah itu akan ada pada folder Laravel-nya yaitu folder yang kita buat tadi dengan nama Laravel-sisfo

Card image

3. Lalu masuk ke folder Laravel-sisfo

Card image

4. Install package Laravel/ui dengan cara buka terminal cmder kemudian ketikkan perintah berikut ini.

composer require laravel/ui
                
Card image

Fitur yang Didapatkan

Dengan mengimplementasikan Laravel UI Authentication, kita akan mendapatkan:

  • Registrasi user baru
  • Login dan logout
  • Reset password via email
  • Email verifikasi
  • Remember me functionality
  • Route protection dengan middleware auth

5. Implementasi Authentication dengan Bootstrap

Menjalankan Perintah Scaffolding
php artisan ui bootstrap --auth

Perintah ini akan:

  • Membuat view authentication di resources/views/auth/
  • Menambahkan route authentication di routes/web.php
  • Menggenerate controller auth di app/Http/Controllers/Auth/
  • Menambahkan layout Bootstrap di resources/views/layouts/
Card image

6. Kemudian jalankan kode berikut ini

npm install && npm run dev
                

Yang terjadi saat perintah dijalankan:

  • npm install - Menginstal semua dependensi JavaScript yang diperlukan
  • npm run dev - Mengompilasi asset CSS dan JavaScript untuk environment development
Card image

Komponen yang Di-generate

Frontend Views
  • resources/views/auth/login.blade.php
  • resources/views/auth/register.blade.php
  • resources/views/auth/passwords/email.blade.php
  • resources/views/auth/passwords/reset.blade.php
Backend Controllers
  • app/Http/Controllers/Auth/LoginController.php
  • app/Http/Controllers/Auth/RegisterController.php
  • app/Http/Controllers/Auth/ForgotPasswordController.php
  • app/Http/Controllers/Auth/ResetPasswordController.php
Card image

7. Proses Migration Database untuk Authentication

Menjalankan Perintah Migration

php artisan migrate
                

Yang terjadi saat perintah dijalankan:

  • Mengecek koneksi database - Laravel akan memverifikasi koneksi ke database
  • Membuat tabel jika belum ada - Secara otomatis membuat tabel yang diperlukan
  • Menjalankan migration file - Mengeksekusi file-file migration yang belum dijalankan
Card image

Berikut adalah struktur database yang berhasil dibuat

Card image

Berikut adalah tampilan awal dari laravel dengan mengakses link yang tersedia http://127.0.0.1:8000

Card image

8. Akses url http://127.0.0.1:8000/login pada browser maka akan tampil halaman login seperi berikut.

Card image

9. Akses url http://127.0.0.1:8000/register pada browser maka akan tampil halaman register seperi berikut.

Card image

10. Selanjutnya silahkan coba registrasi dan lakukan login ke aplikasi, jika berhasil maka akan tampil seperti gambar berikut.

Card image

Kita dapat mengganti {{ Auth::user()->email }} untuk menampilkan Email pengguna (admin54321@gmail.com) di pojok kanan navbar

Card image

Berikut adalah tapilannya

Card image

11. Laravel menyediakan tabel users dengan struktur default:

Card image

Selanjutnya silahkan coba registrasi dan lakukan login ke aplikasi, jika berhasil maka akan tampil seperti gambar berikut.

Jalankan perintah berikut di terminal:

php artisan make:migration custom_table_user
                
Card image

Ketika tabel berhasil dibuat, akan muncul seperti gambar dibawah ini

Card image

File akan dibuat di database/migrations/ dengan format timestamp.

Card image
Tips Tambahan
  • Gunakan php artisan migrate:fresh jika perlu mereset database
  • Untuk environment production, buat backup database sebelum migrate
  • Tambahkan index untuk field yang sering di-query

12. Kemudian jalankan perintah php artisan migrate, jika berhasil maka struktur table users telah berubah sesuai dengan kebutuhan aplikasi.

Card image

13. Setelah berhasil melakukan costum table users selanjutnya membuat user menggunakan fitur seeding pada Laravel, buat seeder dengan nama AdminSeeder dengan perintah :

Card image

13. Kemudian bukan file yang diakhiri costum_table_users.php dan isikan dengan kode program berikut.

php artisan make:seeder AdminSeeder
                
Card image

Maka secara otomatis file AdminSeeder.php akan dibuat pada folder database/seeders/.

Card image

14. Kemudian buka file tersebut dan buat akun admin seperti kode program berikut.

Card image

15. Lalu jalankan AdminSeeder.php di laravel

Perintah Seeding

php artisan db:seed --class=AdminSeeder

Perintah ini digunakan untuk menjalankan seeder spesifik (AdminSeeder) tanpa menjalankan seeder lainnya.

Proses yang Terjadi

  1. Laravel akan memuat file AdminSeeder.php dari folder database/seeders/
  2. Method run() dalam seeder akan dieksekusi
  3. Sistem akan memeriksa apakah user admin sudah ada
  4. Jika belum ada, user admin baru akan dibuat dengan data yang telah ditentukan
  5. Password akan di-hash secara otomatis sebelum disimpan
  6. Timestamp verifikasi email akan diisi dengan waktu saat ini
Card image

16. Jika sudah berhasil menambahkan user maka dapat login ke aplikasi menggunakan akun tersebut.

Card image

Berikut adalah tampilan setlah berhasi login

Card image

16. Langkah selannjutnya kita akan konfigurasi tampilan aplikasi menggunakan template SB Admin 2 dengan framework bootstrap

Langkah Mendownload Template
  1. Kunjungi https://startbootstrap.com/theme/sb-admin-2
  2. Klik tombol "Download" untuk mendapatkan versi terbaru
Card image

17. Ekstrak file zip yang didownload

Card image

18. Buat folder pada folder public project Laravel dengan nama sbadmin

Card image

19. copy paste kan seluruh asset template sbadmin kedalam folder tersebut

Card image

20. Buka file app.blade.php pada folder view/layouts

Card image
kemudian ganti dengan kode program dibawah ini:
Card image

Sehingga tampilan login akan berubah seperti gambar dibawah ini.

Card image

21. Selanjutnya membuat layout global yang mana layout ini akan digunakan sebagai layout utama aplikasi dan view-view lain akan mengambil resource disini, karena app.blade.php sudah digunakan untuk view login, maka buat sebuah file baru dengan nama main.blade.php di dalam folder resources/views/layouts

Card image

Tujuan File main.blade.php:

File ini akan berisi struktur HTML dasar aplikasi seperti header, sidebar, dan footer, serta menyediakan tempat untuk menyisipkan konten dinamis dari view lainnya menggunakan directive @yield. Dengan demikian, semua view yang mewarisi layout ini tidak perlu menuliskan ulang struktur HTML yang sama.

Lalu isikan dengan kode program berikut ini.

Card image

Penjelasan Struktur:
  • @yield('title'): Menyediakan tempat bagi halaman anak untuk menentukan judul halaman.
  • @include('layouts.header'): Menyisipkan file header.blade.php dari folder layouts yang berisi bagian atas halaman (navbar, dll).
  • @include('layouts.sidebar'): Menyisipkan file sidebar.
  • @yield('content'): Area utama di mana isi dari setiap halaman akan ditampilkan.
  • @include('layouts.footer'): Menyisipkan footer di bagian bawah halaman.

22. Kemudian kita akan membuat file khusus yang digunakan untuk menampilkan navigasi samping (sidebar) pada aplikasi. Sidebar berfungsi sebagai menu utama untuk berpindah antar halaman seperti Dashboard, Data Mahasiswa, dan Logout. Komponen ini akan di-include di dalam layout utama main.blade.php agar tampil secara konsisten di semua halaman.

Buat file baru dengan nama sidebar.blade.php di dalam folder resources/views/layouts. Struktur direktori menjadi seperti berikut:

Card image

Isi File sidebar.blade.php:

Card image

23. Pada langkah ini, kita akan membuat file yang digunakan untuk menampilkan bagian atas halaman atau yang biasa disebut dengan Topbar. Topbar berfungsi untuk menampilkan judul halaman, nama pengguna yang sedang login, serta bisa juga berisi notifikasi, tombol menu, dan sebagainya. File ini akan di-include di layout utama main.blade.php agar muncul di setiap halaman setelah login.

Buat file baru dengan nama topbar.blade.php di dalam folder resources/views/layouts. Struktur direktori menjadi seperti berikut:

Card image

Isi File topbar.blade.php:

Card image

Cara Penggunaan Layout main.blade.php:

Setelah kita membuat layout global main.blade.php, langkah selanjutnya adalah menggunakan layout tersebut pada halaman view tertentu, misalnya pada halaman home.blade.php. Dengan menggunakan layout ini, halaman home akan secara otomatis mewarisi struktur HTML dari main.blade.php dan hanya perlu menyisipkan bagian yang berbeda seperti judul dan konten.

Card image

Penjelasan Kode:

  • @extends('layouts.main'): Directive ini menandakan bahwa file home.blade.php menggunakan layout dari layouts/main.blade.php. Semua struktur HTML yang ada di dalam main.blade.php akan digunakan sebagai kerangka halaman ini.
  • @section('judul')...@endsection: Digunakan untuk mengisi bagian @yield('judul') yang ada di dalam main.blade.php. Umumnya digunakan untuk judul halaman.
  • @section('konten')...@endsection: Digunakan untuk mengisi bagian @yield('konten') pada layout. Inilah konten utama dari halaman.

Jika konfigurasi layout berhasil maka akan tampil seperti gambar berikut.

Card image

Membuat CRUD (Create, Read, Update dan Delete) Sederhana OOP (Object Oriented Programming) Menggunakan PHP & MYSQL

Card image Read More

Konvigurasi Laravel

Card image Read More