Home about IT Motivation Course Sales Project About Me

Sunday, February 28, 2010

ListView untuk serch dan selection di VB6

Kadang ketika membuat selection, kita memerlukan detail data lainnya. Misal ketika itemcode yang akan kita pilih, kita perlu memerlukan kolom lain semisal description, suppliername sebagai data pendukungnya. Berikut contoh penggunaan listview untuk selection dengan beberapa column sebagai detailnya.

Private Sub Form_Load()
Combo1.AddItem "NomorInduk"
Combo1.AddItem "NamaSiswa"
Combo1.AddItem "JenisKelamin"

Call Tabel_barang
Call Data_Barang
End Sub

Private Sub ListView1_DblClick()
On Error Resume Next
If FrmMenu_Utama.MnuPembelian.Enabled = False Then
If Form1.txtnoinduk.BackColor = vbWhite Then
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem.ListSubItems(1).Text
Else
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem.ListSubItems(1).Text
End If
Else
Form1.txtnoinduk.Text = ListView1.SelectedItem
Form1.txtnmsiswa.Text = ListView1.SelectedItem
End If
Unload Me
End Sub
Private Sub ListView1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Sub Tabel_barang()
With ListView1
.View = lvwReport
.FullRowSelect = True
.HotTracking = True
With .ColumnHeaders
.Add , , "NomorInduk", 1500
.Add , , "NamaSiswa", 1500
.Add , , "JenisKelamin", 2500

End With
End With
End Sub

Sub Data_Barang()

Call Koneksi_Database

sql = "select nomorinduk, namasiswa,jeniskelamin from siswa"
rs.Open sql, db
If rs.EOF = False Then
ListView1.ListItems.Clear
rs.MoveFirst
Do While Not rs.EOF
Set List = ListView1.ListItems.Add(, , rs.Fields("NomorInduk"))
List.SubItems(1) = rs.Fields("NamaSiswa")
List.SubItems(2) = rs.Fields("JenisKelamin")
rs.MoveNext
Loop
End If
End Sub

beda report footer dengan page footer di Crystal Report

pasti beda tentunya
report footer biasanya untuk:
- menampilakan hasil total dari kolom diatasnya
- menampilkan fungsi terbilangnya
- lokasi tampil akan menyesuaikan dengan jumlah row data [detail] diatasnya. Bila row detail data banyak akan makin kebawah dan bila sedikit akan makin keatas.

Page Footer:
- untuk print halaman
- print catatan kaki
- selalu pada bagian bawah kertas, tidak mengikuti banyak sedikitnya row data diatasnya

Agar "Report Footer" di Crystal Report aktif maka lakukan step berikut:
- right klik "report footer" di bagaian kiri (design)
- pilih "Format Section"
- un check "Suppress [No Drill-Down]
- ok

conection ADODC dengan script

membuat conection database dengan adodb sepertinya lebih mudah dengan script keuntungannya:
- kalo applikasinya makin rumit, tak perlu setting ADODC properties one by one.
- mudah dirubah, misal ketika di copykan ke server orang lain dengan nama server dan password berbeda.

berikut contoh scriptnya bila dijadikan modul

Public Function Koneksi_Database() As Boolean
On Error GoTo Pesan
If db.State = adStateOpen Then
db.Close
End If


db.Open "Provider=SQLOLEDB.1;" & _
"Persist Security Info=False;" & _
"User ID=sa;" & _
"Password=password;" & _
"Initial Catalog=DBName;" & _
"Data Source=ServerName"
db.CursorLocation = adUseClient
Koneksi_Database = True

Exit Function
Pesan:
Koneksi_Database = False
MsgBox "Koneksi ke server tidak berhasil !!!", 16, "ERROR"
End
End Function

Membuat error handling di VB

Untuk membuat error handling di VB6. Misal tabel transaksi dengan kolom amount. harus diisi bilangan , tak boleh huruf. Agar tidak error programnya saat ada yang menginput huruf. Beri script berikut:

