Jumat, 25 September 2009

VB WITH MS ACCESS OR MS ACCESS WITH VB ?

Membuat Koneksi Database Access menggunakan Visual Basic 6.0Untuk menjadi Programmer kita harus menguasai beberapa coding dasar dari sebuah koneksi yang sederhana. Dalam kesempatan ini saya akan membahas coding koneksi menggunakan Access yang merupakan program aplikasi database dasar yang sering digunakan di lingkungan perkantoran.
Database latihan :
Tabel barang
Kode barang
Nama barang
Harga beli
Harga jual
stok
satuan

Sebenarnya dalam pembuatan table diatas tidak terlalu diperlukan dalam pembahasan ini tetapi hanya untuk informasi belaka. Untuk memberi penjelasan kepada pembaca.Yang harus diperhatikan dalam materi ini adalah pemahaman dari coding koneksi itu sendiri.Yang pertama dilakukan adalah membuat module dahulu untuk pemanggilan koneksi dari database.Setelah membuat koneksi masukan coding sebagai berikut :
Public cn As New ADODB.Connection
Public Sub BukaDB()
Dim koneksi As String
koneksi = “provider=microsoft.jet.oledb.4.0; Data source= ” & App.Path & “\latihan.mdb;”
cn.Open koneksi
End Sub
Perhatikan kode diatas, jangan sampai asal menulis saja tetapi anda harus bisa memahaminya dengan benar, yang pertama yaitu
Public cn As New ADODB.Connection
Berfungsi untuk membuat variable bersifat public menggunakan ADODB
Dim koneksi As String
Berfungsi untuk membuat variable bersifat private bertipe string
koneksi = “provider=microsoft.jet.oledb.4.0; Data source= ” & App.Path & “\latihan.mdb;”
Merupakan kode utama dari koneksi yang dibutuhkan. Yang pertama menggunakan provider Microsoft jet oledb 4.0 yang memanggil data source/sumber data dari database latihan.mdb
cn.Open koneksi
Visual Basic ? programmer mana sih yang nggak kenal sama tool yang satu ini?
nggak usah saya sebutin apa itu Visual Basic.
Lalu Ms Access, sebuah aplikasi yang menangani database, aplikasi ini biasanya sudah satu paket dengan Microsoft Office Aplication.
Keduanya merupakan keluarga besar keturunannya Om Bill Gates. Sebagai satu keluarga maka wajarlah bila satu sama lain dapat dikombinasikan untuk saling melengkapi.
lalu mengapa aku pake judul diatas ?

Sebagai tool programming yang powerful, Visual Basic kaya akan library-library yang mendukung pengelolaan database Ms Access, meski banyak jenis data lain yang didukung (txt, xls, xml, mysql dll)
Banyak sekali aplikasi VB jadi, baik mass product maupun rancangan software house yang menggunakan Ms Access sebagai basis datanya. Dengan demikian kemampuan VB dalam mengelola database Ms Access tidak diragkan lagi.

Lalu Ms Access sendiri, adalah sebuah RDBMS (relational database management system ) yang terintegrasi dalam satu file. didalam Ms access kita sudah dapat mendefinisikan tabel, query, relation, bahkan form dan report.
Kehebatan Ms Access adalah kita dapat menyusun aplikasi secara interaktif dan profesional dengan bantuan Visual Basic for Aplication (VBA).
VBA itu apa to ? mbuh lah, lha wong saya juga nggak terlalu mudeng, tapi kayaknya tuh semacam Visual Basic yang sudah terintegrasi dengan Office Aplication (Ms Excel, Word, MS Access).
Jadi didalam Ms Access kita dapat menyisipkan kode-kode VB (misalnya di dalam form dan report) agar lebih powerfull dalam mengelola database.
Menurut saya sebenarnya ‘kekuatan’ utama Ms Access adalah VBA itu sendiri, disamping integrasi yang sangat bagus dengan aplikasi office saudaranya.

Kesimpulannya, Kita dapat membuat aplikasi pengelolaan database dengan Visual Basic yang berbasis data Ms Access, juga bisa dengan ‘pure’ Ms Access Aplication yang di bumbui dengan VBA.

