[VB6] Membuat WebServer sederhana menggunakan component WinSock


Pengertian Web server adalah sebuah software yang memberikan layanan berbasis data dan berfungsi menerima permintaan dari HTTP atau HTTPS pada klien yang dikenal dan biasanya kita kenal dengan nama web browser dan untuk mengirimkan kembali yang hasilnya dalam bentuk beberapa halaman web dan pada umumnya akan berbentuk dokumen HTML. itulah pengertian web server sebenarnya. dalam bentuk sederhana web server akan mengirim data HTML kepada permintaan web Browser sehingga akan terlihat seperti pada umumnya yaitu sebuah tampilan website.

Catatan: Pada tutorial kali ini sedikit membahas tentang HTML, di sarankan pembaca sudah memahami dasar HTML khusus nya tentang Form Method Get (Bisa pelajari disini)


Tutorial

1. Tekan CTRL+T
2. Bila layar component sudah tampil cari dan centang pada "Microsoft Winsock Control"
3. Dan tambahkan component tersebut ke Form anda
4. Lihat di propeties Winsock nya, pada index ubah jadi 0. ini bermaksud agar program bisa men-duplikat winsock nya.. kenapa di duplikat? agar web server kita bisa dibuka oleh banyak webbrowser dalam satu waktu

5. Untuk bagian deklarasi isi dengan

Dim TotalKoneksi As Integer


6. Lalu tambahkan fungsi dibawah ini

Private Function GET_VALUE(data As String, par As String) As String
    If Left(data, 7 + Len(par)) = "GET /?" & par & "=" Then
        GET_VALUE = Split(Right(data, Len(data) - 7 - Len(par)), " HTTP")(0)
    Else
        GET_VALUE = ""
    End If
End Function

Fungsi ini saya buat untuk mengambil nilai GET dari client


7. Untuk Form_Load bisa di isi dengan ini

Private Sub Form_Load()
    TotalKoneksi = 0
    Winsock1(0).LocalPort = 1000
    Winsock1(0).Listen
End Sub

Code ini menyatakan bahwa WebServer kita bisa diakses melalui port 1000 (bisa diubah bila kalian mau)


8 Lalu tambahkan code ini

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    If TotalKoneksi = 0 Then
        Load Winsock1(1)
        If Winsock1(1).State <> sckClosed Then Winsock1(1).Close
        Winsock1(1).Accept requestID
        TotalKoneksi = 1
    Else
        For i = 1 To TotalKoneksi
            If Winsock1(i).State = sckClosed Then
                Winsock1(i).Accept requestID
                Exit Sub
            End If
        Next i
        TotalKoneksi = TotalKoneksi + 1
        Load Winsock1(TotalKoneksi)
        If Winsock1(TotalKoneksi).State <> sckClosed Then Winsock1(TotalKoneksi).Close
        Winsock1(TotalKoneksi).Accept requestID
    End If
End Sub

Code diatas digunakan untuk 
  1. Mengalihkan koneksi dari Winsock1(0) dengan Winsock1(1)
  2. Jika Winsock1(1) sudah digunakan maka cari Winsock1(index) lain yang koneksi nya sudah diputuskan
  3. Jika tetap tidak ada Winsock1(index) lain yang kosong maka buat duplikat Winsock1(index) baru dengan cara Load Winsock1(index nya)
Catatan: Winsock(0) digunakan sebagai Navigator, yang mengatur seluruh koneksi


9. Tambahkan Code ini

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim Data_Kirim, Data_Terima As String
    
    Winsock1(Index).GetData Data_Terima, vbString
    If GET_VALUE(Data_Terima, "nama") <> "" Then
        Data_Kirim = "<html><body>Hai... <b>" & GET_VALUE(Data_Terima, "nama") & "</b><br/>" & _
            "<a href='\'>Kembali</a></body></html>"
    Else
        Data_Kirim = "<html><body>" & _
            "<form method='GET'>Nama :<input type='text' name='nama'>" & _
            "<input type='submit' value='OK'></body></html>"
    End If
        
    Winsock1(Index).SendData Data_Kirim
End Sub

Code ini digunakan untuk mengirimkan code HTML kepada User untuk ditampilkan ke WebBrowser nya


10. Terakhir tambahkan Code ini

