Belajar Python Dasar. Pembahasan Struktur Data List, Tuples, Counters, Dictionaries, Sets

 

Kali ini kita akan belajar bersama apa itu data struktur dalam python berupa list, tuples, counters, dictionaries, dan sets. Yang membedakan antara stuktur data dan tipe data adalah struktur data merupakan sekumpulana data yang bisa kita manipulasi sedangkan tipe data adalah sebuah tipe dari masukkan atau keluaran data yang telah atau yang belum diproses.

Apa Itu Struktur Data?

Menurut Wikipedia, Struktur Data adalah cara menyimpan dan mengatur data secara terstruktur pada sistem komputer atau pangkalan data sehingga lebih mudah diakses.

Struktur data sangat penting untuk kita sebagai programmer mengolah data yang ingin diproses dan menyebarkan data data yang ada ke dalam view (jika kamu adalah seorang programmer)

Sebagai Data Scientist, memahami struktur data sangatlah penting karena berbagai bentuk stuktur data ini mempengaruhi proses kita mencari insight dari dalam dataset

Katakanlah kita ingin memproses dataset dari file csv yang mempunyai kolom nama, kelas, id, jenis kelamin, dan score. Sedangkan beberapa module ada yang tidak mau menerima inputan bentuk data seperti ini, kita harus menerjemahkannya terlebih dahulu menjadi struktur data tertentu seperti array, object. Atau dalam bahasa python terdapat struktur data yang namanya berbeda namun secara konsep mirip dengan bahasa pemograman lainnya.

Kita akan membahasnya di bawah

 

Baca Juga: Cara Mengubah Isi Teks Menjadi Dictionary Dengan Python

 

List

List bisa jadi merupakan struktur data yang akan sering kita gunakan. Konsep list mirip sekali dengan array, namun list memiliki kemampuan yang berbeda

Dalam list kita bisa mencampurkan value valuenya dengan tipe data yang sama dan berbeda beda

integer_list = [1,2,3,4,5,6,7]
campuran_list = [1,"string", True]
list_of_list = [integer_list, campuran_list]

 

Kita juga bisa mengambil value berdasarkan index-nya

print(integer_list[0])

 

Salah satu fitur menarik dari list adalah kita bisa melakukan slicing list, dimana kita bisa semacam membelah dan memilah range data yang kita inginkan. Untuk mempermudah saya akan memvisualisasikannya lewat gambar

Misalkan saya mempunya integer_list = [1,2,3,4,5,6,7]

Output: [1, 2, 3]

 Output: [4, 5, 6, 7]

 

 

Output: [2, 3, 4, 5]

 

Output: [5, 6, 7]

Output: [2, 3, 4, 5, 6]


Tuples

Bisa dibilang Tuples adalah versi List yang immutable. Apa artinya? Tuples tidak bisa diubah isinya, namun tuple sangat bermanfaaat jika kita ingin mereturn sebuah value dari sebuah function

 

Ketika kita ingin mengubah nilai dalam tuple, akan terdapat error. Nah, untuk mengcustom pesan error dari kita sendiri, kita bisa menggunakan exception yang pernah kita pelajari sebelumnya

my_list = [1,2]
my_tuples = (3,4)

try:
    my_tuples[0] = 1
except TypeError:
    print("Tuples cannot be modified")


Kita coba menggunakan tuple sebagai return value

def sum_numbers(x, y):
    return (x+y), (y-x)

a, b = sum_numbers(4,5)

print(a)
print(b)


Baca Juga: Belajar Python Dasar. Pembahasan Modules

Counters

Counter adalah sebuah modules dalam python untuk menghitung populasi dalam strukutur data kita yaitu berupa list. 

Misal kita ingin mengetahui berapa jumlah masing masing value pada list dibawah

from collections import Counter
c = Counter([0,0,2,3,3,3])
print(c)

Kita pun juga bisa menghitung jumlah masing masing kata. Berikut caranya

document = ["randomize", "randomly", "randomized", "randomness", "randomization", "randomly", "nonrandom", "pseudorandom", "randomizer", "randomly"]
 
word_counts = Counter(document)
 
for word, count in word_counts.most_common(3):
    print(word, count)

Ini sangat berfungsi ketika kita ingin menghitung dataset dan ingin mencari variabel dengan populasi terbanyak
 

Dictionaries 

Dictionaries adalah sebuah struktur data yang terdiri dari key dan value. Dictionaries bisa ditulis berikut
 
empty_dict = {}
empty_dict2 = dict()
 
grades = {"Joel":80, "Tim":95}

Dictionaries akan sering kita gunakan, dalam bahasa pemograman lain konsep struktur data ini mirip dengan object
 
Kita bisa mengecek isi value dalam dictionaries dengan cara berikut

has_joel_grade = "Joel" in grades
has_kate_grade = "Kate" in grades
 
Kode diatas akan memberikn output boolean, true atau false
 
Kita juga bisa mengambil value berdasarkan key dengan menggunakan get dan memberikan nilai default jika key tidak ditemukan
 
tim_grade = grades.get("Tim", 0)
kate_grade = grades.get("Kate", "Tidak ada")
no_ones_grade = grades.get("No one")
 
Kita bisa menambahkan key dan value baru dengan perintah berikut. Jika ternyata key sudah ada, maka value akan digantikan dengan value yang ditambahkan
 
grades["Tim"] = 199         # mengganti
grades["Albert"] = 200      # menambahkan

Terkadang kita ingin tau apa saja key atau value dari sebuah dictionaries. Kita bisa menggunakan function key, values dan items

tweet = {
"user" : "joelgrus",
"text" : "Data Science is Awesome",
"retweet_count" : 100,
"hashtags" : ["#data", "#science", "#datascience", "#awesome", "#yolo"]
}

tweet_keys = tweet.keys()
tweet_values = tweet.values()
tweet_items = tweet.items()

Untuk items kita bisa menggunakan for untuk memunculkan kedua key dan value

for key, value in tweet_items:
    print(f"Key: {key}, Value: {value}")

defaultdic

Dalam konsep dictionary, kita biasanya membutuhkan dict kosong untuk mengumpulkan data sementara untuk direturn dalam sebuah value
 
Kita bisa langsung saja menggunakan dict kosong seperti ini
 
words_count = {}
 
Kita akan menggunakan dict kosong ini untuk mencari jumlah kata yang ada dalam sebuah list (array)
 
document = ["randomize", "randomly", "randomized", "randomness", "randomization", "randomly", "nonrandom", "pseudorandom", "randomizer", "randomly"]

def count_word(document):
    words_counts = {}
    for word in document:
        if word in words_counts:
            words_counts[word] += 1
        else:
            words_counts[word] = 1
    return words_counts

print(count_word(document)) 

Kita juga bisa mengubah jenis dictionary ini dengan tipe tertentu misal integer, list, atau lambda
 
dd_list = defaultdict(list)
dd_list[2].append(1)
 
dd_list adalah strukut data list dan hanya akan menerima method list saja. Untuk memunculkan isi datanya dengan perintah berikut

print(dd_list)
 
Selain list kalian juga bisa menggunakan dict kosong dengan perintag berikut.
dd_dict = defaultdict(dict)

Sehingga kalian bisa menggunakan perintah perintah yang befungsi untuk dictionary
 
dd_dict["Joel"]["City"] = "New York"
 
print(dd_dict)
 
Selain itu, kita bisa menggunakan perintah lambda untuk menentukan strukur data yang kita inginkan. Misalnya, kalian ingin membuat struktur dict menggunakan struktur list [0.0] seperti ini
 
dd_lambda = defaultdict(lambda: [0,0])

dd_lambda[2][0] = 5 
 
print(dd_lambda)
 
 

Sets

Sets adalah tipe data yang berisi sekumpulan value seperti list namun bedanya setiap value tidak mempunya index. Sets jarang digunakan
 
primes = {2,3,5,7}

s.add(1)
s.add(2)
s.add(3) 

Untuk membuat Set kosong kita tidak bisa menggunakan kurung kurawal seperti ini {}, namun kita harus menggunakan sebuah kode set()

s = set()
 
Kita akan menggunakan set untuk mengumpulkan data dan hanya mengetahui saja jumlah, dan ada value apa saja di dalamnya

Misal kita punya data kata dalam sebuah list seperti berikut

word_list = ["a", "an", "at", "yet", "you", .......(ribuan string), "we" ]

Lalu kita ingin mengchek apakash ada kata "zip" di dalamnya

print("zip" in word_list)

Ada cara yang lebih cepat yaitu dengan menggunakan set. Karena set tidak mempunyai index sehingga bisa lebih cepat

stopwords_set = set(word_list)
print("zip" in stopwords_set)

Comments

Popular posts from this blog

Cara Mengatasi Hang/Freeze Pada Laptop Asus TUF Gaming

Cara Menjalankan PHP 8 & Laravel 9 Pada Laragon

Tutorial NextJS 13 & Typescript: Membuat Navbar Dengan Shadcn/UI