Jumat, 12 November 2010

Create Koneksi Antara VB.NET (a.k.a B#) dengan Database SQL Server


untuk bisa bekerja dengan database dari program vb.net, langkah pertama yang harus dilakukan adalah dengan membentuk koneksi antara program dengan database servernya. pada artikel ini, database yang digunakan adalah SQL Server 2008 dengan nama database yang akan digunakan adalah OMS dan untuk user SQL Servernya yang akan digunakan adalah sa dengan sandi misalkan juga sa.
karena database yang digunakan adalah SQL Server, namespace yang akan kita manfaatkan adalah namespace System.Data.SqlClient. object class yang bertanggung jawab untuk membentuk koneksi dengan database adalah object bertipe SqlConnection.
object SqlConnection sendiri dalam membentuk koneksi ke database SQL Server memerlukan parameter yang disebut sebagai ConnectionString. ConnectionString ini sendiri adalah sebuah string yang berisi parameter-parameter yang dibutuhkan untuk membentuk koneksi itu sendiri. adapun parameter-parameter tersebut adalah:
Data Source atau Server –> menyatakan nama komputer / ip address komputer di mana database SQL Servernya berada. jika database berada satu mesin dengan aplikasi, anda bisa menggunakan localhost\<sql server instance name> atau (local)\<sql server instance name>  atau .\<sql server instance name>
untuk mengecek sql server instance name, bisa dilakukan via menu sql server configuration manager seperti yang ditunjukkan pada gambar berikut.
image

image
pada laptop saya, sql server instance name yang digunakan adalah SQL2008
Initial Catalog atau Database –> menyatakan nama database yang akan diambil / digunakan dari mesin database SQL Server yang sudah berhasil dicontact. pada artikel ini database yang akan digunakan bernama OMS.
image
Integrated Security = True | SSPI atau UID = <UserID>; PWD = <Password> –> digunakan untuk memberitahukan cara program akan melakukan koneksi ke database SQL Server, dalam hal ini ada 2 teknik yang bisa digunakan, yaitu dengan menggunakan Windows Authentication yakni dengan menggunakan account windows (via Integrated Security = True | SSPI), atau dengan menggunakan SQL Server Authentication yakni dengan menggunakan account sql server yang sudah disediakan (via UID = <UserID>; PWD = <Password>).
ok, berikut ini detail bagaimana kode proses pembentukan koneksi ke database sql server via vb.net
misalkan rancangan programnya seperti berikut ini:
image
untuk proses pembentukan koneksi, sedikitnya ada dua pendekatan yang bisa digunakan, yaitu:
Early Open – Late Closed
contoh code ditunjukkan pada sample code berikut ini:
' import namespace yang dibutuhkan
Imports System.Data.SqlClient
Public Class Form1
    ' buat object bertipe SqlConnection
    Dim conn As SqlConnection = Nothing
    ' bentuk string ConnectionString
    ' jika menggunakan windows auth.
    Dim connString As String = _
              "Data Source = .\sql2008; Initial Catalog = OMS; Integrated Security = True"
    ' jika menggunakan sql server auth.
    'Dim connString2 As String = _
    '          "Data Source = .\sql2008; Initial Catalog = OMS; UID = sa; PWD = sa"
    ' Early open via constructor     Public Sub New()
        InitializeComponent()
        ' create object SqlConnection dengan melewatkan parameter 
        ' yang dibutuhkan via ConnectionString
        ' jika menggunakan windows auth.
        conn = New SqlConnection(connString)
        ' atau
        ' jika menggunakan sql server auth.
        'conn = New SqlConnection(connString2)
        ' open koneksinya
        conn.Open()
        ' tampilkan state dari koneksi
        ' jika berhasil dibuka, maka akan tercetak Status Koneksi: Open
        Me.lblStatus.Text = String.Format("Status Koneksi: {0}", conn.State.ToString())
    End Sub
    ' late closed via event FormClosed     Private Sub Form1_FormClosed(ByVal sender As Object, _
            ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        ' menutup koneksi jika ada yang sedang terbuka
        If conn IsNot Nothing Then conn.Close() : conn.Dispose()
    End Sub
End Class
Open When Needed – Closed As Soon As Possible
contoh code ditunjukkan pada sample code berikut ini:
' import namespace yang dibutuhkan
Imports System.Data.SqlClient
Public Class Form1
    ' buat object bertipe SqlConnection
    Dim conn As SqlConnection = Nothing
    ' bentuk string ConnectionString
    ' jika menggunakan windows auth.
    Dim connString As String = _
           "Data Source = .\sql2008; Initial Catalog = OMS; Integrated Security = True"
    ' jika menggunakan sql server auth.
    'Dim connString2 As String = _
    '        "Data Source = .\sql2008; Initial Catalog = OMS; UID = sa; PWD = sa"
    ' open when needed - close ASAP (As Soon As Possible)
    Private Sub btnOpenThenClosed_Click(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles btnOpenThenClosed.Click
        ' create koneksi on demand
        conn = New SqlConnection(connString)
        conn.Open() ' open koneksi yang sudah terbentuk
        ' cetak status koneksi terkini
        Me.lblStatus.Text = String.Format("Status Koneksi: {0}", conn.State.ToString())
        Application.DoEvents()
        ' biarkan sistem idle selama 3 detik
        ' anda bisa menggantinya dengan proses-proses yang ingin dikerjakan
        System.Threading.Thread.Sleep(3000)
        ' close koneksi
        conn.Close()
        ' dispose koneksi
        conn.Dispose()
        ' cetak status koneksi terkini
        Me.lblStatus.Text = String.Format("Status Koneksi: {0}", conn.State.ToString())
    End Sub
End Class
Penggunaan Using
dengan menggunakan Using … End Using, programmer tidak perlu dipusingkan lagi dengan proses penutupan dan penghapusan object yang sudah tidak digunakan secara manual, karena hal tersebut akan otomatis akan ditangani oleh Using. syarat object yang bisa dipasang dengan Using … End Using adalah object yang mengimplementasikan interface IDisposable seperti object bertipe SqlConnection yang digunakan dicontoh ini. berikut bentuk perubahan code nya:
' import namespace yang dibutuhkan
Imports System.Data.SqlClient
Public Class Form1
    ' buat object bertipe SqlConnection
    Dim conn As SqlConnection = Nothing
    ' bentuk string ConnectionString
    ' jika menggunakan windows auth.
    Dim connString As String = _
            "Data Source = .\sql2008; Initial Catalog = OMS; Integrated Security = True"
   
    ' open when needed - close ASAP (As Soon As Possible)
    Private Sub btnOpenThenClosed_Click(ByVal sender As System.Object, _
                     ByVal e As System.EventArgs) Handles btnOpenThenClosed.Click
        ' create koneksi on demand
       Using conn = New SqlConnection(connString)             conn.Open() ' open koneksi yang sudah terbentuk
            ' cetak status koneksi terkini
            Me.lblStatus.Text = String.Format("Status Koneksi: {0}", conn.State.ToString())
            Application.DoEvents()
            ' biarkan sistem idle selama 3 detik
            ' anda bisa menggantinya dengan proses-proses yang ingin dikerjakan
            System.Threading.Thread.Sleep(3000)
        End Using         ' dengan penggunaan Using,
        ' programmer tidak perlu lagi menutup koneksi secara manual
        ' proses penutupan dan penghapusan object dari memori akan diurus
        ' oleh Using
        ' cetak status koneksi terkini
        Me.lblStatus.Text = String.Format("Status Koneksi: {0}", _
                            If(conn IsNot Nothing, conn.State.ToString(), "Nothing"))
    End Sub
End Class
Menggunakan MySetting properties untuk menyimpan ConnectionString
cara-cara yang dipakai pada code sebelumnya masih menggunakan penulisan ConnectionString secara hardcode. hal ini suatu saat akan menimbulkan keribetan tersendiri apabila suatu saat terjadi pemindahan server database ke lokasi dengan alamat yang berbeda dengan alamat yang digunakan saat ini. untuk itu kita bisa menyimpan string ConnectionString ke dalam file app.config via settingan properties dibagian Setting pada My Project Properties, seperti yang ditunjukkan pada gambar di bawah ini.
image
dengan menuliskan connectionstring ke dalam file app.config akan membuat proses perubahan terhadap nilai parameter dalam connectionstring lebih mudah untuk dimodifikasi, karena tidak perlu lagi menggantinya langsung dengan cara mengedit code, cuma perlu mengedit file app.config dari aplikasi yang bersangkutan saja.
image
perubahan terhadap code hanya terjadi pada proses pemanggilan connectionString saja, yaitu dengan memanggil dari object MySetting, seperti ditunjukkan oleh code di bawah ini:
' import namespace System.Data.SqlClient
Imports System.Data.SqlClient
Public Class Form1
    ' buat object bertipe SqlConnection
    Dim conn As SqlConnection = Nothing

    ' open when needed - close ASAP (As Soon As Possible)
    Private Sub btnOpenThenClosed_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenThenClosed.Click
        ' create koneksi on demand
        ' dengan menggunakan ConnectionString via MySetting Property
        Using conn = New SqlConnection(My.MySettings.Default.ConnString) 
            conn.Open() ' open koneksi yang sudah terbentuk
            ' cetak status koneksi terkini
            Me.lblStatus.Text = String.Format("Status Koneksi: {0}", conn.State.ToString())
            Application.DoEvents()
            ' biarkan sistem idle selama 3 detik
            ' anda bisa menggantinya dengan proses-proses yang ingin dikerjakan
            System.Threading.Thread.Sleep(3000)
        End Using
        ' dengan penggunaan Using,
        ' programmer tidak perlu lagi menutup koneksi secara manual
        ' proses penutupan dan penghapusan object dari memori akan diurus
        ' oleh Using
        ' cetak status koneksi terkini
        Me.lblStatus.Text = String.Format("Status Koneksi: {0}", _
                            If(conn IsNot Nothing, conn.State.ToString(), "Nothing"))
    End Sub
End Class
Membentuk string ConnectionString Secara Runtime
dan selain menggunakan cara-cara di atas, kita juga bisa membentuk string ConnectionString secara runtime via object SqlServerConnectionStringBuilder.
untuk sample pada aplikasi ini, kita akan menyesuaikan rancangan aplikasinya menjadi seperti di bawah ini:
image image
dan code programnya adalah sebagai berikut:
' import namespace yang dibutuhkan
Imports System.Data.SqlClient
Public Class Form1
    ' buat object bertipe SqlConnection
    Dim conn As SqlConnection = Nothing
    ' buat object SqlConnectionStringBuilder
    Dim connString As SqlConnectionStringBuilder = Nothing
    Public Sub New()
        InitializeComponent()
        Me.cboAuthType.SelectedIndex = 0
    End Sub
    Private Sub cboAuthType_KeyPress(ByVal sender As Object, _
      ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cboAuthType.KeyPress
        e.Handled = True
    End Sub
    Private Sub cboAuthType_SelectedIndexChanged(ByVal sender As System.Object, _
                 ByVal e As System.EventArgs) Handles cboAuthType.SelectedIndexChanged
        If Me.cboAuthType.SelectedIndex = 0 Then
            Me.txtUserID.Enabled = False
            Me.txtPassword.Enabled = False
        Else
            Me.txtUserID.Enabled = True
            Me.txtPassword.Enabled = True
        End If
    End Sub
    Private Sub btnOpen_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles btnOpen.Click
        Try
            ' validasi
            If Me.txtServerName.Text.Trim().Equals("") Then _
                Throw New Exception("Isi Server Name Please ...")
            If Me.txtDatabaseName.Text.Trim().Equals("") Then _
                Throw New Exception("Isi Database Name Please ...")
            ' membentuk object ConnectionString secara run time
            ' via object SqlConnectionStringBuilder
            connString = New SqlConnectionStringBuilder()
            With connString
                .DataSource = Me.txtServerName.Text.Trim()
                .InitialCatalog = Me.txtDatabaseName.Text.Trim()
                If Me.cboAuthType.SelectedIndex = 0 Then
                    .IntegratedSecurity = True
                Else
                    .UserID = Me.txtUserID.Text.Trim()
                    .Password = Me.txtPassword.Text.Trim()
                End If
            End With
            ' membentuk koneksi
            conn = New SqlConnection(connString.ToString())
            conn.Open() ' open koneksi
            ' cetak status koneksi terkini
            Me.lblStatus.Text = String.Format("Status Koneksi: {0}", conn.State.ToString())
        Catch ex As Exception
            connString = Nothing
            conn = Nothing
            MessageBox.Show(ex.Message, Me.Text, _
                                             MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Try
    End Sub
    Private Sub btnClosed_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles btnClosed.Click
        ' tutup koneksi
        If conn IsNot Nothing Then conn.Close() : conn.Dispose()
        ' cetak status koneksi terkini
        Me.lblStatus.Text = String.Format("Status Koneksi: {0}", _
                            If(conn IsNot Nothing, conn.State.ToString(), "Nothing"))
    End Sub
End Class
untuk C#, anda tinggal menyesuaikan sintaks yang digunakan pada artikel ini dengan sintaks dari bahasa C#.
ok, sekian dari saya, semoga bermanfaat bagi semua.

Sabtu, 23 Oktober 2010

So Sad.........

BANDUNG - Persib Bandung dipermalukan PSM Makassar saat melakoni laga kandang di stadion Siliwangi, Sabtu (23/10/2010) malam. Anak-anak Maung Bandung harus menyerah dengan skor 2-1.

Dengan permainan yang cukup atraktif, Persib sebetulnya menguasai lapangan. Tapi justru, ketika asyik menyerang, umpan terobosan Diva Tarkas disambut heading Andi Odang yang mampu memperdaya kiper Markus Haris Maulana. Tim tamu unggul 0-1 pada menit ke-43.

Usai turun minum, permainan menjadi semakin cepat. Gelandang Shahril Ishak yang diganjar pemain tim Juku Eja di kotak terlarang membuahkan hadiah pinalti. Atep berhasil mengeksekusi pinalti pada menit ke-54.

Bisa menyamakan skor rupanya membuat permainan semakin menjadi-jadi. Tapi rupanya, kesalahan yang sama dilakukan pemain Persib. Umpan terobosan kembali menjadi mimpi buruk.

Menit ke-84, Richard Obiora berhasil menyambut umpan terobosan. Saat akan mengoper bola, rupanya bek Persib Wildansyah justru salah mengantisipasi bola yang menyebabkan gol bunuh diri. PSM unggul 2-1 di menit ke-84 yang bertahan hingga laga usai.

Dengan hasil ini, Persib berada di urutan ke-12 dengan empat poin, sementara PSM menyodok ke posisi keempat klasemen sementara dengan masing-masing telah melakoni empat laga.
 

Jumat, 24 September 2010

Membuat Jaringan Wi-fi

Aneh menurut saya judul ini saya buat, tapi memang sengaja sih. Tujuannya mungkin biar kelihatan nyeleneh.
Beberapa bulan yang lalu saya berlangganan internet speedy. Instalasinya cukup mudah, karena secara kebetulan komputer di kantor juga sudah menjadi satu kesatuan alias jaringan alian LAN (local Area Network). Pada saat instalasi Modem DSL dari telkom di hubungkan langsung ke Hub, kemudian sang teknisi mengatur IP pada salah satu komputer, tujuannya adalah menyamakan kelas IP dengan Modem DSL. (Mungkin biar mudah). Setelah diatur kelas IP dan juga getaway maka setelah minta untuk di aktifkan di server telkom, maka internet langsung digunakan. Komputer yang lain hanya mengatur kelas IP dan pastinya disamakan dengan Modem DSL.
Setelah beberapa bulan kemudian internet sudah banyak membuat perubahan di kantor kita (kita di sekolah) dari internet begitu banyak informasi yang dapat diperoleh. Antusias teman teman juga semakin tinggi terhadap internet. Ditambah lagi teman- teman sudah mulai “bergaya” dengan membawa Laptop ke sekolah. Dan malah ada teman – teman yang menggunakan media internet sebagai bahan pembelajaran, termasuk saya. . Rasanya tidak adil jika internet yang ada di sekolah hanya dapat dinikmati oleh guru, sedangkan para siswa tidak. Meskipun program internet goes to school yang di keluarkan oleh telkom belum sampai kepada kami. Kami masuk ke kategori pelanggan biasa. (punten ka PT. Telkom, Pami tiasa mah sadaya sakola lebet ka program Internet Goes To School).
Ya sudah lah kemabali ke ……..
Berdasar dari itulah kami berfikir untuk menfasilitasi teman – teman yang memiliki laptop dan fasilitas Wifi (Soalnya yang bisa connect ke internet hanya 4 Unit komputer) dan juga untuk anak- anak. Maka kami terfikirkan untuk membuat jaringan Nirkabel.alias Wireles LAN. Mulai saat itu kami mencoba membuat list kebutuhan kemi, karena hanya untuk intern saja, maka yang kami butuhkan hanya sebuah Access Point yang nantinya kami gunakan untuk menyebarkan gelombang (istilah kasarnya). Saat kami mencoba mencari – cari kebuthan kami maka kami putuskan untuk menggunakan Access Point merk D-Link dengan type DL 166. Karena kami tidak ingin ribet alias gampang maka kami lekukan seting pada jaringan nirkabel ini dengan sangat sederhana. Berikut langkah – langkahnya.
1. IP yang ada dalam Access Point kami adalah 192.168.0.1 sedangkan dalam jaringan kami yang telah ada adalah 192.168.1.1 jadi IP-nya memiliki kelas yang berbeda. Sebenarnya bisa saja di samkan. Tapi karena kami tidak mau ribet, maka Access Point yang ada kami jadikan jaringan baru. Jadi kami membuat sebuah WAN (Work Area Network). Sehingga pemasangannya adalah Access Poin kemi hubungkan ke Hub melalui port untuk WAN (Port yang ada adalah standar, yaitu RJ 45)

2. Setelah terpasang dengan baik, kami lihat status dalam Access Poin sudah OK , maka kami langsung mencoba dengan menggunakan sebuah Laptop yang memiliki fasilitas Wifi dan setelah kami lihat, dalam jaringan laptop, terdeteksi sebuah host atau gelombang dengan nama defaul. Kami coba connect dan berhasil, kemudian kami coba browsing dan berhasil juga. Sampai tahap ini sebenarnya instalasi Wifi sduah terwujud. Namun karena kami mempertimbangkan segi keamanan, maka kami melanjutkan porses instalasi.
3. Setelah berhasil, kami coba masuk ke Panel Control pada access point (disini kita dapat mengatur berkaitan dengan Wireles). Pada type DL-166 ini kita dapat melakukan settting dari Web Browser. Kami menggunakan internet explorer. Kemudian kami ketik 192.168.0.1 di halaman web, kemudian akan muncul halaman login. Untuk user name pada perangkat ini adalah admin dan password dikosongkan. Aakemudian kita dapat melakukan seting sesuai denga kebutuhan. Lagi-lagi, agar tidak ribet kami menggunakan fasiltas Run Wizard yang ada di Access Point. Yang kami rubah adalah SIID yaitu nama jaringan yang akan di kenali oleh perangkat lain (host name) dan satu lagi dari segi keamanan yaitu kami mengaktifkan (enable) WEP, tujuannya adalah agar setiap orang yang akan masuk ke jaringan nirkabel kita harus memasukkan Password.
Nah sberes sudah membuat jaringan hotspot, gampang sekali. Tapi itu yang sederhana. Toh tujuan dari membangun hot spot itu adalah untuk sharing internet. Tapi Insya Allah saya akan membahas bagian – bagian lain yang harus di perhatikan dlam membuat jaringan Nirkabel.
Sebenarnya ada masalah baru yang ditimbulkan dari sharing internet ini, tapi nanti saja saya sampaikan. OK semoga bermanfaat dan semoga kita da[at terus belajar dan belajar.

Beli Mesi Inter

Striker Inter Milan Samuel Eto'o telah meminta kepada presiden klub Massimo Moratti untuk membeli Lionel Messi dari Barcelona.

Kepada suratkabar La Repubblica menjelang duel melawan AS Roma akhir pekan ini, Eto'o mengatakan, berdasarkan pengalamannya bermain dengan pemain asal Argentina itu, Messi bisa memberikan jaminan gol di setiap laga dan trophi.

“Dia pemain bagus, dan bahkan lebih bagus lagi sebagai seorang manusia,” ujar Eto'o mengenai mantan tandemnya di Barcelona itu.

“Saya mengagumi dia seperti saya mengagumi [Andres] Iniesta dan Xavi. Sebelum pertandingan terakhir musim lalu melawan Barcelona, saya sudah beritahu Moratti, jika beli pemain seperti mereka, maka mereka bisa menjadi simbol klub.”

Eto'o kini sudah menemukan bentuk permainannya kembali di Serie A. Dia telah membuktikan ketajamannya dengan menjadi top skorer sementara.

“Saya beritahu Benitez ketika dia datang ke sini, saya ingin diberikan kesempatan lebih sering demi tim dan fans,” kata Eto'o.

“Dia bilang, dia akan mencari solusi bagi saya, dan dia melakukannya. Saya sangat senang. Saya bermain di sisi kiri, tapi saya tidak perlu bermain bertahan terlalu sering. Ini yang membuat saya lebih banyak mendapat ruang di barisan depan.”