Spring Boot dan Spring Data JPA

Banyak debu, maklum jarang diisi nih blog. ūüėÄ

Well, kali ini saya mau share tentang Spring Boot dan Spring Data JPA. Sebenarnya lebih ke Spring JPA-nya. Fokusnya adalah bagaimana menggunakan Spring Data JPA untuk optimasi CRUD, jadi tidak perlu buang-buang waktu untuk bikin query CRUD¬†dasar seperti misalnya: simpan data, select atau get data, select data dengan id tertentu, atau update dan hapus data. Semua jadi lebih mudah menggunakan Spring Data JPA. Continue reading “Spring Boot dan Spring Data JPA”

Reset Password ROOT MySQL

Setelah install ulang laptop, ganti ke ElementaryOS, saya melakukan kebiasaan setelah install OS, yaitu install aplikasi-aplikasi pendukung kebutuhan saya seperti install JDK, editor untuk ngoding dan aplikasi-aplikasi server seperti MySQL, Apache.

Masalah muncul ketika saya lupa apa password untuk MySQL saya (muehehe). Padahal seingat saya MySQL saya config tanpa password (ini tidak disarankan).

Jadilah saya googling cara untuk reset password untuk user root. Dan dapat. Seperti ini step-stepnya.

  1. Stop service MySQL dulu. Bisa dengan ketik mysql service stop atau /etc/init.d/mysql stop.
  2. Lalu masuk ke MySQL via¬†safe mode. Ketik:¬†mysqld_safe –skip-grant-tables.
  3. use mysql
  4. Update password MySQL untuk user root.¬†Ketik sintaks¬†ini: update user set authentication_string=PASSWORD(“”) where User=”root”;
  5. flush privileges;
  6. Quit dari MySQL.

Harap dicatat, versi MySQL yang saya gunakan adalah versi 5.7.18.

Setelah menjalankan step pertama, saya dapat error seperti ini kira-kira:

mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists

Cara solve-nya, jalankan command ini:

Sekian.

Java Swing, Animasi Loading dan Background Process

Dalam pembuatan aplikasi, salah satu tips UI/UX yang baik adalah membuat animasi loading pada saat proses load/memuat data, khususnya ketika memuat data yang lumayan besar dari database atau resource lain. Ini dimaksudkan supaya memberikan informasi kepada end-user kalau aplikasi sedang me-load data yang prosesnya berjalan di background. Jangan sampai user mengira kalau aplikasi hang atau kesurupan, hehe.

Kali ini saya akan mencoba membuat simulasi animasi loading pada Java Swing. Untuk ini kita membutuhkan resource data yang cukup besar, file gambar untuk animasi loading-nya, dan sedikit bantuan dari class SwingWorker.

Untuk resource data, saya gunakan dataset free dari MySQL, database employees. Silakan googling.

Untuk gambar animasi loading, saya generate dari http://www.ajaxload.info/.

Untuk get data silahkan buat sendiri, crud database seperti biasanya. Data dari table employees ada sekitar 300.000 record.

Kita skip langsung ke coding di Frame-nya untuk menampilkan aksi loading. Pertama deklarasi object JDialog untuk jendela animasinya.

Buat method createDialogLoading untuk aktivasi dialog animasi.

Lalu di component trigger-nya tambahkan action berikut.

Untuk kode lengkapnya bisa dilihat di repo yang saya buat di Github. Sementara hanya bisa untuk action Limit Data.

Sekian.

 

Java Swing: Underline JLabel

Assalamualaikum.

Singkat saja, saya sedang mencari cara bagaimana membuat text bergaris bawah atau underline pada JLabel. Dan lagi-lagi StackOverflow save my day.

Cukup gunakan method setText() dan isi value-nya, bungkus dengan tag html dan tag u, seperti ini kira-kira:

Tutorial Laporan Master-Detail Di Jasperreport

Assalamualaikum.

Membuat laporan atau reporting sepertinya sudah menjadi sebuah keharusan dalam development aplikasi bisnis, misalnya saja aplikasi pos atau lebih yang lebih sederhana lagi, aplikasi kasir. Di dalam laporan ini data yang harus ditampilkan bisa jadi kompleks, sebuah data master dengan detail di dalamnya, atau bisa juga disebut laporan master-detail. Contohnya, aplikasi ingin mencetak faktur sebuah transaksi penjualan, dimana faktur tersebut menampilkan informasi master penjualan seperti: nomor atau ID transaksi, tanggal transaksi, jenis transaksi, user pembuat transaksi, total biaya, metode pembayaran dan lain-lain. Juga, faktur tersebut menampilkan data detail dari transaksi, misalnya: kode barang, jumlah barang yang dibeli, harga per satuan barang, total harga per item, dan lain sebagainya.

Demikian sekilas intro. Selanjutnya kita akan mengimplementasikan pembuatan laporan master-detail ini di Jasperreport. Saya memakai library Jasperreport 4.0.0, iReport Designer 4.0.1, NetBeans 8.1 dengan JDK 1.7. Sisanya tinggal menyesuaikan saja dengan teknologi terbaru. Continue reading “Tutorial Laporan Master-Detail Di Jasperreport”

Menambahkan Internal Padding Pada Text Component Di Java Swing

