X

Wednesday, March 30, 2022

Cara Mudah Membuat CRUD di Laravel

Halo sobat programmer, kali ini kita akan membahas hal dasar Laravel yaitu tentang bagaimana cara membuat CRUD di Laravel. CRUD merupakan singkatan dari Create Read Update Delete, yang merupakan aksi-aksi yang diperlukan dalam mengelola database. Pada contoh kali ini kita akan mencoba melakukan CRUD tabel user, dimana tabel ini biasanya terbentuk otomatis setelah melakukan migration.

Berikut langkah-langkah dalam membuat CRUD di Laravel :

1. Buat project baru dengan nama "coba"

2. Buat database dengan nama "coba"

3. Jalankan perintah php artisan migrate, akan muncul tabel user di database

4. Buat Controller dengan nama UserController, ketikkan perintah php artisan make:controller UserController


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
public function index()
{
$data = User::get();
return view('user', ['data'=>$data]);
}
public function form()
{
$data = new User;
return view('form', ['data'=>$data, 'url'=>route('simpan')]);
}
public function hapus($id)
{
User::where('id', '=', $id)->delete();
return redirect()->route('user');

}
public function simpan(Request $request)
{
$validated = $request->validate([
'name' => 'required|unique:users',
'email' => 'required|unique:users',
'password' => 'required'
]);
// $input = $request->except(['_token']);

$form['name'] = $request->name;
$form['email'] = $request->email;
$form['password'] = bcrypt($request->password);

User::insert($form);
return redirect()->route('user');
}
public function simpan_edit($id, Request $request)
{
$validated = $request->validate([
'name' => 'required|unique:users,name,'.$id,
'email' => 'required|unique:users,email,'.$id,
'password' => 'required'
]);

$form['name'] = $request->name;
$form['email'] = $request->email;
$form['password'] = bcrypt($request->password);

User::where('id', '=', $request->id)->update($form);
return redirect()->route('user');
}
public function edit($id)
{
$data = User::where('id', '=', $id)->first();
return view('form', ['data'=>$data, 'url'=>url('simpan_edit')."/".$id]);

}
}
5. Buat view di resources/views/ dengan nama user.blade.php.

<!DOCTYPE html>
<html>
<head>
<title>Tabel User</title>
</head>
<body>
<a href="{{route('tambah')}}">Tambah</a>
<br>
<br>
<table border="1" style="padding: 2px;">
<thead>
<tr>
<td>Nama</td>
<td>Email</td>
<td>Password</td>
<td>Aksi</td>
</tr>
</thead>
<tbody>
@foreach($data as $item)
<tr>
<td> {{$item->name}} </td>
<td> {{$item->email}} </td>
<td> {{$item->password}} </td>
<td> <button><a href="{{url('hapus')}}/{{$item->id}}">Hapus</a></button>
<button><a href="{{url('edit')}}/{{$item->id}}">Edit</a></button></td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>
6. Buat view di resources/views/ dengan nama form.blade.php.

<!DOCTYPE html>
<html>
<head>
<title>Tambah/Edit Data</title>
</head>
<body>

<form action="{{$url}}" method="post">
@csrf
<label>Nama</label>
<br>
<input type="text" name="name" value="{{$data->name}}">
<input type="text" name="id" value="{{$data->id}}" style="display: none;">
<br>
@error('name')
<div>{{ $message }}</div>
@enderror
<br>
<label>Email</label>
<br>
<input type="text" name="email" value="{{$data->email}}">
<br>
@error('email')
<div>{{ $message }}</div>
@enderror
<br>
<label>Password</label>
<br>
<input type="password" name="password">
<br>
@error('password')
<div>{{ $message }}</div>
@enderror
<br>
<button>Simpan</button>
<br>
<br>
</form>
</body>
</html>
7. Tambahkan route di Routes/web.php seperti berikut :
	
