suhe arie's pages

Programmer juga manusia

Fitur baru di Java SE 6 (Mustang)

Meskipun Java SE 6 sudah lama beredar, sepertinya tidak salah untuk me-review  kembali hal-hal baru yang ditawarkan oleh Java SE 6 (dikenal dengan nama Mustang), tentunya dengan membandingkannya dengan Java SE 5. Secara umum, tidak ada hal yang benar-benar baru dari sisi arsitektur bahasa Java nya sendiri. Pengembangan lebih banyak dilakukan pada API, utilities, dan integrasi beberapa library yang sebelumnya merupakan komponen tambahan diluar JDK yang harus didownload secara terpisah.Berikut ini beberapa hal yang saya anggap menarik untuk dibahas. Tentunya ada banyak hal lain yang ada di Java SE 6 tapi tidak saya bahas disini karena kurang menarik (menurut saya). Continue reading

Advertisements

November 12, 2012 Posted by | Java | , | 1 Comment

Towards bug-free software – Unit Testing dengan JUnit 4

Unit testing menjadi semakin populer beberapa tahun belakangan ini, seiring dengan permintaan akan peningkatan kualitas software yang mendekati sempurna. Meskipun sebuah aplikasi yang 100% ‘bug free’ tidak akan pernah ada, tetapi setidaknya ada beberapa hal yang bisa dilakukan untuk menuju ke arah tersebut. Salah satunya adalah dengan mengimplementasikan unit testing.

Secara sederhana, unit testing dapat diartikan sebagai pengujian/testing terhadap satuan terkecil atau komponen dari sebuah software atau aplikasi untuk memastikan bahwa komponen tersebut bekerja dengan baik, sebelum melakukan testing terhadap aplikasi secara keseluruhan. Metode ini sebenarnya bukan hal yang sama sekali baru. Banyak orang sudah melakukan hal ini sejak lama dengan cara manual. Setelah komponen selesai di-develop, programmer atau tester akan melakukan test secara manual terhadap komponen tersebut dengan memberikan berbagai macam input and menganalisa output yang diberikan oleh komponen tersebut. Hal ini tentunya membutuhkan waktu yang panjang dan bisa jadi merupakan sesuatu yang membosankan, karena harus dilakukan berulang-ulang sampai semua skenario selesai diuji dan memberikan hasil sesuai ekspektasi. Inilah yang akhirnya memunculkan ide untuk membangun framework untuk melakukan unit testing secara otomatis (automated unit testing). Metode ini mengarah pada sesuatu yang dinamakan Test Driven Development, dimana skenario test didefinisikan terlebih dahulu, bahkan sebelum aplikasinya sendiri mulai didevelop.

