#!/usr/bin/env python # coding: utf-8 # # Praktikum 9 - Tuple dan Dictionary # ## Tujuan & Manfaat # Pada praktikum 9 - Tuple dan Dictionary, mahasiswa diharapkan: # 1. Mahasiswa mengerti syntax operator pada python # 2. Mahasiswa dapat menjalankan program python menggunakan IDE, maupun di command prompt atau terminal # 3. Mahasiswa mengerti konsep dari Tuple dan Dictionary, serta perbedaan antara keduanya # 4. Mahasiswa dapat menerapkan dalam program # ## Tuple # # 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 : # In[1]: #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) # 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 # ### Akses Nilai Dalam Tuple Python # # 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: # In[2]: #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]) # ### Update Nilai Dalam Tuple Python # # 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. # In[3]: 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) # ### Hapus Nilai Dalam Tuple Python # # 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 # In[4]: tup4= ('fisika', 'kimia', 1993, 2017) print(tup4) del tup4 print("Setelah menghapus tuple : ") print(tup4) # ### Operasi Dasar Pada Tuple Python # # 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 | # # ### Indexing, Slicing dan Matrix Pada Tuple Python # # 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 | # # ### Fungsi Build-in Pada Tuple Python # # 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. | # # In[5]: #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) # ## Dictionary # # 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. # # ### Akses Nilai Dalam Dictionary Python # # Untuk mengakses elemen Dictionary, Anda dapat menggunakan tanda kurung siku yang sudah dikenal bersama dengan key untuk mendapatkan nilainya. Berikut adalah contoh sederhananya : # In[6]: #Contoh cara membuat Dictionary pada Python dict = {'Name': 'Luffy', 'Age': 7, 'Class': 'First'} print ("dict['Name']: ", dict['Name']) print ("dict['Age']: ", dict['Age']) # ### Update Nilai Dalam Dictionary Python # # 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. # In[7]: #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']) # ### Hapus Elemen Dictionary Python # # 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 : # In[8]: #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']) # ### Fungsi Build-in Pada Dictionary Python # # 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. | # # # ### Method Build-in Pada Dictionary Python # # 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 | # # In[9]: #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) # ## Latihan # **Catatan:** gunakan **python versi 3.x** atau di atas nya # 1. Jalankan program di atas di komputer anda, menggunakan pycharm, jupyter-notebook, jupyter-lab atau google colab # 2. 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 # ![modul-8](img/9a.png) # # b. Program yang menampilkan penjumlahkan bilangan yang ada pada dictionary, untuk keluarannya dapat di lihat pada gambar di bawah: # ![modul-8](img/9b.png) # # c. Program yang menampilkan hasil perkalian dari setiap dictionary yang ada, untuk keluarannya dapat di lihat pada video di bawah: # [![asciicast](https://asciinema.org/a/0c7D7bC8whcsh9CGfotoAIpK0.svg)](https://asciinema.org/a/0c7D7bC8whcsh9CGfotoAIpK0) # # 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: # [![asciicast](https://asciinema.org/a/61WsJcfDELUDDbBoSZumXw6vZ.svg)](https://asciinema.org/a/61WsJcfDELUDDbBoSZumXw6vZ) # # e. Program permainan tebak nama binatang dalam bahasa inggris ke bahasa indonesia, untuk keluarannya dapat di lihat pada video di bawah: # [![asciicast](https://asciinema.org/a/XU0gT8l3wmGpHwCub2BCDMybB.svg)](https://asciinema.org/a/XU0gT8l3wmGpHwCub2BCDMybB) # # **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", # ``` # # ### Format Laporan Praktikum # 1. Buatlah laporan program nomor 1 yang anda kerjakan di atas & nomor 2, dengan menggunakan pycharm, jupyter-lab, atau jupyter-notebook, dengan format laporan menampilkan # - Pendahuluan # - Tujuan dan manfaat # - Program # - Analisis program # - Referensi # 2. Upload file laporan praktikum kalian ke google classroom dengan format nama file **nim_anda_praktikum-9.pdf** -> **09081001009_praktikum-9.pdf** # # ## Referensi : # 1. Real Python - https://realpython.com #