Rabu, 10 April 2013

Cara Membuat Jam Digital & Analog Dengan menggunakan Bahasa Pemograman Microsoft Visual Basic 6.0


Cara Membuat Jam Digital & Analog Dengan menggunakan Bahasa Pemograman Microsoft Visual Basic 6.0
  
1. Untuk Jam Digital
          Program untuk membuat jam digital dengan Visual Basic merupakan program yang relatif sederhana. Hanya diperlukan sebuah form dan beberapa baris pemrograman saja. Caranya Buka Microsoft Visul Basic 6.0 kemudian Buka  form baru kemudian desain dengan mengggunakan kontrol Textbox, Command Button dan Timer yang ada di Toolbox seperti terlihat pada gambar dibawah ini. Kontrol timer dapat diletakkan di mana saja karena tidak akan terlihat pada saat runtime. 
 
 
Kemudian ubah  nilai property setiap kontrol sesuai dengan tabel berikut:
Kontrol
Properti
Nilai
Form
BorderStyle
1 – Fixed Single
Caption
Jam Digital
TextBox
Name
TxtJam
Text
[kosong]
Command Button
Name
CmdExit
Caption
E&xit
Timer
Interval
1000
            Tambahkan kode program ke dalam form tersebut seperti diberikan pada listing program berikut ini :
Double Clik CmdExit masukkan listing seperti berikut:
Private Sub cmdExit_Click()
End
End Sub
Double clik form nya masukkan linting berikut:
Private Sub Form_Load()
txtJam.Text = Time
End Sub
Double clik Timer nya masukkan listing berikut:
Private Sub Timer1_Timer()
txtJam.Text = Time
End Sub
Setelah selesai klik Run
Hasil  programnya seperti  gambar dibawah ini :
 
       
Untuk Jam Digital telah selesai sekarang kita lanjut untuk membuat jam Analog

2. Untuk Jam Analog




Kalau mau tau langkah-langkahnya dan Source Code, sebagai berikut:


1. Ubah Properti
'Name' Form1 menjadi 'frmMain',
BackColor = Yellow,
BorderStyle = 0,
DrawWidth = 3,
ForeColor = Red,
Height = 3075,
MaxButton = False,
MinButton = False,
StartUpPosition = 2,
Width = 2625.

2. Kemuadian gambar 3 buah jarum jam dengan menggunakan Line Tool (Detik, Menit, Jam) dengan catatan, ketiga line tersebut berada mempunyai titik pusat yang sma. Ganti Properti 'Name'nya menjadi (Linehour,lineMinute,lineSecond). Warnailah jarum jam dengan warna yang berbeda agar terlihat perbedaan antara Jam, Menit dan Detik.

3. Buat sebuah Label di bawah ketiga jarum jam tadi, ganti Properti 'Name'nya menjadi Lbltime dan ubah ForeColor = Red.

4. Masukkan sebuah objek 'Timer',ganti Properti 'Name'nya menjadi tmrClock dan atur Properti 'Intervalnya' = 1

5. Buatlah Label "X" untuk membuat opsi "Keluar", dan isilah ToolTipText dengan "Keluar". Ganti 'Name'nya menjadi "LabelX".

6. Setelah semua objek telah dimasukkan di Design View, lalu klik menu 'View + Code'
kemudian copy paste Source code di bawah ini.

Code:
Option Explicit

Private Const pi As Double = 3.14159265358979

Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long


Private Sub MakeRoundObject(objObject As Object, Value As Long)
Static lngHeight, lngLong, lngReturn, lngWidth As Long

lngWidth = objObject.Width / Screen.TwipsPerPixelX
lngHeight = objObject.Height / Screen.TwipsPerPixelY

SetWindowRgn objObject.hWnd, CreateRoundRectRgn(0, 0, lngWidth, lngHeight, Value, Value), True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
App.TaskVisible = False
Unload Me
End
End If
End Sub

Private Sub Form_Load()
Dim intX As Integer

Call MakeRoundObject(frmMain, 20)
Call tmrClock_Timer

