• Tutorial Flutter
  • Tutorial Laravel
  • Tutorial CodeIgniter
  • Tutorial Pemrograman Lainnya
Indonesia :09 August 2025
Tutorial dan Dokumentasi Coding
  • Kelas Pemrograman
  • Jasa Web dan Aplikasi
  • Download Source Code
  • Kelas Pemrograman
  • Jasa Web dan Aplikasi
  • Download Source Code

Tentang Kami

Ayongoding.com adalah Media Pembelajaran Pemrograman Web & Mobile serta Media Dokumentasi Coding dengan Fokus pada Flutter, Laravel dan CodeIgniter. Tersedia juga Tutorial Lainnya Seputar Pemrograman.

Membuat Register User Laravel
Laravel

Membuat Register User Laravel

Arie S05 April 202240 Comments10239.5k

Tutorial Sebelumnya:

Tutorial Laravel #10: Membuat Login pada Laravel

Tutorial ini adalah lanjutan dari tutorial sebelumnya Membuat Login pada Laravel. Pada tutorial kali ini kita akan Membuat Register User pada Laravel. Disini kita akan menambahkan fitur validasi melalui link yang dikirim ke email pada saat Register user di Laravel.

Pada kasus ini kita menggunakan email google (Gmail) sebagai mail servernya, dengan begitu artinya gmail kita yang bertugas untuk mengirimkan URL validasi ke email user yang melakukan registrasi.

Di bawah ini ada dua metode register yang akan kita pelajari. Pertama Register User Laravel tanpa verifikasi email, dan kedua Register User Laravel dengan Verifikasi Melalui Email.

Membuat Register User Laravel tanpa Kirim Email

1. Membuat Tabel

Pada kasus ini kita menggunakan tabel users.

Field apa saja dan tipe data nya lihat pada gambar di bawah ini:

Register user
Register user – Tabel User

2. Membuat Model

Jangan lupa susuaikan lagi isi dari user model Anda.

Model User berada pada direktori app/Models/User.php

Isi dari Model User.php sebagai berikut:

<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
    use HasFactory, Notifiable;

    protected $table = 'users';
    protected $primaryKey = 'id_user';

    protected $fillable = ['username','password','role','email','verify_key','active'];
}

3. Membuat Route

Selanjutnya adalah membuat route.

Buka file web.php yang berada pada direktori routes/web.php

Tambahkan route seperti di bawah ini:

<?php

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

//REGISTER
Route::get('register', [RegisterController::class, 'register'])->name('register');
Route::post('register/action', [RegisterController::class, 'actionregister'])->name('actionregister');

4. Membuat Controller

Membuat controller baru dengan nama RegisterController.

Isi dari file RegisterController.php adalah sebagai berikut:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use Session;

class RegisterController extends Controller
{
    public function register()
    {
        return view('register');
    }
    
    public function actionregister(Request $request)
    {
        $user = User::create([
            'email' => $request->email,
            'username' => $request->username,
            'password' => Hash::make($request->password),
            'role' => $request->role,
            'active' => 1
        ]);

        Session::flash('message', 'Register Berhasil. Akun Anda sudah Aktif silahkan Login menggunakan username dan password.');
        return redirect('register');
    }
}

5. Membuat View

Selanjutnya kita akan membuat tampilan form register.

Silahkan buat file view baru dengan nama register.blade.php pada direktori resources/views/register.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Register User</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css">
</head>
<body>
    <div class="container"><br>
        <div class="col-md-6 col-md-offset-3">
            <h2 class="text-center">FORM REGISTER USER</h3>
            <hr>
            @if(session('message'))
            <div class="alert alert-success">
                {{session('message')}}
            </div>
            @endif
            <form action="{{route('actionregister')}}" method="post">
            @csrf
                <div class="form-group">
                    <label><i class="fa fa-envelope"></i> Email</label>
                    <input type="email" name="email" class="form-control" placeholder="Email" required="">
                </div>
                <div class="form-group">
                    <label><i class="fa fa-user"></i> Username</label>
                    <input type="text" name="username" class="form-control" placeholder="Username" required="">
                </div>
                <div class="form-group">
                    <label><i class="fa fa-key"></i> Password</label>
                    <input type="password" name="password" class="form-control" placeholder="Password" required="">
                </div>
                <div class="form-group">
                    <label><i class="fa fa-address-book"></i> Role</label>
                    <input type="text" name="role" class="form-control" value="Guest" readonly>
                </div>
                <button type="submit" class="btn btn-primary btn-block"><i class="fa fa-user"></i> Register</button>
                <hr>
                <p class="text-center">Sudah punya akun silahkan <a href="#">Login Disini!</a></p>
            </form>
        </div>
    </div>
