aplikasi pemanipulasi folder

21
bds_project 1 Pengarang : Bayu Dwi Saputra Tanggal : 17 September 2009 Version : Tutorial e-mail : [email protected] Software : Visual Basic 6 CARA MEMBUAT APLIKASI PEMANIPULASI FOLDER Seperti yang saya janjikan pada artikel-artikel saya sebelumnya, artikel ini saya buat untuk menjelaskan cara membuat aplikasi browse folder yang sudah saya letakan pada indowebster.com pada bagian software. Pada aplikasi ini saya menggunakan fungsi Win32Api dalam proses pembuatan browse folder yang insya Allah saya akan beritahu cara memanggil dan memanipulasinya serta saya menggunakan Scripting FSO (File System Object) untuk mempermudah dan membantu saya dalam memanipulasi sebuah folder. Selamat mempelajari dan semoga bermanfaat….. Browse Folder Browse Folder GUI (Graphic User Interface) Gambar Browse Folder Saat Dijalankan Gambar Browse Folder Pada Form Project

Upload: byuds

Post on 23-Jun-2015

142 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Aplikasi Pemanipulasi Folder

bds_project 1

Pengarang : Bayu Dwi Saputra

Tanggal : 17 September 2009

Version : Tutorial

e-mail : [email protected]

Software : Visual Basic 6

CARA MEMBUAT APLIKASI PEMANIPULASI FOLDER

Seperti yang saya janjikan pada artikel-artikel saya sebelumnya, artikel ini saya buat untuk

menjelaskan cara membuat aplikasi browse folder yang sudah saya letakan pada indowebster.com

pada bagian software. Pada aplikasi ini saya menggunakan fungsi Win32Api dalam proses pembuatan

browse folder yang insya Allah saya akan beritahu cara memanggil dan memanipulasinya serta saya

menggunakan Scripting FSO (File System Object) untuk mempermudah dan membantu saya dalam

memanipulasi sebuah folder. Selamat mempelajari dan semoga bermanfaat…..

Browse Folder

Browse Folder GUI (Graphic User Interface)

Gambar Browse Folder Saat Dijalankan

Gambar Browse Folder Pada Form Project

Page 2: Aplikasi Pemanipulasi Folder

bds_project 2

Bagian-Bagiannya

Form Properties

Bagian Form Properties

No Properties Isi Keterangan

1 Caption Folder Browse Nama untuk aplikasi ini ketika sudah dikompail

2 Name frmBrs Nama untuk mengakses Form lewat Program

3 BorderStyle 1-FixedSingle Ukuran Form tidak bisa diubah-ubah

4 MinButton True Agar Form bisa diminimize saat dijalankan

5 StartUpPos 2-CenterScreen Agar form muncul di tengah layar computer anda

Sebaiknya Properties yang lain tidak diubah-ubah

Text Properties

Bagian Text Properties

No Properties Isi Keterangan

1 Name txtDir Nama untuk Text saat diakses melalui program

2 Apperance 0-Falat Untuk mengganti tampilan dari Text properties

3 ForeColor &H000000FF& Mengganti warna karakter dari Text properties

4 BackColor &H0080FFFF& Mengganti warna belakang dari Text properties

Sebaiknya Properties yang lain tidak diubah-ubah

Frame Properties

Bagian Frame Properties

No Items Properties Isi Keterangan

1 Frame 1

Caption Alamat Folder Nama yang akan muncul pada Frame

2 Enabled True Agar Frame terlihat

3 Frame 2

Caption Set Attribut Nama yang akan muncul pada Frame

4 Enabled True Agar Frame terlihat

5 Frame 3

Caption Folders Instructions Nama yang akan muncul pada Frame

6 Enabled True Agar Frame terlihat

7 Frame 4

Caption Informasi Nama yang akan muncul pada Frame

8 Enabled True Agar Frame terlihat

Sebaiknya Properties yang lain tidak diubah-ubah

Form Properties Text Properties Frame Properties

Check Box Properties Command Button Properties Label Properties

Page 3: Aplikasi Pemanipulasi Folder

bds_project 3

Label Properties

Bagian Label Properties

No Properties Isi Keterangan

1 Caption Browse Folder Digunakan untuk menuliskan judul aplikasi ini

Sebaiknya Properties yang lain tidak diubah-ubah

Check Box Properties

CheckBox = Ck

Bagian Check Box Properties

No Items Properties Isi Keterangan

1 Ck 1

Name ckHd Nama untuk CheckBox 1 saat diakses lewat program

2 Caption Hidden Check Box untuk membuat attribute Hidden

3 Ck 2

Name chRO Nama untuk CheckBox 2 saat diakses lewat program

4 Caption Read-Only Check Box untuk membuat attribute Hidden

5 Ck 3

Name ckSys Nama untuk CheckBox 3 saat diakses lewat program

6 Caption System Check Box untuk membuat attribute Hidden

7 Ck 4

Name ckNor Nama untuk CheckBox 4 saat diakses lewat program

8 Caption Normal Check Box untuk membuat attribute Hidden

Sebaiknya Properties yang lain tidak diubah-ubah

Command Button Properties

CommandButton = Cmd

Listing dan Penjelasan Program

Bagian Form Code Private Sub Form_Load()

1 If Me.txtDir.Text = "" Then

2 Me.ckHd.Enabled = False ’Check Box dari Hidden

3 Me.ckNor.Enabled = False ’Check Box dari Normal

4 Me.ckSys.Enabled = False ’Check Box dari System

5 Me.ckRO.Enabled = False ’Check Box dari Read-Only

6 End If

End Sub

Penjelasan :

Keyword Me bertindak sebagai variabel yang dideklarasikan secara implisit. Ketika Class mempunyai

lebih dari satu komponen (Text, Button, dll), Me disediakan sebagai cara untuk mengarahkan eksekusi

kode pada komponen yang ditentukan. Contohnya : Me.ckHd.Enabled = False artinya VB akan

mengeset nilai property dari komponen ckHd dengan nilai False.

1 :

Dicek apakah nilai dari property Text pada komponen Text Box adalah Null String ?? jika ya

maka kode program 2 sampai dengan 5 akan dieksekusi.

2 :

Mengeset nilai property Enabled pada komponen ckHd dengan nilai False. Tujuannya

menonaktifkan Check Box saat program pertama kali dijalankan karena alamat dari folder belum

diinputkan.

3 :

Agar Check Box ckNor tidak aktif saat program pertama kali dijalankan karena belum ada

alamat dari folder yang diinputkan.

Page 4: Aplikasi Pemanipulasi Folder

bds_project 4

4 :

Agar Check Box ckSys tidak aktif saat program pertama kali dijalankan karena belum ada

alamat dari folder yang diinputkan.

5 :

Agar Check Box ckRO tidak aktif saat program pertama kali dijalankan karena belum ada

alamat dari folder yang diinputkan. Private Sub txtDir_Change()

Dim bufStr As Integer

If Me.txtDir.Text <> "" Then

bufStr = Len(Me.txtDir.Text)

1 If bufStr > 3 Then

2 Me.ckHd.Enabled = True

3 Me.ckNor.Enabled = True

4 Me.ckSys.Enabled = True

5 Me.chRO.Enabled = True

6 Me.cmdLastAcs.Enabled = True ’Button Last Accessed

7 Me.cmdLastCrt.Enabled = True ’Button Last Created

8 Me.cmdLastMod.Enabled = True ’Button Last Modified

9 Me.cmdSize.Enabled = True ’Button Cek Size

10 Me.cmdTyp.Enabled = True ’Button Type

11 Me.cmdDel.Enabled = True ’Button Delete

Else

12 Me.ckHd.Enabled = False

13 Me.ckNor.Enabled = False

14 Me.ckSys.Enabled = False

15 Me.cmdDel.Enabled = False

16 Me.chRO.Enabled = False

17 Me.cmdLastAcs.Enabled = False

18 Me.cmdLastCrt.Enabled = False

19 Me.cmdLastMod.Enabled = False

20 Me.cmdTyp.Enabled = False

21 Me.cmdSize.Enabled = False

End If

End If

End Sub

Penjelasan :

Maksud penggalan program di atas adalah jika variabel bufStr yang menampung panjang text

yang ada pada text box (txtDir.Text) memiliki panjang lebih dari 3 maka program dari no 2 sampai

dengan 11 akan dieksekusi jika tidak maka program dari no 12 sampai dengan 21 yang dieksekusi.

Kenapa sayratnya harus lebih dari 3 (>3) tujuannya untuk mencega agar alamat yang diinputkan

bukanlah driver karena driver biasanya ditulis dengan cara (C:\) yang memiliki panjang 3.

2 : Mengaktifkan Check Box Hidden

3 : Mengaktifkan Check Box Normal 11 : Mengaktifkan Button Delete

4 : Mengaktifkan Check Box System

5 : Mengaktifkan Check Box Read Only

6 : Mengaktifkan Button Last Accessed

7 : Mengaktifkan Button Last Creatred

8 : Mengaktifkan Button Last Modified

9 : Mengaktifkan Button Cek Size

10 : Mengaktifkan Button Type

Page 5: Aplikasi Pemanipulasi Folder

bds_project 5

Private Sub ckHd_Click()

1 If ckHd.Value = vbChecked Then

2 If MsgBox("Folder ini ingin dibuat menjadi type Hidden", vbExclamation + _

vbOKCancel, "Konfirmasi") = vbOK Then

3 SetAttr txtDir.Text, vbHidden

4 Else

5 MsgBox "Proses Perubahan Dibatalkan", vbExclamation + vbOKOnly, _

"Pembatalan"

6 End If

7 End If

8 If ckHd.Value = vbUnchecked Then

9 SetAttr txtDir.Text, vbNormal

10 MsgBox "Sudah kembali dengan tipe normal", vbInformation + vbOKOnly, _

"Informasi"

11 End If

End Sub

Penjelasan :

Bagian ini digunakan untuk mengeset atribut dari folder saat check box dicentang, dan

mengembalikannya ke bentuk normal jika tidak dicentang. Untuk mengatur attribut dari folder, saya

menggunakan bantuan fungsi dari VB6 yaitu SetAttr. Berikut penjelasan dari fungsi SetAttr :

SetAttr

Mengatur informasi Attribute dari file dan folder.

Syntax SetAttr PathName, Attributes

PathName : Ekspresi String yang berisi alamat file atau folder.

Attributes : Bagian yang mengeset attribut untuk file atau folder.

Attribute Value Keterangan

vbNormal 0 Mengeset Attribute menjadi normal (Default)

vbReadOnly 1 Mengeset Attribute menjadi ReadOnly

vbHidden 2 Mengeset Attribute menjadi Hidden

vbSystem 4 Mengeset Attribute menjadi System

vbArchive 32 Mengeset Attribute menjadi Archive

Catatan : akan terjadi kesalahan jika kamu mengecek File atau Folder yang sedang dibuka.

1 : Apakah Check Box (ckhd) diceklish ?? jika ya program baris 2 sampai 6 dijalankan

2 : dilakukan pemberitahuan ke user. Apakah folder ingin diset hidden ?? jika ya baris 3 dieksekusi.

4 : mengeset attribute folder menjadi hidden.

10 : jika check box tidak diceklis maka baris 9 dan 10 dieksekusi.

11 : mengeset attribut menjadi Normal.

Private Sub chRO_Click()

1 If chRO.Value = vbChecked Then

2 If MsgBox("Folder ini ingin dibuat menjadi type Read-Only", vbExclamation +

vbOKCancel, "Konfirmasi") = vbOK Then

3 SetAttr txtDir.Text, vbReadOnly

4 Else

5 MsgBox "Proses Perubahan Dibatalkan", vbExclamation + vbOKOnly, _

"Pembatalan"

6 End If

Page 6: Aplikasi Pemanipulasi Folder

bds_project 6

7 End If

8 If chRO.Value = vbUnchecked Then

9 SetAttr txtDir.Text, vbNormal

10 MsgBox "Sudah kembali dengan tipe normal", vbInformation + vbOKOnly, _

"Informasi"

11 End If

End Sub

Penjelasan :

Bagian ini akan dijalankan saat check box Read Only diceklis lalu mengeset atribut folder

menjadi read-only. Secara garis besar penjelasan tentang fungsi setAttr bisa dilihat pada penjelasan

sebelumnya.

1 : apakah check box Read-Only di ceklis ?? jika ya maka penggalan program 2 samapi 6 dieksekusi.

2 : konfirmasi... Jika tombol Ok ditekan eksekusi program no 2.

5 : akan dijalankan jika tombol cancel ditekan.

8 : akan dijalankan jika Check Box tidak diceklish.

9 : Set attribut menjadi normal.

Private Sub ckSys_Click()

If ckSys.Value = vbChecked Then

If MsgBox("Folder ini ingin dibuat Menjadi Type System", vbExclamation +

vbOKCancel, "Konfirmasi") = vbOK Then

SetAttr txtDir.Text, vbSystem

Else

MsgBox "Proses Perubahan Dibatalkan", vbExclamation + vbOKOnly,

"Pembatalan"

End If

End If

If ckSys.Value = vbUnchecked Then

SetAttr txtDir.Text, vbNormal

MsgBox "Sudah kembali dengan tipe normal", vbInformation + vbOKOnly,

"Informasi"

End If

End Sub

Penjelasan :

Penggalan program di atas akan dijalankan jika check box System diceklish lalu mengeset

attribut folder menjadi System, dan mengembalikannya menjadi normal jika Check Box tidak diceklis.

Catatan : Penjelasan sama seperti sebelumnya.

Private Sub ckNor_Click()

If ckNor.Value = vbChecked Then

If MsgBox("Folder ini ingin diNormalkan", vbExclamation + vbOKCancel,

"Konfirmasi") = vbOK Then

SetAttr txtDir.Text, vbNormal

Else

MsgBox "Proses Penormalan Dibatalkan", vbExclamation + vbOKOnly,

"Pembatalan"

End If

End if

Penjelasan :

Bagian ini digunakan untuk mengembalikan attribute folder menjadi Normal kembali jika

atribut dari folder tidak diset Normal. Jika sudah maka program langsung meloloskannya.

Page 7: Aplikasi Pemanipulasi Folder

bds_project 7

Manipulasi Folder Dengan FSO (File System Object)

FSO (File System Object) adalah tools yang saya gunakan untuk membantu saya dalam

memproses atau mendapatkan informasi dari folder yang saya proses. FSO berbentuk file seperti DLL

maka dia diangap Reference dalam VB 6 maka kita harus mengaktifkan terlebih dahulu sebelum

memakainya. Untuk Button Delete, Cek Size, Last Modified, Last Create, Last Accessed, dan Type saya

menggunakan bantuan FSO. Dibagian ini saya coba untuk menjelaskan cara memanfaatkan FSO untuk

memanipulasi folder seperti mendelete, Mengukur Size, dan lain-lainnya. Selamat menikmatinya.

Cara Mengaktifkan FSO

1. Klik Tool Bar Project. (akan muncul gambar seperti dibawah ini).

2. Klik References. (yang ditunjuk panah). Lalu akan muncul :

Klik Bagian

ini

Page 8: Aplikasi Pemanipulasi Folder

bds_project 8

3. Cari Microsoft Scripting Runtime lalu Ceklist pada bagian kotak yang tersedia dan tekan ok.

Cara Mendeklarasikan Dalam Program

Private FSO As New Scripting.FileSystemObject

Untuk pendelarasian FSO, Dekalrasikan pada bagian General dari Form. Ingat bagian General buka di

dalam Sub atau Fungsi tujuanya agar variabel FSO bisa diakses disemua sub pada Form Code. Jika

kamu mendeklarasikannya didalam fungsi atau sub maka variabel FSO hanya akan aktif didalam fungsi

atau sub tersebut.

Catatan : Untuk lebih jelas lihat artikel saya sebelumnya tentang ”Mempelajari FSO dalam 1.5 jam”

yang sudah saya upload ke indowebster, diartikel saya dijelaskan syntax dan fungsi-fungsi yang ada di

FSO. Bagi yang penasaran selamat mencari atau untuk lebih mudahnya hubungi saya melalui email

[email protected].

Private Sub cmdDel_Click()

1 If Len(txtDir.Text) <> 0 Then

2 If MsgBox("Anda yakin berkeinginan untuk mendelet folder ini ??", _

vbExclamation + vbOKCancel, "Izin") = vbOK Then

3 fso.DeleteFolder txtDir.Text, True

4 MsgBox "Berhasil di-Delete", vbInformation + vbOKOnly, "Informasi"

5 Else

6 MsgBox "Pembatalan", vbExclamation + vbOKOnly, "Informasi"

7 End If

8 Else

9 MsgBox "Anda Belum Memasukan Alamat", vbCritical + vbOKOnly, "Error"

10 End If

End Sub

Penjelasan :

Penggalan program di atas akan dieksekusi saat tombol Delete ditekan.

1 : dicek apakah panjang dari text tidak sama dengan 0 ?? jika ya maka baris 2 hingga 4 dieksekusi

2 : dicek apakah user menekan tombol Ok pada message box yang muncul ?? jika ya maka baris 3

dieksekusi.

3: Instruksi untuk mendelet folder.

4 : menampilkan informasi bahwa folder telah didelet.

6 : akan dieksekusi saat user menekan tombol Cancel.

9 : akan dieksekusi saat teks masih kosong atau alamat folder belum diinputkan.

Page 9: Aplikasi Pemanipulasi Folder

bds_project 9

Private Sub cmdLastMod_Click()

1 Dim bufStr As String

2 If Len(txtDir.Text) <> 0 Then

3 bufStr = fso.GetFolder(txtDir.Text).DateLastModified

4 MsgBox "Folder Terakhir Dimodifikasi Pada : " & bufStr, vbInformation + _

vbOKOnly, "Last Modified"

5 Else

6 MsgBox "Anda Belum Memasukan Alamat", vbCritical + vbOKOnly, "Error"

7 End If

End Sub

Penjelasan :

Bagian ini akan dijalankan saat Button Last modified diekan.

1 : deklarasi variabel bufStr, untuk menyimpan data hasil pemrosesan pada baris 3.

2 : dicek apakah alamat file kososong ?? jika tidak maka baris 3 sampai 4 dieksekusi.

3 : Menyimpan data berupa tanggal dan waktu terakhir kali folder dimodifikasi.

4 : Menampilkan informasi berupa tanggal dan waktu terkahirkali folder dimodifikasi dalam Message.

6 : dijalankan jika alamat folder pada txtDir sama dengan 0 (kosong).

Private Sub cmdLastCrt_Click()

1 Dim bufStr As String

2 If Len(txtDir.Text) <> 0 Then

3 bufStr = fso.GetFolder(txtDir.Text).DateCreated

4 MsgBox "Folder Terakhir Dibuat Pada : " & bufStr, vbInformation + _

vbOKOnly,"Last Created"

5 Else

6 MsgBox "Anda Belum Memasukan Alamat", vbCritical + vbOKOnly, "Error"

7 End If

End Sub

Penjelasan :

Bagian ini akan dijalankan saat Button Last Created ditekan. Secara garis besar sama dengan

program sebelumnya.

Private Sub cmdTyp_Click()

1 Dim bufStr As String

2 If Len(txtDir.Text) <> 0 Then

3 bufStr = fso.GetFolder(txtDir.Text).Type

4 MsgBox "Folder Type Adalah : " & bufStr, vbInformation + vbOKOnly, "Type _

Folder"

5 Else

6 MsgBox "Anda Belum Memasukan Alamat", vbCritical + vbOKOnly, "Error"

Page 10: Aplikasi Pemanipulasi Folder

bds_project 10

7 End If

End Sub

Penjelasan :

Bagian ini akan dijalankan saat Button Type ditekan. Secara garis besar sama dengan program

sebelumnya.

Private Sub cmdLastAcs_Click()

1 Dim bufStr As String

2 If Len(txtDir.Text) <> 0 Then

3 bufStr = fso.GetFolder(txtDir.Text).DateLastAccessed

4 MsgBox "Folder Terakhir Diakses Pada : " & bufStr, vbInformation, _

"Last Accessed"

5 Else

6 MsgBox "Anda Belum Memasukan Alamat", vbCritical + vbOKOnly, "Error"

7 End If

End Sub

Penjelasan :

Bagian ini akan dijalankan saat Button Last Accessed ditekan. Secara garis besar sama dengan

program sebelumnya.

Private Sub cmdSize_Click()

1 Dim sz As Double

2 Dim buf As Double

3 If Len(txtDir.Text) <> 0 Then

4 sz = fso.GetFolder(txtDir.Text).Size

5 If sz > 1024 And sz < 1048576 Then

6 buf = FormatNumber(sz / 1024, 0, vbTrue)

7 MsgBox "Ukuran Foldernya Adalah : " & CStr(buf) & " KB", vbInformation _

, "Uuran Folder"

8 Else

9 buf = FormatNumber(sz / 1048576, 0, vbTrue)

10 MsgBox "Ukuran Foldernya Adalah : " & CStr(buf) & " MB", vbInformation _

, "Ukuran Folder"

11 End If

12 Else

13 MsgBox "Anda Belum Memasukan Alamat", vbCritical + vbOKOnly, "Error"

14 End If

End Sub

Penjelasan :

Penggalan program di atas akan dijalankan jika tombol Cek Size ditekan, penggalan program di

atas digunakan untuk menampilkan informasi berupa kapasitas dari folder dalam Kb atau Mb.

Page 11: Aplikasi Pemanipulasi Folder

bds_project 11

1 : variabel yang digunakan untuk menyimpan kapasitas dari folder hasil pengembalian fungsi FSO. Nilai

yang dikembalikan dalam bentuk byte.

2 : variabel yang digunakan untuk menyimpan kapasitas folder dalam bentuk Kb dan Mb dari hasil

pemrosesan fungsi Format.

3 : dicek apakah alamat pada komponen txtDir kosong atau tidak ?? jika tidak maka baris 4 sampai 7

dieksekusi.

4 : dilakukan pengambilan kapasitas dari folder dengan menggunakan FSO. Hasilnya disimpan dalam

variabel sz dalam bentuk byte.

5 : dicek apakah kapasitasnya Lebih besar dari 1 Kb (2^10) dan lebih kecil dari 1 Mb (2^20) ?? jika ya

maka baris 6 dan 7 dieksekusi.

6 : merubah nilai (kapasitas dari folder) kedalam bentuk Kb. Lalu disimpan dalam variabel buf.

7 : menampilkan kapasitas dari folder dalam bentuk message.

9 : bagian ini akan dijalankan jika kapasitas dari folder lebih besar dari 1 Mb (2^20). Diubah satuan dari

kapasitas folder menjadi Mb dari byte dan menyimpannya dalam variabel buf.

10 : bagian ini juga dijalankan jika kapasitas dari folder lebih besar dari 1 Mb. Menampilkan kapasitas

dari folder dalam bentuk message.

13 : bagian ini akan dieksekusi jika alamat dari folder belum diinputkan.

”Masuk Ke Kode Untuk Membuat Browse Folder”

Page 12: Aplikasi Pemanipulasi Folder

bds_project 12

MEMBUAT BROWSE FOLDER

Browse Folder ini dibuat untuk mempermudah user dalam menginputkan alamat dari folder

yang ingin dia proses sehingga user tidak perlu mengetikan alamat folder dengan cara mencarinya.

Broese Folder ini bukanlah bawaan dari VB maka kita harus membuatnya secara manual dengan cara

memprogram tentunya dengan bantuan Win 32 Api Function, jadi pada bagian ini saya juga akan

menjelaskan cara memanipulasi file-file library (DLL Dynamic Link Library) yang ada pada windows anda

melalui VB 6. Di bawah ini adalah tampilan dari Browse Folder yang saya buat.

Sekedar informasi ”Gambar di atas akan muncul jika button Browese.. ditekan”.

Catatan : Bagian ini dibuat dalam Module pada VB 6.

Cara menambah module : Klik Tool Bar ProjectI, lalu pilih Add Module.

Klik Bagian

ini

Page 13: Aplikasi Pemanipulasi Folder

bds_project 13

Maka akan muncul gambar

Klik Button OK.

Lalu tuliskan kode pada bagian Module ini.

Page 14: Aplikasi Pemanipulasi Folder

bds_project 14

Kode Program

Deklarasi Fungsi Win 32 API

1 Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _

"SHBrowseForFolderA" (lpbi As BrowseInfo) As Long

2 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd

As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

3 Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _

"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Boolean

4 Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)

Penjelasan :

1 :

Public Declare Function

Artinya fungsi SHBrowseForFolder bisa diakses pada form code dan module code.

Lib

Artinya diambil dari Library ”shell32.dll” file dll yang ada pada windows.

Alias

Memberi tahukan ke debuger VB 6 nama lain dari fungsi Win 32 API SHBrowseForFolder.

SHBrowseForFolder

Berfungsi untuk menampilkan Dialog Box yang memungkinkan User untuk memilih folder

melalui Graphic User Interface. Mengembalikan alamat dari item yang disorot oleh user, jika user

menekan tombol cancel maka pengembalian adalah Null String (string kosong).

Lpbi

Alamat dari struktur BrowseInfo yang mengandung informasi yang digunakan untuk

menampilkan Dialog Box (GUI Browse Folder).

BrowseInfo

Merupakan User Define Type (UDT) yang terdiri dari variabel-varibel yang bertindak sebagai

property untuk SHBrowseFolder. Penjelasan untuk bagian ini disertakan pada Sub Bab UDT sehabis

penjelasan Win 32 API.

2 :

SendMessage

Digunakan untuk memberitahukan ke windows tentang informasi apa yang ingin kita dapatkan

dari komponen yang kita gunakan dalam pembuatan aplikasi dengan VB 6.

hwnd

Digunakan untuk menangani destination window atau parameter yang mana message

dikirimkan. Biasanya diinputkan property hwnd dari komponen yang ingin kita proses. Contohnya

text1.hwnd.

