21 November 2023

Membuat Tabel Baru dengan Migrasi

Assalamu alaikum Wr. Wb Salam
Pinter Bareng Komputer, ...zero bit...

Pembuatan tabel baru di dalam database MYSQL biasanya menggunakan fasilitas PHPMYADMIN atau menggunakan aplikasi pihak ketiga seperti MysqlFront, HeidiSQL dan sebagainya. Namun saat kita sedang mengerjakan projek Laravel pembuatan tabel baru dapat kita lakukan menggunakan fasilitas yang disediakan oleh Laravel sendiri yang disebut Migration.

Proses ini juga tidak lepas dari konsep di dalam MVC yang disebut dengan MODEL. Model sendiri merupakan bagian dari konsep MVC yang bertanggung jawab untuk mengelola data dalam aplikasi. Model digunakan untuk mengakses database, mewakili tabel dalam database, dan mengelola data yang memungkinkan kita untuk melakukan operasi CRUD (Create, Read, Update, dan Delete) pada data tersebut. Model juga dapat dihubungkan ke model lain melalui Relationship (relasi) pada Laravel.

Berikut langkah - langkah untuk membuat tabel baru menggunakan fasilitas migration:
  1. Buka projek dengan VSCode.
  2. Buka Terminal dari VSCode kemudian ketikkan perintah berikut ini:
  3.  php artisan make:model Produk -m  
    
    Catatan: 
    - Perintah di atas akan menghasilkan file Model untuk tabel Produk dan juga menghasilkan file migration yang nantinya dapat digunakan untuk mendefinisikan struktur tabel.
    - File Model dapat dilihat di dalam subfolder Models yang berada di dalam folder App.
    - File Migrasi dapat dilihat di dalam subfolder Migrations yang berada di dalam folder database

    File Model - Produk.php
    File Migration - create_produks_table.php
  4. Buka file model - Produk.php kemudian lakukan edit script yang berwarna merah seperti di bawah ini:
  5.  <?php  
     namespace App\Models;  
     use Illuminate\Database\Eloquent\Factories\HasFactory;  
     use Illuminate\Database\Eloquent\Model;  
     use Illuminate\Database\Eloquent\SoftDeletes; //memanggil library SoftDeletes
     class Produk extends Model  
     {  
       use HasFactory, SoftDeletes;  
    protected $table = 'produks'; protected $fillable = ['namaproduk', 'deskripsi', 'harga']; }
    Catatan:
    - SoftDelete untuk mengaktifkan proses penghapusan sementara (temporary). Ini bersifat optional.
    - $table untuk memperkenalkan pada model nama tabel yang akan diproses.
    - $fillable untuk mengaktifkan mass assigned pada kolom-kolom yang disebutkan namanya di dalam $fillable.

  6. Selanjutnya buka file migrations - create_produks_table.php kemudian lakukan edit script yang berwarna merah seperti di bawah ini:
  7.  
       public function up(): void  
       {  
         Schema::create('produks', function (Blueprint $table) {  
           $table->id();  
           $table->string('namaproduk');  
           $table->text('deskripsi');  
           $table->double('harga', 8, 2);  
           $table->timestamps();  
           $table->softDeletes();  
         });  
       }
       
       public function down(): void
        {
            Schema::dropIfExists('produks');
        }
    
    Catatan:
    - Perintah di atas digunakan untuk menciptakan tabel baru dengan nama produks dengan kolom meliputi: id, namaproduk, deskripsi, dan harga. Sedangkan perintah timestamps akan menghasilkan 2 kolom yaitu created_at dan updated_at. Perintah softDeletes akan menghasilkan kolom deleted_at yang terhubung dengan perintah softDeletes yang ada di file model Produk.
    - Kata produks pada script di atas adl nama tabel baru yang akan diciptakan dari perintah di atas.
    - Untuk tipe-tipe kolom yang bisa digunakan dalam pembuatan struktur tabel dapat dibaca pada dokumentasi Laravel DISINI, beberapa tipe kolom seperti tampak di bawah ini :

  8. Untuk benar - benar menciptakan tabel sesuai struktur yang telah dibuat pada langkah 4 di atas maka jalankan script berikut di dalam terminal VSCode:
  9.  php artisan migrate  
    
  10. Bisa dicek menggunakan MysqlFront atau PhpMyadmin bahwa tabel baru dengan nama : produks telah terbentuk dengan struktur sama dengan script yang kita buat di dalam file migration.

  11. Tabel Produks
Semoga artikel ini bermanfaat.

0 comments:

Posting Komentar