Postingan

Menampilkan postingan dengan label Tips

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

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

No matching variant saat Upgrade Grandle

Gambar
Merupakan kewajiban bagi seorang developer Android, adalah me-maintenance aplikasinya. Hal ini perlu dilakukan, sesuai himbauan Play Store, sebagai toko tempat menjual aplikasi seperti gambar di bawah ini, bahwa aplikasi tidak akan ditemukan oleh perangkat dengan SDK yang terbaru. Tentu akan menjadi masalah jika tidak ditemukan, aplikasi akan kehilangan pasarnya, yang artinya developer berpotensi kehilangan income. Dan yang penulis temukan juga, jika tidak diupdate ke SDK yang terbaru, sepertinya algorithma Play Store juga malas merekomendasikannya ke pengguna. Tahun 2023, sudah menjadi tahun ke-8 penulis menjadi single fighter Android Developer . Bukan karena tidak ingin memperkerjakan/membutuhkan orang lain, namun kelemahan manajerial yang menjadi problem utamanya. Ditambah penulis adalah tipe yang kurang begitu percaya dengan hasil pekerjaan orang lain. Sehingga bekerja sendiri, menjadi pilihan yang paling aman dan tepat menurut penulis. Suatu hari, tepatnya sehari sebelum tulisan i

Upgrade Universal Analytics ke Google Analytics 4

Gambar
Telah lama tidak mengunjungi Google Analytics, di dashboard terdapat peringatan seperti gambar di bawah ini: Setahu penulis, artinya pemilik website yang menggunakan Google Analytics lama (Universal Analytics) diharuskan untuk upgrade ke Google Analytics baru, yaitu Google Analytics 4. Hasilnya, mau tidak mau, penulis yang sebagai pengguna Google Analytics, penulis harus maintenance semua website dan blog penulis yang menggunakan Google Analytics. Berikut ini adalah tutorial sederhana yang penulis buat saat upgrade blog dan website Wordpress. Blogspot Wordpress

Tips Sukses menjadi Programmer