Page 15: Aplikasi Pemanipulasi Folder

bds_project 15

wMsg

parameter yang digunakan untuk menampung message yang dikirim. Dimasukan konstanta.

wParam

parameter pertama dari message.

lParam

Parameter kedua dari message.

Catatan : untuk wPram dan lPram data yang dimasukan berupa integer 32 bit atau LONG. Jika anda

belum paham penggunaan fungsi ini hubungi saya via e-mail di [email protected] agar saya

bisa mengirimkan contoh aplikasi dengan menggunakan fungsi ini berikut juga penjelasannya. Atau

cari di google.com ya.....

3 :

SHGetPathFromIDList

Adalah fungsi yang digunakan untuk merubah item yang diidentifikasikan ke dalam systen

pengalamatan file. Mudahnya merubah folder yang anda pilih menjadi informasi dalam bentuk alamat

dari root folder. Mengembalikan nilai True jika berhasil dan False jika gagal.

pidl

adalah parameter yang digunakan untuk menampung alamat dari list item yang

diidentifikasikan pada lokasi file atau folder itu berada yang relative pada root of the namespace

(Desktop).

pszPath

Parameter yang digunakan untuk menampung alamat dari folder hasil pemrosesan fungsi

SHGetPathFromIDList.

4 :

CoTaskMemFree

Adalah fungsi yang digunakan untuk membebaskan block dari memori yang telah digunakan

sebelumnya. Agar memory tidak terlalu terbebani saat user menekan tombol Browse berkali-kali.

hMem

adalah parameter yang digunakan untuk menampung varibel yang sebelumnya memakai

memory lalu ingin dihilangkan dari memory sehingga ukuran memory yang dipakai bisa dihilangkan.

Membuat UDT (User Defined Type) Untuk SHBrowseForFolder

Private Type BrowseInfo

1 hwndOwner As Long

2 pIDLRoot As Long

3 pszDisplayName As String

4 lpszTitle As String

5 ulFlags As Long

Page 16: Aplikasi Pemanipulasi Folder

bds_project 16

6 lpfn As Long

7 lParam As Long

8 iImage As Long

End Type

Penjelasan :

UDT ini mengandung beberapa parameter untuk fungsi SHBrowseForFolder dan menerima

informasi tentang folder yang dipilih oleh user khusunya alamat dari folder itu berada.

1 : mengatur jendela (window) untuk tampilan browse folder.

2 : Alamat dari struktur ITEMIDLIST yang menentukan lokasi dari Root Folder dari folder yang di-

browsing. Hanya folder yang ditentukan dan bagian folder yang tampak dalam dialog box. Anggota ini

dapat bernilai Null, artinya Desktop Folder digunakan sebagai Root Folder.

Catatan : Biasanya Root Folder adalah folder WINDOWS. Akan tetapi karena kita isi 0 pada variabel

baris 2 maka Root Foldernya adalah Desktop.

3 : parameter yang digunakan untuk menerima alamat dari nama folder yang terlihat yang dipilih oleh

user. Untuk bagian ini kita harus mengalokasikan string kosong dengan panjang senilai konstanta

MAX_PATH yang diisikan karakter kosong tujuannya agar alamat hasil pemrosesan bisa ditempatkan

pada paramert ini untuk sementara waktu.

4 : parameter ini digunakan untuk menyimpan karakter yang nantinya akan ditampilkan pada bagian

atas dari GUI Browse For Folder.

5 : adalah penanda yang menentukan pilihan untuk dialog box. Untuk lebih jelas lihat tabel berikut :

Flags Keterangan

BIF_BROWSEFORCOMPUTER Hanya mengembalikan alamat komputer selebihnya button Ok tidak aktif

BIF_BROWSEFORPRINTER Hanya mengembalikan alamat printer selebihnya button Ok tidak aktif

BIF_BROWSEINCLUDEFILES Browse Dialog akan menampilkan icon dari file selayaknya folder.

BIF_DONTGOBELOWDOMAIN Folder Network tidak disertakan.

BIF_EDITBOX Hanya untuk versi 4.71

BIF_RETURNFSANCESTORS Hanya mengembalikan system Ancestors selain itu button Ok tidak aktif

BIF_RETURNONLYFSDIRS Hanya mengembalikan alamat folder selain itu button Ok tidak aktif.

BIF_STATUSTEXT Menyertakan status area dalam Dialog Box.

BIF_VALIDATE Hanya untuk versi 4.71

6 : Alamat dari fungsi aplikasi yang didefinisikan yang DialogBox panggil ketika Aplikasi Di Load di

memory.

7 : Nilai aplikasi yang terdefinisi yang DialogBox lalui ke fungsi CallBack.

8 : varibel untuk menerima Image yang ditentukan pada folder yang dipilih. Image ditentukan sebagai

index untuk system Image List.

Page 17: Aplikasi Pemanipulasi Folder

bds_project 17

Deklarasi Konstanta

Private Const MAX_PATH = 260

Private Const BIF_RETURNOLYFSDIRS = 1

Private Const BIF_STATUSTEXT = 4

Private Const WM_USER = &H400

Private Const BFFM_INITIALIZED = 1

Private Const BFFM_SELCHANGED = 2

Private Const BFFM_SETSTATUSTEXTA = (WM_USER + 100)

Private Const BFFM_SETSELECTIONA = (WM_USER + 102)

