Free Python Ebook
Free Python Ebook
net/publication/361459389
CITATIONS READS
0 4,698
1 author:
Abdul Kadir
57 PUBLICATIONS 1,499 CITATIONS
SEE PROFILE
All content following this page was uploaded by Abdul Kadir on 22 June 2022.
Free e-book
Hak Cipta @Abdul Kadir (2022)
Yogyakarta:Primasoft RG
11
PRAKATA
Buku elektronik ini ditujukan kepada siapa saja yang ingin
mempelajari pemrograman Python. Materi-materi yang diberikan
telah disusun sedemikian rupa sehingga mencakup hal yang luas,
tetapi dapat dipahami dengan mudah. Banyak contoh disertakan
dengan maksud agar materi dapat diserap dengan cepat.
Abdul Kadir
12
Bab
Dasar Python –
1 Bagian
Pertama
13
1.1 Instalasi Python
Pertama-tama yang perlu dilakukan adalah menginstal Python.
Dalam hal ini, Python bisa diunduh di:
https://www.python.org/downloads/
Versi yang digunakan pada buku ini adalah Python versi Windows.
Saat buku ini disusun versi yang tersedia adalah Python 2.10.4. Nama
berkasnya python-2.10.4-amd64. Jika versi yang Anda gunakan
berbeda, silakan menyesuaikan.
2. Klik pada:
14
3. Klik Yes saat muncul konfirmasi “Do you want to allow this app
make changes to your device?”. Maka, akan muncul tampilan
seperti terlihat pada Gambar 1.1.
15
5. Klik pada tombol .
py
16
Gambar 1.5 Tampilan Python
2. Ketik:
Python
17
Gambar 1.6 Tampilan Python
quit()
print("Halo, Bro!")
Halo, Bro!
18
Gambar 1.7 Perintah dan hasil eksekusi
19
5 + 7
>>> 5 + 7
12
>>> 6 * 2 + 1
13
>>> 5 / 3 - 1
0.6666666666666667
>>>
Dua pernyataan atau lebih boleh ditulis dalam satu baris. Namun,
antara dua pernyataan harus dipisah oleh titik koma. Contoh:
Satu pernyataan boleh ditulis lebih dari satu baris. Pada keadaan
seperti ini, baris yang masih mengandung kelanjutan bagian pernyataan
biasa diakhiri dengan \ (Lihat Gambar 1.8). Contoh:
20
>>> x = 2\
... +3
>>>
>>> x
5
>>>
Akan tetapi, tidak semua pernyataan yang ditulis lebih dari satu
baris perlu menggunakan \ untuk menyatakan bahwa pernyataan belum
berakhir dan berkelanjutan pada baris berikutnya. Sebagai contoh,
perhatikan penulisan pernyataan berikut:
21
Tampak bahwa baris yang berisi print("Yogyakarta ", tidak
diakhiri dengan \, tetapi tidak bermasalah. Python dengan sendirinya
telah mengetahui bahwa baris tersebut belum berakhir. Itulah
sebabnya, interpreter langsung memberikan tanda … yang menunggu
kelanjutan dari baris sebelumnya.
22
>>> keterangan = ("Yogyakarta " +\
... "berada di pulau Jawa")
>>>
>>> print("Tes")
File "<stdin>", line 1
print("Tes")
IndentationError: unexpected indent
>>>
23
>>> bil = 6
>>> if bil % 2 == 0:
... print(bil, "adalah bilangan genap")
... print("----------")
...
6 adalah bilangan genap
----------
>>>
24
Contoh editor teks yang bisa digunakan antara lain adalah
Notepad++. Contoh tampilannya dapat dilihat pada Gambar 1.9. Editor
ini dapat diunduh secara gratis melalui:
https://notepad-plus-plus.org/downloads/
Berikut langkah-langkahnya.
print("Halo, Bro!")
25
4. Klik pada Save As…. Langkah ini memunculkan tampilan seperti
terlihat pada Gambar 1.10. Apabila folder terpilih belum berupa
C:\PyGUI, aturlah terlebih dahulu.
26
8. Klik pada tombol .
py nama_skrip.py
C:\Users\ridak>CD C:\pyGUI
C:\pyGUI>
27
dilaksanakan.
C:\pyGUI>py halobro.py
Halo, Bro!
C:\pyGUI>
C:\pyGUI>halobro.py
Halo, Bro!
C:\pyGUI>
28
Lalu, cara mengeksekusi skrip Python adalah dengan menggunakan
perintah berbentuk seperti berikut:
exec(open("nama_skrip.py").read())
Contoh:
>>> exec(open("halobro.py").read())
Halo, Bro!
>>>
and if True
as import False
assert in
break is
class lambda
continue not
def None
del or
elif pass
29
else print
except raise
exec return
finally try
for while
from with
global yield
Absah Ilegal
x 1bundel (Tidak boleh diawali angka)
nama as (Tidak boleh karena as adalah kata-kunci)
kode_barang kode barang (Tidak boleh ada spasi)
pembimbing2 pembimbing-2 (Tidak boleh ada simbol -)
30
Absah Ilegal
nomorTelepon harga$ (Tidak boleh ada simbol $)
31
Gambar 1.12 Perubahan nilai yang dinyatakan oleh variabel
variabel = nilai
jumlah_barang = 50
32
Kadang kala, dijumpai penulisan seperti berikut:
pencacah = pencacah + 1
Pada penulisan seperti itu, pencacah akan menunjuk objek baru yang
berupa nilai yang dinyatakan oleh pencacah semula ditambah dengan
1. Di kaca mata pemakai, pencacah sekarang akan menyatakan nilai
pencacah yang lama plus 1. Dengan perkataan lain, pencacah =
pencacah + 1 adalah suatu pernyataan yang membuat nilai yang
dinyatakan pencacah naik sebesar 1 terhadap keadaan sebelumnya.
>>> x = 23
>>> x = "Huruf x"
>>>
a, b, c = 1, 2, 3
a = 8
33
b = 9
c = 10
z = x
x = y
y = z
34
>>> x = 23
>>> y = 75
>>> z = x
>>> x = y
>>> y = z
>>> x
75
>>> y
23
>>>
x, y = y, x
>>> x = 23
>>> y = 75
>>> x, y = y, x
>>> x
75
>>> y
23
>>>
r = s = t = 30
35
Pada bentuk seperti itu, baik r, s, maupun t akan menyatakan nilai 30
dengan objek yang sama. Pernyataan tersebut identik dengan tiga
pernyataan berikut:
t = 30
s = t
r = s
36
demikian, melalui id(), dapat diketahui identitas objek yang
dinyatakan oleh dua variabel sama atau tidak. Contoh:
>>> id(30)
1830088803472
>>> x = 30
>>> y = 30
>>> z = 32
>>> id(x)
1830088803472
>>> id(y)
1830088803472
>>> id(z)
1830088803536
>>> x = 25
>>> id(x)
1830088803312
>>>
Hasil pemanggilan id(30) di atas menunjukkan bahwa literal 30
mempunyai identitas berupa 1830088803472, yang terus
dipertahankan. Lalu, hasil pemanggilan id(x) dan id(y) berupa
identitas objek literal 30 tadi, sedangkan z menyatakan objek lain lagi.
Namun, ketika x diberi penugasan baru (x = 25), terlihat bahwa
identitas objek yang dinyatakan x berbeda dengan objek yang
dinyatakan oleh y (walaupun sebelumnya sama).
37
(mutable). Contoh tipe data yang immutable yaitu string dan bilangan.
Pada data seperti ini, Anda tidak bisa mengubah bagian dari isinya.
Adapun contoh tipe data yang mutable yaitu list (dibahas pada Subbab
Sub-subbab 2.8.1) dan dictionary (dibahas pada Sub-subbab 2.8.3). Pada
tipe data seperti ini, bagian isinya dapat diubah.
>>> x = 23
>>> type(x)
<class 'int'>
>>> nama = "Diana"
>>> type(nama)
<class 'str'>
>>> type(True)
<class 'bool'>
>>>
38
biner. Tabel 1.3 memberikan contoh berbagai tipe data dan aturan
penulisan masing-masing.
39
Jenis Contoh Keterangan
Bilangan titik- 2.14 Bilangan titik-mengambang
mengambang -4567.89 menyatakan bilangan real.
(float) 2.5e+8 Tanda pecahan berupa titik.
2.5E-4 Notasi E atau e untuk
menyatakan notasi sains.
2.5e+8 berarti 2.5x108,
sedangkan 2.5e-4 berarti
2.5x10-4.
Bilangan 5 + 3J Bilangan kompleks adalah
kompleks 5 – 3j bilangan yang mengandung
(complex) bagian real dan imajiner. Notasi
untuk imajiner ditandai dengan
j atau J.
'Burung kutilang'
"Burung kutilang"
As'ad Jauhari
40
Perhatikan bahwa terdapat karakter petik tunggal pada nama tersebut.
Pada keadaan seperti itu, gunakan saja awalan dan akhiran petik ganda.
Jadi penulisan literalnya seperti berikut:
"As'ad Jauhari"
'As\'ad Jauhari'
41
Karakter Escape Keterangan
adalah ooo
\xhh Karakter dengan nilai
heksadesimalnya adalah hh
>>> print("mobil\ttruk\tbis")
mobil truk bis
>>> print("India\nJepang\nKorea Selatan")
India
Jepang
Korea Selatan
>>> print("\"Apa?\", dia bertanya.")
"Apa?", dia bertanya.
>>>
String bisa tidak mengadung karakter sama sekali. String seperti ini
dinamakan string kosong. Penulisannya seperti berikut:
42
>>> len("123456")
6
>>> len("")
0
>>>
x = 23
43
misalnya math.pi. Perlu diketahui, True, False, dan None juga
contoh konstanta yang disediakan oleh Python.
GRAVITASI = 9.8
variabel = input()
variabel = input(“Penjelasan”)
44
>>> nama = input("Masukkan nama Anda: ")
Masukkan nama Anda: Danang
>>> print(nama)
Danang
>>>
Berkas: usia.py
Akhir berkas
C:\pyGUI>usia.py
Berapa usia Anda? 20
Satu tahun lagi usia Anda 21 tahun
C:\pyGUI>
45
1.12 Ekspresi, Operator, dan Operan
Ekspresi dimaksudkan untuk menghasilkan suatu nilai. Umumnya,
ekspresi mengandung operator dan operan. Operator adalah simbol
yang mewakili suatu operasi. Sebagai contoh, + menyatakan operasi
penjumlahan dan * menyatakan operasi perkalian. Adapun operan
adalah bagian yang dikenai operasi oleh operator. Contoh ekspresi
ditunjukkan pada Gambar 1.15.
46
Operator Keterangan Contoh
** Pangkat 3 ** 2 9
25 ** 0.5 5
- Negasi -5
* Perkalian 2*36
/ Pembagian pecahan 3 / 2 1.5
3 / 1.0 1.5
// Pembagian bulat 3 // 2 1
(Tipe hasil menyesuaikan tipe 3 // 1.0 1.0
operan)
% Sisa pembagian 3%21
8%32
+ Penjumlahan 1+34
- Pengurangan 8–26
Ketentuan yang berlaku pada operasi aritmetika adalah seperti
berikut.
Jika terdapat operan yang berupa bilangan kompleks, yang lain
akan dikonversi ke bilangan kompleks.
Kalau terdapat operan yang berupa bilangan titik-mengambang,
yang lain akan dikonversi ke bilangan titik-mengambang.
Kalau semua operan berupa bilangan bulat, tidak ada konversi
tipe data.
Itulah sebabnya, ekspresi 1 + 1.0 akan menghasilkan 2.0. Akan
tetapi, 1 + 2 menghasilkan 2.
Contoh beberapa operasi aritmetika dapat dilihat pada skrip
berikut:
Berkas: aritmetik.py
print("5 ** 2 = ", 5 ** 2)
print("25 ** 0.5 = ", 25 ** 0.5)
print("2 + 3 = ", 1 + 2)
print("2 - 3 = ", 1 - 2)
47
print("2 * 3 = ", 2 * 3)
print("20 / 3 = ", 20 / 3)
print("20 // 3 = ", 20 // 3)
print("20 % 3 = ", 20 % 3)
Akhir berkas
Hasilnya ditunjukkan berikut ini.
C:\pyGUI>aritmetik.py
5 ** 2 = 25
25 ** 0.5 = 5.0
2 + 3 = 3
2 - 3 = -1
2 * 3 = 6
20 / 3 = 6.666666666666667
20 // 3 = 6
20 % 3 = 2
C:\pyGUI>
48
Prioritas Operator
objek[i:j] (Irisan)
x.atribut (Referensi atribut)
fungsi() (Pemanggilan fungsi)
await x (Ekspresi await)
**( Pangkat)
+x (Positif)
-x (Negatif)
~x (Negasi bit)
*, /, //, %
+, - (sebagai penjumlahan dan pengurangan)
<<, >>
&
^
|
<, <=, >, >=, !=, <>, is, is not, in, not in
= %= /= //= -= += *= **=
not
and
or
Ekspresi berkondisi
Ekspresi lambda
Terendah := (operator walrus)
49
pengerjaan dari kanan ke kiri. Perlu juga diketahui, operator
pembandingan seperti < dan > merupakan operator non-asosiatif. Non-
asosiatif berarti bahwa pengerjaan operator belum ditentukan sehingga
keberadaannya jika lebih dari satu dalam suatu ekspresi bisa saja
menimbulkan kesalahan sintaksis atau mempunyai makna yang
berbeda.
10 % 3 * 2
10%3 * 2
5 ** 2 ** 3
5 ** 2**3
7 < 4 > 2
50
Apakah ekspresi seperti ini valid? Ternyata valid karena ekspresi seperti
itu mempunyai makna khusus, yaitu identik dengan:
x = y += z
>>> x, y, z = 5, 6, 7
>>> x = y += z
File "<stdin>", line 1
x = y += z
^^
SyntaxError: invalid syntax
>>>
51
Gambar 1.16 Evaluasi ekspresi 3 + 4 * 5
52
Gambar 1.17 Evaluasi ekspresi (3 + 4) * 5
53
Pada string, operator * juga bisa digunakan untuk menghasilkan
string. Bentuk pemakaiannya seperti berikut:
string * n
>>> "Abc-" * 5
'Abc-Abc-Abc-Abc-Abc-'
>>>
54
Contoh penggunaan > pada string ditunjukkan berikut ini:
55
Ekspresi Makna Hasil
‘A’ > ‘a’ String ‘A’ lebih besar False. Nilai ASCII ‘A’ sama
daripada string ‘a’? dengan 65, sedangkan
nilai ASCII ‘a’ adalah 97
‘A’ < ‘a’ String ‘A’ lebih kecil True
daripada ‘a’?
‘M’ <= ‘Z’ String ‘M’ kurang dari atau True
sama dengan ‘Z’?
‘m’ <= ‘Z’ String ‘m’ kurang dari atau False
sama dengan ‘Z’?
‘C’ >= ‘A’ String ‘C’ lebih besar True
daripada atau sama dengan
‘A’?
‘AB’ < ‘Ab’ String AB’ kurang dari atau True. Pembandingan
sama dengan ‘Ab’? dilakukan pada huruf
kedua pada string
masing-masing
mengingat huruf
pertama sama
56
Operator Keterangan Bentuk Penggunaan
and Operasi “dan” ekspresi1 and ekspresi2
or Operasi “atau” ekspresi1 or eukspresi2
not Operasi negasi not ekspresi
(kebalikan)
Tabel kebenaran ketiga operator logika ditunjukkan pada Tabel
1.11.
Tabel 1.11 Tabel kebenaran operasi menggunakan operator logika
x Y not x x and y x or y
False False True False False
False True True False True
True False False False True
True True False True True
Pada operasi dengan not, hasil berupa True kalau operan bernilai
False. Sebaliknya, hasil berupa False kalau operan bernilai True.
Pada operasi dengan and, hasil berupa True hanya kalau kedua
operan bernilai True. Pada operasi dengan or, hasil berupa True
kalau terdapat operan bernilai True.
57
Berkas: operor.py
Akhir berkas
C:\pyGUI>operor.py
Masukkan pilihan (1, 2, atau 3): 1
hasil = True
C:\pyGUI>operor.py
Masukkan pilihan (1, 2, atau 3): 2
hasil = True
C:\pyGUI>operor.py
Masukkan pilihan (1, 2, atau 3): 3
hasil = True
C:\pyGUI>operor.py
Masukkan pilihan (1, 2, atau 3): 4
hasil = False
C:\pyGUI>
58
hasil = pilihan == "1" or pilihan == "2" \
or pilihan == "3"
Berkas: operand.py
Akhir berkas
Sebagai contoh, jika karakter adalah “b”, maka karakter >= "A"
bernilai True, akan tetapi karakter <= "Z" bernilai False. Dengan
demikian, operasi dengan and menghasilkan False. Jika karakter
adalah “G”, maka karakter >= "A" bernilai True dan karakter <=
"Z" juga bernilai True. Dengan demikian, operasi dengan and
menghasilkan True.
59
C:\pyGUI>operand.py
Masukkan sebuah karakter: G
Huruf kapital? = True
C:\pyGUI>operand.py
Masukkan sebuah karakter: b
Huruf kapital? = False
C:\pyGUI>
Berkas: opernot.py
print("Operator not")
print("------------")
keadaan = False
Akhir berkas
60
C:\pyGUI>opernot.py
Operator not
------------
Nilai semula: False
Hasil melalui not keadaan: True
Hasil melalui not keadaan: False
C:\pyGUI>
61
Penulisan literal dalam sistem biner telah diperkenalkan pada Sub-
subbab 1.9.1. Sebagai contoh, 158 dalam sistem desimal dapat ditulis
menjadi 0b10011110. Lalu, bagaimana kalau ingin menampilkan suatu
bilangan desimal ke sistem biner? Fungsi bin() bisa digunakan untuk
keperluan ini. Contoh:
>>> bin(158)
'0b10011110'
>>> bin(255)
'0b11111111'
>>>
62
Operator Keterangan Contoh
>> Operator geser bit ke kanan 15 >> 1 7
mempunyai bentuk 15 >> 2 3
penggunaan seperti berikut:
x >> n
<< Operator geser bit ke kiri 15 << 1 30
mempunyai bentuk 15 << 2 60
penggunaan seperti berikut:
x << n
Seluruh kemungkinan operasi dengan &, |, dan ^ pada level bit
untuk posisi bit yang sama diperlihatkan pada Tabel 1.12.
Hasil
Bit Operan 1 Bit Operan 2
& | ^
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
Berkas: bit.py
x = 77
print("Nilai ", x, " sekarang: ", x,
" (", bin(x), ")")
x |= 3
print("Nilai ", x, " setelah x |= 3 (",
bin(3), "): ", x, " (", bin(x), ")");
x &= 47
63
print("Nilai ", x, " setelah x &= 47 (",
bin(47), "): ", x, " (", bin(x), ")")
x ^= 131
print("Nilai ", x, " setelah x ^= 131 (",
bin(131), "): ", x, " (", bin(x), ")")
x >>= 1
print("Nilai ", x, " setelah x >>= 1: ", x)
x <<= 1
print("Nilai ", x, " setelah x <<= 1: ", x)
Akhir berkas
C:\pyGUI>bit.py
Nilai 77 sekarang: 77 ( 0b1001101 )
Nilai 79 setelah x |= 3 ( 0b11 ): 79 (
0b1001111 )
Nilai 15 setelah x &= 47 ( 0b101111 ): 15 (
0b1111 )
Nilai 140 setelah x ^= 131 ( 0b10000011 ):
140 ( 0b10001100 )
Nilai 70 setelah x >>= 1: 70
Nilai 140 setelah x <<= 1: 140
C:\pyGUI>
64
Gambar 1.19 Penjelasan operasi atau, dan, atau eksklusif untuk tataran
bit
65
Gambar 1.20 Penjelasan operasi penggeseran 1 bit ke kanan
-(n) – 1
Dengan demikian, ~81 menghasilkan -82 (berasal dari –(81) -1). Adapun
hasil ~-82 akan berupa 81 (berasal dari –(-82) – 1).
Berkas: isnot.py
bilangan = 30
print(type(bilangan) is int)
print(type(bilangan) == int)
Akhir berkas
66
Hasil pengujian isnot.py adalah seperti berikut:
C:\pyGUI>isnot.py
Operator is dan is not
----------------------
True
True
False
C:\pyGUI>
67
Pada contoh di atas, daftar_a = [1, 2, 3] membuat
daftar_a menyatakan senarai [1, 2, 3], Lalu, pernyataan daftar_b
= daftar_a[:] menyalin senarai yang dinyatakan oleh daftar_a.
sesudah penyalinan senarai dilakukan, tampak bahwa baik senarai yang
dinyatakan oleh daftar_a maupun daftar_b mempunyai nilai yang
sama. Akan tetapi, pembandingan menggunakan == dan is
memberikan hasil yang berbeda. Hal itu disebabkan, identitas kedua
senarai ternyata berbeda.
Contoh:
68
Mengingat 2 terdapat pada [1, 2, 3, 4, 5], maka 2 in senarai
menghasilkan True, sedangkan 7 in senarai menghasilkan
False karena 7 memang tidak terdapat pada senarai 7 not in
senarai justru memberikan hasil True.
str1 in str2
Hasil berupa True kalau string str1 terdapat pada string str1. Contoh:
69
1.11.9 Operator Penugasan
Operator penugasan yang sudah biasa digunakan adalah =. Namun
sebenarnya terdapat pula sejumlah operator penugasan dengan
bentuk:
simbol=
Berkas: penugasan.py
x = 5
print("Nilai x sekarang: ", x)
70
x += 2
print("Nilai x setelah x += 2: ", x)
x -= 3
print("Nilai x setelah x -= 3: ", x)
x *= 2
print("Nilai x setelah x *= 2:", x)
x /= 2
print("Nilai x setelah x /= 2: ", x)
x **= 2
print("Nilai x setelah x **= 2: ", x)
x %= 3
print("Nilai x setelah x %= 3: ", x)
Akhir berkas
C:\pyGUI>penugasan.py
Nilai x sekarang: 5
Nilai x setelah x += 2: 7
Nilai x setelah x -= 3: 4
Nilai x setelah x *= 2: 8
Nilai x setelah x /= 2: 4.0
Nilai x setelah x **= 2: 16.0
Nilai x setelah x %= 3: 1.0
C:\pyGUI>
71
>>> x = None
>>> x is None
True
>>> x is not None
False
>>> type(x)
<class 'NoneType'>
>>>
# print("Tes")
72
1.15 Penggunaan Modul
Python menyediakan banyak modul yang berisi fungsi atau
konstanta. Beberapa modul belum dimuat di memori komputer. Oleh
karena itu modul seperti itu harus diimpor terlebih dahulu. Perintah
yang diperlukan adalah import dengan bentuk:
import nama_modul
Berkas: konstanta.py
GRAVITASI = 9.8
PERUSAHAAN = "PT JAVA FLORA"
Akhir berkas
73
import math
https://docs.python.org/3/library/math.html
74
dianggap sebagai masukan bagi fungsi, sedangkan nilai balik adalah
keluaran yang diberikan ke pemanggil fungsi. Gambar 1.21 memberikan
gambaran tentang argumen dan nilai balik.
nama_objek.nama_metode()
nama_objek.nama_metode(argumen, …)
75
>>> teks = "Bahasa Pemrograman"
>>> teks.upper()
'BAHASA PEMROGRAMAN'
>>>
Jawab:
Pada Matematika, x-1 berarti 1/x. Secara lebih umum, x-y sama
dengan 1/xy. Jadi,10 ** -1 = 1/10.
Jawab:
Jawab:
76
Dua pernyataan tersebut akan membuat A dan B tidak terpisah
baris.
4. Apa yang terjadi jika salah satu operan pada or dan and
bernilai None?
Jawab:
Pada or, jika salah satu operan bernilai True dan yang satunya
berupa None, hasilnya berupa True. Jika kedua operan
bernilai None, hasil berupa None. Untuk keadaan lainnya
berupa False.
Jawab:
>>> bin(267)
'0b100001011'
>>> bin(267)[2:]
'100001011'
>>>
Jawab:
Tidak boleh.
77
1.18 Soal dan Latihan
1. Betul atau salah? Nama seperti pop! Tidak boleh digunakan
untuk menamai variabel.
3. Betul atau salah? Dua pernyataan boleh ditulis dalam satu baris
asal antara kedua pernyataan terdapat koma.
78
12. Buatlah skrip yang meminta dua data berupa alas dan tinggi
suatu segitiga siku-siku dimasukkan dari papan ketik.
Kemudian, luas segitiga ditampilkan.
79
Bab
Dasar Python –
2 Bagian Kedua
80
2.1 Indentasi Pernyataan
Pada Python, indentasi merupakan hal yang penting karena
indentasi digunakan sebagai blok kode pada pernyataan seperti if,
while, dan for. Sebagai contoh, perhatikan kode berikut:
if x > y:
print("1")
print("2")
print("3")
print("4")
81
bahwa seseorang pembeli bisa mendapatkan diskon atau tidak. Kasus
ini menunjukkan bahwa ada dua kemungkinan yang terjadi, yakni 1)
tidak mendapatkan diskon dan 2) mendapatkan diskon. Nah, bagaimana
menangani hal ini? Pernyataan seleksilah yang diperlukan karena
pernyataan ini dapat menentukan seseorang mendapatkan diskon atau
tidak.
pernyataan if;
2.2.1 Pernyataan if
Terdapat tiga bentuk penyataan if, yaitu:
• if saja;
• if…else;
• if…elif.
Bentuk if berupa:
if kondisi:
pernyataan_1
pernyataan_2
…
pernyataan_n
82
dijalankan sekiranya ekspresi bernilai True. Tentu saja, jumlah
pernyataan bisa berupa satu saja.
Berkas: ganjil.py
83
# Penentuan genap atau ganjil
keterangan = "ganjil"
if bilangan % 2 == 0:
keterangan = "genap"
Akhir berkas
Hasil pengujian dapat dilihat berikut ini:
C:\pyGUI>ganjil.py
Penentuan genap atau ganjil
Masukkan bilangan bulat: 4
bilangan genap
C:\pyGUI>ganjil.py
Penentuan genap atau ganjil
Masukkan bilangan bulat: 5
bilangan ganjil
C:\pyGUI>
84
Berkas: ganjil2.php
if bilangan % 2 == 0:
keterangan = "genap"
print("Kini, keterangan ditugasi dengan 'genap'")
print("bilangan", keterangan)
Akhir berkas
C:\pyGUI>ganjil2.py
Penentuan genap atau ganjil
Masukkan bilangan bulat: 4
Mula-mula, keterangan ditugasi dengan 'ganjil'
Kini, keterangan ditugasi dengan 'genap'
bilangan genap
C:\pyGUI>ganjil2.py
Penentuan genap atau ganjil
Masukkan bilangan bulat: 3
Mula-mula, keterangan ditugasi dengan 'ganjil'
bilangan ganjil
C:\pyGUI>
85
Tampak bahwa untuk bilangan genap, keterangan berikut muncul:
If kondisi:
pernyataan_11
pernyataan_12
…
pernyataan_1n
else:
pernyataan_21
pernyataan_22
…
pernyataan_2n
86
Gambar 2.2 Diagram alir pernyataan if…else
Berkas: ganjil3.py
print("bilangan", keterangan)
87
Akhir berkas
if kondisi_1:
pernyataan_1
elif kondisi_2:
pernyataan_2
elif (kondisi_3)
pernyataan_3
…
elif kondisi_m:
pernyataan_m
else:
pernyataan_n
88
pernyataan_m dijalankan hanya kalau kondisi_m bernilai True
dan pernyataan if berakhir. Jika tidak, bagian else
dijalankan;
Perlu diketahui, bagian else boleh tidak ada. Selain itu, setiap
pernyataan (pernyataan_1 hingga pernyataan n) bisa terdiri atas lebih
dari satu pernyataan.
89
Gambar 2.3 Diagram alir if…elif
Berkas: hari.py
import datetime
now = datetime.datetime.now()
nama_hari = now.strftime("%A")
if nama_hari == "Sunday":
90
print("Minggu");
elif nama_hari == "Monday":
print("Senin");
elif nama_hari == "Tuesday":
print("Selasa");
elif nama_hari == "Wednesday":
print("Rabu");
elif nama_hari == "Thursday":
print("Kamis");
elif nama_hari == "Friday":
print("Jumat")
else:
print("Sabtu")
Akhir berkas
C:\pyGUI>hari.py
Senin
C:\pyGUI>
91
Ekspresi ini memberikan hasil sesuai dengan nila1_1 kalau kondisi
bernilai True. Apabila kondisi bernilai False, hasil ekspresi berupa
nilai_2.
Berkas: ganjil4.py
print("bilangan", keterangan)
Akhir berkas
92
C:\pyGUI>ganjil4.py
Penentuan genap atau ganjil
Masukkan bilangan bulat: 4
bilangan genap
C:\pyGUI>ganjil4.py
Penentuan genap atau ganjil
Masukkan bilangan bulat: 6
bilangan genap
C:\pyGUI>
while;
for.
93
2.2.1 Pernyataan while
Pernyataan while mempunyai bentuk seperti berikut:
while kondisi:
pernyataan_1
pernyataan_2
…
pernyataan_n
94
Skrip berikut menunjukkan contoh penggunaan while untuk
menampilkan n tulisan “Python” dengan n dikontrol melalui variabel:
Berkas: ntulisan.py
pencacah = 1;
pencacah += 1
Akhir berkas
C:\pyGUI>ntulisan.py
Jumlah: 5
Python
Python
Python
Python
Python
C:\pyGUI>
95
“Python” ditampilkan untuk yang pertama kali dan pencacah
mencatat 2 berkat pernyataan pencacah += 1.
96
Kondisi di while diuji kembali. Dalam hal ini, kondisi berupa 6
<= 5, yang memberikan nilai False. Keadaan ini membuat
while diakhiri.
10
Berkas: deret.py
bilangan = 10
bilangan -= 2
Akhir berkas
97
print(bilangan")
bilangan -= 2
C:\pyGUI>deret.py
10
8
6
4
2
0
C:\pyGUI>
98
Pada iterasi pertama, variabel bernilai nilai_1. Pada iterasi kedua,
variabel bernilai nilai_2, dst.
Berkas: for.py
Akhir berkas
C:\pyGUI>for.py
1 Python
2 Python
3 Python
4 Python
5 Python
C:\pyGUI>
range(akhir)
range(awal, akhir)
range(awal, akhir, langkah)
99
Pada bentuk pertama, range() menghasilkan deretan angka
bulat dari 0 sampai dengan sebelum akhir. Pada bentuk kedua,
range() menghasilkan deretan angka bulat dari awal sampai dengan
sebelum akhir. Pada bentuk ketiga, range() menghasilkan deretan
angka bulat dari awal sampai dengan sebelum akhir, dengan kenaikan
sebesar langkah. Perlu diketahui, efek range() hanya terlihat di for.
Berikut adalah contoh penggunaan range().
Contoh 1:
Contoh 2:
100
>>> for nilai in range(1, 7):
... print(nilai)
...
1
2
3
4
5
6
>>>
Contoh 3:
Contoh 4:
101
>>> for nilai in range(10, 0, -2):
... print(nilai)
...
10
8
6
4
2
>>>
Berkas: deretfor.py
Akhir berkas
C:\pyGUI>deretfor.py
10
8
6
4
2
0
C:\pyGUI>
102
Penggunaan pernyataan while kadang kala menimbulkan efek
pengulangan selamanya atau pengulangan yang tidak pernah berakhir.
Hal ini terjadi manakala kondisi pada while tidak pernah bernilai
False.
Berkas: selamanya.py
bilangan = 1
while bilangan <= 5:
print(bilangan)
Akhir berkas
*
**
***
****
*****
103
Skrip berikut mewujudkan segitiga seperti di atas dengan tinggi
segitiga ditentukan dari papan ketik:
Berkas: segitiga.py
Akhir berkas
104
Perintah ini digunakan untuk menambahkan karakter pindah baris
setelah simbol * sebanyak nilai baris ditampilkan.
C:\pyGUI>segitiga.py
Tinggi segitiga: 5
*
**
***
****
*****
C:\pyGUI>segitiga.py
Tinggi segitiga: 8
*
**
***
****
*****
******
*******
********
C:\pyGUI>
break,
continue,
exit().
105
2.5.1 Pernyataan break
Pernyataan break diterapkan pada perulangan dengan maksud
untuk mengakhiri perulangan.
Berkas: break.py
print(bilangan)
Akhir berkas
C:\pyGUI>break.py
1
2
3
C:\pyGUI>
106
pengujian kembali kondisi pada while;
Berkas : conwhile.py
x = 1
while x <= 5:
if x == 3:
print("continue dijalankan")
x += 1
continue
print(x)
x += 1
print(" ***")
Akhir berkas
107
C:\pyGUI>conwhile.py
1
***
2
***
continue dijalankan
4
***
5
***
C:\pyGUI>
Berkas : confor.py
print(x)
Akhir berkas
108
C:\pyGUI>confor.py
1
2
4
5
7
8
C:\pyGUI>
sys.exit(1)
Berkas: exit.py
109
if x == acak:
sys.exit(x)
print(x)
Akhir berkas
110
C:\pyGUI>exit.py
1
2
3
4
5
6
7
8
9
10
C:\pyGUI>echo %ERRORLEVEL%
0
C:\pyGUI>
111
C:\pyGUI>exit.py
1
2
3
4
5
C:\pyGUI>echo %ERRORLEVEL%
6
C:\pyGUI>
112
Pada contoh tersebut, pass akan dijalankan mengingat kondisi 4 >
3 bernilai True, tetapi tidak ada hasil apapun karena pass memang
tidak melakukan apapun.
pass
Pada pembuatan program, seringkali hal seperti itu dilakukan jika Anda
bermaksud menuliskan kode belakangan dan untuk sementara tidak
perlu ada kode apapun untuk fungsi tersebut, tetapi keberadaan fungsi
tetap diperlukan.
113
Nama fungsi dan parameter harus mengikuti aturan pengenal
(Subbab 2.7). Parameter menyatakan nilai yang digunakan sebagai
mekanisme untuk melewatkan nilai dari pemanggil. Di pemanggil, hal ini
disebut argumen.
def tampilkan_judul():
print("PT CITRA ANANDA FLORA")
print("=====================")
Pada definisi ini, tampilkan_judul adalah nama fungsi. Fungsi ini
tidak memiliki parameter. Fungsi mengandung dua pernyataan berupa
print() dan tidak mempunyai nilai balik.
tampilkan_judul()
Berkas: fungsi.py
def tampilkan_judul():
114
print("PT CITRA ANANDA FLORA")
print("=====================")
# Penggunaan fungsi
tampilkan_judul()
Akhir berkas
Hasil pemanggilan skrip adalah seperti berikut:
C:\pyGUI>fungsi.py
PT CITRA ANANDA FLORA
=====================
C:\pyGUI>
x = nama_fungsi(10)
return(nilai_balik); atau
return nilai_balik;
Contoh fungsi dengan nilai balik dapat dilihat pada skrip berikut:
Berkas: nilbalik.py
115
terbesar = x if x > y else y
return(terbesar)
# Pemanggilan fungsi
x = 50
y = 77
print("maksimum(", x, ", ", y, ") -> ", \
maksimum(x, y), sep ="")
print("maksimum(", y, ", ", x, ") -> ", \
maksimum(y, x), sep ="")
Akhir berkas
Perhatikan definisi berikut:
def maksimum(x, y):
terbesar = x if x > y else y
return(terbesar)
C:\pyGUI>nilbalik.py
maksimum(50, 77) -> 77
maksimum(77, 50) -> 77
C:\pyGUI>
116
def buat_garis(simbol="-", jumlah=10):
...
Berkas: argbawaan.py
# Pemanggilan fungsi
buat_garis()
buat_garis("=")
buat_garis("*-", 15)
Akhir berkas
C:\pyGUI>argbawaan.py buat_garis()
----------
buat_garis("=")
==========
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
117
2.7.5 Argumen Bernama
Argumen bernama memungkinkan pemanggilan fungsi dengan
menyebutkan nama argumen yang disertai dengan nilai. Cara seperti ini
memungkinkan pengiriman argumen yang tidak mengikuti urutan
argumen dalam definisi fungsi. Sebagai contoh, perhatikan dua perintah
print() berikut:
118
2.7.6 Argumen Berbentuk *arg
Argumen berbentuk *arg berguna untuk memperoleh
keseluruhan argumen dalam fungsi dalam bentuk tupel. Tupel adalah
salah satu struktur data pada Python yang membuat kumpulan data
dinyatakan dalam tanda kurung. Struktur data ini dijelaskan lebih lanjut
pada Sub-subbab 2.9.2.
Berkas: arg.py
def tampil_arg(*arg):
print(arg)
# Pemanggilan fungsi
tampil_arg(1, 2, 3, 4, 5)
tampil_arg("A", "C", "I", "D")
Akhir berkas
C:\pyGUI>arg.py
(1, 2, 3, 4, 5)
('A', 'C', 'I', 'D')
C:\pyGUI>
119
Sebagai contoh, fungsi terbesar() dapat dipakai untuk
mencari bilangan terbesar yang didasarkan pada nilai-nilai argumen. Hal
ini diwujudkan pada skrip berikut:
Berkas: terbesar.py
def terbesar(*arg):
maks = arg[0] # Data pertama
for nilai in arg[1:]:
if nilai > maks:
maks = nilai
return maks
# Pemanggilan fungsi
print(terbesar(1, 2, 3, 4, 5))
print(terbesar("A", "C", "I", "D"))
Akhir berkas
C:\pyGUI>terbesar.py
5
I
C:\pyGUI>
120
kamus dibahas pada Sub-subbab 2.9.3). Dengan menggunakan **arg,
argumen dapat menerima data berbentuk nama=nilai.
Berkas: dict.py
def peroleh_kamus(**arg):
return arg
# Pemanggilan fungsi
kamus = peroleh_kamus(kucing="cat", \
kuda="horse", \
burung="bird")
print(kamus)
Akhir berkas
C:\pyGUI>dict.py
{'kucing': 'cat', 'kuda': 'horse', 'burung':
'bird'}
C:\pyGUI>
121
>>> import math
>>> akar = math.sqrt
>>> akar(25)
5.0
>>>
akar = math.sqrt
Berkas: argfungsi.py
# Pemanggilan fungsi
import math
arg = 100
print("Argumen berupa fungsi math.sqrt():",
proses_fungsi(math.sqrt, arg))
Akhir berkas
122
Pada skrip argfungsi.py, fungsi proses_fungsi()
melibatkan argumen berupa fungsi. Selanjutnya, fungsi tersebut
dijadikan sebagai nilai balik melalui pernyataan
return fungsi(nilai)
C:\pyGUI>argfungsi.py
Argumen berupa fungsi math.sqrt(): 10.0
Argumen berupa fungsi bin(): 0b1100100
C:\pyGUI>
Tanda [] menyatakan bahwa bagian ini bersifat opsional; bisa ada, bisa
mengandung satu atau beberapa argumen.
123
Tabel 2.1 Ekuivalensi fungsi bernama dan fungsi anonim
Berkas: anonim.py
f = lambda x, y: x + y
# Pemanggilan fungsi
hasil = f("12", "34")
print(hasil)
print(f(12, 34))
Akhir berkas
C:\pyGUI>anonim.py
1234
46
C:\pyGUI>
124
Salah satu contoh klasik penggunaan fungsi rekursif adalah untuk
menangani perhitungan n! atau dibaca “n faktorial”. Dalam hal ini, n!
didefinisikan sebagai berikut:
n! = n * (n – 1) x (n – 2) x … x 3 x 2 x 1
0! = 1
0! = 1
def faktorial(n):
if n == 0:
return 1
else:
return n * faktorial(n -1)
Berkas: rekursif.py
def faktorial(n):
125
if n == 0:
return 1
else:
return n * faktorial(n - 1)
# Pemanggilan fungsi
n = 4
print(n, "! = ", faktorial(n), sep="")
n = 5
print(n, "! = ", faktorial(n), sep="")
Akhir berkas
C:\pyGUI>rekursif.py
4! = 24
5! = 120
C:\pyGUI>
Berkas: multiret.py
126
def peroleh_nip_nama():
nip = input("NIP : ")
# Pemanggilan
(nip, nama) = peroleh_nip_nama()
print()
print("NIP :", nip)
print("Nama:", nama)
Akhir berkas
def peroleh_nip_nama()
...
menyatakan fungsi yang tidak memiliki argumen. Di tubuh fungsi,
terdapat perintah untuk membaca data NIP dan nama dari papan ketik.
Terakhir, pernyataan berikut digunakan untuk memberikan nilai balik
berupa nip dan nama:
Nilai balik yang terdiri atas dua nilai tersebut dengan sendirinya akan
dinyatakan dalam tupel (Tupel dibahas pada Sub-subbab 2.9.2). Itulah
sebabnya, pada pemanggilan fungsi peroleh_nip_nama()
berbentuk:
127
c:\pyGUI>multiret.py
NIP : 12345
Nama: Andi Prasetya
NIP : 12345
Nama: Andi Prasetya
c:\pyGUI>
Berkas: modul.py
# Konstanta
# Definisi fungsi
def energi_massa(m):
# e = mc^2
# c dalam meter/detik
128
# m dalam kg
# e dalam Joule
return m * KECEPATAN_CAHAYA ** 2
Akhir berkas
Berkas: global.py
jari_jari = 5
def keliling_lingkaran():
keliling = 2 * 2.14 * jari_jari
print(keliling)
# Panggil fungsi
keliling_lingkaran()
129
Akhir berkas
c:\pyGUI>global.py
31.400000000000002
c:\pyGUI>
130
Pada keadaan seperti ini, x yang berada di kiri = adalah x yang
berkedudukan sebagai variabel lokal. Jelas, dengan mekanisme seperti
ini variabel global tidak mungkin diubah oleh fungsi.
Berkas: lokal.py
def fx():
print("---- Awal fungsi")
x = 0
print("x sekarang:", x)
print("---- Akhir fungsi")
# Panggil fungsi
x = 6
print("x sebelum fx() dieksekusi", x)
fx()
print("x setelah fx() dieksekusi", x)
Akhir berkas
Apakah nilai x ini bisa diubah oleh fungsi fx()? Perhatikan hasil
berikut:
131
c:\pyGUI>lokal.py
x sebelum fx() dieksekusi 6
---- Awal fungsi
x sekarang: 0
---- Akhir fungsi
x setelah fx() dieksekusi 6
c:\pyGUI>
Tampak bahwa x yang bersifat global tidak bisa diubah oleh fungsi
fx().
Lalu, apakah berarti bahwa variabel global tidak bisa diubah oleh
fungsi? Jawabannya adalah bisa asalkan di fungsi terdapat pernyataan:
global nama_variabel
Dengan cara seperti itu, variabel global bisa diubah oleh fungsi.
Berkas: lokal.py
def fx():
print("---- Awal fungsi")
x = 0
print("x sekarang:", x)
print("---- Akhir fungsi")
# Panggil fungsi
x = 6
print("x sebelum fx() dieksekusi", x)
fx()
print("x setelah fx() dieksekusi", x)
Akhir berkas
132
Perhatikan bahwa di dalam fungsi fx() terdapat pernyataan:
global x
Dengan cara seperti ini, nilai x bisa diubah oleh fungsi fx(),
sebagaimana ditunjukkan berikut ini:
c:\pyGUI>lokal.py
x sebelum fx() dieksekusi 6
---- Awal fungsi
x sekarang: 0
---- Akhir fungsi
x setelah fx() dieksekusi 0
c:\pyGUI>
senarai (list)
tupel (tuple)
kamus (dictionary)
himpunan (set)
2.8.1 Senarai
Senarai adalah objek yang dapat menampung sejumlah data
dengan elemen data masing-masing bisa berbeda tipe. Senarai
133
termasuk struktur data yang bersifat mutable (isinya dapat diubah).
Senarai ditulis dalam tanda [] dan antarelemen data dipisah oleh koma.
Contoh:
[1, 3, 5, 7]
[]
variabel = senarai
Contoh:
mobil = ["AB7374SA", "Suzuki", 1600, "Merah"]
134
Penugasan dan contoh untuk memperlihatkan data yang
dinyatakan oleh variabel mobil dapat dilihat berikut:
mobil[indeks]
135
>>> print(mobil[0])
AB7374SA
>>> print(mobil[3])
Merah
>>>
variabel[awal:akhir]
Pada bentuk seperti itu, irisan akan berupa senarai dengan elemen
pertama adalah elemen senarai yang berindeks awal hingga yang
berindeks akhir – 1. Contoh:
>>> mobil[1:3]
['Suzuki', 1500]
>>>
>>> mobil[1:]
['Suzuki', 1500, 'Merah']
>>>
136
Adakalanya, di dalam [] tidak disebutkan indeks awal dan indeks
akhirnya. Jadi, yang berada dalam [] hanya berupa simbol. Pada
keadaan seperti itu, hasil irisan berupa seluruh elemen dalam senarai.
Contoh:
137
Senarai adalah objek yang bersifat mutable. Elemen-elemennya
dapat diubah. Contoh berikut menunjukkan cara mengubah nilai pada
indeks 2 menjadi 1500:
>>> print(mobil)
['AB7374SA', 'Suzuki', 1500, 'Merah']
>>> mobil[2:4] = [1490, "Biru"]
>>> print(mobil)
['AB7374SA', 'Suzuki', 1490, 'Biru']
>>>
138
>>> x = [3, 5, 1, 2]
>>> len(x)
4
>>> x = []
>>> len(x)
0
>>>
senarai.insert(indeks, nilai)
139
Dalam hal ini, indeks dimulai dari 0. Contoh berikut menyisipkan elemen
ke indeks 0 dan 1:
140
Berikut menunjukkan contoh penggunaan metode pop():
senarai.remove(nilai)
Contoh:
141
>>> x = [2, 4, 1, 3, 4]
>>> x.index(4)
1
>>> x.index(8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 8 is not in list
>>>
142
>>> x = [2, 4, 1, 3, 4]
>>> x.sort()
>>> x
[1, 2, 3, 4, 4]
>>>
143
key=str.lower, “Panda” justru terletak sesudah “kelinci” karena
huruf kecil dan kapital tidak dibedakan.
list(reversed(senarai))
Contoh:
144
Hasil fungsi range() (telah dibahas pada Sub-subbab 2.2.2)
dapat dijadikan sebagai senarai dengan menjadikan sebagai argumen
dari list(). Contoh:
>>> list(range(7))
[0, 1, 2, 3, 4, 5, 6]
>>> list(range(2, 9))
[2, 3, 4, 5, 6, 7, 8]
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8]
>>>
list(filter(fungsi, senarai)
)
Dalam hal ini, fungsi yang menjadi argumen filter() berupa fungsi
yang menghasilkan True atau False. Hasil akhir pemanggilan
list() di depan berupa senarai dengan elemen-elemen berdasarkan
elemen-elemen pada argumen senarai yang jika dikenai fungsi
menghasilkan True.
145
Pada contoh ini, fungsi anonim lambda a : a % 2 == 0
digunakan untuk memberikan nilai balik berupa True kalau argumen
x berupa bilangan genap. Dalam hal ini, a menyatakan sebuah elemen.
list(map(fungsi, senarai)
)
Dalam hal ini, fungsi yang menjadi argumen filter() berupa fungsi
yang melakukan pemrosesan terhadap satu elemen di senarai per
iterasi.
146
Pada contoh di atas, lambda a: a * a . Dalam hal ini, a menyatakan
sebuah elemen dan a * a menyatakan a kuadrat.
Operator Keterangan
+ Operator ini berguna untuk menggabungkan
elemen-elemen dalam dua senarai.
* Operator ini berfungsi untuk mengulang
elemen-elemen dalam senarai.
!= Operator ini menyatakan pembandingan
tidak sama dengan. Hasil True jika
pembandingan pada semua elemen pada
posisi yang sama menghasilkan nilai True.
== Operator ini menyatakan pembandingan
sama dengan. Hasil True jika
pembandingan pada semua elemen pada
147
Operator Keterangan
posisi yang sama menghasilkan nilai True.
in Operator ini menyatakan anggota (“terdapat
dalam”), dengan hasil berupa True jika yang
berada di kiri in terdapat pada senarai di
kanan in.
148
>>> x = [1, 2, 3, 4, 5]
>>> 2 in x
True
>>> 8 in x
False
>>>
2.8.2 Tupel
Tupel adalah struktur data yang serupa dengan senarai, dengan
perbedaan menggunakan () untuk melingkupi elemen-elemennya.
Namun, berbeda dengan senarai, Tupel bersifat immutable. Jadi,
elemen-elemennya tidak dapat diubah. Tabel 2.3 menunjukkan contoh
penulisan sejumlah tupel.
Penugasan Keterangan
t = () Tupel kosong. Di dalam () tidak terdapat
elemen sama sekali.
t = ('A', 'B') Tupel ini mengandung dua elemen bertipe
string.
t = 1, 2, 3 Tupel dengan tiga elemen. Identik dengan:
t = (1, 2, 3)
t = 1, Tupel dengan satu elemen. Identik dengan:
t = (1,)
t = (1, 2, (3, 4)) Tupel yang mengandung tupel (yakni pada
elemen dengan indeks 2).
t = ('Agya', 1300) Tupel dengan elemen yang berbeda tipe.
149
Pengaksesan elemen tupel dapat dilakukan dengan menggunakan:
nama_tupel[indeks]
Contoh:
150
Tabel 2.4 Contoh penggunaan fungsi pada tupel
Contoh Penggunaan Keterangan
Fungsi/Metode
>>> len((1, 2, 3)) Perintah ini digunakan untuk mengetahui
3 jumlah elemen dalam tupel (1, 2, 3). Nilai
baliknya berupa 2.
>>>
>>> t = (1, 2, 3, 2, 4, 1, 2) Contoh penggunaan metode count()
>>> t.count(2) untuk menghitung frekuensi nilai 2 pada
3 elemen t.
>>>
>>> tuple(range(7)) Contoh pembentukan tupel menggunakan
(0, 1, 2, 3, 4, 5, 6) range().
>>>
>>> t = (5, 1, 2, 7, 3) Contoh untuk mendapatkan nilai terbesar
>>> max(t) pada tupel.
7
>>>
>>> tuple([1, 2, 5, 3]) Contoh untuk mengonversi senarai ke tupel.
(1, 2, 5, 3)
>>>
>>> t = (1, 2, 3) Contoh untuk mengonversi tupel ke senarai.
>>> list(t)
[1, 2, 3]
>>>
2.8.3 Kamus
Kamus di Python dapat dibayangkan seperti kamus yang kita
gunakan sehari-hari; misalnya, kamus Bahasa Inggris ke Bahasa
Indonesia. Kata dalam bahasa Inggris bertindak sebagai kata-kunci.
Melalui kata-kunci ini, arti dalam Bahasa Indonesia bisa ditemukan.
151
Demikian halnya pada kamus di Python. Kamus mengandung nol, satu
atau sejumlah elemen, dengan setiap item mengandung kunci dan nilai
secara berpasangan. Dalam hal ini, kunci bersifat unik (tidak ada yang
kembar). Perlu diketahui, kamus bersifat mutable.
Contoh:
hewan = {}
152
>>> hewan = {"kelinci": "rabbit", "burung":
"bird"}
>>> len(hewan)
2
>>>
variabel_kamus[kunci]
153
>>> hewan = {"kelinci": "rabbit", "burung":
"bird"}
>>> hewan.get("burung")
'bird'
>>> hewan.get("kuda")
>>>
Nilai balik metode get() dapat diatur sekiranya kunci yang dicari
tidak ada pada kamus. Contoh:
154
Tampak bahwa sekarang kamus hewan mengandung tiga elemen.
155
dan memberikan nilai balik berupa pasangan kunci dan nilainya dalam
bentuk tupel. Contoh:
list(kamus.keys())
156
Contoh:
157
Adapun kalau yang dikehendaki adalah mendapatkan nilai-nilai
yang terdapat pada kamus, metode values() yang digunakan.
Contoh:
158
>>> frekuensi = {"A": 5, "E": 2, "B": 1, "D":
3}
>>> for kunci in frekuensi:
... print(kunci, "->", kamus[kunci])
...
A -> 5
E -> 2
B -> 1
D -> 3
>>>
159
>>> frekuensi = {"A": 5, "E": 2, "B": 1, "D":
3}
>>> "B" in frekuensi
True
>>> "R" in frekuensi
False
>>>
Berkas: memori.py
kamus = {}
while True:
print("Masukkan nama hewan atau tanaman\n" +
"Akhiri dengan menekan Enter saja. ",
end="")
masukan = input()
if len(masukan) == 0:
break;
kunci = masukan.lower()
kategori = kamus.get(kunci)
if kategori == None:
print("Saya belum tahu " + masukan + ".")
print("Ketik 1 untuk hewan " +
"atau 2 untuk tanaman")
jenis = input()
if jenis == "1":
kamus.update({kunci: "hewan"})
print("Baik, saya ingat-ingat\n")
elif jenis == "2":
kamus.update({kunci: "tanaman"})
print("Baik, saya ingat-ingat\n")
else:
print("Saya tahu. " + kunci +\
" adalah " + kategori + ".\n")
160
print("\nSelesai")
Akhir berkas
161
print("Saya tahu. " + kunci +\
" adalah " + kategori + ".\n")
c:\pyGUI>memori.py
Masukkan nama hewan atau tanaman
Akhiri dengan menekan Enter saja. kuda
Saya belum tahu kuda.
Ketik 1 untuk hewan atau 2 untuk tanaman
1
Baik, saya ingat-ingat
Selesai
c:\pyGUI>
162
2.8.4 Himpunan
Himpunan adalah objek yang bersifat mutable dengan data yang
dikandungnya bersifat unik (tidak ada yang kembar) dan urutan data
tidak penting. Pengaksesan data menurut indeks tidak dimungkinkan
pada himpunan.
x = set()
y = {1}
z = {1, 2, 3, 4, 5}
z = {2, 1, 3, 4, 5}
z = {1, 2, 3, 4, 5}
z = {5, 4, 3, 2, 1}
163
>>> {1, 2, 3, 4, 5} == {5, 4, 3, 2, 1}
True
>>>
Tampak bahwa nilai 1 dan 2 meskipun ditulis lebih dari satu kali hanya
tercatat satu kali.
164
>>> x = {"Agya", "Baleno", "Terios"}
>>> y = {1, 7, 3, 4, 8}
>>> len(x)
3
>>> len(y)
5
>>>
165
Metode remove() juga disediakan untuk menghapus suatu
elemen di himpunan. Namun, metode ini menimbulkan eksepsi
sekiranya data yang dihapus tidak terdapat di himpunan. Contoh:
166
>>> buah = {"Apel", "Mangga", "Pepaya",
"Stroberi"}
>>> for nama in buah:
... print(nama)
...
Apel
Stroberi
Mangga
Pepaya
>>>
a = {1, 2, 3}
b = {1, 2, 3, 4, 5}
167
Hasil di atas menyatakan b bukan subhimpunan dari a (hasil
b.issubset(a)) melainkan a adalah subhimpunan dari b (hasil
a.issubset(b)). Contoh ketiga menunjukkan bahwa jika dua
himpunan sama, issubset() akan menghasilkan True.
168
Operasi union dapat dilakukan dengan menggunakan metode
union(). Contoh:
169
Gambar 2.8 Interseksi dua himpunan. Hasilnya yang diarsir hitam
170
Operasi selisih digunakan untuk mendapatkan elemen-elemen yang
terdapat di suatu himpunan, tetapi tidak berada di himpunan lain. Hal
ini ditangani oleh metode difference(). Contoh:
171
Gambar 2.9 Selisih dua himpunan. Hasilnya yang diarsir hitam
172
Gambar 2.10 Selisih simetris pada dua himpunan
173
x.symmetric_difference(y)
y.symmetric_difference(x)
Berkas: himpunan.py
himpunan = set()
himpunan.add(bilangan)
print()
if len(himpunan) != 6:
print("Dari keenam data yang Anda " +\
"masukkan, terdapat data " +\
"yang kembar")
Akhir berkas
Skrip ini meminta pemakai memasukkan enam bilangan bulat dari
papan-ketik dan disimpan ke dalam himpunan. Kemudian, setiap
elemen ditampilkan. Terakhir, sekiranya terdapat data yang kembar,
informasi berikut ditampilkan:
174
c:\pyGUI>himpunan.py
Masukkan enam bilangan
1: 5
2: 6
3: 7
4: 8
5: 9
6: 10
Elemen dalam himpunan:
5 6 7 8 9 10
c:\pyGUI>
c:\pyGUI>himpunan.py
Masukkan enam bilangan
1: 5
2: 6
3: 5
4: 8
5: 9
6: 10
Elemen dalam himpunan:
5 6 8 9 10
Dari keenam data yang Anda masukkan, terdapat
data yang kembar
c:\pyGUI>
175
Tabel 2.5 Daftar sejumlah nama eksepsi
176
Nama Eksepsi Keterangan
SyntaxError Kesalahan secara sintaks terjadi.
TypeError Kesalahan karena ada suatu operasi
terhadap objek yang sebenarnya tidak
didukung; misalnya Anda mengubah nilai
elemen pada tupel yang sebenarnya
bersifat immutable. Contoh:
t = (1, 2)
t[0] = 5
ValueError Eksepsi terjadi karena pemberian nilai
argumen yang salah. Contoh:
import math
math.sqrt(-1)
ZeroDivisionError Kesalahan karena ada pembagian bilangan
dengan nol. Contoh:
print(5/0)
177
try:
pernyataan_1
pernyataan_2
…
except [nama_eksepsi]:
pernyataan_a
pernyataan_b
…
[else:
pernyataan_x
pernyataan_y
…
]
178
>>> try:
... print(5 / 2)
... except:
... print("Terjadi eksepsi")
... else:
... print("Baik-baik saja")
...
2.5
Baik-baik saja
>>>
>>> try:
... print(5 / 0)
... except:
... print("Terjadi eksepsi")
... else:
... print("Baik-baik saja")
...
Terjadi eksepsi
>>>
>>> try:
... print(5 / 0)
... except Exception as err:
... print("Terjadi eksepsi")
... print(err)
...
Terjadi eksepsi
division by zero
>>>
179
Contoh berikut menunjukkan skrip yang menangani eksepsi
pemasukan data yang tidak berupa bilangan bulat:
Berkas: validbil.py
while True:
try:
masukan = input("Masukkan bilangan bulat: ")
bil_bulat = int(masukan)
break
except ValueError:
print("Maaf, harus berupa bilangan bulat.")
Akhir berkas
c:\pyGUI>validbil.py
Masukkan bilangan bulat: 5A
Maaf, harus berupa bilangan bulat.
Masukkan bilangan bulat: 17.2
Maaf, harus berupa bilangan bulat.
Masukkan bilangan bulat: 17
Bilangan yang Anda masukkan: 17
c:\pyGUI>
180
2.9.2 Satu except Menangani Lebih Satu Eksepsi
Pada contoh di depan, satu except digunakan untuk menangani
satu eksepsi. Sesungguhnya, satu except dapat digunakan untuk
menangani lebih dari satu eksepsi. Dalam hal ini, eksepsi-eksepsi yang
dilibatkan perlu ditulis dalam bentuk tupel. Contoh:
Berkas: multi.py
import math
Akhir berkas
c:\pyGUI>multi.py
Akar 10 = 2.1622776601683795
Akar -1 = math domain error
Akar 10 = must be real number, not str
Akar [1, 2] = must be real number, not list
c:\pyGUI>
181
2.9.3 Satu try Melibatkan Dua except
Apabila try melibatkan penanganan dua eksepsi dan pada
eksepsi masing-masing diperlukan penanganan tersendiri, eksepsi
masing-masing perlu ditangani menggunakan except tersendiri. Perlu
diketahui, pernyataan try dapat mengandung lebih dari satu except.
Contoh:
Berkas: multi2.py
import math
Akhir berkas
c:\pyGUI>multi2.py
Akar 10 = 2.1622776601683795
Akar -1 = <Akar tidak boleh negatif>
Akar 10 = must be real number, not str
Akar [1, 2] = must be real number, not list
c:\pyGUI>
182
2.9.4 Pernyataan try…finally
Pernyataan try dapat mengadung klausa finally dengan
bentuk seperti berikut:
finally:
pernyataan_1
pernyataan_2
…
Berkas: finally.py
import math
try:
masukan = input("Masukkan bilangan bulat: ")
bil = int(masukan)
print("Akar", bil, "=", math.sqrt(bil))
except Exception as err:
print(err)
finally:
print("Akhir try")
Akhir berkas
Berikut adalah contoh hasil pengujian skrip ini:
183
c:\pyGUI>finally.py
Masukkan bilangan bulat: 100
Akar 100 = 10.0
Akhir try
c:\pyGUI>finally.py
Masukkan bilangan bulat: 10a
invalid literal for int() with base 10: '10a'
Akhir try
c:\pyGUI>
class NamaKelas:
[“””string dokumentasi”””]
pernyataan_1
pernyataan_2
…
184
Nama kelas bisa ditulis dengan awalan huruf kapital. Baris pertama
dalam kelas bisa berisi string dokumentasi, yang ditulis dengan awalan
dan akhiran tiga petik ganda.
nama = "Sakura"
def tampilkan_nama(self):
print("Aku adalah", self.nama)
185
independen antara satu objek dengan objek lain yang berkelas sama.
Pembahasan lebih detail akan dibahas belakangan.
Berkas: kelas.py
class Tanaman:
"""Kelas Tanaman adalah contoh suatu kelas yang
mengandung atribut dan metode """
nama = "Sakura"
def tampilkan_nama(self):
print("Aku adalah", self.nama)
# Penggunaan kelas
bunga = Tanaman()
bunga.tampilkan_nama()
bunga.nama = "Mawar"
bunga.tampilkan_nama()
print("-----------------")
sayuran = Tanaman()
sayuran.tampilkan_nama()
sayuran.nama = "Bayam"
print("-----------------")
sayuran.tampilkan_nama()
bunga.tampilkan_nama()
186
Akhir berkas
187
c:\pyGUI>kelas.py
Aku adalah Sakura
Aku adalah Mawar Independen,
----------------- karena nama
Aku adalah Sakura yang
----------------- digunakan
Aku adalah Bayam milik objek
Aku adalah Mawar
c:\pyGUI>
Berkas: konstruktor.py
class Tanaman:
def __init__(self, nama = "<belum ditentukan>"):
self.nama = nama
188
def tampilkan_nama(self):
print("Aku adalah", self.nama)
# Penggunaan kelas
bunga = Tanaman()
bunga.tampilkan_nama()
bunga.ubah_nama("Mawar")
bunga.tampilkan_nama()
print("-----------------")
bunga = Tanaman("Bayam")
bunga.tampilkan_nama()
Akhir berkas
189
Mengingat tidak ada argumen yang diberikan, nilai bawaan “<belum
ditentukan> akan digunakan. Jadi, pernyataan di atas identik dengan:
bunga = Tanaman("<belum ditentukan>"))
c:\pyGUI>konstruktor.py
Aku adalah <belum ditentukan>
Aku adalah Mawar
-----------------
Aku adalah Bayam
c:\pyGUI>
Berkas: berbagi.py
class Alien:
190
pencacah = 0 # Atribut kelas
# ------- konstruktor
def __init__(self, nama):
self.nama = nama
Alien.pencacah += 1
# ------- destruktor
def __del__(self):
Alien.pencacah -= 1
# ------- metode
def info(self):
print("Alien :", self.nama)
print("Alien hidup:", Alien.pencacah)
print("")
# Penciptaan alien
alien_1 = Alien("Kukurata")
alien_2 = Alien("Jiwamerana")
alien_3 = Alien("Karnacinta")
# Pemanggilan metode
print("Informasi untuk alien_1:");
alien_1.info()
Akhir berkas
191
Pada skrip ini, atribut bernama pencacah digunakan untuk
mencatat objek yang terbentuk. Sekiranya terdapat objek yang dihapus,
nilai pencacah juga diperbaharui.
c:\pyGUI>berbagi.py
Informasi untuk alien_1:
Alien : Kukurata
Alien hidup: 3
c:\pyGUI>
192
2.11.1 Indeks dan Irisan di String
Cara mengakses karakter secara individual di string menyerupai
pada senarai. Indeks 0 hingga jumlah karakter – 1 bisa digunakan.
Notasinya berupa:
string[indeks]
Contoh:
193
>>> teks = "ABCDE"
>>> for karakter in reversed(teks):
... print(karakter)
...
E
D
C
B
A
>>>
194
Metode Keterangan dan Contoh
st = "teS.122.TAra"
st.capitalize() 'Tes.122.tara'
casefold() Metode ini memberikan nilai balik berdasarkan
string objek dengan semua huruf diubah menjadi
huruf kecil. Contoh:
st = "teS.122.Tara"
st.casefold() 'tes.122.tara'
center(n [, Metode ini mengembalikan string yang
karakter]) diletakkan di tengah area dengan lebar n
karakter. Sekiranya argumen kedua diberikan,
nilainya akan digunakan untuk mengisi bagian
yang kosong. Contoh:
st = "12345"
st.center(15)
' 12345 '
st.center(15, "*")
'*****12345*****'
count(sub [, Metode ini menghitung jumlah substring sub
mulai [, akhir]]) dalam string pada irisan [mulai:akhir]
st="ratata tara tara"
st.count("ta") 4
st.count(“ta”, 6) 2
st.count(“ta”, 0, 8) 2
endswith(akhiran Metode ini memberikan nilai balik berupa True
[, awal [, akhir]]) kalau string berakhiran dengan akhiran.
Argumen kedua dan ketiga untuk menentukan
irisan string. Contoh:
st = "ratata tara tara"
st.endswith("ta") False
st.endswith("ta", 0, -2) True
st.endswith("ta", 0, 6) True
expandtabs([n]) Metode ini menghasilkan salinan string objek
dengan mengganti setiap tab dengan n spasi.
195
Metode Keterangan dan Contoh
Kalau n tidak disebutkan, jumlah spasi berupa 8.
Contoh:
st="a\tb\tc"
st.expandtabs() 'a b c'
st.expandtabs(4) 'a b c'
find(sub [, mulai Metode ini memberikan nilai balik berupa indeks
[, akhir]]) tempat substring sub ditemukan dalam string.
Irisan [mulai:akhir] menentukan tempat
pencarian. Kalau substring tidak ditemukan, nilai
balik berupa -1. Contoh:
st = "ratata tara tara"
st.find("TA") -1
st.find("ta") 2
st.find("ta", 3, 6) 4
format(nilai_1, Metode ini berguna untuk melakukan
nilai_2, …) pemformatan terhadap string objek; antara lain
memungkinkan suatu variabel disubstitusi
dengan nilainya. Informasi detail tentang metode
ini dapat dilihat di:
https://docs.python.org/3/tutorial/inputoutput.html
Contoh:
nama = "Johan Budi"
usia = 24
st = "Nama: {v_nama}, usia: {v_usia}"
st.format(v_nama = nama, v_usia = usia)
'Nama: Johan Budi, usia: 24'
index(sub [, mulai Serupa dengan find(), tetapi akan membuat
[, akhir]]) kesalahan kalau substring yang dicari tidak
ditemukan. Contoh:
st = "ratata tara tara"
st.find("TA")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
196
Metode Keterangan dan Contoh
ValueError: substring not found
isalnum() Metode ini memberikan nilai balik True kalau
semua karakter berupa digit atau huruf. Contoh:
st = “123A”
st.isalnum() True
st="1234A*"
st.isalnum() False
isalpha() Metode ini memberikan nilai balik True kalau
semua karakter berupa huruf. Contoh:
st = “123A”
st.isalpha() False
st="1234A*"
st.isalpha() False
st="Bravo"
st.isalpha() True
isdigit() Metode ini menghasilkan True kalau semua
karakter dalam string objek berupa digit (0-9).
Contoh:
"12".isdigit() True
"-12".isdigit() False
Isidentifier() Metode ini menghasilkan True jika string objek
menyatakan nama pengenal yang valid. Contoh:
"nama orang".isidentifier() False
"nama-orang".isidentifier() False
"nama_orang".isidentifier() True
islower() Metode ini menghasilkan True kalau semua
huruf di string objek paling tidak mengandung
satu huruf kecil dan tidak ada huruf kapital.
Contoh:
"abc123".islower() True
"a123".islower() True
"Abc123".islower() False
isspace() Metode ini menghasilkan True hanya kalau
197
Metode Keterangan dan Contoh
semua karakter yang terdapat pada string
berupa spasi-putih (bisa spasi, tab, atau newline).
Contoh:
" ".isspace() True
"\t".isspace() True
"\n".isspace() True
"a\tb".isspace() False
istitle() Metode ini menghasilkan True kalau setiap
awal kata pada string objek berupa huruf kapital.
Contoh:
"Dua buku".istitle() False
"Dua Buku".istitle() True
"D".istitle() True
isupper() Metode ini menghasilkan True kalau paling
tidak terdapat satu huruf kapital dan tidak ada
satu pun huruf kecil. Contoh:
"C123".isupper() True
"Td".isupper() False
join(deret) Metode ini menggabungkan deretan string ke
dalam bentuk string. String yang digunakan
memanggil metode ini bertindak sebagai
pemisah antarstring argumen. Contoh:
",".join(("Apel", "Matoa", "Duku")) 'Apel,Matoa,Duku'
ljust(n [,pengisi]) Metode ini menghasilkan string yang didasarkan
pada string pemanggil metode ini dengan
panjang n karakter. Jika argumen kedua
diberikan, karakternya dipakai untuk mengisi
ruang yang tersisa sehingga total keseluruhan
karakter sebanyak n buah. Contoh:
st="12345"
st.ljust(10) '12345 '
st.ljust(10, "*") '12345*****'
lower Metode ini menghasilkan salinan string objek
198
Metode Keterangan dan Contoh
dengan semua huruf dikonversi ke huruf kecil.
Contoh:
st = "Tes...ABC"
>>> st.lower() 'tes...abc'
lstrip([string]) Metode ini menghasilkan salinan string objek
dengan spasi di bagian kiri dihapus. Kalau
argumen kedua diberikan, karakter-karakter
yang terletak di awal string yang terdapat pada
argumen kedua ini dibuang. Contoh:
st=" ABC"
st.lstrip() 'ABC'
st="1239ABC"
st.lstrip("0123456789") 'ABC'
partition(dicari) Metode ini menghasilkan tupel berdasarkan
string objek dengan:
elemen pertama menyatakan string
sebelum yang dicari;
elemen kedua menyatakan string yang
cocok dengan dicari;
elemen ketiga menyatakan string setelah
yang dicari.
Contoh:
st = "Aku punya pisang Ambon"
st.partition("pisang")('Aku punya ', 'pisang', ' Ambon')
st.partition("pepaya") ('Aku punya pisang Ambon', '', '')
replace(lama, Metode ini menghasilkan salinan string objek
baru [, jumlah]) dan mengganti substring lama pada string yang
memanggil metode ini dengan substring baru.
Jika argumen ketiga tidak disertakan, semua
substring yang cocok akan diganti. Argumen
ketiga menentukan jumlah yang diganti.
st="ABC-ABC-ABC"
st.replace("BC", "di") 'Adi-Adi-Adi'
199
Metode Keterangan dan Contoh
st.replace("BC", "") 'A-A-A'
st.replace("BC", "di", 2) 'Adi-Adi-ABC'
rfind(sub [, awal Metode ini memperoleh indeks terbesar tempat
[, akhir]]) substring sub ditemukan dalam string yang
memanggil metode ini. Argumen kedua dan
ketiga menentukan irisan [awal:akhir] untuk
mencari substring. Jika yang dicari tidak ada, nilai
balik berupa -1. Contoh:
st="ABCABCABC"
st.rfind("BC") 9
st.rfind("bc") -1
st.rfind("BC", 0, 5) 1
rindex(sub [, awal Serupa dengan rfind(). Namun, kalau yang
[, akhir]]) dicari tidak ditemukan, akan menimbulkan
eksepsi.
rjust(n [, pengisi]) Metode ini menghasilkan string dengan panjang
n karakter. Dalam hal ini, string yang berasal dari
pemanggil metode ini akan diletakkan rata kanan
terhadap area yang disediakan. Jika argumen
pengisi disertakan, karakternya dipakai untuk
mengisi di bagian kiri. Contoh:
st = "12345"
st.rjust(10) ' 12345'
st.rjust(10, "*") '*****12345'
rstrip([daf_kar]) Metode ini menghasilkan salinan string dengan
spasi di bagian kanan dihapus. Kalau argumen
kedua diberikan, karakter-karakter yang terletak
di akhir string yang terdapat pada argumen
kedua ini dibuang. Contoh:
st="ABCD "
st.rstrip() 'ABCD'
st="ABCDE1289"
st.rstrip("0123456789") 'ABCDE'
200
Metode Keterangan dan Contoh
split(pemisah) Metode ini menghasilkan senarai berisi string
yang merupakan hasil pemisahan dari string
pemanggil metode ini, dengan pemisah sebagai
tanda pemecah string. Contoh:
st = "Amir,Udin,Hamzah"
st.split(",") ['Amir', 'Udin', 'Hamzah']
splitlines() Metode ini menghasilkan senarai yang berisi
data per baris. Contoh:
st="ABC\nDEFG\nHIJKLMN"
st.splitlines() ['ABC', 'DEFG', 'HIJKLMN']
startswith(awala Metode ini memberikan nilai balik berupa True
n [, awal [, kalau string berawalan dengan awalan. Argumen
akhir]]) kedua dan ketiga untuk menentukan irisan
string. Contoh:
st="Pemalang"
st.startswith("ma") False
st.startswith("ma", 2) True
strip([daf_kar]) Metode ini menghasilkan salinan string objek
dengan spasi-putih di bagian kiri dan kanan
dihapus. Kalau argumen kedua diberikan,
karakter-karakter yang terletak di awal dan akhir
string yang terdapat pada argumen kedua ini
dibuang. Contoh:
st="123ABC569"
st.strip("0123456789") 'ABC'
swapcase() Metode ini menghasilkan salinan string objek
dengan sifat huruf kecil dikonversi ke huruf
kapital dan huruf kapital dikonversi ke huruf
kecil. Contoh:
st = "Dua Naga"
st.swapcase()'dUA nAGA'
title() Metode ini menghasilkan salinan string dengan
setiap awal kata akan dikonversi ke huruf kapital
201
Metode Keterangan dan Contoh
dan yang lain dikonversi ke huruf kecil. Contoh:
st = "DUA NAGA"
st.title()'Dua Naga'
upper() Metode ini menghasilkan salinan string objek
dengan semua huruf dikonversi ke huruf kapital.
Contoh:
st = "Python 3"
st.upper()'PYTHON 3'
zfill(n) Metode ini menghasilkan string dengan panjang
n karakter dan bagian kiri dipenuhi dengan nol.
Contoh:
st="456"
st.zfill(8) '0000456'
Jawab:
202
8. Pada fungsi tampil_arg() yang dibahas pada Sub-subbab
2.8.6, apakah arg pada *arg harus selalu seperti itu atau
boleh menggunakan nama lain?
Jawab:
Jawab:
Contoh 1:
def kuadrat(x):
return x * x
Contoh 2:
s = s1 + s2
return s
203
10. Saya sudah membuat modul.py yang disimpan di
C:\pyGUI. Namun, ketika saya mencoba memberikan
perintah berikut, dikatakan modul tidak ada. Apa yang terjadi?
Jawab:
os.chdir("C:\pyGUI")
Jawab:
Bisa. Contoh:
>>> mobil[-2:]
[1490, 'Biru']
>>>
Jawab:
>>> x = [2, 4, 1, 3, 4]
204
>>> y = sorted(x)
>>> x
[2, 4, 1, 3, 4]
>>> y
[1, 2, 3, 4, 4]
>>>
Jawab:
Jawab:
Jawab:
205
FileNotFoundError dan eksepsi lain yang diturunkan dari
kelas OSError (misalnya PermissionError atau eksepsi
yang berkaitan dengan izin mengakses berkas).
17. Betul atau salah? Satu pernyataan try bisa mengandung lebih
dari satu except.
206
24. Terdapat senarai seperti berikut:
25. Buatlah kelas bernama Pegawai yang berisi NIP (nomor induk
pegawai dan nama pegawai. Objek dapat dibuat semacam
berikut:
207
DAFTAR PUSTAKA
208