STEP BY STEP MENJADISTEP BY STEP MENJADI ...ilmukomputer.org › wp-content › uploads › 2013 ›...

16
Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com 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.

Transcript of STEP BY STEP MENJADISTEP BY STEP MENJADI ...ilmukomputer.org › wp-content › uploads › 2013 ›...

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Step By Step Menjadi Programmer Handal Dengan VB.Net

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

STEP BY STEP MENJADISTEP BY STEP MENJADISTEP BY STEP MENJADISTEP BY STEP MENJADI

PROGRAMMER HANDALPROGRAMMER HANDALPROGRAMMER HANDALPROGRAMMER HANDAL

DENGAN VB.NETDENGAN VB.NETDENGAN VB.NETDENGAN 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.

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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.

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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.

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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 : [email protected]

Kuliah Berseri IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

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”