Laravel Insert Data

Insert atau Add Data pada Laravel

Tutorial Sebelumnya:

Tutorial Laravel #10Membuat Login pada Laravel
Tutorial Laravel #11Membuat Register pada Laravel

Pada Tutorial Laravel kali ini kita akan Belajar CRUD pada Laravel.

CRUD adalah singkatan yang berasal dari CreateReadUpdate, dan Delete, dimana keempat istilah tersebut merupakan fungsi utama yang nantinya diimplementasikan ke dalam database.

Fungsi create, read, update, dan delete merupakan fungsi yang secara konstan digunakan dan merupakan bagian yang tidak terpisahkan dari pekerjaan seorang programmer.

Tutorial CRUD Laravel yang pertama kita pelajari adalah Insert atau Add Data. Kita akan membahas cara Insert atau Add Data pada Laravel.

Baca Juga:
Tutorial Laravel #13: Insert atau Add Data pada Laravel (Menggunakan Ajax)

Menginput Data ke Database dengan Laravel

Tutorial ini adalah lanjutan dari tutorial sebelumnya Membuat Login dan Register pada Laravel.

Sebelumnya kita sudah membuat project laravel dengan nama ANISA (Aplikasi Nilai Santri), database yang digunakan dengan nama anisa_db.

Kita sudah mempunyai user dengan hak akses Administrator. Berikut tampilan jika administrator berhasil login.

Input Data ke Database dengan Laravel
Input Data ke Database dengan Laravel

Perhatikan gambar di atas pada Menu Santri, menu ini digunakan untuk menampilkan, menambahkan, mengubah dan menghapus data santri. Kita akan menyelesaikan CRUD pada menu santri ini terlebih dahulu.

1. Sekarang silahkan buat tabel baru dengan nama tabel santri.

Field-field dari table santri seperti berikut:

Input Data ke Database dengan Laravel
Input Data ke Database dengan Laravel

2. Selanjutnya kita membuat Model untuk tabel santri, jalankan perintah berikut:

php artisan make:model SantriModel

Maka model berhasil dibuat dengan nama SantriModel.php dalam direktori app/Models/SantriModel.php

Berikut kode full dari model SantriModel.php:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Santri extends Model
{
    use HasFactory;

    protected $table = 'santri';
    protected $primaryKey = 'id_santri';
    protected $fillable = ['nm_santri', 'tmp_lahir', 'tgl_lahir', 'alamat', 'no_hp'];
}

Perhatikan kode Model di atas, pada bagian kode program protected $table = 'santri' digunakan ketika penamaan tabel yang akan digunakan tidak sesuai dengan aturan baku penamaan tabel sesuai Eloquent. Jika kita mengikuti naming convention dari Laravel, umumnya properti ini tidak perlu didefinisikan. Sebagai contoh, kita punya model dengan nama class User, maka Eloquent menganggap nama tabelnya adalah users.

Pada bagian kode program protected $primaryKey = 'id_santri' Eloquent akan mengganggap atribut id dalam tabel sebagai primary key dan mengkonversinya (cast) menjadi tipe data integer. Jika selain itu, gunakan properti $primaryKey untuk menjelaskan kepada Eloquent kalau kita menggunakan nama atribut yang lain.

Pada bagian kode program protected $fillable Properti yang satu ini punya fungsi untuk mendaftarkan atribut apa saja yang sekiranya dapat disimpan atau dimanipulasi menggunakan create() atau insert().

3. Tahap selanjutnya adalah membuat Route. Buka file web.php pada folder routes/web.php, tambahkan kode route seperti di bawah ini:

use App\Http\Controllers\SantriController;

Route::get('santri/tampil', [SantriController::class, 'tampilsantri'])->name('tampilsantri')->middleware('auth');
Route::get('santri/tambah', [SantriController::class, 'tambahsantri'])->name('tambahsantri')->middleware('auth');
Route::post('santri/simpan', [SantriController::class, 'simpansantri'])->name('simpansantri')->middleware('auth');

