Membuat Timer untuk Kasus Perlombaan di Microsoft Visual Studio 2010 (sesi 2)
Form Utama Timer (form1.vb).
Terdiri dari 2 sisi, yaitu sisi untuk admin:
Lalu berikutnya sisi untuk ditampilkan melalui proyektor ke
audience.
Padahal sebenernya 2 sisi itu Cuma terdiri dari satu form
yang koordinat di layarnya disesuaikan supaya ketika kita ntar pas lomba pake 2
monitor (layar admin dan proyektor) dan kita pilih opsi yang extended display
(jadi yang ada di proyektor bukanlah duplikat dari yang ada di layar admin tapi
merupakan perpanjangan dari layar) ntar si form tersebut bisa ke split. (cara
ini terbukti cukup ampuh dalam menipu para audience dan panitia pada saat itu
hoho). Padahal form sebenarnya seperti berikut.
Jadi anggap untuk layar admin kita pake resolusi 1280*800
dan layar yang proyektor pake resolusi 800*600. Maka untuk di properties size
form tersebut aku isi 1200*600 (1200 untuk panjang dimonitor adminnya 400
sedangkan sisanya (800) untuk ditampilkan di proyektor, terus 600 untuk
tingginya supaya pas ntar di proyektor). Setelah itu di properti location form
aku isi 880,0 (880 untuk koordinat x layar, dan 0 untuk koordinat y layar) karena
1280-880=400 (panjang form di sisi monitor admin kan 400). Asyik kan?
Untuk di sisi admin terdapat tombol start dan stop untuk
memulai timer atau menghentikan timer jika peserta sudah selesai semua. Ketika
ditekan tombol stop maka akan langsung membuat timer berhenti dan pergi ke form
hasil. Ketika ditekan tombol start maka akan membuat tombol-tombol yang lain yang
berisi nama-nama peserta akan menjadi enabled untuk diklik. Jadi ketika seorang
peserta sudah selesai maka langsung kita klik tombol yang berisi nama peserta
tersebut dan langsung sisa waktu peserta tersebut dicatat.
Untuk sisi layar yang ditampilkan via proyektor terdapat
tampilan timernya dan nama-nama peserta. Jika seseorang peserta telah selesai
dan diklik tombolnya di sisi admin maka tombol yang berisi nama peserta
tersebut akan enablednya=false, juga tombol yang berisi nama peserta tersebut
yang ada di sisi yang ditampilkan ke proyektor.
Script form yang ini:
PublicClassutama
Dim
detik
Dim
menit
Dim
peserta1
Dim
peserta2
Dim
peserta3
Dim
peserta4
Dim
peserta5
Dim
peserta6
PrivateSub
btnstart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnstart.Click
btnstop.Enabled = True
split1.Enabled = True
split2.Enabled = True
split3.Enabled = True
split4.Enabled = True
split5.Enabled = True
na1.Enabled = True
na2.Enabled = True
na3.Enabled = True
na4.Enabled = True
na5.Enabled = True
detik = 60
menit = 20
timerdetik.Enabled = True
timerdetik.Start()
lbldetik.Text = "00"
lblmenit.Text = menit
btnstart.Enabled = False
EndSub
PrivateSub
btnstop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnstop.Click
timerdetik.Stop()
timerdetik.Enabled = False
timermenit.Stop()
timermenit.Enabled = False
hasil.ShowDialog()
EndSub
PrivateSub
timerdetik_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
timerdetik.Tick
detik = detik – 1
If
(detik = 59) Then
menit = menit – 1
EndIf
If
(detik = 0) Then
detik = 60
EndIf
If
(detik = 60) Then
lbldetik.Text = "00"
ElseIf
(detik = 1) Then
lbldetik.Text = "01"
ElseIf
(detik = 2) Then
lbldetik.Text = "02"
ElseIf
(detik = 3) Then
lbldetik.Text = "03"
ElseIf
(detik = 4) Then
lbldetik.Text = "04"
ElseIf
(detik = 5) Then
lbldetik.Text = "05"
ElseIf
(detik = 6) Then
lbldetik.Text = "06"
ElseIf
(detik = 7) Then
lbldetik.Text = "07"
ElseIf
(detik = 8) Then
lbldetik.Text = "08"
ElseIf
(detik = 9) Then
lbldetik.Text = "09"
Else
lbldetik.Text = detik
EndIf
If
(menit <0) Then
lblmenit.Text = "WKTHBS!"
lbldetik.Visible = False
Label1.Visible = False
Else
lblmenit.Text = menit
EndIf
EndSub
PrivateSub
lbldetik_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
lbldetik.Click
EndSub
PrivateSub btnsplit_Click(ByVal sender As
System.Object, ByVal
e As System.EventArgs)
Handles split1.Click
If
lblmenit.Text = "WKTHBS!"Then
hasil.Label2.Text = "0:00"
Else
hasil.Label2.Text = Str(menit) + ":" + lbldetik.Text
EndIf
na1.ForeColor = Color.Azure
split1.Enabled = False
EndSub
PrivateSub
utama_FormClosing(ByVal sender AsObject, ByVal e As System.Windows.Forms.FormClosingEventArgs)
HandlesMe.FormClosing
awal.Show()
EndSub
PrivateSub
utama_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
split1.Text = awal.TextBox1.Text
split2.Text = awal.TextBox2.Text
split3.Text = awal.TextBox3.Text
split4.Text = awal.TextBox4.Text
split5.Text = awal.TextBox5.Text
na1.Text = awal.TextBox1.Text
na2.Text = awal.TextBox2.Text
na3.Text = awal.TextBox3.Text
na4.Text = awal.TextBox4.Text
na5.Text = awal.TextBox5.Text
peserta1 = awal.TextBox1.Text
peserta2 = awal.TextBox2.Text
peserta3 = awal.TextBox3.Text
peserta4 = awal.TextBox4.Text
peserta5 = awal.TextBox5.Text
btnstop.Enabled = False
split1.Enabled = False
split2.Enabled = False
split3.Enabled = False
split4.Enabled = False
split5.Enabled = False
na1.Enabled = False
na2.Enabled = False
na3.Enabled = False
na4.Enabled = False
na5.Enabled = False
btnstart.Enabled = True
EndSub
PrivateSub
split4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
split4.Click
If
lblmenit.Text = "WKTHBS!"Then
hasil.Label8.Text = "0:00"
Else
hasil.Label8.Text = Str(menit) + ":" + lbldetik.Text
EndIf
split4.Enabled = False
na4.ForeColor = Color.Azure
EndSub
PrivateSub
split2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
split2.Click
If
lblmenit.Text = "WKTHBS!"Then
hasil.Label4.Text = "0:00"
Else
hasil.Label4.Text = Str(menit) + ":" + lbldetik.Text
EndIf
split2.Enabled = False
na2.ForeColor = Color.Azure
EndSub
PrivateSub
split3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
split3.Click
If
lblmenit.Text = "WKTHBS!"Then
hasil.Label6.Text = "0:00"
Else
hasil.Label6.Text = Str(menit) + ":" + lbldetik.Text
EndIf
split3.Enabled = False
na3.ForeColor = Color.Azure
EndSub
PrivateSub
split5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
split5.Click
If
lblmenit.Text = "WKTHBS!"Then
hasil.Label10.Text = "0:00"
Else
hasil.Label10.Text = Str(menit) + ":" + lbldetik.Text
EndIf
split5.Enabled = False
na5.ForeColor = Color.Azure
EndSub
EndClass
Lumayan beribet, oke deh dicoba dijelasin dikit-dikit:
–
Jadi untuk tombol-tombol yang berisi nama
peserta dinamakan dengan split1, split2, split 3, dst.
–
Untuk si component timernya dinamakan timerdetik
karena emang perdetik timer ini berdetaknya.
–
Form sebelumnya dinamakan form awal
–
Form berikutnya dinamakan form hasil
–
Untuk tombol-tombol yang di sisi layar proyektor
yang berisi nama masing-masing peserta dinamakan dengan na1, na2, na3, dst
–
Timernya ditampilkan menggunakan text dinamakan
dengan lblmenit dan lbldetik