Algorithm and Data Structure - Modular Programming
Algoritma dan Struktur Data (Python) - Struktur Data
1.
2.
3. Struktur data adalah cara penyimpanan,
pengorganisasian, dan pengaturan data
di dalam media penyimpanan komputer
sehingga data tersebut dapat digunakan
secara efisien.
Sebuah struktur data dapat diterapkan
untuk pengolahan database, misalnya
untuk keperluan data keuangan, atau
untuk pengolah kata yang bersifat
dinamis
4. Dalam Python terdapat lima struktur data
built-in yaitu,
1. List
2. Tuple
3. Set
4. Dictionary
5. Dataframe (Library Pandas)
5. List merupakan struktur data terurut (sequence). Setiap item dalam List
memiliki sebuah index yang dimulai dari 0. Hampir sama halnya
dengan Array pada bahasa pemrograman lain, namun List dalam
Python dapat menampung berbagai tipe data.
List merupakan struktur data yang paling serbaguna yang tersedia
dalam bahasa Python, dapat ditulis sebagai daftar nilai yang
dipisahkan koma antara tanda kurung siku [].
6. List dapat kita buat seperti membuat variabel biasa, namun nilai
variabelnya diisi dengan tanda kurung siku ([]).
Apabila list-nya memiliki lebih dari satu isi, maka kita bisa memisahnya
dengan tanda koma.
# Membuat List kosong
warna = []
# Membuat list dengan isi 1 item
hobi = ["membaca"]
buah = ["jeruk", "apel", "mangga", "duren"]
7. List sama seperti array, list juga memiliki nomer indeks untuk
mengakses data atau isinya. Nomor indeks list selalu dimulai dari nol
(0) yang dibutuhkan untuk mengambil isi (item) dari list.
# Kita punya list nama-nama buah
buah = ["apel", "anggur", "mangga", "jeruk"]
# Misanya kita ingin mengambil mangga
# Maka indeknya adalah 2
print buah[2]
8. Kita dapat memperbarui satu atau beberapa nilai di dalam list dengan
memberikan potongan di sisi kiri operator penugasan. Kita juga dapat
menambahkan nilai ke dalam list dengan metode append ().
# Nilai list awal
list = ['fisika', 'kimia', 1993, 2017]
print ("Nilai ada pada index 2 : ", list[2])
# Pembaharuan nilai list
list[2] = 2001
print ("Nilai baru ada pada index 2 : ", list[2])
9. Untuk menghapus nilai di dalam list python, dapat menggunakan 2
pernyataan, yakni del dan remove.
Del digunakan jika telah diketahui persis elemen yang hendak dihapus.
Sedangkan remove digunakan jika tidak diketahui persis item mana
yang akan dihapus.
# Contoh cara menghapus nilai pada list python
list = ['fisika', 'kimia', 1993, 2017]
print (list)
del list[2]
print ("Setelah dihapus nilai pada index 2 : ", list)
10. Python menyertakan fungsi built-in sebagai berikut:
Python Function Deskripsi
cmp(list1, list2) # Tidak lagi tersedia dengan Python 3
len(list) Memberikan total panjang list.
max(list) Mengembalikan item dari list dengan nilai maks.
min(list) Mengembalikan item dari list dengan nilai min.
list(seq) Mengubah tuple menjadi list.
11. Python menyertakan methods built-in sebagai berikut:
Python Methods Deskripsi
list.append(obj) Menambahkan objek obj ke list
list.count(obj)
Jumlah pengembalian berapa kali obj
terjadi dalam list
list.extend(seq) Tambahkan isi seq ke list
list.index(obj)
Mengembalikan indeks terendah dalam list
yang muncul obj
list.insert(index, obj)
Sisipkan objek obj ke dalam list di indeks
offset
12. Python menyertakan methods built-in sebagai berikut:
Python Methods Deskripsi
list.pop(obj = list[-1])
Menghapus dan mengembalikan objek
atau obj terakhir dari list
list.remove(obj) Removes object obj from list
list.reverse() Membalik list objek di tempat
list.sort([func])
Urutkan objek list, gunakan compare func
jika diberikan
13. List dapat juga memiliki lebih dari satu dimensi atau disebut dengan
multi dimensi. List multi dimensi biasanya digunakan untuk menyimpan
struktur data yang kompleks seperti tabel, matriks, graph, tree, dsb.
# List minuman dengan 2 dimensi
list_minuman = [
["Kopi", "Susu", "Teh"],
["Jus Apel", "Jus Melon", "Jus Jeruk"],
["Es Kopi", "Es Campur", "Es Teler"]
]
14. Tuple dalam Python adalah stuktur data yang digunakan untuk
menyimpan sekumpulan data. Tuple bersifat immutable, artinya isi tuple
tidak bisa diubah ataupun hapus. Namun, dapat diisi dengan berbagai
macam nilai dan objek.
Perbedaan utama antara tuple dan list adalah bahwa tuple tidak dapat
diubah, sedangkan list sebaliknya. Selain itu, tuple menggunakan tanda
kurung, sedangkan list menggunakan tanda kurung siku.
15. Tuple biasanya dibuat dengan tanda kurung:
atau bisa juga tanpa tanda kurung:
Apabila kita ingin membuat sebuah tuple tanpa isi, kita bisa
menuliskannya seperti ini:
t = (1234, 4321, 'Hello')
t = 1234, 432, 'World!'
# Membuat tuple kosong
kosong = ()
16. Sama seperti list, Tuple juga memiliki indeks untuk Mengakses item di
dalamnya. Indeks Tuple dan list selalu dimulai dari nol 0.
# membuat tuple
nama = (‘Merah', ‘Hijau', ‘Kuning')
# mengakses nilai tuple Hijau
print(nama[1])
17. Tuple tidak berubah, yang berarti kita tidak dapat memperbarui atau
mengubah nilai elemen tupel. Namun, kita dapat mengambil bagian dari
tupel yang ada untuk membuat tupel baru seperti ditunjukkan oleh contoh
berikut.
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# Aksi pengubahan tidak bisa dilakukan pada tuple python
# tup1[0] = 100;
# Namun, dapat disiasati dengan membuat tuple baru
tup3 = tup1 + tup2
print (tup3)
18. Seperti halnya update tuple, tuple yang bersifat immutable berarti nilai
elemen dalam tuple tidak dapat diubah/dihapus. Namun, kita dapat
mengambil bagian dari tupel yang ada untuk membuat tupel baru
seperti ditunjukkan oleh contoh berikut.
tup = ('fisika', 'kimia', 1993, 2017)
# hapus tuple dengan statement del
del tup
# lalu buat kembali tuple baru dengan elemen yang diinginkan
tup = ('Bahasa', 'Literasi', 2020)
print("Setelah menghapus tuple :", tup)
19. Python menyertakan fungsi built-in sebagai berikut
Python Function Deskripsi
cmp(tuple1, tuple2) # Tidak lagi tersedia dengan Python 3
len(tuple) Memberikan total panjang tuple.
max(tuple)
Mengembalikan item dari tuple
dengan nilai maks.
min(tuple)
Mengembalikan item dari tuple
dengan nilai min.
tuple(seq) Mengubah seq menjadi tuple.
20. Set adalah salah satu tipe data di Python yang tidak berurut (unordered).
Set memiliki anggota yang unik (tidak ada duplikasi). Artinya, jika
diletakkan dua anggota yang sama di dalam set, maka otomatis set akan
menghilangkan yang salah satunya.
Set biasa digunakan untuk melakukan operasi himpunan matematika
seperti gabungan, irisan, selisih, dan lain – lain.
21. Set dibuat dengan meletakkan anggota–anggotanya di dalam tanda
kurung kurawal {}, dipisahkan menggunakan tanda koma. Kita juga
bisa membuat set dari list dengan memasukkan list ke dalam fungsi
set().
Untuk membuat set kosong, kita tidak bisa menggunakan {}, karena
itu akan dianggap sebagai dictionary. Kita harus menggunakan fungsi
set() tanpa argumen untuk membuat set kosong.
# membuat set
my_set = {1, 2.0, "Python", (3,4,5)}
# set dengan menggunakan fungsi set()
my_set = set([1,2,3])
22. Set bersifat mutable. Tapi, karena set adalah tipe data tidak berurut
(unordered), maka kita tidak bisa menggunakan indeks. Set tidak
mendukung indeks ataupun slicing.
Untuk menambah satu anggota ke dalam set, dapat menggunakan
fungsi add(), dan untuk menambahkan beberapa anggota sekaligus
kita bisa menggunakan fungsi update().
# membuat set baru
my_set = {1,2,3}
# menambah satu anggota
my_set.add(4)
# output: {1,2,3,4}
23. Kita bisa menghapus anggota set dengan menggunakan fungsi discard()
dan remove(). Perbedaannya, fungsi discard() tidak akan memunculkan
error bila anggota yang ingin dihapus ternyata tidak ada di dalam set,
sedangkan remove() sebaliknya.
# membuat set baru
my_set = {1, 2, 3, 4, 5}
# menghapus 4 dengan discard
my_set.discard(4)
# output: {1, 2, 3, 5}
# menghapus 5 dengan remove
my_set.remove(5)
# output : {1, 2, 3}
24. Python menyertakan fungsi built-in sebagai berikut:
Python Function Deskripsi
add() Menambahkan satu anggota ke set
clear() Menghapus semua anggota set
copy() Mengembalikan shallow copy dari set
difference()
Mengembalikan set baru berisi selisih dua
atau lebih set
difference_update()
Menghapus semua anggota set lain yang
ada di set ini
discard() Menghapus satu anggota dari set
25. Python menyertakan fungsi built-in sebagai berikut:
Python Function Deskripsi
intersection()
Mengembalikan set baru berisi irisan
antara dua atau lebih set
intersection_update()
Mengupdate set dengan irisan set
bersangkutan dan set lainnya
isdisjoint()
Mengembalikan True jika dua set tidak
memiliki irisan
issubset()
Mengembalikan True jika set lain berisi set
ini
issuperset()
Mengembalikan True jika set ini berisi set
lain
26. Python menyertakan fungsi built-in sebagai berikut:
Python Function Deskripsi
pop()
Menghapus dan mengembalikan
anggota acak dari sebuah set
remove() Menghapus satu anggota dari set
symmetric_difference()
Mengembalikan set baru berisi
komplemen dari dua set
union()
Mengembalikan set baru berisi
gabungan dua atau lebih set
update()
Mengupdate set dengan gabungan set
ini dan set lainnya
27. Dictionary Python berbeda dengan List ataupun Tuple. Karena setiap
urutanya berisi key dan value. Setiap key dipisahkan dari value-nya
oleh titik dua (:), item dipisahkan oleh koma, dan semuanya tertutup
dalam kurung kurawal. Dictionary kosong tanpa barang ditulis hanya
dengan dua kurung kurawal {}.
Nilai kamus bisa berupa tipe apa pun, namun key harus berupa tipe
data yang tidak berubah seperti string, angka, atau tupel.
28. Hal yang wajib ada di dalam pembuatan Dictionary adalah: nama
dictionary, key, value, buka dan tutupnya menggunakan kurung kurawal.
Antara key dan value dipisah dengan titik dua (:) dan apabila terdapat
lebih dari satu item, maka dipisah dengan tanda koma (,).
Isi dari Dictionary dapat berupa String, Integer, Objek, List, Tuple,
Dictionary, dsb.
# membuat dictionary
nama_dict = {
"key1": "value",
"key2": "value",
"key3": "value"
}
29. Untuk mengakses elemen Dictionary, dapat menggunakan tanda
kurung siku yang sudah dikenal bersama dengan key untuk
mendapatkan nilainya.
#Contoh pengaksesan Dictionary pada Python
dict = {'Name': 'Andi', 'Age’: 25, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
30. Dictionary dapat diperbarui dengan menambahkan entri baru atau
pasangan nilai kunci, memodifikasi entri yang ada, atau menghapus
entri yang ada.
#Update dictionary python
dict = {'Name': 'Andi', 'Age’: 25, 'Class': 'First'}
dict['Age'] = 8; # Mengubah entri yang sudah ada
dict['School'] = "DPS School" # Menambah entri baru
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
31. Kita dapat menghapus elemen Dictionary individual atau menghapus
keseluruhan isi Dictionary. Untuk menghapus seluruh Dictionary secara
eksplisit, cukup gunakan del statement.
# Cara menghapus pada Dictionary Python
dict = {'Name': 'Andi', 'Age': 25, 'Class': 'First'}
del dict['Name'] # hapus entri dengan key 'Name'
dict.clear() # hapus semua entri di dict
del dict # hapus dictionary yang sudah ada
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
32. Python menyertakan fungsi built-in sebagai berikut:
Python Function Deskripsi
cmp(dict1, dict2) Membandingkan unsur keduanya
len(dict)
Memberikan panjang total Dictionary. Ini sama
dengan jumlah item dalam Dictionary
str(dict)
Menghasilkan representasi string yang dapat
dicetak dari Dictionary
type(variable)
Mengembalikan tipe variabel yang lulus. Jika
variabel yang dilewatkan adalah Dictionary,
maka akan mengembalikan tipe Dictionary
33. Python menyertakan method built-in sebagai berikut:
Python Method Deskripsi
dict.clear() Menghapus semua elemen Dictionary
dict.copy() Mengembalikan salinan Dictionary
dict.fromkeys()
Buat Dictionary baru dengan kunci dari seq
dan nilai yang disetel ke nilai.
dict.get(key,
default=None)
For key, nilai pengembalian atau default jika
tombol tidak ada dalam Dictionary
dict.has_key(key)
Mengembalikan true jika key dalam
Dictionary, false sebaliknya
dict.items()
Mengembalikan daftar dari pasangan tuple
dictionary (key, value)
34. Python menyertakan method built-in sebagai berikut:
Python Method Deskripsi
dict.keys() Mengembalikan daftar key dictionary
dict.setdefault(key,
default=None)
Mirip dengan get (), tapi akan mengatur dict
[key] = default jika kunci belum ada di dict
dict.update(dict2)
Menambahkan pasangan kunci kata kunci
dict2 ke dict
dict.values() Mengembalikan daftar nilai dictionary
35. DataFrame adalah struktur data 2 dimensi yang berbentuk tabular
(mempunyai baris dan kolom). DataFrame merupakan salah satu
struktur data pada Pandas yang bertujuan memudahkan membaca
sebuah file dengan banyak jenis format seperti file .txt, .csv, dan .tsv.
Pandas adalah sebuah library di Python yang berlisensi BSD dan open
source yang menyediakan struktur data dan analisis data seperti
halnya mengolah suatu data dengan menggunakan operasi seperti
join, distinct, group by, agregasi, dan teknik lainnya yang terdapat
pada SQL.
36. Ada beberapa cara untuk membuat DataFrame antara lain melalui List, Dict,
Series, File atau DataFrame lain
# 1 DataFrame dari List
data = {'satu': [1,1,1,1,1],
'dua' : [2,2,2,2,2],
'tiga': [3,3,3,3,3]}
df = pd.DataFrame(data)
# 2 DataFrame dari Dictionary
data = [{'satu': 1, 'dua': 2,'tiga': 3},
{'satu': 1, 'dua': 2,'tiga': 3},
{'satu': 1, 'dua': 2,'tiga': 3}]
df = pd.DataFrame(data)
37. Ada beberapa cara untuk membuat DataFrame antara lain melalui List, Dict,
Series, File
# 3 DataFrame dari Series
data = {'satu': pd.Series([1,1,1,1,1]),
'dua' : pd.Series([2,2,2,2,2]),
'tiga': pd.Series([3,3,3,3,3])}
df = pd.DataFrame(data)
# 4 DataFrame dari File
# Dapat menggunakan fungsi read_csv()
# untuk membaca dari file
df = pd.read_csv('nama_file.csv')
38. Terdapat dua cara untuk mengakses elemen dalam dataframe, yakni
baris dan kolom
1. Untuk mengakses baris, dapat menggunakan fungsi loc dan iloc
yang telah dibahas pada materi Pandas Series
2. Untuk mengakses data berdasarkan kolom gunakan
['nama_kolom’]
# Akses DataFrame via baris
df.loc[baris]
# Akses DataFrame via baris
df[['kolom_1', 'kolom_2', 'kolom_n']]
39. DataFrame merupakan struktur data yang bersifat mutable, artinya dapat
ditambah, diperbarui, dan dihapus. Seperti halnya struktur data list,
pengubahan nilai dapat dilakukan berdasarkan nama kolom ataupun
indeksnya.
# Update DataFrame
df['nama_kolom'].replace(['nilai_lama'], 'nilai_baru')
# Hapus DataFrame
df.drop(['nama_kolom'])
40. Python menyertakan method built-in sebagai berikut:
Python Method Deskripsi
insert() Menyisipkan kolom ke dalam DataFrame
unique() Mengekstrak nilai unik dalam dataframe
nunique()
Mengembalikan jumlah nilai unik dalam
dataframe
isnull()
Membuat Seri Boolean untuk mengekstrak baris
dengan nilai nol
notnull()
Membuat Seri Boolean untuk mengekstrak baris
dengan nilai non-null
41. Python menyertakan method built-in sebagai berikut:
Python Method Deskripsi
value()
mengembalikan representasi Numpy dari
DataFrame yaitu hanya nilai dalam DataFrame
yang akan dikembalikan
sort_values()
Mengurutkan bingkai data dalam urutan Naik
atau Turun dari Kolom yang dilewati
loc[] Mengambil baris berdasarkan label indeks
iloc[] mengambil baris berdasarkan posisi indeks
42. Python menyertakan method built-in sebagai berikut:
Python Method Deskripsi
rename() Mengubah nama label indeks
columns() Mengubah nama kolom dalam dataframe
drop() Menghapus baris atau kolom dari DataFrame
dropna() Menghapus Baris/Kolom yang bernilai Null
fillna() Mengisi elemen Baris/Kolom yang bernilai Null
copy() Menduplikasi dataframe