Postingan

Algorithma Penempatan n Obyek dengan Fungsi Rekursif Javascript

Gambar
Seorang bertanya kepada penulis dengan pertanyaan berikut: Misalnya An menyatakan berapa banyak cara untuk menempatkan n obyek, yang berbeda dalam 5 kotak. Bagaimana cara menulis dan menyelesaikan relasi rekursif untuk An? Pertanyaan ini sama dengan ada sejumlah n Anak yang disediakan n tempat duduk, berapa banyak macam urutan berjejer yang dapat dilakukan n anak tersebut? Tentu sebagai programmer penulis penasaran, apalagi dipertanyaan tersebut terdapat kata rekursif yang penulis langsung berpikir pastinya yang dimaksud adalah fungsi perulangan rekursif dalam pemrograman. Meskipun penulis belum yakin rekursif yag dimaksud benar atau salah, tetapi sesuai kode di bawah ini, penulis mencoba membuat algorithma dengan menggunakan Javascript. Berikut ini kode penyelesaian pertanyaan di atas: <html> <head> <title>Try Rekursif</title> </head> <body> <div style= "display:flex;flex-direction: row;flex-wrap:wrap;" ...

Algorithma Starfield dengan HTML5 Canvas

Gambar
Di bawah ini adalah kode animasi starfield dengan menggunakan 800 titik. Idenya sederhana, mendeteksi posisi mouse sebagai titik tengah arah gerak, titik disebar secara random pada luasan canvas, dan digerakkan menjauhi titik tengah dengan kecepatan tertentu. Titik tidak disebar begitu saja, tetapi secara kontinyu ditambahkan ke canvas tiap lima frame. Selain itu, titik tidak digambarkan berupa titik, namun berupa garis, dengan lebar garis yang ukurannya bertambah 0.02 tiap framenya. <html> <head> <title>Starfield</title> </head> <body> <canvas id= "myCanvas" width= "1024" height= "500" > </canvas> <script> var canvas = document.getElementById( "myCanvas" ); var points=[]; var n=0; var pox=0.5*canvas.width; var poy=0.5*canvas.height; var Ro=Math.sqrt(pox*pox+poy*poy); var mousePos={x:pox,y:poy}; function getMousePos(canvas, evt){ var rect = c...

Algorithma Integrasi Numerik Sederhana

Gambar
Dalam suatu komunitas yang penulis ikuti, seringkali dipertanyakan problem integrasi numerik. Dan kebanyakan, teman-teman penulis bingung bagaimana mengimplementasikannya dalam bentuk kode program. Perlu diketahui, secara sederhana, kegunaan integrasi tidak lain adalah untuk menghitung luas. Sehingga salah satu metode yang dapat digunakan untuk menghitung luasan adalah dengan membanginya menjadi kotak-kotak kecil. Contoh, misalkan diberikan permasalahan integrasi numerik sesuai persamaan berikut: Dibawah ini adalah kode integrasi numerik untuk menghitung luas, sesuai persamaan di atas, dengan metode kotak: #include <stdio.h> double f( double x) { return (2*x*x+1)*(3-x); } double calc( double a, double b, double dx) { double sum=0; while (a<b){ sum+=f(a)*dx; a+=dx; } return sum; } int main() { printf( "L = %f" ,calc(1.0,3.0,0.000001)); return 0; } Sehingga ketika dijalan...

Algoritma Tombol Putar dengan Greenfoot

Gambar
Membuat tombol dengan perilaku diputar, sebagaimana tombol di volume radio jaman dahulu, tidaklah mudah. Hal ini dikarenakan ada perhitungan batasan yang dihitung oleh fungsi Math.atan2, dengan range  sudut -180 sampai 180. Padahal dalam suatu kondisi perhitungan, dapat menghasilkan arah perputaran yang keliru. Misalnya tombol berada di sudut 160, kemudian akan diputar ke sudut 190. Dengan menggunakan konversi Math.atan2 akan menghasilkan arah perputaran minus. Karena dititik 190 dideteksi sudut -170. Untuk solusi kondisi seperti di atas, dilakukan dengan menghitung selisih paling sedikit, perbedaan di range sudut -180 sampai 180, dengan 0 sampai 360. Untuk lebih jelasnya dapat dilihat pada video tutorial berikut: Kode Greenfoot contoh algorithma dapat di downlad di link dibawah ini: https://drive.google.com/open?id=1m-pKkdAWA81X0rYD5ASFFoWQxT34D7Kk

Bagaimana Mendapatkan Penghasilan dari Aplikasi Android

Gambar
Salah satu yang dapat dijadikan sebagai sumber penghasilan bagi freelancer (pekerja lepas), adalah dengan menampilkan iklan dari membuat aplikasi atau game. Penulis adalah Android developer dengan nama Computational Lab di Play Store. Sampai tulisan ini ditulis, telah menghasilkan pendapatan yang lumayan dari Admob, dari membuat aplikasi dan game (EDUGAMEAPP) Android yang telah dimulai sejak tahun 2015. Berikut ini adalah beberapa hal yang perlu diperhatikan untuk menghasilkan pendapatan dari aplikasi Android, khususnya yang didistribusikan melalui Play Store. Membuat Aplikasi Yup, cara pertama pastinya adalah membuat dulu aplikasi atau game. Penulis menggunakan Android Studio untuk kompilasi ke apk-nya. Jika orientasinya jangka panjang, aplikasi dibuat dengan menulis code dari nol. Dan dengan menggunakan asset yang tidak melanggar hak cipta karya orang lain. Asset yang dimaksud disini adalah seperti gambar, suara, video, code, design dan lain sebagainya. ...

Pengalaman Bayar Pajak Sepeda di Samsat beda Kota

Gambar
  Rabu, 3 April 2020, penulis mencoba membayar pajak sepeda yang jatuh tempo tanggal 18 April 2020 di kota yang berbeda. Tahun-tahun sebelumnya, penulis mengira pembayaran harus sesuai dengan alamat KTP dan dengan menunjukkan motor yang akan dibayarkan pajaknya, sehingga setiap kali jatuh tempo, penulis memilih untuk pulang kampung di Kediri, membayar pajak di sana. Dikarenakan April itu ada masa isolasi diri dari pemerintah terkait wabah COVID-19, dan berdasarkan informasi teman penulis bahwa untuk sekedar membayar pajak dapat dilakukan di Samsat manapun, sehingga penulis mencoba untuk membayar pajak di Samsat Kebonsari, Sukun, Malang. Melalui layanan drive thru, penulis tinggal menyiapkan KTP/SIM, STNK dan uang pembayaran. Dan akhirnya, pajak sepeda motor penulis ternyata dapat dibayarkan dengan mudah dan cepat. Dan sepertinya tanpa perlu membawa sepeda motornya sekalipun.

Teknik Mendatangkan Traffic yang Salah

Gambar
Ilustrasi pendapatan bohong Adsense Masa isolasi diri wabah COVID-19, di beberapa komunitas online banyak diperbincangkan pekerjaan yang tetap menghasilkan pendapatan, meskipun tidur-tiduran dirumah. Salah satunya berburu Adsense. Dan ada member komunitas yang tidak segan-segan, mereka menunjukkan pendapatan dengan nominal pendapatan per hari sampai jutaan, puluhan juta, bahkan ada yang sampai milyaran. Seperti yang penulis contohkan seperti gambar di atas, yang tidak lain hanyalah gambar editan Photoshop. Sebagai salah satu publisher Adsense, penulis tidak mudah percaya. Pasalnya, pertama, mereka berani pamer, tetapi menyembunyikan identitasnya dengan profile anonim. Pertanyaannya, kenapa harus anonim jika itu memang benar? Apakah karena takut di datangi orang pajak? Meskipun dengan embel-embel bahwa mereka tidak mau pamer atau apa, tetapi dengan peraturan Adsense yang ketat sekarang, rasanya tidak mungkin berpenghasilan sampai nominal itu. Kedua,...

Jebakan Batman dalam Pemrograman

Gambar
Ilustrasi Batman (Sumber gambar: Pixabay/aitoff) Seorang software engineer kelas kakap, mengomentari tulisan penulis di salah satu media online. Semula penulis memberikan tanda setuju, untuk menghormati tiga poin jawabannya yang cukup lumayan panjang, bahkan disertai gambar (yang sepertinya bukan hak cipta miliknya). Namun karena penulis merasa bahwa mungkin tulisan penulis telah berhasil menyinggung dia (sesuai isi tulisan), penulis menarik kembali tanda setuju, dan memilih untuk tidak menjawab lagi. Bukannya takut, jika dia memang profesional, dia akan tahu jika jawaban penulis adalah tulisan yang dia komentari. Posting Penulis Beberapa waktu yang lalu, penulis tergelitik untuk menjawab pertanyaan apakah lulusan IT tidak bisa pemrograman. Dan sesuai posting yang berjudul " Bukan Pekerja IT yang Dulu ", bisa saja isu itu benar, dengan alasan dan bukti yang penulis sebutkan di sana. Posting tersebut sesuai cara pandang penulis dalam belajar dan...

Peretas Kadaluarsa

Gambar
Di suatu siang, penulis dikejutkan oleh seorang teman ibu dosen yang ketakutan Google mail-nya diretas. Penulis sempat bingung juga, bukan masalah email itu terkait dengan penulis, tetapi untuk masalah retas-meretas seperti ini, penulis merasa bukan ahlinya. Mungkin karena teman ibu dosen penulis ini terlalu takut, sebab email tersebut memang dia gunakan untuk segala keperluan universitas tempat dia mengajar. Kemudian penulis pun mencoba menenangkan ibu itu, dengan memintanya mencoba mengganti password.  Dan ketika penulis melihat chat balasan seperti gambar dibawah ini, penulis menjadi yakin jika itu hanya gertakan. Yup, mana mungkin peretas emailnya masuk ke spam. Seketika itu penulis juga baru sadar, jika ternyata ancaman hanya lewat email. Tidak sekeren peretas yang melalui telpon atau dengan langsung mengambil alih perangkat seperti film-film. Apalagi dengan tambahan balasan seperti gambar di bawah ini: Dengan tanggal sudah menunjukka...

Bukan Pekerja IT yang Dulu

Gambar
Tergelitik dengan pertanyaan apakah lulusan IT (Information Teknologi) tidak bisa pemrograman. Penulis mencoba menjawab, sesuai pengetahuan dan pengalaman penulis sebagai programmer, hal tersebut mungkin saja benar. Salah satu buktinya adik penulis sendiri, dia lulusan IT dan tidak bisa jika dia harus membuat program sendiri dari awal. Artinya dia masih mampu membuat code dengan mencontoh atau melakukan perubahan syntax dari template yang sudah ada. Tetapi jika harus memulai dari nol, dia mengaku tidak ada ide. Contoh lain, pada suatu hari, penulis mengunjungi teman penulis yang juga bekerja sabagai tenaga IT di suatu sekolah. Mulanya, untuk ujian semester, penulis kira dia membuat dan menulis code sendiri untuk portal ujian berbasis web. Nyatanya, portal tersebut dia ambil dari template gratis yang ada diinternet. Dan katanya kepada penulis, "Sekarang sudah banyak yang bisa temukan gratis. Kita tinggal pilih saja yang mirip sama yang punya Dina...

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...

Algorithma Bilangan Prima dengan C++

Gambar
Screenshot kompilasi menggunakan codingground (diambil oleh penulis) Melihar traffic yang cukup banyak pada posting penulis terkait algorithma bilangan dengan Javascript dan Pascal , dibawah ini penulis mencoba untuk menuliskannya dalam kode C++. Berikut adalah kode implementasi bilangan prima, dengan menggunakan bahasa pemrograman C++. #include <iostream> using namespace std; bool isPrime( int a) { bool isprime= true ; if (a<0)isprime= false ; for ( int i=2;i<a;i++){ if (a%i==0){ isprime= false ; } } return isprime; } int main() { int angka=100;//batas angka yang mau di cek for ( int i=2;i<=angka;i++){ if (isPrime(i)) { if (i>2)cout<< "," ; cout << i; } } return 0; } Penulis menggunakan kompiler codingground C++ online, yang ada di  tutorialspoint.com .

Algorithma Bilangan Prima dengan Pascal

Gambar
Screenshot Pascal Compiler di OnlineGDB Kangen dengan bahasa pemrograman Pascal, yang merupakan salah satu bahasa pemrograman awal-awal penulis belajar tentang bahasa dan algorithma komputer, dalam tulisan ini, penulis mencoba mengimplementasikan kembali algorithma bilangan prima dengan menggunakan bahasa Pascal. Berbeda dengan jaman dahulu yang penulis harus menginstal compiler Pascal terlebih dahulu di komputer penulis, saat tulisan ini ditulis, ternyata telah banyak ditemukan Pascal Compiler Online, seperti di  https://www.onlinegdb.com/online_pascal_compiler . Dengan compiler online tersebut, tentunya akan semakin mempermudah dalam belajar bahasa pemrograman, khususnya Pascal. Berikut ini kode Pascal yang dapat digunakan untuk menampilkan bilangan prima sampai batas input yang diberikan. program BilanganPrima; Var i,j,batas,p:Integer; begin write('Ketik Batas : '); readln(batas); for i:=2 to batas do begin p:=0; ...

Animasi Lingkaran Menjauhi Titik Tengah dengan HTML5 Canvas

Gambar
Terusik mengingat pemrograman HTML5 Canvas yang penulis telah lama tidak membuat aplikasi apapun, akibat kesibukan kerja. Dalam tulisan ini penulis mencoba membuat animasi sederhana, lingkaran-lingkaran yang bergerak menjauhi titik tengah workspace. Konsepnya adalah lingkaran tidak hanya menjauhi, tetapi ukurannya semakin membesar, dan sedikit bergerak berotasi. Ide ini muncul, ketika penulis melihat video Youtube, dengan background yang kurang lebih seperti animasi di atas. Effect glow, hanya penulis gunakan untuk mempercantik tampilan. Di bawah ini adalah kode HTML5 Canvas animasi tersebut: <html> <head> <title>Dots that Move Around</title> </head> <body> <canvas id= "myCanvas" width= "1024" height= "768" > </canvas> <script> var canvas = document.getElementById( "myCanvas" ); var num=0,n=1; var points=[]; var vx=0.1,vy=0.1; var RO=0.5*Math.sqrt(c...

Alasan App atau Game Tidak Bisa Berjalan di Android Beda Merek

Gambar
Ilustrasi app tidak berjalan (Sumber gambar:Pixabay/RobinHiggins) Salah satu problem yang dihadapai oleh developer Android, aplikasi yang dibuatnya dapat berjalan dengan baik di smartphone merek satu, tetapi tidak dapat berjalan di smartphone merek lain. Hal ini akan menjadi masalah, ketika pengguna yang tidak bisa menjalankan di smartphone mereka, justru menyalahkan aplikasi, dengan memberi rating bintang jelek. Penulis adalah developer Android dengan nama Computational Lab di Play Store. Berdasarkan pengamatan penulis, app atau game tidak dapat berjalan di smartphone Android merek tertentu, dikarenakan adanya perbedaan pengembangan tingkat lanjut, meskipun versi SDK (Software Development Kit) Android-nya sama. Misalnya Android Pie yang ada di smarthpone Samsung, belum tentu sama dengan Android Pie yang ada di smartphone merek Xiaomi. Mungkin awalnya mereka sama-sama mengambil SDK Android Pie yang sama dari Google. Tetapi sebelum dipublikasikan, mereka men...