Lompat ke konten utama
←

Makro dan VBA Excel

Pelajaran 11 dari 14

Prosedur, galat, dan debugging

Sub, Function, dan argumen

Setelah pelajaran ini kamu bisa membedakan Sub dari Function, memprediksi nilai yang dikembalikan fungsi buatan di sel, dan menelusuri argumen yang dikirim ByRef atau ByVal.

  • ±13 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Sub menjalankan tindakan: menulis ke sel, memformat, membuka berkas. Function menghitung lalu mengembalikan nilai, dan nilainya dikembalikan dengan mengisi nama fungsi di dalam badannya. Bila nama fungsi tidak pernah diisi, fungsi angka mengembalikan 0, fungsi String mengembalikan teks kosong, dan fungsi Variant mengembalikan Empty.

Function KodeWilayah(kota As String) As String
    Select Case kota
        Case "Medan", "Padang"
            KodeWilayah = "SUM"
        Case Else
            KodeWilayah = "LAIN"
    End Select
End Function

Function di modul biasa bisa dipakai di sel seperti fungsi bawaan, misalnya =KodeWilayah(A2); bentuk ini disebut fungsi buatan pengguna (UDF). Fungsi seperti itu hanya boleh mengembalikan nilai. Bila ia mencoba bertindak, seperti mengubah huruf atau warna sel atau menyunting rumus, sel pemanggilnya menampilkan #VALUE!. Buku kerja tempat fungsi berada harus terbuka; bila tidak, sel menampilkan #NAME?.

Argumen adalah nilai yang dikirim ke prosedur. Di VBA argumen dikirim ByRef secara bawaan: bila prosedur mengubah argumennya, variabel milik pemanggil ikut berubah. Tulis ByVal bila prosedur hanya boleh memakai salinannya. Sub dipanggil dengan HitungUlang a, b atau Call HitungUlang(a, b), sedangkan hasil Function dipakai dengan tanda kurung, seperti x = KodeWilayah("Medan").

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Fungsi di bawah dipakai di sel C2 sebagai =Komisi(B2), dengan B2 berisi 60000000. Apa yang tampil di C2?

Function Komisi(omzet As Double) As Double
    Dim hasil As Double
    If omzet >= 50000000 Then
        hasil = omzet * 0.03
    End If
End Function
Pilih satu jawaban

Latihan 2 dari 3

Berapa isi B2 setelah Kasir dijalankan?

Sub TambahOngkir(total As Double)
    total = total + 15000
End Sub

Sub Kasir()
    Dim bayar As Double
    bayar = 100000
    TambahOngkir bayar
    TambahOngkir bayar
    Range("B2").Value = bayar
End Sub
Pilih satu jawaban

Latihan 3 dari 3

Fungsi di bawah dipakai di sel D2 sebagai =CekStok(C2), dengan C2 berisi 4. Apa hasilnya, sesuai aturan fungsi buatan di dokumentasi Microsoft?

Function CekStok(jumlah As Long) As String
    If jumlah < 10 Then Range("E2").Font.Color = vbRed
    CekStok = "Dicek"
End Function
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke