Anda di halaman 1dari 13

LAPORAN PRAKTIKUM

PEMROGRAMAN KOMPUTER

A. Hitung Rata-Rata
1. Buatlah form sebagai berikut, dengan menggunakan textbox, listbox, dan
button.

2. Setting propery List Box sebagai berikut:


Name : lst_data
Row Souce Type : Value List
Column Heads : No (Default)
3. Ubah nama textbox sebagai berikut:
4. Untuk txt_a, set propertynya sebagai berikut:
Default value: ‘-‘.
Hal ini dilakukan agar kotak ini akan memunculkan nilai ‘-‘ jika tidak
diisi. Kemudian pada event, pilih event procedure dan klik […]

5. Masukkan koding sebagai berikut:


Option Explicit

Private Sub txt_a_LostFocus()


If txt_a.Value <> "-" Then
Lst_data.AddItem (txt_a)
txt_a.Value = "-"
Debug.Print Lst_data.RowSource
End If
End Sub
 Option Explicit wajib ditulis sebelum pendeklarasian variable agar
memudahkan jika menggunakan banyak variable untuk meminimalisir
kesalahan pada pengetikan.
 Lst_data.AddItem merupakan perintah yang digunakan untuk
menambahkan item baru ke value list yang ditampilkan oleh list box.
 Txt_a.Value merupakan bentuk penulisan jika kita
menginginkan/mengecek nilai/value yang dimiliki oleh txt_a.
 Program di atas berjalan jika nilai yang dimiliki txt_a tidak sama dengan
defaultnya yaitu ‘-‘. Jika syarat telah terpenuhi maka program akan
berjalan dengan menambahkan item yaitu input data dari txt_a ke dalam
listbox. Lalu txt_a kembali bernilai defaultnya. Debug.Print
lst_data.RowSource merupakan perintah yang digunakan untnuk
memberitahu Ms. Access dari mana harus mendapatkan data untuk objek
tertentu.
Kemudian input data pada kotak pertama dan akan terlihat hasil sebagai
berikut:

6. Pada button Kosongkan List buat koding event procedure pada On Click
sebagai berikut:
Private Sub cmd_kosongkan_Click()
txt_a = "-"
txt_a.SetFocus
Lst_data.RowSource = ""
txt_i = ""
txt_jum = ""
txt_rata = ""
End Sub
 Program ini bekerja setelah diklik diawali dengan mendefaultkan
kembali nilai txt_a, mengarahkan fokus kembali ke txt_a, dan
mengosongkan setiap kotak yang tersedia.
7. Ubah nama button Hitung menjadi cmd_hitung kemudian masukkan
koding berikut pada event procedure On Click
Private Sub cmd_hitung_Click()
Dim baris, i As Integer
Dim a, jum, rata As Integer

jum = 0
rata = 0
i = Lst_data.ListCount
txt_i = i
txt_jum = ""
txt_rata = ""

For baris = 0 To (Lst_data.ListCount - 1)


a = Val(Lst_data.Column(0, baris))
jum = jum + a
rata = jum / (baris + 1)
Debug.Print (baris + 1) & " : " & a & " -> (" & _
jum & " / " & baris & ") = " & rata
Next baris
txt_i = Lst_data.ListCount
txt_jum = jum
txt_rata = rata
End Sub
 Program di atas menjalankan perhitungan terhadap jumlah data yang
dimasukkan ke dalam listbox, banyaknya angka yang dimasukkan
angka terinput pada kotak cacah data, jumlah data akan keluar pada
kotak jumlah, sementara untuk rata akan keluar pada kotak rata, semua
akan dikeluarkan setelah dilakukan perhitungan terlebih dahulu.
Berikut adalah contoh penggunaan tombol hitung.

Kemudian pencet tombol kosongkan data, dan akan tampil sebagai berikut:
8. Pada form, pilih event on open dan masukkan koding sebagai berikut
untuk memanggil sub pada event kosongkan. Ini dilakukan agar saat
pertama kali dibuka, form akan kosong secara default.
9. Pengertian dari perintah:
 Val()
Fungsi untuk mengubah nilai STRING pada sebuah properti Text di
textbox menjadi nilai numerik.
 SetFocus
Fungsi dari perintah SetFocus adalah mengarahkan semua fokus
program dan user ke sebuah objek sehingga semua input dari user
mengarah ke objek tersebut.
 LostFocus
Fungsi dari perintah LostFocus adalah menjalankan suatu program
jika objek terkait tidak menjadi fokus dari user lagi.
 ListBox.AddItem
Fungsi dari perintah di atas adalah untuk menambahkan item baru ke
value list yang ditampilkan oleh list box.
 ListBox.ListCount
Fungsi dari perintah di atas adalah untuk menghitung banyak data
yang masuk ke dalam listbox.
 ListBox.RowSource
Fungsi dari perintah di atas adalah untuk memberitahu Ms. Access
dari mana harus mendapatkan data untuk objek tertentu.
 ListBox.Column (m, n)
Fingsi dari perintah do atas adalah untuk mengarahkan ke kolom
tertentu atau kombinasi kolom dan baris di dalam kolom listbox.
 Memanggil Sub dari suatu Event lain
Cara kerjanya adalah dengan membuat sub untuk memanggil event
yang telah dibuat sebelumnya.

B. Hitung Sisa Pembagian (Do… Loop Until)


1. Buatlah form sebagai berikut dengan menggunakan textbox dan label dan
ganti captionnya. Ubah nama kotaknya menjadi txt_a dan txt_b.

2. Berikan event LostFocus pada txt_b, masukkan koding berikut:


Option Explicit
Private Sub txt_b_LostFocus()
Dim a, b, c, d As Integer

a = Val(txt_a)
b = Val(txt_b)
d = a
Do
d = d - b
c = c + 1
Debug.Print c & " : " & d
Loop Until d < b
lbl_hasil.Caption = a & " dibagi " & b & " adalah
" & c & " sisa " & d
End Sub
Perintah yang digunakan dalam program ini adalah Do… Loop
Until, perintah ini akan menjalankan program terlebih dahulu kemudian
melihat syaratnya, jika terpenuhi maka akan dilakukan lagi.
Berikut adalah hasilnya:

Percobaan terakhir 3 dibagi 8 menghasilkan nilai 1 dan sisa -5, dapat


diamati bahwa hasilnya salah karena 3 tidak mampu dibagi 8.
Logika program ini tidak dapat diganti dengan menggunakan For… Next
karena pengulangan yang dilakukan belum diketahui secara pasti di awal
program namun perlu dilakukan pengolahan terhadap jumlah pengulangan
sehingga perintah For… Next tidak dapat digunakan. Perintah For… Next
lebih baik digunakan untuk logika program yang sudah pasti berapa batas
pengulangannya.

C. Hitung Sisa Pembagian (Do While… Loop)


1. Ubah koding sebelumnya menjadi seperti berikut:
Option Explicit

Private Sub txt_b_LostFocus()


Dim a, b, c, d As Integer
a = Val(txt_a)
b = Val(txt_b)
d = a
c = 0

Do While d >= b
d = d - b
c = c + 1
Debug.Print c & " : " & d
Loop
lbl_hasil.Caption = a & " dibagi " & b & " adalah " &
c & " sisa " & d
End Sub
Perbedaan koding ini dengan koding sebelumnya terletak pada
perintah loopingnya. Jika koding sebelumnya menggunakan [Do… Loop
Until], maka koding ini menggunakan [Do While… Loop]. Perintah ini
tujuannya sama, namun dalam pengerjaannya memiliki satu perbedaan
yang signifikan, di mana perintah [Do While... Loop] akan melihat syarat
terlebih dahulu baru mengerjakan program, sementara perintah [Do…
Loop Until] langsung mengerjakan program dan baru akan menemui
syarat setelah satu kali pengerjaan.
2. Hasil dari perintah ini adalah sebagai berikut:
Pengujian terakhir memberikan hasil yang berbeda dengan koding
sebelumnya, dapat dilihat bahwa perintah [Do While… Loop]
memberikan hasil yang lebih baik dibangdingkan [Do… Loop Until]
karena 3 tidak dapat dibagi 8 sehingga hasilnya 0, dan tetap bersisa tiga
karena tidak dapat dibagi sama sekali. Titik perbedaannya, perintah [Do…
Loop Until] selalu mengerjakan program sekali baru melihat kondisi yang
diberikan dan akan berhenti jika tidak terpenuhi, sementara perintah [Do
While… Loop] tidak akan mengerjakan sama sekali jika kondisi tidak
terpenuhi.

D. Sorting Data
1. Buat module dengan Insert – Module
2. Ketikkan koding sebagai berikut:
Sub UrutkanData()
Dim data()
data = Array(22, 9, 18, 20, 16, 15, 13, 15, 6, 10)
Debug.Print sortir(data, "-")
End Sub

Function Sortir(d, b) As String


Dim h As String
Dim i As Integer
Dim j As Integer
Dim k As Integer
h = ""

For i = LBound(d) To UBound(d) - 1


For j = LBound(d) + i To UBound(d)
If d(i) > d(j) Then
k = d(i)
d(i) = d(j)
d(j) = k
End If

Next j

Next i
For i = LBound(d) To UBound(d)
h = h & b & d(i)
Next i
Debug.Print Mid(h, 2)
Sortir = Mid(h, 2)
End Function

 Program ini didesain untuk mengurutkan data secara ascending yang


telah dimasukkan dengan menggunakan fungsi array, yaitu kumpulan
nilai yang berhubungan dengan logis satu sama lain, kemudian
menampilkan data yang telah disortir pada immediate window.
 Sortir dibuat sebagai fungsi yaitu seri dari pernyataan yang melakukan
operasi logical atau kumpulan operasi,
 LBound berfungsi untuk memunculkan indeks terkecil dari dimensi
array tertentu
 UBound berfungsi untuk memunculkan indeks terbesar dari dimensi
array tertentu
 Perintah Mid() digunakan untuk memunculkan string yang memiliki
angka tertentu dari string tersebut

Sehingga didapatkan hasil sebagai berikut


Jika ingin mengurutkan data secara descending, ubah d(i) > d(j)
menjadi d(i) < d(j). Maka akan muncul hasil sebagai berikut:

Anda mungkin juga menyukai