Rabu, 18 Januari 2012

BELAJAR CLIENT - SERVER

1.      Pengertian jaringan Client – Server
Server adalah komputer yang menyediakan fasilitas bagi komputer- komputer lain di dalam jaringan
client adalah komputer-komputer yang menerima atau menggunakan fasilitas yang disediakan oleh server.
Server di jaringan tipe client-server disebut dengan Dedicated Server karena murni berperan sebagai server yang menyediakan fasilitas kepada workstation dan server tersebut tidak dapat berperan sebagai workstation.

2.      Program server
Langkah - langkah pembuatan program server yang menggunakan program Microsoft Office Acces 2003 dan program Microsoft Visual Basic 6.0 yaitu :
a.       Rancanglah pembuatan data base pada program Microsoft Office Acces 2003.
Nama database            : Mahasiswa
Nama table                  : Data
Start, program, pilih Microsoft Office Acces 2003. Pada sebelah kanan bawah tampilan terdapat icon – icon. Klik create a new file. Ketik blank database. Lalu ketik nama database Mahasiswa dengan nama tabel data. Double klik table data isilah field name dan data typenya. Seperti tampilan dibawah ini.


b.      Start, program, pilih Microsoft Visual Basic 6.0, Microsoft Visual Basic 6.0, standard Exe, klik Open.


c.        Rancang tampilan pada Form Login.


Ketik listing program pada form login.
Private Sub Command1_Click()
        If user.Text = "nurjannah" And password.Text = "0902119" Then
        MDIForm1.Show
        ElseIf user.Text = "" & password.Text = "" Then
        MsgBox "Silahkan masukkan password login", vbCritical, "info"
        user.SetFocus
        Else
        MsgBox "Password yang anda inputkan salah", vbCritical, "info"
        user.Text = ""
        password.Text = ""
        End If
End Sub

Private Sub Command2_Click()
        Unload Me
End Sub

Private Sub Form_Load()
        user.Text = ""
        password.Text = ""
        password.PasswordChar = "*"
End Sub

d.       Rancang tampilan pada Form MDIForm1.

Ketik listing program pada form MDIForm1.
Private Sub e_Click()
        Unload Me
End Sub

Private Sub ldm_Click()
        formbarang.Show
End Sub

Rancang tampilan seperti tampilan dibawah ini dengan menggunakan Microsoft Visual Basic 6.0.

e.       Ketik listing program pada Form1.
Private Sub cmdproses_Click(Index As Integer)
Select Case Index
                        Case 0
        Call hapus
        npm.SetFocus
                         Case 1
        If cmdproses(1).Caption = "&Simpan" Then
        Call prosesDB(0)
                        Else
        Call prosesDB(1)
        End If
                        Case 2
        X = MsgBox("yakin RECORD data akan dihapus...!", vbQuestion + vbYesNo, "data")
        If X = vbYes Then prosesDB 2
        Call hapus
        npm.SetFocus
                        Case 3
        Call hapus
        npm.SetFocus
                        Case 4
        Unload Me
End Select
End Sub

Sub hapus()
npm.Enabled = True
clearform Me
Call rubahcmd(Me, True, False, False, False)
cmdproses(1).Caption = " &Simpan"
End Sub

Private Sub Form_Load()
Call opendb
Call hapus
mulaiserver
End Sub

Sub prosesDB(log As Byte)
Select Case log
                        Case 0
SQL = "INSERT INTO data(npm,nama,group,jurusan)" & _
       "values('" & npm.Text & _
       "','" & nama.Text & _
       "','" & group.Text & _
       "','" & jurusan.Text & "')"
                        Case 1
SQL = "UPDATE data SET nama='" & nama.Text & "'," & _
       "group='" & group.Text & "' " & _
"jurusan='" & jurusan.Text & "' " & _
       "WHERE npm='" & npm.Text & "'"
                        Case 2
       SQL = "DELETE  FROM data WHERE npm='" & npm.Text & "'"
       End Select
MsgBox "Pemrosesan  record Database telah berhasil....!!", vbInformation, "data"
db.BeginTrans
db.Execute SQL, adCmdTable
db.CommitTrans
Call hapus
       Adodc1.Refresh
npm.SetFocus
End Sub

Sub tampildata()
On Error Resume Next
npm.Text = rs!npm
nama.Text = rs!nama
group.Text = rs!group
jurusan.Text = rs!jurusan
End Sub

Sub mulaiserver()
ws.LocalPort = 1000
ws.Listen
End Sub
Private Sub npm_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
        If npm.Text = "" Then
       MsgBox "Masukkan npm!", vbInformation, "data"
       npm.SetFocus
       Exit Sub
End If
SQL = " SELECT * FROM data WHERE npm='" & npm.Text & "'"
If rs.State = adStateOpen Then rs.Close
rs.Open SQL, db, adOpenDynamic, adLockOptimistic
If rs.RecordCount <> 0 Then
        tampildata
        Call rubahcmd(Me, False, True, True, True)
        cmdproses(1).Caption = "&Edit"
        npm.Enabled = False
        Else
       X = npm.Text
       Call hapus
       npm.Text = X
       Call rubahcmd(Me, False, True, False, True)
       cmdproses(1).Caption = "&Simpan"
End If
npm.SetFocus
End If
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)
Dim xkirim As String
Dim xData1() As String
Dim xData2() As String
ws.GetData xkirim, vbString, bytesTotal
xData1 = Split(xkirim, "-")
Select Case xData1(0)
                        Case "SEARCH"
        SQL = " delete * FROM data " & _
        " where npm= '" & xData1(1) & "'"
        SQL = "SELECT * FROM data WHERE npm='" & 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!group & "/" & rs!jurusan
        Else
       ws.SendData "NOTHING-DATA"
        End If
                        Case "INSERT"
       db.BeginTrans
       db.Execute xData1(1), adCmdTable
       db.CommitTrans
       Adodc1.Refresh
       ws.SendData "INSERT-XXX"
                        Case "UPDATE"
        db.BeginTrans
        db.Execute xData1(1), adCmdTable
        db.CommitTrans
        Adodc1.Refresh
        ws.SendData "UPDATE-XXX"
                        Case "DELETE"
        SQL = " delete * FROM data " & _
        " where npm= '" & xData1(1) & "'"
        db.BeginTrans
        db.Execute SQL, adCmdTable
        db.CommitTrans
        Adodc1.Refresh
        ws.SendData "DEL-xxx"
        End Select
End Sub

f.        Ketik listing program pada Module.
Klik kanan pada Form1, pilih add, Module, open. Double klik pada tampilan Module, lalu ketikkan listing programnya.

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;DataSource=C:\belajarserver\server\mahasiswa.md;                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

Pada tool box tampilan rancangan program terdapat Project, pilih project1 properties, pada startup object, pilih login. Agar tampilan layar setelah di jalankan akan muncul form login terlebih dahulu.seperti gambar dibawah ini.
Sehingga tampilan setelah dimasukkan password akan tampil seperti di bawah ini.
Lalu muncullah tampilan yang dapat mengasilkan output, seperti gambar ini.


3.      Program Client
Langkah - langkah pembuatan program client tidak pelu merancang database lagi, dikarenakan pada database sudah terdapat pada Server, yang akan terkoneksi ke program client. Jadi program client hanya menggunakan bahasa pemograman  Microsoft Visual Basic 6.0 yaitu :
a.       Start, program, pilih Microsoft Visual Basic 6.0, Microsoft Visual Basic 6.0, standard Exe, klik Open.

b.       Rancang tampilan pada Form Login.
Ketik listing program pada form login.
Private Sub Command1_Click()
        If user.Text = "fitri" And password.Text = "0902160" Then
        MDIForm1.Show
        ElseIf user.Text = "" & password.Text = "" Then
        MsgBox "Silahkan masukkan password login", vbCritical, "info"
        user.SetFocus
        Else
        MsgBox "password yang anda inputkan salah", vbCritical, "info"
        user.Text = ""
        password.Text = ""
        End If
End Sub

