Di bab ini kita membuat project Laravel baru dan merapikan struktur folder sebelum menulis fitur pertama. Sepuluh menit di sini menghemat banyak waktu di bab-bab berikutnya.
Membuat project
Buka terminal di folder kerja Anda, lalu jalankan:
composer create-project laravel/laravel kasir
cd kasir
php artisan serve
Buka http://127.0.0.1:8000. Jika halaman sambutan Laravel muncul, instalasi berhasil.
Menyiapkan bahasa dan zona waktu
Aplikasi kasir dipakai di Indonesia, jadi tanggal dan pesan validasi sebaiknya berbahasa Indonesia. Ubah .env:
APP_LOCALE=id
APP_TIMEZONE=Asia/Jakarta
Zona waktu penting untuk laporan harian. Tanpa pengaturan ini, transaksi pukul 23.30 WIB bisa tercatat sebagai hari berikutnya karena server memakai UTC.
Folder untuk logika bisnis
Laravel tidak memaksa satu struktur. Untuk aplikasi bisnis, kita menambah satu folder:
app/
├── Livewire/ komponen layar (kasir, daftar barang)
├── Models/ model Eloquent
└── Services/ logika bisnis: penjualan, stok, laporan
Aturannya sederhana: komponen Livewire hanya mengurus layar, sedangkan perhitungan uang dan stok ada di app/Services. Dengan begitu logika yang sama bisa dipanggil dari layar kasir, dari test, maupun dari perintah artisan.
namespace App\Services;
class SaleService
{
public function checkout(array $cart, int $paid): Sale
{
// Diisi di bab "Menyimpan Penjualan dalam Satu Transaksi Database".
}
}
Helper format Rupiah
Kita akan sering menampilkan uang. Buat app/helpers.php: