Edit & Delete pada PHP - Praktikum 16

Assalamu'alaikum warahmatullahi wabarakatuh.

Halo teman-teman semuanya! Bagaimana kabarnya? Semoga dalam kondisi dan keadaan yang prima dan baik-baik saja ya, sekarang di Indonesia keadaan covid sudah makin membaik nih, tapi jangan lupa yah teman-teman harus tetap jaga protokol kesehatan dan selalu berdoa demi keselamatan bersama!

Perkenalkan kembali lagi bersama saya Ilham, saya dari kelas XI RPL 2 yang sekarang dalam artikel kali ini, kita akan membahas tentang "Komponen CRUD yang terakhir yaitu: Edit dan Delete",  tanpa berlama-lama lagi mari langsung saja kita ke bahasan materinya!


Apa itu Edit 

Edit (Mengubah) adalah teknik pada pemrograman untuk mengedit sejumlah data yang telah ada baik pada tabel ataupun database. Data tersebut dapat berbentuk JSON file, array ataupun hanya merupakan input biasa.

Pada pertemuan kali ini kita akan belajar untuk mengubah data pada tabel database sebelumnya dan kemudian kita export data baru itu ke tabel database yang kita miliki.

Pada kondisi bagaimana kah metode ini diperlukan? Metode ini akan diperlukan pada saat kita akan mengubah sejumlah data.


Apa itu Delete 

Delete  (Menghapus) adalah teknik pada pemrograman untuk menghapus sejumlah data baik pada tabel ataupun database. Data tersebut dapat berbentuk JSON file, array ataupun hanya merupakan input biasa.

Pada pertemuan kali ini kita akan belajar untuk menghapus data dan kemudian kita export keadaan baru tersebut ke tabel database yang kita miliki.

Pada kondisi bagaimana kah metode ini diperlukan? Metode ini akan diperlukan pada saat kita akan mengelola sejumlah data.

Menyiapkan Router 

Sebelum kita melakukan suatu teknik edit dan delete, dan juga sebelum mengkonfigurasi controllernya kita persiapkan terlebih dahulu router dan method yang akan dipakainya, seperti pada pertemuan sebelumnya disana kita telah memiliki controller yang diberinama SIswaController yang terdapat banyak method resource didalamnya.

Dalam router ini kita akan mendeklar method route lagi dan, alamat uri tujuan, beserta class beserta method yang akan dipanggil atau digunakan untuk edit dan delete.

Sebelum memakai controller Siswa ingatya jangan lupa kita import terlebih dahulu menggunakan klausa use seperti dibawah ini dibagian header file web:

use App\Http\Controllers\SiswaController;
Pertama kita siapkan terlebih dahulu route untuk mengarahkan file ke halaman siswa id dari view siswa:
Route::delete('/siswa/{siswa}', [SiswaController::class, 'destroy']);

Kedua kita siapkan route untuk mengarahkan kita ke halaman edit data dari view siswa sebagai media untuk menampilkan form ubah data siswa namun seperti pada method create dan store untuk penanganan pengelolaan data akan diserahkan pada route dengan method update:
Route::get('/siswa/{siswa}/edit', [SiswaController::class, 'edit']);

Ketiga kita siapkan route untuk mengelola data yang diterima/dikirim dari route method edit form edit dengan menggunakan method update:
Route::patch('/siswa/{siswa}', [SiswaController::class, 'update']);

Mengkonfigurasi method-method pada Controller 

Sebelumya kita telah membuat controller siswa beserta menyertakan -r atau --resource pada command artisan maka secara otomatis method-method crud akan disertakan pada controller kita oleh laravel/artisannya.

Sekarang kita akan mengkonfirgurasi beberapa method untuk create dan read.

Berikut merupakan kodingannya:

Pertama untuk method destroy yang akan digunakan untuk menghapus data siswa berdasarkan id siswa yang bersangkutan.

/**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @param \App\Models\Siswa
     * @return \Illuminate\Http\Response
     */
    public function destroy(Siswa $siswa)
    {
        siswa::destroy($siswa->id);
        return redirect('/siswa/table')->with('status', 'Data Siswa Berhasil Dihapus!');
    }
Kedua untuk method edit yang akan digunakan untuk mereturn view siswa halaman form edit.
/**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @param \App\Models\Siswa
     * @return \Illuminate\Http\Response
     */
    public function edit(Siswa $siswa)
    {
        return view('siswa.edit', compact('siswa'), ['jurusan' => ['Rekayasa Perangkat Lunak', 'Teknik Komputer Jaringan', 'Teknik Audio Video', 'Multimedia']]);
    }
Ketiga untuk method update yang akan digunakan untuk mengganti data siswa lama dengan data yang diperoleh dari request atau data baru yang diinputkan pada form edit di view siswa halaman edit dan akan meredirect ke halaman siswa tabel.
/**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @param \App\Models\Siswa
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Siswa $siswa)
    {
        $request->validate([
            'nama_lengkap' => 'required',
            'nis' => 'required|size:10',
            'kelas' => 'required',
            'jurusan' => 'required',
            'jenis_kelamin' => 'required'
        ]);

        Siswa::where('id', $siswa->id)
            ->update([
                'nama_lengkap' => $request->nama_lengkap,
                'nis' => $request->nis,
                'jenis_kelamin' => $request->jenis_kelamin,
                'kelas' => $request->kelas,
                'jurusan' => $request->jurusan,
            ]);
        return redirect('/siswa/table')->with('status', 'Data Siswa Berhasil Diubah!');
    }

Membuat View dan menghubungkannya terhadap Method Controller 

Dengan membuat controller beserta modelnya kita dapat melakukan berbagai method resource yang disediakan oleh laravel pada aplikasi web kita.

Sekarang kita akan membuat view ediit saja yang berkaitan dengan method edit pada controllernya  yang sebelumnya telah kita siapkan.

Mengapa hanya view edit saja? karena saya rasa untuk method delete tidaklah membutuhkan suatu view mungkin cukup hanya dengan alert box.


Untuk view edit siswa ini akan digunakan untuk menampilkan form data edit yang sebelumnya pada masing-masing field sudah tertera data sebelum edit sehingga akan memudahkan kita untuk mengetahui data lampau siswa tersebut.

Berikut merupakan codingan untuk view edit: 
@extends('layout/main')
@section('title', 'Form Ubah Data Siswa')


@section('container')
<div class="container">
    <div class="row">
        <div class="col-8">
            <h1 class="mt-4">Form Ubah Data Siswa</h1>
            <hr>

            <form method="POST" action="{{ url('/siswa') }}/{{ $siswa->id }}">
                @method('patch')
                @csrf
                <div class="form-group">
                    <label for="nis">NIS</label>
                    <input type="number" class="form-control
                                    
                    @error('nis')
                        is-invalid
                    @enderror    
                    
                    " id="nis" name="nis" value="{{ $siswa->nis }}">
                    <small id="nisHelp" class="form-text text-muted">We'll never share your nis with anyone
                        else.</small>
                    @error('nis')
                    <div class="invalid-feedback">{{ $message }}</div>
                    @enderror
                </div>

                <div class="form-group">
                    <label for="nama_lengkap">Nama</label>
                    <input type="text" class="form-control

                    @error('nama_lengkap')
                        is-invalid
                    @enderror
                    
                    " id="nama_lengkap" name="nama_lengkap" value="{{ $siswa->nama_lengkap }}">
                    @error('nama_lengkap')
                    <div class="invalid-feedback">{{ $message }}</div>
                    @enderror
                </div>

                <div class="form-row">
                    <div class="form-group col-sm-2 mt-3">
                        <label for="inputCity">Jenis Kelamin</label>
                    </div>
                    <div class="form-group col-md-3 mt-3">
                        <div class="custom-control custom-radio custom-control-inline">
                            <input type="radio" id="lk" name="jenis_kelamin" class="custom-control-input" value="L"
                                {{ old('jenis_kelamin', $siswa->jenis_kelamin) == 'L' ? 'checked' : '' }}>
                            <label class="custom-control-label" for="lk">Laki-laki</label>
                        </div>
                        <div class="custom-control custom-radio custom-control-inline">
                            <input type="radio" id="pr" name="jenis_kelamin" class="custom-control-input" value="P"
                                {{ old('jenis_kelamin', $siswa->jenis_kelamin) == 'P' ? 'checked' : '' }}>
                            <label class="custom-control-label" for="pr">Perempuan
                            </label>
                        </div>
                    </div>
                    <div class="form-group col-md-2">
                        <label for="kelas">Kelas</label>
                        <input type="text" class="form-control" id="kelas" name="kelas" value="{{ $siswa->kelas }}">
                    </div>
                    <div class="form-group col-md-5">
                        <label for="jurusan">Jurusan</label>
                        <select id="jurusan" class="form-control" name="jurusan">
                            <option disabled>✔ Pilih jurusan</option>
                            @foreach ($jurusan as $j)
                            <option value="{{ $j }}" {{ old('jurusan') == $j ? 'selected' : '' }}>{{ $j }}</option>
                            @endforeach
                        </select>
                    </div>
                </div>
                <button type="submit" class="btn btn-primary my-5 float-right">Ubah Data</button>
            </form>


        </div>
    </div>
</div>
@endsection

Percobaan terhadap aplikasi 

Setelah melakukan banyak konfigurasi dan kodingan sekarang disini kita akan mengetest aplikasi yang telah kita buat untuk melihat performa dan juga kelancarannya.

Berikut merupakan hasilnya:

Pertama kita akan mencoba untuk menghapus beberapa data siswa dengan mengklik tombol delete dan muncul alert confirm kita klik saja ok.

Data sebelum dihapus






Dan terlihat data siswa yang tadi kita delete menghilang dari list pada tabel.

Kita coba hapus 1 lagi


Dan terlihat data siswa yang tadi kita delete menghilang dari list pada tabel.


Kedua kita akan mencoba untuk mengedit beberapa data siswa dengan mengklik tombol edit yang nanti akan diarahkan ke halaman form edit.

Lalu kita ubah data lama menjadi data baru pada form edit yang telah disediakan.







Ternyata data yang kita inputkan salah bro mari inputkan data sesuai aturan yang benar


Satu baris data siswa sudah terupdate, mari coba edit data lainnya
 

Dan terlihat disana bahwa data siswa yang tadi kita ubah ternyata berhasil dan terlihat bahwa terdapat beberapa baris data yang berubah.


Hasil Akhir 

Setelah melakukan banyak kodingan dan konfigurasi pada file-file akhirnya kita sudah membereskan aplikasi CRUD (Create, Read, Update dan Delete) kita.

Untuk teman-teman yang ingin melihat full source code dari aplikasi bisa mengunjungi link repo github dibawah ini, jangan lupa follow akun githubnya yah hehe lumayan nambah-nambah follower.


Kalo ada kekurangan mungkin bisa beri komentar dibawah artikel ini atau melakukan beberapa merge dan commit pada repo saya.

Mungkin cukup sekian materi pengelolaan data  tahap Update dan Delete pada PHP-nya. Cukup singkat materinya dimulai dari pengenalan hingga pengimplementasiannya. Semoga sobat-sobat codingers paham, mengerti dan menguasainya. 

Mohon maaf jika terdapat tutur kata yang tidak berkenan dihati anda. Mohon maaf atas semua kesalahan yang telah saya perbuat, tolong berikan koreksi mengenai bagian mana yang salah/kurang pas dalam postingan ini, untuk pengembangan lebih baik kedepannya.

Sekian, saya ucapkan terimakasih banyak atas waktu yang telah diluangkan, saya ucapkan kembali mohon maaf atas segalanya kesalahan. 

Wabilahiltaufik walhidayah,
Wassalamu'alaikum warahmatullahi wabarakatuh
Keep Coding Stay Awesome

0 Response to "Edit & Delete pada PHP - Praktikum 16"

Post a Comment

Postingan Terbaru

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel