Postingan

Menampilkan postingan dari 2019

Menambah dan Menghapus Baris pada AlbertTable

Gambar
AlbertTable adalah library Java hasil modifikasi penulis yang telah diceritakan pada posting sebelumnya. Dengan AlbertTable diharapkan operasi editing cell pada JTable menjadi lebih mudah, begitu juga dari sisi pemrogramannya. Operasi editing yang dimaksud seperti melakukan copy-paste dari aplikasi Microsoft Excel atau sebaliknya. Video dibawah ini adalah preview penambahan dan penghapusan baris aplikasi Java yang menggunakan AlbertTable. Untuk mendapatkan AlbertTable, dapat di download pada link, di posting yang berjudul " Membuat Table di Java dengan AlbertTable ". Sedangkan kode berikut ini adalah contoh kode Java, penggunakan AlbertTable dalam JTable, berikut kode untuk menambahkan dan menghapus baris. package addremoverow; import AlbertTable.TModel; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Toolkit; import

Desain Software Kalkulator Outcome-Based Education Berbasis Java

Gambar
Dua bulan sebelum tulisan ini ditulis, penulis diajak berdiskusi oleh salah satu dosen penulis terkait Outcome-Based Education (OBE). Singkatnya, beliau menjelaskan, hal ini adalah berupa metode penilaian mahasiswa yang baru, akan diterapkan mulai tahun 2020 di jurusan kami, dan merupakan bentuk penyelarasan antara kebutuhan industri dan universitas, khususnya program studi yang tertuang pada visi dan misi. Untuk keperluan tersebut, penulis diberi paper yang berjudul "A Consistent Numerical Procedure for Integrated Assessment" dari Muhamed-Kassim (2014). Dimana penulis sebagai programmer, diminta untuk membantu membuat desain software untuk kalkulasi Program Lecture Outcome (PLO), yang dalam paper hanya ditulis sebagai Program Outcome (PO). Perlu diketahui, penulis disini hanyalah tenaga freelance, yang tidak terikat dengan jurusan, dan hanya membantu. First Look Tanpa membaca secara detail, dikarenakan penulis memang masih lemah dalam bahasa inggris

Membuat Table di Java dengan AlbertTable

Gambar
AlbertTable adalah tabel model turunan dari AbstractTableModel Java yang penulis buat sekitar tahun 2014 dan dulunya bernama class OBTable. Dulu penulis gunakan hanya sebagai sub class dalam aplikasi dekstop Java penulis. Dan belakangan saat tulisan ini ditulis, penulis sering gunakan kembali untuk kebutuhan membuat tabel, dan penulis pisahkan menjadi package sendiri dengan nama AlbertTable tersebut. Oleh karena itu dalam blog ini, AlbertTable penulis suguhkan dalam bentuk library Java, yang dapat di download di link berikut: AlbertTable1.1.1.jar AlbertTable1.1.0.jar AlbertTable1.0.jar Kelebihannya adalah tabel dilengkapi dengan key dan mouse adapter untuk keperluan editing dasar, sehingga pengguna dapat langsung melakukan copy-paste data, seperti dari excel sebagaimana ditunjukkan dalam video dibawah ini: Sedangkan kode berikut ini adalah contoh main class project Java, penggunaan AlbertTable: package simpletable; import AlbertTable.ClipboardKe

Membuat Library Java

Gambar
Sampai tulisan ini ditulis, penulis sering kali mendiatribusikan aplikasi penulis dalam bentuk produk jadi. Baik itu aplikasi Java berbasis dekstop, atau Android. Ternyata banyak juga programmer Java yang mendistribusikan aplikasinya dalam bentuk library atau modul. Mungkin karena alasan ide atau karya mereka diambil orang begitu saja, tetapi mereka tetap ingin berbagi ke yang lain, sehingga mereka lebih memilih untuk mendistribusikan dalam bentuk library, daripada kode aslinya. Caranya mudah, dengan menggunakan Netbeans IDE 8.2, penulis memilih project baru dan memilih mode project Java Class Library. Class-class Java terkait library ditempatkan di folder sesuai kebutuhan. Umumnya teknik pengkodean akan berbeda dibanding membuat project Java biasa, yang tidak penulis jelaskan di sini. Kemudian dengan menjalankan menu Build, library akan tergenerate dalam bentuk file *.jar, yang kurang lebih seperti gambar dibawah ini. Sedangkan file *.jar hasil

Menampilkan Error PHP

Gambar
Ada yang berbeda dengan PHP (Personal Home Page) saat tulisan ini ditulis, error pada PHP tidak langsung ditampilkan ke browser, namun perlu di set terlebih dahulu dengan salah satunya, kode di bawah ini: ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); Sebagai developer, untuk pembuatan aplikasi berbasis web, sebelumnya penulis hampir 10 tahun tidak melakukan pengkodean langsung dari awal, untuk aplikasi yang menggunakan PHP. Penulis lebih menggunakan Content Management System (CMS) seperti Wordpress dalam membangun website. Sehingga saat percobaan ini, penulis baru mengetahui jika ada perubahan di PHP tentang cara menampilkan error. Dulu jika terjadi kesalahan penulisan script, penempatan variabel atau lainnya, error akan langsung ditampilkan di browser. Entah masalah keamanan atau hal lainnya, jika tidak menggunakan tambahan kode di atas, web browser akan menampilkan kurang lebih hanya seperti gambar dibaw

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

Ngobrol Penghabisan Dana Akhir Tahun

Gambar
Ilustrasi pelatihan di hotel (Sumber gambar:Pixabay/Megha01) Suatu hari libur, di bulan Desember, penulis bersilaturahmi ke salah satu kerabat yang bekerja sebagai perangkat desa. Disana, kerabat penulis ternyata sedang dikunjungi oleh rekan kerjanya dari desa lain. Penulis pun berkenalan, tanpa perlu saling menyebutkan nama, dan penulis pun duduk serta mendengarkan perbincangan tentang kegiatan yang telah mereka lakukan, beberapa hari sebelumnya. Tampaknya, mereka begitu bangga karena dapat mengikuti kegiatan tersebut. Hal itu terlihat dari cara mereka menceritakan, begitu senangnya dapat berkenalan dengan pejabat-pejabat dari desa lain, dan dapat mengikuti acara, makan serta menginap gratis di salah satu hotel bintang lima di kota kami. Sampai-sampai. "Bagaimana tidak senang, sudah diundang, menginap gratis, dan diberi uang saku pula!" seru salah satu dari mereka ke penulis. Dalam perbincangan itu pula, rupanya acara yang mereka datangi adalah

Uji Coba HttpsURLConnection untuk Login Form dengan Java

Gambar
Dikarenakan kebutuhan pembuatan aplikasi back-end suatu website yang berorientasi gratis, penulis mencoba membuat login form menggunakan Java. Selain karena gratis, pembuatan aplikasi Java ini hanya akan diperuntukkan untuk aplikasi pembantu, versi dekstop. Sedangkan kedepannya, aplikasi yang akan dibuat akan lebih diorientasikan di website dan dalam bentuk Android. Meskipun hanya sebagai aplikasi pembantu, bagaimanapun juga masalah keamanan perlu tetap dipertimbangkan. Tetapi perlu diperhatikan, keamanan nantinya akan penulis lebih optimalkan di bagian server-nya, yaitu di kode PHP(Personal Home Page)-nya. Berikut ini adalah kode Java, login form menggunakan JFrame: package karyawan; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Image; import java.awt.Insets; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.Buf

Multiple Login dengan Cookie dan Database MySQL

Gambar
Ilustrasi multi login (Sumber Gambar:Pixabay/patricksommer) Terkait posting sebelumnya , penulis tertarik untuk membuat login user menggunakan PHP dan SQL, yang dapat dilakukan dengan device yang berbeda, tanpa menggunakan session PHP. Masih menggunakan kode PHP yang sama (dari posting sebelumnya), dan dengan melakukan sedikit perubahan, penulis memodifikasi dengan orientasi login tidak hanya dari satu device, tetapi dapat dilakukan dari device yang berbeda, terutama penulis mengubah pada struktur databasenya. Dimana database dibagi menjadi dua tabel, yaitu tabel users dan tabel access. Tabel access disini penulis gunakan sebagai pengganti session PHP. Sehingga setiap device yang digunakan untuk login akan disetting dengan nilai login_key dan masa kadaluarsa sendiri-sendiri, yang terekam di tabel access. Berikut ini adalah beberapa kode utama yang penulis gunakan di sistem login project yang sedang penulos kerjakan, saat tulisan ini ditulis. Database MySQL

Desain Login User dengan Cookie di PHP

Gambar
Penasaran dengan penggunaan PHP (Personal Home Page) session yang mulai banyak artikel yang menyarankan untuk segera meninggalkan penggunaanya, penulis mencoba membuat desain login membership dengan cookie. Salah satu latar belakangnya adalah jawaban Guidrevitch (2017), atas pertanyaan yang terkait alasan Wordpress yang meninggalkan PHP session untuk kebaikan di pihak server, di Quora.com, terutama untuk masalah performa Worpress. Penulis bingung, sampai penulis menemukan tulisan dari Pasztor (2019), yang menegaskan untuk segera menghentikan penggunaan PHP session, dikarenakan PHP session merupakan sistem kunci, yang tidak mengunci sepenuhnya, dan dapat menjadi bom waktu, jika akses secara paralel dan dalam kuantitas yang banyak terjadi. Hal itu dikarenakan PHP session masih menggunakan file system, yang perlu dibuka dan ditutup dahulu ketika akan menuliskan session yang lain. Penulis sebenarnya masih belum mempercayainya, tetapi berdasarkan pengalaman penulis menggunakan

Menambahkan reCAPTCHA v2 pada Login Form

Gambar
Sejak awal penulis belajar website, penulis sangat penasaran dengan penambahan captcha, atau angka/huruf/tahapan random yang berupa gambar, yang perlu diinputkan bersama data-data input lain dalam satu form. Captcha ini awalnya berupa angka dan huruf, namun kemudian Google mengeluarkan versi mereka sendiri yang dinamakan reCAPTCHA, khususnya versi 2 (v2) yang akan penulis sedikit uraikan di sini. Secara fungsi, penambahan captcha ini untuk menangkal aksi spamming atau abuse (penipuan). Keterangan lebih lengkap mengenai reCAPTCHA dapat dibaca di sini . Dikarenakan masalah keamanan, dan penulis sendiri sampai saat tulisan ini ditulis masih dalam tahap belajar, tidak berani untuk membuat kode sendiri, penulis lebih memilih untuk menambahkan reCAPTCHA menggunakan aplikasi pihak ketiga, seperti plugin Wordpress. Sampai akhirnya, sebagaimana terlihat pada gambar di atas, penulis bereksperimen dan ternyata menambahkan reCAPTCHA v2 Google sangat mudah. Perlu diperh

Deret Fibonacci dengan Fungsi Rekusif Javascript

Gambar
Selain bilangan prima, salah satu deret yang sering dijadikan permasalahan adalah mengimplementasikan deret Fibonacci. Dalam tulisan ini, penulis mencoba mengimplementasikan deret Fibonacci menggunakan fungsi rekursif dengan Javascript. Berikut ini adalah kode generate Fibonacci dengan Javascript: <html> <head> <title>Fibonacci</title> </head> <body> <div id= "hasil" ></div> <script> var msg= "0,1" ; function nextAngka(a,b) { if (b<1000){ a=(a+b); msg+= ", " +a; nextAngka(b,a); } } nextAngka(0,1); document.getElementById( "hasil" ).innerHTML=msg; </script> </body> </html>

Game TicTacToe dengan Greenfoot

Gambar
Game Tic Tac Toe, meskipun termasuk game yang sederhanya, ternyata sulit juga untuk membuatnya. Terutama untuk memasukkan Artificial Intelligence (AI) sebagai musuh pemain. Penulis sebenarnya telah mencoba mengimplementasikan algorithma game Tic Tac Toe dengan HTML5 Canvas pada posting sebelumnya, namun disini penulis mencoba menulis ulang dengan Greenfoot, dan melakukan efisiensi penulisan kode program. Awalnya, sesuai gambar diatas dan dalam video dibawah ini, penulis membuatnya dengan Greenfoot versi 3.x, namun karena terlalu memakan banyak memori, penulis ubah ke Greenfoot versi lebih awal, yaitu Greenfoot 2.x. Sedangkan untuk kode nya dapat di download dengan link dibawah ini: Download TicTacToe.gfar Ide AI-nya cukup sederhana, yaitu komputer mencoba bertahan, dengan mencari posisi pemain dimana paling berpotensi menang, baru kemudian mencari posisi untuk dirinya sendiri untuk menang. Untuk game versi Android-nya dapat dicoba di link dibawah ini

Review Kedua Ceksite.com

Gambar
Ceksite.com, sepertinya website ini cuma mencari traffic untuk mendapatkan income dari iklan Adsense. Tanpa menyertakan dengan jelas bagaimana cara kalkulasi mereka, memberikan harga pada website-website yang mereka tampilkan. Seperti gambar di atas, sakit rasanya website bisnis penulis, dihargai cuma 5 ribu rupiah. Sedangkan mereka menghargai website mereka sendiri dengan harga segitu. Ketika penulis mencoba untuk menghubungi, menanyakan perihal cara kalkulasi mereka, mereka hanya menyediakan form, yang sampai tulisan ini ditulis, penulis tidak mendapat jawaban sama sekali. Pikir penulis, mungkin mereka sudah banyak yang komplain, sehingga mereka berusaha menghindar, sembunyi dibalik kontak form yang belum tentu dilihat. Perlu diketahui, website edugameapp.com milik penulis adalah salah satu dari mahakarya penulis. Dengan website itu, setidaknya penulis mendapat tambahan gaji melalui Adsense juga, diluar gaji penulis sebagai freelance. Yang penulis herankan, meng