{
    "id": 245647,
    "date": "2025-06-25T11:47:35",
    "date_gmt": "2025-06-25T04:47:35",
    "guid": {
        "rendered": "https:\/\/mte.usk.ac.id\/?page_id=245647"
    },
    "modified": "2026-08-26T10:47:15",
    "modified_gmt": "2026-08-26T03:47:15",
    "slug": "riset-mte",
    "status": "publish",
    "type": "page",
    "link": "https:\/\/mte.usk.ac.id\/en\/?page_id=245647",
    "title": {
        "rendered": "Penelitian MTE"
    },
    "content": {
        "rendered": "<div id=\"mte-research-portal\" class=\"mte-portal\">\n  <style>\n    #mte-research-portal,\n    #mte-research-portal * { box-sizing: border-box; }\n\n    #mte-research-portal {\n      --mte-navy: #12263f;\n      --mte-navy-2: #1c3858;\n      --mte-maroon: #8b1e3f;\n      --mte-maroon-dark: #68152f;\n      --mte-teal: #0f8b8d;\n      --mte-ink: #172235;\n      --mte-muted: #6c788c;\n      --mte-line: #e5eaf0;\n      --mte-soft: #f4f7fa;\n      --mte-card: #ffffff;\n      --mte-shadow: 0 18px 44px rgba(18, 38, 63, .08);\n      width: 100%;\n      max-width: 1240px;\n      margin: 0 auto;\n      padding: clamp(18px, 3vw, 42px);\n      color: var(--mte-ink);\n      background: #f8fafc;\n      border: 1px solid rgba(18, 38, 63, .06);\n      border-radius: 28px;\n      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n      line-height: 1.55;\n      overflow: hidden;\n    }\n\n    #mte-research-portal [hidden] { display: none !important; }\n    #mte-research-portal button,\n    #mte-research-portal input,\n    #mte-research-portal select { font: inherit; }\n    #mte-research-portal button { cursor: pointer; }\n    #mte-research-portal ::selection { background: rgba(15,139,141,.22); }\n\n    .mte-hero {\n      position: relative;\n      isolation: isolate;\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) auto;\n      gap: 28px;\n      align-items: end;\n      min-height: 268px;\n      padding: clamp(28px, 5vw, 58px);\n      color: var(--mte-navy);\n      background:\n        repeating-linear-gradient(132deg, rgba(255,255,255,.22) 0, rgba(255,255,255,.22) 1px, transparent 1px, transparent 22px),\n        radial-gradient(circle at 84% 10%, rgba(255,255,255,.72), transparent 24%),\n        radial-gradient(circle at 8% 100%, rgba(139,30,63,.16), transparent 30%),\n        radial-gradient(circle at 62% 118%, rgba(15,139,141,.20), transparent 32%),\n        linear-gradient(124deg, #dff7f3 0%, #d9ecff 48%, #ffe5cf 100%);\n      border-radius: 22px;\n      overflow: hidden;\n      box-shadow: 0 20px 45px rgba(18,38,63,.2);\n    }\n    .mte-hero::after {\n      content: \"\";\n      position: absolute;\n      z-index: -1;\n      width: 310px;\n      height: 310px;\n      right: -110px;\n      bottom: -156px;\n      border: 1px solid rgba(18,38,63,.14);\n      border-radius: 50%;\n      box-shadow: 0 0 0 28px rgba(18,38,63,.045), 0 0 0 56px rgba(18,38,63,.025);\n    }\n    .mte-kicker {\n      display: inline-flex;\n      align-items: center;\n      gap: 9px;\n      margin: 0 0 16px;\n      color: var(--mte-teal);\n      font-size: 12px;\n      font-weight: 800;\n      letter-spacing: .16em;\n      text-transform: uppercase;\n    }\n    .mte-kicker::before {\n      content: \"\";\n      width: 28px;\n      height: 2px;\n      background: var(--mte-teal);\n      border-radius: 99px;\n    }\n    .mte-title {\n      max-width: 760px;\n      margin: 0;\n      color: var(--mte-navy);\n      font-size: clamp(30px, 5vw, 56px);\n      font-weight: 800;\n      letter-spacing: -.045em;\n      line-height: 1.02;\n    }\n    .mte-subtitle {\n      max-width: 670px;\n      margin: 15px 0 0;\n      color: rgba(18,38,63,.72);\n      font-size: clamp(14px, 2vw, 18px);\n    }\n    .mte-hero-side {\n      display: flex;\n      flex-direction: column;\n      align-items: flex-end;\n      gap: 12px;\n    }\n    .mte-brand-mark {\n      position: relative;\n      display: grid;\n      width: 74px;\n      height: 74px;\n      place-items: center;\n      background: rgba(255,255,255,.48);\n      border: 1px solid rgba(255,255,255,.82);\n      border-radius: 20px;\n      box-shadow: 0 12px 24px rgba(18,38,63,.10);\n      backdrop-filter: blur(10px);\n    }\n    .mte-brand-mark::before { content: \"\"; width: 30px; height: 30px; background: linear-gradient(135deg, var(--mte-teal), #70cbbd); border-radius: 10px 15px 10px 15px; transform: rotate(12deg); box-shadow: 8px 7px 0 rgba(139,30,63,.18); }\n    .mte-brand-mark::after { content: \"\"; position: absolute; width: 22px; height: 22px; border: 2px solid rgba(18,38,63,.16); border-radius: 50%; transform: translate(10px,-10px); }\n    .mte-version {\n      color: rgba(18,38,63,.58);\n      font-size: 11px;\n      letter-spacing: .08em;\n    }\n    .mte-refresh {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      min-height: 44px;\n      padding: 0 17px;\n      color: #fff;\n      background: var(--mte-maroon);\n      border: 1px solid rgba(255,255,255,.2);\n      border-radius: 12px;\n      font-size: 13px;\n      font-weight: 750;\n      transition: transform .2s ease, background .2s ease, box-shadow .2s ease;\n    }\n    .mte-refresh:hover { background: var(--mte-maroon-dark); transform: translateY(-2px); box-shadow: 0 9px 20px rgba(0,0,0,.16); }\n    .mte-refresh:disabled { cursor: wait; opacity: .7; transform: none; }\n\n    .mte-toolbar {\n      position: relative;\n      z-index: 2;\n      display: grid;\n      gap: 17px;\n      margin: -28px clamp(10px, 4vw, 48px) 28px;\n      padding: 18px;\n      background: rgba(255,255,255,.93);\n      border: 1px solid rgba(255,255,255,.9);\n      border-radius: 18px;\n      box-shadow: var(--mte-shadow);\n      backdrop-filter: blur(14px);\n    }\n    .mte-search-wrap { position: relative; }\n    .mte-search-icon {\n      position: absolute;\n      top: 50%;\n      left: 17px;\n      width: 15px;\n      height: 15px;\n      border: 2px solid var(--mte-teal);\n      border-radius: 50%;\n      transform: translateY(-58%);\n      pointer-events: none;\n    }\n    .mte-search-icon::after {\n      content: \"\";\n      position: absolute;\n      right: -5px;\n      bottom: -3px;\n      width: 7px;\n      height: 2px;\n      background: var(--mte-teal);\n      border-radius: 99px;\n      transform: rotate(45deg);\n    }\n    .mte-search {\n      width: 100%;\n      min-height: 52px;\n      padding: 0 48px;\n      color: var(--mte-ink);\n      background: var(--mte-soft);\n      border: 1px solid transparent;\n      border-radius: 12px;\n      outline: none;\n      transition: border .2s ease, background .2s ease, box-shadow .2s ease;\n    }\n    .mte-search:focus { background: #fff; border-color: rgba(15,139,141,.6); box-shadow: 0 0 0 4px rgba(15,139,141,.1); }\n    .mte-search::placeholder { color: #9aa6b6; }\n    .mte-search-clear {\n      display: none;\n      position: absolute;\n      top: 50%;\n      right: 13px;\n      width: 27px;\n      height: 27px;\n      padding: 0;\n      color: var(--mte-muted);\n      background: #e5ebf0;\n      border: 0;\n      border-radius: 50%;\n      transform: translateY(-50%);\n    }\n    .mte-search-clear.is-visible { display: grid; place-items: center; }\n    .mte-filter-row {\n      display: grid;\n      grid-template-columns: repeat(3, minmax(0, 1fr)) auto;\n      gap: 11px;\n      align-items: center;\n    }\n    .mte-select {\n      width: 100%;\n      min-height: 44px;\n      padding: 0 36px 0 13px;\n      color: #344257;\n      background-color: #fff;\n      border: 1px solid var(--mte-line);\n      border-radius: 10px;\n      outline: none;\n      cursor: pointer;\n    }\n    .mte-select:focus { border-color: rgba(15,139,141,.7); box-shadow: 0 0 0 4px rgba(15,139,141,.08); }\n    .mte-toggle {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 9px;\n      min-height: 44px;\n      padding: 0 12px;\n      color: var(--mte-muted);\n      font-size: 13px;\n      white-space: nowrap;\n    }\n    .mte-toggle input { width: 17px; height: 17px; accent-color: var(--mte-maroon); }\n    .mte-active-filters { display: flex; flex-wrap: wrap; gap: 7px; }\n    .mte-active-filters:empty { display: none; }\n    .mte-chip {\n      display: inline-flex;\n      align-items: center;\n      gap: 7px;\n      min-height: 30px;\n      padding: 0 10px;\n      color: var(--mte-navy-2);\n      background: #e7f5f3;\n      border: 1px solid #cae9e5;\n      border-radius: 99px;\n      font-size: 12px;\n      font-weight: 700;\n    }\n    .mte-chip button { padding: 0; color: inherit; background: transparent; border: 0; font-size: 15px; line-height: 1; }\n    .mte-clear-all { min-height: 30px; padding: 0 10px; color: var(--mte-maroon); background: transparent; border: 1px solid rgba(139,30,63,.25); border-radius: 99px; font-size: 12px; font-weight: 700; }\n\n    .mte-stat-grid {\n      display: grid;\n      grid-template-columns: repeat(3, minmax(0,1fr));\n      gap: 14px;\n      margin-bottom: 28px;\n    }\n    .mte-stat {\n      position: relative;\n      min-height: 126px;\n      padding: 21px 22px;\n      background: var(--mte-card);\n      border: 1px solid var(--mte-line);\n      border-radius: 16px;\n      overflow: hidden;\n    }\n    .mte-stat::before { content: \"\"; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--mte-teal); }\n    .mte-stat:nth-child(2)::before { background: var(--mte-maroon); }\n    .mte-stat:nth-child(3)::before { background: #d89028; }\n    .mte-stat-label { display: block; color: var(--mte-muted); font-size: 12px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }\n    .mte-stat-number { display: block; margin-top: 9px; color: var(--mte-navy); font-size: clamp(25px, 4vw, 36px); font-weight: 850; letter-spacing: -.04em; line-height: 1; }\n\n    .mte-loading {\n      display: grid;\n      place-items: center;\n      min-height: 260px;\n      padding: 30px;\n      text-align: center;\n      background: #fff;\n      border: 1px solid var(--mte-line);\n      border-radius: 18px;\n    }\n    .mte-spinner { width: 36px; height: 36px; margin-bottom: 15px; border: 3px solid #dce7eb; border-top-color: var(--mte-teal); border-radius: 50%; animation: mte-spin .8s linear infinite; }\n    @keyframes mte-spin { to { transform: rotate(360deg); } }\n    .mte-loading p { margin: 0 0 14px; color: var(--mte-navy); font-weight: 750; }\n    .mte-progress { width: min(100%, 420px); height: 6px; overflow: hidden; background: #eaf0f3; border-radius: 99px; }\n    .mte-progress-fill { width: 0; height: 100%; background: linear-gradient(90deg, var(--mte-teal), #62c8bd); border-radius: inherit; transition: width .25s ease; }\n    .mte-loading-status { margin-top: 10px; color: var(--mte-muted); font-size: 12px; }\n\n    .mte-results-head { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin: 0 0 15px; }\n    .mte-results-title { margin: 0; color: var(--mte-navy); font-size: 21px; letter-spacing: -.025em; }\n    .mte-results-info { margin: 3px 0 0; color: var(--mte-muted); font-size: 13px; }\n    .mte-results-info strong { color: var(--mte-navy); }\n    .mte-source-note { color: var(--mte-muted); font-size: 11px; text-align: right; }\n    .mte-source-note a { color: var(--mte-teal); }\n    .mte-research-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; }\n    .mte-card {\n      position: relative;\n      display: flex;\n      flex-direction: column;\n      min-height: 256px;\n      padding: 23px;\n      background: #fff;\n      border: 1px solid var(--mte-line);\n      border-radius: 16px;\n      box-shadow: 0 4px 15px rgba(18,38,63,.025);\n      cursor: pointer;\n      outline: none;\n      transition: transform .22s ease, box-shadow .22s ease, border .22s ease;\n    }\n    .mte-card::before { content: \"\"; position: absolute; top: 0; left: 23px; width: 36px; height: 3px; background: var(--mte-maroon); border-radius: 0 0 5px 5px; }\n    .mte-card:hover, .mte-card:focus-visible { border-color: rgba(15,139,141,.45); box-shadow: 0 14px 32px rgba(18,38,63,.11); transform: translateY(-4px); }\n    .mte-card-top { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 18px; }\n    .mte-number { color: var(--mte-teal); font-size: 12px; font-weight: 850; letter-spacing: .04em; }\n    .mte-year { padding: 4px 9px; color: var(--mte-maroon); background: #fbf0f3; border-radius: 8px; font-size: 12px; font-weight: 800; }\n    .mte-card-title { display: -webkit-box; margin: 0 0 13px; overflow: hidden; color: var(--mte-navy); font-size: 17px; font-weight: 800; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }\n    .mte-card-authors { display: -webkit-box; margin: 0 0 20px; overflow: hidden; color: var(--mte-muted); font-size: 13px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }\n    .mte-card-authors strong { color: var(--mte-ink); }\n    .mte-publication { display: flex; gap: 9px; align-items: flex-start; margin-top: auto; padding: 12px 13px; color: #5e6b7d; background: var(--mte-soft); border-radius: 10px; font-size: 12px; line-height: 1.45; }\n    .mte-publication-icon { flex: 0 0 auto; color: var(--mte-maroon); }\n    .mte-publication-text { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }\n    mark { padding: 0 2px; color: inherit; background: #fff0a8; border-radius: 3px; }\n    .mte-load-more { display: block; min-height: 46px; margin: 22px auto 4px; padding: 0 22px; color: var(--mte-navy); background: #fff; border: 1px solid var(--mte-line); border-radius: 11px; font-size: 13px; font-weight: 800; transition: all .2s ease; }\n    .mte-load-more:hover { color: #fff; background: var(--mte-navy); border-color: var(--mte-navy); transform: translateY(-2px); }\n\n    .mte-empty { padding: 60px 22px; text-align: center; background: #fff; border: 1px dashed #cad5df; border-radius: 18px; }\n    .mte-empty-icon { position: relative; display: grid; width: 50px; height: 50px; margin: 0 auto 12px; place-items: center; color: var(--mte-teal); background: #e7f5f3; border-radius: 16px; font-size: 0; }\n    .mte-empty-icon::before { content: \"\"; width: 18px; height: 18px; border: 2px solid var(--mte-teal); border-radius: 50%; }\n    .mte-empty-icon::after { content: \"\"; position: absolute; width: 8px; height: 2px; background: var(--mte-teal); border-radius: 99px; transform: translate(8px, 8px) rotate(45deg); }\n    .mte-empty-title { margin: 0; color: var(--mte-navy); font-size: 18px; font-weight: 800; }\n    .mte-empty-desc { margin: 7px 0 18px; color: var(--mte-muted); font-size: 13px; }\n    .mte-empty-reset { min-height: 40px; padding: 0 15px; color: #fff; background: var(--mte-maroon); border: 0; border-radius: 9px; font-size: 13px; font-weight: 750; }\n    .mte-footer { position: relative; margin-top: 34px; padding: 18px 24px 8px; color: #9aa6b6; border-top: 1px solid var(--mte-line); font-size: 11px; text-align: center; }\n    .mte-owl-signature { position: absolute; right: 5px; bottom: 2px; color: #101820; font-size: 14px; line-height: 1; opacity: .46; filter: grayscale(1) contrast(1.08); text-shadow: 0 1px 0 rgba(255,255,255,.65); pointer-events: auto; user-select: none; cursor: help; }\n    .mte-owl-signature::after { content: attr(data-tooltip); position: absolute; right: 0; bottom: calc(100% + 8px); padding: 5px 8px; color: #ffffff; background: rgba(16,24,32,.9); border-radius: 6px; font-family: inherit; font-size: 11px; font-weight: 700; line-height: 1; white-space: nowrap; opacity: 0; visibility: hidden; transform: translateY(3px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; }\n    .mte-owl-signature:hover::after, .mte-owl-signature:focus-visible::after { opacity: 1; visibility: visible; transform: translateY(0); }\n\n    .mte-modal { display: none; position: fixed; z-index: 999999; inset: 0; align-items: center; justify-content: center; padding: 18px; background: rgba(9,20,34,.66) !important; backdrop-filter: blur(5px); }\n    .mte-modal.is-open { display: flex !important; }\n    .mte-modal-dialog { width: min(720px, 100%); max-height: min(720px, 90vh); overflow: auto; background: #ffffff !important; color: var(--mte-ink) !important; border-radius: 20px; box-shadow: 0 28px 80px rgba(0,0,0,.26); animation: mte-modal-in .22s ease both; }\n    @keyframes mte-modal-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }\n    .mte-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 23px; color: var(--mte-navy) !important; background: #f2f7f9 !important; border-bottom: 1px solid #dfe8ed !important; }\n    .mte-modal-head h2 { margin: 0; color: var(--mte-navy) !important; font-size: 18px; }\n    .mte-modal-close { display: grid; width: 34px; height: 34px; place-items: center; padding: 0; color: var(--mte-navy) !important; background: #ffffff !important; border: 1px solid #d3e0e6 !important; border-radius: 9px; font-size: 21px; line-height: 1; }\n    .mte-modal-body { padding: 24px; color: var(--mte-ink) !important; background: #ffffff !important; }\n    .mte-modal-section { margin-bottom: 23px; }\n    .mte-modal-section:last-child { margin-bottom: 0; }\n    .mte-modal-label { margin: 0 0 8px; color: var(--mte-teal) !important; font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }\n    .mte-modal-value, .mte-modal-value strong { margin: 0; color: var(--mte-ink) !important; font-size: 15px; }\n    .mte-author-tags { display: flex; flex-wrap: wrap; gap: 7px; }\n    .mte-author-tag { padding: 6px 9px; color: var(--mte-navy-2) !important; background: #edf5f6 !important; border-radius: 8px; font-size: 12px; font-weight: 650; }\n    .mte-external-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 12px; padding: 10px 12px; color: #ffffff !important; background: var(--mte-maroon) !important; border-radius: 9px; font-size: 12px; font-weight: 750; text-decoration: none !important; }\n    .mte-external-link:hover { color: #ffffff !important; background: var(--mte-maroon-dark) !important; }\n\n    @media (max-width: 780px) {\n      #mte-research-portal {\n        width: 100vw;\n        max-width: 100vw;\n        margin-left: calc(50% - 50vw);\n        margin-right: 0;\n        padding: 0;\n        border: 0;\n        border-radius: 0;\n      }\n      .mte-hero { grid-template-columns: 1fr; min-height: auto; padding: 29px 23px; border-radius: 0 0 22px 22px; }\n      .mte-hero-side { flex-direction: row; align-items: center; justify-content: space-between; }\n      .mte-brand-mark { width: 58px; height: 58px; border-radius: 15px; font-size: 18px; }\n      .mte-filter-row { grid-template-columns: repeat(2, minmax(0,1fr)); }\n      .mte-toggle { justify-content: flex-start; }\n      .mte-research-grid { grid-template-columns: 1fr; }\n    }\n    @media (max-width: 520px) {\n      .mte-toolbar { margin: -18px 0 22px; padding: 12px; border-radius: 0 0 18px 18px; }\n      .mte-stat-grid, [data-region=\"results\"], .mte-loading, .mte-empty, .mte-footer { margin-left: 12px; margin-right: 12px; }\n      .mte-filter-row, .mte-stat-grid { grid-template-columns: 1fr; }\n      .mte-stat { min-height: 100px; }\n      .mte-results-head { display: block; }\n      .mte-source-note { margin-top: 8px; text-align: left; }\n      .mte-card { padding: 19px; }\n    }\n  <\/style>\n\n  <section class=\"mte-hero\" aria-labelledby=\"mte-page-title\">\n    <div>\n      <p class=\"mte-kicker\">Academic Repository<\/p>\n      <h1 id=\"mte-page-title\" class=\"mte-title\">\ud83d\udcda Research Data MTE USK<\/h1>\n      <p class=\"mte-subtitle\">Master of Electrical Engineering<br>Universitas Syiah Kuala<\/p>\n    <\/div>\n    <div class=\"mte-hero-side\">\n      <div class=\"mte-brand-mark\" aria-hidden=\"true\"><\/div>\n      <button type=\"button\" class=\"mte-refresh\" data-action=\"refresh\" aria-label=\"Muat ulang data penelitian\"><span>Refresh Data<\/span><\/button>\n      <span class=\"mte-version\">Interface v4.0<\/span>\n    <\/div>\n  <\/section>\n\n  <section class=\"mte-toolbar\" aria-label=\"Pencarian dan filter penelitian\">\n    <div class=\"mte-search-wrap\">\n      <span class=\"mte-search-icon\" aria-hidden=\"true\"><\/span>\n      <input class=\"mte-search\" data-field=\"search\" type=\"search\" placeholder=\"Cari judul, penulis, atau publikasi...\" autocomplete=\"off\" aria-label=\"Cari penelitian\">\n      <button type=\"button\" class=\"mte-search-clear\" data-action=\"clear-search\" aria-label=\"Hapus pencarian\">x<\/button>\n    <\/div>\n    <div class=\"mte-filter-row\">\n      <select class=\"mte-select\" data-field=\"year\" aria-label=\"Filter tahun\"><option value=\"\">Semua tahun<\/option><\/select>\n      <select class=\"mte-select\" data-field=\"author\" aria-label=\"Filter penulis\"><option value=\"\">Semua penulis<\/option><\/select>\n      <select class=\"mte-select\" data-field=\"sort\" aria-label=\"Urutkan hasil\">\n        <option value=\"year-desc\">Terbaru ke terlama<\/option>\n        <option value=\"year-asc\">Terlama ke terbaru<\/option>\n        <option value=\"title-asc\">Judul A-Z<\/option>\n        <option value=\"title-desc\">Judul Z-A<\/option>\n        <option value=\"author-asc\">Penulis A-Z<\/option>\n      <\/select>\n      <label class=\"mte-toggle\"><input type=\"checkbox\" data-field=\"duplicates\"> <span>Sembunyikan duplikat<\/span><\/label>\n    <\/div>\n    <div class=\"mte-active-filters\" data-region=\"chips\" aria-live=\"polite\"><\/div>\n  <\/section>\n\n  <section class=\"mte-stat-grid\" aria-label=\"Ringkasan data penelitian\">\n    <div class=\"mte-stat\"><span class=\"mte-stat-label\">Total Research<\/span><span class=\"mte-stat-number\" data-stat=\"total\">0<\/span><\/div>\n    <div class=\"mte-stat\"><span class=\"mte-stat-label\">Current Results<\/span><span class=\"mte-stat-number\" data-stat=\"filtered\">0<\/span><\/div>\n    <div class=\"mte-stat\"><span class=\"mte-stat-label\">Year Range<\/span><span class=\"mte-stat-number\" data-stat=\"range\">&#8211;<\/span><\/div>\n  <\/section>\n\n  <div class=\"mte-loading\" data-region=\"loading\" aria-live=\"polite\">\n    <div>\n      <div class=\"mte-spinner\" aria-hidden=\"true\"><\/div>\n      <p>Menyiapkan data penelitian&#8230;<\/p>\n      <div class=\"mte-progress\"><div class=\"mte-progress-fill\" data-region=\"progress\"><\/div><\/div>\n      <div class=\"mte-loading-status\" data-region=\"status\">Menghubungkan ke repositori akademik<\/div>\n    <\/div>\n  <\/div>\n\n  <section data-region=\"results\" hidden>\n    <div class=\"mte-results-head\">\n      <div>\n        <h2 class=\"mte-results-title\">Research List<\/h2>\n        <p class=\"mte-results-info\" data-region=\"results-info\"><\/p>\n      <\/div>\n      <div class=\"mte-source-note\">Sumber: repositori data MTE USK<\/div>\n    <\/div>\n    <div class=\"mte-research-grid\" data-region=\"grid\"><\/div>\n    <button type=\"button\" class=\"mte-load-more\" data-action=\"load-more\" hidden>Muat lebih banyak<\/button>\n  <\/section>\n\n  <section class=\"mte-empty\" data-region=\"empty\" hidden>\n    <div class=\"mte-empty-icon\" aria-hidden=\"true\"><\/div>\n    <h2 class=\"mte-empty-title\">Belum ada penelitian yang cocok<\/h2>\n    <p class=\"mte-empty-desc\" data-region=\"empty-desc\">Coba ubah kata kunci atau filter Anda.<\/p>\n    <button type=\"button\" class=\"mte-empty-reset\" data-action=\"reset\">Reset semua filter<\/button>\n  <\/section>\n\n  <div class=\"mte-footer\"><span>Direktori penelitian | Magister Teknik Elektro | Universitas Syiah Kuala<\/span><span class=\"mte-owl-signature\" data-tooltip=\"\u00a9 syah\" title=\"\u00a9 syah\" tabindex=\"0\" role=\"img\" aria-label=\"\u00a9 syah\">\ud83e\udd89<\/span><\/div>\n\n  <div class=\"mte-modal\" data-region=\"modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mte-modal-title\" aria-hidden=\"true\">\n    <div class=\"mte-modal-dialog\">\n      <div class=\"mte-modal-head\"><h2 id=\"mte-modal-title\">Detail penelitian<\/h2><button type=\"button\" class=\"mte-modal-close\" data-action=\"close-modal\" aria-label=\"Tutup detail\">x<\/button><\/div>\n      <div class=\"mte-modal-body\" data-region=\"modal-body\"><\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function () {\n      'use strict';\n      var root = document.getElementById('mte-research-portal');\n      if (!root || root.getAttribute('data-mte-initialized') === 'true') return;\n      root.setAttribute('data-mte-initialized', 'true');\n\n      var BASE_URL = 'https:\/\/mte.usk.ac.id\/wp-content\/uploads\/data-penelitian\/JSONL\/';\n      var START_YEAR = 2010;\n      var state = { data: [], filtered: [], page: 1, perPage: 12, search: '', year: '', author: '', sort: 'year-desc', duplicates: false, lastActive: null };\n      var $ = function (selector) { return root.querySelector(selector); };\n      var $$ = function (selector) { return Array.prototype.slice.call(root.querySelectorAll(selector)); };\n      var loading = $('[data-region=\"loading\"]'), results = $('[data-region=\"results\"]'), empty = $('[data-region=\"empty\"]');\n      var grid = $('[data-region=\"grid\"]'), modal = $('[data-region=\"modal\"]'), modalBody = $('[data-region=\"modal-body\"]');\n      var search = $('[data-field=\"search\"]'), year = $('[data-field=\"year\"]'), author = $('[data-field=\"author\"]'), sort = $('[data-field=\"sort\"]'), duplicates = $('[data-field=\"duplicates\"]');\n      var refresh = $('[data-action=\"refresh\"]'), clearSearch = $('[data-action=\"clear-search\"]');\n\n      function escapeHtml(value) { var div = document.createElement('div'); div.textContent = value == null ? '' : String(value); return div.innerHTML; }\n      function safeUrl(value) { var url = String(value || '').trim(); return \/^https?:\\\/\\\/\/i.test(url) ? url : ''; }\n      function truncate(value, length) { value = String(value || ''); return value.length > length ? value.slice(0, length).trim() + '...' : value; }\n      function highlight(value, query) {\n        var output = escapeHtml(value);\n        String(query || '').split(',').map(function (item) { return item.trim(); }).filter(Boolean).forEach(function (term) {\n          var pattern = term.replace(\/[.*+?^${}()|[\\]\\\\]\/g, '\\\\$&');\n          output = output.replace(new RegExp('(' + pattern + ')', 'gi'), '<mark>$1<\/mark>');\n        });\n        return output;\n      }\n      function normalize(item, yearValue, index) {\n        var authors = String(item['Nama Penulis'] || '').split(',').map(function (name) { return name.trim(); }).filter(Boolean);\n        var publicationText = item.Keterangan && typeof item.Keterangan === 'object' ? (item.Keterangan.text || '') : (item.Keterangan || '');\n        var publicationLink = item.Keterangan && typeof item.Keterangan === 'object' ? safeUrl(item.Keterangan.link) : '';\n        item.year = yearValue; item.No = item.No || index + 1; item.id = yearValue + '-' + item.No;\n        item.authors = authors; item.publicationText = String(publicationText); item.publicationLink = publicationLink;\n        item.searchText = [item.Judul || '', item['Nama Penulis'] || '', item.publicationText].join(' ').toLowerCase();\n        return item;\n      }\n      function debounce(fn, wait) { var timeout; return function () { var args = arguments; clearTimeout(timeout); timeout = setTimeout(function () { fn.apply(null, args); }, wait); }; }\n      function setLoadingProgress(done, total, text) { $('[data-region=\"progress\"]').style.width = Math.round((done \/ total) * 100) + '%'; $('[data-region=\"status\"]').textContent = text; }\n      function showLoading() { loading.hidden = false; loading.style.setProperty('display', 'grid', 'important'); }\n      function finishLoading() { loading.hidden = true; loading.style.setProperty('display', 'none', 'important'); }\n\n      function yearsToLoad() { var current = new Date().getFullYear(); var list = []; for (var y = current; y >= START_YEAR; y--) list.push(y); return list; }\n      function fetchTextWithTimeout(url, options, timeoutMs) {\n        var controller = typeof AbortController !== 'undefined' ? new AbortController() : null;\n        var requestOptions = Object.assign({}, options || {});\n        if (controller) requestOptions.signal = controller.signal;\n        var timer;\n        var request = fetch(url, requestOptions).then(function (response) { return response.ok ? response.text() : ''; });\n        var timeout = new Promise(function (_, reject) {\n          timer = setTimeout(function () {\n            if (controller) controller.abort();\n            reject(new Error('Request timeout'));\n          }, timeoutMs);\n        });\n        return Promise.race([request, timeout]).finally(function () { clearTimeout(timer); });\n      }\n      function loadData(force) {\n        var years = yearsToLoad(), finished = 0, stamp = force ? ('?v=' + Date.now() + '&r=' + Math.random().toString(36).slice(2)) : ('?v=' + Date.now());\n        setLoadingProgress(0, years.length, 'Menghubungkan ke repositori akademik');\n        return Promise.all(years.map(function (yearValue) {\n          return fetchTextWithTimeout(BASE_URL + yearValue + '.jsonl' + stamp, { cache: force ? 'no-store' : 'no-cache' }, 10000)\n            .then(function (text) {\n              var items = [];\n              if (text && text.trim()) text.trim().split(\/\\r?\\n\/).forEach(function (line, index) { try { items.push(normalize(JSON.parse(line), yearValue, index)); } catch (error) {} });\n              return { items: items, timedOut: false };\n            })\n            .catch(function () { return { items: [], timedOut: true }; })\n            .then(function (result) { finished += 1; setLoadingProgress(finished, years.length, result.timedOut ? ('Melewati ' + yearValue + ' | waktu habis') : ('Memuat ' + yearValue + ' | ' + result.items.length + ' data')); return result.items; });\n        })).then(function (groups) { state.data = [].concat.apply([], groups); populateFilters(); updateStats(); });\n      }\n\n      function populateFilters() {\n        var yearValues = Array.from(new Set(state.data.map(function (item) { return item.year; }))).sort(function (a, b) { return b - a; });\n        year.innerHTML = '<option value=\"\">Semua tahun<\/option>' + yearValues.map(function (value) { return '<option value=\"' + escapeHtml(value) + '\">' + escapeHtml(value) + '<\/option>'; }).join('');\n        var authorMap = {};\n        state.data.forEach(function (item) { item.authors.forEach(function (name) { authorMap[name] = (authorMap[name] || 0) + 1; }); });\n        var authors = Object.keys(authorMap).sort(function (a, b) { return a.localeCompare(b, 'id'); });\n        author.innerHTML = '<option value=\"\">Semua penulis<\/option>' + authors.map(function (name) { return '<option value=\"' + escapeHtml(name) + '\">' + escapeHtml(name) + ' (' + authorMap[name] + ')<\/option>'; }).join('');\n        year.value = state.year; author.value = state.author;\n      }\n      function updateStats() {\n        $('[data-stat=\"total\"]').textContent = state.data.length.toLocaleString('id-ID');\n        $('[data-stat=\"filtered\"]').textContent = state.filtered.length.toLocaleString('id-ID');\n        var values = state.data.map(function (item) { return item.year; }).sort(function (a, b) { return a - b; });\n        $('[data-stat=\"range\"]').textContent = values.length ? values[0] + '-' + values[values.length - 1] : '-';\n      }\n      function filterAndSort() {\n        var output = state.data.slice();\n        if (state.search) { var terms = state.search.toLowerCase().split(',').map(function (term) { return term.trim(); }).filter(Boolean); output = output.filter(function (item) { return terms.every(function (term) { return item.searchText.indexOf(term) !== -1; }); }); }\n        if (state.year) output = output.filter(function (item) { return String(item.year) === String(state.year); });\n        if (state.author) output = output.filter(function (item) { return item.authors.some(function (name) { return name.toLowerCase() === state.author.toLowerCase(); }); });\n        if (state.duplicates) { var seen = {}; output = output.filter(function (item) { var key = String(item.Judul || '').toLowerCase().replace(\/\\s+\/g, ' ').replace(\/[^\\w\\s]\/g, '').trim(); if (!key || seen[key]) return false; seen[key] = true; return true; }); }\n        output.sort(function (a, b) { var field = state.sort.split('-')[0], direction = state.sort.split('-')[1], aValue, bValue; if (field === 'year') { aValue = a.year; bValue = b.year; } else if (field === 'title') { aValue = String(a.Judul || '').toLowerCase(); bValue = String(b.Judul || '').toLowerCase(); } else { aValue = String(a['Nama Penulis'] || '').toLowerCase(); bValue = String(b['Nama Penulis'] || '').toLowerCase(); } if (aValue < bValue) return direction === 'asc' ? -1 : 1; if (aValue > bValue) return direction === 'asc' ? 1 : -1; return 0; });\n        state.filtered = output;\n      }\n      function renderChips() {\n        var container = $('[data-region=\"chips\"]'), chips = [];\n        function chip(label, clear) { chips.push('<span class=\"mte-chip\">' + escapeHtml(label) + ' <button type=\"button\" data-chip-clear=\"' + clear + '\" aria-label=\"Hapus filter\">x<\/button><\/span>'); }\n        if (state.search) chip('Search: ' + state.search, 'search');\n        if (state.year) chip('Tahun ' + state.year, 'year');\n        if (state.author) chip('Penulis ' + state.author, 'author');\n        if (state.duplicates) chip('Tanpa duplikat', 'duplicates');\n        if (chips.length) chips.push('<button type=\"button\" class=\"mte-clear-all\" data-action=\"reset\">Reset semua<\/button>');\n        container.innerHTML = chips.join('');\n        $$('[data-chip-clear]').forEach(function (button) { button.addEventListener('click', function () { var key = button.getAttribute('data-chip-clear'); if (key === 'search') { state.search = ''; search.value = ''; clearSearch.classList.remove('is-visible'); } if (key === 'year') { state.year = ''; year.value = ''; } if (key === 'author') { state.author = ''; author.value = ''; } if (key === 'duplicates') { state.duplicates = false; duplicates.checked = false; } state.page = 1; render(); }); });\n        var reset = container.querySelector('[data-action=\"reset\"]'); if (reset) reset.addEventListener('click', resetAll);\n      }\n      function createCard(item) {\n        var card = document.createElement('article'); card.className = 'mte-card'; card.tabIndex = 0; card.setAttribute('role', 'button'); card.setAttribute('aria-label', 'Buka detail: ' + String(item.Judul || ''));\n        card.innerHTML = '<div class=\"mte-card-top\"><span class=\"mte-number\">NO. ' + escapeHtml(item.No) + '<\/span><span class=\"mte-year\">' + escapeHtml(item.year) + '<\/span><\/div>' +\n          '<h3 class=\"mte-card-title\">' + highlight(truncate(item.Judul, 145), state.search) + '<\/h3>' +\n          '<p class=\"mte-card-authors\"><strong>Penulis:<\/strong> ' + highlight(truncate(item['Nama Penulis'], 105), state.search) + '<\/p>' +\n          '<div class=\"mte-publication\"><span class=\"mte-publication-icon\">|<\/span><span class=\"mte-publication-text\">' + highlight(truncate(item.publicationText || 'Informasi publikasi belum tersedia.', 150), state.search) + '<\/span><\/div>';\n        card.addEventListener('click', function () { openModal(item); });\n        card.addEventListener('keydown', function (event) { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); openModal(item); } });\n        return card;\n      }\n      function render() {\n        filterAndSort(); updateStats(); renderChips();\n        var total = state.filtered.length, end = Math.min(state.page * state.perPage, total);\n        if (!total) { results.hidden = true; empty.hidden = false; var message = 'Coba ubah kata kunci atau filter Anda.'; if (state.search) message = 'Tidak ada hasil untuk \"' + state.search + '\".'; else if (state.year) message = 'Tidak ada data untuk tahun ' + state.year + '.'; else if (state.author) message = 'Tidak ada data untuk penulis \"' + state.author + '\".'; $('[data-region=\"empty-desc\"]').textContent = message; return; }\n        empty.hidden = true; results.hidden = false; $('[data-region=\"results-info\"]').innerHTML = 'Menampilkan <strong>' + end + '<\/strong> dari <strong>' + total.toLocaleString('id-ID') + '<\/strong> hasil';\n        grid.innerHTML = ''; state.filtered.slice(0, end).forEach(function (item) { grid.appendChild(createCard(item)); });\n        $('[data-action=\"load-more\"]').hidden = end >= total;\n      }\n      function resetAll() { state.search = ''; state.year = ''; state.author = ''; state.sort = 'year-desc'; state.duplicates = false; state.page = 1; search.value = ''; year.value = ''; author.value = ''; sort.value = 'year-desc'; duplicates.checked = false; clearSearch.classList.remove('is-visible'); render(); }\n      function openModal(item) {\n        var authors = item.authors.map(function (name) { return '<span class=\"mte-author-tag\">' + escapeHtml(name) + '<\/span>'; }).join('');\n        var link = item.publicationLink ? '<a class=\"mte-external-link\" href=\"' + escapeHtml(item.publicationLink) + '\" target=\"_blank\" rel=\"noopener\">Buka link publikasi<\/a>' : '';\n        modalBody.innerHTML = '<section class=\"mte-modal-section\"><p class=\"mte-modal-label\">Judul penelitian<\/p><p class=\"mte-modal-value\"><strong>' + escapeHtml(item.Judul) + '<\/strong><\/p><\/section>' +\n          '<section class=\"mte-modal-section\"><p class=\"mte-modal-label\">Penulis \/ peneliti<\/p><div class=\"mte-author-tags\">' + authors + '<\/div><\/section>' +\n          '<section class=\"mte-modal-section\"><p class=\"mte-modal-label\">Informasi publikasi<\/p><p class=\"mte-modal-value\">' + escapeHtml(item.publicationText || 'Belum tersedia.') + '<\/p>' + link + '<\/section>' +\n          '<section class=\"mte-modal-section\"><p class=\"mte-modal-label\">Informasi tambahan<\/p><p class=\"mte-modal-value\">Tahun ' + escapeHtml(item.year) + ' | Nomor urut ' + escapeHtml(item.No) + ' | ' + item.authors.length + ' penulis<\/p><\/section>';\n        state.lastActive = document.activeElement; modal.classList.add('is-open'); modal.setAttribute('aria-hidden', 'false'); document.body.style.overflow = 'hidden'; $('[data-action=\"close-modal\"]').focus();\n      }\n      function closeModal() { modal.classList.remove('is-open'); modal.setAttribute('aria-hidden', 'true'); document.body.style.overflow = ''; if (state.lastActive && state.lastActive.focus) state.lastActive.focus(); }\n      function bind() {\n        search.addEventListener('input', debounce(function () { state.search = search.value.trim(); state.page = 1; clearSearch.classList.toggle('is-visible', !!state.search); render(); }, 280));\n        clearSearch.addEventListener('click', function () { state.search = ''; search.value = ''; clearSearch.classList.remove('is-visible'); state.page = 1; render(); search.focus(); });\n        year.addEventListener('change', function () { state.year = year.value; state.page = 1; render(); });\n        author.addEventListener('change', function () { state.author = author.value; state.page = 1; render(); });\n        sort.addEventListener('change', function () { state.sort = sort.value; render(); });\n        duplicates.addEventListener('change', function () { state.duplicates = duplicates.checked; state.page = 1; render(); });\n        $('[data-action=\"load-more\"]').addEventListener('click', function () { state.page += 1; render(); });\n        $('[data-action=\"reset\"]').addEventListener('click', resetAll);\n        $('[data-action=\"close-modal\"]').addEventListener('click', closeModal);\n        modal.addEventListener('click', function (event) { if (event.target === modal) closeModal(); });\n        refresh.addEventListener('click', function () { refresh.disabled = true; refresh.querySelector('span').textContent = 'Memuat ulang...'; showLoading(); results.hidden = true; empty.hidden = true; loadData(true).then(function () { state.page = 1; render(); }).catch(function () { state.page = 1; render(); }).finally(function () { finishLoading(); refresh.disabled = false; refresh.querySelector('span').textContent = 'Muat ulang data'; }); });\n        document.addEventListener('keydown', function (event) { if (event.key === 'Escape' && modal.classList.contains('is-open')) closeModal(); if (event.key === '\/' && document.activeElement !== search && !modal.classList.contains('is-open')) { event.preventDefault(); search.focus(); } });\n      }\n      bind();\n      loadData(false).then(function () { finishLoading(); render(); }).catch(function () { finishLoading(); render(); });\n    }());\n  <\/script>\n<\/div>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>Repositori akademik Data Penelitian MTE USK Magister Teknik ElektroUniversitas Syiah Kuala Muat ulang data Interface v4.0 x Semua tahun Semua penulis Terbaru ke terlamaTerlama ke terbaruJudul A-ZJudul Z-APenulis A-Z Sembunyikan duplikat Total penelitian0 Hasil saat ini0 Rentang tahun&#8211; Menyiapkan data penelitian&#8230; Menghubungkan ke repositori akademik Daftar penelitian Sumber: repositori data MTE USK Muat lebih banyak [&hellip;]<\/p>",
        "protected": false
    },
    "author": 2,
    "featured_media": 0,
    "parent": 0,
    "menu_order": 0,
    "comment_status": "closed",
    "ping_status": "closed",
    "template": "",
    "meta": {
        "_et_pb_use_builder": "off",
        "_et_pb_old_content": "",
        "_et_gb_content_width": "1080",
        "footnotes": ""
    },
    "class_list": [
        "post-245647",
        "page",
        "type-page",
        "status-publish",
        "hentry"
    ],
    "_links": {
        "self": [
            {
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=\/wp\/v2\/pages\/245647",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=\/wp\/v2\/pages"
            }
        ],
        "about": [
            {
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=\/wp\/v2\/types\/page"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=\/wp\/v2\/users\/2"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=245647"
            }
        ],
        "version-history": [
            {
                "count": 30,
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=\/wp\/v2\/pages\/245647\/revisions"
            }
        ],
        "predecessor-version": [
            {
                "id": 245900,
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=\/wp\/v2\/pages\/245647\/revisions\/245900"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/mte.usk.ac.id\/en\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=245647"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}