Postingan

Menampilkan postingan dari September, 2019

Visualisasi Metode Biseksi dengan HTML5 Canvas

Gambar
Metode biseksi atau dikenal juga dengan nama metode setengah selisih, adalah salah satu metode numerik untuk mencari akar-akar. Penulis telah lama berkecimpung di perhitungan numerik. Sayangnya sampai tulisan ini ditulis, penulis sudah hampir tiga tahun tidak menyelesaikan permasalahan numerik yang baru, kecuali di aplikasi Algebra Equation Calculator . Dalam posting ini, penulis mencoba mengingat kembali kemampuan penulis tentang metode numerik. Dan karena penulis sedang tertarik untuk belajar HTML5 Canvas, oleh karena kode dibawah ini adalah hasil percobaan penulis menggunakan HTML5 Canvas untuk memvisualisasikan hasil perhitungan dengan metode biseksi untuk mencari salah satu akar dari persamaan f(x)=x 2 -4x-12. <html> <head> <title>Visualisasi Metode Setengah Selisih</title> </head> <body> <canvas id= "myCanvas" width= "800" height= "600" > </canvas> <script> var ...

Masalah dan Solusi Random di C++

Gambar
Dalam bahasa pemrograman C++, penggunaan fungsi random (acak) tidak semudah yang penulis bayangkan. Untuk menggenerate nilai acak 0.0 sampai 1.0, memang menghasilkan nilai random, Tetapi di C++ selalu menghasilkan urutan angka acak yang sama bahkan ketika program dijalankan mulai lagi dari awal. Kode di bawah ini adalah contoh kode C++ untuk menggenerate angka acak menggunakan fungsi rand() untuk menggenerate bilangan acak bulat dan asli. #include <iostream> #include <time.h> using namespace std; double doubleRand() { return double (rand()) / ( double (RAND_MAX) + 1.0); } int main( int argc, char *argv[]) { timeval time; gettimeofday(&time, NULL); long millis = (time.tv_sec * 1000) + (time.tv_usec / 1000); for ( int i=0;i<10;i++){ cout<<rand()<< " " <<doubleRand()<< " " <<time<<endl; } return 0; } Fungsi rand() sendiri menghasilkan bilangan acak integer...

Kode C++ untuk Membaca dan Menghitung Data dalam File

Gambar
Karena suatu kebutuhan, penulis diminta membuatkan kode program bahasa C++ untuk membuka file dan menghitung nilai rata-rata data yang ada di dalamnya. Dimisalkan data tersebut tersimpan dalam file data.txt, terdiri dari dua kolom data yaitu data sumbu x dan y seperti di bawah ini: File data.txt 0 0.01 1 0.1 2 0.19 3 0.28 4 0.37 5 0.46 6 0.55 7 0.64 8 0.73 9 0.82 10 0.91 11 1 12 1.09 13 1.18 14 1.27 15 1.36 16 1.45 17 1.54 18 1.63 19 1.72 Tugas kode program itu adalah menghitung nilai rata-rata data kolom sumbu y. Dengan menggunakan library fstream dan nama file diorientasikan sebagai input argv untuk mempermudah penggunaan program. Disebabkan pembacaan menjadi tipe data string, untuk keperluan perhitungan, diperlukan konfersi Berikut ini adalah kode program untuk menyelesaikan kasus diatas. #include <iostream> #include <fstream> #include <string> #include <stdio.h> using namespace std; int getNumData(string a) { int ...

Mengubah Objek 3D Hellosceneform untuk Augmented Reality

