{"id":48,"date":"2025-06-20T10:23:39","date_gmt":"2025-06-20T10:23:39","guid":{"rendered":"https:\/\/msp.fikp.umrah.ac.id\/?page_id=48"},"modified":"2026-05-03T11:08:26","modified_gmt":"2026-05-03T04:08:26","slug":"kurikulum","status":"publish","type":"page","link":"https:\/\/msp.fikp.umrah.ac.id\/?page_id=48","title":{"rendered":"Kurikulum"},"content":{"rendered":"\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/drive.google.com\/file\/d\/1_70xEI-iZTGTohXwKcfEWx6K-z7nmhXN\/view?usp=sharing\">Dokumen Kurikulum<\/a><\/li>\n<\/ul>\n\n\n\n<div id=\"curriculum-app-msp\">\n  <style>\n    #curriculum-app-msp {\n      font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n      max-width: 1200px;\n      margin: 0 auto;\n      color: #333;\n      background: #fff;\n      padding: 20px;\n      border-radius: 8px;\n      box-shadow: 0 4px 15px rgba(0,0,0,0.05);\n    }\n\n    \/* Controls & Navigation *\/\n    .curr-controls {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 15px;\n      margin-bottom: 25px;\n      justify-content: space-between;\n      align-items: center;\n      background: #f8f9fa;\n      padding: 15px;\n      border-radius: 8px;\n    }\n\n    .curr-tabs {\n      display: flex;\n      gap: 10px;\n    }\n\n    .curr-btn {\n      padding: 10px 20px;\n      border: none;\n      border-radius: 6px;\n      cursor: pointer;\n      font-weight: 600;\n      transition: all 0.2s;\n      background: #e2e6ea;\n      color: #495057;\n    }\n\n    .curr-btn.active, .curr-btn:hover {\n      background: #0073aa; \/* WordPress Blue *\/\n      color: white;\n    }\n\n    .curr-search-box {\n      flex-grow: 1;\n      max-width: 400px;\n      position: relative;\n    }\n\n    .curr-input {\n      width: 100%;\n      padding: 10px 15px;\n      border: 1px solid #ced4da;\n      border-radius: 6px;\n      font-size: 14px;\n    }\n\n    .curr-filter-select {\n      padding: 10px;\n      border: 1px solid #ced4da;\n      border-radius: 6px;\n      font-size: 14px;\n      cursor: pointer;\n    }\n\n    \/* View: Roadmap (Grid) *\/\n    .curr-roadmap-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n      gap: 20px;\n    }\n\n    .curr-semester-card {\n      border: 1px solid #e9ecef;\n      border-radius: 8px;\n      overflow: hidden;\n      background: white;\n      transition: transform 0.2s, box-shadow 0.2s;\n      display: flex;\n      flex-direction: column;\n    }\n\n    .curr-semester-card:hover {\n      transform: translateY(-3px);\n      box-shadow: 0 10px 20px rgba(0,0,0,0.08);\n    }\n\n    .curr-sem-header {\n      background: #0073aa;\n      color: white;\n      padding: 12px 15px;\n      font-weight: 700;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n    \n    .curr-sem-header.elective-header {\n      background: #2c3e50; \/* Warna berbeda untuk header pilihan *\/\n    }\n\n    .curr-sem-credits {\n      font-size: 0.85em;\n      background: rgba(255,255,255,0.2);\n      padding: 2px 8px;\n      border-radius: 12px;\n    }\n\n    .curr-course-list {\n      list-style: none;\n      padding: 0;\n      margin: 0;\n      flex-grow: 1;\n    }\n\n    .curr-course-item {\n      padding: 10px 15px;\n      border-bottom: 1px solid #f1f1f1;\n      font-size: 0.95em;\n      display: flex;\n      flex-direction: column;\n      gap: 4px;\n    }\n\n    .curr-course-item:last-child {\n      border-bottom: none;\n    }\n\n    .curr-course-item.elective {\n      background-color: #fff8e1;\n      border-left: 4px solid #ffc107;\n    }\n    \n    \/* Indikator placeholder MK Pilihan di semester reguler *\/\n    .curr-course-item.placeholder-opt {\n        background-color: #f0f4f8;\n        border-left: 4px dashed #6c757d;\n        font-style: italic;\n    }\n\n    .curr-code {\n      font-size: 0.8em;\n      color: #6c757d;\n      font-weight: 600;\n      text-transform: uppercase;\n    }\n\n    .curr-name {\n      font-weight: 500;\n      line-height: 1.4;\n    }\n\n    .curr-meta {\n      display: flex;\n      justify-content: space-between;\n      font-size: 0.8em;\n      color: #888;\n      margin-top: 2px;\n    }\n\n    \/* View: Table *\/\n    .curr-table-wrapper {\n      overflow-x: auto;\n      border: 1px solid #e9ecef;\n      border-radius: 8px;\n    }\n\n    table.curr-table {\n      width: 100%;\n      border-collapse: collapse;\n      min-width: 600px;\n    }\n\n    table.curr-table th, table.curr-table td {\n      padding: 12px 15px;\n      text-align: left;\n      border-bottom: 1px solid #e9ecef;\n    }\n\n    table.curr-table th {\n      background-color: #f8f9fa;\n      font-weight: 600;\n      color: #495057;\n    }\n\n    table.curr-table tr:hover {\n      background-color: #f1f5f9;\n    }\n\n    .badge {\n      padding: 4px 8px;\n      border-radius: 4px;\n      font-size: 0.8em;\n      font-weight: 600;\n    }\n    .badge-reg { background: #e2e6ea; color: #495057; }\n    .badge-opt { background: #fff3cd; color: #856404; }\n\n    \/* Utility *\/\n    .hidden { display: none !important; }\n    \n    @media (max-width: 768px) {\n      .curr-controls { flex-direction: column; align-items: stretch; }\n      .curr-search-box { max-width: 100%; }\n      .curr-tabs { width: 100%; }\n      .curr-btn { flex: 1; text-align: center; }\n    }\n  <\/style>\n\n  <div class=\"curr-controls\">\n    <div class=\"curr-tabs\">\n      <button class=\"curr-btn active\" onclick=\"switchViewMSP('roadmap')\">\ud83d\uddfa\ufe0f Peta Jalan<\/button>\n      <button class=\"curr-btn\" onclick=\"switchViewMSP('table')\">\ud83d\udccb Tabel Data<\/button>\n    <\/div>\n    \n    <div style=\"display: flex; gap:10px; flex-grow: 1;\">\n      <select id=\"semFilterMSP\" class=\"curr-filter-select\" onchange=\"filterDataMSP()\">\n        <option value=\"all\">Semua Semester<\/option>\n        <option value=\"1\">Semester 1<\/option>\n        <option value=\"2\">Semester 2<\/option>\n        <option value=\"3\">Semester 3<\/option>\n        <option value=\"4\">Semester 4<\/option>\n        <option value=\"5\">Semester 5<\/option>\n        <option value=\"6\">Semester 6<\/option>\n        <option value=\"7\">Semester 7<\/option>\n        <option value=\"Gasal\">Pilihan Gasal<\/option>\n        <option value=\"Genap\">Pilihan Genap<\/option>\n      <\/select>\n      \n      <div class=\"curr-search-box\">\n        <input type=\"text\" id=\"searchInputMSP\" class=\"curr-input\" placeholder=\"Cari Mata Kuliah...\" onkeyup=\"filterDataMSP()\">\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div id=\"view-roadmap-msp\" class=\"curr-roadmap-grid\">\n    <\/div>\n\n  <div id=\"view-table-msp\" class=\"curr-table-wrapper hidden\">\n    <table class=\"curr-table\">\n      <thead>\n        <tr>\n          <th width=\"12%\">Sem\/Tipe<\/th>\n          <th width=\"15%\">Kode<\/th>\n          <th width=\"48%\">Mata Kuliah<\/th>\n          <th width=\"15%\">SKS (T-P)<\/th>\n          <th width=\"10%\">Jenis<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody id=\"table-body-msp\">\n        <\/tbody>\n    <\/table>\n  <\/div>\n\n  <script>\n    \/\/ Data Kurikulum MSP (Parsed from user input)\n    const curriculumDataMSP = [\n      {\"sem\": 1, \"code\": \"UNV12101\", \"name\": \"Agama\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"UNV12103\", \"name\": \"Kewarganegaraan\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"UNV12106\", \"name\": \"Pengantar Ilmu dan Teknologi Kemaritiman\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"MSP12101\", \"name\": \"Biologi Umum\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"MSP12102\", \"name\": \"Fisika Umum\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"MSP12103\", \"name\": \"Kimia Umum\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"MSP12104\", \"name\": \"Matematika\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"SEP11103\", \"name\": \"Ekonomi Mikro\", \"sks\": \"3 (3-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 1, \"code\": \"ISP12001\", \"name\": \"Pengantar Sosiologi\", \"sks\": \"3 (3-0)\", \"type\": \"Wajib\"},\n      \n      {\"sem\": 2, \"code\": \"UNV12102\", \"name\": \"Pancasila\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 2, \"code\": \"UNV12105\", \"name\": \"Bahasa Inggris\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 2, \"code\": \"MSP12105\", \"name\": \"Statistika Dasar\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 2, \"code\": \"IKP12101\", \"name\": \"Pengantar Ilmu Kelautan dan Perikanan\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 2, \"code\": \"IKL11101\", \"name\": \"Oseanografi Umum\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 2, \"code\": \"MSP11101\", \"name\": \"Iktiologi\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 2, \"code\": \"MSP11102\", \"name\": \"Avertebrata Air\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 2, \"code\": \"MSP11103\", \"name\": \"Ekologi Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n\n      {\"sem\": 3, \"code\": \"MSP11104\", \"name\": \"Iktiologi Fungsional\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 3, \"code\": \"MSP11105\", \"name\": \"Biologi Perikanan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 3, \"code\": \"MSP11106\", \"name\": \"Bioinformatika Dasar\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 3, \"code\": \"MSP11107\", \"name\": \"Planktonologi dan Bentologi\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 3, \"code\": \"MSP11108\", \"name\": \"Limnologi\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 3, \"code\": \"MSP11109\", \"name\": \"Hidrologi dan Klimatologi\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 3, \"code\": \"MSP11110\", \"name\": \"Teknik Survei dan Sampling Akuatik\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 3, \"code\": \"MSP11111\", \"name\": \"Pengolahan Data Perikanan\", \"sks\": \"2 (1-1)\", \"type\": \"Wajib\"},\n\n      {\"sem\": 4, \"code\": \"UNV12104\", \"name\": \"Bahasa Indonesia\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 4, \"code\": \"SEP11116\", \"name\": \"Penyuluhan dan Komunikasi Perikanan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 4, \"code\": \"SEP11105\", \"name\": \"Dasar-Dasar Manajemen\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 4, \"code\": \"MSP11112\", \"name\": \"Dinamika Populasi dan Pengkajian Stok\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 4, \"code\": \"MSP11113\", \"name\": \"Fisiologi Hewan Air\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 4, \"code\": \"MSP11114\", \"name\": \"Ilmu Tumbuhan Air dan Makroalga\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 4, \"code\": \"MSP11115\", \"name\": \"Kualitas Air dan Mikrobiologi Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 4, \"code\": \"MSP11116\", \"name\": \"Metodologi Penelitian Sumber Daya Akuatik\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n\n      {\"sem\": 5, \"code\": \"UNV12107\", \"name\": \"Tamadun dan Tunjuk Ajar Melayu\", \"sks\": \"2 (2-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 5, \"code\": \"UNV12108\", \"name\": \"Kuliah Kerja Nyata\", \"sks\": \"3 (0-3)\", \"type\": \"Wajib\"},\n      {\"sem\": 5, \"code\": \"SEP11101\", \"name\": \"Kewirausahaan Kelautan dan Perikanan\", \"sks\": \"3 (3-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 5, \"code\": \"MSP11117\", \"name\": \"Produktivitas Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 5, \"code\": \"MSP11118\", \"name\": \"Ekotoksikologi Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 5, \"code\": \"MSP11119\", \"name\": \"Pencemaran Perairan dan Pengolahan Limbah\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 5, \"code\": \"MSP11120\", \"name\": \"Instrumentasi Laboratorium Lingkungan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 5, \"code\": \"-\", \"name\": \"Mata Kuliah Pilihan (Lihat Daftar)\", \"sks\": \"2 (2-0)\", \"type\": \"Placeholder\"},\n\n      {\"sem\": 6, \"code\": \"MSP11121\", \"name\": \"Konservasi Sumber Daya Hayati Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 6, \"code\": \"MSP11122\", \"name\": \"Ekowisata Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 6, \"code\": \"MSP11123\", \"name\": \"Pengelolaan Wilayah Pesisir dan Pulau-Pulau Kecil\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 6, \"code\": \"MSP11124\", \"name\": \"Sistem Informasi Geografi Sumber Daya Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 6, \"code\": \"MSP11125\", \"name\": \"Jasa Ekosistem Perairan\", \"sks\": \"3 (3-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 6, \"code\": \"MSP11130\", \"name\": \"Praktik Kerja Lapangan\", \"sks\": \"3 (0-3)\", \"type\": \"Wajib\"},\n      {\"sem\": 6, \"code\": \"MSP11131\", \"name\": \"Kolokium\", \"sks\": \"1 (0-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 6, \"code\": \"-\", \"name\": \"Mata Kuliah Pilihan (Lihat Daftar)\", \"sks\": \"3 (3-0)\", \"type\": \"Placeholder\"},\n\n      {\"sem\": 7, \"code\": \"MSP11126\", \"name\": \"Manajemen Sumber Daya Perikanan\", \"sks\": \"3 (3-0)\", \"type\": \"Wajib\"},\n      {\"sem\": 7, \"code\": \"MSP11127\", \"name\": \"Resiliensi dan Mitigasi Bencana Pesisir dan Pulau-Pulau Kecil\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 7, \"code\": \"MSP11128\", \"name\": \"Manajemen Sumber Daya Perairan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 7, \"code\": \"MSP11129\", \"name\": \"Analisis Dampak Lingkungan\", \"sks\": \"3 (2-1)\", \"type\": \"Wajib\"},\n      {\"sem\": 7, \"code\": \"-\", \"name\": \"Mata Kuliah Pilihan (Lihat Daftar)\", \"sks\": \"2 (2-0)\", \"type\": \"Placeholder\"},\n\n      \/\/ Pilihan Gasal (Virtual Semester for Grouping)\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"MSP12106\", \"name\": \"Mamalogi dan Herpetologi Akuatik\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"INF11101\", \"name\": \"Algoritma dan Pemrograman\", \"sks\": \"3 (0-3)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"IKL11106\", \"name\": \"Teknik Penyelaman\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"UNV13101\", \"name\": \"Komunikasi (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"UNV13102\", \"name\": \"Kerjasama (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"UNV13103\", \"name\": \"Kepemimpinan (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"UNV13104\", \"name\": \"Kreativitas (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"UNV13105\", \"name\": \"Kerja Keras (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Gasal\", \"code\": \"UNV13106\", \"name\": \"Kedisiplinan (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n\n      \/\/ Pilihan Genap (Virtual Semester for Grouping)\n      {\"sem\": \"Pilihan Genap\", \"code\": \"MSP12107\", \"name\": \"Ekologi Perairan Kuantitatif\", \"sks\": \"2 (2-0)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"MSP12108\", \"name\": \"Sumber Daya Perikanan\", \"sks\": \"2 (2-0)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"SEP11111\", \"name\": \"Sosiologi Masyarakat Pesisir\", \"sks\": \"3 (3-0)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"UNV13101\", \"name\": \"Komunikasi (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"UNV13102\", \"name\": \"Kerjasama (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"UNV13103\", \"name\": \"Kepemimpinan (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"UNV13104\", \"name\": \"Kreativitas (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"UNV13105\", \"name\": \"Kerja Keras (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"},\n      {\"sem\": \"Pilihan Genap\", \"code\": \"UNV13106\", \"name\": \"Kedisiplinan (MBKM)\", \"sks\": \"2 (0-2)\", \"type\": \"Pilihan\"}\n    ];\n\n    function initMSP() {\n      renderRoadmapMSP(curriculumDataMSP);\n      renderTableMSP(curriculumDataMSP);\n    }\n\n    function switchViewMSP(viewName) {\n      document.querySelectorAll('#curriculum-app-msp .curr-roadmap-grid, #curriculum-app-msp .curr-table-wrapper').forEach(el => el.classList.add('hidden'));\n      document.querySelectorAll('#curriculum-app-msp .curr-btn').forEach(el => el.classList.remove('active'));\n      \n      document.getElementById('view-' + viewName + '-msp').classList.remove('hidden');\n      event.target.classList.add('active');\n    }\n\n    function filterDataMSP() {\n      const search = document.getElementById('searchInputMSP').value.toLowerCase();\n      const sem = document.getElementById('semFilterMSP').value;\n\n      const filtered = curriculumDataMSP.filter(item => {\n        const matchesSearch = item.name.toLowerCase().includes(search) || \n                              item.code.toLowerCase().includes(search);\n        const matchesSem = sem === 'all' || String(item.sem) === sem;\n        return matchesSearch && matchesSem;\n      });\n\n      renderRoadmapMSP(filtered);\n      renderTableMSP(filtered);\n    }\n\n    function renderRoadmapMSP(data) {\n      const container = document.getElementById('view-roadmap-msp');\n      container.innerHTML = '';\n\n      \/\/ Define groups to display\n      const groups = [1, 2, 3, 4, 5, 6, 7, \"Pilihan Gasal\", \"Pilihan Genap\"];\n      \n      groups.forEach(groupKey => {\n        const groupCourses = data.filter(d => d.sem == groupKey);\n        \n        \/\/ Skip empty groups if filtering\n        if (groupCourses.length === 0) return;\n\n        const card = document.createElement('div');\n        card.className = 'curr-semester-card';\n        \n        let headerTitle = typeof groupKey === 'number' ? `Semester ${groupKey}` : `Daftar ${groupKey}`;\n        let headerClass = typeof groupKey === 'number' ? '' : 'elective-header';\n        \n        \/\/ Count credits for regular semesters only\n        let creditInfo = '';\n        if(typeof groupKey === 'number') {\n            let totalSks = 0;\n            groupCourses.forEach(c => {\n                \/\/ simple extract of first digit\n                const digit = parseInt(c.sks.charAt(0)); \n                if(!isNaN(digit) && c.type !== 'Placeholder') totalSks += digit;\n            });\n            creditInfo = `<span class=\"curr-sem-credits\">${totalSks} SKS<\/span>`;\n        }\n\n        let html = `\n          <div class=\"curr-sem-header ${headerClass}\">\n            <span>${headerTitle}<\/span>\n            ${creditInfo}\n          <\/div>\n          <ul class=\"curr-course-list\">\n        `;\n\n        groupCourses.forEach(c => {\n          let itemClass = '';\n          if(c.type === 'Pilihan') itemClass = 'elective';\n          if(c.type === 'Placeholder') itemClass = 'placeholder-opt';\n\n          html += `\n            <li class=\"curr-course-item ${itemClass}\">\n              <span class=\"curr-code\">${c.code}<\/span>\n              <span class=\"curr-name\">${c.name}<\/span>\n              <div class=\"curr-meta\">\n                <span>${c.sks}<\/span>\n              <\/div>\n            <\/li>\n          `;\n        });\n\n        html += `<\/ul>`;\n        card.innerHTML = html;\n        container.appendChild(card);\n      });\n\n      if(container.innerHTML === '') {\n        container.innerHTML = '<div style=\"grid-column: 1\/-1; text-align:center; padding:20px; color:#666;\">Tidak ada mata kuliah yang ditemukan.<\/div>';\n      }\n    }\n\n    function renderTableMSP(data) {\n      const tbody = document.getElementById('table-body-msp');\n      tbody.innerHTML = '';\n\n      if (data.length === 0) {\n        tbody.innerHTML = '<tr><td colspan=\"5\" style=\"text-align:center;\">Tidak ada data.<\/td><\/tr>';\n        return;\n      }\n\n      data.forEach(item => {\n        const row = document.createElement('tr');\n        let badgeClass = 'badge-reg';\n        if(item.type === 'Pilihan') badgeClass = 'badge-opt';\n        \n        row.innerHTML = `\n          <td style=\"text-align:center\"><strong>${item.sem}<\/strong><\/td>\n          <td><code>${item.code}<\/code><\/td>\n          <td>${item.name}<\/td>\n          <td>${item.sks}<\/td>\n          <td><span class=\"badge ${badgeClass}\">${item.type}<\/span><\/td>\n        `;\n        tbody.appendChild(row);\n      });\n    }\n\n    \/\/ Run init\n    initMSP();\n  <\/script>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\uddfa\ufe0f Peta Jalan \ud83d\udccb Tabel Data Semua SemesterSemester 1Semester 2Semester 3Semester 4Semester 5Semester 6Semester 7Pilihan GasalPilihan Genap Sem\/Tipe Kode Mata [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-48","page","type-page","status-publish","hentry"],"acf":[],"spectra_custom_meta":{"_edit_lock":["1777781306:1"],"_edit_last":["1"],"_oembed_6af46eb1e08e4585308dc13460d00344":["{{unknown}}"],"_uagb_previous_block_counts":["a:90:{s:21:\"uagb\/advanced-heading\";i:0;s:15:\"uagb\/blockquote\";i:0;s:12:\"uagb\/buttons\";i:0;s:18:\"uagb\/buttons-child\";i:0;s:19:\"uagb\/call-to-action\";i:0;s:15:\"uagb\/cf7-styler\";i:0;s:11:\"uagb\/column\";i:0;s:12:\"uagb\/columns\";i:0;s:14:\"uagb\/container\";i:0;s:21:\"uagb\/content-timeline\";i:0;s:27:\"uagb\/content-timeline-child\";i:0;s:14:\"uagb\/countdown\";i:0;s:12:\"uagb\/counter\";i:0;s:8:\"uagb\/faq\";i:0;s:14:\"uagb\/faq-child\";i:0;s:10:\"uagb\/forms\";i:0;s:17:\"uagb\/forms-accept\";i:0;s:19:\"uagb\/forms-checkbox\";i:0;s:15:\"uagb\/forms-date\";i:0;s:16:\"uagb\/forms-email\";i:0;s:17:\"uagb\/forms-hidden\";i:0;s:15:\"uagb\/forms-name\";i:0;s:16:\"uagb\/forms-phone\";i:0;s:16:\"uagb\/forms-radio\";i:0;s:17:\"uagb\/forms-select\";i:0;s:19:\"uagb\/forms-textarea\";i:0;s:17:\"uagb\/forms-toggle\";i:0;s:14:\"uagb\/forms-url\";i:0;s:14:\"uagb\/gf-styler\";i:0;s:15:\"uagb\/google-map\";i:0;s:11:\"uagb\/how-to\";i:0;s:16:\"uagb\/how-to-step\";i:0;s:9:\"uagb\/icon\";i:0;s:14:\"uagb\/icon-list\";i:0;s:20:\"uagb\/icon-list-child\";i:0;s:10:\"uagb\/image\";i:0;s:18:\"uagb\/image-gallery\";i:0;s:13:\"uagb\/info-box\";i:0;s:18:\"uagb\/inline-notice\";i:0;s:11:\"uagb\/lottie\";i:0;s:21:\"uagb\/marketing-button\";i:0;s:10:\"uagb\/modal\";i:0;s:18:\"uagb\/popup-builder\";i:0;s:16:\"uagb\/post-button\";i:0;s:18:\"uagb\/post-carousel\";i:0;s:17:\"uagb\/post-excerpt\";i:0;s:14:\"uagb\/post-grid\";i:0;s:15:\"uagb\/post-image\";i:0;s:17:\"uagb\/post-masonry\";i:0;s:14:\"uagb\/post-meta\";i:0;s:18:\"uagb\/post-taxonomy\";i:0;s:18:\"uagb\/post-timeline\";i:0;s:15:\"uagb\/post-title\";i:0;s:20:\"uagb\/restaurant-menu\";i:0;s:26:\"uagb\/restaurant-menu-child\";i:0;s:11:\"uagb\/review\";i:0;s:12:\"uagb\/section\";i:0;s:14:\"uagb\/separator\";i:0;s:11:\"uagb\/slider\";i:0;s:17:\"uagb\/slider-child\";i:0;s:17:\"uagb\/social-share\";i:0;s:23:\"uagb\/social-share-child\";i:0;s:16:\"uagb\/star-rating\";i:0;s:23:\"uagb\/sure-cart-checkout\";i:0;s:22:\"uagb\/sure-cart-product\";i:0;s:15:\"uagb\/sure-forms\";i:0;s:22:\"uagb\/table-of-contents\";i:0;s:9:\"uagb\/tabs\";i:0;s:15:\"uagb\/tabs-child\";i:0;s:18:\"uagb\/taxonomy-list\";i:0;s:9:\"uagb\/team\";i:0;s:16:\"uagb\/testimonial\";i:0;s:14:\"uagb\/wp-search\";i:0;s:19:\"uagb\/instagram-feed\";i:0;s:10:\"uagb\/login\";i:0;s:17:\"uagb\/loop-builder\";i:0;s:18:\"uagb\/loop-category\";i:0;s:20:\"uagb\/loop-pagination\";i:0;s:15:\"uagb\/loop-reset\";i:0;s:16:\"uagb\/loop-search\";i:0;s:14:\"uagb\/loop-sort\";i:0;s:17:\"uagb\/loop-wrapper\";i:0;s:13:\"uagb\/register\";i:0;s:19:\"uagb\/register-email\";i:0;s:24:\"uagb\/register-first-name\";i:0;s:23:\"uagb\/register-last-name\";i:0;s:22:\"uagb\/register-password\";i:0;s:30:\"uagb\/register-reenter-password\";i:0;s:19:\"uagb\/register-terms\";i:0;s:22:\"uagb\/register-username\";i:0;}"],"_oembed_3ab83fc37bf7e333f24d780dab71521b":["{{unknown}}"],"wp_statistics_words_count":["55"],"_uag_css_file_name":["uag-css-48.css"],"_uag_page_assets":["a:9:{s:3:\"css\";s:260:\".uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media(max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media(max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}\";s:2:\"js\";s:0:\"\";s:18:\"current_block_list\";a:8:{i:0;s:9:\"core\/list\";i:1;s:14:\"core\/list-item\";i:2;s:9:\"core\/html\";i:3;s:14:\"core\/paragraph\";i:4;s:11:\"core\/search\";i:5;s:10:\"core\/group\";i:6;s:12:\"core\/heading\";i:7;s:17:\"core\/latest-posts\";}s:8:\"uag_flag\";b:0;s:11:\"uag_version\";s:10:\"1778731091\";s:6:\"gfonts\";a:0:{}s:10:\"gfonts_url\";s:0:\"\";s:12:\"gfonts_files\";a:0:{}s:14:\"uag_faq_layout\";b:0;}"]},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"msp","author_link":"https:\/\/msp.fikp.umrah.ac.id\/?author=3"},"uagb_comment_info":0,"uagb_excerpt":"\ud83d\uddfa\ufe0f Peta Jalan \ud83d\udccb Tabel Data Semua SemesterSemester 1Semester 2Semester 3Semester 4Semester 5Semester 6Semester 7Pilihan GasalPilihan Genap Sem\/Tipe Kode Mata [&hellip;]","_links":{"self":[{"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=48"}],"version-history":[{"count":9,"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/48\/revisions"}],"predecessor-version":[{"id":528,"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/48\/revisions\/528"}],"wp:attachment":[{"href":"https:\/\/msp.fikp.umrah.ac.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}