Selisih tanggal pada INFOPATH 2010

Biasanya kita membutuhkan data yang diambil dari selisih tanggal. Namun bagaimana caranya menghitung selisih tanggal yang menggunakan dua control dateTimePicker pada microsoft infopath 2010?

Caranya adalah:

1. Buat form seperti berikut


Masukkan kontrol Date time Picker, dan textbox dengan ketentuan sebagai berikut:
KomponenNameData Type
Date Time PickerstartDateDate
Date Time PickerendDateDate
Text BoxdifferenceSingle Line Of text

2. Tambahkan Rule pada field startDate:
Action: Set a field's value
Field: difference
Value:
(number(substring(../my:endDate, 9, 2)) + floor((153 * (number(substring(../my:endDate, 6, 2)) + 12 * (floor((14 - number(substring(../my:endDate, 6, 2))) div 12)) - 3) + 2) div 5) + (number(substring(../my:endDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:endDate, 6, 2))) div 12))) * 365 + floor((number(substring(../my:endDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:endDate, 6, 2))) div 12))) div 4) - floor((number(substring(../my:endDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:endDate, 6, 2))) div 12))) div 100) + floor((number(substring(../my:endDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:endDate, 6, 2))) div 12))) div 400) - 32045) - (number(substring(., 9, 2)) + floor((153 * (number(substring(., 6, 2)) + 12 * (floor((14 - number(substring(., 6, 2))) div 12)) - 3) + 2) div 5) + (number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) * 365 + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) div 4) - floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) div 100) + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) div 400) - 32045)
Kemudian masukkan Condition berikut ini pada Rule:
startDate is not blank and endDate is not blank


3. Tambahkan Rule pada field startDate:
Action: Set a field's value
Field: difference
Value: 0
Masukkan Conditions pada Rule:
startDate is blank
or endDate is blank


4. Tambahkan Rule berikut ini pada field endDate:
Action: Set a field's value
Field: difference
Value:
(number(substring(., 9, 2)) + floor((153 * (number(substring(., 6, 2)) + 12 * (floor((14 - number(substring(., 6, 2))) div 12)) - 3) + 2) div 5) + (number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) * 365 + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) div 4) - floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) div 100) + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) div 12))) div 400) - 32045) - (number(substring(../my:startDate, 9, 2)) + floor((153 * (number(substring(../my:startDate, 6, 2)) + 12 * (floor((14 - number(substring(../my:startDate, 6, 2))) div 12)) - 3) + 2) div 5) + (number(substring(../my:startDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:startDate, 6, 2))) div 12))) * 365 + floor((number(substring(../my:startDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:startDate, 6, 2))) div 12))) div 4) - floor((number(substring(../my:startDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:startDate, 6, 2))) div 12))) div 100) + floor((number(substring(../my:startDate, 1, 4)) + 4800 - (floor((14 - number(substring(../my:startDate, 6, 2))) div 12))) div 400) - 32045)
Kemudian masukkan Conditions seperti ini pada Rule:
startDate is not blank and endDate is not blank

5. Tambahkan Rule kedua pada field endDate dengan setting sebagai berikut:
Action: Set a field's value
Field: difference
Value: 0
Masukkan Conditions berikut ini pada Rule:
startDate is blank or endDate is blank
Sehingga hasilnya sebagai berikut:


6. Masukkan Rule berikut ini pada field difference:
Action: Set a field's value
Field: .
Value: 0
Kemudian tambahkan Condition pada Rule dengan setting sebagai berikut:
difference does not match pattern Custom Pattern: -{0,1}d+




Setelah melakukan langkah-langkah diatas, maka selanjutnya adalah menjalankan (preview / publish ke sharepoint). Dan sekarang kita telah mempunyai form yang bisa menghitung perbedaan 2 tanggal secara otomatis. Cara ini juga bisa digunakan di infopath 2007 maupun 2003.

[Linux] Cannot Mount Volume NTFS On Ubuntu

Saat menggunakan USB maupun menggunakan sistem operasi windows yang file system-nya adalah NTFS, masalah ini pasti sering terjadi. Yaitu ketika sebagian pengguna mencabut drive hardisk eksternal secara langsung dari Windows tanpa melakukan pilihan "safe removable disk".

Ketika anda secara langsung melepas hardisk dari Windows, maka NTFS log tidak akan menandai nya sebagai unused. Yang terjadi adalah ketika hardisk eksternal tersebut di koneksikan dengan menggunakan Linux, pesan error di atas yang akan tertampil pada layar.


Salah satu cara adalah melakukan force mount secara manual, pilihan yang lain adalah dengan menggunakan tool yang disebut ntfsfix dimana anda dapat gunakan untuk melakukan pengesetan pada file log NTFS sebagai unused. Untuk mengatasi hal tersebut, berikut tips dan triknya :
    1. Install paket aplikasi ntfsprogs melalui synaptic package manager, atau install via konsole ;
$ sudo apt-get install ntfsprogs
    1. Tentukan partisi NTFS yang akan dibersihkan log-nya agar bisa mounting dengan mengetik perintah dibawah ini pada konsole ;
zein@tarantula:/etc$ sudo fdisk -l
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x2a982a98
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       13526   108647563+   7  HPFS/NTFS
/dev/sdb2           13527       14593     8570677+   7  HPFS/NTFS
    1. Kemudian untuk mengetahui partisi mana NTFS-nya, pada konsole ketik perintah berikut : (contoh pada partisi /dev/sdb1)
zein@tarantula:/etc$ sudo ntfsfix /dev/sdb1
Mounting volume... FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.
  1. Setelah log NTFS bersihkan, lakukan mounting ulang dengan men-double klik pada drive NTFS;

[Linux] Preset Winamp For Audacious On Ubuntu

Bermula saat pulang ke rumah merayakan hari raya kurban, dan saat itu lah baru nyadar klo cd ubuntu yg ku pesen sudah datang sejak sebulan yang lalu. Melihat cover CD nya berwarna merah putih itu kayaknya keren sekali. Emang sih itu Ubuntu 8.04 LTS Hardy Heron (Hardy+1). Sedangkan sejak 30 oktober 2008 lalu, ubuntu baru merilis Ubuntu 8.10 (Intrepid Ibex).

Tapi kayaknya udah nggak nahan untuk meng-install. Karena Sang Linux Debian yang tertanam di nutbuk ku sudah rusak tak terdeteksi lagi sehingga sekalian aja di format harddisk nya :)
Installasi dilakukan gak sampai 45menit (beruntung sekali sudah kubeli RAM 512Mb merk kingston ini di hiTech Mall hehehe). Kemudian meng-edit sources.list diarahkan ke TELKOM yang di FOSS-ID (http://dl2.foss-id.web.id) karena koneksi inetnya pake speedy :P

Setelah melakukan apt-get update, maka yg pertama kali dilakukan adalah mount harddisk NTFS. Caranya:
1. Buat folder baru, biasanya diletakkan di /media
zein@tarantula:~$ sudo mkdir /media/driveC
zein@tarantula:~$ sudo mkdir /media/driveD /media/driveG


2. Edit dan masukkan mount ke /etc/fstab
zein@tarantula:~$ sudo pico /etc/fstab

3. Pada baris bawah sendiri, ditambahi:
/dev/sda1 /media/driveC ntfs defaults,umask=007,gid=46 0 1
/dev/sda5 /media/driveD ntfs defaults,umask=007,gid=46 0 1
/dev/sda6 /media/driveG ntfs defaults,umask=007,gid=46 0 1


4. Lakukan Mount
zein@tarantula:~$ sudo mount -a

Setelah itu aku meng-install gstreamer dan XMMS. Byasalah, penyuka musik :D Ups, ternyata xmms udah gak ada dan diganti dengan Audacious. Setelah install audacious dilanjutkan dengan menambah preset winamp ke dalam Audacious. Caranya :
1. Install Audacious
zein@tarantula:~$ sudo apt-get install audacious

2. Unduh preset
zein@tarantula:~$ wget http://www.xmms.org/misc/winamp_presets.gz

3. Extract
zein@tarantula:~$ sudo gunzip -c winamp_presets.gz > ~/.config/audacious

4. Jalankan Audacious dan pilih preset

screenshot

Audacious yang terinstall dengan preset winamp

Menyenangkan sekali, akhirnya bisa ber-linux ria lag ^.^

Koneksi VB 6 ke MySQL

Untuk melakukan koneksi dari Visual Basic 6 ke mySQL database, yang dibutuhkan adalah "mysql connector odbc" Ada beberapa cara yang bisa dilakukan:
1. CARA I (CARA BIASA)
Masukkan source code berikut ini kedalam form.

Dim koneksi As New ADODB.Connection
Dim rs As New ADODB.Recordset
koneksi.CursorLocation = adUseClient
koneksi.Open "DRIVER={MySQL ODBC 3.51 driver};SERVER=localhost;PORT=3306;DATABASE=isidbase; USER=isiuser;PASSWORD=isipassword;OPTION=3;"


2. CARA II (MENGGUNAKAN MODUL)


Untuk menjadikan script koneksi menjadi sebuah modul maka, buat modul baru. Simpan dengan nama koneksi.
Kemudian pada module letakkan script berikut ini:

'ini diletakkan di module
Option Explicit
Dim koneksi As ADODB.Connection
Dim rs As ADODB.Recordset
Dim username As String
Dim passwd As String
Dim serverIP As String
Dim db As String
Public Function connectMysql(username As String, passwd As String, serverIP As String, db As String, koneksi As ADODB.Connection, rs As ADODB.Recordset)
Set koneksi = New ADODB.Connection
Set rs = New ADODB.Recordset
koneksi.CursorLocation = adUseClient
koneksi.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd & ";DATABASE=" & db & ";" _
& "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
koneksi.Open
End Function


Dan pada form, letakkan script berikut ini:

Private Sub Form_Load()
'ini dimasukkan di form
'Call connectMysql("_diisiUSR_", "_diisiPASSW_", "_diisiHOST_", "_diisiDB_", koneksi, rs)
Call connectMysql("root", "", "127.0.0.1", "dbzein", koneksi, rs)
End Sub


3. CARA III (ALTERNATIF LAIN MENGGUNAKAN MODUL)
Buat modul baru, kemudian isikan source berikut ini:

Public strserver As String
Public dbpass As String
Public strUserServ As String
Public DataSource As String
Public dbName As String
Public conDB As New ADODB.Connection
Public Sub bukaDB()
Dim DB, myDSN
strserver = "localhost"
dbpass = "rahasia"
strUserServ = "root"
dbName = "dbzein"
DataSource = App.Path & "Data" & DB
myDSN = "PROVIDER=MSDataShape;" & "Driver=MySQL ODBC 3.51 Driver;" & "Server=" & strserver & ";" & "Port=3306;" & "Option=147458;" & "Stmt=;" & "Database=" & dbName & ";" & "User=" & strUserServ & ";" & "Password=" & dbpass
conDB.Open myDSN
End Sub


Pada Form diisikan source code berikut ini, yang digunakan untuk membuka database:

Private Sub Form_Load()
bukaDB
End Sub

Caesar Cipher

Caesar Cipher merupakan salah satu bentuk kriptografi. Dan merupakan salah satu model dari bentuk Kriptografi Simetris atau konvensional. Yang dimaksud dengan Symetric Cryptography atau Kriptografi Simetris yaitu kunci yang digunakan untuk melakukan enkripsi dan dekripsi adalah sama.

* Plaintext adalah pesan yang dikirim dan mudah untuk dimengerti.
* Ciphertext adalah plaintext yang sudah diubah dengan metode tertentu sehingga perlu usaha khusus untuk dapat mengerti isinya.
* Agar data yang telah di enkripsi tersebut dapat dibaca kembali maka perlu di dekripsi dengan menggunakan kunci bersama yang sama dengan saat dilakukan enkripsi. Jadi kunci bersama (public key) merupakan aturan yang berlaku saat dilakukan enkripsi dan dekripsi.

Baberapa contoh enkripsi konvensional klasik:
1. CAESAR CIPHER
Merupakan metode enkripsi yang dilakukan pada zaman Julius Caesar. Hanya dipergunakan pada Alfabet baik huruf kapital maupun huruf kecil. Sehingga ketika proses yang dilakukan pada angka maka hal tersebut tidak dapat dilakukan. Cara enkripsi dari metode ini yaitu dengan memutar sejauh tiga langkah. Bentuk dari enkripsi ini adalah sbb:

a b c d e f g h i j k l m n o p q r s t u v w x y z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

2. ROT-13
Yaitu suatu metode enkripsi dengan cara memnukarkan huruf sejauh 13 huruf. Bentuk dari metode enkripsi ini adalah sbb:

a b c d e f g h i j k l m
n o p q r s t u v w x y z

Contoh Caesar Cipher:
Misalnya menggunakan caesar cipher dengan pergeseran 3 huruf:
Plaintext: KOPLER akan dienkripsi menjadi Ciphertext : NRSOHU

Contoh menggunakan ROT 13:
Plaintext : KOPLER akan dienkripsi menjadi Ciphertext : XBCYRE
Pada dasarnya ROT-13 adalah Caesar Cipher dengan pergeseran sejauh 13 huruf, jadi ingat masa lalu waktu ikut kegiatan pramuka di sekolah, ada sandi yang seperti ini. Dalam ilmu ke-PRAMUKA-an enkripsi ini sering disebut dengan "Sandi AN" karena huruf AN dijejerkan di bawahnya untuk memecahkannya.

Dengan menggunakan Pemrograman, tentulah sangat mudah untuk memecahkan maupun membentuk ciphertext dengan pola enkripsi seperti ini. Tidak masalah mau menggunakan pergeseran huruf sejauh berapapun.
--
Program aplikasi .exe dapat di download di [CaesarChiper.exe]
--



Algoritma Pemrogramannya:
1. Hitung panjang karakter/huruf.
2. Tiap-tiap huruf diubah menjadi kode ASCII menggunakan proses looping.
3. Untuk melakukan pergeseran/proses enkripsi maka kode ASCII tersebut digeser
dengan cara ditambah sebanyak pergeseran. Misalnya pergeseran 3huruf maka kode ASCII ditambah dengan 3.
4. Jika ditemui spasi (ASCII=32), maka tidak usah dilakukan penambahan.
5. Hasil pergeseran/penambahan bilangan ASCII dikembalikan lagi menjadi karakter.

[Linux] Upgrade Debian Kernel

Debian memiliki cara tersendiri dalam melakukan kompilasi dan installasi kernel baru. Termasuk yang berkaitan dengan dependency. Berikut ini adalah cara konfigurasi, kompilasi dan installasi kernel linux. Dan yang akan dibahas adalah yang sering dilakukan di distro system operasi linux lainnya serta cara khusus yang sedikit berbeda dilakukan di Debian, saya menyebutnya "cara debian banget" :P

Yang dibutuhkan adalah :
1. Source kernel (bisa di dapat di http://www.kernel.org/ atau menggunakan apt-get : apt-get install linux-source-2.6.18)
2. gcc / g++
3. libncurses5
4. libncurses5-dev
5. libncursesw5
6. kernel-package =>special tools
c1c4x-lab:~# apt-get install g++ libncurses5 libncurses5-dev libncursesw5 kernel-package

1. Extract source kernel ke folder /usrc/src
c1c4x-lab:/usr/src# tar zxvf linux-2.6.18.tar.bz2

2. Kita lakukan konfigurasi kernel, ada banyak cara yang bisa dilakukan diantaranya : config (mode konsole), oldconfig (konfigurasi disamakan dengan konfigurasi kernel lama), menuconfig (mode menu), xconfig (mode gui). Yang sering digunakan adalah menuconfig.
c1c4x-lab:/usr/src/linux-2.6.18# make menuconfig

Dalam melakukan menuconfig dibutuhkan package libncurses5, karena jika tidak terinstall maka akan muncul error seperti berikut ini :
c1c4x-lab:/usr/src/linux-2.6.18# make menuconfig
HOSTCC scripts/kconfig/lxdialog/checklist.o
In file included from scripts/kconfig/lxdialog/checklist.c:24:
scripts/kconfig/lxdialog/dialog.h:31:20: curses.h: No such file or directory
In file included from scripts/kconfig/lxdialog/checklist.c:24:
scripts/kconfig/lxdialog/dialog.h:128: error: syntax error before "use_colors"
Dan jika berhasil akan muncul menu seperti berikut ini, di dalam menuconfig jika kita ingin configurasi kernel baru sama dengan kernel lama maka kita bisa memanggil config file kernel lama , dengan memilih menu Load an Alternate Configuration File. Config kernel lama terletak di direktori /boot/config-versi-kernel

null

Jika ingin menggunakan oldconfig, maka harus melakukan copy config dulu.
c1c4x-lab:/usr/src/linux-2.6.18# cp /boot/config-2.6.8-2-386 .config
c1c4x-lab:/usr/src/linux-2.6.18# make oldconfig

3. Setalah selesai melakukan configurasi dan menyimpannya, berikutnya adalah melakukan compile de el el. Di debian ada 2 cara:

a. Cara pada linux umumnya:
*Compile dan install
c1c4x-lab:/usr/src/linux-2.6.18# make
c1c4x-lab:/usr/src/linux-2.6.18# make modules
c1c4x-lab:/usr/src/linux-2.6.18# make modules_install
c1c4x-lab:/usr/src/linux-2.6.18# make install

*Buat file initrd-img:
c1c4x-lab:/usr/src/linux-2.6.18# mkinitrd -o /boot/initrd.img-2.6.18 2.6.18
( Lebih lanjut tentang initrd : debian-initrd )
*Seperti biasa edit /boot/grub/menu.lst
title Debian kernel baru
root (hd0,2)
kernel /boot/vmlinuz-2.6.18 root=/dev/hda3 ro
initrd /boot/initrd.img-2.6.18


b. Cara debian banget:
*Debian memiliki cara khusus dalam melakukan compile kernel, dan dibutukan paket kernel-package
c1c4x-lab:~# apt-get install kernel-package
*Yang dilakukan untuk melakukan compile setelah dilakukan configurasi adalah:
c1c4x-lab:/usr/src/linux-2.6.18# make-kpkg clean
c1c4x-lab:/usr/src/linux-2.6.18# make-kpkg kernel_image

*Setelah itu akan muncul file .deb yang berada di direktori /usr/src, kemudian tinggal dilakukan installasi:
c1c4x-lab:/usr/src# dpkg -i kernel-image-2.6.18.deb
c1c4x-lab:/usr/src/linux-2.6.18# mkinitrd -o /boot/initrd.img-2.6.18 2.6.18

*Cek /boot/grub/menu.lst seperti diatas.

4. Reboot
5. Cek kernel dengan uname -a

id.zone-h status [2]

Alhamdulillah,,,
Sejak tanggal 04072007 domain resmi id.zone-h aktif juga, dan seperti pemberitaan sebelumnya di posting id.zone-h status[1],id.zone-h menggunakan domain http://id.zone-h.org. Anda-anda yang tertarik bisa juga bekerjasama dengan kami, beritanya bisa dibaca di Headline yang berjudul: Mirror Indonesia telah online. Mohon dukungannya, terima kasih :D

id_zone-h


Last update 01/09/2008: http://id.zone-h.org/ udah ditutup :(