Postingan

Menampilkan postingan dari 2022

Perihal Mundur dari Kerja Tim

Seorang mahasiswa datang kepada penulis, dia bilang, dia akan mengundurkan diri dari tim asisten. Alasannya, karena dia merasa anggota tim yang lain tidak cocok dengannya. Penulis yang memang tidak memiliki jiwa kepemimpinan, secara tersirat mengatakan "ya jika mau mundur, ya silahkan saja". Pertama, hal ini sesuai dengan sifat penulis.  Dulu pernah ketika penulis sakit hati dari suatu pekerjaan, memang mundur (mengundurkan diri) itu solusinya. "Lari!", biarlah dianggap lari. Kalau memang kita dibutuhkan, justru instansi/perusahaan-lah yang seharusnya mempertahankan kita. Kalau tidak, berarti kita memang tidak dibutuhkan, dan kita harus tahu diri. Nah, kalau mahasiswa itu mundur, dan timnya tidak berusaha mempertahankan, seharusnya mahasiswa itu evaluasi diri. Kedua, produk. Penulis bilang ke mahasiswa itu, "Buatlah produk, dan coba juallah ke pasar. Ada enggak orang yang mau menggunakan produk kita. Seberapa banyak? Kalau produk itu tidak laku, itulah kita&quo

Bosan menjadi Orang Baik

Kembali bekerja sebagai tenaga outsourcing, dalam surat perjanjian kontrak, tertulis harus bersedia melakukan pekerjaan yang diberikan atasan. Meskipun pekerjaan tersebut diluar SOP (Standard Operating Procedure). Salah satu tugasnya, adalah menjadi pengawas ujian mahasiswa tingkat sarjana. Yang mana, pekerjaan penulis sendiri sebenarnya hanya sebagai tenaga IT, yang saat tulisan ini di tulis, sedang sibuk membuat database tugas akhir, dan me-maintenance lima website. Pekerjaan baru sebagai outsourcing inilah yang membuat penulis lama tidak nge-blog dan membuat aplikasi baru pada edugameapp penulis. Dan berikut ini, beberapa hal yang membuat penulis bosan menjadi orang 'baik', yang muncul selama penulis bekerja sebagai outsourcing. Pertama Penulis sangat suka dengan pekerjaan sebagai programmer, dan sebenarnya tidak mau jadi pengawas. Namun daripada di gunjing oleh karyawan-karyawan lain yang solidaritasnya tinggi, yang mereka berprinsip "pekerjaan yang kalau dilakukan ba

Membuat Bagan Alur di HTML dengan CSS

