Bab VI. Data Type Collections
Bab VI. Data Type Collections
Collections adalah kumpulan dari beberapa nilai baik itu angka, string, boolean,
bahkan variable dalam satu grup. Collection terbagi menjadi empat yaitu List, Dictionary,
Tuples, dan Set.
A. List
List digunakan untuk menyimpan beberapa item dalam satu variabel. List
adalah salah satu dari 4 tipe data bawaan dalam Python yang digunakan untuk
menyimpan kumpulan data.
1. Membuat List
Untuk membuat variabel berdata type list sangat mudah, list pada
Python dapat dibuat hanya dengan menempatkan urutan di dalam tanda
kurung siku ( [ ] ) dan memberi koma (,) di antara data-data nya. Berbeda
dengan Set, list tidak memerlukan fungsi bawaan (built-in) untuk membuat
list.
Contoh:
listExample = [1, 2, 3]
print(listExample)
Output:
[1, 2, 3]
blankList = []
print(blankList)
Output:
[]
Contoh list dengan duplicate values:
duplicateList = [1, 2, 2, 3, 1, 2, 4]
print(duplicateList)
Output:
[1, 2, 2, 3, 1, 2, 4]
[1, 2, 3, 4]
List memiliki size yang berupa jumlah data yang ada di dalam list kita bisa
mendapatkan nilai size pada list menggunakan built-in function len().
print(listExample[0])
Output:
1
● Mengambil elemen terakhir
print(listExample[len(listExample) - 1])
Output:
3
● Mengambil elemen mulai dari index terakhir
print(listExample[-1])
Output:
Nilai dalam list dapat diubah dengan cara menginisialisasi nilai list
pada indeks yang ingin diubah
Contoh:
listExample[1] = 10
print(listExample)
Output:
[1, 10, 3]
[:index]
● Mengambil elemen dimulai dari awal hingga indeks tertentu dari akhir
[:-index]
● Mengambil elemen dimulai dari indeks tertentu hingga akhir
[index:]
● Mengambil seluruh elemen dengan urutan terbalik
[::-1]
Agar lebih mudah memahami, operasi slice menggunakan format syntax
sebagai berikut
[index_awal:index_akhir]
Artinya kita akan mengambil elemen pada sebuah list dari index_awal hingga
index_akhir.
4. List Multi-Dimensi
List multi-dimensi adalah list yang memuat list di dalamnya hal ini
digunakan sebagai representasi matriks di dunia matematika.
Contoh:
print(multiDimensionalList[0][1])
Output:
print("Before:", listExample)
listExample.append(4)
print("After:", listExample)
Output:
print("Before:", listExample)
listExample.insert(1, 2)
print("After:", listExample)
Output:
print("Before:", listExample)
listExample.extend([5, 6, 7])
print("After:", listExample)
Output:
print("Before:", listExample)
listExample.remove(10)
print("After:", listExample)
Output:
print("Before:", listExample)
popList = listExample.pop(6)
print("After:", listExample)
print("Pop Value:", popList)
Output:
Before: [1, 2, 3, 4, 5, 6, 7]
After: [1, 2, 3, 4, 5, 6]
Pop Value: 7
● Reverse
Fungsi reverse() adalah metode yang ada pada objek List di Python.
Metode ini digunakan untuk membalik urutan elemen dalam list secara
permanen. Ini berarti elemen-elemen dalam list akan diubah posisinya dari
urutan awal menjadi urutan akhir, dan sebaliknya.
print("Before:", listExample)
listExample.reverse()
print("After:", listExample)
Output:
Before: [1, 2, 3, 4, 5, 6]
After: [6, 5, 4, 3, 2, 1]
6. List Comprehension
List comprehension digunakan untuk membuat list baru dari iterable
lain seperti tuples, strings, arrays, lists, dll. List comprehension terdiri dari
tanda kurung berisi ekspresi, yang dieksekusi untuk setiap elemen bersama
dengan perulangan for untuk mengiterasi setiap elemen.
Syntax:
evenSquare = []
B. Tuples
Tuple adalah salah satu collection pada objek Python seperti list. Urutan nilai
yang disimpan dalam tuple bisa bertipe apa saja, dan diindeks dengan bilangan bulat.
Nilai-nilai yang ada pada tuple tidak dapat diubah atau bersifat immuatble.
1. Membuat Tuple
Penulisan tuple dimulai dan ditutup dengan tanda kurung. Nilai tuple
dipisahkan secara sintaksis dengan 'koma'. Meskipun tidak diperlukan, lebih
umum untuk mendefinisikan tuple dengan menutup urutan nilai dalam tanda
kurung. Pembuatan tuple pada Python tanpa menggunakan tanda kurung
dikenal sebagai Tuple Packing.
Contoh:
('Python', True, 1)
# with indexing
print("With Indexing:")
print(programmingLang[0])
# with unpacking
a, b, c = programmingLang
print("\nWith Unpacking:")
print(a)
print(b)
print(c)
Output:
With Indexing:
Python
With Unpacking:
Python
Java
Kotlin
3. Manipulasi Tuple
Tuple kumpulan beberapa item dan tidak dapat diubah lagi. Tetapi kita
bisa melakukan manipulasi tuple tersebut, dengan cara melakukan konversi
tipe data tuple ke list, lalu data list yang kita ubah, setelah diubah, dilakukan
kembali konversi data dari list ke tuple.
Contoh:
Tuple tidak dapat diubah dan oleh karena itu tidak dapat dilakukan
penghapusan sebagian dari nilainya. Seluruh tuple harus dihapus dengan
menggunakan metode del().
del tupleExample
Mencetak (print) tuple setelah dilakukan penghapusan akan menghasilkan
error.
C. Sets
Set adalah kumpulan data yang tidak berurutan, tidak dapat diubah
(immutable), dan tidak terindeks dan tidak ada anggota yang terduplikat. Sama halnya
dengan tuple, set juga bisa memiliki item yang berbeda tipe datanya serta juga dapat
diketahui panjangnya atau banyaknya item di dalam set dengan menggunakan fungsi
len().
1. Membuat Set
Di Python, kita membuat set dengan menempatkan semua elemen di
dalam kurung kurawal ({...}), dipisahkan dengan koma. Suatu set dapat
memiliki sejumlah item dengan tipe data yang berbeda (integer, float, tuple,
string, dan lain-lain). Namun suatu set tidak boleh memiliki elemen yang
dapat diubah seperti list, set, atau dictionary sebagai elemennya.
{'Java', 1, 2, 'Python'}
Saat kamu menjalankan kode diatas, kamu mungkin mendapatkan keluaran
dalam urutan berbeda. Hal ini disebabkan karena set tidak mempunyai urutan
tertentu.
Lalu apa yang terjadi ketika kita membuat sebuah set yang didalamnya
terdapat item duplikat.
duplicateSet = {1, 3, 2, 3, 2, 3, 4}
print(setExample)
Output:
{1, 2, 3, 4}
Di sini, kita dapat melihat tidak ada item duplikat dalam set karena set tidak
boleh berisi item duplikat.
2. Memanipulasi Set
Sama halnya dengan tuple, set juga kumpulan beberapa item dan tidak
dapat diubah lagi. Tetapi kita bisa melakukan manipulasi set tersebut, dengan
cara melakukan konversi tipe data set ke list, lalu data list yang kita ubah,
setelah diubah, dilakukan kembali konversi data dari list ke set.
print("Before:", setExample)
setToList = list(setExample)
setToList[0] = "C++"
setExample = set(setToList)
print("After:", setExample)
Output:
numberSet = {1, 2, 3, 4, 5}
print(numberSet[1])
BENAR
numberSet = {1, 2, 3, 4, 5}
print(list(numberSet[1])
numberSet = {1, 2, 3, 4, 5}
for i in numberSet:
print(i)
setExample.add("Kotlin")
b. Pop
Untuk menghapus dan return data pada set, data yang di pop pertama
kali adalah integer pertama, setelah itu string pertama.
setExample.pop()
c. Remove
Untuk menghapus nilai yang sama yang terdapat pada set jika tidak
terdapat nilai yang sama maka program akan error.
setExample.remove(1)
d. Discard
Untuk menghapus nilai yang sama yang terdapat pada set, jika tidak
terdapat nilai yang sama maka program tidak melakukan apapun.
setExample.discard("Tes")
5. Frozen Set
Frozen set di Python adalah objek yang tidak dapat diubah yang hanya
mendukung metode dan operator yang menghasilkan hasil tanpa
mempengaruhi frozen set atau set tempat mereka diterapkan. Itu bisa
dilakukan dengan metode frozenset() dengan Python. Meskipun elemen suatu
set dapat dimodifikasi kapan saja, elemen frozen set tetap sama setelah
pembuatan. Jika tidak ada parameter yang diteruskan, akan mengembalikan
frozen set yang kosong.
6. Set Operations
Set Python menyediakan built-in methods untuk melakukan operasi
himpunan matematika seperti union (gabungan), intersection (irisan),
difference (selisih), dan symmetric difference (selisih simetris).
a. Union (⋃)
Union adalah gabungan dua set (himpunan) A dan B memuat
semua anggota himpunan A dan B. Dua set dapat digabungkan
menggunakan fungsi union() atau operator |. Kedua nilai set diakses
dan dilintasi dengan operasi penggabungan yang dilakukan pada
keduanya untuk menggabungkan elemen, pada saat yang sama
duplikatnya dihapus.
a = {1, 2, 3}
b = {3, 2, 1}
# menggunakan |
print(a | b) # {1, 2, 3}
# menggunakan union()
print(a.union(b)) # {1, 2, 3}
a | b dan union() ekuivalen dengan operasi a ⋃ b di matematika.
b. Intersection (⋂)
Intersection adalah perpotongan/irisan dua set (himpunan) A
dan B memuat unsur-unsur persekutuan antara himpunan A dan B.
Dua set dapat didapatkan hasil irisannya menggunakan intersection()
atau operator &.
a = {1, 2, 3}
b = {3, 5, 1}
# menggunakan &
print(a & b) # {1, 3}
# menggunakan intersection()
print(a.intersection(b)) # {1, 3}
a & b dan intersection() ekuivalen dengan operasi a ⋂ b di matematika.
c. Difference (-)
Difference adalah Selisih antara dua set (himpunan) A dan B
mencakup elemen himpunan A yang tidak terdapat pada himpunan B.
Kita menggunakan difference() atau operator - untuk mendapatkan
selisih antara dua himpunan.
a = {1, 2, 5}
b = {3, 4, 1}
# menggunakan -
print(a - b) # {2, 5}
# menggunakan difference()
print(a.difference(b)) # {2, 5}
a - b dan difference() ekuivalen dengan operasi a - b di matematika.
# menggunakan ^
print(a ^ b) # {2, 3, 4, 5}
# menggunakan symmetric_difference()
print(a.symmetric_difference(b)) # {2, 3, 4, 5}
D. Dictionary
Dictionary adalah kumpulan nilai, yang digunakan untuk menyimpan nilai
data key dan value, tidak seperti list yang hanya menyimpan satu nilai sebagai elemen.
1. Membuat Dictionary
Dalam Python, dictionary bisa dibuat dengan menempatkan rangkaian
elemen di dalam kurung kurawal ({...}), dipisahkan dengan 'koma'. Dictionary
menampung pasangan nilai, yaitu key dan value yang dipisahkan oleh ‘titik
dua’ (key:value). Value dalam dictionary dapat berupa tipe data apa pun dan
dapat diduplikasi, sedangkan key tidak dapat diulang (tidak boleh memiliki
nilai key yang sama) dan tidak dapat diubah (immutable).
Contoh:
dictExample = {
"name": "Riofuad",
"age": 21,
"hobby": "Playing Genshin"
}
print(dictExample)
Output:
2. Nested Dictionary
Nested dictionary merupakan dictionary bersarang yang artinya di
dalam sebuah dictionary terdapat dictionary lainnya.
Contoh:
nestedDict = {
"Fakultas": "MIPA",
"Program Studi": {
1: "Sistem Informasi",
2: "Matematika",
3: "Aktuaria"
}
}
print(nestedDict)
Output:
print(dictExample["name"])
# dictExample.get("name")
Output:
Riofuad
Kemudian untuk mengakses elemen yang ada pada nested dictionary harus
merujuk pada nama key yang diluar hingga key yang paling dalam pada nested
dictionary tersebut.
print(nestedDict["Program Studi"][1])
# nestedDict.get("Program Studi").get(1)
Output:
Sistem Informasi
Untuk mengupdate elemen pada dictionary kita hanya perlu mengintansinya
kembali atau menggunakan built-in function update().
print("Before:", dictExample["hobby"])
dictExample["hobby"] = "Playing Minecraft"
# dictExample.update("hobby": "Playing Minecraft")
print("After:", dictExample["hobby"])
Output:
dictExample["graduationYear"] = 2023
print(dictExample)
Output:
dictExample.pop("graduationYear")
print(dictExample)
Output: