Senin, 04 April 2011

kode visual basic


Public Function FileExist(asPath as string) as Boolean
If UCase(Dir(asPath))=Ucase(trimPath(asPath)) then
FileExist=true
Else

FileExist=False
End If
End Function

Public Function TrimPath(ByVal asPath as string) as string

if Len(asPath)=0 then Exit Function
Dim x as integer
Do

x=Instr(asPath,”\”)
if x=0 then Exit Do
asPath=Right(asPath,Len(asPath)-x)
Loop
TrimPath=asPath
End Function

Private sub command1_Click()
if fileExist(Text1.text) then
Label1=”YES”
else
Label1=”NO”
End if
End Sub

Private sub form_Load()
End sub

Low and Upper Case

‘add 2 command buttons and 1 text

Private Sub Command1_Click()
Text1.Text = CapFirst$(Text1.Text)
End Sub

Private Sub Command2_Click()
Text1.Text = LCase$(Text1.Text)
End Sub

‘add 1 module
Declare Function CapFirst$ Lib “CAPFIRST.DLL” Alias “CAPFIRST” (ByVal St$)


Show Your IP Address

Add Microsoft Winsock Control 6.0 component
Insert 1 Textbox
Insert 2 Command Buttons Rename Caption as Display and Clear

Private Sub Command1_Click()
If Text1.Text = “” Then
Command1.Enabled = False
Text1.Text = Winsock1.LocalIP
Else
Command1.Enabled = True
End If
End Sub

Private Sub Command2_Click()
Text1.Text = “”
If Text1.Text = “” Then
Command1.Enabled = True
Else
Command1.Enabled = False
End If
End Sub

Private Sub Form_Load()
Text1.Text = “”
If Text1.Text = “” Then
Command1.Enabled = False
Else
Command1.Enabled = True
End If
Text1.Text = Winsock1.LocalIP
End Sub


Permutasi

Option Explicit

Dim id As Integer
Dim N As Integer
Dim perm() As Integer

Function Engine(i As Integer)
Dim t As Integer
Dim j As Integer

id = id + 1
perm(i) = id
If (id = N) Then stampaj
For j = 1 To N
If (perm(j) = 0) Then
Engine (j)
End If
DoEvents
Next j
id = id – 1
perm(i) = 0
End Function

Private Sub cmdClear_Click()
List1.Clear
End Sub

Private Sub cmdGen_Click()
If Val(txtLength.Text) > Len(txtChar.Text) Then
MsgBox “Jumlah Permutasi Salah”
Exit Sub
End If

If Len(txtChar.Text) = 0 Or (Val(txtLength.Text) = 0) Then Exit Sub

Dim i As Integer
N = Val(txtLength.Text)
ReDim perm(N)
For i = 1 To N
perm(i) = 0
Next i
If ChSave.Value = 1 Then
MsgBox “Disimpan pada hasil.txt”
Open App.Path + “\hasil.txt” For Output As #1
End If
Engine 0
If ChSave.Value = 1 Then Close #1

End Sub

Sub Form_Load()
On Error Resume Next
id = -1

End Sub

Sub stampaj()
Dim i As Integer
Dim result As String
result = “”
For i = 1 To N
result = result & CStr(Mid$(txtChar.Text, perm(i), 1))
Next i
List1.AddItem result
If ChSave.Value = 1 Then Print #1, result
End Sub


Enkripsi Searah

Public Function Hash(ByVal text As String) As String
a = 1
For i = 1 To Len(text)
a = Sqr(a * i * Asc(Mid(text, i, 1))) ‘Numeric Hash
Next i
Rnd (-1)
Randomize a ‘seed PRNG

For i = 1 To 16
Hash = Hash & Chr(Int(Rnd * 256))
Next i
End Function

Private Sub Form_Load()
MsgBox Hash(“EmZ-2509″) ‘Yang dihasilkan: ‰°’r¿¾ ©Ì¿ÂX*¤W
End
End Sub


Enkripsi

Function EncDec(inData As Variant, Optional inPW As Variant = “”) As Variant
On Error Resume Next
Dim arrSBox(0 To 255) As Integer
Dim arrPW(0 To 255) As Integer
Dim Bi As Integer, Bj As Integer
Dim mKey As Integer
Dim i As Integer, j As Integer
Dim x As Integer, y As Integer
Dim mCode As Byte, mCodeSeries As Variant

EncDec = “”
If Trim(inData) = “” Then
Exit Function
End If

If inPW <> “” Then
j = 1
For i = 0 To 255
arrPW(i) = Asc(Mid$(inPW, j, 1))
j = j + 1
If j > Len(inPW) Then
j = 1
End If
Next i
Else
For i = 0 To 255
arrPW(i) = 0
Next i
End If

For i = 0 To 255
arrSBox(i) = i
Next i

j = 0
For i = 0 To 255
j = (arrSBox(i) + arrPW(i)) Mod 256
x = arrSBox(i)
arrSBox(i) = arrSBox(j)
arrSBox(j) = x
Next i

mCodeSeries = “”
Bi = 0: Bj = 0
For i = 1 To Len(inData)
Bi = (Bi + 1) Mod 256
Bj = (Bj + arrSBox(Bi)) Mod 256
‘ Tukar
x = arrSBox(Bi)
arrSBox(Bi) = arrSBox(Bj)
arrSBox(Bj) = x

‘siapkan kunci untuk XOR
mKey = arrSBox((arrSBox(Bi) + arrSBox(Bj)) Mod 256)

‘gunakan operasi XOR
mCode = Asc(Mid$(inData, i, 1)) Xor mKey
mCodeSeries = mCodeSeries & Chr(mCode)
Next i
EncDec = mCodeSeries
End Function

Private Sub Form_Load()
Dim Encrypt As String, Decrypt As String

