{"id":148,"date":"2025-06-18T01:04:48","date_gmt":"2025-06-18T01:04:48","guid":{"rendered":"https:\/\/devia.infokand23.my.id\/laprak1\/?p=148"},"modified":"2025-06-19T12:34:56","modified_gmt":"2025-06-19T12:34:56","slug":"laporan-praktikum-10","status":"publish","type":"post","link":"https:\/\/devia.infokand23.my.id\/laprak1\/laporan-praktikum-10\/","title":{"rendered":"LAPORAN PRAKTIKUM 10"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull has-background-color has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-68de904d4e9313f2932c42acd7d1e5c1\" style=\"padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-97875daf wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group alignwide is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-256aec57 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-group is-layout-flex wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flex wp-block-group-is-layout-flex\"><nav class=\"is-responsive items-justified-right wp-block-navigation is-content-justification-right is-layout-flex wp-container-core-navigation-is-layout-3817c3ed wp-block-navigation-is-layout-flex\" aria-label=\"Navigation\" \n\t\t data-wp-interactive=\"core\/navigation\" data-wp-context='{\"overlayOpenedBy\":{\"click\":false,\"hover\":false,\"focus\":false},\"type\":\"overlay\",\"roleAttribute\":\"\",\"ariaLabel\":\"Menu\"}'><button aria-haspopup=\"dialog\" aria-label=\"Open menu\" class=\"wp-block-navigation__responsive-container-open\" \n\t\t\t\tdata-wp-on-async--click=\"actions.openMenuOnClick\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t><svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><rect x=\"4\" y=\"7.5\" width=\"16\" height=\"1.5\" \/><rect x=\"4\" y=\"15\" width=\"16\" height=\"1.5\" \/><\/svg><\/button>\n\t\t\t\t<div class=\"wp-block-navigation__responsive-container\"  id=\"modal-1\" \n\t\t\t\tdata-wp-class--has-modal-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-class--is-menu-open=\"state.isMenuOpen\"\n\t\t\t\tdata-wp-watch=\"callbacks.initMenu\"\n\t\t\t\tdata-wp-on--keydown=\"actions.handleMenuKeydown\"\n\t\t\t\tdata-wp-on-async--focusout=\"actions.handleMenuFocusout\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t>\n\t\t\t\t\t<div class=\"wp-block-navigation__responsive-close\" tabindex=\"-1\">\n\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-dialog\" \n\t\t\t\tdata-wp-bind--aria-modal=\"state.ariaModal\"\n\t\t\t\tdata-wp-bind--aria-label=\"state.ariaLabel\"\n\t\t\t\tdata-wp-bind--role=\"state.roleAttribute\"\n\t\t\t>\n\t\t\t\t\t\t\t<button aria-label=\"Close menu\" class=\"wp-block-navigation__responsive-container-close\" \n\t\t\t\tdata-wp-on-async--click=\"actions.closeMenuOnClick\"\n\t\t\t><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"><\/path><\/svg><\/button>\n\t\t\t\t\t\t\t<div class=\"wp-block-navigation__responsive-container-content\" \n\t\t\t\tdata-wp-watch=\"callbacks.focusFirstElement\"\n\t\t\t id=\"modal-1-content\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div><\/nav>\n\n\n<a href=\"https:\/\/devia.infokand23.my.id\/index.html\" target=\"_blank\">Home<\/a>\n\n\n\n<a href=\"https:\/\/devia.infokand23.my.id\/about.html\" target=\"_blank\">Document<\/a>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<p class=\"has-small-font-size\">Untuk praktikum ini, kita akan membuat sistem akademik sederhana dengan relationship:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Student belongs to Major (Many-to-One)<\/li>\n\n\n\n<li class=\"has-small-font-size\">Student belongs to many Subject through pivot table (Many-to-Many)<\/li>\n\n\n\n<li class=\"has-small-font-size\">Major has many Student (One-to-Many)<\/li>\n\n\n\n<li class=\"has-small-font-size\">Subject belongs to many Student through pivot table (Many-to-Many)<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"471\" height=\"585\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-24.png\" alt=\"\" class=\"wp-image-181\" style=\"width:271px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-24.png 471w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-24-242x300.png 242w\" sizes=\"auto, (max-width: 471px) 100vw, 471px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"437\" height=\"1024\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-25-437x1024.png\" alt=\"\" class=\"wp-image-183\" style=\"width:212px;height:auto\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-25-437x1024.png 437w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-25-128x300.png 128w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-25.png 440w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/figure><\/div>\n\n\n<p class=\"has-small-font-size\">Buat project baru dengan nama laravel-relationship, selanjutnya buat migrasi database.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">A. Migration untuk tabel majors<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat migrasi database dengan menggunakan command&nbsp;<code>php artisan make:migration create_majors_table<\/code>. Kemudian tambahkan kode berikut di function up()<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>Schema::create('majors', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('name');\n            $table-&gt;timestamps();\n        });<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">B. Migration untuk tabel students<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat migrasi database dengan menggunakan command&nbsp;<code>php artisan make:migration create_students_table<\/code>. Kemudian tambahkan kode berikut di function up()<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>Schema::create('students', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('nim')-&gt;unique();\n            $table-&gt;string('name');\n            $table-&gt;text('address');\n            $table-&gt;foreignId('major_id')-&gt;constrained('majors')-&gt;onDelete('cascade');\n            $table-&gt;timestamps();\n        });<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">C. Migration untuk tabel subjects<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat migrasi database dengan menggunakan command&nbsp;<code>php artisan make:migration create_subjects_table<\/code>. Kemudian tambahkan kode berikut di function up()<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>Schema::create('subjects', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;string('name');\n            $table-&gt;integer('sks');\n            $table-&gt;timestamps();\n        });<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">D. Migration untuk tabel pivot student_subject<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat migrasi database dengan menggunakan command&nbsp;<code>php artisan make:migration create_student_subject_table<\/code>. Kemuidian tambahkan kode berikut di function up()<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>Schema::create('student_subject', function (Blueprint $table) {\n            $table-&gt;id();\n            $table-&gt;foreignId('student_id')-&gt;constrained('students')-&gt;onDelete('cascade');\n            $table-&gt;foreignId('subject_id')-&gt;constrained('subjects')-&gt;onDelete('cascade');\n            $table-&gt;timestamps();\n\n            \/\/ Mencegah duplikasi kombinasi student_id dan subject_id\n            $table-&gt;unique(&#91;'student_id', 'subject_id']);\n        });<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Setelah semua migrasi telah dibuat dan disave, jalankan migrasi database dengan perintah&nbsp;<code>php artisan migrate<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-small-font-size\">Langkah selanjutnya adalah membuat model dengan relationship sesuai dengan migrasi database yang telah dibuat.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">A. Model Major<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat model major dengan perintah&nbsp;<code>php artisan make:model Major<\/code>&nbsp;pada terminal. Setelah itu, masukkan kode berikut di model:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass Major extends Model\n{\n    use HasFactory;\n    protected $fillable = &#91;'name'];\n\n    \/\/Relationship: One Major has many Student\n    public function students()\n    {\n        return $this-&gt;hasMany(Student::class);\n    }\n}<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">B. Model Student<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat model student dengan perintah&nbsp;<code>php artisan make:model Student<\/code>&nbsp;pada terminal. Setelah itu, masukkan kode berikut di model:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass Student extends Model\n{\n    use HasFactory;\n\n    protected $fillable = &#91;'nim', 'name', 'address', 'major_id'];\n\n    \/\/ Relationship: Many Students belong to one Major\n    public function major()\n    {\n        return $this-&gt;belongsTo(Major::class);\n    }\n    \n    \/\/ Relationship: Many Students belong to many Subjects\n    public function subjects()\n    {\n        return $this-&gt;belongsToMany(Subject::class);\n    }\n}<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">C. Model Subject<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat model subject dengan perintah&nbsp;<code>php artisan make:model Subject<\/code>&nbsp;pada terminal. Setelah itu, masukkan kode berikut di model:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass Subject extends Model\n{\n    use HasFactory;\n    protected $fillable = &#91;'name', 'sks'];\n\n    \/\/ Relationship: Many Subjects belong to many Students\n    public function students()\n    {\n        return $this-&gt;belongsToMany(Student::class);\n    }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator aligncenter has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-small-font-size\">Langkah selanjutnya adalah membuat seeder untuk memasukkan data ke database<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">A. Seeder untuk Major<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat seeder dengan command&nbsp;<code>php artisan make:seeder MajorSeeder<\/code>, lalu isi seeder dengan kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace Database\\Seeders;\n\nuse App\\Models\\Major;\nuse Illuminate\\Database\\Console\\Seeds\\WithoutModelEvents;\nuse Illuminate\\Database\\Seeder;\n\nclass MajorSeeder extends Seeder\n{\n    \/**\n     * Run the database seeds.\n     *\/\n    public function run()\n    {\n        $majors = &#91;\n            &#91;'name' => 'Teknik Informatika'],\n            &#91;'name' => 'Sistem Informasi'],\n            &#91;'name' => 'Teknik Komputer'],\n            &#91;'name' => 'Manajemen Informatika'],\n        ];\n\n        foreach ($majors as $major) {\n            Major::create($major);\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">B. Seeder untuk Subject<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat seeder dengan command&nbsp;<code>php artisan make:seeder SubjectSeeder<\/code>, lalu isi seeder dengan kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace Database\\Seeders;\n\nuse App\\Models\\Subject;\nuse Illuminate\\Database\\Console\\Seeds\\WithoutModelEvents;\nuse Illuminate\\Database\\Seeder;\n\nclass SubjectSeeder extends Seeder\n{\n    \/**\n     * Run the database seeds.\n     *\/\n    public function run()\n    {\n        $subjects = &#91;\n            &#91;'name' => 'Pemrograman Web', 'sks' => 3],\n            &#91;'name' => 'Database', 'sks' => 3],\n            &#91;'name' => 'Algoritma', 'sks' => 2],\n            &#91;'name' => 'Jaringan Komputer', 'sks' => 3],\n            &#91;'name' => 'Sistem Operasi', 'sks' => 2],\n        ];\n\n        foreach ($subjects as $subject) {\n            Subject::create($subject);\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">C. Seeder untuk Student<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Buat seeder dengan command&nbsp;<code>php artisan make:seeder StudentSeeder<\/code>, lalu isi seeder dengan kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace Database\\Seeders;\n\nuse App\\Models\\Student;\nuse App\\Models\\Subject;\nuse Illuminate\\Database\\Console\\Seeds\\WithoutModelEvents;\nuse Illuminate\\Database\\Seeder;\n\nclass StudentSeeder extends Seeder\n{\n    \/**\n     * Run the database seeds.\n     *\/\n    public function run()\n    {\n        $students = &#91;\n            &#91;'nim' => '20210001', 'name' => 'Ahmad Rizki', 'address' => 'Jl. Merdeka No. 1', 'major_id' => 1],\n            &#91;'nim' => '20210002', 'name' => 'Siti Nurhaliza', 'address' => 'Jl. Sudirman No. 15', 'major_id' => 1],\n            &#91;'nim' => '20210003', 'name' => 'Budi Santoso', 'address' => 'Jl. Pahlawan No. 8', 'major_id' => 2],\n            &#91;'nim' => '20210004', 'name' => 'Dewi Kartika', 'address' => 'Jl. Diponegoro No. 22', 'major_id' => 2],\n            &#91;'nim' => '20210005', 'name' => 'Eko Prasetyo', 'address' => 'Jl. Gatot Subroto No. 11', 'major_id' => 3],\n        ];\n\n        foreach ($students as $studentData) {\n            $student = Student::create($studentData);\n\n            \/\/ Assign random subjects to each student\n            $subjects = Subject::inRandomOrder()->take(rand(2, 4))->pluck('id');\n            $student->subjects()->attach($subjects);\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">D. Update DatabaseSeeder<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Tambahkan kode berikut pada DatabaseSeeder<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace Database\\Seeders;\n\nuse Illuminate\\Database\\Seeder;\n\nclass DatabaseSeeder extends Seeder\n{\n\n    public function run()\n    {\n        $this->call(&#91;\n            MajorSeeder::class,\n            SubjectSeeder::class,\n            StudentSeeder::class,\n        ]);\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">setelah semua seeder dibuat dan di save, jalankan dengan perintah\u00a0<code>php artisan db:seed<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator aligncenter has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-small-font-size\">Langkah selanjutnya adlaah membuat controller pada model. Buat controller dengan perintah\u00a0<code>php artisan make:controller StudentController<\/code>\u00a0pada terminal. Kemudian tambahkan kode berikut di file controller:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Models\\Student;\nuse App\\Models\\Major;\nuse App\\Models\\Subject;\nuse Illuminate\\Http\\Request;\n\nclass StudentController extends Controller\n{\n    public function index()\n    {\n        \/\/ Eager loading untuk menghindari N+1 problem\n        $students = Student::with(&#91;'major', 'subjects'])->get();\n        return view('students.index', compact('students', 'mostFrequentMajor'));\n    }\n\n    public function show($id)\n    {\n        $student = Student::with(&#91;'major', 'subjects'])->findOrFail($id);\n        return view('students.show', compact('student'));\n    }\n\n    public function create()\n    {\n        $majors = Major::all();\n        $subjects = Subject::all();\n        return view('students.create', compact('majors', 'subjects'));\n    }\n\n    public function store(Request $request)\n    {\n        $request->validate(&#91;\n            'nim' => 'required|unique:students',\n            'name' => 'required',\n            'address' => 'required',\n            'major_id' => 'required|exists:majors,id',\n            'subjects' => 'required|array',\n            'subjects.*' => 'exists:subjects,id',\n        ]);\n\n        $student = Student::create($request->only(&#91;'nim', 'name', 'address', 'major_id']));\n        $student->subjects()->attach($request->subjects);\n\n        return redirect()->route('students.index')->with('success', 'Student created successfully');\n    }\n\n    public function edit($id)\n    {\n        $student = Student::with('subjects')->findOrFail($id);\n        $majors = Major::all();\n        $subjects = Subject::all();\n        return view('students.edit', compact('student', 'majors', 'subjects'));\n    }\n\n    public function update(Request $request, $id)\n    {\n        $student = Student::findOrFail($id);\n        $request->validate(&#91;\n            'nim' => 'required|unique:students,nim,' . $student->id,\n            'name' => 'required',\n            'address' => 'required',\n            'major_id' => 'required|exists:majors,id',\n            'subjects' => 'required|array',\n            'subjects.*' => 'exists:subjects,id',\n        ]);\n\n        $student->update($request->only(&#91;'nim', 'name', 'address', 'major_id']));\n        $student->subjects()->sync($request->subjects);\n\n        return redirect()->route('students.index')->with('success', 'Student updated successfully');\n    }\n\n    public function destroy($id)\n    {\n        $student = Student::findOrFail($id);\n        $student->subjects()->detach(); \/\/ Remove all subject relationships\n        $student->delete();\n        \n        return redirect()->route('students.index')->with('success', 'Student deleted successfully');\n    }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator aligncenter has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"has-small-font-size\">Langkah selanjutnya yaitu membuat Route untuk menentukan bagaimana aplikasi merespons permintaan (request) pada URL tertentu. Ubah kode pada web.php menjadi kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;?php\n\nuse App\\Http\\Controllers\\StudentController;\nuse Illuminate\\Support\\Facades\\Route;\n\nRoute::get('\/', function () {\n    return redirect()->route('students.index');\n});\n\nRoute::resource('students', StudentController::class);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator aligncenter has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<!--nextpage-->\n\n\n\n<p class=\"has-small-font-size\">Langkah selanjutnya adalah membuat views untuk menampilkan pada halaman website<\/p>\n\n\n\n<p><strong>A. Layout Utama (views\/layouts\/app.blade.php)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"en\">\n&lt;head>\n    &lt;meta charset=\"UTF-8\">\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    &lt;title>Student Management System&lt;\/title>\n    &lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.1.3\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\n&lt;\/head>\n&lt;body>\n    &lt;nav class=\"navbar navbar-expand-lg navbar-dark bg-primary\">\n        &lt;div class=\"container\">\n            &lt;a class=\"navbar-brand\" href=\"{{ route('students.index') }}\">Student Management&lt;\/a>\n        &lt;\/div>\n    &lt;\/nav>\n\n    &lt;div class=\"container mt-4\">\n        @if(session('success'))\n            &lt;div class=\"alert alert-success\">\n                {{ session('success') }}\n            &lt;\/div>\n        @endif\n        \n        @yield('content')\n    &lt;\/div>\n    \n    &lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.1.3\/dist\/js\/bootstrap.bundle.min.js\">&lt;\/script>\n&lt;\/body>\n&lt;\/html><\/code><\/pre>\n\n\n\n<p><strong>B. Index Student (views\/students\/index.blade.php)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>@extends('layouts.app')\n\n@section('content')\n&lt;div class=\"d-flex justify-content-between align-items-center mb-4\">\n    &lt;h2>Daftar Mahasiswa&lt;\/h2>\n    &lt;a href=\"{{ route('students.create') }}\" class=\"btn btn-primary\">Tambah Mahasiswa&lt;\/a>\n&lt;\/div>\n\n&lt;div class=\"table-responsive\">\n    &lt;table class=\"table table-striped\">\n        &lt;thead>\n            &lt;tr>\n                &lt;th>NIM&lt;\/th>\n                &lt;th>Nama&lt;\/th>\n                &lt;th>Jurusan&lt;\/th>\n                &lt;th>Mata Kuliah&lt;\/th>\n                &lt;th>Total SKS&lt;\/th>\n                &lt;th>Aksi&lt;\/th>\n            &lt;\/tr>\n        &lt;\/thead>\n        &lt;tbody>\n            @foreach($students as $student)\n            &lt;tr>\n                &lt;td>{{ $student->nim }}&lt;\/td>\n                &lt;td>{{ $student->name }}&lt;\/td>\n                &lt;td>{{ $student->major->name }}&lt;\/td>\n                &lt;td>\n                @foreach($student->subjects as $subject)\n                    &lt;span class=\"badge bg-secondary me-1\">{{ $subject->name }}&lt;\/span>\n                @endforeach\n                &lt;\/td>\n                &lt;td>{{ $student->subjects->sum('sks') }}&lt;\/td>\n                &lt;td>\n                    &lt;a href=\"{{ route('students.show', $student->id) }}\" class=\"btn btn-info btn-sm\">Detail&lt;\/a>\n                    &lt;a href=\"{{ route('students.edit', $student->id) }}\" class=\"btn btn-warning btn-sm\">Edit&lt;\/a>\n                    &lt;form action=\"{{ route('students.destroy', $student->id) }}\" method=\"POST\" class=\"d-inline\">\n                        @csrf\n                        @method('DELETE')\n                        &lt;button type=\"submit\" class=\"btn btn-danger btn-sm\" onclick=\"return confirm('Yakin ingin menghapus?')\">Hapus&lt;\/button>\n                    &lt;\/form>\n                &lt;\/td>\n            &lt;\/tr>\n            @endforeach\n        &lt;\/tbody>\n    &lt;\/table>\n&lt;\/div>\n@endsection<\/code><\/pre>\n\n\n\n<p><strong>C. Create Student (views\/students\/create.blade.php)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>@extends('layouts.app')\n\n@section('content')\n&lt;h2>Tambah Mahasiswa&lt;\/h2>\n\n&lt;div class=\"card\">\n    &lt;div class=\"card-body\">\n        &lt;form action=\"{{ route('students.store') }}\" method=\"POST\">\n            @csrf\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"nim\" class=\"form-label\">NIM&lt;\/label>\n                &lt;input type=\"text\" class=\"form-control @error('nim') is-invalid @enderror\"\n                       id=\"nim\" name=\"nim\" value=\"{{ old('nim') }}\">\n                @error('nim')\n                    &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"name\" class=\"form-label\">Nama&lt;\/label>\n                &lt;input type=\"text\" class=\"form-control @error('name') is-invalid @enderror\"\n                       id=\"name\" name=\"name\" value=\"{{ old('name') }}\">\n                @error('name')\n                    &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"address\" class=\"form-label\">Alamat&lt;\/label>\n                &lt;textarea class=\"form-control @error('address') is-invalid @enderror\"\n                          id=\"address\" name=\"address\" rows=\"3\">{{ old('address') }}&lt;\/textarea>\n                @error('address')\n                    &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"major_id\" class=\"form-label\">Jurusan&lt;\/label>\n                &lt;select class=\"form-control @error('major_id') is-invalid @enderror\"\n                        id=\"major_id\" name=\"major_id\">\n                    &lt;option value=\"\">Pilih Jurusan&lt;\/option>\n                    @foreach($majors as $major)\n                        &lt;option value=\"{{ $major->id }}\" {{ old('major_id') == $major->id ? 'selected' : '' }}>\n                            {{ $major->name }}\n                        &lt;\/option>\n                    @endforeach\n                &lt;\/select>\n                @error('major_id')\n                     &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n            \n            &lt;div class=\"mb-3\">\n                &lt;label class=\"form-label\">Mata Kuliah&lt;\/label>\n                @error('subjects')\n                    &lt;div class=\"text-danger\">{{ $message }}&lt;\/div>\n                @enderror\n                @foreach($subjects as $subject)\n                    &lt;div class=\"form-check\">\n                        &lt;input class=\"form-check-input\" type=\"checkbox\" name=\"subjects&#91;]\"\n                               value=\"{{ $subject->id }}\" id=\"subject{{ $subject->id }}\"\n                               {{ in_array($subject->id, old('subjects', &#91;])) ? 'checked' : '' }}>\n                        &lt;label class=\"form-check-label\" for=\"subject{{ $subject->id }}\">\n                            {{ $subject->name }} ({{ $subject->sks }} SKS)\n                        &lt;\/label>\n                    &lt;\/div>\n                @endforeach\n            &lt;\/div>\n\n            &lt;button type=\"submit\" class=\"btn btn-primary\">Simpan&lt;\/button>\n            &lt;a href=\"{{ route('students.index') }}\" class=\"btn btn-secondary\">Kembali&lt;\/a>\n        &lt;\/form>\n    &lt;\/div>\n&lt;\/div>\n@endsection<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">jika sudah selesai maka tampilannya akan seperti berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"396\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-12-115449-1-1024x396.png\" alt=\"\" class=\"wp-image-202\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-12-115449-1-1024x396.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-12-115449-1-300x116.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-12-115449-1-768x297.png 768w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-12-115449-1-1536x594.png 1536w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-12-115449-1.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">index<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1693\" height=\"952\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-28-edited.png\" alt=\"\" class=\"wp-image-209\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-28-edited.png 1693w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-28-edited-300x169.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-28-edited-1024x576.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-28-edited-768x432.png 768w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/image-28-edited-1536x864.png 1536w\" sizes=\"auto, (max-width: 1693px) 100vw, 1693px\" \/><figcaption class=\"wp-element-caption\">create<\/figcaption><\/figure>\n\n\n\n<!--nextpage-->\n\n\n\n<h4 class=\"wp-block-heading\">Tugas<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">1. Query untuk menampilkan Jurusan dengan mahasiswa terbanyak<\/h5>\n\n\n\n<p class=\"has-small-font-size\">pertama, ubah dulu bagian index() pada StudentController dengan kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\/\/ Eager loading untuk menghindari N+1 problem\n$students = Student::with(&#91;'major', 'subjects'])->get();\n\n\/\/ Cari jurusan dengan jumlah mahasiswa terbanyak\n$mostFrequentMajor = Major::withCount('students')\n    ->orderByDesc('students_count')\n    ->first();\n\n\/\/ Kirim ke view\nreturn view('students.index', compact('students', 'mostFrequentMajor'));<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Query ini berfungsi untuk mencari dan mengambil satu data jurusan (Major) yang memiliki jumlah mahasiswa terbanyak. Langkah pertamanya (Major::withCount(\u2018students\u2019)) adalah mengambil semua data jurusan sambil menghitung jumlah mahasiswa yang berelasi dengan setiap jurusan, hasil hitungan ini disimpan dalam kolom virtual bernama students_count; kemudian (orderByDesc(\u2018students_count\u2019)) hasilnya diurutkan secara menurun berdasarkan jumlah mahasiswa tersebut; dan terakhir (first()) diambil satu record pertama dari hasil pengurutan, yang secara efektif adalah jurusan dengan jumlah mahasiswa terbanyak.<\/p>\n\n\n\n<p class=\"has-small-font-size\">Kemudian, pada index.blade.php, tambahkan kode berikut dibawah kode tabel:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>@if ($mostFrequentMajor)\n    &lt;div class=\"alert alert-info mt-4\" role=\"alert\">\n        Jurusan dengan mahasiswa terbanyak adalah: &lt;strong>{{ $mostFrequentMajor->name }}&lt;\/strong> (dengan {{ $mostFrequentMajor->students_count }} mahasiswa).\n    &lt;\/div>\n@endif<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Hasilnya akan menjadi seperti berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"460\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183128-1-1024x460.png\" alt=\"\" class=\"wp-image-204\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183128-1-1024x460.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183128-1-300x135.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183128-1-768x345.png 768w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183128-1-1536x690.png 1536w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183128-1.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">2. Menambahkan View Detail menggunakan controller show()<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Kode view show.blade.php:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>@extends('layouts.app')\n\n@section('content')\n    &lt;h2>Detail Mahasiswa&lt;\/h2>\n\n    &lt;div class=\"card\">\n        &lt;div class=\"card-body\">\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"nim\" class=\"form-label\">NIM:&lt;\/label>\n                &lt;p id=\"nim\">{{ $student->nim }}&lt;\/p>\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"name\" class=\"form-label\">Nama:&lt;\/label>\n                &lt;p id=\"name\">{{ $student->name }}&lt;\/p>\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"address\" class=\"form-label\">Alamat:&lt;\/label>\n                &lt;p id=\"address\">{{ $student->address }}&lt;\/p>\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"major\" class=\"form-label\">Jurusan:&lt;\/label>\n                &lt;p id=\"major\">{{ $student->major->name }}&lt;\/p>\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label class=\"form-label\">Mata Kuliah Diambil:&lt;\/label>\n                @if ($student->subjects->count() > 0)\n                    &lt;ul>\n                        @foreach ($student->subjects as $subject)\n                            &lt;li>{{ $subject->name }} ({{ $subject->sks }} SKS)&lt;\/li>\n                        @endforeach\n                    &lt;\/ul>\n                    &lt;p>&lt;strong>Total SKS:&lt;\/strong> {{ $student->subjects->sum('sks') }}&lt;\/p>\n                @else\n                    &lt;p>Tidak ada mata kuliah yang diambil.&lt;\/p>\n                @endif\n            &lt;\/div>\n\n            &lt;a href=\"{{ route('students.index') }}\" class=\"btn btn-secondary\">Kembali ke Daftar&lt;\/a>\n        &lt;\/div>\n    &lt;\/div>\n@endsection<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Hasilnya akan menjadi seperti berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"451\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183656-1-1024x451.png\" alt=\"\" class=\"wp-image-205\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183656-1-1024x451.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183656-1-300x132.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183656-1-768x338.png 768w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183656-1-1536x676.png 1536w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-183656-1.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">3. Menambahkan view edit dari controller update()<\/h5>\n\n\n\n<p class=\"has-small-font-size\">Kode view edit.blade.php:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>@extends('layouts.app')\n\n@section('content')\n&lt;h2>Edit Mahasiswa&lt;\/h2>\n\n&lt;div class=\"card\">\n    &lt;div class=\"card-body\">\n        &lt;form action=\"{{ route('students.update', $student->id) }}\" method=\"POST\">\n            @csrf\n            @method('PUT') {{-- Use PUT method for updates --}}\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"nim\" class=\"form-label\">NIM&lt;\/label>\n                {{-- Populate with existing student data, or old input on validation error --}}\n                &lt;input type=\"text\" class=\"form-control @error('nim') is-invalid @enderror\"\n                       id=\"nim\" name=\"nim\" value=\"{{ old('nim', $student->nim) }}\">\n                @error('nim')\n                    &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"name\" class=\"form-label\">Nama&lt;\/label>\n                &lt;input type=\"text\" class=\"form-control @error('name') is-invalid @enderror\"\n                       id=\"name\" name=\"name\" value=\"{{ old('name', $student->name) }}\">\n                @error('name')\n                    &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"address\" class=\"form-label\">Alamat&lt;\/label>\n                &lt;input type=\"text\" class=\"form-control @error('address') is-invalid @enderror\"\n                       id=\"address\" name=\"address\" value=\"{{ old('address', $student->address) }}\">\n                @error('address')\n                    &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label for=\"major_id\" class=\"form-label\">Jurusan&lt;\/label>\n                &lt;select name=\"major_id\" id=\"major_id\" class=\"form-control @error('major_id') is-invalid @enderror\" >\n                    &lt;option value=\"\">Pilih Jurusan&lt;\/option>\n                    @foreach ($majors as $major)\n                        {{-- Pre-select the current major --}}\n                        &lt;option value=\"{{ $major->id }}\" {{ old('major_id', $student->major_id) == $major->id ? 'selected' : '' }}>\n                            {{ $major->name }}\n                        &lt;\/option>\n                    @endforeach\n                &lt;\/select>\n                @error('major_id')\n                    &lt;div class=\"invalid-feedback\">{{ $message }}&lt;\/div>\n                @enderror\n            &lt;\/div>\n\n            &lt;div class=\"mb-3\">\n                &lt;label class=\"form-label\">Mata Kuliah&lt;\/label>\n                 @error('subjects')\n                    &lt;div class=\"text-danger\">{{ $message }}&lt;\/div>\n                @enderror\n                @foreach ($subjects as $subject)\n                    &lt;div class=\"form-check\">\n                        &lt;input type=\"checkbox\" class=\"form-check-input\" name=\"subjects&#91;]\"\n                               value=\"{{ $subject->id }}\" id=\"subject{{ $subject->id }}\"\n                               {{-- Check if the subject is currently associated with the student --}}\n                               {{ in_array($subject->id, old('subjects', $student->subjects->pluck('id')->toArray())) ? 'checked' : '' }}>\n\n                        &lt;label for=\"subject{{ $subject->id }}\" class=\"form-check-label\">\n                            {{ $subject->name }} ({{ $subject->sks }} SKS)\n                        &lt;\/label>\n                    &lt;\/div>\n                @endforeach\n            &lt;\/div>\n\n            &lt;button type=\"submit\" class=\"btn btn-primary\">Update&lt;\/button>\n            &lt;a href=\"{{ route('students.index') }}\" class=\"btn btn-secondary\">Batal&lt;\/a>\n        &lt;\/form>\n    &lt;\/div>\n&lt;\/div>\n@endsection<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Hasilnya akan menjadi seperti berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"464\" src=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-184204-1-1024x464.png\" alt=\"\" class=\"wp-image-206\" srcset=\"https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-184204-1-1024x464.png 1024w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-184204-1-300x136.png 300w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-184204-1-768x348.png 768w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-184204-1-1536x696.png 1536w, https:\/\/devia.infokand23.my.id\/laprak1\/wp-content\/uploads\/2025\/06\/Cuplikan-layar-2025-06-19-184204-1.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Home Document Untuk praktikum ini, kita akan membuat sistem akademik sederhana dengan relationship: Buat project baru dengan nama laravel-relationship, selanjutnya buat migrasi database. A. Migration untuk tabel majors Buat migrasi database dengan menggunakan command&nbsp;php artisan make:migration create_majors_table. Kemudian tambahkan kode berikut di function up() B. Migration untuk tabel students Buat migrasi database dengan menggunakan command&nbsp;php &hellip; <a href=\"https:\/\/devia.infokand23.my.id\/laprak1\/laporan-praktikum-10\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">LAPORAN PRAKTIKUM 10<\/span><\/a><\/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-148","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/comments?post=148"}],"version-history":[{"count":11,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/148\/revisions"}],"predecessor-version":[{"id":211,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/posts\/148\/revisions\/211"}],"wp:attachment":[{"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/media?parent=148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/categories?post=148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devia.infokand23.my.id\/laprak1\/wp-json\/wp\/v2\/tags?post=148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}