Rabu, 29 Juli 2009

VB WITH MS ACCESS OR MS ACCESS WITH VB ?

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

Rabu, 22 Juli 2009

SISTEM INFORMASI MANAJEMEN

Pengertian SISTEM INFORMASI MANAJEMEN adalah:

Sistem informasi adalah sekumpulan hardware,software,brainware,prosedur dan atau aturan yang diorganisirkan secara integral untuk mengolah data menjadi informasi yang bermanfaat guna memecahkan masalah dan pengambilan keputusan.


Komponen Sistem Informasi :

- Perangkat keras (hardware)
- Perangkat lunak (software) atau program
- Prosedur
- Orang
- Basis data (database)
- Jaringan komputer dan komunikasi data

3 MACAM ARSITEKTUR

1. Arsitektur Tersentralisasi
Suatu proses pelayanan informasi yang dikelola secara terpusat
2. Arsitektur Terdistribusi
Suatu proses pelayanan informasi yang dikelola secara tersebar
3. Arsitektur Client <-> Server
Suatu proses pelayanan informasi yang database utama dikelola Server sedangkan proses analisis lebih lanjut dilakukan oleh Client



Kamis, 21 Mei 2009


'the following constants are used to give the lights a certain color
Const Off = &H8000000F
Const Red = vbRed
Const Green = vbGreen
Const Orange = &H80C0FF

'a simple traffic junction of two perpendicular crossing streets
'consists of 4 traffic poles. Each traffic pole has a green, orange
'and red light. There is always just one light on per pole.

'The traffic lights control on one of those junctions has just 4
'statusses. The current status is stored in the variable "Status".
Dim Status As Integer

'The time a status lasts, is derived from the following constants, which
'indicate the time in seconds.
Const TimeForStatus1 = 5
Const TimeForStatus2 = 3
Const TimeForStatus3 = 5
Const TimeForStatus4 = 3

Private Sub SetStatus(ByVal intStatus As Integer)
'Set the status variable to the new status
Status = intStatus

'Turn off all the lights
shpLamp1Groen.FillColor = Off
shpLamp1Oranje.FillColor = Off
shpLamp1Rood.FillColor = Off
shpLamp2Groen.FillColor = Off
shpLamp2Oranje.FillColor = Off
shpLamp2Rood.FillColor = Off
shpLamp3Groen.FillColor = Off
shpLamp3Oranje.FillColor = Off
shpLamp3Rood.FillColor = Off
shpLamp4Groen.FillColor = Off
shpLamp4Oranje.FillColor = Off
shpLamp4Rood.FillColor = Off

'Turn on the appropriate lights with the correct color,
'depending on the current status
Select Case intStatus 'or "Select Case Status", won't make any difference
Case 1
shpLamp1Rood.FillColor = Red
shpLamp2Groen.FillColor = Green
shpLamp3Rood.FillColor = Red
shpLamp4Groen.FillColor = Green

Timer1.Interval = TimeForStatus1 * 1000
Case 2
shpLamp1Rood.FillColor = Red
shpLamp2Oranje.FillColor = Orange
shpLamp3Rood.FillColor = Red
shpLamp4Oranje.FillColor = Orange

Timer1.Interval = TimeForStatus2 * 1000
Case 3
shpLamp1Groen.FillColor = Green
shpLamp2Rood.FillColor = Red
shpLamp3Groen.FillColor = Green
shpLamp4Rood.FillColor = Red

Timer1.Interval = TimeForStatus3 * 1000
Case 4
shpLamp1Oranje.FillColor = Orange
shpLamp2Rood.FillColor = Red
shpLamp3Oranje.FillColor = Orange
shpLamp4Rood.FillColor = Red

Timer1.Interval = TimeForStatus4 * 1000
End Select

'We need to call the following subroutine
RefreshLights
End Sub

Private Sub RefreshLights()
'This subroutine makes sure that de data on the screen is
'displayed correctly
shpLamp1Groen.Refresh
shpLamp1Oranje.Refresh
shpLamp1Rood.Refresh
shpLamp2Groen.Refresh
shpLamp2Oranje.Refresh
shpLamp2Rood.Refresh
shpLamp3Groen.Refresh
shpLamp3Oranje.Refresh
shpLamp3Rood.Refresh
shpLamp4Groen.Refresh
shpLamp4Oranje.Refresh
shpLamp4Rood.Refresh
End Sub

Private Sub Form_Load()
'When the programs starts, it starts with status 1
SetStatus 1
'Initializing the timer will start the timer1_timer subroutine after the
'set interval has elapsed (in milliseconds)
Timer1.Interval = TimeForStatus1 * 1000
End Sub
Private Sub Timer1_Timer()
'Change to the next status
Status = Status + 1
'If the next status is 5 then we need to change it back to one
If Status = 5 Then Status = 1

SetStatus Status
End Sub

Kamis, 19 Maret 2009


