Belajar Laravel 8 #10 : Sistem Register pada Laravel

register-pada-laravel

Pada artikel kali ini, kita akan membahas Sistem Register pada Laravel. Sistem Register ini merupakan bagian dari Fitur yang sangat sering kita jumpai yaitu Login-Register. Nah, di artikel ini kita akan terfokus untuk Register terlebih dahulu.

Laravel sendiri memiliki beberapa cara yang bisa digunakan untuk Sistem Register pada Laravel ini, tapi yang akan kita gunakan kali ini Authentication.

Pembuatan Sistem Register pada Laravel

Disini kita akan mempraktekkan langkah-langkah yang akan kita gunakan untuk Sistem Register pada Laravel. Mulai dari instalasi menuju ke Pembuatan Database sampai membuat sistem pendaftaran itu sendiri.

Install Laravel

Proses instalasi ini bisa kalian lihat di artikel Belajar Laravel #2 : Cara Instalasi Laravel, atau bisa kalian lihat seperti dibawah ini. Pertama, buka terminal lalu jalankan syntax dibawah ini

composer create-project laravel/laravel login-register

Kita namai Projek Laravel kali ini dengan login-register, sesuai dengan tujuan kita di artikel ini yaitu membuat Sistem Login dan Register pada Laravel. Sekarang tinggal jalankan Laravel dan juga Web Server kita.

Mempersiapkan Database

Setelah selesai instalasi dan menjalankan Laravel, yang harus kita lakukan berikutnya adalah mengatur Database yang akan kita gunakan. Kalau teman-teman ingin membaca lebih detail tentang Database ini bisa kalian lihat di Artikel Belajar Laravel 8 #6 : Database Migrations.

Nah, kalau di artikel ini kita akan membuat Database untuk Logind an Register saja. Pertama, buat Database di phpmyadmin terlebih dahulu. Silahkan beri nama login-register

Belajar Laravel 8 #10 : Sistem Register pada Laravel Dunia Coding

Setelah selesai membuat Database. Kita akan terfokus untuk edit migrations kita.

Setting Migrations

Tidak seperti metode CRUD yang kita harus membuat sebuah Model, Controller, dan Migrations baru. Untuk Sistem Login Register pada Laravel ini kita cukup menggunakan migrations default yang sudah ada yaitu migrations user.

Pertama, buka file create_users_table.php. Pastikan ada fungsi up() yang berisi seperti ini.

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

Nah, difungsi diatas kita sudah membuat isi dari tabel users. Nah tabel users ini lah yang akan terisi apabila ada seseorang yang register di Proyek Laravel kita. Sementara kita buat sangat sederhana dulu saja, berisi name, email, dan password.

Belajar Laravel 8 #10 : Sistem Register pada Laravel Dunia Coding

Membuat Controller Register

Setelah selesai dengan urusan Database. Sekarang kita akan membuat Controller untuk Register terlebih dahulu. Isi File Register dengan syntax ini

RegisterController.php

<?php

namespace App\Http\Controllers;

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

class RegisterController extends Controller
{
    public function index()
    {
        return view('register');
    }

    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required|max:255',
            'email' => 'required|unique:users',
            'password' => 'required',
        ]);

        $validatedData['password'] = Hash::make($validatedData['password']);

        User::create($validatedData);
        return redirect('/login')->with('success', 'Registration Succesfull! Please Login');
    }
}

Penjelasan, Di RegisterController ini memiliki dua fungsi yang berbeda, pertama fungsi index(). Fungsi ini berguna untuk menampilkan Tampilan Formulir dari Ssitem Register kita.

Kedua adalah Fungsi store(Request $request). Fungsi ini berguna untuk mengirimkan Data yang kita inputkan ke Database, dan apabila sudah selesai kita akan diarahkan ke /login. Nah karena kita belum membuat Route /login, maka nanti Outputnya akan Not Found, tapi itu bukan masalah. Selain itu teman-teman bisa melihat kita menggunakan Hash::make. Nah itu digunakan untuk membuat Password kita menjadi Ter-encrypt.

Mengatur Route pada web.php

Nah, di File web.php ini kita harus membuat syntax yang diarahkan ke RegisterController kita, syntax yang pertama adalah apabila kita mengakses Register, dan yang kedua apabila kita mengirimkan data dari Register.

web.php

Route::get('/register', [RegisterController::class, 'index']);
Route::post('/register', [RegisterController::class, 'store']);

Membuat views

Nah, setelah selesai mengatur Route dan Controller nya, sekarang kita tinggal mengatur Tampilan dari Fitur Register kita. Tampilannya akan kita buat sederhana. Cukup berisi inputan yang kita butuhkan yaitu nama, email, dan password.

Aku menggunakan template dari Bootstrap disini yang bisa kalian pakai juga.

<!doctype html>
<html lang="en">

<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

    <title>Register</title>
</head>

<body>
    <div class="row justify-content-center" style="margin-top: 150px">
        <div class="col-lg-6">
            <main class="form-registration">
                <h1 class="h3 mb-3 fw-normal text-center">Registration Form</h1>
                <form action="/register" method="POST">
                    @csrf
                    <div class="form-floating">
                        <input type="text" class="form-control rounded-top" name="name" id="name" required
                            value="{{ old('name') }}" placeholder="Name">
                        <label for="name">Name</label>
                    </div>
                    <div class="form-floating">
                        <input type="email" class="form-control " name="email" id="email" required
                            value="{{ old('email') }}" placeholder="name@example.com">
                        <label for="email">Email address</label>
                    </div>
                    <div class="form-floating">
                        <input type="password" class="form-control rounded-bottom" name="password" id="password" required
                            placeholder="Password">
                        <label for="password">Password</label>
                    </div>

                    <button class="w-100 btn btn-lg btn-danger mt-3" type="submit">Register</button>
                </form>
                <small class="d-block mt-3">Have an account? <a class="text-danger" href="/login"> Login
                        Here</a></small>
            </main>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous">
    </script>
</body>

</html>

Pada syntax diatas kita membuat sebuah Form yang memiliki action="/register". Jadi nanti kita akan mengirimkan Data kita. Data yang kita kirimkan adalah name, email, dan password.

Tampilan dari Sistem Register pada Laravel kita akan terlihat seperti ini. Tinggal kita praktekkan saja.

Belajar Laravel 8 #10 : Sistem Register pada Laravel Dunia Coding

Nah, tinggal di isi sesuai dengan keinginan kita. Lalu tinggal kita lihat hasilnya di Database kita. Misal kita output kan, nanti akan mendapat hasil seperti ini di Database kita.

Belajar Laravel 8 #10 : Sistem Register pada Laravel Dunia Coding

Kesimpulan

Nah disini kita sudah menyelesaikan sistem Register pada Laravel. Besok kita akan melanjutkan sistem berikutnya untuk Login dan Logout di Laravel.

Share

You may also like...

1 Response

  1. 15/02/2022

    […] Belajar Laravel 8 #10 : Sistem Register pada Laravel […]

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *