IMG-LOGO
Home ===> Membuat Form Create, Read, Update dan Delete (CRUD) dilaravel
Pemrograman

Membuat Form Create, Read, Update dan Delete (CRUD) dilaravel

IMG

Kali ini saya akan mencoba membuat form Create, Read, Update dan Delete (CRUD) dilaravel versi 8.0, dimana sebelumnya saya telah menjelaskan dalam website ini beberapa postingan diantaranya :

 

1. Cara instal laravel 8.0 dan apa saja persiapannya.

Pada artikel ini saya menjelaskan bagaimana cara instal laravel dari awal hingga aplikasi dapat dijalankan di browser beserta dengan software-software yang dibutuhkan.

 

2. Cara mengganti template default laravel menjadi template yang kita inginkan.

Saat kita berhasil menginstal laravel maka template yang digunakan adalah template default bawaan laravel, maka dalam artikel ini saya menjelaskan bagaimana cara kita mengganti template defaultnya dan apa saja konfigurasi yang perlu dilakukan agar template yang kita inginkan dapat berjalan dengan baik.

 

3. Memecah template adminlte menjadi beberapa bagian.

Setelah kita berhasil mengganti template default bawaan laravel, tentunya kita perlu memecah template tersebut menjadi beberapa bagian agar beberapa file yang kita butuhkan tinggal kita panggil saja dan tidak memberatkan aplikasi saat digunakan nantinya. Pada artikel ini saja jelaskan secara lengkap dan rinci agar dapat diikuti.

 

4. Membuat seeder dilaravel.

Seeder adalah fasilitas yang disediakan oleh laravel untuk membuat data dummy, dimana isi data dari masing-masing fields telah kita tentukan jadi kita bisa menggunakan seeder untuk mempersingkat waktu dalam hal mengisi tabel di database, terutama untuk tabel users.

 

5. Membuat form register dilaravel.

Dipenjelasan ini, saya telah menjelaskan bagaimana membuat form register agar kita bisa memasukkan beberapa data ke dalam tabel users dan berfungsi untuk kita login ke aplikasi yang telah kita buat.

 

6. Membuat form login dilaravel.

Pada penjelasan disini, saya telah menjelaskan bagaimana membuat form login dilaravel dan kita menggunakan user yang telah kita register dilaravel untuk login atau menggunakan data yang telah kita buat menggunakan fasiltias seeder untuk login ke aplikasi.

 

Diatas adalah beberapa artikel yang telah saya posting pada website ini, dan sekarang saya akan melanjutkan postingan tentang bagaimana membuat CREATE, READ, UPDATE dan DELETE dilaravel versi 8.0

 

Untuk latihan membuatnya saya masih tetap menggunakan aplikasi yang telah saya jelaskan pada postingan-postingan sebelumnya, hal ini saya lakukan agar dapat diikuti dengan seksama dan tidak berganti-ganti aplikasi.

 

Baiklah, langsung saja kita bahas bagaimana membuat CRUD dilaravel 8.0

Membuat Form CRUD dilaravel

1. Seperti biasa, buka VS Code dan panggil aplikasi yang akan kita gunakan.

 

2. Setelah itu tuliskan perintah untuk menjalankan aplikasi php artisan serve

 

3. Buka browser dan panggil aplikasi dengan mengetikkan 127.0.0.1:8000 lalu enter

 

4. Aplikasi terbuka dan silahkan login menggunakan user yang telah kita register sebelumnya, dimana email=coba@example.com dan password=tes123 dan akan terbuka halaman dashboard aplikasi kita.

 

5. Sekarang kita perbaiki terlebih dahulu menu yang akan kita gunakan dan buang menu yang tidak kita perlukan.

 

6. Untuk memperbaiki menu tersebut buka file sidebar.blade.php yang berada di alamat resources/view/include

 

7. Ubah script dan tampilan pada file sidebar.blade.php menjadi seperti gambar dibawah ini

