Membuat Web Menggunakan Laravel 11 - BAB 3 Menampilkan Data Dari Database
Membuat Web Menggunakan Laravel 11 - BAB 3 Menampilkan Data Dari Database
Cara buka di terminal untuk windows 11 silahkan klik kanan > open in
terminal :
Untuk windows 10 kebawah bisa klik direktori lalu isi dengan
cmd
Tekan Enter, maka project folder akan terbuka di Visual Studio Code .
Seperti gambar dibawah ini:
LANGKAH 2 – MEMBUAT CONTROLLER BARANG
Pertama, kita akan membuat controller terlebih dahulu. Dan untuk teman-
teman semuanya, jika membuat controller pastikan menggunakan kata
tunggal atau singular ya. Karena Best Practice dalam pembuatan controller
menggunakan kata tunggal/singular.
REFERENSI : https://santrikoding.com/laravel-best-practices
<?php
namespace App\Http\Controllers;
use App\Models\Barang;
use Illuminate\Http\Request;
PENJELASAN :
Dari perubahan kode di atas, pertama kita isi method dengan nama index.
Di dalam method index, pertama kita get data barangs dari database
melalui model Barang.
$barangs = Barang::latest()->paginate(5);
Dan kita juga mengirimkan data barangs tersebut ke dalam view melalui
method bawaan dari PHP, yaitu compact.
LANGKAH 3 – MENAMBAHKAN ROUTE RESOURCE
Sekarang kita akan lanjutkan menambahkan sebuah route di Laravel 11.
Disini kita akan menggunakan route dengan type resource, yang artinya
route tersebut akan berisi beberapa route-route untuk kebutuhan CRUD.
Seperti index, create, store, show, edit, update dan destroy. Ini akan
menghemat waktu kita dibandingkan membuatnya secara manual satu
persatu.
<?php
use App\Http\Controllers\BarangController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::resource('/barang', BarangController::class);
Di atas, kita membuat sebuah route baru dengan path /barang dan kita
arahkan ke dalam class BarangController. Untuk route yang kita buat
adalah jenis resource, artinya Laravel akan secara otomatis
menghasilkan route-route untuk berbagai operasi CRUD, seperti:
Salah satu fitur utama NPM adalah file package.json yang digunakan
untuk menentukan dependensi dan metadata proyek. Fungsi ini
mempermudah manajemen versi dan distribusi kode.
Silahkan install npm dengan menginstall node js yang materinya ada di link
:
https://drive.google.com/file/d/14xPW6uDRa0QtEATqvsBWyqVmoHBZJ3U
z/view?usp=sharing atau di https://s.id/xiirpl
Jika sudah terinstall kita buka terminal dan cek dulu sudah terinstall npm
dengan mengetik :
npm -v
Jika sudah terinstall maka akan keluar versi npm sehingga kita bisa
menggunakan npm untuk menginstall bootstrap.
Untuk menginstall bootstrap di project Laravel, teman-teman bisa
menjalankan perintah berikut ini di dalam terminal/CMD :
npm i -D bootstrap @popperjs/core sass
Lalu kita tambahkan folder baru bernama sass di folder resources dan
buat file baru bernama app.scss
1
2
Lalu simpan.
Lanjutkan dengan membuka file app/Providers/AppServiceProvider.php
Paginator::useBootstrapFive();
use Illuminate\Pagination\Paginator;
Isi keseluruhan kurang lebih seperti ini :
@yield('skrip')
</body>
</html>
@extends('layout.master')
@section('konten')
<div class="row">
<div class="col-md-12">
<div class="card border-0 shadow rounded">
<div class="card-body">
<a href="{{ route('barang.create') }}" class="btn btn-md btn-
success mb-3">TAMBAH BARANG</a>
@if(session('success'))
<div class="alert alert-success alert-dismissible fade
show" role="alert">
<button type="button" class="btn-close" data-bs-
dismiss="alert" aria-label="Close"></button>
<strong>Berhasil!!</strong> {{ session('success') }}
</div>
@elseif(session('error'))
@endif
Keluruhan index.blade.php :
PENJELASAN :
Dari penambahan kode di atas, kita melakukan perulangan untuk
menampilkan data yang dikirimkan melalui controller. Dan untuk
perulangan, kita menggunakan direktif @forelse, dimana jika data ada
maka akan dilakukan looping dan jika data tidak tersedia, maka akan
menampilkan pesan/message.
//menampilkan data
@empty
@endforelse
Dan untuk menampilkan pagination, kita bisa menggunakan kode berikut
ini :
{{ $barangs->links()
Kemudian untuk menampilkan alert setelah kita berhasil menambahkan
data, disini kita menggunakan alert yang dismissable dari bootstrap, untuk
menampilkannya kurang lebih seperti berikut ini :
@if(session('success'))
<div class="alert alert-success alert-dismissible fade show"
role="alert">
<button type="button" class="btn-close" data-bs-
dismiss="alert" aria-
label="Close"></button>
<strong>Berhasil!!</strong> {{ session('success') }}
</div>
@elseif(session('error'))
<div class="alert alert-danger alert-dismissible fade show"
role="alert">
<button type="button" class="btn-close" data-bs-
dismiss="alert" aria-
label="Close"></button>
<strong>GAGAL!!</strong> {{ session('error') }}
</div>
@endif
Alert ini bisa kita lihat saat kita berhasil atau gagal melakukan input data,
update data dan hapus data.
Dan untuk menampilkan image dari post, di atas kita menggunaka kode
seperti berikut ini :
Lalu buat terminal baru untuk jalankan Bootstrap nya dengan kode
npm run dev
Jangan lupa nyalakan service apache dan mysql nya.
Terima Kasih