-On Error Go To .... di awal sub program
-dan Exit Sub
-lalu Pesan: di akhir sub program.

contoh penggunaan di button "ADD" data row

Private Sub BtnEnh6_Click()
On Error GoTo Pesan

SqlMasuk = ""
SqlMasuk = "INSERT INTO transaksi" _
& " (Tanggal,NomorInduk,NamaSiswa,JumlahRupiah)" _
& " VALUES ('" & dttanggal.Value & "','" & txtnoinduk.Text & "',
& txtjumlahrupiah.Text & "')"
db.Execute SqlMasuk, , adCmdText

Call Form_Load
Adodc3.Refresh

Exit Sub

Pesan:
MsgBox "Input harus angka ...!", 16, "ERROR"

End Sub

Fungsi Terbilang / Spell Number in bahasa di crystal report

Pada Crystal report terdapat fungsi string "ToWords" yaitu untuk spell number atau number to word. Gunanya untuk merubah angka bilangan menjadi huruf, tapi dalam english.
contoh:
UpperCase (ToWords ({@jumlah},0) + " ONLY " )
dimana @jumlah adalah: Sum ({Transaksi.Amount})
maka script diatas akan merubah hasil SUM dari tabel Transaksi , kolom Amount.
menjadi huruf dalam english, dengan suffic ONLY

Bila ingin membuat fungsi terbilang dalam bahasa Indonesia (number to text) untuk di Crystal report pakai dua file berikut:
- CruflFor.dll
- CruflBil.dll
sebelumnya register dulu dua file diatas ke c:\windows\crystal
dan cari pada bagian additional fuction di crystalreport
contoh penggunaannya, misal untuk terbilang rupiah pada lembar kwitansi

@jumlah=Sum ({Transaksi.Amount})
@format=ForTerformatFormNilai ({@jumlah})
@terbilang = AngTerbilangDekbilang ({@format}) + ' Rupiah.'

Oh ya: kolom Amount harus bertype data angka seperti: money, integer,decimal
agar bisa di SUM.

untuk dua file diatas: CruflFor.dll dan CruflBil.dll, silaken email ke ane.

Saturday, February 13, 2010

Struktur kontrol seleksi

Struktur kontrol seleksi - juga disebut striktur JIKA-MAKA-JIKA TIDAK- mempresentasikan pilihan. Struktur ini menerapkan dua jalur yang diikuti ketika program harus membuat suat keputusan. Contoh struktur seleksi adalah :

JIKA jam kerja seorang pegawai dalam satu minggu adalah lebih dari 40
MAKA jam lembur sama dengan jumlah jam yang menjadi selisihnya
JIKA TIDAK pegawai tidak mempunyai jam lembur

Variasi sruktur kontrol seleksi yang biasa adalah struktur kontrol kasus.Struktur ini menawarkan labih dari satu keputusan ya atau tidak. Struktur kasus ini memberikan alternatif, atau kasus yang bisa ditampilkan. (JIKA kasus 1 terjadi, MAKA lakukan ….. JIKA kasus 2 terjadi, MAKA ikuti alternatif …… .” Dan seterusnya.) Struktur kontrol jika membuat programer tidak harus mengiindikasikan begitu banyak kondisi JIKA-MAKA-JIKA TIDAK secara terpisah.


Konsep Dasar
Bentuk umum statemen if .. else
Bentuk 1 : Paling sederhana tanpa Else
if (kondisi) aksi;
Bentuk 2 : IF .. Else .. dengan satu kondisi
If (kondisi)
aksi_1;
else
aksi_2;
Bentuk 3 : IF .. Else .. dengan kondisi bertingkat
If (kondisi_1)
aksi_1;
else if (kondisi_2)
aksi_2;
else
aksi_3;
Catatan:
Aksi akan dijalankan hanya apabila kondisi terpenuhi (nilai kondisi true), dan jika
tidak terpenuhi (nilai kondisi false), maka aksi akan diabaikan dan aksi berikutnya
yang akan dijalankan.
Apabila terdapat lebih dari satu baris statement dalam satu aksi, maka harus diawali
dengan ‘{‘ dan diakhiri dengan ‘}’.