Encrypt = EncDec(“admin”, “win”)
Decrypt = EncDec(“™D`­>”, “win”)
MsgBox “Hasil enkripsi : ” & Encrypt & _
vbCrLf & “Hasil dekripsi : ” & Decrypt
End
End Sub
Posted by Administrator in 04:55:41 | Permalink | No Comments »
Wednesday, May 14, 2008
Menu Pop Up

Option Explicit

Private Declare Function SendMessage Lib “user32″ Alias _
“SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Private Const LB_GETITEMRECT = &H198
Private Const LB_ERR = (-1)

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Public Function GetRClickedItem(MyList As Control, _
X As Single, Y As Single) As Long

‘PURPOSE: Determine which item was right clicked in a list
‘box, from the list_box’s mouse down event. YOU MUST CALL THIS
‘FROM THE MOUSEDOWN EVENT, PASSING THE X AND Y VALUES FROM THAT
‘EVENT TO THIS FUNCTION

‘MYLIST: ListBox Control
‘X, Y: X and Y position from MyList_MouseDown

‘RETURNS: ListIndex of selected item, or -1 if
‘a) There is no selected item, or b) an error occurs.

Dim clickX As Long, clickY As Long
Dim lRet As Long
Dim CurRect As RECT
Dim l As Long

‘Control must be a listbox
If Not TypeOf MyList Is ListBox Then
GetRClickedItem = LB_ERR
Exit Function
End If

‘get x and y in pixels
clickX = X Screen.TwipsPerPixelX
clickY = Y Screen.TwipsPerPixelY

‘Check all items in the list to see if it was clicked on
For l = 0 To MyList.ListCount – 1

‘get current selection as rectangle
lRet = SendMessage(MyList.hwnd, LB_GETITEMRECT, l, CurRect)

‘If the position of the click is in the this list item
‘then that’s our Item

If (clickX >= CurRect.Left) And (clickX <= CurRect.Right) _
And (clickY >= CurRect.Top) And _
(clickY <= CurRect.Bottom) Then

GetRClickedItem = l
Exit Function
End If
Next l
End Function

Private Sub Form_Load()
List1.AddItem “Merah”
List1.AddItem “Kuning”
List1.AddItem “Hijau”
mnuPopUp.Visible = False
End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lItem As Long

If Button = vbRightButton Then
lItem = GetRClickedItem(List1, X, Y)

If lItem <> -1 Then
List1.ListIndex = lItem
PopupMenu mnuPopUp
End If
End If

End Sub


Load Picture

Private Sub Command1_Click()
With Me.CommonDialog1
.DialogTitle = “Ambil Gambar”
.Filter = “JPEG|*.jpg”
.ShowOpen

If .FileName <> “” Then
Set Me.Picture1.Picture = Nothing
Me.Picture1.Picture = LoadPicture(.FileName)
End If
End With
End Sub

‘Private Sub Form_Load()
‘Me.Picture1.Picture = LoadPicture(“D:\gbr_motor\bikes_honda_01.jpg”)
‘End Sub


Sleep With Visual Basic

Option Explicit

Private Declare Sub Sleep Lib “kernel32″ (ByVal dwMilliseconds As Long)

Private Sub Form_Click()
Me.Caption = “Sleeping”
Call Sleep(20000)
Me.Caption = “Awake”
End Sub

Private Sub Label1_Click()
Me.Caption = “Sleeping”
Call Sleep(20000)
Me.Caption = “Awake”
End Sub
Posted by Administrator in 08:18:13 | Permalink | No Comments »
Find Something

Form

Option Explicit

Private Declare Function GetWindowText Lib “user32″ Alias “GetWindowTextA” (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Sub cmdActivate_Click()
Dim nRet As Long
Dim Title As String

nRet = AppActivatePartial(Trim(txtTitle.Text), _
Val(frmMethod.Tag), CBool(chkCase.Value))
If nRet Then
lblResults.Caption = “Found: &&H” & Hex$(nRet)
Title = Space$(256)
nRet = GetWindowText(nRet, Title, Len(Title))
If nRet Then
lblResults.Caption = lblResults.Caption & _
“, “”" & Left$(Title, nRet) & “”"”
End If
Else
lblResults.Caption = “Search Failed”
End If
End Sub

Private Sub Form_Load()

txtTitle.Text = “”
lblResults.Caption = “”
optMethod(0).Value = True
End Sub

Private Sub optMethod_Click(Index As Integer)

frmMethod.Tag = Index
End Sub

Module

Option Explicit

Private Declare Function EnumWindows Lib “user32″ (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function GetClassName Lib “user32″ Alias “GetClassNameA” (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindowText Lib “user32″ Alias “GetWindowTextA” (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function IsIconic Lib “user32″ (ByVal hWnd As Long) As Long
Private Declare Function IsWindowVisible Lib “user32″ (ByVal hWnd As Long) As Long
Private Declare Function ShowWindow Lib “user32″ (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetForegroundWindow Lib “user32″ (ByVal hWnd As Long) As Long

Private Const SW_RESTORE = 9

Private m_hWnd As Long
Private m_Method As FindWindowPartialTypes
Private m_CaseSens As Boolean
Private m_Visible As Boolean
Private m_AppTitle As String

Public Enum FindWindowPartialTypes
FwpStartsWith = 0
FwpContains = 1
FwpMatches = 2
End Enum

Public Function AppActivatePartial(AppTitle As String, Optional Method As FindWindowPartialTypes = FwpStartsWith, Optional CaseSensitive As Boolean = False) As Long
Dim hWndApp As Long

hWndApp = FindWindowPartial(AppTitle, Method, CaseSensitive, True)
If hWndApp Then

If IsIconic(hWndApp) Then
Call ShowWindow(hWndApp, SW_RESTORE)
End If
Call SetForegroundWindow(hWndApp)
AppActivatePartial = hWndApp
End If
End Function

Public Function FindWindowPartial(AppTitle As String, _
Optional Method As FindWindowPartialTypes = FwpStartsWith, _
Optional CaseSensitive As Boolean = False, _
Optional MustBeVisible As Boolean = False) As Long

m_hWnd = 0
m_Method = Method
m_CaseSens = CaseSensitive
m_AppTitle = AppTitle

If m_CaseSens = False Then
m_AppTitle = UCase$(m_AppTitle)
End If

Call EnumWindows(AddressOf EnumWindowsProc, MustBeVisible)
FindWindowPartial = m_hWnd
End Function

Private Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
Static WindowText As String
Static nRet As Long

If lParam Then
If IsWindowVisible(hWnd) = False Then
EnumWindowsProc = True
Exit Function
End If
End If

WindowText = Space$(256)
nRet = GetWindowText(hWnd, WindowText, Len(WindowText))
If nRet Then

WindowText = Left$(WindowText, nRet)
If m_CaseSens = False Then
WindowText = UCase$(WindowText)
End If

Select Case m_Method
Case FwpStartsWith
If InStr(WindowText, m_AppTitle) = 1 Then
m_hWnd = hWnd
End If
Case FwpContains
If InStr(WindowText, m_AppTitle) <> 0 Then
m_hWnd = hWnd
End If
Case FwpMatches
If WindowText = m_AppTitle Then
m_hWnd = hWnd
End If
End Select
End If

EnumWindowsProc = (m_hWnd = 0)
End Function


Bermain Animasi Dengan VB

Dim FrameCount As Long

Private Sub Command1_Click()
Timer1.Enabled = False
If LoadGif(Text1, Image1) Then
FrameCount = 0
Timer1.Interval = CLng(Image1(0).Tag)
Timer1.Enabled = True
End If
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub

Private Sub Command3_Click()
Timer1.Enabled = True
End Sub

Private Sub Form_Load()

Text1.Text = App.Path & IIf(Right(App.Path, 1) = “\”, “”, “\”) & “clip.gif”
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
If FrameCount < TotalFrames Then
Image1(FrameCount).Visible = False
FrameCount = FrameCount + 1
Image1(FrameCount).Visible = True
Timer1.Interval = CLng(Image1(FrameCount).Tag)
Else
FrameCount = 0
For i = 1 To Image1.Count – 1
Image1(i).Visible = False
Next i
Image1(FrameCount).Visible = True
Timer1.Interval = CLng(Image1(FrameCount).Tag)
End If
End Sub
Posted by Administrator in 07:38:13 | Permalink | Comments (5)
Animasi Bola

Dim FrameCount As Long

Private Sub Command1_Click()
Timer1.Enabled = False
If LoadGif(Text1, Image1) Then
FrameCount = 0
Timer1.Interval = CLng(Image1(0).Tag)
Timer1.Enabled = True
End If
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub

Private Sub Command3_Click()
Timer1.Enabled = True
End Sub

Private Sub Form_Load()

Text1.Text = App.Path & IIf(Right(App.Path, 1) = “\”, “”, “\”) & “ball.gif”
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
If FrameCount < TotalFrames Then
Image1(FrameCount).Visible = False
FrameCount = FrameCount + 1
Image1(FrameCount).Visible = True
Timer1.Interval = CLng(Image1(FrameCount).Tag)
Else
FrameCount = 0
For i = 1 To Image1.Count – 1
Image1(i).Visible = False
Next i
Image1(FrameCount).Visible = True
Timer1.Interval = CLng(Image1(FrameCount).Tag)
End If
End Sub
Posted by Administrator in 04:48:26 | Permalink | Comments (1) »
Saturday, April 26, 2008
Mouse Limit
Option Explicit Private Type RECT left As Integer top As Integer right As Integer bottom As Integer End Type Private Type POINT x As Long y As Long End Type Private Declare Sub ClipCursor Lib “user32″ (lpRect As Any) Private Declare Sub GetClientRect Lib “user32″ (ByVal hWnd As _ Long, lpRect As RECT) Private Declare Sub ClientToScreen Lib “user32″ (ByVal hWnd As _ Long, lpPoint As POINT) Private Declare Sub OffsetRect Lib “user32″ (lpRect As RECT, _ ByVal x As Long, ByVal y As Long) Public Sub LimitCursorMovement(ctl As Object) Dim client As RECT Dim upperleft As POINT Dim lHwnd As Long On Error Resume Next lHwnd = ctl.hWnd If lHwnd = 0 Then Exit Sub GetClientRect ctl.hWnd, client upperleft.x = client.left upperleft.y = client.top ClientToScreen ctl.hWnd, upperleft OffsetRect client, upperleft.x, upperleft.y ClipCursor client End Sub Public Sub ReleaseLimit() ‘Releases the cursor limits ‘Be sure to call on unloading the form ClipCursor ByVal 0& End Sub Private Sub cmdNormal_Click() ReleaseLimit End Sub Private Sub cmdSetLimit_Click() LimitCursorMovement Me End Sub Private Sub Form_Load() ReleaseLimit End Sub Private Sub Form_Unload(Cancel As Integer) ReleaseLimit End Sub
Posted by Administrator in 05:59:00 | Permalink | Comments (3)
Spash Screen

Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
Unload Me
End Sub

Private Sub Form_Load()
‘ lblVersion.Caption = “Version ” & App.Major & “.” & App.Minor & “.” & App.Revision
‘ lblProductName.Caption = App.Title
End Sub

Private Sub Frame1_Click()
Unload Me
End Sub

Private Sub Timer1_Timer()
Dim counter As Double
counter = 0
Do
counter = counter + 0.005
Label2.Width = counter
Loop While Not (Label1.Width = Label2.Width)
frmSplash.Hide
Form5.Show
Timer1.Enabled = False
End Sub
Posted by Administrator in 04:10:21 | Permalink | No Comments »
Folder Customizer

Dim opcolor As String
Dim opcolor2 As String

Private Sub cmdfolder_Click()
folder = BrowseForFolder(folder, Me.hwnd, “&Select a directory:”)
Command4_Click
End Sub
Private Sub Command1_Click()
folder = BrowseForFolder(folder, Me.hwnd, “&Select a directory:”)
If folder = “” Then
Exit Sub
End If
wrt$ = “{BE098140-A513-11D0-A3A4-00C04FD706EC}”
r% = WritePrivateProfileString(wrt$, “IconArea_Image”, vbNullString, (folder.Text) + “\desktop.ini”)
r% = WritePrivateProfileString(wrt$, “IconArea_text”, vbNullString, (folder.Text) + “\desktop.ini”)
If r% = 1 Then
FileAttribHide folder.Text & “\desktop.ini”
setFolderRead folder.Text
Label18.Caption = “XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
End If
End Sub

Private Sub Command2_Click()
If Command2.Caption <> “&Finish” Then
If MsgBox(“Exit the wizard without completion !”, 64 + vbYesNo) = vbYes Then
End
End If
Else
MsgBox “This Wizard has been developed by Ramky for more goodies visit http://www.programmervb.wordpress.com “, 64
End
End If
End Sub

Private Sub Command3_Click()
If folder.Text = “” Then
cmdfolder_Click
Else
wrt$ = “{BE098140-A513-11D0-A3A4-00C04FD706EC}”
r% = WritePrivateProfileString(wrt$, “IconArea_Image”, (img.Text), (folder.Text) + “\desktop.ini”)
r% = WritePrivateProfileString(wrt$, “IconArea_text”, opcolor, (folder.Text) + “\desktop.ini”)
If r% = 1 Then
FileAttribHide folder.Text & “\desktop.ini”
setFolderRead folder.Text
Command3.Enabled = False
Command2.Caption = “&Finish”
Label14.Visible = False
Label9.Visible = False
Label10.Visible = False
Label11.Visible = False
Label14.Visible = False
textcolor.Visible = False
img.Visible = False
folder.Visible = False
Command5.Visible = False
Command4.Visible = False
Line3.Visible = False
cmdfolder.Visible = False
Label18.Visible = True
Label19.Visible = True
Label13.Visible = True
End If
If r% <> 1 Then MsgBox “Error in writing”, vbCritical
GoTo nex
back = 1
nex:
If back = 1 Then
Command1.Enabled = True
cmdfolder.Enabled = True
Frame1.Visible = False
Frame2.Top = -120
Frame2.Left = -120
Frame2.Visible = True
back = 2
End If
End If
End Sub

Private Sub Command4_Click()
CommonDialog1.CancelError = False
CommonDialog1.DialogTitle = “Select Your Picture”
CommonDialog1.Filter = “jpeg(*.jpg)|*.jpg|png(*.png)|*.png|Gif(*.Gif)|*.Gif|Bitmap(*.bmp)|*.bmp” ‘|MID(*.mid)|*.mid|AU(*.au)|*.au|”
CommonDialog1.FileName = “”
CommonDialog1.ShowOpen
img = CommonDialog1.FileName
Command5_Click
End Sub

Private Sub Command5_Click()
CommonDialog1.CancelError = False
CommonDialog1.Flags = 3
CommonDialog1.ShowColor
opcolor = CommonDialog1.Color
textcolor.ForeColor = CommonDialog1.Color
End Sub

Private Sub Command6_Click()
CommonDialog1.CancelError = False
CommonDialog1.Flags = 3
CommonDialog1.ShowColor
opcolor2 = CommonDialog1.Color
End Sub

Private Sub Form_Load()
Height = 6330
Width = 8160
End Sub

Private Sub Frame2_DragDrop(Source As Control, X As Single, Y As Single)

End Sub
Posted by Administrator in 03:44:10 | Permalink | No Comments »
Friday, April 25, 2008
Create Domain

Private Sub Check1_Click()
If Check1.Value = 1 Then
lblDomainName.Visible = True
txtDomainName.Visible = True
End If
If Check1.Value = 0 Then
lblDomainName.Visible = False
txtDomainName.Visible = False
End If
End Sub

Private Sub cmdGenerate_Click()
Dim responce
Dim i As Integer
If Check1.Value = 1 Then
responce = MsgBox(“Do you want to create ” & txtDomainName.Text & ” DOMAIN user”, vbYesNo)
If responce = vbYes Then

For i = Val(txtUserStart.Text) To Val(txtUserEnd.Text)
Shell “net user ” & txtUserPrefix & Format(i, “0000″) & txtUserPostfix & ” ” & txtPassPrefix & Format(i, “0000″) & txtPassPostfix & ” /ADD ” & txtDomainName.Text & ” /DOMAIN”, vbHide
Next i
End If
Else
responce = MsgBox(“Do you want to create LOCAL user”, vbYesNo)
If responce = vbYes Then

For i = Val(txtUserStart.Text) To Val(txtUserEnd.Text)
Shell “net user ” & txtUserPrefix & Format(i, “0000″) & txtUserPostfix & ” ” & txtPassPrefix & Format(i, “0000″) & txtPassPostfix & ” /ADD”, vbHide
Next i
End If
End If
End Sub

Private Sub Label11_Click()

End Sub

Private Sub txtUserEnd_Change()
txtPassEnd.Text = txtUserEnd.Text
End Sub

Private Sub txtUserStart_Change()
txtPassStart.Text = txtUserStart.Text
End Sub
Posted by Administrator in 05:49:57 | Permalink | No Comments »
Saturday, April 19, 2008
Change Your Desktop

Private Declare Function SystemParametersInfo Lib “user32″ Alias “SystemParametersInfoA” (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long

‘constants to be used with the above api
Private Const SPI_SETDESKWALLPAPER = 20
Private Const SPIF_UPDATEINIFILE = &H1

‘will hold the path to the image
Private imagePath As String

Private Sub cmdBrowse_Click()

‘just your basic code to get a dialog box open to
‘select a image and get the path

‘the picture must be a BITMAP Image File

dlg.Filter = “Image Files (*.bmp)|*.bmp”

‘set a custom title to the dialog
dlg.DialogTitle = “Select the image to load.”

‘show the dialog
dlg.ShowOpen

‘the path to get the image from
imagePath = dlg.FileName

‘view the selected picture into the picturebox
‘control
pic.Picture = LoadPicture(imagePath)

End Sub

Private Sub cmdSetWallPaper_Click()

‘set the parameters to change the wallpaper to
‘the image you selected
SystemParametersInfo SPI_SETDESKWALLPAPER, 0, imagePath, SPIF_UPDATEINIFILE

End Sub

Posted by Administrator in 05:14:27 | Permalink | Comments (1) »
Thursday, April 17, 2008
Create Domain With VB

Private Sub Check1_Click()
If Check1.Value = 1 Then
lblDomainName.Visible = True
txtDomainName.Visible = True
End If
If Check1.Value = 0 Then
lblDomainName.Visible = False
txtDomainName.Visible = False
End If
End Sub

Private Sub cmdGenerate_Click()
Dim responce
Dim i As Integer
If Check1.Value = 1 Then
responce = MsgBox(“Do you want to create ” & txtDomainName.Text & ” DOMAIN user”, vbYesNo)
If responce = vbYes Then

For i = Val(txtUserStart.Text) To Val(txtUserEnd.Text)
Shell “net user ” & txtUserPrefix & Format(i, “0000″) & txtUserPostfix & ” ” & txtPassPrefix & Format(i, “0000″) & txtPassPostfix & ” /ADD ” & txtDomainName.Text & ” /DOMAIN”, vbHide
Next i
End If
Else
responce = MsgBox(“Do you want to create LOCAL user”, vbYesNo)
If responce = vbYes Then

For i = Val(txtUserStart.Text) To Val(txtUserEnd.Text)
Shell “net user ” & txtUserPrefix & Format(i, “0000″) & txtUserPostfix & ” ” & txtPassPrefix & Format(i, “0000″) & txtPassPostfix & ” /ADD”, vbHide
Next i
End If
End If
End Sub

Private Sub Label11_Click()

End Sub

Private Sub txtUserEnd_Change()
txtPassEnd.Text = txtUserEnd.Text
End Sub

Private Sub txtUserStart_Change()
txtPassStart.Text = txtUserStart.Text
End Sub
Posted by Administrator in 09:12:53 | Permalink | No Comments »
VbFtp

Module:

Option Explicit

Declare Function GetProcessHeap Lib “kernel32″ () As Long
Declare Function HeapAlloc Lib “kernel32″ (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
Declare Function HeapFree Lib “kernel32″ (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long
Public Const HEAP_ZERO_MEMORY = &H8
Public Const HEAP_GENERATE_EXCEPTIONS = &H4

Declare Sub CopyMemory1 Lib “kernel32″ Alias “RtlMoveMemory” ( _
hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Declare Sub CopyMemory2 Lib “kernel32″ Alias “RtlMoveMemory” ( _
hpvDest As Long, hpvSource As Any, ByVal cbCopy As Long)

Public Const MAX_PATH = 260
Public Const NO_ERROR = 0
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
Public Const FILE_ATTRIBUTE_OFFLINE = &H1000

Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Public Const ERROR_NO_MORE_FILES = 18

Public Declare Function InternetFindNextFile Lib “wininet.dll” Alias “InternetFindNextFileA” _
(ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long

Public Declare Function FtpFindFirstFile Lib “wininet.dll” Alias “FtpFindFirstFileA” _
(ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long

Public Declare Function FtpGetFile Lib “wininet.dll” Alias “FtpGetFileA” _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

Public Declare Function FtpPutFile Lib “wininet.dll” Alias “FtpPutFileA” _
(ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _
ByVal lpszRemoteFile As String, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

Public Declare Function FtpSetCurrentDirectory Lib “wininet.dll” Alias “FtpSetCurrentDirectoryA” _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
‘ Initializes an application’s use of the Win32 Internet functions
Public Declare Function InternetOpen Lib “wininet.dll” Alias “InternetOpenA” _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

‘ User agent constant.
Public Const scUserAgent = “vb wininet”

‘ Use registry access settings.
Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3
Public Const INTERNET_INVALID_PORT_NUMBER = 0

Public Const FTP_TRANSFER_TYPE_ASCII = &H1
Public Const FTP_TRANSFER_TYPE_BINARY = &H1
Public Const INTERNET_FLAG_PASSIVE = &H8000000

‘ Opens a HTTP session for a given site.
Public Declare Function InternetConnect Lib “wininet.dll” Alias “InternetConnectA” _
(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _
ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long

Public Const ERROR_INTERNET_EXTENDED_ERROR = 12003
Public Declare Function InternetGetLastResponseInfo Lib “wininet.dll” Alias “InternetGetLastResponseInfoA” ( _
lpdwError As Long, _
ByVal lpszBuffer As String, _
lpdwBufferLength As Long) As Boolean

‘ Number of the TCP/IP port on the server to connect to.
Public Const INTERNET_DEFAULT_FTP_PORT = 21
Public Const INTERNET_DEFAULT_GOPHER_PORT = 70
Public Const INTERNET_DEFAULT_HTTP_PORT = 80
Public Const INTERNET_DEFAULT_HTTPS_PORT = 443
Public Const INTERNET_DEFAULT_SOCKS_PORT = 1080

Public Const INTERNET_OPTION_CONNECT_TIMEOUT = 2
Public Const INTERNET_OPTION_RECEIVE_TIMEOUT = 6
Public Const INTERNET_OPTION_SEND_TIMEOUT = 5

Public Const INTERNET_OPTION_USERNAME = 28
Public Const INTERNET_OPTION_PASSWORD = 29
Public Const INTERNET_OPTION_PROXY_USERNAME = 43
Public Const INTERNET_OPTION_PROXY_PASSWORD = 44

‘ Type of service to access.
Public Const INTERNET_SERVICE_FTP = 1
Public Const INTERNET_SERVICE_GOPHER = 2
Public Const INTERNET_SERVICE_HTTP = 3

‘ Opens an HTTP request handle.
Public Declare Function HttpOpenRequest Lib “wininet.dll” Alias “HttpOpenRequestA” _
(ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, _
ByVal sReferer As String, ByVal something As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long

‘ Brings the data across the wire even if it locally cached.
Public Const INTERNET_FLAG_RELOAD = &H80000000
Public Const INTERNET_FLAG_KEEP_CONNECTION = &H400000
Public Const INTERNET_FLAG_MULTIPART = &H200000

Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000

‘ Sends the specified request to the HTTP server.
Public Declare Function HttpSendRequest Lib “wininet.dll” Alias “HttpSendRequestA” (ByVal _
hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As _
String, ByVal lOptionalLength As Long) As Integer

‘ Queries for information about an HTTP request.
Public Declare Function HttpQueryInfo Lib “wininet.dll” Alias “HttpQueryInfoA” _
(ByVal hHttpRequest As Long, ByVal lInfoLevel As Long, ByRef sBuffer As Any, _
ByRef lBufferLength As Long, ByRef lIndex As Long) As Integer

‘ The possible values for the lInfoLevel parameter include:
Public Const HTTP_QUERY_CONTENT_TYPE = 1
Public Const HTTP_QUERY_CONTENT_LENGTH = 5
Public Const HTTP_QUERY_EXPIRES = 10
Public Const HTTP_QUERY_LAST_MODIFIED = 11
Public Const HTTP_QUERY_PRAGMA = 17
Public Const HTTP_QUERY_VERSION = 18
Public Const HTTP_QUERY_STATUS_CODE = 19
Public Const HTTP_QUERY_STATUS_TEXT = 20
Public Const HTTP_QUERY_RAW_HEADERS = 21
Public Const HTTP_QUERY_RAW_HEADERS_CRLF = 22
Public Const HTTP_QUERY_FORWARDED = 30
Public Const HTTP_QUERY_SERVER = 37
Public Const HTTP_QUERY_USER_AGENT = 39
Public Const HTTP_QUERY_SET_COOKIE = 43
Public Const HTTP_QUERY_REQUEST_METHOD = 45
Public Const HTTP_STATUS_DENIED = 401
Public Const HTTP_STATUS_PROXY_AUTH_REQ = 407

‘ Add this flag to the about flags to get request header.
Public Const HTTP_QUERY_FLAG_REQUEST_HEADERS = &H80000000
Public Const HTTP_QUERY_FLAG_NUMBER = &H20000000
‘ Reads data from a handle opened by the HttpOpenRequest function.
Public Declare Function InternetReadFile Lib “wininet.dll” _
(ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer

Public Declare Function InternetWriteFile Lib “wininet.dll” _
(ByVal hFile As Long, ByVal sBuffer As String, _
ByVal lNumberOfBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer

Public Declare Function FtpOpenFile Lib “wininet.dll” Alias _
“FtpOpenFileA” (ByVal hFtpSession As Long, _
ByVal sFileName As String, ByVal lAccess As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
Public Declare Function FtpDeleteFile Lib “wininet.dll” _
Alias “FtpDeleteFileA” (ByVal hFtpSession As Long, _
ByVal lpszFileName As String) As Boolean
Public Declare Function InternetSetOption Lib “wininet.dll” Alias “InternetSetOptionA” _
(ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As Any, ByVal lBufferLength As Long) As Integer
Public Declare Function InternetSetOptionStr Lib “wininet.dll” Alias “InternetSetOptionA” _
(ByVal hInternet As Long, ByVal lOption As Long, ByVal sBuffer As String, ByVal lBufferLength As Long) As Integer

‘ Closes a single Internet handle or a subtree of Internet handles.
Public Declare Function InternetCloseHandle Lib “wininet.dll” _
(ByVal hInet As Long) As Integer

‘ Queries an Internet option on the specified handle
Public Declare Function InternetQueryOption Lib “wininet.dll” Alias “InternetQueryOptionA” _
(ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As Any, ByRef lBufferLength As Long) As Integer

‘ Returns the version number of Wininet.dll.
Public Const INTERNET_OPTION_VERSION = 40

‘ Contains the version number of the DLL that contains the Windows Internet
‘ functions (Wininet.dll). This structure is used when passing the
‘ INTERNET_OPTION_VERSION flag to the InternetQueryOption function.
Public Type tWinInetDLLVersion
lMajorVersion As Long
lMinorVersion As Long
End Type

‘ Adds one or more HTTP request headers to the HTTP request handle.
Public Declare Function HttpAddRequestHeaders Lib “wininet.dll” Alias “HttpAddRequestHeadersA” _
(ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, _
ByVal lModifiers As Long) As Integer

‘ Flags to modify the semantics of this function. Can be a combination of these values:

‘ Adds the header only if it does not already exist; otherwise, an error is returned.
Public Const HTTP_ADDREQ_FLAG_ADD_IF_NEW = &H10000000

‘ Adds the header if it does not exist. Used with REPLACE.
Public Const HTTP_ADDREQ_FLAG_ADD = &H20000000

‘ Replaces or removes a header. If the header value is empty and the header is found,
‘ it is removed. If not empty, the header value is replaced
Public Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000

Form:

Dim bActiveSession As Boolean
Dim hOpen As Long, hConnection As Long
Dim dwType As Long

Dim EnumItemNameBag As New Collection
Dim EnumItemAttributeBag As New Collection


Private Sub Form_Load()
bActiveSession = False
hOpen = 0
hConnection = 0
chkPassive.Value = 1
optBin.Value = 1
dwType = FTP_TRANSFER_TYPE_BINARY
Dim imgI As ListImage
Set imgI = ImageList1.ListImages.Add(, “open”, LoadPicture(“open.bmp”))
Set imgI = ImageList1.ListImages.Add(, “closed”, LoadPicture(“closed.bmp”))
Set imgI = ImageList1.ListImages.Add(, “leaf”, LoadPicture(“leaf.bmp”))
Set imgI = ImageList1.ListImages.Add(, “root”, LoadPicture(“root.bmp”))
TreeView1.ImageList = ImageList1
TreeView1.Style = tvwTreelinesPictureText
EnableUI (False)
End Sub

Private Sub Form_Unload(Cancel As Integer)
cmdClosehOpen_Click
End Sub

Private Sub cmdInternetOpen_Click()
If Len(txtProxy.Text) <> 0 Then
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PROXY, txtProxy.Text, vbNullString, 0)
Else
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
End If
If hOpen = 0 Then ErrorOut Err.LastDllError, “InternetOpen”
EnableUI (True)
End Sub

Private Sub cmdClosehOpen_Click()
If hConnection <> 0 Then InternetCloseHandle (hConnection)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
hConnection = 0
hOpen = 0
If bActiveSession Then TreeView1.Nodes.Remove txtServer.Text
bActiveSession = False
ClearTextBoxAndBag
EnableUI (False)
End Sub

Private Sub cmdConnect_Click()
If Not bActiveSession And hOpen <> 0 Then
If txtServer.Text = “” Then
MsgBox “Please enter a server name!”
Exit Sub
End If
Dim nFlag As Long
If chkPassive.Value Then
nFlag = INTERNET_FLAG_PASSIVE
Else
nFlag = 0
End If
hConnection = InternetConnect(hOpen, txtServer.Text, INTERNET_INVALID_PORT_NUMBER, _
txtUser, txtPassword, INTERNET_SERVICE_FTP, nFlag, 0)
If hConnection = 0 Then
bActiveSession = False
ErrorOut Err.LastDllError, “InternetConnect”
Else
bActiveSession = True
EnableUI (CBool(hOpen))
FillTreeViewControl (txtServer.Text)
FtpEnumDirectory (“”)
If EnumItemNameBag.Count = 0 Then Exit Sub
FillTreeViewControl (txtServer.Text)
End If
End If
End Sub

Private Sub cmdDisconnect_Click()
bDirEmpty = True
If hConnection <> 0 Then InternetCloseHandle hConnection
hConnection = 0
ClearBag
TreeView1.Nodes.Remove txtServer.Text
bActiveSession = False
EnableUI (True)
End Sub

Private Sub ClearTextBoxAndBag()
txtServer.Text = “”
txtUser.Text = “”
txtPassword.Text = “”
txtProxy.Text = “”
ClearBag
End Sub

Private Sub ClearBag()
Dim Num As Integer
For Num = 1 To EnumItemNameBag.Count
EnumItemNameBag.Remove 1
Next Num
For Num = 1 To EnumItemAttributeBag.Count
EnumItemAttributeBag.Remove 1
Next Num
End Sub

Private Sub FillTreeViewControl(strParentKey As String)
Dim nodX As Node
Dim strImg As String
Dim nCount As Integer, i As Integer
Dim nAttr As Integer
Dim strItem As String

If EnumItemNameBag.Count = 0 And strParentKey = txtServer.Text Then
Set nodX = TreeView1.Nodes.Add(, tvwFirst, txtServer.Text, txtServer.Text, “root”)
Exit Sub
End If
nCount = EnumItemAttributeBag.Count
If nCount = 0 Then Exit Sub
For i = 1 To nCount
nAttr = EnumItemAttributeBag.Item(i)
strItem = EnumItemNameBag(i)
If nAttr = FILE_ATTRIBUTE_DIRECTORY Then
strImg = “closed”
Else
strImg = “leaf”
End If
Set nodX = TreeView1.Nodes.Add(strParentKey, tvwChild, strParentKey & “/” & strItem, _
strParentKey & “/” & strItem, strImg)
Next
nodX.EnsureVisible
End Sub

Private Sub cmdGet_Click()
Dim bRet As Boolean
Dim szFileRemote As String, szDirRemote As String, szFileLocal As String
Dim szTempString As String
Dim nPos As Long, nTemp As Long
Dim nodX As Node
Set nodX = TreeView1.SelectedItem
If bActiveSession Then
If nodX Is Nothing Then
MsgBox “Please select the item to GET!”
Exit Sub
End If
szTempString = TreeView1.SelectedItem.Text
szFileRemote = szTempString
nPos = 0
nTemp = 0
Do
nTemp = InStr(1, szTempString, “/”, vbBinaryCompare)
If nTemp = 0 Then Exit Do
szTempString = Right(szTempString, Len(szTempString) – nTemp)
nPos = nTemp + nPos
Loop
szDirRemote = Left(szFileRemote, nPos)
szFileRemote = Right(szFileRemote, Len(szFileRemote) – nPos)
szFileLocal = File1.Path
rcd szDirRemote
bRet = FtpGetFile(hConnection, szFileRemote, szFileLocal & “/” & szFileRemote, False, _
INTERNET_FLAG_RELOAD, dwType, 0)
File1.Refresh
If bRet = False Then ErrorOut Err.LastDllError, “FtpGetFile”
Else
MsgBox “Not in session”
End If
End Sub

Private Sub cmdPut_Click()
Dim bRet As Boolean
Dim szFileRemote As String, szDirRemote As String, szFileLocal As String
Dim szTempString As String
Dim nPos As Long, nTemp As Long
Dim nodX As Node
Set nodX = TreeView1.SelectedItem

If bActiveSession Then
If nodX Is Nothing Then
MsgBox “Please select a remote directory to PUT to!”
Exit Sub
End If
If nodX.Image = “leaf” Then
MsgBox “Please select a remote directory to PUT to!”
Exit Sub
End If
If File1.FileName = “” Then
MsgBox “Please select a local file to put”
Exit Sub
End If
szTempString = nodX.Text
szDirRemote = Right(szTempString, Len(szTempString) – Len(txtServer.Text))
szFileRemote = File1.FileName
szFileLocal = File1.Path & “\” & File1.FileName
If (szDirRemote = “”) Then szDirRemote = “\”
rcd szDirRemote

bRet = FtpPutFile(hConnection, szFileLocal, szFileRemote, _
dwType, 0)
If bRet = False Then
ErrorOut Err.LastDllError, “FtpPutFile”
Exit Sub
End If

Dim nodChild As Node, nodNextChild As Node
Set nodChild = nodX.Child
Do
If nodChild Is Nothing Then Exit Do
Set nodNextChild = nodChild.Next
TreeView1.Nodes.Remove nodChild.Index
If nodNextChild Is Nothing Then Exit Do
Set nodChild = nodNextChild
Loop
If nodX.Image = “closed” Then
nodX.Image = “open”
End If
FtpEnumDirectory (nodX.Text)
FillTreeViewControl (nodX.Text)
End If
End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
On Error GoTo ErrProc
Dir1.Path = Drive1.Drive
Exit Sub
ErrProc:
Drive1.Drive = “c:”
Dir1.Path = Drive1.Drive
End Sub

Private Sub rcd(pszDir As String)
If pszDir = “” Then
MsgBox “Please enter the directory to CD”
Exit Sub
Else
Dim sPathFromRoot As String
Dim bRet As Boolean
If InStr(1, pszDir, txtServer.Text) Then
sPathFromRoot = Mid(pszDir, Len(txtServer.Text) + 1, Len(pszDir) – Len(txtServer.Text))
Else
sPathFromRoot = pszDir
End If
If sPathFromRoot = “” Then sPathFromRoot = “/”
bRet = FtpSetCurrentDirectory(hConnection, sPathFromRoot)
If bRet = False Then ErrorOut Err.LastDllError, “rcd”
End If
End Sub

Function ErrorOut(dError As Long, szCallFunction As String)
Dim dwIntError As Long, dwLength As Long
Dim strBuffer As String
If dError = ERROR_INTERNET_EXTENDED_ERROR Then
InternetGetLastResponseInfo dwIntError, vbNullString, dwLength
strBuffer = String(dwLength + 1, 0)
InternetGetLastResponseInfo dwIntError, strBuffer, dwLength

MsgBox szCallFunction & ” Extd Err: ” & dwIntError & ” ” & strBuffer


End If
If MsgBox(szCallFunction & ” Err: ” & dError & _
vbCrLf & “Close Connection and Session?”, vbYesNo) = vbYes Then
If hConnection Then InternetCloseHandle hConnection
If hOpen Then InternetCloseHandle hOpen
hConnection = 0
hOpen = 0
If bActiveSession Then TreeView1.Nodes.Remove txtServer.Text
bActiveSession = False
ClearTextBoxAndBag
EnableUI (False)
End If
End Function

Private Sub EnableUI(bEnabled As Boolean)
txtServer.Enabled = bEnabled
txtUser.Enabled = bEnabled
txtPassword.Enabled = bEnabled
cmdConnect.Enabled = bEnabled And Not bActiveSession
cmdDisconnect.Enabled = bEnabled And bActiveSession
chkPassive.Enabled = bEnabled
cmdClosehOpen.Enabled = bEnabled
cmdInternetOpen.Enabled = Not bEnabled
txtProxy.Enabled = Not bEnabled
optBin.Enabled = bEnabled
optAscii.Enabled = bEnabled
cmdGet.Enabled = bEnabled And bActiveSession
cmdPut.Enabled = bEnabled And bActiveSession
End Sub

Private Sub FtpEnumDirectory(strDirectory As String)

ClearBag
Dim hFind As Long
Dim nLastError As Long
Dim dError As Long
Dim ptr As Long
Dim pData As WIN32_FIND_DATA

If Len(strDirectory) > 0 Then rcd (strDirectory)
pData.cFileName = String(MAX_PATH, 0)
hFind = FtpFindFirstFile(hConnection, “*.*”, pData, 0, 0)
nLastError = Err.LastDllError

If hFind = 0 Then
If (nLastError = ERROR_NO_MORE_FILES) Then
MsgBox “This directory is empty!”
Else
ErrorOut nLastError, “FtpFindFirstFile”
End If
Exit Sub
End If

dError = NO_ERROR
Dim bRet As Boolean
Dim strItemName As String

EnumItemAttributeBag.Add pData.dwFileAttributes
strItemName = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) – 1)
EnumItemNameBag.Add strItemName
Do
pData.cFileName = String(MAX_PATH, 0)
bRet = InternetFindNextFile(hFind, pData)
If Not bRet Then
dError = Err.LastDllError
If dError = ERROR_NO_MORE_FILES Then
Exit Do
Else
ErrorOut dError, “InternetFindNextFile”
InternetCloseHandle (hFind)
Exit Sub
End If
Else
EnumItemAttributeBag.Add pData.dwFileAttributes
strItemName = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) – 1)
EnumItemNameBag.Add strItemName
End If
Loop

InternetCloseHandle (hFind)
End Sub

Private Sub optAscii_Click()
dwType = FTP_TRANSFER_TYPE_ASCII
End Sub

Private Sub optBin_Click()
dwType = FTP_TRANSFER_TYPE_BINARY
End Sub

Private Sub TreeView1_DblClick()
Dim nodX As Node
Set nodX = TreeView1.SelectedItem
If Not bActiveSession Then
MsgBox “No in session!”
Exit Sub
End If
If nodX Is Nothing Then
MsgBox “no Selection to enumerate”
End If
If nodX.Image = “closed” Then
nodX.Image = “open”
FtpEnumDirectory (nodX.Text)
FillTreeViewControl (nodX.Text)
Else
If nodX.Image = “open” Then
nodX.Image = “closed”
Dim nodChild As Node, nodNextChild As Node
Set nodChild = nodX.Child
Do
Set nodNextChild = nodChild.Next
TreeView1.Nodes.Remove nodChild.Index
If nodNextChild Is Nothing Then Exit Do
Set nodChild = nodNextChild
Loop
End If
End If
End Sub


Posted by Administrator in 07:28:56 | Permalink | No Comments »
Ping Network dgn VB

Option Explicit

Const SYNCHRONIZE = &H100000
Const INFINITE = &HFFFF
Const WAIT_OBJECT_0 = 0
Const WAIT_TIMEOUT = &H102

Dim stopflag As Boolean
Dim errorflag As Boolean

Dim mindelay As Integer
Dim maxdelay As Integer
Dim totaldelay As Long
Dim avgdelay As Integer
Dim lcount As Long
Dim pingMessage(26) As String
Dim ctrl
Private Declare Function SendMessage Lib “User32″ Alias “SendMessageA” (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function OpenProcess Lib “kernel32″ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib “kernel32″ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib “kernel32″ (ByVal hObject As Long) As Long

Private Sub cmdClear_Click()
Open “C:\log.txt” For Output As #1
Close #1
txtoutput.Text = “”
txtpinglog.Text = “”
End Sub

Private Sub chklog_Click()

End Sub

Private Sub cmdExit_Click()
Unload Me
End
End Sub

Private Sub cmdlog_Click()
Load frmlog
frmlog.Show 1
End Sub

Private Sub cmdPing_Click()
DoEvents
If cmdPing.Caption = “Ping” Then
lblstatus.Caption = “Pinging ” & txtIP.Text & ” with ” & txtbuffer.Text & “KB of data”
txtIP.Locked = True
cmdPing.BackColor = &HFF&
cmdlog.Enabled = False
cmdPing.Caption = “Stop”
stopflag = False
Else
stopflag = True
cmdPing.Caption = “Ping”
txtIP.Locked = False
cmdPing.BackColor = &H80FF80
cmdlog.Enabled = True
lblstatus.Caption = “Stopped”
End If

While stopflag = False
DoEvents

Dim ShellX As String
Dim lPid As Long
Dim lHnd As Long
Dim lRet As Long
Dim VarX As String
Dim Ptime As Integer
Dim pttl As Integer
Dim pbyte As Integer
Dim i As Integer
Dim pingresult As String
Dim tmin As Integer
Dim tmax As Integer
Dim tavg As Integer

If txtIP.Text <> “” Then
DoEvents
ShellX = Shell(“command.com /c ping -n 1 -l ” & txtbuffer.Text & ” ” & txtIP.Text & ” > C:\log.txt”, vbHide)
lPid = ShellX
If lPid <> 0 Then
lHnd = OpenProcess(SYNCHRONIZE, 0, lPid)
If lHnd <> 0 Then
lRet = WaitForSingleObject(lHnd, INFINITE)
CloseHandle (lHnd)
End If

frmmain.MousePointer = 0
Open “C:\log.txt” For Input As #1
txtoutput.Text = Input(LOF(1), 1)

pingresult = Trim(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “:”) + 1, Len(txtoutput.Text) – (InStr(1, txtoutput.Text, “:”) + Len(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “Ping “))))))

‘check for error
If InStr(1, pingresult, “Reply”) = 0 Then
Dim message As String
If InStr(1, pingresult, “Hardware”) <> 0 Then
message = “HARDWARE FAULT”
Else
If InStr(1, pingresult, “Request”) <> 0 Then
message = “Request time out”
Else
If InStr(1, pingresult, “Destination”) <> 0 Then
message = “Destination Computer is not reachable”
Else
message = pingresult
End If

End If
End If
pingresult = “ERROR with ” & txtIP.Text & “:” & message


‘pingmessage
txtpinglog.Text = “”
For i = 0 To 22
pingMessage(i) = pingMessage(i + 1)
If pingMessage(i + 1) <> “” Then
If txtpinglog.Text <> “” Then
txtpinglog.Text = txtpinglog.Text & vbCrLf
End If
txtpinglog.Text = txtpinglog.Text & pingMessage(i + 1)
End If
Next

pingMessage(23) = pingresult
If txtpinglog.Text <> “” Then
txtpinglog.Text = txtpinglog.Text & vbCrLf
End If
txtpinglog.Text = txtpinglog.Text & pingresult

For i = 0 To 31
pbrtime(i).Value = pbrtime(i + 1).Value
Next
pbrtime(32).Value = 0



‘loging
If chklog.Value = 1 Then
If errorflag = False Then
errorflag = True
Open “c:\pinglog.txt” For Append As #2
Print #2, Now
Print #2, pingresult
Print #2, String(91, “*”)
Close #2
End If
End If
lcount = 0
mindelay = 0
maxdelay = 0
avgdelay = 0
totaldelay = 0

lblmin = mindelay
lblmax = maxdelay
lblavg = avgdelay

Else
lcount = lcount + 1
Ptime = CInt(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “time”) + 5, InStr(1, txtoutput.Text, “ms “) – InStr(1, txtoutput.Text, “time”) – 5))
pbyte = CInt(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “bytes=”) + 6, InStr(1, txtoutput.Text, ” time”) – InStr(1, txtoutput.Text, “bytes=”) – 6))
pttl = CInt(Mid(pingresult, InStr(1, pingresult, “TTL=”) + 4, Len(pingresult) – InStr(1, pingresult, “TTL=”) – 5))

tmin = CInt(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “Minimum = “) + 10, InStr(InStr(1, txtoutput.Text, “Minimum = “), txtoutput.Text, “ms,”) – InStr(1, txtoutput.Text, “Minimum = “) – 10))
tmax = CInt(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “Maximum = “) + 10, InStr(InStr(1, txtoutput.Text, “Maximum = “), txtoutput.Text, “ms,”) – InStr(1, txtoutput.Text, “Maximum = “) – 10))
tavg = CInt(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “Average = “) + 10, InStr(InStr(1, txtoutput.Text, “Average = “), txtoutput.Text, “ms”) – InStr(1, txtoutput.Text, “Average = “) – 10))

If mindelay = 0 Then mindelay = tmin

If tmin < mindelay Then
mindelay = tmin
End If
If tmax > maxdelay Then
maxdelay = tmax
End If
totaldelay = totaldelay + tavg
avgdelay = CInt(totaldelay / lcount)

lblmin = mindelay
lblmax = maxdelay
lblavg = avgdelay

If avgdelay > 0 Then
For Each ctrl In frmmain
If TypeOf ctrl Is ProgressBar Then
ctrl.Max = avgdelay * 10
End If
Next
End If



pingresult = “Reply from ” & txtIP.Text & “: bytes=” & pbyte & ” time=” & Ptime & “ms TTL=” & pttl
txtpinglog.Text = “”
For i = 0 To 22
pingMessage(i) = pingMessage(i + 1)
If pingMessage(i + 1) <> “” Then
If txtpinglog.Text <> “” Then
txtpinglog.Text = txtpinglog.Text & vbCrLf
End If
txtpinglog.Text = txtpinglog.Text & pingMessage(i + 1)
End If
Next
pingMessage(23) = pingresult
If txtpinglog.Text <> “” Then
txtpinglog.Text = txtpinglog.Text & vbCrLf
End If
txtpinglog.Text = txtpinglog.Text & pingresult



‘loging
If chklog.Value = 1 Then
If errorflag = True Then
errorflag = False
Open “c:\pinglog.txt” For Append As #2
Print #2, Now
Print #2, “Reconnected with ” & txtIP.Text
Print #2, String(91, “*”)
Close #2
End If
End If


On Error Resume Next
Ptime = CInt(Mid(txtoutput.Text, InStr(1, txtoutput.Text, “time=”) + 5, InStr(1, txtoutput.Text, “ms “) – InStr(1, txtoutput.Text, “time=”) – 5))
For i = 0 To 31
pbrtime(i).Value = pbrtime(i + 1).Value
Next
pbrtime(32).Value = Ptime

End If
Close #1
End If
Else
frmmain.MousePointer = 0
VarX = MsgBox(“You have not entered an ip address or the number of times you want to ping.”, vbCritical, “Error has occured”)
End If
Wend
End Sub

Private Sub Command1_Click()
Load frmAbout
frmAbout.Show 1
End Sub

Private Sub Form_Load()

errorflag = False
totaldelay = 0
mindelay = 0
maxdelay = 0
avgdelay = 0
lcount = 0

Open “C:\log.txt” For Output As #1
Close #1
End Sub

Private Sub SelectText(ByRef textObj As RichTextBox)
textObj.SelStart = 0
textObj.SelLength = Len(textObj)
End Sub

Private Sub Label6_Click()

End Sub

Private Sub Form_Unload(Cancel As Integer)
End
End Sub

Private Sub Label2_Click()

End Sub

Private Sub Slider1_Change()
Select Case Slider1.Value
Case 0: txtbuffer.Text = 1000
Case 1: txtbuffer.Text = 2000
Case 2: txtbuffer.Text = 3000
Case 3: txtbuffer.Text = 4000

End Select

lcount = 0
mindelay = 0
maxdelay = 0
avgdelay = 0
totaldelay = 0

lblmin = mindelay
lblmax = maxdelay
lblavg = avgdelay

End Sub

Private Sub Timer1_Timer()

End Sub

Private Sub txtIP_GotFocus()
Call SelectText(txtIP)
End Sub

Private Sub txtOutput_GotFocus()
‘ Call SelectText(txtoutput)
End Sub

Private Sub txtStatus_Click()
txtIP.SetFocus
End Sub

Posted by Administrator in 05:37:03 | Permalink | No Comments »

Keutamaan Surat Al-Fatihah


Pertama: Membaca Al-Fatihah Adalah Rukun Shalat

Nabi shallallahu ‘alaihi wa sallam bersabda yang artinya, “Tidak ada shalat bagi orang yang tidak membaca Fatihatul Kitab (Al Fatihah).” (HR. Bukhari dan Muslim dari Ubadah bin Shamit radhiyallahu ‘anhu)

Dalam sabda yang lain beliau mengatakan yang artinya, “Barangsiapa yang shalat tidak membaca Ummul Qur’an (surat Al Fatihah) maka shalatnya pincang (khidaaj).” (HR. Muslim)

Makna dari khidaaj adalah kurang, sebagaimana dijelaskan dalam hadits tersebut, “Tidak lengkap”. Berdasarkan hadits ini dan hadits sebelumnya para imam seperti imam Malik, Syafi’i, Ahmad bin Hanbal dan para sahabatnya, serta mayoritas ulama berpendapat bahwa hukum membaca Al Fatihah di dalam shalat adalah wajib, tidak sah shalat tanpanya.

Kedua: Al Fatihah Adalah Surat Paling Agung Dalam Al Quran

Dari Abu Sa’id Rafi’ Ibnul Mu’alla radhiyallahu ‘anhu, beliau mengatakan: Rasulullah shallallahu ‘alaihi wa sallam berkata kepadaku, “Maukah kamu aku ajari sebuah surat paling agung dalam Al Quran sebelum kamu keluar dari masjid nanti?” Maka beliau pun berjalan sembari menggandeng tanganku. Tatkala kami sudah hampir keluar maka aku pun berkata; Wahai Rasulullah, Anda tadi telah bersabda, “Aku akan mengajarimu sebuah surat paling agung dalam Al Quran?” Maka beliau bersabda, “(surat itu adalah) Alhamdulillaahi Rabbil ‘alamiin (surat Al Fatihah), itulah As Sab’ul Matsaani (tujuh ayat yang sering diulang-ulang dalam shalat) serta Al Quran Al ‘Azhim yang dikaruniakan kepadaku.” (HR. Bukhari, dinukil dari Riyadhush Shalihin cet. Darus Salam, hal. 270)

Penjelasan Tentang Bacaan Ta’awwudz dan Basmalah

Makna bacaan Ta’awwudz

أَعُوْذُ بِاللِه مِنَ الشََّيْطَانِ الرَّجِيْمِ

Artinya: “Aku berlindung kepada Allah dari godaan syaitan yang terkutuk.”

Maknanya: “Aku berlindung kepada Allah dari kejelekan godaan syaitan agar dia tidak menimpakan bahaya kepadaku dalam urusan agama maupun duniaku.” Syaitan selalu menempatkan dirinya sebagai musuh bagi kalian. Oleh sebab itu maka jadikanlah diri kalian sebagai musuh baginya. Syaitan bersumpah di hadapan Allah untuk menyesatkan umat manusia. Allah menceritakan sumpah syaitan ini di dalam Al Quran,

قَالَ فَبِعِزَّتِكَ لَأُغْوِيَنَّهُمْ أَجْمَعِينَ إِلَّا عِبَادَكَ مِنْهُمُ الْمُ

“Demi kemuliaan-Mu sungguh aku akan menyesatkan mereka semua, kecuali hamba-hamba-Mu yang terpilih (yang diberi anugerah keikhlasan).” (QS. Shaad: 82-83)

Dengan demikian tidak ada yang bisa selamat dari jerat-jerat syaitan kecuali orang-orang yang ikhlas.

Isti’adzah/ta’awwudz (meminta perlindungan) adalah ibadah. Oleh sebab itu ia tidak boleh ditujukan kepada selain Allah. Karena menujukan ibadah kepada selain Allah adalah kesyirikan. Orang yang baik tauhidnya akan senantiasa merasa khawatir kalau-kalau dirinya terjerumus dalam kesyirikan. Sebagaimana Nabi Ibrahim ‘alaihis salam yang demikian takut kepada syirik sampai-sampai beliau berdoa kepada Allah,

ً وَاجْنُبْنِي وَبَنِيَّ أَن نَّعْبُدَ الأَصْنَامَ

“Dan jauhkanlah aku dan anak keturunanku dari penyembahan berhala.” (QS. Ibrahim: 35)

Ini menunjukkan bahwasanya tauhid yang kokoh akan menyisakan kelezatan di dalam hati kaum yang beriman. Yang bisa merasakan kelezatannya hanyalah orang-orang yang benar-benar memahaminya. Syaitan yang berusaha menyesatkan umat manusia ini terdiri dari golongan jin dan manusia. Hal itu sebagaimana disebutkan oleh Allah di dalam ayat yang artinya,

وَكَذَلِكَ جَعَلْنَا لِكُلِّ نِبِيٍّ عَدُوّاً شَيَاطِينَ الإِنسِ وَالْجِنِّ يُوحِي بَعْضُهُمْ إِلَى بَعْضٍ زُخْرُفَ الْقَوْلِ غُرُوراً

“Dan demikianlah Kami jadikan musuh bagi setiap Nabi yaitu (musuh yang berupa) syaithan dari golongan manusia dan jin. Sebagian mereka mewahyukan kepada sebagian yang lain ucapan-ucapan yang indah untuk memperdaya (manusia).” (QS. Al An’aam: 112) (Diringkas dari Syarhu Ma’aani Suuratil Faatihah, Syaikh Shalih bin Abdul ‘Aziz Alus Syaikh hafizhahullah).

Makna bacaan Basmalah

بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ

Artinya: “Dengan menyebut nama Allah yang Maha Pemurah lagi Maha Penyayang.”

Maknanya; “Aku memulai bacaanku ini seraya meminta barokah dengan menyebut seluruh nama Allah.” Meminta barokah kepada Allah artinya meminta tambahan dan peningkatan amal kebaikan dan pahalanya. Barokah adalah milik Allah. Allah memberikannya kepada siapa saja yang dikehendaki-Nya. Jadi barokah bukanlah milik manusia, yang bisa mereka berikan kepada siapa saja yang mereka kehendaki (Syarhu Ma’aani Suratil Fatihah, Syaikh Shalih bin Abdul ‘Aziz Alus Syaikh hafizhahullah).

Allah adalah satu-satunya sesembahan yang berhak diibadahi dengan disertai rasa cinta, takut dan harap. Segala bentuk ibadah hanya boleh ditujukan kepada-Nya. Ar-Rahman dan Ar-Rahiim adalah dua nama Allah di antara sekian banyak Asma’ul Husna yang dimiliki-Nya. Maknanya adalah Allah memiliki kasih sayang yang begitu luas dan agung. Rahmat Allah meliputi segala sesuatu. Akan tetapi Allah hanya melimpahkan rahmat-Nya yang sempurna kepada hamba-hamba yang bertakwa dan mengikuti ajaran para Nabi dan Rasul. Mereka inilah orang-orang yang akan mendapatkan rahmat yang mutlak yaitu rahmat yang akan mengantarkan mereka menuju kebahagiaan abadi. Adapun orang yang tidak bertakwa dan tidak mengikuti ajaran Nabi maka dia akan terhalangi mendapatkan rahmat yang sempurna ini (lihat Taisir Lathifil Mannaan, hal. 19).

Penjelasan Kandungan Surat

Makna Ayat Pertama

الْحَمْدُ للّهِ رَبِّ الْعَالَمِ

Artinya: “Segala puji bagi Allah Rabb seru sekalian alam.”

Makna Alhamdu adalah pujian kepada Allah karena sifat-sifat kesempurnaan-Nya. Dan juga karena perbuatan-perbuatanNya yang tidak pernah lepas dari sifat memberikan karunia atau menegakkan keadilan. Perbuatan Allah senantiasa mengandung hikmah yang sempurna. Pujian yang diberikan oleh seorang hamba akan semakin bertambah sempurna apabila diiringi dengan rasa cinta dan ketundukkan dalam dirinya kepada Allah. Karena pujian semata yang tidak disertai dengan rasa cinta dan ketundukkan bukanlah pujian yang sempurna.

Makna dari kata Rabb adalah Murabbi (yang mentarbiyah; pembimbing dan pemelihara). Allahlah Zat yang memelihara seluruh alam dengan berbagai macam bentuk tarbiyah. Allahlah yang menciptakan mereka, memberikan rezeki kepada mereka, memberikan nikmat kepada mereka, baik nikmat lahir maupun batin. Inilah bentuk tarbiyah umum yang meliputi seluruh makhluk, yang baik maupun yang jahat. Adapun tarbiyah yang khusus hanya diberikan Allah kepada para Nabi dan pengikut-pengikut mereka. Di samping tarbiyah yang umum itu Allah juga memberikan kepada mereka tarbiyah yang khusus yaitu dengan membimbing keimanan mereka dan menyempurnakannya. Selain itu, Allah juga menolong mereka dengan menyingkirkan segala macam penghalang dan rintangan yang akan menjauhkan mereka dari kebaikan dan kebahagiaan mereka yang abadi. Allah memberikan kepada mereka berbagai kemudahan dan menjaga mereka dari hal-hal yang dibenci oleh syariat.

Dari sini kita mengetahui betapa besar kebutuhan alam semesta ini kepada Rabbul ‘alamiin karena hanya Dialah yang menguasai itu semua. Allah satu-satunya pengatur, pemberi hidayah dan Allah lah Yang Maha kaya. Oleh sebab itu semua makhluk yang ada di langit dan di bumi ini meminta kepada-Nya. Mereka semua meminta kepada-Nya, baik dengan ucapan lisannya maupun dengan ekspresi dirinya. Kepada-Nya lah mereka mengadu dan meminta tolong di saat-saat genting yang mereka alami (lihat Taisir Lathiifil Mannaan, hal. 20).

Makna Ayat Kedua

الرَّحْمـنِ الرَّحِيمِ

Artinya: “Yang Maha Pemurah lagi Maha Penyayang.”

Ar-Rahman dan Ar-Rahiim adalah nama Allah. Sebagaimana diyakini oleh Ahlusunnah wal Jama’ah bahwa Allah memiliki nama-nama yang terindah. Allah ta’ala berfirman,

“Milik Allah nama-nama yang terindah, maka berdo’alah kepada Allah dengan menyebutnya.” (QS. Al A’raaf: 180)

Setiap nama Allah mengandung sifat. Oleh sebab itu beriman kepada nama-nama dan sifat-sifat Allah merupakan bagian yang tak terpisahkan dari keimanan kepada Allah. Dalam mengimani nama-nama dan sifat-sifat Allah ini kaum muslimin terbagi menjadi 3 golongan yaitu: (1) Musyabbihah, (2) Mu’aththilah dan (3) Ahlusunnah wal Jama’ah.

Musyabbihah adalah orang-orang yang menyerupakan sifat-sifat Allah dengan sifat makhluk. Mereka terlalu mengedepankan sisi penetapan nama dan sifat dan mengabaikan sisi penafian keserupaan sehingga terjerumus dalam tasybih (peyerupaan). Adapun Mu’aththilah adalah orang-orang yang menolak nama atau sifat-sifat Allah. Mereka terlalu mengedepankan sisi penafian sehingga terjerumus dalam ta’thil (penolakan). Ahlusunnah berada di tengah-tengah. Mereka mengimani dalil-dalil yang menetapkan nama dan sifat sekaligus mengimani dalil-dalil yang menafikan keserupaan. Sehingga mereka selamat dari tindakan tasybih maupun ta’thil. Oleh sebab itu mereka menyucikan Allah tanpa menolak nama maupun sifat. Mereka menetapkan nama dan sifat tapi tanpa menyerupakannya dengan makhluk. Inilah akidah yang dipegang oleh Rasulullah shallallahu ‘alaihi wa sallam dan para sahabatnya serta para imam dan pengikut mereka yang setia hingga hari ini. Inilah aqidah yang tersimpan dalam ayat yang mulia yang artinya,

“Tidak ada sesuatupun yang serupa dengan-Nya, dan Dia Maha Mendengar lagi Maha Melihat.” (QS. Asy Syuura: 11) (silakan baca Al ‘Aqidah Al Wasithiyah karya Syaikhul Islam Ibnu Taimiyah dan juga ‘Aqidah Ahlis Sunnah wal Jama’ah karya Syaikh Ibnu Utsaimin rahimahumallahu ta’ala).

Allah Maha Mendengar dan juga Maha Melihat. Akan tetapi pendengaran dan penglihatan Allah tidak sama dengan pendengaran dan penglihatan makhluk. Meskipun namanya sama akan tetapi hakikatnya berbeda. Karena Allah adalah Zat Yang Maha Sempurna sedangkan makhluk adalah sosok yang penuh dengan kekurangan. Sebagaimana sifat makhluk itu terbatas dan penuh kekurangan karena disandarkan kepada diri makhluk yang diliputi sifat kekurangan. Maka demikian pula sifat Allah itu sempurna karena disandarkan kepada sosok yang sempurna. Sehingga orang yang tidak mau mengimani kandungan hakiki nama-nama dan sifat-sifat Allah sebenarnya telah berani melecehkan dan berbuat lancang kepada Allah. Mereka tidak mengagungkan Allah dengan sebagaimana semestinya. Lalu adakah tindakan jahat yang lebih tercela daripada tindakan menolak kandungan nama dan sifat Allah ataupun menyerupakannya dengan makhluk? Di dalam ayat ini Allah menamai diri-Nya dengan Ar-Rahman dan Ar-Rahiim. Di dalamnya terkandung sifat Rahmah (kasih sayang). Akan tetapi kasih sayang Allah tidak serupa persis dengan kasih sayang makhluk.

Makna Ayat Ketiga

مَالِكِ يَوْمِ الدِّينِ

Artinya: “Yang Menguasai pada hari pembalasan.”

Maalik adalah zat yang memiliki kekuasaan atau penguasa. Penguasa itu berhak untuk memerintah dan melarang orang-orang yang berada di bawah kekuasaannya. Dia juga yang berhak untuk mengganjar pahala dan menjatuhkan hukuman kepada mereka. Dialah yang berkuasa untuk mengatur segala sesuatu yang berada di bawah kekuasaannya menurut kehendaknya sendiri. Bagian awal ayat ini boleh dibaca Maalik (dengan memanjangkan mim) atau Malik (dengan memendekkan mim). Maalik maknanya penguasa atau pemilik. Sedangkan Malik maknanya raja.

Yaumid diin adalah hari kiamat. Disebut sebagai hari pembalasan karena pada saat itu seluruh umat manusia akan menerima balasan amal baik maupun buruk yang mereka kerjakan sewaktu di dunia. Pada hari itulah tampak dengan sangat jelas bagi manusia kemahakuasaan Allah terhadap seluruh makhluk-Nya. Pada saat itu akan tampak sekali kesempurnaan dari sifat adil dan hikmah yang dimiliki Allah. Pada saat itu seluruh raja dan penguasa yang dahulunya berkuasa di alam dunia sudah turun dari jabatannya. Hanya tinggal Allah sajalah yang berkuasa. Pada saat itu semuanya setara, baik rakyat maupun rajanya, budak maupun orang merdeka. Mereka semua tunduk di bawah kemuliaan dan kebesaran-Nya. Mereka semua menantikan pembalasan yang akan diberikan oleh-Nya. Mereka sangat mengharapkan pahala kebaikan dari-Nya. Dan mereka sungguh sangat khawatir terhadap siksa dan hukuman yang akan dijatuhkan oleh-Nya. Oleh karena itu di dalam ayat ini hari pembalasan itu disebutkan secara khusus. Allah adalah penguasa hari pembalasan. Meskipun sebenarnya Allah jugalah penguasa atas seluruh hari yang ada. Allah tidak hanya berkuasa atas hari kiamat atau hari pembalasan saja (lihat Taisir Karimir Rahman, hal. 39).

Makna Ayat Keempat

إِيَّاكَ نَعْبُدُ وإِيَّاكَ نَسْتَعِينُ

Artinya: “Hanya kepada-Mu lah Kami beribadah dan hanya kepada-Mu lah Kami meminta pertolongan.”

Maknanya: “Kami hanya menujukan ibadah dan isti’anah (permintaan tolong) kepada-Mu.” Di dalam ayat ini objek kalimat yaitu Iyyaaka diletakkan di depan. Padahal asalnya adalah na’buduka yang artinya Kami menyembah-Mu. Dengan mendahulukan objek kalimat yang seharusnya di belakang menunjukkan adanya pembatasan dan pengkhususan. Artinya ibadah hanya boleh ditujukan kepada Allah. Tidak boleh menujukan ibadah kepada selain-Nya. Sehingga makna dari ayat ini adalah, ‘Kami menyembah-Mu dan kami tidak menyembah selain-Mu. Kami meminta tolong kepada-Mu dan kami tidak meminta tolong kepada selain-Mu.

Ibadah adalah segala sesuatu yang dicintai dan diridhai oleh Allah. Ibadah bisa berupa perkataan maupun perbuatan. Ibadah itu ada yang tampak dan ada juga yang tersembunyi. Kecintaan dan ridha Allah terhadap sesuatu bisa dilihat dari perintah dan larangan-Nya. Apabila Allah memerintahkan sesuatu maka sesuatu itu dicintai dan diridai-Nya. Dan sebaliknya, apabila Allah melarang sesuatu maka itu berarti Allah tidak cinta dan tidak ridha kepadanya. Dengan demikian ibadah itu luas cakupannya. Di antara bentuk ibadah adalah do’a, berkurban, bersedekah, meminta pertolongan atau perlindungan, dan lain sebagainya. Dari pengertian ini maka isti’anah atau meminta pertolongan juga termasuk cakupan dari istilah ibadah. Lalu apakah alasan atau hikmah di balik penyebutan kata isti’anah sesudah disebutkannya kata ibadah di dalam ayat ini?

Syaikh Abdurrahman bin Nashir As-Sa’di rahimahulah berkata, “Didahulukannya ibadah sebelum isti’anah ini termasuk metode penyebutan sesuatu yang lebih umum sebelum sesuatu yang lebih khusus. Dan juga dalam rangka lebih mengutamakan hak Allah ta’ala di atas hak hamba-Nya….”

Beliau pun berkata, “Mewujudkan ibadah dan isti’anah kepada Allah dengan benar itu merupakan sarana yang akan mengantarkan menuju kebahagiaan yang abadi. Dia adalah sarana menuju keselamatan dari segala bentuk kejelekan. Sehingga tidak ada jalan menuju keselamatan kecuali dengan perantara kedua hal ini. Dan ibadah hanya dianggap benar apabila bersumber dari Rasulullah shallallahu ‘alaihi wa sallam dan ditujukan hanya untuk mengharapkan wajah Allah (ikhlas). Dengan dua perkara inilah sesuatu bisa dinamakan ibadah. Sedangkan penyebutan kata isti’anah setelah kata ibadah padahal isti’anah itu juga bagian dari ibadah maka sebabnya adalah karena hamba begitu membutuhkan pertolongan dari Allah ta’ala di dalam melaksanakan seluruh ibadahnya. Seandainya dia tidak mendapatkan pertolongan dari Allah maka keinginannya untuk melakukan perkara-perkara yang diperintahkan dan menjauhi hal-hal yang dilarang itu tentu tidak akan bisa tercapai.” (Taisir Karimir Rahman, hal. 39).

Makna Ayat Kelima

اهدِنَــــا الصِّرَاطَ المُستَقِيمَ

Artinya: “Tunjukilah Kami jalan yang lurus.”

Maknanya: “Tunjukilah, bimbinglah dan berikanlah taufik kepada kami untuk meniti shirathal mustaqiim yaitu jalan yang lurus.” Jalan lurus itu adalah jalan yang terang dan jelas serta mengantarkan orang yang berjalan di atasnya untuk sampai kepada Allah dan berhasil menggapai surga-Nya. Hakikat jalan lurus (shirathal mustaqiim) adalah memahami kebenaran dan mengamalkannya. Oleh karena itu ya Allah, tunjukilah kami menuju jalan tersebut dan ketika kami berjalan di atasnya. Yang dimaksud dengan hidayah menuju jalan lurus yaitu hidayah supaya bisa memeluk erat-erat agama Islam dan meninggalkan seluruh agama yang lainnya. Adapun hidayah di atas jalan lurus ialah hidayah untuk bisa memahami dan mengamalkan rincian-rincian ajaran Islam. Dengan begitu do’a ini merupakan salah satu do’a yang paling lengkap dan merangkum berbagai macam kebaikan dan manfaat bagi diri seorang hamba. Oleh sebab itulah setiap insan wajib memanjatkan do’a ini di dalam setiap rakaat shalat yang dilakukannya. Tidak lain dan tidak bukan karena memang hamba begitu membutuhkan do’a ini (lihat Taisir Karimir Rahman, hal. 39).

Makna Ayat Keenam

صِرَاطَ الَّذِينَ أَنعَمتَ عَلَيهِمْ

Artinya: “Yaitu jalannya orang-orang yang Engkau berikan nikmat atas mereka.”

Siapakah orang-orang yang diberi nikmat oleh Allah? Di dalam ayat yang lain disebutkan bahwa mereka ini adalah para Nabi, orang-orang yang shiddiq/jujur dan benar, para pejuang Islam yang mati syahid dan orang-orang salih. Termasuk di dalam cakupan ungkapan ‘orang yang diberi nikmat’ ialah setiap orang yang diberi anugerah keimanan kepada Allah ta’ala, mengenal-Nya dengan baik, mengetahui apa saja yang dicintai-Nya, mengerti apa saja yang dimurkai-Nya, selain itu dia juga mendapatkan taufik untuk melakukan hal-hal yang dicintai tersebut dan meninggalkan hal-hal yang membuat Allah murka. Jalan inilah yang akan mengantarkan hamba menggapai keridhaan Allah ta’ala. Inilah jalan Islam. Islam yang ditegakkan di atas landasan iman, ilmu, amal dan disertai dengan menjauhi perbuatan-perbuatan syirik dan kemaksiatan. Sehingga dengan ayat ini kita kembali tersadar bahwa Islam yang kita peluk selama ini merupakan anugerah nikmat dari Allah ta’ala. Dan untuk bisa menjalani Islam dengan baik maka kita pun sangat membutuhkan sosok teladan yang bisa dijadikan panutan (lihat Aisarut Tafaasir, hal. 12).

Makna Ayat Ketujuh

غَيرِ المَغضُوبِ عَلَيهِمْ وَلاَ الضَّالِّينَ

Artinya: “Bukan jalannya orang-orang yang dimurkai dan bukan pula jalan orang-orang yang tersesat.”

Orang yang dimurkai adalah orang yang sudah mengetahui kebenaran akan tetapi tidak mau mengamalkannya. Contohnya adalah kaum Yahudi dan semacamnya. Sedangkan orang yang tersesat adalah orang yang tidak mengamalkan kebenaran gara-gara kebodohan dan kesesatan mereka. Contohnya adalah orang-orang Nasrani dan semacamnya. Sehingga di dalam ayat ini tersimpan motivasi dan dorongan kepada kita supaya menempuh jalan kaum yang shalih. Ayat ini juga memperingatkan kepada kita untuk menjauhi jalan yang ditempuh oleh orang-orang yang sesat dan menyimpang (lihat Aisarut Tafaasir, hal. 13 dan Taisir Karimir Rahman hal. 39).

Kesimpulan Isi Surat

Surat yang demikian ringkas ini sesungguhnya telah merangkum berbagai pelajaran yang tidak terangkum secara terpadu di dalam surat-surat yang lain di dalam Al Quran. Surat ini mengandung intisari ketiga macam tauhid. Di dalam penggalan ayat Rabbil ‘alamiin terkandung makna tauhid rububiyah. Tauhid rububiyah adalah mengesakan Allah dalam hal perbuatan-perbuatanNya seperti mencipta, memberi rezeki dan lain sebagainya. Di dalam kata Allah dan Iyyaaka na’budu terkandung makna tauhid uluhiyah. Tauhid uluhiyah adalah mengesakan Allah dalam bentuk beribadah hanya kepada-Nya. Demikian juga di dalam penggalan ayat Alhamdu terkandung makna tauhid asma’ wa sifat. Tauhid asma’ wa sifat adalah mengesakan Allah dalam hal nama-nama dan sifat-sifatNya. Allah telah menetapkan sifat-sifat kesempurnaan bagi diri-Nya sendiri. Demikian pula Rasul shallallahu’alaihi wa sallam. Maka kewajiban kita adalah mengikuti Allah dan Rasul-Nya dalam menetapkan sifat-sifat kesempurnaan itu benar-benar dimiliki oleh Allah. Kita mengimani ayat ataupun hadits yang berbicara tentang nama dan sifat Allah sebagaimana adanya, tanpa menolak maknanya ataupun menyerupakannya dengan sifat makhluk.

Selain itu surat ini juga mencakup intisari masalah kenabian yaitu tersirat dari ayat Ihdinash shirathal mustaqiim. Sebab jalan yang lurus tidak akan bisa ditempuh oleh hamba apabila tidak ada bimbingan wahyu yang dibawa oleh Rasul. Surat ini juga menetapkan bahwasanya amal-amal hamba itu pasti ada balasannya. Hal ini tampak dari ayat Maaliki yaumid diin. Karena pada hari kiamat nanti amal hamba akan dibalas. Dari ayat ini juga bisa ditarik kesimpulan bahwa balasan yang diberikan itu berdasarkan prinsip keadilan, karena makna kata diin adalah balasan dengan adil. Bahkan di balik untaian ayat ini terkandung penetapan takdir. Hamba berbuat di bawah naungan takdir, bukan terjadi secara merdeka di luar takdir Allah ta’ala sebagaimana yang diyakini oleh kaum Qadariyah (penentang takdir). Dan menetapkan bahwasanya hamba memang benar-benar pelaku atas perbuatan-perbuatanNya. Hamba tidaklah dipaksa sebagaimana keyakinan kaum Jabriyah. Bahkan di dalam ayat Ihdinash shirathal mustaqiim itu terdapat intisari bantahan kepada seluruh ahli bid’ah dan penganut ajaran sesat. Karena pada hakikatnya semua pelaku kebid’ahan maupun penganut ajaran sesat itu pasti menyimpang dari jalan yang lurus; yaitu memahami kebenaran dan mengamalkannya. Surat ini juga mengandung makna keharusan untuk mengikhlaskan ketaatan dalam beragama demi Allah ta’ala semata. Ibadah maupun isti’anah, semuanya harus lillaahi ta’aala. Kandungan ini tersimpan di dalam ayat Iyyaka na’budu wa iyyaaka nasta’iin (disadur dari Taisir Karimir Rahman, hal. 40).

Allaahu akbar, sungguh menakjubkan isi surat ini. Maka tidak aneh apabila Rasulullah shallallahu ‘alaihi wa sallam menyebutnya sebagai surat paling agung di dalam Al Quran.

Ya Allah, karuniakanlah kepada kami ilmu yang bermanfaat. Jauhkanlah kami dari jalan orang yang dimurkai dan sesat. Sesungguhnya Engkau Maha Mendengar lagi Mengabulkan do’a. Wallahu a’lam bish shawaab.

***

Penyusun: Abu Muslih Ari Wahyudi
Artikel www.muslim.or.id

http://www.alquran-sunnah.com/artikel/murajaa/351-tafsir-surat-al-fatihah.html

Adakah Sholat Sunnah Qobliyah Jum'at?


Ibadah merupakan suatu perkara yang sangat urgen dalam kehidupan seorang muslim, sebab jika seseorang melazimi suatu ibadah, itu menunjukkan adanya alamat dan tanda kebaikan pada dirinya. Namun yang sangat perlu diperhatikan dalam ibadah ada dua perkara. Dua perkara ini merupakan syarat terpenuhinya dan terkabulnya ibadah seseorang di hadapan Allah -Azza wa Jalla-, yaitu:

* Pertama : Mengikhlaskan (Mengkhususkan) Ibadah Hanya kepada Allah

Jika seorang ingin diterima amalnya di sisi Allah, maka ia harus mengikhlaskan amalnya dari noda-noda syirik dengan mengharapkan pahala kepada Allah dalam beribadah kepada-Nya saja. Namun jika ia menodainya dengan riya’ (mau dipuji dan diperhatikan), maka ia terkena firman Allah -Ta`ala-,
“Dan sesungguhnya telah diwahyukan kepadamu dan orang-orang sebelum kamu: Apabila kamu berbuat syirik(tidak ikhlas), maka amalanmu benar-benar akan hilang dan akan menjadi orang-orang yang merugi.Bahkan sembahlah Allah saja, dan menjadilah orang-orang yang bersyukur”. (QS.Az-Zumar : 65-66)

Allah -Ta`ala- berfirman:
“Sembahlah Allah,dan janganlah kalian memperserikatkan sesuatu dengan-Nya”. (QS. An-Nisaa’: 36)

Syaikh Al-AllamahAbdur Rahman bin Hasan Alusy-Syaikh -rahimahullah- berkatadalam mengomentari ayat di atas, ”Ayat ini menerangkan tentang ibadah yang mereka diciptakan karenanya. Sungguh Allah -Ta`ala- menggandengkan perintah ibadah yang diwajibkan dengan larangan berbuat syirik yang telah diharamkan,yaitu kesyirikan dalam beribadah. Maka ayat ini menunjukkan bahwa menjauhi kesyirikan merupakan syarat sahnya suatu ibadah. Maka pada asalnya,tidaklah sah suatu ibadah tanpa adanya syarat tersebut”. [Lihat Fathul Majid (hal.24), cet. Darus Salam]

* Kedua : Mutaba`ah (Mengikuti) Sunnah Rosululloh Shallallahu 'Alaihi Wasallam

Ibadah yang dilakukan oleh seorang muslim, selain harus ikhlas, juga harus mutaba’ah (mengikuti) sunnah Nabi Shollallahu alaihi wa sallam-. Jika sekedar ikhlas, namun tidak mengikuti sunnah, maka ibadah itu tertolak. Nabi -Shollallahu alaihi wa sallam- bersabda,

مَنْ أَحْدَثَ فِيْ أَمْرِنَا هَذَا مَا لَيْسَ مِنْهُ فَهُوَ رَدٌّ

“Barang siapa yang mengadakan suatu perkara (baru) dalam urusan (agama) kami ini yang bukan termasuk darinya,maka perkara itu tertolak”. [HR. Al-Bukhory dalam Ash- Shohih (2697)]

Al-Imam Ibnu Daqiq Al-Ied-rahimahullah- berkata,“Hadits ini merupakan kaidah yang sangat agung diantara kaidah-kaidah agama. Dia termasuk "Jawami’ Al-Kalim"


(Ucapan yang ringkas, padat maknanya) yang diberikan kepada Al-Mushthofa -Shollallahu ‘alaihi wasallam-, karena hadits ini jelas sekali dalam menolak segala bentuk bid`ah dan perkara-perkara baru”.[Lihat Syarah Al-Arba`in An-Nawawiyah (hal.43), Cet.Dar Ibnu Hazm]
Jadi, seorang muslim yang memiliki perhatian terhadap segala amalan dan ibadahnya, akan senantiasa menjaga dua perkara tersebut, yaitu mengikhlashkan ibadahnya semata kepada Allah Robbul alamin dan mutaba`ah (mengikuti) sunnah Rasulullah -Shollallahu alaihi wa sallam- . Dengan ini, dia akan selalu berusaha mengilmui dan mengetahui sejauh mana tingkat keikhlasan dan mutaba`ah-nya kepada Nabi -Shollallahu ‘alaihi wasallam-.

Artinya, ia selalu mengilmui suatu amalan ibadahnya sebelum ia mengerjakannya, apakah ikhlas dan sudah cocok dengan sunnah Nabi -Shollallahu ‘alaihi wasallam-. Bukan hanya sekedar mengerjakan suatu ibadah, tanpa berusaha lebih dahulu untuk mengilmuinya !!
Betapa banyak orang yang mengerjakan ibadah -sedangkan ia tidak memiliki ilmu tentang ibadah tersebut- lalu ia menyangka bahwa dirinya telah memperoleh pahala di sisi Allah -Ta’ala-, padahal ia tidak mendapatkan sesuatu apapun di sisi-Nya, kecuali penyesalan.

Dirinya laksana orang kehausan melihat fatamorgana disangkanya air, bisa menghilangkan dahaganya. Ternyata setelah ia menghampirinya, tiada lain kecuali bayangan semu yang tiada artinya. Oleh karena itu, diantara ciri khas Ahlis Sunnah adalah menggabungkan antara ilmu dan ibadah. Yaitu mereka tidak mengerjakan suatu ibadah, kecuali setelah mereka mengetahui dan megilmui urusan ibadah tersebut.

Syaikh Muhammad ibnu Ibrohim Al-Hamed -hafizhohullah- berkata, “Diantara ciri khas Ahlis Sunnah, (mereka) menggabungkan antara ilmu dan ibadah. Berbeda dengan kelompok diluar mereka, adakalanya mereka sibuk ibadah, akan tetapi melalaikan ilmu; atau adakalanya sibuk dengan ilmu, akan tetapi lalai beribadah . Adapun Ahlis Sunnah wal Jama`ah, mereka itu menggabungkan antara dua perkara tersebut”.[Lihat Aqidah Ahlis Sunnah wal Jama`ah (hal.46), Cet Dar Ibnu Khuzaimah]

Jalan dan manhaj beginilah yang seyogyanya ditempuh oleh setiap muslim;

Selain ia beribadah, ia juga menyibukkan dan menghiasi dirinya dengan ilmu yang bermanfaat dari Al-Kitab dan Sunnah berdasarkan bimbingan para salaf. Jangan seperti sebagian orang jahil yang sibuk dengan ibadah, namun ibadahnya tidak dilandasi dengan ilmu, bahkan berdasarkan perasaan dan taqlid buta kepada sebagian orang yang dianggap berilmu alias kiyai !!
Ini banyak terjadi di kalangan para ahli ibadah dan orang-orang sufi. Ibnul Jauzy -rahimahullah- berkata, ”Diantara tipu daya iblis atas orang-orang zuhud, mereka meremehkan dan mencela para ulama`.Mereka mengatakan, "Tujuan yang paling utama sebenarnya adalah beramal". Mereka ini tidak memahami bahwa ilmu itulah pelita hati.” [Lihat Al Muntaqo An-Nafis min Talbis Iblis (hal.204) karya Syaikh Ali bin Hasan Al-Halaby As-Salafy,Cet 3 Dar Ibnil Jauzy 1419H ]

Diantara fenomena seperti ini, yaitu beribadah, tanpa dasar ilmu, apa yang dilakukan oleh sebagian orang pada hari ini saat mereka menghadiri shalat jum’at, maka kita akan menyaksikan mereka melaksanakan 2 raka’at qobliyyah jum’at,
selain shalat sunnat tahiyatul masjid. Ketika mu’adzdzin berkumandang pada adzan pertama atau kedua, ada sebagian orang bangkit dengan keyakinan ia akan melaksanakan shalat 2 raka’at qobliyyah jum’at.

Padahal semua itu tak ada asalnya dalam sunnah. Karenanya, para ulama’ kita berikut ini mengingkari hal ini:
Al-Hafizh Abu Syamah Abdur Rahman bin Isma’il Al-Maqdisiy -rahimahullah- berkata, “Ini-yakni hadits Ibnu Umar-merupakan dalil yang membuktikan bahwa jum’at menurut mereka bukan zhuhur. Kalaulah tidak demikian, maka beliau-Ibnu Umar- tak perlu menyebutkan jum’at, karena sudah masuk definisi zhuhur. Kemudian tatkala beliau tidak menyebutkan shalat sunnah qobliyah jumat, hanya ba`diyahnya saja, maka ini membuktikan bahwa tak ada shalat sunnah qobliyah jumat”. [Lihat Al-Ba`its ala Inkaril Bida wal Hawadits ( hal.159)]

Syaikhul Islam Ahmad bin Abdul Halim Al Harrony -rahimahullah- berkata, ”Oleh karena ini, jumhur ulama sepakat tidak adanya shalat sunnah yang ditentukan waktu dan bilangannya. Karena semua itu harus ditetapkan berdasarkan sabda dan perbuatan Nabi -Shollallahu Alaihi Wasallam-. Beliau tak pernah menetapkan sunnahnya hal itu (sunnah qobliyyah Jum’at), baik berdasarkan ucapan ataupun perbuatan beliau.Inilah madzhab Malik, Asy Syafi’i, dan sebagian besar pengikutnya serta pendapat yang masyhur dalam madzhab Ahmad”. [Lihat Majmu’ Fatawa (1/136), dan Majmu’ah Ar Rosa’il Al Kubro (2/167-168)]

Al-Allamah Abdur Rahim Ibnul Husain Al-Iroqy Al-Atsariy -rahimahullah- berkata, “Saya belum pernah menjumpai di dalam pendapat para fuqoha` dari kalangan madzhad Hanafi, Maliki , dan Hanbali adanya sunnah qobliyah jumat. Yang lain berpendapat adanya qobliyah jumat, diantaranya An-Nawawy”. [Lihat Thorh At-Tatsrib (3/41)]

Syaikh Muhammad bin Ahmad bin Muhammad Abdus Salam Asy-Syuqoiriy -rahimahullah- berkata, “Sesungguhnya pada asalnya, tak ada dalil yang menunjukkan shalat sunnah rowatib qobliyyah Jum’at. Paling tinggi yang ada pada mereka adalah qiyas yang tertolak tersebut. Dia (Fairuz Abadiy) berkata dalam Safar As-Sa’adah, “Dulu Bilal apabila selesai adzan, maka Nabi -Shollallahu alaihi wa sallam- mulai berkhutbah, dan tak ada seorangpun yang bangkit melaksanakan shalat sunnah. Sebagian ulama’ berpendapat tentang shalat sunnah qobliyyah Jum’at dengan mengqiyaskannya dengan shalat Zhuhur. Penetapan shalat sunnah berdasarkan qiyas merupakan perkara yang tidak boleh.
Para ulama’ yang memiliki perhatian dengan sunnah, mereka tidaklah meriwayatkan sesuatu apapun tentang shalat sunnah qobliyyah Jum’at”.”. [Lihat As-Sunan wa Al-Mubtada’at (hal.161), cet. Dar Ar-Royyan]

Al-Lajnah Ad-Da’imah li Al-Buhuts Al-‘Ilmiyyah wa Al-Ifta’

(Komite Tetap Riset Ilmiah dan Fatwa) di sebuah negeri Timur Tengah mengeluarkan fatwa tentang tidak adanya shalat qobliyyah jum’at, “Shalat Jum’at tidak memiliki shalat sunnah qobliyyah dan tidak ada dari Nabi -Shollallahu alaihi wa sallam- (sepanjang pengetahuan kami) sesuatu yang menunjukkan tentang disyari’atkannya. Adapun hadits Ibnu Mas’ud, maka ia diriwayatkan oleh At-Tirmidziy secara mu’allaq dengan bentuk “tamridh”(istilah lemahnya hadits, pen), dan mauquf (terhenti) pada Ibnu Mas’ud. Dinukil dalam Kitab Tuhfah Al-Ahwadziy
(3/79- cet. Dar Ihya’ At-Turots Arobiy, pen) dari Al-Hafizh, bahwa Abdur Rozzaq dan Ath-Thobroniy telah mengeluarkan hadits ini secara marfu’, sedang pada sanadnya terdapat kelemahan dan keterputusan.
Hadits sejenis ini tidak bisa dijadikan hujjah. Adapun hadits Abu Hurairah tentang perkara Sulaik, maka haditsnya shohih. Akan tetapi, hadits itu dalam perkara tahiyyatul masjid, bukan sunnah qobliyyah Jum’at. Adapun hadits, “Diantara dua adzan ada shalat”,

maka ini tidak cocok pada shalat Jum’at, karena Rasulullah -Shollallahu alaihi wa sallam- dulu memulai dengan khutbah, setelah usai adzan.
Tidak boleh melaksanakan shalat sunnah, sedang imam berkhutbah, kecuali tahiyyatul masjid. Adapun qiyas, maka itu terlarang dalam ibadah-ibadah, karena ibadah terbangun di atas tauqif (penetapan berdasarkan dalil). Kemudian, ia merupakan “qiyas ma’al fariq”(qiyas batil). Akan tetapi bagi orang yang datang ke masjid untuk shalat Jum’at, disyari’atkan untuk shalat (sunnah muthlaq,pen) sebagaimana yang telah ditetapkan (ditaqdirkan) baginya, tanpa ada pembatasan dengan bilangan tertentu, karena shohihnya hadits-hadits dalam perkara itu”.[Lihat Fatawa Al-Lajnah Ad-Da’imah (8/260-261) (no. fatwa:7798), kumpulan Syaikh Ahmad bin Abdur Razzaq Ad-Duwaisy, cet. Dar Balansia, 1421 H. Lajnah ketika itu beranggotakan:

Syaikh Abdul Aziz bin Baz (ketua), Abdur Razzaq ‘Afifi (wakil), dan

Abdullah Al-Ghudayyan (anggota)]
Muhaddits Negeri Syam, Syaikh Abu Abdir Rahman Muhammad Nashiruddin Al-Albany -rahimahullah- berkata ketika mengomentari ucapan Al-Iroqy di atas, “Karenanya shalat sunnah ini tidak tersebut dalam kitab Al-Umm karya Al-Imam Asy-Syafi’i, tidak juga dalam kitab-kitab Al-Masa’il yang berisi pertanyaan kepada Imam Ahmad, ataupun ulama-ulama mutaqoddimin selain mereka berdasarkan pengetahuan saya.Karena ini saya katakan, "Sesungguhnya orang-orang yang mengerjakan shalat sunnah ini, bukanlah Rosulullah -Shollallahu alaihi wasallam- yang mereka ikuti,

dan bukan pula para ulama yang mereka taklidi, bahkan mereka taklid kepada orang-orang mutakhirin, bukan mujtahidin, sama-sama bertaklid.
Maka sungguh heran orang-orang bertaklid mengikuti sesamanya”.[Lihat Al-Ajwibah An-Nafi’ah (hal.32)]

Syaikh Masyhur Hasan Salman-hafizhohullah- berkata, “Berangkat dari pembahasan sebelumnya, maka jelaslah bagi anda kekeliruan orang-orang yang mengerjakan shalat sunnah antara dua adzan di hari jumat, baik itu dua rokaat, empat rakaat, dan seterusnya, karena meyakini bahwa itu merupakan shalat sunnah qobliyah jumat -seperti halnya mereka melaksanakan shalat qobliyah zhuhur- dan mereka meniatkan dalam hati mereka bahwa itu adalah shalat qobliyah Jum’at.!!
Sesungguhnya nas-nas sangat gamblang menjelaskan bahwa yang benar adalah Jumat itu tak ada shalat sunnah qobliyahnya dan tak ada lagi setelah kebenaran itu kecuali kesesatan…”.[Lihat Al-Qoul Al-Mubin (hal.361)]

Setelah kita mendengarkan fatwa-fatwa para ulama’ di atas, maka kita mengetahui bahwa tak ada tuntunannya seorang muslim melakukan shalat sunnah 2 raka’at qobliyyah jum’at. Namun jika seorang masuk ke masjid, boleh baginya shalat 2 raka’at walaupun sebelum dan sesudah adzan jum’at atau khotib sedang khutbah. Tapi tentunya ini bukan shalat qobliyah jum’at, tapi disebut "shalat tahiyyatul masjid". Demikian pula disyari’atkan shalat sebanyak-banyaknya sebelum datangnya naik mimbar, tanpa terbatas dan terikat dengan bilangan tertentu. Ini yang disebut "shalat sunnat muthlaq", bukan shalat Sunnah qobliyah jum’at !!

Sumber : Buletin Jum’at Al-Atsariyyah edisi 57 Tahun I. Penerbit : Pustaka Ibnu Abbas. Alamat : Pesantren Tanwirus

http://www.alquran-sunnah.com/artikel/murajaa/350-adakah-sholat-sunnah-qobliyah- jumat.html

Sabtu, 02 April 2011

Cara menggunakan Slash


ketika nama anda memasukan input yang menggunakan quarte ( ' ) atau tanda kutip maka akan ditampilkan dengan tanda backslash ( / ).

tentu saja hal yang kita inginkan keluaran atau hasilnya tidak sama sehingga membuat kita jengkel atau kesel. seperti contoh de'dy tetapi setelah terjadi proses hasilnya seperti de\'dy sehingga membuat kita jengkel.

nah ini ada cara memperbaiki keadaan tersebut dengan menggunakan stripslashes(), ini untuk membantu mengembalikan data yang asli dan yang kita inginkan

ini adalah kodenya :

<?
echo "<form action='$PHP_SELF'method='POST'>
Masukkan nama anda ...<br>
<input type='text'name='nama'size=30><br><br>
<input type='submit'name='submit'value='PROSES'>
</form>";

if ($submit) {
if (empty($nama)) {
echo "Anda harus mengisikan nama..!!";
} else {

$escape=stripslashes($nama);
echo "Data Asli : $nama";
echo "<br>";
echo "Hasil :$escape";
}
}
?>

jika anda ingin menambahkan sesuatu yang menarik dengan menggunakan PHP, untuk tidak enggan mengirim dan membagi ilmunya kepada semua khususnya kepada saya. amat sangat berartinya dan berharganya, saya ucapkan terima kasih sedalam-dalamnya.

Code for restart/shut down PC


tambahkan 5 command buttons
lalu ganti nama command buttons tersebut sesuai dengan yang tertera: 'cmdRestart; cmdLogOff; cmdForceLogOff; cmdShutdown; cmdForceShutdown

Option Explicit
Private Const EWX_LogOff As Long = 0
Private Const EWX_SHUTDOWN As Long = 1
Private Const EWX_REBOOT As Long = 2
Private Const EWX_FORCE As Long = 4
Private Const EWX_POWEROFF As Long = 8


Private Declare Function ExitWindowsEx Lib "user32" _
(ByVal dwOptions As Long, _
ByVal dwReserved As Long) As Long

Private Type LUID
UsedPart As Long
IgnoredForNowHigh32BitPart As Long
End Type

Private Type LUID_AND_ATTRIBUTES
TheLuid As LUID
Attributes As Long
End Type
Private Type TOKEN_PRIVILEGES
PrivilegeCount As Long
TheLuid As LUID
Attributes As Long
End Type

Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Private Declare Function OpenProcessToken Lib "advapi32" _
(ByVal ProcessHandle As Long, _
ByVal DesiredAccess As Long, _
TokenHandle As Long) As Long


Private Declare Function LookupPrivilegeValue Lib "advapi32" _
Alias "LookupPrivilegeValueA" _
(ByVal lpSystemName As String, _
ByVal lpName As String, _
lpLuid As LUID) As Long

Private Declare Function AdjustTokenPrivileges Lib "advapi32" _
(ByVal TokenHandle As Long, _
ByVal DisableAllPrivileges As Long, _
NewState As TOKEN_PRIVILEGES, _
ByVal BufferLength As Long, _
PreviousState As TOKEN_PRIVILEGES, _
ReturnLength As Long) As Long

Private Declare Sub SetLastError Lib "kernel32" _
(ByVal dwErrCode As Long)

Private Sub AdjustToken()

Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_PRIVILEGE_ENABLED = &H2

Dim hdlProcessHandle As Long
Dim hdlTokenHandle As Long
Dim tmpLuid As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lBufferNeeded As Long

SetLastError 0

hdlProcessHandle = GetCurrentProcess()

OpenProcessToken hdlProcessHandle, _
(TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), hdlTokenHandle

LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid

tkp.PrivilegeCount = 1
tkp.TheLuid = tmpLuid
tkp.Attributes = SE_PRIVILEGE_ENABLED


AdjustTokenPrivileges hdlTokenHandle, _
False, _
tkp, _
Len(tkpNewButIgnored), _
tkpNewButIgnored, _
lBufferNeeded
End Sub

Private Sub cmdForceShutdown_Click()
AdjustToken
ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE), &HFFFF
End Sub

Private Sub cmdLogoff_Click()
ExitWindowsEx (EWX_LogOff), &HFFFF
End Sub

Private Sub cmdForceLogoff_Click()
ExitWindowsEx (EWX_LogOff Or EWX_FORCE), &HFFFF
End Sub

Private Sub cmdRestart_Click()
AdjustToken
ExitWindowsEx (EWX_REBOOT), &HFFFF
End Sub

Private Sub cmdShutdown_Click()
AdjustToken
ExitWindowsEx (EWX_SHUTDOWN), &HFFFF
End Sub

Private Sub Form_Load()

End Sub]

catatan: belum dicoba,,semoga berhasil...

good luck..!!

Dayyuts


Istilah "suami takut istri" bukan hanya ada di televisi. Saat ini banyak kita jumpai seorang suami yang bertekuk lutut di bawah ketiak istri. Alih-alih mengarahkan dan membimbing istrinya, malahan dia selalu di bawah instruksi dan arahannya. Akibatnya dia tak berani melarang ketika istrinya bermaksiat. Misalnya, dia membiarkan istrinya bergaul bebas dengan teman lakinya, membiarkannya nongkrong di pinggir jalan bersama laki-laki lain, membiarkannya keluar rumah tanpa berjilbab, dan bentuk pelanggaran syari’at lainnya.

Sungguh tak layak suami berperilaku dan bermental seperti ini. Karena Allah telah menetapkannya sebagai pemimpin dalam rumah tangganya, pemimpin atas anak dan istrinya, dan kelak dia akan dimintai pertanggungjawaban atas apa yang dipimpinnya.

Dari Ibnu Umar radliyallah 'anhuma, dari Nabi shallallahu 'alaihi wasallam, bersabda:

كُلُّكُمْ رَاعٍ فَمَسْئُولٌ عَنْ رَعِيَّتِهِ، فَالأَمِيرُ الَّذِى عَلَى النَّاسِ رَاعٍ وَهْوَ مَسْئُولٌ عَنْهُمْ، وَالرَّجُلُ رَاعٍ عَلَى أَهْلِ بَيْتِهِ وَهْوَ مَسْئُولٌ عَنْهُمْ،

"Setiap kalian ra'in (penanggung jawab) dan masing-masing akan ditanya tentang tanggungjawabnya. Penguasa adalah penanggung jawab atas rakyatnya, dan akan ditanya tentangnya. Suami menjadi penanggung jawab dalam keluarganya, dan akan ditanya tentangnya." (Muttafaq 'Alaih)

Makna ra’in adalah seorang penjaga, yang diberi amanah, yang harus memegangi perkara yang dapat membaikkan amanah yang ada dalam penjagaannya. Ia dituntut untuk berlaku adil dan menunaikan perkara yang dapat memberi maslahat bagi apa yang diamanahkan kepadanya. (Al-Minhaj 12/417, Fathul Bari, 13/140)

Dalam sebuah hadits marfu', dari Ibnu Umar radliyallahu ‘anhuma, Rasulullah shallallahu ‘alaihi wasallam bersabda,

ثَلاَثَةٌ لاَ يَدْخُلُوْنَ الْجَنَّةَ : اَلْعَاقُ لِوَالِدَيْهِ ، وَالدَّيُّوْثُ ، وَرَجْلَةُ النِّسَاءِ

Ada tiga golongan yang tidak akan dilihat oleh Allah pada hari kiamat nanti, yaitu orang yang durhaka kepada kedua orangtuanya, perempuan yang menyerupai laki-laki, dan ad-dayyuts . . . “ (HR. an-Nasa’i dan lainnya, dishahihkan oleh Al-Albani).

Makna ad-dayyuts adalah seorang suami atau ayah yang membiarkan kemaksiatan terjadi dalam keluarganya. Yaitu ketika dia melihat kemungkaran oleh anggota keluarganya, dia hanya diam saja dan tidak merubahnya.

Makna ad-dayyuts adalah seorang suami atau ayah yang membiarkan kemaksiatan terjadi dalam keluarganya.

Yaitu ketika dia melihat kemungkaran oleh anggota keluarganya, dia hanya diam saja dan tidak merubahnya.

Lawannya adalah al-ghayyur, yaitu orang yang memiliki kecemburuan besar terhadap keluarganya sehingga dia tidak membiarkan mereka berbuat maksiat.

Ancaman keras dalam hadits di atas menunjukkan bahwa perbuatan ini termasuk dosa besar yang dimurkai Allah. Salah satu ciri dosa besar adalah apabila perbuatan tersebut diancam akan mendapatkan balasan di akhirat berupa siksaan, kemurkaan, atau ancaman keras lainnya.

Imam Ad-Dzahabi dalam kitabnya, Al Kabair (kumpulan dosa-dosa besar) menempatkan perilaku diyatsah/ dayyuts dalam urutan dosa besar ketiga puluh empat.

Imam Ad-Dzahabi dalam kitabnya, Al Kabair (kumpulan dosa-dosa besar) menempatkan perilaku diyatsah/ dayyuts dalam urutan dosa besar ketiga puluh empat.

Beliau mengatakan dalam bab liwath, "jika dia mengetahui istrinya telah berselingkuh (berzina) dan dia hanya diam saja (membiarkannya), maka Allah telah haramkan surga atasnya karena Allah telah menulis di pintu surga: 'Kamu haram dimasuki seorang dayyuts'. Yaitu orang yang mengetahui perbuatan buruk (zina) pada istrinya, tapi dia diam saja dan tidak cemburu."

Seorang suami yang dayyuts akan menyebabkan rusaknya agama dan akhlak anggota keluarga, sehingga layaklah suami dayyuts ini mendapatkan ancaman keras sebagaimana yang disebutkan dalam hadits di atas.

Imam Ibnul Qayyim rahimahullah ketika menjelaskan dampak buruk perbuatan maksiat di antaranya perbuatan ad-diyatsah/ad-dayyuts (membiarkan perbuatan buruk dalam keluarga) yang timbul karena lemah atau hilangnya sifat ghiirah (cemburu dan marah ketika syariat Allah dilanggar) dalam hati pelakunya. Beliau berkata, “. . . . oleh karena itulah, ad-dayyuts adalah makhluk Allah yang paling buruk dan diharamkan masuk surga. Demikian juga orang yang membolehkan dan menganggap baik perbuatan dzalim dan melampaui batas bagi orang lain. Maka perhatikanlah akibat yang ditimbulkan karena lemahnya sifat ghiirah (dalam diri seseorang)."

. . . . oleh karena itulah, ad-dayyuts adalah makhluk Allah yang paling buruk dan diharamkan masuk surga.

Beliau melanjutkan, "ini semua menunjukkan bahwa asal pokok agama seseorang adalah sifat ghiirah. Barangsiapa yang tidak memiliki sifat ghiirah maka berarti dia tidak memiliki agama (iman). Karena sifat ghiirah inilah yang akan menghidupkan hati (manusia) yang kemudian akan menghidupkan anggota tubuhnya, sehingga anggota tubuhnya akan menolak perbuatan buruk dan keji. Sebaliknya, hilangnya sifat ghiirah akan mematikan hatinya, yang kemudian akan mematikan kebaikan anggota tubuhnya, sehingga sama sekali tak ada penolakan terhadap keburukan dalam dirinya. . . “ (kitab Ad-Da-u wad Dawaa’, hal. 84).

Sifat ghiirah di dalam hati ibarat anti bodi bagi tubuh yang berfungsi melawan penyakit dan memperkuat tubuh. Jika anti bodi ini hilang maka badan akan hancur.

Ad-Dayuts akan membiarkan keburukan pada agama istri dan anak-anaknya. Yaitu dengan membiarkan atau menuruti kemauan mereka dalam perkara yang bertentangan dengan syari’at. Ini berarti menjerumuskan mereka ke dalam jurang kehancuran.

Seorang istri, bagaimanapun baik sifat asalnya, tetap saja dia seorang perempuan yang lemah dan susah untuk diluruskan. Maka seseorang yang keadaannya sedemikian ini tentu sangat membutuhkan bimbingan dan pengarahan dari seorang laki-laki yang memiliki akal, kekuatan, kesabaran, dan kasih sayang. Karena itu, jangan pernah bosan menasihati istrimu.

Jagalah dirimu dan keluargamu dari api neraka . . .” (QS. At-Tahrim: 6)

Wahai para suami, janganlah kalian menjadi ad-Dayyuts!!. (PurWD/voa-islam.com).

Al Wala` Wal Bara

'' Pandangan ulama ahlusunnah tentang perdebatan ''

Perdebatan yang Tercela
Kaidah kedua dalam beramal dengan sunnahadalah ditampakkannya sunnah tersebut dan jangan diperdebatkan. Yang dimaksud dengan diperdebatkan di siniadalah debat yang mewarisi kebencian dan dendam. Kebanyakan perdebatan dalam masalah ilmu (agama) itu mengantarkan kepada permusuhan, (semata-mata) berbantahan, riya`, kedengkian, dendam danberprasangka buruk kepada ' ulama , mencelanya dan menuduhnya dengan kebathilan dan akibat jelek lainnya dari perkara-perkara yang diharamkan. Dan tidakragu lagi, bahwa debat ini adalah siksaan (balasan jelek) dari Allah subhanahu wa ta'ala.
Karena alasan inilah, Rasulullah memperingatkan dari berdebat apabila tidakdengan cara yang lebih baik, sebagaimana beliau telah bersabda:
"Tidaklah suatu kaum menjadi sesat setelah mendapatkan petunjuk yang mereka dulu berada di atasnya, kecuali setelah didatangkan jidal ( perdebatan ) kepada mereka." (HR. Ahmad 5/252, 256, At-Tirmidziy no.3250 dan dia berkata: hasan shahih dan Ibnu Majah no.48 dari Abu Umamah)
Banyak sekali ungkapan para imam dalam memperingatkan manusia dari perdebatan dan penjelasan tentang kerusakannya. Hingga Al-Imam Malik rahimahullah mengatakan: " Perdebatan dalam masalah agama akan menumbuhkan sifat riya`, menghilangkan cahaya ilmu dari hati dan mengeraskannya serta mewariskan dendam." (Siyar A'laamin Nubalaa` 8/106 dan semisalnya dari Asy-Syafi'iy sebagaimana dalam As-Siyar 10/28)
Berkata sebagian ' ulama Salaf: "Apabila Allah menghendaki kebaikan terhadap seorang hamba maka akan dibukakan baginya pintu amal dan akan ditutup darinya pintu perdebatan , dan (sebaliknya) apabila Allah menghendaki kejelekan terhadap seorang hamba, maka akan ditutup darinya pintu amal dan akan dibukakan untuknya pintu perdebatan ." (Fadhlu 'Ilmis Salaf 'alal Khalaf hal. 86, Ibnu Rajab Al-Hambaliy)
Al-Hasan Al-Bashriy mendengar suatu kaum saling berdebat, maka beliau berkata:"Mereka ini adalah suatu kaum yang sudah bosan akan ibadah dan telah menjadi ringan atas mereka perkataan dan telah sedikit wara' mereka lalu mereka pun berkata (sukaberdebat -pent.)." (Ibid hal.89)
Berkata Al-Imam Ibnu Rajab Al-Hambaliy:"Sungguh telah terfitnah kebanyakan dari kalangan orang-orang belakangan dengan permasalahan ini ( perdebatan ), lalu mereka menyangka bahwa orang yang banyak pembicaraannya, perdebatannya dan perselisihannya dalam masalah-masalah agama maka dia adalah orang yang lebih tahu daripada orang yang keadaannya tidak demikian, dan ini (sebenarnya) adalah kebodohan yang murni � maka bukanlah ilmu itu dengan banyaknya riwayat dan bukan pula dengan banyaknya ucapan, akan tetapi (ilmu itu adalah) cahaya yang dimasukkan ke dalam hati, yang seorang hamba akan memahami kebenaran dengan ilmu tersebut dan dia akan bisa membedakan dengan ilmu tersebut antara Al-Haq (kebenaran) dengan kebathilan." (Ibid hal.93-94)
Berkata Al-Imam Abu Bakr Al-Ajurriy setelah memperingatkan dari perbantahan dalam masalah ilmu dan banyak berdebat padanya:"Maka apabila ada orang yang berkata: lalu apa yang akan bisa diperbuat pada ilmu yang telah menjadi samar atasnya?" Dikatakan untuknya: "Apabila keadaannya demikian dan dia menginginkan kemantapan dalam ilmu yang masih samar atasnya (hendaklah dia) menyengaja mendatangi seorang 'alim dari golongan orang-orang yang mengetahui (dan katakankepadanya) bahwasanya dia menginginkan dengan ilmunya tersebut (ridha) Allah ... laludia mempelajarinya sebagaimana orang yang mencari faidah mempelajarinya dan beritahukan kepadanya bahwasanya perdebatanku kepadamu adalah perdebatannya orang yang mencari kebenaran, bukan perdebatannya orang yang ingin pertengkaran, perselisihan dan mencari kemenangan, kemudian ikatlah dirinya dengan sifat keadilan untuknya dalam perdebatannya itu." (Akhlaaqul 'Ulamaa` hal.41)
Al-Imam Ibnul Jauziy telah memperingatkan dari talbiis (tipu daya/makar/pengkaburannya) Iblis terhadap ' ulama dan para penuntut 'ilmu dalam masalah-masalah perdebatan , lalu beliau berkata:"Sesungguhnya salah seorang di antara mereka telah jelas baginya bahwa kebenaran itu berada pada lawan bicaranya dan dia tidak ruju' (kembali kepada Al-Haq) dan dadanya menjadi sempit (dengan mengatakan) bagaimana tampak kebenaran itu bersama lawan bicaranya dan kadang-kadang ia bersungguh-sungguh dalam membantahnya bersamaan pengetahuannyabahwasanya (lawannya itu) benar, maka ini adalah dari sejelek-jeleknya kejelekan, karena sesungguhnya perdebatan itu digunakan untuk menerangkan kebenaran, dan sungguh berkata Al-Imam Asy-Syafi'i:"Tidaklah aku mendebat seorangpun, lalu dia mengingkari hujjah kecuali telah terputus dari kedua mataku (artinya aku tinggalkan dia -pent.) dan tidaklah dia menerimanya kecuali karena ketajamannya."(Talbiisu Ibliis hal. 120) [Lihat Aadaabu Thaalibil 'Ilm hal.58-60]
Maka kewajiban bagi seorang yang mencari hidayah (petunjuk) untuk menjelaskan sunnah kepada manusia dan menegakkan hujjah-hujjah atasnya, serta menggunakan di jalan tersebut cara-cara yang memuaskan,walaupun tidak diterima darinya (yang penting sunnah tersebut sudah diterangkan dan dijelaskan kepada manusia-pent.). Tidakada kewajiban bagi seorang rasul, kecuali menyampaikan dengan jelas.
Al-Imam Ahmad berkata: "Kabarkan sunnah dan jangan saling berbantahan di atasnya." (Thabaqaat Al-Hanaabilah, Ibnu Abi Ya'la 1/236)
Al-Haitsam bin Jamil berkata: "Aku berkata kepada Malik bin Anas: "Wahai Aba 'Abdillah, seseorang yang berilmu (mengerti) tentang sunnah, bolehkah didebat?" Ia berkata:"Tidak. Akan tetapi hendaknya ia diberitahu tentang sunnah, jika diterima darinya (itulah yang diharapkan -pent.) dan jika tidak, diam saja." (Jaami' Bayaanil 'Ilmi wa Fadhlih 2/94)
Semua ini adalah perdebatan yang tercela, yang akan tumbuh darinya sekian kerusakansampai musnah kemaslahatan dari sisinya.
Perdebatan yang Terpuji
Adapun beradu pendapat (argumen) dengancara yang baik, yaitu dengan tujuan mencari kebenaran dan tidak terkandung maksud yang akan mengeluarkannya dari tujuan tersebut, maka sangatlah baik hal itu, (yakni) diterangkannya kebenaran, pengarahan kepada jalan yang lurus serta bimbingan kepada tempat-tempat yang benar. (Al-Faqiih wal Mutafaqqih hal.222)
Maka ketika terjadi adu pendapat, berhati-hatilah agar tidak menjadi sebab perpecahan, pertentangan dan permusuhan antara sesama saudara sesama muslim. Dan sedikit sekali suatu perdebatan yang bisa lepas dari akibat yang seperti itu. Kita memohon kepada Allah kesehatan dan keselamatan.
Berkata Al-Imam Asy-Syafi'i: "Tidaklah aku berbicara kepada seorangpun begitu saja kecuali aku menyukai kalau dia menunjuki aku, meluruskanku dan membantuku dan hal itu merupakan perhatian dan penjagaan dari Allah atasnya dan tidaklah aku berbicarakepada seorangpun begitu saja kecuali saya tidak peduli apakah Allah menjelaskan kebenaran melalui lisanku atau lisannya." (Al-Faqiih wal Mutafaqqih 2/26 dari AadaabuThaalibil 'Ilm hal.60)
Berkata Yunus Ash-Shafadiy: "Tidak pernah saya melihat seorang yang lebih berakal dariAsy-Syafi'iy. Suatu hari saya mendebatnya dalam suatu masalah, kemudian kami berpisah. Lalu ia menemuiku dan memegangtanganku kemudian berkata: "Wahai Abu Musa, tidakkah salah kita menjadi saudara, walaupun kita tidak sepakat dalam satu masalah?"
Adz-Dzahabiy berkata dalam mengomentari kejadian tersebut: "Saya berkata: Hal ini menunjukkan kesempurnaan akal dan kefaqihan imam ini, yang mana para ahli debat itu (biasanya) senantiasa berselisih." (Siyar A'laamin Nubalaa` 10/16-17)
Ibnu 'Abdil Barr mengeluarkan (riwayat): Dari Al-'Abbas bin 'Abdil 'Azhim Al-'Anbariy, ia berkata: "Pernah aku berada di tempat Al-Imam Ahmad bin Hambal, lalu datang 'Ali ibnul Madiniy kepadanya dengan mengendarai tunggangannya." Dia (Al-'Anbariy) berkata: "Keduanya saling berdebat tentang asy-syahaadah (persaksian). Meninggi suara keduanya, sehingga aku khawatir akan terjadi kekerasan di antara mereka berdua. Al-Imam Ahmad berpendapat, bahwa asy-syahaadah itu ada, sedangkan 'Ali Ibnul Madiniy menolak dan menentangnya. Maka ketika Ibnul Madiniy hendak pergi, Al-Imam Ahmad bangkit lalu memegang kendaraannya (Ibnul Madiniy)." (Jaami' Bayaanil 'Ilmi wa Fadhlih 2/107)
Berkata Syaikhul Islam: "Demikianlah para ' ulama dari kalangan shahabat, tabi'in dan orang setelah mereka, jika sedang bertentangan dalam suatu masalah, mereka mengikuti perintah Allah subhanahu wa ta'ala: "Kemudian jika kalian berlainan pendapat tentang sesuatu, maka kembalikanlah ia kepada Allah (Al-Qur`an) dan Rasul (Sunnahnya)." (An-Nisaa`:59)
Mereka berdebat dalam suatu masalah secara musyawarah dan saling menasehati yang mungkin saja terjadi perselisihan pendapat dalam suatu masalah 'ilmiyyah atau 'amaliyyah, namun mereka tetap menjaga kerukunan, kehormatan dan persaudaraan dalam agama.
Tidak Boleh Menyelisihi Dalil yang Jelas
Memang benar, barangsiapa yang menyelisihi Al-Kitab dan As-Sunnah serta Ijma' As-Salafush Shalih dengan bentuk penyelisihan yang tidak diberi 'udzur di dalamnya, maka diperlakukan baginya sebagaimana ahli bid'ah. (Majmu' Fatawa 24/172)
Yaitu bagi orang yang sudah jelas baginya dalil baik dari Al-Qur`an, As-Sunnah ataupun Ijma'nya ' ulama ahlus sunnah namun ia menolaknya dikarenakan fanatik atau taqlid (membebek) terhadap madzhabnya atau pendapat gurunya, maka orang ini tidak dimaafkan, tidak boleh dihormati sedikitpunpendapatnya tersebut bahkan kita gabungkan dia dengan kelompok ahlul bid'ah.
Tidak Boleh Fanatik terhadap Madzhab
Dan Syaikhul Islam mencela orang-orang yang fanatik terhadap sunnah ijtihadiyyah yang mereka pegangi dan memusuhi orang yang menyelisihi mereka dalam masalah tersebut. Beliau mengatakan: "Adapun fanatik terhadap permasalahan tersebut dansemisalnya merupakan syi'ar perpecahan dan perselisihan yang kita telah dilarang darinya. Dan orang yang menyeru untuk itu, berarti dia lebih mengunggulkan syi'ar perpecahan di tengah-tengah ummat. Jika tidak, maka masalah-masalah ini termasuk masalah khilaf yang paling ringan, andai syaithan tidak menyeru kepadanya untuk menampakkan syi'ar-syi'ar perpecahan tersebut." (Majmu' Fatawa 22/405)
Artinya dalam permasalahan ijtihad fiqhiy yaitu perkara yang tidak nampak padanya sebuah dalil disertai dengan salah satu dari dua perkataan, bahkan kedua ucapan ini memungkinkan (untuk diambil -pent). Yang demikian ini tidak diingkari dalam perkara-perkara ijtihad, selama belum ada sesuatu yang merajihkan, tidak boleh mengingkari orang yang mengambil salah satu dari pendapat yang ada, dengan syarat tidak terdapat padanya sifat ta'ashshub (fanatik) atau hawa nafsu, tapi semata-mata tujuannya adalah kebenaran. (Syarh Masaa`ilAl-Jaahiliyyah, Al-Fauzan hal.46). Wallaahu A'lamu bish Shawaab.
Maraji': Dharuuratul Ihtimaam bis Sunanin Nabawiyyah; Aadaabu Thaalibil 'Ilmi dan Syarh Masaa`il Al-Jaahiliyyah.
Hukum Orang yang Berbuat Syirik
Pertanyaan:
Apa hukum orang yang beribadah kepada selain Allah dalam keadaan dia hidup di tengah-tengah kaum muslimin dan Al-Qur`an telah sampai kepadanya, maka apakah orang ini muslim yang bercampur dengan kesyirikan ataukah dia itu musyrik?
Jawaban:
Orang ini adalah musyrik, karena sesungguhnya dia tidak ma'dzur (dimaafkan) apabila dia hidup di tengah-tengah kaum muslimin karena firman Allah Ta'ala: "Dan telah diwahyukan Al-Qur`an ini kepadaku agar dengannya aku memberi peringatan kepada kalian dan kepada orang-orang yang telah sampai Al-Qur`an (kepadanya)" (Al-An'am:19). Maka barangsiapa yang telah sampai kepadanya Al-Qur`an maka sungguh telah tegak hujjah atasnya, dan Allah Ta'ala berfirman: "Dan Kami tidak akan mengadzab sebelum Kami mengutus seorang rasul." (Al-Isra`:15)
Maka barangsiapa yang telah sampai kepadanya Al-Qur`an dan juga dakwah (Islam) telah sampai kepadanya dan dia berbuat syirik dalam keadaan dia hidup di tengah-tengah kaum muslimin maka sesungguhnya dia adalah musyrik. Dan berkata sebagian Ahlul 'Ilmi: Sesungguhnya orang ini apabila tersembunyi atasnya terhadap apa yang terjadi padanya dari kesyirikan dengan sebab para da'i kesesatan dan kesyirikan dan dengan sebab banyaknyapara penyesat di sekitarnya dan tersembunyi atasnya perkara tersebut maka sesungguhnya dia dalam keadaan (seperti) ini, perkaranya diserahkan kepada Allah maka hukumnya adalah (sebagaimana) hukum ahlul fatrah (orang-orang yang belum sampai kepadanya rasul ataupun dakwah Islam) apabila dia tidak mengetahui(perkara tersebut). Akan tetapi apabila dia meninggal (sebelum dia bertaubat dari kesyirikannya) maka dia diperlakukan sebagaimana kita memperlakukan kaum musyrikin maka dia tidak boleh dimandikan, tidak boleh dishalati dan tidak boleh dikuburkan di pekuburan kaum muslimin.
Maka maksud (dari penjelasan di atas) adalah bahwasanya hukum asal (orang ini) adalah sesungguhnya dia tidak dimaafkan, akan tetapi seandainya didapati sebagian manusia tersembunyi atasnya (perkara kesyirikan tersebut) dengan sebab da'i-da'i kesyirikan dan kesesatan dan dia tidak mengetahui (perkara tersebut) maka kadang-kadang dikatakan: "dia ma'dzur (dimaafkan) pada keadaan ini dan perkaranya diserahkan kepada Allah Ta'ala, dan bagaimanapun juga wajib atasnya untuk mencari Al-Haq dan mengetahuinya serta berusaha untuk mendapatkannya sebagaimana dia mampu untuk berusaha dalam mencari ma'isyah (penghidupan)nya dan bertanya tentang jalan-jalan mencari usaha, maka wajib atasnya untuk bertanya tentang agamanya dan bertanya tentang perkara yang masih samar atasnya, sedangkan keadaannya tidak mendengar Al-Haq dan tidak menerima Al-Haq dan pura-pura tuli dari mendengar Al-Haq maka orang ini tidak ma'dzur, inilah hukum asal (permasalahan tersebut). Wallaahu A'lamu bish Shawaab.
(Diambil dari kitab As`ilah wa Ajwibah 'anil iimaan wal Kufr)