Private Sub Winsock1_SendComplete(Index As Integer)
    Winsock1(Index).Close
End Sub

Code ini digunakan untuk menutup koneksi bila semua HTML sudah sepenuhnya dikirim ke User

ScreenShot Hasil Percobaan



Source Code


Saturday, 25 July 2015
Posted by Unknown
Tag :

[VB6] Membuat dan Membaca file Config

Terkadang suatu program memiliki konfigurasi atau settingan sendiri (yang bisa diubah oleh user). ada berbagai cara untuk menyimpan data konfigurasi tersebut, salah satunya sudah dibahas yaitu menyimpan nya di Registry (Click disini untuk membaca). Tetapi setiap bentuk penyimpanan pasti ada kelebihan dan kekurangan nya masing masing, untuk menyimpan di file yang akan dibahas kali ini
mempunyai kelebihan yaitu mudah di-backup dan mudah di-restore kembali data bila sang user ingin mengganti komputer atau ingin memformat komputernya.

Strukur File

Untuk struktur file config terdiri dari beberapa section, di setiap section memiliki beberapa key, dan setiap key memiliki masing masing nilai. bentuk umum nya seperti ini


Module yang diperlukan


Private Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
                        (ByVal lpApplicationName As String, _
                        ByVal lpKeyName As Any, _
                        ByVal lpString As Any, _
                        ByVal lpFileName As String) As Long

Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
                        (ByVal lpApplicationName As String, _
                        ByVal lpKeyName As Any, _
                        ByVal lpDefault As String, _
                        ByVal lpReturnedString As String, _
                        ByVal nSize As Long, _
                        ByVal lpFileName As String) As Long
                        
Public Sub WriteConfig(sSection As String, sKeyName As String, sNewString As String, sINIFileName As String)
  Call WritePrivateProfileString(sSection, sKeyName, sNewString, sINIFileName)
End Sub

Public Function ReadConfig(sSection As String, sKeyName As String, sINIFileName As String) As String
Dim sRet As String
  sRet = String(255, Chr(0))
  ReadConfig = Left(sRet, GetPrivateProfileString(sSection, ByVal sKeyName, "", sRet, Len(sRet), sINIFileName))
End Function

Menulis File Config

WriteConfig "Nama_Section", "Nama_Key", "Nilai_nya", "Alamat_File_nya"

Membaca File Config

Text1.Text = ReadConfig("Nama_Section", "Nama_Key", "Alamat_File_nya")

Source Code

Friday, 24 July 2015
Posted by Unknown
Tag :

[VB6] Menggunakan Net Framework di Visual Basic 6

Pendahuluan

Microsoft .NET Framework (dibaca Microsoft Dot Net Framework) atau lebih dikenal dengan singkatan dot net (tidak berhubungan dengan domain .net) merupakan sebuah perangkat lunak kerangka kerja yang berjalan utamanya padasistem operasi Microsoft Windows, saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru). Kerangka kerja ini menyediakan sejumlah besar pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang baik sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem.

Langkah awal

Jika kalian langsung ke langkah selanjutnya mungkin kalian akan menemukan error "Activex Component Can't Create Object". Agar Net Framwork dapat digunakan di Visual Basic 6.0, saya sudah siapkan tools nya Disini




Memasukan/Menambahkan Net Framework kedalam Visual Basic 6

  1. pada menu pilih Project > References...
  2. click "Browser" lalu buka directory "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.tlb"
  3. jangan lupa centang pada "system" lalu click ok (seperti pada gambar)


Source Code (Contoh penggunaanya)



Catatan

Tutorial ini hanya menggunakan fungsi fungsi dari System.Dll maka dari itu belum banyak fungsi dari Net Framework yang dapat digunakan. Untuk menggunakan Fungsi lain masih dalam percobaan.
Thursday, 27 February 2014
Posted by Unknown
Tag :

[VB6] Menjalan kan Program saat Windows StartUp

Program StartUp adalah program yang secara otomatis aktif bersamaan dengan di-load-nya SystemOperasi (Windows). anda bisa saja membuat Applikasi seperti ini di Visual Basic 6 dengan cara sebagai berikut




Mengaktifkan StartUp