Contoh :
If (kondisi)
{
statemen_1;
statemen_2;
statemen_n;
}


Contoh Program : IF - ELSE

#include
#include
int main ()
{
int nilai=0;
cout << "Silahkan masukkan nilai anda : ";
cin >> nilai;
//deklarasi kondisi bercabang
if (nilai>50)
{
cout << "\nNilai anda adalah " << nilai <<"\n";
cout << "Anda lulus! ";
}
else
cout << "\nAnda tidak lulus!";
getch();
return 0;
}



Contoh Program : IF - ELSE Bertingkat

#include
#include
int main ()
{
char ket_hasil;
cout <<"Apa nilai ujian kalkulus mu [A|B|C]: ";
cin >> ket_hasil;
//deklarasi kondisi bercabang
if (ket_hasil=='A' || ket_hasil=='a')
cout << "Selamat ya, pertahankan belajarmu!";
else if (ket_hasil=='B' || ket_hasil=='b')
cout << "Selamat ya, tingkatkan belajarmu!";
else if (ket_hasil=='C' || ket_hasil=='c')
cout << "Anda harus lebih giat lagi belajarnya!";
else
cout << "Maaf, Anda salah memasukkan nilai !";
getch();
return 0;
}

Struktur kontrol sekuensi

Dalam strukur kontrol sekuensi, satu pernyataan program mengikuti yang lain dengan urutan yang logis. Misalnay seperti contoh yang ditunjukan pada gambar, ada dua kotak ( “Statement” dan “Statement”). Satu kotak bisa berbunyi “Buka File”, dan yang lain “Baca Sebuah Record”. Tidak ada keputusan yang dilakukan , tidak ada pilihan antara “ya” atau “tidak”. Kotak tersebut secara logis saling mengikuti dalam urutan sekuensial.

contoh program :

// defined constants: calculate circle
#include
using namespace std;
//deklarasi konstanta
#define PI 3.14159
#define NEWLINE '\n'
int main ()
{
//deklarasi variabel lokal
double r=5.0; //nilai radius
double circle;
//Proses
circle = 2 * PI * r;
cout << circle;
cout << NEWLINE;
//akhir program
getch();
return 0;
}

Saturday, February 06, 2010

Compiler C++ dengan Borland C++ ver. 5.5 DOS

berikut cara compile file C++ yang bernama namafile.cpp menjadi namafile.exe









Friday, February 05, 2010

beda VARCHAR dan CHAR di SQL Server

Tipe data char adalah tipe data karakter yang panjangnya tetap (fixed-length). Ini artinya SQL Server akan mengalokasikan memori pada media penyimpanan untuk menyimpan tipe data ini sebesar ukuran maksimum yang kita minta. Contohnya deklarasi char(5) artinya SQL Server akan otomatis melakukan alokasi ukuran sebesar lima character pada media penyimpanan walaupun kita hanya mengisi data sebanyak tiga karakter misalnya.Tipe data varchar adalah tipe data karakter yang panjangnya tidak tetap (variable-length). Ini berarti SQL Server akan mengalokasikan memori pada media penyimpanan hanya sebesar atau sepanjang ukuran data aktual yang diisikan. Contohnya pada saat kita mendeklarasikan varchar(5) dan pada field tersebut kita isi 3 karakter maka pada media penyimpanan hanya akan dialokasikan sebesar 3 karakter saja.

Dari sini kita bisa menentukan kapan harus menggunakan tipe data char atau varchar. Tipe data char digunakan pada field atau data yang sifat panjangnya tetap, misalnya seperti kode barang, kode item, kode customer dan lain lain yang panjangnya tetap. Sebaliknya Anda bisa menggunakan varchar untuk data atau field yang sifat panjangnya tidak tetap misalnya nama, alamat, kota, deskripsi dan lain sebagainya. Jadi pilihlah tipe data yang tepat pada saat Anda membuat field-field pada database Anda.