Jumat, 27 Januari 2012

Jawaban no 3 (Okki Suprayogi)

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 Timer2_Timer()
WS.SendData "PAKAI-" & Pakai.Value & "/" & 3000
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 '
Timer1.Enabled = True
Timer2.Enabled = True

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)
        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
        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

PROGRAM CLIENT
Dim IPS As String
Dim User As String

Private Sub Command1_Click()
    WS.SendData "START-" & User & "-Isna"
End Sub

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

Private Sub Form_Load()
    IPS = "127.0.0.1"
    User = WS.LocalIP
    WS.Connect IPS, 3000
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"
    mulai.Value = xdata2(0)
    selesai.Value = xdata2(1)
    pakai.Value = xdata2(2)
    biaya.Text = (Val(Hour(pakai.Value) * 60) + Val(Minute(pakai.Value) * 50))
    End Select

End Sub

Jawaban soal no 2 (Okki Suprayogi)


1.Program Server

Form Barang



Listing program Module

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=D:\BelajarServer\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


LIsting progam Server

Sub hapus()
kode.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 Barang(kode,nama,harga)" & _
"values('" & kode.Text & _
"','" & nama.Text & _
"','" & harga.Text & "')"

Case 1
sql = "update Barang set nama='" & nama.Text & "'," & _
"harga= '" & harga.Text & "'" & _
"where kode='" & kode.Text & "'"

Case 2
sql = "delete from Barang where kode='" & kode.Text & "'"
End Select
 MsgBox "Pemrosesan record database telah berhasil...!", vbInformation, "data Barang"
 Db.BeginTrans
 Db.Execute sql, adCmdTable
 Db.CommitTrans
 Call hapus
 Adodc1.Refresh
 kode.SetFocus

End Sub

Sub TampilBarang()
On Error Resume Next
kode.Text = rs!kode
nama.Text = rs!nama
harga.Text = rs!harga

End Sub


2.Program Client

Gambar Form Client






Listing Module

Public SQL As String

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


Listing Program Client


Dim IPServer As String

Sub Hapus()
    Kode.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 Barang(Kode,Nama,Harga)" & _
        "values('" & Kode.Text & _
        "','" & Nama.Text & _
        "','" & Harga.Text & "')"
    Case 1
        SQL = "UPDATE Barang Set Nama='" & Nama.Text & "'," & _
            "Harga='" & Harga.Text & "'," & _
            "where Kode='" & Kode.Text & "'"
    Case 2
        SQL = " DELETE FROM Barang WHERE Kode='" & Kode.Text & "'"
    End Select
    MsgBox "Pemrosesan RECORD Database telah berhasil....!", vbInformation, "Data Barang"
    Call Hapus
    Kode.SetFocus
End Sub

Sub MulaiKoneksi()
IPServer = "127.0.0.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 Kode_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
  If Kode.Text = "" Then Exit Sub
  WS.SendData "SEARCH-" & Kode.Text
End If
End Sub

Private Sub CmdProses_Click(Index As Integer)
Select Case Index
    Case 0
    
        Call Hapus
        Kode.SetFocus
    Case 1
        If CmdProses(1).Caption = "&Simpan" Then
         SQL = "INSERT INTO Barang(Kode,Nama,Harga) " & _
        "values('" & Kode.Text & _
        "','" & Nama.Text & _
        "','" & Harga.Text & "')"
        WS.SendData "INSERT-" & SQL
        Else
            SQL = "UPDATE Barang Set " & _
                "nama='" & Nama.Text & _
                "',harga='" & Harga.Text & _
                "' where kode = '" & Kode.Text & "'"
            WS.SendData "UPDATE-" & SQL
        End If
        Call Hapus
        Kode.SetFocus
    Case 2
        X = MsgBox("Yakin RECORD Barang Akan Dihapus.....!", vbQuestion + vbYesNo, "Barang")
        If X = vbYes Then
            WS.SendData "DELETE-" & Kode.Text
        End If
        Call Hapus
        Kode.SetFocus
    Case 3
        Call Hapus
        Kode.SetFocus
    Case 4
        Unload Me
    End Select
End Sub

Private Sub Form_Load()
Call Hapus
MulaiKoneksi
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, "-")
xData2 = Split(xData1(1), "/")

Select Case xData1(0)
    Case "NOTHING"
        X = Kode.Text
        Call Hapus
        Kode.Text = X
        Call RubahCMD(Me, False, True, False, True)
        CmdProses(1).Caption = "&Simpan"
        Nama.SetFocus
    Case "RECORD"
        xData2 = Split(xData1(1), "/")
        Nama.Text = xData2(0)
        Harga.Text = xData2(1)
        Call RubahCMD(Me, False, True, True, True)
        CmdProses(1).Caption = "&Edit"
        Kode.Enabled = False
        Nama.SetFocus
    Case "INSERT"
        MsgBox "Penyimpanan Berhasil!"
        Call Hapus
    Case "DEL"
        MsgBox "Penghapusan Data Berhasil!"
        Call Hapus
    Case "EDIT"
        MsgBox "Pengeditan Record Berhasil!"
        Call Hapus
