{"id":55703,"date":"2025-06-26T16:08:09","date_gmt":"2025-06-26T09:08:09","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=55703"},"modified":"2026-02-16T10:26:51","modified_gmt":"2026-02-16T03:26:51","slug":"belajar-laravel-bagian-20","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/belajar-laravel-bagian-20\/","title":{"rendered":"Belajar Laravel Bagian 20 &#8211; Membuat Roles Multi Level User"},"content":{"rendered":"\n<p>Saat membuat aplikasi berbasis website, sering kali kita perlu membedakan akses antara admin, pengguna biasa, hingga mungkin moderator. Di sinilah pentingnya menerapkan sistem multi level user di website. Dengan sistem ini, setiap pengguna bisa memiliki peran (<em>role<\/em>) yang berbeda dan hanya bisa mengakses fitur sesuai haknya.<\/p>\n\n\n\n<p>Pada sesi belajar laravel bagian ke 20 ini, kita akan belajar cara membuat sistem <em>roles <\/em>akses pengguna berdasarkan peran masing-masing user. <\/p>\n\n\n\n<p>Selain itu, kita akan membangun fitur login yang membedakan akses tiap user, mulai dari membuat tabel database untuk menyimpan data pengguna, mengatur middleware dan proteksi route sesuai role, hingga membuat controller yang menjalankan logikanya.<\/p>\n\n\n\n<p>Sebelum mengikuti sesi belajar Laravel ini, pastikan Anda sudah mengikuti sesi sebelumnya. Panduan ini adalah lanjutan dari materi tentang pembuatan login di Laravel. Jika belum, Anda bisa membacanya terlebih dahulu di halaman <a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-laravel\/#Series_Belajar_Laravel\" target=\"_blank\" rel=\"noopener\" title=\"Belajar Laravel\">Belajar Laravel<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apa itu Roles?<\/h2>\n\n\n\n<p><em>Role <\/em>adalah peran yang dimiliki oleh setiap pengguna dalam sistem, misalnya admin, editor, atau user biasa. Setiap <em>role <\/em>memiliki tanggung jawab dan batasan akses yang berbeda saat menggunakan sistem.<\/p>\n\n\n\n<p>Biasanya, setiap <em>role <\/em>memiliki satu set <em>permission<\/em>, yaitu hak akses yang menentukan apa saja yang boleh dilakukan oleh pengguna dengan peran tersebut di dalam sistem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Membuat <em>Roles <\/em>di Laravel<\/h2>\n\n\n\n<p>Berikut adalah step by step cara membuat <em>roles <\/em>di Laravel. Dalam panduan ini, kami menggunakan <em>localhost <\/em>dengan aplikasi <a href=\"https:\/\/blog.rumahweb.com\/laragon-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"laragon adalah\">Laragon<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1. Membuat model dan migration data<\/h3>\n\n\n\n<p>Langkah pertama, kita akan menggunakan model dan migration data user yang sudah disediakan oleh laravel untuk membuat <em>roles <\/em>dengan <em>field <\/em>name, email, <em>role<\/em>, serta <em>password<\/em>.<\/p>\n\n\n\n<p>Struktur migration table user yang ada pada folder&nbsp;<em>database\/migration<\/em>&nbsp;dengan nama file berikut&nbsp;<em>****_**_**_*****_create_users_table.php&nbsp;<\/em>(tanda * sesuai dengan nama file yang ada pada komputer Anda).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"934\" height=\"352\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image.png\" alt=\"Membuat migration data\" class=\"wp-image-55704\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image.png 934w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-300x113.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-768x289.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-370x139.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-270x102.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-570x215.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-740x279.png 740w\" sizes=\"auto, (max-width: 934px) 100vw, 934px\" \/><\/a><\/figure>\n\n\n\n<p>Struktur&nbsp;<strong>Models&nbsp;<\/strong>yang ada pada folder&nbsp;<em>App\/Models\/User<\/em>&nbsp;dengan nama file berikut:&nbsp;<strong>user.php<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"619\" height=\"189\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-1.png\" alt=\"Membuat migration models\" class=\"wp-image-55705\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-1.png 619w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-1-300x92.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-1-370x113.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-1-270x82.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-1-570x174.png 570w\" sizes=\"auto, (max-width: 619px) 100vw, 619px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2. Membuat <em>controller <\/em>Login<\/h3>\n\n\n\n<p>Untuk dapat membuat <em>controller<\/em>, Anda dapat untuk menjalankan perintah berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:controller LoginController<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"77\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-1024x77.png\" alt=\"Membuat controller Login\" class=\"wp-image-55706\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-1024x77.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-300x22.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-768x57.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-370x28.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-270x20.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-570x43.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2-740x55.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-2.png 1325w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3. Membuat isi dari <em>controller <\/em>login<\/h3>\n\n\n\n<p>Langkah selanjutnya, kita akan membuat <em>function <\/em><code>view<\/code> untuk menampilkan <em>formlogin <\/em>yang akan kita buat. Berikut adalah contohnya<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"468\" height=\"128\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-3.png\" alt=\"membuat conroller untuk view login\" class=\"wp-image-55707\" style=\"width:453px;height:auto\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-3.png 468w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-3-300x82.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-3-370x101.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-3-270x74.png 270w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Step kedua, kita membuat login <em>function <\/em>untuk memproses data dari email dan <em>password <\/em>yang pengguna inputkan nantinya. Jangan lupa menambahkan berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use Illuminate\\Support\\Facades\\Auth;\nuse Illuminate\\Support\\Facades\\Hash;\nuse App\\Models\\User;<\/code><\/pre>\n\n\n\n<p>Pada bagian atas sebelum class LoginController.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"832\" height=\"535\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4.png\" alt=\"membuat controller yang memproses autentikasi login\" class=\"wp-image-55708\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4.png 832w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4-300x193.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4-768x494.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4-370x238.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4-270x174.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4-570x367.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-4-740x476.png 740w\" sizes=\"auto, (max-width: 832px) 100vw, 832px\" \/><\/a><\/figure>\n\n\n\n<p>Step ketiga, kita membuat logout function untuk memproses saat mengakhiri session login.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"675\" height=\"140\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-5.png\" alt=\"membuat controller logout\" class=\"wp-image-55709\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-5.png 675w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-5-300x62.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-5-370x77.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-5-270x56.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-5-570x118.png 570w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4. Menjalankan Migrate data yang sudah dibuat<\/h3>\n\n\n\n<p>Untuk dapat menjalankan <em>migrate <\/em>data yang sudah dibuat sebelumnya, kita dapat menjalankan perintah berikut:<\/p>\n\n\n\n<p>Bisa menggunakan <em>php artisan migrate<\/em> jika data belum di migrate dan belum dilakukan perubahan pada file migrationnya, jika sudah termigrate dan sudah melakukan perubaha pada file migrationnya bisa menggunakan <em>php artisan migrate:fresh<\/em> <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"187\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-1024x187.png\" alt=\"migrate data\" class=\"wp-image-55710\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-1024x187.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-300x55.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-768x140.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-1536x280.png 1536w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-370x68.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-270x49.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-570x104.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6-740x135.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-6.png 1846w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5. Menambahkan Route Login serta route permission<\/h3>\n\n\n\n<p>Fungsi <em>route <\/em>di Laravel untuk mengatur URL (alamat web) ke fungsi atau <em>controller <\/em>tertentu dalam aplikasi. Di dalam file <em>routes\/web.php<\/em>, tambahkan route menampilkan <em>form <\/em>login serta mengarahkan user sesuai <em>roles<\/em>nya.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"971\" height=\"342\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11.png\" alt=\"menambahkan route website\" class=\"wp-image-55715\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11.png 971w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11-300x106.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11-768x271.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11-370x130.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11-270x95.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11-570x201.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-11-740x261.png 740w\" sizes=\"auto, (max-width: 971px) 100vw, 971px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6. Membuat middleware untuk roles<\/h3>\n\n\n\n<p>Fungsi <em>middleware <\/em>di Laravel melindungi <em>route<\/em> dan memeriksa izin pengguna. Untuk dapat membuat <em>middleware<\/em>, Anda dapat untuk menjalankan perintah berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:middleware CheckRole<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"82\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-1024x82.png\" alt=\"membuat middleware\" class=\"wp-image-55712\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-1024x82.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-300x24.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-768x61.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-370x30.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-270x22.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-570x46.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8-740x59.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-8.png 1264w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Kemudian, silahkan dapat melakukan Edit file <em>app\/Http\/Middleware\/CheckRole.php<\/em> untuk membuat <em>role <\/em>yang diinginkan seperti berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"545\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-1024x545.png\" alt=\"membuat handle middleware\" class=\"wp-image-55719\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-1024x545.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-300x160.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-768x409.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-370x197.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-270x144.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-570x303.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14-740x394.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-14.png 1037w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Jangan lupa menambahkan <em>use Illuminate\\Support\\Facades\\Auth;<\/em> diatas class CheckRole<\/p>\n\n\n\n<p>Setelah melakukan konfigurasi Rolenya silahkan dapat menambahkan middleware yang sudah dibuat pada <em>bootstrap\/app,php<\/em> Jika menggunakan laravel 11, jika menggunakan laravel 10 kebawah ditambahkan pada <em>app\/http\/kernel.php<\/em>. <\/p>\n\n\n\n<p>pada <em>bootstrap\/app.php<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"573\" height=\"121\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-12.png\" alt=\"menambahkan middleware di bootstrap\/app.php\" class=\"wp-image-55716\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-12.png 573w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-12-300x63.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-12-370x78.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-12-270x57.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-12-570x120.png 570w\" sizes=\"auto, (max-width: 573px) 100vw, 573px\" \/><\/a><\/figure>\n\n\n\n<p>Pada <em>app\/http\/kernel.php<\/em> ada pada baris <em>protected $routeMiddleware<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"522\" height=\"51\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-10-edited.png\" alt=\"menambahkan middleware di http\/kernel.php\" class=\"wp-image-55717\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-10-edited.png 522w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-10-edited-300x29.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-10-edited-370x36.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-10-edited-270x26.png 270w\" sizes=\"auto, (max-width: 522px) 100vw, 522px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7. Membuat tampilan view login, dan tampilan untuk superadmin serta penulis<\/h3>\n\n\n\n<p>Pada step ini, kita akan membuat tampilan view <em>formlogin <\/em>yang akan dipakai untuk menginputkan email dan password untuk loginnya. Kita juga akan membuat tampilan superadmin dan penulis untuk dapat melakukan pengujian terkait <em>roles permission<\/em>nya. Berikut contoh skrip yang bisa Anda gunakan:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Skrip view Login<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Login&lt;\/title&gt;\n    &lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;div class=\"container d-flex justify-content-center align-items-center vh-100\"&gt;\n        &lt;div class=\"card p-4 shadow\" style=\"width: 400px;\"&gt;\n            &lt;h3 class=\"text-center mb-4\"&gt;Login&lt;\/h3&gt;\n            &lt;form action=\"{{ route('login') }}\" method=\"POST\"&gt;\n                @csrf\n                &lt;div class=\"mb-3\"&gt;\n                    &lt;label for=\"email\" class=\"form-label\"&gt;Email&lt;\/label&gt;\n                    &lt;input type=\"email\" name=\"email\" class=\"form-control\" id=\"email\" required value=\"{{ old('email') }}\"&gt;\n                    @error('email')\n                        &lt;div class=\"text-danger\"&gt;{{ $message }}&lt;\/div&gt;\n                    @enderror\n                &lt;\/div&gt;\n                &lt;div class=\"mb-3\"&gt;\n                    &lt;label for=\"password\" class=\"form-label\"&gt;Password&lt;\/label&gt;\n                    &lt;input type=\"password\" name=\"password\" class=\"form-control\" id=\"password\" required&gt;\n                    @error('password')\n                        &lt;div class=\"text-danger\"&gt;{{ $message }}&lt;\/div&gt;\n                    @enderror\n                &lt;\/div&gt;\n                &lt;button type=\"submit\" class=\"btn btn-primary w-100\"&gt;Login&lt;\/button&gt;\n            &lt;\/form&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Skrip view superadmin<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Superadmin&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Dashboard Superadmin&lt;\/h1&gt;\n    &lt;p&gt;Selamat datang, {{ Auth::user()-&gt;name }}&lt;\/p&gt;\n    &lt;form method=\"POST\" action=\"{{ route('logout') }}\"&gt;\n        @csrf\n        &lt;button type=\"submit\"&gt;Logout&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Skrip view penulis<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Penulis&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;Dashboard Penulis&lt;\/h1&gt;\n    &lt;p&gt;Selamat datang, {{ Auth::user()-&gt;name }}&lt;\/p&gt;\n    &lt;form method=\"POST\" action=\"{{ route('logout') }}\"&gt;\n        @csrf\n        &lt;button type=\"submit\"&gt;Logout&lt;\/button&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8. Membuat seeder untuk mengirimkan data ke database<\/h3>\n\n\n\n<p>Untuk mengisi data ke dalam database dengan cepat, kita perlu membuat dahulu seeder datanya dengan menjalankan perintah berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan make:seeder UserSeeder<\/code><\/pre>\n\n\n\n<p>Isi seeder yang sudah dibuat sebelumnya pada <em>database\/seeders\/UserSeeder.php<\/em>, dengan berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"554\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-1024x554.png\" alt=\"membuat seeder untuk mengisi data di table user\" class=\"wp-image-55718\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-1024x554.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-300x162.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-768x416.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-370x200.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-270x146.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-570x308.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13-740x400.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-13.png 1218w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Setelah membuat <em>seeder<\/em>, silahkan dapat menjalankan perintah berikut untuk dapat mengirimkan data ke database.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan db:seed --class=UserSeeder<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Pengujian<\/h2>\n\n\n\n<p>Silahkan dapat menjalankan php artisan serve. untuk running website laravelnya kemudian silahkan lakukan login sesuai user yang sudah dibuat. berikut contohnya.<\/p>\n\n\n\n<p>Berikut tampilan jika berhasil melakukan login dengan role superadmin akan diarahkan ke page \/superadmin. dan ketika mencoba akses page dari penulis maka akan 403 jika skrip sesuai dan sebaliknya.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"276\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-1024x276.png\" alt=\"multi level user di laravel - belajar laravel\" class=\"wp-image-55720\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-1024x276.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-300x81.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-768x207.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-1536x415.png 1536w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-370x100.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-270x73.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-570x154.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15-740x200.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-15.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"385\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-1024x385.png\" alt=\"Page 403 jika tidak dizinkan akses\" class=\"wp-image-55721\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-1024x385.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-300x113.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-768x289.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-1536x577.png 1536w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-370x139.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-270x101.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-570x214.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16-740x278.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/image-16.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Penutup<\/h2>\n\n\n\n<p>Menerapkan sistem <em>roles <\/em>di Laravel adalah cara efektif untuk mengatur hak akses pengguna berdasarkan peran atau posisi mereka dalam aplikasi. Dengan sistem ini, Anda bisa mengelompokkan izin (<em>permission<\/em>) secara lebih logis dan terstruktur.<\/p>\n\n\n\n<p>Selain itu, penggunaan <em>roles <\/em>juga meningkatkan keamanan aplikasi karena setiap pengguna hanya bisa mengakses fitur yang sesuai dengan perannya. Hal ini sangat membantu dalam mengelola otorisasi, terutama pada aplikasi berskala besar dengan banyak jenis pengguna.<\/p>\n\n\n\n<p>Demikian artikel belajar Laravel bagian 20 tentang cara membuat roles multi level user login di Laravel. Ikuti terus sesi belajar Laravel dari Rumahweb Indonesia yang kami publikasi setiap bulan. Semoga bermanfaat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saat membuat aplikasi berbasis website, sering kali kita perlu membedakan akses antara admin, pengguna biasa, hingga mungkin moderator. Di sinilah pentingnya menerapkan sistem multi level user di website. Dengan sistem ini, setiap pengguna bisa memiliki peran (role) yang berbeda dan hanya bisa mengakses fitur sesuai haknya. Pada sesi belajar laravel bagian ke 20 ini, kita [&hellip;]<\/p>\n","protected":false},"author":357,"featured_media":55761,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[1587,796,1497],"class_list":{"0":"post-55703","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-programming","8":"tag-belajar-laravel","9":"tag-laravel","10":"tag-tutorial-laravel"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/06\/banner-belajar-laravel-bagian-20.png","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-eur","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/55703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/357"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=55703"}],"version-history":[{"count":1,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/55703\/revisions"}],"predecessor-version":[{"id":61926,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/55703\/revisions\/61926"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/55761"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=55703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=55703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=55703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}