{"id":3706,"date":"2024-07-31T11:27:24","date_gmt":"2024-07-31T04:27:24","guid":{"rendered":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/?page_id=3706"},"modified":"2025-09-19T11:34:54","modified_gmt":"2025-09-19T04:34:54","slug":"layanan-cek-plagiasi-skripsi-mahasiswa-prodi-ilmu-perpustakaan-uinsu","status":"publish","type":"page","link":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/?page_id=3706","title":{"rendered":"Layanan Turnitin Program Studi Ilmu Perpustakaan"},"content":{"rendered":"\n<p>Untuk menjaga keaslian karya ilmiah Dosen dan Mahasiswa, Prodi Ilmu Perpustakaan menyediakan layanan pengecekan <strong>Turnitin<\/strong>. Layanan ini membantu sivitas akademika memastikan karya tulis bebas dari plagiarisme serta sesuai dengan standar etika akademik UINSU.<\/p>\n\n\n\n<p>Sebelum mengajukan permohonan, <strong>harap perhatikan alur layanan berikut<\/strong> agar proses berjalan dengan lancar:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Pengajuan Permohonan<\/strong><br>Mahasiswa dan Dosen mengisi form online dan mengunggah dokumen karya ilmiah pada laman resmi Prodi.<\/li>\n\n\n\n<li><strong>Verifikasi Data<\/strong><br>Pihak Prodi memverifikasi data identitas serta kelengkapan dokumen permohonan.<\/li>\n\n\n\n<li><strong>Pengecekan Turnitin<\/strong><br>Operator\/tim validasi melakukan pengecekan dokumen di aplikasi Turnitin setiap hari kerja pukul 15.00 WIB.<\/li>\n\n\n\n<li><strong>Pengarsipan Hasil<\/strong> <strong>dan Penerbitan Surat Keterangan<\/strong><br>Hasil pengecekan Turnitin dapat diunduh setiap hari kerja pada pukul 16.00 WIB dan diarsipkan ke dalam penyimpanan resmi Prodi dan dapat mengunduh Surat Keterangan Hasil Validasi melalui laman layanan Turnitin dengan memasukkan Nama dan NIM\/NIP.<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/forms.gle\/MHF7PeJKG8QJq6Lp6\">Permohonan<\/a><\/div>\n<\/div>\n\n\n\n<p>Cek Hasil Turnitin Kamu disini<\/p>\n\n\n\n<!-- Turnitin Mini Widget -->\n<div class=\"tiw\" id=\"tiw\">\n  <style>\n    .tiw{max-width:380px;margin:28px auto;padding:22px 18px;border-radius:20px;background:linear-gradient(135deg,#fff 78%,#d6edda);box-shadow:0 10px 26px rgba(38,71,30,.15),0 2px 10px rgba(255,184,3,.25);font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;color:#1f2937}\n    .tiw h3{margin:0 0 14px;font-size:1.25rem;font-weight:800;letter-spacing:-.2px;color:#26471e;text-align:center}\n    .tiw .muted{color:#6b7280;font-size:.9rem}\n    .tiw .alert{display:none;margin:8px 0 10px;padding:8px 10px;border-radius:12px;background:#fee2e2;color:#991b1b;border:1px solid #fecaca}\n    .tiw .alert.show{display:block}\n    .tiw .status{min-height:1.1em;margin:6px 0 10px;color:#6b7280;font-size:.9rem}\n    .tiw .in{width:100%;padding:10px 12px;margin:0 0 10px;border-radius:12px;border:2px solid #ffb803;box-shadow:0 2px 10px rgba(255,184,3,.15);font-size:1rem;outline:none;transition:border-color .15s,box-shadow .15s}\n    .tiw .in:focus{border-color:#26471e;box-shadow:0 0 0 4px #26471e22}\n    .tiw .btn{width:100%;padding:11px 0;border:0;border-radius:12px;background:linear-gradient(90deg,#26471e,#ffb803);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 6px 16px rgba(38,71,30,.18)}\n    .tiw .btn[disabled]{opacity:.6;cursor:not-allowed}\n    .tiw .spin{display:inline-block;width:1em;height:1em;border:.16em solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.15em;margin-left:8px;animation:tiwspin .6s linear infinite}\n    @keyframes tiwspin{to{transform:rotate(360deg)}}\n    .tiw .rows{display:none;margin-top:12px}\n    .tiw .rows.show{display:block}\n    .tiw .row{display:flex;gap:8px;margin:6px 0;align-items:center}\n    .tiw .row b{min-width:58px}\n    .tiw .badge{display:inline-block;padding:3px 9px;border-radius:999px;background:#e5e7eb;font-weight:800}\n    .tiw .ok{background:#d1fae5;color:#065f46}.tiw .warn{background:#fef3c7;color:#92400e}.tiw .bad{background:#fee2e2;color:#991b1b}\n    .tiw .suket{display:inline-block;margin-top:8px;padding:8px 10px;border-radius:12px;background:linear-gradient(90deg,#26471e,#ffb803);color:#fff;text-decoration:none;box-shadow:0 4px 12px rgba(38,71,30,.18)}\n  <\/style>\n\n  <h3>Cek Hasil Turnitin<\/h3>\n\n  <div id=\"alert\" class=\"alert\" role=\"alert\"><\/div>\n  <div id=\"statusArea\" class=\"status\" aria-live=\"polite\"><\/div>\n\n  <form id=\"form-turnitin\" autocomplete=\"off\">\n    <input id=\"nama-ti\" class=\"in\" type=\"text\" placeholder=\"Nama Lengkap\" required>\n    <input id=\"nim-ti\"  class=\"in\" type=\"text\" placeholder=\"NIM\/NIP\" inputmode=\"numeric\" required>\n    <button id=\"btnCek\" class=\"btn\" type=\"submit\">Cek Hasil<\/button>\n  <\/form>\n\n  <div id=\"result\" class=\"rows\">\n    <div class=\"row\"><b>Nama<\/b><span id=\"resNama\">\u2014<\/span><\/div>\n    <div class=\"row\"><b>NIM<\/b><span id=\"resNIM\">\u2014<\/span><\/div>\n    <div class=\"row\"><b>Judul<\/b><span id=\"resJudul\">\u2014<\/span><\/div>\n    <div class=\"row\"><b>Hasil<\/b><span id=\"resHasilBadge\" class=\"badge\">\u2014<\/span><\/div>\n    <a id=\"btnUnduhSuket\" class=\"suket\" href=\"#\" target=\"_blank\" rel=\"noopener\" style=\"display:none\">Unduh Surat Keterangan<\/a>\n    <div id=\"noteSuket\" class=\"muted\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n  \/\/ ===== KONFIG =====\n  const API_BASE = \"https:\/\/script.google.com\/macros\/s\/AKfycbz9Q-aZdWry1DxhjAtsmBPHeIyncA2uZhwuwiune3BTysLv6WYESQjxn7Ck3MdKbzNBuA\/exec\";\n\n  \/\/ ===== ELEM =====\n  const el = {\n    form: document.getElementById('form-turnitin'),\n    nama: document.getElementById('nama-ti'),\n    nim:  document.getElementById('nim-ti'),\n    btn:  document.getElementById('btnCek'),\n    alert: document.getElementById('alert'),\n    status: document.getElementById('statusArea'),\n    resultBox: document.getElementById('result'),\n    resNama: document.getElementById('resNama'),\n    resNIM: document.getElementById('resNIM'),\n    resJudul: document.getElementById('resJudul'),\n    resBadge: document.getElementById('resHasilBadge'),\n    suketBtn: document.getElementById('btnUnduhSuket'),\n    noteSuket: document.getElementById('noteSuket'),\n  };\n\n  \/\/ ===== UI =====\n  const badgeClass = s => isNaN(s) ? 'badge' : s<=20 ? 'badge ok' : s<=30 ? 'badge warn' : 'badge bad';\n  const driveDirect = link => {\n    try{\n      const u = new URL(link);\n      if (!u.hostname.includes('drive.google.com')) return link;\n      const p = u.pathname.split('\/');\n      const idx = p.indexOf('d');\n      let id = (idx!==-1 && p[idx+1]) ? p[idx+1] : (u.searchParams.get('id')||'');\n      return id ? `https:\/\/drive.google.com\/uc?export=download&id=${id}` : link;\n    }catch{ return link; }\n  };\n  const loading = on => {\n    if (on){\n      el.btn.disabled = true;\n      el._btxt = el.btn.textContent;\n      el.btn.innerHTML = 'Memeriksa\u2026 <span class=\"spin\" aria-hidden=\"true\"><\/span>';\n      el.status.textContent = 'Memeriksa data\u2026';\n    } else {\n      el.btn.disabled = false;\n      el.btn.textContent = el._btxt || 'Cek Hasil';\n      el.status.textContent = '';\n    }\n  };\n  const alert = msg => { el.alert.textContent = msg; el.alert.classList.add('show'); };\n  const clearAlert = () => { el.alert.classList.remove('show'); el.alert.textContent=''; };\n\n  \/\/ ===== LOGIC =====\n  function showResult(payload, q){\n    const { nama, Result, suket } = payload;\n    const hasil = Result && typeof Result.hasil==='number' ? Math.round(Result.hasil) : null;\n    const judul = Result && typeof Result.judul==='string' ? Result.judul : '';\n\n    el.resNama.textContent = nama || q.nama || '\u2014';\n    el.resNIM.textContent  = q.nim || '\u2014';\n    el.resJudul.textContent = judul || '\u2014';\n    el.resBadge.className = badgeClass(hasil);\n    el.resBadge.textContent = hasil===null ? '\u2014' : (hasil + '%');\n\n    if (suket && suket.trim()){\n      el.suketBtn.style.display = 'inline-block';\n      el.suketBtn.href = driveDirect(suket.trim());\n      el.noteSuket.textContent = 'Jika tidak otomatis, tautan akan dibuka di tab baru.';\n    }else{\n      el.suketBtn.style.display = 'none';\n      el.suketBtn.removeAttribute('href');\n      el.noteSuket.textContent = '';\n    }\n    el.resultBox.classList.add('show');\n  }\n\n  async function onSubmit(e){\n    e.preventDefault();\n    const nama = (el.nama.value||'').trim();\n    const nim  = (el.nim.value||'').trim();\n    if (!nama || !nim) return alert('Nama dan NIM wajib diisi.');\n\n    clearAlert();\n    el.resultBox.classList.remove('show');\n    loading(true);\n\n    const url = `${API_BASE}?nama=${encodeURIComponent(nama)}&nim=${encodeURIComponent(nim)}&ts=${Date.now()}`;\n    try{\n      const r = await fetch(url, {headers:{'Accept':'application\/json'}});\n      const t = await r.text();\n      const data = (()=>{ try{return JSON.parse(t)}catch{ return null } })();\n\n      if (!r.ok) return alert(`Gagal menghubungi server (HTTP ${r.status}).`);\n      if (!data || typeof data.status!=='string') return alert('Format respon tidak dikenali.');\n\n      if (data.status==='found') showResult(data,{nama,nim});\n      else alert('Data tidak ditemukan. Pastikan Nama & NIM sesuai data pengajuan.');\n    }catch{\n      alert('Kesalahan jaringan\/CORS. Pastikan Web App di-set \u201cAnyone with the link\u201d.');\n    }finally{\n      loading(false);\n    }\n  }\n\n  el.form.addEventListener('submit', onSubmit);\n  el.nim.addEventListener('keydown', ev => { if (ev.key==='Enter') el.form.requestSubmit(); });\n<\/script>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Untuk menjaga keaslian karya ilmiah Dosen dan Mahasiswa, Prodi Ilmu Perpustakaan menyediakan layanan pengecekan Turnitin. Layanan ini membantu sivitas akademika memastikan karya tulis bebas dari&hellip;<\/p>\n","protected":false},"author":2,"featured_media":4195,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3706","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/3706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3706"}],"version-history":[{"count":43,"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/3706\/revisions"}],"predecessor-version":[{"id":4212,"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=\/wp\/v2\/pages\/3706\/revisions\/4212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=\/wp\/v2\/media\/4195"}],"wp:attachment":[{"href":"https:\/\/ilmuperpustakaan.uinsu.ac.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}