Skip to content Skip to sidebar Skip to footer

Bekerja dengan File XML

Bekerja dengan File XML

Okay, apa itu file XML? File XML (Extensible Markup Language) adalah format bahasa universal di dunia web/internet. Secara definitif dapat dilihat di Wikipedia, atau sumber relevan kita yaitu di Microsoft XML.

Anda bisa mengakses (baca: menghubungkan) project anda dengan versi XML melalui IDE Visual Basic 6.0, yakni dari menu, pilih [Project] lalu pilih dan klik [References...]. Selanjutnya, cari tulisan "Microsoft XML, v3.0" atau versi ke 4 (v4.0), dst. Agar project XML anda bisa berjalan tanpa hambatan, penulis sarankan untuk tidak mereferensikan versi XML melalui [References] tersebut oleh karena bisa tidak kompatibel bila anda, misalnya, mereferensi v3.0, sedangkan windows yang digunakan win 8 atau lebih tinggi. Jadi, biarkan saja tanpa harus mencentangnya. Dengan demikian versi yang berlaku adalah versi 2.0. Perlu diketahui bahwa module project kali ini bekerja baik di versi 2 maupun versi 3.

Tujuan Menggunakan File XML di Visual Basic 6.0

Tujuan utama dari tutorial ini yaitu setelah menginput data pada ComboBox dan logout/ keluar dari program, maka program kita ini akan menyimpan data tersebut kedalam file dalam wujud XML yang nantinya akan ditampilkan pada saat program tersebut diaktifkan atau load kembali.

Proses penyimpanan data tunggal ini tidak memerlukan Database MS.Access atau lainnya. Jadi, hanya file XML yang kita jadikan sebagai tempat penyimpanannya.

Untuk tujuan ini, diperlukan komponen ActiveX Component ringan sbb:
  1. 1 ComboBox dan beri nama: cbNoHP
  2. 1 CommandButton, name: cmdExit
  3. 1 file XML yang kita beri nama: dataHP.XML
Berikut ini adalah blok script proses penyimpanan data input:

Private Sub PersistHP()
  Dim X As Integer
  Dim oXML As Object
  Dim oMain As Object
  Dim onomorHP As Object
  
  On Error Resume Next
  Set oXML = CreateObject("MSXML2.DOMDocument")
  If oXML Is Nothing Then Set oXML = CreateObject("MSXML.DOMDocument")
  If oXML Is Nothing Then
    MsgBox "Telah terjadi Error pada saat menyimpan data di XML"
    End
  End If
  On Error GoTo 0
 
  Set oMain = oXML.createNode(1, "dataHP", "")
  oXML.appendChild oMain
 
  For X = 1 To Me.cbNoHP.ListCount
    Set onomorHP = oXML.createNode(1, "nomorHP", "")
    onomorHP.Text = Me.cbNoHP.List(X - 1)
    oMain.appendChild onomorHP
  Next
  oXML.save App.Path & "\dataHP.xml"
  Set oXML = Nothing
  Set oMain = Nothing
  Set onomorHP = Nothing
End Sub

Perhatikan! pada script diatas, terdapat baris kode seperti berikut ini:

oXML.save App.Path & "\dataHP.xml"

App.path memiliki makna: "bahwa file dataHP.xml terletak di directory (baca: path) dimana file EXE project ini juga berada.

Selanjutnya, blok script Private Sub PersistHP() akan kita letakkan sebelum Unload me atau End terjadi sehingga data input pada combobox tersebut akan tersimpan sebelum program ditutup.

Private sub cmdExit_Click()
PersistHP
End
End Sub

dan, pada Form_Unload, sbb:

Private Sub Form_Unload(Cancel As Integer)
PersistHP
Unload Me
End Sub

Selanjutnya, kita buat blok script untuk menampilkan data yang telah tersimpan didalam XML kedalam ComboBox tersebut:

Private Sub LoadHP()
  Dim X As Long
  Dim oXML As Object
 
  If Len(Dir(App.Path & "\dataHP.xml")) = 0 Then Exit Sub
 
  On Error Resume Next
  Set oXML = CreateObject("MSXML2.DOMDocument")
  If oXML Is Nothing Then Set oXML = CreateObject("MSXML.DOMDocument")
  If oXML Is Nothing Then
    MsgBox "Telah terjadi error saat akan menampilkan data XML pada ComboBox"
    End
  End If
  On Error GoTo 0
 
  oXML.async = False
  If oXML.Load(App.Path & "\dataHP.xml") = False Then
    MsgBox "Telah terjadi error saat akan menampilkan data XML pada ComboBox"
  Else
    For X = 0 To oXML.documentElement.childNodes.length - 1
      Me.cbNoHP.AddItem oXML.documentElement.childNodes.Item(X).Text
    Next
  End If
  Me.cbNoHP.ListIndex = 0
  Set oXML = Nothing
End Sub

Kemudian, letakkan LoadHP() pada Form_Load agar data yang tersimpan didalam file dataHP.xml dapat ditampilkan pada ComboBox:

Private Sub Form_Load()
LoadHP
End Sub

Agar tidak terjadi Input dua kali atas data yang sama pada ComboBox tersebut, kita akan memvalidasi atau mengeceknya dengan script berikut ini:

Private Sub cbNoHP_Validate(Cancel As Boolean)
  Dim sNoHP As String
  Dim X As Integer
  Dim bDitemukan As Boolean

  bDitemukan = False
  sNoHP = Me.cbNoHP.Text
  For X = 1 To Me.cbNoHP.ListCount
    If sNoHP = Me.cbNoHP.List(X - 1) Then
      bDitemukan = True
      Exit For
    End If
  Next

  If bDitemukan = False Then
    Me.cbNoHP.AddItem sNoHP
  End If
End Sub

Post a Comment for "Bekerja dengan File XML"