Berikut ini script lengkapnya :

<aside class="main-sidebar sidebar-dark-primary elevation-4">

    <!-- Brand Logo -->

    <a href="{{url('home')}}" class="brand-link">

      <img src="{{asset('AdminLTE-3.2.0/dist/img/AdminLTELogo.png')}}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8">

      <span class="brand-text font-weight-light">Belajar Laravel</span>

    </a>

    <!-- Sidebar -->

    <div class="sidebar">

      <!-- Sidebar user (optional) -->

      <div class="user-panel mt-3 pb-3 mb-3 d-flex">

        <div class="image">

          <img src="{{asset('AdminLTE-3.2.0/dist/img/user2-160x160.jpg')}}" class="img-circle elevation-2" alt="User Image">

        </div>

        <div class="info">

          <a href="#{{url('home')}}" class="d-block">Admin</a>

        </div>

      </div>

      <!-- SidebarSearch Form -->

      <div class="form-inline">

        <div class="input-group" data-widget="sidebar-search">

          <input class="form-control form-control-sidebar" type="search" placeholder="Search" aria-label="Search">

          <div class="input-group-append">

            <button class="btn btn-sidebar">

              <i class="fas fa-search fa-fw"></i>

            </button>

          </div>

        </div>

      </div>

      <!-- Sidebar Menu -->

      <nav class="mt-2">

        <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">

          <li class="nav-item">

            <a href="{{url('home')}}" class="nav-link">

              <i class="nav-icon fas fa-tachometer-alt"></i>

              <p>Dashboard</p>

            </a>

          </li>

          <li class="nav-header">Input Data</li>

          <li class="nav-item">

            <a href="{{url('barang')}}" class="nav-link">

              <i class="nav-icon far fa-calendar-alt"></i>

              <p>Barang</p>

            </a>

          </li>

          <li class="nav-header">Option</li>

          <li class="nav-item">

            <a href="{{route('actionlogout')}}" class="nav-link">

              <i class="nav-icon far fa-image"></i>

              <p>

                Logout

              </p>

            </a>

          </li>

        </ul>

      </nav>

      <!-- /.sidebar-menu -->

    </div>

    <!-- /.sidebar -->

  </aside>

 

8. Disini saya akan membuat contoh tentang data barang, jadi kita harus membuat terlebih dahulu model untuk barangnya. Buka terminal dan ketikkan perintah berikut ini php artisan make:model Barang -m

 

9. Setelah itu buka file migrationnya yang berada di alamat database/migrations dengan nama file create_barangs_table.php

 

10. Setelah itu sesuaikan struktur tabel migrasi yang ingin kita gunakan seperti gambar dibawah ini

Berikut ini script lengkapnya :

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class CreateBarangsTable extends Migration

{

    /**

     * Run the migrations.

     *

     * @return void

     */

    public function up()

    {

        Schema::create('barangs', function (Blueprint $table) {

            $table->id();

            $table->string('nama_barang');

            $table->decimal('harga_beli', 10, 2);

            $table->decimal('harga_jual', 10, 2);

            $table->integer('stok');

            $table->timestamps();

        });

    }

    /**

     * Reverse the migrations.

     *

     * @return void

     */

    public function down()

    {

        Schema::dropIfExists('barangs');

    }

}

 

11. Setelah itu, kembali ke terminal dan ketikkan perintah php artisan migrate

 

12. Sekarang kita buka browser dan cek, apakah tabel barangs telah berhasil dimigrasi ke database

 

13. Dan kita juga bisa mengecek apakah models barang telah berhasil dibuat di alamat app/models/Barang.php

 

14. Sekarang kita lanjut dengan membuat controllernya. Buka kembali terminal dan ketikkan perintah php artisan make:controller BarangController.php

 

15. Kita cek apakah controllernya berhasil dibuat dengan mengecek ke alamat app\Http\Controllers\BarangController.php

 