Perhatikan kode Routes di atas, pada bagian kode program use App\Http\Controllers\SantriController agar SantriController dapat digunakan pada route kita.

Pada route yang pertama Route::get('santri/tampil'... digunakan untuk menampilkan view data santri dengan method get.

Kemudian pada route yang ke dua Route::get('santri/tambah'... untuk menampilkan view input santri dengan method get.

Terakhir pada route Route::post('santri/simpan'... adalah route untuk menyimpan data santri dengan method yang digunakan adalah post.

4. Berdasarkan route di atas kita akan membuat controller dengan nama SantriController.

Untuk membuat controller jalankan perintah berikut:

php artisan make:controller SantriController

Maka controller berhasil dibuat dengan nama file SantriController.php pada direktori app/Http/Controllers/SantriController.php

Isi dari SantriController.php adalah sebagai berikut:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\SantriModel;

class SantriController extends Controller
{
    public function tampilsantri()
    {
        return view('tampilsantri');
    }

    public function tambahsantri()
    {
        return view('tambahsantri');
    }

    public function simpansantri(Request $request)
    {
        $santri = SantriModel::create([
            'nm_santri' => $request->nm_santri,
            'tmp_lahir' => $request->tmp_lahir,
            'tgl_lahir' => $request->tgl_lahir,
            'alamat' => $request->alamat,
            'no_hp' => $request->no_hp,
        ]);

        return redirect()->route('tampilsantri');
    }
}

Perhatikan kode Controller di atas, pada bagian kode program use App\Models\SantriModel untuk memangil model santri karena kita akan menggunakan saat insert data.

Pada bagian kode program function tampilsantri digunakan untuk membuat tombol Tambah Santri Baru dan menampilkan semua data santri, untuk menampilkan data pada laravel akan kita bahas pada tutorial selanjutnya. Sekarang kita buat hanya tombol tambahnya dulu.

Input Data ke Database dengan Laravel
Input Data ke Database dengan Laravel

Pada bagian kode program function tambahsantri digunakan untuk menampilkan form input santri setelah tombol tambah di klik.

Pada bagian kode program function simpansantri(Request $request) digunakan untuk menangkap data yang dikirimkan dari form tambah santri.

Cara menangkap data di sini kita menangkap datanya di dalam parameter fungsi store(). kita beri keterangan Request. di ikuti dengan nama variabel yang ingin kita jadikan sebagai penyimpan data yang dikirim dari form. di sini kita menyimpannya dalam variabel $request.

Kemudian tinggal kita insert data nya ke table santri dengan menggunakan query builder laravel untuk insert data, terdapat pada bagian kode program berikut:

$santri = SantriModel::create([
   'nm_santri' => $request->nm_santri,
   'tmp_lahir' => $request->tmp_lahir,
   'tgl_lahir' => $request->tgl_lahir,
   'alamat' => $request->alamat,
   'no_hp' => $request->no_hp,
]);

Dan bagian yang paling terakhir nya setelah kita menginput datanya ke table santri, maka kita perintahkan untuk mengalihkan halaman kembali ke halaman santri atau ke route santri, di tunjukkan pada bagian kode berikut:

return redirect()->route('tampilsantri');

5. Selanjutnya kita Membuat view.

Kita telah menggunakan Sistem blade Template Laravel pada project kita, untuk melihat file master.blade.php lihat pada tutorial sebelumnya Membuat Login Laravel.

Kita tinggal membuat file view tampilsantri.blade.php seperti berikut:

@extends('master')

@section('konten')
<h3>Tampil Data Satri</h3>
<a class="btn btn-success" href="{{route('tambahsantri')}}"><i class="fa fa-plus"></i> Tambah Santri</a>
@endsection

Kemudian file view tambahsantri.blade.php isinya seperti bekrikut ini:

@extends('master')

@section('konten')
<h3>Form Input Santri</h3>
<form method="post" action="{{route('simpansantri')}}">
  @csrf
  <div class="form-group">
    <label>Nama Santri</label>
    <input type="text" name="nm_santri" class="form-control" placeholder="Nama Santri" required="">
  </div>
  <div class="form-group">
    <label>Tempat Lahir</label>
    <input type="text" name="tmp_lahir" class="form-control" placeholder="Tempat Lahir" required="">
  </div>
  <div class="form-group">
    <label>Tanggal Lahir</label>
    <input type="date" name="tgl_lahir" class="form-control" placeholder="Tanggal Lahir" required="">
  </div>
  <div class="form-group">
    <label>Alamat</label>
    <textarea name="alamat" rows="3" class="form-control" placeholder="Alamat" required=""></textarea>
  </div>
  <div class="form-group">
    <label>No. Hp</label>
    <input type="text" name="no_hp" class="form-control" placeholder="No. Hp" required="">
  </div>
  <div class="form-group text-right">
    <button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> Simpan Data</button>
  </div>
</form>
@endsection

Perhatikan kode view di atas, untuk action form nya kita buat di arahkan ke route ‘simpansantri‘. karena kita ingin nanti route ‘ simpansantri ‘ yang akan menangani pemprosesan data yang di input. agar bisa di olah oleh controller.

Di dalam form kita juga telah membuat beberapa buah form inputan, yaitu ada nama, tempat lahir, tanggal lahir, alamat dan no hp. sesuai dengan format table santri yang sudah kita buat sebelumnya.

Pada bagian code program @csrf merupakan salah satu fitur laravel yaitu CSRF protection. CSRF protection adalah fitur keamanan untuk pencegahan penginputan data dari luar aplikasi atau sistem kita.

Laravel sudah menginclude fitur ini secara otomatis, hanya dengan menambahkan perintah @csrf seperti di atas, maka laravel akan otomatis meng-generate kode token otomatis, yang di buat dalam bentuk form hidden, seperti berikut ini:

<input type="hidden" name="_token" value="QQtzCXZYXGeWiPHoK4MJ62rtfSlex9gPqQganbv2">

Setelah selesai, sekarang coba kita jalankan.

Akses localhost:8000/santri/tampil

Input Data ke Database dengan Laravel
Input Data ke Database dengan Laravel

dan klik Tambah Santri Baru. maka akan di alihkan ke halaman Form Input Santri.

Input Data ke Database dengan Laravel
Input Data ke Database dengan Laravel

Coba isi beberapa data percobaan. dan klik tombol Simpan Data.

Untuk mengecek apakah berhasil tersimpan, lihat database Anda dan buka tabel santri.

Input Data ke Database dengan Laravel
Input Data ke Database dengan Laravel

Dan datapun berhasil tersimpan ke table santri.

Kita telah berhasil Menginput Data ke Database dengan Laravel, pada tutorial selanjutnya kita akan belajar Menampilkan Data dari database dengan Laravel.

Tutorial Selanjutnya:

Tutorial Laravel #14Menampilkan Data pada Laravel
Tutorial Laravel #15Menampilkan Data pada Laravel (Menggunakan Ajax)

Web Programmer. Flutter Developer. Content Creator. Founder Ayongoding.com. Penyuka minuman sachet. Menulis pakai tangan kanan. Masih main mobilan remot. Dan pernah kuliah Sistem Informasi sampai lulus.

4 Komentar

  1. selenitez Reply

    mas mau tanya, ini kenapa Class ‘App\Models\MahasiswaModel’ not found ya? (santri nya saya ganti semua dengan mahasiswa)

  2. IDMaspur Reply

    Artikelnya sangat membantu dan Tutorialnya sangat mendetail sekali, yang ingin saya tanyakan apakah ada tutorial cara menambahkan di tentah posting “Baca juga:” untuk laravel, saya baru menggunakan laravel dari script varient.

    Jika ada link tutorialnya mas Arie
    Salam Sukses Selalu
    Semoga Makin Bertambah Ilmunya.

Leave a Reply

Your email address will not be published. Required fields are marked *