Total Tayangan Halaman

Minggu, 29 Januari 2012



Listing Program Client
Dim ipserver As String
Dim xpakai As String
Dim xdata1() As String
Dim xdata2() As String
Dim xpesan As String
Dim xkirim As String
Dim user As String


Private Sub Command1_Click()
    WS.SendData "START-" & user & "-ridho"
    ipserver = "127.0.0.1"
    ipclient = WS.LocalIP
    WS.Connect ipserver, 3000
End Sub

Private Sub Command2_Click()
    WS.SendData "STOP" & user
End Sub

Private Sub Form_Load()
    Me.Caption = "CLIENT IP: " & WS.LocalIP
    ipserver = "192.168.11.1"
    user = WS.LocalIP
    WS.Connect ipserver, 3000
End Sub



Private Sub ws_connectionrequest(ByVal requestid As Long)
WS.Close
WS.Accept requestid
Me.Caption = "server - client" & WS.RemoteHostIP & "connect"
End Sub

Private Sub ws_dataarrival(ByVal bytestotal As Long)
WS.GetData xkirim, vbString, bytestotal
Call checkdata
End Sub

Sub checkdata()
xdata1 = Split(xkirim, "-")
xdata2 = Split(xdata1(1), "/")

    Select Case xdata1(0)
    Case "PAKAI"
        pakai.Value = xdata2(0)
    End Select
End Sub
Listing Program Server
Dim ClientIndex As Byte
Dim cRequest As Integer
Dim cData As String
Dim i As Integer
Dim iGD As Integer

Sub MulaiServer()
        WS(0).LocalPort = 3000
        WS(0).Listen
        cRequest = 1
        ClientIndex = 1
End Sub

Private Sub Form_Load()
        MulaiServer
        GD.Rows = 41
        For i = 1 To 40
            GD.Col = 0
            GD.Row = i
            GD.Text = i
        Next i
        iGD = 1
End Sub



Private Sub Timer1_Timer()
    For i = 1 To GD.Rows - 1
        GD.Row = i
        GD.Col = 4
        If GD.Text = "START" Then
            GD.Col = 3
            GD.Text = Time
        End If
    Next i
End Sub

Private Sub WS_ConnectionRequest(index As Integer, ByVal requestID As Long)
        Load WS(cRequest)
        WS(cRequest).Close
        WS(cRequest).Accept requestID
        cRequest = cRequest + 1 '
End Sub

Private Sub WS_DataArrival(index As Integer, ByVal bytesTotal As Long)
        WS(index).GetData cData, vbString, bytesTotal
        Call CekData(index)
       
End Sub

Sub CekData(index)
    On Error Resume Next
        Dim kata() As String
        kata = Split(cData, "-")
        Select Case kata(0)
        Case "START"
                        GD.Row = iGD
                        GD.Col = 1
                        GD.Text = kata(1) 'WS(index).RemoteHostIP
                        GD.Col = 2
                        GD.Text = Time
                        GD.Col = 4
                        GD.Text = "START"
                        GD.Col = 5
                        GD.Text = kata(2)
                        iGD = iGD + 1
        Case "STOP"
            For i = 1 To GD.Rows - 1
                GD.Row = i
                GD.Col = 1
                If GD.Text = kata(1) Then
                    GD.Col = 4
                    GD.Text = "STOP"
                End If
            Next i
        End Select
End Sub
       
