Cara Membuat CRUD Menggunakan Laravel

Setelah sebelumnya kita membahas tentang Konsep Model, View dan Controller di Laravel, kali ini kita akan mencoba untuk membuat CRUD di Laravel. CRUD merupakan singkatan dari Create, Read, Update dan Delete. Dimana Create berfungsi untuk membuat data, Read berfungsi untuk membaca data, Update berfungsi untuk memgubah atau memperbaharui data, dan Delete berfungsi untuk  menghapus data. Untuk melakukan percobaan ini kita akan menggunakan project yang sudah kita buat pada tutorial sebelumnya tentang Konsep Model, View dan Controller di Laravel.

CARA MEMBUAT CRUD DENGAN LARAVEL

1. Pertama, kita akan membuat view yang menampilkan form untuk menambah jurusan. Buka folder project belajarlaravel yang sudah dibuat sebelumnya. kemudian buat file tambahjurusan.blade.php di dalam folder resources/views/admin/dashboard/jurusan. Selanjutnya isikan kode di bawah ini ke dalam file tambahjurusan.blade.php.

@extends('admin.layout.master')

@section('content')

<div class="content-wrapper">

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

    <section class="content-header">

      <h1>

        Dashboard

        <small>Control Panel</small>

      </h1>

      <ol class="breadcrumb">

        <li><a href="#"><i class="fa fa-dashboard"></i>Home</a></li>

        <li class="active">Dashboard Admin</li>

      </ol>

   </section>

  

<!-- Main content -->

    <section class="content">

          <div class="row">

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

               

                <div class="box box-primary">

                  <div class="box-header">

                    <h3 class="box-title">Tambah Jurusan </h3>

                  </div><!-- /.box-header -->

                  <div class="box-body no-padding">

                      <form id="formJurusanTambah" class="form-horizontal" role="form" method="POST" action="{{ url('/jurusan/tambahjurusan') }}">

                      <input type="hidden" name="_token" value="{{ csrf_token() }}">

                     

                     

                      <div class="form-group">

                          <label class="col-md-4 control-label">Kode</label>

                          <div class="col-md-6 @if ($errors->has('jurKode')) has-error @endif">

                              <input type="text" class="form-control" name="jurKode" value="{{Request::old('jurKode')}}">

                              <small class="help-block"></small>

                          </div>

                      </div>

  

                      <div class="form-group">

                          <label class="col-md-4 control-label">Nama </label>

                          <div class="col-md-6  @if ($errors->has('jurNama')) has-error @endif">

                              <input type="text" class="form-control" name="jurNama" value="{{Request::old('jurNama')}}">

                              <small class="help-block"></small>

                              <!-- @if ($errors->has('jurNama')) <small class="help-block">{{ $errors->first('jurNama') }}</small> @endif -->

                          </div>

                      </div>

  

                     

  

                      <div class="form-group">

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

                              <button type="submit" class="btn btn-primary" id="button-reg">

                                  Simpan

                              </button>



                             

                              <a href="{{{ action('Jurusan\JurusanController@index') }}}" title="Cancel">

                              <button type="button" class="btn btn-default" id="button-reg">

                                  Cancel

                              </button>

                              </a> 

                          </div>

                      </div>

                      </form>  

                  </div><!-- /.box-body -->

                </div><!-- /.box -->

            </div>

          </div><!-- /.row (main row) -->

           

 </section>

    <!-- /.content -->

</div>

@stop


2. Selanjutnya kita akan membuat controller yang berfungsi untuk menampilkan view tambahjurusan.blade.php. Isikan kode di bawah ini ke dalam file JurusanController.php.

public function tambah()

{

      

    return view('admin.dashboard.jurusan.tambahjurusan');

   

}


3. Buat controller untuk menambah jurusan dengan menambahkan kode berikut ke dalam file JurusanController.php

public function tambahjurusan(Request $request)

  {

    //$data = array('jurusan' => Jurusan::all());



  

        $input =$request->all();

        $pesan = array(

            'jurKode.required'    => 'Kode Jurusan dibutuhkan.',           

            'jurKode.unique'      => 'Kode Jurusan sudah digunakan.',

            'jurNama.required'    => 'Nama Jurusan dibutuhkan.',           

        );



        $aturan = array(



            'jurKode' => 'required|unique:jurusan',

            'jurNama' => 'required|max:60',

           

        );

       



        $validator = Validator::make($input,$aturan, $pesan);



        if($validator->fails()) {

            # Kembali kehalaman yang sama dengan pesan error

            return Redirect::back()->withErrors($validator)->withInput();



          # Bila validasi sukses

        }



        $jurusan = new Jurusan;

        $jurusan->jurKode = $request['jurKode']; //atau bisa $input['prodiKode']

        $jurusan->jurNama = $input['jurNama'];

       

        if (! $jurusan->save())

          App::abort(500);



        return Redirect::action('Jurusan\JurusanController@index')

                          ->with('successMessage','Data jurusan "'.$input['jurNama'].'" telah berhasil diubah.');

     

  }


