Reflection : java.lang.reflect
java.lang.reflect
adalah package yang menyediakan class-class dan fitur-fitur untuk mengakses informasi yang dimiliki oleh suatu class. Berkolaborasi dengan class “Class” , reflect menawarkan akses ke Constructor, Field, dan Method dari suatu class. Kita bisa men-list apa saja Methods, Fields(variable) dan Constructors, bahkan sampai pada modifier yang dimilikiny.
Summary kemampuan yang dimiliki Reflection :
- Menentukan class dari sebuah object.
- Mendapat informasi mengenai modifier dari class, mengenai fields, methods, constructors bahkan superclass-superclass.
- Mengetahui konstanta dan method sebuah interface
- Menginstansiasi sebuah kelas yang kita tidak tau namanya ( berdasarkan pada input dari user saja)
- Mengambil dan memasukkan nilai fields pada suatu object bahkan jika kita tidak mengetahui nama fields tersebut sampai pada runtime (ketika program dijalankan)
- Menginvokasi(memanggil) method dari suatu object yang kita tidak tahu sampai pada runtime
- Membuat array, size dan typenya tidak diketahui sampai pada runtime (berdasarkan pada input user saja).
Beberapa class yang berkolaborasi dalam Reflection :
- java.lang.Class
- java.lang.reflect.Array
- java.lang.reflect.Constructor
- java.lang.reflect.Method
- java.lang.reflect.Field
- java.lang.reflect.Modifier
- dan lainnya
Introduction to JUnit, Eclipse dan Netbeans
JUnit , why?
JUnit adalah suatu framework yang berisi kelas-kelas untuk melakukan testing yang terotomasi pada aplikasi kita. Kenapa pake JUnit? Toh bisa kan kita running aplikasi kita, masukkin value, enter, dan lihat apakah hasil yang ditampilkan sesuai dengan yang diinginkan. Jika tidak, saatnya mendebug, membongkar code, perbaiki, compile, run, dan test lagi ( dst , dst ,dst).
Untuk aplikasi kecil mungkin hal tersebut mudah dilakukan. Tapi ketika aplikasi sudah membesar, testing manual menjadi hal yang teramat mengerikan ( terlebih jika code yang ada dikerjakan oleh programmer amatiran seperti saya). Bayangkan jika anda harus mengetes proses registrasi dengan jumlah field yang harus dimasukkan sekitar 20. Itu baru satu proses. Pada proses transaksi jual beli, mungkin saja ada yang namanya beberapa skenario yang mungkin terjadi. Debug, Recompile, Run, and Test. Begitu seterusnya. Dengan bantuan JUnit, hidup anda akan menjadi sedikit lebih mudah.
Mock Object
JUnit memang bagus. Tapi ada kasus di mana terjadi dependencies dengan Object dari class lain, di mana test menggunakan JUnit, kita melakukan isolasi dengan melakukan test pada satu kelas tertentu. Misal saya punya Class Bell, bagian dari alarm, yang membutuhkan Class Waktu. Saya ingin test apakah pukul jam 6 Bell akan berbunyi. Tapi saya melakukan test pada jam 10 malam. Apakah saya harus menunggu sampai pukul jam 6 untuk melihat Bell saya berbunyi atau tidak?
Maka Mock Object pun digunakan untuk menciptakan kondisi dan lingkungan di mana semua hal dapat diatur. Saya akan menskenariokan dan membuat seakan2 Class Waktu saya menunjukkan pukul 6.00, dan test terhadap Class Bell saya pun dapat dilakukan.
Eclipse dan NetBeans
Eclipse adalah salah satu IDE untuk JAVA yang sangat populer. Begitu pula dengan Netbeans. Pertanyaannya , mengapa mengunakan IDE? Bukankah programming dapat menggunakan Notepad sekalipun? Produktifitas. Itulah jawabannya mengapa IDE sangat digemari. Di dunia kerja, produktifitas adalah yang utama, namun kualitas harus diperhatikan. Terkadang karena kita terlampau penuh memikirkan mengenai logic business yang harus diimplementasikan (seperti yang kita ketahui, kemampuan multithreading otak manusia sangatlah minim), kita lalai menulis code secara benar (lupa import package, deklarasi, bahkan semicolon). Saat seperti itulah IDE terasa sangat membantu. Kita dapat berkonsentrasi pada permasalahan , dan bukannya pada hal-hal trivia.
Eclipse dan Netbeans secara umum sama menawarkan beberapa fitur sama. Project file management, package, build, javadoc, bahkan refactoring dan masih banyak. Auto complete dan auto compile on the run juga menjadi hal yang sangat membantu di mana sambil mengetik kita bisa diingatkan langsung ketika kita membuat kesalahan syntax ( tanpa terlebih dahulu kita melakukan compile dan running).
Refactoring
Topik tambahan by request.
Code refactoring is the process of changing a computer program’s code to make it amenable to change, improve its readability, or simplify its structure, while preserving its existing functionality.
Berikut di atas cuplikan pengertian Code Refactoring dari wikipedia. Ada kalanya setelah process development yang panjang, kita ingin merapikan code ( mengganti name convention, penamaan variable agar lebih tepat sasaran dan sekaligus menjadikannya self explanatory). Ilustrasi yang paling mudah adalah misal kita mempunya package “com.balicamp.reflect” . Dalam package tersebut kita memiliki 100 class. Nah biasa tanpa refactoring tools, apa yang kita lakukan? membuka satu persatu class, dan merename satu persatu? Dengan refactoring, kita dapat merubah langsung nama package kita menjadi yang kita mau misal “com.balicamp.reflection” ( di eclipse, klik kanan pada nama package, pilih refactor dan pilih rename).
selengkapnya di http://en.wikipedia.org/wiki/Refactoring
Week 3rd : Summary
Senin 25 Agustus 2008 (Kejutan Tugas yang tidak jelas)
- Hari pertama setelah puas berlibur dua hari ( dan membenamkan diri membuat Class DataAdapter ), akhirnya masuk training juga (selama liburan nyaris kelaparan karena banyak tempat makan yang tutup masal).
- Begitu masuk langsung ditagih tugas Project “Tax Maintenance” pak Ar. Ya langsung saja sport jantung. Lho emangnya wajib? Menurut kabar beredar tugas itu hanya sebagai pengusir sepi di kala 2 hari tanpa training.
- “Tak ada ampun. Pokoknya ini yang terakhir kalinya saya kasih toleransi”. Begitu kira2 byte2 perkataan yang terkonvert menjadi karakter ke otakku. Untung saja kemaren sempat bermain bersama compiler, sehingga source code dah siap disubmit, umlnya blm. (benar2 SDLC yang kebalik)
- Hari ini belajar tentang Eclipse, NetBeans, Unit Test (JUnit) dan Mock Object.
Selasa 26 Agustus 2008 ( Design Pattern and Threading)
- Hari ini mempraktekkan apa yang dipelajari kemaren mengenai Eclipse, NetBeans, JUnit dan Mock Object. Dan melanjutkan project “Tax Maintenance” dengan tambahan unit testingnya.
- Kemudian tambahan materi mengenai Thread dan Multithreading. Mock Object yang didemo menggunakan EasyMock dan JMock.
- Sempat juga membahas mengenai Strategy Pattern (1 of Behavioural pattern in design patterns) dengan contoh Duck and Family.
- Ga lupa diumumkan pembagian kelompok presentasi Mysql and Properties class
Rabu 27 Agustus 2008 ( Presentation Time)
- Hari yang mendebarkan karena harus menyelesaikan tugas exercise Threading, project Tax Maintenance ( Unit testnya , beserta javadoc, uml, dan ant buildnya). Slide presentasi dibuat asal2an semalaman. Untung saja materinya cuma demo MySQL Query Browser. Jadi tinggal ngemeng deh di kelas.
- Akhir kata, presentasi yang dijadwalkan selesai satu hari ternyata tidak selesai. Kita diperkenalkan dengan tugas Project Baru ( CDRental).
- Dengan semangat dan ego tinggi ( as the leader of my team) akhirnya aku memutuskan bagi kelompokku agar masing2 membuat project itu sendiri2.
- 4 jam aku berkutat dengan design pattern, serialization dan CRUD class, akhirnya ditaklukan rasa penat dan lelah.
Kamis 28 Agustus 2008 (Presentation and java.lang.reflect)
- Akhirnya ketemu kembali dengan pak Ar yang kabarnya nyekar kemaren rabu. Dengan terkaget-kaget ia menyuruh kami melanjutkan presentasi yang tidak selesai. Bla3 mengenai Database dan Presentasi mengenai Properties yang dibawakan dengan cerianya oleh Team Anton, Joko, dan Geuis. (Dua orang menjadi korban situasi : Rino dan Doli)
- Sisa waktu digunakan untuk membahas java.lang.reflect (class di java), dan lagi2 diberikan tugas yang teramat tidak jelas , mencari solusi bagi kasus di mana agar beberapa query dijalankan ketika terjadinya event insert/update/delete tanpa koding di script/code java.
Jumat 29 Agustus 2008 ( Singleton and Factory in the learning)
- Benar dugaanku. Pak ar nagih tugas kemaren. Langsung saja kukeluarkan jurus ketikan tanpa bayangan, menuangkan knowledge yang kupunya dari dalam otakku yang berukuran lebih dari 20GB ini. Alhasil pak Ar suka dengan summary yang dikumpulkan kelompokku.
- Hari ini mengenal lebih dekat dengan Singleton dan Factory Pattern. Summary mengenai topik2 tersebut di atas akan menyusul besok.
- Hari ini aku menemukan artikel menarik mengenai programmer junior yang mempelajari design pattern. Ada saat di mana programmer junior (misalnya saya) yang teroverwhelmed dan terdogma oleh design pattern, sehingga mengalami design pattern fever yang ditandai dengan berusaha menerapkan sebanyak mungkin design pattern dalam aplikasi yang dibuat dan berpikir bahwa design pattern akan membuat aplikasi terlihat keren dan complex (padahal ga). Kalo dianalogikan , programmer junior yang mempelajari design pattern itu seperti monyet yang memegang granat tangan.
Makanan Sehat buat Laki-laki
1. Tomat
Rasa asam tomat dapat mendorong pengeluaran getah lambung, membantu mencerna protein dan sebagainya. Vitamin C yang banyak terkandung di dalamnya dapat memproduksi lem tulang mengautkan pembuluh darah. Kadar kalium pada mineral di dalamnya paling banyak, membantu mengeluarkan unsur garam dalam darah, dan memiliki fungsi menurunkan tekanan darah.
2. Kedelai
Menurut statistik, laki-laki yang sering mengonsumsi makanan dari kacang kedelai, rasio mengidap penyakit kanker prostat lebih rendah dibanding mereka yang jarang mengonsumsi makanan yang terbuat dari kacang kedelai. Selain itu, kedelai juga efektif dalam memperbaiki pengikisan zat tulang laki-laki. Setelah melewati usia 60 tahun, zat tulang laki-laki akan mulai terkikis, dan kondisinya sama seriusnya dengan menopause wanita. Sesering mungkin mengonsumsi kacang kedelai dapat memenuhi lesitin. Dan Lesitin juga sudah dibuktikan berhubungan dengan kemampuan belajar dan daya ingat jangka pendek.
3. Labu merah
Setelah menginjak usia 40 tahun, sebagian besar laki-laki memiliki masalah dengan hipertrofi prostat. Sebuah hasil percobaan di AS mendapati, bahwa penderita hipertrofi prostat yang mengonsumsi ekstrak labu merah, terbukti berhasil mengurangi jumlah pembuangan kemih penderita, sekaligus memperbaiki gejala penyakit lainnya. Labu merah juga merupakan sumber terbaik vitamin E, dapat melawan penuaan.
-
Archives
- August 2008 (25)
-
Categories
-
RSS
Entries RSS
Comments RSS