Assalamualaikum.

Meskipun sekarang jamannya udah pada JavaFX dan Android, tapi nggak apalah sekali-sekali ngepost tentang Swing, secara kerjaan di kantor masih pake Swing juga.

Sebenarnya udah cukup lama saya merasa resah (halah!) dengan tampilan text component di Swing, yang mepet ke pinggirannya. Seperti ini contohnya:

Ternyata kita bisa buat padding disitu. Caranya:

  1. Klik kanan di component-nya, pilih Properties.
  2. Di jendela Properties, pilih property Border. Pilih Empty Border.
  3. Atur Inset-nya. Saya isikan saja 5 untuk tiap sisi.
  4. Kemudian Klik OK. OK. OK.

Sudah. Tampilannya jadi berbeda sekarang.

Sekian.

Android Tutorial: Menggunakan Google Maps API

Assalamualaikum.

Beberapa hari belakangan saya sedang belajar android programming. Ternyata asyik juga. Saya jadi memutuskan mau mendokumentasikan item-item belajar saya, yang random juga sih sebenarnya.

Untuk post kali ini tentang penerapan Google Maps API pada aplikasi android yang dibuat. Buka Android Studio, buat project baru dengan empty activity. Minimum SDK saya set ke Android KitKat 4.4.4. Let’s start! Continue reading “Android Tutorial: Menggunakan Google Maps API”

Genymotion Virtual Device Not Found

Assalamualaikum.

Kebetulan hari ini saya mau ngerjain project Android. Virtual device yang saya pakai adalah si Genymotion, karena default AVD rasanya beraat banget, ngos-ngosan di laptop saya yang cuma memiliki RAM 4GB (kok malah curhat).

Kondisinya adalah: genymotion dan Android Studio sudah terkoneksi. Lalu saya start virtual device saya (Google Nexus 5 5.00 API 21), virtual device started. Aman. Masalah kemudian muncul pada saat saya run aplikasi saya, virtual device saya tidak ditemukan di dialog Select Deployment Target. Oh, ini mungkin perlu di-restart lagi virtual device-nya. Tapi sama saja, saya restart virtual device, bahkan sampai restart Android Studio, tetap nihil.

Setelah browsing, saya dapat caranya.

Mau tau caranya? Ketik amin dan klik like

Yang harus saya lakukan adalah mengubah pengaturan lokasi Android SDK milik Genymotion menjadi sama dengan milik Android Studio.

lokasi android sdk milik si Android Studio
lokasi android sdk milik si Android Studio

Okay, it’s quite easy!

screenshot-from-2016-11-28-220728
ubah lokasi android sdk si geny

Done. Dan sekarang si virtual device sudah nangkring cantik, siap buat deploy app!

ready to rock!
ready to rock!

Download Link MP3 Di Website Dengan wget

Assalamualaikum.

Wah, lagi-lagi penyakit males ngepost. OK lah, kali ini saya mau berbagi soal aplikasi yang powerful di Linux dalam urusan download-men-download (ribet ya). Nama aplikasinya adalah wget. Aplikasi ini terminal-based, jalannya di terminal aja.

Kasusnya kali ini adalah, saya ingin men-download file-file murottal milik beberapa Syaikh. Setelah browsing sama om google, saya menemukan link yang saya cari, dari juz 1 sampai 30 milik Syaikh Mishary Rashid. Link yang tersedia adalah per-surah, jadi dari surah 1 sampai 114.

screenshot-from-2016-11-27-190252

Karena tentu saja download satu-satu itu ribet -secara ada 114 surah yang mau di-download, maka saya memutuskan pakai wget. Jadilah saya mencari tutorial tentang ini, dan saya dapatkan juga command yang sesuai. Seperti ini kira-kira:

Command ini akan memfokuskan download ke file yang ber-ekstensi mp3 dan mengabaikan ekstensi lainnya, misal .html dan sebagainya.

Lalu saya ganti linknya jadi seperti ini:

Run!

Download is started. Seperti ini output-nya.

screenshot-from-2016-11-27-190747
download sedang berlangsung….

Ekstensi file lain akan diabaikan.

screenshot-from-2016-11-27-190853
Mengabaikan ekstensi selain mp3

Dan, hasilnya. 114 surah selesai dalam beberapa menit.

114 surah selesai gan!
114 surah selesai gan!

Yap, begitulah kira-kira. Kalau mau download tipe file lain juga bisa, ganti saja parameter ekstensi file nya dengan tipe lain.

Rename Root Package di NetBeans

Assalamualaikum!

Wah ternyata udah 2 bulan lebih gak ngepost, haha. Mumpung lagi mood, saya nulis aja deh. Cuma catatan kecil, gimana caranya renaming root package (atau bisa juga package di dalam package yang masih punya sub-package, ribet yak? Haha).

Jadi caranya simpel. Klik tab Files (biasanya ada di panel kiri, satu grup sama tab Projects dan Services) atau klik Window -> Files. Ke root project, di strukturnya ada folder src, nah silakan rename package-nya. Klik kanan di package yang mau di-rename, pilih Refactor, lalu Rename. Done!

screenshot-from-2016-11-03-102212

Dah gitu aja. ūüėÄ