Kamis, 19 Agustus 2021

Mengenal Collection, Objek Serupa Array Dengan Kata Kunci (Key/Index?) Bebas/Fleksibel ~Tutorial Gambas

Objek Class Collection bisa menjadi alternatif penampung data yang cara kerjanya mirip dengan Array yang nilai-nilai/data-data (yang ditampung) bisa dipanggil menggunakan Loop seperti For, While, Repeat, dll berdasarkan kata kunci (key) tiap-tiap data (tergantung karakter kata kunci yang digunakan). 
Dua perbadaan mendasar antara Array dan Collection
Array:
- Bisa 3 dimensi
- Index (yang menjadi kata kunci) berupa urutan angka (terurut) dengan tipe data Short atau Integer
Collection:
- Hanya satu dimensi
- Tidak mengunakan index (urutan) angka integrer atau short, melainkan berdasar kata kunci dengan tipe data string

Contoh:
 ' Gambas module file

Public Dino As Collection = ["sn": "senen", "sl": "seloso", "rb": "rebo"]
Private Ongko As New Collection


Public Sub Main()

Dim Datae As String
Dim No As Short
Dim Panganan As New Collection

Print "---- Contoh Pertama"
Print Dino["rb"]
For Each Datae In Dino
Print Dino.Key & " --> " & Datae
Next
Print Dino.Length & " (Jumlah data pertama Dino)" 'Ada 3
Dino.Add("Jumat", "jm") 'Menambah data
For Each Datae In Dino
Print Dino.Key & " --> " & Datae
Next
Print Dino.Length & " (Jumlah data kedua Dino)" 'Ada 4
Dino.Remove("sn") 'Menghapus
For Each Datae In Dino
Print Dino.Key & " --> " & Datae
Next
Print Dino.Length & " (Jumlah data ketiga Dino)" 'Ada 3
'Cek apakah ada data koleksi dengan Datae tersebut
If Dino.Exist("sb") Then
Print "Ada"
Else
Print "tidak Ada"
Endif
Print "\n"

Print "------ Contoh kedua"
Print Ongko.Length & " (Jumlah data pertama Ongko)" 'ada 0
Ongko = ["1": "siji", "2": "loro", "3": "telu"]
For No = 3 DownTo 1
Print Ongko[No] & " --> " & No
Next
Print Ongko.Length & "(Jumlah data kedua Ongko)"
Print Ongko.Count
Ongko.Clear 'mebersihkan/menghapus semua data
Print Ongko.Length & "(Jumlah data ketiga Ongko)\n\n"

Print "------ Contoh kedua"
Panganan.Add("sego pecel", "sg")
Print Panganan.Count
Print Panganan["sg"]
Panganan = ["gd": "gado-gado", "r": "rawon"]
'Data sego pecel hilang ditimpa 2 data baru diatas
For Each Datae In Panganan
Print Panganan.Key & " --> " & Datae
Next
Print Panganan.Length

End
Catatan: 
Perhatikan saat pendeklarasian variabel/objek “Dino”, “Ongko” dan “Panganan”, yang Ongko dan Panganan menggunakan “As New” sedangkan yang Dino tidak. Namun Dino diberi data secara langsung saat pendeklarasian maka sudah dianggap membuat objek baru, sehingga tidak perlu menulis “New” saat pendeklarasian.As New” peruntukkan (variabel) objek baru yang merujuk pada Class seperti Collection, TextBox, ValueBox, dkk, sedangkan yang tanpa “New” untuk membuat variabel biasa dg type data String, Integer, Short, Float, Variant, dkk.

 

Tidak ada komentar:

Posting Komentar