Wednesday, 18 March 2015

3.5. Dictionaries

Dictionaries ini berbeda, seperti map, tapi dictionaries menyimpan data dengan kata kunci nilai (bukan posisi seperti pada list), yang merupakan mapping objek yang bisa bermutasi seperti list. bisa juga berpindah tempat, mengecil. membesar sesuai permintaan. Juga sebagai alat yang sangat flexibel untuk mewakili koleksi.

Dictionaries akan lebih efektif karena dengan kata kunci, ketika suatu string diberi label atau dinamai. Pastinya kita pada mengerti semua ya?.  Semuanya terdengar seperti bla-bla-bla-bla bukan?

Dictionaries ditandai dengan tanda { }. Kita ke contoh saja. kita restart dulu IDLE nya Shell > Restart Shell , sekarang semua memory yang tadi kita lakukan sudah terhapus.
  • >>> daftarbelanja={ 'sayur':'kangkung' , 'banyak':'5' , 'satuan':'ikat' , 'harga/satuan':'500' } 
  • >>> daftarbelanja 
  • {'harga/satuan': '500', 'satuan': 'ikat', 'sayur': 'kangkung', 'banyak': '5'}
  • >>> daftarbelanja['sayur'] 
  • 'kangkung'
  • >>> daftarbelanja['satuan'] 
  • 'ikat'
  • >>> daftarbelanja['banyak'] 
  • '5'
  • >>> daftarbelanja['harga'] 
  • Traceback (most recent call last):
  •   File "<pyshell#43>", line 1, in <module>
  •     daftarbelanja['harga']
  • KeyError: 'harga'
  • >>> daftarbelanja['harga/satuan'] 
  • '500'
  • >>> print (daftarbelanja['sayur']) 
  • kangkung
  • >>>kamus=dict(daftarbelanja) 
  • >>> kamus 
  • {'harga/satuan': '500', 'satuan': 'ikat', 'sayur': 'kangkung', 'banyak': '5'}

Bila pada list kita memasukan nilai-nilainya saja, sehingga kita suatu hari nanti lupa apa artinya baris nilai tersebut. Dengan dictionaries kita dapat memasukan labelnya. Kita juga bisa mengisi dictionaries dengan mengumpulkan label jadi satu, dan nilai jadi satu dengan perintah 'zip':
  • >>> daftar=dict(zip(['nama', 

                  'banyak', 
                 'harga satuan'],[ 
                          'kangkung', 
                          5, 
                          500])) 
  • >>> daftar 
  • {'nama': 'kangkung', 'harga satuan': 500, 'banyak': 5}
  • >>> 

Sekarang kita buat dictionaries yang bertingkat, lebih komplek dari contoh diatas. Misalnya kita ingin menbuat list yang lebih informatif, seperti :

Mobil.  Buatan : Toyota, Type : Kijang, Model : Mini bus
Pembuatan. Tahun: 2015, Bulan: 6
Transmisi : Manual, 5 speed
Bahan bakar : Bensin

Kita ingin membuat 4 kata kunci (Mobil, Pembuatan, Tranmisi, dan Bahan bakar) tapi masalahnya ada 3 informasi yang harus dibagi lagi pada label Mobil yaitu Buatan, Type, dan Model. Begitu juga pada Pembuatan. Untuk dictionaries yang bertingkat ini kita buat seperti :
  • >>>mob1={'mobil':{'buatan':'toyota','type':'kijang','model':'minibus'}, 
  •       'pembuatan':{'tahun':2015,'bulan':6}, 
  •       'tranmisi':['manual','5 speed'], 
  •       'bahan bakar':'bensin'} 
  • >>> 

Untuk memanggilnya:
  • >>> mob1 
  • {'bahan bakar': 'bensin', 'pembuatan': {'tahun': 2015, 'bulan': 6}, 'mobil': {'type': 'kijang', 'buatan': 'toyota', 'model': 'minibus'}, 'tranmisi': ['manual', '5 speed']}
  • >>> mob1['mobil'] 
  • {'type': 'kijang', 'buatan': 'toyota', 'model': 'minibus'}
  • >>> mob1['mobil']['type'] 
  • 'kijang'
  • >>> mob1['pembuatan'] 
  • {'tahun': 2015, 'bulan': 6}
  • >>> mob1['pembuatan']['tahun'] 
  • 2015
  • >>> mob1['tranmisi'] 
  • ['manual', '5 speed']
  • >>> mob1['bahan bakar'] 
  • 'bensin'
  • >>> 

Pada mob1['tranmisi'] kita membuatnya menjadi list, dan bukan dictionaries yang ditandai dengan tanda '[ ]' sebagai list dan bukan '{ }' yang merupakan dictionaries. Bila kita ingin memangil salah satu dari tranmisi:
  • >>> mob1['tranmisi'][0] 
  • 'manual'
  • >>> mob1['tranmisi'][1] 
  • '5 speed'
  • >>> 

Berhubung tadi saya melakukan kesalahan, jadi ingat sesuatu yang penting. Di Python dalam penulisan merupakan case sensitif, yang artinya: huruf besar dan hurup kecil atau 'a' dan 'A' itu lain, tidak sama!. 
  •  >>> mob1['Tranmisi'][1] 
  • Traceback (most recent call last):
  •   File "<pyshell#26>", line 1, in <module>
  •     mob1['Tranmisi'][1]
  • KeyError: 'Tranmisi'
  • >>> 

Pada contoh diatas kita menuliskan kata 'Tranmisi' dengan hurup 'T' dan bukan 't', karena kita memasukan input pada mob1 menggunakan 't'. 

Kita juga bisa memodifikasi, menambah atau mengurangi nilai yang pada 'mob1' seperti dibawah ini:
  • >>> mob1['tranmisi'][0]='manual'
  • >>> mob1['tranmisi'][0]
  • 'manual'
  • >>> mob1['tranmisi'].append ('1 R')
  • >>> mob1['tranmisi']
  • ['manual', '5 speed', '1 R']
  • >>> 

Untuk list dapat ditambahkan dengan '.append'. Dan untuk dictionaries nya:
  • >>> mob1['tahun keluar']=2015
  • >>> mob1
  • {'bahan bakar': 'bensin', 'pembuatan': {'tahun': 2015, 'bulan': 6}, 'mobil': 'type': 'kijang', 'buatan': 'toyota', 'model': 'minibus'}, 'tranmisi': ['manual', '5 speed', '1 R'], 'tahun keluar': 2015}
  • >>> 

Untuk menghapus dictionaries:
  • >>> mob1.pop('tahun keluar')
  • 0
  • >>> mob1
  • {'bahan bakar': 'bensin', 'pembuatan': {'tahun': 2015, 'bulan': 6}, 'mobil': {'type': 'kijang', 'buatan': 'toyota', 'model': 'minibus'}, 'tranmisi': ['manual', '5 speed', '1 R']}
  • >>> 

No comments:

Post a Comment