• Tidak ada hasil yang ditemukan

STEP BY STEP MENJADI PROGRAMMER HANDAL DENGAN VB.NET

N/A
N/A
Protected

Academic year: 2021

Membagikan "STEP BY STEP MENJADI PROGRAMMER HANDAL DENGAN VB.NET"

Copied!
16
0
0

Teks penuh

(1)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

STEP BY STEP MENJADI STEP BY STEP MENJADI STEP BY STEP MENJADI STEP BY STEP MENJADI PROGRAMMER HANDAL PROGRAMMER HANDAL PROGRAMMER HANDAL PROGRAMMER HANDAL

DENGAN VB.NET DENGAN VB.NET DENGAN VB.NET DENGAN VB.NET

Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

FILESTREAM SQL SERVER 2008 R2 DAN VB 10

UNTUK MENYIMPAN GAMBAR PADA DATABASE

FileStream adalah sebuah fitur baru pada SQL Server 2008 keatas untuk menyimpan file “unstructured data” pada database. Berikut merupakan contoh beberapa data untuk “unstructured data”.

- Character Large Objects (CLOB) : Email Body

- Binary Large Objects (BLOB): Dokumen file (word dan excel), file gambar, multimedia file (music dan video).

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.

(2)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Sesuai dengan judul, pada artikel ini hanya akan membahas bagaimana menyimpan file gambar dengan menggunakan FileStream. Sebelum SQL Server 2008 (SQL Server 2005) untuk menyimpan CLOB data kita akan menggunakan tipe data TEXT (atau NTEXT untuk unicode). Sedangkan BLOB kita menggunakan tipe data BLOB.

Semua tipe data diatas masih tersedia pada SQL Server 2008, tetapi kita dapat menggunakan tipe-tipe data yang baru seperti VARCHAR (MAX) untuk TEXT, NVARCHAR (MAX) untuk NTEXT dan VARBINARY (MAX) untuk BLOB.

Sebelum menggunakan FileStream, untuk menyimpan gambar pada suatu aplikasi yang kita buat, biasanya kita akan menyimpan file gambar tersebut kedalam table (menggunakan BLOB) atau menyimpan file gambar tersebut kedalam folder atau tempat yang telah kita sediakan terlebih dahulu, sehingga pada table hanya kita isi kan nama file atau alamat dimana file itu disimpan. Ada beberapa poin yang harus di ketahui dalam menggunakan FileStream.

- Binary data disimpan sebagai data file di luar database - File tersebut data di akses melalui WIN32 API

- Dapat menyimpan file dengan size lebih besar dari 2 GB (VARBINARY (MAX)) - Dapat menggunakan Transact SQL

Untuk lebih jelasnya, kita akan mencoba membuat sebuah aplikasi penyimpanan gambar dengan menggunakan VB 10 sebagai bahasa pemograman nya.

Ikuti langkah-langkah berikut ini.

Pastikan sudah terinstall SQL Server 2008 atau yang terbaru pada PC/Laptop.

 Mengaktifkan FileStream

Sebelum menggunakan fitur ini, terlebih dahulu kita harus mengaktifkan FileStream setting pada SQL Server, dengan cara sebagai berikut.

- Start > All Program > Microsoft SQL 2008 R2 > Configuration Tools > SQL Server Configuration Manager

(3)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Selanjutnya klik kanan pada SQL Server Services > Open

- Selanjutnya pada panel sebelah kanan, klik kanan pada SQL Server yang akan di aktifkan FileStream. Lalu klik Properties

(4)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Maka jendela dialog seperti dibawah tampil, selanjutnya aktikan semua checkbox yang ada, dan ketikkan nama windows share yang di inginkan pada textbox. Dan klik OK.

- Selanjutnya buka SQL Server Mangement Studio, lalu klik New Query untuk menampilkan query editor.

(5)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Ketikkan command seperti dibawah, dan tekan button Execute untuk mengeksekusi command tersebut.

- Buat sebuah database dengan nama Latihan.

- Sebelum kita membuat table untuk menyimpan data, hal yang perlu kita lakukan untuk menggunakan FileStream adalah memasukkan database kedalam FileGroup.

- Pada SQL Server Management Studio, klik New Query, ketikkan command berikut dan klik button execute.

- Langkah selanjutnya adalah dengan memasukkan file (path) kedalam filegroup.

‘C: \FileStreamPhoto’ merupakan nama path dimana kita akan menyimpan individual file. Setelah mengeksekusi command diatas, pada folder

“FileStreamPhoto” secara otomatis akan terdapat file dan folder seperti berikut $FSLOG folder dan filestream.hdr. Hal yang perlu di ketahui mengenai root directory untuk FileStream adalah setiap table yang menggunakan FileStream akan memiliki sebuah folder. Dan didalam folder

ALTER DATABASE Latihan ADD FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM;

GO

ALTER DATABASE Latihan ADD FILE ( NAME = FSGroup1File, FILENAME = 'C:\FileStreamPhoto')

TO FILEGROUP FileStreamGroup1;

GO

(6)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

tersebut akan terdapat folder sesuai dengan banyak nya kolom yang menggunakan FileStream. Sebagai contoh Table A dan B menggunakan FileStream. Dan Table A memiliki 1 kolom dan Table B 2 kolom yang menggunakan FileStream. Maka didalam folder table A akan terdapat 1 folder sedangkan folder table B akan terdapat 2 folder.

- Selanjutnya adalah membuat sebuah table yang menggunakan FileStream sebagai berikut.

- Sampai dengan tahap ini, kita sudah memiliki sebuah table pada database yang kita buat diatas.

 Membuat aplikasi penyimpanan gambar dengan VB - Buat sebuah project dengan nama “FileStream”.

- Selanjutnya tambahkan beberapa kontrol berikut kedalam form.

a. 3 buah button dengan properties Name dan Text masing-masing seperti berikut.

1. Name = btnSave, Text = Save 2. Name = btnDelete, Text = Delete 3. Name = btnBrowse, Text = …

CREATE TABLE tblImage (

PicId UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE, PicName VARCHAR (25),

Picture VARBINARY(MAX) FILESTREAM);

GO

(7)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

b. 1 Buah TextBox dengan Name = txtFileName

c. 1 buah OpenFileDialog, ganti properties Name menjadi OFD

d. PictureBox, ganti properties Name, BorderStyle dan SizeMode menjadi masing pbImage, FixedSingle dan StretchImage.

e. 1 buah DataGridView

f. 1 buah label dengan Text = File Name.

- Susun control-kontrol tersebut seperti pada gambar dibawah.

- Pada aplikasi ini kita akan menggunakan LINQ to SQL untuk proses CRUD pada database.

- Selanjutnya Add New Item pada project lalu pilih LINQ to SQL Classes selanjutnya ganti Name pada textbox menjadi “dcFileStream.dbml”.

(8)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Buka jendela Database Explorer (Ctrl+Alt+S), lalu klik kanan pada “Data Connection” lalu pilih “Add Connection”.

- Pilih Server Name dan database (Latihan) yang telah kita buat sebelum nya.

Klik “Test Connection” untuk mengecek koneksi, jika berhasil klik button OK.

(9)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Lalu Drag table “tblImage” kedalam jendela “Object Relational Designer”.

- View Code pada Form 1, dan ketikkan Imports System.IO pada awal baris.

- Kita akan membuat sebuah procedure untuk merfresh form seperti dibawah.

- Selanjutnya sebuah procedure untuk menampilkan data pada DataGridView, ketikkan sintaks seperti dibawah.

Sintaks diatas merupakan fungsi LINQ to SQL untuk menampilkan data.

- Klik ganda button browse (…) dan ketikkan sintaks berikut.

Private Sub ClearForm() txtFileName.Clear() pbImage.Image = Nothing End Sub

Private Sub Displaydata()

Using db As New dcFileStreamDataContext

Dim hasil = (From img In db.tblImages Order By img.PicName Ascending) DataGridView1.DataSource = hasil

End Using End Sub

Try

OFD.Filter = "Image Files (*.JPEG, *.jpg, *.bmp, *.gif,

*.png)|*.JPEG; *.jpg; *.bmp; *.gif; *.png"

If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then Dim strFileLocation As String = OFD.FileName

txtFileName.Text = OFD.SafeFileName

pbImage.Image = Image.FromFile(strFileLocation) End If

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream") End Try

(10)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Sesuai dengan nama nya, button browse ini berfungsi untuk mencari gambar dan menampilkan gambar tersebut kedalam sebuah PictureBox. Coba jalankan program dan klik button browse lalu cari gambar yang di inginkan.

- Selanjutnya adalah membuat procedure untuk menyimpan gambar, tetapi sebelum membuat procedure tersebut kita akan membuat sebuah function seperti dibawah.

Function diatas digunakan untuk mendapatkan Binary dari gambar yang kita pilih sebelum nya. Yang nantinya akan digunakan pada procedure penyimpanan data, seperti sintaks dibawah.

Private Function GetImageBinary() As Data.Linq.Binary Dim ms As New MemoryStream()

pbImage.Image.Save(ms, pbImage.Image.RawFormat) Dim cPic() As Byte = ms.GetBuffer

ms.Close()

Return New Data.Linq.Binary(cPic) End Function

(11)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

Seperti kita lihat pada sintaks diatas, pada Property Picture menggunakan function “GetImageBinary” untuk mendapatkan valuenya.

- Selanjutnya klik ganda button Save dan ketikkan sintaks seperti dibawah.

Sebelumnya system akan mengecek apakah sudah ada gambar pada PictureBox, jika tidak ada maka akan keluar sebuah pesan untuk memasukkan gambar terlebih dahulu. Lalu akan menyimpan gambar kedalam database. Selanjutnya aplikasi akan menampilkan data yang telah disimpan kedalam DataGridView dan merefresh form. Jalankan program dan coba untuk meyimpan gambar dengan menggunakan button save.

Private Sub SaveImage()

Using db As New dcFileStreamDataContext

Dim images As New tblImage With {.PicId = Guid.NewGuid(), .PicName = txtFileName.Text, .Picture = GetImageBinary()}

db.tblImages.InsertOnSubmit(images) db.SubmitChanges()

End Using End Sub

Try

If pbImage.Image Is Nothing Then

Throw New Exception("Masukkan gambar yang akan disimpan") End If

SaveImage() Displaydata() ClearForm()

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream") End Try

(12)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Setelah berhasil dengan proses simpan, selanjutnya adalah membuat proses penghapusan data. Klik ganda button delete, dan ketikkan sintaks dibawah ini.

Untuk melakukan proses delete ini, kita memerlukan sebuah value dari kolom PicId. Oleh karena itu sebelum menekan button delete pastikan klik (pilih) terlebih dahulu baris yang akan di hapus pada DataGridView.

Try

'mengambil value dari kolom PicId (GUID) untuk baris yang di klik

Dim picId As Guid = DirectCast(DataGridView1.CurrentRow.Cells(0).Value, Guid) Using db As New dcFileStreamDataContext

Dim hasil = (From c In db.GetTable(Of tblImage)() _ Where c.PicId.Equals(picId) Select c).ToList If hasil.Count = 0 Then

Throw New Exception("Data tidak ada") End If

db.tblImages.DeleteOnSubmit(hasil.First) db.SubmitChanges()

End Using

pbImage.Image = Nothing Displaydata()

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream") End Try

(13)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Sampai tahap ini, kita telah berhasil membuat proses simpan dan hapus data pada form. Langkah selanjutnya adalah, menampilkan data pada saat baris di DataGridView di pilih (klik).

- Klik DataGridView, lalu pada Properties klik button events, dan klik ganda CellClick

Dan ketikkan sintaks dibawah ini.

Program akan menampilkan gambar pada PictureBox pada saat baris DataGridView di klik.

Try

pbImage.Image = Nothing

If DataGridView1.Rows(e.RowIndex).Cells("Picture").Value <> Nothing Then Dim imageBytes() As Byte =

(DataGridView1.Rows(e.RowIndex).Cells("Picture").Value).ToArray Dim newImage As Image

Using ms As New MemoryStream(imageBytes, 0, imageBytes.Length) ms.Write(imageBytes, 0, imageBytes.Length)

newImage = Image.FromStream(ms, True) End Using

pbImage.Image = newImage End If

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream") End Try

(14)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

- Dan pada event Form_Load ketikkan sintaks berikut.

Pada sintaks ini di gunakan pada saat program pertama kali tampil, program akan menampilkan data pada DataGridView dan menyembunyikan kolom Picture dan PicID.

Sampai tahap ini kita telah selesai membuat sebuah aplikasi penyimpanan gambar pada database dengan memanfaatkan fungsi FileStream pada SQL Server 2008 R2. Dengan adanya fungsi ini akan menambah pilihan kita jika menghadapi kasus seperti penyimpanan unstructured data.

Semoga artikel ini dapat menambah wawasan kita semua khusus nya penulis sendiri.

Wassalam.

☺ ☺ ☺

Try

Displaydata()

DataGridView1.ShowCellToolTips = False

DataGridView1.Columns("Picture").Visible = False DataGridView1.Columns("PicId").Visible = False Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Exclamation, "FileStream") End Try

(15)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

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 Award Microsoft MVP VB pertanggal 1 oktober 2009 hingga saat ini. Senang mengutak-atik computer yang berkaitan dengan bahasa pemrograman. Keahlian, sedikit mengerti beberapa bahasa pemrograman seperti : VB.Net, C#, SharePoint, ASP.NET, VBA. Reporting: Crystal Report dan Report Builder.

Database: MS Access, MY SQL dan SQL Server. 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 Consulting dan Project Management di Malaysia sebagai Senior Consultant.

Memiliki beberapa sertifikasi dari Microsoft yaitu Microsoft Certified Professional Developer (MCPD – SharePoint 2010), MOS (Microsoft Office Specialist) dan MCT (Microsoft Certified Trainer) 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 : junindar@gmail.com

(16)

Step By Step Menjadi Programmer Handal Dengan VB.Net Junindar, ST, MCPD, MOS, MCT, MVP VB.NET

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”

Referensi

Dokumen terkait

Ginjal bisa tampak besar pada policystic kidney disease, diabetic nefropathy, HIV yang berhubungan dengan nefropati, multiple myeloma, amiloidosis, obstruktif

PJJ Peringgan III mengadakan PJJ Online dengan menggunakan aplikasi ZOOM pada hari Senin tanggal 25 Januari 2021 jam 19.00 wib... PJJ Peringgan IV mengadakan PJJ Online

1) Utang yang telah ada artinya besarnya utang yang telah ditentukan dalam perjanjian kredit. 2) Utang yang akan ada tetapi telah diperjanjikan dengan jumlah

Alasan : untuk mengetahui apakah ada kesulitan yang dihadapi oleh quality control dalam tugas yang dijalani pada proses pembuatan produk. Bagaimana proses dalam

Saya bersedia menerima keputusan hasil penilaian kemampuan dan kepatutan dan tidak akan mengajukan tuntutan atau gugatan dalam bentuk apapun terhadap hasil penilaian

Offshore Construction Survey Support Services Offshore Pasuruan, Indonesia Apr 2016 - Jul 2016 Offshore Construction Specialists Pte Ltd / Husky Cnooc Madura Ltd - 9

penambangan. Dampak dari pencucian tanah menghasilkan limbah sehingga me air sungai yang diperuntukan untuk proses pengairan sawah menjadi tercemar oleh hasil pencucian

Perbedaan hasil yang didapatkan dari kedua kelompok, antara kelompok perlakuan dan kelompok kontrol dikarenakan kelompok perlakuan mendapatkan latihan pilates