lalu gimana enaknya mas djmumun ?
Relatif sih. Bagi para suhu - suhu VB mungkin tertawa dengan dengan tulisan ini. Bagaimanapun dengan Visual Basic, anda dapat membuat aplikasi yang lebih kompleks. Fitur Installer yang bagus sehingga kita bisa membuat aplikasi standalone, tanpa tergantung dengan aplikasi lain .

tapi bagi saya bila database Ms-Access (bukan data berbasis yang lain, mis mysql, oracle, dll) yang menjadi point utama, mending langsung pake Ms Access aja.
fitur - fitur nya yang interaktif dan user friendly, -apalagi dengan wizard-wizardnya - sangat membantu saya dalam membuat aplikasi secara ’sedap sekejap’.
Kalo masih kurang puas dengan wizard yang ada (biasa nih.. penyakit) anda dapat mengoprek dengan memberi kode - kode VBA.
Buka aja Visual Basic Editor, silahkan tuliskan kode - kode (kebanyakan saya sih cuman kopi paste . . . ), dan lihatlah aplikasi ms access anda nggak kalah dengan yang buatan Visual Basic.
kendalanya mungkin dalam distribusinya.
komputer pemakai musti terinstall minimal Microsoft Access Runtime atau Microsoft Office profesional

KONEKSI VB DENGAN MS.ACCESS

1. Masuk ke sebuah folder/drive yang Anda inginkan.
2. Klik kanan di area kosong dan pilih New--> Text Document
3. Kemudian abaikan untuk mengubah namanya (langsung enter saja).
4. Setelah itu, jalankan file text document itu tadi (biasanya akan
masuk ke notepad) dan pilih save as dengan nama file terserah anda
tetapi extensionnya gunakan *.udl
c:/ con.udl
5. Jika berhasil, maka di folder/drive itu akan muncul sebuah file baru
dengan extension udl. (File text document nya bisa anda hapus).
6. Jalankan file *.udl itu. Pada bagian tab "Provider" pilih provider
dengan nama : "Microsoft Jet 4.0 OLE DB Provider" (Ini provider untuk
database Ms Access). Lalu klik tombol Next
7. Pada tab "Connection", silahkan cari database access anda dengan
mengklik tombol browse (...) disebelah kanan. Lalu tekan tombol "Test
Connection", jika berhasil maka akan ada pesan bahwa test koneksi
berhasil, jika tidak biasanya database access yang anda pilih sedang
digunakan (coba tutup dulu saja). Selanjutnya klik tombol OK.
8. Kembali menuju file *.udl yang tadi. Sekarang klik kanan file
tersebut dan pilih Open With --> Notepad.
9. Setelah notepad terbuka anda akan melihat ada 3 baris isi dari file
tersebut. Yang akan anda gunakan untuk menghubungkan VB 6 dengan Ms
Access adalah ada pada baris ke-3. Oleh karena itu silahkan copy seluruh
baris ke tiga tersebut. (Dimulai dari tulisan provider sampai akhir baris).
----------------------------------------------------------
--Coding di VB6--

1. Pada source code vb 6 anda, silahkan pilih menu Project -->
References. Lalu cari "Microsoft ActiveX Data Objects 2.x Library".
Maksud dari 'x' disamping adalah versinya. Biasanya ada v 2.1, 2.2, 2.3,
dst. Saran saya pilih versi dibawah satu versi yang tertinggi. Misal yg
tertinggi 2.6 maka biasanya saya memilih yang 2.5 (Soalnya waktu saya
lihat di bagian Location nya (ada dibagian bawah) yang versi tertinggi
memiliki versi file yang lebih rendah. Misalnya v 2.6 filenya
"msado15.tlb" sedangkan yg v 2.5 filenya "msado25.tlb". Saya sendiri
masih bingung dengan hal ini. Jadi sebaiknya anda memilih satu versi
dibawah versi tertinggi.

2. Kemudian untuk lebih mudahnya, anda bisa tambahkan sebuah modul dalam
source code vb 6 anda. Dan tuliskan coding dibawah ini:
~~~~~~~~~~~~~~~~~Batas Awal Coding~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*Public con As New ADODB.Connection
Public rs As ADODB.Recordset
Public src As String*

*Sub BukaKoneksi()
Set con = New ADODB.Connection
con.Open "(baris ke 3 yang anda copy tadi tanpa tanda kurung)"*

' contohnya : con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\My Documents\My Project\Proyek Keni\db_blackcute.mdb;Persist
Security Info=False"
' untuk flexibilitas program anda, sebaiknya anda pindahkan
database anda menjadi satu folder dengan source code vb6 anda. Jika anda
mengikuti saran saya, maka
' coding untuk koneksi sedikit diubah menjadi :

'* con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
app.path & "\db_blackcute.mdb;Persist Security Info=False*
' dengan demikian dimanapun anda jalankan program anda maka anda
tidak perlu mengkonfigurasi secara manual lokasi databasenya.
*End Sub

Sub buka_rs()
Set rs = New ADODB.Recordset
rs.Open src, con, 1, 3

End Sub*
~~~~~~~~~~~~~~~~~~~~Batas Akhir Coding~~~~~~~~~~~~~~~~~~~~~~~~~~~
3. Setelah coding diatas anda masukkan ke dalam modul. Maka sekarang
anda sudah bisa bermain-main dengan database access anda melalui VB 6.
4. Contoh penggunaannya :

* Private Sub Form_Load()*
*BukaKoneksi* 'untuk membuka jalur komunikasi dengan
database anda

*src = "" * from MsBarang"* 'perintah sql untuk
membuka/memanipulasi tabel pada database anda
*buka_rs* 'menjalankan perintah sql diatas.

*end sub*
5. Jadi yang perlu anda perhatikan dalam coding diatas adalah, sub
"BukaKoneksi" pada modul hanya akan kita letakkan pada Form_Load di
masing-masing form. Sedangkan untuk variabel 'src' dan sub "buka_rs"
bisa anda gunakan dimanapun dalam source code vb 6 anda untuk
membuka/memanipulasi tabel2 yang ada di database anda. Ingat !! variabel
'src' selalu bergandengan dengan sub "buka_rs". Karena sub "buka_rs"
membutuhkan isi dari variabel 'src' untuk melakukan tugasnya.

Rabu, 02 September 2009

Coral Draw Welder


Rabu, 05 Agustus 2009

SISTEM INFORMASI MANAJEMEN




3 macam arsitektur
Arsitektur tersentralisasi : implementasinya adalah pemrosesan data yang terpusat. Semua pmrosesan dilakukanoleh komputer yang ditempatkan dalam suatu lokasi untuk melayani semua pemakai dalam organisasi.
Arsitektur terdistribusi : Lokasi komponen di suatu tempat atau tidak.
Arsitektur client/server : Server adalah suatu sistem yang menyediakan data/layanan yang diminta oleh client.Server dapat berupa komputer atau piranti lain misalnya printer. Client mempunyai kemampuan untuk melakukan proses sendiri. Ketika sebuah client meminta suatu data ke server,server akan segera menanggapinya

Minggu, 12 April 2009

Lmy feEl

Sabtu, 11 April 2009

MY LOVE

IF YOU LOVE SOMEONE

The Original......

If you love someone,
Set her free...
If she comes back, she's yours,
If she doesn't, she's never was....

The New Versions.....

Pessimist:
If you love someone,
Set her free ...
If she ever comes back, she's yours,
If she doesn't, as expected, she's never was ...

Optimist:
If you love someone,
Set him free ...
Don't worry, he will come back.

Suspicious:
(1) If you love someone,
Set him free ...
If he ever comes back, ask him why.

(2) If you love someone,
Set her free ... but get someone to follow her

(3) If you love someone,
...
are you sure you love that someone?

Go-getter:
If you love someone,
Set her free ...
If she comes back, she's yours,
If she doesn't, go get her !

Hunter:
If you love someone,
Set him free ...
Don't even wait whether he comes back, go hunt him down !

Impatient:
If you love someone,
Set him free ...
If he doesn't comes back within some timeout, forget him.

Patient:
If you love someone,
Set him free ...
If he doesn't comes back, continue to wait until he comes back ...

Playful:
If you love someone,
Set her free ...
* If she comes back, and if you love her still, set her free again,
* repeat *

Student in the midst of an exam period:
If you love someone,
Set him free ...
If he comes back during the exam period, set him free again, and go and study ...
If he doesn't comes back during the exam period, god bless.
If he doesn't comes back at all, god bless you too.

Bo-chap:
If you love someone,
Set him free...
If he comes back, he's yours,
If he doesn't, he's never was.... :)