16. Setelah itu sesuaikan script BarangController.php seperti gambar dibawah ini

Berikut ini script lengkapnya :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Barang;

class BarangController extends Controller

{

    public function index()

    {

        $barangs = Barang::all();

        return view('barang.index', compact('barangs'));

    }

    public function create()

    {

        return view('barang.create');

    }

    public function store(Request $request)

    {

        Barang::create($request->all());

        return redirect()->route('barang.index')->with('success', 'Barang berhasil ditambahkan.');

    }

    public function edit($id)

    {

        $barang = Barang::find($id);

        return view('barang.edit', compact('barang'));

    }

    public function update(Request $request, $id)

    {

        Barang::find($id)->update($request->all());

        return redirect()->route('barang.index')->with('success', 'Barang berhasil diperbarui.');

    }

    public function destroy($id)

    {

        Barang::find($id)->delete();

        return redirect()->route('barang.index')->with('success', 'Barang berhasil dihapus.');

    }

}

 

17. Setelah itu buka file route yang berada dialamat routes/web.php dan ubah menjadi seperti gambar dibawah ini

Berikut ini script lengkapnya :

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\RegisterController;

use App\Http\Controllers\LoginController;

use App\Http\Controllers\HomeController;

use App\Http\Controllers\BarangController;

Route::get('/', [LoginController::class, 'login'])->name('login');

Route::post('actionlogin', [LoginController::class, 'actionlogin'])->name('actionlogin');

//TAMBAHKAN ROUTE UNTUK REGISTER

Route::get('register', [RegisterController::class, 'register'])->name('register');

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

Route::get('home', [HomeController::class, 'index'])->name('home')->middleware('auth');

//TAMBAHKAN ROUTE UNTUK BARANG

Route::get('/barang', [BarangController::class, 'index'])->name('barang.index');

Route::get('/barang/create', [BarangController::class, 'create'])->name('barang.create');

Route::post('/barang/store', [BarangController::class, 'store'])->name('barang.store');

Route::get('/barang/edit/{id}', [BarangController::class, 'edit'])->name('barang.edit');

Route::put('/barang/update/{id}', [BarangController::class, 'update'])->name('barang.update');

Route::delete('/barang/delete/{id}', [BarangController::class, 'destroy'])->name('barang.destroy');

Route::get('actionlogout', [LoginController::class, 'actionlogout'])->name('actionlogout')->middleware('auth');

 

18. Setelah itu, buka file views yang berada dialamat resources/views dan tambahkan folder baru dengan nama folder barang

 

19. Pada folder barang tersebut buat beberapa file baru dengan nama index.blade.php, create.blade.php dan edit.blade.php

 

20. Sekarang kita lengkapi script untuk file index.blade.php yang ada di folder barang seperti gambar dibawah ini

Berikut ini script lengkapnya :

@extends('layout.master')

@section('content')

  <!-- Content Wrapper. Contains page content -->

  <div class="content-wrapper">

    <!-- Content Header (Page header) -->

    <section class="content-header">

      <div class="container-fluid">

        <div class="row mb-2">

          <div class="col-sm-6">

            <h1>Tabel Barang</h1>

          </div>

          <div class="col-sm-6">

            <ol class="breadcrumb float-sm-right">

              <li class="breadcrumb-item"><a href="{{url('home')}}">Home</a></li>

              <li class="breadcrumb-item active">Barang</li>

            </ol>

          </div>

        </div>

      </div><!-- /.container-fluid -->

    </section>

    <!-- Main content -->

    <section class="content">

      <div class="container-fluid">

        <div class="row">

          <div class="col-12">

            <div class="card">

              <div class="card-header">

              <a href="{{route('barang.create')}}" class="btn btn-success float-right">Input Barang</a>

              </div>

              <!-- /.card-header -->

              <div class="card-body">

@if ($message = Session::get('success'))

                <div class="card-header">

                  <div class="alert alert-primary alert-dismissible" role="alert">Berhasil... <br/>{{ $message }}

                  </div>

                </div>

              @endif

                <table id="example1" class="table table-bordered table-striped">

                  <thead>

                  <tr>

                    <th>Nama Barang</th>

                    <th>Harga Beli</th>

                    <th>Harga Jual</th>

                    <th>Stok</th>

                    <th>Aksi</th>

                  </tr>

                  </thead>

                  <tbody>

                  @foreach($barangs as $barang)

                  <tr>

                    <td>{{ $barang->nama_barang }}</td>

                    <td>{{ $barang->harga_beli }}</td>

                    <td>{{ $barang->harga_jual }}</td>

                    <td>{{ $barang->stok }}</td>

                    <td>

                    <a href="{{ route('barang.edit', $barang->id) }}" class="btn btn-sm btn-warning">Edit</a>

                    <form action="{{ route('barang.destroy', $barang->id) }}" method="POST" style="display:inline">

                        @csrf

                        @method('DELETE')

                        <button type="submit" class="btn btn-sm btn-danger">Hapus</button>

                    </form>

                    </td>

                  </tr>

                  @endforeach

                  </tbody>

                </table>

              </div>

              <!-- /.card-body -->

            </div>

            <!-- /.card -->

          </div>

          <!-- /.col -->

        </div>

        <!-- /.row -->

      </div>

      <!-- /.container-fluid -->

    </section>

    <!-- /.content -->

  </div>

  <!-- /.content-wrapper -->

@endsection

 

21. Sekarang lengkapi file create.blade.php yang ada di folder barang seperti gambar dibawah ini

Berikut ini script lengkapnya :

@extends('layout.master')

@section('content')

  <!-- Content Wrapper. Contains page content -->

  <div class="content-wrapper">

    <!-- Content Header (Page header) -->

    <section class="content-header">

      <div class="container-fluid">

        <div class="row mb-2">

          <div class="col-sm-6">

            <h1>Form Barang</h1>

          </div>

          <div class="col-sm-6">

            <ol class="breadcrumb float-sm-right">

              <li class="breadcrumb-item"><a href="{{url('home')}}">Home</a></li>

              <li class="breadcrumb-item active">Barang</li>

            </ol>

          </div>

        </div>

      </div><!-- /.container-fluid -->

    </section>

    <!-- Main content -->

    <section class="content">

      <div class="container-fluid">

        <div class="row">

          <!-- left column -->

          <div class="col-md-12">

            <!-- jquery validation -->

            <div class="card card-primary">

              <div class="card-header">

                <h3 class="card-title">Input Data <small>Barang</small></h3>

              </div>

              <!-- /.card-header -->

              <!-- form start -->

                <form id="quickForm" action="{{route('barang.store')}}" method="POST" enctype="multipart/form-data">

                @csrf

                @if ($errors->any())

                @foreach ($errors->all() as $error)

                <div class="alert alert-danger alert-dismissible" role="alert">Error... <br/>{{ $error }}

                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>

                </div>

                @endforeach

                @endif

                <div class="card-body">

                  <div class="form-group">

                    <label for="nama_barang">Nama Barang</label>

                    <input type="text" class="form-control" id="nama_barang" name="nama_barang" placeholder="Nama Barang">

                  </div>

                  <div class="form-group">

                    <label for="harga_beli">Harga Beli</label>

                    <input type="text" name="harga_beli" class="form-control" id="harga_beli" placeholder="Harga Beli">

                  </div>

                  <div class="form-group">

                    <label for="harga_jual">Harga Jual</label>

                    <input type="text" name="harga_jual" class="form-control" id="harga_jual" placeholder="Harga Jual">

                  </div>

                  <div class="form-group">

                    <label for="stok">Stok</label>

                    <input type="text" name="stok" class="form-control" id="stok" placeholder="Stok">

                  </div>

                </div>

                <!-- /.card-body -->

                <div class="card-footer">

                  <button type="submit" class="btn btn-primary">Simpan</button>

                </div>

              </form>

            </div>

            <!-- /.card -->

            </div>

          <!--/.col (left) -->

          <!-- right column -->

          <div class="col-md-6">

          </div>

          <!--/.col (right) -->

        </div>

        <!-- /.row -->

      </div><!-- /.container-fluid -->

    </section>

    <!-- /.content -->

  </div>

  <!-- /.content-wrapper -->

