Jumat, 30 Maret 2012

Solusi Persamaan Aljabar Simultan

         Persamaan aljabar simultan adalah persamaan yang memiliki banyak variabel bebas, sehingga herus dikerjakan secara simultan. metode yang biasa digunakan untuk menyelesaikan persamaan silultan adalah metode cramer. namun secara umum ada dua cara dalam menyelesaikan persamaan simultan ini yaitu:
  1. metode langsung (direct method) : metode mensubstitusi tiap variable untuk mencari nilai dari variable tersebut.
  2. metode iterasi (iterative method): metode dengan cara memperkirakan nilai awal, kemudian mengurangi nilai taksiran awal secara berturut2 hingga nilai eror yang di dapat kecil sesui dengan eror yang kita izinkan.
   beberapa metode yang sering dipakai untuk menyelesaikan persamaan aljabar simultan antara lain:
 
  • metode eliminasi Gauss
  • Metode Cramer


Pemrograman

             Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram. Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.

       Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.

       Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.

Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:

  1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
        Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.







Metode False Position

       Metode Bisection yang diterangkan sebelumnya  memiliki kelemahan pokok, yaitu: kecepatannya dalam mencapai  divergensi. Namun demikian, metode ini memiliki kelebihan yaitu  kepastian atau jaminannya dalam menuju konvergensi. Dalam postingan ini akan dibahas suatu metode solusi baru yang memodifikasi metode bisection, yang kinerjanya lebih cepat dalam mencapai konvergensi yaitu metode false position.
     Solusi akar (atau akar-akar) dengan menggunakan metode false position merupakan modifikasi dari Metode Bisection dengan cara memperhitungkan ‘kesebangunan’ yang dilihat pada kurva berikut:













        Perhatikan kebangunan 2 segitiga Pcb dan PQR di atas, sehingga persamaan berikut dapat digunakan:

       Persamaan di atas disebut sebagai persamaan rekursif dari metode false position. Kecepatan atau laju konvergensi dari metode false position sama dengan Metode Bisection, yaitu ‘konvergensi linier’, namun dengan faktor pengali (konstanta) yang lebih besar dari 1/2 (faktor pengali berkisar antara 1/2 => 1). 

Algoritma

Asumsi awal yang harus diambil adalah sama seperti pada Metode Bisection, yaitu: ‘menebak’ interval awal [a,b] dimana f(x) adalah kontinu padanya, demikian pula interval tersebut harus terletak ‘mengapit’ (secara intuitif) nilai akar a, sedemikian rupa sehingga:  
f (a) × f (b) <= 0

persamaan rekursif  dari metode false position ini adalah:

algoritma pembuatan programnya adalah :
  1. program akan membaca nilai a, b, e, n.  (dimana a dan b adalah nilai perkiraan awal )
  2. fa <-  f(a)
  3. fb <- f(b)
  4. tulis program sesuai pada gambar di atas.
  5. selesai















Selasa, 27 Maret 2012

Metode Bisection

Pengertian

Metode bisection atau metode bagi dua membagi interval ( antara x1 dan x2  pada suatu fungsi f(x) )  dimana diperkirakan terdapat sebuah akar, menjadi 2 subinterval yang sama besar. Akar tersebut dicari dalam salah satu subinterval dan interval tidak boleh terlalu lebar.
 
Alogaritma

Langkah 1 :
Pilih taksiran nilai a sebagai batas bawah interval dan taksiran nilai b sebagai batas atas interval. Jika terpenuhi kondisi :
  • f(a) x f(b) < 0  ; maka ada akar dalam interval, selanjutnya ke langkah 2.
  • f(a) x f(b) > 0  ; maka tidak ada akar dalam interval. Geser posisi interval. 
  • f(a) x f(b) = 0  ; maka a  dan b, salah satu merupakan akar.

Langkah 2 :
Taksiran akar yang pertama c  dimana, c = (a + b )/2

Langkah 3 :
Evaluasi keberadaan akar, apakah dalam subinterval pertama (antara a dan c ) atau dalam subinterval kedua (antara c dan b). Jika diperoleh :
  • f(a) x f(c) < 0  ; akar berada dalam subinterval pertama, maka b = c. selanjutnya ke langkah 4.
  • f(a) x  f(c) > 0  ; akar berada dalam subinterval ke dua, maka a = c. Selanjutnya ke langkah 4. 
  • f(a) x  f(c) = 0  ; c adalah  akar.

Langkah 4 :
Kembali ke langkah 2 dan proses hingga langkah 3.

Senin, 26 Maret 2012

Simulasi CFD Aliran di Antara 2 Plat Sejajar

Saat sebuah fluida dengan densitas tertentu mengalir melalui celah antara dua plat sejajar, maka pola aliranya akan semakin cepat seiring dengan titik output aliran. berikut adalah langkah-langkah membuat program simulasi CFD menggunakan sofware CFDSOF untuk mengetahui pola alirannya :
1. buat pola 2 plat sejajar dengan panjang 1 m dan lebar 0,1 m . lalu bentuk grid (50 untuk panjang , dan 20 untuk lebar ) berikut langkah-langkahnya

 tentukan input dan out put seperti gambar dibawah ini,




 2.  masukan besar kecepatan arah U pada kolom input aliran dengan cara : klik input - KS atur bagian input
      - masukan nilai kecepatan yang diinginkan.
     

 3.  Lakukan iterasi dengan cara = olah-iterasi  , tentukan berapa banyak iterasi yang ingin dilakukan.  
      pastikan iterasi dilakukan hingga mencapai nilai konvergen.
Lihat hasil simulasinya di : hasil- kontour,  pilih kategori kecepatan , velocity magnitude. maka akan didapat hasil simulasi seperti dibawah ini :
 




















Integrasi Numerik MEtode Simpson

Metode integrasi numerik adalah suatu cara untuk menghitung aproksimasi luas daerah di bawah fungsi yang dimaksud pada selang yang diberikan.
Integrasi numerik metode simpson adalah metode yang digunakan dengan mem-fitting persamaan quadratik kedalam tiga point yang melalui f(x) untuk mengetahui luas area yang berada di bawahnya.. diilustrasikan kedalam grafik ayng terdapat pada buku computer oriented numerical method ,V. Rajaraman halaman 147.
persamaan umum metode simpson adalah sebagai berikut :





 logaritma dalam menyelesaikan aturan simpson adalah :

1. untuk i = 1 ke n+1 kerjakan instruksi berikut (catatan n+1 harus ganjil)
2. Baca fi
3. Ulangi intruksi 1

4. jumlah f1 + (fn+1)
5. untuk i=2ke nlangkah-langkahnya sebagai berikut :
6.jumlah <---- jumlah + 4fi
7. ulangi instruksi 5
8. untuk i=3 ke n-1 longkap2 kerjakan instruksi berikut :
9. jumlah <--- jumlah + 2fi
10. ulangi instruksi 8
11. tulis integral
12. berhenti

Ada dua aturan simpson yang digunakan

Menghitung luas bidang lengkung dengan aturan Simpson I adalah rumus luas untuk 3 (tiga) ordinat yaitu : y0, y1 dan y2 atau jika jumlah ordinat lebih banyak dapat dikatakan, rumus pendekatan ini digunakan untuk menghitung luas bidang lengkung pada setiap jarak ordinat (h) kelipatan 2.
Untuk menghitung atau mendapatkan rumus luas bidang lengkung dengan metode aturan Simpson I, dapat dilakukan dengan 2 (dua) cara, yaitu :
Cara I :



                        Gambar 1 Bidang lengkung (aturan Simpson I - Cara I)

