> For the complete documentation index, see [llms.txt](https://learn.devlabss.my.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.devlabss.my.id/laravel/bab-5-migration-and-seeder/5.1-konsep-database-tanpa-phpmyadmin.md).

# 5.1 Konsep Database Tanpa phpMyAdmin

## Konsep database tanpa phpMyAdmin

Selamat datang di BAB 5.

Sekarang aplikasi E-Library mulai masuk ke tahap database.

Sampai bab sebelumnya, aplikasi masih banyak memakai data sederhana atau teks yang ditulis langsung di kode.

Untuk membuat aplikasi yang nyata, data harus disimpan di database.

Jika Anda pernah belajar PHP native, mungkin Anda terbiasa membuka `phpMyAdmin` untuk membuat database dan tabel.

Di Laravel, pendekatannya berbeda.

Laravel mendorong developer mengelola struktur database lewat kode.

### Target belajar BAB 5

Setelah menyelesaikan BAB 5, Anda diharapkan bisa:

* menjelaskan fungsi migration
* menyiapkan koneksi database lewat `.env`
* membuat tabel dari migration
* mengisi data awal dengan seeder
* membaca error koneksi database dasar

### Kenapa tidak mengandalkan phpMyAdmin

Membuat tabel lewat phpMyAdmin memang cepat untuk latihan kecil.

Namun, cara itu punya beberapa masalah:

* perubahan hanya ada di satu komputer
* struktur tabel sulit dilacak
* sinkronisasi antaranggota tim jadi merepotkan
* rawan lupa urutan perubahan database

Bayangkan Anda membuat tabel `buku` di laptop sendiri.

Lalu proyek dipindah ke laptop teman.

Kalau tabel itu dibuat manual, teman Anda harus mengulang atau mengimpor file SQL secara terpisah.

Itu tidak efisien.

Di sinilah migration menjadi penting.

### Apa itu migration

Migration adalah file kode yang mendeskripsikan struktur database.

Di migration, Anda bisa menulis:

* nama tabel
* nama kolom
* tipe data
* aturan dasar seperti panjang karakter atau relasi sederhana

Migration bisa dianggap sebagai **catatan resmi perubahan database**.

Kalau disederhanakan:

```
Route dan controller mengatur alur aplikasi.
Migration mengatur bentuk database.
```

### Analogi sederhana migration

Migration bisa dibayangkan seperti cetak biru bangunan.

Anda tidak membangun gedung dengan menebak-nebak di lokasi.

Anda lebih dulu membuat rancangan yang jelas.

Begitu rancangan itu dibagikan, orang lain bisa membangun struktur yang sama.

Begitu juga di Laravel.

Jika migration sudah ditulis, proyek lain bisa membentuk database yang sama hanya dengan menjalankan perintah yang sesuai.

### Keuntungan pendekatan ini

Mengelola database lewat migration memberi beberapa keuntungan:

* struktur database terdokumentasi di dalam proyek
* perubahan bisa dibagikan ke tim dengan lebih aman
* proses setup proyek baru jadi lebih cepat
* riwayat perubahan database lebih mudah dipahami

Karena itu, migration adalah standar kerja yang jauh lebih rapi dibanding klik manual di phpMyAdmin.

{% hint style="info" %}
phpMyAdmin tetap bisa dipakai untuk melihat isi database. Namun, untuk membangun dan mengubah struktur tabel, Laravel lebih mengandalkan migration.
{% endhint %}

### Alur kerja database di Laravel

Secara umum, alurnya seperti ini:

1. Tentukan koneksi database di file `.env`.
2. Buat file migration.
3. Jalankan migration lewat Artisan.
4. Laravel membuat tabel sesuai struktur yang ditulis.

Artinya, Anda tidak mulai dari klik-klik tabel.

Anda mulai dari definisi struktur lewat kode.

### Yang perlu Anda siapkan

Sebelum masuk ke praktik migration, pastikan hal berikut sudah siap:

* MySQL pada **Laragon** sudah aktif
* proyek Laravel masih bisa dijalankan
* file `.env` tersedia dan bisa diedit

Bab ini belum fokus ke isi detail `.env`.

Pembahasan konfigurasi koneksi database akan dibahas di bab 5.2.

### Kesalahan pemahaman yang paling sering

Beberapa hal yang sering keliru saat awal belajar:

* mengira Laravel tidak bisa dipakai jika tidak membuka phpMyAdmin
* mengira migration adalah isi data tabel, padahal migration fokus pada struktur
* mengira database otomatis siap tanpa konfigurasi koneksi

{% hint style="warning" %}
Migration tidak menggantikan database server. Laravel tetap membutuhkan MySQL atau sistem database lain yang aktif. Migration hanya mengatur struktur di atas koneksi tersebut.
{% endhint %}

### Output yang harus terlihat

Setelah menyelesaikan BAB 5, hasil minimal yang seharusnya sudah ada:

* koneksi database aktif dan terbaca oleh Laravel
* tabel `buku` berhasil dibuat dari migration
* data dummy berhasil masuk lewat seeder
* Anda bisa membedakan struktur tabel dan isi tabel

### Poin evaluasi bab 5.1

Pastikan Anda sudah memahami poin berikut:

* Saya paham kenapa proyek Laravel tidak mengandalkan phpMyAdmin untuk membangun struktur database.
* Saya paham migration dipakai untuk mendeskripsikan struktur tabel lewat kode.
* Saya paham migration membantu sinkronisasi proyek di beberapa komputer.
* Saya paham phpMyAdmin masih bisa dipakai untuk melihat database, tetapi bukan alat utama untuk mengelola struktur tabel di Laravel.
* Saya paham sebelum migration dijalankan, koneksi database tetap harus disiapkan lebih dulu.

### Lanjut ke bab berikutnya

Jika semuanya sudah siap, lanjut ke [5.2 Konfigurasi Database di .env](/laravel/bab-5-migration-and-seeder/5.2-konfigurasi-database-di-.env.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.devlabss.my.id/laravel/bab-5-migration-and-seeder/5.1-konsep-database-tanpa-phpmyadmin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
