Tuesday 20 March 2012

Pemrograman Regresi linier menggunakan VBA

bila dalam posting sebelumnya, saya banyak mencoba menggunakan visual basic, dengan bentukan form dan lainya, kali ini saya mencoba menggabungkan fasilitas yang ada di excell, seperti cell, worksheet dsb, untuk mempermudah proses perhitungan, saya mencoba melalukan pemograman dengan memanfaatkan inputan dari worksheet excell, desain inputannya adalah sebagai berikut

rencanya, ketika di klik button Hitung Regresi, maka proses perhitungan langsung berjalan, dan kolom yang kosong otomatis di isi, karena jumlah cell pada excell sangtlah banyak, hal ini sangat memudahkan proses pemasukan data bila jumlah x dan y nya banyak, untuk contoh dalam kasus ini digunakan 7 data, dengan input data dimulai dari cell (baris,kolom) yaitu baris ke 2 sampai 8, kolom ke 2 untuk X, dan Y berada di sebelahnya.

Mulai Membuat Program

1.masuk design mode pada excell
untuk memulai membuat program, masuk ke design mode pada excel terlebih dahulu, caranya klik icon design mode, seperti pada gambar di bawah berikut
ketika sudah masuk design mode, masukkan tombol atau button box di sembarang tempat, selama kita masuk kedalam design mode, letak tombol box maupun propertiesnya masih mudah untuk di pindah dan diubah-ubah.
2. masukkan tombol / command button
cara memasukkan button ke worskheet excell adalah dengan klik tombol insert lalu pilih command button.
3. ubah propertiesnya,
 klik tombol properties di samping design mode, khusus untuk mengubah caption pada command button, klik tulisan command button langsung lalu ganti tulisanya dengan Hitung / sesuai keinginan.
4. masukkan program, 
double klik command button (hitung regresi), maka tampilan code design akan muncul, kita dapat memasukkan code sesuai perintah yang ingin dijalankan, alogaritma saya sesuaikan dengan buku karangan profesor dari India, detailnya akan saya posting dilain waktu, mari belajar dulu codingnya

deklarasi varibel
saya gunakan variabel a,b,c,d,e,f,a0,b0, denom, sebagai double

    Dim a As Double
    Dim b, c, d, e, f, a0, b0, denom As Double

menjumlahkan data
untuk menjumlahkan data dari cell (2,2) hingga cell(9,2)untuk x dan cell (2,3) hingga (9,3) untuk Y

For i = 1 To 7
        a = a + Cells(1 + i, 2)              ' jumlah total x
        b = b + Cells(1 + i, 3)              ' jumlah total y

menghitung  x2 dan menghitung jumlahnya
For i = 1 To 7 


       c = Cells(1 + i, 2) ^ 2               ' menghitung x2
        Cells(1 + i, 4) = c                    ' menuliskan hasilnya pada cell2 hingga 9 berada di kolom 4
        d = d + Cells(1 + i, 4)             ' menjumlahkan pada cell 2,4 hingga 2,9

menghitung x*y
For i = 1 To 7
       e = Cells(1 + i, 2) * Cells(1 + i, 3)             ' x kali y
        Cells(1 + i, 5) = e                                     ' menuliskan nilai x*y
        f = f + Cells(1 + i, 5)                                 ' menjumlahkan hasil perkalian dari cell(2,5) hingga 9,5

menuliskan hasil penjumlahan pada cell
agar tidak terjadi pengulangan, proses penjumlahan dilakukan setelah syntax next, hasil penjumlahan diletakkan pada cell baris ke 9, dan kolom berbeda sesuai dengan yang dijumlahkan.

Next
        Cells(9, 2) = a
        Cells(9, 3) = b
        Cells(9, 4) = d
        Cells(9, 5) = f

menghitung nilai a0 dan b0,
selanjutnya untuk mulai menghitung nilai a0 dan b0, dapat dilakukan sesuai dengan persamaan regresi liner, tulis setelah sintax next

     
       denom = 7 * d - a * a
        a0 = b * d - a * f / denom
       b0 = ((7 * f) - (a * b)) / denom 


Menulis hasil ke cell
langkah terakhir adalah menuliskan hasilnya ke dalam cell, untuk menambahkan huruf digunakan syntak "xx" & "yy" hasilnya akan ditulis xxyy, jadi untuk menulis nilai regresi linier y=bX+a adalah


 Cells(3, 10) = "y=" & b0 & "x" & a0 ' menuliskan hasil y=bx+a pada cell 3,10



bila ditulis ulang secara total, syntax programmnya sebagai berikut


Private Sub CommandButton1_Click()
    Dim a As Double
    Dim b, c, d, e, f, a0, b0, denom As Double
    For i = 1 To 7
        a = a + Cells(1 + i, 2) ' jumlah total x
        b = b + Cells(1 + i, 3) ' jumlah total y
        c = Cells(1 + i, 2) ^ 2 ' menulis pangkat
        Cells(1 + i, 4) = c
        d = d + Cells(1 + i, 4) ' jumlah x2
        e = Cells(1 + i, 2) * Cells(1 + i, 3) ' x kali y
        Cells(1 + i, 5) = e    ' menuliskan nilai x*y
        f = f + Cells(1 + i, 5) ' jumlah xy
    Next
        Cells(9, 2) = a
        Cells(9, 3) = b
        Cells(9, 4) = d
        Cells(9, 5) = f
        denom = 7 * d - a * a
         a0 = ((b * d) - (a * f)) / denom
        b0 = ((7 * f) - (a * b)) / denom
        Cells(3, 10) = "y=" & b0 & "x" & a0 ' menuliskan hasil y=bx+a pada cell 3,10




    End Sub

hasilnya, ketika tombol Hitung Regresi mulai diklik, perhitungan langsung terjadi, seperti berikut

filenya akan saya share setelah semua selesai, oh ya... jangan lupa tombol design mode nya di klik bila mau nyoba running program VBA. sedangkan nilai regresi akan ditampilkan di cell baris 3 kolom 10, seperti gambar berikut

Download File
silahkan download filenya pada embed object berikut, klik icon dibagian bawah, kalau di bagian preview tombolnya ga klihatan, biasanya hanya berupa warna hitam, silahkan download, hapus nilai x2 dan xy serta jumlah lalu klik Hitung Regresi, maka nilai regresi akan langsung muncul.



4 comments:

postingan yg menarik. menambah ilmu tentang cara link antara excel dan VBA.

Ohh begitu yah Mas klo masukin data dari cell2 di excel ke VBA. Makasih banyak..

Mas Haznam itu cell ya nge link ke VB, sangat menarik sekali bahkan dari segi penyampaian dan tampilan...Nice Artikel

thanks, ini juga lg mengexplore lebih jauh

Post a Comment