Kamis, 19 Maret 2009


Type=Exe
Form=SimpleSnake.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\WINDOWS\system32\stdole2.tlb#OLE Automation
Startup="Form1"
Command32=""
Name="Project1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="."
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1

[MS Transaction Server]
AutoRefresh=1

Jumat, 13 Maret 2009

calendar

Option Explicit

Dim days As Long '<-Stores the number of days elapsed from 1/1/1900 to current month and year
Dim i As Integer

Private Sub cmdGenerate_Click()
On Error GoTo Error_handle 'On error, goto to end of function
days = 0
For i = 0 To 34
  Label1(i).Caption = "" 'Clear all the labels
Next i

For i = 1900 To txtYear.Text - 1
  If i Mod 4 = 0 Then 'If leap year then count 366 days
  days = days + 366
  Else 'else 365 days
  days = days + 365
  End If
Next i

For i = 1 To txtMonth.Text - 1
  If i = 1 Or i = 3 Or i = 5 Or i = 7 Or i = 8 Or i = 10 Or i = 12 Then 'For January,March,May....,December count 31 days
  days = days + 31
  ElseIf (i = 4 Or i = 6 Or i = 9 Or i = 11) Then 'For April,June,September,November count 30 days
  days = days + 30
  ElseIf (i = 2 And txtYear.Text Mod 4 = 0) Then 'If month is February and year is leap year count 29 days
  days = days + 29
  Else 'If month is February and year is not a leap year, count 28 days
  days = days + 28
  End If
 Next i

  If (i = 1 Or i = 3 Or i = 5 Or i = 7 Or i = 8 Or i = 10 Or i = 12) Then
  show_calender 31 'Show calender with 31 days
  ElseIf (i = 4 Or i = 6 Or i = 9 Or i = 11) Then
  show_calender 30 'Show calender with 30 days
  ElseIf (i = 2 And txtYear.Text Mod 4 = 0) Then
  show_calender 29 'Show calender with 29 days
  Else
  show_calender 28 'Show calender with 28 days
  End If
Error_handle:
End Sub

Private Function show_calender(n As Integer) '//<- n stores the number of days to display
Dim i, k As Integer
k = days Mod 7 'Divide days with 7, the remainder give the current day
For i = 1 To n
  Label1(k).Caption = i 'Display the number in calender format
  k = k + 1
  If k = 35 Then k = 0
Next i
End Function

Kamis, 26 Februari 2009















Option Explicit

Private Hasil As Double

Private Const opNol = 0

Private Const opTambah = 1

Private Const opKurang = 2

Private Const opKali = 3

Private Const opBagi = 4

Private Operator As Integer

Private NilaiBaru As Boolean

' untuk menghapus karakter terakhir

Private Sub Hapus()

Dim txt As String

Dim min_len As Integer

txt = txtDisplay.Text

If Left$(txt, 1) = "-" Then

min_len = 2

Else

min_len = 1

End If

If Len(txt) > min_len Then

txtDisplay.Text = Left$(txt, Len(txt) - 1)

Else

txtDisplay.Text = "0"

End If

End Sub

' hapus angka, hasil terakhir dan operator

Private Sub cmdClear_Click()

cmdClearEntry_Click

Hasil = 0

Operator = opNol

End Sub

' hapus angka

Private Sub cmdClearEntry_Click()

txtDisplay.Text = ""

End Sub

' menambahkan koma (desimal)

Private Sub cmdKoma_Click()

If InStr(txtDisplay.Text, ".") Then

Beep

Else

If NilaiBaru Then

txtDisplay.Text = "."

NilaiBaru = False

Else

txtDisplay.Text = txtDisplay.Text & "."

End If

End If

End Sub

' Menghitung

Private Sub cmdSamaDengan_Click()

Dim HasilBaru As Double

If txtDisplay.Text = "" Then

HasilBaru = 0

Else

HasilBaru = CDbl(txtDisplay.Text)

End If

Select Case Operator

Case opNol

Hasil = HasilBaru