Private Sub WS_Error(index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
        WS(index).Close

End Sub
LISTING MODUL SERVER
LISTING MODUL SERVER 

Public db As New ADODB.Connection
Public rs As New ADODB.Recordset
Public rs2 As New ADODB.Recordset
Public sql As String

Sub opendb()
If db.State = adStateOpen Then db.Close
db.CursorLocation = adUseClient
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\pertemuan X\test.mdb;Persist Security Info=False"
End Sub

Sub clearform(f As Form)
Dim ctl As Control
For Each ctl In f
    If TypeOf ctl Is TextBox Then ctl.Text = ""
    If TypeOf ctl Is ComboBox Then ctl.Text = ""
Next
End Sub
Sub center(f As Form)
f.Move (Screen.Width - f.Width) / 2, (Screen.Height - f.Height) / 4
End Sub
Sub rubahcmd(f As Form, l0 As Boolean, l1 As Boolean, l2 As Boolean, l3 As Boolean)
f.cmdproses(0).Enabled = l0
f.cmdproses(1).Enabled = l1
f.cmdproses(2).Enabled = l2
f.cmdproses(3).Enabled = l3
End Sub

Rabu, 18 Januari 2012

Contoh Client & Server


Tampilan login
 
Listing Program
Private Sub Cmdok_Click()
    If Txtuser.Text = "ridho" And Txtpas.Text = "azhar" Then
 FrmPegawai.Show
 FrmLogin.Hide
 Else
 FrmLogin.Show
 FrmPegawai.Hide
 MsgBox "maaf User dan Password Salah Bosss"
 bersih
 Txtuser.SetFocus
 End If
End Sub
Private Sub Form_Load()
    bersih
End Sub
Sub bersih()
Txtuser.Text = ""
Txtpas.Text = ""
End Sub
Private Sub CmdKeluar_Click()
End
End Sub
Tampilan Data Pegawai
 
 
Listing Program

Sub Hapus()
    NIP.Enabled = True
    ClearFORM Me
    Call RubahCMD(Me, True, False, False, False)
    CmdProses(1).Caption = "&Simpan"
End Sub

Sub ProsesDB(Log As Byte)
   Select Case Log
        Case 0
            SQL = "INSERT INTO Pegawai(NIP, Nama, TempatLhr, TanggalLhr, Pendidikan, Bagian, Status)" & _
                " values('" & NIP.Text & _
                "','" & NAMA.Text & _
                "','" & TEMPAT.Text & _
                "','" & TANGGAL.Text & _
                "','" & PENDIDIKAN.Text & _
                "','" & BAGIAN.Text & _
                "','" & STATUS.Text & "')"
        Case 1
            ctgl = Mid(TANGGAL.Text, 7, 4) & "-" & Mid(TANGGAL.Text, 4, 2) & "-" & Mid(TANGGAL.Text, 1, 2)
           
            SQL = "UPDATE Pegawai SET Nama ='" & NAMA.Text & "'," & _
                  " TempatLhr = '" & TEMPAT.Text & "'," & _
                  " TanggalLhr = '" & ctgl & "'," & _
                  " Pendidikan = '" & PENDIDIKAN.Text & "'," & _
                  " Bagian = '" & BAGIAN.Text & "'," & _
                  " Status = '" & STATUS.Text & "' " & _
                  " where NIP ='" & NIP.Text & "'"
        Case 2
            SQL = "DELETE FROM Pegawai WHERE NIP='" & NIP.Text & "'"
    End Select
    MsgBox "Pemorosesan RECORD Database telah berhasil...!", vbInformation, "Data Pegawai"
    Db.Execute SQL, adCmdTable
    Call Hapus
    Adodc1.Refresh
    NIP.SetFocus
End Sub

Sub Tampilpegawai()
    On Error Resume Next
    NIP.Text = RS!NIP
    NAMA.Text = RS!NAMA
    TEMPAT.Text = RS!TempatLhr
    TANGGAL.Text = RS!TanggalLhr
    PENDIDIKAN.Text = RS!PENDIDIKAN
    BAGIAN.Text = RS!BAGIAN
    STATUS.Text = RS!STATUS
End Sub

Private Sub CmdProses_Click(Index As Integer)
Select Case Index
    Case 0
        Call Hapus
        NIP.SetFocus
    Case 1
        If CmdProses(1).Caption = "&Simpan" Then
            Call ProsesDB(0)
        Else
            Call ProsesDB(1)
        End If
    Case 2
        x = MsgBox("Yakin RECORD PEGAWAI Akan Dihapus...!", vbQuestion + vbYesNo, "Pegawai")
        If x = vbYes Then ProsesDB 2
        Call Hapus
        NIP.SetFocus
    Case 3
        Call Hapus
        NIP.SetFocus
    Case 4
        Unload Me
    End Select
End Sub

Private Sub Form_Load()
    Call OPENDB
    Call Hapus
   
    BAGIAN.AddItem "HRD"
    BAGIAN.AddItem "HUMAS"
    BAGIAN.AddItem "KEUANGAN"
   
    PENDIDIKAN.AddItem "DIPLOMA III"
    PENDIDIKAN.AddItem "STRATA I"
    PENDIDIKAN.AddItem "STRATA II"
   
    STATUS.AddItem "MENIKAH"
    STATUS.AddItem "TIDAK MENIKAH"
End Sub

Private Sub NIP_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        If NIP.Text = "" Then
            MsgBox "Masukkan NIP Pegawai !", vbInformation, "Pegawai"
            NIP.SetFocus
            Exit Sub
        End If
        SQL = "SELECT * FROM Pegawai WHERE NIP='" & NIP.Text & "'"
        If RS.State = adStateOpen Then RS.Close
        RS.Open SQL, Db, adOpenDynamic, adLockOptimistic
        If RS.RecordCount <> 0 Then
            Tampilpegawai
            Call RubahCMD(Me, False, True, True, True)
            CmdProses(1).Caption = "&Edit"
            NIP.Enabled = False
        Else
            x = NIP.Text
            Call Hapus
            NIP.Text = x
            Call RubahCMD(Me, False, True, False, True)
            CmdProses(1).Caption = "&Simpan"
        End If
        NAMA.SetFocus
    End If
End Sub

Private Sub WS_CconnectionRequest(ByVal requestID As Long)
WS.Close
WS.Accept requestID
Me.Caption = "Server-Client" & WS.RemoteHostIP & "Connect"

End Sub

Private Sub WS_DataArrival(ByVal bytesTotal As Long)
Dim xKirim As String
Dim xData1() As String
Dim xData2() As String

WS.GetData xKirim, vdString, bytesTotal
xData1 = Split(xKirim, "-")

    Select Case xData1(0)
        Case "SEARCH"
            SQL = "SELECT*FROM Pegawai WHERE NIP='" & xData1(1) & "'"
            If RS.State = adStateOpen Then RS.Close
            RS.Open SQL, Db, adOpenDynamic, adLockOptimistic
            If RS.RecordCount <> 0 Then
                WS.SendData "RECORD-" & RS!NAMA & "/" & RS!TempatLhr & "/" & RS!TanggalLhr & "/" & RS!PENDIDIKAN & "/" & RS!STATUS
            Else
                WS.SendData "NOTHING-xxx"
            End If
    Case "INSERT"
            Db.BeginTrans
            Db.Execute xData1(1), adCmdTable
            Db.CommitTrans
            WS.SendData "INSERT-xxx"
            Adodc1.Refresh
    Case "UPDATE"
            Db.BeginTrans
            Db.Execute xData1(1), adCmdTable
            Db.CommitTrans
            WS.SendData "EDIT-xxx"
            Adodc1.Refresh
    Case "DELETE"
            SQL = "Delete * from Pegawai " & _
    "where NIP='" & xData1(1) & "'"
    Db.BeginTrans
    Db.Execute SQL, adCmdTable
    Db.CommitTrans
    Adodc1.Refresh
    WS.SendData "DEL-xxx"
        End Select
End Sub


Module1
Public Db As New ADODB.Connection
Public RS As New ADODB.Recordset
Public RS2 As New ADODB.Recordset
Public SQL As String

Sub OPENDB()
    If Db.State = adStateOpen Then Db.Close
    Db.CursorLocation = adUseClient
    Db.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Pegawai"
End Sub

Sub ClearFORM(f As Form)
    Dim ctl As Control
    For Each ctl In f
        If TypeOf ctl Is TextBox Then ctl.Text = ""
        If TypeOf ctl Is ComboBox Then ctl.Text = ""
    Next
End Sub

Sub Center(f As Form)
    f.Move (Screen.Width - f.Width) / 2, (Screen.Height - f.Height) / 4
End Sub

Sub RubahCMD(f As Form, L0 As Boolean, L1 As Boolean, L2 As Boolean, L3 As Boolean)
    f.CmdProses(0).Enabled = L0
    f.CmdProses(1).Enabled = L1
    f.CmdProses(2).Enabled = L2
    f.CmdProses(3).Enabled = L3
End Sub