Manajemen waktu Untuk bekerja sebagai programmer, yang umumnya freelance, diperlukan kemampuan manajemen waktu yang baik. Biasanya, dikarenakan merasa freelance , programmer akan menerima semua pekerjaan yang ditawarkan kepadanya. Sehingga, jika load pekerjaan telah tinggi, akan menyebabkan adanya pekerjaan yang terbengkalai, tidak sempurna dan mengecewakan client. Bukan karena programmer itu tidak menguasai pekerjaannya. Namun karena tidak bisa mengalokasikan waktu saja, yang tidak tepat. Penulis sendiri seperti itu. Sampai tulisan ini ditulis, penulis masih belajar bagaimana memanajemen waktu, agar semua pekerjaan terselesaikan. Manajemen Pekerjaan Mungkin lebih tepatnya, manajemen file pekerjaan yang pernah dilakukan. Seringkali, programmer akan mendapat pekerjaan yang mirip, atau bahkan sama. Manajemen penyimpanan source code, project-project yang pernah dilakukan, harus tertata dengan baik dan diorientasikan jangka panjang. Tidak hanya dengan memberikan label versi (v1.1, v1.2, v2

Memperoleh Data Terbaru dari Join Dua Tabel di MySQL

Dimisalkan, suatu instansi memberikan status kepada karyawannya menjadi tiga tingkat. Yaitu kontrak, tidak tetap dan tetap. Setiap status, memiliki kode nomor karyawan sendiri, yang akan berganti jika sang Karyawan telah layak naik pangkat, sesuai dengan loyalitas dan prestasinya. Di mana ketika karyawan berganti status, nomor lama ke yang baru, nomor yang lama akan tetap tersimpan di database (tanpa dihapus), kemudian nomor yang baru akan otomatis menjadi nomor acuan karyawan yang bersangkutan. Lalu bagaimanakah desain databasenya? Kesalahan yang potensial dihadapi sebagai programmer, untuk kasus di atas adalah menganggap nomor karyawan sebagai acuan di database. Penulis yakin, dengan melihat NIK (Nomor Induk Karyawan), pasti kebanyakan programmer database, akan menjadikan NIK sebagai ID acuan utama karyawan. Hal ini karena NIK dianggap tidak akan berubah sampai karyawan itu pensiun. Sebab, biasanya, jika ID acuan diganti, maka data-data sebelumnya yang mengacu pada ID lama, bisa-bisa

Progress Loader Tengah Vertical dan Horizontal dengan CSS

Gambar
Seperti yang pernah penulis sebutkan dalam posting sebelumnya. Salah satu hal terpenting dalam membuat aplikasi, adalah menampilkan progress loader untuk suatu proses. Sebab, jika tidak menampilkan kondisi tersebut, pengguna tidak akan tahu bahwa aplikasi sedang melakukan proses, yang kemungkinan besar dapat membuat pengguna lari meninggalkan aplikasi. Apalagi jika aplikasi itu berupa website. Pengguna akan lebih memilih untuk pergi ke halaman lain, jika website buatan kita itu seperti crash atau kosong. Berikut ini adalah kode satu halaman web, yang menunjukkan contoh progress loader menggunakan CSS sesuai gambar di atas: <html> <head> <meta name="viewport" content="width=device-width,initial-scale=1"> <style> #loader,.boxloader{ position:absolute; top: 50%; left: 50%; background-color:white; padding:20px; display:flex; flex-flow:column; align-items:center; border: 1px solid #eee; border-radius:8px; -ms-transform: translate(-5

Peringatan Pelanggaran Ads & Content Overlap Admob

Gambar
Tidak seperti biasanya, pada 21 Agustus 2020, penulis mendapat email dari Google Admob sebagiamana gambar dibawah ini: Isinya adalah ditemukannya pelanggaran penempatan iklan yang menindih konten (Ads & Content Overlap) aplikasi penulis, yaitu pada aplikasi Rambu Lalu Lintas . Penulis mengatakan hal ini tidak biasa, karena sebelumnya penulis telah yakin bahwa penempatan iklan pada seluruh aplikasi penulis telah tepat. Nyatanya masih ada saja yang salah, dan sepertinya hal ini akan terus berlanjut dan merupakan maintenance yang harus dilakukan oleh setiap developer terhadap aplikasinya tiap tahun.  Keterangan lebih jelas mengenai pelanggaran ini dapat dilihat lebih jelas di halaman Policy Center di halaman Google Admob. Yang memang sedikit sulit untuk dipahami bahasa penjelasannya. Sedangkan tindihan yang dimaksud adalah seperti gambar dibawah ini:   Penempatan iklan seperti gambar di atas, ternyata merupakan suatu pelanggaran, meskipun aplikasi penulis telah berusia 2 tahun lebih d

Menambahkan Konfirmasi Email di Google Form

Gambar
Suatu hari penulis membantu dosen penulis menyiapkan form registrasi Pengabdian Kepada Masyarakat (PKM). Dan ternyata kebutuhannya adalah ketika seorang pendaftar melakukan registrasi dengan input data, dibutuhkan konfirmasi email yang terkirim secara otomatis. Setelah berselancar di internet, penulis menemukan salah satu caranya adalah dengan menggunakan Google Sheets dan Script. Caranya penulis tunjukkan dalam video di bawah ini: Sedangkan Google Script yang penulis gunakan dalam video di atas, dapat di download dilink di bawah ini: https://drive.google.com/file/d/1elg78BQFaKlhq9e0UuGmHhY0NS3BtfEp/view?usp=sharing Referensi: aniav. 2015. send_email.gs. https://gist.github.com/aniav/926f4667911ba1d138b8. Diakses tanggal 17 Juni 2020.

Keuntungan menjadi Pengguna Berbayar Aplikasi Android

Gambar
Salah satu karakteristik pengguna aplikasi dan game Computational Lab adalah mereka lebih suka yang gratis, meskipun melihat iklan dan sedikit sekali yang berkeinginan menjadi pengguna berbayar (paid user), meski harga beli yang sebenarnya murah. Kebanyakan di aplikasi dan game Computational Lab, penulis distribusikan secara gratis, tetapi menampilkan iklan. Dan jika ada pengguna yang ingin tidak melihat iklan, dapat menekan menu Buy untuk membelinya. Harganya bermacam-macam, ada yang cuma 3000, 5000, dan di atas 50 ribu rupiah untuk aplikasi yang penulis anggap unik. Memang, jika dilihat dari segi nominal, pendapatan dari iklan justru lebih besar dibanding dari pengguna yang memilih menjadi paid user. Padahal jika dipikir ulang, menurut penulis bisa jadi pengguna gratis justru lebih merugi. Merugi yang dimaksud disini adalah adanya kuota internet yang digunakan untuk mendownload iklan secara tidak sadar. Berdasarkan pengamatan penulis, cara kerja iklan

BPJS tidak Menanggung Sakit karena Salah Minum Jamu

Gambar
Ilustrasi minum Jamu (Sumber gambar: Pixabay/Foundry) Pada Senin, 24 Februari 2020, penulis mengantarkan ibu periksa ke Balai Pengobatan yang menerima BPJS. Ibu penulis terkena sakit batuk dan pilek, dan sepertinya memang karena musimnya saat itu. Dikarenakan penulis belum mengetahui lebih lanjut mengenai BPJS Ketenaga-kerjaan, penulis pun bertanya tentang apakah kecelakaan tidak ditanggung BPJS. Kecelakaan yang penulis maksud bukan kecelakaan saat bekerja, tetapi kecelakaan lalu lintas. Perawat yang sedang bertugas, menuturkan memang BPJS, baik itu Kesehatan maupun yang Ketenaga-kerjaan, tidak menanggung biaya kecelakaan. Asuransi yang menanggung kecelakaan dalam berlalu lintas, adalah Jasa Raharja. Sehingga memang bukan untuk kecelakaan berlalu lintas, ranah BPJS berbeda. Perawat menambahkan untuk BPJS pun tidak semua sakit dilayani, penyakit seperti akibat efek samping atau minum jamu, minum-minuman keras, percobaan bunuh diri, atau segala macam pe

Pengalaman Banding Suspend Aplikasi

Gambar
Hari Kamis, 13 Februari 2020, penulis mendapat email suspend, dua aplikasi sekaligus di Play Store. Yaitu Algebra Equation Calculator dan LCM and HCF . Salah satu email suspend-nya berisi kurang lebih sebagaimana gambar di atas. Penulis tidak mengerti, kenapa kedua aplikasi tersebut melanggar itu secara berulang-ulang (repetitive). Apalagi dikatakan tidak memiliki value apapun. Tepatnya, penulis tidak tahu pelanggaran apa sebenarnya. Karena sangat sulit sekali memahami pesan peringatan dari Google. Disebabkan hal ini sudah terjadi berulang kali dan penulis yakin bahwa suspend itu hanya kesalahan, maka penulis berani untuk melakukan banding, dengan isian komentar kurang lebih sebagai berikut: Hello Play Support Team, I believe that all of the app mentioned above are not violating any policies. I had already very carefully reviewed by my self it during and after the developing process, as well as the ads placement. Please be noted that each app of my app in Play Stor

Tip Menampilkan Nama-nama Bulan di JComboBox Java

Gambar
Dalam pemrograman Java, kadang diperlukan untuk menampilkan tahun dalam JComboBox menyesuaikan tahun yang sedang berjalan. Contohnya, jika tahun yang sedang berjalan adalah tahun 2020, maka nilai tahun maksimal JComboBox hanya sampai 2020. Kemudian setahun kemudian, karena tahun yang berjalan 2021, secara otomatis JComboBox akan menampilkan nilai maksimum 2021. Begitu seterusnya. Kode berikut adalah contoh implementasi menampilkan tahun dalam JComboBox, yang nilainya dapat menyesuaikan secara otomatis seperti scenario yang disebutkan di atas. int year = Calendar.getInstance().get(Calendar.YEAR); int num=5; Integer[] tahun= new Integer[num]; for ( int i=0;i<num;i++){ tahun[i]=year-i; } JComboBox combotahun= new JComboBox(tahun); Selain tahun, dalam pemrograman Java, kadang di perlukan juga untuk menampilkan nama-nama bulan dalam JComboBox. Salah satu cara tercepat adalah dengan menggunaka

Anti Library Pihak Ketiga

Gambar
Ilustrasi kode program (Sumber: Pixabay/StockSnap) Dalam membangun sebuah software, dikarenakan keterbatasan kemampuan, biasanya developer memilih dengan mengambil library pihak ketiga. Contohnya, pada Java Development Kit (JDK) belum disupport konversi dari file gambar ke bentuk PDF. Maka dari itu developer Java, menggunakan library PDF konverter yang dapat ditemui online, seperti iText . Hal ini tidak salah, namun terdapat kelemahan yang bisa jadi itu adalah bom waktu yang dapat membunuh aplikasi yang dibangun oleh developer itu sendiri. Prinsip Berdasarkan pengalaman, seringkali library pihak ketiga yang penulis gunakan dalam aplikasi penulis, terdapat tiga kelemahan yang menyebabkan jika library tersebut mati, maka mati pula aplikasi atau software penulis. Kelemahan tersebut adalah: Tidak dikembangkan lagi oleh developer asli Termasuk produk gagal Ujung-ujungnya berbayar Ketiga kelemahan di atas, adalah hal yang menyebabkan penulis mengambil pr

Salah Satu Alasan Blog tidak Diterima Adsense

Gambar
Beberapa waktu sebelum tulisan ini ditulis, seorang teman berkeinginan mendaftarkan blognya untuk dapat menampilkan iklan Adsense, sebagaimana yang penulis lakuan pada Uboiz Blog ini. Penulis yang melihat isi dari blog itu adalah artikel buatan sendiri, dan tidak berisikan konten yang melanggar kebijakan Adsense, mengiyakan dan yakin jika blog teman penulis tersebut akan di-approve. Susunan blog yang rapi, berumur lebih 6 bulan, dan jumlah konten yang lumayan, adalah dasar keyakinan penulis, selain kedua hal di atas. Perlu diketahui, penulis sudah terdaftar sebagai publisher Adsense sejak 2015, tetapi kebanyakan pendapatan penulis dari aplikasi dan game melalui Admob, bukan dari blog. Nyatanya, setelah mendaftar, satu minggu kemudian, penulis mendapat kabar, jika teman penulis mendapatkan email penolakan Adsense, dengan alasan blog masih kurang memenuhi persyaratan. Kami bertanya-tanya lagi, mungkin persyaratan yang dimaksud adalah jumlah pengunjung. Memang

Menampilkan Daftar Sub-Halaman pada Wordpress

Gambar
Adakalanya, untuk suatu keperluan tampilan dan kemudahan navigasi, dibutuhkan untuk menampilkan daftar sub-halaman dari sebuah halaman Worpress. Berikut ini adalah kode PHP yang diperuntukkan untuk menampilkan daftar sub halaman dalam bentuk shortcode, yang perlu disematkan dalam file functions.php pada masing-masing thema Wordpress yang akan digunakan. function wpb_list_child_pages() { global $post; if ( is_page() && $post->post_parent ){ $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' ); } if ( $childpages ) { $string = '<ul>' . $childpages . '</ul>'; } return $string; } add_shortcode('wpb_childpages', 'wpb_list_child_pages'); Gambar dibawah ini adalah contoh penggunaan shortcode untuk memangging fungsi di atas:

Mengatasi Pulsa IM3 yang Berkurang Secara Misterius

Gambar
Berlanggan pada suatu konten, baik itu sengaja ataupun tidak disadari, bisa jadi merupakan penyebab berkurangnya pulsa kartu IM3. Sudah lebih dari satu tahun, kira-kira sejak tahun 2017, pulsa IM3 penulis berkurang tiap harinya, ketika diisi ulang. Kurang lebih Rp 2000 tiap harinya, dan akan berhenti berkurang, jika saldo pulsa penulis dibawah ambang Rp 2000 tersebut. Oleh karena itu, sampai tulisan ini ditulis, penulis hanya mengisi pulsa IM3 ketika dibutuhkan saja. Indikasi Sejak awal, melihat kondisi di atas, penulis curiga jika pastinya nomor penulis telah terdaftar pada suatu layanan tertentu. Entah itu memang kesalahan penulis pribadi, yang secara tidak sadar mendaftar dengan sendirinya. Atau memang ada bug di algorithma kode Indosat, sehingga nomor penulis terdaftar pada suatu layanan berbayar secara tidak sengaja. Atau, mungkin ada oknum-oknum yang tidak bertanggung jawab, yang mendaftarkan nomor penulis ke layanan tertentu, hanya untuk kepenti

Menggunakan JSON di Netbeans 8.2

Gambar
Tidak disangka penulis, library JSON ternyata tidak disertakan menjadi default dari JDK Netbeans. Developer harus menambahkan sendiri, jika membutuhkan JSON dalam aplikasinya. Cara yang paling mudah adalah dengan mendownload dan menambahkan sebagai library di folder Libraries di Netbeans. Sedangkan penulis, mendapatkan library JSON dari Google Code Archive, dengan link dibawah ini: https://code.google.com/archive/p/json-simple/downloads Perlu diketahui, penulis menggunakan NetBeans 8.2, dengan  JDK (Java Development Kit) versi 8. Alasan penulis memilih library JSON dari Google, pertama karena faktor kepercayaan, terutama terkait sisipan malware atau semacamnya. Dari beberapa link yang disediakan oleh Google Search, menurut penulis, link di atas adalah satu link yang dapat dipercaya. Tidak lucu jika library pihak ketiga yang kita gunakan, sebagai developer, ternyata disisipi malware. Kedua, produk akhir aplikasi Java penulis adalah berbentuk aplika

Empat Tipe Orang yang Perlu di Hindari

Gambar
Ilustrasi sosial (Sumber gambar: Pixabay/czunss) Dalam bergaul dan besosialisasi, baik itu sesama kerabat atau orang lain, berdasarkan pengalaman penulis, di bawah ini empat tipe orang yang harus dihindari berdasarkan ucapannya. Penulis bukan orang yang suka bersosialisasi, namun dalam hidup bermasyarakat, bersosialisasi itu penting, minimal dalam satu Rukun Tetangga (RT). Sering Bersumpah Menurut penulis, orang yang sering berkata sumpah, justru orang yang mudah berbohong. Contohnya, "Sumpah, harga cuma 40 juta". Bisa saja dia berkata sumpah seperti itu hanya agar orang mempercayainya. Bagi penulis, mungkin sebagai pendengar, kita tidak dapat membuktikkan kebenaran perkataan dia saat itu juga. Tetapi jika suatu hari satu saja perkataan yang terbukti bohong, penulis tidak akan mempercayai perkataannya lagi dan yang lain-lain, atau yang akan datang. Plin-plan Plin-plan yang dimaksud disini adalah berbeda dengan yang dikatakan antara sebelum dan sesudah ke