Laravel 12 CRUD (MySQL + JWT) #4: Membuat Tabel "siswa" dengan Migration

Laravel 12 CRUD (MySQL + JWT)
#4 Membuat Tabel "siswa" dengan Migration

🏗️ Cetak biru tabel siswa • Kolom: nama, kelas, alamat
🏫 Sekarang kita buat tabel untuk menyimpan data siswa!
Di artikel sebelumnya kita sudah menghubungkan Laravel ke database MySQL. Langkah selanjutnya adalah membuat tabel siswa menggunakan fitur Migration Laravel. Migration seperti cetak biru tabel — kita cukup menulis kode sekali, lalu Laravel akan membuat tabel otomatis. Yuk kita mulai!

Langkah 1: Buat File Migration

1 Buka terminal/CMD di folder proyek siswaapi. Jalankan perintah:

php artisan make:migration create_siswa_table

Perintah ini akan membuat file migration baru di folder database/migrations. Nama file akan diawali dengan timestamp, misalnya 2025_03_23_123456_create_siswa_table.php.

💡 Aturan penamaan: create_namatable_table adalah konvensi Laravel untuk membuat tabel baru. Karena kita membuat tabel siswa, namanya create_siswa_table.

Langkah 2: Isi Migration dengan Kolom yang Diperlukan

2 Buka file migration yang baru dibuat (di database/migrations) dengan text editor. Cari method up(). Di dalamnya, kita akan mendefinisikan kolom-kolom tabel.

Ubah isinya menjadi seperti berikut:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('siswa', function (Blueprint $table) { $table->id(); // kolom id (auto increment, primary key) $table->string('nama'); // kolom nama (string, maks 255) $table->string('kelas'); // kolom kelas (string) $table->text('alamat'); // kolom alamat (text, bisa panjang) $table->timestamps(); // created_at & updated_at }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('siswa'); } };

Penjelasan kolom:

  • $table->id() → membuat kolom id (auto increment) sebagai kunci utama.
  • $table->string('nama') → kolom untuk nama siswa (tipe VARCHAR, panjang default 255).
  • $table->string('kelas') → kolom kelas siswa.
  • $table->text('alamat') → kolom alamat (tipe TEXT, bisa menyimpan teks panjang).
  • $table->timestamps() → otomatis menambahkan kolom created_at dan updated_at (waktu dibuat/diubah).

Setelah selesai, simpan file.

💡 Tips: Perhatikan tanda koma dan titik koma. Pastikan tidak ada kesalahan penulisan agar migration berjalan lancar.

Langkah 3: Jalankan Migration (Buat Tabel)

3 Sekarang kita jalankan migration agar tabel siswa benar-benar dibuat di database. Di terminal, ketik:

php artisan migrate

Akan muncul pesan seperti ini:

Migration table created successfully. Migrating: 2025_03_23_123456_create_siswa_table Migrated: 2025_03_23_123456_create_siswa_table

🎉 Selamat! Tabel "siswa" sudah berhasil dibuat di database MySQL!

📌 Catatan: Jika muncul error, periksa kembali file .env (pastikan DB_DATABASE, DB_USERNAME, DB_PASSWORD benar) dan pastikan MySQL sedang berjalan di XAMPP.

Langkah 4: Cek Tabel di phpMyAdmin

4 Untuk memastikan tabel sudah terbuat, buka browser dan akses http://localhost/phpmyadmin. Pilih database siswaapi_db. Kamu akan melihat tabel siswa dengan kolom-kolom yang sudah kita definisikan.

Klik tabel siswa untuk melihat strukturnya. Akan ada kolom: id, nama, kelas, alamat, created_at, updated_at.

🎯 Sempurna! Tabel sudah siap untuk menyimpan data siswa. Selanjutnya kita akan membuat model Siswa dan mulai membangun API CRUD.

Ringkasan Langkah

  • ✅ Buat migration: php artisan make:migration create_siswa_table
  • ✅ Isi migration dengan kolom: id, nama, kelas, alamat, timestamps
  • ✅ Jalankan migration: php artisan migrate
  • ✅ Cek tabel di phpMyAdmin

📌 Ingat: Migration sangat berguna untuk mengelola perubahan struktur database. Jika ingin menambah kolom nanti, kita bisa membuat migration baru, bukan mengubah yang sudah ada.

(Link akan aktif saat artikel sebelumnya dan selanjutnya terbit)

📘 Laravel 12 CRUD (MySQL + JWT) • #4 Membuat Tabel "siswa" dengan Migration • 🏛️ Tabel siap!
Lebih baru Lebih lama

نموذج الاتصال