14 Penyebab Cat Dinding Mengelupas meski Baru Diaplikasikan Halaman all

0


Ilustrasi cat dinding mengelupas.

Lihat Foto

Ilustrasi cat dinding mengelupas.(SHUTTERSTOCK / Malcomblch)

JAKARTA, KOMPAS.com – Salah satu cara mempercantik rumah tanpa merenovasinya adalah mengecat dinding. Ini membuat tampilan rumah tampak menarik dan segar.

Namun, terkadang cat dinding juga bisa menyebabkan masalah pada hunian seperti mengelupas meski baru dicat. Bahkan, masalah ini turut terjadi pada bangunan-bangunan komersial.

Baca juga: 4 Penyebab Cat Dinding Menggelembung dan Cara Mengatasinya

Biasanya, tanda-tanda cat mengelupas mencakup tampilan cat yang retak, bahkan lepas dengan sendirinya.

Dilansir dari PPD Painting, Kamis (29/9/2022), ada beberapa penyebab cat dinding mengelupas meski baru dicat seperti berikut. 

Kerusakan air

Ilustrasi cat dinding mengelupas.SHUTTERSTOCK / Bezuglova Evgeniia Ilustrasi cat dinding mengelupas. ${response.judul} ]]]]>]]>

Artikel Kompas.id

