<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[Catatan Harian: Migration &amp; Seeder pada CodeIgniter 4 (CI4)}]]></title>
	<link>https://sharka.site/3blog/pages/view/64/migration-seeder-pada-codeigniter-4-ci4</link>
	<atom:link href="https://sharka.site/3blog/pages/view/64/migration-seeder-pada-codeigniter-4-ci4" rel="self" type="application/rss+xml" />
	<description><![CDATA[}]]></description>
		<item>
	<guid isPermaLink="true">https://sharka.site/3blog/pages/view/64/migration-seeder-pada-codeigniter-4-ci4</guid>
	<pubDate>Wed, 22 Oct 2025 18:21:45 +0800</pubDate>
	<link>https://sharka.site/3blog/pages/view/64/migration-seeder-pada-codeigniter-4-ci4</link>
	<title><![CDATA[Migration &amp; Seeder pada CodeIgniter 4 (CI4)]]></title>
	<description><![CDATA[<div style="color:#222;font-family:'Poppins','Segoe UI',Roboto,system-ui,sans-serif;line-height:1.7;margin:0 auto;max-width:900px;"><div style="background-color:#f1f5ff;border-radius:12px;box-shadow:0 6px 18px rgba(2,62,138,0.06);color:#023e8a;padding:24px 20px;text-align:center;"><h2 style="font-size:20px;margin:0;">🧩 <strong>Migration &amp; Seeder pada CodeIgniter 4 (CI4)</strong></h2><p style="color:#014f86;font-size:14px;margin:8px 0 0;">Manajemen struktur dan data awal database dengan cara otomatis, efisien, dan mudah dipelihara.</p></div><div style="font-size:15px;margin-top:20px;"><p><strong>Migration</strong> dan <strong>Seeder</strong> di CodeIgniter 4 membantu kita mengelola struktur dan data database tanpa perlu query SQL manual. <strong>Migration</strong> digunakan untuk membuat atau mengubah tabel, sedangkan <strong>Seeder</strong> digunakan untuk mengisi data awal seperti admin default atau data dummy.</p><h3 style="color:#023e8a;margin-top:18px;">📘 1. Konsep Migration</h3><p>Migration bekerja layaknya <i>version control</i> untuk database Anda. Setiap perubahan struktur tersimpan dalam file migration, sehingga pengembang lain dapat memperbarui database dengan mudah menggunakan perintah sederhana.</p><h4 style="color:#014f86;">🛠️ Contoh Membuat Migration</h4><p>Buka terminal pada root proyek Anda, lalu ketik:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;"><code class="language-plaintext">php spark make:migration CreateUsersTable</code></pre><p>Edit file yang dihasilkan di folder <code>app/Database/Migrations/</code> menjadi seperti ini:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;white-space:pre-wrap;"><code class="language-plaintext">&lt;?php

namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class CreateUsersTable extends Migration
{
    public function up()
    {
        $this-&gt;forge-&gt;addField([
            'id' =&gt; [
                'type'           =&gt; 'INT',
                'constraint'     =&gt; 11,
                'unsigned'       =&gt; true,
                'auto_increment' =&gt; true,
            ],
            'username' =&gt; [
                'type'       =&gt; 'VARCHAR',
                'constraint' =&gt; 100,
            ],
            'password' =&gt; [
                'type'       =&gt; 'VARCHAR',
                'constraint' =&gt; 255,
            ],
            'level' =&gt; [
                'type'       =&gt; 'ENUM("admin","user")',
                'default'    =&gt; 'user',
            ],
            'created_at DATETIME DEFAULT CURRENT_TIMESTAMP',
        ]);

        $this-&gt;forge-&gt;addKey('id', true);
        $this-&gt;forge-&gt;createTable('users');
    }

    public function down()
    {
        $this-&gt;forge-&gt;dropTable('users');
    }
}
</code></pre><h4 style="color:#014f86;">▶️ Menjalankan Migration</h4><p>Setelah selesai, jalankan perintah berikut untuk membuat tabel di database:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;"><code class="language-plaintext">php spark migrate</code></pre><p>Jika ingin membatalkan (rollback):</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;"><code class="language-plaintext">php spark migrate:rollback</code></pre><h3 style="color:#023e8a;margin-top:24px;">🌱 2. Konsep Seeder</h3><p>Seeder digunakan untuk mengisi data awal ke dalam tabel. Misalnya, saat pertama kali menjalankan aplikasi, Anda ingin otomatis membuat akun <code>admin</code> dan <code>user</code>.</p><h4 style="color:#014f86;">🛠️ Membuat Seeder</h4><p>Ketik perintah berikut di terminal:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;"><code class="language-plaintext">php spark make:seeder UserSeeder</code></pre><p>Edit file di <code>app/Database/Seeds/UserSeeder.php</code>:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;white-space:pre-wrap;"><code class="language-plaintext">&lt;?php

namespace App\Database\Seeds;

use CodeIgniter\Database\Seeder;

class UserSeeder extends Seeder
{
    public function run()
    {
        $data = [
            [
                'username' =&gt; 'admin',
                'password' =&gt; password_hash('admin123', PASSWORD_DEFAULT),
                'level'    =&gt; 'admin'
            ],
            [
                'username' =&gt; 'user1',
                'password' =&gt; password_hash('user123', PASSWORD_DEFAULT),
                'level'    =&gt; 'user'
            ]
        ];

        $this-&gt;db-&gt;table('users')-&gt;insertBatch($data);
    }
}
</code></pre><h4 style="color:#014f86;">▶️ Menjalankan Seeder</h4><p>Untuk mengisi data ke tabel <code>users</code>, jalankan perintah berikut:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;"><code class="language-plaintext">php spark db:seed UserSeeder</code></pre><h3 style="color:#023e8a;margin-top:24px;">⚙️ 3. Praktik Gabungan Migration &amp; Seeder</h3><p>Agar lebih efisien, Anda bisa menjalankan migration dan seeder sekaligus dalam satu langkah:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:12px;white-space:pre-wrap;"><code class="language-plaintext">php spark migrate &amp;&amp; php spark db:seed UserSeeder</code></pre><p>Dengan cara ini, database akan otomatis dibuat dan diisi data awal tanpa membuka phpMyAdmin.</p><h3 style="color:#023e8a;margin-top:24px;">🧪 4. Latihan Praktik Langsung</h3><ol style="margin-top:10px;"><li><p style="margin-left:18px;">Buka terminal dan pastikan Anda berada di folder proyek CI4 Anda.</p></li><li><p style="margin-left:18px;">Buat migration baru untuk tabel <code>products</code> menggunakan perintah:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:10px;">php spark make:migration CreateProductsTable</pre><p>&nbsp;</p></li><li><p style="margin-left:18px;">Tambahkan field seperti <code>id</code>, <code>name</code>, <code>price</code>, dan <code>stock</code> di dalam method <code>up()</code>.</p></li><li><p style="margin-left:18px;">Jalankan migration:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:10px;">php spark migrate</pre><p>&nbsp;</p></li><li><p style="margin-left:18px;">Selanjutnya buat seeder:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:10px;">php spark make:seeder ProductSeeder</pre><p>&nbsp;</p></li><li><p style="margin-left:18px;">Isi file seeder dengan data contoh produk, lalu jalankan:</p><pre style="background-color:#f8f9fa;border-radius:8px;padding:10px;">php spark db:seed ProductSeeder</pre><p>&nbsp;</p></li><li><p style="margin-left:18px;">Buka phpMyAdmin untuk melihat bahwa tabel <code>products</code> sudah berisi data otomatis.</p></li></ol><h3 style="color:#023e8a;margin-top:24px;">💡 5. Tips Tambahan</h3><ul style="margin-top:8px;"><li><p style="margin-left:18px;"><strong>Gunakan Migration</strong> setiap kali mengubah struktur tabel agar dapat dilacak dan dibatalkan kapan saja.</p></li><li><p style="margin-left:18px;"><strong>Gunakan Seeder</strong> untuk data awal seperti akun admin, daftar kategori, atau data percobaan.</p></li><li><p style="margin-left:18px;"><strong>Kombinasikan dengan Model</strong> agar data dapat langsung digunakan di aplikasi Anda setelah migrasi.</p></li></ul><h3 style="color:#023e8a;margin-top:24px;">✅ Kesimpulan</h3><p>Dengan Migration dan Seeder, pengelolaan database di CodeIgniter 4 menjadi lebih sistematis, cepat, dan mudah dikontrol. Anda tidak perlu lagi membuat tabel secara manual karena semua sudah dapat diatur dari terminal dengan satu perintah.</p></div></div>]]></description>
	<dc:creator>Muh.Taqiuddin.S</dc:creator>		</item>
</channel>
</rss>
