Kamis, 24 Mei 2012

procedure dan function pada c++

#include<iostream.h>

#include<conio.h>

void biodata()

{

char nama[30],npm[10],kelas[10];

clrscr();

cout<<"masukan nama : ";cin>>nama;

cout<<"masukan npm  : ";cin>>npm;

cout<<"masukan kelas: ";cin>>kelas;

cout<<"----------------------------\n";

cout<<"nama anda "<<nama<<endl;

cout<<"npm anda "<<npm<<endl;

cout<<"kelas anda "<<kelas<<endl;

}
float luassegitiga(int a, int t)

{

float luas;

luas = 0.5*a*t;

return luas;

}
float volumbola(int r)

{

float volum;

volum = 1.33*3.14*r*r*r;

return volum;

}
void keluar()

{

clrscr();cout<<"Terima Kasih";

}

void main()

{

char pil;

do

{

clrscr();

cout<<"--------------Menu-----------\n";

cout<<"|1. Biodata................ |\n";

cout<<"|2. Luas Segitiga.......... |\n";

cout<<"|3. Volume Bola.............|\n";

cout<<"|4. Keluar..................|\n";

cout<<"Masukan Pilihan[1-4]: ";cin>>pil;

switch(pil)

{case '1':

biodata();

getch();

break;

case '2':

int a,b;

clrscr();

cout<<"masukan alas segitiga  : ";cin>>a;

cout<<"masukan tinggi segitiga: ";cin>>b;

cout<<"-------------------------\n";

cout<<"Luas Segitiga adalah "<<luassegitiga(a,b);

getch();

break;

case '3':

int c;

clrscr();

cout<<"masukan jari-jari bola: ";cin>>c;

cout<<"------------------------\n";

cout<<"Volume Bola adalah "<<volumbola(c);

getch();

break;

case '4':

keluar();

break;

default:

cout<<"Tidak Ada Pilihan!";

break;

}

}

while(pil !='4');

}

BERSEDEKAH

Ketahuilah, Allah Ta’ala hanya akan memberi kekayaan pada hati yang pandai bersyukur.

Banyak kisah, baik dalam kitab-kitab maupun pengalaman pada masa kini, yang telah menceritakan keberkahan yang melimpah setelah seseorang bersedekah.

  Keteladanan para Sahabat
