Mudahnya Mengolah Data Menggunakan Model dan Eloquent pada Laravel

Part 9 — Model and Eloquent

Eko Simanjuntak
Jan 13 · 5 min read

Setelah mempelajari bagaimana mengolah request dengan controller, maka selanjutnya kita akan mempelajari bagaimana mengolah data menggunakan model dan eloquent. Sebelum kita lanjutkan ke materi, mari kita lihat kembali gambar dibawah ini.

Taken from selftaughtcoders.com

Jika kita perhatikan dari gambar diatas, controller akan menggunakan model untuk berhubungan ke database. Model akan berperan untuk menyimpan, mengambil, mengubah, dan menghapus data pada database. Lalu bagaimana kode program untuk mengimplementasikan model?

Membuat File Model

Pertama sekali, kita akan men-generate file model kita menggunakan Artisan CLI. Untuk membuat file model menggunakan Artisan CLI, jalankan perintah berikut

Dengan menjalan perintah diatas, file model kita akan tergenerate secara otomatis. Sebelumnya kita lanjut, mari kita bedah perintah diatas.

  • Book adalah parameter yang kita berikan sebagai nama dari file model yang akan kita buat.

Berikut adalah file model yang sudah ter-generate

Bisa kita perhatikan bahwa kelas Book adalah turunan dari kelas Model. Kelas Model sendiri adalah bagian dari library Eloquent , yaitu library yang membantu kita mengolah data pada aplikasi Laravel. Eloquent sudah menyediakan fitur-fitur yang luar biasa untuk mempermudah pekerjaan kita menggunakan Laravel. Jika teman-teman berpikir akan menuliskan kode program SQL untuk proses pengolahan data, maka teman-teman salah. Kita tidak perlu lagi menuliskan kode program SQL untuk mengolah data, melainkan Eloquent yang akan menangani itu semua. Bagaimana bisa?

Menggunakan Model Pada Controller

Setelah model Book tergenerate, sekarang kita akan menggunakan model Book pada contoller. Kita akan mengubah kode program pada controller kita sesuai dengan tugasnya masing-masing, seperti untuk mengambil semua data buku, mengambil satu data buku, menambah data buku, mengubah data buku, dan menghapus data buku.

Mengambil Semua Data

Fungsi untuk ngambil semua data buku

Potongan kode diatas adalah fungsi untuk mengambil semua data buku. Mari kita bedah kode diatas.

  • $book = Book::all() adalah potongan kode untuk melakukan pengambilan data buku dari database. Fungsi all pada model sama dengan melakukan eksekusi kode SQL select * from books. Luar biasa bukan? Tanpa sintaks SQL kita dapat melakukan query SQL dengan mudah.
  • return $books adalah potongan kode untuk mengembalikan semua data buku.

Mengambil Satu Data Buku

Fungsi untuk mengambil satu data buku

Potongan kode diatas adalah fungsi untuk mengambil satu data buku sesuai dengan ID buku yang diberikan. Mari kita bedah kode diatas.

  • public function show($id) adalah pendeklarasian fungsi. Fungsi ini menerima satu parameter yaitu $id. Nilai dari parameter $id akan ditentukan dari nilai yang diberikan pada router ketika pemanggilan URL. Untuk lebih jelasnya mari kita perhatikan potongan kode router dan controller kita. Berikut adalah router yang kita gunakan untuk mengambil satu data buku.

Pada router, kita menentukan akan menerima satu parameter yaitu {id}. Nilai dari paramater {id} ini akan menjadi nilai dari parameter $id pada public function show($id).

  • $book = Book::find($id) adalah potongan kode untuk mengambil satu data buku sesuai ID yang diberikan. Fungsi find($id) pada model sama dengan melakukan eksekusi kode SQL select * from books where id=?.
  • return $book adalah potongan kode untuk mengembalikan data buku.

Menambah Data Buku

Fungsi untuk menambah data buku

