Friday, July 5, 2013

VB6 Date Time: Cara Mudah Menghitung Selisih Waktu

Menjelaskan cara mudah/termudah untuk menghitung selisih waktu - Mengapa disebut sebagai cara termudah? Karena ia hanya membutuhkan satu baris kode saja.

Untuk memahami manipulasi Date and Time seperti fungsi built-in dalam VB6 (DateAdd, DatePart, dan sebagainya) atau fungsi-fungsi date custom (bukan built-in), ada baiknya Anda mengetahui fakta mengenai data type date di bawah ini:

  1. Data type date sama seperti data type number lainnya (integer, long, double) yang ditampilkan dengan format tertentu.
  2. Bilangan 0 pada data type number (integer, long, double) padanannya dalam data type date adalah 30 December 1899, Jadi yang kurang dari tanggal 30 December 1899 menjadi bilangan negatif dan yang lebih dari 30 December 1899 akan menjadi bilangan positif.
  3. Limit bilangan negatif untuk data type date adalah: 1 January 100 (-657434) dan untuk bilangan positif: 31 December 9999 (2958465) .
  4. Date type date adalah angka 0,0000115740740740741 yang terus menerus ditambahkan atau terus menerus dikurangkan. 0,0000115740740740741 adalah 1 detik. Jadi (0,0000115740740740741 * 3600 * 24) hasilnya adalah 1. Angka 1 itu maksudnya adalah satu hari.
  5. Seluruh tanggal berada di depan koma dan seluruh jam berada di belakang koma [tanggal, jam] dan sekarang (pada saat saya menulis artikel ini) adalah tanggal/jam: 41460,9088310185
  6. Jika tidak ada tulisan 'ditampilkan dengan format tertentu' pada poin kesatu, apabila orang bertanya: "Jam berapa sekarang?" jawabannya, sekarang jam: 0,904872685185185.
  7. Dan sebagainya, dan sebagainya, dan lain sebagainya.

Dari statement di atas maka, berapa selisih waktu antara: "10:11:01" s/d "11:23:01", jawabannya adalah:

CDate ("11:23:01") - CDate ("10:11:01") hasilnya adalah: 0,049537037037037. Duh, yang benar saja Mang, jadi pusing membacanya. Ingat pada point yang kesatu 'ditampilkan dengan format tertentu' sehingga: CDate (0,049537037037037) hasilnya adalah selisih waktu yang sebenarnya. Atau:

MsgBox  CDate (CDate ("11:23:01") - CDate ("10:11:01")) 'hasilnya adalah selisih waktu yang sebenarnya atau 1:12:00.

Kesimpulannya: Untuk menghitung selisih waktu, kita bisa menggunakan fungsi: CDate (CDate (Time) - CDate (Time)), sehingga tidak harus mengkonversi jam ke detik, menit ke detik dengan bantuan fungsi Abs atau Mod kemudian dari detik dikonversi lagi ke jam, menit, dan detik. Walaupun hasinya sama, tetapi CDate (CDate (Time) - CDate (Time)) jauh lebih simple, bukankah demikian? Nah, bagaimana jika selisih waktunya ditambah hari? Contohnya: berapa selisih waktu antara 18/02/2013 s/d 25/03/2013 hmm... ingat pada point ke satu: 'seperti bilangan lainnya hanya saja ditampilkan dengan format tertentu.'

Keywords: cara, menghitung, jam, selisih, waktu, vb6, date, perbedaan, mencari, angka, time, menit, detik, bilangan

READ MORE - VB6 Date Time: Cara Mudah Menghitung Selisih Waktu

Thursday, July 4, 2013

VB6 Internet - Membuat FTP Uploader

Seringkali kita membutuhkan aplikasi untuk mengupload file melalui ftp, nah, untuk keperluan ini kita bisa memperolehnya banyak, mulai dari gratis hingga berbayar dari yang kurang lengkap hingga yang memiliki fitur lengkap. Aplikasi tersebut memang dikhususkan untuk keperluan yang serius. Tetapi setelah mencoba beberapa darinya, rasanya tidak sebanding dengan fiturnya yang hebat dan loadingya yang berat jika hanya digunakan untuk mengupload file-file lampiran (file-file source code VB) yang ukurannya hnaya 3kb, 5kb atau belasan kb. Lalu bagaimana solusinya?

Di bawah ini merupakan source code FTP yang dibuat menggunakan VB6 beserta file Installernya (setup.exe) yang bisa digunakan untuk membantu pekerjaan blogging.
VB6 FTP uploader
Gambar - VB6 FTP uploader

Cara menggunakan:
  1. Terlebih dahulu kita harus memiliki hosting, baik berbayar maupun gratisan. Untuk yang gratisan bisa daftar di sini. Detail mengenai pendaftaran bisa dilihat disini
  2. Download source code ftp disini atau file setup.exe disini
  3. Selanjutnya dalam aplikasi tersebut, kita harus mengisi:
        • Host = alamat ftp
        • Username = username Anda
        • Password = password
        • Remote Dir. = remote directory public
        • Situs = domain yang sudah Anda buat
  4. Jika seluruhnya dirasa sudah benar, pilihlah salah satu file .zip yang ukurannya sekitar belasan kb.
  5. Pada Explorer context menu, klik Upload File with Khoiriyyah-FTP seperti yang terlihat pada gambar di bawah ini:
  6. FTP context menu
    Gambar - FTP Context Menu

  7. Tunggu beberapa saat hingga selesai proses upload.
  8. Setelah selesai, kita memperoleh link untuk dicopy-pastekan ke dalam artikel seperti terlihat pada gambar di bawah ini:
VB6 FTP uploader finish
Gambar - Proses upload selesai

Download: Source Code VB6 FTP uploader.
Download: Setup VB6 FTP uploader
.
READ MORE - VB6 Internet - Membuat FTP Uploader

Wednesday, July 3, 2013

DeRef Dalam VB6

Dengan memanfaatkan salah satu fungsi (GetMem4) yang berada dalam runtime VB6 (msvbvm60.dll).
Option Explicit 

Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Sub GetDWord Lib "MSVBVM60.dll" Alias "GetMem4" (ByRef inSrc As Any, ByRef inDst As Long)

Public Function DeRef(ByVal ptr As Long) As Long
If (ptr) Then
Call GetDWord(ByVal ptr, DeRef)
End If
End Function

Private Sub Command1_Click()

Dim lngTest As Long
Dim lngAddress As Long

lngTest = 100
lngAddress = VarPtr(lngTest) 'lngAddress sekarang berisi pointer lngTest
Text1.Text = DeRef(lngAddress) 'Perhatikan sekarang Text1.Text = 100 (yang berasal dari pointer lngTest)

End Sub
READ MORE - DeRef Dalam VB6

Monday, July 1, 2013

VB6 Add-Ins - Mengambil String Terpilih (Code Module)

Mengenai cara mengambil string terpilih (selected) dari code module. Adapun kodenya adalah seperti di bawah ini:

Public Function GetSelections() As String 

Dim cd As CodePane
Dim cm As CodeModule

Set cd = VBInstance.ActiveCodePane
Set cm = VBInstance.ActiveCodePane.CodeModule

Dim StartLine As Long
Dim StartColoum As Long
Dim EndLine As Long
Dim EndColoum As Long

Dim sKeyword As String

cd.GetSelection StartLine, StartColoum, EndLine, EndColoum
sKeyword = cm.Lines(StartLine, EndLine)
GetSelections = Mid$(sKeyword, StartColoum, EndColoum - StartColoum)

End Function
READ MORE - VB6 Add-Ins - Mengambil String Terpilih (Code Module)