s = Replace(App.Path & "\" & App.EXEName & ".exe", "\\", "\")
Set Reg = CreateObject("WScript.Shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName, s


Menonaktifkan StartUp


On Error Resume Next
Set Reg = CreateObject("WScript.Shell")
Reg.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName
Tuesday, 25 February 2014
Posted by Unknown
Tag :

[VB6] Penggunaan Tanggal dan Waktu

Mengambil Waktu/Tanggal


Contoh mengambil Waktu
Text1.Text = Time

Contoh mengambil Tanggal
Text1.Text = Date

Format


Jika kita mencoba contoh diatas di banyak komputer, maka akan menghasilkan format format yang berbeda. ada yang "12-01-1999" (dd-mm-yyyy) , ada juga yang "01-12-99" (mm-dd-yy). itu karena penggunaan format Tanggal dan Waktu di Visual Basic 6 mengacu pada pengaturan pada setiap komputer nya. Tetapi jangan takut program anda kacau karena Tanggal dan Waktu tersebut bisa diformat ulang sehingga format di setiap komputer menjadi sama. Dibawah sini adalah contoh contoh memformat waktu dan tanggal 


Format(Now, "dddd")                 hasilnya Minggu
Format(Now, "long date")            hasilnya 31 Oktober 2010
Format(Now, "short date")           hasilnya 31/10/2010
Format(Now, "dd-MM-yyyy")           hasilnya 31-10-2010
Format(Now, "dd-MMM-yyyy")          hasilnya 31-Okt-2010
Format(Now, "dddd, dd MMMM yyyy")   hasilnya Minggu, 31 Oktober 2010
Format(Now, "long time")            hasilnya 3:12:57
Format(Now, "short time")           hasilnya 3:12
Format(Now, "h:mm:ss")              hasilnya 3:12:57
Format(Now, "hh:mm:ss")             hasilnya 03:12:57

Mengetahui selisih Tanggal atau Waktu

Format
[Object/Varieble] = DateDiff([Format],[V1],[V2])

Keterangan:

 Jika ingin mencari selisih detik maka ubah [format] diatas menjadi "s" yang berarti Second, begitu juga yang lain. jika ingin mencari selisih hari berarti ganti menjadi "d" yang berarti Day
• [V1] dan [V2] adalah tanggal/waktu yang ingin dicari selisih nya

Contoh
Text1.Text = DateDiff("s", "03:02:30", "03:03:32")
Text1.Text = DateDiff("m", Time, "03:03:32")
Text1.Text = DateDiff("d", Date, "28/02/2014")

Mengambil Sebagian Informasi

Jika kita menggunakan Date maka menghasilkan Hari, Bulan dan Tahun. Bagaimana cara mengambil Hari nya saja? atau Bulanya saja?

Contoh
Text1.Text = Day(Date)
Text1.Text = Month(Date)
Text1.Text = Year("20-01-2010") 'Mengasilkan nilai 2010

ada pula pengunaan nya pada Waktu yaitu
Text1.Text = Second(Time)
Text1.Text = Minute(Time)
Text1.Text = Hour(Time)

Menambah Waktu dan Tanggal

Contoh situasi

waktu pertama = 02:30:50
waktu kedua    = 02:30:55
waktu ketiga    = 02:31:00

mungkin kalian akan sedikit kesulitan untuk membuat situasi seperti diatas karena batas maksimal angka yaitu 60, tetapi tidak usah takut karena VB6 sudah menyiapkan Fungsi yang dapat kalian gunaan dengan mudah

Format
[Object/Varieble] = DateAdd([Format],[V1],[V2])

Keterangan:

• untuk [Format] kalian sesuaikan dengan keadaan, jika seperti situasi diatas maka ubah [Format] menjadi "s" karena data yang ditambah ialah Detik

• untuk [V1] ialah jumlah nilai yang ingin ditambah, jika seperti situasi diatas maka ubah [V1] menjadi "5" karena penambahan waktu diatas ialah 5 detik

• untuk [V2] ialah waktu atau tanggalnya

Contoh
Text1.Text = DateAdd("s", 2, "02:03:05") 'Maka menghasilkan 02:03:07
Text1.Text = DateAdd("y",1,Date)
Text1.Text = DateAdd("m",5,"01-11-2010") 'Maka menghasilkan 01-04-2011
Posted by Unknown
Tag :

[VB6] Mengirim Command ke CommandPrompt dan Mengambil Hasil Command

Pendahuluan

Command prompt adalah sebuah perintah DOS yg ada di windows yg bisa kita akses secara online atau offline, command prompt sendiri merupakan sebuah fitur yg cukup menarik dan memiliki fungsi yg cukup berguna, dimana kita bisa mengakses, mengganti nama, memindahkan sebuah file dengan mudah melalui fitur ini. Tapi tidak semua pengguna komputer yg menggunakan fitur ini dengan bijaksana, adapun beberapa hacker yg sering melalukan aksi jahilnya melalui fitur ini. Disini saya akan membagi ilmu bagaimana cara mengirim intruksi/perintah ke command prompt dan mengambil laporanya

Module yang diperlukan

Public Sub Send(st As String)
    Open App.Path & "\sub.cmd" For Output As #1
        Print #1, st & " > """ & App.Path & "\result.txt"""
    Close #1
    Shell App.Path & "\sub.cmd", vbHide
End Sub
Public Function Report() As String
    If Dir(App.Path & "\result.txt") = "" Then Exit Function
    Open App.Path & "\result.txt" For Input As #1
        Report = Input(LOF(1), 1)
    Close #1
End Function

Mengirim Perintah

Send "Attrib"

Mengambil Laporan

Text1.Text = Report

Source Code


Sunday, 23 February 2014
Posted by Unknown
Tag :

[VB6] Membuka URL menggunakan Dafault Web Browser

Setiap format dalam file komputer memiliki Program Dafault nya masing masing. Begitu juga Web Browser, setiap komputer kita masing masing memiliki Web Browser Dafault yang berbeda beda





Module yang diperlukan

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Sub OpenBrowser(ByVal URL As String)
    Dim res As Long
    res = ShellExecute(0&, "open", URL, vbNullString, vbNullString, vbNormalFocus)
End Sub

Contoh

OpenBrowser "http://www.google.Com"

Membuat Hyperlink

1. Tambahkan Label (Lable1)
2. Tambahkan Code seperti berikut

Private Sub Form_Load()
    Label1.ForeColor = vbBlue
    Label1.FontUnderline = True
    Label1.Caption = "Google.Com"
End Sub
Private Sub Label1_Click()
    OpenBrowser "Google.Com"
End Sub

Source Code

Saturday, 22 February 2014
Posted by Unknown
Tag :

[VB6] Mengenal lebih jauh tentang ClipBoard (Copy, Paste)

Pengertian

ClipBoard adalah tempat khusus pada memory yang disediakan untuk menyimpan kalimat yang telah kita Copy, dan kita bisa saja mengambil data tersebut sewaktu waktu dengan menggunakan perintah Paste



Menyimpan Kata kedalam ClipBoard

Clipboard.SetText "Planet VB6"

Mengambil kata dari ClipBoard

Text1.Text = Clipboard.GetText

Source Code


Posted by Unknown
Tag :

[VB6] Mengubah Text menjadi Suara

Module yang diperlukan

Public Sub Speak(kalimat As String)
    Dim obj
    Set obj = CreateObject("sapi.spvoice")
    obj.Speak kalimat
End Sub

Contoh

Speak "I Am Programmer"

Source Code

Posted by Unknown
Tag :

[VB6] Cara membuat Web Browser sendiri

Menambah Component

Sebelum memulai kita harus menambah component WebBrowser terlebih dahulu kedalam Applikasi dengan cara:
1. Project > Component...
2. Cari kata Microsoft Internet Control
3. Click OK
4. Masukan Component WebBrowser dari Toolbox kedalam Program mu

Mengakses sebuah halaman

WebBrowser1.Navigate "Google.Com"

Hentikan Proses

WebBrowser1.Stop

Kembali kehalaman sebelumnya

WebBrowser1.GoBack

Kembali kehalaman selanjutnya

WebBrowser1.GoForward

Menggunakan ProgressBar pada WebBrowser

Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
    If ProgressMax > 0 And Progress >= 0 Then
        ProgressBar1.Max = ProgressMax
        ProgressBar1.Value = Progress
    End If
End Sub

Source Code

Posted by Unknown
Tag :

Popular Post