Bayangkan kamu baru saja selesai membangun rumah impian — desain keren, ruangan tertata rapi, semua furnitur sudah on point. Tapi ada satu masalah besar: tidak ada sambungan air. Keren? Iya. Bisa ditinggali? Belum. Nah, itulah kondisi proyekmu di Laravel kalau belum setup database dan file .env.
Saat kamu mulai mengenal Laravel framework secara serius, kamu akan sadar bahwa Laravel punya cara yang sangat elegan untuk mengelola konfigurasi — termasuk koneksi database. Tidak perlu hardcode username dan password di semua file. Semuanya terpusat di satu tempat: file .env. Di artikel ke-4 dari seri 50 Artikel Belajar Laravel ini, kamu akan belajar cara setup database dan mengkonfigurasi file .env dari nol hingga siap pakai!
File .env (environment) adalah file konfigurasi yang menyimpan semua data sensitif dan variabel lingkungan: nama database, username, password, API key, dan lainnya. File ini tidak boleh di-commit ke Git karena berisi informasi rahasia yang berbeda di setiap lingkungan (development, staging, production).
๐ Mengenal File .env dalam Laravel Framework
Kalau kamu sudah melewati artikel sebelumnya tentang struktur folder Laravel, kamu pasti sudah melihat file .env nongkrong sendirian di root folder project. File ini terlihat sederhana, tapi perannya sangat vital.
Anggap saja file .env seperti kartu identitas aplikasimu. Setiap lingkungan punya identitas berbeda: di laptop kamu pakai database lokal, di server production pakai database cloud. Dengan file .env, kamu bisa ganti konfigurasi tanpa ubah satu baris pun di kode utama.
Laravel menggunakan library vlucas/phpdotenv di balik layar untuk membaca file .env. Library ini secara otomatis memuat semua variabel dari .env ke dalam $_ENV dan $_SERVER PHP saat aplikasi booting — tanpa kamu perlu melakukan apa pun!
⚙️ Langkah-Langkah Setup Database Laravel Framework
Oke, teori cukup. Sekarang saatnya tangan kita kotor (secara digital, tentu saja ๐). Ikuti langkah-langkah berikut secara berurutan ya — jangan skip!
Buat Database Baru di phpMyAdmin / MySQL
Buka phpMyAdmin atau MySQL CLI-mu, lalu buat database baru. Nama database bebas — tapi gunakan huruf kecil dan underscore untuk memudahkan pengetikan.
Salin File .env.example menjadi .env
Laravel tidak menyertakan file .env secara langsung di repository. Yang ada adalah .env.example sebagai template. Duplikat file ini:
Edit Konfigurasi Database di File .env
Buka file .env dengan text editor favoritmu (VS Code recommended), lalu ubah bagian konfigurasi database:
Generate APP_KEY
APP_KEY adalah kunci enkripsi unik untuk aplikasimu. Harus di-generate sebelum aplikasi bisa berjalan. Jalankan perintah Artisan berikut:
Test Koneksi dengan Menjalankan Migrasi
Cara terbaik untuk memastikan konfigurasi database berhasil adalah dengan menjalankan migrasi. Laravel akan mencoba terhubung ke database dan membuat tabel default:
Kalau pakai XAMPP, pastikan Apache dan MySQL sudah aktif sebelum menjalankan migrasi. Dan kalau password MySQL XAMPP kamu kosong (default), biarkan saja DB_PASSWORD= tanpa diisi apa pun di file .env.
๐งช Cara Menggunakan Variabel .env dalam Kode Laravel
Setelah setup selesai, kamu mungkin bertanya: "Gimana cara baca variabel dari .env di dalam kode Laravel?" Jawabannya: ada dua cara yang elegan.
env()$dbName = env('DB_DATABASE');
$debug = env('APP_DEBUG', false);
Langsung baca dari file .env. Parameter kedua adalah nilai default jika variabel tidak ditemukan.
config() (Direkomendasikan)$dbName = config('database.connections.mysql.database');
$appName = config('app.name');
Baca lewat file config di folder config/. Lebih stabil karena bisa di-cache oleh Laravel.
Saat kamu menjalankan php artisan config:cache untuk production, Laravel akan meng-cache semua konfigurasi. Setelah itu, fungsi env() tidak akan bekerja di luar file config/*.php. Itulah kenapa menggunakan config() adalah praktik terbaik!
๐จ Error Umum dan Cara Mengatasinya dalam Mengenal Laravel Framework
Saat baru mengenal Laravel framework, kamu pasti akan bertemu error. Berikut error database paling umum dan solusinya:
SQLSTATE[HY000] [2002] Connection refused
Penyebab: MySQL server belum berjalan atau DB_HOST salah.
Solusi: Pastikan MySQL aktif di XAMPP/Laragon/Homebrew. Cek lagi nilai DB_HOST di .env — biasanya 127.0.0.1.
Access denied for user 'root'@'localhost'
Penyebab: Username atau password database salah di file .env.
Solusi: Cek kembali DB_USERNAME dan DB_PASSWORD. Untuk XAMPP, username default adalah root dan password kosong.
No application encryption key has been specified
Penyebab: Lupa menjalankan php artisan key:generate.
Solusi: Jalankan php artisan key:generate di terminal. APP_KEY di file .env akan terisi otomatis.
Setelah mengubah file .env, kamu perlu menjalankan php artisan config:clear agar Laravel memuat ulang konfigurasi terbaru. Cache konfigurasi lama bisa menyebabkan perubahan tidak terbaca!
Mau cek apakah semua konfigurasi terbaca dengan benar? Gunakan Tinker!
$ php artisan tinker
>>> config('database.default')
=> "mysql"
>>> config('app.name')
=> "LaravelBelajar"
No comments:
Post a Comment