Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

Memahami Authentication

Menjelang penghujung bulan Ramadhan, ada yang bertanya di milis JUG. Alhamdulillah, ada kesempatan bersedekah di detik-detik terakhir bulan puasa ;) Karena pertanyaannya membutuhkan jawaban yang cukup panjang, baiklah kita jawab di blog saja.

Berikut pertanyaannya.

Saya pernah menggunakan Spring Security Framework. Tapi kalau cuma pakai, tanpa ngerti konsep dasar dan cara kerjanya dasarnya sakit kepala juga akhirnya kalau semua terjadi secara automagically.

Jadi kalau murni tanpa menggunakan Framework apapun :

  • Bagaimana membuat proses loginnya? dari beberapa artikel yang saya baca (saya baru tahu) katanya login username dan passwordnya dimasukan kedalam HTTP Header.

Contohnya :

Authorization:Basic c2VzdWF0dUB5YWhvby5jb206YmlzbWlsbGFo

dimana c2VzdWF0dUB5YWhvby5jb206YmlzbWlsbGFo adalah Base64 encoding dari sesuatu@yahoo.com:bismillah (username:password)

benarkah begitu?

  • Bagaimana server mengenali client jika kita menggunakan method GET? (ini pertanyaan konsep sangat mendasar sekali). Mungkin jawabannya ya dengan token.
  • Tapi ditaruh dimana? apakah dengan saya tempelkan saja di URL? misal

GET /thewebapp/category/324?token=abcde1234

atau saya masukkan dalam HTTP header? tapi dengan header apa?

Dan berikut jawaban saya

Lanjut membaca ...


Desain Skema Database

Pada artikel sebelumnya, kita telah belajar bagaimana memulai membuat aplikasi, yaitu dengan cara:

  • membuat daftar fitur
  • membuat UI Mockup

Kedua langkah di atas membantu kita untuk memvisualisasikan apa yang ada di imajinasi kita menjadi bentuk yang bisa dilihat oleh banyak orang. Ada beberapa keuntungan dari proses visualisasi ini, yaitu:

  • mengurangi kepusingan, karena apa yang sebelumnya cuma dibayangkan, sekarang terlihat bentuknya
  • menunjukkan kekurangan dalam imajinasi kita. Seringkali saya mendapati ada informasi yang kurang sehingga harus ditanyakan lagi ke user. Kali lain, saya mendapati ternyata perpindahan antar screen tidak sistematis sehingga membingungkan user. Atau saya terlalu kompleks mendesain tampilan yang seharusnya bisa lebih sederhana.
  • menjadi bahan diskusi dengan user, menghindarkan kita dari membuat sesuatu yang tidak dibutuhkan user.
  • sebagai pedoman kita untuk merancang skema database

Poin terakhir tersebut akan menjadi bahasan kita pada artikel kali ini.

Saya tidak akan membahas tentang teori normal form. Seharusnya para mahasiswa informatika sudah mempelajarinya di mata kuliah Basis Data yang biasanya diberikan di semester 3. Silahkan ambil lagi mata kuliah tersebut di tahun/semester depan kalau ternyata Anda ketiduran waktu dosennya menerangkan. Sedangkan pembaca yang tidak kuliah di informatika (seperti saya), bisa baca-baca referensi dari Wikipedia atau tutorial di sini.

Artikel ini ditulis dengan asumsi pembaca sudah paham apa itu normal form. Silahkan belajar dulu kalau belum paham, baru kembali lagi ke sini.

Lanjut membaca ...


Tahapan Membuat Aplikasi

Seperti sudah dijelaskan pada artikel sebelumnya, anjuran saya buat mereka yang ingin mahir pemrograman adalah

Buatlah aplikasi production barang 5-10 buah. Insya Allah setelah itu Anda akan mahir.

Setelah kita menguasai dasar-dasar pemrograman seperti:

  • konsep variabel dan tipe data
  • control flow (looping, branching, jumps)
  • pengelompokan (function, class, package)

