Saya sarankan sebelum mengikuti tutorial ini, sebaiknya Anda telah menguasai tutorial saya sebelumnya tentang Pembuatan Autentikasi Sederhana. Karena ada beberapa yang tidak akan saya definisikan dengan jelas disini, seperti:
Instalasi Laravel
Generate Key untuk alasan Security
Pengaturan Database
dan mungkin ada lagi yang lainnya.
Jadi, saya asumsikan kalian memahami beberapa poin diatas sebelum meneruskan bacaan ini.
Saya juga mengharapkan kalian betul-betul memperhatikan tiap baris komentar yang ada pada syntax-syntax yang akan dibuat nanti. Alasannya karena penjelasan dari syntaxnya akan dibahas langsung disana.
Oke, mula-mula saya ingin pastikan kalian tahu dulu maksud dari CRUD disini. CRUD merupakan singkatan dari Create, Read, Update dan Delete. Bila diartikan berarti Menciptakan, Membaca, Memperbarui dan Menghapus.
Hampir semua jenis merk aplikasi pasti terdapat aktifitas CRUD didalamnya.
Sekarang pertanyaannya adalah:
Apa yang diciptakan?
Apa yang dibaca?
Apa yang diperbarui? dan
Apa yang akan dihapus?
Jawabannya TERGANTUNG. Tergantung dari apa yang menjadi isi dari aplikasi yang ingin Anda bangun. Sebagai contoh sederhana mari kita perhatikan bagaimana cara kerja sebuah blog?
Apakah tulisan dalam blog itu muncul dengan sendirinya?AJAIB. Tentu saja ada yang mengolah kata-katanya. Setelah kata-kata diolah, mau tidak mau si blogger harus terlibat langsung dengan aplikasi miliknya. Dengan cara men-CIPTA-kan tulisan baru berisi kata-kata yang diolah tadi agar bisa masuk kedalam database aplikasi blog miliknya.
Untuk diketahui bahwa isi tulisan si blogger tadi ditampung didalam database, artinya si aplikasi-lah yang kemudian akan mem-BACA-kan isinya dari database untuk ditampilkan kembali kepada si blogger.
Sekarang bagaimana bila si blogger melakukan kesalahan dalam penulisan kata? Atau mungkin ia ingin menambahkan beberapa kata dalam tulisannya? Tentunya aplikasi harus berkemampuan untuk mem-PERBARUI tulisan. Dimana proses kerjanya aplikasi akan mengambil isi dari database, dan si penulis melakukan perubahan, dan diakhiri dengan aplikasi mengubah isi tulisan lama dengan tulisan terbaru.
Dan bila si blogger merasa bila tulisan miliknya tidak layak untuk ditampilkan atau bahkan disimpan lagi, maka aplikasi seharusnya bisa membantunya meng-HAPUS tulisan tersebut dengan hanya sekali tekan.
Jadi jawaban untuk studi kasus diatas terkait ke-empat pertanyaan tadi adalah TULISAN.
BLOG -> Menciptakan TULISAN
BLOG -> Membaca TULISAN
BLOG -> Memperbarui TULISAN
BLOG -> Menghapus TULISAN
Dan untuk itulah, saya akan mencoba memperkenalkan CRUD pada Laravel dan bagaimana sistem kerjanya serta cara membuatnya bagi mereka yang ingin membuat proyek menggunakan Laravel.
Biasanya, aktifitas CRUD terjadi dalam Admin Panel yang secara tak langsung akan kita bangun. Sebagai contoh penerapannya, saya akan membuat Aplikasi Biodata Sederhana. Mari kita mulaiā¦
Berikut demo hasil akhir aplikasi yang akan kita bangun :
##Persiapan Awal
###Siapkan Database
Langsung saja eksekusi perintah berikut melalui terminal atau cmd :
php artisan migrate:make buat_tabel_biodata
Anda bisa menemukan file migration yang dihasilkan di app/database/migrations.
Selanjutnya tambahkan beberapa syntax didalamnya.
Pastikan Anda telah melakukan pengaturan database. Kemudian lakukan perintah berikut :
php artisan migrate
Artinya sekarang kita memiliki tabel Biodata yang nantinya akan kita jadikan korban CRUD.
###Model
Profesi si Model ini simpel, yaitu sebagai perantara antara database dengan aplikasi.
Sekarang coba masuk ke direktori app/models. Lalu buat model baru dengan nama Biodata.php.
Tugas model selesai.
###Route
Berapa jumlah route yang kira-kira dibutuhkan? Untuk mengetahuinya Anda bisa membayangkan alur programnya. Mulai dari tampilan awal, hingga proses delete.
Untuk mempersingkat waktu, saya buatkan 7 buah route yang dibutuhkan untuk pembuatan aplikasi ini :
Menampilkan semua data biodata
Menampilkan form pembuatan biodata baru
Melakukan proses pembuatan biodata baru
Menampilkan biodata perorangan
Menampilkan form perubahan biodata baru
Melakukan proses perubahan biodata
Hapus biodata berdasarkan id
Sekarang coba buka app/routes.php, dan buat ke-7-nya jadi seperti berikut :
Sebelum lanjut, coba akses semua URL yang ada pada route diatas. Bila berhasil dan tidak ada yang error kita lanjut ke Controller.
###Controller
Jujur saja, sebenarnya pihak Laravel sendiri telah menyediakan fitur resource controller yang sebenarnya sangat membantu dalam pengolahan sebuah aktivitas CRUD karena sifatnya yang otomatis. Mungkin akan saya buatkan tutorial tersendiri nanti untuk yang satu ini.
Berhubung disini konteksnya saya ingin agar si pembaca mengerti alur programnya, maka saya akan jelaskan pembuatan semuanya secara manual saja.
Sebelumnya kita sempat membuat 7 buah route. Dan semua itu nantinya akan kita alih fungsikan menuju ke Controller.
Untuk itu, kita akan membuatkan 7 buah fungsi pada controller untuk menangani masing-masing route tadi.
Sekarang masuk ke direktori app/controllers/, dan buat file baru bernama BiodataController.php. Lalu isi seperti berikut :
Controller dengan 7 fungsi telah disiapkan, sekarang kita siapkan Views untuk tampilannya.
###View
Untuk menentukan halaman yang kita butuhkan, sepertinya kita lagi-lagi ditekankan untuk berkhayal.
Mari perhatikan perumpamaan dari saya, saya ambil dari route yang telah kita buat sebelumnya :
Menampilkan semua data biodata -> Butuh View -> index.blade.php
Menampilkan form pembuatan biodata baru -> Butuh View -> buat.blade.php
Menampilkan form perubahan biodata baru -> Butuh View -> ubah.blade.php
Melakukan proses perubahan biodata
Hapus biodata berdasarkan id
Bener tidak?
Bila diperhatikan kembali, kita butuh 4 buah view untuk memenuhi standar aplikasi CRUD yang akan kita bangun.
Sekarang masuk ke direktori app/views/ dan ciptakan folder bernama biodata lalu buat 4 buah view baru disana. Strukturnya kurang lebih seperti berikut :
Dan sekarang saatnya untuk membuat Model, Controller, Route dan View yang kita siapkan tadi agar bisa saling bekerja sama.
Penerapan Program
Bila diingat-ingat lagi, sekarang kita memiliki :
Keterangan
Request
URL
Method
Halaman Index, menampilkan semua biodata
GET
localhost:8000
index()
Halaman yg berisi Form inputan Biodata Baru
GET
localhost:8000/buat
baru()
Memproses Form lalu menginputnya kedalam database
POST
localhost:8000/buat
buat()
Menampilkan Biodata perorangan
GET
localhost:8000/lihat/{id}
lihat($id)
Form untuk mengubah isi Biodata perorangan
GET
localhost:8000/ubah/{id}
ubah($id)
Proses untuk mengubah data lama menjadi baru
PUT
localhost:8000/ubah/{id}
ganti($id)
Tindakan untuk menghapus Biodata
GET
localhost:8000/hapus/{id}
hapus($id)
Nanti kita akan coba membuatnya berurutan dari Create, Read, lalu Update dan Delete. Namun sebelum itu semua, kita akan membuat Index-nya terlebih dahulu.
###INDEX
Index disini akan menampilkan informasi atau daftar semua isi yang ada dalam database Anda yang dikemas kedalam sebuah table, dengan ketentuan database telah memiliki isi. Sedangkan bila database belum memiliki isi, maka INDEX akan menampilkan halaman seperti pada tampilan berikut :
Lakukan perubahan pada tahap-tahapan berikut :
####Route
####Controller
####View
###CREATE
Create disini tujuannya untuk menciptakan atau menambah data biodata kedalam database. Yang nantinya akan ditampilkan dalam daftar INDEX dan tentu saja dalam READ dipembahasan selanjutnya.
Setelah Anda menyelesaikan CREATE pastikan hasilnya seperti ini :
####Route
####Controller
####View
###READ
Bila tadi kita telah berhasil melakukan penambahan data kedalam database, sekarang saatnya untuk menampilkan informasi lengkap mengenai data yang kita masukkan pada tahap CREATE tadi.
Untuk penerapannya, ikuti langkah berikut :
####Route
####Controller
####View
###UPDATE
Kita memiliki halaman index, dimana ia akan menampilkan seluruh data yang ada dalam database dalam bentuk tabel.
Kita juga bisa melakukan penambahan biodata baru kedalamnya, sekaligus menampilkan kembali isi yang telah kita tambahkan.
Nah, penting untuk kita agar dapat melakukan perubahan data apabila suatu saat kita dapati bahwa terdapat data yang isinya kurang valid. Itu artinya kita harus menambahkan fitur UPDATE kedalam aplikasi.
Caranya ikuti langkah-langkah berikut :
####Route
####Controller
####View
Dengan ini, fitur UPDATE selesai.
###DELETE
Terakhir adalah fitur untuk menghapus salah satu isi database. Langsung saja :
####Route
####Controller
####View
Untuk tahap ini tidak membutuhka view baru, hanya perubahan pada halaman index saja.
###Selesai
CRUD selesai. Coba jalankn perintah php artisan serve melalui cmd atau terminal lalu kunjungi localhost:8000 melalui browser.
###KESIMPULAN
Sebenarnya bila ingin membuat sebuah aktivitas CRUD dalam aplikasi yang sedang kita bangun tata caranya sangat beragam, bahkan ada yang bersifat otomatis dengan memanfaatkan laravel generator milik Jeffrey Way. Disini sengaja dibuat sedikit lebih ribet agar supaya pembaca yang mengikuti tutorial ini mengerti dan paham, khususnya mengenai fungsi-fungsi dasar yang sering ditemui dan digunakan dalam membangun sebuah proyek menggunakan Laravel.
Untuk yang ingin melihat langsung hasil dari tutorial ini bisa :