4. Buat Controller untuk menampilkan view editjurusan.blade.php dengan menambahkan kode di bawah ini ke dalam JurusanController.php.

public function editjurusan($id)

    {



        $data = Jurusan::find($id);

        $jurusan = Jurusan::orderBy('jurKode')->get();

  return view('admin.dashboard.jurusan.editjurusan',$data);



     

    }



5. Buat Controller untuk menyimpan hasil edit dengan menambahkan kode di bawah ini ke dalam JurusanController.php.

 public function simpanedit($id)

    {

        $input =Input::all();

        $messages = [

            'jurKode.required'    => 'Kode Jurusan dibutuhkan.',           

            'jurNama.required'    => 'Nama Jurusan dibutuhkan.',

           

        ];

       



        $validator = Validator::make($input, [

                          'jurKode' => 'required',

                          'jurNama' => 'required|max:60',

                         

                      ], $messages);



        if($validator->fails()) {

            # Kembali kehalaman yang sama dengan pesan error

            return Redirect::back()->withErrors($validator)->withInput();

          # Bila validasi sukses

        }



        $editJurusan = Jurusan::find($id);

        $editJurusan->jurKode = Input::get('jurKode'); //atau bisa $input['prodiKode']

        $editJurusan->jurNama = $input['jurNama'];

       

        if (! $editJurusan->save())

          App::abort(500);



        return Redirect::action('Jurusan\JurusanController@index')

                          ->with('successMessage','Data jurusan "'.Input::get('prodiNama').'" telah berhasil diubah.');

    }



6. Buat Controller untuk menghapus jurusan dengan menambahkan kode di bawah ini kedalam file JurusanController.php.

public function hapus($id)

  {

    $jurKode = Jurusan::where('jurKode','=',$id)->first();



    if($jurKode==null)

      app::abort(404);

    $jurKode->delete();

  

    return Redirect::route('jurusan');



  }



7. Karena kita menggunakan input maka di file JurusanController.php kita tambahkan kode di bawah ini.

use Illuminate\Support\Facades\Input;


8. Sampai disini kita sudah selesai membuat controller, selanjutnya kita buat view yang menampilkan edit jurusan dengan membuat file editjurusan.blade.php di dalam folder resources/views/admin/dashboard/jurusan dan letakkan kode di bawah ini di dalam file tersebut.

@extends('admin.layout.master')

@section('content')

<div class="content-wrapper">

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

    <section class="content-header">

          <h1>

            Dashboard

            <small>Control panel</small>

          </h1>

          <ol class="breadcrumb">

            <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>

            <li class="active">Dashboard</li>

            <li class="active">Jurusan</li>

          </ol>

 </section>

<!-- Main content -->

    <section class="content">

          <div class="row">

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



                <div class="box box-primary">

                  <div class="box-header">

                    <h3 class="box-title">Daftar Jurusan - Edit</h3>

                  </div><!-- /.box-header -->

                  <div class="box-body no-padding">

                      <form id="formJurusanEdit" class="form-horizontal" role="form" method="POST" action="{{ url('/jurusan/'.$jurKode.'/simpanedit') }}">

                      <input type="hidden" name="_token" value="{{ csrf_token() }}">

                      <input type="hidden" name="_method" value="PUT">

                      <input type="hidden" name="jurKode" value="{{$jurKode}}" >

                     

                      <div class="form-group">

                          <label class="col-md-4 control-label">Kode</label>

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

                              <input type="text" class="form-control" name="jurKodeShow" value="{{$jurKode}}" disabled="true">

                              <small class="help-block"></small>

                          </div>

                      </div>

  

                      <div class="form-group">

                          <label class="col-md-4 control-label">Nama</label>

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

                              <input type="text" class="form-control" name="jurNama" value="{{$jurNama}}">

                              <small class="help-block"></small>

                          </div>

                      </div>

  

  

                      <div class="form-group">

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

                              <button type="submit" class="btn btn-primary" id="button-reg">

                                  Simpan

                              </button>





                              <a href="{{{ action('Jurusan\JurusanController@index') }}}" title="Cancel">

                              <span class="btn btn-default"><i class="fa fa-back"> Cancel </i></span>

                              </a> 

                          </div>

                      </div>

                      </form>  

                  </div><!-- /.box-body -->

                </div><!-- /.box -->

            </div>

          </div><!-- /.row (main row) -->