<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', 'App\Http\Controllers\UserController@index')->name('user');
Route::get('/tambah', 'App\Http\Controllers\UserController@form')->name('tambah');
Route::get('/hapus/{id}', 'App\Http\Controllers\UserController@hapus')->name('hapus');
Route::get('/edit/{id}', 'App\Http\Controllers\UserController@edit')->name('edit');
Route::post('/simpan', 'App\Http\Controllers\UserController@simpan')->name('simpan');
Route::post('/simpan_edit/{id}', 'App\Http\Controllers\UserController@simpan_edit')->name('simpan_edit');
8. Jalankan aplikasi, kemudian tes semua fitur mulai dari tambah data, hapus, dan edit data.

Thursday, March 24, 2022

Laravel Cara Menggunakan Passport Sebagai Authentikasi Token API

Secara default laravel menggunakan sanctum untuk membuat Authentikasi Token API. Namun pengguna dapat menggunakan package lain untuk membuat Authentikasi Token API salah satunya yaitu Passport.

Berikut cara pemasangan Passport pada Laravel :

1. Buka atau Buat project baru Laravel beserta databasenya (tabel biarkan kosong). 


2. Sebelumnya untuk mempermudah dalam pengetesan nantinya silahkan pasang Bootstrap Auth
 

3. Setelah terpasang lanjut untuk memasang package passport dengan menggunakan perintah "composer require laravel/passport" pada terminal.
 

4. Lakukan migration dengan perintah php artisan migrate kemudian install passport php artisan passport:install
 

5. Buka app\Models\User.php, cari kode use Laravel\Sanctum\HasApiTokens; ganti menjadi use Laravel\Passport\HasApiTokens;
 

6. Buka app\Providers\AuthServiceProvider.php kemudian tambahkan code use Laravel\Passport\Passport; di atas class AuthServiceProvider extends ServiceProvider.
 

7. Buka config\auth.php cari kode :


'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    ],

Ubah menjadi

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],

8. Jalankan perintah "php artisan passport:install --uuids".

9. Buka routes\api.php tambahkan kode Route::post('/login', 'App\Http\Controllers\Auth\LoginController@login')->name('login');.

10. Buka app\Http\Controllers\Auth\LoginController.php. Isi sesuai dengan code di bawah :

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

use Illuminate\Http\Request;

use App\Models\User;

class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/

use AuthenticatesUsers;

/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;

/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function login(Request $request)
{
$input = $request->all();

$this->validate($request, [
'email' => 'required',
// 'username' => 'required',
'password' => 'required',
]);

$fieldType = filter_var($request->email, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';

$arrayauthuser = [
$fieldType => $input['email'],
'password' => $input['password']
];



if(auth()->attempt($arrayauthuser))
{


$token = auth()->user()->createToken('isi_sesuai_keinginan')->accessToken;


return response()->json([
'token' => $token
], 200);



}else{
return response()->json([
"response" => [
"status" => 201,
"message" => "Failed"
],
"data" => null
], 201);
}
}
}

11. Sampai pada tahap pengetesan. Caranya buat akun baru melalui menu registrasi seperti pada gambar, jika tidak ada silahkan pasang Bootstrap Auth terlebih dahulu.


12. Buka Aplikasi Postman kemudian buat request seperti di bawah :



Url, email, password sesuaikan dengan web anda. Jika akun berhasil ditemukan akan muncul token seperti gambar di bawah :
 



 

Token inilah yang akan digunakan untuk Authentikasi apabila client API ingin melakukan request.


Laravel 8 Membuat Login Dengan Bootstrap Auth

Proses login merupakan bagian yang sangat utama dalam pembuatan website. Untuk membuat proses login pada laravel kita bisa menggunakan Boostrap Auth. Tinggal pasang sekali anda sudah bisa menggunakan fitur login, register, logout, forget password, profile, dan reset password.

Berikut tutorial membuat Login dengan Boostrap Auth.

1. Buat project baru dengan nama "login" (sesuaikan dengan keinginan anda).
2. Buka terminal atau cmd kemudian arahkan ke folder root project.
3. Ketikkan perintah "composer require laravel/ui", pastikan telah menginstall composer
4. Setelah ui terpasang sekarang ketikkan perintah "php artisan ui bootstrap --auth", kemudian tunggu hingga proses instalasi selesai.
5. Selanjutnya buat database dengan nama "login" (sesuaikan dengan keinginan).
6. Kembali ke terminal ketikkan perintah "php artisan migrate", perintah ini kan menjalankan migrate di folder database project. Dimana migration defaultnya akan membuat tabel user dan beberapa tabel lainnya.
7. Cek database apakah sudah terdapat tabel seperti pada gambar.