${response.judul} `; document.querySelector(‘.kompasidRec’).innerHTML = htmlString; } else { document.querySelector(“.kompasidRec”).remove(); } } else { document.querySelector(“.kompasidRec”).remove(); } } }); xhr.open(“GET”, endpoint); xhr.send();

Jika ruangan yang baru dicat baru-baru ini mengalami kerusakan air, kebocoran, atau kelembapan tinggi, ini bisa membuat cat mengelupas karena tidak bisa menempel dengan baik pada permukaan yang basah atau lembap.

Baca juga: 3 Warna Cat Terbaik untuk Kamar Tidur Ramah Anak

Terlalu banyak lapisan cat

Tidak melakukan pengecatan dengan baik juga bisa menjadi penyebab cat mengelupas. Salah satu kebiasaan buruk yang dilakukan saat mengecat dinding adalah menggunakan terlalu banyak lapisan cat.

Walhasil, lapisan cat pada dinding menjadi terlalu tebal. Hal ini juga buruk untuk cat plafon karena berat lapisan cat, ditambah dengan gravitasi, dapat mempercepat proses kerusakan cat.

Lingkungan dengan kelembapan tinggi

Kelembapan tinggi di ruangan berventilasi buruk dapat menyebabkan penumpukan uap air pada permukaan dinding. Walhasil, cat akan menggelembung atau melepuh.

Ketika cat menggelembung atau melepuh, tidak hanya dapat membuat lapisan cat mengelupas, tapu juga merangsang pertumbuhan jamur dari waktu ke waktu.

Baca juga: Cara Mengatasi Cat Tembok Menggelembung dan Mengelupas

Dinding tidak dipersiapkan dengan baik

Permukaan dinding yang hendak dicat harus dipersiapkan dengan baik sebelum proses pengecatan dimulai.

Ketika cat diaplikasikan ke dinding yang belum disiapkan atau tidak rata, ini bisa membuat cat menggelembung dan mengelupas.

Dinding kotor

Ilustrasi cat dinding mengelupas.SHUTTERSTOCK / TWStock Ilustrasi cat dinding mengelupas.

Cat tidak akan menempel pada permukaan yang kotor. Debu, kotoran, atau minyak mencegah cat menempel dengan baik. Mengaplikasikan cat ke dinding yang kotor dapat menyebabkannya menggelembung dan mengelupas.

Untuk itu, bersihkan dinding dengan mengelapnya menggunakan air sabun sebelum mengaplikasikan cat. Setelah itu, seka dinding dengan kain kering dan tunggu hingga benar-benar kering sebelum mengaplikasikan primer dan cat. Untuk primer, pastikan sudah sangat kering sebelum ditimpan lapisan cat.

Baca juga: Ragam Hal yang Menyebabkan Cat Dinding Mengelupas

Suhu tinggi

Penyebab cat dinding mengelupas juga mencakup suhu tinggi. Ini dapat melemahkan sifat perekat cat.

Paparan suhu tinggi selama proses pengeringan cat juga bisa menyebabkan cat mengering lebih cepat dari waktunya normalnya sehingga mencegah lapisan cat merekat dengan benar.

Cat tidak sesuai dengan permukaan

Ilustrasi cat dinding mengelupas.SHUTTERSTOCK / 1EYEman Ilustrasi cat dinding mengelupas.

Beberapa permukaan tidak cocok dilapisi dengan jenis cat tertentu. Beberapa bahan polimer sintetis dapat mencegah cat merekat dengan benar.

Lalu, cat berbasis minyak terpengaruh oleh baja dan beton galvanis. Permukaan kayu dapat menghasilkan minyak alami yang dapat mencegah adhesi cat.

Karena itu, sebaiknya gunakan tukang cat yang sudah berpengalaman untuk mengecat dinding demi menghindari cat mengelupas.

Baca juga: Cat Dinding Warna Hangat dan Warna Dingin, Apa Perbedaannya?

Menggunakan beberapa lapisan yang berbeda

Beberapa jenis cat tidak dapat merekat dengan baik jika diaplikasikan pada satu permukaan yang sama sehingga membuatnya mengelupas.

Misalnya, cat berbasis minyak dan lateks (air). Dua jenis cat ini sebaiknya tidak digunakan secara bersamaan. Untuk menghindari cat mengelupas, selalu gunakan jenis cat yang sama pada suatu permukaan.

Menggunakan cat berkualitas rendah

Beberapa produk cat berkualitas rendah tidak memiliki fleksibilitas dan daya rekat. Akibatnya, tidak mengering atau menempel dengan benar, yang akhirnya mulai mengelupas setelah beberapa saat.

Baca juga: 3 Jenis Finishing untuk Kamar Tidur Ramah Anak 

Jenis cat atau primer salah

Berbagai jenis cat dirancang khusus untuk berbagai jenis permukaan. Ada cat yang hanya bisa dipakai untuk permukaan kayu, plastik, logam, atau beton.

Hal ini juga berlaku untuk primer. Jadi, penggunakan jenis cat atau primer yang salah bisa menyebabkan pengelupasan.

Menggunakan cat kedaluwarsa

Ilustrasi cat dinding mengelupas.SHUTTERSTOCK / LutsenkoLarissa Ilustrasi cat dinding mengelupas.

Sama dengan produk lainnya yang mengandung bahan kimia, cat juga memiliki tanggal kedaluwasa. Beberapa cat ada yang terpisah dan berjamur atau berlumut. Sementara yang lainnya akan membeku.

Untuk mendapatkan hasil akhir sempurna dan mencegah cat mengelupas dalam waktu dekat, sebaiknya gunakan cat sebelum kedaluwarsa. 

Baca juga: 3 Hal yang Perlu Dipertimbangkan Sebelum Membeli Cat Dinding Interior

Terpapar zat korosif

Zat korosif biasanya mengandung asam atau basa yang kuat. Jika zat ini bersentuhan dengan cat, dapat menyebabkan cat dinding menggelembung, retak, dan mengelupas.

Permukaan dinding sangat kering

Kekeringan ekstrem dapat mencegah cat membentuk ikatan perekat yang kuat dengan permukaan dinding sehingga tidak bisa menempel dengan baik. 

Sama dengan mengecat permukaan yang sangat lembap, kekeringan ekstrem dapat membuat lapisan cat yang baru diaplikasikan mengelupas.

Baca juga: 6 Jenis Finishing Cat untuk Mempercantik Dinding Interior Rumah 

Metode pengaplikasian cat kurang tepat

Tidak menggunakan peralatan tepat atau mengaplikasikan lapisan cat terlalu tipis dapat mencegah pembentukan rekatan yang kuat, yang menyatukan molekul cat. Pada akhirnya, akan membuat cat mengelupas.

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. ]]> ]]> { let xhr = new XMLHttpRequest(); xhr.open(infoObj.engine[‘method’], url); xhr.onreadystatechange = function() { if (this.readyState == 4 && this.status >= 200 && this.status < 300) { trackEventGa('AIML Article Recommendation', 'Content Request', 'algsrc=' + infoObj.engine['tracker_algsrc'] + ',site=HOMEY,device=desktop,status=success') resolve(JSON.parse(xhr.response)); } else if (this.readyState == 4 && this.status = 300) { trackEventGa('AIML Article Recommendation', 'Content Request', 'algsrc=' + infoObj.engine['tracker_algsrc'] + ',site=HOMEY,device=desktop,status=fail,response=' + this.status) resolve(null); } } xhr.onerror = function() { resolve(null); } xhr.send(body); }); } /** * General helper function * @param {*} fileUrl string * returns a promise which should resolves to true if all goes well */ function fetchJSFileP(fileUrl) { return new Promise(function(resolve, reject) { var tag = document.createElement("script"); var fst = document.getElementsByTagName("script")[0]; fst.parentNode.insertBefore(tag, fst); tag.onload = function() { resolve(); }; tag.src = fileUrl; }); }; /** * Click handler; A BOUND version is wired up to a particular DOM * element as the click handler * @param {*} url * @param {*} pos * @returns */ function handleClick(jxRecHelper0, url, pos) { /*** * JXRECSDK NOTES 5 of 5 calling * Call clicked(pos) of helper object to report a click * Here pos is the index of the item (starts from 1) */ jxRecHelper0.clicked(pos); //we need the position of the item in the widget // window.open(url); // open in new tab window.location = url; //open in current tab return false; } const cssClasses = { thumbnail_overlay_wrapper: 'wSpec-img-overlay', thumbnail_wrapper: 'wSpec-img', thumbnail: 'lozad', category: 'wSpec-subtitle', title: 'wSpec-title', container: 'wSpec-list', wrapper: 'wSpec-item', wrapper_content: 'wSpec-wrap', text_wrapper: 'wSpec-box', source: 'wSpec-source' }; function createDisplay(rand, container, resultObj, jxRecHelper) { return new Promise(function(resolve, reject) { let widgetWrapper = document.createElement('div'); widgetWrapper.classList.add(cssClasses.container); //OWN container.appendChild(widgetWrapper); let widgetItemArr = []; try { var engine_info = ''; var algsrc = ''; if (resultObj.hasOwnProperty('options')) { if(resultObj.options.group=='jm_kompas'){ engine_info = '&engine=J'; algsrc = 'J'; }else if(resultObj.options.group=='kg_internal'){ engine_info = '&engine=C'; algsrc = 'C'; }else{ engine_info = '&engine=V'; algsrc = 'V'; } } else { engine_info = '&engine=C'; algsrc = 'C'; } var items = resultObj.items; var ads_cm = '[{"url":"https://money.kompas.com/read/2024/12/13/184707426/nikmati-gaya-hidup-lebih-mudah-ini-cara-apply-kartu-kredit-online-lewat-mybca?source=pilihanuntukmu&medium=pos2&campaign=CM","img":"https://asset.kompas.com/crops/uzyhcF4BDQGHPdFLLkndy9SFbIo=/0x0:780x520/1200x800/data/photo/2024/12/13/675c1e4a0b050.jpg","title":"Nikmati Gaya Hidup Lebih Mudah, Ini Cara Apply Kartu Kredit Online lewat myBCA","itemType":"article","duration":"","publishedDate":"","category":"BrandzView","method":"","methodId":"","a":""},{"url":"https://travel.kompas.com/read/2024/12/20/132639727/dubai-shopping-festival-2024-jadi-surga-belanja-untuk-liburan-akhir-tahun?source=pilihanuntukmu&medium=pos5&campaign=CM","img":"https://asset.kompas.com/crops/OJVwyp7Akg5fuxg9FUoFlilDIQA=/0x0:4060x2707/1200x800/data/photo/2024/12/20/6764d8a5a4894.jpg","title":"Dubai Shopping Festival 2024 Jadi Surga Belanja untuk Liburan Akhir Tahun Anda, Tertarik?","itemType":"article","duration":"","publishedDate":"","category":"BrandzView","method":"","methodId":"","a":""}]'; if (ads_cm) { var data_cm = JSON.parse(ads_cm); if (data_cm.length > 1) { var position_2 = data_cm[0]; var position_5 = data_cm[1]; items.splice(1, 0, position_2); items.splice(4, 0, position_5); } } if (items.length > 0) { let counterNews = 0; while (counterNews 14) { return true; } let divid = `recItem-${rand}-${index}`; let itemUrl = item.url; var objArr = {}; objArr[‘divid’] = divid; objArr[‘id’] = jxRecHelper.jxUrlCleaner(itemUrl), objArr[‘pos’] = index; // objArr[‘img’] = item.img; if (resultObj.engine[‘type’] == ‘api-2’) { if (item.category == ‘sponsored’) { objArr[‘type’] = ‘ad’; } else { objArr[‘type’] = ‘page’; } } else { if (item.type == ‘ad’) { objArr[‘type’] = ‘ad’; } else { objArr[‘type’] = ‘page’; } } if (resultObj.engine[‘type’] == ‘api-1’) { objArr[‘algo’] = item.a; // a label to represent the algo used (opsional) } else if (resultObj.engine[‘type’] == ‘api-2’) { objArr[‘algo’] = item.methodId; // a label to represent the algo used (opsional) } if (item.type == ‘ad’) { objArr[‘trackers’] = item.trackers; } widgetItemArr.push(objArr); let class_subtitle = ‘wSpec-subtitle’; if (item.category == ‘BrandzView’) { class_subtitle = ‘wSpec-tag’; } /* note: We have this -rand- thing in the div id (this is just * because want the div id to be unique on the page as * in case more than 1 widget is embedded on the page) */ var recItem = createElement(‘div’, `recItem-${rand}-${index}`, null, [cssClasses.wrapper]); recItem.dataset.index = index; var recItemWrapper = createElement(‘div’, null, null, [cssClasses.wrapper_content]); var imgWrapper = createElement(‘div’, null, null, [cssClasses.thumbnail_wrapper]); var imgElm = createElement(‘img’, null, null, null); imgElm.setAttribute(‘data-src’, item.img); imgElm.setAttribute(‘class’, ‘lozad’); var imgOverlayWrapper = createElement(‘div’, null, null, [cssClasses.thumbnail_overlay_wrapper]); var imgOverlay = createElement(‘img’, null, null, null); imgOverlay.setAttribute(‘data-src’, ‘https://asset.kompas.com/data/logo/logo-kompascom-aiml.png’); imgOverlay.setAttribute(‘class’, ‘lozad’); imgOverlayWrapper.appendChild(imgOverlay); if (item.itemType == ‘video’ && item.hasOwnProperty(‘duration’)) { var videoDuration = createElement(‘div’, null, null, [‘wSpec-duration’, ‘latestDuration’], item.duration); imgWrapper.appendChild(videoDuration); } imgWrapper.appendChild(imgElm); imgWrapper.appendChild(imgOverlayWrapper); var itemCategory = ” if (item.hasOwnProperty(‘category’)) { itemCategory = item.category if (item.itemType == ‘video’) { itemCategory = ‘video’; } } if (resultObj.engine[‘type’] == ‘api-3’) { var categoryDiv = createElement(‘p’, null, null, [class_subtitle], item.section.toLowerCase().charAt(0).toUpperCase() + item.section.toLowerCase().slice(1)); } else { var categoryDiv = createElement(‘p’, null, null, [class_subtitle], itemCategory.toLowerCase().charAt(0).toUpperCase() + itemCategory.toLowerCase().slice(1)); } var tracker_params = resultObj.engine[‘tracker_params’] + engine_info; // checking query params in itemUrl var tempItemUrl = new URL(itemUrl) if (tempItemUrl.search) { tracker_params = tracker_params.replace(‘?’, ‘&’) } if(index == 1 || index == 4){ tracker_params = ”; } // ads if ( (item.hasOwnProperty(‘category’) && item.category == ‘sponsored’) // engine C || (item.hasOwnProperty(‘type’) && item.type == ‘ad’) // engine V || (item.hasOwnProperty(‘section’) && item.section == ‘sponsored’) // engine J ) { var categoryDiv = createElement(‘p’, null, null, [‘wSpec-tag’], ‘Sponsored’); tracker_params = ”; } else if ((item.hasOwnProperty(‘category’) && item.category == ‘Advertorial’)) { var categoryDiv = createElement(‘p’, null, null, [‘wSpec-tag’], item.category); } else { recItem.dataset.url = itemUrl; // button option var buttonOption = createElementFromHTML(`

`); 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=HOMEY,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://kgdata-cdn.s3.ap-southeast-1.amazonaws.com/tracker/p/kompasreco/oval_web_analytics_latest.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://www.kompas.com/homey/read/2022/09/29/145900976/14-penyebab-cat-dinding-mengelupas-meski-baru-diaplikasikan’, widget_id: ‘1000183-6xWeiWZFIM’, type: ‘pages’, container: ‘rekomendasi-konten-pilihan-untukmu-aiml’, keywords: content_tags, title: title, customid: “76”, count: 14, }; this._containerId = this._options.container; this._container = document.getElementById(this._containerId); this._engines = [{“url”:”https://recommendation.jixie.media/v1/recommendation”,”method”:”GET”,”pageurl”:”https://www.kompas.com/homey/read/2022/09/29/145900976/14-penyebab-cat-dinding-mengelupas-meski-baru-diaplikasikan”,”system”:”jx”,”type”:”api-1″,”tracker_params”:”?source=widgetML”,”tracker_algsrc”:”V”,”count”:14,”page_status”:”read”,”excludeitemids”:”20220929145900976″}]; } 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=HOMEY,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: “2022-09-29”, pagecategory: “HOMEY”, 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’) } }) } })



Source

Leave A Reply

Your email address will not be published.