Gambar
Selain dalam bentuk flowchart, mungkin karena malas, untuk menunjukkan alur suatu tahapan, biasanya diberikan dalam bentuk diagram sederhana seperti gambar di atas. Jika ditampilkan dalam HTML, diagram di atas akan membutuhkan load lebih tinggi dibanding jika dibuat dengan text biasa. Dibawah ini adalah contoh kode halaman HTML, untuk menampilkan diagram dari text dan symbol (untuk panah), dengan bentuk rounded box dengan CSS. <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title></title> <style> .tablediagram{ border:0px; width: fit-content; margin: auto; } .tablediagram td{ text-align:center; height:80px; border:0px; } .buttonblue{ display:flex; height:100; justify-content:center; align-items: center; color:white; border:5px solid white; background-color:#5959ff; border-radius:25px; box-shadow: 5px 5px 5px 1px rgb(0 0 255 / 20%); max-width:200px; text-decoration:none

Sedikit Pandangan tentang Pelatihan Bersertifikasi

Sebuah percakapan menarik dengan salah satu pengguna Facebook. Beliau menilai bahwa aplikasi Edugameapp buatan penulis sebenarnya layak digunakan sebagai pendamping bahan ajar guru di sekolah. Dan kalau bisa, dibuat semacam pelatihan yang bersertifikasi. "Misal ada minat ke arah pendidikan mah, bisa buat bahan alat peraga pendamping pembelajaran online, khususnya SMK". Artinya menurut beliau, perlu diberikannya bukti cetak hitam di atas putih (sertifikat), agar aplikasi-aplikasi penulis lebih dicari oleh masyarakat. Seperti oleh sekolah-sekolah yang memiliki jurusan yang berkaitan dengan presisi alat ukur atau analis kimia. Bagus nya sih tanpa iklan, Alternatif income nya lewat pelatihan & sertifikasi, Lbh ke persiapan dunia kerja, Atau uji kompetensi keahlian Ada tiga hal yang penulis ingin ulas di sini: Pertama , untuk menjadikannya semacam pelatihan, penulis perlu membangun aplikasi-aplikasi Edugameapp penulis menjadi sebuah sistem database. Misalnya, ketika pengguna t

Besar Pajak Tahunan Honda Versa 2016 di Tahun 2022

Gambar
Tidak terasa, sudah setahun setelah penulis melakukan mutasi sepeda motor Verza penulis , dari Kediri ke Banyuwangi sesuai alamat KTP. April 2022 ini, Verza penulis genap berusia 6 tahun setelah pembelian. Yang penampakan ketika pembelian pertama kali seperti video dibawah ini: Meskipun model sepeda ini sudah lama, ternyata di 2022 ini masih banyak juga yang melihat video penulis di atas. Dan karena perjalanan penulis cukup jauh, kilometernya sudah mencapai 100 ribu kilometer, cukup untuk mengelilingi bumi dua kali. Lalu, ketika penulis membayar pajak tahunan pada April 2022, ternyata nominal pajak yang harus penulis bayarkan adalah sebesar IDR 296.500 . Nilainya lebih tinggi sedikit dari tahun-tahun sebelumnya. Mungkin karena usia sepeda motor yang menua, sehingga pembayaran pajak polusi yang menjadi lebih tinggi. Atau mungkin karena memang pajak di tahun 2022 ini naik. Penulis belum tahu, mungkin suatu saat nanti post ini akan penulis update, ketika penulis telah tahu jawabannya.

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

Contoh Countdown Timer untuk Halaman Web dengan Javascript

Gambar
Ketika membangun website konferensi, biasanya di halaman utama, diberikan countdown timer. Dimana countdown timer ini berfungsi untuk memberikan informasi batas kepada calon peserta konferensi, yang berkeinginan untuk menjadi presenter, agar segera mengirimkan paper atau posternya sebelum tanggal yang ditentukan. Salah satu contohnya, adalah website konferensi PIT-FMB 2022 seperti ditunjukkan pada gambar di atas. Untuk keperluan tersebut, di bawah ini adalah kode javascript countdown timer, dengan tampilan yang membutuhkan dukungan styling CSS untuk membuat background yang transparan. <html> <head> <title>The Example of Countdown Timer</title> <style> .countdownbox{ font-family: "Roboto", Sans-serif; padding:10px; font-size:48px; background-color:#00000061; color:white; margin:5px 5px 0 5px; border-radius:5px; } </style> <script> </script> </head> <body> <div id="countmainbox" style="displa

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

Kode Java Software Backup Project Android Studio

Gambar
Salah satu kewajiban menjadi developer Android adalah diperlukannya backup source code app berkala. Hal ini penting dilakukan, sebagai cadangan, jika terjadi hal-hal yang tidak diinginkan, seperti terjadinya rusak atau bad sector pada hardisk device yang digunakan untuk membuat aplikasi. Masalahnya, file-file project app Android dengan Android Studio, biasanya jumlahnya banyak, meskipun ukurannya kecil-kecil. Dan menurut penulis, di dalamnya lebih banyak file yang hanya akan memakan space memory, jika penyimpanannya secara satu project penuh. Mungkin pada sebagian developer tidak akan mempermasalahkan keadaan ini. Tetapi jika jumlah app-nya sudah banyak, seperti edugameapp penulis, akan lebih baik untuk menyimpan source code dan file-file yang diperlukan saja, yang memungkinkan untuk menyimpan di Cloud Service seperti di Google Drive, sebagai cadangan yang lain. Oleh karena itu, kode Java di bawah ini, penulis menawarkan software sederhana berbasis dekstop, yang berguna untuk mengambi

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

Permintaan Penambahan Ad ID Permission dari Google Play

Gambar
Pada tanggal 15 Maret 2022, penulis mendapatkan email dari Google Play terkait permintaan penambahan Ad ID Permission pada setiap aplikasi penulis di Edugameapp, sebelum 1 April 2022. Penambahan permission ini penting, karena dapat mengakibatkan tidak akan tampilnya iklan dalam aplikasi. Yang juga berarti dapat berpotensi terjadinya pengurangan terhadap pendapatan, jika penulis sebagai developer mengabaikannya. <uses-permission android:name="com.google.android.gms.permission.AD_ID"/> Mulanya, penulis pikir perlu menambahkan kode di atas, pada masing-masing manifest setiap app. Dengan jumlah aplikasi yang telah lebih dari 50 buah, sehingga akan menjadi pekerjaan yang melelahkan sendiri, meski hanya menambahkan satu permission saja. Untungnya Google tidak sejahat itu. Dengan hanya melakukan upgrade SDK iklan terbaru, permission tersebut secara otomatis ditambahkan ke manifest, yang lebih detailnya dapat dilihat di bagian merge manifest.

Membuat Widget HTML untuk Polylang Wordpress

Gambar
Polylang adalah salah satu plugin Wordpress yang dapat digunakan untuk membantu membangun website multi-bahasa. Menurut penulis, plugin ini bagus, meskipun hanya digunakan versi gratisnya. Namun untuk menampilkan Widget yang dapat menyematkan kode HTML, saat tulisan ini dibuat, Widget Custom HTML bawaan Wordpress tidak dapat menampilkan pilihan bahasa. Sehingga perlu dibuat widget yang dapat menampilkan pilihan bahasa, sehingga widget hanya akan muncul ketika website dilihat pada pilihan bahasa yang ditentukan pengunjung (user). Berikut ini adalah kode widget, yang dapat disematkan di file functions.php theme Wordpress yang digunakan. function uboiz_html_register_widget() { register_widget( 'uboiz_html_widget' ); } add_action( 'widgets_init', 'uboiz_html_register_widget' ); class uboiz_html_widget extends WP_Widget { function __construct() { parent::__construct( // widget ID 'uboiz_html_widget', // widget name __('Uboiz HTML Widget

Menambahkan Custom Top Sidebar di Theme OceanWP

Gambar
OceanWP adalah salah satu theme dari Wordpress. Karena tampilannya yang elegan, mudah dimodifikasi, bervariasi dan cocok untuk situs pendidikan, penulis seringkali menggunakan theme ini untuk membuat situs-situs instansi pendidikan yang meng-kontrak tenaga penulis. Namun, mungkin untuk versi gratis, OceanWP tidak menyediakan sidebar pada bagian atasnya, yang seringkali berguna bagi penulis untuk menyematkan link-link yang penting, tetapi bukan untuk website itu sendiri. Oleh karena itu, berikut ini adalah tutorial singkat, percobaan penulis menambahkan top sidebar untuk theme OceanWP. Pertama, tambahkan kode di bawah ini ke file function.php, yang berada di folder /wp-content/themes/ , letakkan di dalam fungsi register_sidebars(). // Top Sidebar by Uboiz. register_sidebar( array( 'name' => esc_html__( 'Top Sidebar by Uboiz', 'oceanwp' ), 'id' => 'top-sidebar-uboiz', 'description' => esc_html__( '

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

Plot Garis dengan HTML5 Canvas

Gambar
Untuk keperluan analisis data, seringkali diperlukan membuat grafik, untuk melihat persebaran data. Seperti yang penulis butuhkan dalam video di atas, untuk melihat performa iklan Admob dari aplikasi-aplikasi buatan penulis, penulis perlu melihat performa jumlah iklan yang dipanggil tiap waktunya. Dengan teknologi HTML5 Canvas, ternyata membuat plotting garis sederhana dapat dilakukan dengan mudah. Cukup dengan membuat field input file, memilih data yang akan ditampilkan, dan menggambar grafiknya dengan Canvas. Fungsi berikut ini adalah perintah untuk membuat plotting dengan Canvas: function plotting(name,x,min,max) { var c = document.createElement('canvas'); c.width=300; c.height=200; var ctx = c.getContext("2d"); ctx.font = "14px Arial"; ctx.fillText(name+" "+x.length,5,16); ctx.beginPath(); for(var i=0;i<x.length;i++){ if(i==0){ ctx.moveTo(Math.round(1.0*i*c.width/x.length),Math.round(c.height-1.0*(x[i]-min)*c.height/(max-min)

Pembahasan Soal Olimpiade Sains Bu Ani Perjalanan ke Pasar selama 2 Jam

Gambar
Sebuah pertanyaan olimpiade sains tingkat sekolah dasar, menantang rasa penasaran penulis. Soal itu adalah sebagaimana berikut: Bu Ani pergi ke pasar dengan kecepatan awal 40 km/jam. Setelah setengah perjalanan, Bu Ani menurunkan kecepatan sepeda motornya mencapai 60 km/jam. Waktu yang diperlukan Bu Ani sampai di pasar adalah 2 jam perjalanan. Berapakah jarak pasar dengan rumah Bu Ani? Sebagai seorang lulusan jurusan Fisika, meski tidak berijazah, tentu penulis tertarik untuk menyelesaikannya. Dan penulis menemukan dua hal yang tidak masuk akal, dan lucu juga. Hal pertama, yang menurut penulis lucu adalah Bu Ani pergi ke pasarnya sangat lama, 2 jam perjalanan. Itu jauh, untuk seorang Bu Ani yang hanya bersepeda motor. Mungkin Bu Ani pedagang besar yang hanya memesan barang. Dan barang pesanannya dikirim ke rumahnya melalui jasa pengiriman. Siapa tahu? Kedua, disetengah perjalanan, Bu Ani menurunkan kecepatan hingga 60 km/jam. Hal ini berarti, kecepatan disetengah perjalanan (V1) harus

Preview File Gambar sebelum di Upload dengan Javascript

Gambar
Seringkali, ketika akan mengupload file gambar, perlu dipastikan dahulu gambar yang akan diupload dalam bentuk preview. Dan teknologi HTML5 telah menambahkan kemampuan upload banyak file dengan hanya satu element input dengan tag type='file' dan multiple. Sangat mudah. Entah penulis yang ketinggalan informasi atau gimana, sebab penulis teringat jaman dahulu, perlu menambahkan satu persatu, sesuai jumlah file yang akan ditambahkan melalui appendChild, jika diperlukan upload banyak file pada form. Di bawah ini adalah kode preview image ketika input file berubah (onchange), dan gambar akan ditampilkan pada element dengan Id='imgpreview'. <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> </style> </head> <body> <h1>The input multiple attribute</h1> <form action="/action_page.php" enctype="multipart/form-data">

Contoh Circle Progressbar untuk Loading Website

Gambar
Dalam membuat sebuah website, adakalanya diperlukan untuk menambahkan progressbar berbentuk lingkaran (circle) yang berputar, untuk menandakan halaman website sedang dimuat. Meskipun sederhana, penambahan progressbar ini menurut penulis penting, karena akan memberikan perintah secara halus kepada pengunjung, untuk menunggu dan menandakan bahwa website kita sedang di proses. Sebab, penulis sendiri, lebih sering untuk pergi ke website lain, ketika website yang sedang penulis kunjungi serasa berhenti (stuck) tanpa adanya tanda progres. Berikut ini salah satu kode circle progressbar dengan CSS: <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> .boxloader{ position: fixed; top: 50%; right: 50%; text-align:center; } .loader { border: 5px solid #f3f3f3; border-radius: 50%; border-top: 5px solid #3498db; width: 20px; height: 20px; -webkit-animation: spin 0.5s linear infinite;