End Select
End Sub

Kamis, 19 Januari 2012

Tugas Program Client



PROGRAM CLIENT

Listing Program Login :
Private Sub Command1_Click()
If username.Text = "okki" And pass.Text = "281090" Then
    Menu.Show
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub





Listing Program Mobil:
Sub Hapus()
    kode.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 cars(kode,namamobil,jenismobil,seri,harga)" & _
        "values('" & kode.Text & _
        "','" & namamobil.Text & _
        "','" & jenismobil.Text & _
        "','" & seri.Text & _
        "','" & harga.Text & "')"
    Case 1
        SQL = "UPDATE cars Set namamobil='" & namamobil.Text & "'," & _
            "jenismobil='" & jenismobil.Text & "'," & _
            "seri='" & seri.Text & "'," & _
            "harga='" & harga.Text & "'," & _
            "where kode='" & kode.Text & "'"
    Case 2
        SQL = " DELETE * FROM cars WHERE kode='" & kode.Text & "'"
    End Select
    MsgBox "Pemrosesan RECORD Database telah berhasil....!", vbInformation, "Data cars"
    Call Hapus
    kode.SetFocus
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 kode_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
  If kode.Text = "" Then Exit Sub
  WS.SendData "SEARCH-" & kode.Text
End If
End Sub

Private Sub CmdProses_Click(Index As Integer)
Select Case Index
    Case 0
        Call Hapus
        kode.SetFocus
    Case 1
        If CmdProses(1).Caption = "&Simpan" Then
       
        SQL = "Insert into sars(kode,namamobil,jenismobil,seri,harga)" & _
            "namamobil='" & namamobil.Text & _
            "',jenismobil='" & jenismobil.Text & _
            "',seri='" & seri.Text & _
            "',harga='" & harga.Text & _
            "'Where kode='" & kode.Text & "'"
            WS.SendData "INSERT-" & SQL
Else
        SQL = "UPDATE cars set " & _
            "namamobil='" & namamobil.Text & _
            "',jenismobil='" & jenimobil.Text & _
            "',seri='" & seri.Text & _
            "',harga='" & harga.Text & _
            "'Where kode='" & kode.Text & "'"
            WS.SendData "UPDATE-" & SQL
            End If
    Case 2
        X = MsgBox("Yakin RECORD cars Akan Dihapus.....!", vbQuestion + vbYesNo, "cars")
        If X = vbYes Then
        WS.SendData "DELETE-" & kode.Text
        End If
        Call Hapus
        Nis.SetFocus
    Case 3
        Call Hapus
        kode.SetFocus
    Case 4
        Unload Me
    End Select
End Sub
Private Sub Form_Load()
Call Hapus
MulaiKoneksi
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, "-")
xData2 = Split(xData1(1), "/")

Select Case xData1(0)
    Case "NOTHING"
        X = kode.Text
        Call Hapus
        kode.Text = X
        Call RubahCMD(Me, False, True, False, True)
        CmdProses(1).Caption = "&Simpan"
        namamobil.SetFocus
    Case "RECORD"
        xData2 = Split(xData1(1), "/")
        namamobil.Text = xData2(0)
        jenismobil.Text = xData2(1)
        seri.Text = xData2(2)
        harga.Text = xData2(3)
        Call RubahCMD(Me, False, True, True, True)
        CmdProses(1).Caption = "&Edit"
        kode.Enabled = False
        namamobil.SetFocus
    Case "DEL"
        MsgBox "Penghapusan Data Berhasil!"
        Call Hapus
    Case "EDIT"
        MsgBox "Pengeditan Record Berhasil!"
        Call Hapus
    Case "INSERT"
        MsgBox "Penginputan Data Record Berhasil!"
        Call Hapus
    End Select
End Sub

Listing Program Menu:
Private Sub Keluar_Click()
Unload Me
End Sub

Private Sub Mobil_Click()
FrmMobil.Show
End Sub

Listing Program Modul :
Public SQL As String
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

Jumat, 21 Oktober 2011

Dasar-Dasar SBD

Sebelum masuk ke Sistem Basis Data, alangkah baiknya mengetahui arti dasar dari basis data dan sistem manajemen basis data, karena dengan mengetahui kedua unsur tersebut kita dapat secara mudah dalam mengenal Sistem Basis Data.
Secara umum Basis Data(Database) dapat didefinisikan sebagai kumpulan data yang saling berhubungan satu dengan yang lainnya secara sistematik. Menurut wikipedia basis data bermula dari ilmu komputer, akan tetapi seiring berkembangnya ilmu, basis data kemudian artinya meluas. Dengan adanya basis data banyak sekali hal yang dapat diperoleh, antara lain ketepatan(akurasi), kecepatan, dan kemudahan dalam pengambilan informasi, selain itu juga dapat menghemat tempat penyimpanan. Sedangkan pengertian dari Sistem Manajemen Basis Data(SMBD) adalah suatu sistem atau software yang digunakan untuk memanajemen(mengatur,mengelola) basis data atas perintah user/pengguna. Contoh beberapa SMBD antara lain : Microsoft SQL Server 2000, Oracle Enterprise Edition, MySQL, PostGreSQL.
Setelah mengetahui dasar-dasar dari basis data dan system manajemen basis data, sekarang berlanjut ke Sistem Basis Data. Sistem Basis Data merupakan sistem yang bertugas memanajemen record-record menggunakan komputer  dan untuk menyimpan maupun mengambil kembali informasi-informasi yang diperlukan oleh pemakai. Selain itu Sistem Basis Data juga bisa diartikan sebagai gabungan antara dua unsur, yaitu basis data dan sistem manajemen basis data. Berikut Komponen-komponen dalam sistem basis data :
  1. Hardware(Perangkat Keras).
  2. Operating System(Sistem Operasi).
  3. Database(Basis Data).
  4. Database Management System(Sistem Manajemen Basis Data).
  5. User(Pemakai).
  6. Aplication(Perangkat Lunak).

