You are on page 1of 114

Hak Cipta

28 September 2013
Hak Cipta @ 2013 POSS UPI (kirim email ke : poss@upi.eu!
"uku i#i iperba$arui terus a# bisa iapatka# i $ttp:%%&&&.poss'upi.or(%o&#loa. )ika *#a
me#apatka##+a i tempat lai# kemu#(ki#a# besar merupaka# ,ersi lama.
Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU
Free Documentation License, Version 1.1 or any ater !ersion pubished by the Free "oft#are
Foundation$ #ith no %n!ariant "ections, no Front&'o!er (e)ts, and no *ac+&'o!er (e)ts. , copy
of the icense is incuded in (entang GNU Free Documentation License.
I-i# u#tuk me#+ali#. me#istribusika# a#%atau me#(uba$ isi okume# beraa iba&a$ atura#
/0U 1ree 2o3ume#tatio# 4i3e#se. 5ersi 1.1 atau ,ersi lai##+a +a#( iterbitka# ole$ 1re So6t&are
1ou#atio#7 e#(a# tiak me#(uba$ isi apapu#. U#tuk meli$at lebi$ le#(kap te#ta#( lise#si i#i.
*#a bisa meli$at#+a i ba(ia# 8e#ta#( /0U 1ree 2o3ume#tatio# 4i3e#se.
(he e)ampe programs in this boo+ are free soft#are$ you can redistribute and/or modify them
under the terms of the Python icense as pubished by the Python "oft#are Foundation.
Co#to$ pro(ram paa buku i#i merupaka# free soft#are7 *#a apat me#+ebar ula#( a# atau
me#(uba$+a iba&a atura P+t$o# 4i3e#se +a#( iterbitka# ole$ P+t$o# So6t&are 1ou#atio#. 4o(o
P+t$o# merupaka# merk a(a#( ari P+t$o# So6t&are 1ou#atio#. 4o(o POSS UPI merupaka#
lo(o resmi milik POSS UPI.
Buku Serial Open Source
*ea-ar Pemrograman Python Dasar
Pe#ulis : 9i&a# 1a:ar Septia#
;itor : *#ri Pri+a#to
2esai# Sampul : Heri *(usti#a
Pe#(a&as Pro+ek : <ia Ul$a6ie-
Pe#a#((u#( )a&ab : ;rik 9omao#a
2isusu# ole$ : POSS UPI
8elp 08=8 >=>? @1?
e'mail : poss@upi.eu
&ebsite : $ttp:%%&&&.poss'upi.or(
t&itter : @possupi
5ersi ke 1. 28 September 2013
Aritik a# sara# apat me#($ubu#(i POSS UPI i )l. 2r. Setiabu$i 0o. 22=
"a#u#( ?01B? )a&a "arat I#o#esia. *tau paa #o ko#taka# email +a#( terera
iatas
Kata Pengantar
Pu:i a# s+ukur kita pa#:atka# atas ke$airat'0+a kare#a e#(a# ra$mat#+a buku i#i apat isusu#
$i#((a ,ersi pertama i#i. P+t$o# merupaka# sala$ satu ba$asa pemro(rama# a# pe#u#:a#( paa
perkemba#(a# 1OSS a# 4i#uC. 8iak $a#+a keua itu i perkemba#(a# tek#olo(i lai#++a P+t$o#
$air seba(ai sala$ satu tek#olo(i mumpu#i +a#( patut kita pela:ari. "iasa#+a P+t$o# sua$
terta#am i istro istro terte#tu seperti Ubu#tu. 1eora. a# Sla3k&are. P+t$o# se#iri
merupaka# ba$asa pemro(rama# +a#( me#uku#( parai(ma ob-ect oriented programming
ataupu# scripting. P+t$o# $air i ra#a$ sistem operasi. ,irtualisasi. :ari#(a# komputer. (ra6ika
komputer. ke3erasa# buata#. tek#olo(i &eb. game, a# lai# seba(ai#+a.
"uku i#i $air ba(i +a#( i#(i# asar asar P+t$o#. "uku i#i itu:uka# ba(i programmer pemula
atau +a#( sua$ a$li tapi i#(i# me#3oba ba$asa pemro(rama# P+t$o#. "uku i#i :u(a merupaka#
pe#($a#tar u#tuk ma#:u ke tek#olo(i P+t$o# lai##+a. Selai# itu. e#(a# me#((u#aka# ba$asa
I#o#esia i$arapka# apat lebi$ me#:ari#( programmer lokal u#tuk berla:ar ba$asa pemro(rama#
P+t$o# a# me#amba$ k$a-a#a$ u#ia pemro(rama# P+t$o# i I#o#esia.
8erima kasi$ pe#ulis u3apka# kepaa "rama#it+o Prabo&o. kakak ti#(kat a# a#((ota POSS
UPI :u(a +a#( sua$ me#(a:arka# pe#ulis u#tuk bela:ar ba$asa pemro(rama# P+t$o# $i#((a
me#(e#al beberapa tek#olo(i P+t$o# +a#( la+ak u#tuk ipela:ari. 8erima kasi$ :u(a kepaa 9i3ko
a# <ia seba(ai a#((ota POSS UPI +a#( tela$ me#(i#spirasi pe#ulis u#tuk me#((u#aka# 4i#uC.
8erima kasi$ :u(a kepaa Heri *(usti#a kare#a esai# sampul buku#+a +a#( memukau. *#ri
Pri+a#to +a#( memba#tu editing buku i#i. <ia seba(ai pe#(a&as pe#(er:aa# buku i#i. a# ;rik
9omao#a seba(ai pe#(ara$ $i#((a buku i#i selesai itulis.
Aritik a# sara# kami tu#((u emi kema:ua# buku i#i. Semo(a *#a me#apatka# ma#6aat alam
mempela:ari ba$asa pemro(rama# P+t$o# a# ikut mema:uka# tek#olo(i i#6ormasi a# komu#ikasi
i I#o#esia.
Pe#ulis
Daftar Isi
1. I#stalasi P+t$o#................................................................................................................................1
4i#(ku#(a# P+t$o#..............................................................................................................1
I#stall P+t$o# i 4i#uC........................................................................................................1
I#stall P+t$o# i Di#o&s...................................................................................................2
2. Cara Ee#((u#aka# P+t$o#..............................................................................................................3
Ee#((u#aka# P+t$o# I#terpreter Prompt a# 8eks ;itor.................................................3
Ee#3etak I#6ormasi e#(a# 1u#3tio# Fpri#tG.....................................................................B
Ee#erima Easuka# 2ata e#(a# 1u#3tio# Fra&Hi#putG a# Fi#putG.................................@
Hal 4ai# +a#( Harus 2ii#(at alam Pe#((u#aa# P+t$o#.................................................10
3. Ee#(e#al 8ipe 2ata a# Operator................................................................................................1?
8ipe 2ata i P+t$o#...........................................................................................................1?
Operator Operator i P+t$o#...........................................................................................1?
Prioritas ;ksekusi Operator i P+t$o#...............................................................................20
?. Eembuat Pemili$a# Ao#isi..........................................................................................................22
Pe#((u#aa# Operator Ao#isio#al a# 4o(ika paa Ae+&or Fi6G..................................22
Pe#((u#aa# FelseG paa Fi6G..............................................................................................23
Pe#((u#aa# Feli6G paa Fi6G..............................................................................................2?
Pe#((u#aa# FelseG paa Fi6G..............................................................................................2>
B. Ee#+usu# Pe#(ula#(a#..................................................................................................................28
Ee#(e#al Pe#(ula#(a# F6orG a# F&$ileG........................................................................28
Ee#+usu# Pe#(ula#(a# e#(a# F6orG...............................................................................28
Eema$ami 1u#3tio# Fra#(eG.............................................................................................30
Ee#((u#aka# 1u#3tio# Fra#(eG paa Pe#(ula#(a# F6orG................................................32
Ee#+usu# Pe#(ula#(a# e#(a# F&$ileG...........................................................................3?
>. Ee#(e#al 2ata Struktur P+t$o# 8i#(kat 4a#:ut............................................................................3@
Ee#(e#al 4ist. 2i3tio#ar+ a# 8uple................................................................................3@
Cara *kses 4ist. 8uple. a# 2i3tio#ar+.............................................................................38
Ee#(uba$ Isi 4ist. 8uple. a# 2i3tio#ar+.........................................................................?1
Ee#amba$ka# 2ata paa 4ist. 8uple. a# 2i3tio#ar+......................................................?3
Ee#($apus Isi 4ist. 8uple. a# 2i3tio#ar+........................................................................?B
Ee#($apus 4ist. 8uple. a# 2i3tio#ar+.............................................................................?@
@. Eembuat 1u#3tio#..........................................................................................................................B2
Pe#(e#ala# 1u#3tio# 8a#pa Fretur#G.................................................................................B2
1u#3tio# +a#( Ee#((u#aka# Fretur#G..............................................................................B3
2e6ault *r(ume#t paa P+t$o#..........................................................................................BB
5ariable'le#(t$ *r(ume#t paa P+t$o#.............................................................................B>
Ae+&or *r(ume#t paa 1u#3tio#....................................................................................B@
Ae+&or'le#(t$ *r(ume#t paa 1u#3tio# ........................................................................B8
Pass b+ 9e6ere#3e a# Pass b+ 5alue paa P+t$o#...........................................................>0
5ariable S3ope paa P+t$o#..............................................................................................>1
8. Ee#(e#al ;C3eptio#.......................................................................................................................>3
)e#is )e#is ;C3eptio#......................................................................................................>3
Ee#+usu# Eultiple ;C3ept................................................................................................>=
Ee#((u#aka# Eultiple ;C3eptio#.....................................................................................@0
8r+';C3ept "ersara#(........................................................................................................@1
Eembuat ;C3eptio# Se#iri..............................................................................................@2
Ee#((u#aka# F6i#all+G paa 8r+';C3ept..........................................................................@3
=. Eembuat 1ile..................................................................................................................................@?
Pe#(e#ala# 1ile..................................................................................................................@?
Eembuat 1ile "aru............................................................................................................@B
Ee#(isi 1ile.......................................................................................................................@>
Eemba3a Isi 1ile...............................................................................................................@@
Eemba3a Isi 1ile e#(a# Cara "aris Per "aris.................................................................@8
Ee#(atur Posisi Poi#ter 1ile..............................................................................................@=
Ee#((a#ti 0ama 1ile........................................................................................................81
Ee#($apus 1ile..................................................................................................................81
10. Pe#(e#ala# Class..........................................................................................................................83
Eembuat Class a# Ob:e3t................................................................................................83
Ee#(e#al "uilt'i# 1u#3tio# paa Class a# Ob:e3t..........................................................8>
11. Pe#(e#ala# Eoule......................................................................................................................88
Eoule a# Pa3ka(es........................................................................................................8=
Eembuat Eoule Eoule i alam Pa3ka(es...............................................................8=
Ee#((u#aka# Eoule i 1ile Utama................................................................................=1
2a6tar Pustaka....................................................................................................................................=3
4ampira# 1 8ek#olo(i +a#( Ee#((u#aka# P+t$o#.........................................................................=?
4ampira# 2 ' "a$a# "ela:ar O#li#e....................................................................................................=@
8e#ta#( "uku I#i................................................................................................................................=8
8e#ta#( /0U 1ree 2o3ume#tatio# 4i3e#se......................................................................................==
8e#ta#( P+t$o# 4i3e#se...................................................................................................................10B
1
1. Instalasi Python
Lingkungan Python
2ari $ttp:%%&&&.tutorialspoi#t.3om%p+t$o#%p+t$o#He#,iro#me#t.$tm . terapat beberapa li#(ku#(a#
+a#( apat i$u#i P+t$o#. "erikut aala$ beberapa li#(ku#(a# sistem operasi +a#( bisa i$u#i
P+t$o#:
Di# =C%08%2000
U#iC (Solaris. 4i#uC. 1ree"S2. *II. HP%UI. Su#OS. I9II. a# lai# ' lai#!
Ea3i#tos$ (I#tel. PPC. >8A!
OS%2
2OS
PalmOS
0okia mobile p$o#es
Di#o&s C;
*3or#%9ISC OS
"eOS
*mi(a
5ES%Ope#5ES
J0I
5CDorks
Psio#
P+t$o# :u(a ira#3a#( ula#( i )a,a a# .0;8 5irtual Ea3$i#e
Install Python di Linux
U#u$ instaer P+t$o# u#tuk U#iC%4i#uC i $ttp:%%&&&.p+t$o#.or(%o&#loa. Aemuia#. U#u$
source code P+t$o# +a#( ibu#(kus ole$ .ip a# ikuti alur pe#(u#u$a##+a. Setela$ iu#u$
kemuia# ekstrak instaer tersebut. Aemuia# masuk keirektori i#staller P+t$o#. )ika aa
pe#(atura# k$usus +a#( ii#(i#ka#. edit fie Eoules%Setup paa instaer. )ika pe#(atura# sua$
sesuai :ala#ka# peri#ta$ ./conigure. Hal i#i ilakuka# u#tuk ko#6i(urasi instaer P+t$o# paa
sistem operasi kita. Setela$ ko#6i(urasi beres. :ala#ka# peri#ta$ !ake u#tuk me#('compie
instaer P+t$o#. Setela$ itu baru :ala#ka# peri#ta$ !ake install u#tuk memulai proses i#stalasi.
Fie ekskeusi P+t$o# aka# ii#stall i %usr%lo3al%bi# a# ibrary #+a ii#stall i
%usr%lo3al%bi#%p+t$o#I.I. Aemuia# :a#(a# lupa u#tuk lakuka# pe#(atura# path a(ar bisa
2
ieksekusi i she. "erikut aala$ beberapa pe#(atura# path paa beberapa she :
pe#(atura# path di she bas$ : eCport P*8H K FLP*8H:%usr%lo3al%bi#%p+t$o#G kemuia#
teka# e#ter
pe#(atura# path di she 3s$ : sete#, P*8H K FLP*8H:%usr%lo3al%bi#%p+t$o#G kemuia#
teka# e#ter
pe#(atura# path di she ks$ : P*8H K FLP*8H:%usr%lo3al%bi#%p+t$o#G kemuia# teka# e#ter
Selai# me#((u#aka# source code P+t$o# a# ii#stall se3ara ma#ual seperti iatas. *#a bisa
me#(i#stall P+t$o# melalui pac+et manager :ika sistem operasi +a#( *#a (u#aka# me#uku#(
6itur tersebut seperti Ubu#tu. Sla3k&are. a# 1eora.
2i beberapa sistem operasi kaa#( sua$ terta#am i alam#+a a# la#(su#( bisa i(u#aka#
seperti i Ubu#tu a# 1eora.
Install Python di "indo#s
U#u$ P+t$o# ari $ttp:%%&&&.p+t$o#.or(%o&#loa. Aemuia# u#u$ instaer P+t$o# u#tuk
Di#o&s. Setela$ ber$asil me#(u#u$. klik ua kali instaer tersebut. Ikuti alur#+a sampai selesai.
Setela$ ber$asil biasa#+a $asil i#stalasi P+t$o# isimpa# i irektori C:%P+t$o#I.I ima#a I.I
aala$ ,ersi ari P+t$o# +a#( i(u#aka#.
Aemuia# a(ar P+t$o# bisa ieksekusi i 3m. akses Control Panel $ Syste! $ %d&anced $
'n&iron!ent (aria)les $ Alik ,ariabel +a#( i#amaka# P*8H i ba(ia# S+stem 5ariables
kemuia# pili$ a# edit. tamba$ka# 7CMP+t$o#I.I ta#pa ta#a petik. Aemuia# teka# OA. a#
siap i:ala#ka# i 3m
3
*. Cara +enggunakan Python
+enggunakan Python Interpreter Pro!pt dan ,eks 'ditor
U#tuk me#((u#aka# P+t$o#. kita bisa memili$ ua 3ara +a#( umum i(u#aka#. +aitu le&at Python
%nterpreter Prompt a# me#(eksekusi fie P+t$o# ari command ine. *#a bisa me#((u#aka#
interpreter prompt u#tuk sekear me#ulis pro(ram ke3il. atau me#(u:i 3oba moul moul +a#(
imiliki P+t$o#. U#tuk me#((u#aka##+a :ika sistem operasi *#a sua$ i'insta P+t$o#. 3oba
pa#((il peri#ta$ python melalui command ine. 2a# :ika pe#(atura# path/#+a sua$ sesuai. aka#
mu#3ul (ambar seperti berikut:

NN (ambar 2.1 p+t$o# i#terpreter prompt OO
U#tuk keluar ari moe interpreter prompt. (u#aka# kombi#asi 3trlP atau 3trlP- kemuia# teka#
enter.
4alu :ika i#(i# me#((u#aka# P+t$o# ta#pa melalui interpreter prompt. *#a bisa me#((u#aka#
te)t editor +a#( *#a seri#( (u#aka# a# simpa# fie P+t$o# e#(a# ekste#si fie Q.p+ .Aemuia#
atur :arak tab paa te)t editor tersebut seba#+ak empat satua# a# isi tab tersebut i(a#ti e#(a#
spasi atau memili$ me#u Frepace by spaceG. "erikut aala$ beberapa 3o#to$ te)t editor +a#( bisa
i(u#aka# u#tuk membuat pro(ram P+t$o# beserta me#u u#tuk pe#(atura# tab.
?
8ampila# a#tarmuka /ea#+ a# tempat pe#(atura# i#e#tasi#+a :
NN (ambar 2.2 /ea#+ a# pe#(atura# tab'#+aOO
8ampila# a#tarmuka /;it a# tempat pe#(atura# i#e#tasi#+a :
NN (ambar 2.3 /;it a# pe#(atura# tab'#+aOO
B
8ampila# a#tarmuka Aomoo ;it a# tempat pe#(atura# i#e#tasi#+a :
NN (ambar 2.? Aomoo;it a# pe#(atura# tab'#+a OO
)ika *#a belum per#a$ bela:ar pemro(rama# *#a bisa (u#aka# /;it atau /ea#+ u#tuk
membuat fie P+t$o#. )ika sua$ per#a$ bela:ar pemro(rama#. *#a bisa pili$ te)t editor ma#apu#
sesuai selera.
+encetak Inor!asi dengan -unction .print/
0utput i(u#aka# paa pro(ram u#tuk memberika# feedbac+ a# keaaa# sebua$ pro(ram. misal
$asil per$itu#(a#. perta#+aa#. a6tar pe#((u#a. a# (ra6ik.. 8api alam sebua$ pro(ram ko#sol.
output biasa#+a berupa teks +a#( i3etak e#(a# me#((u#aka# function terte#tu paa sebua$
ba$asa pemro(rama#. 2i P+t$o# u#tuk me#3etak teks ke la+ar i(u#aka#la$ function print.
Function print i#i aka# me#3etak string +a#( ii#(i#ka#. *a ba#+ak 3ara alam me#((u#aka#
print. berikut aala$ 3o#to$ pe#((u#aa# print alam sebua$ pro(ram ko#sol :
isting 1 pa+ai2python21.py
R me#3etak sebua$ kalimat
>
pri#t S*ku sea#( bela:ar ba$asa pemro(rama# p+t$o#S
R me#3etak a#(ka
pri#t >>>>
R me#3etak ,ariabel
sebua$H,ariabel K S4i6e is #e,er 6loatS
pri#t sebua$H,ariabel
R me#3etak la#(su#( sebua$ operasi bila#(a#
pa#:a#( K 10
lebar K B
pri#t (2 Q pa#:a#(! P (2 Q lebar!
R me#3etak sebua$ ,ariabel a# stri#( e#(a# me#((u#aka# koma
#ama K SEarioS
R i3etak iak$ir
pri#t S0ama sa+a aala$ S. #ama
R i3etak ite#(a$
pri#t SSa+a memai#ka# (ame Super S. #ama. S bersama aik sa+aS
R i3etak ia&al
pri#t #ama. S aala$ karakter utama alam permai#a# Super S. #ama
R me#3etak ba#+ak baris
pri#t S"ela:ar ba$asa pemro(rama#S
pri#t SP+t$o# itu mua$ sekaliS
pri#t Skare#a sua$ mempu#+ai okume#tasi +a#( le#(kapS
R me#3etak ba#+ak baris alam satu kali pri#t
pri#t S"ela:ar ba$asa pemro(rama# M#P+t$o# itu mua$ sekali M#kare#a sua$ mempu#+ai
okume#tasi +a#( le#(kapS
R me#3etak ,ariabel paa stri#( e#(a# 6ormat stri#(
pa#:a#( K 10
lebar K B
kelili#( K (2 Q pa#:a#(! P (2 Q lebar!
pri#t Skelili#( ari (2 Q T! P (2 Q T! aala$ T S T (pa#:a#(. lebar. kelili#(!
)ika koe iatas ieksekusi. aka# tampil output seperti berikut :
@
NN (ambar 2.B $asil eksekusi pakaiHp+t$o#H1.p+ OO
+eneri!a +asukan 0ata dengan -unction .ra#1input/ dan .input/
Selai# output te#tu sa:a alam membuat sebua$ pro(ram *#a membutu$ka# 6itur u#tuk memi#ta
input ari user . 1itur tersebut ber(u#a u#tuk me#3iptaka# i#teraksi a#tara user a# pro(ram +a#(
*#a ba#(u#. 2i P+t$o#. u#tuk me#erima input aa beberapa 3ara +a#( biasa i(u#aka# :
ra#1input. function i#i ber(u#a u#tuk me#erima input ari user +a#( aka# selalu iko#,ersi
kealam string. Eisal *#a memberika# input berupa F"ela:ar P+t$o#G. Eaka ata tersebut aka#
itampu#( seba(ai string utu$. Aemuia# paa ra#1input2 terapat satu parameter +a#( aka#
i:aika# perta#+aa# atau peri#ta$ tertulis saat memi#ta input. )ika *#a i#(i# memberika# input
berupa a#(ka. saat memasukka# a#(ka tersebut tiak bole$ lebi$ ari satu a#(ka. Hal i#i
isebabka# kare#a ketika me#((u#aka# ra#1input. sekalipu# +a#( iberika# aala$ a#(ka tetap
aka# ia#((ap string. *pabila *#a memberika# input satu a#(ka kepaa ra#1input. *#a $arus
me#(ko#,ersi#+a e#(a# function int2 loat2 long2 atau beberapa function ko#,ersi ke a#(ka
lai##+a sesuai e#(a# kebutu$a# +a#( ii#(i#ka#. Coba per$atika# koe iba&a$ i#i :
isting 1 pa+ai2python23.py
#ama K ra&Hi#put(Umasukka# #ama a#a : U!
pa#:a#( K ra&Hi#put(Spa#:a#( : S!
lebar K ra&Hi#put(S+ : S!
8
pri#t S0ama *#a aala$ S. #ama
luas K i#t(pa#:a#(! Q i#t(lebar!
pri#t S T Q T K TS T (i#t(pa#:a#(!. i#t(lebar!. luas!
)ika koe iatas ieksekusi. maka aka# mu#3ul output seperti berikut :
NN (ambar 2.> $asil eksekusi pakaiHp+t$o#H2.p+ OO
input2 6u#3tio# i#i i(u#aka# u#tuk me#erima input sesuai e#(a# ata +a#( iberika# ole$ user.
8iak seperti ra#1input +a#( me#erima input a# ia#((ap string. Saat memberika# input kepaa
ra#1input2 *#a tiak perlu me#((u#aka# atura# pe#ulisa# u#tuk tipe ata terte#tu. Sea#(ka# i
input *#a $arus me#(ikuti atura# pe#ulisa# u#tuk memasukka# input ari tipe ata terte#tu.
Seba(ai 3o#to$ iba&a$ terapat beberapa 3o#to$ atura# pe#ulisa# saat aka# memberika# ata
e#(a# tipe ata terte#tu kepaa input.
isting 1 pa+ai2python24.py
=
R memi#ta i#put boolea# : 3oba masukka# 8rue
,ariabelHbool K i#put(Umasukka# ata boolea# : U!
pri#t Sisi ,ariabelHbool : S. ,ariabelHbool
R memi#ta i#put 6loat : 3oba masukka# 3.1?
,ariabelH6loat K i#put(Umasukka# ata 6loat : U!
pri#t Sisi ,ariabelH6loat : S. ,ariabelH6loat
R memi#ta i#put stri#( : 3oba masukka# Fla(i bela:ar p+t$o#G
,ariabelHstri#( K i#put(Umasukka# ata stri#( : U!
pri#t Sisi ,ariabelHstri#( : S. ,ariabelHstri#(
R memi#ta i#put o3tal : 3oba masukka# 010
,ariabelHo3tal K i#put(Umasukka# ata o3tal : U!
pri#t Sisi ,ariabelHo3tal : S. ,ariabelHo3tal
R memi#ta i#put $eCa : 3oba masukka# 0C11?
,ariabelH$eCa K i#put(Umasukka# ata $eCa : U!
pri#t Sisi ,ariabelH$eCa : S. ,ariabelH$eCa
R memi#ta i#put lo#( : 3oba masukka# 123?B>@8=123?B>@8=4
,ariabelHlo#( K i#put(Umasukka# ata lo#( : U!
pri#t Sisi ,ariabelHlo#( : S. ,ariabelHlo#(
R memi#ta i#put i3tio#ar+ : 3oba masukka# VU#amaU:Ulu66+U. U$obiU:Umaka#U. UasalU:Ueast blueUW
,ariabelHi3t K i#put(Umasukka# ata i3tio#ar+ : U!
pri#t Sisi ,ariabelHi3t : S. ,ariabelHi3t
R memi#ta i#put list : 3oba masukka# X1. 2. 3. ?. BY
,ariabelHlist K i#put(Umasukka# ata list : U!
pri#t Sisi ,ariabelHlist : S. ,ariabelHlist
R memi#ta i#put tuple : 3oba masukka# (1. 2. 3. ?. B!
,ariabelHtuple K i#put(Umasukka# ata tuple : U!
pri#t Sisi ,ariabelHtuple : S. ,ariabelHtuple
)ika koe iatas ieksekusi. aka# mu#3ul output seperti berikut :
10
NN (ambar 2.@ $asil eksekusi pakaiHp+t$o#H3.p+ OO
Co#to$ iatas memperli$atka# sebua$ perbeaa# pe#((u#aa# ra#1input e#(a# input. 2ata
+a#( iapat ari ra#1input $arus iko#,ersika# e#(a# buit/in function u#tuk tipe ata terte#tu.
Sea#(ka# ata +a#( iapat ari input tiak perlu iko#,ersika#. tapi saat memasukka# ata $arus
me#(ikuti atura# pe#ulisa# u#tuk tipe ata terte#tu.
Hal Lain yang Harus 0iingat dala! Penggunaan Python
Selai# itu terapat beberapa karakter k$usus +a#( i#amaka# escape character. "erikut aala$
a6tar beberapa escape character +a#( terapat i P+t$o# :
5scape 'haracter Heksaesimal Aetera#(a#
Ma 0C0@ bel
Mb 0C08 bac+space
M6 0C03 formfeed
Me 0C1b escape
M# 0C0a ne#ine
Mt 0C0= tab
M, 0C0b Vertica tab
Mr 0C0 'arriage return
M### 0otasi oktal. ima#a #
11
5scape 'haracter Heksaesimal Aetera#(a#
merupaka# re#ta#(
a#(ka ari 0 sampai @
MC## 0otasi $eksaesimal.
ima#a # merupaka#
re#ta#( ari 0..=. a..6.
atau *..1
Paa koe iatas isting pakaiHp+t$o#H1.p+. terapat sebua$ simbol T i alam peri#ta$ print.
Simbol tersebut i#amaka# string formatter +a#( ber6u#(si u#tuk me#3etak ata sesuai e#(a#
6ormat +a#( ii#(i#ka# paa string +a#( isisipi simbol tersebut. "erikut aala$ a6tar beberapa
string formatter +a#( iseiaka# P+t$o#:
Simbol Aetera#(a#
T3 Ee#3etak karakter
Ts
Ee#3etak ata ari :e#is apapu#
me#:ai stri#(
Ti. T Ee#3etak a#(ka esimal berta#a
Tu Ee#3etak a#(ka esimal tak berta#a
To Ee#3etak a#(ka oktal
TC. TI
Ee#3etak a#(ka $eksa e#(a# $uru6
ke3il. Ee#3etak a#(ka $eksa e#(a#
$uru6 besar
T6 Ee#3etak a#(ka real berkoma
Te. T;
Ee#3etak ta#a ekspo#e#sial e#(a#
$uru6 ke3il. me#3etak ta#a
ekspo#e#sial e#(a# $uru6 besar
T(. T/
1u#(si $ampir sama e#(a# T6 a#
Te $a#+a sa:a pe#3etaka# a#(ka i
belaka#( koma lebi$ pe#ek.
pe#3etaka# ta#a ekspo#e#sial
me#((u#aka# $uru6 besar
Aemuia# tak lupa kalau i P+t$o# se#iri saat sea#( me#((u#aka# interpreter prompt,*#a bisa
me#((u#aka# function help34 u#tuk meli$at struktur sebua$ ob:ek atau peri#ta$ peri#ta$ i
P+t$o#. Eisal *#a bisa meli$at ba#tua# te#ta#( peri#ta$ print maka *#a $arus me#(etikka#5
66 $elp(Upri#tU!
12
8$e ZZpri#tZZ stateme#t
QQQQQQQQQQQQQQQQQQQQQQQ
pri#tHstmt ::K Spri#tS (XeCpressio# (S.S eCpressio#!Q XS.SYY
[ SOOS eCpressio# X(S.S eCpressio#!P XS.SYY!
ZZpri#tZZ e,aluates ea3$ eCpressio# i# tur# a# &rites t$e resulti#(
ob:e3t to sta#ar output (see belo&!. I6 a# ob:e3t is #ot a stri#(.
it is 6irst 3o#,erte to a stri#( usi#( t$e rules 6or stri#(
3o#,ersio#s. 8$e (resulti#( or ori(i#al! stri#( is t$e# &ritte#. *
spa3e is &ritte# be6ore ea3$ ob:e3t is (3o#,erte a#! &ritte#. u#less
t$e output s+stem belie,es it is positio#e at t$e be(i##i#( o6 a
li#e. 8$is is t$e 3ase (1! &$e# #o 3$ara3ters $a,e +et bee# &ritte#
to sta#ar output. (2! &$e# t$e last 3$ara3ter &ritte# to sta#ar
output is a &$itespa3e 3$ara3ter eC3ept ZZU UZZ. or (3! &$e# t$e last
&rite operatio# o# sta#ar output &as #ot a ZZpri#tZZ stateme#t. (I#
some 3ases it ma+ be 6u#3tio#al to &rite a# empt+ stri#( to sta#ar
output 6or t$is reaso#.!
0ote: Ob:e3ts &$i3$ a3t like 6ile ob:e3ts but &$i3$ are #ot t$e built'i#
6ile ob:e3ts o6te# o #ot properl+ emulate t$is aspe3t o6 t$e 6ile
ob:e3tUs be$a,ior. so it is best #ot to rel+ o# t$is.
* ZZUM#UZZ 3$ara3ter is &ritte# at t$e e#. u#less t$e ZZpri#tZZ
stateme#t e#s &it$ a 3omma. 8$is is t$e o#l+ a3tio# i6 t$e stateme#t
3o#tai#s :ust t$e ke+&or ZZpri#tZZ.
Sta#ar output is e6i#e as t$e 6ile ob:e3t #ame ZZstoutZZ i# t$e
built'i# moule ZZs+sZZ. I6 #o su3$ ob:e3t eCists. or i6 it oes #ot
$a,e a ZZ&rite(!ZZ met$o. a ZZ9u#time;rrorZZ eC3eptio# is raise.
ZZpri#tZZ also $as a# eCte#e 6orm. e6i#e b+ t$e se3o# portio# o6
t$e s+#taC es3ribe abo,e. 8$is 6orm is sometimes re6erre to as
SZZpri#tZZ 3$e,ro#.S I# t$is 6orm. t$e 6irst eCpressio# a6ter t$e
ZZOOZZ must e,aluate to a S6ile'likeS ob:e3t. spe3i6i3all+ a# ob:e3t
t$at $as a ZZ&rite(!ZZ met$o as es3ribe abo,e. Dit$ t$is eCte#e
6orm. t$e subse\ue#t eCpressio#s are pri#te to t$is 6ile ob:e3t. I6
t$e 6irst eCpressio# e,aluates to ZZ0o#eZZ. t$e# ZZs+s.stoutZZ is
use as t$e 6ile 6or output.
(;02!
U#tuk keluar ari moe ba#tua# tersebut teka# tombol F\G. Sekara#( kita 3oba li$at ba#tua#
me#(e#ai struktur ata list:
13
OO $elp(UlistU!
Help o# 3lass list i# moule HHbuilti#HH:
3lass list(ob:e3t!
[ list(! 'O #e& empt+ list
[ list(iterable! 'O #e& list i#itiali-e 6rom iterableUs items
[
[ Eet$os e6i#e $ere:
[
[ HHaHH(...!
[ C.HHaHH(+! NKKO CP+
[
[ HH3o#tai#sHH(...!
[ C.HH3o#tai#sHH(+! NKKO + i# C
[
[ HHelitemHH(...!
[ C.HHelitemHH(+! NKKO el CX+Y
[
[ HHelsli3eHH(...!
[ C.HHelsli3eHH(i. :! NKKO el CXi::Y
[
[ Use o6 #e(ati,e i#i3es is #ot supporte.
[
[ HHe\HH(...!
:XY
2e#(a# emikia# sekalipu# tiak aa ko#eksi i#ter#et. *#a tetap bisa terus membuat pro(ram
P+t$o# e#(a# iba#tu help34 +a#( sua$ iseiaka# ole$ P+t$o#.
8ipe ata +a#( terapat paa koe koe iatas aka# i:elaska# lebi$ la#:ut paa bab berikut#+a.
1?
7. +engenal ,ipe 0ata dan Operator
,ipe 0ata di Python
5ariabel me#+impa# ata +a#( ilakuka# selama pro(ram ieksekusi a# isi#+a apat iuba$ ole$
operasi operasi terte#tu paa pro(ram +a#( me#((u#aka# ,ariabel tersebut.
2i alam P+t$o#. terapat beberapa tipe ata +a#( 3ukup u#ik bila iba#i#(ka# e#(a# ba$asa
pemro(rama# seperti C. )a,a. a# +a#( lai##+a. 8ipe ata paa P+t$o# aala$ seba(ai berikut :
"oolea#. 3o#to$ 8rue a# 1alse
CompleC. pasa#(a# a#(ka real a# ima:i#er. misal#+a 1 P B:
2ate. bila#(a# +a#( apat iko#,ersi me#:ai 6ormat ta#((al. misal#+a 2>'0='2013
1loat. bila#(a# +a#( mempu#+ai koma. misal#+a 3.1?. >.38@
HeCae3imal. bila#(a# alam 6ormat $eksa. misal#+a @b. ?2
I#te(er. bila#(a# bulat. misal#+a 10. 20. 30. 1B. 3@
4o#(. bila#(a# bulat +a#( pa#:a#(. misal 123?B>@8=123?B>@8=4
0o#e. ata +a#( tiak tere6i#isi tipe ata apapu#
Stri#(. ata +a#( berisi kalimat. "isa ibe#tuk e#(a# iapit ta#a U a# U. atau iapit F a#
F. atau iapit FGG a# FGG u#tuk membe#tuk para(ra6.
4ist. sebua$ ata berupa u#taia# +a#( me#+impa# berba(ai tipe ata a# isi#+a bisa iuba$.
4ebi$ le#(kap#+a aka# iba$as i bab >.
8uple. sebua$ ata berupa u#taia# +a#( me#+impa# berba(ai tipe ata tapi isi#+a tiak bisa
iuba$. 4ebi$ le#(kap#+a aka# iba$as i bab >.
2i3tio#ar+. sebua$ ata berupa u#taia# +a#( me#+impa# berba(ai tipe ata berupa pasa#(a#
pe#u#:uk a# #ilai. 4ebi$ le#(kap#+a aka# iba$as i bab >.
Ob:ek. sebua$ ata +a#( berisi atribut a# met$o. 4ebi$ le#(kap#+a aka# iba$as i bab
10
Operator 8 Operator di Python
Selai# ,ariabel iatas. terapat :u(a beberapa operator u#tuk pemrosesa# ata i P+t$o#. *(ar lebi$
mema$ami seperti apa 3ara ker:a operator ip+t$o#. bukala$ 3o#sole python a# 3oba 3o#to$
isampi#( pe#:elasa# tiap operator. "erikut operator +a#( aa i P+t$o# :
1. *ritmatika (*rit$meti3 Operator!
Oper
ator
Pe#:elasa# Co#to$
P Pe#:umla$a#. me#amba$ka# ua bua$
opera#
a. b K 10. B
$asil K a P b
1B
Oper
ator
Pe#:elasa# Co#to$
R $asil aka# 1B
pri#t F$asil : F. $asil
'
Pe#(ura#(a#. me#(ura#(ka opera#
isebela$kiri operator e#(a# opera# i
sebela$ ka#a# operator
a. b K 10. 8
$asil K a b
R $asil aka# 2
pri#t F$asil : F. $asil
Q
Perkalia#. me#(alika# opera# i sebela$
kiri e#(a# opera# i sebela$ ka#a#
operator
a. b K 3. B
$asil K a Q b
R $asil aka# 1B
pri#t F$asil : F. $asil
%
Pemba(ia#. memba(i opera# i sebela$
kiri e#(a# opera# isebela$ ka#a#
operator
a. b K ?. 2
$asil K a % b
R $asil aka# 2
pri#t F$asil : F. $asil
T
Eoulus. me#apatka# sisa pemba(ia#
ari opera# i sebela$ kiri operator ketika
iba(i ole$ opera# i sebela$ ka#a#
a. b K 11. 2
$asil K a T b
R $asil aka# 1
pri#t F$asil : F. $asil
QQ
Pema#(kata#. mema#(katka# opera#
isebela$ kiri operator e#(a# opera# i
sebela$ ka#a# operator
a. b K 11. 2
$asil K a QQ b
R $asil aka# 121
pri#t F$asil : F. $asil
%%
Pemba(ia# bulat. proses#+a sama seperti
pemba(ia#. Ha#+a sa:a a#(ka ibelaka#(
koma i$ila#(ka#
a. b K 11. 2
$asil K a %% b
R $asil aka# B
pri#t F$asil : F. $asil
2. Perba#i#(a# (Compariso# Operator!
Oper
ator
Pe#:elasa# Co#to$
KK
Eemeriksa apaka$ keua #ilai (opera#!
+a#( iba#i#(ka# sama atau tiak. )ika
sama aka# ikembalika# #ilai ,rue :ika
tiak sama aka# ikembalika# #ilai -alse.
a. b K 10. 10
R $asil aka# 8rue
pri#t F$asil : F. a KK b
1>
Oper
ator
Pe#:elasa# Co#to$
]K
Eemeriksa apaka$ keua #ilai +a#(
iba#i#(ka# sama atau tiak. )ika tiak
sama aka# ikembalika# #ilai ,rue :ika
sama aka# ikembalika# #ilai -alse.
a. b.K 10. 8
R $asil aka# 8rue
pri#t F$asil : F. a ]K b
3 K 10
R $asil aka# 1alse
pri#t F$asil : F. a ]K 3
NO
1u#(si#+a sama e#(a# operator ]K a. b.K 10. 8
R $asil aka# 8rue
pri#t F$asil : F. a NO b
3 K 10
R $asil aka# 1alse
pri#t F$asil : F. a NO 3
O
Eemeriksa apaka$ #ilai i sebela$ kiri
operator lebi$ besar ari #ilai i sebela$
ka#a# operator
a. b K ?. 2
R $asil aka# 8rue
pri#t F$asil : F. a O b
N
Eemeriksa apaka$ #ilai i sebela$ kiri
operator lebi$ ke3il ari #ilai i sebela$
ka#a# operator
a. b K 2. ?
R $asil aka# 8rue
pri#t F$asil : F. a N b
OK
Eemeriksa apaka$ #ilai i sebela$ kiri
operator lebi$ besar ari #ilai i sebela$
ka#a# operator atau memiliki #ilai +a#(
sama
a. b K ?. 2
3 K ?
R $asil aka# 8rue
pri#t F$asil : F. a OK b
R $asil aka# 8rue
pri#t F$asil : F. a OK3
R $asil aka# 1alse
pri#t F$asil : F. b OK a
NK Eemeriksa apaka$ #ilai i sebela$ kiri
operator lebi$ ke3il ari #ilai i sebela$
ka#a# operator atau memiliki #ilai +a#(
sama
a. b K ?. 2
3 K ?
R $asil aka# 1alse
pri#t F$asil : F. a NK b
R $asil aka# 8rue
pri#t F$asil : F. a NK 3
R $asil aka# 8rue
1@
Oper
ator
Pe#:elasa# Co#to$
pri#t F$asil : F. b NK a
3. Pe#u(asa# (*ssi(#me#t Operator!
Oper
ator
Pe#:elasa# Co#to$
K
Ee#(isika# #ilai i sebela$ ka#a# operator
ke #ilai i sebela$ kiri operator
a K 10
R $asil aka# 10
pri#t a
b K 1B
R $asil aka# 1B
pri#t b
PK
Ee#amba$ka# opera# sebela$ kiri
operator e#(a# opera# sebela$ ka#a#
operator kemuia# $asil#+a iisika# ke
opera# sebela$ kiri
a. b.K 10. 8
R $asil aka# 18 sma (# a K a P b
a PK b
pri#t F$asil : F. a
'K
Ee#(ura#(i opera# sebela$ kiri operator
e#(a# opera# sebela$ ka#a# operator
kemuia# $asil#+a iisika# ke opera#
sebela$ kiri
a. b.K 10. 8
R $asil aka# 2 sma (# a K a ' b
a 'K b
pri#t F$asil : F. a
QK
Ee#(alika# opera# sebela$ kiri operator
e#(a# opera# sebela$ ka#a# operator
kemuia# $asil#+a iisika# ke opera#
sebela$ kiri
a. b.K 10. 8
R $asil aka# 80 sma (# a K a Q b
a QK b
pri#t F$asil : F. a
%K
Eemba(i opera# sebela$ kiri operator
e#(a# opera# sebela$ ka#a# operator
kemuia# $asil#+a iisika# ke opera#
sebela$ kiri
a. b.K 10. B
R $asil aka# 2 sma (# a K a % b
a %K b
pri#t F$asil : F. a
TK
Ee#(ambil sisa ba(i ari opera# sebela$
kiri operator e#(a# opera# sebela$ ka#a#
operator kemuia# $asil#+a iisika# ke
opera# sebela$ kiri
a. b.K 10. ?
R $asil aka# 2 sma (# a K a T b
a TK b
pri#t F$asil : F. a
QQK Eema#(katka# opera# sebela$ kiri a. b.K 10. 2
18
Oper
ator
Pe#:elasa# Co#to$
operator e#(a# opera# sebela$ ka#a#
operator kemuia# $asil#+a iisika# ke
opera# sebela$ kiri
R $asil aka# 100 sma (# a K a QQ b
a QQK b
pri#t F$asil : F. a
%%K
Eemba(i bulat opera# sebela$ kiri
operator e#(a# opera# sebela$ ka#a#
operator kemuia# $asil#+a iisika# ke
opera# sebela$ kiri
a. b.K 10. ?
R $asil aka# 2 sma (# a K a %% b
a %%K b
pri#t F$asil : F. a
?. "i#er ("it&iser Operator!
Oper
ator
Pe#:elasa# Co#to$
^
Operator bi#er *02. memeriksa apaka$
opera# i sebela$ kiri a# opera# sebela$
ka#a# mempu#+ai a#(ka bi#er 1 i setiap
bit. )ika keua#+a ber#ilai 1 maka bit $asil
operasi aka# ber#ilai 1
a. b K 13. 3@
R a aka# ber#ilai U0000 1101U
R b aka# ber#ilai U0010 0101U
3 K a ^ b
R 3 aka# ber#ilai B K U0000 0101U
pri#t 3
[
Operator bi#er O9. memeriksa apaka$
opera# i sebela$ kiri a# opera# sebela$
ka#a# mempu#+ai a#(ka bi#er 1 i setiap
bit. )ika sala$ satu#+a ber#ilai 1 maka bit
$asil operasi aka# ber#ilai 1
a. b K 13. 3@
R a aka# ber#ilai U0000 1101U
R b aka# ber#ilai U0010 0101U
3 K a [ b
R 3 aka# ber#ilai ?B K U0010 1101U
pri#t 3
_
Operator bi#er IO9. memeriksa apaka$
opera# i sebela$ kiri a# opera# sebela$
ka#a# mempu#+ai a#(ka bi#er 1 i setiap
bit. )ika keua#+a ber#ilai 1 maka bit $asil
operasi aka# ber#ilai 0
a. b K 13. 3@
R a aka# ber#ilai U0000 1101U
R b aka# ber#ilai U0010 0101U
3 K a _ b
R 3 aka# ber#ilai ?0 K U0010 1000U
pri#t 3
` Operator bi#er 0e(ati,e. membalik #ilai
bit. Eisal ari 1 me#:ai 0. ari 0 me#:ai
1
a. b K 13. 3@
R a aka# ber#ilai U0000 1101U
1=
Oper
ator
Pe#:elasa# Co#to$
R b aka# ber#ilai U0010 0101U
NN
Operator pe#((eser bi#er ke kiri. eret bit
aka# i(eser ke kiri seba#+ak # kali
a. b K 13. 3@
R a aka# ber#ilai U0000 1101U
R b aka# ber#ilai U0010 0101U
R $asil ber#ilai B2 K UU0011 0100U
pri#t a NN 2
R $asil ber#ilai 1?8 K U1001 0100U
pri#t b NN 2
OO
Operator pe#((eser bi#er ke ka#a#. eret
bit aka# i(eser ke ka#a# seba#+ak satu
kali
a. b K 13. 3@
R a aka# ber#ilai U0000 1101U
R b aka# ber#ilai U0010 0101U
R $asil ber#ilai 3 K U0000 0011U
pri#t a OO 2
R $asil ber#ilai = K U0000 1001U
pri#t b OO 2
B. 4o(ika (4o(i3al Operator!
Oper
ator
Pe#:elasa# Co#to$
a#
)ika keua opera# ber#ilai 8rue. maka
ko#isi aka# ber#ilai 8rue. Selai# ko#isi
tai maka aka# ber#ilai 1alse
a. b K 8rue. 8rue
R $asil aka# 8rue
pri#t a a# b
or
)ika sala$ satu atau keua opera# ber#ilai
8rue maka ko#isi aka# ber#ilai 8rue. )ika
keua#+a 1alse maka ko#isi aka# ber#ilai
1alse
a. b K 8rue. 1alse
R $asil aka# 8rue
pri#t a or b
pri#t b or a
pri#t a or a
R $asil aka# 1alse
pri#t b or b
#ot Eembalikka# #ilai kebe#era# paa opera#. a. b K 8rue. 1alse
20
Oper
ator
Pe#:elasa# Co#to$
misal :ika asal#+a 8rue aka# me#:ai 1alse
a# be(itupu# sebalik#+a R $asil aka# 8rue
pri#t #ot a
pri#t #ot b
>. Aea#((otaa# (Eembers$ip Operator!
Oper
ator
Pe#:elasa# Co#to$
i#
Eemeriksa apaka$ #ilai +a#( i3ari beraa
paa list atau struktur ata p+t$o# lai##+a.
)ika #ilai tersebut aa maka ko#isi aka#
ber#ilai 8rue
sebua$Hlist K X1. 2. 3.? .BY
pri#t B i# sebua$Hlist
#ot
i#
Eemeriksa apaka$ #ilai +a#( i3ari tiak
aa paa list atau struktur ata p+t$o#
lai##+a. )ika #ilai tersebut tiak aa maka
ko#isi aka# ber#ilai 8rue
sebua$Hlist K X1. 2. 3.? .BY
pri#t 10 #ot i# sebua$Hlist
@. Ie#titas (Ie#tit+ Operator!
Oper
ator
Pe#:elasa# Co#to$
is
Eemeriksa apaka$ #ilai i sebela$ kiri
opera# memiliki ie#titas memori +a#(
sama e#(a# #ilai i sebela$ ka#a# opera#.
)ika sama maka ko#isi ber#ilai 8rue
a. b K 10. 10
R $asil aka# 8rue
pri#t a is b
is
#ot
Eemeriksa apaka$ #ilai i sebela$ kiri
opera# memiliki ie#titas memori +a#(
berbea e#(a# #ilai i sebela$ ka#a#
opera#. )ika berbea maka ko#isi ber#ilai
8rue
a. b K 10. B
R $asil aka# 8rue
pri#t a is #ot b
Prioritas 'ksekusi Operator di Python
2ari sekia# ba#+ak#+a operator +a#( tela$ isebutka#. masi#( masi#( mempu#+ai prioritas
pemroresa# +a#( apat ili$at paa tabel berikut. Prioritas tersebut maki# ke ba&a$ maki# ak$ir
u#tuk ieksekusi. Pali#( atas aala$ +a#( aka# ia$uluka# aripaa operator lai#. sea#(ka#
pali#( ba&a$ aala$ operator +a#( pali#( terak$ir ieksekusi :
21
Operator Aetera#(a#
QQ *ritmatika
`. P. ' "it&ise
Q. %. T. %% *ritmatika
P. ' *ritmatika
OO. NN "it&ise
^ "it&ise
_. [ "it&ise
NK. N. O. OK Perba#i#(a#
NO. KK. ]K Perba#i#(a#
K. TK. %K. %%K.
'K. PK. QK.
QQK
Pe#u(asa#
is. is #ot ie#titas
i#. #ot i# members$ip
#ot. or. a# lo(ika
22
9. +e!)uat Pe!ilihan Kondisi
Penggunaan Operator Kondisional dan Logika pada Key#ord .i/
2alam ke$iupa# se$ari $ari pasti *#a me#e#tuka# pili$a# u#tuk memulai sebua$ aksi i pa(i
$ari. FAalau $ari i#i (a $u:a# sa+a aka# mai# te#isG. FAalau aa o#(kos #a#ti #o#to# 6an of "teeG.
FAalau (a $u:a# a# aa o#(kos #a#ti mau per(i maka# rame#G. 2isaari atau tiak. pe#(a#aia#
atau ko#isio#al sua$ me#:ai ba(ia# ari $iup *#a se3ara otomatis saat sebelum melakuka#
sebua$ tu(as.
2alam pemro(rama# pu# emikia# aa meka#isme ima#a pro(ram aka# me#e#tuka# aksi aksi
sesuai ko#isi ari i#put atau #ilai #ilai +a#( iproses selama pro(ram ber:ala# la#(su#(.
Pemili$a# ko#isi i#i membutu$ka# #ilai F8rueG :ika aksi +a#( ii#(i#ka# iba&a$ ko#isi tersebut
ieksekusi. )ika #ilai#+a F1alseG. maka aka# iperiksa ko#isi lai# +a#( sesuai atau aka# la#(su#(
ke ba(ia# pro(ram +a#( tiak memeriksa ko#isi.
2i P+t$o#. terapat beberapa +ey#ord u#tuk membuat sebua$ pemili$a# ko#isi. *a i. eli. else.
8iak memerluka# kura&al atau pe#utup paa blok i tersebut. Sebua$ statement aka# ia#((ap
blok i :ika i#e#tasi#+a lebi$ satu tab ari :umla$ tab i iatas#+a. Sebua$ i aka# ia&ali ta#a
titik ua baru iba&a$#+a terapat koe pro(ram +a#( aka# ieksekusi :ika ko#isi terpe#u$i.
2alam membuat pemili$a# ko#isi *#a :u(a membutu$ka# operator lo(ika (a#. #ot. or! a#
perba#i#(a# (KK. NK. OK. O. N. NO. ]K! u#tuk me#+usu# ko#isi +a#( *#a butu$ka#.
"erikut aala$ 3o#to$ pe#((u#aa# i i P+t$o#. Co#to$ berikut me#((u#aka# beberapa operator
perba#i#(a# u#tuk meli$at $asil perba#i#(a# ua bua$ a#(ka. 2alam pro(ram berikut beberapa
ko#isi +a#( terpe#u$i aka# ieksekusi.
isting 1 +ondisiona21.py
pri#t SEasukka# ua bua$ a#(ka..S
pri#t S2a# *#a aka# 3$e3k $ubu#(a# keua a#(ka tersebutS
a#(ka1 K ra&Hi#put(SEasukka# a#(ka pertama : S!
a#(ka1 K i#t(a#(ka1!
a#(ka2 K ra&Hi#put(SEasukka# a#(ka keua : S!
a#(ka2 K i#t(a#(ka2!
i6 a#(ka1 KK a#(ka2 :
pri#t ST sama e#(a# TS T (a#(ka1. a#(ka2!
i6 a#(ka1 ]K a#(ka2 :
pri#t ST tiak sama e#(a# TS T (a#(ka1. a#(ka2!
23
i6 a#(ka1 N a#(ka2 :
pri#t ST kura#( ari TS T (a#(ka1. a#(ka2!
i6 a#(ka1 O a#(ka2 :
pri#t ST lebi$ ari TS T (a#(ka1. a#(ka2!
i6 a#(ka1 NK a#(ka2 :
pri#t ST kura#( ari sama e#(a# TS T (a#(ka1. a#(ka2!
i6 a#(ka1 OK a#(ka2 :
pri#t ST lebi$ ari sama e#(a# TS T (a#(ka1. a#(ka2!
Cobala$ berba(ai a#(ka seba(ai test 3ase a# amati $asil#+a. Eisal *#a masukka# a#(ka 10 a# B
Eaka $asil#+a aka# terapat beberapa ko#isi +a#( ieksekusi :
NN (ambar ?.1 $asil eksekusi ko#isio#alH1.p+ OO
Penggunaan .else/ pada .i/
7ey#ord else i(u#aka# alam blok i u#tuk me#ampu#( berba(ai ko#isi +a#( berla&a#a#
e#(a# ko#isi paa i sebelum#+a. 7ey#ord else i#i membutu$ka# blok i atau eli iatas#+a.
8a#pa keua +ey#ord tai. else tiak apat i(u#aka#. "erikut i#i terapat 3o#to$ pe#((u#aa# else.
mari kita 3oba.
isting 1 +ondisiona23.py
2?
pri#t SEasukka# ua bua$ a#(ka..S
pri#t S2a# *#a aka# 3$e3k $ubu#(a# keua a#(ka tersebutS
a#(ka1 K ra&Hi#put(SEasukka# a#(ka pertama : S!
a#(ka1 K i#t(a#(ka1!
a#(ka2 K ra&Hi#put(SEasukka# a#(ka keua : S!
a#(ka2 K i#t(a#(ka2!
i6 a#(ka1 KK a#(ka2 :
pri#t ST sama e#(a# TS T (a#(ka1. a#(ka2!
else:
pri#t ST tiak sama e#(a# TS T (a#(ka1. a#(ka2!
3obala$ masukka# ua a#(ka berbea a# amati $asil#+a. Eisalka# *#a memasukka# a#(ka 10
a# B maka aka# tampil $asil seperti berikut :
NN (ambar ?.2 $asil eksekusi ko#isio#alH2.p+ OO
Penggunaan .eli/ pada .i/
)ika paa ko#isio#alH1.p+ beberapa blok i aka# ieksekusi. kare#a tiak aa pili$a# lai# paa
masi#( masi#( blok i. Paa 3o#to$ berikut#+a beberapa i aka# i(abu#( a# membe#tuk
sebua$ blok i +a#( lebi$ besar kare#a aa#+a eli. 7ey#ord eli i#i ber6u#(si u#tuk membuat
multi ko#isio#al. )ai :ika ko#isi i i6 pali#( atas tiak sesuai maka ko#isi +a#( aa iba&a$#+a
aka# iperiksa a# :ika 3o3ok aka# ieksekusi. Paa 3o#to$ berikut#+a :ika ko#isi sua$ sesuai
2B
paa blok teratas maka blok tersebutla$ +a#( aka# ieksekusi. berbea e#(a# 3o#to$ paa
ko#isio#alH1.p+ kare#a teriri ari beberapa blok i +a#( ia#((ap berbea ole$ P+t$o#. U#tuk
lebi$ :elas#+a mari 3oba koe berikut
isting 1 +ondisiona24.py
pri#t SEasukka# ua bua$ a#(ka..S
pri#t S2a# *#a aka# 3$e3k $ubu#(a# keua a#(ka tersebutS
a#(ka1 K ra&Hi#put(SEasukka# a#(ka pertama : S!
a#(ka1 K i#t(a#(ka1!
a#(ka2 K ra&Hi#put(SEasukka# a#(ka keua : S!
a#(ka2 K i#t(a#(ka2!
i6 a#(ka1 KK a#(ka2 :
pri#t ST sama e#(a# TS T (a#(ka1. a#(ka2!
eli6 a#(ka1 ]K a#(ka2 :
pri#t ST tiak sama e#(a# TS T (a#(ka1. a#(ka2!
eli6 a#(ka1 N a#(ka2 :
pri#t ST kura#( ari TS T (a#(ka1. a#(ka2!
eli6 a#(ka1 O a#(ka2 :
pri#t ST lebi$ ari TS T (a#(ka1. a#(ka2!
eli6 a#(ka1 NK a#(ka2 :
pri#t ST kura#( ari sama e#(a# TS T (a#(ka1. a#(ka2!
eli6 a#(ka1 OK a#(ka2 :
pri#t ST lebi$ ari sama e#(a# TS T (a#(ka1. a#(ka2!
Coba masukka# e#(a# a#(ka 10 a# 20. maka blok i6 +a#( ieksekusi $a#+a blok keua +a#(
berisi ko#isi a#(ka1 tiak sama e#(a# a#(ka 2. )elas berbea e#(a# koe +a#( aa i
ko#isio#alH1.p+. U#tuk lebi$ :elas#+a 3oba per$atika# (ambar berikut
2>
NN (ambar ?.3 $asil eksekusi ko#isio#alH3.p+ OO
Penggunaan .else/ pada .i/
Eisal aa sebua$ ko#isi seperti berikut. FAalau sa+a pu#+a ua#( sa+a aka# per(i ke tama#
bermai#. 4alu kalau ua#(#+a 3uma 10.000 3uma bakal #aik komei putar. kalau ua#(#+a 20.000
bakal #aik komei putar a# bom bom 3arG. )ika *#a per$atika# setela$ ko#isi pertama aa
ko#isi la(i +a#( masi$ beraa iba&a$ ko#isi pertama. Ao#isi sema3am i#i apat isebut
e#(a# ko#isi bersara#( (#este i6!.
2i P+t$o#. u#tuk membuat sebua$ blok i i alam i2 maka blok i +a#( i#(i# isimpa# i alam
sebua$ i $arus mempu#+ai satu tab lebi$ iba#i#( i sebelum#+a. *#a apat membuat i6
bersara#( i alam i6 bersara#( $i#((a ti#(kat sealam +a#( *#a i#(i#ka#.
*(ar lebi$ pa$am mari *#a 3oba koe berikut :
isting 1 +ondisiona28.py
user#ame K ra&Hi#put(Smasukka# user#ame : S!
pass&or K ra&Hi#put(Smasukka# pass&or : S!
user#ameH6romHb K SuserS
pass&orH6romHb K Sami#S
i6 user#ame KK user#ameH6romHb :
i6 pass&or KK pass&orH6romHb :
2@
pri#t SUser#ame a# pass&or 3o3ok S
else:
pri#t SPass&or sala$ S
else:
pri#t SUser tiak tera6tarS
Paa 3o#to$ iatas. *#a imi#ta masuka# berupa Fuser#ameG a# Fpass&orG. Aemuia# aa
sebua$ ,ariabel +a#( iasumsika# me#(ambil ata Fuser#ameG a# Fpass&orG ari database. "lok
i aka# memeriksa apaka$ user sua$ sesuai atau belum. :ika tiak sesuai maka aka# itampilka#
FUser tiak tera6tarG. )ika Fuser#ameG sesuai maka ko#isi sela#:ut#+a aala$ memeriksa
Fpass&orG :ika sesuai maka aka# mu#3ul #oti6ikasi FUser#ame a# pass&or 3o3okG. :ika tiak
sesuai maka aka# mu#3ul #oti6ikasi FPass&or sala$G. 4ebi$ :elas#+a per$atika# (ambar berikut :
NN (ambar ?.? $asil eksekusi ko#isio#alH?.p+ OO
28
:. +enyusun Pengulangan
+engenal Pengulangan .or/ dan .#hile/
Seperti paa ba$asa pemro(rama# lai##+a. P+t$o# memiliki meka#isme pe#(ula#(a# u#tuk
me#:ala#ka# peker:aa# peker:aa# +a#( berula#(. Paa umum#+a pe#(ula#(a# teriri ua :e#is.
*a pe#(ula#(a# +a#( terbatas a# tiak terbatas. Pe#(ula#(a# terbatas biasa#+a ilakuka#
pe#(ula#(a# ari 1 $i#((a kesekia# kali (# kali!. Perula#(a# terbatas me#((u#aka# or. Sea#(ka#
pe#(ula#(a# tiak terbatas me#((u#aka# #hile. 2alam pe#(ula#(a# me#((u#aka# #hile
pe#(ula#(a# aka# terus ilakuka# selama ko#isio#al alam perula#(a# &$ile tetap alam keaaa#
true :ika alam keaaa# alse maka pe#(ula#(a# #hile aka# ber$e#ti.
+enyusun Pengulangan dengan .or/
Aita mela#(ka$ ke pe#(ula#(a# +a#( terbatas ulu +a$. 2alam pe#(ula#(a# or. tiak seperti i
ba$asa pemor(rama# C atau )a,a +a#( me#((u#aka# #ilai incrementa u#tuk melakuka#
pe#(ula#(a#. 2i P+t$o#. or melakuka# pe#(ula#(a# e#(a# me#('iterasi eleme# ari sebua$ ist.
List i#i apat berisi kumpula# karakter. kumpula# string. kumpula# a#(ka. atau kumpula# ata
:e#is lai##+a +a#( iseiaka# P+t$o#. (U#tuk lebi$ le#(kap#+a i bab berikut#+a aka# iba$as
lebi$ :au$ te#ta#( List i P+t$o#!.
Eisal isi#i aa sebua$ ist +a#( berisi X1. 2. 3. ?. BY. ( sebua$ list ia&ali ole$ ta#a UXU a# itutup
ole$ ta#a UYU !. "a#+ak#+a eleme# paa ist tersebut me#e#tuka# ba#+ak#+a pe#(ula#(a# +a#(
aka# ilakuka# saat melakuka# pe#(ula#(a#. Eari kita li$at impleme#tasi#+a paa koe iba&a$
i#i :
isting 1 +ode penguangan21.py
R pe#(ula#(a# seba#+ak B kali
6or i i# X1. 2. 3. ?. BY:
pri#t SI#i pe#(ula#(a# ke ' S. i
Paa 3o#to$ iatas. aka# i3etak teks Fi#i pe#(ula#(a# ke ' F seba#+ak B kali. 0ilai UiU paa
pe#(ula#(a# tersebut aka# selalu ber(a#ti #ilai#+a setiap ta$ap pe#(ula#(a# ilakuka#. Eisal
ketika pe#(ula#(a# pertama. #ilai UiU aka# berisi 1. ketika pe#(ula#(a# keua. #ilai UiU aka# berisi 2.
be(itu seterus#+a sampai eleme# terak$ir. )ika koe iatas ieksekusi aka# me#ampilka# $asil
seperti paa (ambar iba&a$ i#i :
2=
NN (ambar B.1 $asil eksekusi pe#(ula#(a#H1.p+ OO
Selai# me#((u#aka# ist +a#( berisi a#(ka. List +a#( berisi string apat i(u#aka# :u(a u#tuk
melakuka# pe#(ula#(a# or i P+t$o#. Eisal terapat ist +a#( berisi seperti berikut XF9a&o#G.
F0asi Au#i#(G. FSoto EauraG. FAupat 8a$uG. FAerak 8elorG. F9e#a#( "atokoG. FPempek
SelamG. F*+am "etutuGY. alam ist tersebut terapat eleme# seba#+ak elapa# :e#is masaka#
#usa#tara. 2e#(a# emikia# ketika pe#(ula#(a# or me#((u#aka# ist masaka# tai. pe#(ula#(a#
aka# i:ala#ka# seba#+ak elapa# kali. Eari *#a li$at impleme#tasi#+a paa koe iba&a$ i#i :
isting 1 +ode penguangan23.py
R pe#(ula#(a# seba#+ak 8 kali
6or i i# XS9a&o#S. S0asi Au#i#(S. SSoto EauraS. SAupat 8a$uS. SAerak 8elorS. S9e#a#(
"atokoS. SPempek SelamS. S*+am "etutuSY :
pri#t i. S aala$ masaka# k$as #usa#tara aS
Aoe iatas :ika ieksekusi aka# terli$at seperti (ambar iba&a$ i#i :
NN (ambar B.2 $asil eksekusi pe#(ula#(a#H2.p+ OO
30
Sekara#( *#a 3oba 3o#to$ terak$ir e#(a# me#((u#aka# string. "tring paa asar#+a merupaka#
ist karakter. Eisal terapat string seperti berikut Fab3eG. )ika string tersebut i(u#aka# paa
pe#(ula#(a# or. maka aka# ter:ai pe#(ula#(a# seba#+ak lima kali. Coba li$at koe iba&a$ i#i :
isting 1 +ode penguangan24.py
R pe#(ula#(a# seba#+ak B kali
6or i i# Sab3eS:
pri#t i. S aala$ al6abetS
Aoe iatas :ika ieksekusi aka# terli$at seperti (ambar iba&a$ i#i :
NN (ambar B.3 $asil eksekusi pe#(ula#(a#H3.p+ OO
+e!aha!i -unction .range/
Aalau tema# tema# memper$atika# ist +a#( ipakai paa pe#(ula#(a#H1.p+. pe#(ula#(a#
tersebut me#((u#aka# ist a#(ka +a#( sua$ :ai atau i'hardcode. 0a$ ba(aima#a #i$ kalau
i#(i# membe#tuk suatu pola atau i#(i# membuat list incrementa a(ar pe#(ula#(a# or i P+t$o#
i#i mirip i )a,a atau C. 2i P+t$o# terapat 6u#(si +a#( ber#ama range. ;ange i#i me#($asilka#
eret a#(ka e#(a# parameter (start. stop, step!. "tart aala$ batasa&al ari ist, stop aala$ batas
ak$ir ari ist, step aala$ :arak a#tar a#(ka +a#( i$asilka# ole$ range. *a beberapa kasus
pe#ti#( +a#( perlu iper$atika# saat me#((u#aka# range. Coba per$atika# koe iba&a$ i#i :
isting 1 +ode penguangan28.py
R pe#(ula#(a#H?.p+
R kasus ' 1 : :ika step tiak isertaka# maka step aka# iisi 1 se3ara e6ault
pri#t ra#(e(1. 10!
R kasus ' 2 : :ika step isertaka# maka step aka# sesuai e#(a# a#(ka +a#( iisika#
31
pri#t ra#(e(1. 10. 2!
pri#t ra#(e(1. 10. 3!
pri#t ra#(e(1. 10. ?!
pri#t ra#(e(1. 10. B!
R kasus ' 3 : :ika step melebi$i stop maka list $a#+a aka# berisi start
pri#t ra#(e(1. 10. 11!
R kasus ' ? : :ika start lebi$ besar #ilai#+a aripaa stop maka list aka# koso#(
pri#t ra#(e(10. 1!
R kasus ' B : :ika start lebi$ besar #ilai#+a aripaa stop a#
R :ika step melebi$i stop maka list aka# koso#(
pri#t ra#(e(10. 1. 2!
pri#t ra#(e(10. 1. 11!
R kasus ' > : :ika start lebi$ besar aripaa stop a# step ber#ilai mi#us
R a# :ika start ikura#(i step me#($asilka# a#(ka positi6
R maka list aka# berisi eret a#(ka me#uru#
pri#t ra#(e(10. 1. '1!
R kasus ' @ : :ika start lebi$ besar aripaa stop a# step ber#ilai mi#us
R a# :ika start ikura#(i step ber#ilai mi#us maka list $a#+a aka# berisi start
pri#t ra#(e(10. 1. '11!
R kasus ' 8 : :ika step ber#ilai 0 maka aka# ter:ai error
pri#t ra#(e(1. 10. 0!
R kasus ' = : :ika start lebi$ besar aripaa stop a# step ber#ilai 0 maka aka# ter:ai error
pri#t ra#(e(10. 1. 0!
Aoe iatas :ika ieksekusi aka# terli$at seperti (ambar iba&a$ i#i :
NN (ambar B.? $asil eksekusi pe#(ula#(a#H?.p+ OO
32
+enggunakan -unction .range/ pada Pengulangan .or/
"a(aima#a e#(a# pe#(e#ala# range iatas b Eua$ ka# b 0a$ sekara#( *#a aka# 3oba
me#((u#aka# ra#(e alam pe#(ula#(a# or. Coba per$atika# 3o#to$ berikut :
isting 1 +ode penguangan29.py
6or i i# ra#(e(1. 10!:
pri#t Si#i pe#(ula#(a# ke ' S. I
Paa 3o#to$ iatas aka# ter:ai pe#(ula#(a# seba#+ak 10 kali ter$aap statement iba&a$ or.
2e#(a# me#((u#aka# range2 *#a tiak perlu repot u#tuk membuat list terlebi$ a$ulu u#tuk
me#e#tuka# ba#+ak#+a pe#(ula#(a# +a#( aka# *#a lakuka# ter$aap statement.)ika koe iatas
ieksekusi aka# terli$at seperti (ambar iba&a$ i#i :
NN (ambar B.B $asil eksekusi pe#(ula#(a#HB.p+ OO
*(ar lebi$ mema$ami la(i pe#(ula#(a# or2 kita 3oba la(i pela:ari ua 3o#to$ berikut. "erikut aa
kasus membuat sebua$ se(iti(a +a#( ibuat ari kumpula# bi#ta#( a# membuat baris bila#(a#
prima. U#tuk lebi$ :elas#+a 3oba per$atika# ua kasus berikut :
isting 1 +ode penguangan2:.py
R pe#(ula#(a#H>.p+
6or i i# ra#(e(0. 10!:
6or : i# ra#(e (0. iP1!:
i6 : KK i:
pri#t SCS
33
else:
pri#t SQS.
pri#t SS
Aoe iatas :ika ieksekusi aka# tampil seperti berikut :
NN (ambar B.> $asil eksekusi pe#(ula#(a#H>.p+ OO
Aemuia# iba&a$ i#i aala$ koe pro(ram u#tuk me#3ari bila#(a# prima. "ila#(a# prima aala$
bila#(a# +a#( $a#+a bisa iba(i 1 a# bila#(a# itu se#iri
isting 1 +ode penguangan2;.py
R pe#(ula#(a#H@.p+
6or i i# ra#(e(1. 20!:
3ou#tH-eroHremai#er K 0
6or : i# ra#(e(1. iP1!:
#umHremai#er K i T :
Rpri#t #umHremai#er.
i6 #umHremai#er KK 0:
3ou#tH-eroHremai#er K 3ou#tH-eroHremai#er P 1

i6 3ou#tH-eroHremai#er KK 2:
pri#t i. S aala$ bila#(a# primaS
else:
pri#t i. S buka#la$ bila#(a# primaS
Aoe iatas :ika ieksekusi aka# tampil seperti berikut :
3?
NN (ambar B.@ $asil eksekusi pe#(ula#(a#H@.p+ OO
+enyusun Pengulangan dengan .#hile/
Sekara#( kita aka# ba$as pe#(ula#(a# +a#( me#((u#aka# #hile. Pe#(ula#(a# #hile memiliki 3ara
ker:a selama ko#isi terte#tu ber#ilai true maka pe#(ula#(a# aka# iteruska# sampai ko#isi
ber#ilai alse. 8e#tu#+a alam ko#isi +a#( ipakai u#tuk eksekusi #hile memerluka# operator
lo(ika a# perba#i#(a# seperti +a#( sua$ i :elaska# i bab 3.
seba(ai 3o#to$ 3oba li$at koe berikut. Aoe berikut ieksekusi apabila ,ariabel Fa#(kaG masi$
iba&a$ 10.
isting 1 +ode penguangan2<.py
a#(ka K 0
&$ile (a#(ka N 10!:
pri#t S*ku sua$ ber:ala# seba#+ak S. a#(ka. S la#(ka$ S
a#(ka PK 1
Aoe iatas :ika ieksekusi aka# tampil seperti paa (ambar berikut i#i :
3B
NN (ambar B.8 $asil eksekusi pe#(ula#(a#H8.p+ OO
Paa 3o#to$ iatas ko#isi u#tuk melakuka# pe#(ula#(a# itaru$ i #hile. Sekara#( *#a 3oba
taru$ ko#isi pe#(ula#(a# i alam pe#(ula#(a##+a. Coba li$at 3o#to$ berikut :
isting 1 +ode penguangan2=.py
terusHta#+a K 8rue
&$ile terusHta#+a :
temp K ra&Hi#put(Umasukka# a#(ka kura#( ari 10 ]] : U!
a#(ka K i#t(temp!
i6 a#(ka N 10:
terusHta#+a K 1alse
else:
terusHta#+a K 8rue
NN (ambar B.= $asil eksekusi pe#(ula#(a#H=.p+ OO
U#tuk mema$ami pe#(ula#(a# #hile lebi$ la#:ut. berikut terapat 3o#to$ pe#:umla$a# a#(ka ari
1 sampai 10. 2alam pe#(ula#(a# i#i terapat sebua$ ,ariabel -m2ang+a +a#( ber6u#(si u#tuk
me#ampu#( a#(ka a#(ka +a#( aka# itamba$ka# e#(a# a#(ka berikut#+a i setiap
3>
pe#(ula#(a#. Coba per$atika# koe iba&a$ i#i :
isting 1 +ode penguangan21>.py
i K 1
:mlHa#(ka K 0
&$ile i NK 10:
pri#t Uloop ke ' T : T P TU T (i. :mlHa#(ka. i!
:mlHa#(ka K :mlHa#(ka P i
i PK 1
pri#t Utotal a#(ka +a#( i:umla$ka# : U. :mlHa#(ka
koe iatas :ika ieksekusi aka# tampi seperti paa (ambar berikut i#i :
NN (ambar B.10 $asil eksekusi pe#(ula#(a#H10.p+ OO
3@
<. +engenal 0ata Struktur Python ,ingkat Lan=ut
+engenal List2 0ictionary dan ,uple
2ata +a#( kompleks biasa#+a apat me#ampu#( ob:ek atau e#titas +a#( ba#+ak. Eisal aa sebua$
toples +a#( berisi ba#+ak perme# e#(a# ra(am :e#is#+a. 2alam sebua$ toples apat sa:a aa
perme# rasa asem. perme# rasa stroberi. perme# rasa #a#as. perme# rasa asem la(i. a# rasa
lai##+a. 8api buka# $a#+a me#+impa# e#titas +a#( ba#+ak sa:a. struktur ata pu# aa +a#(
me#+impa# :ari#(a# sebua$ (ra6. a#tria#. tumpuka#. a# ba#+ak la(i tipe lai##+a.
2i P+t$o# se#iri. terapat beberapa tipe struktur ata +a#( apat i(u#aka# ole$ pe#((u#a#+a.
8api ti(a tipe ata +a#( umum i(u#aka#. ia#tara#+a list. tuple. a# dictionary. Aeti(a tipe ata
struktur i#i sa#(at memba#tu sekali ba(i pro(rammer P+t$o# +a#( membutu$ka# tipe ata ba#+ak.
Aeti(a tipe ata i#i aala$ ob:ek P+t$o# +a#( berarti :ika *#a me#e6i#isika# struktur ata
tersebut. *#a apat me#((u#aka# method ? method +a#( ber$ubu#(a# e#(a# pe#(ola$a#
struktur ata tersebut. Selai# itu terapat pula 6u#3tio# u#tuk me#(ola$ ti(a struktur ata tai
seperti me#3ari #ilai !ax. !in. $itu#( pa#:a#(. a# perba#i#(a# isi.
U#tuk me#e6i#isika# sebua$ list *#a 3ukup buat sebua$ ,ariabel e#(a# #ama +a#( ii#(i#ka#.
kemuia# isi ,ariabel tersebut e#(a# list +a#( aka# ibuat. 4ist ia&ali e#(a# ta#a UXU a#
iak$iri e#(a# ta#a UYU. Isi#+a apat bera(am. apat stri#(. #umber. ob:e3t. ba$ka# list la(i.
Pemisa$ a#tara ata +a#( satu e#(a# +a#( lai##+a i(u#aka# ta#a koma. 4ist apat itamba$
isi#+a. iruba$ ata paa eleme##+a. $apus eleme#. a# $apus seluru$ list.
Hampir sama e#(a# list. tuple ia&ali e#(a# ta#a U(U a# U!U. ;leme# paa tuple tiak apat
i$apus a# iuba$. Eaka ari itu tuple isebut immutable se\ue#3e. 4ebi$ :elas#+a #a#ti *#a
aka# li$at perbeaa# tuple e#(a# list.
"ea $al#+a a#tara e#(a# list a# tuple. paa i3tio#ar+ setiap ata aka# memiliki pe#(e#al#+a
masi#( masi#(. Pe#(e#al tersebut i#amaka# e#(a# ke+ a# ata#+a i#amaka# e#(a# ,alue.
2i3tio#ar+ ia&ali e#(a# ta#a UVU a# iak$iri e#(a# ta#a UWU. A$usus u#tuk ke+ paa i3tio#ar+.
#ilai#+a $arus berupa tipe ata +a#( tiak apat i(a#ti seperti tuple. stri#( a# #umber. 8api
umum#+a ke+ berisi #umber a# stri#(. Aare#a :ika *#a me#3oba memasukka# tipe ata +a#(
mutable. aka# keluar peri#(ata# Uu#$as$able t+peU saat me#e6i#isika# i3tio#ar+ +a#( ke+'#+a
berupa tipe ata mutable.
*(ar lebi$ pa$am mari *#a 3oba me#e6i#isika# list. tuple. a# i3tio#ar+ kealam sebua$
,ariabel.
isting 1 stru+dat21.py
R 3ara me#e6i#isika# list
sebua$Hlist K XU<ori# OSU.
38
UUbu#tuU.
U1ree"S2U.
U0et"S2U.
UOpe#"S2U.
U"a3ktra3kU.
U1eoraU.
USla3k&areUY
R 3ara me#e6i#isika# tuple
sebua$Htuple K (0. 1. 2. 3. ?. B. >. @. 8. =!
R 3ara me#e6i#isika# i3tio#ar+
sebua$Hi3tio#ar+ K VU#amaU:UDiro Sable#(U.
UproiU:Uilmu komputerU.
UemailU:U&irosable#(@lo3al$ostU.
U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU
W
pri#t sebua$Hlist
pri#t sebua$Htuple
pri#t sebua$Hi3tio#ar+
2e#(a# me#((u#aka# peri#ta$ print maka *#a apat me#3etak isi list. tuple. atau dictionary
+a#( $asil keluara##+a berupa stri#(.
NN (ambar >.1 $asil eksekusi strukatH1.p+ OO
Cara %kses List2 ,uple2 dan 0ictionary
Setela$ *#a me#(e#al 3ara membuat keti(a struktur ata tersebut. sekara#( *#a 3oba 3ara
me#(akses eleme# eleme# paa struktur ata tersebut. *a beberapa 3ara me#(akses eleme# paa
struktur ata tersebut +a#( biasa ilakuka# misal#+a me#(akses sala$ satu eleme# e#(a#
3=
me#((u#aka# i#eks. sicing i#eks. a# me#(akses eleme# le&at pe#(ula#(a#.
U#tuk akses eleme# le&at i#eks eleme# *#a pa#((il #ama list kemuia# isusul i#eks eleme#
+a#( *#a i#(i#ka# e#(a# iapit ta#a ba3a FXF a# FYG. misal aa sebua$ list e#(a# #ama
datar1)arang kemuia# i#(i# me#(akses i#eks ke 10. maka pema#((ila# i#eks paa list
tersebut aala$ datar1)arang>?@. Ae#apa i pema#((ila# i#eks #+a ari = b kare#a i#eks
tersebut ia&ali ari 0 se$i#((a i#eks +a#( ii#(i#ka# aka# ikura#(i 1. "e(itupu# e#(a# tuple
3ara akses sala$ satu eleme#+a sama e#(a# 3ara akses sala$ satu eleme# i list. Paa i3tio#ar+.
u#tuk me#(akses sala$ satu eleme##+a *#a pa#((il sala$ satu ke+'#+a u#tuk me#apatka# ata
+a#( itu#:uk ke+ tersebut.
Sli3i#( i#eks merupaka# 3ara u#tuk me#(akses beberapa eleme# paa list a# tuple. Cara i#i tiak
apat ilakuka# i i3tio#ar+. Sli3i#( i#eks ilakuka# e#(a# mema#((il list atau tuple kemuia#
te#tuka# i#eks a&al sli3i#( a# batas ak$ir#+a. Aemuia# i#eks tersebut ipisa$ka# e#(a#
ta#a F:G a# iapit ole$ ta#a FXF a# FYG. Eisal aa sebua$ list datar1)arang kemuia# i#(i#
me#(ambil 10 ata#+a ari i#eks ke 2 maka pema#((ila##+a aala$ datar1)arang>1511@.
"erikut#+a 3ara terak$ir +a#( biasa ilakuka# ole$ u#tuk me#(akses eleme# se3ara keseleru$a#
aala$ e#(a# melalui pe#(ula#(a# or. Eelalui 3ara tersebut. isi ari list. tuple. a# i3tio#ar+
apat iambil eleme##+a selama iterasi paa pe#(ula#(a# or. Paa list a# tuple :ika ata#+a
iambil le&at pe#(ula#(a# or2 setiap eleme# aka# la#(su#( iekstrak i setiap iterasi a# apat
i(u#aka# u#tuk keperlua# pemrosesa# paa proses i setiap iterasi. Aalau paa i3tio#ar+ i setiap
iterasi pe#(ula#(a# buka# eleme# +a#( iektrak tapi ke+'#+a. )ai saat i#(i# me#(ambil ata#+a
*#a $arus mema#((il eleme# i3tio#ar+ tersebut e#(a# ke+ +a#( iapatka# isetiap iterasi.
2iba&a$ i#i aala$ 3o#to$ me#(akses eleme# ari list. tuple a# i3tio#ar+ e#(a# ti(a 3ara +a#(
biasa ipakai pro(rammer p+t$o#.
isting 1 stru+dat23.py
R 3ara me#e6i#isika# list
sebua$Hlist K XU<ori# OSU.
UUbu#tuU.
U1ree"S2U.
U0et"S2U.
UOpe#"S2U.
U"a3ktra3kU.
U1eoraU.
USla3k&areUY
R 3ara me#e6i#isika# tuple
sebua$Htuple K (0. 1. 2. 3. ?. B. >. @. 8. =!
R 3ara me#e6i#isika# i3tio#ar+
sebua$Hi3tio#ar+ K VU#amaU:UDiro Sable#(U.
UproiU:Uilmu komputerU.
UemailU:U&irosable#(@lo3al$ostU.
U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU
W
?0
R me#(akses eleme##+a
pri#t Sme#(akses sala$ satu eleme# : S
pri#t S'''''''''''''''''''''''''''''S
pri#t sebua$HlistXBY
pri#t sebua$HtupleX8Y
pri#t sebua$Hi3tio#ar+XU&ebsiteUY
pri#t SM#M#S
R me#(akses beberapa eleme#
pri#t Sme#(akses beberapa eleme# : S
pri#t S'''''''''''''''''''''''''''''S
pri#t sebua$HlistX2:BY
pri#t sebua$HtupleX3:>Y
pri#t SM#M#S
R me#(akses eleme##+a e#(a# loopi#(
pri#t Sme#(akses semua eleme# e#(a# loopi#( 6or : S
pri#t S'''''''''''''''''''''''''''''S
6or sebua$ i# sebua$Hlist:
pri#t sebua$.
pri#t SM#S
6or sebua$ i# sebua$Htuple:
pri#t sebua$.
pri#t SM#S
6or sebua$ i# sebua$Hi3tio#ar+:
pri#t sebua$. U:U. sebua$Hi3tio#ar+Xsebua$Y.
*pabila *#a :ala#ka# koe pro(ram iatas maka aka# mu#3ul output seperti paa (ambar berikut
i#i :
?1
NN (ambar >.2 $asil eksekusi strukatH2.p+ OO
+engu)ah Isi List2 ,uple2 dan 0ictionary
*a &aktu#+a *#a i#(i# me#(uba$ sala$ satu eleme# setela$ me#e6i#isika# stuktur ata. Eisal
aa sebua$ list datar1)arang a# *#a i#(i# me#(uba$ eleme# ke'@ e#(a# ata baru +a#(
asal#+a FkursiG me#:ai Fme:aG. *tau aa sebua$ i#6ormasi alam be#tuk i3tio#ar+ e#(a# ke+
F#amaG +a#( ,alue asal#+a FSo# /o AuG me#:ai F5as$ 2e StampeeG. Cara me#(uba$ ata sala$
satu eleme# i struktur ata p+t$o# mua$ sekali. 8i#((al te#tuka# i#eks ma#a +a#( aka# iuba$.
kemuia# masukka# #ilai baru kealam i#eks tersebut. 4ebi$ :elas#+a 3oba li$at 3o#to$ berikut :
isting 1 stru+dat24.py
R 3ara me#e6i#isika# list
sebua$Hlist K XU<ori# OSU.
UUbu#tuU.
U1ree"S2U.
U0et"S2U.
UOpe#"S2U.
U"a3ktra3kU.
U1eoraU.
?2
USla3k&areUY
R 3ara me#e6i#isika# tuple
sebua$Htuple K (0. 1. 2. 3. ?. B. >. @. 8. =!
R 3ara me#e6i#isika# i3tio#ar+
sebua$Hi3tio#ar+ K VU#amaU:UDiro Sable#(U.
UproiU:Uilmu komputerU.
UemailU:U&irosable#(@lo3al$ostU.
U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU
W
R 3ara upate sebua$ eleme# :
pri#t S3ara upate sebua$ eleme# : S
pri#t SM#S
pri#t sebua$Hlist
sebua$HlistXBY K UAali 4i#uCU
pri#t sebua$Hlist
pri#t SM#S
pri#t sebua$Htuple
R tuple tiak apat melakuka# operasi peruba$a# eleme# :2
Rsebua$HtupleXBY K 100
pri#t sebua$Htuple
pri#t SM#S
pri#t sebua$Hi3tio#ar+
sebua$Hi3tio#ar+XUemailUY K U&iro.sable#(@(mail.3omU
pri#t sebua$Hi3tio#ar+
pri#t SM#M#S
Eua$ sekali ka# b 2e#(a# me#(akses i#eks terte#tu paa list a# tuple serta me#(akses ke+s
tete#tu paa i3tio#ar+. *#a apat me#(uba$ #ilai paa i#eks atau ke+ tersebut e#(a# #ilai +a#(
baru.
?3
NN (ambar >.3 $asil eksekusi strukatH3.p+ OO
+ena!)ahkan 0ata pada List2 ,uple2 dan 0ictionary
Aeti(a struktur ata i#ipu# apat itamba$ka# ata baru ari ata semula. Paa list. i(u#aka#
ta#a FPG u#tuk me#amba$ka# ata ari list baru ke list lama. "e(itupu# e#(a# tuple. ta#a FPG
i(u#aka# u#tuk me#amba$ka# ata ari tuple baru ke tuple lama. Sea#(ka# paa i3tio#ar+
i(u#aka# met$o upate ari i3tio#ar+ +a#( i#(i# itamba$ka# ata baru. Aemuia# i3tio#ar+
semula aka# memiliki ata +a#( itamba$ka# melalui met$o tersebut. "erikut aala$ 3o#to$
me#amba$ka# ata baru paa keti(a struktur ata tersebut.
isting 1 stru+dat28.py
R 3ara me#e6i#isika# list
sebua$Hlist K XU<ori# OSU.
UUbu#tuU.
U1ree"S2U.
U0et"S2U.
UOpe#"S2U.
U"a3ktra3kU.
U1eoraU.
??
USla3k&areUY
R 3ara me#e6i#isika# tuple
sebua$Htuple K (0. 1. 2. 3. ?. B. >. @. 8. =!
R 3ara me#e6i#isika# i3tio#ar+
sebua$Hi3tio#ar+ K VU#amaU:UDiro Sable#(U.
UproiU:Uilmu komputerU.
UemailU:U&irosable#(@lo3al$ostU.
U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU
W
R 3ara me#amba$ka# ata baru
pri#t S3ara me#amba$ka# ata baru : S
pri#t SM#S
pri#t sebua$Hlist
listHbaru K sebua$Hlist P XUPC 4i#uC OSU. U"la#ko#U. UI/OSU. UOpe#SUS;UY
pri#t listHbaru
pri#t SM#S
pri#t sebua$Htuple
tupleHbaru K sebua$Htuple P (100. 200. 300!
pri#t tupleHbaru
pri#t SM#S
pri#t sebua$Hi3tio#ar+
i3tio#ar+Hbaru K VUtelpU:U022'123?B>@8U. UalamatU:U"a#u#(. )abarUW
sebua$Hi3tio#ar+.upate(i3tio#ar+Hbaru!
pri#t sebua$Hi3tio#ar+
pri#t SM#M#S
Aoe iatas :ika ieksekusi aka# mu#3ul tampila# seperti berikut i#i :
?B
NN (ambar >.? $asil eksekusi strukatH?.p+ OO
+enghapus Isi List2 ,uple2 dan 0ictionary
8iak le#(kap rasa#+a bila alam sebua$ i#6ormasi aa +a#( tiak apat i$apus. 8erkaa#( aa
sebua$ ata +a#( tiak *#a butu$ka# a# i#(i# *#a $ila#(ka# ari kumpula# ata +a#( imiliki.
Eisal alam sebua$ list *#a i#(i# me#($apus sala$ satu eleme#. *tau i i3tio#ar+. *#a i#(i#
me#($ila#(ka# sala$ satu ke+ ari i3tio#ar+.tersebut. 2i p+t$o# se#iri pe#($apusa# sala$ satu
eleme# apat ilakuka# i list a# i3tio#ar+. Sea#(ka# tuple tiak me#uku#( pe#($apusa#
eleme#. )ika kita lakuka# pe#($apusa# paa sala$ satu eleme# i tuple. maka aka# mu#3ul pesa#
error : F8+pe;rror: UtupleU ob:e3t oes#Ut support item eletio#G. Paa list *#a ti#((al me#u#:uk
sala$ satu eleme##+a e#(a# sebua$ a#(ka ari 0 sampai pa#:a#( list tersebut ikura#(i satu
e#(a# iapit ta#a FXF a# FYG. Sea#(ka# paa i3tio#ar+ *#a tu#:uk sala$ satu ke+ +a#( aka#
i$apus ari i3tio#ar+. "erikut aala$ 3o#to$ pe#($apusa# sala$ satu eleme# paa list a#
i3tio#ar+.
isting 1 stru+dat29.py
R 3ara me#e6i#isika# list
sebua$Hlist K XU<ori# OSU.
?>
UUbu#tuU.
U1ree"S2U.
U0et"S2U.
UOpe#"S2U.
U"a3ktra3kU.
U1eoraU.
USla3k&areUY
R 3ara me#e6i#isika# tuple
sebua$Htuple K (0. 1. 2. 3. ?. B. >. @. 8. =!
R 3ara me#e6i#isika# i3tio#ar+
sebua$Hi3tio#ar+ K VU#amaU:UDiro Sable#(U.
UproiU:Uilmu komputerU.
UemailU:U&irosable#(@lo3al$ostU.
U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU
W
R 3ara elete sebua$ eleme# :
pri#t S3ara elete sebua$ eleme# : S
pri#t SM#S
pri#t sebua$Hlist
el sebua$HlistX0Y
pri#t sebua$Hlist
pri#t SM#S
pri#t sebua$Htuple
R tuple tiak me#uku#( proses pe#($apusa# eleme# :2.(3oba $ila#(ka# ta#a URU isampi#(#+a!
Rel sebua$HtupleX8Y
pri#t sebua$Htuple
pri#t SM#S
pri#t sebua$Hi3tio#ar+
el sebua$Hi3tio#ar+XU&ebsiteUY
pri#t sebua$Hi3tio#ar+
pri#t SM#M#S
Aoe iatas :ika ieksekusi aka# mu#3ul tampila# seperti berikut :
?@
NN (ambar >.B $asil eksekusi strukatHB.p+ OO
+enghapus List2 ,uple2 dan 0ictionary
Paa 3o#to$ sebelum#+a *#a $a#+a me#($apus sala$ satu eleme#. 4alu ba(aima#aka$ :ika i#(i#
me#($apus keseluru$a# struktur ata se$i#((a struktur ata tersebut ter$apus ari memor+
seluru$#+a b. 2i P+t$o# e#(a# me#((u#aka# peri#ta$ del paa sebua$ struktur ata maka struktur
ata tersebut aka# i$apus sepe#u$#+a ari memor+. Hal i#i berlaku :u(a ba(i ,ariabel a# ob:ek
+a#( ie6i#isika# ole$ pro(rammer. 2e#(a# $ila#(#+a ari memor+ maka struktur ata +a#( tela$
i$apus tiak apat i(u#aka# la(i ole$ pro(ram +a#( *#a ba#(u#.
ist 1 stru+dat2:.py
R 3ara me#e6i#isika# list
sebua$Hlist K XU<ori# OSU.
UUbu#tuU.
U1ree"S2U.
U0et"S2U.
UOpe#"S2U.
U"a3ktra3kU.
U1eoraU.
USla3k&areUY
R 3ara me#e6i#isika# tuple
?8
sebua$Htuple K (0. 1. 2. 3. ?. B. >. @. 8. =!
R 3ara me#e6i#isika# i3tio#ar+
sebua$Hi3tio#ar+ K VU#amaU:UDiro Sable#(U.
UproiU:Uilmu komputerU.
UemailU:U&irosable#(@lo3al$ostU.
U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU
W
R 3ara upate sebua$ eleme# :
pri#t S3ara elete sebua$ eleme# : S
pri#t SM#S
pri#t sebua$Hlist
el sebua$Hlist
Rpri#t sebua$Hlist
pri#t SM#S
pri#t sebua$Htuple
el sebua$Htuple
Rpri#t sebua$Htuple
pri#t SM#S
pri#t sebua$Hi3tio#ar+
el sebua$Hi3tio#ar+
Rpri#t sebua$Hi3tio#ar+
pri#t SM#M#S
Cobala$ $apus ta#a FRG paa baris peri#ta$ pri#t i ba&a$ peri#ta$ el. Cobala$ satu persatu a#
amatila$ apa +a#( ter:ai. )ika kita 3oba paa pri#t sebua$Hlist +a#( beraa iba&a$ el
sebua$Hlist. Eaka aka# mu#3ul pesa# error : F0ame;rror : #ame Usebua$HlistU is #ot e6i#eG
NN (ambar >.> $asil eksekusi strukatH>.p+ OO
?=
+enggunakan BuiltAin -unction pada List2 ,uple2 dan 0ictionary
*paka$ 6itur 6itur ma#ipulasi list. tuple. a# i3tio#ar+ $a#+a terbatas paa $apus. tamba$ a#
uba$ b. P+t$o# me#+eiaka# beberapa 6itur asar lai##+a +a#( apat i(u#aka# u#tuk proses
me#3ari #ilai maksimum a# mi#imum. me#($itu#( pa#:a#(. memba#i#(ka# ua bua$ struktur
ata +a#( se:e#is. ba$ka# me#(uba$ struktur ata ari list ke tuple atau sebalik#+a.
U#tuk me#3ari #ilai maksimum paa list. tuple. atau i3tio#ar+ i(u#aka# 6u#3tio# !ax34.
sea#(ka# u#tuk me#3ari #ilai mi#imum i(u#aka# 6u#3tio# !in34. U#tuk perba#i#(a# ua bua$
struktur ata se:e#is. misal list e#(a# list. i(u#aka#la$ 6u#3tio# c!p34. 1u#3tio# c!p34 i#i aka#
me#($asilka# ti(a #ilai +aitu '1 :ika list pertama kura#( ari list keua. 0 :ika keua list sama. a# 1
:ika list pertama lebi$ besar ari list keua. Aemuia# u#tuk me#3ari :umla$ eleme# +a#( beraa
paa struktur ata tersebut i(u#aka# 6u#3tio# len34. 2a# terapat :u(a u#tuk ko#,ersi tipe struktur
ata. 8api 6itur i#i $a#+a apat i(u#aka# paa list a# tuple. 2i3tio#ar+ tiak me#uku#( proses
ko#,ersi. )ai $a#+a pe#(uba$a# ari list ke tuple a# sebalik#+a. U#tuk pe#(uba$a# ari list ke
tuple i(u#aka# 6u#3tio# tuple34 sea#(ka# u#tuk pe#(uba$a# ari tuple ke list i(u#aka# 6u#3tio#
list34.
*(ar lebi$ pa$am 3obala$ seikit sour3e 3oe te#ta#( pe#((u#aa# built'i# 6u#3tio# +a#( i(u#aka#
u#tuk ma#ipulasi list. tuple. a# i3tio#ar+.
isting 1 stru+dat2;.py
R 3ara me#e6i#isika# list
sebua$Hlist K XU<ori# OSU.
UUbu#tuU.
U1ree"S2U.
U0et"S2U.
UOpe#"S2U.
U"a3ktra3kU.
U1eoraU.
USla3k&areUY
R 3ara me#e6i#isika# tuple
sebua$Htuple K (0. 1. 2. 3. ?. B. >. @. 8. =!
R 3ara me#e6i#isika# i3tio#ar+
sebua$Hi3tio#ar+ K VU#amaU:UDiro Sable#(U.
UproiU:Uilmu komputerU.
UemailU:U&irosable#(@lo3al$ostU.
U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU
W
B0
R me#amba$ka# eleme# baru
pri#t Sme#amba$ka# eleme# baru : M#S
pri#t sebua$Hlist
listHbaru K sebua$Hlist P XUPC 4i#uC OSU. U"la#ko#U. UI/OSU. UOpe#SUS;UY
pri#t listHbaru
pri#t SM#S
pri#t sebua$Htuple
tupleHbaru K sebua$Htuple
pri#t tupleHbaru
pri#t SM#S
pri#t sebua$Hi3tio#ar+
i3tio#ar+Hbaru K VUtelpU:U022'123?B>@8U. UalamatU:U"a#u#(. )abarUW
pri#t sebua$Hi3tio#ar+
pri#t SM#M#S
R memba#i#(ka# +a#( lama e#(a# +a#( baru
pri#t Smemba#i#(ka# +a#( lama e#(a# +a#( baru : M#S
pri#t Ssebua$Hlist ba#i#( listHbaru : S. 3mp(sebua$Hlist. listHbaru!
pri#t Ssebua$Htuple ba#i#( tupleHbaru : S. 3mp(sebua$Htuple. tupleHbaru!
pri#t Ssebua$Hi3tio#ar+ ba#i#( i3tio#ar+Hbaru : S. 3mp(sebua$Hi3tio#ar+. i3tio#ar+Hbaru!
pri#t SM#M#S
R me#(eta$ui pa#:a#( list. tuple. a# i3tio#ar+
pri#t Sme#(eta$ui pa#:a#( list. tuple. a# i3tio#ar+ : M#S
pri#t Spa#:a#( sebua$Hlist : S. le#(sebua$Hlist!
pri#t Spa#:a#( sebua$Htuple : S. le#(sebua$Htuple!
pri#t Spa#:a#( sebua$Hi3tio#ar+ : S. le#(sebua$Hi3tio#ar+!
pri#t SM#M#S
R me#(uba$ list. tuple. i3tio#ar+ me#:ai stri#(
pri#t Sme#(uba$ list. tuple. i3tio#ar+ me#:ai stri#( : M#S
pri#t str(sebua$Hlist!. U memiliki pa#:a#( karakter : U. le#(str(sebua$Hlist!!
pri#t str(sebua$Htuple!. U memiliki pa#:a#( karakter : U. le#(str(sebua$Htuple!!
pri#t str(sebua$Hi3tio#ar+!. U memiliki pa#:a#( karakter : U. le#(str(sebua$Hi3tio#ar+!!
R me#3ari #ilai maC a# mi#
pri#t Sme#3ari #ilai maC a# mi# : M#S
pri#t S3oba periksa sebua$Hlist :S
pri#t SmaC : S. maC(sebua$Hlist!
pri#t Smi# : S. mi#(sebua$Hlist!
pri#t SM#S
pri#t S3oba periksa sebua$Htuple :S
pri#t SmaC : S. maC(sebua$Htuple!
pri#t Smi# : S. mi#(sebua$Htuple!
pri#t SM#S
pri#t S3oba periksa sebua$Hi3tio#ar+ :S
B1
pri#t SmaC : S. maC(sebua$Hi3tio#ar+!
pri#t Smi# : S. mi#(sebua$Hi3tio#ar+!
pri#t SM#S
R me#(uba$ list ke tuple a# sebalik#+a
pri#t Sme#(uba$ list ke tuple : S
pri#t Ssemula : S. sebua$Hlist
pri#t Sme#:ai : S. tuple(sebua$Hlist!
pri#t SM#S
pri#t Sme#(uba$ tuple ke list : S
pri#t Ssemula : S. sebua$Htuple
pri#t Sme#:ai : S. list(sebua$Htuple!
2e#(a# aa#+a buit/in function tersebut peker:aa# *#a sua$ imua$ka# ole$ P+t$o# alam
mema#ipulasi struktur ata +a#( tela$ *#a e6i#isika# sebelum#+a. "erikut aala$ sala$ satu
3o#to$ $asil operasi e#(a# buit function ari koe iatas.
NN (ambar >.@ $asil eksekusi strukatH@.p+ OO
B2
B. +e!)uat -unction
Pengenalan -unction ,anpa .return/
Paa saat membuat pro(ram terkaa#( kita me#+ali# blok koe +a#( sama i baris berikut#+a.
misal u#tuk me#3etak sebua$ bioata kita sali# kembali kemuia# (a#ti #ilai #ilai#+a u#tuk
me#ampilka# bioata tersebut. *paka$ $arus me#+ali# blok koe i setiap ba(ia# koe +a#(
membutu$ka# koe tersebut bbb. Daktu ulu kulia$ *l(oritma a# Pemro(rama# I. ketika
mempela:ari pemro(rama# pertama kali#+a. baris koe +a#( sama ipakai berula#( ula#( u#tuk
me#(eluarka# $asil terte#tu. 8api :ai tiak e6isie#. kare#a ukura# 6ile pro(ram +a#( itulis 3ukup
besar. Ole$ kare#a itu $ampir i setiap ba$asa pemro(rama# terapat 6itur +a#( i#amaka#
function. 0ama lai##+a method. sub routine. atau 6u#(si. Function i#i ber(u#a u#tuk pe#((u#aa#
kembali blok koe +a#( aka# i(u#aka# i baris koe lai#. Sekali tulis ti#((al pa#((il.
Function i#i :elas bea e#(a# buit/in function +a#( aa i P+t$o#. *uit/in function se#iri aala$
function +a#( tela$ ibuatka# ole$ pe#(emba#( ba$asa pemro(rama# P+t$o#. Sea#(ka# function
ibuat ole$ pro(rammer +a#( me#((u#aka# ba$asa pemro(rama# P+t$o#. atau istila$ lai##+a user/
defined function.
2i P+t$o# u#tuk membuat function i(u#aka# +ey#ord de. Aemuia# iikuti #ama function +a#(
ii#(i#ka# lalu parameter +a#( ibutu$ka# e#(a# ia&ali ta#a F(F a# F!G.U#tuk membuka
function imulai e#(a# ta#a F:G. 8iak seperti i C. )a,a. atau PHP +a#( ia&ali e#(a# ta#a
FVF a# iak$iri FWG u#tuk membuka sebua$ function. 4alu tutup#+a b Seperti i:elaska# ia&al i
P+t$o# se#iri i(u#aka# i#e#tasi u#tuk me#e#tuka# apaka$ baris koe tersebut milik sebua$
function. i. atau pe#(ula#(a#. )ai :ika *#a i#(i# me#uliska# koe u#tuk function +a#( *#a
buat. Harus aa :arak satu i#e#tasi a(ar koe tersebut ia#((ap seba(ai koe ari function +a#(
*#a tulis. Aemuia# *#a apat me#amba$ka# +ey#ord return :ika function +a#( *#a tulis
i#(i# me#(embalika# #ilai keluara#.

"erikut aa 3o#to$ te#ta#( pembuata# function +a#( memiliki parameter a# tiak memiliki
parameter. Pe#((u#aa# return i(u#aka# paa 3o#to$ berikut#+a :
isting 1 fungsi21.py
e6 6u#(siHta#paHparameter(!:
6or i i# ra#(e(1. B!:
pri#t Sloopi#( ke ' S. i

e6 6u#(siHberparameter(batasHak$ir!:
6or i i# ra#(e(1. batasHak$ir!:
pri#t Sloopi#( ke ' S. i

B3
pri#t S 3o#to$ pe#((u#aa# 6u#(si ta#pa parameter : S
pri#t S$asil : S. 6u#(siHta#paHparameter(!
pri#t SM#M#S
pri#t S 3o#to$ pe#((u#aa# 6u#(si berparameter : S
pri#t S$asil : S. 6u#(siHberparameter(10!
Sebua$ function :ika ipa#((il la#(su#( #ilai keluara##+a tiak aka# i3etak. 8etapi :ika ipa#((il
melalui sebua$ function seperti print #ilai keluara##+a aka# itampilka#. Ae#apa #ilai#+a
F0o#eG b Aare#a i function +a#( tai itulis tiak isertaka# +ey#ord return. )ika sebua$ function
tiak iberika# return maka apat ibila#( function tersebut ia#((ap procedure. Sebua$ function
+a#( tiak memiliki #ilai keluara#.
NN (ambar @.1 $asil eksekusi 6u#(siH1.p+ OO
-unction yang +enggunakan .return/
"a(aima#a kalau itamba$ka# return b )ika itamba$ka# return2 function +a#( *#a tulis aka#
me#($asilka# #ilai keluara#. )ika ipa#((il la#(su#( maka pro(ram tiak aka# me#ampilka# #ilai
keluara# ari function tersebut. )ika function tersebut ipa#((il melalui function atau +ey#ord
misal#+a print2 maka #ilai keluara##+a aka# itampilka#. "erikut terapat function +a#(
me#($asilka# #ilai keluara# +a#( memiliki parameter a# tiak berparameter :
B?
isting 1 fungsi23.py
e6 6u#(siHta#paHparameter(!:
temp K 0
6or i i# ra#(e(1. B!:
temp K temp P i
retur# temp


e6 6u#(siHberparameter(batasHak$ir!:
temp K 0
6or i i# ra#(e(1. batasHak$ir!:
temp K temp P i
retur# temp

pri#t S 3o#to$ pe#((u#aa# 6u#(si ta#pa parameter : S
pri#t S$asil : S. 6u#(siHta#paHparameter(!
pri#t S$asil : S. 6u#(siHta#paHparameter(!
pri#t S$asil : S. 6u#(siHta#paHparameter(!
pri#t SM#M#S
pri#t S 3o#to$ pe#((u#aa# 6u#(si berparameter : S
pri#t S$asil : S. 6u#(siHberparameter(1B!
pri#t S$asil : S. 6u#(siHberparameter(20!
pri#t S$asil : S. 6u#(siHberparameter(2B!
*#a se#iri apat meli$at perbea##+a a#tara function +a#( berparameter e#(a# tiak
berparameter. Paa function +a#( tiak berparameter. Aetika ipa#((il berula#( ula#( #ilai
keluara##+a tetap sama. "erbea e#(a# function +a#( memiliki parameter. #ilai keluara#+a
berbea bea ketika ipa#((il. 8er(a#tu#( #ilai masuka# +a#( iberika#.
NN (ambar @.2 $asil eksekusi 6u#(siH2.p+ OO
BB
0eault %rgu!ent pada Python
Sekara#( *#a sua$ me#(e#al function +a#( berparameter a# tiak berparameter. Umum#+a saat
aka# memberika# #ilai paa sebua$ function. #ilai tersebut aka# iberika# saat function tersebut
ipa#((il. *paka$ saat memasukka# #ilai bole$ tiak iisi atau ile&at b 4alu apaka$ aka# aa
#ilai#+a b. 2i P+t$o# terapat sebua$ 6itur +a#( i#amaka# defaut argument saat me#ulis sebua$
function. Defaut argument se#iri aala$ sebua$ ar(ume# +a#( sua$ iisi #ilai terlebi$ a$ulu
:ika ar(ume# tersebut tiak iberika# saat mema#((il function. )ai sekalipu# ile&at #ilai ari
ar(ume#t tersebut aka# ipe#u$i e#(a# #ilai defaut #+a. "erikut iba&a$ i#i terapat 3o#to$
pema#((ila# function +a#( mele&atka# semua ar(ume# +a#( ibutu$ka# function. a# +a#( tiak
mele&atka# semua ar(ume# +a#( aka# ita#(a#i ole$ defaut argument :
isting 1 fungsi24.py
e6 3etakHbioata( #ama. kota. umurK18!:
pri#t S0ama : S. #ama7
pri#t SUmur : S. umur7
pri#t SAota : S. kota7
retur#7
R kalau parameter iisi semua
pri#t S8a#pa memakai e6ault ar(ume#t : S
3etakHbioata( #amaKSmikiS. umurKB0. kotaKSba#u#(S !
pri#t SM#S
R kalau parameter tiak iisi semua
pri#t SEemakai e6ault ar(ume#t : S
3etakHbioata(kotaKSba#u#(S. #amaKSmikiS!
Aoe iatas :ika ieksekusi aka# tampil seperti berikut :
B>
NN (ambar @.3 $asil eksekusi 6u#(siH3.p+ OO
(aria)leAlength %rgu!ent pada Python
Sekara#( kita aka# me#(e#al 6itur +a#( i#amaka# e#(a# !ariabe/ength argument. 1itur i#i
i(u#aka# ketika i#(i# membuat sebua$ function +a#( memiliki ar(ume# +a#( i#amis. *r(ume#
i#i apat isebut seba(ai ar(ume# +a#( tiak utama. Eisal alam sebua$ 6u#(si ibutu$ka# ti(a
ar(ume#. maka ar(ume# ke ? sampai ke # ar(ume#. tiak aka# itampu#( ole$ ar(ume# utama.
8api itampu#( ole$ ar(ume# terak$ir +a#( me#ampu#( seluru$ ar(ume# +a#( iberika# setela$
ar(ume# utama. 2i P+t$o# u#tuk me#a#aka# ba$&a ar(ume# tersebut !ariabe/ength argument.
iberika# ta#a FQG paa ar(ume# terak$ir. Variabe/ength argument i#i $arus isimpa# i ak$ir
setela$ ar(ume# biasa a# defaut argument. *pabila isimpa# i uruta# a&al. maka P+t$o# aka#
me#(eluarka# error : .Syntax'rror5 in&alid syntax/. Seba(ai 3o#to$ *#a apat per$atika# koe
berikut i#i :
isting 1 fungsi28.py
e6 3etakHperole$a#H#ilai( #ama. t&itter. Qs3ores!:
pri#t S0ama : S. #ama7
pri#t S8&itter : S. t&itter7
pri#t SS3ore +a#( iperole$ : S
i K 1
6or s3ore i# s3ores:
pri#t S#ilai ke ' T : TS T (i. s3ore!
iK i P 1

retur#7
R kalau parameter iisi semua
pri#t S2e#(a# aa#+a ,ariable'le#(t$ ,ariabel sisa aka# me#:ai tuple : S
3etakHperole$a#H#ilai(SSil,+S. S@si,l+si,S. =0. 80. @0. 80. =0!
B@
Seperti +a#( *#a li$at paa 3o#to$ iatas. ar(ume# utama aala$ #ama a# t&itter. *pabila kita
memasukka# ar(ume# setela$#+a. maka ar(ume# tersebut aka# ikumpulka# alam satu &aa$
+aitu Qs3ores. "erapapu# kita masukka# ar(ume#. aka# itampu#( me#:ai sebua$ list +a#( berisi
ar(ume# ar(ume# +a#( imasukka# setela$ #ama a# t&itter.
NN (ambar @.? $asil eksekusi 6u#(siH?.p+ OO
Key#ord %rgu!ent pada -unction
2alam pe#((u#aa# function *#a mesti mele&atka# ar(ume# sesuai uruta# +a#( itulis paa
parameter +a#( ibutu$ka# ole$ function +a#( *#a tulis. *paka$ mu#(ki# :ika itulis ta#pa uruta#
ar(ume# sua$ baku paa function tersebut. 2alam function terapat sebua$ 6itur +a#( i#amaka#
+ey#ord argument. 7ey#ord argument i#i apat mele&atka# ar(ume# ta#pa $arus sesuai uruta#.
7ey#ord argument iberika# saat mema#((il sebua$ function e#(a# me#(ambil #ama ar(ume#
+a#( terapat i function isambu#( e#(a# ta#a FKG a# #ilai ari ar(ume# tersebut. )ika kita
memberika# ar(ume# +a#( tiak sesuai uruta# ta#pa me#((u#aka# +ey#ord argument. maka
ar(ume# +a#( iterima function tersebut tiak aka# sesuai.
isting 1 fungsi29.py
e6 3etakHbioata( #ama. umur. kota!:
pri#t S0ama : S. #ama7
pri#t SUmur : S. umur7
pri#t SAota : S. kota7
retur#7
R kalau pakai ke+&or ar(ume#t : mau uruta##+a (ima#apu# i#put aka# sesuai
pri#t S8a#pa memakai ke+&or ar(ume#t : S
B8
3etakHbioata( kotaKSba#u#(S. #amaKSmikiS. umurKB0 !
pri#t SM#S
R kalau tiak memakai ke+&or ar(ume#t : mau uruta##+a (ima#apu# i#put tiak aka# sesuai
pri#t SEemakai ke+&or ar(ume#t : S
3etakHbioata( Sba#u#(S. SmikiS. B0!
pri#t SM#S
R kalau tiak memakai ke+&or ar(ume#t : tapi uruta##+a sesuai maka i#put aka# sesuai
pri#t SEemakai ke+&or ar(ume#t : tapi uruta##+a sesuai S
3etakHbioata( SmikiS. B0. Sba#u#(S!
Paa 3o#to$ iatas. *#a apat meli$at perbeaa# a#tara function +a#( mele&atka# +ey#ord
argument e#(a# +a#( tiak me#((u#aka# +ey#ord argument. Co#to$ +a#( tiak me#((u#aka#
+ey#ord argument tiak aka# me#erima masuka# sesuai +a#( ibutu$ka# function ketika uruta#
ar(ume##+a ia3ak.
NN (ambar @.B $asil eksekusi 6u#(siHB.p+ OO
Key#ordAlength %rgu!ent pada -unction
B=
7ey#ord/ength argument mempu#+ai 3ara pe#((u#aa# +a#( sama $a#+a sa:a. +ey#ord/ength i#i
me#ampu#( +ey#ord argument +a#( berlebi$ ketika iberika# kepaa function +a#( ipa#((il.
7ey#ord argument +a#( berlebi$ aka# iterima alam be#tuk dictionary.
isting1 fungsi2:.py
e6 3etakHperole$a#H#ilai( #ama. t&itter. QQataHtamba$a#!:
pri#t S0ama : S. #ama7
pri#t S8&itter : S. t&itter7
pri#t SM#S
pri#t S2ata 4ai##+a : S
i K 1
6or ata i# ataHtamba$a#:
pri#t STs : TsS T (ata. ataHtamba$a#XataY!


retur#7
R kalau parameter iisi semua
pri#t S2e#(a# aa#+a ke+&or ar(ume#t. ar(ume# tersisa aka# me#:ai i3tio#ar+ : S
3etakHperole$a#H#ilai(SSil,+S.S@si,l+si,S.emailKSsil,+sil,+@(mail.3omS.
6a3ebookKS&&&.6a3ebook.3om%sil,+silS. telpKS0838'123?'B>@8S!
Paa 3o#to$ iatas. +ey#ord argument +a#( berlebi$ itampu#( kealam argument ataHtamba$a#
a# ar(ume# berlebi$ tersebut isimpa# alam dictionary.
NN (ambar @.> $asil eksekusi 6u#(siH>.p+ OO
>0
Pass )y ;eerence dan Pass )y (alue pada Python
"erikut#+a terapat masala$ pass by !aue atau pass by reference. 2i P+t$o# semua #ilai aka#
ile&atka# se3ara by reference. *rti#+a :ika kita me#(uba$ ar(ume# i alam 6u#(si maka #ilai
ar(ume# +a#( ire6ere#si tersebut aka# ikut beruba$ :u(a. Eisalka# iba&a$ 3o#to$ berikut
terapat sebua$ list +a#( aka# i(a#ti e#(a# #ilai baru. a# aa :u(a +a#( itamba$ka# #ilai baru.
isting 1 fungsi2;.py
e6 sebua$H6u#(si(sebua$Hlist!:
sebua$Hlist K X1. 2. 3. ?. BY
pri#t sebua$Hlist

e6 sebua$H6u#(siHlai##+a(sebua$Hlist!:
sebua$Hlist.appe#(X10. 20. 30Y!
pri#t sebua$Hlist
i#iHlist K X10. 20. 30Y
sebua$Hlist K X100. 200. 300Y
pri#t Sapaka$ i#iHlist beruba$ b S
pri#t i#iHlist
sebua$H6u#(si(i#iHlist!
pri#t i#iHlist
pri#t i#iHlist
sebua$H6u#(siHlai##+a(i#iHlist!
pri#t i#iHlist
pri#t Sapaka$ sebua$Hlist beruba$ b S
pri#t sebua$Hlist
sebua$H6u#(si(sebua$Hlist!
pri#t sebua$Hlist
pri#t sebua$Hlist
sebua$H6u#(siHlai##+a(sebua$Hlist!
pri#t sebua$Hlist
Paa koe iatas. *#a aka# meli$at sebua$ perbeaa# +a#( 3ukup pe#ti#(. Aetika sebua$ list
i(a#ti #ilai#+a maka list +a#( aa i luar function tiak aka# terpe#(aru$. 8api ketika kita
me#amba$ka# ata baru e#(a# me#((u#aka# method paa list tersebut. 0ilai iluar ikut beruba$..
Hal i#i ter:ai kare#a paa function sebua$H6u#(siHlai##+a(!. list sebua$Hlist masi$ me#u#:uk atau
meru:uk ke sebua$Hlist +a#( beraa iluar. *tau alam kata lai# masi$ me#u#:uk ke FaressG +a#(
sama i memori utama.
>1
NN (ambar @.@ $asil eksekusi 6u#(siH@.p+ OO
(aria)le Scope pada Python
Variabe scope aala$ sebua$ ko#isi ima#a ,ariabel iakses se3ara lokal paa blok koe terte#tu
atau bersi6at u#i,ersal +a#( me#+ebabka# ,ariabel tersebut apat iakses ari blok koe ma#apu#.
Eisal aa sebua$ ,ariabel i alam function. 5ariabel tersebut bersi6at lokal a# $a#+a apat
iakses ialam function tersebut. 4alu ba(aima#aka$ kita me#:aika# sebua$ ,ariabel a(ar bersi6at
(lobal b. 2i P+t$o# terapat sebua$ +ey#ord +a#( ber#ama glo)al. 7ey#ord i#i i(u#aka# u#tuk
meru:uk sebua$ ,ariabel i luar blok koe. misal#+a sebua$ ,ariabel i alam function. e#(a#
#ama +a#( sama.
isting 1 fungsi2<.py
e6 sebua$H6u#(si(!:
a#(ka K 10
pri#t Si alam sebua$H6u#(si. a#(ka ber#ilai : S. a#(ka
e6 sebua$H6u#(siHlai##+a(!:
(lobal a#(ka
a#(ka K 11?
pri#t Si alam sebua$H6u#(si. a#(ka ber#ilai : S. a#(ka

a#(ka K >>>>
pri#t Ssebelum ipa#((il sebua$H6u#(si : S. a#(ka
sebua$H6u#(si(!
pri#t Ssesua$ ipa#((il sebua$H6u#(si : S. a#(ka
pri#t SM#M#S
>2
pri#t Ssebelum ipa#((il sebua$H6u#(siHlai##+a : S. a#(ka
sebua$H6u#(siHlai##+a(!
pri#t Ssesua$ ipa#((il sebua$H6u#(siHlai##+a : S. a#(ka
Paa koe iatas ,ariabel +a#( ber#ama a#(ka ibubu$i +ey#ord glo)al paa function
sebua$H6u#(siHlai##+a(!. Hasil#+a saat a#(ka iuba$ #ilai#+a. Eaka #ilai i ,ariabel a#(ka +a#(
beraa i luar blok function sebua$H6u#(siHlai##+a(! ikut beruba$.
NN (ambar $asil eksekusi 6u#(siH8.p+ OO
>3
C. +engenal 'xception
Denis 8 Denis 'xception
5)ception aala$ sebua$ 3ara i P+t$o# u#tuk me#:ebak error. a# me#a#(a#(i error tak teru(a
paa pro(ram P+t$o# +a#( *#a tulis. 5)ception aka# tetap me#:ala#ka# baris koe pro(ram
iba&a$ ba(ia# koe pro(ram +a#( error. Hal i#i mempermua$ proses debugging. 4alu apa
bea#+a :ika kita me#((u#aka# ko#isio#al biasa +a#( me#((u#aka# i u#tuk me#3e(a$ error b
Pertama *#a $arus me#3ari 3ara u#tuk me#a#(kap #ilai #ilai +a#( error. misal ketika membuka
fie *#a $arus me#((u#aka# method ? method +a#( aa paa fie u#tuk me#(eta$ui error atau
tiak. Aeua e#(a# me#((u#aka# ko#isio#al i biasa. pro(ram +a#( *#a tulis aka# la#(su#(
i$e#tika# ketika error ter:ai. Aeti(a pe#(ambila# error aka# otomatis ita#(a#i ole$ P+t$o# a#
error tersebut aka# ita#(a#i sesuai e#(a# pe#a#(a#a# +a#( *#a lakuka#. a# baris koe
pro(ram iba&a$#+a aka# tetap ieksekusi.
P+t$o# se#iri sua$ me#+eiaka# beberapa standard error +a#( apat i(u#aka# ole$
programmer alam me#:a(a pe#(emba#(a# aplikasi#+a ari error +a#( tak teru(a. *#a se#iri
apat membuat error me#urut e6i#isi *#a. Hal tersebut aka# iulas i ba(ia# ak$ir bab i#i.
"erikut aala$ beberapa standard error +a#(t terapat i P+t$o# :
0o 0ama 5)ception Aetera#(a#
1 ;C3eptio# Ee#a#(a#i semua e)ception
2
StopIteratio# 5)ception i#i mu#3ul ketika method #eCt(! tiak
me#u#:uk ke ob:ek apapu# saat iterasi
3 S+stem;Cit 5)ception i#i mu#3ul ketika s+s.eCit(! ipa#((il
?
Sta#ar;rror 5)ception u#tuk me#a#(a#i semua buit/in
e)ception ke3uali StopIteratio# a# S+stem;Cit
B
*rit$meti3;rror 5)ception u#tuk me#a#(a#i error saat per$itu#(a#
a#(ka
>
O,er6lo&;rror 5)ception i#i mu#3ul ketika per$itu#(a# a#(ka
melebi$i batas maksimum ari tipe a#(ka +a#(
i$itu#(
@
1loati#(Poi#t;rror 5)ception i#i mu#3ul ketika terapat ke(a(ala#
paa per$itu#(a# a#(ka bertipe foat
8
<ero2i,isio#;rror 5)ception i#i mu#3ul :ika aa pemba(ia# atau
moulus ole$ 0 ter$aap a#(ka tipe apapu#
10
*ssertio#;rror 5)ception i#i mu#3ul ketika ter:ai ke(a(ala# paa
saat peri#ta$ assert i:ala#ka#
11
*ttribute;rror 5)ception i#i mu#3ul ketika (a(al me#u#:uk atribut
ari suatu ob:ek
12 ;O1;rror 5)ception i#i mu#3ul ketika tiak aa i#put saat
>?
me#((u#aka# function ra&Hi#put(! atau i#put a#
tela$ me#3apai ba(ia# ak$ir 6ile saat pemba3aa#
6ile.
13
Import;rror 5)ception i#i mu#3ul ketika (a(al saat
me#((u#aka# i!port
1?
Ae+boarI#terrupt 5)ception i#i mu#3ul ketika user me#('interrupt
eksekusi pro(ram. biasa#+a ketika me#eka#
kombi#asi ctrl E c
1B
4ookup;rror 5)ception mu#3ul ketika (a(al paa saat proses oo+
up
1>
I#eC;rror 5)ception i#i mu#3ul ketika tiak aa i#eks +a#(
itu:u paa struktur ata seperti list atau tuple
1@
Ae+;rror 5)ception i#i mu#3ul ketika tiak aa +ey +a#(
itu:u paa dictionary
18
0ame;rror 5)ception i#i mu#3ul ketika ,ariabel tiak
itemuka# paa li#(kup lokal i suatu 6u#3tio# a#
ko#isio#al atau paa li#(kup (lobal
1=
U#bou#4o3al;rror 5)ception i#i mu#3ul ketika me#3oba me#(akses
,ariabel lokal i function atau method tapi belum
aa #ilai#+a
20
;#,iro#me#t;rror 5)ception i# mu#3ul ketika ter:ai ke(a(ala# iluar
li#(kup P+t$o#
21
IO;rror 5)ception i# mu#3ul ketika proses input/output
(a(al. misal saat me#((u#aka# print atau saat
membuka fie
22
OS;rror 5)ception i#i mu#3ul ketika ter:ai ke(a(ala# paa
sistem operasi +a#( i(u#aka#
23
S+#taC;rror 5)ception i#i mu#3ul ketika ter:ai kesala$a# paa
pe#((u#aa# si#taks P+t$o#
2?
I#e#tatio#;rror 5)ception i#i mu#3ul ketika i#e#tasi paa blok
koe tiak sesuai pe#((u#aa##+a.
2B
S+stem;rror 5)ception i#i mu#3ul ketika terapat masala$
i#ter#al paa interpreter. saat error i#i mu#3ul
i#terpreter tiak aka# keluar
2>
8+pe;rror 5)ception i#i mu#3ul :ika aa kesala$a# tipe ata
saat proses per$itu#(a#. misal $uru6 iba(i a#(ka
2@
5alue;rror 5)ception i#i mu#3ul ketika ar(ume# +a#( tiak
sesuai iterima ole$ buitin function
28
9u#time;rror 5)ception i#i mu#3ul ketika ter:ai kesala$a# +a#(
tiak masuk kate(ori ma#apu#
2=
0otImpleme#te;ror 5)ception i#i mu#3ul ketika abstract method ari
suatu cass tiak iimpleme#tasika# i cass +a#(
me&arisi#+a.
>B
*(ar lebi$ pa$am iba&a$ i#i aa beberapa 3o#to$ koe +a#( pe#((u#aa# e)ception/#+a sa#(at
seri#( i(u#aka#. Seba(ai 3o#to$ pertama berikut terapat koe +a#( berisi pemba(ia# ole$ a#(ka
#ol.
isting 1 e)ception21.py
sebua$Ha#(ka K 2=
tr+:
pri#t sebua$Ha#(ka % 0
eC3ept:
pri#t Sproses per$itu#(a# (a(al S
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
tr+:
pri#t sebua$Ha#(ka % 0
eC3ept <ero2i,isio#;rror. e:
pri#t Sproses per$itu#(a# (a(al kare#a : S. e
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
pri#t sebua$Ha#(ka % 0
R :ika tiak memakai eC3eptio# maka proses berikut#+a tiak aka# i:ala#ka#
pri#t Sapaka$ proses 3etak i#i masi$ apat i:ala#ka# bbb S
2i alam tr+ terapat koe +a#( kemu#(ki#a# aka# memu#3ulka# eC3eptio#. Sea#(ka# i alam
eC3ept aala$ koe +a#( aka# ieksekusi :ika eC3eptio# tersebut mu#3ul. Paa tr+'eC3ept +a#(
pertama. semua error aka# ita#(a#i a# *#a tiak aka# me#(eta$ui :e#is eC3eptio# apa +a#(
+a#( ita#(a#i. Paa tr+'eC3ept +a#( keua. *#a mempreiksi aka# me#a#(a#i error :ika ter:ai
pemba(ia# ole$ #ol. Ea#aka$ +a#( lebi$ baik b Pastika# *#a sua$ memiliki perkiraa# apa sa:a
error +a#( aka# ter:ai se$i#((a saat ebu((i#( #a#ti aka# mempermua$ *#a u#tuk
memperbaiki koe pro(ram *#a. Paa blok koe tr+'eC3ept sekalipu# error koe iba&a$#+a aka#
tetap ieksekusi. Paa proses per$itu#(a# i ba(ia# ak$ir tiak ita#(a#i ole$ tr+'eC3ept se$i#((a
koe iba&a$#+a tiak ieksekusi. "erikut $asil +a#( iberika# :ika koe ieksekusi :
>>
NN (ambar 8.1 $asil eksekusi eC3eptio#H1.p+ OO
Co#to$ lai# +a#( umum ipakai aala$ I#eC;rror a# Ae+;rror. Aeua error i#i umum ipakai
saat operasi list. tuple. a# dictionary. "erikut terapat 3o#to$ me#u#:uk i#eks a# +ey +a#( tiak
terapat paa list. tuple. a# dictionary +a#( ie6i#isika# alam koe iba&a$ i#i.
isting 1 e)ception23.py
sebua$Hlist K X1. 2. 3. ?. BY
sebua$Htuple K (1. 2. 3. ?. B!
sebua$Hi3tio#ar+ K VU#amaU:UEa#(ara:aU. UemailU:Uma#(ara:a@+a$oo.3omUW
tr+:
pri#t sebua$HlistX10Y
eC3ept I#eC;rror. e:
pri#t Sproses (a(al kare#a : S. e
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
tr+:
pri#t sebua$HtupleX10Y
eC3ept I#eC;rror. e:
pri#t Sproses (a(al kare#a : S. e
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
tr+:
pri#t sebua$Hi3tio#ar+XU&ebsiteUY
eC3ept Ae+;rror. e:
pri#t Sproses (a(al kare#a : S. e
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
>@
Paa 3o#to$ iatas Fsebua$HlistG a# Fsebua$HtupleG ita#(a#i ole$ try/e)cept +a#( me#a#(a#i
e)ception I#eC;rror. Paa masi#( masi#( blok. kita i#(i# me#3oba i#eks +a#( tiak aa paa
list a# tuple tersebut. Sea#(ka# paa blok try/e)cept u#tuk dictionary. kita i#(i# me#3oba
me#u#:uk +ey F&ebsiteG tapi kare#a +ey tersebut tiak aa. maka aka# mu#3ul eC3eptio# Ae+;rror.
NN (ambar 8.2 $asil eksekusi eC3eptio#H2.p+ OO
"erikut#+a 3o#to$ e)ception +a#( tak kala$ populer lai##+a aala$ *ttribute;rror. 5)ception i#i
mu#3ul ketika sebua$ cass tiak memiliki atribut (,ariabel! +a#( iakses ole$ programmer. Hal i#i
sa#(at pe#ti#( u#tuk iper$atika# ketika mera#3a#( sebua$ aplikasi berbasis ob:ek. *#a $arus
memeriksa apaka$ atribut +a#( *#a akses paa sebua$ kelas aa paa saat pera#3a#(a# atau tiak.
)ika tiak +aki# (u#aka#la$ try/e)cept u#tuk me#:ebak *ttribute;rror tersebut.
isting 1 e)ception24.py
3lass Perse(iPa#:a#(:
pa#:a#( K 0
lebar K 0
e6 HHi#itHH(sel6. p. l!:
sel6.pa#:a#( K p
sel6.lebar K l


prs(Hp:( K Perse(iPa#:a#((10. B!
tr+:
pri#t Spa#:a#( : S. prs(Hp:(.pa#:a#(
pri#t Slebar : S. prs(Hp:(.lebar
pri#t Sti#((i :S. prs(Hp:(.ti#((i
eC3ept *ttribute;rror. e:
pri#t Sproses pema#((ila# atribut (a(al kare#a ''O S. e
>8
pri#t Sproses 3etak i#i masi$ apat i:ala#ka#S
Paa 3o#to$ iatas. kita i#(i# me#3oba me#(akses atribut ti#((i paa ob:ek prs(Hp:(. Sebelum#+a
ta$apa# +a#( ilalui aala$ proses i#sta#siasi. ima#a kita mema#((il sebua$ tempate ob:ek +a#(
aka# ibe#tuk kealam sebua$ ,ariabel. Aemuia# i ba(ia# try/e)cept tersebut kita 3oba akses
atribut ti#((i. Aare#a atribut tersebut tiak aa i kelas perse(i pa#:a#(. maka e)ception
*ttribute;rror aka# mu#3ul.
NN (ambar 8.3 $asil eksekusi eC3eptio#H3.p+ OO
Co#to$ +a#( terak$ir ari sekia# ba#+ak e)ception +a#( terapat i P+t$o# aala$ IO;rror.
5)ception i#i biasa ter:ai ketika proses input ata. saat me#3etak ata. atau saat operasi fie. Paa
3o#to$ berikut kita aka# membuka sebua$ fie. tapi fie tersebut tiak aa. Se3ara defaut :ika kita
membuka fie ta#pa me#+ertaka# moe pemba3aa#. maka moe tersebut aala$ moe UrU +a#(
arti#+a read atau ba3a.
isting 1 e)ception28.py
tr+ :
6 K ope#(U#ilai.tCtU!
eC3ept IO;rror. e:
pri#t SProses pembukaa# 6ile (a(al kare#a : S. e
pri#t Sproses 3etak paa baris i#i masi$ apat i:ala#ka#S
Paa 3o#to$ iatas kita i#(i# fie #ilai.tCt. tapi kare#a fie tersebut belum per#a$ itulis sebelum#+a
maka e)ception aka# mu#3ul +aitu IO;rror. Selai# i(u#aka# u#tuk fie. IO;rror apat ter:ai :u(a
saat pemba3aa# buit/in storage milik P+t$o# seperti saat pemba3aa# pi3kle. s$el,e. a# mars$al.
>=
NN (ambar 8.? $asil eksekusi eC3eptio#H?.p+ OO
+enyusun +ultiple 'xcept
*paka$ kita apat me#a#(kap e)ception alam satu blok try/e)cept b. 2i P+t$o# se#iri terapat
6itur mutipe e)cept. +aitu kita apat me#a#(kap e)ception e#(a# baris except +a#( berbea. Hal
i#i ilakuka# :ika kita i#(i# memberika# perlakua# berbea kepaa setiap e)ception +a#( ita#(a#i.
4ebi$ lem(kap#+a pa#tau koe iba&a$ i#i.
isting 1 e)ception29.py
tr+:

a#(ka1 K i#t(ra&Hi#put(Umasukka# a#(ka ke'1 : U!!
a#(ka2 K i#t(ra&Hi#put(Umasukka# a#(ka ke'2 : U!!
pri#t U$asil per$itu#(a# : U. a#(ka1 % a#(ka2

eC3ept <ero2i,isio#;rror. e:
pri#t Sproses pemba(ia# (a(al kare#a : S. e
eC3ept 5alue;rror. e:
pri#t Sproses per$itu#(a# (a(al kare#a : S. e
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
Paa koe iatas kita me#3oba me#:ebak ua bua$ e)ception e#(a# ua baris e)cept berbea. Hal
tersebut ilakuka# a(ar perlakua# paa pe#a#(a#a# setiap e)ception memiliki pe#a#(a#a# +a#(
berbea. Eisal paa baris except pemba(ia# #ol aa i#6ormasi Fproses pemba(ia# (a(al kare#a : F .
sea#(ka# i baris except #ilai error terapat i#6ormasi Fproses per$itu#(a# (a(al kare#a : F. )ai
e#(a# me#((u#aka# baris except +a#( berbea *#a apat me#a#(a#i error +a#( berbea sesuai
kebutu$a# *#a.
@0
NN (ambar 8.B $asil eksekusi eC3eptio#HB.p+ OO
+enggunakan +ultiple 'xception
"erbea seikit paa 3o#to$ sebelum#+a. :ika paa setiap e)ception ita#(a#i ole$ setiap baris
except. Eaka paa kaia$ mutipe e)ception i satu except me#a#(a#i beberapa e)ception.
"ea#+a. semua e)ception +a#( ita#(a#i baris except tersebut aka# me#apat pe#a#(a#a# +a#(
sama.
isting 1 e)ception2:.py
tr+:

a#(ka1 K 6loat(ra&Hi#put(Umasukka# a#(ka ke'1 : U!!
a#(ka2 K 6loat(ra&Hi#put(Umasukka# a#(ka ke'2 : U!!
pri#t U$asil per$itu#(a# : U. a#(ka1 % a#(ka2

eC3ept (<ero2i,isio#;rror. 5alue;rror. 8+pe;rror!. e:
pri#t Sproses per$itu#(a# (a(al kare#a : S. e
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
Aoe iatas :ika ieksekusi aka# mu#3ul tampila# seperti berikut :
@1
NN (ambar 8.> $asil eksekusi eC3eptio#H>.p+ OO
,ryA'xcept Bersarang
Eirip seperti ko#isio#al atau perula#(a# +a#( apat itamba$ka# blok koe ko#isio#al atau
perula#(a# ialam#+a. (ry/e)cept pu# mempu#+ai kaia$ +a#( sama ima#a try/e)cept apat
isimpa# ialam try/e)cept +a#( lai##+a. Prioritas#+a aala$ ta#(a#i +a#( luar terlebi$ a$ulu.
)ika ter:ai i try/e)cept terluar maka blok koe ialam#+a +a#( terapat try/e)cept tiak aka#
ieksekusi. )ika i blok luar tiak terapat error. Eaka pe#a#(a#a# e)ception i try/e)cept ba(ia#
alam aka# ilakuka#.
isting 1 e)ception2;.py
tr+:

a#(ka1 K 6loat(ra&Hi#put(Umasukka# a#(ka ke'1 : U!!
a#(ka2 K 6loat(ra&Hi#put(Umasukka# a#(ka ke'2 : U!!
tr+ :
pri#t U$asil per$itu#(a# : U. a#(ka1 % a#(ka2
eC3ept <ero2i,isio#;rror. e:
pri#t Sproses per$itu#(a# (a(al kare#a : S. e
eC3ept 5alue;rror. e:
pri#t Sproses i#put (a(al kare#a : S. e
pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
)ika paa 3o#to$ eC3eptio#HB.p+ baris except <ero2i,isio#;rror isimpa# i ti#(kat pertama.
sekara#( baris tersebut isara#(ka# i try/e)cept +a#( utama. 2e#(a# emikia# *#a apat
me#a#(a#i e)ception ari alam se3ara la#(su#(.
@2
NN (ambar 8.@ $asil eksekusi eC3eptio#H@.p+ OO
+e!)uat 'xception Sendiri
4alu apaka$ kita terbatas paa pe#a#(a#a# standard e)ception P+t$o# sa:a b. *#a apat membuat
e)ception *#a se#iri e#(a# membuat sebua$ kelas +a#( ituru#ka# ari kelas ;C3eptio#.
2e#(a# 3ara tersebut. *#a apat membuat e)ception *#a sesuai kebutu$a# paa kasus +a#( aka#
*#a ta#(a#i. Eisal kita i#(i# membuat sebua$ e)ception :ika a#(ka +a#( imasukka# aala$
a#(ka #e(ati6. Pertama kita buat ulu class #+a e#(a# #ama +a#( ii#(ika#. turu#ka# ari kelas
;C3eptio#. a# te#tuka# pe#a#(a#a# error paa method ? method i kelas tersebut.
isting 1 e)ception2<.py
3lass 0e(ati,e5alue;rror(;C3eptio#!:
e6 HHi#itHH(sel6. ,alue!:
sel6.,alue K ,alue

e6 HHstrHH(sel6!:
s K S8iak me#erima a#(ka kura#( ari 0 S P str(sel6.,alue!
retur# s

e6 3ek*#(ka(a#(ka!:
i6 a#(ka N 0:
raise 0e(ati,e5alue;rror(a#(ka!
tr+:
sebua$Ha#(ka K i#t(ra&Hi#put(Smasukka# sebua$ a#(ka : S!!
3ek*#(ka(sebua$Ha#(ka!
eC3ept (0e(ati,e5alue;rror. 8+pe;rror!. e:
@3
pri#t Sproses (a(al kare#a : S. e
U#tuk mema#((il e)ception/#+a kita memerluka# +ey#ord raise ketika e)ception tersebut
imu#3ulka# maka e)ception aka# ita#(a#i except a# me#(eluarka# pesa# error/#+a. Pesa#
tersebut berasal ari function HHstrHH(! +a#( sebelum#+a tela$ kita e6i#isika# paa kelas
0e(ati,e5alue;rror.
NN (ambar 8.8 $asil eksekusi eC3eptio#H8.p+ OO
+enggunakan .inally/ pada ,ryA'xcept
2a# ak$ir#+a sekara#( kita memba$as inally. Ae+&or i#i i(u#aka# u#tuk me#e#tuka#
pe#a#(a#a# apa +a#( $arus ilakuka# baik ketika e)ception mu#3ul atau tiak. Eisal saat
me#(ambil ata ari database. kita tiak aka# ta$u aa ke(a(ala# apa +a#( aka# ter:ai. *(ar
pro(ram kita tetap ama# a# ata tiak rusak. Eaka baik ter:ai ke(a(ala# atau tiak ko#eksi ke
database $arus itutup. Hal tersebut :u(a bisa ter:ai saat pemba3aa# fie. U#tuk me#3e(a$
kerusaka# fie. baik aka# ter:ai error atau tiak. fie $arus itutup. 2i blok inally i#i pe#a#(a#a#
+a#( ter:ai ketika e)ception mu#3ul atau tiak isimpa#.
isting 1 e)ception2=.py
tr+:

a#(ka1 K 6loat(ra&Hi#put(Umasukka# a#(ka ke'1 : U!!
a#(ka2 K 6loat(ra&Hi#put(Umasukka# a#(ka ke'2 : U!!
tr+ :
pri#t U$asil per$itu#(a# : U. a#(ka1 % a#(ka2
eC3ept <ero2i,isio#;rror. e:
pri#t Sproses per$itu#(a# (a(al kare#a : S. e
eC3ept 5alue;rror. e:
pri#t Sproses i#put (a(al kare#a : S. e
6i#all+:
@?
pri#t S3oba per$atika# la(i #ilai +a#( a#a masukka# S


pri#t Sproses 3etak i#i masi$ apat i:ala#ka# S
Aoe iatas :ika ieksekusi aka# mu#3ul tampila# seperti berikut :
NN (ambar 8.= $asil eksekusi eC3eptio#H=.p+ OO
?. +e!)uat -ile
Pengenalan -ile
"iasa#+a :ika kita tiak me#((u#aka# fie. $asil pemrosesa# ata $a#+a aka# isimpa# i main
memory. Setela$ pro(ram i$e#tika# atau tiba tiba komputer *#a mati. semua ata aka# $ila#(.
4alu ba(aima#a :ika i#(i# me#((u#aka# kembali ata +a#( sua$ iproses sebelum#+a b. U#tuk
me#+impa# ata a(ar bisa iproses i kesempata# sela#:ut#+a. misal komputer imatika# kemuia#
i#+alaka# la(i $ari esok#+a. Aita butu$ sebua$ pe#+impa#a# +a#( bersi6at resie#t a# isimpa#
i secondary storage seperti harddis+. P+t$o# se#iri me#+eiaka# beberapa meia pe#+impa#a#
+a#( bisa i(u#aka# ole$ programmer P+t$o#. aa fie. shel&e. !arshal. pickle. a# sFlite7.
Paa bab i#i kita aka# ba$as me#(e#ai fie berupat tCt. Fie i P+t$o# bisa berupa tCt. 3s,. atau :e#is
lai##+a. 8Ct merupaka# 3o#to$ fie +a#( seri#( i(u#aka#. Fie :e#is i#i berisi pain te)t. Fie :e#is
i#i me#+impa# karakter as3ii standard +a#( iterima ari user.
Paa pembuata# fie terapat beberapa moe alam ma#ipulasi fie. "erikut a6tar moe ma#ipulasi
fie tersebut :
Go +ode Keterangan
1 r Eembuka fie a# $a#+a u#tuk pemba3aa#
sa:a. Pointer fie aka# itempatka# i a&al
fie. )ika paa saat pembukaa# fie tiak
isertaka# moe ma#ipulasi fie. maka moe
@B
i#i se3ara defaut ipakai u#tuk ma#ipulasi
fie
2 &
Eembuka fie a# $a#+a u#tuk pe#ulisa#
sa:a. )ika fie +a#( ibuka sua$ aa a#
me#((u#aka# moe U&U. maka fie tersebut
aka# itimpa. )ika fie tiak aa maka aka#
ibuatka# fie baru.
3 a
Eembuka fie u#tuk pe#amba$a# isi fie.
Pointer fie isimpa# i ba(ia# ak$ir fie :ika
fie tersebut aa. )ika fie tiak aa maka aka#
ibuatka# fie baru.
? b
Eoe i#i itamba$ka# masi#( masi#( paa
moe r. &.a me#:ai rb. &b. ab. 2e#(a#
me#amba$ka# moe b paa setiap moe
ma#ipulasi sta#ar. Eaka pemba fie 3aa# fie
aka# ilakuka# alam 6ormat bi#er
B P
Eoe i#i itamba$ka# kealam moe r. &. a.
rP : ba3a a# tulis
&P : tulis a# ba3a
aP : tamba$ a# ba3a
+e!)uat -ile Baru
*(ar lebi$ pa$am kita aka# me#3oba membuat sebua$ fie tCt. Pertama kita biasaka# 3e(a$ error
e#(a# me#((u#aka# try/e)cept a# ta#(kap e)ception IO;rror. a(ar :ika ter:ai error kelak. kita
bisa me#a#(a#i#+a e#(a# lebi$ mua$. Aemuia# i alam blok try/e)cept tersebut buat sebua$
ob:ek fie e#(a# me#((u#aka# buit/in function ope#(!. Paa function tersebut terapat ua
parameter +a#( biasa i(u#aka# +aitu. #ama fie serta moe ma#ipulasi fie/#+a. Aare#a kita i#(i#
membuat fie baru. maka moe F&G i(u#aka# paa kasus pertama berikut :
isting 1 fie21.py
tr+:
sebua$H6ile K ope#(Sabse#.tCtS. U&U!
pri#t S#ama 6ile +a#( tai ibuat : S. sebua$H6ile.#ame
pri#t Smoe pemba3aa# 6ile : S. sebua$H6ile.moe
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
sebua$H6ile.3lose(!
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
eC3ept IO;rror. e:
pri#t Sproses (a(al kare#a : S. e
Aetika kita sua$ membuka sebua$ fie a# terbe#tuk ob:ek fie. Aita apat me#(akses method a#
@>
atribut paa ob:ek fie tersebut. *tribut +a#( seri#( iakses u#tuk pemrosesa# fie a#tara lai# :
#ame. moe. 3lose. *tribut #ame aala$ #ama fie tersebut. moe aala$ moe ma#ipulasi fie
tersebut. a# 3lose me#+ataka# apaka$ fie tersebut sua$ itutup atau belum. Sea#(ka# method
+a#( iakses iatas aala$ 3lose(!. +a#( i(u#aka# u#tuk me#utup fie setela$ pe#((u#aa# fie
selesai. 2e#(a# me#utup fie. pe#((u#aa# memori utama aka# i$emat. )ika tiak per#a$ me#utup
fie alam :umla$ +a#( ba#+ak bisa me#+ebabka# memory ea+. )ai ber$ati $atila$ :2.
NN (ambar =.1 $asil eksekusi 6ileH1.p+ OO
+engisi -ile
Paa 3o#to$ pertama. fie +a#( kita buat masi$ koso#(. belum berisi. Sesuai #ama#+a kita sea#(
membuat fie ber#ama Uabse#.tCtU. +a#( ialam#+a aka# terapat a6tar $air perkulia$a#. 2e#(a#
me#((u#aka# method &rite(!. kita bisa me#amba$ka# isi paa fie Uabse#.tCtU. a# +a#( aka# kita
isika# aala$ teks. 6ethod i#i memerluka# parameter sebua$ string +a#( aka# itulis i lokasi
terte#tu paa fie berasarka# posisi pointer fie beraa.
isting 1 fie23.py
tr+:
sebua$H6ile K ope#(Sabse#.tCtS. U&U!
pri#t S#ama 6ile +a#( tai ibuat : S. sebua$H6ile.#ame
pri#t Smoe pemba3aa# 6ile : S. sebua$H6ile.moe
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
sebua$H6ile.&rite(U1. )a:a#( Sura$ma#. 8ek#ik I#6ormatika. I8;0*SM#U!
sebua$H6ile.&rite(U2. *#(el Cori#e. Ea#a:eme# I#6ormatika. U0IAOEM#U!
sebua$H6ile.&rite(U3. Samsul "asri. Ilmu Aomputer. UPIM#U!
sebua$H6ile.3lose(!
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
@@
eC3ept IO;rror. e:
pri#t Sproses (a(al kare#a : S. e
Setela$ kita me#amba$ka# isi paa fie teks +a#( kita buat. kita apat membuka fie +a#( tela$
ibuat e#(a# teks editor a# apat meli$at isi ari fie tersebut.
NN (ambar =.2 $asil eksekusi 6ileH2.p+ OO
+e!)aca Isi -ile
Setela$ me#(isi fie e#(a# method &rite(!. Sekara#( kita aka# me#((u#aka# method rea(! u#tuk
memba3a fie. Pastika#. fie +a#( aka# iba3a $arus alam moe UrU. :ika tiak alam moe tersebut.
misal alam moe U&U. maka aka# mu#3ul error : GO;rror: 1ile #ot ope# 6or reai#(G. Aemuia#
u#tuk me#(eta$ui posisi pointer fie beraa. kita (u#aka# method tell(!.
isting 1 fie24.py
tr+:
sebua$H6ile K ope#(Sabse#.tCtS. UrU!
pri#t S#ama 6ile +a#( tai ibuat : S. sebua$H6ile.#ame
pri#t Smoe pemba3aa# 6ile : S. sebua$H6ile.moe
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
pri#t Sisi 6ile : M#S. sebua$H6ile.rea(!
pri#t Sposisi poi#ter paa 6ile : S. sebua$H6ile.tell(!
sebua$H6ile.3lose(!
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
eC3ept IO;rror. e:
pri#t Sproses (a(al kare#a : S. e
@8
2e#(a# me#((u#aka# method rea(!. kita apat meli$at isi ari fie tersebut. 8api method i#i
memba3a sekali(us isi fie +a#( iba3a. tiak perbaris. )ika pemba3aa# ilakuka# sekali(us. rua#(
memori +a#( ibutu$ka# :au$ lebi$ besar aripaa fie +a#( iba3a perbaris. Aemuia# e#(a#
aa#+a method tell(!. kita bisa me#(eta$ui posisi pointer fie beraa ima#a. a(ar mempermua$
saat ma#ipulasi fie.
NN (ambar =.3 $asil eksekusi 6ileH3.p+ OO
+e!)aca Isi -ile dengan Cara Baris Per Baris
)ika paa 3o#to$ sebelum#+a pemba3aa# fie ilakuka# sekali(us. paa 3o#to$ kali i#i pemba3aa#
fie aka# ilakuka# baris perbaris. Pemba3aa# fie teks e#(a# memba3a perbaris i#i bisa ilakuka#
e#(a# me#((u#aka# pe#(ula#(a# or. Fie i#i iperlakuka# la+ak#+a list +a#( i(u#aka# i
pe#(ula#(a# or. 2isi#i fie ia#((ap seba(ai list +a#( berisi eleme# string.
isting 1 fie28.py
tr+:
sebua$H6ile K ope#(Sabse#.tCtS. UrU!
pri#t S#ama 6ile +a#( tai ibuat : S. sebua$H6ile.#ame
pri#t Smoe pemba3aa# 6ile : S. sebua$H6ile.moe
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
pri#t Sisi 6ile : M#S
6or li#e i# sebua$H6ile:
pri#t li#e
@=
pri#t Sposisi poi#ter paa 6ile : S. sebua$H6ile.tell(!
sebua$H6ile.3lose(!
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
eC3ept IO;rror. e:
pri#t Sproses (a(al kare#a : S. e
Hasil +a#( iperli$atka# $ampir sama e#(a# 3o#to$ sebelum#+a $a#+a sa:a tek#ik pemba3aa##+a
seikit berbea. )ika fie berukura# besar. aka# lebi$ bi:ak :ika kita memba3a#+a perbaris a(ar
rua#( memori +a#( i(u#aka# tiak ba#+ak terpakai.
NN (ambar =.? $asil eksekusi 6ileH?.p+ OO
+engatur Posisi Pointer -ile
Suatu saat kita i#(i# me#(isi fie i lokasi terte#tu i sebua$ fie. "iasa#+a kita me#amba$ka# fie
i ba(ia# ak$ir fie. atau memba3a fie selalu iba(ia# a&al fie. *a saat#+a kita i#(i# memba3a i
posisi ke 1B ari a&al fie. atau posisi '1B karakter ari pointer fie. 2i ob:ek fie terapat method
+a#( i#amaka# seek(!. 6ethod tersebut memiliki ua bua$ paramater +aitu :arak +a#( ii#(i#ka#
a# patoka# :arak tersebut. )ika parameter keua iisi ole$ a#(ka 0. berarti patoka# beraa i a&al
6ile. )ika parameter keua iisi ole$ a#(ka 1. berarti patoka# beraa i tempat poi#ter fie beraa.
)ika parameter keua iisi ole$ a#(ka 2. maka patoka# beraa i ba(ia# ak$ir fie. )ika parameter
pertama iisi a#(ka positi6 maka pe#e#tua# :arak aka# i$itu#( ke sebela$ ka#a#. :ika iisi a#(ka
#e(ati6 maka pe#e#tua# :arak aka# i$itu#( ke sebela$ kiri.
isting 1 fie29.py
tr+:
sebua$H6ile K ope#(Sabse#.tCtS. UrbU!
pri#t S#ama 6ile +a#( tai ibuat : S. sebua$H6ile.#ame
pri#t Smoe pemba3aa# 6ile : S. sebua$H6ile.moe
80
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
pri#t Sisi 6ile : M#S
6or li#e i# sebua$H6ile:
pri#t li#e
pri#t Sposisi poi#ter paa 6ile : S. sebua$H6ile.tell(!
pri#t Skembali la(i ke a&al : S. sebua$H6ile.seek(0. 0!
pri#t Sisi 6ile : M#S
6or li#e i# sebua$H6ile:
pri#t li#e
pri#t Sposisi poi#ter paa 6ile : S. sebua$H6ile.tell(!
sebua$H6ile.3lose(!
pri#t Sapaka$ 6ile#+a ua$ itutup b : S. sebua$H6ile.3lose
eC3ept IO;rror. e:
pri#t Sproses (a(al kare#a : S. e
Paa 3o#to$ iatas. pointer fie ipi#a$ka# kembali ke posisi a&al. 2e#(a# memberika# :arak 0.
a# me#e#tuka# patoka# i a&al fie. maka posisi pointer fie pi#a$ ke ba(ia# a&al fie. 2e#(a#
emikia# fie bisa iba3a ula#( u#tuk keua kali#+a.
NN (ambar =.B $asil eksekusi 6ileHB.p+ OO
81
+engganti Ga!a -ile
2alam ma#ipulasi fie. terapat operasi seperti pe#(uba$a# #ama fie. memi#a$ka# fie. ataupu#
me#($apus fie. P+t$o# se#iri me#+eiaka# moule os +a#( ialam#+a terapat 6itur' 6itur
tersebut. Seba(ai 3o#to$ pertama kita aka# me#((a#ti #ama fie ari Fabse#.tCtG ke Fa6tar'
$air.tCtG. Pertama kita $arus me#('import moul os. Aemuia# kita (u#aka# method re#ame(!.
6ethod tersebut memiliki ua parameter +aitu #ama fie +a#( aka# iuba$ #ama#+a. a# #ama baru
+a#( ii#(i#ka#.
isting 1 fie2:.py
import os
tr+:
os.re#ame(Uabse#.tCtU. Ua6tar'$air.tCtU!
pri#t S0ama 6ile sua$ iuba$..S
eC3ept (IO;rror. OS;rror!. e:
pri#t Sproses error kare#a : S. e
Setela$ koe iatas i:ala#ka#. 3oba li$at fie +a#( sebelum#+a Fabse#.tCtG aka# beruba$ me#:ai
Fa6tar'$air.tCtG.
NN (ambar =.> $asil eksekusi 6ileH>.p+ OO
+enghapus -ile
Co#to$ lai##+a aala$ me#($apus fie. Aita bisa (u#aka# method remo,e(! u#tuk me#($apus fie
+a#( ii#(i#ka#. Parameter +a#( ibutu$ka# aala$ #ama fie +a#( aka# i$apus.
isting 1 fie2;.py
82
import os
tr+:
os.remo,e(Ua6tar'$air.tCtU!
pri#t S1ile sua$ i$apus..S
eC3ept (IO;rror. OS;rror!. e:
pri#t Sproses error kare#a : S. e
Aemuia# :ika fie sua$ i$apus. kita tiak apat membuka fie tersebut. Aare#a fie tersebut sua$
$ila#( ari pe#+impa#a# seku#er.
NN (ambar =.@ $asil eksekusi 6ileH@.p+ OO
U#tuk 3o#to$ 3o#to$ lai##+a *#a bisa membuka okume#tasi resmi P+t$o#. atau 3oba ku#:u#(i
beberapa &ebsite +a#( aa i lampira# 2.
83
1H. Pengenalan Class
+e!)uat Class dan O)=ect
Pemro(rama# berorie#tasi ob:ek atau alam ba$asa i#((ris ike#al e#(a# 0b-ect 0riented
Programming (OOP!. merupaka# sebua$ parai(ma pemro(rama# ima#a kita memoelka#
pera#(kat lu#ak kita ari berba(ai kumpula# ob:ek +a#( sali#( beri#teraksi. Ob:ek tersebut
memiliki karakteristik a# aksi. 2i alam OOP. karakteristik tersebut berupa ,ariabel +a#(
i#amaka# atribut. Aemuia# aksi +a#( imiliki ob:ek tersebut berupa met$o +a#( me#($asilka#
output atau 3uma melakuka# aksi sa:a ta#pa output. *a istila$ lai# :u(a +a#( me#+ebut aksi
sebua$ ob:ek seba(ai perilaku atau beha!iour. Ob:ek itu se#iri mempu#+ai tempate +a#(
iistila$ka# e#(a# kelas atau cass. Sebua$ kelas merupaka# tempate ba(i ob:ek ob:ek +a#(
aka# ibuat. Proses pembuata# ob:ek baru i#amaka# e#(a# i#sta#siasi.
*a beberapa $al +a#( $arus ii#(at alam membuat sebua$ kelas. Pertama +ey#ord class.
+ey#ord i#i i(u#aka# u#tuk me#e6i#isika# sebua$ kelas. 2isusul e#(a# #ama kelas +a#(
ii#(i#ka# a# ta#a titik ua. "lok koe kelas tersebut itulis setela$ ta#a titik ua tersebut. a#
seperti biasa iperluka# i#e#tasi a(ar blok koe +a#( kita tulis masuk kealam blok koe kelas.
Aeua aala$ ko#struktor. i P+t$o# ko#struktor itulis e#(a# sebua$ function ber#ama
HHi#itHH(! . 6ethod a# function sebe#ar#+a sama. $a#+a sa:a bea istila$ paa parai(ma OOP.
6ethod HHi#itHH(! i#i merupaka# method +a#( aka# selalu ieksekusi saat i#sta#siasi ob:ek.
"iasa#+a HHi#itHH(! i(u#aka# u#tuk me#(isi ,ariabel e#(a# #ilai a&al paa atribut atribut +a#(
imiliki ob:ek. Aeti(a aala$ +ey#ord sel2 +ey#ord tersebut i(u#aka# paa method +a#( aka#
i#+ataka# seba(ai method ari kelas +a#( kita ra#3a#(. 7ey#ord i#i isertaka# i parameter
pertama. )ika method tersebut tiak isertaka# sel paa method +a#( imiliki kelas tersebut. aka#
mu#3ul error : F8+pe;rror: na!a1unction34 takes eCa3tl+ n ar(ume#ts (1 (i,e#!
G +a#( arti#+a method tersebut tiak bisa ipa#((il ole$ ob:ek +a#( tela$ teri#sta#siasi.
Seba(ai 3o#to$ isi#i kita aka# membuat sebua$ kelas ber#ama Perse(iPa#:a#( +a#( memiliki ua
atribut +aitu pa#:a#( a# lebar. Aelas i#i memiliki lima met$o +a#( teriri ari :
HHi#itHH(!. ko#struktor kelas perse(i pa#:a#(
$itu#(Hluas(!. met$o u#tuk me#($itu#( luas perse(i pa#:a#(
$itu#(Hkelili#((!. met$o u#tuk me#($itu#( kelili#( perse(i pa#:a#(
(ambarHperse(iHpa#:a#((!. me#((ambar perse(i pa#:a#( +a#( ireprese#tasika# e#(a#
kumpula# bi#ta#(.
(ambarHperse(iHpa#:a#(Hta#paHisi(!. me#((ambar perse(i pa#:a#( tetapi $a#+a batas
luar#+a sa:a. isi#+a tak i(ambar.
isting 1 cass21.py
8?
3lass Perse(iPa#:a#(:

e6 HHi#itHH(sel6. pa#:a#(. lebar!:
sel6.pa#:a#( K pa#:a#(
sel6.lebar K lebar

e6 $itu#(Hluas(sel6!:
retur# sel6.pa#:a#( Q sel6.lebar

e6 $itu#(Hkelili#((sel6!:
retur# (2Qsel6.pa#:a#(! P (2Qsel6.lebar!
e6 (ambarHperse(iHpa#:a#((sel6!:
6or i i# ra#(e(0. sel6.lebar!:
6or : i# ra#(e(0. sel6.pa#:a#(!:
pri#t UQU.
pri#t SS

e6 (ambarHperse(iHpa#:a#(Hta#paHisi(sel6!:
6or i i# ra#(e(0. sel6.lebar!:
i6 i O 0 a# i N sel6.lebar'1:
6or : i# ra#(e(0. sel6.pa#:a#(!:
i6 : O 0 a# : N sel6.pa#:a#('1:
pri#t U U.
else:
pri#t UQU.
else:
6or : i# ra#(e(0. sel6.pa#:a#(!:
pri#t UQU.

pri#t SS


Perse(iPa#:a#(* K Perse(iPa#:a#((20. 10!
Perse(iPa#:a#(" K Perse(iPa#:a#((10. B!
pri#t SPa#:a#( perse(i pa#:a#( * :S. Perse(iPa#:a#(*.pa#:a#(
pri#t S4ebar perse(i pa#:a#( * :S. Perse(iPa#:a#(*.lebar
pri#t S4uas perse(i pa#:a#( * : S. Perse(iPa#:a#(*.$itu#(Hluas(!
pri#t SAelili#( perse(i pa#:a#( * : S. Perse(iPa#:a#(*.$itu#(Hkelili#((!
pri#t SEe#((ambar Perse(i Pa#:a#( * : S
Perse(iPa#:a#(*.(ambarHperse(iHpa#:a#((!
pri#t SM#Ee#((ambar Perse(i Pa#:a#( * $a#+a tepi#+a sa:a : S
Perse(iPa#:a#(*.(ambarHperse(iHpa#:a#(Hta#paHisi(!
pri#t SM#S
pri#t SPa#:a#( perse(i pa#:a#( " :S. Perse(iPa#:a#(".pa#:a#(
pri#t S4ebar perse(i pa#:a#( " :S. Perse(iPa#:a#(".lebar
pri#t S4uas perse(i pa#:a#( " : S. Perse(iPa#:a#(".$itu#(Hluas(!
8B
pri#t SAelili#( perse(i pa#:a#( " : S. Perse(iPa#:a#(".$itu#(Hkelili#((!
Perse(iPa#:a#(".(ambarHperse(iHpa#:a#((!
pri#t SM#Ee#((ambar Perse(i Pa#:a#( " $a#+a tepi#+a sa:a : S
Perse(iPa#:a#(".(ambarHperse(iHpa#:a#(Hta#paHisi(!
Proses i#sta#siasi ilakuka# e#(a# me#e#tuka# #ama ob:ek +a#( ii#(i#ka# kemuia# pa#((il
#ama kelas +a#( aka# ii#(i#ka# a# masuka# parameter a&al +a#( ibutu$ka#. Aemuia# saat
ob:ek ber$asil ibuat. kita bisa me#(akses atribut a# method ari ob:ek tersebut. Seperti +a#( kita
lakuka# paa ma#ipulasi fie. kita bisa me#(akses method 3lose(!. &rite(!. a# rea(! serta
me#(akses atribut close. na!e. a# !ode. 2e#(a# parameter berbea #amu# karakterisitik sama.
perse(i pa#:a#( +a#( i$asilka# :ai bera(am.
8u:ua# ari OOP i#i se#iri. me#($emat pe#ulisa# koe pro(ram +a#( kita buat. 8a#pa OOP kita
$arus membuat atribut u#tuk setiap ob:ek. 2a# pe#ulisa# koe pro(ram pu# me#:ai me#umpuk.
Aare#a u#tuk method +a#( sama $arus i tulis ula#(.
NN (ambar 10.1 $asil eksekusi 3lassH1.p+ ba(ia# ke ' 1 OO
8>
NN (ambar 10.2 $asil eksekusi 3lassH1.p+ ba(ia# ke ' 2 OO
+engenal BuiltAin -unction pada Class dan O)=ect
"erikut#+a kita aka# me#(e#al beberapa buit/in cass attribute +a#( aka# bisa i(u#aka# saat kita
membuat kelas apapu#. *uit/in cass attribute aka# selalu me#+ertai kelas +a#( kita ra#3a#(.
"erikut beberapa atribut +a#( bisa *#a (u#aka# u#tuk me#(akses i#6ormasi ari sebua$ kelas :
HHo3HH. i(u#aka# u#tuk me#(akses okume#tasi +a#( terapat paa kelas
HH#ameHH. i(u#aka# u#tuk me#(akses #ama kelas
HHi3tHH. i(u#aka# u#tuk me#apatka# #amespa3e ari kelas tersebut. Aalau paa ob:ek
+a#( sua$ ii#sta#siasi met$o i#i aka# me#(eluarka# i#6ormasi te#ta#( atribut +a#(
sua$ terisi #ilai
HHmouleHH. i(u#aka# u#tuk me#apatka# i#6ormasi ima#a lokasi moul +a#(
me#e6i#isika# kelas tersebut
HHbasesHH. i(u#aka# u#tuk meli$at arima#a kelas tersebut i&ariska#. Pe&arisa# paa
OOP aala$ me#((u#aka# karakteristik suatu kelas paa kelas +a#( i#(i# me#((u#aka#
karakteristik kelas +a#( me&ariska##+a.
Seba(ai 3o#to$ aa beberapa buit/in cass attribute +a#( bisa iakses kelas a# ob:ek $asil
i#sta#siasi a# aa +a#( $a#+a bisa iakeses kelas.
8@
isting 1 cass23.py
3lass Perse(iPa#:a#(:
UUU
Sebua$ kelas +a#( memoelka# perse(i pa#:a#(.
Eempu#+ai ua atribut +aitu pa#:a#( a# lebar.
"isa me#($itu#( luas a# kelili#(.
"isa :u(a me#((ambar perse(i pa#:a#( sesuai atribut
UUU
e6 HHi#itHH(sel6. pa#:a#(. lebar!:
sel6.pa#:a#( K pa#:a#(
sel6.lebar K lebar

e6 $itu#(Hluas(sel6!:
retur# sel6.pa#:a#( Q sel6.lebar

e6 $itu#(Hkelili#((sel6!:
retur# (2Qsel6.pa#:a#(! P (2Qsel6.lebar!
e6 (ambarHperse(iHpa#:a#((sel6!:
6or i i# ra#(e(0. sel6.lebar!:
6or : i# ra#(e(0. sel6.pa#:a#(!:
pri#t UQU.
pri#t SS

e6 (ambarHperse(iHpa#:a#(Hta#paHisi(sel6!:
6or i i# ra#(e(0. sel6.lebar!:
i6 i O 0 a# i N sel6.lebar'1:
6or : i# ra#(e(0. sel6.pa#:a#(!:
i6 : O 0 a# : N sel6.pa#:a#('1:
pri#t U'U.
else:
pri#t UQU.
else:
6or : i# ra#(e(0. sel6.pa#:a#(!:
pri#t UQU.

pri#t SS


Perse(iPa#:a#(* K Perse(iPa#:a#((20. 10!
pri#t Perse(iPa#:a#(.HHo3HH
pri#t Perse(iPa#:a#(.HH#ameHH
pri#t Perse(iPa#:a#(.HHi3tHH
pri#t Perse(iPa#:a#(.HHmouleHH
pri#t Perse(iPa#:a#(.HHbasesHH
88
pri#t Perse(iPa#:a#(*.HHo3HH
pri#t Perse(iPa#:a#(*.HHi3tHH
pri#t Perse(iPa#:a#(*.HHmouleHH
Paa 3o#to$ iatas. atribut HH#ameHH a# HHbasesHH $a#+a bisa iakses ole$ kelas. Sea#(ka#
ob:ek $asil i#sta#siasi tiak bisa me#(akses#+a.

NN (ambar 10.3 $asil 3lassH2.p+ OO
Pemba$asa# me#(e#ai OOP i#i tiak bisa iba$as se3ara keseluru$a# alam satu bab. *a ba#+ak
$al +a#( $arus iulas seperi inheritance, poymorphism, abstract, o!erriding, o!eroad, a# lai#
lai#.
11. Pengenalan +odule
8=
+odule dan Packages
6odue aala$ istila$ fie +a#( berisi +ode P+t$o#. )ai ari a&al sebe#ar#+a kita sua$ membuat
modue P+t$o#. Ha#+a sa:a paa ko#sep modue i#i. koe P+t$o# +a#( aka# i(u#aka# berula#(
aka# ipisa$ka# ari fie utama ke alam fie lai# +a#( k$usus me#ampu#( koe P+t$o# tersebut.
2i alam modue kita bisa me#+impa# cass. function. ,ariabel. a# struktur ata +a#( bisa
i(u#aka# ole$ pro(ram. Eisal kita i#(i# membuat sebua$ koe +a#( $a#+a berisi :e#is :e#is
se(iti(a seperti se(iti(a sama kaki. se(iti(a sembara#(. se(iti(a sama sisi. a# se(iti(a siku siku.
Ae#apa tiak i3ampur sa:a e#(a# :e#is bia#( +a#( lai# b Hal i#i ilakuka# a(ar kita mua$
alam me#(elola koe P+t$o# +a#( kita tulis. Co#to$ lai##+a misal kita me#ulis koe +a#(
beri#teraksi e#(a# atabase a# koe u#tuk melakuka# proses pe#ulisa# lapora# se3ara terpisa$.
2alam $al i#i modue mempu#+ai koe P+t$o# +a#( reusabe a(ar koe +a#( itulis paa pro(ram
kita teruplikasi. Sea#(ka# fie P+t$o# +a#( aka# i:ala#ka# a# mema#((il function. cass. atau
,ariabel ari kumpula# modue +a#( ibuat berisi runnabe code. Aoe +a#( ieksekusi ole$
interpreter P+t$o# u#tuk me#ampilka# &u:u ari pro(ram +a#( ibuat.
Aemuia# modue ? modue +a#( sua$ itulis bisa ikelompoka# kealam sebua$ pac+age.
Pac+age i#i se#iri berupa foder +a#( memiliki 6ile HHi#itHH.p+. a(ar foder tersebut ike#ali
seba(ai modue. 2i alam pac+age i#i modue ? modue memiliki tu:ua# a# 6u#(sio#al +a#(
sera(am. Eisal paa 3o#to$ +a#( aka# kita 3oba. terapat sebua$ pac+age bia#(. +a#( berisi
moule bia#( se(iti(a a# perse(i. 2i alam#+a terapat fie HHi#itHH.p+ +a#( bertu(as u#tuk me'
oad semua modue +a#( aa i alam pac+age. se(iti(a.p+ +a#( berisi cass se(iti(a. a#
perse(i.p+ +a#( berisi cass perse(i. 2i alam fie se(iti(a.p+ a# perse(i.p+ masi#( masi#( bisa
iisi berba(ai :e#is bia#( +a#( sesuai #ama modue tersebut. Ha#+a sa:a u#tuk 3o#to$ kali i#i
ibatasi kepaa satu :e#is bia#( sa:a
+e!)uat +odule 8 +odule di dala! Packages
Setela$ mema$ami ko#sep moule. mari kita 3oba pro(ram +a#( a(ak ba#+ak i#i. Sebelum#+a i
irektori tempat kita aka# me#ulis pro(ram. terlebi$ a$ulu buatla$ sebua$ 6oler baru ber#ama
bia#(. 1oler tersebut merupaka# pa3ka(e +a#( aka# me#+impa# perse(i.p+. se(iti(a.p+. a#
HHi#itHH.p+.
isting 1 persegi.py
3lass Perse(i:
e6 HHi#itHH(sel6. s!:
sel6.sisi K s

e6 SetSisi(sel6. s!:
sel6.sisi K s

e6 /etSisi(sel6!:
retur# sel6.sisi
=0

e6 Hitu#(Aelili#((sel6!:
retur# ? Q sel6.sisi

e6 Hitu#(4uas(sel6!:
retur# sel6.sisi Q sel6.sisi
Aoe perse(i.p+ iatas $a#+a berse(i cass Perse(i +a#( mempu#+ai atribut sisi a# method
method/#+a. 2i alam modue i#i kita bisa sa:a me#ulis kelas Perse(iPa#:a#(. Hal tersebut
memua$ka# kita a(ar bia#( +a#( :e#is#+a perse(i tiak ter3ampur e#(a# bia#( +a#( :e#is#+a
se(iti(a. Pastika# *#a me#+impa# fie perse(i.p+ i alam foder bia#(.
isting 1 segitiga.py
import mat$
3lass Se(iti(a:
e6 HHi#itHH(sel6. a. t!:
sel6.alas K a
sel6.ti#((i K t

e6 Set*las(sel6. a!:
sel6.alas K a

e6 /et*las(sel6!:
retur# sel6.alas

e6 Set8i#((i(sel6. t!:
sel6.ti#((i K t

e6 /et8i#((i(sel6!:
retur# sel6.ti#((i

e6 /etSisiEiri#((sel6!:
retur# mat$.s\rt(sel6.alasQQ2 P sel6.ti#((iQQ2!

e6 Hitu#(Aelili#((sel6. s!:
retur# sel6.alas P sel6.ti#((i P s

e6 Hitu#(4uas(sel6!:
retur# (sel6.alas Q sel6.ti#((i! % 2
Hampir sama e#(a# 6u#(si ari modue perse(i.p+. $a#+a sa:a modue se(iti(a.p+ aka# iisi
berba(ai :e#is se(iti(a. Selai# itu paa koe iatas kita mema#((il modue !ath kare#a saat #a#ti
moule se(iti(a.p+ i#i iloa. koe +a#( me#((u#aka# met$o met$o paa mat$ $arus i loa
:u(a ari moule !ath. Pastika# moule i#i tersimpa# i 6oler bia#(.
=1
isting 1 22init22.py
6rom se(iti(a import Se(iti(a
6rom perse(i import Perse(i
i6 HH#ameHH KK UHHmai#HHU:
pass
Aemuia# fie +a#( mesti aa i alam sebua$ pac+age aala$ HHi#itHH.p+. Fie tersebut ber6u#(si
u#tuk me'oad isi moule ke alam memori a(ar isi modue bisa i(u#aka# i fie +a#( berisi
runnabe code. Paa koe iatas. terapat si#taks : ro! se(iti(a i!port Se(iti(a. 7ey#ord ro!
aala$ +ey#ord +a#( i(u#aka# u#tuk me#e#tuka# pac+age atau modue ma#a +a#( aka# kita
ru:uk. sea#(ka# import i(u#aka# u#tuk me#(ambil cass. function atau ,ariabel +a#(
ie6i#isika# i alam modue. 2isa#a kita me#('import ua bua$ kelas +aitu Se(iti(a a# Perse(i
ari ua modue berbea +aitu se(iti(a.p+ a# perse(i.p+. Sea#(ka# koe iba&a$#+a i(u#aka#
:ika fie HHi#itHH.p+ i#(i# me#:ala#ka# peri#ta$ terte#tu. Pastika# fie i#i isimpa# i foder bia#(.
+enggunakan +odule di -ile Ita!a
Sampai ak$ir#+a kita tiba u#tuk me#ulis koe utama. Aoe utama i#i merupaka# koe +a#( berisi
runnabe code. a# me#((u#aka# cass +a#( sua$ ie6i#isika# i modue ? modue sebelum#+a.
2e#(a# emikia# koe pro(ram tiak aka# me#umpuk i fie utama.
)ika *#a ber$asil me#(ikuti petu#:uk paa bab i#i. modue, pac+ages a# fie utama $arus
mempu#+ai sususa# seperti berikut :
NN (ambar 12.1 struktur moule pa3ka(es bia#( OO
isting 1 main.py
=2
6rom bia#( import Se(iti(a. Perse(i
s(t(* K Se(iti(a(3. =!
prs(* K Perse(i(B!
pri#t S4uas Se(iti(a * : S. s(t(*.Hitu#(4uas(!
pri#t SSisi Eiri#( Se(iti(a * : S. s(t(*./etSisiEiri#((!
pri#t SAelili#( Se(iti(a * : S. s(t(*.Hitu#(Aelili#((s(t(*./etSisiEiri#((!!
pri#t SM#S
pri#t S4uas Perse(i * : S. prs(*.Hitu#(4uas(!
pri#t SAelili#( Se(iti(a * : S. prs(*.Hitu#(Aelili#((!

Paa koe iatas kita me#('import kelas ari pac+age bia#(. Aemuia# melakuka# i#sta#siasi a#
memberika# #ilai sesuai +a#( kita i#(i#ka#. Aemuia# kita akses method ? method +a#( terapat
paa kelas tersebut u#tuk me#apatka# i#6ormasi luas. a# kelili#( paa masi#( masi#( bia#(.
)ika ber$asil maka koe +a#( aka# i:ala#ka# seperti berikut :
NN (ambar 12.2 eksekusi mai#.p+ OO
=3
0atar Pustaka
P+t$o# So6t&are 1ou#atio# 8eam. Python !3.;.3 Documentation 1==0 2011. 8$e P+t$o#
So6t&are 1ou#atio#.
2o&#e+. *lle#. )e66re+ ;lk#er. a# C$ris Ee+ers. @o# to (hin+ Li+e a 'omputer "cientist 1
Learning #ith Python. 2002. /ree# 8ea Press : Dellesle+. Eassa3$usetts
S&aroop. , *yte of Python. 200B. Io#4ab : "a#(alore. I#ia
Cra,e#. Paul 5i#3e#t. %ntroduction to 'omputer "cience Using Python and Pygame. 2011.
Simpso# Colle(e. Computer S3ie#3e 2epartme#t : I#ia#ola. Io&a
=?
La!piran 1 8 ,eknologi yang +enggunakan Python
2:a#(o
Sebua$ #eb frame#or+ +a#( memiliki motto F8$e Deb
1rame&ork 6or Per6e3tio#ist &it$ 2eali#eG. 2:a#(o
merupaka# sala$ satu me(a6rame&ork +a#( sua$
memiliki template e#(i#e. ob:e3t relatio#al mapper.
sessio#. se3urit+. pa(i#atio#. lo((i#(. aut$e#ti3atio#.
3a3$i#(. a# lai# lai#.

4ebi$ le#(kap ku#(:u#(i li#k berikut :
$ttp:%%&&&.:a#(opro:e3t.3om
P+/ame
P+/ame aala$ #rapper u#tuk Simple 2ire3t Eeia
4ibrar+. sebua$ ibrary u#tuk mema#ipulasi (ra6is a#
meia berupa auio a# ,ieo. 2e#(a# P+/ame *#a
bisa membuat game berbasis 22. Aalaupu# i#(i#
membuat game 32 ibutu$ka# ibrary lai# u#tuk
me#uku#( pe#(ola$a# 32
1itur 6itur +a#( bisa iapatka# ari moule moule
P+/ame :
3rom. me#(elola 3rom a# pemutar suara
3ursors. me'loa (ambar kursor. a#
me#+ertaka# kursor sta#ar
ispla+. me#(e#alika# la+ar
ra&. me#((ambar (ra6is seer$a#a paa
Sur6a3e
e,e#t. me#(elola e,e#t a# a#tria# e,e#t
6o#t. membuat a# me#((u#aka# 8ruet+pe 6o#ts
ima(e. me#+impa# a# me'loa (ambar
:o+sti3k. me#(elola :o+sti3k
ke+. me#(elola ke+boar
mouse. me#(elola mouse
mo,ie. memai#ka# 6ilm bertipe mpe(
s#arra+. mema#ipulasi suara alam a#(ka
sur6arra+. mema#ipulasi (ambar alam a#(ka
time. me#(e#alika# &aktu
tra#s6orm. memperbesar. memutar. a#
membalik (ambar
"a(i tema# tema# +a#( i#(i# me#((u#aka# P+(ame
lebi$ la#:ut bisa ku#:u#(i li#k berikut :
$ttp:%%&&&.p+(ame.or(
=B
Pa#a 32
Pa#a 32 aala$ 32 5ngine. ibrary ari kumpula#
6u#(si 6u#(si u#tuk 32 rendering a# pe#(emba#(a#
(ame. Library'#+a itulis e#(a# CPP. U#tuk
pe#(emba#(a# game e#(a# Pa#a32. *#a $arus
me#ulis alam ba$asa P+t$o# +a#( me#(e#alika#
ibrary i Pa#a32.
Pa#a32 mempu#+ai uku#(a# seperti : 8$e S3e#e
/rap$. Eoel a# *3tor.8eCturi#(. S$aers. Camera
Co#trol. Sou#. I#ter,al. 8ask a# ;,e#t Ha#li#(. 8eCt
a# Ima(e 9e#eri#(. 2ire3t/UI. 9e#er ;66e3t.
Collisio# 2ete3tio#. a# lai##+a
lebi$ le#(kap ku#:u#(i li#k berikut i#i :
$ttp:%%&&&.pa#a3.or(
SimpleC5
SimpleC5 merupaka# si#(kata# ari Simple Computer
5isio#. merupaka# 6rame&ork p+t$o# +a#( mua$
i(u#aka# a# membu#(kus librar+ 3omputer ,isio#
ope# sour3e a# al(oritma terkait u#tuk peme3a$a#
masala$.
"eberapa 6itur +a#( iuku#( ole$ SimpleC5 a#tara
lai# : memba3a (ambar. ko#,ersi (ambar ke 9/".
ko#,ersi (ambar ke H4S. ko#,ersi (ambar ke HS5.
ko#,ersi (ambar ke /ra+. membuat (ambar baru alam
6ormat bitmap. me#+ali# (ambar. memperbesar (ambar.
pe#3ermi#a# (ambar. memper$alus (ambar. e(e
ete3tio#. a# lai# lai#.
4ebi$ le#(kap#+a 3$e3kli#k berikut i#i :
$ttp:%%&&&.simple3,.or(
048A
8ek#olo(i 0atural 4a#(ua(e Pro3essi#( semaki# $ari
semaki# ma:u. Seba(ai 3o#to$. ba#+ak smartp$o#es.
+a#( sua$ me#uku#( pe#(e#ala# tulisa#. kemuia#
ba#+ak mesi# pe#3ari +a#( me#uku#( pe#ulisa# teks
ta struktur. aa :u(a pe#er:ema$a# ba$asa.
048A $air seba(ai sala$ satu tools +a#( itulis alam
P+t$o# u#tuk me#uku#( tek#olo(i 0atural 4a#(ua(e
Pro3essi#(. "eberapa 6itur +a#( iuku#( ole$ 048A
a#tara lai# : 4a#(ua(e Pro3essi#(. 8eCt Corpora.
Pro3essi#( 9a& 8eCt. Cate(ori-i#( a# 8a((i#( Dors.
Parsi#( teCt. Sema#ti3 *#al+sis. a# lai# lai#.
4ebi$ la#:ut 3obe ku#:u#(i li#k berikut :
$ttp:%%&&&.#ltk.or(
1lask 1lask merupaka# mi3ro &eb 6rame&ork +a#(
me#uku#( u#tuk ii#te(rasika# e#(a# berba(ai
=>
librar+ pe#uku#( lai##+a. 1lask memerluka# DS/I
8oolkit +a#( i#amaka# Deurk-eu( a# 8emplate
;#(i#e )i#:a2.
1lask memiliki 6itur seperti : templati#( e#(i#e. testi#(
appli3atio#. lo((i#( appli3atio# error. ebu((i#
appli3atio# error. 3o#6i(uratio# $a#li#(. si(#al.
plu((able ,ie&. eCte#sio#. a# lai# lai#.
4ebi$ le#(kap ku#:u#(i li#k berikut :
$ttp:%%&&&.6lask.or(
=@
La!piran * A Bahan Bela=ar Online
8utorial :
)a,a2s P+t$o# 8utorial : $ttp:%%&&&.:a,a2s.3om%8utorial%P+t$o#
)a,a2s P+t$o# ;Cample : $ttp:%%&&&.:a,a2s.3om%Coe%P+t$o#
8utorialsPoi#t P+t$o# : $ttp:%%&&&.tutorialspoi#t.3om%p+t$o#
<et3oe P+t$o# : $ttp:%%&&&.-et3oe.3om%p+t$o#
4ear# P+t$o# 8$e Har&a+ : $ttp:%%lear#p+t$o#t$e$ar&a+.or(%
P+t$o# Eoule o6 8$e Deek : $ttp:%%p+mot&.3om
1orum 2iskusi i 1a3ebook:
P+t$o# : $ttps:%%&&&.6a3ebook.3om%(roups%(p+t$o#
P+t$o# I#o#esia : $ttps:%%&&&.6a3ebook.3om%(roups%?@311?==2@2=831%
P+t$o# 2e,elopers : $ttps:%%&&&.6a3ebook.3om%(roups%22?=?=8?1>
P+t$o# Pro(rammer Commu#it+ : $ttps:%%&&&.6a3ebook.3om%(roups%p+t$o##eres%
P+t$o# Pro(rammi#( : $ttps:%%&&&.6a3ebook.3om%(roups%p+t$o#e,%
P+t$o# User /roup Eala+sia : $ttps:%%&&&.6a3ebook.3om%(roups%p+t$o#.mala+sia%
4ear# P+t$o# : $ttps:%%&&&.6a3ebook.3om%(roups%lear#p+t$o#.or(%
=8
,entang Buku Ini
"uku i#i itulis e#(a# me#((u#aka# 4ibre Driter 3.3 a# iko#,ersi ke P21 e#(a#
me#((u#aka# soft#are +a#( sama. "creenshot paa buku i#i iapatka# e#(a# me#((u#aka#
S$utter. sebua$ soft#are u#tuk me#a#(kap ba(ia# la+ar a# merupaka# 1OSS ( Free 0pen "ource
"oft#are!. Aoe pro(ram itulis e#(a# me#((u#aka# /ea#+ 8eCt ;itor. Semua koe pro(ram
i3oba i Ubu#tu 10.0? 32 "it e#(a# me#((u#aka# P+t$o# 2.>.
"uku i#i merupaka# ba(ia# ari ,isi POSS UPI u#tuk membumika# open source a# me#(a:ak
mas+arakat u#tuk me#((u#aka# 1OSS seperti P+t$o# i#i alam li#(kup me#(emba#(ka# aplikasi.
U#tuk me#apatka# ba$a# bela:ar lai##+a ari POSS UPI. bisa iapatka# i $ttp:%%&&&.poss'
upi.or(%o&#loa
==
,entang JGI -ree 0ocu!entation License
5ersio# 1.1. Ear3$ 2000
Cop+ri($t (C! 2000 1ree So6t&are 1ou#atio#. I#3. B= 8emple Pla3e. Suite 330. "osto#. E*
02111c130@ US* ;,er+o#e is permitte to 3op+ a# istribute ,erbatim 3opies o6 t$is li3e#se
o3ume#t. but 3$a#(i#( it is #ot allo&e.
Prea!)le
8$e purpose o6 t$is 4i3e#se is to make a ma#ual. teCtbook. or ot$er &ritte# o3ume#t S6reeS i# t$e
se#se o6 6reeom: to assure e,er+o#e t$e e66e3ti,e 6reeom to 3op+ a# reistribute it. &it$ or
&it$out moi6+i#( it. eit$er 3ommer3iall+ or #o#3ommer3iall+. Se3o#aril+. t$is 4i3e#se preser,es
6or t$e aut$or a# publis$er a &a+ to (et 3reit 6or t$eir &ork. &$ile #ot bei#( 3o#siere
respo#sible 6or moi6i3atio#s mae b+ ot$ers.

8$is 4i3e#se is a ki# o6 S3op+le6tS. &$i3$ mea#s t$at eri,ati,e &orks o6 t$e o3ume#t must
t$emsel,es be 6ree i# t$e same se#se. It 3ompleme#ts t$e /0U /e#eral Publi3 4i3e#se. &$i3$ is a
3op+le6t li3e#se esi(#e 6or 6ree so6t&are. De $a,e esi(#e t$is 4i3e#se i# orer to use it 6or
ma#uals 6or 6ree so6t&are. be3ause 6ree so6t&are #ees 6ree o3ume#tatio#: a 6ree pro(ram s$oul
3ome &it$ ma#uals pro,ii#( t$e same 6reeoms t$at t$e so6t&are oes. "ut t$is 4i3e#se is #ot
limite to so6t&are ma#uals7 it 3a# be use 6or a#+ teCtual &ork. re(arless o6 sub:e3t matter or
&$et$er it is publis$e as a pri#te book. De re3omme# t$is 4i3e#se pri#3ipall+ 6or &orks &$ose
purpose is si#stru3tio# or re6ere#3e.
%pplica)ility and 0einitions
8$is 4i3e#se applies to a#+ ma#ual or ot$er &ork t$at 3o#tai#s a #oti3e pla3e b+ t$e 3op+ri($t
$oler sa+i#( it 3a# be istribute u#er t$e terms o6 t$is 4i3e#se. 8$e S2o3ume#tS. belo&. re6ers to
a#+ su3$ ma#ual or &ork. *#+ member o6 t$e publi3 is a li3e#see. a# is aresse as S+ouS.
* SEoi6ie 5ersio#S o6 t$e 2o3ume#t mea#s a#+ &ork 3o#tai#i#( t$e 2o3ume#t or a portio# o6 it.
eit$er 3opie ,erbatim. or &it$ moi6i3atio#s a#%or tra#slate i#to a#ot$er la#(ua(e.
* SSe3o#ar+ Se3tio#S is a #ame appe#iC or a 6ro#tcmatter se3tio# o6 t$e 2o3ume#t t$at eals
eC3lusi,el+ &it$ t$e relatio#s$ip o6 t$e publis$ers or aut$ors o6 t$e 2o3ume#t to t$e 2o3ume#tUs
o,erall sub:e3t (or to relate matters! a# 3o#tai#s #ot$i#( t$at 3oul 6all ire3tl+ &it$i# t$at o,erall
sub:e3t. (1or eCample. i6 t$e 2o3ume#t is i# part a teCtbook o6 mat$emati3s. a Se3o#ar+ Se3tio#
ma+ #ot eCplai# a#+ mat$emati3s.! 8$e relatio#s$ip 3oul be a matter o6 $istori3al 3o##e3tio# &it$
t$e sub:e3t or &it$ relate matters. or o6 le(al. 3ommer3ial. p$ilosop$i3al. et$i3al or
politi3al positio# re(ari#( t$em.
8$e SI#,aria#t Se3tio#sS are 3ertai# Se3o#ar+ Se3tio#s &$ose titles are esi(#ate. as bei#( t$ose
o6 I#,aria#t Se3tio#s. i# t$e #oti3e t$at sa+s t$at t$e 2o3ume#t is release u#er t$is 4i3e#se.
8$e SCo,er 8eCtsS are 3ertai# s$ort passa(es o6 teCt t$at are liste. as 1ro#tcCo,er 8eCts or
100
"a3kcCo,er 8eCts. i# t$e #oti3e t$at sa+s t$at t$e 2o3ume#t is release u#er t$is 4i3e#se.
* S8ra#spare#tS 3op+ o6 t$e 2o3ume#t mea#s a ma3$i#ecreaable 3op+. represe#te i# a 6ormat
&$ose spe3i6i3atio# is a,ailable to t$e (e#eral publi3. &$ose 3o#te#ts 3a# be ,ie&e a# eite
ire3tl+ a# strai($t6or&arl+ &it$ (e#eri3 teCt eitors or (6or ima(es 3ompose o6 piCels! (e#eri3
pai#t pro(rams or (6or ra&i#(s! some &iel+ a,ailable ra&i#( eitor. a# t$at is suitable 6or i#put
to teCt 6ormatters or 6or automati3 tra#slatio# to a ,ariet+ o6 6ormats suitable 6or i#put to teCt
6ormatters. * 3op+ mae i# a# ot$er&ise 8ra#spare#t 6ile 6ormat &$ose markup $as bee#
esi(#e to t$&art or is3oura(e subse\ue#t moi6i3atio# b+ reaers is #ot 8ra#spare#t. * 3op+
t$at is #ot S8ra#spare#tS is 3alle SOpa\ueS. ;Camples o6 suitable 6ormats 6or 8ra#spare#t 3opies
i#3lue plai# *SCII &it$out markup. 8eCi#6o i#put 6ormat. 4a8eI i#put 6ormat. S/E4 or IE4
usi#( a publi3l+ a,ailable 282. a# sta#arc3o#6ormi#( simple H8E4 esi(#e 6or $uma#
moi6i3atio#. Opa\ue 6ormats i#3lue PostS3ript. P21. proprietar+ 6ormats t$at 3a# be rea a#
eite o#l+ b+ proprietar+ &or pro3essors. S/E4 or IE4 6or &$i3$ t$e 282 a#%or pro3essi#(
tools are #ot (e#erall+ a,ailable. a# t$e ma3$i#ec(e#erate H8E4 prou3e b+ some &or
pro3essors 6or output purposes o#l+. 8$e S8itle Pa(eS mea#s. 6or a pri#te book. t$e title pa(e itsel6.
plus su3$ 6ollo&i#( pa(es as are #eee to $ol. le(ibl+. t$e material t$is 4i3e#se re\uires to appear
i# t$e title pa(e. 1or &orks i# 6ormats &$i3$ o #ot $a,e a#+ title pa(e as su3$. S8itle Pa(eS mea#s
t$e teCt #ear t$e most promi#e#t appeara#3e o6 t$e &orkUs title. pre3ei#( t$e be(i##i#( o6 t$e bo+
o6 t$e teCt.
(er)ati! Copying
dou ma+ 3op+ a# istribute t$e 2o3ume#t i# a#+ meium. eit$er 3ommer3iall+ or
#o#3ommer3iall+. pro,ie t$at t$is 4i3e#se. t$e 3op+ri($t #oti3es. a# t$e li3e#se #oti3e sa+i#(
t$is 4i3e#se applies to t$e 2o3ume#t are reprou3e i# all 3opies. a# t$at +ou a #o ot$er
3o#itio#s &$atsoe,er to t$ose o6 t$is 4i3e#se. dou ma+ #ot use te3$#i3al measures to obstru3t or
3o#trol t$e reai#( or 6urt$er 3op+i#( o6 t$e 3opies +ou make or istribute. Ho&e,er. +ou ma+
a33ept 3ompe#satio# i# eC3$a#(e 6or 3opies. I6 +ou istribute a lar(e e#ou($ #umber o6 3opies +ou
must also 6ollo& t$e 3o#itio#s i# se3tio# 3.

dou ma+ also le# 3opies. u#er t$e same 3o#itio#s state abo,e. a# +ou ma+ publi3l+ ispla+
3opies.
Copying in Kuantity
I6 +ou publis$ pri#te 3opies o6 t$e 2o3ume#t #umberi#( more t$a# 100. a# t$e 2o3ume#tUs
li3e#se #oti3e re\uires Co,er 8eCts. +ou must e#3lose t$e 3opies i# 3o,ers t$at 3arr+. 3learl+ a#
le(ibl+. all t$ese Co,er 8eCts: 1ro#tcCo,er 8eCts o# t$e 6ro#t 3o,er. a# "a3kcCo,er 8eCts o# t$e
ba3k 3o,er. "ot$ 3o,ers must also 3learl+ a# le(ibl+ ie#ti6+ +ou as t$e publis$er o6 t$ese 3opies.
8$e 6ro#t 3o,er must prese#t t$e 6ull title &it$ all &ors o6 t$e title e\uall+ promi#e#t a# ,isible.
dou ma+ a ot$er material o# t$e 3o,ers i# aitio#. Cop+i#( &it$ 3$a#(es limite to t$e 3o,ers.
as lo#( as t$e+ preser,e t$e title o6 t$e 2o3ume#t a# satis6+ t$ese 3o#itio#s. 3a# be treate as
,erbatim 3op+i#( i# ot$er respe3ts.
I6 t$e re\uire teCts 6or eit$er 3o,er are too ,olumi#ous to 6it le(ibl+. +ou s$oul put t$e 6irst o#es
liste (as ma#+ as 6it reaso#abl+! o# t$e a3tual 3o,er. a# 3o#ti#ue t$e rest o#to a:a3e#t pa(es.
I6 +ou publis$ or istribute Opa\ue 3opies o6 t$e 2o3ume#t #umberi#( more t$a# 100. +ou must
101
eit$er i#3lue a ma3$i#ecreaable 8ra#spare#t 3op+ alo#( &it$ ea3$ Opa\ue 3op+. or state i# or
&it$ ea3$ Opa\ue 3op+ a publi3l+ca33essible 3omputerc#et&ork lo3atio# 3o#tai#i#( a 3omplete
8ra#spare#t 3op+ o6 t$e 2o3ume#t. 6ree o6 ae material. &$i3$ t$e (e#eral #et&orkcusi#( publi3
$as a33ess to o&#loa a#o#+mousl+ at #o 3$ar(e usi#( publi3csta#ar #et&ork proto3ols. I6 +ou
use t$e latter optio#. +ou must take reaso#abl+ prue#t steps. &$e# +ou be(i# istributio# o6
Opa\ue 3opies i# \ua#tit+. to e#sure t$at t$is 8ra#spare#t 3op+ &ill remai# t$us a33essible at t$e
state lo3atio# u#til at least o#e +ear a6ter t$e last time +ou istribute a# Opa\ue 3op+ (ire3tl+ or
t$rou($ +our a(e#ts or retailers! o6 t$at eitio# to t$e publi3.
It is re\ueste. but #ot re\uire. t$at +ou 3o#ta3t t$e aut$ors o6 t$e 2o3ume#t &ell be6ore
reistributi#( a#+ lar(e #umber o6 3opies. to (i,e t$em a 3$a#3e to pro,ie +ou &it$ a# upate
,ersio# o6 t$e 2o3ume#t.
+odiication
dou ma+ 3op+ a# istribute a Eoi6ie 5ersio# o6 t$e 2o3ume#t u#er t$e 3o#itio#s o6 se3tio#s 2
a# 3 abo,e. pro,ie t$at +ou release t$e Eoi6ie 5ersio# u#er pre3isel+ t$is 4i3e#se. &it$ t$e
Eoi6ie 5ersio# 6illi#( t$e role o6 t$e 2o3ume#t. t$us li3e#si#( istributio# a# moi6i3atio# o6
t$e Eoi6ie 5ersio# to &$oe,er possesses a 3op+ o6
it. I# aitio#. +ou must o t$ese t$i#(s i# t$e Eoi6ie 5ersio#:
*. Use i# t$e 8itle Pa(e (a# o# t$e 3o,ers. i6 a#+! a title isti#3t 6rom t$at o6 t$e 2o3ume#t. a#
6rom t$ose o6 pre,ious ,ersio#s (&$i3$ s$oul. i6 t$ere &ere a#+. be liste i# t$e Histor+ se3tio# o6
t$e 2o3ume#t!. dou ma+ use t$e same title as a pre,ious ,ersio# i6 t$e ori(i#al publis$er o6 t$at
,ersio# (i,es permissio#.
". 4ist o# t$e 8itle Pa(e. as aut$ors. o#e or more perso#s or e#tities respo#sible 6or aut$ors$ip o6
t$e moi6i3atio#s i# t$e Eoi6ie 5ersio#. to(et$er &it$ at least 6i,e o6 t$e pri#3ipal aut$ors o6 t$e
2o3ume#t (all o6 its pri#3ipal aut$ors. i6 it $as less t$a# 6i,e!.
C. State o# t$e 8itle pa(e t$e #ame o6 t$e publis$er o6 t$e Eoi6ie 5ersio#. as t$e publis$er.
2. Preser,e all t$e 3op+ri($t #oti3es o6 t$e 2o3ume#t.
;. * a# appropriate 3op+ri($t #oti3e 6or +our moi6i3atio#s a:a3e#t to t$e ot$er 3op+ri($t
#oti3es.
1. I#3lue. immeiatel+ a6ter t$e 3op+ri($t #oti3es. a li3e#se #oti3e (i,i#( t$e publi3 permissio# to
use t$e Eoi6ie 5ersio# u#er t$e terms o6 t$is 4i3e#se. i# 8$e aut$or(s! a# publis$er(s! o6 t$e
2o3ume#t o #ot b+ t$is 4i3e#se (i,e permissio# to use t$eir #ames 6or publi3it+ 6or or to assert or
impl+ e#orseme#t o6 a#+ Eoi6ie 5ersio#. t$e 6orm s$o&# i# t$e *e#um belo&.
/. Preser,e i# t$at li3e#se #oti3e t$e 6ull lists o6 I#,aria#t Se3tio#s a# re\uire Co,er 8eCts (i,e#
i# t$e 2o3ume#tUs li3e#se #oti3e.
H. I#3lue a# u#altere 3op+ o6 t$is 4i3e#se.
I. Preser,e t$e se3tio# e#title SHistor+S. a# its title. a# a to it a# item stati#( at least t$e title.
+ear. #e& aut$ors. a# publis$er o6 t$e Eoi6ie 5ersio# as (i,e# o# t$e 8itle Pa(e. I6 t$ere is #o
se3tio# e#title SHistor+S i# t$e 2o3ume#t. 3reate o#e stati#( t$e title. +ear. aut$ors. a# publis$er
102
o6 t$e 2o3ume#t as (i,e# o# its 8itle Pa(e. t$e# a a# item es3ribi#( t$e Eoi6ie 5ersio# as
state i# t$e pre,ious se#te#3e.
). Preser,e t$e #et&ork lo3atio#. i6 a#+. (i,e# i# t$e 2o3ume#t 6or publi3 a33ess to a 8ra#spare#t
3op+ o6 t$e 2o3ume#t. a# like&ise t$e #et&ork lo3atio#s (i,e# i# t$e 2o3ume#t 6or pre,ious
,ersio#s it &as base o#. 8$ese ma+ be pla3e i# t$e SHistor+S se3tio#. dou ma+ omit a #et&ork
lo3atio# 6or a &ork t$at &as publis$e at least 6our +ears be6ore t$e 2o3ume#t itsel6. or i6 t$e
ori(i#al publis$er o6 t$e ,ersio# it re6ers to (i,es permissio#.
A. I# a#+ se3tio# e#title S*3k#o&le(eme#tsS or S2ei3atio#sS. preser,e t$e se3tio#Us title. a#
preser,e i# t$e se3tio# all t$e substa#3e a# to#e o6 ea3$ o6 t$e 3o#tributor a3k#o&le(eme#ts
a#%or ei3atio#s (i,e# t$erei#.
4. Preser,e all t$e I#,aria#t Se3tio#s o6 t$e 2o3ume#t. u#altere i# t$eir teCt a# i# t$eir titles.
Se3tio# #umbers or t$e e\ui,ale#t are #ot 3o#siere part o6 t$e se3tio# titles.
E. 2elete a#+ se3tio# e#title S;#orseme#tsS. Su3$ a se3tio# ma+ #ot be i#3lue i# t$e Eoi6ie
5ersio#.
0. 2o #ot retitle a#+ eCisti#( se3tio# as S;#orseme#tsS or to 3o#6li3t i# title &it$ a#+ I#,aria#t
Se3tio#.
I6 t$e Eoi6ie 5ersio# i#3lues #e& 6ro#tcmatter se3tio#s or appe#i3es t$at \uali6+ as Se3o#ar+
Se3tio#s a# 3o#tai# #o material 3opie 6rom t$e 2o3ume#t. +ou ma+ at +our optio# esi(#ate
some or all o6 t$ese se3tio#s as i#,aria#t. 8o o t$is. a t$eir titles to t$e list o6 I#,aria#t Se3tio#s
i# t$e Eoi6ie 5ersio#Us li3e#se #oti3e. 8$ese titles must be isti#3t 6rom a#+ ot$er se3tio# titles.
dou ma+ a a se3tio# e#title S;#orseme#tsS. pro,ie it 3o#tai#s #ot$i#( but e#orseme#ts o6
+our Eoi6ie 5ersio# b+ ,arious partiescc6or eCample. stateme#ts o6 peer re,ie& or t$at t$e teCt
$as bee# appro,e b+ a# or(a#i-atio# as t$e aut$oritati,e e6i#itio# o6 a sta#ar. dou ma+ a a
passa(e o6 up to 6i,e &ors as a 1ro#tcCo,er 8eCt. a# a passa(e o6 up to 2B &ors as a
"a3kcCo,er 8eCt. to t$e e# o6 t$e list o6 Co,er 8eCts i# t$e Eoi6ie 5ersio#. O#l+ o#e passa(e o6
1ro#tcCo,er 8eCt a# o#e o6 "a3kcCo,er 8eCt ma+ be ae b+ (or t$rou($ arra#(eme#ts mae
b+! a#+ o#e e#tit+. I6 t$e 2o3ume#t alrea+ i#3lues a 3o,er teCt 6or t$e same 3o,er. pre,iousl+
ae b+ +ou or b+ arra#(eme#t mae b+ t$e same e#tit+ +ou are a3ti#( o# be$al6 o6. +ou ma+ #ot
a a#ot$er7 but +ou ma+ repla3e t$e ol o#e. o# eCpli3it permissio# 6rom t$e 8$e aut$or(s! a#
publis$er(s! o6 t$e 2o3ume#t o #ot b+ t$is 4i3e#se (i,e permissio# to use t$eir #ames 6or publi3it+
6or or to assert or impl+ e#orseme#t o6 a#+ Eoi6ie 5ersio#.
Co!)ining 0ocu!entLs
dou ma+ 3ombi#e t$e 2o3ume#t &it$ ot$er o3ume#ts release u#er t$is 4i3e#se. u#er t$e terms
e6i#e i# se3tio# ? abo,e 6or moi6ie ,ersio#s. pro,ie t$at +ou i#3lue i# t$e 3ombi#atio# all
o6 t$e I#,aria#t Se3tio#s o6 all o6 t$e ori(i#al o3ume#ts. u#moi6ie. a# list t$em all as I#,aria#t
Se3tio#s o6 +our 3ombi#e &ork i# its li3e#se #oti3e.
8$e 3ombi#e &ork #ee o#l+ 3o#tai# o#e 3op+ o6 t$is 4i3e#se. a# multiple ie#ti3al I#,aria#t
Se3tio#s ma+ be repla3e &it$ a si#(le 3op+. I6 t$ere are multiple I#,aria#t Se3tio#s &it$ t$e same
#ame but i66ere#t 3o#te#ts. make t$e title o6 ea3$ su3$ se3tio# u#i\ue b+ ai#( at t$e e# o6 it. i#
pare#t$eses. t$e #ame o6 t$e ori(i#al aut$or or publis$er o6 t$at se3tio# i6 k#o&#. or else a u#i\ue
103
#umber. Eake t$e same a:ustme#t to t$e se3tio# titles i# t$e list o6 I#,aria#t Se3tio#s i# t$e li3e#se
#oti3e o6 t$e 3ombi#e &ork.
I# t$e 3ombi#atio#. +ou must 3ombi#e a#+ se3tio#s e#title SHistor+S i# t$e ,arious ori(i#al
o3ume#ts. 6ormi#( o#e se3tio# e#title SHistor+S7 like&ise 3ombi#e a#+ se3tio#s e#title
S*3k#o&le(eme#tsS. a# a#+ se3tio#s e#title S2ei3atio#sS. dou must elete all se3tio#s e#title
S;#orseme#ts.S
Collection o 0ocu!entLs
dou ma+ make a 3olle3tio# 3o#sisti#( o6 t$e 2o3ume#t a# ot$er o3ume#ts release u#er t$is
4i3e#se. a# repla3e t$e i#i,iual 3opies o6 t$is 4i3e#se i# t$e ,arious o3ume#ts &it$ a si#(le
3op+ t$at is i#3lue i# t$e 3olle3tio#. pro,ie t$at +ou 6ollo& t$e rules o6 t$is 4i3e#se 6or
,erbatim 3op+i#( o6 ea3$ o6 t$e o3ume#ts i# all ot$er respe3ts.
dou ma+ eCtra3t a si#(le o3ume#t 6rom su3$ a 3olle3tio#. a# istribute it i#i,iuall+ u#er t$is
4i3e#se. pro,ie +ou i#sert a 3op+ o6 t$is 4i3e#se i#to t$e eCtra3te o3ume#t. a# 6ollo& t$is
4i3e#se i# all ot$er respe3ts re(ari#( ,erbatim 3op+i#( o6 t$at o3ume#t.
%ggregation #ith Independent "orks
* 3ompilatio# o6 t$e 2o3ume#t or its eri,ati,es &it$ ot$er separate a# i#epe#e#t o3ume#ts or
&orks. i# or o# a ,olume o6 a stora(e or istributio# meium. oes #ot as a &$ole 3ou#t as a
Eoi6ie 5ersio# o6 t$e 2o3ume#t. pro,ie #o 3ompilatio# 3op+ri($t is 3laime 6or t$e
3ompilatio#. Su3$ a 3ompilatio# is 3alle a# Sa((re(ateS. a# t$is 4i3e#se oes #ot appl+ to t$e
ot$er sel6c3o#tai#e &orks t$us 3ompile &it$ t$e 2o3ume#t. o# a33ou#t o6 t$eir bei#( t$us
3ompile. i6 t$e+ are #ot t$emsel,es eri,ati,e &orks o6 t$e 2o3ume#t.
I6 t$e Co,er 8eCt re\uireme#t o6 se3tio# 3 is appli3able to t$ese 3opies o6 t$e 2o3ume#t. t$e# i6 t$e
2o3ume#t is less t$a# o#e \uarter o6 t$e e#tire a((re(ate. t$e 2o3ume#tUs Co,er 8eCts ma+ be
pla3e o# 3o,ers t$at surrou# o#l+ t$e 2o3ume#t &it$i# t$e a((re(ate. Ot$er&ise t$e+ must
appear o# 3o,ers arou# t$e &$ole a((re(ate.
,ranslation
8ra#slatio# is 3o#siere a ki# o6 moi6i3atio#. so +ou ma+ istribute tra#slatio#s o6 t$e 2o3ume#t
u#er t$e terms o6 se3tio# ?. 9epla3i#( I#,aria#t Se3tio#s &it$ tra#slatio#s re\uires spe3ial
permissio# 6rom t$eir 3op+ri($t $olers. but +ou ma+ i#3lue tra#slatio#s o6 some or all I#,aria#t
Se3tio#s i# aitio# to t$e ori(i#al ,ersio#s o6 t$ese I#,aria#t Se3tio#s. dou ma+ i#3lue a
tra#slatio# o6 t$is 4i3e#se pro,ie t$at +ou also i#3lue t$e ori(i#al ;#(lis$ ,ersio# o6 t$is
4i3e#se. I# 3ase o6 a isa(reeme#t bet&ee# t$e tra#slatio# a# t$e ori(i#al ;#(lis$ ,ersio# o6 t$is
4i3e#se. t$e ori(i#al ;#(lis$ ,ersio# &ill pre,ail.
,er!ination
dou ma+ #ot 3op+. moi6+. subli3e#se. or istribute t$e 2o3ume#t eC3ept as eCpressl+ pro,ie 6or
u#er t$is 4i3e#se. *#+ ot$er attempt to 3op+. moi6+. subli3e#se or istribute t$e 2o3ume#t is
,oi. a# &ill automati3all+ termi#ate +our ri($ts u#er t$is 4i3e#se. Ho&e,er. parties &$o $a,e
10?
re3ei,e 3opies. or ri($ts. 6rom +ou u#er t$is 4i3e#se &ill #ot $a,e t$eir li3e#ses termi#ate so
lo#( as su3$ parties remai# i# 6ull 3omplia#3e.
-uture o ;e&isions o ,his License
8$e 1ree So6t&are 1ou#atio# ma+ publis$ #e&. re,ise ,ersio#s o6 t$e /0U 1ree 2o3ume#tatio#
4i3e#se 6rom time to time. Su3$ #e& ,ersio#s &ill be similar i# spirit to t$e prese#t ,ersio#. but
ma+ i66er i# etail to aress #e&problems or 3o#3er#s. See $ttp:%%&&&.(#u.or(%3op+le6t%
($ttp:%%&&&.(#u.or(%3op+le6t%!.
;a3$ ,ersio# o6 t$e 4i3e#se is (i,e# a isti#(uis$i#( ,ersio# #umber. I6 t$e 2o3ume#t spe3i6ies t$at
a parti3ular #umbere ,ersio# o6 t$is 4i3e#se Sor a#+ later ,ersio#S applies to it. +ou $a,e t$e
optio# o6 6ollo&i#( t$e terms a# 3o#itio#s eit$er o6 t$at spe3i6ie ,ersio# or o6 a#+ later ,ersio#
t$at $as bee# publis$e (#ot as a ra6t! b+ t$e 1ree So6t&are 1ou#atio#. I6 t$e 2o3ume#t oes #ot
spe3i6+ a ,ersio# #umber o6 t$is 4i3e#se. +ou ma+ 3$oose a#+ ,ersio# e,er publis$e (#ot as a
ra6t! b+ t$e 1ree So6t&are 1ou#atio#.
Ho# to Ise ,his License or ,his 0ocu!entLs
8o use t$is 4i3e#se i# a o3ume#t +ou $a,e &ritte#. i#3lue a 3op+ o6 t$e 4i3e#se i# t$e o3ume#t
a# put t$e 6ollo&i#( 3op+ri($t a# li3e#se #oti3es :ust a6ter t$e title pa(e:
Cop+ri($t (3! d;*9 dOU9 0*E;. Permissio# is (ra#te to 3op+. istribute a#%or moi6+ t$is
o3ume#t u#er t$e terms o6 t$e /0U 1ree 2o3ume#tatio# 4i3e#se. 5ersio# 1.1 or a#+ later
,ersio# publis$e b+ t$e 1ree So6t&are 1ou#atio#7 &it$ t$e I#,aria#t Se3tio#s bei#( 4IS8 8H;I9
8I84;S. &it$ t$e 1ro#tcCo,er 8eCts bei#( 4IS8. a# &it$ t$e "a3kcCo,er 8eCts bei#( 4IS8. *
3op+ o6 t$e li3e#se is i#3lue i# t$e se3tio# e#title S/0U 1ree 2o3ume#tatio# 4i3e#seS.
I6 +ou $a,e #o I#,aria#t Se3tio#s. &rite S&it$ #o I#,aria#t Se3tio#sS i#stea o6 sa+i#( &$i3$ o#es
are i#,aria#t. I6 +ou $a,e #o 1ro#tcCo,er 8eCts. &rite S#o 1ro#tcCo,er 8eCtsS i#stea o6
S1ro#tcCo,er 8eCts bei#( 4IS8S7 like&ise 6or "a3kcCo,er 8eCts.
I6 +our o3ume#t 3o#tai#s #o#tri,ial eCamples o6 pro(ram 3oe. &e re3omme# releasi#( t$ese
eCamples i# parallel u#er +our 3$oi3e o6 6ree so6t&are li3e#se. su3$ as t$e /0U /e#eral Publi3
4i3e#se. to permit t$eir use i# 6ree so6t&are.
10B
,entang Python License
History o Sot#are
P+t$o# &as 3reate i# t$e earl+ 1==0s b+ /uio ,a# 9ossum at Sti3$ti#( Eat$ematis3$ Ce#trum
(CDI. see $ttp:%%&&&.3&i.#l%! i# t$e 0et$erla#s as a su33essor o6 a la#(ua(e 3alle *"C. /uio
remai#s P+t$o#es pri#3ipal aut$or. alt$ou($ it i#3lues ma#+ 3o#tributio#s 6rom ot$ers.
I# 1==B. /uio 3o#ti#ue $is &ork o# P+t$o# at t$e Corporatio# 6or 0atio#al 9esear3$ I#itiati,es
(C09I. see $ttp:%%&&&.3#ri.resto#.,a.us%! i# 9esto#. 5ir(i#ia &$ere $e release se,eral ,ersio#s o6
t$e so6t&are.
I# Ea+ 2000. /uio a# t$e P+t$o# 3ore e,elopme#t team mo,e to "eOpe#.3om to 6orm t$e
"eOpe# P+t$o#4abs team. I# O3tober o6 t$e same +ear. t$e P+t$o#4abs team mo,e to 2i(ital
Creatio#s (#o& <ope Corporatio#7 see $ttp:%%&&&.-ope.3om%!. I# 2001. t$e P+t$o# So6t&are
1ou#atio# (PS1. see $ttp:%%&&&.p+t$o#.or(%ps6%! &as 6orme. a #o#'pro6it or(a#i-atio# 3reate
spe3i6i3all+ to o&# P+t$o#'relate I#telle3tual Propert+. <ope Corporatio# is a spo#sori#( member
o6 t$e PS1.
,er!s and conditions or accessing or other#ise using Python
PS1 4IC;0S; */9;;E;08 1O9 Pd8HO0 2.@
1. 8$is 4IC;0S; */9;;E;08 is bet&ee# t$e P+t$o# So6t&are 1ou#atio# (FPS1G!. a# t$e
I#i,iual or Or(a#i-atio# (F4i3e#seeG! a33essi#( a# ot$er&ise usi#( P+t$o# 2.@ so6t&are i#
sour3e or bi#ar+ 6orm a# its asso3iate o3ume#tatio#.
2. Sub:e3t to t$e terms a# 3o#itio#s o6 t$is 4i3e#se *(reeme#t. PS1 $ereb+ (ra#ts 4i3e#see a
#o#eC3lusi,e. ro+alt+'6ree. &orl'&ie li3e#se to reprou3e. a#al+-e. test. per6orm a#%or ispla+
publi3l+. prepare eri,ati,e &orks. istribute. a# ot$er&ise use P+t$o# 2.@ alo#e or i# a#+
eri,ati,e ,ersio#. pro,ie. $o&e,er. t$at PS1es 4i3e#se *(reeme#t a# PS1es #oti3e o6 3op+ri($t.
i.e.. FCop+ri($t f 2001'2010 P+t$o# So6t&are 1ou#atio#7 *ll 9i($ts 9eser,eG are retai#e i#
P+t$o# 2.@ alo#e or i# a#+ eri,ati,e ,ersio# prepare b+ 4i3e#see.
3. I# t$e e,e#t 4i3e#see prepares a eri,ati,e &ork t$at is base o# or i#3orporates P+t$o# 2.@ or
a#+ part t$ereo6. a# &a#ts to make t$e eri,ati,e &ork a,ailable to ot$ers as pro,ie $erei#. t$e#
4i3e#see $ereb+ a(rees to i#3lue i# a#+ su3$ &ork a brie6 summar+ o6 t$e 3$a#(es mae to P+t$o#
2.@.
?. PS1 is maki#( P+t$o# 2.@ a,ailable to 4i3e#see o# a# F*S ISG basis. PS1 E*A;S 0O
9;P9;S;08*8IO0S O9 D*99*08I;S. ;IP9;SS O9 IEP4I;2. "d D*d O1 ;I*EP4;.
"U8 0O8 4IEI8*8IO0. PS1 E*A;S 0O *02 2ISC4*IES *0d 9;P9;S;08*8IO0 O9
D*99*08d O1 E;9CH*08*"I4I8d O9 1I80;SS 1O9 *0d P*98ICU4*9 PU9POS; O9
8H*8 8H; US; O1 Pd8HO0 2.@ DI44 0O8 I019I0/; *0d 8HI92 P*98d 9I/H8S.
B. PS1 SH*44 0O8 "; 4I*"4; 8O 4IC;0S;; O9 *0d O8H;9 US;9S O1 Pd8HO0 2.@
1O9 *0d I0CI2;08*4. SP;CI*4. O9 CO0S;JU;08I*4 2*E*/;S O9 4OSS *S *
9;SU48 O1 EO2I1dI0/. 2IS89I"U8I0/. O9 O8H;9DIS; USI0/ Pd8HO0 2.@. O9 *0d
2;9I5*8I5; 8H;9;O1. ;5;0 I1 *25IS;2 O1 8H; POSSI"I4I8d 8H;9;O1.
10>
>. 8$is 4i3e#se *(reeme#t &ill automati3all+ termi#ate upo# a material brea3$ o6 its terms a#
3o#itio#s.
@. 0ot$i#( i# t$is 4i3e#se *(reeme#t s$all be eeme to 3reate a#+ relatio#s$ip o6 a(e#3+.
part#ers$ip. or :oi#t ,e#ture bet&ee# PS1 a# 4i3e#see. 8$is 4i3e#se *(reeme#t oes #ot (ra#t
permissio# to use PS1 traemarks or trae #ame i# a traemark se#se to e#orse or promote
prou3ts or ser,i3es o6 4i3e#see. or a#+ t$ir part+.
8. "+ 3op+i#(. i#stalli#( or ot$er&ise usi#( P+t$o# 2.@. 4i3e#see a(rees to be bou# b+ t$e terms
a# 3o#itio#s o6 t$is 4i3e#se *(reeme#t.
";OP;0.COE 4IC;0S; */9;;E;08 1O9 Pd8HO0 2.0
";OP;0 Pd8HO0 OP;0 SOU9C; 4IC;0S; */9;;E;08 5;9SIO0 1
1. 8$is 4IC;0S; */9;;E;08 is bet&ee# "eOpe#.3om (F"eOpe#G!. $a,i#( a# o66i3e at 1>0
Sarato(a *,e#ue. Sa#ta Clara. C* =B0B1. a# t$e I#i,iual or Or(a#i-atio# (F4i3e#seeG!
a33essi#( a# ot$er&ise usi#( t$is so6t&are i# sour3e or bi#ar+ 6orm a# its asso3iate
o3ume#tatio# (Ft$e So6t&areG!.
2. Sub:e3t to t$e terms a# 3o#itio#s o6 t$is "eOpe# P+t$o# 4i3e#se *(reeme#t. "eOpe# $ereb+
(ra#ts 4i3e#see a #o#'eC3lusi,e. ro+alt+'6ree. &orl'&ie li3e#se to reprou3e. a#al+-e. test.
per6orm a#%or ispla+ publi3l+. prepare eri,ati,e &orks. istribute. a# ot$er&ise use t$e
So6t&are alo#e or i# a#+ eri,ati,e ,ersio#. pro,ie. $o&e,er. t$at t$e "eOpe# P+t$o# 4i3e#se is
retai#e i# t$e So6t&are. alo#e or i# a#+ eri,ati,e ,ersio# prepare b+ 4i3e#see.
3. "eOpe# is maki#( t$e So6t&are a,ailable to 4i3e#see o# a# F*S ISG basis. ";OP;0 E*A;S
0O 9;P9;S;08*8IO0S O9 D*99*08I;S. ;IP9;SS O9 IEP4I;2. "d D*d O1
;I*EP4;. "U8 0O8 4IEI8*8IO0. ";OP;0 E*A;S 0O *02 2ISC4*IES *0d
9;P9;S;08*8IO0 O9 D*99*08d O1 E;9CH*08*"I4I8d O9 1I80;SS 1O9 *0d
P*98ICU4*9 PU9POS; O9 8H*8 8H; US; O1 8H; SO18D*9; DI44 0O8 I019I0/;
*0d 8HI92 P*98d 9I/H8S.
?. ";OP;0 SH*44 0O8 "; 4I*"4; 8O 4IC;0S;; O9 *0d O8H;9 US;9S O1 8H;
SO18D*9; 1O9 *0d I0CI2;08*4. SP;CI*4. O9 CO0S;JU;08I*4 2*E*/;S O9
4OSS *S * 9;SU48 O1 USI0/. EO2I1dI0/ O9 2IS89I"U8I0/ 8H; SO18D*9;. O9
*0d 2;9I5*8I5; 8H;9;O1. ;5;0 I1 *25IS;2 O1 8H; POSSI"I4I8d 8H;9;O1.
B. 8$is 4i3e#se *(reeme#t &ill automati3all+ termi#ate upo# a material brea3$ o6 its terms a#
3o#itio#s.
>. 8$is 4i3e#se *(reeme#t s$all be (o,er#e b+ a# i#terprete i# all respe3ts b+ t$e la& o6 t$e
State o6 Cali6or#ia. eC3lui#( 3o#6li3t o6 la& pro,isio#s. 0ot$i#( i# t$is 4i3e#se *(reeme#t s$all be
eeme to 3reate a#+ relatio#s$ip o6 a(e#3+. part#ers$ip. or :oi#t ,e#ture bet&ee# "eOpe# a#
4i3e#see. 8$is 4i3e#se *(reeme#t oes #ot (ra#t permissio# to use "eOpe# traemarks or trae
#ames i# a traemark se#se to e#orse or promote prou3ts or ser,i3es o6 4i3e#see. or a#+ t$ir
part+. *s a# eC3eptio#. t$e F"eOpe# P+t$o#G lo(os a,ailable at
$ttp:%%&&&.p+t$o#labs.3om%lo(os.$tml ma+ be use a33ori#( to t$e permissio#s (ra#te o# t$at
&eb pa(e.
@. "+ 3op+i#(. i#stalli#( or ot$er&ise usi#( t$e so6t&are. 4i3e#see a(rees to be bou# b+ t$e terms
a# 3o#itio#s o6 t$is 4i3e#se *(reeme#t.
C09I 4IC;0S; */9;;E;08 1O9 Pd8HO0 1.>.1
1. 8$is 4IC;0S; */9;;E;08 is bet&ee# t$e Corporatio# 6or 0atio#al 9esear3$ I#itiati,es.
$a,i#( a# o66i3e at 18=B Presto# D$ite 2ri,e. 9esto#. 5* 201=1 (FC09IG!. a# t$e I#i,iual or
Or(a#i-atio# (F4i3e#seeG! a33essi#( a# ot$er&ise usi#( P+t$o# 1.>.1 so6t&are i# sour3e or bi#ar+
10@
6orm a# its asso3iate o3ume#tatio#.
2. Sub:e3t to t$e terms a# 3o#itio#s o6 t$is 4i3e#se *(reeme#t. C09I $ereb+ (ra#ts 4i3e#see a
#o#eC3lusi,e. ro+alt+'6ree. &orl'&ie li3e#se to reprou3e. a#al+-e. test. per6orm a#%or ispla+
publi3l+. prepare eri,ati,e &orks. istribute. a# ot$er&ise use P+t$o# 1.>.1 alo#e or i# a#+
eri,ati,e ,ersio#. pro,ie. $o&e,er. t$at C09Ies 4i3e#se *(reeme#t a# C09Ies #oti3e o6
3op+ri($t. i.e.. FCop+ri($t f 1==B'2001 Corporatio# 6or 0atio#al 9esear3$ I#itiati,es7 *ll 9i($ts
9eser,eG are retai#e i# P+t$o# 1.>.1 alo#e or i# a#+ eri,ati,e ,ersio# prepare b+ 4i3e#see.
*lter#atel+. i# lieu o6 C09Ies 4i3e#se *(reeme#t. 4i3e#see ma+ substitute t$e 6ollo&i#( teCt
(omitti#( t$e \uotes!: FP+t$o# 1.>.1 is mae a,ailable sub:e3t to t$e terms a# 3o#itio#s i# C09Ies
4i3e#se *(reeme#t. 8$is *(reeme#t to(et$er &it$ P+t$o# 1.>.1 ma+ be lo3ate o# t$e I#ter#et
usi#( t$e 6ollo&i#( u#i\ue. persiste#t ie#ti6ier (k#o&# as a $a#le!: 18=B.22%1013. 8$is
*(reeme#t ma+ also be obtai#e 6rom a proC+ ser,er o# t$e I#ter#et usi#( t$e 6ollo&i#( U94:
$ttp:%%$l.$a#le.#et%18=B.22%1013.G
3. I# t$e e,e#t 4i3e#see prepares a eri,ati,e &ork t$at is base o# or i#3orporates P+t$o# 1.>.1 or
a#+ part t$ereo6. a# &a#ts to make t$e eri,ati,e &ork a,ailable to ot$ers as pro,ie $erei#. t$e#
4i3e#see $ereb+ a(rees to i#3lue i# a#+ su3$ &ork a brie6 summar+ o6 t$e 3$a#(es mae to P+t$o#
1.>.1.
?. C09I is maki#( P+t$o# 1.>.1 a,ailable to 4i3e#see o# a# F*S ISG basis. C09I E*A;S 0O
9;P9;S;08*8IO0S O9 D*99*08I;S. ;IP9;SS O9 IEP4I;2. "d D*d O1 ;I*EP4;.
"U8 0O8 4IEI8*8IO0. C09I E*A;S 0O *02 2ISC4*IES *0d 9;P9;S;08*8IO0 O9
D*99*08d O1 E;9CH*08*"I4I8d O9 1I80;SS 1O9 *0d P*98ICU4*9 PU9POS; O9
8H*8 8H; US; O1 Pd8HO0 1.>.1 DI44 0O8 I019I0/; *0d 8HI92 P*98d 9I/H8S.
B. C09I SH*44 0O8 "; 4I*"4; 8O 4IC;0S;; O9 *0d O8H;9 US;9S O1 Pd8HO0 1.>.1
1O9 *0d I0CI2;08*4. SP;CI*4. O9 CO0S;JU;08I*4 2*E*/;S O9 4OSS *S *
9;SU48 O1 EO2I1dI0/. 2IS89I"U8I0/. O9 O8H;9DIS; USI0/ Pd8HO0 1.>.1. O9
*0d 2;9I5*8I5; 8H;9;O1. ;5;0 I1 *25IS;2 O1 8H; POSSI"I4I8d 8H;9;O1.
>. 8$is 4i3e#se *(reeme#t &ill automati3all+ termi#ate upo# a material brea3$ o6 its terms a#
3o#itio#s.
@. 8$is 4i3e#se *(reeme#t s$all be (o,er#e b+ t$e 6eeral i#telle3tual propert+ la& o6 t$e U#ite
States. i#3lui#( &it$out limitatio# t$e 6eeral 3op+ri($t la&. a#. to t$e eCte#t su3$ U.S. 6eeral
la& oes #ot appl+. b+ t$e la& o6 t$e Commo#&ealt$ o6 5ir(i#ia. eC3lui#( 5ir(i#iaes 3o#6li3t o6
la& pro,isio#s. 0ot&it$sta#i#( t$e 6ore(oi#(. &it$ re(ar to eri,ati,e &orks base o# P+t$o#
1.>.1 t$at i#3orporate #o#'separable material t$at &as pre,iousl+ istribute u#er t$e /0U
/e#eral Publi3 4i3e#se (/P4!. t$e la& o6 t$e Commo#&ealt$ o6 5ir(i#ia s$all (o,er# t$is 4i3e#se
*(reeme#t o#l+ as to issues arisi#( u#er or &it$ respe3t to Para(rap$s ?. B. a# @ o6 t$is 4i3e#se
*(reeme#t. 0ot$i#( i# t$is 4i3e#se *(reeme#t s$all be eeme to 3reate a#+ relatio#s$ip o6
a(e#3+. part#ers$ip. or :oi#t ,e#ture bet&ee# C09I a# 4i3e#see. 8$is 4i3e#se *(reeme#t oes #ot
(ra#t permissio# to use C09I traemarks or trae #ame i# a traemark se#se to e#orse or promote
prou3ts or ser,i3es o6 4i3e#see. or a#+ t$ir part+.
8. "+ 3li3ki#( o# t$e F*CC;P8G butto# &$ere i#i3ate. or b+ 3op+i#(. i#stalli#( or ot$er&ise
usi#( P+t$o# 1.>.1. 4i3e#see a(rees to be bou# b+ t$e terms a# 3o#itio#s o6 t$is 4i3e#se
*(reeme#t.
*CC;P8 CDI 4IC;0S; */9;;E;08 1O9 Pd8HO0 0.=.0 8H9OU/H 1.2
Cop+ri($t f 1==1 ' 1==B. Sti3$ti#( Eat$ematis3$ Ce#trum *msteram. 8$e 0et$erla#s. *ll ri($ts
reser,e.
Permissio# to use. 3op+. moi6+. a# istribute t$is so6t&are a# its o3ume#tatio# 6or a#+ purpose
108
a# &it$out 6ee is $ereb+ (ra#te. pro,ie t$at t$e abo,e 3op+ri($t #oti3e appear i# all 3opies a#
t$at bot$ t$at 3op+ri($t #oti3e a# t$is permissio# #oti3e appear i# supporti#( o3ume#tatio#. a#
t$at t$e #ame o6 Sti3$ti#( Eat$ematis3$ Ce#trum or CDI #ot be use i# a,ertisi#( or publi3it+
pertai#i#( to istributio# o6 t$e so6t&are &it$out spe3i6i3. &ritte# prior permissio#.
S8ICH8I0/ E*8H;E*8ISCH C;089UE 2ISC4*IES *44 D*99*08I;S DI8H 9;/*92
8O 8HIS SO18D*9;. I0C4U2I0/ *44 IEP4I;2 D*99*08I;S O1 E;9CH*08*"I4I8d
*02 1I80;SS. I0 0O ;5;08 SH*44 S8ICH8I0/ E*8H;E*8ISCH C;089UE ";
4I*"4; 1O9 *0d SP;CI*4. I02I9;C8 O9 CO0S;JU;08I*4 2*E*/;S O9 *0d
2*E*/;S DH*8SO;5;9 9;SU48I0/ 19OE 4OSS O1 US;. 2*8* O9 P9O1I8S.
DH;8H;9 I0 *0 *C8IO0 O1 CO089*C8. 0;/4I/;0C; O9 O8H;9 8O98IOUS
*C8IO0. *9ISI0/ OU8 O1 O9 I0 CO00;C8IO0 DI8H 8H; US; O9 P;91O9E*0C; O1
8HIS SO18D*9;.

You might also like