Sahabat-sahabat Rasulullah menjadi teladan dalam  bersedekah. Abdurrahman bin Auf menyumbangkan sebahagian besar kekayaannya untuk membantu kaum Muhajirin saat tiba di Madinah, hingga ia sendiri hanya memakai satu-satunya pakaian terbaiknya dan sepetak tanah untuk berteduh. Begitu pun dengan Sayyidina Ali RA.
Suatu hari Sayyidina Ali mendapati kedua anaknya, Al-Hasan dan Al-Husain, jatuh sakit. Ia berupaya mencari pengobatan buat kedua buah hatinya.
Lama belum ada hal yang menunjukkan kesembuhan, Sayyidina Ali bernadzar, “Ya Allah, jika kedua putraku ini sembuh, aku akan berpuasa selama tiga hari.”
Allah mendengar nadzarnya hingga Allah memberikan kesembuhan bagi kedua cucu Rasulullah SAW itu.
Sayyinida Ali dan istrinya, Sayyidah Fathimah, pun berpuasa untuk memenuhi nadzar itu.
Singkat cerita, menjelang berbuka puasa di hari pertama puasa nadzar itu, mereka hanya memiliki dua kerat roti kering. Saat akan berbuka, belum lagi disantapnya roti itu, datanglah seorang fakir miskin yang kelaparan dan meminta tolong keduanya. Maka roti itu diberikan seluruhnya, melihat keadaan si peminta-minta yang sangat membutuhkan uluran itu. Urunglah keduanya menyantap makanan berbuka.
Pada hari kedua, mereka punya sepotong roti yang dipersiapkan untuk disantap saat berbuka. Ketika tiba saat berbuka, lagi-lagi datang seseorang yang membutuhkan uluran tangan keduanya. Kali itu seorang anak yatim yang kurus meminta sesuap makanan, sehingga Sayyidina Ali dan Sayyidah Fathimah pun memberikannya. Keduanya pun berbuka hanya dengan air putih.
Demikian juga saat hari ketiga. Ketika waktu berbuka, datang seorang tawanan yang baru dibebaskan dan membutuhkan makanan dari keduanya. Mereka berdua pun akhirnya merelakan satu-satunya roti kering yang mereka persiapkan untuk berbuka.
Sebuah pelajaran yang amat mengharukan dari keluarga Rasulullah Muhammad SAW, yang penyantun dan penyabar. “Idza da’ahul miskinu ajabahu ijabatan mu`ajjalah (Jika orang miskin menyerunya, dijawabnya sesegera mungkin).” Demikian untaian kata Habib Ali bin Muhammad Al-Habsyi dalam uraian Maulid Nabi karyanya, Simthud Durar.
Kisah Sayyidina Ali ini Allah Ta’ala abadikan dalam surah Al-Insan (76): 8-10, “Dan mereka memberikan makanan yang disukainya kepada orang miskin, anak yatim, dan orang yang ditawan. Sesungguhnya kami memberi makanan kepadamu hanyalah untuk mengharapkan keridhaan Allah, kami tidak menghendaki balasan dari kamu dan tidak pula (ucapan) terima kasih. Sesungguhnya kami takut akan (adzab) Tuhan kami pada suatu hari yang (di hari itu) orang-orang bermuka masam penuh kesulitan.”
Sudah menjadi suatu kewajiban bagi seorang muslim untuk mencari nafkah guna memenuhi kebutuhan hidupnya dan keluarganya. Tidak dipungkiri, banyak saudara muslim yang memperoleh keluasan dan kemudahan atas ikhtiarnya itu. Sementara di sisi lain, ada sebahagian saudara yang hidup sebatas cukup, bahkan di bawah standar kecukupan. Dan Islam pun telah mengatur skema dan mekanisme sedekah dan jenis-jenisnya, seperti zakat, infak, hibah, sehingga kehidupan sosial berjalan sesuai titian yang ditunjukkan Allah SWT.
Bersedekah merupakan aktivitas seorang muslim yang memiliki sifat keutamaan, karena ketinggian derajat seorang muslim sangat ditentukan oleh sebesar dan sejauh mana ia memiliki kepedulian dan kepekaan sosial kepada muslim lainnya.
Harta bukan untuk ditumpuk dan dinikmati sendiri. Seorang muslim harus ingat bahwa ada kewajiban yang harus ditunaikan terhadap harta itu, karena di dalamnya juga ada hak orang lain. Sesungguhnya, bersedekah bukan hanya untuk kepentingan orang lain, tapi juga terlebih untuk kepentingan kita sendiri, sebagai bekal, baik di dunia maupun di akhirat.

http://majalah-alkisah.com/index.php/dunia-islam/915-kisah-berkahnya-bersedekah

matriks invers

#include <iostream.h>
#include <conio.h>
void main ()
{
int x,y,matrik [10][10];
float hasilbagi,det,a,b,c,d;
clrscr ();
cout << "OPERASI MATRIKS MENCARI INVERS MATRIKS \n \n";
    for (x=0; x<=1; x++)
    {
    for (y=0; y<=1; y++)
    {
    cout << "Elemen Matrik ["<<x<<"] ["<<y<<"]"<<" = "; cin >>matrik [x] [y];
    }
    }
    for (x=0; x<=1; x++)
    {
    for (y=0; y<=1; y++)
    {
    cout <<matrik[x][y]<< " ";
    }
    cout << endl;
    }
    det = (matrik[0][0] * matrik [1] [1]) - (matrik[1][0] * matrik[0][1]);
    cout << endl;
    cout << "Determinan matriksnya adalah = ";
    cout << det <<endl;
    hasilbagi = 1/det;
    a = hasilbagi * matrik[1][1];
    b = hasilbagi * -matrik[0][1];
    c = hasilbagi * -matrik[1][0];
    d = hasilbagi * matrik[0][0];
    cout<<endl<<"Matriks Invers \n\n="<<"1/"<<det<<" x ["<<matrik[1][1]<<" "<<-matrik[0][1]<<"]";
    cout<<"\n       ["<<-matrik[1][0]<<" "<<matrik[0][0]<<"]";
    cout<<endl;
    cout<<"\n Matriks inversnya adalah= \n \n";
    cout<<"["<<a<<" "<<b<<"]"<<endl;
    cout<<"["<<c<<" "<<d<<"]";
    getch();
}

ARRAY MULTIDIMENSI

#include <iostream.h>
#include <conio.h>
void main ()
{
char pil;
int i,j;
int ax[2][2],bx[2][2],jml[2][2];
ulang:
clrscr();
cout<<"++++++++++++++++++++Menu++++++++++++++++++++"<<endl;
cout<<"|| 1. Input Matriks A .....................||"<<endl;
cout<<"|| 2. Input Matriks B .....................||"<<endl;
cout<<"|| 3. Tampilan Matriks A ..................||"<<endl;
cout<<"|| 4. Tampilan Matriks B ..................||"<<endl;
cout<<"|| 5. Pengurangan A-B .....................||"<<endl;
cout<<"|| 6. Penjumlahan A+B .....................||"<<endl;
cout<<"|| 7. Keluar..................||"<<endl;
cout<<" Masukkan Pilihan Anda [1..7]!";cin>>pil;
switch(pil)
{
case '1':
clrscr ();
cout<<"ordo matriks 2x2\n";
cout<<"     input matriks A\n";
cout<<"---------------------------\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<"elemen ["<<i<<"]["<<j<<"] : ";cin>>ax[i][j];
}
}
getch ();
goto ulang;
case '2':
clrscr ();
cout<<"     input matriks B\n";
cout<<"------------------------------\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<"elemen ["<<i<<"]["<<j<<"] : ";cin>>bx[i][j];
}
}
getch ();
goto ulang;
case '3':
clrscr ();
cout<<"      matriks A\n";
cout<<"------------------------------\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<"            "<<ax[i][j]<<"    ";
}
cout<<endl;
}
getch ();
goto ulang;
case'4':
clrscr ();
cout<<"      matriks B\n";
cout<<"------------------------------\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
cout<<"            "<<bx[i][j]<<"    ";
}
cout<<endl;
}
getch ();
goto ulang;
case '5':
clrscr ();
cout<<"      Pengurangan A-B\n";
cout<<"------------------------------\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
jml[i][j]=ax[i][j]-bx[i][j];
cout<<"            "<<jml[i][j]<<"    ";
}
cout<<endl;
}
getch ();
goto ulang;
case'6':
clrscr ();
cout<<"      penjumlahan A+B\n";
cout<<"------------------------------\n";
for(i=0;i<2;i++){
for(j=0;j<2;j++){
jml[i][j]= ax[i][j]+bx[i][j];
cout<<"            "<<jml[i][j]<<"    ";
}
cout<<endl;
}
getch ();
goto ulang;
case'7':
clrscr();
cout<<"terima kasih";
break;
default:
cout<<"tidak ada pilihan!";
getch ();
goto ulang;
}
getch ();
}

penjelasan :


#include
perintah ini digunakan untuk mengikutsertakan sebuah file library dalam hal ini disebut sebagai header contohnya iostream, conio.h, string, stdlib, dll. Contoh menulisannya adalah :
#include<iostream>
#include<conio.h>

Terkadang ada beberapa compiler yang harus menggunakan .h di belakannya kadang tidak, namun juga dari beberapa file header ada yang harus menggunakan .h ada juga yang tidak. Artinya jika terjadi error di bagian file header coba saja ubah-ubah pada .h (bagian ekor) - nya.

<iostream> adalah salah satu file header yang salah satu fungsinya untuk menjalankan perintah cout, cin. Dimana perintah cout berfungsi untuk menampilkan (output) sebuah data dalam program dan cin berfungsi untuk menampilkan (input) sebuah data ke dalam program (cout dan cin adalah salah satu perintah dari sekian banyak perintah yang terdapat dari librari iostream.
<conio.h>adalah salah satu file header yang salah satu fungsinya untuk menahan tampilan layar sebelum dilanjutkan (press any key to continue....), fungsi tersebut adalah getch(); disimpan di bagian yang sekiranya akan kita tahan tampilannya. Biasanya pada awal praktek C++ temen-temen kita suka bertanya mengapa saat dijalankan (run) project yang kita buat langsung keluar otomatis itu dikarenakan di bagian akhirnya tidak disimpan fungsi ini.
void main () adalah fungsi yang tidak memiliki nilai balik. Main() sendiri adalah fungsi yang pertama kali dieksekusikan oleh c++ dan tanda () menyatakan bahwa fungsi main tidak memiliki argumen. Jika main tidak digunakan maka program tidak akan jalan
{ ini merupakan tubuh fungsi main.
char pil tipe data yang digunakan adalah tipe data karakter.
int ax[2][2],bx[2][2],jml[2][2];  tipe data yang digunakan adalah tipe data integer.
Ulang: digunakan untuk membuat nama sub program.
clrscr; untuk menghapus layar dan apabila digunakan, perlu #include <conio.h> perlu disertakan pada program.
cout<<"++++++++++++++Menu+++++++++++++++"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  ++++++++++++++Menu+++++++++++++++ akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
{cout<<"|| 1. Input matriks A .................||"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || 1. Input matriks A .................|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
cout<<"|| 2. Input matriks B ....................||"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || 2.  Input matriks B ...............|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
cout<<"|| 3. Tampilan matriks A ..........||"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || 3. Tampilan matriks A .................|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
cout<<"|| 4. Tampilan matriks B ..................||"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || 4. Tampilan matriks B .................|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
cout<<"|| 5. Pengurangan A-B ..........||"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || 5. pengurangan A-B .................|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
cout<<"|| 6. Penjumlahan A+B ..................||"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || 6. Penjumlahan A+B .................|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
cout<<"|| 7. keluar ..................||"<<endl; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || 7. keluar .................|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
cout<<" Masukkan Pilihan Anda [1..7]!";cin>>pil; cout merupakan standart output stream dalam c++ (biasanya monitor). Cout dideklarasikan dalam header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan. Maka  || Masukkan Pilihan Anda [1..7]!|| akan tercetak pada tampilan output setelah dirun. Endl digunakan untuk membuat garis baru tidak harus dalam kutip.
switch (pil) switch ini digunakan untuk membandingkan beberapa nilai konstan yang mungkin untuk sebuah ekspresi, hampir sama dengan if dan else if.
{ digunakan untuk mengawali statement baru.
case '1': jika kita memilih program no 1 maka program akan langsung berjalan ke program input matriks A.
cout<<"ordo matriks 2x2\n"; artinya pada baris ini akan mencetak kalimat ordo matriks 2x2.
cout<<"     input matriks A\n"; artinya pada baris selanjutnya akan mencetak kalimat input matriks A.
cout<<"---------------------------\n"; artinya akan mencetak tanda garis pada baris selanjutnya dibawah kalimat input matriks A.
for(i=0;i<2;i++){  Mula-mula kita nilai pada for i diberi nilai awal yaitu 0. Kemudian dilakukan pengujian apakah i<2, karena hasilnya true maka pernyataan di dalam For dijalankan. Kemudian dilakukan increment terhadap i dalam pernyataan i++ yaitu penaikan satu variabel. Selanjutnya dilakukan pengujian lagi apakah i<2. Jika iya (true) maka pernyataan di dalam For dijalankan, jika tidak maka program dilanjutkan ke bawah For. Begitu seterusnya hingga pengujian i<2 bernilai false.
for(j=0;j<2;j++){  Mula-mula kita nilai pada for j diberi nilai awal yaitu 0. Kemudian dilakukan pengujian apakah j<2, karena hasilnya true maka pernyataan di dalam For dijalankan. Kemudian dilakukan increment terhadap j dalam pernyataan j++ yaitu penaikan satu variabel. Selanjutnya dilakukan pengujian lagi apakah j<2. Jika iya (true) maka pernyataan di dalam For dijalankan, jika tidak maka program dilanjutkan ke bawah For. Begitu seterusnya hingga pengujian j<2 bernilai false.
cout<<"elemen ["<<i<<"]["<<j<<"] : ";cin>>ax[i][j]; artinya pada baris ini akan mencetak elemen [i] [j] dan cin>>ax[i][j]; digunakan untuk menginput nilai ax pada variabel [i][j].
} artinya untuk mengakhiri statement sebelumnya.
getch (); digunakan untuk mengembalikan nilai.
Goto ulang; artinya program ini akan balik ke program menu awal karena ada statement ulang, jadi jika program sudah dipanggil akan kembali ke statement ulang.
case '2': jika kita memilih program no 2 maka program akan langsung berjalan ke program input matriks B..
cout<<"     input matriks B\n"; artinya pada baris selanjutnya akan mencetak kalimat input matriks B.
cout<<"---------------------------\n"; artinya akan mencetak tanda garis pada baris selanjutnya dibawah kalimat input matriks B.
for(i=0;i<2;i++){  Mula-mula kita nilai pada for i diberi nilai awal yaitu 0. Kemudian dilakukan pengujian apakah i<2, karena hasilnya true maka pernyataan di dalam For dijalankan. Kemudian dilakukan increment terhadap i dalam pernyataan i++ yaitu penaikan satu variabel. Selanjutnya dilakukan pengujian lagi apakah i<2. Jika iya (true) maka pernyataan di dalam For dijalankan, jika tidak maka program dilanjutkan ke bawah For. Begitu seterusnya hingga pengujian i<2 bernilai false.
for(j=0;j<2;j++){  Mula-mula kita nilai pada for j diberi nilai awal yaitu 0. Kemudian dilakukan pengujian apakah j<2, karena hasilnya true maka pernyataan di dalam For dijalankan. Kemudian dilakukan increment terhadap j dalam pernyataan j++ yaitu penaikan satu variabel. Selanjutnya dilakukan pengujian lagi apakah j<2. Jika iya (true) maka pernyataan di dalam For dijalankan, jika tidak maka program dilanjutkan ke bawah For. Begitu seterusnya hingga pengujian j<2 bernilai false.
cout<<"elemen ["<<i<<"]["<<j<<"] : ";cin>>bx[i][j]; artinya pada baris ini akan mencetak elemen [i] [j] dan cin>>bx[i][j]; digunakan untuk menginput nilai bx pada variabel [i][j].
} artinya untuk mengakhiri statement sebelumnya.
getch (); digunakan untuk mengembalikan nilai.
Goto ulang; artinya program ini akan balik ke program menu awal karena ada statement ulang, jadi jika program sudah dipanggil akan kembali ke statement ulang.
case '3': jika kita memilih program no 3 maka program akan langsung berjalan ke program 3 yaitu tampilkan matriks A.
cout<<"---------------------------\n"; artinya akan mencetak tanda garis pada baris selanjutnya dibawah kalimat tampilan matriks A.
for(i=0;i<2;i++){  Mula-mula kita nilai pada for i diberi nilai awal yaitu 0. Kemudian dilakukan pengujian apakah i<2, karena hasilnya true maka pernyataan di dalam For dijalankan. Kemudian dilakukan increment terhadap i dalam pernyataan i++ yaitu penaikan satu variabel. Selanjutnya dilakukan pengujian lagi apakah i<2. Jika iya (true) maka pernyataan di dalam For dijalankan, jika tidak maka program dilanjutkan ke bawah For. Begitu seterusnya hingga pengujian i<2 bernilai false.
for(j=0;j<2;j++){  Mula-mula kita nilai pada for j diberi nilai awal yaitu 0. Kemudian dilakukan pengujian apakah j<2, karena hasilnya true maka pernyataan di dalam For dijalankan. Kemudian dilakukan increment terhadap j dalam pernyataan j++ yaitu penaikan satu variabel. Selanjutnya dilakukan pengujian lagi apakah j<2. Jika iya (true) maka pernyataan di dalam For dijalankan, jika tidak maka program dilanjutkan ke bawah For. Begitu seterusnya hingga pengujian j<2 bernilai false.
cout<<"            "<<ax[i][j]<<"    "; artinya akan mencetak nilai ax dari variabel [i][j]. Kemudian menampilkan nilai ax yang sudah diinput sebelumnya pada case 1.
} artinya untuk mengakhiri statement sebelumnya.
Cout<<endl; digunakn untuk mencetak garis baru.
getch (); digunakan untuk mengembalikan nilai.








puasa dibulan rajab

Bulan Rajab merupakan salah satu bulan Muharram yang artinya dimulyakan (Ada 4 bulan: Dzulqa'dah, Dzulhijjah, Muharram, dan Rajab). Puasa dalam bulan Rajab, sebagaimana dalam bulan-bulan mulya lainnya, hukumnya sunnah. Diriwayatkan dari Mujibah al-Bahiliyah, Rasulullah bersabda "Puasalah pada bulan-bulan haram(mulya)." (Riwayat Abu Dawud, Ibnu Majah, dan Ahmad). Hadis lainnya adalah Riwayatnya al-Nasa'i dan Abu Dawud (dan disahihkan oleh Ibnu Huzaimah): "Usamah berkata pada Nabi saw, 'Wahai Rasulullah, saya tak melihat Rasul melakukan puasa (sunat) sebanyak yang Rasul lakukan dalam bulan Sya'ban.' Rasul menjawab: 'Bulan Sya'ban adalah bulan antara Rajab dan Ramadan yang dilupakan oleh kebanyakan orang.'" kalau puasa Rajab tanggal 1 akan menghapus dosa selama 3 tahun, tanggal 2 akan menghapus dosa 2 tahun, tanggal 3 akan menghapus dosa 1 tahun, tanggal 4 akan menghapus dosa selama 1 bulan, dan amal di bulan rajab akan diberi pahala 70 kali lipat.

Menurut al-Syaukani (Naylul Authar, dalam bahasan puasa sunat) ungkapan Nabi "Bulan Sya'ban adalah bulan antara Rajab dan Ramadan yang dilupakan kebanyakan orang" itu secara implisit menunjukkan bahwa bulan Rajab juga disunnahkan melakukan puasa di dalamnya.

Adapun hadis yang Anda sebut itu, kami juga tak menemukannya. Ada beberapa hadis lain yang menerangkan keutamaan bulan Rajab. Seperti berikut ini:
  • "Barang siapa berpuasa pada bulan Rajab sehari maka laksana ia puasa selama sebulan, bila puasa 7 hari maka ditutuplah untuknya 7 pintu neraka Jahim, bila puasa 8 hari maka dibukakan untuknya 8 pintu sorga, dan bila puasa 10 hari maka digantilah dosa-dosanya dengan kebaikan."
  • Riwayat al-Thabrani dari Sa'id bin Rasyid: Barangsiapa puasa sehari di bulan Rajab maka laksana ia puasa setahun, bila puasa 7 hari maka ditutuplah untuknya pintu-pintu neraka Jahanam, bila puasa 8 hari dibukakan untuknya 8 pintu sorga, bila puasa 10 hari Allah akan mengabulkan semua permintaannya....."
  • "Sesugguhnya di sorga terdapat sungai yang dinamakan Rajab, airnya lebih putih daripada susu dan rasanya lebih manis dari madu. Barangsiapa puasa sehari pada bulan Rajab, maka ia akan dikaruniai minum dari sungai tersebut".
  • Riwayat (secara mursal) Abul Fath dari al-Hasan, Nabi saw berkata: "Rajab itu bulannya Allah, Sya'ban bulanku, dan Ramadan bulannya umatku."
Hadis-hadis tersebut dha'if (kurang kuat) sebagaimana ditegaskan oleh Imam Suyuthi dalam kitab al-Haawi lil Fataawi.

Ibnu Hajar, dalam kitabnya "Tabyinun Ujb", menegaskan bahwa tidak ada hadis (baik sahih, hasan, maupun dha'if) yang menerangkan keutamaan puasa di bulan Rajab. Bahkan beliau meriwayatkan tindakan Sahabat Umar yang melarang menghususkan bulan Rajab dengan puasa.

Ditulis oleh al-Syaukani, dlm Nailul Authar, bahwa Ibnu Subki meriwayatkan dari Muhamad bin Manshur al-Sam'ani yang mengatakan bahwa tak ada hadis yang kuat yang menunjukkan kesunahan puasa Rajab secara khusus. Disebutkan juga bahwa Ibnu Umar memakruhkan puasa Rajab, sebagaimana Abu Bakar al-Tarthusi yang mengatakan bahwa puasa Rajab adalah makruh, karena tidak ada dalil yang kuat.

Namun demikian, sesuai pendapat al-Syaukani, bila semua hadis yang secara khusus menunjukkan keutamaan bulan Rajab dan disunahkan puasa di dalamnya kurang kuat dijadikan landasan, maka hadis-hadis yang umum (spt yang disebut pertamakali di atas) itu cukup menjadi hujah atau landasan. Di samping itu, karena juga tak ada dalil yang kuat yang memakruhkan puasa di bulan Rajab.

DAFTAR PUSTAKA:
http://www.pesantrenvirtual.com/index.php?option=com_content&task=view&id=921&Itemid=30