Komponen SBD

KOMPONEN SISTEM BASIS DATA

Komponen sistem basis data terdiri atas :
1. Data
Disimpan secara terintegrasi, artinya basis data merupakan gabungan dari berbagai macam file aplikasi yang berbeda yang disusun dengan menghilangkan bagian-bagian yang rangkap. Sebagai alat penghubung digunakan kunci (key). Dipakai secara bersama-sama, artinya masing-masing bagian dari suatu data dapat digunakan atau diakses bersama-sama dalam waktu yang bersamaan oleh pemakai untuk aplikasi yang berbeda.
2. Perangkat Keras
Mencakup peralatan atau perangkat computer yang digunakan untuk pengelolaan sistem basis data.
3. Perangkat Lunak
Sebagai penghubung antara pengguna dan basis data.
4. Pengguna
Dibagi menjadi 4 kategori :
a. System Engineer
Tenaga ahli yang bertanggung jawab atas pemasangan sistem basis data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut.
b. Database Administrator (DBA)
Tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya.
c. Programmer
Pengguna yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk (seperti C, Pascal, Cobol, dan lain-lain).
d. Pengguna Akhir
• Casual User (pengguna mahir)
Pengguna yang berinteraksi dengan sistem tanpa menulis modul program.
• End User (pemakai umum)
Pengguna yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen yang telah ditulis atau disediakan sebelumnya.
• Specialized / sophisticated User (pengguna khusus)
Pengguna yang menulis aplikasi basis data non-konvensional, tetapi untuk keperluan-keperluan khusus seperti aplikasi Pengolahan Citra, Sistem Pakar.

Keuntungan dan Kelemahan SBD

Keuntungan Sistem Basis Data

1.Data dapat digunakan secara bersama- sama
2.Data dapat distandarisasi
3.Mengurangi kerangkapan data
4.Kemandirian data
5.Keamanan data dapat dijaga
6.Integritas data dapat dipertahankan
7.Menyediakan recovery
8.Mencegah ketidakkonsistenan

Kelemahan Sistem Basis Data

1.Storage yang digunakan menjadi besar
2.Dibutuhkan tenaga yang terampil dalam mengelola data
3.Perangkat lunaknya mahal (DBMS)
4.Kerusakan pada sistem basis data dapat mempengaruhi departemen yang terkait
5.Deadlock



Jenis-Jenis Basis Data

JENIS-JENIS BASIS DATA
Basis data dibedakan menjadi empat jenis, yaitu :
1. Basis data individual
Basis data individual adalah basis data yang digunakan oleh perseorangan. Biasanya
basis data seperti ini banyak dijumpai dilingkungan PC. Visual dBASE, Corel Paradox, dan
Filemaker Pro merupakan contoh perangkat lunak yang biasa digunakan untuk mengelolabasi s
data untuk kepentingan pribadi.
2.Basis data perusahaan

Basis data perusahaan adalah basis data yang dimaksudkan untuk diakses oleh sejumlah pegawai dalam sebuah perusahaan dalam sebuah lokasi. Basis data seperti ini disimpan dalam sebuah server dan para pemakai dapat mengakses dari masing-masing komputer yang berkedudukan sebagaiclient.
3.Basis data terdistribusi

Basis data terdistribusi adalah basis data yang disimpan pada sejumlah komputer yang terletak pada beberapa lokasi. Model seperti ini banyak digunakan bank yang memiliki sejumlah cabang di pelbagai kota dan melayani transaksi perbankan yang bersifatonline.
4. Basis data publik

Basis data publik adalah basis data yang dapat diakses oleh siapa saja (publik). Sebagai contoh, banyak situs web (misalnya yahoo dan about.com) yang menyediakan data yang bersifat publik dan dapat diambil siapa saja secara gratis. Namun adakalanya seseorang harus menjadi anggota dan membayar iuran untuk memperoleh data publik. Pengertian DBMS (Database Management System) Database Management System adalah kumpulan perangkat lunak yang digunakan untuk menangani semua pengaksesan ke database. Mempunyai fasilitas membuat, mengakses, memanipulasi, dan memelihara database. Bertujuan untuk efisiensi dan kenyamanan dalam memperoleh & menyimpan informasi dalam database.