Seperti terlihat pada gambar 4.3, misalkan persamaan garis lengkung bidang tersebut adalah y = a0 + a1.x + a2.x². Dengan integrasi, luas bidang lengkung di atas (A) dapat dihitung sebagai berikut :
• Persamaan garis : y = a0 + a1.x + a2.x² ……….. [I]
• Luas semua : A = 02h dA = 02h  ydx = 02h (a0 + a1.x + a2.x²)dx
A = 02h (a0.dx) + 02h (a1.x.dx) + 02h (a2.x²dx)
A  = a0.x + ½ a1.x² + 1/3a2.x³ = a0.2h + ½ a1.(2h)² + 1/3a2.(2h)³
A  =  2a0.h + 2a1.h² + 8/3a2.h³………. [II]
Misalkan :        A = B.y0 + C.y1 + D.y2 ………. [III]
Dari persamaan [I]:
Bila :    x = 0                maka :  y0 = a0 + a1.0 + a2.0 = a0
x = h                maka :  y1 = a0 + a1.h + a2.h²
x = 2h              maka : y2 = a0 + 2a1.h + 4a2.h²
Masukkan y0, y1 dan y2 di atas ke persamaan [III], didapat :
A = B(a0) + C(a0 + a1.h + a2.h²) + D(a0 + 2a1.h + 4a2.h²)
    = (B.a0 + C.a0 + D.a0) + (C.a1.h + 2D.a1.h) + (C.a2.h² + D.4a2.h²
    = (B + C + D)a0 + (C + 2D)a1.h + (C + 4D)a2.h² ………. [IV]
Dari persamaan [II]  : A = 2h. a0 + 2h.a1.h + 8/3h. a2.h²
dan [IV], didapat :
( B + C + D )   = 2 h …….(1)
( C + 2D )        = 2 h …….(2)
( C + 4D )        = 8/3 h … .(3)
Dari (3) – (2) didapat : (C+ 4D – C – 2D) = 8/3 h – 2h
                                      2D = 2/3 h,  D = 1/3 h
Dari (2) : (C + 2/3h) = 2 h,   C = 2h – 2/3h = 4/3 h
Dari (1) : (B + 4/3 h + 1/3 h) = 2 h,  B = 2h – 5/3 h = 1/3 h
Jadi didapat : B = D = 1/3 h dan C = 4/3 h
Dimasukkan ke persamaan [III], didapat :
      A = 1/3 h.y0 + 4/3 h.y1 + 1/3 h.y2

A = 1/3 h (1.y0 + 4.y1 + 1.y2 )
 

Cara II :



 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gambar 2 Bidang lengkung (aturan Simpson I - Cara II)

Luas bidang lengkung semua (ABCDHF) = Luas Trapesium ACDF + luas tembereng parabola DEFH
Luas Trapesium ACDF           = ½ (y0 + y2) x 2h = h (y0 + y2)………..( 1 )
Luas tembereng DEFH           = 2/3 luas jajaran genjang DFGI
                                                = 2/3 (DI x AC) = 2/3 DI . 2h
                                                = 2/3 EH . 2h = 4/3 h (BH – BE)
                                                = 4/3 h [y1 – ½ (y0 + y2)]
                                                = 4/3 h (y1 – ½ y0 – ½ y2)………………………(2)

Dari (1) dan (2) :
Luas keseluruhan bidang lengkung     = h (y0 + y2) + 4/3 h (y1 – ½ y0 – ½ y2)
                                                            = 1/3 h (3y0 + 3 y2) + 1/3 h (4y1 – 2y0 – 2y2)
                                                            = 1/3 h (3y0 + 3y2 + 4y1 – 2y0 – 2y2)
 A = 1/3 h (1.y0 + 4.y1 + 1.y2)

Jadi harus diingat, untuk aturan Simpson I :
- Angka pengali                       : 1/3
- Faktor Simpson I                  : 1, 4, 1
- Jarak ordinat kelipatan          : 2
 

 untuk penjelasan selanjutnya akan menyusul


Minggu, 25 Maret 2012

Mencari Nilai Deret Faktorial Menggunakan VB

Dalam matematika, faktorial dari bilangan asli  n adalah hasil perkalian antara bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan disebut n faktorial. Sebagai contoh, 5! adalah bernilai  5×4×3×2×1 =120
fungsi faktorial didefenisikan sebagai berikut :









berikut adalah langkah-langkah membuat program faktorial menggunakan visual basic editor :
buat box pada kolom userform seperti dibawah ini :



















klik 2 kali pada commandbutton lalu tuliskan program seperti di bawah in :

Private Sub commandbutton_Click()
'Program menghitung deret faktorial
'Irawan Sentosa

Dim a, hasil As Double
hasil = Val(textbox1.Text)
For a = Val(textbox1.Text) - 1 To 1 Step -1
Deret.AddItem hasil
Deret.AddItem a

hasil = hasil * a
textbox2.Text = hasil

Next

If hasil < 0 Then
MsgBox "tidak ada faktorial negatif"
ElseIf hasil = 0 Then
MsgBox "hasil faktorial adalah 1"
ElseIf hasil = 1 Then
MsgBox "hasil faktorial adalah 1"
End If

End Sub

run program dengan menekan tombol f5 pada keyboardkomputer

hasilnya seperti dibawah ini : 








































semoga bermanfaat 



Metode Iterasi(penjelasan umum)


Sebelum memahami lebih mendalam tentang metode iterasi, kita tentu pernah mendengar rumus ABC untuk mencari akar-akar pada persamaan kuadrat ax2+ bx + c = 0. Rumus ABC yang dimaksud adalah 




Cara mendapatkan persamaan di atas sederhana dengan menggunakan metode substitusi mengikuti langkah-langkah berikut :
           -          Dari persamaan kuadrat dibawah ini, bagi dengan a untuk mendpatkan koefisien x2 = 1:
       persamaanya menjadi 

           -          Pindahkan c/a ke ruas sebelah kanan , sehingga
           -     Dengan teknik melengkapkan kuadrat didapat persamaan seperti di bawah ini :
    
          -          Pindahkan b2/4a2 ke ruas kanan sekaligus di tambahkan dengan nilai –c/a sehingga menjadi   persamaan :

       -          Hilangkan kuadrat di ruas kiri dengan mempangkatkan kedua ruas dengan ½ sehinga menjadi 

        -          Sisakan x pada ruas kiri maka akan di dapat rumus ABC :

Dari metode mencari akar-akar persamaan di atas, maka dengan metode subsitusi dibutuhkan beberapa langkah. Namu, jika persamaannya mempunyai orde lebih dari 2 maka langkah untuk mencari akar-akarnya akan semakin panjang. Metode yang paling mungkin dipakai adalah metode trial and error. Namun , metode ini pun kurang efektif jika harus dilakukan secara manual. Untuk itu, saat ini kebanyakan metode yang dilakukan adalah menggunakan komputer hingga mendekati nilai yang diinginkan. Jika nilai yang ditaksir masih belum mencapai batas error yang ditentukan, maka komputer akan terus menghitung sesuai dengan persamaan yang diberikan. Metode inilah yang disebut dengan metode iterasi. Ada beberapa metode iterasi yang biasa dipakai saat ini  yaitu :
-          Metode bisection
-          Metode false position
-          Metode newton raphson
Setidaknya terdapat lima pertanyaan mendasar yang harus dijawab sebelum kita menilai apakah sebuah metode iterasi tersebut relevan atau tidak. Kelima pertanyaan tersebut adalah :
a.       Bagaimana cara memilih nilai taksiran pertama kali.
b.      Bagaimana proses yang dilakukan dari menentukan taksiran pertama hingga mendekati nilai perkiraan berikutnya.
c.       Seberapa cepat metode ini konvergen terhadap akar persamaan.
d.      Berapa banyak perhitungan komputasi yang dibutuhkan pada tiap iterasi
e.       Kapan proses iterasi akan berhenti.
Jika kelima pertanyaan ini dapat dipenuhi, maka kita dapat memilih metode iterasi mana yang paling efektif pada tiap kasus yang akan diselesaikan. Penjelasan untuk masing-masing metode iterasi akan diberikan pada postingan selanjutnya.

CFD (Computational fluid dynamics)

Pengetahuan umum CFD
Computational Fluid Dynamics (CFD) adalah metode perhitungan dengan sebuah kontrol dimensi, luas dan volume dengan memenfaatkan bantuan komputasi komputer untuk melakukan perhitungan pada tiap-tiap elemen pembaginya. Prinsipnya adalah suatu ruang yang berisi fluida yang akan dilakukan penghitungan dibagi menjadi beberapa bagian, hal ini sering disebut dengan sel dan prosesnya dinamakan meshing. Bagian-bagian yang terbagi tersebut merupakan sebuah kontrol penghitungan yang akan dilakukan adalah aplikasi. Kontrol-kontrol penghitungan ini beserta kontrol-kontorl penghitungan lainnya merupakan pembagian ruang yang disebut tadi atau meshing. Nantinya, pada setiap titik kontrol penghitungan akan dilakukan penghitungan oleh aplikasi dengan batasan domain dan boundary condition yang telah ditentukan. Prinsip inilah yang banyak dipakai pada proses penghitungan dengan menggunakan bantuan komputasi komputer. Contoh lain penerapan prinsip ini adalah Finite Element Analysis (FEA) yang digunakan untuk menghitung tegangan yang terjadi pada benda solid.
Sejarah CFD berawal pada tahun 60-an dan terkenal pada tahun 70-an awalnya pemakaian konsep CFD hanya digunakan untuk aliran fluida dan reaksi kimia, namun seiring dengan perkembangannya industri ditahun 90-an membuat CFD makin dibutuhkan pada berbagai aplikasi lain. Contoh sekarang ini banyak sekali paket-paket software CAD menyertakan konsep CFD yang dipakai untuk menganalisa stress yang terjadi pada disain yang dibuat. Pemakaian CFD secara umum dipakai untuk memprediksi :
  • Aliran dan panas
  • Transfer massa
  • Perubahan fasa seperti pada proses melting, pengembunan dan pendidihan
  • Reaksi kimia seperti pembakaran
  • Gerakan mekanis seperti piston dan fan
  • Tegangan dan tumpuan pada benda solid
  • Gelembung elektromagnetik
CFD adalah penghitungan yang mengkhususkan pada fluida. Mulai dari aliran fluida, heat transfer dan reaksi kimia yang terjadi pada fluida. Atas prinsip-prinsip dasar mekanika fluida, konservasi energi, momentum, massa, serta species, penghitungan dengan CFD dapat dilakukian. Secara sederhana proses penghitungan yang dilakukan oleh aplikasi CFD adalah dengan kontrol-kontrol penghitungan yang telah dilakukan maka kontrol penghitungan tersebut akan melibatkan dengan memanfaatkan persamaan-persamaan yang terlibat. Persaman-persamaan ini adalah persamaan yang membangkitkan dengan memasukan parameter apa saja yang terlibat dalam domain. Misalnya ketika suatu model yang akan dianalisa melibatkan temperatur berarti model tersebut melibatkan persamaan energi atau konservasi dari energi tersebut. Inisialisasi awal dari persaman adalah boundary condition. Boundary condition adalah kondisi dimana kontrol-kontrol perhitungan didefinisikan sebagai definisi awal yang akan dilibatkan ke kontrol-kontrol penghitungan yang berdekatan dengannya melalui persaman-persamaan yang terlibat.
Secara umum proses penghitungan CFD terdiri atas 3 bagian utama:
  1. Prepocessor
  2. Processor
  3. Post processor
Prepocessor adalah tahap dimana data diinput mulai dari pendefinisian domain serta pendefinisian kondisi batas atau boundary condition. Ditahap ini juga sebuah benda atau ruangan yang akan dianalisa dibagi-bagi dengan jumlah grid tertentu atau sering juga disebut dengan meshing. Tahap selanjutnya adalah processor, pada tahap ini dilakukan proses penghitungan data-data input dengan persamaan yang terlibat secara iteratif. Artinya penghitungan dilakukan hingga hasil menuju error terkecil atau hingga mencapai nilai yang konvergen. Penghitungan dilakukan secara menyeluruh terhadap volume kontrol dengan proses integrasi persamaan diskrit. Tahap akhir merupakan tahap post processor dimana hasil perhitungan diinterpretasikan ke dalam gambar, grafik bahkan animasi dengan pola warna tertentu.
Hal yang paling mendasar mengapa konsep CFD (software CFD) banyak sekali digunakan dalam dunia industri adalah dengan CFD dapat dilakukan analisa terhadap suatu sistem dengan mengurangi biaya eksperimen dan tentunya waktu yang panjang dalam melakukan eksperimen tersebut. Atau dalam proses design enggineering tahap yang harus dilakukan menjadi lebih pendek.  berikut adalah contoh hasil simulasi CFD pada dunia otomotif

Senin, 19 Maret 2012

Finite Volume Method for Convection-Diffusion Problem

        Metode volume hingga digunakan untuk melakukan pendekatan dalam penyelesaian masalah yang berkaitan dengan penomena konveksi. Pada kasus aliran panas batang logam yang pada dua sisinya terdapat perbedaan temperatur yang pernah dibahas  sebelumnya. sebenarnya terdapat peristiwa konveksi. peristiwa konveksi ini terjadi karena panas pada batang logam merambat ke udara. perambatan panas inilah yang jika menyebar dinamakan dengan peristiwa difusi.
      pada gambar di atas dapat di lihat perambatan panas dari sisi 1 ke sisi 2. panah merah menunjukan panas  yang merambat ke udara juga ikut mengalir dari sisi 1 ke sisi 2 yang merupakan peristiwa konveksi dan difusi. sebenarnya pada udara juga terjadi peristiwa rambatan internal antar molekul udara , namun nilainya lebih kecil dibandingkan dengan konveksi. persamaan umum dari difusi-konveksi ini adalah :




       Kualitas dari pendekatan peristiwa konveksi sangat dipengaruhi oleh metode diskritisasi .Dalam melakukan proses diskritisasi, ada beberapa hal yang mempengaruhi kualitas dari hasil simulasi CFD salah satunya adalah bentuk dari gird yang digunakan. biasanya grid yang digunakan berbentuk kotak dan segitiga. untuk grid yang berbentuk segi tiga biasanya dipengaruhi oleh tingkat ketajaman dari ketiga sudutnya. 

           Terdapat beberapa perkiraan yang digunakan untuk mengetahui penomena konveksi dan difusi pada satu tutik tertentu antara lain :
1. Central differenting scheme
2. upwind differentcing scheme
3. hybid differencung scheme, dan
4. power law scheme 





Minggu, 18 Maret 2012

Hikmah Dari Tidak Terkabulnya Doa


Assalamualaikum wr wb Sahabatku,kisah ini saya copy dari tulisanya Pak Imam Puji Hartono, sangat inspiratif . semoga bisa sama-sama mengambil hikmahnya.

Dalam sebuah pengajian yang membahas tentang Do’a, salah seorang jamaa’h bertanya sekaligus mengeluh kepada Ustadz,"Ustadz, di manakah keadilan Allah itu?, telah lama saya berdoa dan memohon kepada Allah, namun tidak pernah dikabulkan. Padahal saya shalat wajib maupun sunnah, puasa sunnah, bersedekah, berbuat kebaikan, tapi doa dan keinginan-keinginan saya tidak DIA kabulkan. Sedangkan teman saya si Fulan, ibadahnya kacau, shalatnya hanya Jum’atan, itu juga kadang2, bicaranya sering menyakitkan hati, akhlaknya buruk, tapi apa yang dimintanya pada Allah terkabul dengan cepat. Oh sungguh menurut saya Allah tidak adil. "

 Pak Ustadz kemudian bertanya,"Bagaimana jika ada pengamen berpenampilan seram, bertato, bertindik, lagunya jelek, suaranya fals dan memekakkan telinga, apa yang Anda akan lakukan?". Jamaah itu menjawab,"Segera saja saya beri uang agar dia cepat berlalu dari hadapanku". Pak Ustadz bertanya lagi,"Lalu bagamana jika pengamen itu besuara merdu mendayu, menyanyi dengan sopan dan penampilannya rapi lagi wangi, apa yg Anda akan lakukan?". "Akan saya dengarkan dan saya nikmati hingga akhir lagu, lalu saya minta ia bernyanyi lagi sekali lagi dan tambah lagi..",kata jamaah tsb sambil tertawa. Pak Ustadz, "Kalau begitu bisa saja Allah bersikap begitu kepada para hambanya yang saleh. Jika ada manusia yang berakhlak buruk dan dibenci-Nya berdoa dan memohon padaNya, maka Allah akan palingkan wajah-Nya dan segera memerintahkan kepada Malaikat: 'Cepat berikan apa yang dia minta. Aku muak dengan pintanya!, kasihlah apa yang ia minta di dunia atas kedurhakaannya kepada-Ku" Pak Ustadz itu kemudian menambahkan, “Tapi bila yg menadahkan tangan adalah hambaNya yg saleh dan rajin bersedekah, meminta kepada-Nya, maka boleh jadi Allah menunda pemberiannya dan memerintahkan kepada malaikat-Nya: "Tunggu,tunda dulu apa yang dipintanya, karena AKU menyukai doa-doanya, AKU menyukai tangis isaknya dan AKU tidak ingin ia menjauh dari-Ku setelah mendapat apa yg dipintanya. AKU ingin mendengar tangisnya karena saya mencintainya..". Jamaa’ah : “Terima kasih Pak Ustadz, sekarang saya sudah tahu jawabannya dan saya akan bertaubat memohon ampun atas prasangka buruk saya kepada Allah selama ini”.

Sahabatku, Moral kisah di atas adalah, jika doa kita belum Allah kabulkan, boleh jadi Allah menunda pemberiannya, karena apa yang kita minta melalui doa itu sebenarnya tidak baik bagi kita, dan akan membawa kemudharatan. Allah Maha Mengetahui maksud penundaannya namun kita tidak mengerti. Dalam surat Al Baqarah ayat 216, Allah Swt berfirman, “Wa'asaa an takharu syai'an wahuwa khairul lakum, wa'asaa an tuhibbuu syai'an wa huwa syarrul lakum, wallahu ya’lamu wa antum laa ta’lamuun”, artinya, “Boleh jadi kamu membenci sesuatu, padahal ia amat baik bagimu, dan boleh jadi (pula) kamu menyukai sesuatu, padahal ia amat buruk bagimu; Allah mengetahui, sedang kamu tidak mengetahui” Hikmah lainnya mengapa do’a kita belum dikabulkan, boleh jadi karena Allah mencintai kita dan Allah merindukan rintihan dan tangisan kita. Nasehat Sufi Agung Syaikh Abdul Qadir-Jailani dalam Mafatih al-Ghaib, “Jangan salahkan Allah bila doa tak dikabulkan dan jangan pula menggerutu atau jemu,” Artinya, berdoalah terus menerus dan jangan pernah putus asa dari rahmat Allah. Juga selalu berprasangka baiklah kepada Allah karena kita tidak tahu apa yang terbaik bagi diri kita dan hanya Allah yang Maha Mengetahui. Wallahu’alam bissawab.

Semoga Allah Swt senantiasa melindungi kita dari berprasangka buruk kepada Allah, dan semoga Allah senantiasa mengijabah doa-doa kita dan dan anak keturunan kita. Amiin. Semangat pagi Sahabatku, Alhamdulillah sudah hari Jum'at (TGIF), selamat beraktifitas menjemput rezeki Allah dan jangan lupa saling berlomba dalam kebaikan dan saling berpesan dalam kebenaran dan kesabaran. Untuk Anda yg sedang dilanda musibah/sakit, Semoga Allah segera mengangkat musibah/penyakitnya dan menggantinya dgn kesehatan dan kebahagiaan. Amin Jangan lupa hari Jum'at kita disunnahkan banyak2 baca Shalawat Nabi dan juga baca Surat Al Kahfi. Allahummashallii ala sayyidina Muhammad wa ala'ali sayyidina Muhammad. Bâraka Allâh fîkum. Amiin Jakarta, 

16 Maret 2012 Wassalamualaikum wr wb Imam Puji Hartono (IPH)

Sabtu, 17 Maret 2012

Algoritma Mencari nilai X dan Y pada persamaan aX+bY=C dan pX+qY=R

Kita tentu tidak asing lagi dengan persamaan
aX+bY = c
pX+qY = r

biasanya langkah yang digunakan untuk mencari nilai X dan Y adalah menggunakan metode substitusi dan eliminasi. misalnya a, b, c, p, q, r adalah angka real . maka nilai :


Y= {(a x r)- (p x c)} / {(a x q)-(p x b)}
X= {c-p xY)} / a

