Selasa, 07 April 2009

Membuat Program Alarm Clock (VB)

Pada artikel berikut ini anda akan diajak untuk membuat sebuah program pengingat waktu / alarm clock yang sederhana. Anda mungkin pernah bertanya-tanya kenapa pada sistem operasi windows tidak disediakan program pengingat waktu / alarm clock yang sudah built-in, padahal bila anda sering menggunakan outlook maka kita akan sering menggunakan alarm clock yang dapat diatur pada menu calendar, tetapi anda tidak akan membuat yang sekompleks itu.

Program yang akan dibuat relative sederhana hanya mempunyai sebuah form untuk mengatur waktu, pesan yang akan ditampilkan, dan memeilih suara dari alarm tersebut. Pembuatan program ini menggunakan tools Microsoft Visual Basic 2005 Express, anda juga dapat menggunkan program yang lain yang juga berbasis .NET seperti Visual C# 2005 Express. Untuk versi express dapat didownload dan digunakan secara gratis.

Untuk membuat program ini, langkah pertama yang dilakukan adalah:

· Buka program Visual Basic 2005 Express dan buat project windows form baru dengan nama “MyAlarmClock”.

Pada form kosong yang terbuka, tambahkan tiga label, dua textbox, satu DateTimePicker, dan dua button kedalam form tersebut, atur komponen-komponen tersebut hingga tampilannya berubah menjadi seperti berikut:

image

Adapun property-property yang harus dirubah adalah

image

· Kemudian tambahkan komponen ContextMenuStrip kedalam form, dan tambahkan dua submenu berikut ini

image

· Tambahkan komponen NotifyIcon, komponen ini berfungsi untuk menampilkan Ballon Tip berisi pesan pada system try icon. Ubah propery name menjadi “AlarmNotifyIcon” Atur property BalloonTipIcon, BalloonTipText, dan BalloonTipTitle. Jangan lupa untuk mengisi property icon, anda dapat memilih icon apa yang akan digunakan untuk notifikasi, bebas asalkan berekstensi .ico
· Tambahkan komponen Timer kedalam form, ubah property interval menjadi 1000.
· Tambahkan juga komponen OpenFileDialog kedalam form.
· Setelah semua komponen ditambahkan kedalam form dan posisisnya sudah diatur maka sekarang saatnya untuk menambahkan kode programnya.
· Klik kanan pada form kemudian pilih view code, kemudian tuliskan kode berikut:

Public Class frmAlarm

'property yang digunakan untuk mengambil nilai dari datetimepicker
Public Property AlarmTime() As DateTime
Get
Return dtpAlarm.Value
End Get
Set(ByVal value As DateTime)
dtpAlarm.Value = value
End Set
End Property

'method yang digunakan untuk mengecek alarm, jika jam alarm lebih kecil dari jam sekarang
'maka dapat disimpulkan waktu tersebut adalah waktu pada hari berikutnya.
Private Sub RolloverTime()
If DateTime.Now.TimeOfDay.CompareTo(AlarmTime.TimeOfDay) > 0 Then
AlarmTime = New DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 1, _
AlarmTime.Hour, AlarmTime.Minute, AlarmTime.Second)
Else
AlarmTime = New DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Year, _
AlarmTime.Hour, AlarmTime.Minute, AlarmTime.Second)
End If
End Sub

'method yang dijalankan ketika Timer dijalankan
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'membandingkan apakah waktu sekarang cocok dengan waktu yang telah diset pada alarm
If DateTime.Now.CompareTo(AlarmTime) >= 0 Then
'memastikan apakah alarm berlaku untuk hari ini atau besok
RolloverTime()

'pesan yang ditampilkan pada balloon tip
AlarmNotifyIcon.BalloonTipText = IIf(txtMessage.Text.Length > 0, txtMessage.Text, "Attention!")
AlarmNotifyIcon.ShowBalloonTip(60000)

'perintah untuk menjalankan file audio
If txtSound.Text <> String.Empty Then
My.Computer.Audio.Play(txtSound.Text, AudioPlayMode.BackgroundLoop)
End If
End If

End Sub

'method yang dikerjakan ketika button browse diklik
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
'membuka filedialog baru, untuk memilih file yang akan digunakan
OpenFileDialog1.ShowDialog()
End Sub

'jika file pada opendialog sudah dipilih
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
txtSound.Text = OpenFileDialog1.FileName
End Sub

'pada saat menu setting pada contextmenustrip diklik
Private Sub SettingToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SettingToolStripMenuItem.Click
'mengarahkan lokasi form sehingga dapat dilihat user
Me.Location = New Point(100, 100)
End Sub

'ketika button OK diklik
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
'mengarahkan lokasi form ketempat yang tidak bisa dilihat oleh user
Me.Location = New Point(5000, 5000)

'jika checkbox dicheck maka timer dijalankan
If chkAlarm.Checked Then
Timer1.Enabled = True
Else
Timer1.Enabled = False
My.Computer.Audio.Stop()
End If
End Sub

'pada saat pertama kali form diload
Private Sub frmAlarm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = New Point(5000, 5000)
End Sub

'pada saat menu Exit pada contextmenustrip diklik
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Application.Exit()
End Sub

End Class

Ketika program dijalankan untuk pertama kali maka program akan langsung muncul pada system try icon yang terletak pada status bar windows sebelah kanan bawah, didekat jam sistem. Untuk merubah setting alarm clock maka user dapat mengklik kanan pada tampilan icon dari program tersebut untuk memilih setting. Kemudian user dapat menentukan waktu alarm, pesan, dan memilih suara.

image
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }