Modul Praktikum Pemrograman Web - Database, Model and Eloquent
Modul Praktikum Pemrograman Web - Database, Model and Eloquent
Dalam pembuatan aplikasi berbasis web, ada tiga komponen utama yang perlu
dipelajari, dimana ketiganya saling berinteraksi satu sama lain, yakni backend (laravel),
frontend (bootstrap), dan database. Pada praktikum sebelumnya kita telah mempelajari
dua komponen utama dasar, yakni backend dan frontend yang saling terkait dalam
pengembangannya. Tujuan dari pengembangan aplikasi berbasis web adalah sebagai
media informasi yang interaktif yang dapat digunakan oleh pengguna. Dalam
menghasilkan informasi, diperlukan sebuah wadah/tempat yang dapat menampung data
untuk kemudian dikelola oleh backend dan frontend, sehingga menghasilkan sistem
informasi.
Pada praktikum kali ini, kita akan mempelajari komponen ketiga dalam
pengembangan web, yakni database. Namun, kita tidak akan terlalu dalam mempelajari
bagaimana struktur dan kerangka suatu database lebih lanjut, hanya penggunaannya
saja agar dapat diintegrasikan menjadi sebuah system informasi. Misalkan untuk
membangun sebuah aplikasi portal berita, basis data dapat digunakan untuk menyimpan
daftar berita yang pernah dipublikasikan oleh aplikasi. Dalam penggunaan framework
Laravel, proses integrasi tersebut dapat dipelajari dalam materi database, model, dan
eloquent.
A. Database
Database (basis data) merupakan aspek yang sangat penting dalam sistem
informasi yang berfungsi sebagai tempat penyimpanan data untuk diolah lebih lanjut.
Proses memasukkan dan mengambil data ke dan dari media penyimpanan data
Konfigurasi environmental pada laravel ini ada dalam sebuah file yang bernama
.env. Awalnya file tersebut bernama .env.example. tapi jika kita menginstall Laravel
dengan menggunakan composer, maka file .env.example tersebut akan langsung di
duplikat dan di rename menjadi .env. agar konfigurasi .env langsung aktif pada project
laravel kita. Jadi, file .env.example ini hanya menjadi semacam file backup saja jika
suatu saat kita salah mengubah pengaturan yanga ada dalam file .env, kita bisa
mengambalikannya ke versi default kembali dengan cara melihat isi dari .env.example.
Dengan ada nya file .env, keseluruhan pengaturannya berada dalam 1 buah file
ini saja. sehingga kita tidak perlu berpindah-pindah file jika ingin mengubah-ubah
pengaturan project laravelnya. cukup pada 1 buah file saja, yaitu file .env. karena semua
pengaturannya bisa kita ubah di 1 file ini. Semua konfigurasi yang ada dalam file .env
ini lebih diutamakan di bandingkan pengaturan pada file lainnya yang ada dalam folder
config. Misalnya, jika kita membuat pengaturan nama database dengan nama
“perpustakaan” dan pada file database.php dalam folder config, kita buat nama database
Dapat dilihat pada Gambar diatas, yang perlu diubah dalam konfigurasi
database adalah sebagai berikut:
a. DB_DATABASE = dengan nama database anda di mysql, dalam hal ini
“laravel_blog”
b. DB_USERNAME = dengan nama username mysql anda, defaultnya
adalah “root”
c. DB_PASSWORD = ubahlah dengan password database anda, jika
kosong, anda bisa menuliskan “null” saja atau biarkan tidak terisi
Dapat dilihat pada Gambar diatas, terdapat tiga file migration bawaan Laravel.
Tiga file tersebut pada dasarnya dapat dihapus, namun pada praktikum kali ini
diabaikan saja, yang pada praktikum selanjutnya bisa saja diperlukan.
2. Untuk membuat file migration baru, kita tidak perlu membuatnya secara manual
dengan “new file”. Pembuatan file migration sama halnya dengan controller,
dimana kita dapat membuatnya menggunakan perintah artisan melalui CMD.
Berikut perintah yang dapat digunakan dalam membuat file migration, yakni
“make:migration”:
Pada Gambar diatas dapat dilihat bahwa file migration yang dibuat juga akan
secara otomatis mencatat waktu pembuatannya ke dalam nama file tersebut,
sehingga dapat diketahui kapan pembuatannya dilakukan.
Pada Gambar diatas, file migration awal Laravel seaca otomatis akan
membuatkan 2 buah method atau function, yaitu method up() untuk membuat
tabel, dan method down() untuk menghapus tabel atau rollback. Pada Langkah
berikutnya, kita perlu memodifikasi sintaks migration diatas agar sesuai dengan
kerangka tabel yang hendak dibuat, seperti berikut:
Dapat dilihat pada Gambar diatas, kita telah berhasil membuat tabel
berdasarkan 4 migration yang ada. Berikut hasil dari tabel yang dibuat pada
laman phpMyAdmin:
Seeding
Seeding pada laravel adalah sebuah fitur untuk mengisi data pada database tanpa
menggunakan query ataupun phpMyAdmin. Fitur ini sangat berguna dalam pengujian,
dikarenakan pada saat melakukan pengembangan, terkadang kita memerlukan beberapa
data sebagai contoh untuk di olah pada aplikasi kita. Misalnya, pada saat membuat
sistem informasi kepegawaian, kita memerlukan beberapa contoh data untuk menguji
validitas koneksi sistem terhadap tabel pegawai. Di laravel, terdapat fitur seeding yang
dapat dimanfatkan untuk memasukkan data ke database dengan cepat melalui perintah
php artisan. Dalam pengelolaanya, keseluruhan file seeder terdapat pada folder
“database/seedeers”, dimana pada saat instalasi telah disediakan sebuah contoh file
seeder, yakni “DatabaseSeeder.php” seperti berikut:
Pada Gambar diatas dapat dilihat bahwasanya telah berhasil dibuat file seeder
bernama “PostSeeder” yang dalam praktikum ini digunakan sebagai input data
pada tabel “posts”. Nama tersebut dapat dikostumisasi sesuai kebutuhan, namun
lebih baik jika dapat mewakili tujuan dari file seeder tersebut. Hasil file
“PostSeeder” dapat dilihat pada folder “database/seeders”, seperti berikut:
Sintaks untuk menginput data ke tabel posts dapat kita tulis dalam method run()
diatas.
2. Selanjutnya, modifikasi sintaks pada file “PostSeeder” untuk memasukkan data
pada kolom-kolom tabel “posts” yang telah dibuat pada praktikum migration
sebelumnya. Berikut modifikasi sintaksnya:
Pada Gambar diatas, dapat dilihat bahwa kita menggunakan library “DB” dalam
memasukkan data, yang sebelumnya kita perlu mengimpornya terlebih dahulu,
seperti pada baris 6. Pada perintah “DB”, kita perlu mendefinisikan terlebih
dahulu nama tabel yang hendak dimasukkan data, yakni “posts”. Kemudian,
dapat menggunakan fungsi “insert” untuk memasukkan data yang dirincikan
Dapat dilihat pada Gambar diatas, bahwa data yang dimasukkan dari file
“PostSeeder” telah berhasil dan sesuai masuk dalam database.
Query Builder
Pada praktikum ini, kita akan melanjutkan tahap pengaksesan data dari tahap
sebelumnya, pembuatan dan konfigurasi database. Dalam melakukan pengaksesan
data, kita akan mencoba menggunakan query builder yang merupakan sebuah perintah
untuk menjalankan perintah database. Query builder menggunakan PDO parameter
yang berfungsi untuk melindungi aplikasi dari serangan injeksi SQL, dimana ketika
menggunakan query builder kita tidak perlu lagi melakukan filter string sebagai
binding. Sintaks query builder sangat familiar, dikarenakan secara struktur tidak begitu
berbeda dengan query SQL native pada umumnya. Perbedaannya terdapat pada kita
tidak perlu menuliskan sintaks query SQL secara menyeluruh, melainkan
Dapat dilihat pada Gambar diatas, pengkasesan data pada tabel “posts”
menggunakan query builder berupa sintaks “DB” yang diikuti table dan fungsi
get. Maksud dari sintaks tersebut adalah kita mengambil keseluruhan data yang
terdapat pada tabel “posts”, kemudian dimasukkan dalam variabel “$posts”.
Alur proses selanjutnya, data pada variabel “$posts” dipassing ke
tampilan/halaman index yang akan kita buat pada langkah selanjutnya. Dalam
penggunaan query builder, kita perlu menambahkan/mendeklarasikan library
“DB” terlebih dahulu pada baris ke-6.
4. Selanjutnya, buka file index.blade.php dan salin seluruh sintaks pada file
dashboard.blade.php, dimana pada halaman index ini juga menggunakan navbar
dan sidebar yang sama, dikarenakan termasuk dalam manajemen admin.
Berikut tampilannya:
Dapat dilihat pada Gambar diatas, kita telah berhasil menampilkan data dari
tabel “posts” dalam bentuk tabel pada halaman manajemen post. Jika nantinya
terdapat penambahan pada data tabel “posts”, maka variabel “posts” pada
“PostController” akan secara otomatis mengaksesnya dan menampilkannya
dalam halaman diatas.
B. Model
Model merupakan salah satu dari bagian MVC yang akan berkomunikasi
dengan database. Model yang sudah terhubung ke database akan digunakan/dipanggil
via Controller sebagaimana konsep MVC itu berjalan. Model pada Laravel sangat
penting untuk menghubungkan antara aplikasi dengan tabel, khususnya jika hendak
menggunakan fitur eloquent, namun jika menggunakan query builder bersifat opsional.
Pada praktikum ini, akan dipaparkan pembuatan model “Post” agar dapat terhubung
dengan tabel “posts”. Seperti halnya pembuatan controller, migration dan seeder, dalam
membuat model dapat dilakukan menggunakan perintah artisan “make:model”. Berikut
langkah-langkahnya:
1. Buka terminal CMD, kemudian tuliskan perintah artisan “make:model” yang
diikuti nama model, seperti berikut:
C. Eloquent
Eloquent adalah sebuah fitur untuk mengelola data yang ada pada database
dengan lebih sederhana. Eloquent ORM (Object Relation Mapping) menyediakan
fungsi-fungsi active record, atau fungsi-sungsi query sql untuk mengelola data pada
database. Fungsi-fungsi query tersebut telah dibuat dan disediakan secara default oleh
Laravel, sehingga kita tidak perlu lagi mengetik query sql yang panjang. Sederhananya,
dengan Eloquent kita dapat mengelola data pada database hanya melalui satu buah
model. Misalnya kita memiliki tabel “posts”, maka kita juga akan mempunyai sebuah
model dengan nama “post”, dimana dengan model tersebut kita dapat mengelola data
yang ada pada tabel “posts” dengan mudah dan cepat. Pada praktikum ini, kita akan
melanjutkan berdasarkan model “post” yang telah dibuat, dimana pengaksesan data
Pada Gambar diatas, dapat dilihat bahwa dilakukan perubahan terhadap metode
pengaksesan data, dimana pada praktikum sebelumnya kita menggunakan query
builder, namun kali ini menggunakan fitur eloquent. Pada sintaks baris ke-6,
telah diubah dari yang sebelumnya kita menggunakan library DB, kemudian
digantikan dengan pengimporan model “Post”. Selanjutnya, dilakukan
perubahan juga pada sintaks baris ke-17, yang sebelumnya menggunakan
sintaks query builder, kemudian digantikan dengan sintaks eloquent. Pada
dasarnya penggunan fitur eloquent ataupun query builder bertujuan sama, yakni
pengaksesan data untuk kemudian di-passing ke tampilan “view”. Perbedaanya
hanya pada bentuk sintaksnya saja, dimana query builder menyerupai sintaks
query, sedangkan eloquent lebih singkat dan sederhana. Pada fitur eloquent,
ketika hendak menampilkan suatu kumpulan data, dibutuhkan model untuk
mendefinisikan tabel yang hendak diakses. Selanjutnya, model diakses dengan
menggunakan fungsi “all()” untuk menampilkan keseluruhan data pada tabel
yang didefinisikan. Fungsi pada eloquent bermacam-macam, bergantung pada
kondisi penggunaanya, yang secara lengkap dijelaskan pada dokumentasi
Laravel di https://laravel.com/docs/8.x/eloquent