Catatan : untuk bagian ini saya sengaja tidak beri penjelasan.

Deklarasi Variabel General

Private fDefaultFolder As String

Membuat Fungsi Browse Folder

1 Public Function BrowseFolder(DefaultFolder As String, Optional hwndForm _

As Long = 0, Optional Caption As String = "") As String

2 Dim Bi As BrowseInfo

3 Dim inpt As String

4 Dim bufHasil As Long, strHasil As String

5 Bi.hwndOwner = hwndForm

6 Bi.pIDLRoot = 0

7 Bi.pszDisplayName = String$(MAX_PATH, Chr$(0))

8 If Caption <> "" Then

9 Bi.lpszTitle = Caption

10 Else

11 If MsgBox("Anda Belum Memasukan Keterangan Untuk Browse Folder" _

12 & vbNewLine & "Klik Ok Untuk Membuat Keterangan" & vbNewLine & _

13 "Klik Cancle Agar Nama Sesuai Dengan Default", _

14 vbExclamation + vbOKCancel, "Peringatan") = vbOK Then

15 inpt = InputBox("Masukan Keterangan di sini", "Input Box")

16 If Len(inpt) <> 0 Then

17 Bi.lpszTitle = inpt

18 Else

19 MsgBox "Anda Belum Memasukan Satu Karakter Pun", _

20 vbCritical, "ERROR"

21 End If

22 Else

23 Bi.lpszTitle = "Pilih Foldernya :"

Page 18: Aplikasi Pemanipulasi Folder

bds_project 18

24 End If

25 End If

26 Bi.ulFlags = BIF_RETURNOLYFSDIRS

27 Bi.lpfn = GetAddress(AddressOf AmbilAlamat)

28 Bi.lParam = 0

29 Bi.iImage = 0

30 fDefaultFolder = DefaultFolder

31 bufHasil = SHBrowseForFolder(Bi)

32 If bufHasil <> 0 Then

33 strHasil = String$(MAX_PATH, Chr$(0))

34 If SHGetPathFromIDList(bufHasil, strHasil) Then

35 BrowseFolder = Left$(strHasil, InStr(Hasil, Chr$(0)) - 1)

36 End If

37 CoTaskMemFree bufHasil

38 End If

39 End Function

Penjelasan :

Fungsi ini adalah fungsi yang saya buat untuk mempermudah saya dalam proses pencarian

folder melalui browse folder. Untuk fungsi ini saya mendeklarasikannya dengan Public tujuannya agar

fungsi ini bisa diakses tidak hanya pada bagian Module tetapi juga pada bagian Form Code, parameter

yang saya gunakan adalah DefaultFolder, hwndForm, Caption. Parameter DefaultFolder digunakan

untuk memasukan Object berupa komponen Text Box untuk menamampilkan alamat dari folder yang

telah dipilih oleh User. Parameter hwndForm digunakan untuk memasukan Object berupa hWnd yang

merupakan kepanjangan dari (Handel of Window) dari Form aplikasi, khusus untuk bagian ini loloskan

parameter ini dengan menuliskan Me.hwnd. Parameter Caption digunakan untuk memasukan Kalimat

yang nantinya akan muncul, untuk paramter ini bertype String jadi anda hanya bisa meloloskan object

yang bertype String saja.

Page 19: Aplikasi Pemanipulasi Folder

bds_project 19

2 : adalah variabel yang akan menampung UDT BrowseInfo.

3 : variabel yang digunakan untuk menampung keluaran String dari fungsi Input Box yang digunakan

untuk menginputkan kalimat untuk Caption bagi Dialog Box (Browse For Folder).

4 : bufHasil variabel yang digunakan untuk menampung keluaran dari fungsi Win 32 API _

SHBrowseForFolder, variabel strHasil digunakan untuk menampung hasil pemrosesan alamat folder

dari fungsi Win 32 API SHGetPathFromIDList yang nantinya akan menjadi keluaran untuk fungsi yang

saya buat yaitu BrowseFolder berupa alamat dari folder yang anda pilih.

5 : atrinya yang mengatur window dari dialog box Browse For Folder adalam Me.hwnd atau Form1 atau

aplikasi yang saya buat.

6 : bagian ini diisi dengan nilai 0 agar yang menjadi Root Folder adalah Desktop.

7 : mengisi paramet pszDisplayName dengan Null String sepanjang MAX_PATH tujuannya saya

menyiapkan tempat untuk karakter sepanjang MAX_PATH yang nantinya digunakan untuk Buffer

alamat folder yang dipilih user.

8 : dilakukan apakah User sudah memasukan Kalimat ke bagian Caption ?? jika sudah baris 9 dieksekusi

jika belum maka baris 11 sampai dengan 24 dieksekusi. Inti dari baris 11 dan 24 adalah memberikan

kalimat pada bagian Caption agar bisa tampil pada bagian DialogBox (Browse For Folder). Jadi bagian 11

hingga 24 saya tidak jelaskan karena mudah dimengerti.

26 : mengisi flag DialogBox (Browse For Folder). Penjelasan bisa lihat pada tabel yang telah saya buat

sebelumnya.

27 : mengisi alamat dari fungsi aplikasi yang didefinisikan yang dialog box panggil saat event (program)

berjalan. Fungsinya adalah NowBrowse. Program untuk bagian ini disertakan nanti.