For intX = 0 To 360 Step 6
If intX Mod 30 = 0 Then
Me.DrawWidth = 6
Me.PSet (1100 * Cos(intX * pi / 180) + lineSecond.X1, 1100 * Sin(intX * pi / 180) + lineSecond.Y1)
Else
Me.DrawWidth = 3
Me.PSet (1100 * Cos(intX * pi / 180) + lineSecond.X1, 1100 * Sin(intX * pi / 180) + lineSecond.Y1)
End If
Next intX
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
ReleaseCapture
SendMessage Me.hWnd, &HA1, 2, 0&
End Sub

Private Sub lblTime_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Call Form_MouseDown(Button, Shift, x, y)
End Sub

Private Sub tmrClock_Timer()
Dim dblSecond As Double, dblMinute As Double, dblHour As Double

dblSecond = Second(Now) * 6 - 90
dblMinute = (Minute(Now) + Second(Now) / 60) * 6 - 90
dblHour = (Hour(Now) + Minute(Now) / 60) * 30 - 90

lineSecond.X2 = 1000 * Cos(dblSecond * pi / 180) + lineSecond.X1
lineSecond.Y2 = 1000 * Sin(dblSecond * pi / 180) + lineSecond.Y1
lineMinute.X2 = 900 * Cos(dblMinute * pi / 180) + lineMinute.X1
lineMinute.Y2 = 900 * Sin(dblMinute * pi / 180) + lineMinute.Y1
Linehour.X2 = 700 * Cos(dblHour * pi / 180) + Linehour.X1
Linehour.Y2 = 700 * Sin(dblHour * pi / 180) + Linehour.Y1

Lbltime.Caption = Format(Now, "hh:mm:ss")
End Sub

Private Sub LabelX_Click()
End
End Sub


Dan selesai lah Jam analog nya dan jika ada kesalahan dalam source silahkan

Pke source yg kedua neh gan

checkidot:

Code:
Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Form_Load()
Dim atas As Long
Dim hasil As Long
Me.Width = 1000 * Screen.TwipsPerPixelX / 2
Me.Height = 1000 * Screen.TwipsPerPixelY / 2
atas = CreateEllipticRgn&(10, 50, 450, 470)
hasil = SetWindowRgn(Me.hWnd, atas, True)

Left = Screen.Width \ 2 - 4000
Top = (Screen.Height - Height) \ 2

End Sub





Private Sub Form_Resize()
Dim i, sudut
Static flag As Boolean
If flag = False Then
flag = True

End If
For i = 0 To 14

Scale (-1, -1)-(1.2, 1)
sudut = i * 2 * Atn(1) / 3
Line1.X1 = 3000
Line1.Y1 = 3000
Line1.X2 = Cos(sudut)
Line1.Y2 = Sin(sudut)
Line2.X1 = 3000
Line2.Y1 = 3000
Line2.X2 = Cos(sudut)
Line2.Y2 = Sin(sudut)
Line3.X1 = 3000
Line3.Y1 = 3000
Line3.X2 = Cos(sudut)
Line3.Y2 = Sin(sudut)
Next i

End Sub

Private Sub Timer1_Timer()
Const jam = 0
Const menit = 13
Const detik = 14
Dim sudut
Static detiklalu

If Second(Now) = detiklalu Then Exit Sub
detiklalu = Second(Now)

sudut = -0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))
Line1.X1 = 0
Line1.Y1 = 0
Line1.X2 = 0.4 * Cos(sudut)
Line1.Y2 = 0.4 * Sin(sudut)


sudut = -0.1047 * (75 - (Minute(Now) + Second(Now) / 60))
Line2.X1 = 0
Line2.Y1 = 0
Line2.X2 = 0.5 * Cos(sudut)
Line2.Y2 = 0.5 * Sin(sudut)


sudut = -0.1047 * (75 - Second(Now))
Line3.X1 = 0
Line3.Y1 = 0
Line3.X2 = 0.6 * Cos(sudut)
Line3.Y2 = 0.6 * Sin(sudut)

End Sub


NB: untuk Source yg kedua semua nama di default/standar tanpa ada perubahan.
Nah Sekian... Semoga bermanfaat :)

1 komentar: