| Prime Time

Laravel #20 : Eloquent Laravel

Eloquent Laravel

Pada tutorial ini kita hanya akan berkenalan dengan eloquent, dan belajar cara penggunaan eloquent laravel. Pada tutorial selanjutnya baru kita akan masuk ke cara membuat CRUD dengan eloquent laravel atau eloquent orm.

Oke kita mulai dari pengertian eloquent laravel.

Pengertian Eloquent Laravel

Seperti yang dijelaskan pada dokumentasi laravel, Eloquent adalah sebuah fitur untuk mengelola data yang ada pada database dengan sangat mudah. Eloquent ORM menyediakan fungsi-fungsi active record, atau fungsi-sungsi query sql untuk mengelola data pada database.

Dan fungsi query nya semua sudah dibuat dan disediakan secara default dalam laravel. jadi kita tidak perlu lagi mengetik query sql yang panjang-panjang.

Simpel nya gini, jadi dengan Eloquent, kita bisa mengelola data yang ada pada database dari hanya satu buah model. misalnya kita punya table siswa, maka kita juga akan mempunyai sebuah model dengan nama siswa, nah dengan model siswa ini kita bisa mengelola data-data yang ada pada tabel siswa dengan mudah dan cepat.

Kita bisa menginput data, mengedit, menampilkan, mengupdate, bahkan kita juga bisa menggunakan relasi tabel dengan sangat mudah!.

Struktur penulisan coding nya pun sangat singkat.

Jika secara manual pada PHP native, jika kita ingin mengakses atau menampilkan data dari table siswa, biasanya kita menggunakan query β€œselect * from siswa” kan?

Nah, jika kita menggunakan eloquent laravel, kita cukup mendefinisikan nama modelnya, kemudian kita bisa langsung menggunakan fungsi all() untuk mengambil semua data pada table siswa. jadinya codingan kita sangat pendek, lumayan bisa menghemat tenaga untuk ngetik panjang-panjang :D.

Nah, sampai di sini mudah-mudahan teman-teman sudah bisa menangkap pengertian eloquent orm ini. intinya eloquent adalah fitur bantuan yang disediakan oleh laravel untuk memudahkan kita mengelola data yang ada pada database.

Persiapan

Pastikan teman-teman sudah memiliki database, dan sudah melakukan konfigurasi database pada file .env nya.

Silahkan sesuaikan dengan konfigurasi database teman-teman, di sini saya sudah memiliki sebuah database dengan nama belajar_laravel.

Kemudian sebagai contoh kita akan membuat sebuah table data dan sebuah model yang akan meng-handle table ini.

Misalnya sebagai contoh di sini kita akan membuat sebuah table untuk meyimpan data pegawai. jadi kita buat dulu model pegawai nya.

Untuk membuat model pada laravel, kita bisa membuatnya secara manual atau kita juga bisa menggunakan perintah php artisan.

Untuk membuat model menggunakan php artisan, silahkan buka terminal atau cmd, kemudian masuk ke direktori project laravelnya, dan ketik perintah berikut.

atau jika teman-teman ingin membuatkan file migration untuk table/model pegawai ini teman-teman bisa menulis perintah berikut.

atau

Tutorial migration sudah kita bahas pada tutorial sebelumnya, silahkan teman-teman baca pada tutorial Migration Laravel sebelumnya.

membuat model dan migration laravel

membuat model dan migration laravel

Perhatikan pada gambar di atas, kita memerintahkan untuk membuat model dengan nama β€œPegawai”. tapi kenapa file migration yang dibuat namanya β€œcreate_pegawais_table” ??

Ini karena secara otomatis laravel menerapkan sistem plural atau jamak. dengan bahasa inggris tentunya. jadi pada saat kita membuat model dengan nama pegawai, laravel menganggap nama table yang akan kita buat adalah pegawais.

Jika kita membuat model dengan nama member, maka laravel akan menganggap table nya adalah members.

Jika kita membuat model dengan nama barang, maka laravel menganggap table nya adalah barangs.

