13
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.

evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

Embed Size (px)

Citation preview

Page 1: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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.

Page 2: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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.

Page 3: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 4: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 5: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 6: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 7: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 8: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 9: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 10: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 11: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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

Page 12: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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.

Page 13: evacliquers-Read-Write.pdf - ilmukomputer.orgilmukomputer.org/wp-content/uploads/2009/11/Read-Write.pdf · jarang yang menjelaskan secara detail tentang fungsi-fungsi dan pemrograman

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]