8. Jalankan web di browser. Jika anda belum menggunakan cara Menjalankan Project Laravel Menggunakan XAMPP, Laragon, atau WAMP tanpa port silahkan gunakan perintah "php artisan serve".
9. Berikut tampilan web setelah di pasang Boostrap auth

Tampilan Awal


 

Halaman Login



Halaman Dashboard


 

Halaman Register


10. Pasang css dan javascript bootstrap untuk mengaktifkan class yang telah terpasanga pada "resources/views/layouts/app.blade.php" tambahkan code berikut di atas tag "</head>":



	
<!-- boostrap -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<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>

11. Buka kembali web di browser dan tampilan akan berubah, contohnya seperti tampilan login akan menjadi seperti pada gambar di bawah :



Sunday, March 20, 2022

Menjalankan Project Laravel Menggunakan XAMPP, Laragon, atau WAMP

Jika biasanya untuk menjalankan project laravel kita menggunakan perintah "php artisan serve" pada terminal maka kali ini saya akan berbagi bagaimana cara menjalankan Project Laravel Menggunakan XAMPP, Laragon, atau WAMP.

Maksudnya kita akan menjalankan project sama halnya seperti ketika anda membangun aplikasi web native dimana website di tempatkan di folder root xampp, laragon, atau wamp.

Untuk caranya bisa anda simak di bawah ini :

1. Buat project baru seperti biasa dengan perintah "laravel new web", web = nama project. Hanya saja ketika membuat projectnya tempatkan di folder root, contoh htdocs untuk XAMPP atau www untuk Laragon.

2. Pastikan project sudah terpasang dengan sempurna dan bisa berjalan caranya. Untuk memastikannya bisa menggunakan perintah "php artisan serve", ini hanya untuk mengecek saja.

3. Setelah dipastikan project sudah aman, silahkan stop "php artisan serve" dengan cara CTRL-C untuk windows.

4. Buka folder utama project kemudian buat file dengan nama ".htaccess"

5. Isi .htaccess yang sudah di buat dengan kode di bawah :
	


<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php

</IfModule>


6. Jalankan project dengan menggunakan url "localhost/nama_web", pastikan XAMPP atau Laragon anda sudah berjalan.

Dengan menggunakan cara ini anda juga tidak perlu lagi menambahkan port ketika menjalankan project. Selain itu anda tidak harus bolak-balik mengecek terminal.

Wednesday, March 2, 2022

Membuat Controller Dengan Laravel

Sama halnya seperti Codeigniter, Laravel juga menerapkan sistem MVC (Model View Controller). Hal dasar yang perlu di pelajari untuk menggunakan Laravel adalah cara membuat controller.

Ada 2 cara yang bisa digunakan dalam membuat controller di laravel, pertama menggunakan terminal atau command line (di windows CMD), kedua dengan membuat langsung file controller secara manual.

Menggunakan Terminal, Commandline, atau CMD

Buka terminal atau cmd anda kemudian rahkan ke folder root project laravel yang sudah di buat. Ketikkan perintah php artisan make:controller DaftarController. "DaftarController" merupakan nama controller yang akan di buat.

Tunggu hingga pembuatan controller selesai kemudian buka app/Http/Controllers. Nanti akan muncul controller yang sudah di buat.

Membuat file langsung

Masuk ke app/Http/Controllers kemudian buat file baru dengan nama controller yang akan di buat misalnya DaftarController.php kemudian buka filenya dan isikan kode berikut :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;


class DaftarController extends Controller
{

}

Perbedaan membuat controller menggunakan cmd dan manual, pada manual anda harus menuliskan code dasar controller secara manual sedangkan ketika menggunakan cmd code dasar tersebut langsung tergenerate.