Gambar
Berikut ini adalah pengalaman penulis mencoba merubah object 3D aplikasi Hello Sceneform untuk keperluan membuat Augmented Reality (AR) menggunakan ARCore. Proyek ini adalah bagian dari kerjasama penulis dengan salah satu Tim Penelitian Jurusan Fisika Universitas Brawijaya Malang. ARCore adalah library Google Play untuk keperluan AR. Library ini berupa plugin, yang perlu di instal secara tersendiri pada device smartphone yang akan digunakan. Untuk Android, di Play Store saat percobaan ini dilakukan, ARCore telah berubah nama menjadi Google Play Service for AR.  Keterangan lebih lanjut mengenai ARCore dapat dibaca di website mereka, yaitu di https://developers.google.com/ar/ Sedangkan Hello Sceneform adalah aplikasi output dari project Android Studio Hellosceneform, yang dapat di download di link Github, di bawah ini.  https://github.com/google-ar/sceneform-android-sdk Tidak hanya di Android Studio, platform pengembangan ARCore, sebenarny...

Jadwal Gajian Pendapatan In-app Purchase Play Store

Gambar
Terkait pembayaran Play Store, berikut ini adalah pengalaman penulis tentang jadwal pembayaran/gajian Play Store untuk produk in-app purchase. Penulis adalah Android developer dengan nama Computational Lab di Play Store. Pada tanggal sekitar 10 Agustus 2019, penulis mengecek halaman Order management Google Play Store Console, dan ternyata penulis mendapat rejeki atas pembelian aplikasi penulis, melalui fitur in-app purchase sampai nominal USD 48.99. Karena mengira pembayaran dapat dilakukan setiap tanggal 15, penulis merubah treshold (ambang/batas) pembayaran yang semula USD 50 ke USD 40, di menu Payment settings di Play Store Console, dengan harapan pendapatan yang sudah terkumpul sampai bulan Agustus tersebut, masuk ke rekening penulis. Nyatanya, sampai tanggal 17 Agustus 2019, pembayaran tersebut masih dipending. Usut punya usut, ternyata pembelian senilai USD 48.99 di atas, dilakukan pembeli pada tanggal 2 Agustus 2019. Artinya pembayaran tid...

Algorithma Segitiga Pascal dengan HTML5 Canvas

Gambar
Segitiga Pascal merupakan contoh kasus yang sering digunakan sebagai latihan logika pemrograman, dan sangat berguna dalam matematika, yaitu untuk perhitungan polynomial.  Namun dalam posting ini, hanya akan ditunjukkan bagaimana mengimplementasikan algorithmanya. Dengan menggunakan Javascript array, ternyata algorithma pembuatan segitiga tersebut lebih mudah dan simple. Dibawah ini adalah kode contoh implementasi Javascript untuk pembuatan segitiga Pascal, dengan menggunakan HTML5 Canvas sebagai media untuk menampilkannya. <html> <head> <title>Pascal's Triangle</title> </head> <body> <canvas id= "myCanvas" width= "1024" height= "768" > </canvas> <script> var canvas = document.getElementById( "myCanvas" ); var ctx = canvas.getContext( "2d" ); ctx.fillStyle = "#01579b" ; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillSty...

Perguruan Tinggi, Investasi atau Formalitas Semata?

Gambar
Ilustrasi pendidikan sarjana (Sumber gambar: Pixabay) Penulis sedikit merenung dan miris, tentang sebenarnya apa tujuan pendidikan di Indonesia. Banyak yang bergelar lebih dari S1, namun apakah hal tersebut hanya formalitas dan untuk mendapatkan gaji dengan nominal yang tinggi. Sampai tulisan ini ditulis, dikalangan masyarakat, asumsi tujuan utama sekolah sampai mendapat gelar sarjana, hanyalah untuk orientasi kerja. Yaitu untuk dapat bekerja dikantoran, dan dengan gaji di atas standar. Bahkan, bagi sarjana yang sudah bekerja sekalipun, banyak dari mereka yang berusaha untuk sekolah lagi. Agar mendapatkan kenaikan gaji, dari gelar sarjana barunya, yang tentu saja lebih tinggi. Pertanyaannya, bagaimana pengaruhnya terhadap perusahaan atau instansi yang diwajibkan menggaji karyawan sesuai gelar, dimana tingkat kemampuan karyawan ternyata tidak sebanding dengan tingkat gelarnya? Yang pasti "Collapse". Bayangkan jika pekerjaan yang harus ditanga...

