Cara Cek Status SPTJM Kampus Merdeka - Revesery -->

Cara Cek Status SPTJM Kampus Merdeka

Cara Cek Status SPTJM dan SR Magang Kampus Merdeka - Surat Pernyataan Tanggung Jawab Mutlak (SPTJM) adalah salah satu berkas yang harus dikumpulkan oleh mahasiswa sebelum mendaftar dalam program.

part ternyesek tahun ini masih dimenangkan oleh: ga lolos msib cuma karena salah upload file sptjm

baru inget belum ngambil sptjm

dari awal coba msib pertama kali dan terakhir tp gagal grgr sptjm ketolak pdhl ini ngikutin format dr kampus yg nyatanya beda sm format msib

Masih kasus yang sama, gak eligible di berkas MSIB Batch 4.

Di sini posisi tetehnya SPTJM udah verified tapi SR masih on review. 

Heran gasih? Artinya berkasnya belum selesai diperiksa tapi udah dinyatakan gak eligible:((

maaf ada yang pernah ngalamin jg ga daftar msib surat rekomendasi sm sptjm nya di rejected? itu ga bakal lolos atau nanti pihak mitra nya nghubungin ya semisal kita lolos?

Cara Cek Status SPTJM Kampus Merdeka

Join Discord: Here

Tutorial:

1. Buka situs web https://kampusmerdeka.kemdikbud.go.id menggunakan desktop

2. Pastikan bahwa kamu telah login

3.Buka devtools di browser kamu dengan menggunakan

- Untuk Chrome, gunakan shortcut CTRL + SHIFT + J (CMD + OPTION + J)

- Untuk browser lain, klik kanan, inspect, lalu cari tab console

4. Tempel kode yang dilampirkan di bawah, lalu tekan enter.

Script 1:

const printErrorShouldLoginBefore = () => {
  console.log(
    '%cError, script failed to parse your data',
    'font-size: 18px; color: #f00; background: #000;'
  );
  throw new Error('NOT_LOGGED_IN');
};

const printGenericError = (err) => {
  console.log(
    `%cError: ${err}`,
    'font-size: 18px; color: #f00; background: #000;'
  );
  throw err;
};

const currentCycle = 5;

const userLocalKey = `@mkbm/manager/user`;
const storageData = localStorage.getItem(userLocalKey);
if (!storageData) {
  printErrorShouldLoginBefore();
}
const storageDataParsed = JSON.parse(storageData);
if (!storageDataParsed) {
  printErrorShouldLoginBefore();
}
const token = storageDataParsed?.value?.token;
if (!token) {
  printErrorShouldLoginBefore();
}

const abortController = new AbortController();

const getActiveDocuments = async () => {
  const resp = await fetch(
    'https://api.kampusmerdeka.kemdikbud.go.id/v1alpha1/documents?type=SPTJM,SURAT_REKOMENDASI&programs=Magang',
    {
      signal: abortController.signal,
      headers: {
        Authorization: `Bearer ${token}`,
      },
    }
  ).then((resp) => resp.json());
  const docs = resp.data;
  const mapDocumentByType = {};
  docs.forEach((doc) => {
    if (!(doc.type in mapDocumentByType)) {
      mapDocumentByType[doc.type] = [];
    }

    doc.cycle_int = Number.parseInt(doc.cycle);
    mapDocumentByType[doc.type].push(doc);
  });

  return mapDocumentByType;
};

const getDocumentLatestCycle = (currentCycle, data) => {
  const sortedData = [...data].sort(
    (docA, docB) => docB.cycle_int - docA.cycle_int
  );
  return sortedData.find((doc) => doc.cycle_int <= currentCycle);
};

const getUserDocumentStatus = async (docId, docType) => {
  const resp = await fetch(
    `https://api.kampusmerdeka.kemdikbud.go.id/v1alpha1/documents/${docId}/users`,
    {
      headers: {
        Authorization: `Bearer ${token}`,
      },
    }
  ).then((resp) => resp.json());

  const status = resp?.data?.status;
  if (!status) {
    return `DOKUMEN ${docType} TIDAK DAPAT DITEMUKAN`;
  }

  return status;
};

const main = async () => {
  try {
    const documentMapped = await getActiveDocuments();
    const docsSPTJM = documentMapped['SPTJM'];
    const docsSR = documentMapped['SURAT_REKOMENDASI'];

    if (!docsSPTJM || !docsSR) {
      throw 'data SPTJM atau SURAT REKOMENDASI tidak ditemukan';
    }

    const validDocSPTJM = getDocumentLatestCycle(currentCycle, docsSPTJM);
    const validDocsSR = getDocumentLatestCycle(currentCycle, docsSR);

    if (!docsSPTJM || !docsSR) {
      throw 'data SPTJM atau SURAT REKOMENDASI tidak ditemukan';
    }

    const sptjmId = validDocSPTJM.id;
    const srId = validDocsSR.id;
    const statusUserSptjm = await getUserDocumentStatus(sptjmId, 'SPTJM');
    const statusUserSr = await getUserDocumentStatus(srId, 'SURAT REKOMENDASI');

    console.log(
      `%cstatus SPTJM kamu adalah %c${statusUserSptjm}`,
      'font-size: 24px; color: black; background: white;',
      `font-size: 30px; background: ${
        statusUserSptjm === 'VERIFIED'
          ? 'green'
          : statusUserSptjm === 'REJECTED'
          ? 'red'
          : 'blue'
      }; color: white;`
    );
    console.log(
      `%cstatus SURAT REKOMENDASI kamu adalah %c${statusUserSr}`,
      'font-size: 24px; color: black; background: white;',
      `font-size: 30px; background: ${
        statusUserSr === 'VERIFIED'
          ? 'green'
          : statusUserSr === 'REJECTED'
          ? 'red'
          : 'blue'
      }; color: white;`
    );
  } catch (err) {
    printGenericError(err);
  }
};

main();


Contoh ketika dokumen kalian verified





Script 2

const printErrorShouldLoginBefore = () => {
  console.log(
    '%cError, script failed to parse your data',
    'font-size: 18px; color: #f00; background: #000;'
  );
  throw new Error('NOT_LOGGED_IN');
};

const printGenericError = (err) => {
  console.log(
    `%cError: ${err}`,
    'font-size: 18px; color: #f00; background: #000;'
  );
  throw err;
};

const currentCycle = 4;

const userLocalKey = `@mkbm/manager/user`;
const storageData = localStorage.getItem(userLocalKey);
if (!storageData) {
  printErrorShouldLoginBefore();
}
const storageDataParsed = JSON.parse(storageData);
if (!storageDataParsed) {
  printErrorShouldLoginBefore();
}
const token = storageDataParsed?.value?.token;
if (!token) {
  printErrorShouldLoginBefore();
}

const abortController = new AbortController();

const getActiveDocuments = async () => {
  const resp = await fetch(
    'https://api.kampusmerdeka.kemdikbud.go.id/v1alpha1/documents?type=SPTJM,SURAT_REKOMENDASI&programs=Studi%20Independen',
    {
      signal: abortController.signal,
      headers: {
        Authorization: `Bearer ${token}`,
      },
    }
  ).then((resp) => resp.json());
  const docs = resp.data;
  const mapDocumentByType = {};
  docs.forEach((doc) => {
    if (!(doc.type in mapDocumentByType)) {
      mapDocumentByType[doc.type] = [];
    }

    doc.cycle_int = Number.parseInt(doc.cycle);
    mapDocumentByType[doc.type].push(doc);
  });

  return mapDocumentByType;
};

const getDocumentLatestCycle = (currentCycle, data) => {
  const sortedData = [...data].sort(
    (docA, docB) => docB.cycle_int - docA.cycle_int
  );
  return sortedData.find((doc) => doc.cycle_int <= currentCycle);
};

const getUserDocumentStatus = async (docId, docType) => {
  const resp = await fetch(
    `https://api.kampusmerdeka.kemdikbud.go.id/v1alpha1/documents/${docId}/users`,
    {
      headers: {
        Authorization: `Bearer ${token}`,
      },
    }
  ).then((resp) => resp.json());

  const status = resp?.data?.status;
  if (!status) {
    return `DOKUMEN ${docType} TIDAK DAPAT DITEMUKAN`;
  }

  return status;
};

const main = async () => {
  try {
    const documentMapped = await getActiveDocuments();
    const docsSPTJM = documentMapped['SPTJM'];
    const docsSR = documentMapped['SURAT_REKOMENDASI'];

    if (!docsSPTJM || !docsSR) {
      throw 'data SPTJM atau SURAT REKOMENDASI tidak ditemukan';
    }

    const validDocSPTJM = getDocumentLatestCycle(currentCycle, docsSPTJM);
    const validDocsSR = getDocumentLatestCycle(currentCycle, docsSR);

    if (!docsSPTJM || !docsSR) {
      throw 'data SPTJM atau SURAT REKOMENDASI tidak ditemukan';
    }

    const sptjmId = validDocSPTJM.id;
    const srId = validDocsSR.id;
    const statusUserSptjm = await getUserDocumentStatus(sptjmId, 'SPTJM');
    const statusUserSr = await getUserDocumentStatus(srId, 'SURAT REKOMENDASI');

    console.log(
      `%cstatus SPTJM kamu adalah %c${statusUserSptjm}`,
      'font-size: 24px; color: black; background: white;',
      `font-size: 30px; background: ${
        statusUserSptjm === 'VERIFIED'
          ? 'green'
          : statusUserSptjm === 'REJECTED'
          ? 'red'
          : 'blue'
      }; color: white;`
    );
    console.log(
      `%cstatus SURAT REKOMENDASI kamu adalah %c${statusUserSr}`,
      'font-size: 24px; color: black; background: white;',
      `font-size: 30px; background: ${
        statusUserSr === 'VERIFIED'
          ? 'green'
          : statusUserSr === 'REJECTED'
          ? 'red'
          : 'blue'
      }; color: white;`
    );
  } catch (err) {
    printGenericError(err);
  }
};

main();


5. Silahkan tunggu dan nanti hasilnya bakal keluar

6. kalo keterima bakal kayak gini: 


Sekian Cara Cek Status SPTJM Kampus Merdeka


Ada pertanyaan? Silahkan komentar

Posting Komentar

Revesery.com

Revesery.com

download file ini untuk mencoba: 

Revesery.com

Revesery.com



Revesery Store

⭐️ Rating Review Google: Rp3.800/satuan

⭐️ Netflix: Rp39.000/bulan

Keunggulan:

✅Buzzer 100% Asli Orang Indo

✅Gratis Quality Control

✅Dapet report / laporan dari awal sampe akhir

✅Garansi 14 hari, isi ulang sampe full

udah paket lengkap bintang + review, terima bersih tinggal kirim link ajaπŸ˜ŠπŸ™

πŸ“² Order via WA (fast respon)


Jika kalian penasaran, kalian bisa mencoba produk dibawah ini:

 Download ==>>