Blog Post Image

CRUD Pada Framework Laravel 8

Laravel merupakan salah satu Framework Dari PHP yang diciptakan oleh Taylor Otwell untuk memberikan alternatif Framework lain dari PHP. Laravel dan Code Igniter merupakan Framework yang cukup banyak digunakan di industri teknologi informasi.Laravel diperkenalkan pertama kali pada 9 Juni 2011.

Berikut Tutorial Membuat CRUD (Create, Retrive, Update dan Delete) Pada Framework Laravel

Membuat Project Laravel

Silahkan kalian download composer pada artikel di web ini mengenai composer . Jika sudah maka kita dapat membuat sebuah project Laravel dengan menjalankan perintah berikut pada CMD

composer create-project laravel/laravel laracrud

Membuat Koneksi Database

Setelah Membuat Project Laravel maka kita akan membuat koneksi MySQL di Project Laravel yang dibuat pada file .env

Seperti pada gambar berikut karena disini saya menggunakan Xampp yaitu Apache untuk web servernya maka DB_USERNAME nya yaitu root dan DB_PASSOWRD nya Kosong

 

Membuat Migration Pada Database Dalam Laravel

Laravel Menyediakan Fitur Migration untuk pengguna nya dalam membuat database pada direktori database/migration telah disediakan database defaulth. Jika belum ada atau ingin membuat ulang, Anda bisa menghapus file tersebut dan membuat migration baru dengan contoh perintah berikut. Misalkan kita akan membuat tabel mahasiswa maka kita ketikan perintah pada terminal di Visual Studio Code kita atau text editor lainnya.

php artisan make:migration create_mahasiswa_table

Lalu Isikan sesuai filed pada migration

<?php

use IlluminateDatabaseMigrationsMigration;

use IlluminateDatabaseSchemaBlueprint;

use IlluminateSupportFacadesSchema;

 

class CreateMahasiswaTable extends Migration

{

    /**

     * Run the migrations.

     *

     * @return void

     */

    public function up()

    {

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

            $table->increments('nim');

            $table->string('nama_mahasiswa');

            $table->integer('semester');

            $table->text('alamat');

            $table->date('tgl_lahir');

            $table->timestamps();

        });

 

        DB::table('mahasiswa')->insert([

            'nama_mahasiswa' => 'Andriansyah',

            'semester' => 2,

            'alamat' => 'Perum BMA',

            'tgl_lahir' => '1995-08-03',

        ]);

    }

 

    /**

     * Reverse the migrations.

     *

     * @return void

     */

    public function down()

    {

        Schema::dropIfExists('mahasiswa');

    }

}

?>

 

 

 

 

 

 

 

Perintah Insert digunakan untuk memasukan data secara langsung ketika selesai membuat tabel mahasiswa.

Lalu jalankan perintah migrate dengan memasukan perintah berikut pada terminal

php artisan migrate

Setelah berhasil menjalankan perintah migrate, maka di database akan ada tabel mahasiswa dengan satu buah data

Membuat Model (Eloquent)

Pada Laravel kita dapat membuat sebuah model untuk dapat koneksi dengan basis data. Contohnya kita membuat model mahasiswa berikut. Jika sudah file nya ada pada app/model/Mahasiswa.php yang isinya adalah

<?php

 

namespace AppModels;

 

use IlluminateDatabaseEloquentFactoriesHasFactory;

use IlluminateDatabaseEloquentModel;

 

class Mahasiswa extends Model

{

    use HasFactory;

 

    protected $table = 'mahasiswa';

    protected $primaryKey = 'nim';

 

    protected $fillable = [

        'nama_mahasiswa',

        'semester',

        'alamat',

        'tgl_lahir',

    ];

 

}

 

Properti $table untuk mengatur nama tabel di database, jika nama tabel mahasiswa tidak usah mengubah properti ini.

Properti $primarykey untuk mengatur PRIMARY KEY di tabel mahasiswa.

Properti $fillable untuk mengatur field apa saja yang bisa diinput/ubah ketika melakukan crud di tabel mahasiswa.

 

Membuat Controller

Diperlukan sebuah Controller untuk mengatur logic dari suatu program, pada laravel membuat controller menggunakan artisan

disini akan dibuatkan controller Mahasiswa yang sekaligus dapat mengatur sebuah model Mahasiswa dengan perintah

php artisan make:controller MahasiswaController --resource --model=Mahasiswa

Setelah dibuat akan disimpan di app/controllers/MahasiswaController.php Isi File nya sebagai berikut.

<?php

 

namespace AppHttpControllers;

 

use AppModelsMahasiswa;

use IlluminateHttpRequest;

use IlluminateSupportFacadesHash;

 

class MahasiswaController extends Controller

{

    /**

     * Display a listing of the resource.

     *

     * @return IlluminateHttpResponse

     */

    public function index(Request $request)

    {

        $data['title'] = 'Data Mahasiswa';

        $data['q'] = $request->q;

        $data['rows'] = Mahasiswa::where('nama_mahasiswa', 'like', '%' . $request->q . '%')->get();

        return view('mahasiswa.index', $data);

    }

 

    /**

     * Show the form for creating a new resource.

     *

     * @return IlluminateHttpResponse

     */

    public function create()

    {

        $data['title'] = 'Tambah Mahasiswa';

        return view('mahasiswa.create', $data);

    }

 

    /**

     * Store a newly created resource in storage.

     *

     * @param  IlluminateHttpRequest  $request

     * @return IlluminateHttpResponse

     */

    public function store(Request $request)

