Jumat, 28 Oktober 2011

Pengertian Dan Rincian Visual basic

Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu.

Visual Basic .NET 2002 (VB 7.0)

Versi pertama dari Visual Basic .NET adalah Visual Basic .NET 2002 yang dirilis pertama kali pada bulan Februari 2002. Visual Basic .NET 2002 merupakan sebuah bahasa pemrograman visual yang berbasis bahasa BASIC (sama seperti halnya Visual Basic 6.0, tetapi lebih disempurnakan dan lebih berorientasi objek), dan didesain untuk berjalan di atas Microsoft .NET Framework versi 1.0.
Versi 7.0 ini dirilis bersamaan dengan Visual C# dan ASP.NET. Bahasa C#, yang dianggap sebagai jawaban terhadap Java, mendapatkan perhatian yang lebih banyak dibandingkan dengan VB.NET yang kurang begitu banyak diulas. Hasilnya, sedikit orang di luar komunitas Visual Basic yang memperhatikan VB.NET. Versi pertama ini kurang mendapat sambutan yang bagus dari para programmer, dan pada saat itu, program berbasis Visual Basic 6.0 sedang marak-maraknya dibuat. Para programmer yang mencoba Visual Basic .NET untuk pertama kali akan merasakan bahwa Visual Basic .NET sangatlah berbeda dibandingkan dengan Visual Basic sebelumnya. Contoh yang paling mudah adalah runtime engine yang lebih besar 10 kali lipat dibandingkan Visual Basic 6.0, dan juga meningkatkan beban di memori.

 Visual Basic .NET 2003 (VB 7.1)

Selanjutnya, pada bulan Maret 2003, Microsoft pun merilis lagi versi yang lebih baru dari Visual Basic .NET, Visual Basic .NET 2003. Versi ini berisi beberapa perbaikan dibandingkan dengan versi sebelumnya, dan aplikasi yang dibuatnya dapat berjalan di atas .NET Framework versi 1.1. Fitur yang ditambahkan adalah dukungan terhadap .NET Compact Framework dan mesin wizard upgrade VB6 ke VB.NET yang telah ditingkatkan. Peningkatan yang lainnya adalah peningkatan pada performa dan keandalan dari Integrated Development Environment (IDE) Visual Basic itu sendiri, dan juga runtime engine.
Visual Basic .NET 2003 tersedia dalam beberapa jenis cita rasa: Professional, Enterprise Architect dan Academic Edition. Khusus untuk Visual Basic .NET 2003 Academic Edition, versi tersebut didistribusikan secara gratis untuk beberapa sekolah di dalam setiap negara; versi Professional dan Enterprise Architect merupakan produk komers Visual Basic 2005 (VB 8.0)
Setelah itu, Microsoft pun berkonsentrasi dalam mengembangkan Microsoft .NET Framework 2.0, dan tentunya alat bantu untuk membangun program di atasnya. Hingga pada tahun 2005, mereka pun merilis versi terbaru dari Visual Basic .NET, yang kali ini disebut dengan Visual Basic 2005 (dengan membuang kata ".NET"), bersama-sama dengan beberapa aplikasi pengembangan lainnya.
Untuk rilis 2005 ini, Microsoft menambahkan beberapa fitur baru, di antaranya adalah:
  • Edit and Continue
    Fitur ini sebelumnya terdapat di dalam Visual Basic, akan tetapi dihapus di dalam Visual Basic .NET. Dengan keberadaan fitur ini, para programmer dapat memodifikasi kode pada saat program dieksekusi dan melanjutkan proses eksekusi dengan kode yang telah dimodifikasi tersebut.
  • Evaluasi ekspresi pada saat waktu desain
  • Munculnya Pseudo-Namespace "My", yang menyediakan:
    • Akses yang mudah terhadap beberapa area tertentu dari dalam .NET Framework yang tanpanya membutuhkan kode yang sangat signifikan.
    • Kelas-kelas yang dibuat secara dinamis (khususnya My.Forms).
  • Peningkatan yang dilakukan terhadap konverter kode sumber dari Visual Basic ke Visual Basic .NET.
  • Penggunaan kata kunci (keyword) Using, yang menyederhanakan penggunaan objek-objek yang membutuhkan pola Dispose untuk membebaskan sumber daya yang sudah tidak terpakai.
  • Just My Code, yang menyembunyikan kode reusable yang ditulis oleh alat bantu Integrated Development Environment (IDE) Visual Studio .NET.
  • Pengikatan sumber data (Data Source binding), yang mampu mempermudah pengembangan aplikasi basis data berbasis klien/server.
Fungsi-fungsi yang tersebut di atas (khususnya My) ditujukan untuk memfokuskan Visual Basic .NET sebagai sebuah platform pengembangan aplikasi secara cepat dan "menjauhkannya" dari bahasa C#.
Bahasa Visual Basic 2005 memperkenalkan fitur-fitur baru, yakni:
  • Bawaan .NET Framework 2.0:
    • Generics
    • Partial class, sebuah metode yang dapat digunakan untuk mendefinisikan beberapa bagian dari sebuah kelas di dalam sebuah berkas, lalu menambahkan definisinya di lain waktu; sangat berguna khususnya ketika mengintegrasikan kode pengguna dengan kode yang dibuat secara otomatis.
    • Nullable Type
  • Komentar XML yang dapat diproses dengan menggunakan beberapa alat bantu seperti NDoc untuk membuat dokumentasi secara otomatis.
  • Operator overloading
  • Dukungan terhadap tipe data bilangan bulat tak bertanda (unsigned integer) yang umumnya digunakan di dalam bahasa lainnya.

 Visual Basic 9.0 (Visual Basic 2008)

Versi ini merupakan versi terbaru yang dirilis oleh Microsoft pada tanggal 19 November 2007, bersamaan dengan dirilisnya Microsoft Visual C# 2008, Microsoft Visual C++ 2008, dan Microsoft .NET Framework 3.5.
Dalam versi ini, Microsoft menambahkan banyak fitur baru, termasuk di antaranya adalah:

 Hubungan dengan Visual Basic klasik

Apakah Visual Basic .NET dianggap sebagai sebuah versi Visual Basic atau benar-benar bahasa yang berbeda merupakan sebuah topik perdebatan yang hangat. Hal ini dikarenakan sintaksis bahasa Visual Basic .NET tidak mengalami perubahan yang sangat drastis, dan hanya menambahkan beberapa dukungan fitur baru seperti penanganan eksepsi secara terstruktur dan ekspresi yang bisa di-short-circuit-kan. Dua perubahan tipe data pun terjadi saat berpindah ke Visual Basic .NET. Dibandingkan dengan Visual Basic 6.0, tipe data Integer yang dimiliki oleh Visual Basic .NET memiliki panjang dua kali lebih panjang, dari 16 bit menjadi 32 bit. Selain itu, tipe data Long juga sama-sama berubah menjadi dua kali lipat lebih panjang, dari 32 bit menjadi 64 bit. Bilangan bulat 16-bit dalam Visual Basic .NET dinamakan dengan Short. Lagi pula, desainer GUI Windows Forms yang terdapat di dalam Visual Studio .NET atau Visual Basic .NET memiliki gaya yang sangat mirip dengan editor form Visual Basic klasik.
Jika sintaksis tidak banyak yang berubah, lain halnya dengan semantik, yang berubah secara signifikan. Visual Basic .NET merupakan sebuah bahasa pemrograman yang mendukung fitur "Bahasa Pemrograman Berorientasi Objek" secara penuh, karena memang didukung oleh arsitektur Microsoft .NET Framework, yang mengandung kombinasi dari Common Language Runtime dan Base Class Library. Visual Basic klasik, hanya merupakan sebuah bahasa pemrogaman berbasis objek, yang berjalan di atas arsitektur Component Object Model (COM).
Perubahan ini telah mengubah banyak asumsi tentang hal yang benar yang harus dilakukan dengan mempertimbangkan performa dan kemudahan untuk dipelihara. Beberapa fungsi dan pustaka perangkat lunak, yang ada di dalam Visual Basic klasik, kini tidak terdapat di dalam Visual Basic .NET; mungkin masih banyak yang masih terdapat di dalam Visual Basic .NET, tapi tidak seefisien apa yang ditawarkan oleh .NET Framework. Bahkan jika program Visual Basic klasik bisa dikompilasi dengan benar, sebagian besar program Visual Basic klasik harus melalui beberapa proses refactoring untuk mengadopsi fitur bahasa baru secara keseluruhan. Dokumentasi untuk ini pun tersedia di situs Microsoft[1].

 Contoh Pemrograman

Contoh program sederhana dalam bahasa Visual Basic .NET yang dipakai untuk menghitung jumlah pembayaran dari m_item buah barang dengan harga m_price per item ditambah 5% pajak penjualan: [2].
Dim m_item, m_price, tax, total As double
  m_item = double.Parse(textBox1.Text)
  m_price = double.Parse(textBox2.Text)
  tax = 0.05
  total = m_item * m_price * (1 + tax)
  label5.Text = total.ToString()
  MessageBox.Show("Well Done.")
Berikut ini adalah contoh lain dari program Visual Basic yang menggunakan objek CheckBox dan ComboBox untuk menghitung jumlah kredit mata kuliah yang diambil oleh seorang mahasiswa (masing-masing mata kuliah = 3 kredit):
Dim total As Integer
total = 0 ' awal dari jumlah kredit total
If (CheckBox1.Checked = True) Then 'boleh memilih semua checkbox
            total += 3
        End If
        If (CheckBox2.Checked = True) Then
            total = total + 3
        End If
        If (CheckBox3.Checked = True) Then
            total = total + 3
        End If
If (ComboBox1.SelectedIndex = 0) Then 'hanya bisa memilih satu
            total = total + 3
        ElseIf (ComboBox1.SelectedIndex = 1) Then
            total = total + 3
        ElseIf (ComboBox1.SelectedIndex = 2) Then
            total = total + 3 
        End If
Label3.Text = CStr(total) ' hasil kredit total yang diambil


Selasa, 18 Oktober 2011

Pengertian Visual Basic Net Dan Macam - Macam VB.Net

Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan di atas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu.

Terdapat tiga buah versi Visual Basic yang dirilis hingga bulan Agustus 2007, yakni:

 Visual Basic .NET 2002 

Versi pertama dari Visual Basic .NET adalah Visual Basic .NET 2002 yang dirilis pertama kali pada bulan Februari 2002. Visual Basic .NET 2002 merupakan sebuah bahasa pemrograman visual yang berbasis bahasa BASIC (sama seperti halnya Visual Basic 6.0, tetapi lebih disempurnakan dan lebih berorientasi objek), dan didesain untuk berjalan di atas Microsoft .NET Framework versi 1.0.
Versi 7.0 ini dirilis bersamaan dengan Visual C# dan ASP.NET. Bahasa C#, yang dianggap sebagai jawaban terhadap Java, mendapatkan perhatian yang lebih banyak dibandingkan dengan VB.NET yang kurang begitu banyak diulas. Hasilnya, sedikit orang di luar komunitas Visual Basic yang memperhatikan VB.NET. Versi pertama ini kurang mendapat sambutan yang bagus dari para programmer, dan pada saat itu, program berbasis Visual Basic 6.0 sedang marak-maraknya dibuat. Para programmer yang mencoba Visual Basic .NET untuk pertama kali akan merasakan bahwa Visual Basic .NET sangatlah berbeda dibandingkan dengan Visual Basic sebelumnya. Contoh yang paling mudah adalah runtime engine yang lebih besar 10 kali lipat dibandingkan Visual Basic 6.0, dan juga meningkatkan beban di memori.

Visual Basic .NET 2003 

Selanjutnya, pada bulan Maret 2003, Microsoft pun merilis lagi versi yang lebih baru dari Visual Basic .NET, Visual Basic .NET 2003. Versi ini berisi beberapa perbaikan dibandingkan dengan versi sebelumnya, dan aplikasi yang dibuatnya dapat berjalan di atas .NET Framework versi 1.1. Fitur yang ditambahkan adalah dukungan terhadap .NET Compact Framework dan mesin wizard upgrade VB6 ke VB.NET yang telah ditingkatkan. Peningkatan yang lainnya adalah peningkatan pada performa dan keandalan dari Integrated Development Environment (IDE) Visual Basic itu sendiri, dan juga runtime engine.
Visual Basic .NET 2003 tersedia dalam beberapa jenis cita rasa: Professional, Enterprise Architect dan Academic Edition. Khusus untuk Visual Basic .NET 2003 Academic Edition, versi tersebut didistribusikan secara gratis untuk beberapa sekolah di dalam setiap negara; versi Professional dan Enterprise Architect merupakan produk komersial.

 Visual Basic 2005

