Kuliah Metode Komputasi, Minggu ke 3

advertisement
LIST DAN TUPLES
Kuliah Metode Komputasi, Minggu ke 3
Thursday, March 3, 16
STRUKTUR DATA
• Dalam
data
kuliah ini akan dijelaskan konsep baru, yaitu struktur
• Struktur
data adalah koleksi dari elemen-elemen data (misal,
karakter, bilangan, atau struktur data yang lain), dengan urutan
tertentu
• Struktur
data paling sederhana di dalam Python adalah sekuen
(urutan). setiap komponen dari sekuen, diberi identitas nomer
urutan, yang menyatakan posisi, yang disebut indeks.
Thursday, March 3, 16
STRUKTUR DATA
• Di
dalam Python, indeks pertama diberi nomer 0 (nol)
• Indeks
kedua, 2 adalah 1, indeks ke 3 adalah 2 dst
• Python
memiliki 6 tipe sekuen yang sudah build-in, dan kita
akan belajar 2 tipe saja hari ini, yaitu list dan tuple
• Perbedaan
mendasar keduanya adalah, list dapat diubah isi dan
urutannya, sedangkan tuple tidak bisa !
• Biasanya
Thursday, March 3, 16
tuple digunakan untuk keperluan teknis
• Contoh
list
• >>>
wiwit = [ ‘Wiwit Suryanto’, 42]
• >>>
haidar = [‘Haidar Pramudito, 11]
• >>>
database = [wiwit haidar]
• >>>
database
• [[‘Wiwit
Thursday, March 3, 16
Suryanto’, 42],[‘Haidar Pramudito’, 11]]
OPERASI DASAR SEKUEN
• Ada
banyak operasi dasar untuk sebuah sekuen, diantaranya
• (1)
peng-indeks-an
• (2)
pemotongan
• (3)
penambahan
• (4)
pengalian
• (5)
cek keanggotaan
Thursday, March 3, 16
PENG-INDEKS-AN
•
Setiap elemen dalam sebuah sekuen adalah (secara otomatis) dinomeri, dari nol
dan seterusnya.
•
Kita dapat mengakses secara individual, dengan memberi identitas nomer tersebut
•
>>> salam = ‘Selamat Pagi’
•
>>> salam[0]=
•
>>>’S’
•
>>> salam[10] =
•
>>>’g’
Thursday, March 3, 16
PENG-INDEKS-AN
•
>>> salam[10] =
•
>>>’g’
•
>>> Perbuatan seperti diatas disebut peng-indeks-an.
•
Jika kita menggunakan bilangan negatif, artinya, Python megurutkan
dari belakang
•
>>> salam[-1]
•
>>>’i’
Thursday, March 3, 16
PENG-INDEKS-AN
• Di
dalam Python, pengindeksan dapat langsung dilakukan saat
itu juga ketika kita memanggil sebuah fungsi, misalnya kita akan
mengambil bilangan ke empat dalam tahun,
• >>>
keempat = raw_input(‘Tahun : ‘)[3]
• >>> Tahun: 2015
• >>>
keempat
• >>> ‘5’
Thursday, March 3, 16
PENG-INDEKS-AN
• Contoh, menerjemahkan
inggris
• > Tahun
: 1974
•>
Bulan: 8
•>
Hari : 16
• > August
Thursday, March 3, 16
16th, 1974
tanggal, bulan tahun dalam bahasa
LISTING PROGRAM
Thursday, March 3, 16
PENGIRISAN, SLICING
•
Untuk mengakses sejumlah elemen, digunakan range indeks dengan
tanda titik2, :
•
>>> tag = ‘<a href=”http://www.python.org”> Python website </a>’
•
>>> tag[9:30]
•
‘http://www.python.org’
•
tag[32:-4]
•
‘Python web site’
Thursday, March 3, 16
PENGIRISAN, SLICING
•
Mudah, bukan?
•
Jadi, perhatikan sekali lagi bahwa indeks pertama adalah elemen yang hendak
diikutkan dalam irisan
•
bilangan = [1,2,3,4,5,6,7,8,9,10]
•
bilangan[3:6]
•
[4,5,6]
•
bilangan[0:1]
•
[1]
Thursday, March 3, 16
PENGIRISAN, SLICING
Thursday, March 3, 16
CONTOH
• Buatlah
program untuk mendapatkan nama domain dari link
website yang di-inputkan
• Masukkan
• Nama
•.
•.
Thursday, March 3, 16
nama tautan (URL) : http://www.google.com
domain : google
LONGER STEPS
•
bilangan[0:10:1]
•
[1,2,3,4,5,6,7,8,9,10]
•
pada contoh diatas, ditambah satu bilangan di belakang sendiri, yaitu ukuran
langkahnya, dalam hal ini 1
•
bilangan[0,10,2]
•
[1,3,5,7,9]
•
bilangan[::4]
•
[1,5,9]
Thursday, March 3, 16
• Ukuran
langkah tidak boleh nol, tapi boleh negatif
• bilangan[8:3:-1]
• [9,8,7,6,5]
• bilangan[10:0,-2]
• [10,8,6,4,2]
• bilangan[:5:-2]
Thursday, March 3, 16
MENAMBAH URUTAN
• [1,2,3]+[4,5,6]
• [1,2,3,4,5,6]
• ‘Halo, ‘
+ ‘dunia!’
• ‘Hallo, dunia!’
• [1,2,3]
+ ‘dunia’
• TypeError
Thursday, March 3, 16
(Jadi dilarang menggabungkan list dan string)
PERKALIAN
•
‘python’ * 5
•
pythonpythonpythonpythonpython
•
[42] * 10
•
[42, 42, 42, 42, 42, 42, 42, 42, 42, 42]
•
urutan = [kosong] * 9
•
urutan
•
[kosong, kosong, kosong, kosong, kosong, kosong, kosong, kosong, kosong]
Thursday, March 3, 16
LATIHAN
Thursday, March 3, 16
KEANGGOTAAN
• >>>
permission = ‘rw’
• >>> ‘w’ in
permission
• True
• >>> ‘x’ in
• False
Thursday, March 3, 16
permission
•
# periksa nama pemakai dan kode PINnya
•
database = [
•
[‘albert’, ‘1234’],
•
[‘dilbert’, ‘4242’],
•
[‘smith’, ‘7524’],
•
[‘jones’, ‘9843’]
•
]
•
username = raw_input(‘Nama pengguna : ‘)
•
pin = raw_input(‘kode PIN :’)
•
if [username, pin] in database: print ‘Akses diterima’
Thursday, March 3, 16
PANJANG, MIN, MAX
•
bilangan = [100, 34, 678]
•
len(bilangan)
•
3
•
min(bilangan)
•
34
•
max(bilangan)
•
678
•
max(2,3)
•
3
•
min(9,3,2,5)
•
2
Thursday, March 3, 16
FUNGSI LIST
• Sering
kali kita memerlukan untuk mengubah sebuah string
menjadi list. Dalam Python ada fungsi list
• >>>
list(‘Hello’)
• [‘H’, ‘e’, ‘l’, ‘l’, ‘o’]
• Sebaliknya, list
dari beberapa karakter dapat diubah menjadi
string dengan perintah >>> ‘ ‘.join(bebarapakarakter)
•
Thursday, March 3, 16
OPERASI DASAR LIST
•
mengubah list
•
>>> x = [1, 1, 1]
•
>>> x[1] = 2
•
>>> x
•
[1, 2, 1]
•
menghapus elemen
•
>>> nama = [‘wiwit’, ‘iwan’, ‘nukman’, ‘afif ’,”Nu’ma”]
•
>>> del nama[4]
•
>>> nama
•
[‘wiwit’, ‘iwan’, ‘nukman’,‘afif ’]
Thursday, March 3, 16
MENETAPKAN KARAKTER
•
Pengirisan merupakan fitur canggih dalam Python, dan menjadi semakin lebih baik karena kita dapat menetapkan sebuah karakter
atau nilai di pada irisan. Dalam Matlab hal ini bisa dilakukan, namun agak tricky ...
•
>>> nama = list(‘Pascal’)
•
>>> nama[1:]=list(‘ython’]
•
>>> nama
•
[‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’]
•
>>> bilangan = [1, 5]
•
>>> bilangan[1:1] = [2, 3, 4]
•
>>> bilangan
•
>>> [1, 2, 3, 4,5]
•
>>> bilangan[1:4]=[]
•
[1, 5]
Thursday, March 3, 16
METODE-METODE LIST
•
Dalam Python, metode adalah sebuah fungsi, yang terikat oleh sebuah obyek,
baik itu berupa list, bilangan, string atau apapun, defaultnya dibelakang
•
Cara memanggilnya: obyek.method(argumen)
•
metode 1, append
•
lst=[1, 2, 3]
•
lst.append(4)
•
lst
•
[1, 2, 3, 4]
Thursday, March 3, 16
METODE-METODE LIST
•
metode 2, count
•
menghitung kejadian dari sebuah elemen dalam list
•
>>>[‘to’, ‘be’,’or’,‘not’,’to’,’be’].count(‘to’)
•
2
•
>>> x = [[1, 2],1, 1, [2, 1, [1, 2]]]
•
>>> x.count(1)
•
2
•
>>> x.count([1, 2])
•
1
Thursday, March 3, 16
METODE-METODE LIST
•
metode 3, extend
•
meng-ekstensi list aslinya
•
>>> a = [1, 2, 3]
•
>>> b = [4, 5, 6]
•
>>> a.extend(b)
•
>>>a
•
[1, 2, 3, 4, 5, 6]
•
atau dapat juga dengan assigning
•
>>> a[len(a):]=b
•
[1, 2, 3, 4, 5, 6]
Thursday, March 3, 16
METODE-METODE LIST
• metode
4, index
• mencari
indeks dari kejadian dalam list
• >>>
moto = [‘satu’, ‘nusa’,satu’,‘bangsa’]
• >>>
moto.index(‘nusa’)
•1
Thursday, March 3, 16
METODE-METODE LIST
•
metode 5, insert
•
menyisipkan obyek di dalam list
•
>>> bilangan = [1, 2, 3, 5, 6, 7]
•
>>> bilangan.insert(3,‘empat’)
•
>>> bilangan
•
[1, 2, 3, ‘empat’, ‘5’,’6’,’7’]
•
keren, huh?
Thursday, March 3, 16
METODE-METODE LIST
•
metode 6, pop
•
menghilangkan elemen di dalam list. Defaultnya elemen terbelaaaaakang.
•
>>> x = [1, 2, 3]
•
>>> x.pop()
•
3
•
>>> x
•
[1, 2]
•
>>> x.pop(0)
•
1
•
>>> x
•
[2]
Thursday, March 3, 16
METODE-METODE LIST
• metode
7, remove
• menghilangkan
elemen di dalam list yang muncul pertama kali.
• >>>
x = [‘to’,’be’,‘or’,‘not’,’to’,‘be’]
• >>>
x.remove(‘be’)
• >>>
x
• [‘to’,’or’,‘not’, ‘to’, ‘be’]
Thursday, March 3, 16
METODE-METODE LIST
• metode
8, reverse
• membalik
elemen di dalam list
• >>>
x = [1, 2, 3]
• >>>
x.reverse()
• >>>
x
• [3, 2, 1]
Thursday, March 3, 16
METODE-METODE LIST
•
metode 9, sort
•
mengurutkan elemen di dalam list
•
>>> x = [4, 6, 2, 1, 7, 9]
•
>>> x.sort()
•
>>> x
•
[1, 2, 4, 6, 7, 9]
•
Namun awas !
Thursday, March 3, 16
METODE-METODE LIST
•
metode 9a sort
•
>>> x = [‘I’,‘want’,’to’]
•
>>> x.sort(key=len)
•
>>>x
•
[‘I’,’to’,‘want’]
•
>>> x = [4,6,2,1,7,9]
•
>>> x.sort(reverse=True)
•
>>> x
•
[9,7,6,4,2,1]
Thursday, March 3, 16
TUPLE, URUTAN TAK
TERGANTI
•
sama dengan urutan, namun tak dapat diganti.
•
nulisnya sederhana, hanya menulis berurutan dengan koma
•
jadilah tuple !
•
>>> 1, 2, 3
•
(1, 2, 3)
•
Fungsi tuple >>> tuple([1, 2, 3])
•
(1, 2, 3). Jadi, untuk apakah tuple itu?
Thursday, March 3, 16
Thursday, March 3, 16
Download