tidak serta merta kita bisa langsung membuat aplikasi. Analoginya, walaupun kita mahir menggunakan pengolah dokumen seperti MS Word atau Open Office, tidak berarti kita bisa menulis seri lanjutan dari Harry Potter and the Deathly Hallows.

Inilah sebabnya banyak pemegang sertifikasi pemrograman seperti Oracle Certified Java Programmer yang tidak bisa membuat aplikasi, walaupun mendapatkan nilai yang tinggi.

Ada berbagai macam aplikasi, diantaranya:

  • aplikasi bisnis, yaitu aplikasi yang membantu pencatatan kegiatan bisnis. Contohnya aplikasi akunting, purchasing, perpustakaan, mini-market, bank, payment gateway, dan sebagainya
  • aplikasi sistem, yaitu aplikasi yang memungkinkan berbagai perangkat bekerja sama. Contohnya sistem operasi, device driver, embedded system, dan lainnya
  • dan berbagai kategori aplikasi lainnya.

Artikel kali ini akan kita batasi hanya untuk membahas aplikasi bisnis. Mengapa demikian? Karena aplikasi bisnis adalah genre aplikasi yang paling banyak dibuat orang. Sebagai ilustrasi, kita hanya mengenal beberapa sistem operasi populer, yaitu Microsoft Windows, Linux, MacOS. Bandingkan dengan aplikasi bisnis, untuk proses akuntansi saja berapa ribu aplikasi yang tersedia. Bahkan walaupun sudah ada yang gratis dan lengkap, tetap saja banyak perusahaan yang minta dibuatkan aplikasi sejenis. Jadi dari sisi komersial dan ketersediaan lapangan kerja, pembuatan aplikasi bisnis tetaplah pangsa pasar terbesar.

Pada artikel ini, kita akan membahas proses berpikir dan tahapan mulai dari penjabaran aplikasi yang akan dibuat, sampai menjadi skema database dan desain aplikasi berorientasi objek (object-oriented).

Lanjut membaca ...


Aplikasi Prakarya vs Aplikasi Production

Salah satu pertanyaan yang sering ditanyakan di forum programmer adalah

Saya ingin belajar bahasa pemrograman [isi bahasa yang Anda sukai di sini], bagaimana ya caranya supaya bisa mahir?

Dan jawaban saya selalu sama

Coba buatlah aplikasi berkualitas production barang 5 - 10 kali, setelah itu insya Allah akan mahir.

Jawaban di atas memang singkat, tapi jalan untuk menuju kesana sungguh tidak mudah dan tidak singkat. Apalagi untuk pemula, setidaknya ada dua pertanyaan besar:

  1. Apa sih aplikasi production itu?
  2. Bagaimana cara membuat aplikasi?

Pertanyaan pertama akan kita jawab pada artikel ini. Sedangkan pertanyaan kedua akan kita jawab pada artikel selanjutnya.

Lanjut membaca ...


Membuat subreport Jasper dalam SpringMVC

Pada artikel ini, kita akan membuat implementasi download file PDF/XLS dari aplikasi web. Fitur ini akan kita implementasi menggunakan library Jasper Report dan framework Spring MVC.

Projectnya akan kita buat menggunakan Maven, supaya bisa dibuka dengan baik (portable) di berbagai IDE. Untuk bisa memahami artikel ini dengan baik, pembaca harus sudah paham tentang Spring Framework dan Spring MVC. Yang belum paham Spring Framework bisa membaca artikel terdahulu tentang Dependency Injection. Sedangkan pembahasan tentang Spring MVC bisa dibaca di rangkaian artikel berseri tentang membuat aplikasi web dengan Spring MVC.

Source code lengkap dapat diakses di repository Github. Bagi yang ingin tahu urutan langkah-langkah implementasinya, bisa lihat commit history.

Lanjut membaca ...