Jurnal Bagas

Berbagi coretan keseharian sebagai engineer
id en

Belajar Python - Dictionary

2022-03-07 5 menit Bagas Wibowo

Pengenalan

Dictionary merupakan salah satu tipe data collection yang ada di Python. Sebelumnya kita sudah membahas 3 dari 4 tipe data collection yang ada di Python, yaitu list, tuple, dan set. Dictionary memiliki karakteristik sebagai berikut:

  • Ordered
  • Changeable
  • Duplicates Not Allowed Yang membedakan tipe data dictionary dengan lainnya adalah, tipe data ini menggunakan konsep key:value untuk menyimpan data tiap elemennya. Dictionary dapat dibuat dengan memasukan key:value kedalam {} dan pemisahan antara key dan value menggunakan tanda :. Selain memiliki karakteristik diatas ada beberapa ketentuan dari dictionary sebagai berikut:
  • Kunci (key) harus berupa elemen tunggal.
  • Nilai (values) dapat berisi string, list, tuple, set, dan lainnya.

Membuat Dictionary

Sebuah dictionary dapat dibentuk menggunakan {key:value}, setiap elemen key harus bersifat unik ya. Untuk itu mari kita coba.

dict1 = {'f_name':'Bagas','l_name':'Wibowo'}
print(dict1)

Output

{'f_name': 'Bagas', 'l_name': 'Wibowo'}

Dari hasil diatas ktia bisa melihat output yang dihasilkan adalah output dari dictionary diatas adalah key beserta value dari keynya. Apabila kita ingin mengetahui key yang terdapat pada dictionary dapat menggunakan dict.keys() dan untuk menampilkan value saja yang ada pada dictionary tersebut dapat menggunakan dict.values()

dict1 = {'f_name':'Bagas','l_name':'Wibowo'}
print(dict1.keys())

Output

dict_keys(['f_name', 'l_name'])
dict1 = {'f_name':'Bagas','l_name':'Wibowo'}
print(dict1.values())

Output

dict_values(['Bagas', 'Wibowo'])

Nah untuk menampilkan value dari sebuah dictionary, keunggulannya adalah kita dapat mengakses nilai menggunakan key yang sudah didefinisikan. Contohnya saya ingin menampilkan value dari f_name dan l_name sebagai berikut:

print(dict1.get('f_name'))
print(dict1.get('l_name'))

Contoh teknik untuk membuat dictionary lainnya dapat dilakukan dengan mengonversi tipe data lain menjadi dictionary. Untuk itu mari kita coba.

key = ['f_name','l_name','age']
value = ['Bagas','Wibowo',21]
dict1 = dict(zip(key,value))
print(dict1)

Output

{'f_name': 'Bagas', 'l_name': 'Wibowo', 'age': 21}

Lalu seperti yang sudah disebutkan sebelumnya, value dari dictionary dapat beragam, semisal valuenya berupa list seperti contoh berikut:

score = [80,88,90,70]
student = {'name':'Bagas','score':score}
print(student)
{'name': 'Bagas', 'score': [80, 88, 90, 70]}

Lalu bagaimana kita dapat mengaksesnya nilai dari key score. Mari kita coba.

score = [80,88,90,70]
student= {'name':'Bagas','score':score}
print(student.get('score'))

Output

[80, 88, 90, 70]

Output yang dihasilkan berupa list, karena nilai dari score adalah berupa list. Lalu bisakah kita tetap mengakses elemen dari list tersebut? Jawabannya bisa. Mari kita coba.

score = [80,88,90,70]
student= {'name':'Bagas','score':score}
print(student.get('score')[0])

Output

80

Output yang dihasilkan yaitu elemen pada indeks[0] dari list score tersebut. Selain menggunakan fungsi .get() kita dapat mengakses nilai dari sebuah dictionary dapat menggunakan []. Contohnya sebagai berikut:

score = [80,88,90,70]
student= {'name':'Bagas','score':score}
print(student['name'])
print(student['score'])
print(student['score'][0])

Output

Bagas
[80, 88, 90, 70]
80

Modifikasi Dictionary

Dari cara-cara diatas kita sudah mengetahui bagaimana cara untuk membuat sebuah dictionary. Selanjutnya kita coba belajar bagaimana caranya mengubah isi dari dictionary. Untuk melakukan perubahan pada dictionary kita dapat menggunakan fungsi .update(). Mari kita coba.

dict1 = {'name':'Bagas','age':21}
print(dict1)
dict1.update({'last_name':'Wibowo'})
print(dict1)

Output

{'name': 'Bagas', 'age': 21}
{'name': 'Bagas', 'age': 21, 'last_name': 'Wibowo'}

Pada contoh diatas adalah ketika kita ingin menambahkan elemen baru pada sebuah dictionary. Lalu bagaimana jika elemen yang ditambahkan ada banyak? Apakah perlu menambahkan satu-persatu? Kita dapat juga menggabungkan antar dictionary menggunakan fungsi .update(). Mari kita coba.

name = {'f_name':'Bagas','l_name':'Wibowo'}
score = {'math':75,'Physic':80,'History':85}
print(name)
name.update(score)
print(name)

Output

{'f_name': 'Bagas', 'l_name': 'Wibowo'}
{'f_name': 'Bagas', 'l_name': 'Wibowo', 'math': 75, 'Physic': 80, 'History': 85}

Cara ini juga bisa digunakan semisal kita ingin mengganti sebuah key dengan key lainnya menggunakan nilai yang sama. Mari kita coba

score = {'math':75,'Physic':80,'History':85}
score.update({'Biology':score.pop('math')})
print(score)

Output

{'Physic': 80, 'History': 85, 'Biology': 75}

Dari cara tersebut kita menggunakan fungsi .pop() untuk menghapus elemen yang kita pilih dan memindahkan nilainya kepada key baru yang kita buat.

classroom = {
    'Math': {
        'Bagas': {
            'Score': 80
        },
        'Ari': {
            'Score': 75
        },
        'Wibowo': {
            'Score': 90
        }
    },
    'History': {
        'Bagas': {
            'Score': 87
        },
        'Ari': {
            'Score': 88
        },
        'Wibowo': {
            'Score': 78
        }
    }
}
print(classroom)

Pada contoh diatas, kita membuat nested dictionaries. Lalu bagaimana caranya untuk mengakses nilai-nilai yang ada dalam dictionaries tersebut. Mari kita coba

Melihat mata pelajaran tiap kelas

classroom = {
    'Math': {
        'Bagas': {
            'Score': 80
        },
        'Ari': {
            'Score': 75
        },
        'Wibowo': {
            'Score': 90
        }
    },
    'History': {
        'Bagas': {
            'Score': 87
        },
        'Ari': {
            'Score': 88
        },
        'Wibowo': {
            'Score': 78
        }
    }
}
print(classroom.keys())

Output

dict_keys(['Math', 'History'])

Melihat siswa yang ada di tiap kelas

classroom = {
    'Math': {
        'Bagas': {
            'Score': 80
        },
        'Ari': {
            'Score': 75
        },
        'Wibowo': {
            'Score': 90
        }
    },
    'History': {
        'Bagas': {
            'Score': 87
        },
        'Ari': {
            'Score': 88
        },
        'Wibowo': {
            'Score': 78
        }
    }
}
for course in classroom.keys():
    print(f'Siswa di Kelas {course}:')
    for student in classroom[course].keys():
        print(student)

Output

Siswa di Kelas Math:
Bagas
Ari
Wibowo
Siswa di Kelas History:
Bagas
Ari
Wibowo

Menampilkan nilai setiap siswa di kelas

classroom = {
    'Math': {
        'Bagas': {
            'Score': 80
        },
        'Ari': {
            'Score': 75
        },
        'Wibowo': {
            'Score': 90
        }
    },
    'History': {
        'Bagas': {
            'Score': 87
        },
        'Ari': {
            'Score': 88
        },
        'Wibowo': {
            'Score': 78
        }
    }
}
for course in classroom.keys():
    print(f'Siswa di Kelas {course}:')
    for student in classroom[course].keys():
        print(f'{student}({classroom[course][student]["Score"]})')

Output

Siswa di Kelas Math:
Bagas(80)
Ari(75)
Wibowo(90)
Siswa di Kelas History:
Bagas(87)
Ari(88)
Wibowo(78)

Kesimpulan

Dictionary merupakan salah satu tipe data collection yang ada di Python. Tipe data ini menggunakan konsep key:value untuk menyimpan data tiap elemennya. Kita dapat melakukan berbagai teknik untuk menyimpan data menggunakan dictionary ini karena nilai yang dapat ditampung dalam dictionary pun beragam.

Sekian bahasan kali ini tentang dictionary. Sampai ketemu lagi pada kesempatan berikutnya. Apabila ada kiritk, saran, ataupun masukan dapat menghubungi saya melalui halaman kontak diatas yaa. Terima kasih.