Case opTambah

Hasil = Hasil + HasilBaru

Case opKurang

Hasil = Hasil - HasilBaru

Case opKali

Hasil = Hasil * HasilBaru

Case opBagi

'Tidak bisa dibagi nol

If HasilBaru = 0 Then

MsgBox "Tidak bisa dibagi 0", vbOKOnly + vbCritical, "Kalku ERROR"

Call cmdClear_Click

Else

Hasil = Hasil / HasilBaru

End If

End Select

Operator = opNol

NilaiBaru = True

txtDisplay.Text = Format$(Hasil)

End Sub

' menuliskan angka

Private Sub cmdAngka_Click(Index As Integer)

If NilaiBaru Then

txtDisplay.Text = Format$(Index)

NilaiBaru = False

Else

txtDisplay.Text = _

txtDisplay.Text & Format$(Index)

End If

End Sub

' tombol tambah/kurang/bagi/kali

Private Sub cmdOperator_Click(Index As Integer)

cmdSamaDengan_Click

Operator = Index

NilaiBaru = True

End Sub

' merubah tanda +/-

Private Sub cmdPlusMinus_Click()

If NilaiBaru Then

txtDisplay.Text = "-"

ElseIf Left$(txtDisplay.Text, 1) = "-" Then

txtDisplay.Text = Right$(txtDisplay.Text, 2)

ElsetxtDisplay.Text = "-" & txtDisplay.Text

End If

End Sub

' filter untuk angka saja yg dapat diketikkan

Private Sub Form_KeyPress(KeyAscii As Integer)

txtDisplay_KeyPress KeyAscii

End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

txtDisplay_KeyUp KeyCode, Shift

End Sub

' supaya kursor tetap di kanan

Private Sub txtDisplay_Change()

txtDisplay.SelStart = Len(txtDisplay.Text)

End Sub

Private Sub txtDisplay_GotFocus()

txtDisplay_Change

End Sub

' untuk mengetikkan angka di keyboard

Private Sub txtDisplay_KeyPress(KeyAscii As Integer)

Dim ch As String

ch = Chr$(KeyAscii)

Select Case ch

Case "0"

cmdAngka_Click 0

Case "1"

cmdAngka_Click 1

Case "2"

cmdAngka_Click 2

Case "3"

cmdAngka_Click 3

Case "4"

cmdAngka_Click 4

Case "5"

cmdAngka_Click 5

Case "6"

cmdAngka_Click 6

Case "7"

cmdAngka_Click 7

Case "8"

cmdAngka_Click 8

Case "9"

cmdAngka_Click 9

Case "*", "x", "X"

cmdOperator_Click opKali

Case "+"

cmdOperator_Click opTambah

Case vbCrLf, vbCr, "="

cmdSamaDengan_Click

Case "-"

cmdOperator_Click opKurang

Case "."

cmdKoma_Click

Case "/"

cmdOperator_Click opBagi

Case "C", "c"

cmdClearEntry_Click

End Select

KeyAscii = 0

End Sub

' untuk ketikan angka di numpad

Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)

Select Case KeyCode

Case vbKeyNumpad0

cmdAngka_Click 0

Case vbKeyNumpad1

cmdAngka_Click 1

Case vbKeyNumpad2

cmdAngka_Click 2

Case vbKeyNumpad3

cmdAngka_Click 3

Case vbKeyNumpad4

cmdAngka_Click 4

Case vbKeyNumpad5

cmdAngka_Click 5

Case vbKeyNumpad6

cmdAngka_Click 6

Case vbKeyNumpad7

cmdAngka_Click 7

Case vbKeyNumpad8

cmdAngka_Click 8

Case vbKeyNumpad9

cmdAngka_Click 9

Case vbKeyMultiply

cmdOperator_Click opKali

Case vbKeyAdd

cmdOperator_Click opTambah

Case vbKeySeparator

cmdSamaDengan_Click

Case vbKeySubtract

cmdOperator_Click opKurang

Case vbKeyDivide

cmdOperator_Click opBagi

Case vbKeyDecimal

cmdKoma_Click

Case vbKeyBack, vbKeyDelete

Hapus

End Select

KeyCode = 0

End Sub

Kamis, 12 Februari 2009

chapter 2