Dengan unit test otomatis, semua skenario test bisa dijalankan secara otomatis, berulang-ulang, tanpa melibatkan interaksi manusia. Unit test penting untuk dilakukan secara terus menerus, berulang-ulang – setiap kali kode aplikasi mengalami perubahan – untuk memastikan bahwa setiap komponen masih berfungsi dengan benar setelah adanya penambahan fitur atau perbaikan logika di dalam komponen tersebut. Dengan demikian, tester bisa mengalihkan fokus pada testing terhadap aplikasi secara keseluruhan. JUnit (http://www.junit.org/) adalah framework unit test yang populer untuk aplikasi yang dibangun dengan Java. Untuk melakukan unit test, programmer perlu menulis kode tambahan (selain kode aplikasi itu sendiri) yang memberikan berbagai macam input dan mengindikasikan output yang diharapkan. Hal ini biasanya dilakukan terhadap setiap method dari setiap class, yang bisa dianggap sebagai unit terkecil dari aplikasi. Release terakhir dari JUnit adalah JUnit 4 yang mengimplementasikan annotation untuk mempermudah programmer untuk menuliskan test class.

OK, let’s get started.. Continue reading

October 26, 2012 Posted by | Java | , , | 1 Comment

Eclipse – Java IDE, untuk apa ?

Kenapa kita butuh yang namanya IDE ?

Kita bisa membuat sebuah aplikasi Java, hanya dengan bermodalkan notepad, textpad, editplus, vi, vim, dan berbagai macam editor teks lainnya untuk mengetik source code kemudian meng-compile nya dengan menggunakan shell/command prompt. Tidak ada yang salah dengan metode ini, malah saya sangat menganjurkan pada setiap teman-teman yang baru belajar untuk memulai pembelajarannya dengan metode seperti ini. Tujuannya, agar kita bisa paham tentang semua yang kita kerjakan sampai ke low level, sebelum kita menggunakan perangkat lain yang serba otomatis dan canggih. Sehingga, jika suatu saat kita menghadapi masalah dengan perangkat otomatis tersebut, kita bisa mencari penyebabnya dan menyelesaikannya sendiri.

Jika kita hanya membuat aplikasi yang berskala kecil, mungkin kurang dari 10 file source code, dengan 100 baris per file nya, metode di atas masih bisa dilakukan. Tapi, jika project yang akan dikerjakan adalah project besar, terdiri dari ratusan file source code, total ratusan ribu baris kode, dengan puluhan library, maka kita membutuhkan perlengkapan perang yang bisa mengatur semua itu dengan baik dan menyediakan berbagai fasilitas untuk mempermudah kita dalam membangun aplikasi. Perangkat itulah yang disebut sebagai Integrated Development Environment (IDE).

Di Java, kita mempunyai banyak pilihan IDE, di antaranya Eclipse, Netbeans, IntelliJ IDEA, Borland JBuilder, Oracle JDeveloper, dan lain lain. Eclipse dan Netbeans adalah IDE yang banyak digunakan karena gratis dan open source.

Kali ini, kita akan mencoba membuat sebuah aplikasi sederhana dengan menggunakan Eclipse sebagai IDEnya. Langkah-langkahnya sebagai berikut: Continue reading

August 16, 2008 Posted by | Java | , , , , | 29 Comments

Lebih dari sekedar HelloWord

Artikel ini merupakan lanjutan dari artikel sebelumnya, yang berhenti sampai membuat dan manjalankan aplikasi yang terkenal, HelloWorld. Sekarang kita akan belajar apa itu classpath, imports, file java, file class, file jar, swing, dan hal-hal yang berkaitan erat dengan pemrograman Java lebih dalam daripada sekedar HelloWorld.

Saya akan tetap menggunakan editor sederhana seperti notepad dan melakukan semuanya secara manual. Mengapa tidak langsung pakai editor seperti Eclipse, Netbeans atau IDE canggih yang lain ?
Alasan pertama, karena ini akan membuat kita memahami “behind the scene things”, yang merupakan fundamental dari Java, sehingga ketika kita menggunakan IDE yang canggih, kita sudah mengetahui, apa yang sebenarnya terjadi.
Alasan kedua, supaya saya bisa berbagi tentang eclipse atau netbeans di artikel berikutnya… Hehe, it’s not a real reason friend 😀

Tipe Data

Java mengenal 2 macam tipe data. Yang pertama adalah tipe data primitif, yaitu byte, short, char, int, long, float, dan double. Yang kedua adalah tipe data object. Ini adalah tipe yang dibuat dari definisi class. Root class di Java adalah class Object, semua class yang ada di library java maupun yang kita buat sendiri adalah turunan dari class Object.

Ok, mari kita mulai dengan membuat aplikasi Kalkulator. Direktori kerja saya saat ini adalah C:\Java. Buka notepad, kemudian ketik kode berikut (saya tetap berpendapat bahwa mengetik lebih baik daripada copy and paste).

package suhearie.blog.morehelloworld;

public class Kalkulator {

public static void main(String[] args) {
if (args.length < 2) { System.out.println("Penggunaan: java Kalkulator operand1 operand2"); } else { System.out.println("Hasil: 5"); } } } [/sourcecode]

Continue reading

July 19, 2008 Posted by | Java | , , , | 9 Comments

Belajar Java, mulai dari mana ?

Java, my world, my passion..

Java is in the golden age, every programmer hears about “write once, run everywhere”. The promises are platform independent, open standard, pure object oriented, high performance, rapid development, managed environment, safe, etc, etc..

Pertanyaan ini sangat sering saya temui, baik di mailing list, di forum programmer, atau dari teman-teman. Biasanya orang bertanya hal ini karena sering mendengar tentang Java, teman-teman pakai Java, kemudian ingin tahu apa itu Java, tapi bingung apa yang harus dipelajari pertama kali. Umumnya, orang yang ingin  belajar Java akan bingung harus mulai dari mana. Ini cukup dapat dimaklumi, karena Java sedikit berbeda dengan bahasa pemrograman yang lain.

Sebagai contoh, kalau mau belajar Visual Basic, pasti install Visual Basic dulu, kemudian baca help atau cari tutorial. Mau belajar PHP, tinggal download PHP, install, baru coba-coba. Mau belajar Dot Net, install dulu Visual Studionya. Almost all are quiet straightforward, tidak banyak pilihan, yang akan membuat kita sedikit kebingungan, seperti yang biasa ditemui orang saat akan belajar Java. Di Java, kita akan selalu berhadapan dengan pilihan-pilihan. Untuk yang sudah berpengalaman, hal ini sangat bagus, karena kita bebas memilih arsitektur, platform, tools yang sesuai dengan kebutuhan kita. Tapi buat yang baru akan belajar, ini memang bisa menjadi mimpi buruk, dan akhirnya membatalkan niat untuk belajar Java, bahkan sebelum dia mulai belajar. Saya harap, Anda tidak termasuk golongan yang terakhir ini, hehe..

Ok, kita mulai dengan “Java” nya. Java adalah general purpose programming language, artinya bahasa pemrograman yang bisa digunakan untuk membangun aplikasi dengan tujuan umum seperti aplikasi desktop, web, mobile, sampai ke aplikasi skala enterprise. Jadi dengan bahasa yang sama, yaitu bahasa Java, kita bisa membuat berbagai jenis aplikasi dengan menggunakan peralatan dan library yang tepat untuk tujuan kita tersebut. Java adalah bahasa dengan konsep Object Oriented Programming (OOP) murni, bukan OOP setengah-setengah seperti yang ada di beberapa bahasa lain yang ingin menyelipkan konsep OOP di pemrograman yang dasarnya adalah prosedural.

Continue reading

July 5, 2008 Posted by | Java | , , | 21 Comments

SCJP, finally… 86%

Finally, I finished my two months learning of various books and mock exams with just two hours of exam session. SCJP is Sun Certified Java Programmer, an international standard of Java Programmer certified by Sun Microsystem (inventor of Java programming language). I took the 1.5 version of this test since the 1.4 version of Java is being abandoned. I got discount for the exam voucher from Inixindo. I paid USD 130, while the original price is USD 150, pretty good 😀 .

Thanks God, I passed the exam successfully and I got a nice grade for it, 86% overall. In my opinion, the mock exams I studied before the real exam are little bit more difficult than the questions in the real exam. So, if you plan to get this certification and you have taken some mock exams with good scores, be confident to pass the real exam.

One of my purposes of taking this certification is to preparing the next step in my career. You can find it in details if you read this post.

Recommended book to read:

  • SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055), by Kathy Sierra and Bert Bates
  • SCJP Exam for J2SE 5, by Paul Sanghera, Apress.

Recommended resources:

  • Javaranch site

See my exam report here…SCJP Report

January 30, 2008 Posted by | Java, My Days | , , | 5 Comments