collections di swift

Collections di Swift

Posted by

Pada pembahasan kali ini, kita akan membahas mengenai collections.  Swift menyediakan 3 collections, yaitu Array, Dictionary, dan Set. Apa itu Array, Dictionary, Set? Mari kita bahas satu per satu.

  • Array

Arrays merupakan kumpulan banyak data(value) dengan tipe yang sama dan berurutan sesuai dengan mendefinisikan array tersebut. Ketika membuat sebuah array maka kita bisa mengubah, menghapus atau menambah element array, kecuali kita mendefinisikan array sebagai sebuah constant maka array hanya bisa diakses tanpa bisa diubah.

Deklarasi Array
Mendeklarasikan sebuah array dapat dilakukan dengan cara berikut:
– Deklarasi Array Kosong

var array = [Type]()
ex: var alphabet = [Character]()
atau bisa dengan 
var numbers: [Int] = []

– Deklarasi array dengan size dan value
Menginisialisasi array dengan value yang sama untuk semua index

var array = [Type](repeating:initial value, count:size)

var alphabet = [Character](repeating: "C", count: 3)

– Deklarasi array dan meng-assign value ke dalam array tersebut

var array : [Type] = [initial value]

var numbers : [Int] = [1,2,3]

Index
Dalam sebuah array pasti ada index. Index mengindikasi spesifik elemen dari sebuah array. Index dimulai dari 0. Ini berarti bahwa untuk mengakses value dari elemen pertama menggunakan index 0.

 Accessing Array
Untuk mengakses value dari satu element array menggunakan index dalam brackets.

var someVar = array[index]

var number = numbers[0]

Modifikasi Array
Ketika array tidak didefinisikan secara constant, Array dapat dimodifikasi untuk menambah element, menghapus element, mengubah value dari suatu element. Untuk menambah elemen dapat menggunakan .append() method atau menggunakan += atau menggunakan .insert(val, at:). Untuk menghapus element .remove(at: index) atau removeAll(). Untuk mengubah value spesifik element, array[index] = value

- menambah element
  numbers.append(4)
  numbers += [5]

- menghapus element
  numbers.remove(at: 1)

- mengubah value
  numbers[2] = 8

Menggabungkan dua array
Kita bisa menambahkan dua array dengan type yang sama dengan menggunakan (+) operator.

var ages : [Int] = [10,11,12]
var temp = numbers + ages

Untuk mengecek jumlah element dalam array bisa menggunakan .count. Dan untuk mengecek apakah array kosong atau tidak menggunakan .isEmpty.
Perlu diingat bahwa ketika mengakses array dengan index, index yang mau diakses harus ada, kalau tidak makan akan terjadi runtime crash.

  • Dictionary

Merupakan kumpulan dari pasangan key value. Sehingga untuk setiap item dalam dictionary ada key dan value. Key dan value ini tidak harus tipe yang sama. Tetapi ketika didefinisikan harus menjaga tipe datanya saat menggunakan. Setiap value dihubungkan dengan sebuah unik key. Pada Dictionaries, tidak perlu memperhatikan urutan key value tersebut. Sehingga bisa secara mudah untuk menambah, mengurangi, mengubah data di dictionary.

Inisialisasi dictionary kosong

var someVar = [Type: Type]()
atau someVar:[Type: Type] = [:]

contoh:
var students = [String: String]()
var grades: [String: Float] = [:]

Disini kita membuat sebuah dictionary dengan spesifik data type untuk key value.

Inisialisasi dictionary dengan value
var data = ["blogName":"arenasharing", "goal":"sharing"]

Disini kita membuat dictionary tanpa menspesifikkan data type tapi menginisialisasi dengan value sehingga compiler tahu tipe data dictionary yang kita buat.

Mengakses Element Dictionary
let name = data["name"] //output: Optional(“arenasharing”)

Perlu diingat bahwa, ketika mengakses dictionary, key nya harus ada dan case sensitive. Jadi ketika mengakses dictionary yang key tidak ada atau tidak sesuai maka value yang dikembalikan akan nil.

Modifying Dictionary

- Add Element
data["extension"] = ".com"

- Modify element
data["name"] = "Arena Sharing"

- Remove
data["extension"] = nil

Create Dictionary dari Dua Array

var cities = ["Japan", "Bangalore", "Hyderabad", "Jakarta", "Holland", "Paris"]
var distance = [400,10, 620, 15, 150, 500]

var cityDistanceDict = Dictionary(uniqueKeysWithValues: zip(cities, distance))

Disini kita telah membuat dictionary dari dua array dimana satu array menjadi key dan satu array lagi menjadi value. Setiap value dari cities akan di mapping tepat satu pada value dari distance sesuai dengan index masing-masing array. Jadi kalau jumlah elemen dari array cities dan distance tidak sama, dictionary yang dibuat sesuai dengan elemen yang bisa dimapping.

Dictionary juga mempunyai built in functions dan properties seperti .count, .isEmpty, .first, dll.

  • Sets

Merupakan kumpulan dari elemen yang memiliki nilai yang unik. Dalam artian value dari set tidak ada yang duplikat. Dalam set tidak memperhatikan urutan dari elemennya seperti array.
Deklarasi Set:

- Deklarasi Set kosong
var someVar = Set<Type>()
contoh: var sizes = Set<Int>()

- Deklarasi set dengan initial value
var numbers: Set = [Values]
contoh: var sizes: Set = [38, 37, 35, 40]

Access dan Modify Set

Set mempunyai method yang bisa digunakan untuk memodifikasi dan mengakses data didalamnya, seperti
– mengecek jumlah element menggunakan .count
numbers.count
– mengecek jika set kosong atau tidak menggunakan .isEmpty
numbers.isEmpty
– menambahkan elemen ke dalam Set menggunakan .insert
numbers.insert(1)
– menghapus elemen di dalam set menggunakan .remove
numbers.remove(1)

Dan masih ada method lainnya yang dimiliki oleh set yang bisa kita gunakan untuk mengubah ataupun mengakses Set tersebut. Set tidak memperhatikan urutan dari item. Tapi kita bisa mengurutkan item dalam set tersebut dengan menggunakan method .ordered().

Beberapa method yang digunakan untuk operasi pada set:

– Union
menggabungkan dua set

var value: Set = [55,90,20,45,23,88,44,69]
var otherValue: Set = [78,33,21]
let unionValue = value.union(otherValue)
hasil pada unionValue adalah penggabungan item kedua set tersebut:
[78, 20, 90, 69, 45, 88, 44, 33, 55, 23, 21]

Intersection
mengambil nilai yang sama dari 2 set

var value: Set = [55,90,20,45,23,88,44,69]
let otherValue: Set = [78,23, 33,21, 90, 44]
let intersectionValue = value.intersection(otherValue)
hasil pada intersectionValue adalah item yang sama dari kedua set tersebut: [23, 90, 44]

Substracting
Menghapus item dari suatu set dimana item tersebut terdapat juga di set kedua.

var value: Set = [55,90,20,45,23,88,44,69]
let otherValue: Set = [78,23, 33,21, 90, 44]
let substractingValue = value.subtracting(otherValue)
hasil pada substractingValue adalah item yang sama dari kedua set tersebut: [45, 88, 55, 69, 20]

– Symmetric difference
menghasilkan set dengan item dari suatu set dengan set yang lainnya yang tidak sama

var value: Set = [55,90,20,45,23,88,44,69]
let otherValue: Set = [78,23, 33,21, 90, 44]
let differenceValue = value.symmetricDifference(otherValue)
hasil pada differenceValue adalah item yang sama dari kedua set tersebut: [45, 33, 55, 21, 69, 78, 20, 88]

Contoh – contoh diatas dapat dilihat pada link Github berikut.
Demikian bahasan kali ini mengenai collections di swift. Semoga bermanfaat dan selamat mencoba.
Penulis terbuka menerima saran dan kritik untuk kebaikan artikel ini.

Share to
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Leave a Reply

Your email address will not be published. Required fields are marked *