Satu Rindu

Ya Allah ampunilah dosanya, sayangilah dia, maafkanlah dia, sehatkanlah dia, muliakanlah tempat tinggalnya, luaskanlah kuburannya, mandikanlah dia dengan air es dan air embun, bersihkanlah dari segala kesalahan sebagaimana kain putih bersih dari kotoran, gantikanlah untuknya tempat tinggal yang lebih baik dari tempat tinggalnya, keluarga yang lebih baik dari keluarganya, pasangan yang lebih baik dari pasangannya dan peliharalah dia dari siksa kubur dan siksa neraka. (HR Muslim).

 

hari ini, setahun yang lalu, kurang lebih jam setengah dua pagi, saya masih di depan layar monitor, ketika tiba – tiba handphone yang saya letakkan di samping komputer berbunyi. dan yang terjadi setelah itu adalah saya mendengar satu berita yang membuat sendi – sendi kaki saya lemas, sulit berdiri dari adik saya. salah satu berita, yang seingat saya, mampu membuat saya lemah, sulit berdiri. dan Segala Puji Hanyalah bagi Allah SWT, akhirnya setelah shalat dua rakaat, saya mampu untuk berkemas dan berangkat pulang ke kampung halaman.

 

Ya Allah ampunilah  dosa Ayah Ibuku, maafkan mereka, sehatkanlah mereka, muliakan tempat tinggalnya, luaskanlah kuburan mereka, mandikanlah mereka dengan air es dan air embun, bersihkanlah dari segala kesalahan sebagaimana kain putih bersih dari kotoran, gantikanlah untuk mereka tempat tinggal yang lebih dari tempat tinggalnya, keluarga yang lebih baik dari keluarganya, pasangan yang lebih baik dari pasangannya dan peliharalah mereka dari siksa kubur dan siksa neraka.

 

~ dalam kenangan 1 tahun meninggalnya Ibunda tercinta dan 10 tahun Ayahanda tercinta, semoga kita dipertemukan disaat dimana hanya kenikmatan yang ada.

Reversing Number, Which Algorithm is Faster?

ok, ini hasil dari jalan – jalan ke dunia maya, eksplorasi + coding sak nyuk. permasalahan : buat lagoritma untuk membalik urutan digit dalam suatu bilangan, misal 123456789 -> 987654321. saya ingin membandingkan 2 algoritma untuk solusi permasalahan ini, algoritma yang di perbandingkan adalah algoritma reverse number dengan memanfaatkan fungsi bawaan C# dan algoritma buatan sendiri dengan memanfaatkan kaidah matematikan (modulo 10). pertama saya buat algoritma balik angka dengan memanfaatkan fungsi built-in char[].reverse dalam sebuah fungsi ReverseString, kayak gini nih:

algoritma reversString, sorry pake gambar jadi gak bisa langsung copy

nah, yang kedua saya tidak menggunakan fungsi reverse, tapi kita memanfaatkan modulo 10, kayak gini:

image

hoho.., saatnya mengujinya, kita akan menggunakan masing – masing untuk 1 juta kali eksekusi, dan…….inilah hasilnya (dan kode mainnya):

image

image

kesimpulan : algorimta ke-2 (mainin bilangan dengan modulo 10) lebih cepat ~3x di banding dengan memanfaatkan fungsi builtin reverse, sebenarnya ini sangat tidak aneh sih, begitu nggak? jadi untuk reverse number, mendingan buat sendiri seperti itu. o iya, silahkan coba juga perbandingan dengan algoritma buatan anda sendir, selamat coding :)

Thread dengan Java

sekarang saya akan coba memberikan sebuah contoh sederhana membuat program multithread dengan java.

kasus:

penjumlahan bilangan – bilangan yang terdapat dalam 3 buah array (tipe integer). dengan aturan bahwa tiap bilangan pada satu array hanya dijumlahkan dengan bilangan pada array yang lain yang memiliki index yang sama

array 1 : 1 2 3 4 5

array 2 : 6 7 8 9 10

array 3 : 11 12 13 14 15

——————————+

jml : 18 21 24 27 30

asumsi: ukuran array sama (5)

menghitung penjumlahan ini secara linear tentu juga sangat mudah, tinggal melakukan iterasi dan lakukan penjumlahan:

