HENDIKA

Wednesday, 12 February 2014


Semoga para pembaca setia www.hendika.net dapat meresapi perbedaan antar komponen :

1. Backgroundworker
2. Timer
3. satu tombol (button) tampa backgroundworker dan timer

Menghitung me.text dengan satu tombol
Buka VB 2008 anda dan design seperti dibawah ini :
Name dari masing2 komponent nama default saja jangan diganti,
Lalu coba kopikan kode dibawah ini:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        For i As Integer = 0 To 100000
            Me.Text = i
        Next
    End Sub


Dan coba kita jalankan jalankan dengan f5, coba anda klik menustripnya pasti bisa terbuka dan sekarang coba klik button1 dan klik menustrip file lagi dan eng ing eng....
tak bisa kan harus nunngu hitungan ke 100000 deh coba sambil ngelanccarin hitungan dibaca aja atasnya wkwkwk :D

Pada setiap pc Waktu penghitungan sampai 100000 akan berbeda selesainya, kecepatannya tergantung prosesor yang digunakan lebih tinggi prosesor maka makin cepat, kalo tak percaya test aja.

OK sekarang coba kita ganti kode scriptnya dengan yang dibawah ini dengan menambahkan komponen timer. dan inilah scriptnya :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Start()
    End Sub
    Dim i As Double = 0
    Dim j As String = ""

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        i += 1
        Me.Text = i
        If i = 101 Then
            Me.Text = j
            Timer1.Stop()
            i = 0
        End If
    End Sub


Nah disini coba klik pada button1 dan pada saat me.text sedang menghitung sampai 100000 maka menustrip dapat dimainkan diklik hore bagus dong.

Tapi Apabila di Jalankan Di PC Lain kecepatan waktu Menghitungnya Sama aja mau di prosesor jadulpun sama huh....
Jadi Komputer Ku gak ada Harganya kalo program nya kek begini nih....


Coba Hapus Koding yang tadi dan tambahkan komponen backgroundworker 
dan kopi kode dibawah ini :

Imports System.ComponentModel
Imports System.Threading
Public Class Form2
    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

        Dim jalan As New BackgroundWorker
        jalan = CType(sender, BackgroundWorker)
        TheBusyWork(jalan)
    End Sub
    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
        Me.Text = e.ProgressPercentage
    End Sub
  
    Private Sub TheBusyWork(ByVal workerLink As BackgroundWorker)
        For hitung As Integer = 1 To 100000
            Thread.Sleep(1000)
            workerLink.ReportProgress(hitung)
        Next hitung
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        BackgroundWorker1.RunWorkerAsync()
    End Sub
End Class


Saya disini menggunakan nama formnya form2 hati yah :)
OK Jalanin dan bandingkan dengan Komputer lain kalo bisa dengan Spesifikasi Komputer yang berbeda jenis prosessornya dan kecepatannya :)

Selamat Mencoba :D

0 komentar:

Post a Comment