Pengenalan Eloquent Laravel Framework


Hallo, Brother and Sister,
Pada kesempatan kali ini saya akan melanjutkan pembahasan tentang Laravel Framework yaitu mengenai Eloquent. Setelah membahas CRUD data dengan DB Facade, sekarang kita akan mencoba membuat CRUD dengan salah satu fungsi dari Laravel yaitu Eloquent. Lalu apa itu ELOQUENT ?? Eloquent adalah sebuah fitur untuk mengelola data yang ada pada database dengan sangat mudah. Eloquent ORM menyediakan fungsi-fungsi active record, fungsi - fungsi untuk mengelola data pada database. Dengan Eloquent kita bisa mengelola data dengan mudah dan dengan code yang singkat. Misalkan kita mempunyai tabel siswa, maka kita juga akan mempunyai sebuah model dengan nama siswa, nah dengan model siswa ini kita dapat mengelola data pada tabel tersebut dengan mudah dan cepat. Kita bisa menginput data, mengedit, menampilkan, mengupdate, bahkan kita juga bisa menggunakan relasi tabel dengan sangat mudah.

Untuk lebih jelasnya, berikut penjelasannya :
STUDI KASUS 1 - Tabel Kelas
Pertama, kita membuat model kelas terlebih dahulu pada folder app

$table -> untuk menentukan nama tabel yang akan kita pakai di model ini
$fillable -> untuk menentukan fieldnya.
Lalu, pada file Controller yang dulu sudah kita buat akan kita modifikasi sedikit :

Pada code diatas, baris yang dicommentin merupakan baris code yang sebelumnya kita gunakan pada Facade DB. Dan yang bawahnya merupakan code untuk Eloquent.
Seluruh method yang dipanggil setelah inisialisasi Eloquent sama dengan penggunaan DB Facade.
\App\Siswa::find($id) -> Method find hanya ada pada Eloquent Model, digunakan untuk mencari data pada model berdasarkan primary key. Biasanya primary key yang dicari adalah id. Selain id anda dapat mengaturnya pada model dengan meng-override variabel public $primaryKey.
Selain Dengan cara yang diatas ada cara lain/fungsi lain dari Eloquent yaitu ORM ELoquent untuk Tambah dan Update/Ubah data yang akan kita bahas berikutnya.

STUDI KASUS 2 - Tabel Guru
Kita Buat tabel guru tersebut dengan DB Migration 

Nah Ini Eloquent ORM untuk Insert Data
method save() untuk menyimpan semua inputan user.

Eloquent ORM untuk Update Data
Dari kedua cara tersebut akan menghasilkan hasil yang sama yaitu sama - sama data. Sehingga Hasilnya seperti ini.
Form
View

STUDI KASUS 3 - Perbedaan Eloquent & DB Facade
Perbedaan yang paling signifikan adalah dari panjangnya code/syntax yang digunakan. Jika kita menggunakan Eloquent ORM syntax yang digunakan akan lebih sedikit/sederhana dibanding DB Facade. contohnya :
Syntax Eloquent ORM
Siswa::all()              // Menampilkan semua data dalam table 't_siswa'
Siswa::find($id)      // Menampilkan data dalam table 't_siswa' yang sesuai dengan parameter
Siswa::delete($id)   // Menghapus data dalam table 't_siswa' yang sesuai dengan parameter

Syntax DB Facades
DB::table('t_siswa')->get();                                      // Menampilkan semua data dalam table 't_siswa'
DB::table('t_siswa')->where('id',$id)->first();       // Menampilkan data dalam table 't_siswa' yang sesuai dengan parameter
DB::table('t_siswa')->where('id',$id)->delete();   // Menghapus data dalam table 't_siswa' yang sesuai dengan parameter
Nah, Itu dia perbedaan yang paling signifikan. 

Oke segitu saja postingan dari saya untuk kali ini. Mohon maaf bila ada kesalahan, semoga bermanfaat untuk anda. Apabila ada komentar / masukan bisa diisi di kolom komentar. Sampai jumpa di postingan berikutnya dan jika menurut anda Postingan ini bermanfaat bisa diShare ke teman - teman anda.
😃 Salam Coding

