# Membuat model sederhana dengan Laravel

Dalam Laravel, model adalah representasi dari tabel dalam basis data Anda. Model digunakan untuk mengakses dan mengelola data dalam tabel tersebut.

Untuk membuat model menggunakan Artisan, Anda dapat menggunakan perintah `make:model`. Dalam hal ini, mari kita asumsikan Anda ingin membuat model untuk tabel `products`. Berikut adalah langkah-langkahnya:

**Langkah 1: Membuat Model menggunakan Artisan**

Buka terminal atau command prompt, dan jalankan perintah berikut untuk membuat model `Product`:

```
php artisan make:model Product
```

Perintah ini akan membuat file model baru dengan nama `Product.php` di dalam direktori `app` Anda.

**Langkah 2: Edit Model `Product.php`**

Setelah membuat model, buka file `Product.php` yang ada di dalam direktori `app` dan konfigurasikan modelnya seperti berikut:

```
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    use HasFactory;
    protected $table = 'products'; // Menyatakan nama tabel yang terkait dengan model ini
    protected $fillable = ['name', 'price', 'stock']; // Kolom-kolom yang dapat diisi (fillable) oleh pengguna
}
```

**Penjelasan:**

1. **Namespace:** Model ini berada di namespace `App`, yang umumnya sesuai dengan struktur direktori default dalam aplikasi Laravel.
2. **Extends Model:** Model ini meng-extend kelas `Illuminate\Database\Eloquent\Model`. Dengan meng-extend model ini, Anda mendapatkan keuntungan dari berbagai fitur ORM (Object-Relational Mapping) yang dimiliki oleh Laravel.
3. **Tabel Terkait:** Properti `$table` digunakan untuk menentukan nama tabel yang terkait dengan model ini. Dalam kasus ini, model `Product` terkait dengan tabel `products`.
4. **Kolom yang Dapat Diisi (Fillable):** Properti `$fillable` adalah array yang berisi nama kolom-kolom yang diizinkan untuk diisi oleh pengguna. Ini adalah langkah keamanan untuk memastikan bahwa hanya kolom-kolom yang diinginkan yang dapat diisi oleh input pengguna. Dalam contoh ini, model `Product` memungkinkan pengisian kolom `name`, `price`, dan `stock`.
5. **Hubungan Model (Opsional):** Anda dapat mendefinisikan hubungan dengan model lain di dalam model. Contoh relasi one-to-many dan metode logika bisnis tambahan juga dapat didefinisikan di dalam model ini.

Dengan membuat model ini, Anda sekarang dapat menggunakan Eloquent untuk berinteraksi dengan tabel `products` di basis data Anda. Model ini dapat digunakan untuk melakukan berbagai operasi seperti membuat, membaca, memperbarui, dan menghapus data dari tabel `products`.

Di bab berikutnya  akan belajar cara membuat Seeder sederhana agar bisa mengisi data dari tabel.
