{"id":214,"date":"2024-12-15T18:43:30","date_gmt":"2024-12-15T18:43:30","guid":{"rendered":"https:\/\/fpsiyarsi.info\/?page_id=214"},"modified":"2024-12-15T18:46:04","modified_gmt":"2024-12-15T18:46:04","slug":"mahasiswa","status":"publish","type":"page","link":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/penelitian\/publikasi\/mahasiswa\/","title":{"rendered":"Daftar Publikasi Mahasiswa"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"id\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Publikasi Ilmiah Mahasiswa<\/title>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@400;700&#038;display=swap\" rel=\"stylesheet\">\n  <style>\n    body {\n      font-family: 'Roboto', sans-serif !important;\n      line-height: 1.6;\n      margin: 0;\n      padding: 0;\n      background-color: #f5f5f5;\n      color: #333;\n    }\n\n    header {\n      background-color: #4CAF50;\n      color: white;\n      padding: 1rem 0;\n      text-align: center;\n    }\n\n    h1 {\n      font-family: 'Roboto', sans-serif;\n      margin: 0;\n      font-size: 2rem;\n    }\n\n    main {\n      padding: 2rem;\n    }\n\n    #publication-list {\n      max-width: 800px;\n      margin: 0 auto;\n      padding: 1rem;\n    }\n\n    .publication-item {\n      display: block;\n      padding: 1rem;\n      margin: 1rem 0;\n      border-radius: 8px;\n      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n    }\n\n    \/* Warna untuk urutan ganjil *\/\n    .publication-item:nth-child(odd) {\n      background: linear-gradient(135deg, #f0f0f0, #d9d9d9);\n    }\n\n    \/* Warna untuk urutan genap *\/\n    .publication-item:nth-child(even) {\n      background: linear-gradient(135deg, #ffffff, #e6e6e6);\n    }\n\n    .publication-title a {\n  \t  font-size: 1.8rem;\n  \t  font-weight: bold;\n  \t  color: #0073aa;\n  \t  text-decoration: none;\n  \t  transition: color 0.2s, text-decoration 0.2s;\n          line-height: 1.4; \/* Tambahkan jika diperlukan *\/\n \t}\n\n\t.publication-title a:hover {\n  \t  text-decoration: underline;\n\t}\n\n    .publication-author,\n    .publication-year,\n    .publication-journal {\n      margin: 0.5rem 0;\n      font-style: normal;\n    }\n\n  \t.publication-author::before {\n      content: '\\1F464'; \/* Unicode for person icon *\/\n      margin-right: 8px;\n    }\n\n    .publication-year::before {\n      content: '\\1F4C5'; \/* Unicode for calendar icon *\/\n      margin-right: 8px;\n    }\n     .publication-journal::before {\n       content: '\\1F4D5'; \/* Unicode for book icon *\/\n       margin-right: 8px;\n    }\n        \n    footer {\n      text-align: center;\n      padding: 1rem 0;\n      background-color: #333;\n      color: white;\n      position: relative;\n      bottom: 0;\n      width: 100%;\n    }\n\n    .pagination {\n      display: flex;\n      justify-content: center;\n      margin-top: 1rem;\n    }\n\n    .pagination button {\n      padding: 0.5rem 1rem;\n      margin: 0 0.25rem;\n      border: none;\n      border-radius: 4px;\n      background-color: #0073aa;\n      color: white;\n      cursor: pointer;\n    }\n\n    .pagination button:disabled {\n      background-color: #9E9E9E;\n      cursor: not-allowed;\n    }\n\n    .pagination button:hover:not(:disabled) {\n      background-color: #388E3C;\n    }\n    .year-buttons {\n  \t  display: flex;\n  \t  flex-wrap: wrap;\n  \t  justify-content: center;\n  \t  margin-bottom: 1rem;\n\t}\n\n\t.year-button {\n  \t  padding: 0.5rem 1rem;\n  \t  margin: 0.25rem;\n  \t  border: none;\n  \t  border-radius: 4px;\n  \t  background-color: #0073aa;\n  \t  color: white;\n  \t  cursor: pointer;\n  \t  transition: background-color 0.2s;\n\t}\n\n\t.year-button:disabled {\n  \t  background-color: #9E9E9E;\n  \t  cursor: not-allowed;\n\t}\n\n\t.year-button:hover:not(:disabled) {\n  \t  background-color: #005f8a;\n}\n  <\/style>\n<\/head>\n<body>\n  <main>\n    <div class=\"year-buttons\"><\/div>\n    <div id=\"publication-list\">\n      <p>Sedang memuat data&#8230;<\/p>\n    <\/div>\n    <div class=\"pagination\"><\/div>\n\t<\/main>\n   <script>\n  const SPREADSHEET_ID = '13TJ9OjIJ1SqzoeQ7RLVabs0fSQQBghsH75S1cbQf-C4';\n  const endpoint = `https:\/\/gsx2json.com\/api?id=${SPREADSHEET_ID}&sheet=Mahasiswa2`;\n\n  let currentPage = 0; \/\/ Halaman pertama dimulai dari indeks 0\n  let rows = [];\n  let years = [];\n  let groupedByYear = {};\n\n  \/\/ Fungsi untuk fetch data dari API\n  async function fetchData() {\n    const publicationList = document.getElementById(\"publication-list\");\n    try {\n      const response = await fetch(endpoint);\n      const data = await response.json();\n      rows = data.rows || [];\n\n      if (rows.length > 0) {\n        \/\/ Kelompokkan data berdasarkan tahun\n        groupedByYear = rows.reduce((acc, row) => {\n          const year = row.tahun || \"Tanpa Tahun\"; \/\/ Handle data tanpa tahun\n          if (!acc[year]) {\n            acc[year] = [];\n          }\n          acc[year].push(row);\n          return acc;\n        }, {});\n\n        years = Object.keys(groupedByYear).sort((a, b) => b - a); \/\/ Urutkan tahun (desc)\n        currentPage = 0; \/\/ Awal pada tahun terbaru\n        renderPage();\n      } else {\n        publicationList.innerHTML = '<p>Data tidak ditemukan.<\/p>';\n      }\n    } catch (error) {\n      console.error(\"Error fetching data:\", error);\n      publicationList.innerHTML = '<p>Gagal memuat data. Silakan coba lagi nanti.<\/p>';\n    }\n  }\n\n  \/\/ Fungsi untuk merender halaman berdasarkan tahun\n  function renderPage() {\n    const publicationList = document.getElementById(\"publication-list\");\n    publicationList.innerHTML = '';\n\n    const year = years[currentPage]; \/\/ Ambil tahun pada halaman saat ini\n    const pageItems = groupedByYear[year] || [];\n\n    \/\/ Tampilkan tahun sebagai judul\n    const yearTitle = document.createElement('h2');\n    yearTitle.textContent = `Publikasi Tahun ${year}`;\n    publicationList.appendChild(yearTitle);\n\n    \/\/ Tampilkan publikasi dari tahun tersebut\n    pageItems.forEach(row => {\n      const { judulpublikasi, penulis, tahun, urlpublikasi, jurnal } = row;\n      const item = document.createElement(\"div\");\n      item.classList.add(\"publication-item\");\n      item.innerHTML = `\n        <p class=\"publication-title\">\n          <a href=\"${urlpublikasi}\" target=\"_blank\" rel=\"noopener noreferrer\">${judulpublikasi}<\/a>\n        <\/p>\n        <p class=\"publication-author\">${penulis}<\/p>\n        <p class=\"publication-year\">${tahun}<\/p>\n        <p class=\"publication-journal\">${jurnal}<\/p>\n      `;\n      publicationList.appendChild(item);\n    });\n\t  \n    renderPagination();\n    renderYearButtons(); \/\/ Tambahkan render tombol tahun\n  }\n\n  \/\/ Fungsi untuk merender pagination\n  function renderPagination() {\n  const pagination = document.querySelector(\".pagination\");\n  pagination.innerHTML = '';\n\n  \/\/ Tombol Sebelumnya\n  const prevButton = document.createElement(\"button\");\n  if (currentPage > 0) {\n    const prevYear = years[currentPage - 1];\n    prevButton.textContent = `Berikutnya (${prevYear})`;\n  } else {\n    prevButton.textContent = \"Berikutnya\";\n  }\n  prevButton.disabled = currentPage === 0;\n  prevButton.addEventListener(\"click\", () => {\n    currentPage--;\n    renderPage();\n  });\n  pagination.appendChild(prevButton);\n\n  \/\/ Tombol Berikutnya\n  const nextButton = document.createElement(\"button\");\n  if (currentPage < years.length - 1) {\n    const nextYear = years[currentPage + 1];\n    nextButton.textContent = `Sebelumnya (${nextYear})`;\n  } else {\n    nextButton.textContent = \"Sebelumnya\";\n  }\n  nextButton.disabled = currentPage === years.length - 1;\n  nextButton.addEventListener(\"click\", () => {\n    currentPage++;\n    renderPage();\n  });\n  pagination.appendChild(nextButton);\n}\n\nfunction renderYearButtons() {\n  const yearButtonsContainer = document.querySelector(\".year-buttons\");\n  yearButtonsContainer.innerHTML = '';\n\n  years.forEach((year, index) => {\n    const yearButton = document.createElement(\"button\");\n    yearButton.textContent = year;\n    yearButton.classList.add(\"year-button\");\n    yearButton.disabled = currentPage === index; \/\/ Nonaktifkan tombol untuk tahun yang sedang aktif\n    yearButton.addEventListener(\"click\", () => {\n      currentPage = index; \/\/ Set halaman ke tahun yang dipilih\n      renderPage(); \/\/ Render halaman baru\n    });\n    yearButtonsContainer.appendChild(yearButton);\n  });\n}\n\n  \/\/ Panggil fetch data saat pertama kali halaman dimuat\n  fetchData();\n<\/script>\n\n<\/body>\n<\/html>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Publikasi Ilmiah Mahasiswa Sedang memuat data&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":208,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-214","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/pages\/214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/comments?post=214"}],"version-history":[{"count":5,"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/pages\/214\/revisions"}],"predecessor-version":[{"id":220,"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/pages\/214\/revisions\/220"}],"up":[{"embeddable":true,"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/pages\/208"}],"wp:attachment":[{"href":"https:\/\/www.yarsi.ac.id\/fakultas-psikologi\/wp-json\/wp\/v2\/media?parent=214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}