Beli Token Listrik Lewat Toko Online

Gambar
Listrik sudah menjadi kebutuhan pokok. Dan saat tulisan ini ditulis, terdapat dua macam jenis pembayaran listrik dari PLN (Perusahaan Listrik Negara), yaitu secara pra bayar yang dibayar sesuai jumlah kWh yang telah dipakai dalam rentang satu bulan, dan pasca bayar menggunakan pulsa listrik. Untuk pembelian secara pra bayar sudah penulis lakukan tiap bulan untuk membayarkan tagihan listrik rumah ibu penulis.  Sedangkan untuk yang pasca bayar, tulisan berikut ini adalah tutorial dan pengalaman pertama penulis melakukan pembelian tagihan listrik secara pasca bayar, yang berupa token listrik melalui toko online Tokopedia. Gambar di atas adalah meteran listrik rumah dimana penulis sedang menyewa dan yang akan penulis tambahkan pulsanya. Pada meteran tersebut terlihat bahwa ID Pelanggan 45014822146. Melalui aplikasi Tokopedia, penulis masuk ke menu tagihan dan top up, kemudian penulis pilih menu Listrik PLN. Seperti terlihat pada gambar di atas, terda...

Implementasi Barnsley Fern dengan HTML5 Canvas

Gambar
Dalam fractal, Barnsley Fern dikenal sebagai salah satu fractal yang dibuat dengan Iterated Function System (IFS). Dalam Wikipedia (2019) disebutkan untuk membentuk Barnsley Fern seperti gambar diatas diperlukan 4 parameter berikut: dengan fungsi rekursif IFS-nya adalah: Persamaan di atas, menunjukkan nilai x dan y, yang digunakan sebagai penentu posisi pixel yang diperbaharui setiap kali perulangan. Di mana variable p digunakan sebagai syarat kondisi pembagian random IFS-nya. Misalkan dengan nilai batas random 100, ilustrasi penggunaan nilai p dan sesuai kode dibawah adalah seperti gambar berikut: Jika nilai random didapat nilai 2, yang artinya berada pada range 2/100=0.02, maka fungsi rekursif yang digunakan adalah fungsi f3, jika nilai random sama dengan 53, yang artinya pada range 53/100=0.53, maka fungsi rekursif yang digunakan f2, jika nilai random didapat 12, dengan range pada 12/100=0.12, maka fungsi rekursifnya adalah f4, dan seterusnya. ...

Visualisasi 60 Data Gempa Terkini BMKG dengan HTML5 Canvas

Gambar
Selain data data autogempa.xml yang digunakan sebagai bahan proyek kecil pada posting sebelumnya. BMKG (Badan Meteorologi, Klimatologi dan Geofisika) juga menyediakan 60 Gempabumi M 5.0+ yang didistribusikan secara publik. Data tersebut adalah 60 data gempa terbaru, dengan minimal sebesar 5 skala Richter. Berikut ini adalah cuplikan data gempaterkini.xml yang penulis download saat tulisan ini ditulis. <Infogempa> <gempa> <Tanggal>08-Sep-19</Tanggal> <Jam>20:49:17 WIB</Jam> <point> <coordinates>125.35,6.17</coordinates> </point> <Lintang>6.17 LU</Lintang> <Bujur>125.35 BT</Bujur> <Magnitude>5.0 SR</Magnitude> <Kedalaman>68 Km</Kedalaman> <_symbol>../imagesSWF/k2b.swf</_symbol> <Wilayah>282 km BaratLaut MELONGUANE-SULUT</Wilayah> </gempa> <gempa> <Tanggal>07-Sep-19</Tanggal> <Jam>04:14:27 WIB</Jam...