21 November 2023

Membuat Controller Untuk Produk

Assalamu alaikum Wr. Wb

Salam Pinter Bareng Komputer, ...zero bit...

Laravel merupakan framework PHP yang menawarkan banyak fitur yang memudahkan kita sebagai web developer. Salah satu fitur utama Laravel adalah konsep MVC (Model-View-Controller) yang digunakan di Laravel, yang membagi logika aplikasi menjadi tiga komponen utama, yaitu Model, View, dan Controller.

Dalam MVC, Model dan Controller adalah dua komponen dengan konsep yang berbeda dan juga memiliki peran yang berbeda. Controller pada Laravel juga merupakan bagian dari konsep MVC yang bertanggung jawab sebagai pengontrol alur aplikasi antara Model dan View. Controller mengatur permintaan dari pengguna, lalu memanggil Model yang sesuai dan mengirimkan data tersebut ke View. Controller juga berperan untuk memberikan response kepada pengguna dengan menyesuaikan halaman atau tampilan yang ditampilkan ke pengguna sesuai dengan permintaan yang diterima. Dalam hal ini, Controller bertindak sebagai perantara antara Model dan View

Arus data dalam Laravel

Selanjutnya kita akan membahas bagaimana cara membuat Controller yang akan kita gunakan untuk menangani logika API, sedangkan pembuatan Model sudah dibahas dalam tutorial sebelumnya (Membuat Tabel Produk).

Berikut adalah langkah - langkah untuk membuat Controller di dalam projek Laravel :
  1. Buka projek Laravel dengan VSCode.
  2. Buka Terminal di dalam VSCode kemudian ketikkan perintah berikut ini untuk menciptakan file Controller dan juga function - function yang khusus untuk menangani data Produk:
  3.  php artisan make:controller ProdukController --api  
    
  4. Perintah di atas setelah dijalankan akan menghasilkan sebuah file Controller dengan nama ProdukControlle.php di dalam subfolder App/Http/Controllers lengkap dengan function - function untuk melakukan proses CRUD data Produk.
  5.  <?php  
     namespace App\Http\Controllers;  
     use Illuminate\Http\Request;
     use App\Models\Produk; //memanggil Model Produk
     class ProdukController extends Controller  
     {  
       //function utk menampilkan data produk
       public function index(){}  
       //function utk menyimpan data produk baru  
       public function store(Request $request){} 
       //function utk menampilkan data produk sesuai id  
       public function show(string $id){} 
       //function utk menyimpan data hasil edit  
       public function update(Request $request, string $id){}  
       //function utk menghapus data produk sesuai id  
       public function destroy(string $id){}  
     }  
    
  6. Langkah selanjutnya adalah mengisikan script untuk setiap function yang telah dibuatkan sesuai kebutuhan.
  7.  <?php  
     namespace App\Http\Controllers;  
     use Illuminate\Http\Request;  
     use App\Models\Produk;  //memanggil Model Produk
     class ProdukController extends Controller  
     {  
       //function utk menampilkan data produk  
       public function index(){  
         return response()->json(Produk::all(), 200);  
       }  
       //function utk menyimpan data produk baru    
       public function store(Request $request){  
         $validasiData = $request->validate([  
           'namaproduk'  => 'required|max:255',  
           'deskripsi'   => 'required',  
           'harga'     => 'required|numeric'  
         ]);  
         $hsl = Produk::create($validasiData);  
         return response()->json($hsl, 201);  
       }  
       //function utk menampilkan data produk sesuai id    
       public function show(string $id){  
         $produk = Produk::find($id);  
         if($produk) {  
           return response()->json($produk, 200);  
         }else{  
           return response()->json(['pesan' => 'Data Produk tidak ditemukan'], 404);  
         }  
       }  
       //function utk menyimpan data hasil edit    
       public function update(Request $request, string $id){  
         $validasiData = $request->validate([  
           'namaproduk'  => 'required|max:255|unique:produks,namaproduk,'.$id,  
           'deskripsi'   => 'required',  
           'harga'     => 'required|numeric'  
         ]);  
         $produk = Produk::find($id);  
         $produk->update($validasiData);  
         if($produk) {  
           return response()->json($produk, 200);  
         }else{  
           return response()->json(['pesan' => 'Data Produk tidak ditemukan'], 404);  
         }  
       }  
       //function utk menghapus data produk sesuai id    
       public function destroy(string $id){  
         $produk = Produk::find($id);  
         $produk->delete();  
         if($produk) {  
           return response()->json(null, 204);  
         }else{  
           return response()->json(['pesan' => 'Data Produk tidak ditemukan'], 404);  
         }  
       }  
     }  
    
  8. Untuk informasi mengenai Validate di dalam Laravel silakan baca DI SINI.
  9. Untuk informasi mengenai status response seperti angka 200, 201, 204 dan 404 dapat dibaca DI SINI.

Semoga artikel ini bermanfaat.

0 comments:

Posting Komentar