Setelah itu, Microsoft pun berkonsentrasi dalam mengembangkan Microsoft .NET Framework 2.0, dan tentunya alat bantu untuk membangun program di atasnya. Hingga pada tahun 2005, mereka pun merilis versi terbaru dari Visual Basic .NET, yang kali ini disebut dengan Visual Basic 2005 (dengan membuang kata ".NET"), bersama-sama dengan beberapa aplikasi pengembangan lainnya.
Untuk rilis 2005 ini, Microsoft menambahkan beberapa fitur baru, di antaranya adalah:
  • Edit and Continue
    Fitur ini sebelumnya terdapat di dalam Visual Basic, akan tetapi dihapus di dalam Visual Basic .NET. Dengan keberadaan fitur ini, para programmer dapat memodifikasi kode pada saat program dieksekusi dan melanjutkan proses eksekusi dengan kode yang telah dimodifikasi tersebut.
  • Evaluasi ekspresi pada saat waktu desain
  • Munculnya Pseudo-Namespace "My", yang menyediakan:
    • Akses yang mudah terhadap beberapa area tertentu dari dalam .NET Framework yang tanpanya membutuhkan kode yang sangat signifikan.
    • Kelas-kelas yang dibuat secara dinamis (khususnya My.Forms).
  • Peningkatan yang dilakukan terhadap konverter kode sumber dari Visual Basic ke Visual Basic .NET.
  • Penggunaan kata kunci (keyword) Using, yang menyederhanakan penggunaan objek-objek yang membutuhkan pola Dispose untuk membebaskan sumber daya yang sudah tidak terpakai.
  • Just My Code, yang menyembunyikan kode reusable yang ditulis oleh alat bantu Integrated Development Environment (IDE) Visual Studio .NET.
  • Pengikatan sumber data (Data Source binding), yang mampu mempermudah pengembangan aplikasi basis data berbasis klien/server.
Fungsi-fungsi yang tersebut di atas (khususnya My) ditujukan untuk memfokuskan Visual Basic .NET sebagai sebuah platform pengembangan aplikasi secara cepat dan "menjauhkannya" dari bahasa C#.
Bahasa Visual Basic 2005 memperkenalkan fitur-fitur baru, yakni:
  • Bawaan .NET Framework 2.0:
    • Generics
    • Partial class, sebuah metode yang dapat digunakan untuk mendefinisikan beberapa bagian dari sebuah kelas di dalam sebuah berkas, lalu menambahkan definisinya di lain waktu; sangat berguna khususnya ketika mengintegrasikan kode pengguna dengan kode yang dibuat secara otomatis.
    • Nullable Type
  • Komentar XML yang dapat diproses dengan menggunakan beberapa alat bantu seperti NDoc untuk membuat dokumentasi secara otomatis.
  • Operator overloading
  • Dukungan terhadap tipe data bilangan bulat tak bertanda (unsigned integer) yang umumnya digunakan di dalam bahasa lainnya.

 Visual Basic 9.0

Versi ini merupakan versi terbaru yang dirilis oleh Microsoft pada tanggal 19 November 2007, bersamaan dengan dirilisnya Microsoft Visual C# 2008, Microsoft Visual C++ 2008, dan Microsoft .NET Framework 3.5.
Dalam versi ini, Microsoft menambahkan banyak fitur baru, termasuk di antaranya adalah:

 Hubungan dengan Visual Basic klasik

Apakah Visual Basic .NET dianggap sebagai sebuah versi Visual Basic atau benar-benar bahasa yang berbeda merupakan sebuah topik perdebatan yang hangat. Hal ini dikarenakan sintaksis bahasa Visual Basic .NET tidak mengalami perubahan yang sangat drastis, dan hanya menambahkan beberapa dukungan fitur baru seperti penanganan eksepsi secara terstruktur dan ekspresi yang bisa di-short-circuit-kan. Dua perubahan tipe data pun terjadi saat berpindah ke Visual Basic .NET. Dibandingkan dengan Visual Basic 6.0, tipe data Integer yang dimiliki oleh Visual Basic .NET memiliki panjang dua kali lebih panjang, dari 16 bit menjadi 32 bit. Selain itu, tipe data Long juga sama-sama berubah menjadi dua kali lipat lebih panjang, dari 32 bit menjadi 64 bit. Bilangan bulat 16-bit dalam Visual Basic .NET dinamakan dengan Short. Lagi pula, desainer GUI Windows Forms yang terdapat di dalam Visual Studio .NET atau Visual Basic .NET memiliki gaya yang sangat mirip dengan editor form Visual Basic klasik.
Jika sintaksis tidak banyak yang berubah, lain halnya dengan semantik, yang berubah secara signifikan. Visual Basic .NET merupakan sebuah bahasa pemrograman yang mendukung fitur "Bahasa Pemrograman Berorientasi Objek" secara penuh, karena memang didukung oleh arsitektur Microsoft .NET Framework, yang mengandung kombinasi dari Common Language Runtime dan Base Class Library. Visual Basic klasik, hanya merupakan sebuah bahasa pemrogaman berbasis objek, yang berjalan di atas arsitektur Component Object Model (COM).
Perubahan ini telah mengubah banyak asumsi tentang hal yang benar yang harus dilakukan dengan mempertimbangkan performa dan kemudahan untuk dipelihara. Beberapa fungsi dan pustaka perangkat lunak, yang ada di dalam Visual Basic klasik, kini tidak terdapat di dalam Visual Basic .NET; mungkin masih banyak yang masih terdapat di dalam Visual Basic .NET, tapi tidak seefisien apa yang ditawarkan oleh .NET Framework. Bahkan jika program Visual Basic klasik bisa dikompilasi dengan benar, sebagian besar program Visual Basic klasik harus melalui beberapa proses refactoring untuk mengadopsi fitur bahasa baru secara keseluruhan. Dokumentasi untuk ini pun tersedia di situs Microsoft.

 Contoh Pemrograman

Contoh program sederhana dalam bahasa Visual Basic .NET yang dipakai untuk menghitung jumlah pembayaran dari m_item buah barang dengan harga m_price per item ditambah 5% pajak penjualan:
Dim m_item, m_price, tax, total As double
  m_item = double.Parse(textBox1.Text)
  m_price = double.Parse(textBox2.Text)
  tax = 0.05
  total = m_item * m_price * (1 + tax)
  label5.Text = total.ToString()
  MessageBox.Show("Well Done.")
Berikut ini adalah contoh lain dari program Visual Basic yang menggunakan objek CheckBox dan ComboBox untuk menghitung jumlah kredit mata kuliah yang diambil oleh seorang mahasiswa (masing-masing mata kuliah = 3 kredit):
Dim total As Integer
total = 0 ' awal dari jumlah kredit total
If (CheckBox1.Checked = True) Then 'boleh memilih semua checkbox
            total += 3
        End If
        If (CheckBox2.Checked = True) Then
            total = total + 3
        End If
        If (CheckBox3.Checked = True) Then
            total = total + 3
        End If
If (ComboBox1.SelectedIndex = 0) Then 'hanya bisa memilih satu
            total = total + 3
        ElseIf (ComboBox1.SelectedIndex = 1) Then
            total = total + 3
        ElseIf (ComboBox1.SelectedIndex = 2) Then
            total = total + 3 
        End If
Label3.Text = CStr(total) ' hasil kredit total yang diambil 
 
 
 

Check For a File

Public Function FileExist(asPath as string) as Boolean
If UCase(Dir(asPath))=Ucase(trimPath(asPath)) then
FileExist=true
Else
FileExist=False
End If
End Function
Public Function TrimPath(ByVal asPath as string) as string
if Len(asPath)=0 then Exit Function
Dim x as integer
Do
x=Instr(asPath,”\”)
if x=0 then Exit Do
asPath=Right(asPath,Len(asPath)-x)
Loop
TrimPath=asPath
End Function
Private sub command1_Click()
if fileExist(Text1.text) then
Label1=”YES”
else
Label1=”NO”
End if
End Sub
Private sub form_Load()
End sub

Low and Upper Case

‘add 2 command buttons and 1 text
Private Sub Command1_Click()
    Text1.Text = CapFirst$(Text1.Text)
End Sub
Private Sub Command2_Click()
    Text1.Text = LCase$(Text1.Text)