Edit & Delete Data pada Laravel Framework


Hallo, Brother and Sister,
Pada kesempatan kali ini saya akan melanjutkan pembahasan tentang Laravel Framework yaitu mengenai Edit & Delete Data With DB Facade. Setelah membahas Read dan Create data pada postingan sebelumnya, sekarang mari kita membahas sisa 2 point dari CRUD yaitu Update(Edit) dan Delete data. Untuk lebih jelasnya, berikut penjelasannya :
Untuk menambahkan Edit & Delete langkah pertama yang harus dilakukan yaitu membuat 3 route baru.

Satu untuk membuka form edit data, yang kedua untuk mengirimkan data yang sudah diubah, dan yang ketiga untuk delete Data. Setelah itu kita buat 3 fungsi tersebut pada SiswaController.
STUDI KASUS 1
Penjelasan mengenai fungsi Update dan Destroy
- Fungsi Edit

Nah, fungsi edit ini bertugas untuk mengambil data yang dipilih(yang mau diedit), kemudian mengirimkannya ke form siswa untuk edit.

- Fungsi Update

Nah, fungsi update ini bertugas untuk megirimkan data yang sudah diubah. Isi dari fungsi ini tidak jauh beda dengan fungsi store(insert data) dimana disini kita membuat validasi juga. Bedanya di fungsi ini kita menggunakan where() untuk pengkondisian data mana yang akan diedit, update() untuk mengubah data yang lama menjadi data yang baru. Baris unset pada codingan diatas bertujuan untuk menghapus data dengan kunci _token beserta _methodnya pada array $input. Lalu disini juga terdapat pengkondisian mengenai berhasil/tidaknya data diedit.

- Fungsi Destroy

Nah, fungsi destroy ini bertugas untuk menghapus data yang dipilih. Sama seperti fungsi edit, disini kita menggunakan where() untuk pengkondisian data mana yang akan dihapus serta delete() untuk menghapus data tersebut. Setelah itu disini juga terdapat pengkondisian mengenai berhasil/tidaknya data dihapus.

Setelah itu kita buat button untuk edit dan juga delete.
maksud dari $row->id pada code diatas yaitu untuk mengambil data pada row/baris yang dipilih. Lalu kita ubah sedikit pada form siswa agar form tersebut dapat digunakan untuk edit data juga.

Disini kita mengubah url('siswa') menjadi url('siswa' , @$siswa->id) dimana 'siswa' digunakan saat tambah data, @$siswa-id digunakan saat edit data. Lalu terdapat pengkondisian apabila actionnya untuk edit maka methodnya menjadi PATCH.

pada old value pun kita ubah agar dapat menampilkan data yang diambil dari database.

STUDI KASUS 2
Bagaimana Hasilnya ?? berikut hasil dari Data Kelas :
Data Sebelum diubah

Proses Pengubahan Data
Data Setelah Diubah


Oke segitu saja postingan dari saya untuk kali ini. Mohon maaf bila ada kesalahan, semoga bermanfaat untuk anda. Apabila ada komentar / masukan bisa diisi di kolom komentar. Sampai jumpa di postingan berikutnya dan jika menurut anda Postingan ini bermanfaat bisa diShare ke teman - teman anda.
😃 Salam Coding

| Create Data With DB Facade | Validation | Old Input | Laravel Framework |


Hallo, Brother and Sister,
Pada kesempatan kali ini saya akan melanjutkan pembahasan tentang Laravel Framework yaitu Create Data With DB Facade & Validation & Old Input. Setelah membahas Read data pada postingan sebelumnya, sekarang mari kita membahas Create Data. Untuk lebih jelasnya, berikut penjelasannya :

STUDI KASUS 1
Create Data & Validasi serta Old Input untuk tabel t_kelas

Langkah Pertama yaitu kita tambahkan link yang dapat mengarahkan ke form Kelas.

URL digunakan untuk menciptakan URL menuju page tertentu. URL yang diciptakan akan ditambahkan pada base_url dari project anda.
Misal: url(‘/siswa/create’), maka yang akan muncul di HTML nya adalah http://localhost/laravel5.7-fresh/public/siswa/create 

Setelah itu, kita membuat route pada web.php

Nah, kita membuat 2 route untuk menampilkan form create dan untuk mengirimkan data yang sudah dibuat. Lalu apa isi dari function createKelas & storeKelas ? berikut saya paparkan


Nah, fungsi createKelas ini yaitu untuk menampilkan Form untuk membuat data kelas.
Maksud dari kelas.form yaitu folder kelas yang didalamnya terdapat file form.blade.php, lalu apa isinya ? ini dia =>

Penjelasan :
@CSRF
Fitur dari blade, sama dengan csrf_field, namun tidak perlu menggunakan bracket ( {{ }} ) untuk menampilkannya di HTML.
Setiap request yang memiliki method selain GET yaitu (POST, PUT, PATCH, DELETE), syntax diatas wajib digunakan didalam form sebagai fungsi keamanan dari serangan CSRF.
Lalu apa itu serangan CSRF ?
CSRF (Cross-Site Request Forgery) merupakan bentuk eksploitasi website yang dieksekusi atas wewenang korban, tanpa dikehendakinya. CSRF menipu website melalui request dari user yang dipercaya. Serangan bekerja melalui link atau script pada halaman site yang diakses user.

Old Input
Pada form diatas saya sudah menerapkan old input. Old input ini berfungsi untuk, jika data gagal dibuat maka saat menampilkan pesan error inputan yang sebelumnya tidak akan hilang. Old Input yang saya terapkan diatas untuk tipe text, untuk tipe lainnya nanti saya akan bahas di SK 3.
------------------------------------------------------------------------------------------------------------------------

Nah, fungsi storeKelas ini yaitu untuk mengirimkan data yang dibuat serta dapat digunakan untuk validasi. Pada bagian Pengkondisian If maksudnya adalah jika data sukses dibuat  maka akan menampilkan view readKelas  dengan disertai pesan sukses, sedangkan jika data gagal dibuat maka akan tetap menampilkan view formKelas namun dengan disertai pesan error.
Validasi yang saya terapkan diatas mencakup pada 4 column pada tabel t_kelas.
Penjelasan :
Jika terdapat lebih dari 2 validasi, kita bisa menggunakan simbol |
required => Field harus diisi
min:5 => minimal inputan harus 5 karakter
alpha => inputan harus alfabet (tidak boleh nomor)
bail => Menghentikan menjalankan aturan validasi setelah kegagalan validasi pertama.
Lalu Bagaimana cara untuk menampilkan Pesan validasi ? berikut caranya

//Code Pada File Form Kelas
Maksud code diatas yaitu, jika sudah terdapat error (error > 0) maka tampilkan peringatan serta pemberitahuan.
Hasilnya :


STUDI KASUS 2
Analisis & Resolve Bug
Setelah saya analisis terdapat 1 celah/bug yang terdapat pada code diatas, yaitu masalah Keunikan Data. Contohnya :
*note : pada t_siswa field nis harus mempunyai data yang unique.
Perhatikan Gambar Berikut :

Perhatikan Data NIS no 1

Kita Coba Membuat data dengan NIS yang sama /sudah ada datanya. Hasilnya :

Terdapat 2 data dengan NIS yang sama. Seharusnya jika data NIS sudah ada sebelumnya, maka data gagal dibuat. Bagaimanakah caranya ?? Tentu saja kita gunakan Validasi unique pada t_siswa.


Maka Hasilnya akan seperti ini :


STUDI KASUS 3
Implementasi Fungsi Old untuk Select Option dan radio button
Berikut Codenya :


Hasilnya :

Nah, jadi sekarang jika kita gagal membuat data, maka jenis kelamin & Golongan darah yang diinputkan sebelumnya tidak akan hilang.