</section>

</div>

@stop


9. Selanjutnya, buka file jurusan.blade.php, hapus semua kode di dalamnya dan ganti dengan kode di bawah ini.

@extends('admin.layout.master')

@section('content')

<div class="content-wrapper">

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

    <section class="content-header">

      <h1>

        Dashboard

        <small>Control Panel</small>

      </h1>

      <ol class="breadcrumb">

        <li><a href="#"><i class="fa fa-dashboard"></i>Home</a></li>

        <li class="active">Dashboard Admin</li>

      </ol>

   </section>

<!-- Main content -->

    <section class="content">

          <div class="row">

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

                <div class="box box-primary">

                  <div class="box-header">

                    <h3 class="box-title">Daftar Jurusan <a href="{{{ action('Jurusan\JurusanController@tambah') }}}" class="btn btn-success btn-flat btn-sm" data-toggle="modal" title="Tambah"><i class="fa fa-plus"></i></a></h3>

                  </div><!-- /.box-header -->

                  <div class="box-body no-padding">

                    <table class="table table-condensed">

                      <tbody><tr>

                        <th style="width: 50px; text-align: center;">Kode </th>

                        <th>Nama Resmi</th>

                        <th>Aksi</th>

                      </tr>

                      <?php foreach ($jurusan as $datajurusan):  ?>

                      <tr>

                          <td style="text-align: center;">{{ $datajurusan->jurKode}}</td>

                          <td>{{ $datajurusan->jurNama}}</td>

        <td><a href="{{{ URL::to('jurusan/'.$datajurusan->jurKode.'/edit') }}}">

                              <span class="label label-warning"><i class="fa fa-edit"> Edit </i></span>

                              </a> </td>

                          <td><a href="{{{ action('Jurusan\JurusanController@hapus',[$datajurusan->jurKode]) }}}" title="hapus" onclick="return confirm('Apakah anda yakin akan menghapus Jurusan {{{$datajurusan->jurKode .' - '.$datajurusan->jurNama }}}?')">

                            <span class="label label-danger"><i class="fa fa-trash"> Delete </i></span>

                            </a>

                         

                          </td>                       

                      </tr>

                      <?php endforeach  ?> 

                      </tbody>

                    </table>

                  </div><!-- /.box-body -->

                </div><!-- /.box -->

            </div>

          </div><!-- /.row (main row) -->

           

 </section>

    <!-- /.content -->

</div>

@stop


10. Terakhir, kita tambahkan kode di bawah ini ke dalam file routes.php

//route untuk tambah jurusan

Route::get('jurusan/tambah', array('as'=>'jurusan.tambah', 'uses'=> 'Jurusan\JurusanController@tambah'));

//route untuk menyimpan jurusan

Route::post('/jurusan/tambahjurusan', array('as'=>'jurusan.tambah.simpan', 'uses'=> 'Jurusan\JurusanController@tambahjurusan')); 

//untuk menghapus jurusan

Route::get('/jurusan/{id}/hapus', array('as'=>'jurusan.hapus', 'uses'=> 'Jurusan\JurusanController@hapus'));

//route untuk mengedit jurusan

Route::get('/jurusan/{id}/edit', array('as'=>'jurusan.edit', 'uses'=> 'Jurusan\JurusanController@editjurusan'));

//menyimpan hasil edit

Route::put('/jurusan/{id}/simpanedit', array('as'=>'jurusan.simpanedit', 'uses'=> 'Jurusan\JurusanController@simpanedit'));


Selesai, apabila hasilnya seperti gambar di bawah berarti anda sudah berhasil membuat CRUD di Laravel. Apa bila belum berhasil dan masih bingung, silahkan bertanya via kolom komentar. Selamat Mencoba and see you to the next articel.

Gambar 1:Tampilan jurusan.blade.php

Gambar 2:Tampilan tambahjurusan.blade.php

Gambar 3:Tampilan editjurusan.blade.php


1 Response to Cara Membuat CRUD Menggunakan Laravel

  1. Aku simpan di bookmark dulu, kalau perlu tinggal aku open aja. Nice info, sepertinya ini lengkap. 😄

    BalasHapus