• Tidak ada hasil yang ditemukan

Bab 8. Tipe Data Dinamis - Spada UNS

N/A
N/A
Protected

Academic year: 2024

Membagikan "Bab 8. Tipe Data Dinamis - Spada UNS"

Copied!
24
0
0

Teks penuh

(1)

68 | P a g e

bahwa suatu variabel bertipe data statis hanya bisa menyimpan sebuah nilai saja (single value).

Apabila variabel tersebut sudah terisi sebuah nilai dalamnya melalui proses assignment, maka nilai tersebut akan tertimpa dengan nilai yang baru jika diberikan proses assignment berikutnya terhadap variabel tersebut. Dengan kata lain, suatu variabel bertipe data statis tidak bisa menyimpan nilai lebih dari satu. Selanjutnya bagaimana caranya supaya sebuah variabel dapat digunakan untuk menyimpan lebih dari satu nilai? Tipe data apa yang digunakan? Solusi dari permasalahan ini adalah menggunakan tipe data dinamis.

Tipe data dinamis dapat digunakan untuk menyimpan beberapa nilai ke dalam sebuah variabel. Di dalam Python terdapat beberapa macam tipe data dinamis, yaitu list, set, tuple, dan dictionary.

Tipe Data List

List di dalam Python merupakan suatu nilai yang berisi beberapa nilai yang tersaji secara terurut. Nilai- nilai yang terdapat dalam list tidak harus bertipe data sama. List secara struktur mirip dengan tipe data array di dalam bahasa pemrograman lainnya, yaitu suatu variabel yang dapat digunakan untuk menyimpan beberapa nilai sekaligus. Namun perbedaan list di Python dengan array adalah bahwa dalam array nilai yang tersimpan di dalamnya harus bertipe data yang sama, misalnya array bertipe data integer maka nilai-nilainya harus berupa integer semuanya. Di dalam Python, tipe data array ini juga ada sebenarnya, namun tipe data ini bisa digunakan apabila menggunakan sebuah package/library tambahan, yaitu NumPy.

List memiliki kelebihan dibanding tipe data primitif biasa, yaitu sifat fleksibilitasnya sehingga kita bisa menyimpan banyak nilai sekaligus ke dalam sebuah variabel saja.

Perhatikan contoh permasalahan berikut ini yang menunjukkan bahwa penggunaan tipe data primitif pada sebuah variabel tunggal yang biasa digunakan memiliki kekurangan.

Misalkan kita diminta membuat program untuk menghitung rata-rata dari tiga buah bilangan yang berasal dari input. Maka kita dapat dengan mudah membuat program sebagai berikut:

Berdasarkan program tersebut, tampak bahwa untuk kasus yang diberikan dibutuhkan paling tidak tiga buah variabel untuk menyimpan ketiga bilangan yang akan dicari rata-ratanya.

Untuk kasus mencari rata-rata tiga bilangan tampaknya masih cukup mudah dibuat programnya.

Namun, bagaimana jika program dimodifikasi supaya bisa menghitung rata-rata 20 bilangan?

(2)

69 | P a g e

Tentunya kita butuh lebih banyak variabel lagi untuk menyimpan semua bilangan tersebut. Belum lagi ekspresi formula untuk menghitung rerata akan menjadi sangat panjang penulisannya. Sehingga hal ini menjadi tidak efektif. Lalu bagaimana solusinya? Solusinya adalah kita bisa menggunakan list.

Selanjutnya bagaimana bentuk list? Sebuah list didefinisikan dengan menggunakan tanda kurung siku yang mengapit nilai-nilainya. Berikut ini contoh cara mendefinisikan beberapa nilai dalam bentuk list:

Dalam contoh di atas, semua nilai dalam list buah adalah berupa string. Sedangkan pada contoh berikut ini di dalam list terdapat nilai dengan beberapa jenis tipe data yang berbeda.

Membaca Sebuah Nilai dalam List

Untuk membaca sebuah nilai dalam sebuah list dengan cara menyebutkan nomor urut nilai tersebut dalam listnya. Adapun contohnya adalah:

Sedangkan output dari perintah di atas adalah

