Pada praktikum 9 - Tuple dan Dictionary, mahasiswa diharapkan:
Sebuah tupel adalah urutan objek Python yang tidak berubah. Tupel adalah urutan, seperti daftar. Perbedaan utama antara tupel dan daftarnya adalah bahwa tupel tidak dapat diubah tidak seperti List Python. Tupel menggunakan tanda kurung, sedangkan List Python menggunakan tanda kurung siku.
Membuat tuple semudah memasukkan nilai-nilai yang dipisahkan koma. Secara opsional, Anda dapat memasukkan nilai-nilai yang dipisahkan koma ini di antara tanda kurung juga. Sebagai contoh :
#Contoh sederhana pembuatan tuple pada bahasa pemrograman python
tup1 = ('sistem komputer', 'teknik informatika', 2008, 2017)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
print(tup1)
print(tup2)
print(tup3)
('sistem komputer', 'teknik informatika', 2008, 2017) (1, 2, 3, 4, 5) ('a', 'b', 'c', 'd')
Tupel kosong ditulis sebagai dua tanda kurung yang tidak berisi apa-apa, contohnya : tup1 = (); Untuk menulis tupel yang berisi satu nilai, Anda harus memasukkan koma, meskipun hanya ada satu nilai, contohnya : tup1 = (50,) Seperti indeks String, indeks tuple mulai dari 0, dan mereka dapat diiris, digabungkan, dan seterusnya
Untuk mengakses nilai dalam tupel, gunakan tanda kurung siku untuk mengiris beserta indeks atau indeks untuk mendapatkan nilai yang tersedia pada indeks tersebut. Sebagai contoh, dan setelah anda mengeksekusi kode tersebut, hasilnya akan seperti:
#Cara mengakses nilai tuple
tup1 = ('sistem komputer', 'teknik informatika', 2008, 2017)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])
tup1[0]: sistem komputer tup2[1:5]: (2, 3, 4, 5)
Tuple tidak berubah, yang berarti Anda tidak dapat memperbarui atau mengubah nilai elemen tupel. Anda dapat mengambil bagian dari tupel yang ada untuk membuat tupel baru seperti ditunjukkan oleh contoh berikut.
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# Aksi seperti dibawah ini tidak bisa dilakukan pada tuple python
# Karena memang nilai pada tuple python tidak bisa diubah
# tup1[0] = 100;
# Jadi, buatlah tuple baru sebagai berikut
tup3 = tup1 + tup2
print (tup3)
(12, 34.56, 'abc', 'xyz')
Menghapus elemen tuple individual tidak mungkin dilakukan. Tentu saja, tidak ada yang salah dengan menggabungkan tuple lain dengan unsur-unsur yang tidak diinginkan dibuang.
Untuk secara eksplisit menghapus keseluruhan tuple, cukup gunakan del statement. Sebagai contoh
tup4= ('fisika', 'kimia', 1993, 2017)
print(tup4)
del tup4
print("Setelah menghapus tuple : ")
print(tup4)
('fisika', 'kimia', 1993, 2017) Setelah menghapus tuple :
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-4-bdb18d417866> in <module> 4 del tup4 5 print("Setelah menghapus tuple : ") ----> 6 print(tup4) NameError: name 'tup4' is not defined
Tupel merespons operator + dan * sama seperti String; Mereka berarti penggabungan dan pengulangan di sini juga berlaku, kecuali hasilnya adalah tupel baru, bukan string.
Sebenarnya, Tuple merespons semua operasi urutan umum yang kami gunakan pada String di bab sebelumnya. Dibawah ini adalah tabel daftar operasi dasar pada Tuple python
Python Expression | Hasil | Penjelasan |
---|---|---|
len((1, 2, 3)) | 3 | Length |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | Concatenation |
('Halo!',) * 4 | ('Halo!', 'Halo!', 'Halo!', 'Halo!') | Repetition |
3 in (1, 2, 3) | True | Membership |
for x in (1,2,3) : print (x, end = ' ') | 1 2 3 | Iteration |
Karena tupel adalah urutan, pengindeksan dan pengiris bekerja dengan cara yang sama untuk tupel seperti pada String, dengan asumsi masukan berikut
Dengan asumsi input berikut : T = ('C++', 'Java', 'Python')
Python Expression | Hasil | Penjelasan |
---|---|---|
T[2] |
'Python' |
Offset mulai dari nol |
T[-2] |
'Java' |
Negatif: hitung dari kanan |
T[1:] |
('Java', 'Python') |
Slicing mengambil bagian |
Python menyertakan fungsi built-in sebagai berikut
Python Function | Penjelasan | |
---|---|---|
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 tuple menjadi tuple. |
#contoh penggunaan tuple
#program 1
#Create a tuple with different data types
print("program 1")
tuplex = ("tuple", False, 3.2, 1)
print(tuplex)
#program 2
print("program 2")
#Create a tuple with numbers
tuplex = 5, 10, 15, 20, 25
print(tuplex)
#Create a tuple of one item
tuplex = 5,
print(tuplex)
print("program 3")
#program 3
#create a tuple
tuplex = (4, 6, 2, 8, 3, 1)
print(tuplex)
#tuples are immutable, so you can not add new elements
#using merge of tuples with the + operator you can add an element and it will create a new tuple
tuplex = tuplex + (9,)
print(tuplex)
#adding items in a specific index
tuplex = tuplex[:5] + (15, 20, 25) + tuplex[:5]
print(tuplex)
#converting the tuple to list
listx = list(tuplex)
#use different ways to add items in list
listx.append(30)
tuplex = tuple(listx)
print(tuplex)
print("program 4")
#program 4
#create a tuple
tuplex = (4, 6, 2, 8, 3, 1)
print(tuplex)
#tuples are immutable, so you can not add new elements
#using merge of tuples with the + operator you can add an element and it will create a new tuple
tuplex = tuplex + (9,)
print(tuplex)
#adding items in a specific index
tuplex = tuplex[:5] + (15, 20, 25) + tuplex[:5]
print(tuplex)
#converting the tuple to list
listx = list(tuplex)
#use different ways to add items in list
listx.append(30)
tuplex = tuple(listx)
print(tuplex)
program 1 ('tuple', False, 3.2, 1) program 2 (5, 10, 15, 20, 25) (5,) program 3 (4, 6, 2, 8, 3, 1) (4, 6, 2, 8, 3, 1, 9) (4, 6, 2, 8, 3, 15, 20, 25, 4, 6, 2, 8, 3) (4, 6, 2, 8, 3, 15, 20, 25, 4, 6, 2, 8, 3, 30) program 4 (4, 6, 2, 8, 3, 1) (4, 6, 2, 8, 3, 1, 9) (4, 6, 2, 8, 3, 15, 20, 25, 4, 6, 2, 8, 3) (4, 6, 2, 8, 3, 15, 20, 25, 4, 6, 2, 8, 3, 30)
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, seperti ini: {}.
Nilai kamus bisa berupa tipe apa pun, namun key harus berupa tipe data yang tidak berubah seperti string, angka, atau tupel.
Untuk mengakses elemen Dictionary, Anda dapat menggunakan tanda kurung siku yang sudah dikenal bersama dengan key untuk mendapatkan nilainya. Berikut adalah contoh sederhananya :
#Contoh cara membuat Dictionary pada Python
dict = {'Name': 'Luffy', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
dict['Name']: Luffy dict['Age']: 7
Anda dapat memperbarui Dictionary dengan menambahkan entri baru atau pasangan nilai kunci, memodifikasi entri yang ada, atau menghapus entri yang ada seperti ditunjukkan pada contoh sederhana yang diberikan di bawah ini.
#Update dictionary python
dict = {'Name': 'Luffy', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # Mengubah entri yang sudah ada
dict['School'] = "Marijoa School" # Menambah entri baru
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
dict['Age']: 8 dict['School']: Marijoa School
Anda dapat menghapus elemen Dictionary individual atau menghapus keseluruhan isi Dictionary. Anda juga dapat menghapus seluruh Dictionary dalam satu operasi.
Untuk menghapus seluruh Dictionary secara eksplisit, cukup gunakan del statement. Berikut adalah contoh sederhana :
#Contoh cara menghapus pada Dictionary Python
dict = {'Name': 'Zara', 'Age': 7, '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'])
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-8-5010037b5ae2> in <module> 7 del dict # hapus dictionary yang sudah ada 8 ----> 9 print ("dict['Age']: ", dict['Age']) 10 print ("dict['School']: ", dict['School']) TypeError: 'type' object is not subscriptable
Python menyertakan fungsi built-in sebagai berikut :
Fungsi Python | Penjelasan |
---|---|
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. |
Python menyertakan method built-in sebagai berikut :
Method Python | Penjelasan |
---|---|
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) |
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 |
#contoh penggunaan dictionary
print("\ncontoh 1")
dic1={1:10, 2:20}
dic2={3:30, 4:40}
dic3={5:50,6:60}
dic4 = {}
for d in (dic1, dic2, dic3): dic4.update(d)
print(dic4)
print("\ncontoh 2")
d = {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60}
cek_angka = 3
if cek_angka in d:
print(cek_angka,' tersedia dalam dictionary')
else:
print(cek_angkat,'tidak tersedia dalam dictionary')
print("\ncontoh 3")
d1 = {'a': 100, 'b': 200}
d2 = {'x': 300, 'y': 200}
d = d1.copy()
d.update(d2)
print(d)
contoh 1 {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60} contoh 2 3 tersedia dalam dictionary contoh 3 {'a': 100, 'b': 200, 'x': 300, 'y': 200}
Catatan: gunakan python versi 3.x atau di atas nya
Jalankan program di atas di komputer anda, menggunakan pycharm, jupyter-notebook, jupyter-lab atau google colab
Buatlah program menggunakan list, dan materi sebelumnya dengan skenario sebagai berikut:
a. Program yang menampilkan isi dari sebuah tuple kemudian mengkonversikan ke format string, untuk keluarannya dapat di lihat pada gambar di bawah:a
b. Program yang menampilkan penjumlahkan bilangan yang ada pada dictionary, untuk keluarannya dapat di lihat pada gambar di bawah:
c. Program yang menampilkan hasil perkalian dari setiap dictionary yang ada, untuk keluarannya dapat di lihat pada video di bawah:
d. Program yang menghapus key pada sebuah dictionary kemudian menampilkan perbedaan antara dictionary pertama kemudian yang sudah berubah, untuk keluarannya dapat di lihat pada video di bawah:
e. Program permainan tebak nama binatang dalam bahasa inggris ke bahasa indonesia, untuk keluarannya dapat di lihat pada video di bawah:
Note: untuk dictionary nama binatang dapat anda gunakan dibawah ini:
"Ant": "Semut", "Bee": "Lebah", "Mosquito": "Nyamuk", "Butterfly": "Kupu-kupu",
"Spider": "Laba-laba", "Fly": "Lalat", "Hedgehog": "Landak", "Snail": "Siput",