Minggu, 24 Februari 2019

CONTROLLERS & INTERACTING WITH DB

Pada kali ini saya akan menjelaskan menggunakan controllers dan interacticng dengan db di laravel

CONTROLLERS

Pada Konsep MVC, Controller adalah yang bertugas untuk menghubungkan Model dengan View, Biasanya, satu buah Controller untuk sebuah modul. Misalnya kita memiliki SiswaController, didalamnya terdapat fungsi-fungsi yang berhubungan dengan entitas/modul .

MEMBUAT CONTROLLER 

Buka CMD, masuk ke folder root project laravel anda, jalankan perintah berikut

php artisan make:controller SiswaController



HUBUNGKAN ROUTE DENGAN CONTROLLER 

Buka file routes/web.php

Bentuk umum:
Route::get(‘/nama-rute’, Controller@function);



Buat fungsi baru pada controller



Buat fungsi index pada SiswaController, pindahkan perintah yang dijalankan pada routes kedalam fungsi index

PENJELASAN PENULISAN CONTROLLER

Nama Controller harus PascalCase dan diakhiri dengan Controller

Nama controller harus berbentuk PascalCase, setiap kata pertama adalah huruf kapital. Contoh: SiswaController, KelasController, GuruController, dsb.

Nama fungsi pada Controller

Nama fungsi pada controller sebetulnya bebas, tidak ada aturan khusus. Namun pada umumnya setiap controller memiliki fungsi index, create, store, edit, update dan show yang nantinya berhubungan dengan CRUD.
Nama fungsi harus berbentuk camelCase.
*Basic Coding Standard : https://www.php-fig.org/psr/psr-1/


INTERAKSI DENGAN DATABASE 

Isi data dummy

Pada percobaan berikutnya, kita akan mencoba menampilkan data dari tabel t_siswa. Sebelumnya isilah data pada tabel t_siswa minimal 5 data yang berbeda.




Buka file app/Http/Controllers/SiswaController.php



Buka file resources/views/belajar.blade.php



PENJELASAN FACADE DB 

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).

*Lebih jauh: https://medium.com/a-young-devoloper/understanding-laravel-facades-4802025899e6

DB bentuk standard untuk berinteraksi dengan Database

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

PENJELASAN TEMPLATE BLADE

@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

*Lebih detail: https://laravel.com/docs/5.7/blade#loops

QUERYING DATA 

ORDER BY

Tampilkan data dari tabel t_siswa, diurutkan berdasarkan jenis_kelamin




STUDI KASUS - 1

Pindahkan 3 route yang sebelumnya anda buat di routes ke SiswaController



STUDI KASUS - 2

Isi data dummy untuk tabel t_kelas dengan data kelas XI di SMK Negeri 4 Bandung (Semua jurusan, 13 kelas)



Lakukan hal yang sama seperti tabel t_siswa untuk tabel t_kelas, buatlah controller dan modifikasi view nya untuk menampilkan data dari t_kelas







STUDI KASUS - 3

Lakukan beberapa query dibawah ini untuk menampilkan data pada t_kelas

Tampilkan data dari t_kelas, diurutkan berdasarkan lokasi ruangan



Tampilkan data dari t_kelas yang memiliki nama wali kelas diawali huruf A saja





Tampilkan data dari t_kelas diurutkan berdasarkan jurusan dan nama_kelas




Tampilkan data dari t_kelas hanya data jurusan Audio Video saja





Sekian dan terimakasih






Share:

0 komentar:

Posting Komentar

Popular Posts

Recent Posts

Unordered List

Text Widget

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation test link ullamco laboris nisi ut aliquip ex ea commodo consequat.

Pages

Blog Archive

Cari Blog Ini

Diberdayakan oleh Blogger.

Copyright © I Time | Powered by Blogger

Design by ThemePacific | Blogger Theme by NewBloggerThemes.com