{"id":114,"date":"2025-06-29T13:34:42","date_gmt":"2025-06-29T13:34:42","guid":{"rendered":"https:\/\/nia.infokand23.my.id\/blog\/?p=114"},"modified":"2025-09-17T13:50:40","modified_gmt":"2025-09-17T13:50:40","slug":"pratikum-10","status":"publish","type":"post","link":"https:\/\/nia.infokand23.my.id\/blog\/pratikum-10\/","title":{"rendered":"Pratikum 10"},"content":{"rendered":"\n<p>A.Pendahuluan<\/p>\n\n\n\n<p>Dalam pengembangan aplikasi berbasis database, hubungan antar entitas atau tabel menjadi aspek penting yang harus dirancang dengan baik. Relasi antar tabel tidak hanya mencerminkan struktur data yang logis, tetapi juga memungkinkan sistem untuk melakukan pengolahan data yang efisien dan terorganisir. Salah satu pendekatan yang banyak digunakan dalam framework PHP <strong>Laravel<\/strong> adalah <strong>Eloquent ORM (Object-Relational Mapping)<\/strong> yang menyediakan cara deklaratif dan intuitif dalam mendefinisikan relasi antar model.<\/p>\n\n\n\n<p>Salah satu contoh skema relasi yang umum ditemukan dalam sistem akademik adalah antara <strong>mahasiswa (Student)<\/strong>, <strong>jurusan (Major)<\/strong>, dan <strong>mata kuliah (Subject)<\/strong>. Dalam konteks ini, terdapat beberapa bentuk relasi yang dapat diimplementasikan menggunakan fitur bawaan Laravel:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Relasi Many-to-One (Student belongs to Major)<\/strong><br>Setiap mahasiswa hanya berasal dari satu jurusan, sehingga relasi ini bersifat many-to-one. Di Laravel, hal ini direpresentasikan dengan method <code>belongsTo()<\/code> pada model <code>Student<\/code> yang mengarah ke model <code>Major<\/code>.<\/li>\n\n\n\n<li><strong>Relasi One-to-Many (Major has many Student)<\/strong><br>Sebaliknya, satu jurusan dapat memiliki banyak mahasiswa. Relasi ini didefinisikan di model <code>Major<\/code> menggunakan method <code>hasMany()<\/code> yang mengarah ke model <code>Student<\/code>.<\/li>\n\n\n\n<li><strong>Relasi Many-to-Many (Student belongs to many Subject)<\/strong><br>Mahasiswa dapat mengambil banyak mata kuliah, dan satu mata kuliah dapat diikuti oleh banyak mahasiswa. Relasi ini bersifat many-to-many dan membutuhkan sebuah <strong>pivot table<\/strong> (tabel perantara), misalnya <code>student_subject<\/code>, yang menyimpan relasi antara mahasiswa dan mata kuliah. Dalam Laravel, ini diatur menggunakan method <code>belongsToMany()<\/code> pada model <code>Student<\/code> dan <code>Subject<\/code>.<\/li>\n\n\n\n<li><strong>Relasi Many-to-Many (Subject belongs to many Student)<\/strong><br>Sebagai pasangan dari relasi sebelumnya, model <code>Subject<\/code> juga memiliki relasi many-to-many dengan model <code>Student<\/code>, menggunakan pivot table yang sama.<\/li>\n<\/ol>\n\n\n\n<p>Penerapan relasi-relasi ini dalam Laravel mempermudah proses pengolahan data seperti menampilkan daftar mahasiswa per jurusan, melihat mata kuliah yang diambil oleh mahasiswa, atau menampilkan semua mahasiswa yang mengikuti suatu mata kuliah. Dengan struktur relasi yang tepat, aplikasi menjadi lebih modular, mudah dirawat, dan sesuai dengan prinsip normalisasi database.<\/p>\n\n\n\n<p>B.Langkah Pengerjaan<\/p>\n\n\n\n<p>1.Bikin file baru dimigration dengan nama majors, student, subject, dan student_subject dengan menjalankan perintah php artisan make:migration creat_&#8221;nama&#8221;_table<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"954\" height=\"72\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81.png\" alt=\"\" class=\"wp-image-117\" style=\"width:411px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81.png 954w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81-300x23.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-81-768x58.png 768w\" sizes=\"auto, (max-width: 954px) 100vw, 954px\" \/><\/figure>\n\n\n\n<p>2. Setelah itu pada file majors table masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"894\" height=\"448\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-82.png\" alt=\"\" class=\"wp-image-118\" style=\"width:363px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-82.png 894w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-82-300x150.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-82-768x385.png 768w\" sizes=\"auto, (max-width: 894px) 100vw, 894px\" \/><\/figure>\n\n\n\n<p>3. Pada file table student, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"898\" height=\"462\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-83.png\" alt=\"\" class=\"wp-image-119\" style=\"width:412px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-83.png 898w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-83-300x154.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-83-768x395.png 768w\" sizes=\"auto, (max-width: 898px) 100vw, 898px\" \/><\/figure>\n\n\n\n<p>4. Pada file table subject, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"596\" height=\"352\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-84.png\" alt=\"\" class=\"wp-image-120\" style=\"width:396px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-84.png 596w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-84-300x177.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/figure>\n\n\n\n<p>5. Pada file table student_subject, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"856\" height=\"461\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85.png\" alt=\"\" class=\"wp-image-121\" style=\"width:436px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85.png 856w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85-300x162.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-85-768x414.png 768w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\" \/><\/figure>\n\n\n\n<p>6. Untuk melihat apakah table tadi sudah terbuat jalankan perintah php artisan migrate<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"942\" height=\"100\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86.png\" alt=\"\" class=\"wp-image-122\" style=\"width:518px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86.png 942w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86-300x32.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-86-768x82.png 768w\" sizes=\"auto, (max-width: 942px) 100vw, 942px\" \/><\/figure>\n\n\n\n<p>7.\u00a0Selanjutnya membuat model majors, student, dan subject dengan menjalankan perintah berikut ini<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"918\" height=\"241\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87.png\" alt=\"\" class=\"wp-image-123\" style=\"width:406px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87.png 918w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87-300x79.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-87-768x202.png 768w\" sizes=\"auto, (max-width: 918px) 100vw, 918px\" \/><\/figure>\n\n\n\n<p>8.Pada file model majors, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"626\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-88.png\" alt=\"\" class=\"wp-image-124\" style=\"width:244px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-88.png 651w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-88-300x288.png 300w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/figure>\n\n\n\n<p>9. Pada file model student, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"765\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89.png\" alt=\"\" class=\"wp-image-125\" style=\"width:285px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89.png 784w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89-300x293.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-89-768x749.png 768w\" sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/figure>\n\n\n\n<p>10. Pada file model subject, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"739\" height=\"625\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90.png\" alt=\"\" class=\"wp-image-126\" style=\"width:344px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90.png 739w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-90-300x254.png 300w\" sizes=\"auto, (max-width: 739px) 100vw, 739px\" \/><\/figure>\n\n\n\n<p>11.Selanjutnya membuat seeder majorseeder, studentseeder, dan subjectseeder dengan menjalankan perintah berikut ini<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"216\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91.png\" alt=\"\" class=\"wp-image-127\" style=\"width:378px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91.png 950w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91-300x68.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-91-768x175.png 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n\n\n\n<p>12.Pada file model majorseeder, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"627\" height=\"697\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92.png\" alt=\"\" class=\"wp-image-128\" style=\"width:257px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92.png 627w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-92-270x300.png 270w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><\/figure>\n\n\n\n<p>13.\u00a0Pada file model studentseeder, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"883\" height=\"447\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-93.png\" alt=\"\" class=\"wp-image-129\" style=\"width:385px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-93.png 883w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-93-300x152.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-93-768x389.png 768w\" sizes=\"auto, (max-width: 883px) 100vw, 883px\" \/><\/figure>\n\n\n\n<p>14.Pada file model subjectseeder, masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"665\" height=\"719\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94.png\" alt=\"\" class=\"wp-image-130\" style=\"width:311px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94.png 665w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-94-277x300.png 277w\" sizes=\"auto, (max-width: 665px) 100vw, 665px\" \/><\/figure>\n\n\n\n<p>15. Kemudian lakukan update pada DatabaseSeeder dengan kode berikut ini<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"539\" height=\"536\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-95.png\" alt=\"\" class=\"wp-image-131\" style=\"width:251px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-95.png 539w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-95-300x298.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-95-150x150.png 150w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\" \/><\/figure>\n\n\n\n<p>16. Kemudian jalankan perintah php artisan db:seed untuk melihat nama database yang udah dibuat sebelumnya<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"936\" height=\"162\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-96.png\" alt=\"\" class=\"wp-image-132\" style=\"width:376px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-96.png 936w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-96-300x52.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-96-768x133.png 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/figure>\n\n\n\n<p>17. Kemudian untuk melihat tampilannya gunakan app.blade.php pada folder layouts dan masukkan kode berikut ini<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"892\" height=\"505\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97.png\" alt=\"\" class=\"wp-image-133\" style=\"width:401px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97.png 892w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97-300x170.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-97-768x435.png 768w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/figure>\n\n\n\n<p>18.Dan buat tampilan index.blade.php dan masukkan kode berikut<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"887\" height=\"636\" src=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98.png\" alt=\"\" class=\"wp-image-134\" style=\"width:365px;height:auto\" srcset=\"https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98.png 887w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98-300x215.png 300w, https:\/\/nia.infokand23.my.id\/blog\/wp-content\/uploads\/2025\/06\/image-98-768x551.png 768w\" sizes=\"auto, (max-width: 887px) 100vw, 887px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A.Pendahuluan Dalam pengembangan aplikasi berbasis database, hubungan antar entitas atau tabel menjadi aspek penting yang harus dirancang dengan baik. Relasi antar tabel tidak hanya mencerminkan struktur data yang logis, tetapi juga memungkinkan sistem untuk melakukan pengolahan data yang efisien dan terorganisir. Salah satu pendekatan yang banyak digunakan dalam framework PHP Laravel adalah Eloquent ORM (Object-Relational [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":1,"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":135,"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/posts\/114\/revisions\/135"}],"wp:attachment":[{"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nia.infokand23.my.id\/blog\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}