Mengenal Apa Itu KPR, Jenis, dan Syaratnya Halaman all - Kompas.com (2024)

Kompas.com - Diperbarui 17/12/2023, 21:05 WIB

Nur Jamal Shaid

Penulis

Mengenal Apa Itu KPR, Jenis, dan Syaratnya Halaman all - Kompas.com (1)

Lihat Foto

KPR adalah suatu fasilitas kredit yang diberikan oleh perbankan kepada nasabah perorangan untuk membeli atau memperbaiki rumah.(Dok. iStock)

JAKARTA, KOMPAS.comKPR adalah cara yang umum digunakan oleh sebagian masyarakat untuk memiliki rumah atau properti. Hal ini karena KPR memungkinkan masyarakat untuk membeli properti dengan pembayaran yang lebih terjangkau selama jangka waktu tertentu.

Apa itu KPR?

KPR adalah singkatan dari Kredit Pemilikan Rumah. Sederhananya, KPR adalah suatu fasilitas kredit yang diberikan oleh perbankan kepada nasabah perorangan untuk membeli atau memperbaiki rumah.

Dalam pengertian lain, KPR adalah jenis pinjaman yang biasanya diberikan oleh bank atau lembaga keuangan kepada individu untuk membiayai pembelian rumah atau properti.

Baca juga: Sebanyak 90 Persen Pasokan Bawang Merah di Lampung Ternyata dari Luar Provinsi

Dalam KPR, peminjam atau debitur meminjam sejumlah uang dari bank atau lembaga keuangan untuk membeli rumah atau properti. Selanjutnya, debitur harus membayar angsuran bulanan yang mencakup pembayaran pokok pinjaman dan bunga selama jangka waktu tertentu.

KPR umumnya memiliki jangka waktu yang cukup panjang, dengan suku bunga yang dapat tetap atau berubah.Rumah atau properti yang dibeli dengan KPR biasanya digunakan sebagai jaminan atau agunan untuk pinjaman tersebut.

Saat ini, ada dua jenis KPR yang ada di Indonesia yaitu KPR subsidi dan KPR nonsubsidi.Kedua jenis KPR ini memiliki persyaratan dan kelebihannya masing-masing.

Baca juga: Anak Usaha PLN Indonesia Power Bukukan Pendapatan Tertinggi Rp 1,7 Triliun pada 2022

1. KPR Subsidi

Dilansir dari laman Otoritas Jasa Keuangan (OJK), KPR subsidi adalah suatu kredit yang diperuntukkan kepada masyarakat berpenghasilan menengah ke bawah dalam rangka memenuhi kebutuhan perumahan atau perbaikan rumah yang telah dimiliki.

Bentuk subsidi yang diberikan berupa subsidi meringankan kredit dan subsidi menambah dana pembangunan atau perbaikan rumah. Kredit subsidi ini diatur tersendiri oleh pemerintah, sehingga tidak setiap masyarakat yang mengajukan kredit dapat diberikan fasilitas ini.

Secara umum batasan yang ditetapkan oleh pemerintah dalam memberikan KPR subsidi adalah penghasilan pemohon dan maksimum kredit yang diberikan.

Baca juga: Kepala Bappenas: Sepanjang 2020-2024, Perubahan Iklim Berpotensi Rugikan Ekonomi RI Rp 544 Triliun

2. KPR Non-Subsidi

Adapun KPR Non-Subsidi adalah jenis KPR yang diperuntukkan bagi seluruh masyarakat. Ketentuan KPR jenis ini ditetapkan oleh bank, sehingga penentuan besarnya kredit maupun suku bunga dilakukan sesuai kebijakan bank yang bersangkutan.

Mengenal Apa Itu KPR, Jenis, dan Syaratnya Halaman all - Kompas.com (6)Dok. iStock KPR adalah suatu fasilitas kredit yang diberikan oleh perbankan kepada nasabah perorangan untuk membeli atau memperbaiki rumah.

Persyaratan KPR

Syarat pengajuan KPR pada setiap bank umumnya relatif sama, baik dari sisi administrasi maupun dari sisi penentuan kreditnya. Berikut adalah sejumlah dokumen syarat pengajuan KPR:

  • KTP suami dan atau istri (bila sudah menikah)
  • Kartu Keluarga
  • Keterangan penghasilan atau slip gaji
  • Laporan keuangan (untuk wiraswasta)
  • NPWP Pribadi (untuk kredit di atas Rp 100 juta)
  • SPT PPh Pribadi (untuk kredit di atas Rp 50 juta)
  • Salinan sertifikat induk dan atau pecahan (bila membelinya dari developer)
  • Salinan sertifikat (bila jual beli perorangan)
  • Salinan IMB

sem*ntara, syarat pengajuan KPR khususnya di Bank BTN adalah sebagai berikut:

  • Warga negara Indonesia (WNI).
  • Memiliki e-KTP dan terdaftar di Dukcapil.
  • Berusia minimal 21 tahun atau telah menikah.
  • Berusia maksimal 65 tahun saat KPR berakhir. Namun untuk peserta Asabri yang direkomendasikan oleh YKPP, usia maksimalnya 80 tahun.
  • Pemohon dan pasangan tidak memiliki rumah dan tidak pernah menerima subsidi rumah dari pemerintah, kecuali 2 kali untuk TNI/Polri/PNS yang pindah tugas.
  • Maksimal gaji pokok Rp 4 juta untuk rumah tapak dan Rp 7 juta untuk rumah susun.
  • Memiliki NPWP dan SPT Tahunan PPh orang pribadi sesuai perundang-undangan yang berlaku.
  • Pengembang wajib terdaftar di Kementerian PUPR.
  • Spesifikasi rumah sesuai dengan peraturan pemerintah.

Baca juga: Medsos hingga Marketplace, Solusi Penjualan Online UMKM Cepat Melejit

Selain itu, nasabah juga harus melengkapi syarat dokumen pengajuan KPR BTN, yaitu:

  • Formulir Pengajuan Kredit dilengkapi pas foto terbaru pemohon dan pasangan. Fotokopi KTP atau kartu identitas.
  • Fotokopi Kartu Keluarga.
  • Fotokopi surat nikah atau cerai.
  • Slip gaji terakhir atau Surat Keterangan Penghasilan
  • Fotokopi SK Pengangkatan Pegawai Tetap atau Surat Keterangan Kerja.
  • SIUP, TDP.
  • Laporan atau catatan Keuangan 3 bulan terakhir.
  • Fotokopi izin praktek.
  • Rekening Koran 3 bulan terakhir.
  • FC NPWP/SPT PPh 21.
  • Surat pernyataan penghasilan yang ditandatangani pemohon di atas materai dan diketahui oleh pimpinan instansi tempat bekerja atau kepala desa/lurah setempat untuk masyarakat berpenghasilan tidak tetap
  • Surat pernyataan tidak memiliki rumah yang diketahui instansi tempat bekerja atau lurah tempat KTP diterbitkan.
  • Surat Keterangan Domisili dari kelurahan setempat apabila tidak bertempat tinggal sesuai KTP.
  • Surat Keterangan Pindah Tugas untuk TNI/Polri/PNS yang mengajukan subsidi KPR BTN kedua.

Baca juga: Pesan Bahlil ke Mahasiswa Undip: Kalau Cita-cita Jadi Karyawan, Lebih Baik Pulang Kampung Sekarang...

Biaya proses KPR

Pada umumnya fasilitas KPR pemohon akan dikenakan beberapa biaya, di antaranya biaya appraisal, biaya notaris, provisi bank, biaya asuransi kebakaran, biaya premi asuransi jiwa selama masa kredit.

Metode perhitungan bunga KPR

Secara umum dikenal tiga metode perhitungan bunga yaitu flat, efektif, serta anuitas tahunan dan bulanan. Namun dalam praktiknya, metode suku bunga yang digunakan dalam KPR adalah suku bunga efektif atau anuitas.

Suku bunga efektif adalah suku bunga yang diperhitungkan dari sisa jumlah pokok pinjaman setiap bulan seiring dengan menyusutnya utang yang sudah dibayarkan. Artinya semakin sedikit pokok pinjaman, semakin sedikit juga suku bunga yang harus dibayarkan.

Sedangkan suku bunga anuitas adalah metode yang mengatur jumlah angsuran pokok ditambah angsuran bunga yang dibayar agar sama setiap bulan.

Dalam perhitungan anuitas, porsi bunga pada masa awal sangat besar sedangkan porsi angsuran pokok sangat kecil. Mendekati berakhirnya masa kredit, keadaan akan menjadi berbalik. Porsi angsuran pokok akan sangat besar sedangkan porsi bunga menjadi lebih kecil.

Mengenal Apa Itu KPR, Jenis, dan Syaratnya Halaman all - Kompas.com (7)Dok. iStock/Wasan Tita KPR adalah suatu fasilitas kredit yang diberikan oleh perbankan kepada nasabah perorangan untuk membeli atau memperbaiki rumah.

Hal-hal yang perlu diperhatikan sebelum mengambil KPR

Pertama, jika membeli rumah dari perorangan, pastikan bahwa sertifikat yang ada tidak bermasalah dan IMB sesuai dengan kondisi bangunan yang ada.

Kedua, apabila membeli rumah dari developer, pastikan bahwa developer dimaksud telah mempunyai ijin-ijin, antara lain:

  • Ijin peruntukan tanah: Ijin Lokasi, Aspek Penata-gunaan lahan, Site Plan yang telah disahkan, dan sebagainya
  • Prasarana sudah tersedia
  • Kondisi tanah matang
  • Sertifikat tanah minimal SHGB atau HGB Induk atas nama developer
  • IMB Induk

Ketiga, kenali reputasi penjual (perorangan atau developer). Jangan melakukan transaksi jual beli di bawah tangan.Artinya apabila rumah yang akan dibeli masih dalam status dijaminkan di bank, maka lakukanlah pengalihan kredit pada bank yang bersangkutan dan dibuat akte jual beli di hadapan notaris.

Jangan sekali-kali melakukan transaksi pengalihan kredit di bawah tangan atau hanya berdasarkan kepercayaan saja dan tanda buktinya hanya berupa kwitansi biasa, karena bank tidak mengakui transaksi yang seperti ini.

Demikian penjelasan singkat mengenai apa itu KPR, jenis, syarat, dan hal-hal yang perlu diperhatikan sebelum memutuskan mengambil KPR.

Simak breaking news dan berita pilihan kami langsung di ponselmu. Pilih saluran andalanmu akses berita Kompas.com WhatsApp Channel : https://www.whatsapp.com/channel/0029VaFPbedBPzjZrk13HO3D. Pastikan kamu sudah install aplikasi WhatsApp ya.

Tag

  • KPR Subsidi
  • Syarat pengajuan KPR
  • Apa itu KPR
  • kpr adalah
Lihat Money Selengkapnya
  • Simak Hal yang Perlu Diperhatikan Sebelum Mengajukan KPR
  • Kapan Waktu yang Tepat Punya KPR?
  • Pekerja Informal Termasuk Ojol Bisa Punya Rumah lewat KPR Tapera
  • Cara dan Syarat Mengajukan KPR BPJS Ketenagakerjaan
  • Permudah Masyarakat Punya Rumah, BTN Gelar Akad KPR 10.000 Unit Rumah Serentak

Video rekomendasi

Video lainnya

Pilihan Untukmu

`); var wSpecStop = createElementFromHTML(`

Konten disembunyikan.
Muat ulang halaman untuk perbarui rekomendasi.

`); reactionPopup.querySelector('.buttonShare').setAttribute('data-title', item.title); reactionPopup.querySelector('.buttonShare').setAttribute('data-url', itemUrl); reactionPopup.querySelector('.buttonShare').setAttribute('data-campaign', 'AIML_Widget_Desktop'); let userFeedback = new UserFeedback(resultObj.engine['tracker_algsrc'], itemUrl + tracker_params, jxRecHelper, index); reactionPopup.querySelector('.buttonBookmark').addEventListener('click', function() { do_bookmark(itemUrl, index, userFeedback); }); reactionPopup.querySelector('.buttonShare').addEventListener('click', function() { userFeedback.event('share'); }); reactionPopup.querySelector('.buttonNotInterest').addEventListener('click', function() { if (getCookie('kmps_usrid')) { hideThisArt(this); userFeedback.event('not-interested'); } else { const parentAction = this.parentElement.parentElement.parentElement if (!!parentAction) { let indexElement = parentAction.getAttribute('data-index') if (indexElement != 'undefined') { localStorage.setItem('reaction_not_interest_temp', JSON.stringify({ urlpage: items[indexElement].url })) } } window.location.href = "https://account.kompas.com/login/a29tcGFz/" + btoa(window.location.href); } }); /** * trigger action "userFeedback" that user not interest item before, when not interest without login */ if (getCookie('kmps_usrid') && localStorage.getItem('reaction_not_interest_temp')) { const tempUrlNotInterest = JSON.parse(localStorage.getItem('reaction_not_interest_temp')) if (itemUrl == tempUrlNotInterest.urlpage) { userFeedback.event('not-interested'); localStorage.removeItem('reaction_not_interest_temp'); } } wSpecStop.querySelector('.wSpec-stop-undo').addEventListener('click', function() { showThisArt(this); userFeedback.event('un-not-interested'); }); recItem.appendChild(buttonOption); recItem.appendChild(reactionPopup); recItem.appendChild(wSpecStop); } var recItemWrapperA = createElement('a', null, null, null); recItemWrapperA.setAttribute('href', itemUrl + tracker_params); var titleDiv = createElement('h4', null, null, [cssClasses.title]); var titleTextNode = document.createTextNode(item.title); if (item.itemType == 'video') { var iconVideo = createElement('div', null, null, ['icoInline', 'icoVideo']); iconVideo.style.marginRight = '5px'; titleDiv.appendChild(iconVideo); } titleDiv.appendChild(titleTextNode); var sourceDiv = null; if (item.hasOwnProperty('method')) { sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type'] + ' . ' + item.method.toUpperCase()); } else { var sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type']); } var textWrapper = createElement('div', null, null, [cssClasses.text_wrapper]); textWrapper.appendChild(categoryDiv); textWrapper.appendChild(titleDiv); textWrapper.appendChild(sourceDiv); recItemWrapper.appendChild(imgWrapper); recItemWrapper.appendChild(textWrapper); recItemWrapperA.appendChild(recItemWrapper); recItem.appendChild(recItemWrapperA); widgetWrapper.appendChild(recItem); // hook up the click handler for this item // recItem.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); recItemWrapperA.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); }); } // end while var endDate = new Date(); var loadtime = (endDate.getTime() - startDate.getTime()); trackEventGa('AIML Article Recommendation', 'Content Loaded', 'algsrc='+algsrc+',site=MONEY,device=desktop,loadtime=' + loadtime) let domain = window.location.hostname; if(domain=='www.kompas.com'){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "Gues"; let subs_type = ""; let is_lgn = 0; let engine = algsrc; if(getCookie('kmps_usrid')){is_lgn=1}; let time_load = loadtime; resolve(); /*** * JXRECSDK NOTES 3 of 5 - * pass all the info about the items to the rec helper * each one is an object: ALL MANDATORY * div * id * pos */ jxRecHelper.items(widgetItemArr); /*** * JXRECSDK NOTES 4 of 5 - * Call the ready() of the helper object when the recommendation * results have been populated to the widget * (This will register the action=ready event) */ if (resultObj.engine['type'] == 'api-1') { jxRecHelper.ready(resultObj.options.algo + ":" + resultObj.options.version); } else { jxRecHelper.ready(resultObj.engine['type']); } } else { jxRecHelper.error(204); console.error("Error: no recommendation items"); return; } } catch (err) { jxRecHelper.error(901); console.log(err.stack); let domain = window.location.hostname; if(domain=='www.kompas.com'){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "Gues"; let subs_type = "" let is_lgn = 0; let engine = algsrc; if(getCookie('kmps_usrid')){is_lgn=1}; let endDate = new Date(); let time_load = (endDate.getTime() - startDate.getTime()); } }); } const _jxRecSdkURL = 'https://scripts.jixie.media/jxrecsdk.1.0.min.js'; var startDate = new Date(); class OneWidget { constructor() { //this is also the one we will pass to the JX rec helper object when //we instantiate it: //In this implementation most of these come from the options obj //on the publisher page. this._options = { accountid: '9262bf2590d558736cac4fff7978fcb1', pageurl: 'https://money.kompas.com/read/2023/08/21/223700126/mengenal-apa-itu-kpr-jenis-dan-syaratnya', widget_id: '1000183-6xWeiWZFIM', type: 'pages', container: 'rekomendasi-konten-pilihan-untukmu-aiml', keywords: content_tags, title: title, customid: "26", count: 14, }; this._containerId = this._options.container; this._container = document.getElementById(this._containerId); this._engines = [{"url":"https:\/\/recommendation.kgdata.dev\/rec\/kompascom\/api\/v2\/recommendation\/item","method":"POST","pageurl":"https:\/\/money.kompas.com\/read\/2023\/08\/21\/223700126\/mengenal-apa-itu-kpr-jenis-dan-syaratnya","system":"kg","type":"api-2","tracker_params":"?source=widgetML","tracker_algsrc":"C","count":14,"page_status":"read","excludeitemids":["20230821223700126"],"multiFormat":true}]; } kickOff() { startDate = new Date(); const rand = Math.floor(Math.random() * 1000); /*const randSystem = Math.floor(Math.random() * 3); this._engine = this._engines[randSystem] if (location.hostname.indexOf('lestari') != -1) { this._engine = this._engines[1] }*/ this._engine = this._engines[0]; this._options.system = this._engine['system'] trackEventGa('AIML Article Recommendation', 'Widget load', 'algsrc=' + this._engine['tracker_algsrc'] + ',site=MONEY,device=desktop') let promJXSDK = fetchJSFileP(_jxRecSdkURL); let thisObj = this; // first we wait on the JX REC SDK to be loaded and initialized let recHelperObj = null; let recResults = null; promJXSDK .then(function() { /*** * JXRECSDK NOTES 1 of 5 - INSTANTIATION OF A JX REC HELPER OBJECT * Call this AFTER JX REC SDK is loaded but BEFORE you call your REC * backend. * * param: MANDATORY options object * options object must at a minimal have * accountid: get from jixie * widgetid: get from jixie * container: DIV ID of the destination div to house the widget * (for jixie widget this is just the options object passed from the page) * * (This will also register the action=load event) */ recHelperObj = jxRecMgr.createJxRecHelper(thisObj._options); let basicInfo = thisObj._options; basicInfo.engine = thisObj._engine if (basicInfo.engine.type == 'api-1') { var options = { count: basicInfo['count'], adpositions: "", keywords: basicInfo['keywords'], title: basicInfo['title'], date_published: "2023-08-21", pagecategory: "MONEY", algo: "mixed" }; if(getCookie('kmps_usrid')){ var kg = { pagetype:basicInfo.engine.page_status, uid:getCookie('kmps_usrid'), ukid:getCookie('kmp_uid') } if(basicInfo.engine.page_status=='read'){ kg['excludeitemids'] = basicInfo.engine.excludeitemids; kg['multiFormat'] = true; } options['additional'] = { kg:kg }; } return recHelperObj.getJxRecommendations(options); } else { return fetchRecommendationsP(basicInfo, recHelperObj.getJxUserInfo()); } }) .then(function(resp) { if (thisObj._engine.type == 'api-3') { recResults = new Object recResults.items = resp.docs.result; } else { recResults = resp; } recResults.engine = thisObj._engine; if (!resp || !recResults.items || recResults.items.length == 0) { /*** * JXRECSDK NOTES 2 of 5 - * Call the error() function on the recHelper when either an error * has occured in the fetching or there are no recommended items * * (This will register the action=error event) */ recHelperObj.error(204); throw "no recommendation results"; } }) .then(function() { // everything is ready (recommendation results, css): document.getElementById("rekomendasi-konten-pilihan-untukmu-aiml").classList.remove("-loading"); document.querySelector('.wSpec-list').remove(); createDisplay(rand, thisObj._container, recResults, recHelperObj) .then(function() { toggleDropdown(); //observe lozad lozad('.lozad', { load: function(el) { el.src = el.dataset.src; el.onload = function() { el.classList.add('fade') } } }).observe() }) }) .catch(function(error) { console.log(`Unable to create recommendations widget ${error.stack} ${error.message}`); }); } } var limit_gtm_ready = 1; function check_gtm_ready() { if ('ga' in window) { // create a new instance of our widget based on the options const newW = new OneWidget(); newW.kickOff(); } else { const timeout_gtm_ready = setTimeout(check_gtm_ready, 500) limit_gtm_ready += 1; if (limit_gtm_ready > 10) { clearTimeout(timeout_gtm_ready); const newW = new OneWidget(); newW.kickOff(); } } } check_gtm_ready() document.querySelector('.wSpec-secret').addEventListener('click', function(e) { e.preventDefault(); let wSl = document.querySelectorAll('.wSpec-source'); if (wSl.length > 0) { for (let i = 0; i < wSl.length; i++) { wSl[i].classList.toggle('show') } } }) function trackEventGa(category, action, label) { if ("ga" in window) { ga(function() { tracker = ga.getAll()[0]; if (tracker) { tracker.send("event", category, action, label); console.log('track event ', category, action, label) } }) } } function formBody(obj) { let formBody = []; for (var property in obj) { let encodedKey = encodeURIComponent(property); let encodedValue = encodeURIComponent(obj[property]); formBody.push(encodedKey + "=" + encodedValue); } return formBody.join("&"); } function getCookie(name) { var name = name + '='; var cookies = decodeURIComponent(document.cookie).split(';'); for (var i = 0; i < cookies.length; i++) { var c = cookies[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } } function get_guid(url) { const videoPath = url.match(/\/watch\/(\d+)/); if (videoPath) { return `video.${videoPath[1]}`; } let arrayUrl = url.split('/'); let readPath = arrayUrl.indexOf('read'); if (arrayUrl[readPath + 1] == 'xml') { readPath += 1; } let year = arrayUrl[readPath + 1]; let month = arrayUrl[readPath + 2]; let date = arrayUrl[readPath + 3]; let id = arrayUrl[readPath + 4]; let guid = `.xml.${year}.${month}.${date}.${id}`; return guid; } function toggleDropdown() { let tdd = document.querySelectorAll('[data-dropdown]') if (!!tdd) { tdd.forEach((el) => { el.addEventListener('click', function() { el.parentElement.classList.toggle('-active') let saved = el.parentElement.getAttribute('data-saved') let kmps_usrid = getCookie('kmps_usrid'); if (kmps_usrid && !saved && el.parentElement.classList.contains('-active')) { let url = el.parentElement.getAttribute('data-url'); let guid = get_guid(url); check_bookmark( kmps_usrid, guid ).then(function(resp) { if (resp.hasOwnProperty('total_data')) { if (resp.total_data > 0) { el.parentElement.querySelector('.buttonBookmark').classList.add('-active'); el.parentElement.querySelector('.buttonBookmark').innerHTML = 'Hapus dari tersimpan'; el.parentElement.setAttribute('data-saved', 'true'); } else { el.parentElement.setAttribute('data-saved', 'false'); } } }) } }) document.addEventListener("click", function(e) { // console.log(e.target) if (el.contains(e.target)) { // console.log(tdd) } else { el.parentElement.classList.remove('-active') } }); }); } } function check_bookmark(kmps_usrid, guid) { let url = `https://api.kompas.com/2021/reaction/bookmark/list?kmps_usrid=${kmps_usrid}&guid=${guid}`; return new Promise(function(resolve, reject) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { resolve(JSON.parse(this.responseText)) } }; xmlhttp.open("GET", url, true); xmlhttp.send(); }); } function do_bookmark(pageurl, pos, userFeedback) { const wSpecItem = document.querySelector(`.wSpec-item[data-index="${pos}"]`); const btnBookmark = wSpecItem.querySelector('.buttonBookmark'); const kmps_usrid = getCookie('kmps_usrid'); const guid = get_guid(pageurl); const type = pageurl.match(/\/watch\/(\d+)/) ? 'video' : 'article'; if (kmps_usrid) { if (btnBookmark.classList.contains('-active')) { set_unbookmark({ guid: guid, kmps_usrid: kmps_usrid, type: type }).then(function(resp) { btnBookmark.classList.remove('-active'); btnBookmark.innerHTML = 'Simpan artikel'; reactionToast('Artikel berhasil dihapus dari list yang disimpan'); userFeedback.event('un-save'); }).catch(function(resp) { // message: "Data doesn't exists" if (resp.hasOwnProperty('message') && resp.message.includes('exist')) { btnBookmark.classList.remove('-active'); btnBookmark.innerHTML = 'Simpan artikel'; reactionToast('Artikel berhasil dihapus dari list yang disimpan'); } }) } else { const user_bookmark_url = "https://activity.kompas.com/saved?order=desc"; set_bookmark({ guid: guid, kmps_usrid: kmps_usrid, type: type, publisher: 'kompas', platform: 'desktop' }).then(function(resp) { btnBookmark.classList.add('-active'); btnBookmark.innerHTML = 'Hapus dari tersimpan'; reactionToast('Artikel berhasil disimpan', user_bookmark_url); userFeedback.event('save'); }).catch(function(resp) { // message: "Data already exist" if (resp.hasOwnProperty('message') && resp.message.includes('exist')) { btnBookmark.classList.add('-active'); btnBookmark.innerHTML = 'Hapus dari tersimpan'; reactionToast('Artikel berhasil disimpan', user_bookmark_url); } }) } } else { const login_url = "https://account.kompas.com/login/a29tcGFz/" + btoa(window.location.href); window.location.href = login_url; } } function set_bookmark(data) { const url = "https://api.kompas.com/2021/reaction/bookmark/add"; return new Promise(function(resolve, reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 201) { resolve(JSON.parse(this.responseText)); } else if (this.readyState == 4 && this.status == 400) { reject(JSON.parse(this.responseText)); } }; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send(formBody(data)); }); } function set_unbookmark(data) { const url = "https://api.kompas.com/2021/reaction/bookmark/delete"; return new Promise(function(resolve, reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { resolve(JSON.parse(this.responseText)); } else if (this.readyState == 4 && this.status == 400) { reject(JSON.parse(this.responseText)); } }; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send(formBody(data)); }); } class UserFeedback { constructor(engine, pageurl, jxRecHelper, pos) { this.engine = engine; this.pageurl = pageurl; this.jxRecHelper = jxRecHelper; this.pos = pos; } event(feedback) { if (this.engine == 'C') { const xmlhttp = new XMLHttpRequest(); let params = { domain: 'kompas.com', ce_userid: getCookie('kmps_usrid'), ce_sessionid: getCookie('ukid'), ce_pageurl: this.pageurl, engine: 'C', ce_feedback: feedback } xmlhttp.open("GET", 'https://apis.kgdata.dev/v1/aiml/feedback-widgetml' + formatParams(params)); xmlhttp.send(); } else if (this.engine == 'V') { if (feedback == 'share') { this.jxRecHelper.shared(this.pos); } else if (feedback == 'save') { this.jxRecHelper.bookmarked(this.pos); } else if (feedback == 'not-interested') { this.jxRecHelper.hidden(this.pos); } else if (feedback == 'un-not-interested') { this.jxRecHelper.unhidden(this.pos); } } } } function formatParams(params) { return "?" + Object .keys(params) .map(function(key) { return key + "=" + encodeURIComponent(params[key]) }) .join("&") } document.addEventListener("click", function(e){ let dx = document.querySelectorAll('[data-dropdown]') if(dx) { dx.forEach(function(el){ if(el.contains(e.target)) { el.parentElement.classList.toggle('-active') } else { el.parentElement.classList.remove('-active') } }) } })

Lihat Semua
  • TTS Eps 137: Yuk Lebaran
  • TTS Eps 136: Takjil Khas di Indonesia
  • TTS Eps 135: Serba Serbi Ramadhan
  • Games Permainan Kata Bahasa Indonesia
  • TTS - Serba serbi Demokrasi
  • TTS Eps 130 - Tebak-tebakan Garing
  • TTS - Musik Yang Paling Mengguncang


Mengenal Apa Itu KPR, Jenis, dan Syaratnya Halaman all - Kompas.com (2024)

References

Top Articles
Latest Posts
Article information

Author: Rev. Porsche Oberbrunner

Last Updated:

Views: 5862

Rating: 4.2 / 5 (53 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Rev. Porsche Oberbrunner

Birthday: 1994-06-25

Address: Suite 153 582 Lubowitz Walks, Port Alfredoborough, IN 72879-2838

Phone: +128413562823324

Job: IT Strategist

Hobby: Video gaming, Basketball, Web surfing, Book restoration, Jogging, Shooting, Fishing

Introduction: My name is Rev. Porsche Oberbrunner, I am a zany, graceful, talented, witty, determined, shiny, enchanting person who loves writing and wants to share my knowledge and understanding with you.