Private Sub Command2_Click()
        Unload Me
End Sub

Private Sub Form_Load()
        user.Text = ""
        password.Text = ""
        password.PasswordChar = "*"
End Sub

c.        Rancang tampilan pada Form MDIForm1.
Ketik listing program pada form MDIForm1.
Private Sub e_Click()
        Unload Me
End Sub

Private Sub ldm_Click()
        Form1.Show
End Sub

Selanjutnya Rancang tampilan seperti tampilan dibawah ini dengan menggunakan Microsoft Visual Basic 6.0.

Ketik listing program pada Form1.
Dim IpServer As String
Sub hapus()
        npm.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 data(npm,nama,group,jurusan)" & _
        "values('" & npm.Text & _
        "','" & nama.Text & _
        "','" & group.Text & _
        "','" & jurusan.Text & "')"
                        Case 1
        SQL = "UPDATE data SET nama='" & nama.Text & "'," & _
        "group='" & group.Text & "' " & _
        "jurusan='" & jurusan.Text & "' " & _
        "where npm='" & npm.Text & "'"
                        Case 2
        SQL = "DELETE FROM data WHERE npm='" & npm.Text & "'"
        End Select
        MsgBox "pemrosesan RECORD database telah berhasil...!", vbInformation, "data"
        Call hapus
        npm.SetFocus
End Sub

Private Sub cmdproses_Click(Index As Integer)
        Select Case Index
                        Case 0
        Call hapus
        npm.SetFocus
                        Case 1
        If cmdproses(1).Caption = " &Simpan" Then
        Else
        SQL = "UPDATE data Set " & _
        "nama = '" & nama.Text & _
        "group = '" & group.Text & _
        "' , jurusan= '" & jurusan.Text & _
        "' where npm= '" & npm.Text & "'"
        ws.SendData "UPDATE-" & SQL
        End If
                        Case 2
        X = MsgBox("yakin RECORD data akan dihapus...!", vbQuestion + vbYesNo, "data")
        If X = vbYes Then
        ws.SendData "DELETE-" & npm.Text
        End If
        Call hapus
        npm.SetFocus
                        Case 3
        Call hapus
        npm.SetFocus
                        Case 4
        Unload Me
        End Select
End Sub
Private Sub Form_Load()
        Call hapus
        mulaikoneksi
End Sub

Sub mulaikoneksi()
        IpServer = "192.168.10.1"
        IPClient = ws.LocalIP
        ws.Connect IpServer, 1000
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        DoEvents
        End
End Sub

Private Sub npm_KeyPress(KeyAscii As Integer)
        If KeyAscii = 13 Then
        If npm.Text = "" Then Exit Sub
        ws.SendData "SEARCH-" & npm.Text
        End If
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, vbString, bytesTotal
        xdata1 = Split(xkirim, "-")
        Select Case xdata1(0)
                        Case "NOTHING"
        X = npm.Text
        Call hapus
        npm.Text = X
        Call rubahCMD(Me, False, True, False, True)
        cmdproses(1).Caption = "&Simpan"
        nama.SetFocus
                        Case "RECORD"
         xdata2 = Split(xdata1(1), "/")
        npm.Text = xdata2(0)
        group.Text = xdata2(1)
        jurusan.Text = xdata2(2)
        Call rubahCMD(Me, False, True, True, True)
        cmdproses(1).Caption = "&Edit"
        npm.Enabled = False
        nama.SetFocus
                        Case "DEL"
        MsgBox "penghapusan data berhasil!"
        Call hapus
                        Case "EDIT"
        MsgBox "Pengeditan Record berhasil!"
        Call hapus
        End Select
End Sub

Pada tool box tampilan rancangan program terdapat Project, pilih project1 properties, pada startup object, pilih login. Agar tampilan layar setelah di jalankan akan muncul form login terlebih dahulu.seperti gambar dibawah ini.

Sehingga tampilan setelah dimasukkan password akan tampil seperti di bawah ini.
Lalu muncullah tampilan yang dapat mengasilkan output, seperti gambar dibawah ini.