Dari contoh di atas, dapat disimpulkan bahwa nomor urut nilai dalam list dimulai dari nilai ke-0. Nilai berikutnya adalah nilai ke-1, 2 dan seterusnya. Nomor urut ini selanjutnya dinamakan indeks. Sehingga jika suatu list terdapat n nilai, maka nomor indeksnya dimulai dari indeks ke-0, 1, 2, ..., n-1 (indeks harus berupa bilangan bulat).

Berikut ini contoh perintah bagaimana membaca nilai dalam list kemudian digunakan untuk operasi aritmatika, berikut outputnya.

(3)

70 | P a g e

Pada operasi data[0] + 2 bermakna bahwa nilai pada indeks ke-0 dari list data dijumlahkan dengan 2, sehingga dalam hal ini data[0] + 2 = 2 + 2 = 4. Sedangkan pada operasi data[2]

+ ' apa kabar? ' + 'I love ' + data[4] merupakan operasi penggabungan string (string concatenation) terhadap nilai indeks ke-2 dari list data, string 'apa kabar? ', 'I love' dan string dari indeks ke-4 dari list data. Sehingga data[2] + ' apa kabar? ' + 'I love ' + data[4] = 'hello' + ' apa kabar? ' + ' I love' + 'python' = 'hello apa kabar? I love python'. Selanjutnya pada operasi data[0] + 'hello world' terdapat error karena kedua operand, dalam hal ini data[0] dan string 'hello world' tidak bertipe data yang sama, yaitu bertipe data bilangan dan yang satunya adalah string sehingga tidak bisa dilakukan operasi +.

Sebagai tambahan informasi, bahwa nilai di dalam sebuah list juga bisa merupakan list juga, berikut ini contohnya:

(4)

71 | P a g e

Perintah matriks[0] bermakna mengambil nilai indeks ke-0 dari list matriks, dalam hal ini nilainya berupa list juga yaitu [1, 2]. Perintah matriks[0] + matriks[1] merupakan operasi penggabungan dua buah list, dalam hal ini [1, 2] digabung dengan [3, 4] sehingga menghasilkan [1, 2, 3, 4]. Perintah matriks[0][0] adalah digunakan untuk membaca nilai indeks ke-0 dari list matriks[0] yang dalam hal ini [1, 2] sehingga diperoleh 1. Demikian pula perintah matriks[2][1] yaitu membaca nilai indeks ke-1 dari list matriks[2] dalam hal ini [5, 6, 7]

yaitu 6.

Indeks List Negatif

Dalam contoh-contoh sebelumnya, penomoran indeks suatu list dimulai dari indeks ke-0, 1,... dst.

Namun bisa juga kita menggunakan nomor indeks negatif untuk membaca suatu nilai dalam list.

Contohnya:

Dari contoh di atas, bisa disimpulkan bahwa nomor indeks -1 adalah mengacu pada nilai terakhir dari list. Nomor indeks -2 adalah sebelah kirinya indeks -1, demikian seterusnya. Dengan begitu andaikan ada suatu list dengan n nilai, maka penomoran indeksnya jika dimulai dari paling terakhir adalah -1, - 2, -3, ..., -n.

Membaca Sublist dari List

Sebuah sublist dapat pula dibaca nilainya dari sebuah list. Perhatikan contoh berikut ini:

(5)

72 | P a g e

Perintah buah[0:3] bermakna bahwa nilai list yang diambil adalah mulai dari indeks ke-0 sampai dengan indeks ke-2 dari list buah, dalam hal ini nilai indeks ke-3 nya tidak termasuk. Demikian pula perintah buah[1:5] bermakna bahwa nilai list yang diambil adalah mulai dari indeks ke-1 sampai indeks ke-4, nilai indeks ke-5 nya tidak termasuk.

Cara lain membaca sublist adalah dengan cara seperti pada contoh yaitu buah[1:]. Perintah tersebut bermakna membaca nilai mulai pada indeks ke-1 sampai dengan akhir list. Demikian juga perintah buah[:5] yaitu membaca nilai mulai dari awal indeks sampai dengan indeks ke-4,nilai pada indeks ke-5 tidak termasuk.

Function len() pada List

Di dalam Python, terdapat function khusus untuk mengetahui jumlah nilai yang ada dalam suatu list yaitu function len(). Contohnya:

Mengubah Nilai pada Indeks Tertentu dalam List

Suatu nilai pada indeks tertentu dalam list dapat diubah nilainya. Berikut ini contohnya:

Pada contoh di atas, perintah buah[1] = 'anggur' bermakna mengganti nilai pada indeks ke-1 pada list buah dengan string 'anggur'. Sehingga dalam hal ini, nilai yang sebelumnya adalah 'jeruk' diganti menjadi 'anggur'. Demikian pula yang terjadi pada perintah buah[-2] =

(6)

73 | P a g e

'melon' yaitu mengganti nilai 'durian' menjadi 'melon'. Sedangkan buah[2] = buah[1]

+ ' dan ' + buah[4] mengganti nilai 'mangga' dengan string 'anggur dan klengkeng'.

Bekerja dengan List

Setelah kita mengetahui apa itu list, cara mendefinisikannya, serta operasinya, selanjutnya akan dibahas bagaimana cara bekerja dengan list.

Input Data List

Pembahasan pertama tentang subbab bekerja dengan list ini adalah tentang bagaimana caranya menyimpan data input program ke dalam list. Perhatikan contoh script berikut ini:

Program di atas untuk membaca input serangkaian bilangan bulat. Selanjutnya outputnya adalah rata- rata dari serangkaian bilangan bulat yang diinputkan tersebut. Dalam hal ini, sebagai penanda akhir dari proses input adalah dengan memasukkan bilangan 0.

Mula-mula, kita definisikan sebuah list untuk menyimpan data nilai bilangan yang akan diinputkan, yaitu list bernama dataNilai. Awalnya diberi nilai list kosong menggunakan perintah dataNilai=[]

karena belum ada nilai di dalamnya. Selanjutnya dengan menggunakan looping while, proses input dilakukan beberapa kali. Untuk memasukkan bilangan yang diinputkan ke dalam list, digunakan perintah dataNilai=dataNilai+[x] yang dalam hal ini x adalah bilangan yang diinputkan.

Dalam hal ini, kita mengimplementasikan konsep penggabungan list dengan menggunakan operator list concatenation.

Output tampilan dari program tersebut jika dijalankan adalah:

(7)

74 | P a g e

Looping dalam List

Perhatikan kembali pada program menghitung rata-rata sebelumnya. Selanjutnya untuk menghitung rata-rata, berarti langkah awal kita yaitu harus menjumlahkan seluruh nilai yang ada dalam list dataNilai. Pada program di atas langkah ini dilakukan dengan menggunakan looping for. Looping for ini diulang sebanyak n kali di mana n adalah adalah banyaknya nilai dalam dataNilai (nilai n bisa didapat dengan perintah len(dataNilai)). Dalam hal ini, looping for dinyatakan dalam bentuk

Variabel i nantinya digunakan sebagai nomor indeks untuk membaca nilai pada setiap indeks dari list dataNilai, di mana i nya bernilai 0, 1, 2, ..., len(dataNilai) -1.

Selain dengan cara looping di atas, dapat pula looping dilakukan dengan cara sebagai berikut:

Perhatikan pada bagian looping:

(8)

75 | P a g e

Pada looping tersebut, kita tidak menyebutkan range indeksnya, dan tanpa perlu tahu banyaknya nilai dalam list. Secara otomatis looping akan dilakukan sebanyak nilai dalam list dataNilai. Variabel nilai di situ digunakan untuk membaca setiap nilai dari list dataNilai pada setiap indeksnya.

Operator in dan not in

Untuk mengecek keberadaan suatu nilai dalam suatu list, dapat dilakukan menggunakan operator in dan not in. Kedua operator ini menghasilkan nilai boolean (True atau False). Contohnya:

Berdasarkan contoh di atas, operator in digunakan untuk mengecek apakah suatu nilai terdapat dalam suatu list atau tidak, jika ya maka menghasilkan True, sedangkan jika tidak maka bernilai False.

Sebaliknya operator not in digunakan untuk mengecek apakah suatu nilai tidak terdapat dalam suatu list atau tidak. Jika ya (tidak terdapat dalam list) maka akan menghasilkan True, sedangkan jika tidak (berarti ada dalam list) menghasilkan nilai False.

Mencari Index berdasarkan Nilai Tertentu dalam List

Di dalam Python, kita dapat mencari suatu nilai tertentu dalam sebuah list, lebih tepatnya adalah dapat diketahui indeks ke berapa suatu nilai itu berada dalam list. Untuk mengetahui indeks ke berapa dalam sebuah list yang berisi nilai tertentu menggunakan index(). Contohnya:

Apabila suatu nilai tidak terdapat dalam list, maka akan muncul pesan error.

Selanjutnya, bagaimana jika terdapat beberapa nilai yang sama dalam sebuah list? Nomor indeks yang manakah yang akan muncul jika dicari dengan index()?. Perhatikan contoh berikut ini

(9)

76 | P a g e

Dari contoh yang diberikan, tampak bahwa terdapat ‘apel’ di dalam list pada indeks ke-0 dan 4. Jika diberikan perintah index('apel'), maka nomor indeks yang muncul hanyalah nomor indeks yang paling awal yaitu indeks ke-0.

Menambahkan Nilai pada List dengan append() dan insert()

Untuk menambahkan nilai ke dalam suatu list dapat pula dilakukan dengan append() dan insert(). Perbedaan keduanya adalah bahwa jika append() penambahannya dilakukan di akhir list, sedangkan insert() penambahannya disisipkan ke dalam nomor indeks tertentu. Contoh penggunaan append():

Sedangkan contoh penggunaan insert() adalah:

Pada contoh di atas, proses penambahan nilai ‘pepaya’ dilakukan pada indeks ke-2 dari list buah.

Sehingga posisi dari nilai ‘mangga’, ‘durian’, dan ‘klengkeng’ bergeser yang tadi masing-masing di posisi indeks ke-2, 3, dan 4 menjadi indeks ke-3, 4, dan 5.

Menghapus Nilai dalam List

Sebuah nilai pada indeks tertentu dalam suatu list dapat dihapus dengan memberikan perintah del.

Contohnya:

Perintah del buah[1] pada contoh tersebut bermakna menghapus nilai pada indeks ke-1 dari list buah, dalam hal ini adalah 'jeruk'.

Catatan:

Perintah del juga dapat digunakan untuk menghapus variabel yang sudah tidak diperlukan lagi dalam Python. Menghapus di sini maksudnya adalah menghapus variabel tersebut dari dalam memori komputer (RAM)

(10)

77 | P a g e

Menghapus Nilai Tertentu dalam List dengan remove()

Jika sebelumnya sudah dibahas tentang penggunaan perintah del untuk menghapus suatu nilai pada indeks tertentu dari sebuah list, maka nilai dalam suatu list juga dapat dihapus dengan perintah remove(). Perbedaannya adalah bahwa untuk del kita harus mengetahui nomor indeks mana yang akan dihapus, sedangkan remove() yang perlu diketahui hanyalah nilai yang mau dihapus saja.

Contohnya:

Contoh di atas menunjukkan proses penghapusan nilai ‘apel’ dalam list buah.

Mengurutkan Nilai dalam List dengan sort()

Pengurutan nilai dalam sebuah list juga dapat dilakukan, yaitu dengan menggunakan sort(). Secara default sort() akan mengurutkan secara ascending. Contohnya:

Namun, dapat pula pengurutannya dilakukan secara descending, contohnya:

Berdasarkan contoh tersebut, dapat dilihat bahwa untuk pengurutan secara descending, perlu penambahan parameter reverse=True pada sort().

Menyalin List

Maksud istilah menyalin di sini adalah menyalin nilai pada suatu variabel list ke variabel lainnya. Tidak seperti menyalin nilai variabel yang tunggal, di dalam Python proses menyalin list tidak sesederhana itu. Jika untuk variabel tunggal, maka cukup dengan memberikan perintah assignment seperti pada contoh berikut ini.

Contoh tersebut menunjukkan cara menyalin isi nilai dari variabel a ke variabel b.

Namun mekanisme tersebut tidak berlaku untuk list. Contohnya:

(11)

78 | P a g e

Jika kita perhatikan contoh di atas, maka list2 memiliki nilai yang sama dengan list1. Namun jika indeks ke-0 dari list2 ini diubah menjadi ‘d’, maka indeks ke-0 dari list1 juga ikut berubah. Demikian juga seandainya kita lakukan perubahan nilai pada salah satu indeks di list1, maka di dalam list2 juga ikut terjadi perubahan. Dengan begitu dapat disimpulkan bahwa mekanisme penyalinan dengan cara seperti di atas akan mempengaruhi struktur list yang disalin.

Selanjutnya, bagaimana supaya menghindari hal tersebut di atas sehingga kita bisa menyalin dua atau lebih list yang nilainya sama namun saling independen atau tidak saling mempengaruhi? Caranya adalah dengan menggunakan perintah copy(). Perhatikan contoh penggunaannya sebagai berikut:

Berdasarkan contoh di atas, dapat kita lihat bahwa sebelum menjalankan perintah copy() terlebih dahulu harus mengimport modul bernama copy. Apabila kita perhatikan, maka pada contoh tersebut dapat diperoleh dua buah list yaitu list1 dan list2 yang saling independen. Sehingga, perubahan yang dilakukan pada list2 tidak akan berpengaruh pada list1.

Penggabungan List (List Concatenation) dan Replikasinya

Sebuah list dapat pula digabung dengan list lainnya sepertinya halnya string, atau hal ini diistilahkan dengan list concatenation. Adapun cara menggabungkan list ini menggunakan operator +. Contoh:

Sedangkan untuk mereplikasi sebuah list menggunakan operator *, dalam hal ini mirip dengan string.

Contoh:

(12)

79 | P a g e

Dikarenakan nilai yang ada dalam sebuah list bisa dimanipulasi, seperti ditambahkan, dihapus, diurutkan, dan diubah nilainya, sehingga sifat list seperti ini disebut dengan mutable.

Studi Kasus 8.1

Buatlah sebuah function dengan nama myListFunction() yang memiliki parameter dalam bentuk list. Misalkan diberikan suatu list yaitu:

buah = ['apel', 'durian', 'jeruk', 'klengkeng', 'mangga']

maka ketika list buah tersebut dimasukkan ke dalam function, atau myListFunction(buah), function harus menampilkan output sbb:

'apel, durian, jeruk, klengkeng, dan mangga'

Jawab:

Salah satu contoh program sebagai solusi dari permasalahan di atas adalah sebagai berikut.

Dalam program di atas, ide penyelesaiannya adalah dengan melakukan looping sebanyak jumlah nilai pada listnya (digunakan len(myList) untuk membaca jumlah nilai dalam list myList).

Selanjutnya di setiap looping, nilai i nya dicek apakah nilainya sama dengan len(myList)-1 atau tidak. Jika ya maka ditampilkan ‘dan’ dan juga nilai pada indeks terakhirnya (di sini digunakan indeks -1). Hal ini dilakukan karena khusus untuk indeks terakhir (len()-1), ada perbedaan tampilan yaitu adanya tambahan kata ‘dan’ di depannya. Sedangkan untuk i yang lainnya, maka cukup ditambahkan tanda koma di belakangnya.

Studi Kasus 8.2

Buatlah sebuah function dengan nama printGrid() yang memiliki parameter dalam bentuk list.

Misalkan diberikan suatu list yaitu:

(13)

80 | P a g e

Maka apabila dipanggil perintah printGrid(grid) akan muncul tampilan sebagai berikut:

Jawab:

Apabila list dua dimensi yang diberikan pada kasus tersebut kita lihat sebagai matriks, maka permasalahan yang diberikan ini merupakan permasalahan terkait dengan transpose matrik.

Transpose matrik didapat dengan menukar posisi indeks yg terkait dengan nomor baris dengan kolom, begitu juga sebaliknya. Sehingga misalkan indeks ke [i, j] di mana i adalah indeks terkait nomor baris dan j adalah nomor kolom dari sebuah nilai pada matriks awalnya, maka pada transpose matriknya nilai tersebut menjadi indeks ke [j, i], di mana j menjadi indeks terkait nomor baris dan i terkait dengan nomor kolom.

Dari ide tersebut, dapat disusun programnya sebagai berikut

Perhatikan program di atas, untuk mengetahui jumlah kolom dari grid dengan cara membaca banyaknya nilai pada indeks pertama dari list nya (len(theList[0])). Meskipun demikian, untuk mengetahui jumlah kolom dari grid sebenarnya tidak harus pada indeks pertama, akan tetapi bisa juga dari indeks yang lainnya.

Output dari function printGrid() jika diberikan input seperti yang ada di soal tersebut diperoleh tampilan sebagai berikut:

(14)

81 | P a g e

Tipe Data Tuple

Tipe data tuple ini sangat mirip tampilannya dengan list. Perbedaannya hanyalah pada jenis kurung yang digunakannya, serta tuple bersifat immutable. Sifat immutable ini yang menyebabkan struktur tuple tidak bisa diubah melalui proses penambahan nilai, penghapusan, pengubahan, serta pengurutan nilai. Sehingga, untuk tuple tidak ada perintah append(), insert(), del, sort() dan sebagainya seperti halnya list. Berikut ini contoh pendefinisian tuple dan cara membaca nilainya:

(15)

82 | P a g e

Dalam hal ini, mekanisme aksesibilitas nilai dalam tuple melalui indeks sama seperti list. Seperti halnya indeks negatif yang berlaku dalam list juga berlaku untuk tuple. Demikian juga untuk mengakses subtuple, sama seperti mengakses sublist. Perhatikan contoh berikut ini:

Mengkonversi ke Tuple dan List (dan sebaliknya)

Setelah kita tahu perbedaan sifat tuple dan list, selanjutnya perlu diketahui bahwa di dalam Python juga terdapat perintah untuk bisa mengkonversi tipe data tuple ke list, dan juga sebaliknya. Perintah untuk mengubah suatu list ke tuple dengan cara memberikan perintah tuple(), dan untuk mengubah tuple ke list dengan perintah list(). Contohnya:

Bekerja dengan Tuple

Beberapa perintah yang dapat digunakan pada sebuah tuple adalah seperti pada Tabel 8.1 Tabel 8.1 Beberapa functions yang bisa diberikan pada tuple

Functions Kegunaan

count(x) Menghitung banyaknya elemen x dalam sebuah tuple index(x) Mengetahui nomor index dari elemen x dalam tuple len() Mengetahui banyaknya elemen dalam tuple

max() Mengetahui nilai maksimum dari semua elemen dalam tuple (jika semua elemen bertipe data sama)

min() Mengetahui nilai minimum dari semua elemen dalam tuple (jika semua elemen bertipe data sama)

sum() Menghitung jumlahan nilai semua elemen dalam tuple (jika semua elemen bertipe data number)

(16)

83 | P a g e

Adapun contoh-contoh penggunaan dari function-function di atas adalah sebagai berikut:

Catatan: apabila elemen yang dicari dalam tuple itu terdapat lebih dari satu, maka hanya akan menghasilkan nomor indeks pada elemen yang terletak pada urutan indeks paling awal.

Sebagai tambahan, pada tuple dapat pula diberikan operator in dan not in untuk mengecek keberadaan suatu elemen dalam tuple, seperti halnya list. Perhatikan contoh berikut ini:

(17)

84 | P a g e

Dari contoh yang diberikan, untuk mendefinisikan suatu set adalah dengan memberikan tanda kurung kurawal {…}. Berdasarkan contoh tersebut pula dapat terlihat bahwa jika terdapat beberapa elemen yang sama (duplikat) dalam set maka hanya akan disimpan satu elemen saja. Dengan demikian elemen dalam set adalah unik.

Berikutnya perhatikan perintah berikut ini:

Dari perintah di atas, tampak bahwa elemen dari set tidak bisa diakses melalui indeksnya. Hal ini disebabkan karena urutan dalam set tidak diperhatikan.

Bekerja dengan Set

Sifat tipe data set adalah mutable, sehingga dapat dilakukan beberapa proses seperti penambahan elemen ke dalam set, penghapusan dan sebagainya. Tabel 8.2 menunjukkan beberapa perintah yang dapat diberikan pada set.

Tabel 8.2 Beberapa functions yang bisa diberikan pada set

Functions Kegunaan

add() Menambahkan elemen ke dalam set remove() Menghapus elemen tertentu dari dalam set clear() Menghapus semua elemen dari set

difference() Menentukan selisih elemen dari dua buah set intersection() Menentukan irisan elemen dari dua buah set union() Menggabungkan elemen dari dua buah set len() Menghitung banyak elemen dari set

max() Menentukan nilai maksimum elemen dari set min() Menentukan nilai minimum elemen dari set

sum() Menentukan jumlahan total semua elemen dalam set

Adapun berikut ini beberapa contoh penggunaan function-function di atas.

(18)

85 | P a g e

Sebuah list atau tuple dapat dikonversi ke dalam bentuk set dengan menggunakan perintah set().

Perhatikan contoh berikut ini:

Secara umum, kegunaan dari set adalah untuk mencari data unik dari serangkaian data. Sebagai contoh sederhananya misalkan diberikan sebuah string ‘MATEMATIKA’, maka dengan menggunakan set dapat diperoleh huruf apa saja yang menyusun string tersebut.

Dalam hal ini, secara otomatis Python menempatkan urutan elemen-elemen penyusun set berdasarkan kriteria tertentu. Urutan ini tidak bisa diubah-ubah posisinya.

Tipe Data Dictionary

Di dalam Python, tipe data dictionary juga termasuk tipe data dinamis, yang secara struktur mirip seperti list. Namun perbedaannya hanyalah pada index nya saja. Seperti yang telah kita pahami bahwa index dari list adalah berupa nomor atau bilangan bulat dan indexnya terurut dimulai dari 0.

(19)

86 | P a g e

{key1: value1, key2: value2, ... }

Adapun cara untuk membaca nilai di dalam dictionary sama seperti list, yaitu cukup disebutkan nama indeksnya.

Perhatikan contoh pendefinisian suatu variabel bertipe data dictionary beserta cara membaca nilai pada indeks tertentu:

Pada contoh di atas, tipe data dictionary digunakan untuk menyatakan data tinggi badan pada nama seseorang. Dari contoh tersebut, untuk mendapatkan value dari dictionary, cukup menggunakan key untuk mengaksesnya.

Penggunaan dictionary juga bisa digunakan untuk menyatakan properti dari sebuah obyek. Perhatikan contoh berikut ini:

Contoh yang diambil di atas adalah menunjukkan properti dari suatu obyek berupa mobil, yaitu merek, warna, jenis transmisi, dan tahun pembuatannya. Untuk mengakses nilai properti dari obyek tersebut, digunakan key propertinya.

Selanjutnya akan diberikan sebuah contoh program Python yang memanfaatkan dictionary. Program ini adalah menampilkan harga buah sesuai yang ada di dalam list.

(20)

87 | P a g e

Program di atas merupakan contoh implementasi dari dictionary untuk membuat aplikasi database sederhana, pada kasus data harga buah. Di sini dibuat data berisi nama buah dan harganya menggunakan dictionary. Selanjutnya user diminta memasukkan nama buahnya. Apabila nama buah yang dimasukkan user ini ada di data, maka akan ditampilkan harganya. Namun apabila tidak terdaftar di data maka buah dan harga akan dimasukkan ke data (mengupdate data).

Perlu diperhatikan pada perintah if nama in hargaBuah. Perintah IF tersebut digunakan untuk mengecek apakah ada nama buah di dalam dictionary nya. Dalam hal ini, pengecekan dilakukan pada key nya. Jika key nama buah terdapat dalam dictionary, maka akan menghasilkan nilai True.

Sedangkan bila tidak ada, maka akan bernilai False.

Adapun perintah hargaBuah[nama] = harga digunakan untuk menambahkan pasangan key berupa nama dan valuenya berupa harga ke dalam dictionary hargaBuah.

Bekerja dengan Dictionary

Function keys()

Perintah keys() di dalam dictionary biasanya digunakan di dalam looping yang akan membaca seluruh key dalam dictionary tersebut. Contoh:

(21)

88 | P a g e

Berdasarkan contoh di atas, setiap key yang dibaca selanjutnya disimpan ke dalam variabel x.

Function values()

Function values() digunakan untuk membaca seluruh value dalam dictionary. Adapun contohnya adalah:

Perlu diketahui bahwa output hasil values() memiliki urutan yang teracak. Sehingga di dalam kasus tertentu, apabila diinginkan mendapatkan values yang terurut maka terlebih dahulu dinyatakan dalam bentuk list kemudian dilakukan proses sorting. Perhatikan contoh berikut ini:

Function items()

Function items() di dalam dictionary digunakan untuk membaca semua pasangan key dan value.

Contohnya:

(22)

89 | P a g e

Jika dalam contoh di atas nilai x berisi pasangan key dan value yang masing-masing disajikan dalam bentuk tuple, maka terdapat cara lain untuk membaca key dan value secara sendiri-sendiri menggunakan dua variabel. Contoh:

Mengecek Keberadaan Key atau Value dalam Dictionary

Seperti halnya list, tuple, dan set, di dalam dictionary juga bisa digunakan perintah in dan not in untuk mengecek keberadaan key atau value. Contoh:

Function get()

Function get() digunakan pada dictionary untuk mendapatkan value berdasarkan key tertentu.

Apabila key tidak ditemukan, maka value alternatif bisa diberikan. Perhatikan contoh penggunaannya beriku ini.

(23)

90 | P a g e

Berdasarkan contoh di atas, maka perintah get(x, y) digunakan untuk membaca value dalam dictionary yang memiliki key = x. Apabila key tersebut tidak ada, maka value yang dibaca (default) adalah nilai y.

Menghapus Elemen dari Dictionary

Dikarenakan bersifat mutable, elemen dari sebuah dictionary dapat dihapus menggunakan perintah del, dengan menyebutkan nama key nya. Perhatikan contoh berikut ini:

Komparasi Tipe Data Dinamis

Berdasarkan uraian penjelasan beberapa tipe data, dapat dirangkum perbandingan antara tipe data list, tuple, set, dan dictionary sebagaimana di Tabel 8.3:

Tabel 8.3 Perbandingan Karakteristik Beberapa Tipe Data Dinamis Tipe Data Karakteristik

List  pendefinisiannya menggunakan tanda [...]

 bersifat mutable (memungkinkan proses penambahan data, penghapusan, update data pada elemen list)

 menggunakan sistem indexing (angka: 0, 1, 2, ...) untuk mengakses elemennya

 elemennya tidak bersifat unik

Tuple  pendefinisiannya menggunakan tanda (...)

 bersifat immutable (tidak memungkinkan adanya proses penambahan data, penghapusan, update data pada elemen tuple)

 menggunakan sistem indexing (angka: 0, 1, 2, ...) untuk mengakses elemennya

 elemennya tidak bersifat unik

Set  pendefinisiannya menggunakan tanda {...}

 bersifat mutable (memungkinkan proses penambahan data, dan penghapusan)

(24)

91 | P a g e

 tidak menggunakan sistem indexing (angka: 0, 1, 2, ...) untuk mengakses elemennya, krn tidak urutan tidak diperhatikan

 elemennya bersifat unik

Dictionary  pendefinisiannya menggunakan tanda {...}

 bersifat mutable (memungkinkan proses penambahan data, penghapusan, update data pada elemen dictionary)

 menggunakan keys untuk mengakses elemennya

 elemennya tidak bersifat unik

Gambar

Tabel 8.2 Beberapa functions yang bisa diberikan pada set
Tabel 8.3 Perbandingan Karakteristik Beberapa Tipe Data Dinamis  Tipe Data  Karakteristik

Referensi

Dokumen terkait

Untuk mengetahui bentuk mapping pada storage dari suatu string, perlu diketahui beberapa hal yang menyangkut ruang untuk string yang bersangkutan antara lain :.

Berdasarkan hasil penelitian miskonsepsi yang ditemukan pada materi Fluida Statis oleh Henry (Henny, 2013: 79) yaitu : (1) siswa berpendapat bahwa tekanan hidrostatis terbesar

Pada proses ini dilakukan pembacaan sumber data dari tabel transaksi di database penduduk yang kemudian di lookup dengan beberapa tabel dimensi,yaitu tabel

Pada umumnya, ketika relasi ditulis ke dalam bentuk tabel, maka nama atribut akan ditulis sebagai judul kolom dan menuliskan tuple sebagai baris yang memiliki format (d1, d2, ...

Tabel 1 diatas merupakan data hasil pra riset peneliti yang telah dilakukan pada tanggal 25 Oktober – 2 November 2013 di 8 MAS yang ada di Kota Bandarlampung, yang nantinya dari

Pada bab ini akan diberikan teorema penting terkait dengan derivatif suatu fungsi dan beberapa contohnya, dimulai dengan meninjau hubungan antara nilai ekstrem relatif

Tes ini berfungsi untuk mengukur kemampuan koordinasi motorik subjek pada aspek kekuatan otot. Dalam tes ini subjek diberikan perintah untuk melakukan beberapa gerakan

Selain gaya tersebut yang bekerja secara horizontal, bekerja juga gaya vertikal sebesar 1/2 dar nilai yang tercantum dalam tabel ` Gaya tarikan kapal pada bit diberikan pada