End Sub
‘add 1 module
Declare Function CapFirst$ Lib “CAPFIRST.DLL” Alias “CAPFIRST” (ByVal St$)

Show Your IP Address

Add Microsoft Winsock Control 6.0 component
Insert 1 Textbox
Insert 2 Command Buttons Rename Caption as Display and Clear
Private Sub Command1_Click()
If Text1.Text = “” Then
    Command1.Enabled = False
    Text1.Text = Winsock1.LocalIP
Else
    Command1.Enabled = True
End If
End Sub
Private Sub Command2_Click()
Text1.Text = “”
If Text1.Text = “” Then
    Command1.Enabled = True
Else
    Command1.Enabled = False
End If
End Sub
Private Sub Form_Load()
Text1.Text = “”
If Text1.Text = “” Then
    Command1.Enabled = False
Else
    Command1.Enabled = True
End If
Text1.Text = Winsock1.LocalIP
End Sub
Option Explicit
Dim id As Integer
Dim N As Integer
Dim perm() As Integer
Function Engine(i As Integer)
   Dim t As Integer
   Dim j As Integer
 
   id = id + 1
   perm(i) = id
   If (id = N) Then stampaj
   For j = 1 To N
      If (perm(j) = 0) Then
         Engine (j)
      End If
   DoEvents
   Next j
   id = id – 1
   perm(i) = 0
End Function
Private Sub cmdClear_Click()
  List1.Clear
End Sub
Private Sub cmdGen_Click()
  If Val(txtLength.Text) > Len(txtChar.Text) Then
    MsgBox “Jumlah Permutasi Salah”
    Exit Sub
  End If
 
  If Len(txtChar.Text) = 0 Or (Val(txtLength.Text) = 0) Then Exit Sub

  Dim i As Integer
  N = Val(txtLength.Text)
  ReDim perm(N)
  For i = 1 To N
     perm(i) = 0
  Next i
  If ChSave.Value = 1 Then
     MsgBox “Disimpan pada hasil.txt”
     Open App.Path + “\hasil.txt” For Output As #1
  End If
  Engine 0
  If ChSave.Value = 1 Then Close #1

End Sub
Sub Form_Load()
   On Error Resume Next
   id = -1
 
End Sub
Sub stampaj()
   Dim i As Integer
   Dim result As String
   result = “”
   For i = 1 To N
      result = result & CStr(Mid$(txtChar.Text, perm(i), 1))
   Next i
   List1.AddItem result
   If ChSave.Value = 1 Then Print #1, result
End Sub

Permutasi
Public Function Hash(ByVal text As String) As String
a = 1
For i = 1 To Len(text)
    a = Sqr(a * i * Asc(Mid(text, i, 1))) ‘Numeric Hash
Next i
Rnd (-1)
Randomize a ‘seed PRNG
For i = 1 To 16
    Hash = Hash & Chr(Int(Rnd * 256))
Next i
End Function
Private Sub Form_Load()
  MsgBox Hash(“EmZ-2509″)    ‘Yang dihasilkan: ‰°’r¿¾ ©Ì¿ÂX*¤W
  End
End Sub
 
Enkripsi Searah

Enkripsi

Function EncDec(inData As Variant, Optional inPW As Variant = “”) As Variant
     On Error Resume Next
     Dim arrSBox(0 To 255) As Integer
     Dim arrPW(0 To 255) As Integer
     Dim Bi As Integer, Bj As Integer
     Dim mKey As Integer
     Dim i As Integer, j As Integer
     Dim x As Integer, y As Integer
     Dim mCode As Byte, mCodeSeries As Variant
  
     EncDec = “”
     If Trim(inData) = “” Then
         Exit Function
     End If
  
     If inPW <> “” Then
         j = 1
         For i = 0 To 255
             arrPW(i) = Asc(Mid$(inPW, j, 1))
             j = j + 1
             If j > Len(inPW) Then
                  j = 1
             End If
         Next i
     Else
         For i = 0 To 255
             arrPW(i) = 0
         Next i
     End If
   
     For i = 0 To 255
         arrSBox(i) = i
     Next i
   
     j = 0
     For i = 0 To 255
         j = (arrSBox(i) + arrPW(i)) Mod 256
         x = arrSBox(i)
         arrSBox(i) = arrSBox(j)
         arrSBox(j) = x
     Next i
   
     mCodeSeries = “”
     Bi = 0: Bj = 0
     For i = 1 To Len(inData)
         Bi = (Bi + 1) Mod 256
         Bj = (Bj + arrSBox(Bi)) Mod 256
         ‘ Tukar
         x = arrSBox(Bi)
         arrSBox(Bi) = arrSBox(Bj)
         arrSBox(Bj) = x
         ‘siapkan kunci untuk XOR
         mKey = arrSBox((arrSBox(Bi) + arrSBox(Bj)) Mod 256)
         ‘gunakan operasi XOR
         mCode = Asc(Mid$(inData, i, 1)) Xor mKey
         mCodeSeries = mCodeSeries & Chr(mCode)
     Next i
     EncDec = mCodeSeries
