Sunday, September 22, 2013

Elegi penggunaan Latex part III

Kali ini saya ingin melanjutkan tulisan saya sebelumnya yang mencoba mengajak pada pembaca tentang betapa pentingnya menulis pake Latex.
Sebenarnya di internet sudah ada alat lain yang bisa digunakan untuk menulis latex selain menggunakan koding manual. Nama alat ini adalah Lyx. Sebelum saya mengenal Latex sudah terlebih dahulu saya mengenal Lyx, sayangnya saya g tau cara pakenya karena saya g familiar dengan sintax Latex. Sekarang pun walau saya udah tahu syntax Latex, tapi tetap aja saya bingung pake Lyx. Mungkin pembaca yang lebih berpengalaman sudah sangat familiar sehingga tidak kesulitan.
Masalahnya kemarin sampe kenapa saya tidak jadi beralih ke Lyx adalah karena saya pengen membuat cheatsheet untuk ujian. Saya bingung gimana ngaturnya biar bisa sekecil mungkin di Lyx. Akhirnya terpaksa saya koding manual pake Latex editor (tex studio) dan jadi deh yang bisa anda baca di sini:
https://docs.google.com/file/d/0B1irLqfPwjq0UWdwZ0hYR21DMk0/edit
Adapun source latex-nya anda bisa liat di sini:
https://gist.github.com/fjr66/6654227
Saya tidak katakan hal ini g bisa dilakukan di Lyx, cuman untuk pengalaman saya kemarin, saya g bisa. Makanya saya langsung koding aja di latex editor.
Di  samping itu --- untuk coder tahap lanjut --- Lyx itu sudah terintegrasi antara editor dan compilernya. Jadi bagi yang biasa di Linux g akan bisa merasakan penggunaan editor-editor yang tersedia di Linux, semisal gnu Emacs atau vi editor yang punya fasilitas yang sangat keren untuk dilewatkan. Dan tentunya bisa juga digunakan untuk menulis Latex.

Tuesday, September 17, 2013

Java Parallel fork/join

Dalam Tulisan kali ini saya ingin sedikit berbagi pengalaman tentang hal-hal terbaru yang nanti akan keluar di java 8. Seperti kita ketahui, nanti rencananya akan ada sedikit pembaruan terhadap rilis selanjutnya dari java, antara lain adanya lambda expression, bulk operation, method-reference, dan yang paling keren nanti adalah adanya optimasi parallel-computing dengan bantuan teknik fork/join.

Optimisasi dengan metode fork/join ini mengambil keuntungan dari kemampuan multicore processor. Sehingga multithread tidak dicoding secara manual, akan tetapi tinggal menerapkan implementasinya.  Agar bisa menggunakan konsep fork/join ini, terlebih dahulu anda harus menyediakan jdk8 beserta IDE yang sesuai. Bagi pengguna eclipse petunjuknya bisa dilihat di link berikut:
 http://www.oracle.com/technetwork/articles/java/lambda-1984522.html

Setelah saya mencoba mengimplementasikan teknik ini pada sebuah  percobaan sederhana, yakni simulasi SPH, ternyata terdapat perbedaan yang cukup signifikan antara menggunakan teknik ini dengan tidak menggunakan teknik ini. Dalam simulasi SPH tersebut, partikel yang digunakan sejumlah 2500. Ketika tidak menggunakan teknik fork/join simulasi yang dilakukan agak tersendat-sendat. Hal ini dapat dilihat pada video berikut:



Sementara ketika teknik fork/join digunakan hasil simulasinya menjadi mulus, yang dapat dilihat pada video berikut:



Adapun sedikit potongan kode bagaimana mengimplementasikan konsep ini ke dalam project yang dibuat---disamping sudah dijelaskan pada tutorial di atas---dapat dilihat pada snippet berikut:

Tuesday, September 3, 2013

Barnes-hut tree in JavaFX

Pada kesempatan kali ini saya akan membagikan sedikit pengalaman saya dalam javaFX kepada pembaca semua yang mungkin bisa mengambil manfaat. Sekaligus mempopulerkan blog saya ini.
Yang saya akan ungkapkan kali ini adalah algoritma barnes-hut yang merupakan algoritma yang biasa digunakan dalam software-software simulasi fisika (semisal molekular dinamik dan semisalnya) [1].

Kali ini saya belum membahas tentang bagaimana algoritma tersebut digunakan untuk menghitung interaksi dalam simulasi. Akan tetapi yang saya lakukan adalah memberi gambaran dasar bagaimana algoritma tersebut bekerja. Tepatnya saya akan melakukan penggambaran animasi barnes-hut tree yang merupakan elemen inti dari algoritma ini.

Mengapa algoritma ini digunakan, adalah karena efisiensinya yang lebih bagus ketimbang skema brute-force yang biasa kita gunakan. Di mana kalo pake brute-force itu kompleksitasnya sampe O(N^2) maka dalam barnes-hut ini, kompleksitasnya adalah O(N log N).



Untuk source-nya dapat anda download di link berikut:
https://docs.google.com/file/d/0B1irLqfPwjq0YXA0emt2WWMtNkU/edit?usp=sharing


Referensi:
1. http://arborjs.org/docs/barnes-hut