Laravel 5.6 CRUD Tutorial

Laravel 5.6 CRUD Tutorial - Laravel merupakan framework PHP yang menggunakan arsitektur MVC (Model-View-Controller). Pada tanggal 07 Februari 2018 yang lalu, Laravel 5.6 di rilis. Ada beberapa fitur yang baru pada Laravel 5.6 ini yaitu:
  1. Logging Improvements
  2. Single Server Task Scheduling
  3. Dynamic Rate Limitting
  4. Broadcast Channel Classes
  5. API Controller Generation
  6. Eloquent Date Casting
  7. Blade Component Aliases
  8. Argon2 Password Hashing
  9. UUID Methods
  10. Collision
  11. Bootstrap 4 
Pada contoh kasus di tutorial ini, yaitu menginput data lengkap pribadi yang sederhana. Berikut langkah-langkahnya:

Langkah 1: Install Laravel 5.6

Sebelum menginstall Laravel, terlebih dahulu kita menjalankan command prompt (cmd) dan masuk ke direktori folder project anda. Contoh: cd c:\xampp\htdocs\folderproject . Ketika sudah berada direktori folder project, maka selanjutnya perintah yang ada di tutorial ini berada di folder project. misalnya c:\xampp\htdocs\folderproject\command laravel.
Menginstall Laravel 5.6 dapat menggunakan perintah dibawah ini:
composer create-project --prefer-dist laravel/laravel laravelcrud

Langkah 2: Konfigurasi MySQL Database pada file .env

Untuk dapat terhubung ke database yang kita miliki, maka pada file .env di root directory project kita ada beberapa yang harus di konfigurasi.

DB_DATABASE=laravelcrud
DB_USERNAME=root
DB_PASSWORD=

Untuk melakukan selanjutnya, terlebih dahulu kita melakukan migrasi 2 tabel yang telah di sediakan oleh laravel yaitu password_resets dan users. Kita menggunakan perintah seperti dibawah:
php artisan migrate

Langkah 3: Membuat Model, Migration, dan Controller file

Gunakan perintah dibawah untuk membuat Model, Migration dan Controller file untuk tabel data pribadi yang kita miliki.
 php artisan make:model DataPribadi -m
Dengan perintah diatas, maka akan ada 2 file baru yang kita miliki yaitu Model DataPribadi.php dan di folder database > migrations >
create_data_pribadis_table.php

Untuk membuat tabel, kita perlu membuat skema dari tabel yang akan dibuat. Edit file create_data_pribadis_table terletak di laravelcrud > database > migrations dengan script dibawah ini. 
public function up()
    {
        Schema::create('data_pribadis', function (Blueprint $table) {
            $table->increments('id');
            $table->string('nama_lengkap');
            $table->string('email')->unique();
            $table->text('alamat');
            $table->integer('umur');
            $table->timestamps();
        });
    }

Setelah membuat skema seperti diatas, maka selanjutnya kita melakukan migrate (migrasi) sehingga skema yang kita buat dapat terbentuk sebuah tabel di database.
php artisan migrate

Langkah 4: Membuat View Insert Data

Pada bagian ini kita akan membuat tampilan form untuk insert (input) data ke database yang sudah dibuat sebelumnya.Sebelum membuat tampilan form, terlebih dahulu kita buat template. Buat file baru pada resources > views > template.blade.php dan berikut source codenya.
<!DOCTYPE html>
<html>
<head>
 <title>Belajar Laravel</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">  
</head>
<body>

<div class="container">
 @yield('content')
</div>



<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>  
</body>
</html>

Setelah membuat bagian template, lalu kita dapat membuat tampilan form. Buat file baru pada resources > views > create.blade.php dan berikut source codenya.
@extends('template')

@section('content')

<div class="col-md-5 col-md-offset-4">
 <form method="post" action="{{ url('datapribadi') }}">
  @csrf
  <div class="form-group">
   <label>Nama Lengkap</label>
   <input type="text" class="form-control" name="nama_lengkap">
  </div>
  <div class="form-group">
   <label>Email</label>
   <input type="email" class="form-control" name="email">
  </div>
  <div class="form-group">
   <label>Alamat</label>
   <textarea class="form-control" name="alamat"></textarea>
  </div>
  <div class="form-group">
   <label>Umur</label>
   <input type="text" class="form-control" name="umur">
  </div>
  <div class="form-group">
   <button type="submit" class="btn btn-primary">Add</button>
  </div>
 </form>
</div>

@stop

Jika anda berhasil, maka akan tampilan seperti gambar dibawah ini nantinya.
Pembahasan mengenai blade template ini dapat melihat dokumentasinya disini.

Langkah 5: Membuat Controller

Setelah membuat tampilan form seperti yang diatas, sebelum menjalankan aplikasi kita terlebih dahulu membuat controller beserta routenya menggunakan perintah dibawah dengan cmd anda.
php artisan make:controller DataPribadiController --resource
Dengan menjalankan perintah diatas, maka secara otomatis akan terbentuk file baru di app > Http > Controllers > DataPribadiController.php dan terdapat satu baris kode pada file anda di routes > web.php
Route::resource('datapribadi', 'DataPribadiController');
Berikut perintah untuk mengetahui daftar-daftar route yang telah dibuat.
php artisan route:list
Untuk menjalankan aplikasinya, kita terlebih mengedit file controller yang sudah dibuat di app > Http > Controllers > DataPribadiControllers.php pada bagian fungsi create, kita edit menjadi seperti dibawah ini.
public function create()
 {
    return view('create');
 }
Sepertinya sudah dapat dijalankan sampai disini. Anda dapat menjalankan menggunakan url http://localhost/laravelcrud/public/datapribadi/create tentu dengan menggunakan url seperti ini akan terlalu panjang. Anda dapat membuatnya lebih singkat dengan menggunakan perintah dibawah ini di cmd anda.
php artisan serve
Dengan perintah diatas, anda dapat menjalankan aplikasi dengan url seperti ini http://localhost:8000/datapribadi/create tentu lebih nyaman bukan.? Pekerjaan kita masih belum selesai, form yang kita buat tadi tentunya masih belum ada aksi atau tidak bisa input data. 

Langkah 6: Menyimpan Data ke Database

Pada langkah kita melakukan pengeditan controller yang dibuat sebelumnya, pada bagian fungsi store, berikut source codenya.
public function store(Request $request)
    {
        $dataPribadi = new DataPribadi();
        $dataPribadi->nama_lengkap = $request->nama_lengkap;
        $dataPribadi->email        = $request->email;
        $dataPribadi->alamat       = $request->alamat;
        $dataPribadi->umur         = $request->umur;
        $dataPribadi->save();

        return redirect('datapribadi')->with('success', 'Data Berhasil di Input');
    }

Langkah 7: Menampilkan Data

Langkah ini menampilkan data yang telah di input ke database. Kita edit file controller DataPribadiController.php pada bagian fungsi index. Berikut source codenya.
public function index()
    {
        $dataPribadi = DataPribadi::all();

        return view('data', ['dataPribadi' => $dataPribadi]);
    }

Setelah menerapkan kode diatas, maka selanjutnya membuat tampilan untuk menampilkan data dari database. Buat file baru di resources > views > data.blade.php berikut source codenya.
@extends('template')

@section('content')
 <div class="col-md-10">

  @if (\Session::has('success'))
   <div class="alert alert-success">
    <p>{{ \Session::get('success') }}</p>
   </div>
  @endif

  <table class="table table-striped">
   <thead>
    <tr>
     <th>No.</th>
     <th>Nama Lengkap</th>
     <th>Email</th>
     <th>Alamat</th>
     <th>Umur</th>
     <th colspan="2">Aksi</th>
    </tr>
   </thead>
   <tbody>
    @php $no = 1; @endphp

    @foreach ($dataPribadi as $result)
     <tr>
      <td>{{ $no }}</td>
      <td>{{ $result->nama_lengkap }}</td>
      <td>{{ $result->email }}</td>
      <td>{{ $result->alamat }}</td>
      <td>{{ $result->umur }}</td>
      <td>
       <a href="{{ action('DataPribadiController@edit', $result->id) }}" class="btn btn-success">Edit</a>
      </td>
      <td>
       <form action="{{ action('DataPribadiController@destroy', $result->id) }}" method="post">
        <input name="_method" value="DELETE" type="hidden">
        @csrf
        <button type="submit" class="btn btn-danger">Hapus</button>
       </form>
      </td>
     </tr>
    @php $no++ @endphp
    @endforeach
   </tbody>
  </table>
 </div>
