Prasyarat:
Dictionary dalam VBA (Visual Basic for Applications) adalah objek yang digunakan untuk menyimpan dan mengelola data dalam bentuk pasangan kunci-nilai (key-value pairs).
Setiap elemen dalam Dictionary memiliki dua komponen utama:
Key
adalah nilai yang digunakan sebagai identifikasi unik untuk setiap elemen dalam Dictionary. Kunci harus bersifat unik, artinya tidak bisa ada dua elemen dengan kunci yang sama.
Sedangkan Value
adalah data atau informasi yang ingin kita simpan dalam Dictionary dan terkait dengan kunci tertentu.
Value bisa berupa tipe data apa pun, seperti angka, teks, tanggal, objek, atau bahkan tipe data lainnya seperti Array atau koleksi lainnya.
Dictionary sangat berguna ketika kamu ingin menyimpan data dalam cara yang terstruktur dan efisien. Dengan menggunakan kunci, kamu dapat dengan mudah mengakses dan mencari nilai yang sesuai dalam Dictionary, tanpa perlu melalui loop atau perulangan seperti saat menggunakan Array atau Data koleksi lainnya.
Seperti yang sudah dijelaskan pada meteri Object Binding, untuk mulai menggunakan Dictionary ada 2 cara yang bisa dilakukan. Yaitu dengan Early Binding atau Late Binding.
Dalam konteks “early binding” di VBA, kita menggunakan pendekatan untuk mengaitkan objek dengan kode secara eksplisit sebelum waktu kompilasi. Ini berarti kita harus menentukan jenis objek yang digunakan sebelum menggunakannya dalam kode.
Untuk menggunakan Dictionary dengan early binding dalam VBA, kita perlu mengambil referensi ke Library yang menyediakan objek Dictionary tersebut.
Dalam VBA, kita bisa menggunakan “Microsoft Scripting Runtime” untuk mengakses Dictionary.
Berikut adalah langkah-langkahnya:
Setelah langkah-langkah di atas, kita bisa menggunakan Dictionary dengan early binding. seperti dibawah ini.
Dim dataSiswa As Scripting.Dictionary Set dataSiswa = New Scripting.Dictionary
Sedangkan untuk late binding, kita bisa langsung menggunakan dictionary tanpa perlu menambahkan References terlebih dahulu.
Dim dataSiswa As Object Set dataSiswa = CreateObject("Scripting.Dictionary")
Berikut ini panduan cepat untuk dictionary
Fungsi | Contoh |
---|---|
Menambahkan item (Tidak boleh ada Key yang sama) |
|
Mengubah Nilai item (Otomatis Item ditambahkan jika tidak ada). |
|
Mengambil Nilai Item |
|
Cek Jika Item sudah ada |
|
Menghapus Item |
|
Menghapus semua Item |
|
Menampilkan semua item (for each loop) | Dim key As Variant |
Menampilkan semua item (for loop – Early Binding) | Dim i As Long |
Menampilkan semua item (for loop) | Dim i As Long |
Mengetahui Total Item |
|
Case Sensitive Dictionary |
|
Non case sensitive |
|
Berikut ini adalah contoh penggunaan Dictonary
Sub ContohDictionary() ' Deklarasi Dictionary Dim dataSiswa As Object Set dataSiswa = CreateObject("Scripting.Dictionary") ' Menambahkan data siswa ke dalam Dictionary dataSiswa.Add "Ani", 15 dataSiswa.Add "Budi", 17 dataSiswa.Add "Cindy", 16 ' Mengakses dan menampilkan nilai berdasarkan kunci MsgBox "Umur Budi: " & dataSiswa("Budi") ' Mengubah nilai data siswa dataSiswa("Ani") = 16 ' Menghapus data siswa berdasarkan kunci dataSiswa.Remove "Cindy" End Sub
Jawaban :
Sub BuatUnik() Dim Kamus As Object Set Kamus = CreateObject("Scripting.Dictionary") For Each sel In Range("C2:C15") Kamus.Item(sel.Value) = 0 Next Range("E2").Resize(Kamus.Count) = Application.Transpose(Kamus.keys) End Sub