Struktur Data dengan Python – Panduan Lengkap
Diterbitkan: 2021-06-14Daftar isi
Apa itu Struktur Data?
Struktur data mengacu pada penyimpanan komputasi data untuk penggunaan yang efisien. Ini menyimpan data dengan cara yang dapat dengan mudah dimodifikasi dan diakses. Secara kolektif mengacu pada nilai data, hubungan di antara mereka, dan operasi yang dapat dilakukan pada data. Pentingnya struktur data terletak pada aplikasinya untuk mengembangkan program komputer. Karena program komputer sangat bergantung pada data, pengaturan data yang tepat untuk akses mudah adalah yang terpenting terhadap program atau perangkat lunak apa pun.
Empat fungsi utama dari struktur data adalah:
- Untuk memasukkan informasi
- Untuk memproses informasi
- Untuk menjaga informasi
- Untuk mengambil informasi
Jenis struktur Data dalam Python
Beberapa struktur data didukung oleh Python untuk kemudahan akses dan penyimpanan data. Tipe struktur data Python dapat diklasifikasikan sebagai tipe data primitif dan non-primitif. Tipe data sebelumnya termasuk Integer, Float, Strings, dan Boolean, sedangkan yang terakhir adalah array, daftar, tupel, kamus, set, dan File. Oleh karena itu, struktur data dalam python adalah struktur data bawaan dan struktur data yang ditentukan pengguna. Struktur data bawaan disebut sebagai struktur data non-primitif.
Struktur Data bawaan
Python memiliki beberapa struktur data yang bertindak sebagai wadah untuk penyimpanan data lain. Struktur data python ini adalah List, Dictionaries, Tuple, dan Sets.
Struktur data yang ditentukan pengguna
Struktur data ini dapat diprogram sebagai fungsi yang sama dengan struktur data bawaan di python . Struktur data yang ditentukan pengguna adalah; Linked List, Stack, Queue, Tree, Graph, dan Hashmap.
Daftar struktur data dan penjelasannya
1. Daftar
Data yang disimpan dalam daftar disusun secara berurutan dan dari tipe data yang berbeda. Untuk setiap data, alamat diberikan dan dikenal sebagai indeks. Nilai indeks dimulai dengan 0 dan berlanjut hingga elemen terakhir. Ini disebut indeks positif. Indeks negatif juga ada jika elemen diakses secara terbalik. Ini disebut pengindeksan negatif.
Pembuatan daftar
Daftar dibuat sebagai tanda kurung siku. Elemen kemudian dapat ditambahkan sesuai. Itu dapat ditambahkan di dalam tanda kurung siku untuk membuat daftar. Jika tidak ada elemen yang ditambahkan, daftar kosong akan dibuat. Jika tidak, elemen dalam daftar akan dibuat.
Memasukkan my_list = [] #buat daftar kosong cetak(daftar_saya) my_list = [1, 2, 3, 'contoh', 3.132] #membuat daftar dengan data cetak(daftar_saya) | Keluaran [] [1, 2, 3, 'contoh', 3.132] |
Menambahkan elemen dalam daftar
Tiga fungsi digunakan untuk penambahan elemen dalam daftar. Fungsi-fungsi tersebut adalah append(), extend(), dan insert().
- Semua elemen ditambahkan sebagai elemen tunggal menggunakan fungsi append().
- Untuk menambahkan elemen satu per satu dalam daftar, fungsi extend() digunakan.
- Untuk menambahkan elemen berdasarkan nilai indeksnya, fungsi insert() digunakan.
Memasukkan daftar_saya = [1, 2, 3] cetak(daftar_saya) my_list.append([555, 12]) #tambahkan sebagai elemen tunggal cetak(daftar_saya) my_list.extend([234, 'more_example']) #tambahkan sebagai elemen yang berbeda cetak(daftar_saya) my_list.insert(1, 'insert_example') #tambahkan elemen i cetak(daftar_saya) | Keluaran: [1, 2, 3] [1, 2, 3, [555, 12]] [1, 2, 3, [555, 12], 234, 'more_example'] [1, 'insert_example', 2, 3, [555, 12], 234, 'more_example'] |
Penghapusan elemen dalam daftar
Kata kunci bawaan "del" dalam python digunakan untuk menghapus elemen dari daftar. Namun, fungsi ini tidak mengembalikan elemen yang dihapus.
- Untuk mengembalikan elemen yang dihapus, fungsi pop() digunakan. Ini menggunakan nilai indeks elemen yang akan dihapus.
- Fungsi remove() digunakan untuk menghapus elemen berdasarkan nilainya.
Keluaran:
[1, 2, 3, 'contoh', 3.132, 30]
[1, 2, 3, 3.132, 30]
Elemen yang Muncul: 2 Daftar tersisa: [1, 3, 3.132, 30]
[]
Menilai elemen dalam daftar
- Menilai elemen dalam daftar itu sederhana. Mencetak daftar akan langsung menampilkan elemen.
- Elemen tertentu dapat dinilai dengan melewati nilai indeks.
Keluaran:
1
2
3
contoh
3.132
10
30
[1, 2, 3, 'contoh', 3.132, 10, 30]
Contoh
[1, 2]
[30, 10, 3.132, 'contoh', 3, 2, 1]
Selain operasi yang disebutkan di atas, beberapa fungsi bawaan lainnya tersedia di python untuk bekerja dengan daftar.
- len(): fungsi ini digunakan untuk mengembalikan panjang daftar.
- index(): fungsi ini memungkinkan pengguna untuk mengetahui nilai indeks dari suatu nilai yang dilewatkan.
- count() fungsi digunakan untuk menemukan jumlah nilai yang diteruskan ke sana.
- sort() mengurutkan nilai dalam daftar dan memodifikasi daftar.
- sort() mengurutkan nilai dalam daftar dan mengembalikan daftar.
Keluaran
6
3
2
[1, 2, 3, 10, 10, 30]
[30, 10, 10, 3, 2, 1]
2. Kamus
Kamus adalah jenis struktur data di mana pasangan kunci-nilai disimpan daripada elemen tunggal. Hal ini dapat dijelaskan dengan contoh direktori telepon yang memiliki semua nomor individu beserta nomor teleponnya. Nama dan nomor telepon di sini mendefinisikan nilai konstan yang merupakan “kunci” dan nomor serta nama semua individu sebagai nilai untuk kunci tersebut. Menilai kunci akan memberikan akses ke semua nilai yang disimpan di dalam kunci itu. Struktur nilai kunci yang ditentukan pada Python ini dikenal sebagai kamus.
Pembuatan kamus
- Kawat gigi bunga menganggur fungsi dict() dapat digunakan untuk membuat kamus.
- Pasangan nilai kunci harus ditambahkan saat membuat kamus.
Modifikasi dalam pasangan nilai kunci
Setiap modifikasi dalam kamus hanya dapat dilakukan melalui kunci. Oleh karena itu, kunci harus diakses terlebih dahulu dan kemudian modifikasi dilakukan.
Memasukkan my_dict = {'First': 'Python', 'Second': 'Java'} print(my_dict) my_dict['Second'] = 'C++' #mengubah elemen print(my_dict) my_dict['Third'] = 'Ruby' #menambahkan cetak pasangan nilai kunci(my_dict) | Keluaran: {'Pertama': 'Python', 'Kedua': 'Java'} {'Pertama': 'Python', 'Kedua': 'C++'} {'Pertama': 'Python', 'Kedua': 'C++', 'Ketiga': 'Ruby'} |
Penghapusan kamus
Fungsi clear () digunakan untuk menghapus seluruh kamus. Kamus dapat dinilai melalui kunci menggunakan fungsi get() atau meneruskan nilai kunci.
Memasukkan dict = {'Bulan': 'Januari', 'Musim': 'musim dingin'} print(dict['Pertama']) print(dict.get('Kedua') | Keluaran Januari Musim dingin |
Fungsi lain yang terkait dengan kamus adalah keys(), values(), dan items().
3. Tupel
Mirip dengan daftar, Tuple adalah daftar penyimpanan data, tetapi satu-satunya perbedaan adalah bahwa data yang disimpan dalam tupel tidak dapat dimodifikasi. Jika data di dalam tupel dapat diubah, baru kemudian dimungkinkan untuk mengubah data.
- Tuples dapat dibuat melalui fungsi Tuple().
Memasukkan
new_tuple = (10, 20, 30, 40)
cetak(tupel_baru)
Keluaran
(10, 20, 30, 40)
- Elemen dalam tuple dapat dinilai dengan cara yang sama seperti menilai elemen dalam daftar.
Memasukkan
new_tuple2 = (10, 20, 30, 'umur')
untuk x di new_tuple2:
cetak (x)
cetak(new_tuple2)
cetak(new_tuple2[0])
Keluaran
10
20
30
Usia
(10, 20, 30, 'usia')
10
- Operator '+' digunakan untuk menambahkan tupel lain
Memasukkan
tupel = (1, 2, 3)
tupel = tupel + (4, 5, 6
cetak (tupel)
Keluaran
(1, 2, 3, 4, 5, 6)
4. Setel
Struktur data himpunan mirip dengan himpunan aritmatika. Ini pada dasarnya adalah kumpulan elemen unik. Jika data terus berulang, maka set pertimbangkan untuk menambahkan elemen itu hanya sekali.
- Satu set dapat dibuat hanya dengan meneruskan nilai ke dalam kurung bunga.
Memasukkan
himpunan = {10, 20, 30, 40, 40, 40}
cetak (set)
Keluaran
{10, 20, 30, 40}
- Fungsi add() dapat digunakan untuk menambahkan elemen ke set.
- Untuk menggabungkan data dari dua set, fungsi union() dapat digunakan.
- Untuk mengidentifikasi data yang ada di kedua set, fungsi interseksi() digunakan.
- Fungsi perbedaan () hanya mengeluarkan data yang unik untuk set, menghapus data umum.
- Fungsi symmetric_difference() mengeluarkan data unik untuk kedua set.
Daftar struktur data yang ditentukan pengguna dan penjelasannya
1. Tumpukan
Tumpukan adalah struktur linier yang merupakan struktur Last in First out (LIFO) atau First in Last Out (FIFO). Dua operasi utama yang ada di stack yaitu push dan pop. Push berarti menambahkan elemen di bagian atas daftar sedangkan pop berarti menghapus elemen dari bagian bawah tumpukan. Prosesnya dijelaskan dengan baik pada Gambar 1.
Kegunaan tumpukan
- Unsur-unsur sebelumnya dapat dinilai melalui penelusuran ke belakang.
- Pencocokan elemen rekursif.
Sumber
Gambar 1: Representasi grafis dari Stack
Contoh
Keluaran
['pertama kedua ketiga']
['pertama kedua ketiga keempat Kelima']
kelima
['pertama kedua ketiga keempat']
2. Antrian
Mirip dengan tumpukan, antrian adalah struktur linier yang memungkinkan penyisipan elemen di satu ujung dan penghapusan dari ujung lainnya. Kedua operasi tersebut dikenal sebagai enqueue dan dequeue. Elemen yang baru ditambahkan dihapus terlebih dahulu seperti tumpukan. Representasi grafis dari antrian ditunjukkan pada Gambar 2. Salah satu kegunaan utama dari antrian adalah untuk memproses sesuatu segera setelah mereka masuk.
Sumber
Gambar 2 : Representasi grafis dari Antrian
Contoh
Keluaran
['pertama kedua ketiga']
['pertama kedua ketiga keempat Kelima']
pertama
kelima
['kedua', 'ketiga', 'keempat', 'kelima']
3. Pohon
Pohon adalah struktur data non-linier dan hierarkis yang terdiri dari simpul yang dihubungkan melalui tepi. Struktur data pohon python memiliki simpul akar, simpul induk, dan simpul anak. Root adalah elemen paling atas dari struktur data. Pohon biner adalah struktur di mana elemen tidak memiliki lebih dari dua simpul anak.
Kegunaan sebuah pohon
- Menampilkan hubungan struktural elemen data.
- Traversal melalui setiap node secara efisien
- Pengguna dapat menyisipkan, mencari, mengambil dan menghapus data.
- Struktur data yang fleksibel
Gambar 3: Representasi grafis dari sebuah pohon
Sumber
Contoh:
Keluaran
Pertama
Kedua
Ketiga
4. Grafik
Struktur data non-linear lainnya dalam python adalah grafik yang terdiri dari node dan edge. Secara grafis ini menampilkan satu set objek, dengan beberapa objek yang terhubung melalui tautan. Simpul adalah objek yang saling berhubungan sedangkan tautannya disebut sebagai tepi. Representasi graf dapat dilakukan melalui struktur data kamus python, di mana kunci mewakili simpul dan nilai mewakili tepi.
Operasi dasar yang dapat dilakukan pada grafik
- Tampilkan simpul dan tepi grafik.
- Penambahan simpul.
- Penambahan tepi.
- Pembuatan grafik
Kegunaan Grafik
- Representasi grafik mudah dipahami dan diikuti.
- Ini adalah struktur yang bagus untuk mewakili hubungan terkait yaitu teman-teman Facebook.
Gambar 4: Representasi grafis dari grafik
Sumber
Contoh
g = grafik(4)
g.tepi (0, 2)
g.tepi(1, 3)
g.tepi(3, 2)
g.tepi (0, 3)
g.__repr__()
Keluaran
Daftar ketetanggaan simpul 0
kepala -> 3 -> 2
Daftar ketetanggaan simpul 1
kepala -> 3
Daftar ketetanggaan simpul 2
kepala -> 3 -> 0
Daftar ketetanggaan simpul 3
kepala -> 0 -> 2 -> 1
5. Hashmap
Hashmap adalah struktur data python yang diindeks yang berguna untuk penyimpanan pasangan nilai kunci. Data yang disimpan dalam hashmaps diambil melalui kunci yang dihitung melalui bantuan fungsi hash. Jenis struktur data ini berguna untuk penyimpanan data siswa, detail pelanggan, dll. Kamus dengan python adalah contoh peta hash.
Contoh
Keluaran
0 -> pertama
1 -> detik
2 -> ketiga
0 -> pertama
1 -> detik
2 -> ketiga
3 -> keempat
0 -> pertama
1 -> detik
2 -> ketiga
Kegunaan
- Ini adalah metode yang paling fleksibel dan dapat diandalkan untuk mengambil informasi daripada struktur data lainnya.
6. Daftar tertaut
Ini adalah jenis struktur data linier. Pada dasarnya, ini adalah serangkaian elemen data yang digabungkan melalui tautan dengan python. Elemen dalam daftar tertaut terhubung melalui pointer. Node pertama dari struktur data ini disebut sebagai header dan node terakhir disebut sebagai tail. Oleh karena itu, daftar tertaut terdiri dari node yang memiliki nilai, dan setiap node terdiri dari pointer yang terhubung ke node lain.
Kegunaan daftar tertaut
- Dibandingkan dengan array yang diperbaiki, daftar tertaut adalah bentuk entri data yang dinamis. Memori disimpan karena mengalokasikan memori node. Saat berada dalam array, ukurannya harus ditentukan sebelumnya, yang menyebabkan pemborosan memori.
- Daftar Tertaut dapat disimpan di mana saja di memori. Sebuah node daftar tertaut dapat diperbarui dan dipindahkan ke lokasi yang berbeda.
Gambar 6: Representasi grafis dari Linked List
Sumber
Contoh
Keluaran:
['pertama kedua ketiga']
['pertama', 'kedua', 'ketiga', 'keenam', 'keempat', 'kelima']
['pertama', 'ketiga', 'keenam', 'keempat', 'kelima']
Kesimpulan
Berbagai jenis struktur data dalam python telah dieksplorasi. Baik pemula atau ahli, struktur data dan algoritme tidak dapat diabaikan. Saat melakukan segala bentuk operasi pada data, konsep struktur data memainkan peran penting. Struktur data membantu dalam menyimpan informasi secara terorganisir, sedangkan algoritme membantu memandu seluruh analisis data. Oleh karena itu, baik struktur data dan algoritma python membantu ilmuwan komputer atau pengguna mana pun untuk memproses data mereka.
Jika Anda penasaran untuk mempelajari tentang struktur data, lihat Program PG Eksekutif IIIT-B & upGrad dalam Ilmu Data yang dibuat untuk para profesional yang bekerja dan menawarkan 10+ studi kasus & proyek, lokakarya praktis, bimbingan dengan pakar industri, 1 -on-1 dengan mentor industri, 400+ jam pembelajaran dan bantuan pekerjaan dengan perusahaan-perusahaan top.
Struktur data mana yang lebih cepat dengan Python?
Dalam kamus, pencarian lebih cepat karena Python menggunakan tabel hash untuk mengimplementasikannya. Jika kita menggunakan konsep Big O untuk mengilustrasikan perbedaan, kamus memiliki kompleksitas waktu yang konstan, O(1), sedangkan daftar memiliki kompleksitas waktu linier, O(n).
Di Python, kamus adalah cara tercepat untuk mencari data dengan ribuan entri sering. Kamus sangat dioptimalkan karena mereka adalah tipe pemetaan bawaan di Python. Namun, dalam kamus dan daftar, ada pertukaran ruang-waktu yang umum. Ini menunjukkan bahwa meskipun kita dapat mengurangi waktu yang diperlukan untuk pendekatan kita, kita perlu menggunakan lebih banyak ruang memori.
Dalam daftar, untuk mendapatkan apa yang Anda inginkan, Anda harus melalui daftar lengkap. Kamus, di sisi lain, akan mengembalikan nilai yang Anda cari tanpa melihat semua kunci.
Mana yang lebih cepat dalam daftar atau larik Python?
Secara umum, daftar Python sangat fleksibel dan dapat menampung data acak yang sepenuhnya heterogen, serta ditambahkan dengan cepat dan dalam perkiraan waktu yang konstan. Mereka adalah cara untuk pergi jika Anda perlu berhemat dan memperluas daftar Anda dengan cepat dan tanpa rasa sakit. Namun, mereka mengambil lebih banyak ruang daripada array, sebagian karena setiap item dalam daftar memerlukan pembuatan objek Python yang terpisah.
Di sisi lain, tipe array.array pada dasarnya adalah pembungkus tipis di sekitar array C. Itu hanya dapat membawa data yang homogen (yaitu, data dari jenis yang sama), maka memori terbatas pada ukuran(satu objek) * panjang byte.
Apa perbedaan antara array dan daftar NumPy?
Numpy adalah paket inti komputasi ilmiah Python. Ia menggunakan objek array multidimensi yang besar serta utilitas untuk memanipulasinya. Array numpy adalah kisi dengan nilai tipe identik yang diindeks oleh tupel bilangan bulat non-negatif.
Daftar disertakan dalam pustaka inti Python. Daftar mirip dengan array di Python, tetapi dapat diubah ukurannya dan berisi elemen dari berbagai jenis. Apa perbedaan nyata di sini? Kinerja adalah jawabannya. Struktur data numpy lebih efisien dalam hal ukuran, kinerja, dan fungsionalitas.