// solusi linear
for (int h = 0; h < arr1.length; h++){ System.out.printf("sum[%d] = %d\n",h, arr1[h] + arr2[h] + arr3[h]); } [/sourcecode]cara lain untuk melakukan penghitungan adalah dengan memanfaatkan thread, karena setiap perhitungan adalah independen satu sama lain di setiap index-nya maka kita dapat mendedikasikan satu thread untuk setiap operasi penjumlahan tersebut, wah sia2 dong? mungkin iya untuk kasus ini, tapi demi kepentingan membuat contoh pemanfaatan thread, dan yang lebih penting lagi, yang merupakan alasan saya membuat contoh ini adalah, jika anda membayangkan masing - masing operasi penjumlahan tersebut adalah sebuah operasi yang memerlukan waktu yang panjang, maka akan lebih baik untuk memanfaatkan thread bukan?, bayangkan jika anda memilih cara linear, satu operasi baru di jalankan setelah operasi lain berhenti, wah bisa lama dong. disamping itu saat ini sudah jamak penggunaan processor multicore, kemampuan anda untuk memahami threading akan membantu anda untuk memaksimalkan kinerja processor (melakukan eksekuse secara paralel alih - alih secara serial). membuat thread dalam java ada 2 cara, yang membuat kelas yang di turunkan dari kelas Thread, atau kelas yang mengimplementasikan (implements) interface Runnable. untuk sekarang saya memilih cara pertama: [sourcecode language='java'] /** kelas simpleThread file simpleThread.java */ public class simpleThread extends Thread{ private String threadName; private int sum; private int num1, num2, num3; public simpleThread(String name){ super(); threadName = name; } public void setNum(int n1, int n2, int n3){ num1 = n1; num2 = n2; num3 = n3; } public void run(){ try{ sum = num1 + num2 + num3; System.out.printf("%s calculate %d+%d+%d = %d \n", threadName,num1,num2,num3,sum); Thread.sleep(100); }catch(InterruptedException ex){ ex.printStackTrace(); } } } /** kelas threadTester file threadTester.java, fungsi: tester thread*/  public class threadTester { public static void main(String[] args){ int[] arr1 = {1,2,3,4,5}; // array 1 int[] arr2 = {6,7,8,9,10}; // array 2 int[] arr3 = {11,12,13,14,15}; // array3 // solusi linear for (int h = 0; h < arr1.length; h++){ System.out.printf("sum[%d] = %d\n",h, arr1[h] + arr2[h] + arr3[h]); } // solution 2 : multi thread for (int i=0; i < arr1.length ; i++){ simpleThread st = new simpleThread("Thread "+i); st.setNum(arr1[i], arr2[i], arr3[i]); st.start(); } //st1.stop(); } } [/sourcecode]outputnya kurang lebih begini: Thread 0 calculate 1+6+11 = 18 Thread 2 calculate 3+8+13 = 24 Thread 4 calculate 5+10+15 = 30 Thread 1 calculate 2+7+12 = 21 Thread 3 calculate 4+9+14 = 27 anda lihat, perhitungan tidak di lakukan secara linear. tentunya solusi ini masih bukanlah solusi terbaik (namanya juga contoh sederhana :) ), dan bahkan aneh :D dan tugas anda adalah membuat solusi lebih baik lagi hihi, selamat belajar :D

Doa

Dua Wahai Allah, aku mengadukan padaMu kelemahan diriku dan kelemahan usahaku serta kehinaanku di antara manusia lain. Wahai Dzat Yang Maha Penyayang, kepada siapa aku harus menyerahkan diri? Apakah kepada musuh atau kerabat yang Engkau telah mengusahakan kepadanya urusanku ini?. Kalau Engkau tidak marah kepadaku, maka aku tidak minta apa – apa kecuali bahwa maaf dan kesehatan yang Engkau curahkan terhadapku hendaknya lebih luas lagi. Aku berlindung dengan cahaya wajahMu yang mulia yang menerangi langit dan bumi dan menyinari kegelapan sehingga semua urusan dunia dan akhirat bisa membaik, janganlah Engkau perlihatkan kemarahanMu padaku dan janganlah Engkau turunkan kemurkaanMu padaku. BagiMu segala puji sampai Engkau ridha, dan tidak ada daya atau kekuatan kecuali milikMu. Aamiin.

Al Mu’allim

We once had a Teacher
The Teacher of teachers,
He changed the world for the better
And made us better creatures,
Oh Allah we’ve shamed ourselves
We’ve strayed from Al-Mu’allim,
Surely we’ve wronged ourselves
What will we say in front him?
Oh Mu’allim…

Chorus
He was Muhammad salla Allahu ‘alayhi wa sallam,
Muhammad, mercy upon Mankind,
He was Muhammad salla Allahu ‘alayhi wa sallam,
Muhammad, mercy upon Mankind,
Teacher of all Mankind.
Abal Qasim [one of the names of the Prophet]
Ya Habibi ya Muhammad
(My beloved O Muhammad)
Ya Shafi’i ya Muhammad
(My intercessor O Muhammad)
Khayru khalqillahi Muhammad
(The best of Allah’s creation is Muhammad)
Ya Mustafa ya Imamal Mursalina
(O Chosen One, O Imam of the Messengers)
Ya Mustafa ya Shafi’al ‘Alamina
(O Chosen One, O intercessor of the worlds)
He prayed while others slept
While others ate he’d fast,
While they would laugh he wept
Until he breathed his last,
His only wish was for us to be
Among the ones who prosper,
Ya Mu’allim peace be upon you,
Truly you are our Teacher,
Oh Mu’allim..

Chorus
Ya Habibi ya Muhammad
(My beloved O Muhammad)
Ya Shafi’i ya Muhammad
(My intercessor O Muhammad)
Ya Rasuli ya Muhammad
(O My Messenger O Muhammad)
Ya Bashiri ya Muhammad
(O bearer of good news O Muhammad)
Ya Nadhiri ya Muhammad
(O warner O Muhammad)
‘Ishqu Qalbi ya Muhammad
(The love of my heart O Muhammad)
Nuru ‘Ayni ya Muhammad
(Light of my eye O Muhammad)
He taught us to be just and kind
And to feed the poor and hungry,
Help the wayfarer and the orphan child
And to not be cruel and miserly,
His speech was soft and gentle,
Like a mother stroking her child,
His mercy and compassion,
Were most radiant when he smiled

Chorus
Abal Qasim [one of the names of the Prophet]
Ya Habibi ya Muhammad
(My beloved O Muhammad)
Ya Shafi’i ya Muhammad
(My intercessor O Muhammad)
Khayru khalqillahi Muhammad
(The best of Allah’s creation is Muhammad)
Ya Mustafa Ya Imamal Mursalina
(O Chosen One O Imam of the Messengers)
Ya Mustafa ya Shafi’al ‘Alamina
(O Chosen One O intercessor of the worlds)

~ Sami Yusuf

[postingan ini merupakan salah satu ungkapan rasa syukur atas kelahiran Rosulullah SAW]