</body>
</html>

Berikut tampilan form register user yang kita buat dari code di atas:

Form Register Laravel
Tampilan Form Register User Laravel

6. Selesai

Anda telah berhasil membuat register user dengan status user 1 (Aktif). Artinya User dapat langsung login tanpa terlebih dahulu melakukan verifikasi akun melalui email.

Register User dengan Verifikasi Email

Cara Membuat Register User pada Laravel dengan Verifikasi melalui Email, sebagai berikut:

1. Mengaktifkan Google Security App password

Pastikan untuk mengaktifkan pengaturan Google Security pada akun Gmail Anda. Caranya, login terlebih dahulu ke akun google lalu masuk ke halaman Google Account, lalu klik Security.

Scroll ke bawah sampai Anda menemukan bagian App password seperti gambar di bawah ini:

Google App Password
Google App Password

Silahkan Anda klik App password. Selanjutnya di bagian Select app pilih Other (Custom name).

Select App Name
Select App Name

Selanjutnya akan muncul isian nama aplikasi, isi dengan nama Laravel. Lalu klik Generate.

Generate App Password
Generate App Password

Anda akan mendapatkan 16 karakter password.

App Password for Your Device
App Password for Your Device

Password tersebut yang akan kita gunakan untuk configurasi MAIL_PASSWORD pada file .env project laravel Anda.

2. Configurasi file .env pada project laravel Anda

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=ari210393@gmail.com # diisi dengan email google anda yg akan dijadikan mail server
MAIL_PASSWORD='mkapiuqignjzcyoz' # diisi dengan App Password yang sudah di generate
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=ari210393@gmail.com # diisi dengan email google anda yg akan dijadikan mail server
MAIL_FROM_NAME="${APP_NAME}"

2. Tabel dan Model

Untuk tabel dan model kita masih menggunakan Tabel Users dan Model User di atas.

3. Membuat Mail Class Laravel

Untuk membuat Mail Class jalankan perintah berikut:

php artisan make:mail MailSend

Maka file dengan nama MailSend.php akan dibuat pada direktori app/mail/MailSend.php

Isi dari MailSend.php seperti di bawah ini:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class MailSend extends Mailable
{
    use Queueable, SerializesModels;

    public $details;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($details)
    {
        $this->details = $details;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Verifikasi Akun')
                    ->view('mailTemplate');
    }
}

Perhatikan code di atas, pada bagian ->view('mailTemplate'); adalah sebuah view yang akan menjadi tampilan email kita nanti saat dibuka oleh pengguna yang melakukan registrasi. Artinya pada view ini akan kita buat tombol verikasi yang akan di klik oleh pengguna untuk melakukan aktivasi akun.

Sekarang buat file view baru dengan nama mailTemplate.blade.php pada direktori resources/views/mailTemplate.blade.php

Isi dari mailTemplate.blade.php seperti di bawah ini:

<!DOCTYPE html>
<html>
<head>
    <title>Verifikasi Akun</title>
</head>
<body>
    <p>Halo <b>{{$details['username']}}</b>!</p>
    <p>Berikut ini adalah Data Anda:</p>
    <table>
      <tr>
        <td>Username</td>
        <td>:</td>
        <td>{{$details['username']}}</td>
      </tr>
      <tr>
        <td>Role</td>
        <td>:</td>
        <td>{{$details['role']}}</td>
      </tr>
      <tr>
        <td>Website</td>
        <td>:</td>
        <td>{{$details['website']}}</td>
      </tr>
      <tr>
        <td>Tanggal Register</td>
        <td>:</td>
        <td>{{$details['datetime']}}</td>
      </tr>
    </table>

    <center>
      <h3>Copy link di bawah ini ke browser Anda untuk Verifikasi Akun:</h3>
      <b style="color:blue">{{$details['url']}}</b>
    </center>

  <p>Terima kasih telah melakukan registrasi.</p>
</body>
</html>

4. Membuat Route

Tambahkan route berikut:

Route::get('register/verify/{verify_key}', [RegisterController::class, 'verify'])->name('verify');