    {

        $request->validate([

            'nama_mahasiswa' => 'required',

            'semester' => 'required',

            'alamat' => 'required',

            'tgl_lahir' => 'required',

        ]);

 

        $mahasiswa = new Mahasiswa();

        $mahasiswa->nama_mahasiswa = $request->nama_mahasiswa;

        $mahasiswa->semester = $request->semester;

        $mahasiswa->alamat = $request->alamat;

        $mahasiswa->tgl_lahir = $request->tgl_lahir;

        $mahasiswa->save();

        return redirect('mahasiswa')->with('success', 'Tambah Data Berhasil');

    }

 

    /**

     * Display the specified resource.

     *

     * @param  AppModelsMahasiswa  $mahasiswa

     * @return IlluminateHttpResponse

     */

    public function show(Mahasiswa $mahasiswa)

    {

        //

    }

 

    /**

     * Show the form for editing the specified resource.

     *

     * @param  AppModelsMahasiswa  $mahasiswa

     * @return IlluminateHttpResponse

     */

    public function edit(Mahasiswa $mahasiswa)

    {

        $data['title'] = 'Ubah Mahasiswa';

        $data['row'] = $mahasiswa;

        return view('mahasiswa.edit', $data);

    }

 

    /**

     * Update the specified resource in storage.

     *

     * @param  IlluminateHttpRequest  $request

     * @param  AppModelsMahasiswa  $mahasiswa

     * @return IlluminateHttpResponse

     */

    public function update(Request $request, Mahasiswa $mahasiswa)

    {

        $request->validate([

            'nama_mahasiswa' => 'required',

            'semester' => 'required',

            'alamat' => 'required',

            'tgl_lahir' => 'required',

        ]);

 

        $mahasiswa->nama_mahasiswa = $request->nama_mahasiswa;

        $mahasiswa->semester = $request->semester;

        $mahasiswa->alamat = $request->alamat;

        $mahasiswa->tgl_lahir = $request->tgl_lahir;

        

        $mahasiswa->save();

        return redirect('mahasiswa')->with('success', 'Ubah Data Berhasil');

    }

 

    /**

     * Remove the specified resource from storage.

     *

     * @param  AppModelsMahasiswa  $mahasiswa

     * @return IlluminateHttpResponse

     */

    public function destroy(Mahasiswa $mahasiswa)

    {

        $mahasiswa->delete();

        return redirect('mahasiswa')->with('success', 'Hapus Data Berhasil');

    }

}

 

?>

 

Menambahkan Route Mahasiswa

Tambahkan sebuah route untuk menjalankan controller yang akan ditampilkan pada url pada routes/web.php

Membuat View

View Template

Membuat view untuk template di direktori resource/views/app.blade.php

View Untuk Tampilan Data

Membuat view untuk menampilkan data mahasiswa pada direktori resource/views/mahasiswa/index.blade.php

@extends('app')

@section('content')

@if(session('success'))

<p class="alert alert-success">{{ session('success') }}</p>

@endif

<div class="card card-default">

    <div class="card-header">

        <form class="form-inline">

            <div class="form-group mr-1">

                <input class="form-control" type="text" name="q" value="{{ $q}}" placeholder="Pencarian..." />

            </div>

            <div class="form-group mr-1">

                <button class="btn btn-success">Cari</button>

            </div>

            <div class="form-group mr-1">

                <a class="btn btn-primary" href="{{ route('mahasiswa.create') }}">Tambah Mahasiswa</a>

            </div>

        </form>

    </div>

    <div class="card-body p-0 table-responsive">

        <table class="table table-bordered table-striped table-hover mb-0">

            <thead>

                <tr>

                    <th>No</th>

                    <th>Nama</th>

                    <th>Semester</th>

                    <th>Alamat</th>

                    <th>Tanggal Lahir</th>

                    <th>Aksi</th>

                </tr>

            </thead>

            <?php $no = 1 ?>

            @foreach($rows as $row)

            <tr>

                <td>{{ $no++ }}</td>

                <td>{{ $row->nama_mahasiswa }}</td>

                <td>{{ $row->semester }}</td>

                <td>{{ $row->alamat }}</td>

                <td>{{ $row->tgl_lahir }}</td>

                <td>

                    <a class="btn btn-sm btn-warning" href="{{ route('mahasiswa.edit', $row) }}">Ubah</a>

                    <form method="POST" action="{{ route('mahasiswa.destroy', $row) }}" style="display: inline-block;">

                        @csrf

                        @method('DELETE')

                        <button class="btn btn-sm btn-danger" onclick="return confirm('Hapus Data?')">Hapus</button>

                    </form>

                </td>

            </tr>

            @endforeach

        </table>

    </div>

</div>

@endsection

 

View Tambah Data

Membuat View Tambah Data terletak pada file resource/views/user/create.blade.php

Menjalankan Project

Untuk menjalankan project dapat menggunakan perintah

View Edit Data

Membuat View Tambah Data terletak pada file resource/views/user/edit.blade.php

php artisan serve

Ketikkan alamat sesuai server diikuti dengan /mahasiswa di browser (http://localhost:8000/mahasiswa/). Hasilnya seperti berikut.

Ketika Klik Tambah Mahasiswa maka akan muncul tampilan

Ketika Klik Ubah maka akan muncul tampilan

Ketika Klik Hapus maka dia akan menampilkan Popup

Selesai

Berikut adalah Tutorial CRUD menggunakan Framework Laravel dari mulai membuat project sampai selesai

Semoga Bermanfaat

Salam