@stop

Maka ketika anda menjalankan aplikasinya menggunakan url seperti ini http://localhost:8000/datapribadi/, akan tampil seperti gambar dibawah ini. Data yg sudah kita input tadi, dapat di tampilkan ke halaman web.

Laravel 5.6 CRUD Tutorial

Langkah 8: Mengubah Data

Jika kita tadi sudah berhasil menginput data, dan menampilkan data dari database. Maka langkah selanjutnya yaitu mengubah data. Ketika anda menginput data ke database, tetapi mengalami kesalahan dalam input data, maka proses atau langkah inilah solusinya. 😀
Seperti langkah sebelumnya, kita terlebih dahulu membuat tampilan dari form untuk mengedit datanya. Buat file baru di resources > views > edit.blade.php dan berikut source codenya. 
@extends('template')

@section('content')

<div class="col-md-5 col-md-offset-4">
 <form method="post" action="{{ action('DataPribadiController@update', $dataPribadi->id) }}">
  @csrf
  <input name="_method" type="hidden" value="PATCH">
  <div class="form-group">
   <label>Nama Lengkap</label>
   <input type="text" class="form-control" name="nama_lengkap" value="{{ $dataPribadi->nama_lengkap }}">
  </div>
  <div class="form-group">
   <label>Email</label>
   <input type="email" class="form-control" name="email" value="{{ $dataPribadi->email }}">
  </div>
  <div class="form-group">
   <label>Alamat</label>
   <textarea class="form-control" name="alamat">{{ $dataPribadi->alamat }}</textarea>
  </div>
  <div class="form-group">
   <label>Umur</label>
   <input type="text" class="form-control" name="umur" value="{{ $dataPribadi->umur }}">
  </div>
  <div class="form-group">
   <button type="submit" class="btn btn-success">Edit</button>
  </div>
 </form>
</div>

@stop

Kemudian kita kembali lagi dengan controller yang sudah dibuat tadi. Yup, DataPribadiController.php dan kita edit pada bagian fungsi edit, berikut source codenya.
public function edit($id)
    {
        $dataPribadi = DataPribadi::find($id);
        return view('edit', ['dataPribadi' => $dataPribadi]);
    }

Kode diatas berfungsi untuk menampilkan data yang akan ingin diubah, dan mengirimnya ke form yang sudah dibuat sebelumnya. Dan langkah selanjutnya kita edit pada bagian fungsi update, dan berikut source codenya.
public function update(Request $request, $id)
    {
        $dataPribadi               = DataPribadi::find($id);
        $dataPribadi->nama_lengkap = $request->get('nama_lengkap');
        $dataPribadi->email        = $request->get('email');
        $dataPribadi->alamat       = $request->get('alamat');
        $dataPribadi->umur         = $request->get('umur');

        $dataPribadi->save();

        return redirect('datapribadi')->with('success', 'Berhasl Mengupdate Data');
    }

Langkah 9: Menghapus Data

Langkah selanjutnya yaitu menghapus data dari database. Ketika anda menginput data kedatabase dan ingin menghapus data tersebut dari database, maka langkah ini tepat untuk situasi anda tadi. Untuk menghapus data, kita hanya mengedit controller DataPribadiController saja pada bagian destroy.
public function destroy($id)
    {
        $dataPribadi = DataPribadi::find($id);

        $dataPribadi->delete();

        return redirect('datapribadi')->with('success', 'Berhasil Menghapus Data');
    }
Newest
Previous
Next Post »

ConversionConversion EmoticonEmoticon

:)
:(
=(
^_^
:D
=D
=)D
|o|
@@,
;)
:-bd
:-d
:p
:ng
:lv