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
Posting Komentar