Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
Memanipulasi File Konfigurasi
Junindar
����
��������������� ������������������������� ������������������������� ������������������������� ����������
����������������������������������������������������
Junindar
Blog : http://junindar.blogspot.com
https://mvp.support.microsoft.com/default.aspx/profile/junindar
E-Mail : [email protected]
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.
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 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
Note : Project ini di buat menggunakan VB 2009.
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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 End Function
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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 End Sub
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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.
Ubah sintaks diatas seperti dibawah ini
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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.
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com
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”.
Kritik dan saran kirim ke : [email protected]
Top Related