WEB Sederhana
WEB Sederhana
Install Laravel - Untuk menginstall laravel pastikan composer & PHP sudah terinstall.
Kemudian ubah file .env yang ada di root project dan sesuaikan pengaturan database
menjadi seperti dibawah ini :
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=crud_laravel
DB_USERNAME=root
DB_PASSWORD=
Terakhir jalankan perintah php artisan migrate untuk melakukan migrasi database.
Sampai tahap ini proses instalasi laravel & database sudah selesai.
Untuk mencobanya silahkan jalankah perintah php artisan serve untuk menjalankan
laravel di localhost. Buka localhost/adminlte
Integrasi AdminLTE
Selanjutnya kita harus menginstall laravel UI, ini dibutuhkan karena package
menggunakan laravel UI untuk sistem authentikasinya. Jalankan perintah :
Konfigurasi Menu
Selanjutnya kita install plugins sweetalert2. Plugin ini digunakan untuk menampilkan
notifikasi.
'plugins' => [
Route::resource('users', \App\Http\Controllers\UserController::class)
->middleware('auth');
Menampilkan User
kode diatas untuk mengambil semua data user, kemudian mengirimnya ke view
users.index , pada laravel view users.index akan diarahkan ke file
resources/views/users/index.blade.php
Selanjutnya kita harus membuat view users.index. Buat file index.blade.php di direktori
resources/views/users/. (buat folder users di views terlebih dahulu) Isi dengan kode
dibawah ini :
@extends('adminlte::page')
@section('title', 'List User')
@section('content_header')
<h1 class="m-0 text-dark">List User</h1>
@stop
@section('content')
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<a href="{{route('users.create')}}" class="btn btn-primary mb-2">
Tambah
</a>
<table class="table table-hover table-bordered table-stripped"
id="example2">
<thead>
<tr>
<th>Nomor</th>
<th>Name</th>
<th>Email</th>
<th>Opsi</th>
</tr>
</thead>
<tbody>
@foreach($users as $key => $user)
<tr>
<td>{{$key+1}}</td>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
<td>
<a href="{{route('users.edit', $user)}}" class="btn btn-primary btn-
xs">
Edit
</a>
<a href="{{route('users.destroy', $user)}}"
onclick="notificationBeforeDelete(event, this)" class="btn btn-danger btn-xs">
Delete
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@stop
@push('js')
<form action="" id="delete-form" method="post">
@method('delete')
@csrf
</form>
<script>
$('#example2').DataTable({
"responsive": true,
});
function notificationBeforeDelete(event, el) {
event.preventDefault();
if (confirm('Apakah anda yakin akan menghapus data ? ')) {
$("#delete-form").attr('action', $(el).attr('href'));
$("#delete-form").submit();
}
}
</script>
@endpush
Menambah User
Selanjutnya adalah membuat fungsi untuk menambah user. Ubah method create() &
store () masih pada file app/Http/Controllers/UserController.php intinya tambahkan
koding berikut dibawah koding terakhir UserController :
Method store() adalah method untuk menyimpan data yang diinput dari form. Oleh
karena itu, pada method store() ini kita melakukan validasi input dari form, kemudian
menyimpannya.
@extends('adminlte::page')
@section('title', 'Tambah User')
@section('content_header')
<h1 class="m-0 text-dark">Tambah User</h1>
@stop
@section('content')
<form action="{{route('users.store')}}" method="post">
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control @error('name') is-invalid
@enderror" id="exampleInputName" placeholder="Nama lengkap"
name="name" value="{{old('name')}}">
@error('name') <span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email address</label>
<input type="email" class="form-control @error('email') is-invalid
@enderror" id="exampleInputEmail" placeholder="Masukkan Email"
name="email" value="{{old('email')}}">
@error('email') <span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="exampleInputPassword">Password</label>
<input type="password" class="form-control @error('password') is-
invalid @enderror" id="exampleInputPassword" placeholder="Password"
name="password">
@error('password') <span
class="text-danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputPassword">Konfirmasi
Password</label>
<input type="password" class="form-control"
id="exampleInputPassword" placeholder="Konfirmasi Password"
name="password_confirmation">
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-primary">Simpan</button>
<a href="{{route('users.index')}}" class="btn btn-default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop
Mengubah User
Method edit() dan update() mirip dengan fungsi create() dan store(). Method edit untuk
menampilkan form edit, sedangkan method update untuk menyimpan hasil
perubahan.
Buat juga view users.edit (file resources/views/users/edit.blade.php) dengan isi dibawah ini :
@extends('adminlte::page')
@section('title', 'Edit User')
@section('content_header')
<h1 class="m-0 text-dark">Edit User</h1>
@stop
@section('content')
<form action="{{route('users.update', $user)}}" method="post">
@method('PUT')
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control @error('name') is-invalid
@enderror" id="exampleInputName" placeholder="Nama lengkap"
name="name" value="{{$user->name ?? old('name')}}">
@error('name') <span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email address</label>
<input type="email" class="form-control @error('email') is-invalid
@enderror" id="exampleInputEmail" placeholder="Masukkan Email"
name="email" value="{{$user->email ?? old('email')}}">
@error('email') <span class="text-danger">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label for="exampleInputPassword">Password</label>
<input type="password" class="form-control @error('password')
is-invalid @enderror" id="exampleInputPassword" placeholder="Password"
name="password">
@error('password') <span
class="text-danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputPassword">Konfirmasi
Password</label>
<input type="password" class="form-control"
id="exampleInputPassword" placeholder="Konfirmasi Password"
name="password_confirmation">
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-primary">Simpan</button>
<a href="{{route('users.index')}}" class="btn btn-default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop
Menghapus User
Bagian terakhir dari CRUD, yaitu menghapus user. Silahkan tambahkan koding masih
pada file app/Http/Controllers/UserController.php.