End Function
Private Sub Form_Load()
  Dim Encrypt As String, Decrypt As String

  Encrypt = EncDec(“admin”, “win”)
  Decrypt = EncDec(“™D`­>”, “win”)
  MsgBox “Hasil enkripsi : ” & Encrypt & _
    vbCrLf & “Hasil dekripsi : ” & Decrypt
  End
End Sub

Menu Pop Up

Option Explicit
Private Declare Function SendMessage Lib “user32″ Alias _
   “SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) As Long
Private Const LB_GETITEMRECT = &H198
Private Const LB_ERR = (-1)
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Public Function GetRClickedItem(MyList As Control, _
   X As Single, Y As Single) As Long
  ‘PURPOSE: Determine which item was right clicked in a list
  ‘box, from the list_box’s mouse down event.  YOU MUST CALL THIS
  ‘FROM THE MOUSEDOWN EVENT, PASSING THE X AND Y VALUES FROM THAT
  ‘EVENT TO THIS FUNCTION
    ‘MYLIST: ListBox Control
    ‘X, Y: X and Y position from MyList_MouseDown
    ‘RETURNS:  ListIndex of selected item, or -1 if
    ‘a) There is no selected item, or b) an error occurs.
    Dim clickX As Long, clickY As Long
    Dim lRet As Long
    Dim CurRect As RECT
    Dim l As Long
    ‘Control must be a listbox
    If Not TypeOf MyList Is ListBox Then
        GetRClickedItem = LB_ERR
        Exit Function
    End If
    ‘get x and y in pixels
    clickX = X Screen.TwipsPerPixelX
    clickY = Y Screen.TwipsPerPixelY
    ‘Check all items in the list to see if it was clicked on
    For l = 0 To MyList.ListCount – 1
      ‘get current selection as rectangle
      lRet = SendMessage(MyList.hwnd, LB_GETITEMRECT, l, CurRect)
      ‘If the position of the click is in the this list item
       ‘then that’s  our Item
     If (clickX >= CurRect.Left) And (clickX <= CurRect.Right) _
       And (clickY >= CurRect.Top) And _
          (clickY <= CurRect.Bottom) Then
            GetRClickedItem = l
            Exit Function
        End If
    Next l
End Function
Private Sub Form_Load()
  List1.AddItem “Merah”
  List1.AddItem “Kuning”
  List1.AddItem “Hijau”
  mnuPopUp.Visible = False
End Sub
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lItem As Long
If Button = vbRightButton Then
    lItem = GetRClickedItem(List1, X, Y)
                                       
        If lItem <> -1 Then
            List1.ListIndex = lItem
            PopupMenu mnuPopUp
        End If
End If
End Sub

Load Picture

Private Sub Command1_Click()
With Me.CommonDialog1
.DialogTitle = “Ambil Gambar”
.Filter = “JPEG|*.jpg”
.ShowOpen
If .FileName <> “” Then
Set Me.Picture1.Picture = Nothing
Me.Picture1.Picture = LoadPicture(.FileName)
End If
End With
End Sub
‘Private Sub Form_Load()
‘Me.Picture1.Picture = LoadPicture(“D:\gbr_motor\bikes_honda_01.jpg”)
‘End Sub

Sleep With Visual Basic

Option Explicit
Private Declare Sub Sleep Lib “kernel32″ (ByVal dwMilliseconds As Long)
Private Sub Form_Click()
   Me.Caption = “Sleeping”
   Call Sleep(20000)
   Me.Caption = “Awake”
End Sub
Private Sub Label1_Click()
   Me.Caption = “Sleeping”
   Call Sleep(20000)
   Me.Caption = “Awake”
End Sub

Find Something

Form
Option Explicit
Private Declare Function GetWindowText Lib “user32″ Alias “GetWindowTextA” (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Sub cmdActivate_Click()
   Dim nRet As Long
   Dim Title As String
   nRet = AppActivatePartial(Trim(txtTitle.Text), _
          Val(frmMethod.Tag), CBool(chkCase.Value))
   If nRet Then
      lblResults.Caption = “Found: &&H” & Hex$(nRet)
      Title = Space$(256)
      nRet = GetWindowText(nRet, Title, Len(Title))
      If nRet Then
         lblResults.Caption = lblResults.Caption & _
            “, “”" & Left$(Title, nRet) & “”"”
      End If
   Else
      lblResults.Caption = “Search Failed”
   End If
End Sub
Private Sub Form_Load()
   txtTitle.Text = “”
   lblResults.Caption = “”
   optMethod(0).Value = True
End Sub
Private Sub optMethod_Click(Index As Integer)
   frmMethod.Tag = Index
End Sub
Module
Option Explicit
Private Declare Function EnumWindows Lib “user32″ (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function GetClassName Lib “user32″ Alias “GetClassNameA” (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindowText Lib “user32″ Alias “GetWindowTextA” (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function IsIconic Lib “user32″ (ByVal hWnd As Long) As Long
Private Declare Function IsWindowVisible Lib “user32″ (ByVal hWnd As Long) As Long
Private Declare Function ShowWindow Lib “user32″ (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function SetForegroundWindow Lib “user32″ (ByVal hWnd As Long) As Long
Private Const SW_RESTORE = 9
Private m_hWnd As Long
Private m_Method As FindWindowPartialTypes
Private m_CaseSens As Boolean
Private m_Visible As Boolean
Private m_AppTitle As String
Public Enum FindWindowPartialTypes
   FwpStartsWith = 0
   FwpContains = 1
   FwpMatches = 2
End Enum
Public Function AppActivatePartial(AppTitle As String, Optional Method As FindWindowPartialTypes = FwpStartsWith, Optional CaseSensitive As Boolean = False) As Long
   Dim hWndApp As Long

   hWndApp = FindWindowPartial(AppTitle, Method, CaseSensitive, True)
   If hWndApp Then
   
      If IsIconic(hWndApp) Then
         Call ShowWindow(hWndApp, SW_RESTORE)
      End If
      Call SetForegroundWindow(hWndApp)
      AppActivatePartial = hWndApp
   End If
End Function
Public Function FindWindowPartial(AppTitle As String, _
   Optional Method As FindWindowPartialTypes = FwpStartsWith, _
   Optional CaseSensitive As Boolean = False, _
   Optional MustBeVisible As Boolean = False) As Long
 
   m_hWnd = 0
   m_Method = Method
   m_CaseSens = CaseSensitive
   m_AppTitle = AppTitle

   If m_CaseSens = False Then
      m_AppTitle = UCase$(m_AppTitle)
   End If

   Call EnumWindows(AddressOf EnumWindowsProc, MustBeVisible)
   FindWindowPartial = m_hWnd
End Function
Private Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
   Static WindowText As String
   Static nRet As Long
   If lParam Then
      If IsWindowVisible(hWnd) = False Then
         EnumWindowsProc = True
         Exit Function
      End If
   End If
   WindowText = Space$(256)
   nRet = GetWindowText(hWnd, WindowText, Len(WindowText))
   If nRet Then
  
      WindowText = Left$(WindowText, nRet)
      If m_CaseSens = False Then
         WindowText = UCase$(WindowText)
      End If
 
      Select Case m_Method
         Case FwpStartsWith
            If InStr(WindowText, m_AppTitle) = 1 Then
               m_hWnd = hWnd
            End If
         Case FwpContains
            If InStr(WindowText, m_AppTitle) <> 0 Then
               m_hWnd = hWnd
            End If
         Case FwpMatches
            If WindowText = m_AppTitle Then
               m_hWnd = hWnd
            End If
      End Select
   End If

   EnumWindowsProc = (m_hWnd = 0)
End Function