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

Program C++ menentukan Bilangan Ganjil Genap,terbesar,terkecil serta berat badan Ideal

Program C++ Menentukan Bilangan Ganjil Genap,Terbesar serta terkecil & Program Berat Badan Ideal beserta Source Codenya Dengan Program menentukan Bilangan kita tentu perlu suatu saat bila kita menggunakannya sekaligus mempelajari Program C++ dan memahami lebih dalam Program C++ Semoga artikel ini membantu bagi anda sekalian.Langsung saja dengan mengwali Menentukan Bilangan Ganjil Genap dan diakhiri dengan program Berat Badan Ideal, 1. Menentukan Bilangan Ganjil Genap SubJudul yang pertama adalah menentukan Bilangan Ganjil Genap beserta Source Code Pertama kita inisialisasikan dulu variabel yang akan dipakai yaitu a dengan tipe data integer  - Untuk variabel pengulangannya saya pakai pilih dengan tipe data char - Saya menggunakan pengulangan do while jadi kita tulis do{ - Kemudian output nya kita tulis cout << "Masukan angka: " ; dan input nya kita              tulis cin >> a; - Jika ( a % 2 == 1) maka outputnya akan menghasilkan b

Membuat Anak Tangga menggunakan PHP - P24

Cara Membuat Anak Tangga menggunakan Array 2 Dimensi & Looping  Kali ini saya akan menunjukan kepada kalian cara membuat Anak Tangga di PHP menggunakan Array 2 dimensi & Looping dengan menyesuaikan Input dan pilihan warna dari User. Semoga bermanfaat~ <?php error_reporting ( 0 ); $jumlah = $_POST [ 'anakTangga' ]; $warna = $_POST [ 'warnaTangga' ]; for ( $i = 0 ; $i < $jumlah ; $i ++) { for ( $j = 0 ; $j < $i ; $j ++) { echo "<div class='kotak' style='background-color:$warna'></div>" ; } echo "<div class='kotak' style='background-color:$warna'></div><br>" ; } ?> Dan ini hasilnya Keterangan: Bahwa dalam menggunakan Array 2 Dimensi & Looping akan terus menerus mengulang sesuai dengan Input User <!DOCTYPE html> <html> <head> <title> Tangga Berwarna </title> </head> &

List dan List Kombinasi - P4

Pemrograman Web-List Jenis List Ada 3 Macam Listing di HTML diantaranya: 1. Ordered List: Sebagai Penanda secara Terurut 2. Unordered List: Untuk membuat Penanda secara Tak Terurut 3. Definiton List: Sebagai Daftar Definisi Untuk Ordered List biasanya menggunakan angka 1,2,3 atau huruf Romawi I,II,III. Juga dengan Alfabet a,b,c,d atahupun dengan huruf "i"(i,ii,iii).Ordered List ini cocok sebagai urutan, Membuat Teks Prosedur untuk membuat sesuatu seperti langkah langkah,Komposisi makanan,Cara membuat,dan lain sebagainya. Ordered List: Ordered List perlu memakai Tag <ol>bdi bagian awal dan Tag</ol> di bagian akhir. Dan kita huga harus menambahkan Tag<ii> dan </ii> di bagian yang diberi Tanda. Contoh Penulisan Ordered List: <ol> <li> Urutan Pertama </li> <li> Urutan Kedua </li> </ol> Itu adalah contoh penulisan Ordered List.Ordered List bisa ditampilkan dengan huruf, angka, angka Romaw