Controller & Facade DB

Dalam Laravel, Controller berfungsi sebagai pusat kendali atau "otak" aplikasi yang menerima permintaan (request) dari pengguna, memproses logika bisnisnya, dan mengembalikan hasil (response) berupa tampilan atau data. Sementara itu, Facade DB adalah fitur bawaan yang bertindak sebagai jalan pintas untuk berkomunikasi langsung dengan database, baik menggunakan sintaksis Query Builder maupun perintah SQL mentah. Dalam praktiknya, kedua fitur ini bekerja erat di mana Controller mengatur alur kerja program, sedangkan Facade DB digunakan di dalamnya untuk mengambil atau memanipulasi data dari database secara cepat dan aman.

STUDI KASUS 1 : Pindahkan 3 route yang sebelumnya anda buat di routes ke SiswaController

Membuat tiga route berbeda yang berhasil dipusatkan ke satu pintu gerbang logika yang sama, yaitu method index di dalam SiswaController. Jika nanti teksnya ingin diubah, cukup mengubahnya di satu tempat saja (di dalam Controller), tanpa perlu mengedit file routes satu per satu.

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\SiswaController;
// Route default
Route::get('/', function () {
return view('welcome');
});
// Pindahan ke SiswaController
Route::get('/Rafie-Ganteng', [SiswaController::class, 'index']);
Route::get('/Yagitu-Deh', [SiswaController::class, 'index']);
Route::get('/Cape-Ahh', [SiswaController::class, 'index']);
}

kemudian ketiga route berbeda tersebut telah berhasil dipusatkan ke satu pintu gerbang logika yang sama, yaitu method index di dalam SiswaController.

Output Route :

Struktur Tabel phpMyAdmin

STUDI KASUS 2:

1. Isi data dummy untuk tabel t_kelas dengan data kelas XI di SMK Negeri 4 Bandung (Semua jurusan, 15 kelas) 2. Lakukan hal yang sama seperti tabel t_siswa untuk tabel t_kelas, buatlah Controller dan Modifikasi view-nya untuk menampilkan data dari t_kelas

Data Dummy di phpMyAdmin :

Struktur Tabel phpMyAdmin

Kodingan KelasController :

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class KelasController extends Controller
{
public function index1()
{
$siswa = DB::table('t_kelas')->get();
return view('kelas', compact('datakelas'));
}
}

Kodingan Views Kelas :

<Belajar Laravel, Tulisan ini ditampilkan dari Views<br>
<table border="1">
<tr>
<td>no</td>
<td>nama kelas</td>
<td>jurusan</td>

<td>lokasi ruangan</td>
<td>nama wali kelas</td>
</tr>
@foreach ($siswa as $row)
<tr>
<td>{{ isset($i) ? ++$i : $i = 1 }}</td>
<td>{{ $row->nama_kelas }}</td>
<td>{{ $row->jurusan }}</td>
<td>{{ $row->lokasi_ruangan }}</td>
<td>{{ $row->nama_wali_kelas }}</td>
</tr>
@endforeach
</table>

Tampilan Views Kelas di Web Browser :

Struktur Tabel phpMyAdmin

STUDI KASUS 3 : Lakukan beberapa query dibawah ini untuk menampilkan data pada t_kelas:

1. Tampilkan data dari t_kelas, diurutkan berdasarkan lokasi ruangan

Struktur Tabel phpMyAdmin

Code :

<<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class KelasController extends Controller
{
/**
* Menampilkan data dari tabel t_kelas
* diurutkan berdasarkan lokasi_ruangan
*/
public function index()
{

// Ambil semua data dari tabel t_kelas dan urutkan
$dataKelas = DB::table('t_kelas')
->orderBy('lokasi_ruangan', 'asc')
->get();
// Kirim data ke view (misal: resources/views/kelas/index.blade.php)
return view('Rafie-Kece', compact('dataKelas'));
}
}

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

Struktur Tabel phpMyAdmin

Code :

<<<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class KelasController extends Controller
{
/**
* Menampilkan data dari t_kelas
* yang wali_kelas-nya diawali huruf 'A'
*/
public function index1()
{
// Ambil data dari t_kelas di mana nama wali_kelas dimulai dengan 'A'
$dataKelas = DB::table('t_kelas')
->where('nama_wali_kelas', 'like', 'A%')
->get();
// Kirim ke view
return view('kelas', compact('dataKelas'));
}}

3. Tampilkan data dari t_kelas diurutkan berdasarkan jurusan dan nama_kelas

Struktur Tabel phpMyAdmin

Code :

<<<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class KelasController extends Controller
{
/**
* Menampilkan data dari t_kelas
* yang wali_kelas-nya diawali huruf 'A'
*/
public function index1()
{

// Ambil data dari t_kelas di mana nama wali_kelas dimulai dengan 'A'
$dataKelas = DB::table('t_kelas')
->orderBy('jurusan', 'asc')
->orderBy('nama_kelas', 'asc')
->get();
// Kirim ke view
return view('kelas', compact('dataKelas'));
}
}

4. Tampilkan data dari t_kelas hanya data jurusan Rekayasa Perangkat Lunak saja

Struktur Tabel phpMyAdmin

Code :

<<<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class KelasController extends Controller
{
/**
* Menampilkan data dari t_kelas
* yang wali_kelas-nya diawali huruf 'A'
*/
public function index1()
{
// Ambil data dari t_kelas di mana nama wali_kelas dimulai dengan 'A'
$dataKelas = DB::table('t_kelas')
->where('jurusan', '=', 'Rekayasa Perangkat Lunak')
->orderBy('nama_kelas', 'asc')
->get();
// Kirim ke view
return view('kelas', compact('dataKelas'));
}

}