Private Declare Function GetTickCount Lib "kernel32" () As Long 'this function lets us not use timer'timers are bad :)
'main body... each part of the snake has X and YPrivate Type PartX As IntegerY As IntegerEnd Type
'Dynamic array to store part coordinatesDim Part() As Part
'Velocity in X and Y direction of the snakeDim vX As Integer, vY As IntegerDim i As Integer 'for loopsDim CS As Single 'cell size
Dim FX As Integer, FY As Integer 'food coordinatesDim X As Integer, Y As Integer
Dim bRunning As Boolean, died As Boolean
Private Sub Form_Load()Randomize 'random generation
'Initialize controls******************Picture1.BackColor = vbWhitePicture1.ScaleMode = 3 'pixels
CS = 20 'cell size in pixelsX = Int(Picture1.ScaleWidth / CS)Y = Int(Picture1.ScaleHeight / CS)
Picture1.AutoRedraw = TruePicture1.ScaleWidth = X * CSPicture1.ScaleHeight = Y * CS
Me.WindowState = 2Me.Show
DrawGrid Picture1, CS'*************************************
died = False'set up the gameReDim Part(0)Part(0).X = 0Part(0).Y = 0
FX = Int(Rnd * X)FY = Int(Rnd * Y)'go to main loopbRunning = TrueMainLoopEnd Sub
Sub MainLoop()Do While bRunning = True Update Draw WAIT (50) 'increasing this number makes game slowerLoop
Unload MeEnd Sub
Sub Update()'MOVE PARTSFor i = UBound(Part) To 1 Step -1 Part(i).X = Part(i - 1).X Part(i).Y = Part(i - 1).YNext i
'MOVE HEADPart(0).X = Part(0).X + vXPart(0).Y = Part(0).Y + vY
'HAS HE GONE OUT OF BOUNDS ?If Part(0).X <>= X Or Part(0).Y <>= Y Thendied = TrueEnd If
'HAS HE CRASHED INTO HIMSELF ?For i = 1 To UBound(Part)If Part(i).X = Part(0).X And Part(i).Y = Part(0).Y Thendied = TrueEnd IfNext i
'DID HE EAT FOOD ?If Part(0).X = FX And Part(0).Y = FY Then ReDim Preserve Part(UBound(Part) + 1) Part(UBound(Part)).X = -CS Part(UBound(Part)).Y = -CS FX = Int(Rnd * X) FY = Int(Rnd * Y) Form1.Caption = "Parts: " & UBound(Part)End If
'IS HE DEAD ?If died = True Then NewGameEnd Sub
Sub Draw() 'DRAW WHITENESS Rectangle 0, 0, X * CS, Y * CS, vbWhite 'DRAW SNAKE. PARTS IN BLUE, HEAD IN GREEN For i = 1 To UBound(Part) Rectangle Part(i).X * CS, Part(i).Y * CS, Part(i).X * CS + CS, Part(i).Y * CS + CS, vbBlue Next i Rectangle Part(0).X * CS, Part(0).Y * CS, Part(0).X * CS + CS, Part(0).Y * CS + CS, vbGreen 'DRAW FOOD Rectangle FX * CS, FY * CS, FX * CS + CS, FY * CS + CS, vbRed DrawGrid Picture1, CSEnd Sub
Sub Rectangle(X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer, color As Long) Picture1.Line (X1, Y1)-(X2, Y2), color, BFEnd Sub
Sub NewGame()'SET UP NEW GAMEdied = False
ReDim Part(0)Part(0).X = 0Part(0).Y = 0
vX = 0vY = 0
FX = Int(Rnd * X)FY = Int(Rnd * Y)End Sub
Sub DrawGrid(Pic As Control, CS As Single) '************************************************************************** 'DRAW GRID '************************************************************************** Dim i As Integer, Across As Single, Up As Single Across = Pic.ScaleWidth / CS Up = Pic.ScaleHeight / CS For i = 0 To Across Pic.Line (i * CS, 0)-(i * CS, Up * CS) Next i For i = 0 To Up Pic.Line (0, i * CS)-(Across * CS, i * CS) Next iEnd Sub
Sub WAIT(Tim As Integer) '************************************************************************** 'WAIT FUNCTION '************************************************************************** Dim LastWait As Long LastWait = GetTickCount Do While Tim > GetTickCount - LastWait DoEvents LoopEnd Sub
Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)'USER KEYPRESSES HANDLED HERESelect Case KeyCodeCase vbKeyRightvX = 1vY = 0Case vbKeyLeftvX = -1vY = 0Case vbKeyUpvX = 0vY = -1Case vbKeyDownvX = 0vY = 1End SelectEnd Sub
Private Sub Picture1_KeyPress(KeyAscii As Integer)'27 is ESC. IF user presses ESC, QUITIf KeyAscii = 27 Then bRunning = FalseEnd Sub
Private Sub Form_Unload(Cancel As Integer)'This function can be left outEndEnd Sub

Senin, 16 Maret 2009


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

Private Sub txtMonth_Change()

End Sub

chapter 4



chapter 4

Kamis, 19 Februari 2009

chapter3


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)
Else


Artikel Populer IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com

txtDisplay.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


Private Sub Text1_Change()

End Sub

Kamis, 12 Februari 2009

chapter 2

Private Sub Command1_Click()
Dim I As Byte
For I = 1 To 10
Print "Hello Visual BAsic"
Next
End Sub