algoritma sederhana pemrograman dua persamaan di atas adalah :
1. start
2. Baca nilai a, b, c, p, q, r
3. nilai Y adalah {(a * r)- (p * c)} / {(a * q)-(p * b)}
4. nilai X adalah  {c-p*Y)} / a
5. tuliskan hasil Y dan X pada layar monitor
6. selesai


PENGETAHUAN DASAR ALGORITMA


Algoritma adalah metode untuk menyelesaikan suatu permasalahan secara bertahap dan sistematis. Yang paling utama dari sebuah algoritma adalah langkah yang logis agar bisa dimengerti oleh komputer. Algoritma banyak kita temui di kehidupan sehari – hari. Kalau kita lihat beberapa acara masakan, maka kita akan menemui langkah-langkah yang sistematis dan tidak boleh terbalik-balik agar menghasilkan makanan yang lezat. Misalkan untuk membuat telur rebus, maka diperlukan langkah langkah:
  1. Cuci bersih telur yang akan direbus.
  2. Siapkan air pada panci.
  3. Rebus air hingga mendidih.
  4. Masukkan telur yang sudah dicuci kedalam air yang telah direbus.
  5. Tunggu hingga matang
  6. Sajikan
Sama seperti kasus keseharian di atas, untuk menghasilkan program yang benar pada komputer , maka dibutuhkan sebuah algoritma yang logis pula. Komputer adalah suatu mesin. Sehingga untuk dapat melakukan pekerjaannya, komputer membutuhkan instruksi logis  yang diberikan pada komputer itu.
Algoritma komputer memiliki beberapa karakteristik yang harus dipenuhi agar menjadi algoritma yang baik. Karakteristik itu antara lain:
  • Presisi. Langkah langkah penyelesaian masalah dalam algoritma haruslah secara presisi (tepat) dinyatakan, tidak mengandung unsur ambigu(membingungkan).
  • Keterbatasan. Algoritma harus terbatas dan berhenti pada suatu titik setelah semua ekesekusi perintah dilaksanakan.
  • Input. Algoritma menerima input.
  • Output. Algoritma menghasilkan output.
  • General. Algoritma berlaku untuk suatu kumpulan input tertentu.