Potongan kode diatas adalah fungsi untuk menambah data buku. Mari kita bedah kode diatas.

  • public function store(Request $request) adalah pendeklarasian fungsi. Fungsi ini akan menerima satu parameter yaitu $request. Nilai $request adalah informasi semua informasi mengenai request tersebut, seperti header, body, query paramter, dan lain-lain. Untuk $request kita tidak perlu menentukannya pada router. Terkhusus untuk $request, Laravel akan menangani itu untuk kita.
  • $book = new Book(); adalah potongan kode untuk menciptakan object buku baru.
  • $book->title = $request->title adalah potongan kode untuk menset title buku yang diambil dari request body. Hal yang sama akan berlaku untuk author, publication, dan year.
  • $book->save() adalah potongan kode untuk menyimpan data buku ke database. Fungsi save() pada model sama dengan melakukan eksekusi kode SQL insert into books (title, author, publication, year, created_at, updated_at) values (Laravel Series, Eko, Easyread, 2019, 01/01/2020 19:12:12, 01/01/2020 19:12:12). Semakin mudah bukan? Oh ya, mungkin teman-teman bingung dimana kita menset nilai dari created_at dan updated_at nya. Kita tidak perlu mensetnya, melainkan Laravel akan menangani itu untuk kita.

Mengubah Data Buku

Fungsi untuk mengubah data buku

Potongan kode diatas adalah fungsi untuk mengubah data buku. Sekilas potongan kode diatas mirip dengan fungsi untuk menambah data buku. Mari kita bedah.

  • public function update(Request $request, $id) adalah pendeklarasian fungsi. Fungsi ini akan menerima dua parameter yaitu $request dan $id. $request akan menampung informasi mengenai request tersebut, termasuk dengan data baru yang akan dipakai untuk menggantikan data lama. $id akan menampung informasi ID buku yang akan diperbaharui.
  • $book = Book::find($id) adalah potongan kode untuk mengambil data buku sesuai dengan ID yang diberikan.
  • $book->title = $request->title adalah potongan kode untuk menset nilai terbaru untuk title. Hal ini berlaku untuk author, publication, dan year. Untuk nilai dari created_at tidak akan berubah sedangkan nilai dari updated_at akan ditangani oleh Laravel.
  • $book->update() adalah fungsi untuk menyimpan perubahan data pada database. Fungsi update() sama dengan mengeksekusi sintaks SQL update books set title = Tutorial Laravel, author = Simanjuntak, publication = Medium, year = 2020, created_at = 01/01/2020 19:12:12, updated_at = 23/01/2020 14:12:44 where id = 1

Menghapus Data Buku

Fungsi untuk menghapus data buku

Potongan kode diatas adalah untuk menghapus data buku. Mari kita bedah kode diatas.

  • public function destroy($id) adalah pendeklarasian fungsi. Fungsi ini akan merima satu parameter yaitu $id dari buku yang akan dihapus. Seperti fungsi lainnya, nilai dari $id akan ditentukan dari nilai yang kita berikan ketika pemanggilan URL.
  • Book::find($id) adalah kode untuk mengambil data buku sesuai dengan ID yang diberikan.
  • $book->delete() adalah kode untuk menghapus data buku. Fungsi delete() sama dengan melakukan eksekusi kode program delete from books where id = 1.

Begitulah cara kita mengolah data pada aplikasi Laravel menggunakan Eloquent. Masih banyak fitur eloquent yang dapat digunakan. Teman-teman bisa mencoba eksplorasi sendiri.

Sampai jumpa di-part berikutnya!

Taken from me.me

Cappy Hoding! ❤️ = ☕️ + 💻


Easyread

Easy read, easy understanding.

Eko Simanjuntak

Written by

SRE at Gojek

Easyread

Easyread

Easy read, easy understanding. A good writing is a writing that can be understood in easy ways

More From Medium

More from Easyread

More from Easyread

More on Laravel from Easyread

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade