Laporan praktikum web 5

1. Membuat Migration

Langkah ini bertujuan untuk mendefinisikan dan membuat struktur tabel di dalam database menggunakan sistem migrasi Laravel. migrations.

A. Migration untuk tabel Majors

majors: Perintah php artisan make:migration create_majors_table dijalankan untuk membuat file migrasi. Di dalam file ini, didefinisikan skema tabel. majors yang memiliki kolom id (primary key), name (string), serta timestamps untuk data waktu.

Web Dev Web Dev

B. Migration untuk tabel Students

students: File migrasi untuk tabel students dibuat. Tabel ini memiliki kolom id, nim (unique key), name, address, dan major_id sebagai foreign key yang terhubung ke tabel majors. Relasi ini diatur agar data mahasiswa ikut terhapus jika data jurusan terkait dihapus (onDelete('cascade')).

Web Dev Web Dev

C. Migration untuk tabel Subjects

subjects: File migrasi dibuat untuk tabel subjects. Skemanya berisi kolom id, name, dan sks (integer) untuk menyimpan Satuan Kredit Semester.

Web Dev Web Dev

D. Migration untuk tabel pivot students_subject

student_subject: Sebuah tabel pivot student_subject dibuat untuk menangani relasi many-to-many antara mahasiswa dan mata kuliah. Tabel ini berisi student_id dan subject_id sebagai foreign key. Kombinasi kedua kolom ini juga dibuat unik untuk mencegah duplikasi data.

Web Dev Web Dev

Jalankan Migration: Perintah php artisan migrate dieksekusi untuk menerapkan semua skema yang telah dibuat menjadi tabel-tabel nyata di dalam database.

Web Dev

2. Membuat Model dengan Relationship

Pada langkah ini, model Eloquent dibuat untuk setiap tabel utama agar dapat berinteraksi dengan database secara lebih mudah dan intuitif, sekaligus mendefinisikan relasi antar model.

A. Model Major

Major: Model Major dibuat. Di dalamnya, didefinisikan relasi One-to-Many melalui fungsi students(), yang menyatakan bahwa satu jurusan dapat memiliki banyak mahasiswa (hasMany).

Web Dev Web Dev

B. Model Student

Student: Model Student dibuat. Model ini memiliki dua relasi yaitu Relasi Many-to-One ke model Major melalui fungsi major(), yang menyatakan bahwa seorang mahasiswa milik satu jurusan (belongsTo). Kemudian Relasi Many-to-Many ke model Subject melalui fungsi subjects(), yang menyatakan bahwa seorang mahasiswa dapat mengambil banyak mata kuliah (belongsToMany).

Web Dev Web Dev

C. Model Subject

Subject: Model Subject dibuat. Di dalamnya, didefinisikan relasi Many-to-Many ke model Student melalui fungsi students(), yang menandakan satu mata kuliah dapat diambil oleh banyak mahasiswa (belongsToMany).

Web Dev Web Dev

3. Seeder untuk Data Sample

Langkah ini bertujuan untuk mengisi tabel-tabel yang sudah dibuat dengan data awal (sampel) untuk keperluan pengembangan dan pengujian.

A. Seeder untuk Major

Major: MajorSeeder dibuat untuk mengisi tabel majors dengan beberapa data jurusan seperti 'Teknik Informatika' dan 'Sistem Informasi'.

Web Dev Web Dev

B. Seeder untuk Subject

Subject: SubjectSeeder dibuat untuk mengisi tabel subjects dengan data mata kuliah beserta SKS-nya, contohnya 'Pemrograman Web' dan 'Database'.

Web Dev Web Dev

C. Seeder untuk Student

Student: StudentSeeder dibuat untuk menambahkan data mahasiswa. Untuk setiap mahasiswa yang dibuat, seeder ini juga secara acak memilih 2 hingga 4 mata kuliah untuk dihubungkan ke mahasiswa tersebut menggunakan metode attach().

Web Dev Web Dev

D. Update DatabaseSeeder

DatabaseSeeder: File utama DatabaseSeeder.php dimodifikasi untuk memanggil ketiga seeder yang telah dibuat (MajorSeeder, SubjectSeeder, dan StudentSeeder) secara berurutan.

Web Dev Web Dev

Jalankan Seeder: Perintah php artisan db:seed dijalankan untuk mengeksekusi DatabaseSeeder, yang kemudian mengisi semua tabel dengan data sampel

Web Dev

4. Membuat Controller

A. StudentController

php artisan make:controller StudentController

Web Dev

5. Membuat Routes

Web Dev

6. Membuat Views

A. Layout utama

{{-- resources/views/layouts/app.blade.php --}}

Web Dev

B. Index Students

{{-- resources/views/students/index.blade.php --}}

Web Dev

C. Create Student

{{-- resources/views/students/create.blade.php --}}

Web Dev Web Dev Web Dev Web Dev
← Kembali ke Blog