Cara Membuat CRUD (Create, Read, Update, Delete) pada Framework PHP Laravel

Cara Membuat CRUD (Create, Read, Update, Delete) pada Framework PHP Laravel - Sambil ditemani alunan musik nan indah, saya kali ini akan menulis tentang Cara Membuat CRUD (Create, Read, Update, Delete) pada framework PHP Laravel. Dalam membuat suatu aplikasi pastinya dimulai dengan memasukkan data(insert), mengubah data(update), menghapus data(delete) dan menampilkan data. Hali itu merupakan hal yang wajib untuk setiap programmer baik berbasis website, desktop atau android sekalipun agar bisa membuatnya.

Seperti sobat tahu Framework Laravel ini merupakan framework php yang sedang naik daun saat ini setidaknya saat penulis memposting postingan ini. Untuk yang baru pertama kali mempelajari framework ini memang ada kesan yang agak merepotkan tapi lama-kelamaan pasti akan terbiasa. Selain itu framework ini sudah banyak fitur yang sudah disediakan sehingga kita hanya mengedit saja. Dari segi keamanan, framework ini juga terbilang paling aman. Mungkin oleh karena itu juga banyak yang memilih framework ini dan menjadikan framework ini menjadi framework yang paling populer.

Cara Membuat CRUD (Create, Read, Update, Delete) pada Framework PHP Laravel


Langsung saja kita menuju tentang cara membuat CRUD pada Laravel. Dalam contoh pada postingan ini penulis menggunakan laravel 5. Jadi jika Anda menggunakan laravel yang dibawahnya atau diatasnya pasti hanya ada perbedaan sedikit. Atau jika Anda ingin menyamakan versi dengan penulis maka sudah saya sediakan masternya bisa download disini atau jika ingin yang sudah terinstal html download disini, seharusnya tinggal pakai saja.

Tampilan tabel dan isinya adalah sebagai berikut :


Atau Anda bisa lihat di postingan saya sebelumnya Cara Membuat Database Migration untuk Menambahkan Tabel pada Framework Laravel dan Cara Memasukkan data ke Database Atau Database Seeder pada Framework Laravel PHP.

Tampilan hasilnya kurang lebih akan jadi seperti ini form berisi label, text, combobox, button, table, menggunakan bootstrap.

1. Pertama tentunya membuat sebuah model dengan cara masuk command prompt dan pindahkan direktori ke folder latihan pada "xampp\htdocs\latihan" dan ketikkan perintah
php artisan make:model Siswa
 Jika Anda belum mengetahui perintah-perintah command prompt apa saja yang sering digunakan pada framework laravel anda bisa lihat disini.

2. Jika berhasil, buka model Siswa yang ada pada "latihan/app/Siswa.php" dan ketikkan seperti dibawah
Siswa.php"
 
<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Siswa extends Model {

    protected $table = 'siswa';

    protected $fillable = ['nama', 'jenkel', 'alamat', 'telp'];

}

3. Setelah itu buat controller dengan perintah pada command prompt seperti dibawah.
php artisan make:controller SiswaController
Jika berhasil buka filenya pada "app/Http/controllers/SiswaContoller.php" dan ketikkan script berikut

 
<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Input;
use Redirect;
use App\Siswa;

use Illuminate\Http\Request;

class SiswaController extends Controller {

    public function __construct()
    {
        $this->middleware('auth');
    }

    protected $rules = [
        'nama' => ['required', 'min:3'],
        'jenkel' => ['required'],
        'alamat' => ['required'],
        'telp' => ['required'],
    ];

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */

    public function index()
    {
        $siswa = Siswa::all();

        return view('siswa.index', compact('siswa'));

    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */

    public function create()
    {
        return view('siswa.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @return Response
     */

    public function store(Request $request)
    {
        $this->validate($request, $this->rules);
        $input = Input::all();
        Siswa::create( $input );

        return Redirect::route('siswa.index');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return Response
     */

    public function show($id)
    {
        $siswa = Siswa::find($id);
        return view('siswa.show', compact('siswa'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return Response
     */

    public function edit($id)
    {
        $siswa = Siswa::find($id);
        return view('siswa.edit', compact('siswa'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  int  $id
     * @return Response
     */

    public function update($id)
    {
        $siswa = Siswa::find($id);
        $input = array_except(Input::all(), '_method');
        $siswa->update($input);

        return Redirect::route('siswa.index');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return Response
     */

    public function destroy($id)
    {
        $siswa = Siswa::find($id);
        $siswa->delete();

        return Redirect::route('siswa.index');
    }
}

4. Setelah itu jangan lupa untuk membuat routes pada "app/routes.php" dan ketikkan script berikut
 
Route::get('/', 'HomeController@index');

Route::get('home', 'HomeController@index');

Route::controllers([
    'auth' => 'Auth\AuthController',
    'password' => 'Auth\PasswordController',
]);

Route::resource('siswa', 'SiswaController');

5. Membuat view, pastikan html sudah terinstal pada project Anda karena kita akan membuat tampilan menggunakan HTML. Setelah itu masuk ke "resources/views/" dan tambah script ini

 
....

<ul class="nav navbar-nav">
       <li><a href="{{ url('/') }}">Home</a></li>
       <li><a href="{{ url('siswa') }}">Siswa</a></li>
</ul>

.....

6. Setelah itu membuat folder pada resource/views beri nama siswa dan buat 5 file menggunakan notepad/notepad++/dreamweaver dan beri nama
index.blade.php
create.blade.php
edit.blade.php
form.blade.php

Setelah itu masukkan script seperti dibawah ini

 
@extends('app')

@section('content')
<div class="container-fluid">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Data Siswa</div>
                <div class="panel-body">
                 <table class="table table-hover table-striped">
                <tr>
                <th>Nama Siswa</th>
                <th>Jenis Kelamin</th>
                <th>Alamat</th>
                <th>Telp</th>
                <th>Edit</th>
                <th>Delete</th>
                </tr>

                @foreach( $siswa as $siswa )
                    <tr>
                    {!! Form::open(array('class' => 'form-inline', 'method' => 'DELETE', 'route' => array('siswa.destroy', $siswa->id))) !!}
                      <td>{{ $siswa->nama }}</td>
                      <td>{{ $siswa->jenkel }}</td>
                      <td>{{ $siswa->alamat }}</td>
                      <td>{{ $siswa->telp }}</td>
                      <td>{!! link_to_route('siswa.edit', 'Ubah', array($siswa->id), array('class' => 'btn btn-info')) !!}</td>
                      <td>{!! Form::submit('Hapus', array('class' => 'btn btn-danger')) !!}</td>
                    {!! Form::close() !!}
                        </tr>
                @endforeach      
                </table>
                <p>
                {!! link_to_route('siswa.create', 'TAMBAH DATA SISWA', array('class' => 'btn btn-info')) !!}
                </p>
                </div>
            </div>
        </div>
    </div>
</div>

@endsection

 
@extends('app')

@section('content')
 <div class="container-fluid">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Tambah Data Siswa </div>
                <div class="panel-body">
                @if ($errors->any())
                    <div class='flash alert-danger'>
                    @foreach ( $errors->all() as $error )
                    <p>{{ $error }}</p>
                    @endforeach
                    </div>
                @endif

                {!! Form::model(new App\Siswa, ['class' => 'form-horizontal','route' => ['siswa.store']]) !!}
                @include('siswa/form', ['submit_text' => 'Tambah Data'])
                {!! Form::close() !!}

                    </div>
            </div>
        </div>
    </div>
</div>  

@endsection

 
@extends('app')

@section('content')
    <div class="container-fluid">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Edit Data Siswa</div>
                <div class="panel-body">
                @if ($errors->any())
                    <div class='flash alert-danger'>
                    @foreach ( $errors->all() as $error )
                    <p>{{ $error }}</p>
                    @endforeach
                    </div>
                @endif

                {!! Form::model($siswa, ['method' => 'PATCH', 'route' => ['siswa.update', $siswa->id],'class' => 'form-horizontal']) !!}
                    @include('siswa/form', ['submit_text' => 'Edit Data'])
                    {!! Form::close() !!}

                        </div>
            </div>
        </div>
    </div>
</div>  

@endsection

 
<div class="form-group">
 {!! Form::label('nama', 'Nama', array('class' => 'col-md-4 control-label'))  !!}
    <div class="col-md-6">
    {!! Form::text('nama', null,array('class' => 'form-control'),'') !!}</div>
</div>
<div class="form-group">
{!! Form::label('jenkel', 'Jenkel', array('class' => 'col-md-4 control-label')) !!}
    <div class="col-md-4">
    {!! Form::select('jenkel', array('Pria' => 'Pria', 'Wanita' => 'Wanita'), null, array('class' => 'form-control','placeholder'=>'Pili Jenis Kelamin')) !!}  
    </div>
</div>
<div class="form-group">
{!! Form::label('alamat', 'Alamat', array('class' => 'col-md-4 control-label')) !!}
    <div class="col-md-6">
    {!! Form::textarea('alamat', null, array('class' => 'form-control'),'') !!}     </div>
</div>
<div class="form-group">
{!! Form::label('telp', 'Hp', array('class' => 'col-md-4 control-label')) !!}
    <div class="col-md-4">
    {!! Form::text('telp', null, array('class' => 'form-control'),'') !!}     </div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
    {!! Form::submit($submit_text, ['class'=>'btn primary']) !!}
</div>


Sampai disini seharusnya jika Anda mengikuti dari awal sudah bisa dijalankan. Hasilnya nanti akan seperti ini :

1. Halaman Login dan Register, halaman ini sudah dibuat secara otomatis saat kita menginstal project pada composer jadi kita tinggal pakai atau edit saja.

 2. Halaman Siswa, halaman ini menampilkan data siswa ke dalam tabel
 3. Halaman Tambah atau Ubah Data mempunyai tampilan yang sama seperti ini

Akhirnya selesai juga membuat postingan ini. Jika Anda mengikuti dari awal pasti langsung jadi tidak harus eror dulu. Memang agak rumit dan panjang tapi jika sudah bisa sebenarnya mengasyikan juga menggunakan framework yang satu ini.
Sekian postingan saya tentang Cara Membuat CRUD (Create, Read, Update, Delete) pada Framework PHP Laravel Jika ada kesalahan saya mohon maaf dan jika ada pertanyaan bisa ditanyakan pada kolom komentar yang ada dibawah siapa tau saya bisa membantu.

 JIKA ANDA INGIN MENDOWNLOAD CONTOH PROGRAM  DIATAS TINGGAL KLIK LINK

DOWNLOAD
Previous
Next Post »

Jika Anda ingin bertanya silahkan berkomentar dengan sopan gan dan JANGAN PASANG LINK DI KOMENTAR.... ConversionConversion EmoticonEmoticon