Memanipulasi File Konfigurasi Junindar Junindar Blog : http://junindar.blogspot.com https://mvp.support.microsoft.com/default.aspx/profile/junindar E-Mail : junindar@gmail.com I. Pengantar
Setelah menggunakan VB 2005 keatas, banyak sekali para developer memanfaatkan suatu fitur baru yaitu My.Settings. Salah satu fungsi nya adalah untuk melakukan penyimpaanan informasi yang bisa di akses secara mudah dan cepat oleh aplikasi kita. Dan fitur banyak sekali di gunakan untuk menyimpan connection string dalam mengakses database. Lalu bagaimana membuat aplikasi yang fleksible dalam menyimpan connection string tanpa harus membuka secara langsu file konfigurasi nya. Untuk itu kita harus membuat sedikit code untuk mengakses dan memanipulasi data yang tersimpan di file tersebut. Bagaimana cara nya , ikuti trus artikel ini
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
Memanipulasi File Konfigurasi Junindar
II. Pembuatan Applikasi
Buatlah project baru dengan nama Read_Write. Lalu Klik Project pada menu dan “Read_Write Properties”. Dan Klik Settings, lalu isi kolom-kolom nya seperti dibawah :
Name = conn
Type = Connection string Scope = Application
Value= DataSource=namaserver\SQLEXPRESS;Initial Catalog=BelajarLINQ;UID=sa;PWD=password
Untuk nama sever ganti sesuai dengan nama computer dimana SQL server di install. Dan password isi password untuk login pada user sa.
Tambahkan beberapa kontrol pada form 1 seperti gambar dibawah :
Setelah disusun seperti gambar diatas, ganti properties Name pada textbox menjadi = txtserver,txtuser dan txtpassword
Memanipulasi File Konfigurasi Junindar
Tambahkan Class pada project, dengan nama config.vb, lalu ketikkan sintaks seperti dibawah.
1. Ketikkan beberapa imports Name Space seperti dibawah
Imports System
Imports System.Xml
Imports System.Configuration
Imports System.Reflection
Imports System.Data.SqlClient
2. Fungsi bawah sintaks dibawah adalah untuk mendapatkan nilai lokasi beserta nama dari file konfigurasi (exe.config)
3. Setelah mendapatkan alamat berserta nama file nya, lalu akan meng load file konfigurasi, seperti dibawah:
4. Lalu ketikkan sintaks dibawah ini, sintaks dibawah berfungsi untuk menulis atribut pada elemen yang dipilih, untuk penjelasan dapat dilihat pada komen.
'mendapatkan nama dan lokasi dari file exe.config
Private Shared Function getConfigFilePath() As String
Return Assembly.GetExecutingAssembly().Location & ".config" End Function
'load file konfigurasi, berdasarkan nilai yang didapat pada fungsi - getConfigFilePath
Private Shared Function loadConfigDocument() As XmlDocument Dim doc As XmlDocument = Nothing
Try
doc = New XmlDocument()
doc.Load(getConfigFilePath()) Return doc
Catch e As System.IO.FileNotFoundException
Throw New Exception("File konfigurasi tidak di temukan", e) End Try
Memanipulasi File Konfigurasi Junindar
5. Untuk menghapus elemen yang dipilih, dapat dilihat pada sintaks dibawah.
Public Sub WriteSettingCon(ByVal name As String, ByVal connectionString As String, _ ByVal providerName As String)
'load konfigurasi file
Dim doc As XmlDocument = loadConfigDocument()
' retrieve connectionStrings node
Dim node As XmlNode = doc.SelectSingleNode("//connectionStrings")
If node Is Nothing Then 'jika node connectionStrings tidak ada
Throw New InvalidOperationException("connectionStrings section tidak dapat di temukan")
End If
Try
'memilih add elemen, berdasarkan name
Dim elem As XmlElement =
DirectCast(node.SelectSingleNode(String.Format("//add[@name='{0}']", name)), XmlElement)
If elem IsNot Nothing Then 'jika sudah ada
' mengganti nilai dari atribut
elem.SetAttribute("name", name)
elem.SetAttribute("connectionString", connectionString) elem.SetAttribute("providerName", providerName)
Else
'membuat elemen dan mengisi nilai atribut
elem = doc.CreateElement("add") elem.SetAttribute("name", name)
elem.SetAttribute("connectionString", connectionString) elem.SetAttribute("providerName", providerName)
node.AppendChild(elem) End If
doc.Save(getConfigFilePath()) Catch
Throw New Exception End Try
Memanipulasi File Konfigurasi Junindar
Sekarang kita kembali ke form1, double click button Connect, lalu ketikkan sintaks dibawah..
Sebelum menjalankan, liat file konfigurasi pada folder bin > debug> Read_Write.exe.config. lalu liat informasi didalam file tersebut. Untuk sintaks di atas kita akan melakukan penghapusan elemen pada node connectionStrings
Public Sub RemoveSettingCon(ByVal name As String)
'load konfigurasi file
Dim doc As XmlDocument = loadConfigDocument()
'retrieve connectionStrings node
Dim node As XmlNode = doc.SelectSingleNode("//connectionStrings")
Dim elem As XmlElement = DirectCast(node.SelectSingleNode(String.Format("//add[@name='{0}']", name)), XmlElement)
Try
If node Is Nothing Then
Throw New InvalidOperationException("connectionStrings section tidak dapat di temukan ")
Else
If elem IsNot Nothing Then
' hapus elemen berdasarkan key yang dipilih
node.RemoveChild(node.SelectSingleNode(String.Format("//add[@name='{0}']", name))) doc.Save(getConfigFilePath())
End If
End If
Catch
Throw New Exception() End Try End Sub Try Configs.RemoveSettingCon(Application.ProductName + ".My.MySettings.conn") Catch ex As Exception MsgBox(ex.Message) End Try
Memanipulasi File Konfigurasi Junindar
Jalankan program dan klik button connect, lalu liat hasil nya lagi pada file Read_Write.exe.config
Coba perhatikan gambar di atas, kita telah berhasil menghapus data pada node connectionStrings.
Memanipulasi File Konfigurasi Junindar
Lalu jalankan program, masukkan data-data yang di perlukan pada textbox, lalu tekan button connect.
Sekali lagi coba buka file Read_Write.exe.config, apakah data-data yang kita isikan terdapat file tersebut.
Try
Dim connectionString As String
Dim Configs As New Config
' Configs.RemoveSettingCon(Application.ProductName + ".My.MySettings.conn")
connectionString = "Data Source=" + txtServer.Text + ";Initial Catalog=BelajarLINQ;UID="
+ txtUser.Text + ";PWD=" + txtPassword.Text Configs.WriteSettingCon(Application.ProductName + ".My.MySettings.conn", connectionString, "System.Data.SqlClient") Catch ex As Exception MsgBox(ex.Message) End Try
Memanipulasi File Konfigurasi Junindar
Jika berhasil maka kita telah bisa membuat program yang fleksible, jika kita mengalami perubahan pada server, kita bisa menggunakan fungsi ini, tanpa harus membuka langsung file konfigurasi. Tapi apakah kita akan membiarkan user dapat melihat informasi pada file. bagaimana jika itu merupakan informasi yang penting. Jangan khawatir, kita bisa melakukan enkrip data tersebut. Untuk lebih jelas tentang ini bisa membaca E-Book dari 2 orang MVP VB (Mas Erick dan Mas Rully) dengan judul “Migrasi Visual Basic 6 ke VB.Net”.
Dan sintaks di bawah ini saya ambil dari contoh pada buku tersebut (memanfaatkan yang sudah ada ).
Ketikkan sintaks dibawah pada class config
Dan buat satu procedure untuk mengecek apakah file konfigurasi sudah di enkrip atau belum.
Public Sub EncryptConnection(ByVal BolEnAs Boolean) Try
Dim configFile = _
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim connectionElement = configFile.GetSection("connectionStrings") If BolEn= True Then
connectionElement.SectionInformation.ProtectSection(Nothing) Else connectionElement.SectionInformation.UnprotectSection() End If connectionElement.SectionInformation.ForceSave() = True configFile.Save(ConfigurationSaveMode.Modified) Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub
Memanipulasi File Konfigurasi Junindar
lalu tambahkan sintaks dibawah, pada procedure WriteSettingCon dan RemoveSettingCon.
Double click button Connect dan ganti seperti sintaks dibawah.
Private Shared Function CekEncrypt() As Boolean
Dim cek As Boolean
Try
Dim configFile = _
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) Dim connectionElement = configFile.GetSection("connectionStrings") cek = connectionElement.SectionInformation.IsProtected
Return cek
Catch ex As Exception
Throw New Exception(ex.Message.ToString) End Try
End Function
Dim Configs As New Config
Try
Dim connectionString As String
connectionString = "Data Source=" + txtServer.Text + ";Initial Catalog=BelajarLINQ;UID="
+ txtUser.Text + ";PWD=" + txtPassword.Text Configs.WriteSettingCon(Application.ProductName + ".My.MySettings.conn", connectionString, "System.Data.SqlClient") Configs.EncryptConnection(True) Catch ex As Exception Configs.RemoveSettingCon(Application.ProductName + ".My.MySettings.conn") MsgBox(ex.Message) End Try
Memanipulasi File Konfigurasi Junindar
Selanjutnya kita akan membuat procedure untuk melakukan koneksi ke database, sebelum nya buat, procudere untuk membaca attribute pada elemen connectionStrings
Private Function ReadSetting(ByVal name As String) As String Try
If CekEncrypt() = True Then
EncryptConnection(False) End If
Dim cn As String
Dim doc As XmlDocument = loadConfigDocument()
Dim node As XmlNode = doc.SelectSingleNode("//connectionStrings")
If node Is Nothing Then 'jika node connectionStrings tidak ada
Throw New InvalidOperationException("connectionStrings section tidak dapat di temukan") End If
'memilih add elemen, berdasarkan name
Dim elem As XmlElement =
DirectCast(node.SelectSingleNode(String.Format("//add[@name='{0}']", _
name)), XmlElement)
If elem IsNot Nothing Then 'jika sudah ada
cn = elem.GetAttribute("connectionString") Else
Throw New InvalidOperationException("connection string atribut tidak dapat di temukan") End If
Return cn
Catch ex As Exception
Throw New Exception(ex.Message.ToString) End Try
End Function
Public Sub TestConnection()
Try
Using connect As New SqlConnection(ReadSetting(Application.ProductName +
".My.MySettings.conn")) connect.Open()
End Using
MsgBox("Success")
Catch ex As SqlException
Throw New Exception(ex.Message.ToString)
End Try End Sub
Memanipulasi File Konfigurasi Junindar
Ubah sintaks button connect seperti dibawah. Dan jalan kan program. Apakah pesan keberhasilan seperti dibawah tampil ?
Untuk source code lengkap, dapat di download di http://junindar.blogspot.com
Dim Configs As New Config
Try
Dim connectionString As String
connectionString = "Data Source=" + txtServer.Text + ";Initial Catalog=BelajarLINQ;UID="
+ txtUser.Text + ";PWD=" + txtPassword.Text Configs.WriteSettingCon(Application.ProductName + ".My.MySettings.conn", connectionString, "System.Data.SqlClient") Configs.TestConnection() Configs.EncryptConnection(True) Catch ex As Exception Configs.RemoveSettingCon(Application.ProductName + ".My.MySettings.conn") MsgBox(ex.Message) End Try
Memanipulasi File Konfigurasi Junindar
Penutup
Mudah-mudahan artikel ini membuat kita semua menjadi bertambah pengetahuanya.
Referensi
1. www.msdn.microsoft.com 2. www.planetsourcecode.com 3. www.codeproject.com 4. www.aspnet.com
Masih banyak lagi referensi yang ada di Intenet. Anda tinggal cari di www.Google.com. Dengan kata kunci “tutorial VB.Net”
Sinopsis buku “Panduan Lengkap Menjadi
Programmer“
Setelah mengetahui apa itu Microsoft.NET Framework, Microsoft Visual Basic.NET, ADO.NET, Database dan Microsoft Access, dan fungsi-fungsi serta dasar penggunaannya, ternyata menjadi programmer VB.NET itu mudah! Sebab, dari dasar pengetahuan tesebut, kita sudah bisa membuat suatu program yang kita
inginkan. Misalnya, membuat aplikasi toko, seperti form penjualan dan pembelian. Visual Basic.NET (VB.NET) merupakan program generasi selanjutnya dari Visual Basic. VB.NET memungkinkan kita untuk membangun aplikasi database client atau server dengan performa tinggi. Umumnya, para programmer banyak menggunakan VB.NET untuk membuat aplikasi atau program yang mereka butuhkan. Pasalnya, program ini memiliki kelebihan dan kemudahan tertentu dibandingkan dengan program-program lainnya yang sejenis. Selanjutnya, langkah apa saja yang mesti diketahui dan dilakukan agar kita bisa menjadi programmer VB.NET? Mediakita menerbitkan buku Panduan Lengkap Menjadi
Programmer yang ditulis oleh Junindar. Buku ini berisi tutorial pembuatan program,
pembuatan laporan, sampai dengan melakukan deployment program. Melalui buku ini, Anda bisa menjadi seorang programmer VB.NET yang handal. Sebab, buku ini
merupakan buku yang komplit untuk mengantar seseorang dari tidak tahu apa-apa tentang VB.NET menjadi seorang programmer.
Memang, saat ini, banyak sekali buku-buku tentang pemrograman VB.NET, tetapi sangat jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman di dalam VB.NET. Di buku ini, secara terperinci Anda akan dibimbing bagaimana membuat database, membuat program (create program), tampilan login, menu, form, laporan, sampai dengan membuat file setup (installer).
Selain itu, buku ini juga dilengkapi CD berisikan source code pembuatan program sehingga lebih memudahkan Anda dalam berlatih.
Memanipulasi File Konfigurasi Junindar
Biografi Penulis.
Junindar Lahir di Tanjung Pinang, 21 Juni 1982. Menyelesaikan Program S1 pada jurusan Teknik Informatika di Sekolah Tinggi Sains dan Teknologi Indonesia (ST-INTEN-Bandung). Junindar mendapatkan Microsoft MVP VB pertanggal 1 oktober 2009. Senang mengutak-atik computer yang berkaitan dengan bahasa pemrograman. Keahlian, sedikit mengerti beberapa bahasa pemrograman seperti : VB.Net, LINQ, VBA. Reporting : Crystal Report (Under Program). Database : Access, paradox dan SQL Server 00/05. Simulation / Modeling Packages: Visio Enterprise, Rational Rose dan Power Designer. Dan senang bermain gitar, karena untuk bisa menjadi pemain gitar dan seorang programmer sama-sama membutuhkan seni. Pada saat ini bekerja di salah satu Perusahaan Swasta di BATAM sebagai Software Development. Mempunyai moto hidup : “Jauh lebih baik menjadi Orang Bodoh yang giat belajar, dari pada orang Pintar yang tidak pernah mengimplementasikan ilmunya”.