DEV Community

Faaza Mumtaza Kirom
Faaza Mumtaza Kirom

Posted on

Belajar laravel (migrations, query builder, eloquent)

Migrations

Migrations di Laravel adalah skrip berbasis PHP untuk mengelola skema database. Fitur ini memungkinkan pengembang untuk membuat, mengubah, atau menghapus tabel dan kolom dengan cara yang terkontrol dan mudah dilacak. Setiap perubahan pada skema database didokumentasikan dalam bentuk migration.

Kegunaan:

  • Version Control: Setiap migration mengabadikan perubahan yang terjadi pada database. Ini membantu menjaga konsistensi di berbagai lingkungan (misalnya lokal dan produksi) dan memudahkan rollback jika terjadi kesalahan.
  • Kolaborasi Tim: Anggota tim dapat menggunakan migration untuk melacak dan menerapkan perubahan skema database tanpa konflik.

Contoh Penggunaan:

// Membuat migration untuk tabel students
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateStudentsTable extends Migration
{
    public function up() {
        Schema::create('students', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('nim')->unique();
            $table->string('class');
            $table->timestamps();
        });
    }

    public function down() {
        Schema::dropIfExists('students');
    }
}
Enter fullscreen mode Exit fullscreen mode
  • up(): Digunakan untuk mendefinisikan perubahan yang diterapkan (misalnya, membuat tabel).
  • down(): Mendefinisikan rollback, yakni menghapus tabel atau mengembalikan perubahan.

Query Builder

Query Builder di Laravel menyediakan antarmuka yang fleksibel dan aman untuk membuat dan menjalankan query SQL tanpa harus menulis query SQL mentah. Query Builder menggunakan metode chaining untuk membuat query database dengan cara yang lebih intuitif.

Kegunaan:

  • Keamanan: Query Builder secara otomatis menghindari SQL injection dengan parameter binding.
  • Fleksibilitas: Dapat digunakan untuk query sederhana atau kompleks dengan lebih sedikit penulisan kode.
  • Database-agnostic: Berfungsi di berbagai jenis database, seperti MySQL, SQLite, PostgreSQL.

Contoh Penggunaan:

// Mengambil semua siswa
$students = DB::table('students')->get();

// Mengambil siswa dengan kondisi
$student = DB::table('students')->where('nim', '12345')->first();

// Menyisipkan data
DB::table('students')->insert([
    'name' => 'John Doe',
    'nim' => '12345',
    'class' => 'A1'
]);
Enter fullscreen mode Exit fullscreen mode

Eloquent

Eloquent adalah ORM (Object-Relational Mapping) Laravel yang memberikan cara yang elegan untuk berinteraksi dengan database menggunakan model PHP. Dengan Eloquent, setiap tabel di database memiliki model yang berhubungan, yang memungkinkan pengembang untuk bekerja dengan database sebagai objek.

Kegunaan:

  • Sederhana dan Efisien: Eloquent membuat CRUD dan operasi database lain menjadi sangat mudah dengan memanfaatkan metode yang sudah disediakan.
  • Relasi: Eloquent memudahkan untuk mendefinisikan hubungan antara model (seperti one-to-many, many-to-many) dengan sintaks yang sederhana.
  • Memudahkan Integrasi dengan Fitur Laravel: Eloquent bekerja erat dengan fitur seperti validation, event, dan authorization.

Contoh Penggunaan:

// Model untuk tabel students
class Student extends Model
{
    protected $fillable = ['name', 'nim', 'class'];
}

// Mengambil semua siswa
$students = Student::all();

// Menyimpan siswa baru
Student::create([
    'name' => 'Jane Doe',
    'nim' => '67890',
    'class' => 'A2'
]);

// Mengupdate siswa
$student = Student::find(1);
$student->class = 'B1';
$student->save();
Enter fullscreen mode Exit fullscreen mode

Top comments (0)