Oke segitu saja postingan dari saya untuk kali ini. Mohon maaf bila ada kesalahan, semoga bermanfaat untuk anda. Apabila ada komentar / masukan bisa diisi di kolom komentar. Sampai jumpa di postingan berikutnya dan jika menurut anda Postingan ini bermanfaat bisa diShare ke teman - teman anda.
😃 Salam Coding

Controller & Berinteraksi dengan Database


Hallo, Brother and Sister,
Pada kesempatan kali ini saya akan melanjutkan pembahasan tentang Framework PHP yaitu Controller & Berinteraksi dengan Database. Controller dalam konsep MVC bertugas untuk menghubungkan antara Model dan View. Biasanya, Suatu Controller diperuntukan pada sebuah modul, ex : SiswaController -> merupakan Controller yang didalamnya terdapat fungsi - fungsi yang berhubungan dengan entitas Siswa. Berikut Penjelasan lebih lanjutnya :

CARA MEMBUAT CONTROLLER
Terdapat 2 cara untuk membuat Controller yaitu dengan kode pada CMD atau membuat file Controller secara manual.
Kode Pembuatan Controller : php artisan make:controller namaController
Jika anda ingin menggunakan Cara 2, maka anda harus membuat file pada folder app/Http/Controllers/namaController.php Dan isinya yaitu :


Bentuk umum Route pada web.php Route::get(‘/nama-rute’, Controller@function);
ex : 

Nah, Router tersebut akan mengarah kepada file SiswaController -> function index(). Pada function index kita buat untuk mengirimkan data pada tabel Siswa ke file View.
Nah, code diatas merupakan code untuk pengiriman data dari DB kepada file view belajarInteraksiDB. Cara menampilkannya :
Penjelasan :
  • Facade DB merukapan facade dari Laravel untuk berinteraksi dengan Database. Facade itu sendiri adalah hasil dari implementasi class dengan method static, sehingga programmer dapat dengan mudah mengaksesnya hanya dengan memanggil nama class dan fungsinya secara static (Facades Pattern).



  • DB digunakan untuk berinteraksi dengan tabel-tabel pada database namun belum berbasis objek (Belum menggunakan Eloquent ORM), tetapi sudah menggunakan fungsi-fungsi yang disediakan oleh Laravel.

  • @foreach
         Digunakan untuk melakukan looping data yang terdapat pada array atau object. Bentuk umum nya sama seperti penggunaan foreach pada php.
foreach ($object/array as $item)

  • @endforeach
         Digunakan untuk menutup blok foreach yang sudah didefinisikan di awal. Setiap blok foreach harus ditutup dengan endforeach

STUDI KASUS
Mengisi Tabel t_kelas, menampilkan data pada t_kelas dengan melewati controller

Tabel t_kelas pada Database

Routing :

Pembuatan Function pada SiswaController :

Menampilkan Data :

Hasilnya :
Bagaimana ?? Mudah Bukan ? Lalu Bagaimana jika kita ingin menambahkan pengkondisian dalam menampilkan data ? Tentu saja bisa. Berikut saya memaparkannya :

STUDI KASUS
  • Menampilkan Data dari t_kelas diurutkan berdasarkan lokasi_ruangan
Code :

Hasilnya :
  • Menampilkan Data dari t_kelas yang memiliki nama Wali Kelas diawali huruf A
Code :

Hasilnya :
  • Menampilkan Data dari t_kelas diurutkan berdasarkan Jurusan & Nama Kelas
Code :

Hasilnya :
  • Menampilkan Data dari t_kelas yang jurusannya Teknik Audio Video saja
Code :

Hasilnya :
Ya, sama seperti Database Migration kemarin, disini kita juga tidak perlu menuliskan query SQL untuk mengoperasikan Database. Pembahasan diatas merupakan cara SELECT sebuah tabel pada database dengan bantuan Laravel Framework

Oke segitu saja postingan dari saya untuk kali ini. Mohon maaf bila ada kesalahan, semoga bermanfaat untuk anda. Apabila ada komentar / masukan bisa diisi di kolom komentar. Sampai jumpa di postingan berikutnya dan jika menurut anda Postingan ini bermanfaat bisa diShare ke teman - teman anda.
😃 Salam Coding