Sehingga Full code dari route menjadi:

<?php

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

//REGISTER
Route::get('register', [RegisterController::class, 'register'])->name('register');
Route::post('register/action', [RegisterController::class, 'actionregister'])->name('actionregister');
Route::get('register/verify/{verify_key}', [RegisterController::class, 'verify'])->name('verify');

5. Membuat Controller

Kita masih menggunakan RegisterController.php yang sudah dibuat di atas.

Ada beberapa tambahkan code pada RegisterController.php antara lain:

Penambahan di bagian use

use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use App\Mail\MailSend;

Penambahan pada function actionregister()

$details = [
            'username' => $request->username,
            'role' => $request->role,
            'website' => 'www.ayongoding.com',
            'datetime' => date('Y-m-d H:i:s'),
            'url' => request()->getHttpHost().'/register/verify/'.$str
        ];

Mail::to($request->email)->send(new MailSend($details));

Session::flash('message', 'Link verifikasi telah dikrim ke Email Anda. Silahkan Cek Email Anda untuk Mengaktifkan Akun');

Penambahan function baru dengan nama function verify

public function verify($verify_key)
{
        $keyCheck = User::select('verify_key')
                    ->where('verify_key', $verify_key)
                    ->exists();
        
        if ($keyCheck) {
            $user = User::where('verify_key', $verify_key)
            ->update([
                'active' => 1
            ]);
            
            return "Verifikasi Berhasil. Akun Anda sudah aktif.";
        }else{
            return "Key tidak valid!";
        }
}

Sehingga full code dari RegisterController.php menjadi seperti di bawah ini:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use Session;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use App\Mail\MailSend;

class RegisterController extends Controller
{
    public function register()
    {
        return view('register');
    }
    
    public function actionregister(Request $request)
    {
        $str = Str::random(100);

        $user = User::create([
            'email' => $request->email,
            'username' => $request->username,
            'password' => Hash::make($request->password),
            'role' => $request->role,
            'verify_key' => $str
        ]);

        $details = [
            'username' => $request->username,
            'role' => $request->role,
            'website' => 'www.ayongoding.com',
            'datetime' => date('Y-m-d H:i:s'),
            'url' => request()->getHttpHost().'/register/verify/'.$str
        ];

        Mail::to($request->email)->send(new MailSend($details));

        Session::flash('message', 'Link verifikasi telah dikrim ke Email Anda. Silahkan Cek Email Anda untuk Mengaktifkan Akun');
        return redirect('register');
    }
    
    public function verify($verify_key)
    {
        $keyCheck = User::select('verify_key')
                    ->where('verify_key', $verify_key)
                    ->exists();
        
        if ($keyCheck) {
            $user = User::where('verify_key', $verify_key)
            ->update([
                'active' => 1
            ]);
            
            return "Verifikasi Berhasil. Akun Anda sudah aktif.";
        }else{
            return "Key tidak valid!";
        }
    }
}

6. Membuat view

Ini adalah view untuk menampilkan form registrasi user. Kita masih menggunakan view register.blade.php di atas.

7. Testing

Jalankan laravel Anda. Isi data dan email yang benar. Klik Register.

Register User Laravel
Register User Laravel

Muncul pesan Link verifikasi telah dikirim ke email Anda.

Register User Laravel Berhasil
Register User Laravel Berhasil

Buka email Anda lalu cek email verifikasi dari laravel. Seperti di bawah ini:

Email Verifikasi
Email Verifikasi

Silahkan copy Link. Jalankan link tersebut pada browser.

Verifikasi Berhasil
Verifikasi Berhasil

Berhasil. Akun Anda sudah diaktifkan melalui link verifikasi.

Kita telah berhasil Membuat Register User di Laravel. Sekian dulu tutorial cara membuat register user pada Laravel dengan mengirim link validasi melalui email. Semoga bermanfaat untuk Anda.

Pada tutorial selanjutnya kita akan membuat Insert Data ke Database di Laravel menggunakan dua cara. Pertama dengan cara insert data dari form seperti biasa, kedua dengan cara insert data menggunakan ajax.

Tutorial Selanjutnya:

Tutorial Laravel #12: Insert atau Add Data pada Laravel
Tutorial Laravel #13: Insert atau Add Data pada Laravel (Menggunakan Ajax)

  • Belajar Laravel
  • Framework Laravel
  • Konfirmasi Email User dengan Laravel
  • Laravel
  • Laravel Register User Example
  • Membuat Konfirmasi Email dengan Laravel
  • Membuat Login dan Register Laravel
  • Membuat Register User Laravel
  • Membuat Verifikasi Email dengan Laravel
  • Mengirim Email Verifikasi dengan Laravel
  • Mengirimkan Link Validasi User Lewat Email Laravel
  • Register Laravel
  • Register User Laravel
  • Register User Laravel dengan Verifikasi Email
  • Tutorial Laravel
  • Verifikasi Email Laravel
  • Verifikasi Email User Menggunakan Laravel
  • Verifikasi Register User Laravel Melalui Email
Bagikan Tutorial
Tutorial REST API #8: Membuat REST Client dengan Laravel Tutorial Sebelumnya
Remote Server dengan Visual Studio Code Tutorial Selanjutnya
Arie S

Web Programmer. Flutter Developer. Content Creator. Founder Ayongoding.com. Penyuka minuman sachet. Menulis pakai tangan kanan. Masih main mobilan remot. Dan pernah kuliah Sistem Informasi sampai lulus.

Baca Tutorial Laravel Lanjutan:

Laravel

Import Excel File ke MySQL Database Menggunakan Laravel Excel

Arie S01 December 2023
Laravel

Protect API dengan Middleware Laravel

Arie S21 October 2023
Laravel

Compress Image saat Upload Laravel

Arie S15 August 2023
Laravel

Push Notification Laravel menggunakan Firebase

Arie S04 August 2023
Laravel

Kirim Pesan Laravel menggunakan Vonage API

Arie S12 July 2023
Laravel

Kirim Pesan Laravel menggunakan Zenziva SMS Gateway

Arie S04 July 2023

40 Komentar

  1. yanza 17 December 2021 at 14:57 Log in to Reply

    trimakasih tutor create register nya

  2. Stevhanie Puspita Sari 30 December 2021 at 11:24 Log in to Reply

    mantap mas ini artikel Registernya

  3. Atif Fahrian 30 December 2021 at 23:39 Log in to Reply

    ini tutorialnya lanjutan yg login ya?

    1. Arie S Post author17 September 2022 at 08:37 Log in to Reply

      iya kak

  4. Muhammad Reza Mulzi Nur 08 February 2022 at 07:45 Log in to Reply

    terimaksih kak, artikel registernya sangat membantu

  5. Muhammad Hanif 11 March 2022 at 10:44 Log in to Reply

    siang gan, untuk penjelasan pada artikel ini sangat jelas

  6. Hadi Love Nola 23 March 2022 at 00:48 Log in to Reply

    Bagus dan berguna

  7. vieck 29 March 2022 at 15:27 Log in to Reply

    isi artikelnya gampang dipahami

  8. superalfan 30 March 2022 at 02:17 Log in to Reply

    lancar..tutorial berguna

  9. Menolak Sadar Jr. 05 April 2022 at 09:30 Log in to Reply

    berhasil kak, sangat membantu 🙏

  10. kanzul 10 April 2022 at 11:05 Log in to Reply

    sukses.. Bang terimaksih artikel nya

  11. pelajar 13 April 2022 at 14:40 Log in to Reply

    okee kakak

  12. Kevin Kantona Pasaribu 18 April 2022 at 10:31 Log in to Reply

    nice.
    btw artikel untuk buat register user mantab bang

  13. Kevin Kantona Pasaribu 18 April 2022 at 10:32 Log in to Reply

    nice bang,btw artike untuk membuat login user mana bang?

    1. Arie S Post author17 September 2022 at 09:13 Log in to Reply

      terimkasih bang..
      untuk artikel membuat login laravel silahkan kunjungi link berukut bang: Membuat Login pada Laravel

  14. Adhimukti 26 April 2022 at 08:36 Log in to Reply

    mantap.. codenya simpeell

  15. Felix 04 May 2022 at 23:39 Log in to Reply

    selamat malam.. ini di saya masih error Target class [RegisterController] does not exist
    kenapa ya?

    1. Arie S Post author17 September 2022 at 09:17 Log in to Reply

      itu karna cache laravel nya kak..
      coba jalankan perintah ini: php artisan optimize

  16. David 10 May 2022 at 15:31 Log in to Reply

    Mohon maaf untuk bagian ini sepertinya ada penjelasan yg hilang

    1. Arie S Post author17 September 2022 at 09:18 Log in to Reply

      terimakasih masukkannya bang..
      artikelnya sudah saya perbarui

  17. risman 09 June 2022 at 20:35 Log in to Reply

    mantap.. scriptnya ringkas

  18. Paijo 21 June 2022 at 03:08 Log in to Reply

    terimakasih yaa

  19. Awan Ardy 05 July 2022 at 02:54 Log in to Reply

    di bagian syntax use Session ada kurang titik koma nya kak

    1. Arie S Post author17 September 2022 at 09:30 Log in to Reply

      wah mantap kak.
      terimaksih koreksi nya kak.

  20. Rohmat 26 July 2022 at 19:49 Log in to Reply

    Kak bagusnya di bagian setting google account sertakan sama gambarnya?

    1. Arie S Post author17 September 2022 at 09:33 Log in to Reply

      termakasih masukannya kak.
      baik kak.. gambar nya sudah di update

  21. Gusti Hergika 27 July 2022 at 07:43 Log in to Reply

    Maaf bang, itu gambar sama source kodenya ga muncul. saya kagi belajar nanggung banget. mohon di perbaiki karena postingan ini sangat membatu saya untuk belajar.

    1. Arie S Post author17 September 2022 at 09:34 Log in to Reply

      Terimakasih masukkannya kak.
      artikelnya sudah saya update kak.
      semoga membantu yaa..

  22. Agus 27 July 2022 at 13:42 Log in to Reply

    gambar sama kodenya semua jelas

  23. alif 05 August 2022 at 08:24 Log in to Reply

    kode nya tidak muncul kang

    1. Arie S Post author17 September 2022 at 09:36 Log in to Reply

      tidak muncul di bagian mana kang?

  24. udin 26 August 2022 at 08:50 Log in to Reply

    terimakasih sudah ngasih tutor yg jls

  25. rom 29 August 2022 at 20:29 Log in to Reply

    sukses

  26. lala 23 September 2022 at 02:45 Log in to Reply

    permisi kang, masih muncul pesan error
    Target class [RegisterController] does not exist.

    pdhal udan mengikuti saran di komentar sebelumnya, tapi masih error juga

  27. Gungwah 01 October 2022 at 18:11 Log in to Reply

    Terima kasih, sudah membantu kak hehe

  28. kuma 24 October 2022 at 16:26 Log in to Reply

    untuk db tabel user itu diubah apa di tambahkan?, soalnya ada eror

  29. hanna 21 February 2023 at 10:41 Log in to Reply

    Mau tanya mas, saya sudah daftar user di register tapi sewaktu login kok halaman login nge blink aja ya gak masuk ke halaman home. itu kenapa ya. padahal gak ada pesan error

  30. ari 02 November 2023 at 01:23 Log in to Reply

    kenapa saat saya klik tombol register tidak ada yang terjadi?

  31. Thoriq 06 December 2023 at 06:20 Log in to Reply

    error di bagian verify key nya
    saya sebelum dapet error sy sudah mengira kalo value untuk verify key nya tidak ada.
    tolong bang utk diperbarui.

  32. adin 14 July 2024 at 12:56 Log in to Reply

    mantap..

Leave a Reply Cancel reply

You must be logged in to post a comment.

Kategori Tutorial

  • Artikel
  • CodeIgniter
  • Download Source Code
  • Flutter
  • Laravel
  • Pemrograman Lainnya


header ayongoding 2025

PT AYO NGODING KREATIF
Jl. Khatib Sulaiman, Perumahan Palano 5
Blok A No. 6, Kota Payakumbuh
26227
Sumatera Barat, Indonesia

Kontak Layanan
+62 853 6411 6655
ayongodingofficial@gmail.com

Popular Posts

  • Membuat Register User Laravel
    Laravel

    Membuat Register User Laravel

    05 April 2022
  • Membuat Login dan Register Laravel
    Laravel

    Membuat Login dan Register pada Laravel

    02 May 2021
  • Form wizard bootstrap
    Pemrograman Lainnya

    Membuat Form Wizard Bootstrap

    16 February 2020

Information Links

About


Kelas Pemrograman


Contact


Jasa Web dan Aplikasi


Privacy Policy


Download Source Code


Terms and Conditions


Copyright © 2019-2025 PT AYO NGODING KREATIF - All Rights Reserved.
  • About
  • Contact
  • Privacy Policy
  • Terms and Conditions