Jika kita membuat model dengan nama admin, maka laravel menganggap table nya adalah admins.

Tidak masalah, laravel hanya ingin memudahkan kita dalam penamaan, kita bisa mengatasi masalah ini nantinya jika kita tidak ingin menggunakan plural dari laravel. kita skip saja dulu. akan kita bahas nanti pada bagian model.

Sekarang kita selesaikan bagian migration saja dulu.

Buka file migration create_pegawais_table nya tadi, file migration yang lain boleh teman-teman hapus saja dulu, agar tidak pusing.

Kemudian tambahkan kolum-kolum yang ingin kita buat pada table pegawai. caranya sudah dijelaskan pada tutorial sebelumnya tentang migration laravel. karena ini hanya contoh, saya akan menambahkan kolum id, nama dan alamat saja.

belajar_laravel/database/migrations/2019_01_07_061805_create_pegawais_table

Perhatikan pada file migration di atas, karena kita akan membuat table β€œpegawai”, bukan β€œpegawais”, jadi kita ubah menjadi β€œpegawai”.

migration eloquent

migration eloquent

Kemudian migrate dengan mengetikkan perintah berikut. 

php artisan migrate

php artisan migrate

Oke sekarang sudah berhasil migration, dan lihat database belajar_laravel. kita sudah punya table pegawai sekarang, sesuai dengan yang kita buat pada file migration pegawai.

membuat table dengan migration

membuat table dengan migration

Cara Penggunaan Eloquent Laravel

Sampai tahap ini kita sudah siap untuk menggunakan Eloquent laravel.

Di sini kita coba dasar nya saja dulu, pada tutorial selanjutnya baru kita akan masuk ke tahap yang lebih komplek dengan langsung belajar membuat CRUD dengan eloquent.

Kita akan mencoba menampilkan data dari database dengan dengan menggunakan fitur eloquent laravel.

Karena kita akan mencoba menampilkan data dari table pegawai, kita perlu beberapa data testing pada table pegawai. saya akan mencoba menginput data dummy ke table pegawai dengan menggunakan fitur seeding laravel.

Fitur seeding laravel juga sudah dibahas sebelumnya. silahkan teman-teman baca lagi tutorial seeding dan faker pada laravel.

Karena agak capek dan menyita waktu jika kita menginput data ke table pegawainya secara manual. jadi kita gunakan saja fitur yang sudah ada di laravel. πŸ™‚

Menginput data dummy dengan Faker & Seeding Laravel

Buat class seeding nya terlebih dulu, di sini saya membuat class seeding dengan nama PegawaiSeeder.

Maka akan dibuatkan sebuah file seeder dalam belajar_laravel/database/seeds.

Buka file PegawaiSeeder.php nya dan terapkan Faker di dalamnya.

belajar_laravel/database/seeds/PegawaiSeeder.php

Syntax di atas sudah pernah saya jelaskan pada tutorial Seeding & Faker pada laravel.

Silahkan teman-teman baca lagi tutorial tentang seeding dan faker pada laravel.

Dan jalankan seeder nya dengan perintah php artisan.

membuat data dummy dengan seeding dan faker

membuat data dummy dengan seeding dan faker

dan sekarang kita sudah punya data dummy untuk mencoba fitur eloquent nantinya.

menampilkan data dengan eloquent

menampilkan data dengan eloquent

Eloquent Laravel

Setelah kita punya data untuk mencoba fitur Eloquent Laravel, sekarang buka lagi file model Pegawai.php.Seperti yang saya jelaskan sebelumnya, laravel menerapkan sistem plural atau jamak pada penamaan model dan table. maka kita set dulu nama table yang akan di handle oleh model Pegawai.php. karena secara default laravel menganggap table yang di handle oleh model Pegawai.php adalah table pegawais. sedangkan nama table kita adalah pegawai.

Jadi kita bisa melakukan pengaturan pada model Pegawai.php dengan menambahkan perintah

agar model Pegawai.php men-handle table pegawai, bukan pegawais.

belajar_laravel/app/Pegawai.php

kemudian buat route untuk menampilkan data pegawai dengan eloquent.

belajar_laravel/routes/web.php

di sini kita membuat pengaturan saat route β€˜/pegawai’ diakses, maka akan dijalankan method index pada PegawaiController.php.

Buat controller dengan nama PegawaiController.php menggunakan php artisan.

Kemudian pada PegawaiController.php, ketik perintah berikut.

belajar_laravel/app/Http/controllers/PegawaiController.php

perhatikan pada controller pegawai di atas, pertama pada bagian luar class kita panggil model Pegawai. sesuai dengan letak model yang terletak dalam folder app.

kemudian pada method atau function index (sesuai dengan yang kita buat pada route) kita menggunakan fitur eloquent dengan mengambil data dari table pegawai hanya dengan fungsi all().

dan terakhir kita passing datanya ke view pegawai.

Buat sebuah view baru dengan nama pegawai.blade.php.

belajar_laravel/resources/views/pegawai.blade.php

Pada view pegawai.blade.php, kita tangkap data yang dikirim dari controller dan kita tampilkan dengan menggunakan foreach.

Oke selesai teman-teman.

Coba teman-teman jalankan.

dan akses

localhost:8000/pegawai

Maka hasilnya akan seperti berikut.

Eloquent Laravel

Eloquent Laravel

Berkenalan Lebih Dalam Dengan Eloquent

Jika sebelumnya kita telah berhasil menampilkan semua data yang ada pada table pegawai, sekarang kita akan berkenalan sedikit lebih jauh dengan beberapa fungsi eloquent yang bisa teman-teman gunakan dikemudian hari pada saat membangun aplikasi atau sistem informasi.

Eloquent telah menyediakan beberapa fungsi lainnya seperti menyeleksi data berdasarkan ID data, menampilkan record data yang pertama, meyeleksi data yang lebih spesifik (WHERE), dan masih banyak lagi.

Mendapatkan Data Record Yang Pertama ( first () )

Pada method index(), coba teman-teman gunakan fungsi first(). seperti contoh berikut.

Maka yang tampil adalah data pegawai yang pertama.

Mendapatkan Data Berdasarkan ID ( find() )

Untuk menyeleksi data pegawai berdasarkan id, kita bisa menggunakan fungsi find().

Perhatikan contoh berikut.

Di dalam parameter fungsi find() teman-teman bisa mengisi id pegawai yang ingin ditampilkan.

Pada contoh di atas, kita memasukkan angka 1, berarti yang ditampilkan adalah data pegawai Raisa Suci Hartati.

Seleksi Data dengan ( where() )

Butuh Query yang lebih spesifik lagi?

Kita bisa gunakan fungsi where. misalnya kita ingin menyeleksi data pegawai yang bernama Jamal Uwais, maka querynya seperti berikut.

Atau

Ada banyak yang bisa kita terapkan fungsi where() ini, di antaranya jika teman-teman ingin menampikan data pegawai yang id nya lebih besar dari 10, teman-teman bisa menulisnya seperti berikut.

jika ingin lebih besar sama dengan 10,

Jika ingin menampilkan data pegawai yang id nya lebih kecil dari, bisa menggunakan tanda β€œ<β€œ.

Sangat simpel.

Jika ingin membuat pencarian data, misalnya ingin menampilkan semua data pegawai yang ada huruf a nya, maka penulisannya seperti berikut.

Membuat Pagination

Jika teman-teman ingin membuat pagination,

Teman-teman bisa gunakan fungsi paginate(). dan isi paremeternya dengan berapa jumlah record data yang ingin ditampilkan perhalaman.

Selanjutnya untuk membuat link penomoran paginationnya, baca di sini.

Masih ada banyak sekali kelebihan kita menggunakan Eloquent laravel. ini hanya contoh kecilnya saja. ini hanya contoh cara penggunaan Eloquent Laravel.

Bahkan kita juga bisa langsung menerapkan relasi table seperti misalnya Many to Many atau One to Many dan lain-lain.