Postingan

Menampilkan postingan dari Mei, 2023

Manajemen Pekerjaan menggunakan Google Sheets

Gambar
Latar Belakang Salah satu kelemahan penulis adalah memanajemen pekerjaan. Hal ini karena penulis sering lupa, dan jika telah fokus ke satu pekerjaan, pekerjaan yang lain, yang penulis tinggalkan sebelumnya bisa lupa. Dan kalaupun memulai, bisa jadi dari awal. Dulu, ketika pekerjaan penulis hanya freelance pada aplikasi Edugameapp.com, penulis dapat konsentrasi dan pekerjaan hanya memiliki satu cabang, dan tahap penyelesaiannya mudah diingat, tanpa perlu dicatat. Sedangkan ketika bekerja disuatu instansi, tidak ada kata fokus, justru pekerjaan semakin beragam, dengan pola pengerjaan yang bersamaan, dan seolah tidak ada habisnya. Memang, dengan bekerja di instansi, meskipun statusnya outsourcing dan gaji lumayan stabil dibanding freelance. Tetapi pekerjaan lebih bersifat bersamaan (paralel), yang ketika pekerjaan satu belum selesai, telah datang atau ditambah dengan pekerjaan lain, dari/oleh atasan yang berbeda. Lucunya, meskipun pekerjaan itu adalah pekerjaan tim, yang konon dikerjakan ...

Mengirimkan Data Array Menggunakan Python dan Apps Script ke Google Sheets

Dalam posting ini, diberikan contoh mengirimkan data array menggunakan Python urllib dan Apps Script UrlFetchApp.fetch, untuk diinputkan ke Google Sheets dengan fungsi doPost. Fungsi doPost yang dimaksud, kurang lebih seperti kode dibawah ini: function doPost(e) { . . . var raw=(e.parameter["raw"]!=null)?JSON.parse(e.parameter["raw"].toString().replace(/'/g, '"')):null; var target = SpreadsheetApp.openById(idspreadsheet); var ss=target.getSheetByName(sheet); ss.getRange(1+start_row,1+start_column,raw.length,raw[0].length).setValues(raw); . . . } Di mana variabel target adalah Google Sheet tempat data disimpan. Sedangkan contoh pengiriman data array, berturut-turut sesuai kode berikut: Python from urllib import request, parse import json urlmain="https://script.google.com/macros/s/idapppost/exec" def senddingdata(idspreadsheet,sheet,mode,datum): data = { "keyvalue":"keyaccess","idspreadsheet...

Perbedaan Sudut Pandang Dosen dan Karyawannya

Sebuah perdebatan dingin dari sisi Dosen senior dan karyawan di suatu instansi pendidikan, di mana penulis pernah bekerja di dalamnya, menggelitik penulis untuk membaginya dalam blog ini. Bukan untuk meminta pembenaran, hanya saja penulis ingin berbagi sudut pandang, yang siapa tahu berefek positif bagi pembaca. Mulanya seorang karyawan senior, mengatakan jika ada yang dari pihak Dosen yang memberi penilaian jelek terhadap pekerjaan penulis sebagai karyawan, "Jangan dianggap, sebab yang membayar kita itu Fakultas. Bukan Dosen itu". Tentu, perkataan tersebut berpengaruh dan menjadikan penulis berprinsip, "Yang penting pekerjaanku selesai". Setelah beberapa lama bekerja, tiba-tiba seorang Dosen senior berbincang dengan penulis dan berkata, "Salah satu daya tarik Fakultas adalah SDM Dosen-dosen pengajarnya, sehingga mahasiswa bersedia belajar dan menjadi mahasiswa, adalah karena adanya Dosen-dosen, dan tugas karyawan adalah membantu Dosen-dosen tersebut". Dim...

Penggunaan JSON.stringify untuk Komunikasi Array dengan UrlFetchApp.fetch

Untuk mengambil atau memasukkan data dari database Google Sheets yang mempunyai beda authentifikasi, dapat menggunakan UrlFetchApp.fetch pada fungsi Apps Script dan menggunakan metode post. Dibawah ini adalah contoh pengiriman data array arr, untuk ditangkap dengan fungsi doPost(e): var email=Session.getActiveUser().getEmail(); var arr=["Mobil","Motor","Sepeda"]; var data = { "keyvalue":"idrahasia", "idspreadsheet":"--idgooglesheetdatabse--", "sheet":"Biodata", "ëmail":email, "raw":JSON.stringify(arr) }; var options = { 'method' : 'post', 'payload' : data }; var response=UrlFetchApp.fetch(urlpostdata,options); return JSON.parse(response.getContentText()); Perbedaan authentifikasi yang dimaksud disini adalah, misal aplikasi Apps Script yang dibuat, karena dibutuhkan untuk mengambil informasi email pengguna, maka authentifikasi akan diarahkan ke ...

Perbaikan Tanggal pada Google Sheets Akibat Beda Format Lokalisasi Indonesia

Gambar
Dalam Google Sheet, permasalahan yang sering penulis temui adalah terkait tanggal. Terutama ketika mengganti setting lokasi dan perhitungan dari United State ke format Indonesia. Belum lagi terkait timezone, seringkali penulis mengalami kesalahan perhitungan. Gambar di bawah ini adalah contoh kesalahan identifikasi tanggal, yang hari dianggap sebagai bulan, dan bulan sebagai hari. Sehingga yang berhasil di deteksi (meskipun sebenarnya salah) mengalami rataan kanan, sedangkan yang gagal di deteksi tetap rataan kiri. Oleh karena itu, untuk mudahnya, berikut ini adalah contoh kode Apps Script untuk mengubah letak tanggal menjadi bulan dan sebaliknya: function isValidDate(d) { if ( Object.prototype.toString.call(d) !== "[object Date]" ) return false; return !isNaN(d.getTime()); } function convertDate(sDate) { if (isValidDate(sDate)) { var timeZone = Session.getScriptTimeZone(); var month = sDate.getDate(); var day = sDate.getMonth() + 1; var year = sDa...

Membandingkan Kesamaan Text dengan Apps Script and Python

Gambar
Publikasi Dosen suatu instansi pendidikan kadang tidak terekam dengan baik. Sehingga ada kalanya terdapat double input dalam database. Untuk database yang menggunakan Google Sheet, deteksi kesamaan, sebenarnya dapat menggunakan kode Apps Script berikut: function hitungKesamaan(source,target) { var src=source.split(" "); var trg=target.split(" "); var max=(src.length>trg.length)?src.length:trg.length; if(max==0)return 0; var mrk=[]; for(var j =0; j < trg.length; j++){ mrk.push(0); } var jum=0; for(var i =0; i < src.length; i++){ for(var j =0; j < trg.length; j++){ if(mrk[j]!=1 && src[i]==trg[j]){ jum++; mrk[j]=1; break; } } } return jum*100.0/max; } Variabel source adalah judul pembanding, dan target adalah judul yang dibandingkan. Kode ini memberikan hasil nilai balik (return) berupa persentase jumlah kata yang sama antara judul source dan target. Di mana jika memberikan nila...