@endsection

 

22. Sekarang lengkapi file edit.blade.php yang ada di folder barang seperti gambar dibawah ini

Berikut ini script lengkapnya :

@extends('layout.master')

@section('content')

  <!-- Content Wrapper. Contains page content -->

  <div class="content-wrapper">

    <!-- Content Header (Page header) -->

    <section class="content-header">

      <div class="container-fluid">

        <div class="row mb-2">

          <div class="col-sm-6">

            <h1>Form Edit Barang</h1>

          </div>

          <div class="col-sm-6">

            <ol class="breadcrumb float-sm-right">

              <li class="breadcrumb-item"><a href="{{url('home')}}">Home</a></li>

              <li class="breadcrumb-item active">Barang</li>

            </ol>

          </div>

        </div>

      </div><!-- /.container-fluid -->

    </section>

    <!-- Main content -->

    <section class="content">

      <div class="container-fluid">

        <div class="row">

          <!-- left column -->

          <div class="col-md-12">

            <!-- jquery validation -->

            <div class="card card-primary">

              <div class="card-header">

                <h3 class="card-title">Edit Data <small>Barang</small></h3>

              </div>

              <!-- /.card-header -->

              <!-- form start -->

                <form id="quickForm" action="{{route('barang.update', $barang->id)}}" method="POST" enctype="multipart/form-data">

                @csrf

                @if ($errors->any())

                @foreach ($errors->all() as $error)

                <div class="alert alert-danger alert-dismissible" role="alert">Error... <br/>{{ $error }}

                </div>

                @endforeach

                @endif

                <div class="card-body">

                  <div class="form-group">

                    <label for="nama_barang">Nama Barang</label>

                    <input type="text" class="form-control" id="nama_barang" name="nama_barang" placeholder="Nama Barang" value="{{ $barang->nama_barang }}">

                  </div>

                  <div class="form-group">

                    <label for="harga_beli">Harga Beli</label>

                    <input type="text" name="harga_beli" class="form-control" id="harga_beli" placeholder="Harga Beli" value="{{ $barang->harga_beli }}">

                  </div>

                  <div class="form-group">

                    <label for="harga_jual">Harga Jual</label>

                    <input type="text" name="harga_jual" class="form-control" id="harga_jual" placeholder="Harga Jual" value="{{ $barang->harga_jual }}">

                  </div>

                  <div class="form-group">

                    <label for="stok">Stok</label>

                    <input type="text" name="stok" class="form-control" id="stok" placeholder="Stok" value="{{ $barang->stok }}">

                  </div>

                </div>

                <!-- /.card-body -->

                <div class="card-footer">

                  <button type="submit" class="btn btn-primary">Edit</button>

                </div>

              </form>

            </div>

            <!-- /.card -->

            </div>

          <!--/.col (left) -->

          <!-- right column -->

          <div class="col-md-6">

          </div>

          <!--/.col (right) -->

        </div>

        <!-- /.row -->

      </div><!-- /.container-fluid -->

    </section>

    <!-- /.content -->

  </div>

  <!-- /.content-wrapper -->

@endsection

 

23. Sampai disini kita telah berhasil membuat sebuah form untuk view, create, edit, update dan delete data. Semoga artikel ini dapat membantu menambah referensi teman-teman. Terimakasih

 

Tampilan formnya adalah sebagai berikut ini

 

 

 

 

 

Tinggalkan Pesan Anda

email dan website anda tidak akan dipublikasi. Terimakasih




0 komentar