28 : isi dengan 0. Karena kita tidak menggunakan ini.

29 : isi dengan 0. Karena kita tidak menggunakan ini.

30 : menyimpan isi DefaultFolder pada variabel fDefaultFolder yang dideklarasikan pada bagian General

agar bisa diakses pada semua Sub atau Fungsi yang ada pada bagian Module Code.

31 : Menampung keluaran dari fungsi SHBrowseForFolder yang telah terisi oleh UDT BI (BrowseInfo)

yang disimpan pada variabel bufHasil.

Selanjutnya kita buat filter...

32 : dicek apakah varibel bufHasil yang menerima keluaran dari fungsi win 32 api SHBrowseForFolder

tidak sama dengan 0 (artinya ada folder yang diproses) ??? jika ya maka baris 33 sampai dengan 37

dieksekusi.

33 : menyiapkan ruangan kosong dalam format String dengan panjang MAX_PATH yang digunakan

untuk menampung alamat dari folder hasil pemrosesan fungsi win 32 api SHGetPthFromIDList.

Page 20: Aplikasi Pemanipulasi Folder

bds_project 20

34 : dicek apakah kita alamat ada ?? jika ya maka keluaran fungsi ini adalah True jika tidak False.

35 : membuat keluaran fungsi BrowseFolder yang kita buat = alamat dari folder yang kita pilih.

37 : mengosongkan memory yang digunakan untuk menampung alamat sementara dari folder yang

ada pada variabel bufHasil.

Private Function AmbilAlamat(almtFungsi As Long) As Long

AmbilAlamat = almtFungsi

End Function

Penjelasan :

Fungsi diatas digunakan untuk mengembalikan alamat dari fungsi yang diinputkan ke bagian

parameter almtFungsi, karena agar bisa diproses pada bagian BI.lpfn.

Private Function Browsing(ByVal hwnd As Long, ByVal uMsg As Long, ByVal lParam As

Long, ByVal lpData As Long) As Long

Select Case uMsg

Case BFFM_INITIALIZED:

If fDefaultFolder <> 0 Then

SendMessage hwnd, BFFM_SETSELECTIONA, True, ByVal fDefaultFolder

End If

End Select

End Function

Penjelasan :

Secara keseluruhan fungsi ini digunakan untuk memberitahukan ke OS WINDOWS folder mana

yang sedang kita proses atau kita pilih, proses pengiriman informasi ini ke windows menggunakan

fungsi win 32 api SendMessage. BFFM_INITIALIZED merupakan nilai konstanta yang dapat anda lihat

pada bagian konstanta, saya dapat nilai konstanta ini dari situs MSDN dan juga forum Extream Visual

Basic 6.

Catatan : jika anda ingin ahli memprogram dengan VB6 sering-seringlah kunjungi dua situs ini via

internet, dan banyak bertanyalah pada ahlinya... saya hanya bisa membantu membuat artikel tentang

VB6 dari program-program yang berhasil saya buat.

”Akhir dari program untuk membuat aplikasi manipulasi folder”

”Atas nama pembuat saya ucapkan selamat mempelajari”

Page 21: Aplikasi Pemanipulasi Folder

bds_project 21

Penutup

Jika ada pertanyaan atau menemukan sesuatu yang mengganjal dari artikel ini atau dari aplikasi

yang saya sertakan, anda bisa menanyakan atau mendiskusikan hal-hal tersebut melalui e-mail saya di

[email protected] atau via sms di 081317817842 jika anda memiliki rasa ingin tahu yang

tinggi dan juga memilki semangat untuk belajar.

Artikel selanjutnya insya allah adalah “Cara Membuat Aplikasi Notepad” doakan saya agar bisa terus

berkarya.. Amien….

Artikel ini dibuat dan disusun oleh Bayu Dwi Saputra. Jika ada pihak-pihak yang tidak

bertanggung jawab menjual belikan artikel ini atau membukukan artikel ini tanpa seijin pembuat

artikel, Pihak pembuat artikel ini bisa menuntu pelaku ke pengadilan.

Artikel ini saya buat bagi anda yang ingin mempelajari, memahami, dan membuat suatu aplikasi

dengan VB 6. jika ada kesalahan dan kekurangan dari artikel ini saya mohon maaf sebesar-besarnya.

Atas nama pembuat saya ucapkan selamat mempelajari dan memahami artikel ini semoga bermanfaat

bagi kalian.

Tentang Pembuat

Nama saya Bayu Dwi Saputara lahir Bekasi, 4 juni 1989, sekarang saya

masih duduk dibangku kuliahan tepatnya di Universitas Gadjah Mada

Yogyakarta (UGM) mengambil Program Studi Elektronika & Instrumentasi

(S1). Hobby saya adalah Membaca Buku, Membuat aplikasi-aplikasi dengan

VB 6, Nonton Film, Mendengarkan Music Classic, dan Touring. Saat ini saya

sedang memperdalam pemrograman DataBase dengan VB 6, pada saatnya

nanti saya akan membuat artikel-artikel yang berkenaan tentang DATABASE.

Mari kita terus berkaya sesuai dengan kemampuan kita masing-masing. Kita tunjukan pada

dunia bahwa anak Indonesia mampu bersaing dengan anak dari Negara lain.

“Don’t ask what your country can do for you but ask what you can do for your country”