Skip to main content

CRUD Laravel | 15 | Create Data with DB Facade


Sebelumnya kita telah membuat beberapa tabel diantaranya tabel siswa dan juga kelas, jadi sekarang kita akan membuat create data di tabel siswa:


STUDI KASUS 1

Lakukan hal yang sama seperti yang sudah dijelaskan pada slide
sebelumnya untuk tabel t_kelas. Buatlah tampilan form untuk
menambahkan data kelas.

Implementasikan validasi untuk tabel t_kelas, cobalah beberapa validasi
yang berbeda selain yang sudah dijelaskan (tidak boleh validasi
numeric, string dan max)

Oke, untuk urutan pembuatannya bisa dijabarkan seperti ini :
  • Buat file untuk menampung views tabel kelas
  • Buat link untuk tambah data di views tabel kelas
  • Buat route baru untuk kelas (index,create dan store-nya) di routes/web.php
  • Buka/buat KelasController dan isi filenya dengan fungsi index,create dan store
  • Buat form tambah data kelas di resources\views
  • Cek di Browser routes-routes tadi
Untuk perintah pertama, yang harus dilakukan adalah membuat tabel dan form untuk data dari t_kelas.

1. Buat link untuk menghubungkan form utama dengan form tambah data
buka file resources/views/kelas.blade.php kemudian tambahkan ini di bawah tulisan data siswa

<a class="btn btn-sm btn-success" href="{{ url('/siswa/create') }}">Tambah Data</a>


2. Ubah Routes
buka file file routes/web.php lalu tambakan
Route::get('/siswa/create','SiswaController@create');

3. Menampilkan view dengan nama form yang terdapat pada folder siswa
buka file app/Http/Controllers/SiswaController.php lalu tambahkan
public function create(){
     return view('siswa.form');
    }


4. Membuat form untuk tambah data
buka file resources/views/siswa/form.blade.php jika kalian belum membuat filenya, maka kalian buat saja dahulu kemudian tambahkan

<h1>Form Siswa</h1>
<form action="{{ url('/siswa') }}" method="POST"> 
@csrf

  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputEmail4">NIS</label>
      <input type="text" class="form-control" id="inputEmail4" placeholder="NIS">
    </div>
    <div class="form-group col-md-6">
      <label for="inputPassword4">Nama Lengkap</label>
      <input type="text" class="form-control" id="inputPassword4" placeholder="Nama Lengkap">
    </div>
  </div>
  <div class="form-group">
    <label for="inputAddress">Address</label>
    <input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
  </div>
  <fieldset class="form-group">
    <div class="row">
      <legend class="col-form-label col-sm-2 pt-0">Jenis Kelamin</legend>
      <div class="col-sm-10">
        <div class="form-check">
          <input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="L" {{ old('jenis_kelamin')=='L' ? 'checked' : ''}}>
          <label class="form-check-label" for="gridRadios1">
            L
          </label>
        </div>
        <div class="form-check">
          <input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="P" {{ old('jenis_kelamin')=='L' ? 'checked' : ''}}>
          <label class="form-check-label" for="gridRadios2">
            P
          </label>
        </div>
      </div>
    </div>
  </fieldset>

<select class="custom-select">
  <option selected>Golongan Darah</option>
  <option value="A" {{ old('golongan_darah')=='A' ? 'checked' : ''}}>A</option>
  <option value="B" {{ old('golongan_darah')=='B' ? 'checked' : ''}}>B</option>
  <option value="AB" {{ old('golongan_darah')=='AB' ? 'checked' : ''}}>AB</option>
  <option value="O" {{ old('golongan_darah')=='O' ? 'checked' : ''}}>O</option>
</select>
  <div class="form-group">
    <div class="form-check">
      <input class="form-check-input" type="checkbox" id="gridCheck">
      <label class="form-check-label" for="gridCheck">
        Check me out
      </label>
    </div>
  </div>
  <button type="submit" class="btn btn-primary" value="Simpan">Simpan</button>
</form>
@endsection


Nah diatas terdapat sebuah fungsi @csrf yang berfungsi untuk memproteksi Laravel dari serangan yang mengerikan yaitu serangan CSRF, apaan tuh min? CSRF sendiri adalah cross site request forgery, apa maksudnya nih?? Maksudnya adalah csrf ini merupakan salah satu lubang di web app yang bekerja dengan cara mengeksploitasi suatu aksi dan eksploitasi ini memanfaatkan otentikasi milik salah satu user.



5. Tambahkan route POST
buka file routes/web.php lalu tambahkan

Route::post('/siswa','SiswaController@store');


6. Tambahkan fungsi store
buka file app/Http/Controllers/SiswaController.php lalu tambahkan ini dibawah fungsi create
 public function store(Request $request){
     $rule=[
      'nis' => 'required|numeric|digits:10|unique:t_siswa',
      'nama_lengkap' => 'required|string',
      'jenkel' => 'required',
      'goldar' => 'required',
     ];
     $this->validate($request, $rule);

     $input = $request->all();
     unset($input['_token']);
     $status = \DB::table('t_siswa')->insert($input);

     if($status){
      return redirect('/siswa')->with('success','Data berhasil ditambahkan !!!');
     } else {
      return redirect('/siswa/create')->with('error','Data gagal ditambahkan !!!');
     }
    }
}

Nah setelah semua itu , cek di browser dengan masukkan localhost/[nama_folder_project]/public/kelas. Cobalah untuk menambah data

1-2

Perintahnya adalah untuk memasukkan validasi selain numeric,string dan max
Seperti yang sudah ada di KelasController@store, bisa dilihat dalam $rule
$rule = [
            'nama_kelas' => 'bail|required|string',
            'jurusan'    => 'required',
            'lokasi_ruangan' => 'size:5',
            'nama_wali_kelas' => 'alpha',



Penjelasannya :

bail
Jika validasi yang ini gagal, hentikan validasi yang selanjutnya.
Jadi error message yang ditampilkan jika bail ini gagal hanya validasi ini, atau singkatnya berhenti menjalankan validasi selanjutya jika validasi sebelumnya gagal (error)

alpha
Memaksa field ini berisi String dengan karakter alfabet saja
Kebalikan dari numeric, atau lebih singkatnya hampir mirip dengan max cuman digit ini di khususkan untuk numeric/angka


STUDI KASUS 2

Temukan BUG nya dan pecahkan solusi dari BUG
tersebut!

Dan ternyata Bug nya adalah
- Duplicate entry


Dan solusinya adalah menggunakan Metode Validasi
Caranya menambahkan Kodingan dibawah ini dengan $rule
'nis' => 'required|numeric|unique:t_siswa,nis'


STUDI KASUS 3

Sudah menangkap maksud dari fungsi old? Implementasikan fungsi tersebut untuk
field berjenis radio button dan field berjenis select option pada form siswa (Field
jenkel dan goldar)

Fungsi old disini adalah untuk menampilkan value lama dari input User yang gagal validasinya.

Admin sudah menggunakannya di input nis dan nama (sesuai tutorial).
Nah sekarang tinggal melanjutkannya ke radio button jenis kelamin dan select goldar

RADIO BUTTON

<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="L" {{ old('jenis_kelamin')=='L' ? 'checked' : ''}}>
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="P" {{ old('jenis_kelamin')=='L' ? 'checked' : ''}}>

SELECTED ITEM

 <option value="A" {{ old('goldar') == 'A' ? 'selected' : '' }}>A</option>
           <option value="B" {{ old('goldar') == 'B' ? 'selected' : '' }}>B</option>
           <option value="O" {{ old('goldar') == 'O' ? 'selected' : '' }}>O</option>
           <option value="AB" {{ old('goldar') == 'AB' ? 'selected' : '' }}>AB</option>

Mungkin segitu aja dari Admin

Mohon maaf bila ada kesalahan.
Selamat beraktivitas kembali dan sampai jumpa di lain waktu😃

Comments

Popular posts from this blog

Array pada JS - P13

Di pembahasan kali ini akan membahas JS Array..Langsung simak aja guys... 1. Pengertian Array 2. Jenis jenis Array 3. Contoh contoh Array 1. Pengertian Array     Array adalah tipe data yang berisi kumpulan dari nilai atau tipe data lain. Nilai di dalam array disebut dengan elemen, dan setiap elemen memiliki ‘nomor urut’ yang dikenal dengan istilah index. Penomoran index di dalam array dimulai dari angka 0, sehingga elemen pertama berada di index0, elemen kedua berada di index 1, dst.     Array di dalam JavaScript bersifat dinamis, dan kita tidak perlu mendefenisikan berapa ukuran array pada saat membuat variabel. Jumlah elemen dapat ditambah dan dikurang setiap saat. Index array di dalam JavaScript juga tidak harus berurutan, JavaScript membolehkan elemen dari array ‘tidak terur...

Profil PHP - P19

PROFIL SAYA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 <!DOCTYPE html> <html> <head> <title> DATA PRIBADI </title> <link rel="stylesheet" type="text/css" href="coba.css" > </head> <body> <section class="kotaknya" > <img src="FOTO.png" clas="image" width="300" height="450" /> </div> </section> <h1> Biografi pribadi </h1> <?php $nama_saya = "Muhamad Alfi Rizqi"; $kelas = "XI RPL 1"; $sekolah = "SMKN 4 Bandung"; $nis = "1718 117123"; $umur = "16 Tahun"; $berat_badan= "50 kg"; $hobi = "Bersepeda, Playing Games, mendaki"; $tinggi = "167 cm"; $alamat = ...

Membuat Coding menjadi lebih bermakna dengan C++

Selamat beraktivitas dimanapun kalian berada... Kali ini saya akan menunjukan dengan Coding menjadi lebih bermakna untuk kalian semua... Misal dengan membuat Kalkulator simpel dengan C++ sangatlah mudah jika kalian ingin mempelajari ini terlebih dahulu.        Sebenarnya banyak bahasa pemrograman yang tentu saja memudahkan bagi kehidupan manusia,Contohnya Java,Phyton,C# dan masih banyak lagi Tapi,Saya akan menunjukan kepada kalian tentang bahasa program C++ dengan mencari tahu kalian tentu akan menjadi Programmer yang handal Dengan catatan ini adalah coding karya saya tentunya, Dan kalian hanya perlu memahami nya dan meniru nya dirumah.. saya hanya menunjukan berbagai cara saja dan sebenarnya C++ lebih dari ini.mungkin ini adalah Coding yang simple yang menurut kalian pasti hanya perlu waktu sebentar untuk memahaminya.. Sebelumya saya sudah menjelaskan di link saya tentang C++ dan tentunya dengan penjelasannya .Saya sarankan untuk membaca ARTIKEL ini...