Python - Dictionaries Bersarang

Hai di sana, para pemrogram berbakat! Hari ini, kita akan menyelam ke atas dunia yang menarik tentang dictionaries bersarang di Python. Jangan khawatir jika kamu baru mengenal pemrograman - saya akan membimbing kamu melalui topik ini langkah demi langkah, sama seperti saya telah lakukan untuk banyak pelajar selama tahun-tahun pengajaran saya. Jadi, ambil minuman kesukaan kamu, Duduklah dengan santai, dan mari kita melakukan perjalanan Python ini bersama-sama!

Python - Nested Dictionaries

Dictionaries Bersarang

Apa itu Dictionaries Bersarang?

Bayangkan kamu memiliki rak besar (yang merupakan dictionary utama), dan di dalam rak ini, kamu memiliki beberapa rak kecil (yang merupakan dictionaries bersarang). Setiap rak kecil ini dapat mengandungi beberapa item (pasangan kunci-nilai). Itulah konsep dasar dictionaries bersarang - sebuah dictionary di dalam dictionary.

Mari kita mulai dengan contoh sederhana:

student = {
"name": "Alice",
"age": 20,
"grades": {
"math": 95,
"science": 88,
"history": 92
}
}

Dalam contoh ini, student adalah dictionary utama kita. Ini mengandung informasi dasar tentang Alice, termasuk dictionary bersarang grades yang menampilkan nilai-nilai dia dalam mata pelajaran berbeda.

Membuat Dictionaries Bersarang di Python

Membuat dictionaries bersarang sama seperti membuat dictionary biasa, tetapi kamu menambahkan dictionary lain sebagai nilai. Mari kita buat contoh yang lebih kompleks - sebuah direktori sekolah:

school = {
"Kelas 9": {
"Alice": {
"age": 14,
"subjects": ["Math", "Science", "English"]
},
"Bob": {
"age": 15,
"subjects": ["History", "Art", "PE"]
}
},
"Kelas 10": {
"Charlie": {
"age": 16,
"subjects": ["Physics", "Chemistry", "Biology"]
}
}
}

Di sini, kita memiliki dictionary utama school, yang mengandung tingkatan kelas sebagai kunci. Setiap tingkatan kelas adalah dictionary lain yang mengandung nama pelajar sebagai kunci. Setiap pelajar kemudian memiliki dictionary mereka sendiri dengan informasi pribadi.

Menambah Item ke Dictionaries Bersarang di Python

Menambah item ke dictionaries bersarang adalah mudah. Kamu dapat menambah pasangan kunci-nilai baru ke dalam dictionary bersarang yang sudah ada atau membuat dictionary bersarang baru.

Mari kita tambahkan pelajar baru ke Kelas 10:

school["Kelas 10"]["Diana"] = {
"age": 15,
"subjects": ["Math", "Computer Science", "Literature"]
}

print(school["Kelas 10"])

Output:

{
'Charlie': {'age': 16, 'subjects': ['Physics', 'Chemistry', 'Biology']},
'Diana': {'age': 15, 'subjects': ['Math', 'Computer Science', 'Literature']}
}

Kami juga dapat menambah tingkatan kelas baru:

school["Kelas 11"] = {
"Eve": {
"age": 17,
"subjects": ["Economics", "Psychology", "French"]
}
}

print(school.keys())

Output:

dict_keys(['Kelas 9', 'Kelas 10', 'Kelas 11'])

Mengakses Item Dictionaries Bersarang di Python

Untuk mengakses item di dictionaries bersarang, kita menggunakan tanda kurung siku beberapa kali, masing-masing mewakili tingkat penyusunan. Mari kita ambil beberapa informasi dari dictionary school kita:

# Mendapatkan umur Alice
alice_age = school["Kelas 9"]["Alice"]["age"]
print(f"Umur Alice: {alice_age}")

# Mendapatkan mata pelajaran Charlie
charlie_subjects = school["Kelas 10"]["Charlie"]["subjects"]
print(f"Mata pelajaran Charlie: {charlie_subjects}")

Output:

Umur Alice: 14
Mata pelajaran Charlie: ['Physics', 'Chemistry', 'Biology']

Ingat, jika kamu tidak yakin tentang struktur dictionaries bersarang kamu, kamu dapat selalu menggunakan metode get() untuk menghindari pengecualian KeyError:

# Meng cuba untuk mendapatkan pelajar yang tidak ada
frank_age = school.get("Kelas 9", {}).get("Frank", {}).get("age", "Tidak ditemukan")
print(f"Umur Frank: {frank_age}")

Output:

Umur Frank: Tidak ditemukan

Menghapus Dictionary dari Dictionaries Bersarang

Untuk menghapus dictionary bersarang, kita menggunakan kata kunci del. Mari kita hapus Bob dari Kelas 9:

del school["Kelas 9"]["Bob"]
print(school["Kelas 9"])

Output:

{'Alice': {'age': 14, 'subjects': ['Math', 'Science', 'English']}}

Hati-hati saat menghapus item dari dictionaries bersarang. Selalu pastikan bahwa kunci tersebut ada untuk menghindari pengecualian KeyError.

Mengulang Dictionaries Bersarang di Python

Mengulang dictionaries bersarang memerlukan pengulangan bersarang. Mari kita cetak semua informasi di dictionary school kita:

for grade, students in school.items():
print(f"\n{grade}:")
for student, info in students.items():
print(f"  {student}:")
for key, value in info.items():
print(f"    {key}: {value}")

Output:

Kelas 9:
Alice:
age: 14
subjects: ['Math', 'Science', 'English']

Kelas 10:
Charlie:
age: 16
subjects: ['Physics', 'Chemistry', 'Biology']
Diana:
age: 15
subjects: ['Math', 'Computer Science', 'Literature']

Kelas 11:
Eve:
age: 17
subjects: ['Economics', 'Psychology', 'French']

Struktur pengulangan bersarang ini memungkinkan kita untuk mengakses dan mencetak semua tingkat dari dictionaries bersarang kita.

Metode untuk Bekerja dengan Dictionaries Bersarang

Berikut adalah tabel metode yang berguna untuk bekerja dengan dictionaries bersarang:

Metode Keterangan
dict.items() Mengembalikan objek tampilan yang berisi pasangan kunci-nilai dari dictionary
dict.keys() Mengembalikan objek tampilan yang berisi kunci dari dictionary
dict.values() Mengembalikan objek tampilan yang berisi nilai-nilai dari dictionary
dict.get(key, default) Mengembalikan nilai untuk kunci yang ditentukan jika ada, jika tidak mengembalikan nilai default
dict.update(other_dict) Memperbarui dictionary dengan elemen dari dictionary lain atau urutan pasangan kunci-nilai
dict.pop(key, default) Menghapus dan mengembalikan nilai untuk kunci yang ditentukan. Jika kunci tidak ada, mengembalikan nilai default

Ingat, metode ini dapat diterapkan pada setiap tingkat dari dictionaries bersarang.

Dan itu semua, para pelajar tercinta saya! Kita telah menjelajahi masalah-masalah tentang dictionaries bersarang di Python. Dari membuat dan menambahkan item ke mengakses, menghapus, dan mengulang mereka, kamu sekarang memiliki alat untuk bekerja dengan struktur data kompleks ini.

Seperti dengan setiap konsep pemrograman, praktek adalah kunci. Cobalah untuk membuat dictionaries bersarang kamu sendiri, mungkin sebuah katalog perpustakaan digital atau buku resep. Semakin banyak kamu bermain dengan struktur ini, semakin nyaman kamu akan menjadi.

Ingat, di dunia pemrograman, kesalahan adalah hanya kesempatan untuk belajar. Jadi jangan takut untuk bereksperimen dan membuat kesalahan - itulah cara kita semua tumbuh sebagai pemrogram. Tetap untuk mengoding, terus belajar, dan yang paling penting, bersenang-senanglah dengan Python!

Credits: Image by storyset