You are on page 1of 114

Hak Cipta

28 September 2013 Hak Cipta @ 2013 POSS UPI (kirim email ke : poss@upi.e u! "uku i#i iperba$arui terus a# bisa i apatka# 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 pub ished 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 inc uded in (entang GNU Free Documentation License. I-i# u#tuk me#+ali#. me# istribusika# a#%atau me#(uba$ isi okume# bera a 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# ti ak 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)amp e programs in this boo+ are free soft#are$ you can redistribute and/or modify them under the terms of the Python icense as pub ished by the Python "oft#are Foundation. Co#to$ pro(ram pa a 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 *e a-ar Pemrograman Python Dasar

Pe#ulis : 9i &a# 1a :ar Septia# ; itor : *# ri Pri+a#to 2esai# Sampul : Her i *(usti#a Pe#(a&as Pro+ek : <ia Ul$a6ie Pe#a#((u#( )a&ab : ;rik 9oma o#a

2isusu# ole$ : POSS UPI 8elp 08=8 >=>? @1? e'mail : poss@upi.e u &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 pa a #o ko#tak a# email +a#( terera iatas

Kata Pengantar

Pu:i a# s+ukur kita pa#:atka# atas ke$a irat'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#( pa a perkemba#(a# 1OSS a# 4i#uC. 8i ak $a#+a ke ua itu i perkemba#(a# tek#olo(i lai#++a P+t$o# $a ir seba(ai sala$ satu tek#olo(i mumpu#i +a#( patut kita pela:ari. "iasa#+a P+t$o# su a$ terta#am i istro istro terte#tu seperti Ubu#tu. 1e ora. a# Sla3k&are. P+t$o# se# iri merupaka# ba$asa pemro(rama# +a#( me# uku#( para i(ma ob-ect oriented programming ataupu# scripting. P+t$o# $a ir i ra#a$ sistem operasi. ,irtualisasi. :ari#(a# komputer. (ra6ika komputer. ke3er asa# buata#. tek#olo(i &eb. game, a# lai# seba(ai#+a. "uku i#i $a ir ba(i +a#( i#(i# asar asar P+t$o#. "uku i#i itu:uka# ba(i programmer pemula atau +a#( su a$ 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# kepa a "rama# it+o Prabo&o. kakak ti#(kat a# a#((ota POSS UPI :u(a +a#( su a$ 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 kepa a 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 kepa a Her i *(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 9oma o#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 pa a Ae+&or Fi6G..................................22 Pe#((u#aa# FelseG pa a Fi6G..............................................................................................23 Pe#((u#aa# Feli6G pa a Fi6G..............................................................................................2? Pe#((u#aa# FelseG pa a 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 pa a 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 pa a 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 pa a P+t$o#..........................................................................................BB 5ariable'le#(t$ *r(ume#t pa a P+t$o#.............................................................................B>

Ae+&or *r(ume#t pa a 1u#3tio#....................................................................................B@ Ae+&or 'le#(t$ *r(ume#t pa a 1u#3tio# ........................................................................B8 Pass b+ 9e6ere#3e a# Pass b+ 5alue pa a P+t$o#...........................................................>0 5ariable S3ope pa a 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 pa a 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# pa a Class a# Ob:e3t..........................................................8> 11. Pe#(e#ala# Eo ule......................................................................................................................88 Eo ule a# Pa3ka(es........................................................................................................8= Eembuat Eo ule Eo ule i alam Pa3ka(es...............................................................8= Ee#((u#aka# Eo ule 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. Instalasi Python
Lingkungan Python
2ari $ttp:%%&&&.tutorialspoi#t.3om%p+t$o#%p+t$o#He#,iro#me#t.$tm . ter apat beberapa li#(ku#(a# +a#( apat i$u#i P+t$o#. "erikut a ala$ 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$ insta er P+t$o# u#tuk U#iC%4i#uC i $ttp:%%&&&.p+t$o#.or(% o&#loa . Aemu ia#. U# u$ source code P+t$o# +a#( ibu#(kus ole$ .ip a# ikuti alur pe#(u# u$a##+a. Setela$ iu# u$ kemu ia# ekstrak insta er tersebut. Aemu ia# masuk ke irektori i#staller P+t$o#. )ika a a pe#(atura# k$usus +a#( ii#(i#ka#. edit fi e Eo ules%Setup pa a insta er. )ika pe#(atura# su a$ sesuai :ala#ka# peri#ta$ ./con igure. Hal i#i ilakuka# u#tuk ko#6i(urasi insta er P+t$o# pa a sistem operasi kita. Setela$ ko#6i(urasi beres. :ala#ka# peri#ta$ !ake u#tuk me#('compi e insta er P+t$o#. Setela$ itu baru :ala#ka# peri#ta$ !ake install u#tuk memulai proses i#stalasi. Fi e 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. Aemu ia# :a#(a# lupa u#tuk lakuka# pe#(atura# path a(ar bisa

2 ieksekusi i she . "erikut a ala$ beberapa pe#(atura# path pa a beberapa she : pe#(atura# path di she bas$ : eCport P*8H K FLP*8H:%usr%lo3al%bi#%p+t$o#G kemu ia# teka# e#ter pe#(atura# path di she 3s$ : sete#, P*8H K FLP*8H:%usr%lo3al%bi#%p+t$o#G kemu ia# teka# e#ter pe#(atura# path di she ks$ : P*8H K FLP*8H:%usr%lo3al%bi#%p+t$o#G kemu ia# 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# 1e ora. 2i beberapa sistem operasi ka a#( su a$ terta#am i alam#+a a# la#(su#( bisa i(u#aka# seperti i Ubu#tu a# 1e ora.

Install Python di "indo#s


U# u$ P+t$o# ari $ttp:%%&&&.p+t$o#.or(% o&#loa . Aemu ia# u# u$ insta er P+t$o# u#tuk Di# o&s. Setela$ ber$asil me#(u# u$. klik ua kali insta er 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 a ala$ ,ersi ari P+t$o# +a#( i(u#aka#. Aemu ia# 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 kemu ia# pili$ a# edit. tamba$ka# 7CMP+t$o#I.I ta#pa ta# a petik. Aemu ia# teka# OA. a# siap i:ala#ka# i 3m

*. 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 fi e P+t$o# ari command ine. *# a bisa me#((u#aka# interpreter prompt u#tuk seke ar me#ulis pro(ram ke3il. atau me#(u:i 3oba mo ul mo ul +a#( imiliki P+t$o#. U#tuk me#((u#aka##+a :ika sistem operasi *# a su a$ i' insta P+t$o#. 3oba pa#((il peri#ta$ python melalui command ine. 2a# :ika pe#(atura# path/#+a su a$ sesuai. aka# mu#3ul (ambar seperti berikut:

NN (ambar 2.1 p+t$o# i#terpreter prompt OO U#tuk keluar ari mo e interpreter prompt. (u#aka# kombi#asi 3trlP atau 3trlP- kemu ia# 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# fi e P+t$o# e#(a# ekste#si fi e Q.p+ .Aemu ia# atur :arak tab pa a te)t editor tersebut seba#+ak empat satua# a# isi tab tersebut i(a#ti e#(a# spasi atau memili$ me#u Frep ace by spaceG. "erikut a ala$ 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

8ampila# a#tarmuka Aomo o ; it a# tempat pe#(atura# i# e#tasi#+a :

NN (ambar 2.? Aomo o; 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 fi e P+t$o#. )ika su a$ per#a$ bela:ar pemro(rama#. *# a bisa pili$ te)t editor ma#apu# sesuai selera.

+encetak In or!asi dengan -unction .print/


0utput i(u#aka# pa a pro(ram u#tuk memberika# feedbac+ a# kea aa# 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 pa a 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 a ala$ 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 se a#( 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 a ala$ S. #ama R i3etak ite#(a$ pri#t SSa+a memai#ka# (ame Super S. #ama. S bersama a ik sa+aS R i3etak ia&al pri#t #ama. S a ala$ 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 mu a$ sekaliS pri#t Skare#a su a$ 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 mu a$ sekali M#kare#a su a$ mempu#+ai okume#tasi +a#( le#(kapS R me#3etak ,ariabel pa a 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 ! a ala$ T S T (pa#:a#(. lebar. kelili#(!

)ika ko e 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 a a 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 ke alam string. Eisal *# a memberika# input berupa F"ela:ar P+t$o#G. Eaka ata tersebut aka# itampu#( seba(ai string utu$. Aemu ia# pa a ra#1input2 ter apat satu parameter +a#( aka# i:a ika# perta#+aa# atau peri#ta$ tertulis saat memi#ta input. )ika *# a i#(i# memberika# input berupa a#(ka. saat memasukka# a#(ka tersebut ti ak bole$ lebi$ ari satu a#(ka. Hal i#i isebabka# kare#a ketika me#((u#aka# ra#1input. sekalipu# +a#( iberika# a ala$ a#(ka tetap aka# ia#((ap string. *pabila *# a memberika# input satu a#(ka kepa a 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# ko e 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!

pri#t S0ama *# a a ala$ S. #ama luas K i#t(pa#:a#(! Q i#t(lebar! pri#t S T Q T K T S T (i#t(pa#:a#(!. i#t(lebar!. luas!

)ika ko e 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. 8i ak seperti ra#1input +a#( me#erima input a# ia#((ap string. Saat memberika# input kepa a ra#1input2 *# a ti ak perlu me#((u#aka# atura# pe#ulisa# u#tuk tipe ata terte#tu. Se a#(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$ ter apat beberapa 3o#to$ atura# pe#ulisa# saat aka# memberika# ata e#(a# tipe ata terte#tu kepa a 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 ,ariabelH i3t K i#put(Umasukka# ata i3tio#ar+ : U! pri#t Sisi ,ariabelH i3t : S. ,ariabelH i3t 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 ko e 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$ perbe aa# pe#((u#aa# ra#1input e#(a# input. 2ata +a#( i apat ari ra#1input $arus iko#,ersika# e#(a# bui t/in function u#tuk tipe ata terte#tu. Se a#(ka# ata +a#( i apat ari input ti ak 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 ter apat beberapa karakter k$usus +a#( i#amaka# escape character. "erikut a ala$ a6tar beberapa escape character +a#( ter apat i P+t$o# :

5scape 'haracter Heksa esimal Ma Mb M6 Me M# Mt M, Mr M### 0C0@ 0C08 0C03 0C1b 0C0a 0C0= 0C0b 0C0

Aetera#(a# bel bac+space formfeed escape ne# ine tab Vertica tab 'arriage return 0otasi oktal. ima#a #

11 5scape 'haracter Heksa esimal Aetera#(a# merupaka# re#ta#( a#(ka ari 0 sampai @ MC## 0otasi $eksa esimal. ima#a # merupaka# re#ta#( ari 0..=. a..6. atau *..1

Pa a ko e iatas isting pakaiHp+t$o#H1.p+. ter apat 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# pa a string +a#( isisipi simbol tersebut. "erikut a ala$ a6tar beberapa string formatter +a#( ise iaka# P+t$o#:

Simbol T3 Ts Ti. T Tu To TC. TI T6 Te. T;

Aetera#(a# Ee#3etak karakter Ee#3etak ata me#:a i stri#( ari :e#is apapu#

Ee#3etak a#(ka esimal berta# a Ee#3etak a#(ka esimal tak berta# a Ee#3etak a#(ka oktal Ee#3etak a#(ka $eksa e#(a# $uru6 ke3il. Ee#3etak a#(ka $eksa e#(a# $uru6 besar Ee#3etak a#(ka real berkoma Ee#3etak ta# a ekspo#e#sial e#(a# $uru6 ke3il. me#3etak ta# a ekspo#e#sial e#(a# $uru6 besar 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

T(. T/

Aemu ia# tak lupa kalau i P+t$o# se# iri saat se a#( 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 ZZst outZZ i# t$e built'i# mo ule 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.st outZZ is use as t$e 6ile 6or output. (;02!

U#tuk keluar ari mo e 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# mo ule HHbuilti#HH:

3lass list(ob:e3t! [ list(! 'O #e& empt+ list [ list(iterable! 'O #e& list i#itiali-e 6rom iterableUs items [ [ Eet$o s e6i#e $ere: [ [ HHa HH(...! [ C.HHa HH(+! NKKO CP+ [ [ HH3o#tai#sHH(...! [ C.HH3o#tai#sHH(+! NKKO + i# C [ [ HH elitemHH(...! [ C.HH elitemHH(+! NKKO el CX+Y [ [ HH elsli3eHH(...! [ C.HH elsli3eHH(i. :! NKKO el CXi::Y [ [ Use o6 #e(ati,e i# i3es is #ot supporte . [ [ HHe\HH(...! :XY

2e#(a# emikia# sekalipu# ti ak a a ko#eksi i#ter#et. *# a tetap bisa terus membuat pro(ram P+t$o# e#(a# iba#tu help34 +a#( su a$ ise iaka# ole$ P+t$o#. 8ipe ata +a#( ter apat pa a ko e ko e iatas aka# i:elaska# lebi$ la#:ut pa a 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 pa a pro(ram +a#( me#((u#aka# ,ariabel tersebut. 2i alam P+t$o#. ter apat 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 pa a P+t$o# a ala$ 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#:a i 6ormat ta#((al. misal#+a 2>'0='2013 1loat. bila#(a# +a#( mempu#+ai koma. misal#+a 3.1?. >.38@ HeCa e3imal. 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#( ti ak ter e6i#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 ti ak 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. ter apat :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#( a a i P+t$o# : 1. *ritmatika (*rit$meti3 Operator! Oper Pe#:elasa# ator P Pe#:umla$a#. me#amba$ka# opera# Co#to$ ua bua$ a. b K 10. B $asil K a P b

1B Oper Pe#:elasa# ator Co#to$ R $asil aka# 1B pri#t F$asil : F. $asil Pe#(ura#(a#. me#(ura#(ka opera# a. b K 10. 8 isebela$kiri operator e#(a# opera# i $asil K a b sebela$ ka#a# operator R $asil aka# 2 pri#t F$asil : F. $asil Perkalia#. me#(alika# opera# i sebela$ a. b K 3. B kiri e#(a# opera# i sebela$ ka#a# $asil K a Q b operator R $asil aka# 1B pri#t F$asil : F. $asil Pemba(ia#. memba(i opera# i sebela$ a. b K ?. 2 kiri e#(a# opera# isebela$ ka#a# $asil K a % b operator R $asil aka# 2 pri#t F$asil : F. $asil Eo ulus. me# apatka# sisa pemba(ia# a. b K 11. 2 ari opera# i sebela$ kiri operator ketika $asil K a T b iba(i ole$ opera# i sebela$ ka#a# R $asil aka# 1 pri#t F$asil : F. $asil Pema#(kata#. mema#(katka# opera# a. b K 11. 2 isebela$ kiri operator e#(a# opera# i $asil K a QQ b sebela$ ka#a# operator R $asil aka# 121 pri#t F$asil : F. $asil Pemba(ia# bulat. proses#+a sama seperti a. b K 11. 2 pemba(ia#. Ha#+a sa:a a#(ka ibelaka#( $asil K a %% b koma i$ila#(ka# R $asil aka# B pri#t F$asil : F. $asil

'

QQ

%%

2. Perba# i#(a# (Compariso# Operator!

Oper Pe#:elasa# ator KK

Co#to$

Eemeriksa apaka$ ke ua #ilai (opera#! a. b K 10. 10 +a#( iba# i#(ka# sama atau ti ak. )ika sama aka# ikembalika# #ilai ,rue :ika R $asil aka# 8rue ti ak sama aka# ikembalika# #ilai -alse. pri#t F$asil : F. a KK b

1> Oper Pe#:elasa# ator Co#to$

Eemeriksa apaka$ ke ua #ilai +a#( a. b.K 10. 8 iba# i#(ka# sama atau ti ak. )ika ti ak sama aka# ikembalika# #ilai ,rue :ika R $asil aka# 8rue sama aka# ikembalika# #ilai -alse. pri#t F$asil : F. a ]K b ]K 3 K 10 R $asil aka# 1alse pri#t F$asil : F. a ]K 3 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 NO 3 K 10 R $asil aka# 1alse pri#t F$asil : F. a NO 3 O Eemeriksa apaka$ #ilai i sebela$ kiri a. b K ?. 2 operator lebi$ besar ari #ilai i sebela$ ka#a# operator R $asil aka# 8rue pri#t F$asil : F. a O b Eemeriksa apaka$ #ilai i sebela$ kiri a. b K 2. ? operator lebi$ ke3il ari #ilai i sebela$ ka#a# operator R $asil aka# 8rue pri#t F$asil : F. a N b Eemeriksa apaka$ #ilai i sebela$ kiri operator lebi$ besar ari #ilai i sebela$ ka#a# operator atau memiliki #ilai +a#( sama OK a. b K ?. 2 3K? 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 3K? 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 Pe#:elasa# ator Co#to$ pri#t F$asil : F. b NK a

3. Pe#u(asa# (*ssi(#me#t Operator!

Oper Pe#:elasa# ator

Co#to$

Ee#(isika# #ilai i sebela$ ka#a# operator a K 10 ke #ilai i sebela$ kiri operator R $asil aka# 10 pri#t a K b K 1B R $asil aka# 1B pri#t b Ee#amba$ka# opera# sebela$ kiri a. b.K 10. 8 operator e#(a# opera# sebela$ ka#a# operator kemu ia# $asil#+a iisika# ke R $asil aka# 18 sma (# a K a P b opera# sebela$ kiri a PK b pri#t F$asil : F. a Ee#(ura#(i opera# sebela$ kiri operator a. b.K 10. 8 e#(a# opera# sebela$ ka#a# operator kemu ia# $asil#+a iisika# ke opera# R $asil aka# 2 sma (# a K a ' b sebela$ kiri a 'K b pri#t F$asil : F. a Ee#(alika# opera# sebela$ kiri operator a. b.K 10. 8 e#(a# opera# sebela$ ka#a# operator kemu ia# $asil#+a iisika# ke opera# R $asil aka# 80 sma (# a K a Q b sebela$ kiri a QK b pri#t F$asil : F. a Eemba(i opera# sebela$ kiri operator a. b.K 10. B e#(a# opera# sebela$ ka#a# operator kemu ia# $asil#+a iisika# ke opera# R $asil aka# 2 sma (# a K a % b sebela$ kiri a %K b pri#t F$asil : F. a

PK

'K

QK

%K

Ee#(ambil sisa ba(i ari opera# sebela$ a. b.K 10. ? kiri operator e#(a# opera# sebela$ ka#a# TK operator kemu ia# $asil#+a iisika# ke R $asil aka# 2 sma (# a K a T b opera# sebela$ kiri a TK b pri#t F$asil : F. a QQK Eema#(katka# opera# sebela$ kiri a. b.K 10. 2

18 Oper Pe#:elasa# ator Co#to$

operator e#(a# opera# sebela$ ka#a# operator kemu ia# $asil#+a iisika# ke R $asil aka# 100 sma (# a K a QQ b opera# sebela$ kiri a QQK b pri#t F$asil : F. a Eemba(i bulat opera# sebela$ kiri a. b.K 10. ? operator e#(a# opera# sebela$ ka#a# operator kemu ia# $asil#+a iisika# ke R $asil aka# 2 sma (# a K a %% b opera# sebela$ kiri a %%K b pri#t F$asil : F. a

%%K

?. "i#er ("it&iser Operator! Oper Pe#:elasa# ator Co#to$

Operator bi#er *02. memeriksa apaka$ a. b K 13. 3@ opera# i sebela$ kiri a# opera# sebela$ ka#a# mempu#+ai a#(ka bi#er 1 i setiap R a aka# ber#ilai U0000 1101U bit. )ika ke ua#+a ber#ilai 1 maka bit $asil R b aka# ber#ilai U0010 0101U operasi aka# ber#ilai 1 3Ka^b R 3 aka# ber#ilai B K U0000 0101U pri#t 3 Operator bi#er O9. memeriksa apaka$ a. b K 13. 3@ opera# i sebela$ kiri a# opera# sebela$ ka#a# mempu#+ai a#(ka bi#er 1 i setiap R a aka# ber#ilai U0000 1101U bit. )ika sala$ satu#+a ber#ilai 1 maka bit R b aka# ber#ilai U0010 0101U $asil operasi aka# ber#ilai 1 3Ka[b R 3 aka# ber#ilai ?B K U0010 1101U pri#t 3 Operator bi#er IO9. memeriksa apaka$ a. b K 13. 3@ opera# i sebela$ kiri a# opera# sebela$ ka#a# mempu#+ai a#(ka bi#er 1 i setiap R a aka# ber#ilai U0000 1101U bit. )ika ke ua#+a ber#ilai 1 maka bit $asil R b aka# ber#ilai U0010 0101U operasi aka# ber#ilai 0 3Ka_b R 3 aka# ber#ilai ?0 K U0010 1000U pri#t 3

Operator bi#er 0e(ati,e. membalik #ilai a. b K 13. 3@ bit. Eisal ari 1 me#:a i 0. ari 0 me#:a i 1 R a aka# ber#ilai U0000 1101U

1= Oper Pe#:elasa# ator Co#to$ R b aka# ber#ilai U0010 0101U

Operator pe#((eser bi#er ke kiri. eret bit a. b K 13. 3@ aka# i(eser ke kiri seba#+ak # kali R a aka# ber#ilai U0000 1101U R b aka# ber#ilai U0010 0101U NN 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 Operator pe#((eser bi#er ke ka#a#. eret a. b K 13. 3@ bit aka# i(eser ke ka#a# seba#+ak satu kali R a aka# ber#ilai U0000 1101U R b aka# ber#ilai U0010 0101U OO 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 Pe#:elasa# ator a#

Co#to$

)ika ke ua opera# ber#ilai 8rue. maka a. b K 8rue. 8rue ko# isi aka# ber#ilai 8rue. Selai# ko# isi ta i maka aka# ber#ilai 1alse R $asil aka# 8rue pri#t a a# b )ika sala$ satu atau ke ua opera# ber#ilai a. b K 8rue. 1alse 8rue maka ko# isi aka# ber#ilai 8rue. )ika ke ua#+a 1alse maka ko# isi aka# ber#ilai R $asil aka# 8rue 1alse pri#t a or b pri#t b or a pri#t a or a R $asil aka# 1alse pri#t b or b

or

#ot Eembalikka# #ilai kebe#era# pa a opera#. a. b K 8rue. 1alse

20 Oper Pe#:elasa# ator Co#to$

misal :ika asal#+a 8rue aka# me#:a i 1alse a# be(itupu# sebalik#+a R $asil aka# 8rue pri#t #ot a pri#t #ot b

>. Aea#((otaa# (Eembers$ip Operator!

Oper Pe#:elasa# ator i#

Co#to$

Eemeriksa apaka$ #ilai +a#( i3ari bera a sebua$Hlist K X1. 2. 3.? .BY pa a list atau struktur ata p+t$o# lai##+a. )ika #ilai tersebut a a maka ko# isi aka# pri#t B i# sebua$Hlist ber#ilai 8rue

Eemeriksa apaka$ #ilai +a#( i3ari ti ak sebua$Hlist K X1. 2. 3.? .BY #ot a a pa a list atau struktur ata p+t$o# i# lai##+a. )ika #ilai tersebut ti ak a a maka pri#t 10 #ot i# sebua$Hlist ko# isi aka# ber#ilai 8rue @. I e#titas (I e#tit+ Operator!

Oper Pe#:elasa# ator is

Co#to$

Eemeriksa apaka$ #ilai i sebela$ kiri a. b K 10. 10 opera# memiliki i e#titas memori +a#( sama e#(a# #ilai i sebela$ ka#a# opera#. R $asil aka# 8rue )ika sama maka ko# isi ber#ilai 8rue pri#t a is b

Eemeriksa apaka$ #ilai i sebela$ kiri a. b K 10. B opera# memiliki i e#titas memori +a#( is berbe a e#(a# #ilai i sebela$ ka#a# R $asil aka# 8rue #ot opera#. )ika berbe a maka ko# isi ber#ilai pri#t a is #ot b 8rue

Prioritas 'ksekusi Operator di Python


2ari sekia# ba#+ak#+a operator +a#( tela$ isebutka#. masi#( masi#( mempu#+ai prioritas pemroresa# +a#( apat ili$at pa a tabel berikut. Prioritas tersebut maki# ke ba&a$ maki# ak$ir u#tuk ieksekusi. Pali#( atas a ala$ +a#( aka# i a$uluka# aripa a operator lai#. se a#(ka# pali#( ba&a$ a ala$ operator +a#( pali#( terak$ir ieksekusi :

21

Operator QQ `. P. ' Q. %. T. %% P. ' OO. NN ^ _. [ NK. N. O. OK NO. KK. ]K

Aetera#(a# *ritmatika "it&ise *ritmatika *ritmatika "it&ise "it&ise "it&ise Perba# i#(a# Perba# i#(a#

K. TK. %K. %%K. Pe#u(asa# 'K. PK. QK. QQK is. is #ot i#. #ot i# #ot. or. a# i e#titas members$ip lo(ika

22

9. +e!)uat Pe!ilihan Kondisi


Penggunaan Operator Kondisional dan Logika pada Key#ord .i /
2alam ke$i upa# 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 a a o#(kos #a#ti #o#to# 6an of "tee G. FAalau (a $u:a# a# a a o#(kos #a#ti mau per(i maka# rame#G. 2isa ari atau ti ak. pe#(a# aia# atau ko# isio#al su a$ me#:a i ba(ia# ari $i up *# a se3ara otomatis saat sebelum melakuka# sebua$ tu(as. 2alam pemro(rama# pu# emikia# a a 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#( ti ak memeriksa ko# isi. 2i P+t$o#. ter apat beberapa +ey#ord u#tuk membuat sebua$ pemili$a# ko# isi. * a i . eli . else. 8i ak memerluka# kura&al atau pe#utup pa a 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 ter apat ko e 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 a ala$ 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 +ondisiona 21.py pri#t SEasukka# ua bua$ a#(ka..S pri#t S2a# *# a aka# 3$e3k $ubu#(a# ke ua 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 ke ua : S! a#(ka2 K i#t(a#(ka2! i6 a#(ka1 KK a#(ka2 : pri#t ST sama e#(a# T S T (a#(ka1. a#(ka2! i6 a#(ka1 ]K a#(ka2 : pri#t ST ti ak sama e#(a# T S T (a#(ka1. a#(ka2!

23 i6 a#(ka1 N a#(ka2 : pri#t ST kura#( ari T S T (a#(ka1. a#(ka2! i6 a#(ka1 O a#(ka2 : pri#t ST lebi$ ari T S T (a#(ka1. a#(ka2! i6 a#(ka1 NK a#(ka2 : pri#t ST kura#( ari sama e#(a# T S T (a#(ka1. a#(ka2! i6 a#(ka1 OK a#(ka2 : pri#t ST lebi$ ari sama e#(a# T S 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# ter apat 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 pa a i sebelum#+a. 7ey#ord else i#i membutu$ka# blok i atau eli iatas#+a. 8a#pa ke ua +ey#ord ta i. else ti ak apat i(u#aka#. "erikut i#i ter apat 3o#to$ pe#((u#aa# else. mari kita 3oba. isting 1 +ondisiona 23.py

2? pri#t SEasukka# ua bua$ a#(ka..S pri#t S2a# *# a aka# 3$e3k $ubu#(a# ke ua 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 ke ua : S! a#(ka2 K i#t(a#(ka2! i6 a#(ka1 KK a#(ka2 : pri#t ST sama e#(a# T S T (a#(ka1. a#(ka2! else: pri#t ST ti ak sama e#(a# T S T (a#(ka1. a#(ka2!

3obala$ masukka# ua a#(ka berbe a 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 pa a ko# isio#alH1.p+ beberapa blok i aka# ieksekusi. kare#a ti ak a a pili$a# lai# pa a masi#( masi#( blok i . Pa a 3o#to$ berikut#+a beberapa i aka# i(abu#( a# membe#tuk sebua$ blok i +a#( lebi$ besar kare#a a a#+a eli . 7ey#ord eli i#i ber6u#(si u#tuk membuat multi ko# isio#al. )a i :ika ko# isi i i6 pali#( atas ti ak sesuai maka ko# isi +a#( a a iba&a$#+a aka# iperiksa a# :ika 3o3ok aka# ieksekusi. Pa a 3o#to$ berikut#+a :ika ko# isi su a$ sesuai

2B pa a blok teratas maka blok tersebutla$ +a#( aka# ieksekusi. berbe a e#(a# 3o#to$ pa a ko# isio#alH1.p+ kare#a ter iri ari beberapa blok i +a#( ia#((ap berbe a ole$ P+t$o#. U#tuk lebi$ :elas#+a mari 3oba ko e berikut isting 1 +ondisiona 24.py

pri#t SEasukka# ua bua$ a#(ka..S pri#t S2a# *# a aka# 3$e3k $ubu#(a# ke ua 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 ke ua : S! a#(ka2 K i#t(a#(ka2! i6 a#(ka1 KK a#(ka2 : pri#t ST sama e#(a# T S T (a#(ka1. a#(ka2! eli6 a#(ka1 ]K a#(ka2 : pri#t ST ti ak sama e#(a# T S T (a#(ka1. a#(ka2! eli6 a#(ka1 N a#(ka2 : pri#t ST kura#( ari T S T (a#(ka1. a#(ka2! eli6 a#(ka1 O a#(ka2 : pri#t ST lebi$ ari T S T (a#(ka1. a#(ka2! eli6 a#(ka1 NK a#(ka2 : pri#t ST kura#( ari sama e#(a# T S T (a#(ka1. a#(ka2! eli6 a#(ka1 OK a#(ka2 : pri#t ST lebi$ ari sama e#(a# T S T (a#(ka1. a#(ka2!

Coba masukka# e#(a# a#(ka 10 a# 20. maka blok i6 +a#( ieksekusi $a#+a blok ke ua +a#( berisi ko# isi a#(ka1 ti ak sama e#(a# a#(ka 2. )elas berbe a e#(a# ko e +a#( a a 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 a a 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 kome i putar. kalau ua#(#+a 20.000 bakal #aik kome i putar a# bom bom 3arG. )ika *# a per$atika# setela$ ko# isi pertama a a ko# isi la(i +a#( masi$ bera a 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 i 2 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 se alam +a#( *# a i#(i#ka#. *(ar lebi$ pa$am mari *# a 3oba ko e berikut : isting 1 +ondisiona 28.py user#ame K ra&Hi#put(Smasukka# user#ame : S! pass&or K ra&Hi#put(Smasukka# pass&or : S! user#ameH6romH b K SuserS pass&or H6romH b K Sa mi#S i6 user#ame KK user#ameH6romH b : i6 pass&or KK pass&or H6romH b :

2@ pri#t SUser#ame a# pass&or 3o3ok S else: pri#t SPass&or sala$ S else: pri#t SUser ti ak ter a6tarS

Pa a 3o#to$ iatas. *# a imi#ta masuka# berupa Fuser#ameG a# Fpass&or G. Aemu ia# a a sebua$ ,ariabel +a#( iasumsika# me#(ambil ata Fuser#ameG a# Fpass&or G ari database. "lok i aka# memeriksa apaka$ user su a$ sesuai atau belum. :ika ti ak sesuai maka aka# itampilka# FUser ti ak ter a6tarG. )ika Fuser#ameG sesuai maka ko# isi sela#:ut#+a a ala$ memeriksa Fpass&or G :ika sesuai maka aka# mu#3ul #oti6ikasi FUser#ame a# pass&or 3o3okG. :ika ti ak 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 pa a 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#(. Pa a umum#+a pe#(ula#(a# ter iri ua :e#is. * a pe#(ula#(a# +a#( terbatas a# ti ak 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. Se a#(ka# pe#(ula#(a# ti ak 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 kea aa# true :ika alam kea aa# 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. ti ak 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#( ise iaka# 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 a a 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# pa a 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 pa a ko e iba&a$ i#i : isting 1 +ode pengu angan21.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

Pa a 3o#to$ iatas. aka# i3etak teks Fi#i pe#(ula#(a# ke ' F seba#+ak B kali. 0ilai UiU pa a 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# ke ua. #ilai UiU aka# berisi 2. be(itu seterus#+a sampai eleme# terak$ir. )ika ko e iatas ieksekusi aka# me#ampilka# $asil seperti pa a (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 ter apat ist +a#( berisi seperti berikut XF9a&o#G. F0asi Au#i#(G. FSoto Ea uraG. FAupat 8a$uG. FAerak 8elorG. F9e# a#( "atokoG. FPempek SelamG. F*+am "etutuGY. alam ist tersebut ter apat eleme# seba#+ak elapa# :e#is masaka# #usa#tara. 2e#(a# emikia# ketika pe#(ula#(a# or me#((u#aka# ist masaka# ta i. pe#(ula#(a# aka# i:ala#ka# seba#+ak elapa# kali. Eari *# a li$at impleme#tasi#+a pa a ko e iba&a$ i#i : isting 1 +ode pengu angan23.py R pe#(ula#(a# seba#+ak 8 kali 6or i i# XS9a&o#S. S0asi Au#i#(S. SSoto Ea uraS. SAupat 8a$uS. SAerak 8elorS. S9e# a#( "atokoS. SPempek SelamS. S*+am "etutuSY : pri#t i. S a ala$ masaka# k$as #usa#tara aS

Ao e 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 pa a asar#+a merupaka# ist karakter. Eisal ter apat string seperti berikut Fab3 eG. )ika string tersebut i(u#aka# pa a pe#(ula#(a# or. maka aka# ter:a i pe#(ula#(a# seba#+ak lima kali. Coba li$at ko e iba&a$ i#i : isting 1 +ode pengu angan24.py R pe#(ula#(a# seba#+ak B kali 6or i i# Sab3 eS: pri#t i. S a ala$ al6abetS

Ao e 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 pa a pe#(ula#(a#H1.p+. pe#(ula#(a# tersebut me#((u#aka# ist a#(ka +a#( su a$ :a i 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# ter apat 6u#(si +a#( ber#ama range. ;ange i#i me#($asilka# eret a#(ka e#(a# parameter (start. stop, step!. "tart a ala$ batasa&al ari ist, stop a ala$ batas ak$ir ari ist, step a ala$ :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# ko e iba&a$ i#i : isting 1 +ode pengu angan28.py R pe#(ula#(a#H?.p+ R kasus ' 1 : :ika step ti ak 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 aripa a stop maka list aka# koso#( pri#t ra#(e(10. 1! R kasus ' B : :ika start lebi$ besar #ilai#+a aripa a 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 aripa a 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 aripa a 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:a i error pri#t ra#(e(1. 10. 0! R kasus ' = : :ika start lebi$ besar aripa a stop a# step ber#ilai 0 maka aka# ter:a i error pri#t ra#(e(10. 1. 0! Ao e 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 Eu a$ 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 pengu angan29.py 6or i i# ra#(e(1. 10!: pri#t Si#i pe#(ula#(a# ke ' S. I

Pa a 3o#to$ iatas aka# ter:a i pe#(ula#(a# seba#+ak 10 kali ter$a ap statement iba&a$ or. 2e#(a# me#((u#aka# range2 *# a ti ak 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$a ap statement.)ika ko e 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 a a 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 pengu angan2:.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

Ao e iatas :ika ieksekusi aka# tampil seperti berikut :

NN (ambar B.> $asil eksekusi pe#(ula#(a#H>.p+ OO Aemu ia# iba&a$ i#i a ala$ ko e pro(ram u#tuk me#3ari bila#(a# prima. "ila#(a# prima a ala$ bila#(a# +a#( $a#+a bisa iba(i 1 a# bila#(a# itu se# iri isting 1 +ode pengu angan2;.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 a ala$ bila#(a# primaS else: pri#t i. S buka#la$ bila#(a# primaS

Ao e 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#( su a$ i :elaska# i bab 3. seba(ai 3o#to$ 3oba li$at ko e berikut. Ao e berikut ieksekusi apabila ,ariabel Fa#(kaG masi$ iba&a$ 10. isting 1 +ode pengu angan2<.py a#(ka K 0 &$ile (a#(ka N 10!: pri#t S*ku su a$ ber:ala# seba#+ak S. a#(ka. S la#(ka$ S a#(ka PK 1

Ao e iatas :ika ieksekusi aka# tampil seperti pa a (ambar berikut i#i :

3B

NN (ambar B.8 $asil eksekusi pe#(ula#(a#H8.p+ OO Pa a 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 pengu angan2=.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 ter apat 3o#to$ pe#:umla$a# a#(ka ari 1 sampai 10. 2alam pe#(ula#(a# i#i ter apat sebua$ ,ariabel -m 2ang+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# ko e iba&a$ i#i : isting 1 +ode pengu angan21>.py

iK1 :mlHa#(ka K 0 &$ile i NK 10: pri#t Uloop ke ' T : T P T U 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

ko e iatas :ika ieksekusi aka# tampi seperti pa a (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 a a sebua$ toples +a#( berisi ba#+ak perme# e#(a# ra(am :e#is#+a. 2alam sebua$ toples apat sa:a a a 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# a a +a#( me#+impa# :ari#(a# sebua$ (ra6. a#tria#. tumpuka#. a# ba#+ak la(i tipe lai##+a. 2i P+t$o# se# iri. ter apat 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 a ala$ 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 ter apat pula 6u#3tio# u#tuk me#(ola$ ti(a struktur ata ta i 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#. kemu ia# 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 pa a 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# pa a tuple ti ak apat i$apus a# iuba$. Eaka ari itu tuple isebut immutable se\ue#3e. 4ebi$ :elas#+a #a#ti *# a aka# li$at perbe aa# tuple e#(a# list. "e a $al#+a a#tara e#(a# list a# tuple. pa a 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+ pa a i3tio#ar+. #ilai#+a $arus berupa tipe ata +a#( ti ak 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. ,ariabel. isting 1 stru+dat21.py a# i3tio#ar+ ke alam sebua$

R 3ara me# e6i#isika# list sebua$Hlist K XU<ori# OSU.

38 UUbu#tuU. U1ree"S2U. U0et"S2U. UOpe#"S2U. U"a3ktra3kU. U1e oraU. 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$H i3tio#ar+ K VU#amaU:UDiro Sable#(U. Upro iU: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$H i3tio#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 struk atH1.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# pa a struktur ata tersebut. * a beberapa 3ara me#(akses eleme# pa a struktur ata tersebut +a#( biasa ilakuka# misal#+a me#(akses sala$ satu eleme# e#(a#

3= me#((u#aka# i# eks. s icing 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 kemu ia# isusul i# eks eleme# +a#( *# a i#(i#ka# e#(a# iapit ta# a ba3a FXF a# FYG. misal a a sebua$ list e#(a# #ama da tar1)arang kemu ia# i#(i# me#(akses i# eks ke 10. maka pema#((ila# i# eks pa a list tersebut a ala$ da tar1)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. Pa a 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# pa a list a# tuple. Cara i#i ti ak apat ilakuka# i i3tio#ar+. Sli3i#( i# eks ilakuka# e#(a# mema#((il list atau tuple kemu ia# te#tuka# i# eks a&al sli3i#( a# batas ak$ir#+a. Aemu ia# i# eks tersebut ipisa$ka# e#(a# ta# a F:G a# iapit ole$ ta# a FXF a# FYG. Eisal a a sebua$ list da tar1)arang kemu ia# i#(i# me#(ambil 10 ata#+a ari i# eks ke 2 maka pema#((ila##+a a ala$ da tar1)arang>1511@. "erikut#+a 3ara terak$ir +a#( biasa ilakuka# ole$ u#tuk me#(akses eleme# se3ara keseleru$a# a ala$ e#(a# melalui pe#(ula#(a# or. Eelalui 3ara tersebut. isi ari list. tuple. a# i3tio#ar+ apat iambil eleme##+a selama iterasi pa a pe#(ula#(a# or. Pa a 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# pa a proses i setiap iterasi. Aalau pa a i3tio#ar+ i setiap iterasi pe#(ula#(a# buka# eleme# +a#( iektrak tapi ke+'#+a. )a i saat i#(i# me#(ambil ata#+a *# a $arus mema#((il eleme# i3tio#ar+ tersebut e#(a# ke+ +a#( i apatka# isetiap iterasi. 2iba&a$ i#i a ala$ 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. U1e oraU. 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$H i3tio#ar+ K VU#amaU:UDiro Sable#(U. Upro iU: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$H i3tio#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$H i3tio#ar+: pri#t sebua$. U:U. sebua$H i3tio#ar+Xsebua$Y.

*pabila *# a :ala#ka# ko e pro(ram iatas maka aka# mu#3ul output seperti pa a (ambar berikut i#i :

?1

NN (ambar >.2 $asil eksekusi struk atH2.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 a a sebua$ list da tar1)arang a# *# a i#(i# me#(uba$ eleme# ke'@ e#(a# ata baru +a#( asal#+a FkursiG me#:a i Fme:aG. *tau a a sebua$ i#6ormasi alam be#tuk i3tio#ar+ e#(a# ke+ F#amaG +a#( ,alue asal#+a FSo# /o AuG me#:a i F5as$ 2e Stampe eG. Cara me#(uba$ ata sala$ satu eleme# i struktur ata p+t$o# mu a$ sekali. 8i#((al te#tuka# i# eks ma#a +a#( aka# iuba$. kemu ia# masukka# #ilai baru ke alam 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. U1e oraU.

?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$H i3tio#ar+ K VU#amaU:UDiro Sable#(U. Upro iU:Uilmu komputerU. UemailU:U&irosable#(@lo3al$ostU. U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU W R 3ara up ate sebua$ eleme# : pri#t S3ara up ate 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 ti ak apat melakuka# operasi peruba$a# eleme# :2 Rsebua$HtupleXBY K 100 pri#t sebua$Htuple pri#t SM#S pri#t sebua$H i3tio#ar+ sebua$H i3tio#ar+XUemailUY K U&iro.sable#(@(mail.3omU pri#t sebua$H i3tio#ar+ pri#t SM#M#S

Eu a$ sekali ka# b 2e#(a# me#(akses i# eks terte#tu pa a list a# tuple serta me#(akses ke+s tete#tu pa a i3tio#ar+. *# a apat me#(uba$ #ilai pa a i# eks atau ke+ tersebut e#(a# #ilai +a#( baru.

?3

NN (ambar >.3 $asil eksekusi struk atH3.p+ OO

+ena!)ahkan 0ata pada List2 ,uple2 dan 0ictionary


Aeti(a struktur ata i#ipu# apat itamba$ka# ata baru ari ata semula. Pa a 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. Se a#(ka# pa a i3tio#ar+ i(u#aka# met$o up ate ari i3tio#ar+ +a#( i#(i# itamba$ka# ata baru. Aemu ia# i3tio#ar+ semula aka# memiliki ata +a#( itamba$ka# melalui met$o tersebut. "erikut a ala$ 3o#to$ me#amba$ka# ata baru pa a 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. U1e oraU.

?? 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$H i3tio#ar+ K VU#amaU:UDiro Sable#(U. Upro iU: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$H i3tio#ar+ i3tio#ar+Hbaru K VUtelpU:U022'123?B>@8U. UalamatU:U"a# u#(. )abarUW sebua$H i3tio#ar+.up ate( i3tio#ar+Hbaru! pri#t sebua$H i3tio#ar+ pri#t SM#M#S

Ao e iatas :ika ieksekusi aka# mu#3ul tampila# seperti berikut i#i :

?B

NN (ambar >.? $asil eksekusi struk atH?.p+ OO

+enghapus Isi List2 ,uple2 dan 0ictionary


8i ak le#(kap rasa#+a bila alam sebua$ i#6ormasi a a +a#( ti ak apat i$apus. 8erka a#( a a sebua$ ata +a#( ti ak *# 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+. Se a#(ka# tuple ti ak me# uku#( pe#($apusa# eleme#. )ika kita lakuka# pe#($apusa# pa a sala$ satu eleme# i tuple. maka aka# mu#3ul pesa# error : F8+pe;rror: UtupleU ob:e3t oes#Ut support item eletio#G. Pa a 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. Se a#(ka# pa a i3tio#ar+ *# a tu#:uk sala$ satu ke+ +a#( aka# i$apus ari i3tio#ar+. "erikut a ala$ 3o#to$ pe#($apusa# sala$ satu eleme# pa a 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. U1e oraU. 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$H i3tio#ar+ K VU#amaU:UDiro Sable#(U. Upro iU: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 ti ak me# uku#( proses pe#($apusa# eleme# :2.(3oba $ila#(ka# ta# a URU isampi#(#+a! R el sebua$HtupleX8Y pri#t sebua$Htuple pri#t SM#S pri#t sebua$H i3tio#ar+ el sebua$H i3tio#ar+XU&ebsiteUY pri#t sebua$H i3tio#ar+ pri#t SM#M#S

Ao e iatas :ika ieksekusi aka# mu#3ul tampila# seperti berikut :

?@

NN (ambar >.B $asil eksekusi struk atHB.p+ OO

+enghapus List2 ,uple2 dan 0ictionary


Pa a 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 pa a 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#( i e6i#isika# ole$ pro(rammer. 2e#(a# $ila#(#+a ari memor+ maka struktur ata +a#( tela$ i$apus ti ak 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. U1e oraU. 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$H i3tio#ar+ K VU#amaU:UDiro Sable#(U. Upro iU:Uilmu komputerU. UemailU:U&irosable#(@lo3al$ostU. U&ebsiteU:U$ttp:%%&&&.sitampa#((ara#(.3omU W R 3ara up ate 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$H i3tio#ar+ el sebua$H i3tio#ar+ Rpri#t sebua$H i3tio#ar+ pri#t SM#M#S

Cobala$ $apus ta# a FRG pa a baris peri#ta$ pri#t i ba&a$ peri#ta$ el. Cobala$ satu persatu a# amatila$ apa +a#( ter:a i. )ika kita 3oba pa a pri#t sebua$Hlist +a#( bera a iba&a$ el sebua$Hlist. Eaka aka# mu#3ul pesa# error : F0ame;rror : #ame Usebua$HlistU is #ot e6i#e G

NN (ambar >.> $asil eksekusi struk atH>.p+ OO

?=

+enggunakan BuiltAin -unction pada List2 ,uple2 dan 0ictionary *paka$ 6itur 6itur ma#ipulasi list. tuple. a# i3tio#ar+ $a#+a terbatas pa a $apus. tamba$ a# uba$ b. P+t$o# me#+e iaka# 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 pa a list. tuple. atau i3tio#ar+ i(u#aka# 6u#3tio# !ax34. se a#(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 ke ua. 0 :ika ke ua list sama. a# 1 :ika list pertama lebi$ besar ari list ke ua. Aemu ia# u#tuk me#3ari :umla$ eleme# +a#( bera a pa a struktur ata tersebut i(u#aka# 6u#3tio# len34. 2a# ter apat :u(a u#tuk ko#,ersi tipe struktur ata. 8api 6itur i#i $a#+a apat i(u#aka# pa a list a# tuple. 2i3tio#ar+ ti ak me# uku#( proses ko#,ersi. )a i $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 se a#(ka# u#tuk pe#(uba$a# ari tuple ke list i(u#aka# 6u#3tio# list34. *(ar lebi$ pa$am 3obala$ se ikit sour3e 3o e 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. U1e oraU. 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$H i3tio#ar+ K VU#amaU:UDiro Sable#(U. Upro iU: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$H i3tio#ar+ i3tio#ar+Hbaru K VUtelpU:U022'123?B>@8U. UalamatU:U"a# u#(. )abarUW pri#t sebua$H i3tio#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$H i3tio#ar+ ba# i#( i3tio#ar+Hbaru : S. 3mp(sebua$H i3tio#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$H i3tio#ar+ : S. le#(sebua$H i3tio#ar+! pri#t SM#M#S R me#(uba$ list. tuple. i3tio#ar+ me#:a i stri#( pri#t Sme#(uba$ list. tuple. i3tio#ar+ me#:a i 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$H i3tio#ar+!. U memiliki pa#:a#( karakter : U. le#(str(sebua$H i3tio#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$H i3tio#ar+ :S

B1 pri#t SmaC : S. maC(sebua$H i3tio#ar+! pri#t Smi# : S. mi#(sebua$H i3tio#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#:a i : 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#:a i : S. list(sebua$Htuple!

2e#(a# a a#+a bui t/in function tersebut peker:aa# *# a su a$ imu a$ka# ole$ P+t$o# alam mema#ipulasi struktur ata +a#( tela$ *# a e6i#isika# sebelum#+a. "erikut a ala$ sala$ satu 3o#to$ $asil operasi e#(a# bui t function ari ko e iatas.

NN (ambar >.@ $asil eksekusi struk atH@.p+ OO

B2

B. +e!)uat -unction

Pengenalan -unction ,anpa .return/


Pa a saat membuat pro(ram terka a#( kita me#+ali# blok ko e +a#( sama i baris berikut#+a. misal u#tuk me#3etak sebua$ bio ata kita sali# kembali kemu ia# (a#ti #ilai #ilai#+a u#tuk me#ampilka# bio ata tersebut. *paka$ $arus me#+ali# blok ko e i setiap ba(ia# ko e +a#( membutu$ka# ko e tersebut bbb. Daktu ulu kulia$ *l(oritma a# Pemro(rama# I. ketika mempela:ari pemro(rama# pertama kali#+a. baris ko e +a#( sama ipakai berula#( ula#( u#tuk me#(eluarka# $asil terte#tu. 8api :a i ti ak e6isie#. kare#a ukura# 6ile pro(ram +a#( itulis 3ukup besar. Ole$ kare#a itu $ampir i setiap ba$asa pemro(rama# ter apat 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 ko e +a#( aka# i(u#aka# i baris ko e lai#. Sekali tulis ti#((al pa#((il. Function i#i :elas be a e#(a# bui t/in function +a#( a a i P+t$o#. *ui t/in function se# iri a ala$ function +a#( tela$ ibuatka# ole$ pe#(emba#( ba$asa pemro(rama# P+t$o#. Se a#(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 . Aemu ia# 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. 8i ak 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 ko e tersebut milik sebua$ function. i . atau pe#(ula#(a#. )a i :ika *# a i#(i# me#uliska# ko e u#tuk function +a#( *# a buat. Harus a a :arak satu i# e#tasi a(ar ko e tersebut ia#((ap seba(ai ko e ari function +a#( *# a tulis. Aemu ia# *# a apat me#amba$ka# +ey#ord return :ika function +a#( *# a tulis i#(i# me#(embalika# #ilai keluara#. "erikut a a 3o#to$ te#ta#( pembuata# function +a#( memiliki parameter parameter. Pe#((u#aa# return i(u#aka# pa a 3o#to$ berikut#+a : isting 1 fungsi21.py a# ti ak memiliki

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 ti ak 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#( ta i itulis ti ak isertaka# +ey#ord return. )ika sebua$ function ti ak iberika# return maka apat ibila#( function tersebut ia#((ap procedure. Sebua$ function +a#( ti ak 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 ti ak 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 ter apat function +a#( me#($asilka# #ilai keluara# +a#( memiliki parameter a# ti ak 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 perbe a##+a a#tara function +a#( berparameter e#(a# ti ak berparameter. Pa a function +a#( ti ak berparameter. Aetika ipa#((il berula#( ula#( #ilai keluara##+a tetap sama. "erbe a e#(a# function +a#( memiliki parameter. #ilai keluara#+a berbe a be a ketika ipa#((il. 8er(a#tu#( #ilai masuka# +a#( iberika#.

NN (ambar @.2 $asil eksekusi 6u#(siH2.p+ OO

BB

0e ault %rgu!ent pada Python


Sekara#( *# a su a$ me#(e#al function +a#( berparameter a# ti ak berparameter. Umum#+a saat aka# memberika# #ilai pa a sebua$ function. #ilai tersebut aka# iberika# saat function tersebut ipa#((il. *paka$ saat memasukka# #ilai bole$ ti ak iisi atau ile&at b 4alu apaka$ aka# a a #ilai#+a b. 2i P+t$o# ter apat sebua$ 6itur +a#( i#amaka# defau t argument saat me#ulis sebua$ function. Defau t argument se# iri a ala$ sebua$ ar(ume# +a#( su a$ iisi #ilai terlebi$ a$ulu :ika ar(ume# tersebut ti ak iberika# saat mema#((il function. )a i sekalipu# ile&at #ilai ari ar(ume#t tersebut aka# ipe#u$i e#(a# #ilai defau t #+a. "erikut iba&a$ i#i ter apat 3o#to$ pema#((ila# function +a#( mele&atka# semua ar(ume# +a#( ibutu$ka# function. a# +a#( ti ak mele&atka# semua ar(ume# +a#( aka# ita#(a#i ole$ defau t argument : isting 1 fungsi24.py

e6 3etakHbio ata( #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 3etakHbio ata( #amaKSmikiS. umurKB0. kotaKSba# u#(S ! pri#t SM#S R kalau parameter ti ak iisi semua pri#t SEemakai e6ault ar(ume#t : S 3etakHbio ata(kotaKSba# u#(S. #amaKSmikiS!

Ao e 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# !ariab e/ 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#( ti ak utama. Eisal alam sebua$ 6u#(si ibutu$ka# ti(a ar(ume#. maka ar(ume# ke ? sampai ke # ar(ume#. ti ak 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 !ariab e/ ength argument. iberika# ta# a FQG pa a ar(ume# terak$ir. Variab e/ ength argument i#i $arus isimpa# i ak$ir setela$ ar(ume# biasa a# defau t 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# ko e 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 iK1 6or s3ore i# s3ores: pri#t S#ilai ke ' T : T S T (i. s3ore! iK i P 1 retur#7 R kalau parameter iisi semua pri#t S2e#(a# a a#+a ,ariable'le#(t$ ,ariabel sisa aka# me#:a i tuple : S 3etakHperole$a#H#ilai(SSil,+S. S@si,l+si,S. =0. 80. @0. 80. =0!

B@ Seperti +a#( *# a li$at pa a 3o#to$ iatas. ar(ume# utama a ala$ #ama a# t&itter. *pabila kita memasukka# ar(ume# setela$#+a. maka ar(ume# tersebut aka# ikumpulka# alam satu &a a$ +aitu Qs3ores. "erapapu# kita masukka# ar(ume#. aka# itampu#( me#:a i 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 pa a parameter +a#( ibutu$ka# ole$ function +a#( *# a tulis. *paka$ mu#(ki# :ika itulis ta#pa uruta# ar(ume# su a$ baku pa a function tersebut. 2alam function ter apat 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#( ter apat i function isambu#( e#(a# ta# a FKG a# #ilai ari ar(ume# tersebut. )ika kita memberika# ar(ume# +a#( ti ak sesuai uruta# ta#pa me#((u#aka# +ey#ord argument. maka ar(ume# +a#( iterima function tersebut ti ak aka# sesuai. isting 1 fungsi29.py

e6 3etakHbio ata( #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 3etakHbio ata( kotaKSba# u#(S. #amaKSmikiS. umurKB0 ! pri#t SM#S R kalau ti ak memakai ke+&or ar(ume#t : mau uruta##+a (ima#apu# i#put ti ak aka# sesuai pri#t SEemakai ke+&or ar(ume#t : S 3etakHbio ata( Sba# u#(S. SmikiS. B0! pri#t SM#S R kalau ti ak 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 3etakHbio ata( SmikiS. B0. Sba# u#(S!

Pa a 3o#to$ iatas. *# a apat meli$at perbe aa# a#tara function +a#( mele&atka# +ey#ord argument e#(a# +a#( ti ak me#((u#aka# +ey#ord argument. Co#to$ +a#( ti ak me#((u#aka# +ey#ord argument ti ak 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# kepa a 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. QQ ataHtamba$a#!: pri#t S0ama : S. #ama7 pri#t S8&itter : S. t&itter7 pri#t SM#S pri#t S2ata 4ai##+a : S iK1 6or ata i# ataHtamba$a#: pri#t STs : TsS T ( ata. ataHtamba$a#X ataY! retur#7 R kalau parameter iisi semua pri#t S2e#(a# a a#+a ke+&or ar(ume#t. ar(ume# tersisa aka# me#:a i 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!

Pa a 3o#to$ iatas. +ey#ord argument +a#( berlebi$ itampu#( ke alam argument ataHtamba$a# a# ar(ume# berlebi$ tersebut isimpa# alam dictionary.

NN (ambar @.> $asil eksekusi 6u#(siH>.p+ OO

>0

Pass )y ;e erence dan Pass )y (alue pada Python


"erikut#+a ter apat masala$ pass by !a ue 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 ter apat sebua$ list +a#( aka# i(a#ti e#(a# #ilai baru. a# a a :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

Pa a ko e iatas. *# a aka# meli$at sebua$ perbe aa# +a#( 3ukup pe#ti#(. Aetika sebua$ list i(a#ti #ilai#+a maka list +a#( a a i luar function ti ak aka# terpe#(aru$. 8api ketika kita me#amba$ka# ata baru e#(a# me#((u#aka# method pa a list tersebut. 0ilai iluar ikut beruba$.. Hal i#i ter:a i kare#a pa a function sebua$H6u#(siHlai##+a(!. list sebua$Hlist masi$ me#u#:uk atau meru:uk ke sebua$Hlist +a#( bera a iluar. *tau alam kata lai# masi$ me#u#:uk ke Fa ressG +a#( sama i memori utama.

>1

NN (ambar @.@ $asil eksekusi 6u#(siH@.p+ OO

(aria)le Scope pada Python


Variab e scope a ala$ sebua$ ko# isi ima#a ,ariabel iakses se3ara lokal pa a blok ko e terte#tu atau bersi6at u#i,ersal +a#( me#+ebabka# ,ariabel tersebut apat iakses ari blok ko e ma#apu#. Eisal a a sebua$ ,ariabel i alam function. 5ariabel tersebut bersi6at lokal a# $a#+a apat iakses i alam function tersebut. 4alu ba(aima#aka$ kita me#:a ika# sebua$ ,ariabel a(ar bersi6at (lobal b. 2i P+t$o# ter apat sebua$ +ey#ord +a#( ber#ama glo)al. 7ey#ord i#i i(u#aka# u#tuk meru:uk sebua$ ,ariabel i luar blok ko e. 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 S i 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 S i 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 Ssesu a$ 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 Ssesu a$ ipa#((il sebua$H6u#(siHlai##+a : S. a#(ka

Pa a ko e iatas ,ariabel +a#( ber#ama a#(ka ibubu$i +ey#ord glo)al pa a function sebua$H6u#(siHlai##+a(!. Hasil#+a saat a#(ka iuba$ #ilai#+a. Eaka #ilai i ,ariabel a#(ka +a#( bera a 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 a ala$ sebua$ 3ara i P+t$o# u#tuk me#:ebak error. a# me#a#(a#(i error tak ter u(a pa a pro(ram P+t$o# +a#( *# a tulis. 5)ception aka# tetap me#:ala#ka# baris ko e pro(ram iba&a$ ba(ia# ko e pro(ram +a#( error. Hal i#i mempermu a$ proses debugging. 4alu apa be a#+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 fi e *# a $arus me#((u#aka# method ? method +a#( a a pa a fi e u#tuk me#(eta$ui error atau ti ak. Ae ua e#(a# me#((u#aka# ko# isio#al i biasa. pro(ram +a#( *# a tulis aka# la#(su#( i$e#tika# ketika error ter:a i. 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 ko e pro(ram iba&a$#+a aka# tetap ieksekusi. P+t$o# se# iri su a$ me#+e iaka# beberapa standard error +a#( apat i(u#aka# ole$ programmer alam me#:a(a pe#(emba#(a# aplikasi#+a ari error +a#( tak ter u(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 a ala$ beberapa standard error +a#(t ter apat i P+t$o# :

0o 0ama 5)ception 1 2 3 ? B > @ 8 10 11 1loati#(Poi#t;rror <ero2i,isio#;rror *ssertio#;rror *ttribute;rror ;C3eptio# StopIteratio# S+stem;Cit Sta# ar ;rror *rit$meti3;rror O,er6lo&;rror

Aetera#(a# Ee#a#(a#i semua e)ception 5)ception i#i mu#3ul ketika method #eCt(! ti ak me#u#:uk ke ob:ek apapu# saat iterasi 5)ception i#i mu#3ul ketika s+s.eCit(! ipa#((il 5)ception u#tuk me#a#(a#i semua bui t/in e)ception ke3uali StopIteratio# a# S+stem;Cit 5)ception u#tuk me#a#(a#i error saat per$itu#(a# a#(ka 5)ception i#i mu#3ul ketika per$itu#(a# a#(ka melebi$i batas maksimum ari tipe a#(ka +a#( i$itu#( 5)ception i#i mu#3ul ketika ter apat ke(a(ala# pa a per$itu#(a# a#(ka bertipe f oat 5)ception i#i mu#3ul :ika a a pemba(ia# atau mo ulus ole$ 0 ter$a ap a#(ka tipe apapu# 5)ception i#i mu#3ul ketika ter:a i ke(a(ala# pa a saat peri#ta$ assert i:ala#ka# 5)ception i#i mu#3ul ketika (a(al me#u#:uk atribut ari suatu ob:ek 5)ception i#i mu#3ul ketika ti ak a a i#put saat

12 ;O1;rror

>? me#((u#aka# function ra&Hi#put(! atau i#put a# tela$ me#3apai ba(ia# ak$ir 6ile saat pemba3aa# 6ile. 13 1? 1B 1> 1@ 18 U#bou# 4o3al;rror 1= 20 21 22 23 2? 2B 2> 2@ 28 2= 8+pe;rror 5alue;rror 9u#time;rror 0otImpleme#te ;ror OS;rror S+#taC;rror I# e#tatio#;rror S+stem;rror ;#,iro#me#t;rror IO;rror 4ookup;rror I# eC;rror Ae+;rror 0ame;rror Import;rror Ae+boar I#terrupt 5)ception i#i mu#3ul me#((u#aka# i!port ketika (a(al saat

5)ception i#i mu#3ul ketika user me#('interrupt eksekusi pro(ram. biasa#+a ketika me#eka# kombi#asi ctrl E c 5)ception mu#3ul ketika (a(al pa a saat proses oo+ up 5)ception i#i mu#3ul ketika ti ak a a i# eks +a#( itu:u pa a struktur ata seperti list atau tuple 5)ception i#i mu#3ul ketika ti ak a a +ey +a#( itu:u pa a dictionary 5)ception i#i mu#3ul ketika ,ariabel ti ak itemuka# pa a li#(kup lokal i suatu 6u#3tio# a# ko# isio#al atau pa a li#(kup (lobal 5)ception i#i mu#3ul ketika me#3oba me#(akses ,ariabel lokal i function atau method tapi belum a a #ilai#+a 5)ception i# mu#3ul ketika ter:a i ke(a(ala# iluar li#(kup P+t$o# 5)ception i# mu#3ul ketika proses input/output (a(al. misal saat me#((u#aka# print atau saat membuka fi e 5)ception i#i mu#3ul ketika ter:a i ke(a(ala# pa a sistem operasi +a#( i(u#aka# 5)ception i#i mu#3ul ketika ter:a i kesala$a# pa a pe#((u#aa# si#taks P+t$o# 5)ception i#i mu#3ul ketika i# e#tasi pa a blok ko e ti ak sesuai pe#((u#aa##+a. 5)ception i#i mu#3ul ketika ter apat masala$ i#ter#al pa a interpreter. saat error i#i mu#3ul i#terpreter ti ak aka# keluar 5)ception i#i mu#3ul :ika a a kesala$a# tipe ata saat proses per$itu#(a#. misal $uru6 iba(i a#(ka 5)ception i#i mu#3ul ketika ar(ume# +a#( ti ak sesuai iterima ole$ bui tin function 5)ception i#i mu#3ul ketika ter:a i kesala$a# +a#( ti ak masuk kate(ori ma#apu# 5)ception i#i mu#3ul ketika abstract method ari suatu c ass ti ak iimpleme#tasika# i c ass +a#( me&arisi#+a.

>B *(ar lebi$ pa$am iba&a$ i#i a a beberapa 3o#to$ ko e +a#( pe#((u#aa# e)ception/#+a sa#(at seri#( i(u#aka#. Seba(ai 3o#to$ pertama berikut ter apat ko e +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 ti ak memakai eC3eptio# maka proses berikut#+a ti ak aka# i:ala#ka# pri#t Sapaka$ proses 3etak i#i masi$ apat i:ala#ka# bbb S

2i alam tr+ ter apat ko e +a#( kemu#(ki#a# aka# memu#3ulka# eC3eptio#. Se a#(ka# i alam eC3ept a ala$ ko e +a#( aka# ieksekusi :ika eC3eptio# tersebut mu#3ul. Pa a tr+'eC3ept +a#( pertama. semua error aka# ita#(a#i a# *# a ti ak aka# me#(eta$ui :e#is eC3eptio# apa +a#( +a#( ita#(a#i. Pa a tr+'eC3ept +a#( ke ua. *# a mempre iksi aka# me#a#(a#i error :ika ter:a i pemba(ia# ole$ #ol. Ea#aka$ +a#( lebi$ baik b Pastika# *# a su a$ memiliki perkiraa# apa sa:a error +a#( aka# ter:a i se$i#((a saat ebu((i#( #a#ti aka# mempermu a$ *# a u#tuk memperbaiki ko e pro(ram *# a. Pa a blok ko e tr+'eC3ept sekalipu# error ko e iba&a$#+a aka# tetap ieksekusi. Pa a proses per$itu#(a# i ba(ia# ak$ir ti ak ita#(a#i ole$ tr+'eC3ept se$i#((a ko e iba&a$#+a ti ak ieksekusi. "erikut $asil +a#( iberika# :ika ko e ieksekusi :

>>

NN (ambar 8.1 $asil eksekusi eC3eptio#H1.p+ OO Co#to$ lai# +a#( umum ipakai a ala$ I# eC;rror a# Ae+;rror. Ae ua error i#i umum ipakai saat operasi list. tuple. a# dictionary. "erikut ter apat 3o#to$ me#u#:uk i# eks a# +ey +a#( ti ak ter apat pa a list. tuple. a# dictionary +a#( i e6i#isika# alam ko e iba&a$ i#i. isting 1 e)ception23.py

sebua$Hlist K X1. 2. 3. ?. BY sebua$Htuple K (1. 2. 3. ?. B! sebua$H i3tio#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$H i3tio#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

>@ Pa a 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. Pa a masi#( masi#( blok. kita i#(i# me#3oba i# eks +a#( ti ak a a pa a list a# tuple tersebut. Se a#(ka# pa a blok try/e)cept u#tuk dictionary. kita i#(i# me#3oba me#u#:uk +ey F&ebsiteG tapi kare#a +ey tersebut ti ak a a. 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 a ala$ *ttribute;rror. 5)ception i#i mu#3ul ketika sebua$ c ass ti ak 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 pa a sebua$ kelas a a pa a saat pera#3a#(a# atau ti ak. )ika ti ak +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

Pa a 3o#to$ iatas. kita i#(i# me#3oba me#(akses atribut ti#((i pa a ob:ek prs(Hp:(. Sebelum#+a ta$apa# +a#( ilalui a ala$ proses i#sta#siasi. ima#a kita mema#((il sebua$ temp ate ob:ek +a#( aka# ibe#tuk ke alam sebua$ ,ariabel. Aemu ia# i ba(ia# try/e)cept tersebut kita 3oba akses atribut ti#((i. Aare#a atribut tersebut ti ak a a 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#( ter apat i P+t$o# a ala$ IO;rror. 5)ception i#i biasa ter:a i ketika proses input ata. saat me#3etak ata. atau saat operasi fi e. Pa a 3o#to$ berikut kita aka# membuka sebua$ fi e. tapi fi e tersebut ti ak a a. Se3ara defau t :ika kita membuka fi e ta#pa me#+ertaka# mo e pemba3aa#. maka mo e tersebut a ala$ mo e 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 pa a baris i#i masi$ apat i:ala#ka#S

Pa a 3o#to$ iatas kita i#(i# fi e #ilai.tCt. tapi kare#a fi e tersebut belum per#a$ itulis sebelum#+a maka e)ception aka# mu#3ul +aitu IO;rror. Selai# i(u#aka# u#tuk fi e. IO;rror apat ter:a i :u(a saat pemba3aa# bui t/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 ter apat 6itur mu tip e e)cept. +aitu kita apat me#a#(kap e)ception e#(a# baris except +a#( berbe a. Hal i#i ilakuka# :ika kita i#(i# memberika# perlakua# berbe a kepa a setiap e)ception +a#( ita#(a#i. 4ebi$ lem(kap#+a pa#tau ko e 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

Pa a ko e iatas kita me#3oba me#:ebak ua bua$ e)ception e#(a# ua baris e)cept berbe a. Hal tersebut ilakuka# a(ar perlakua# pa a pe#a#(a#a# setiap e)ception memiliki pe#a#(a#a# +a#( berbe a. Eisal pa a baris except pemba(ia# #ol a a i#6ormasi Fproses pemba(ia# (a(al kare#a : F . se a#(ka# i baris except #ilai error ter apat i#6ormasi Fproses per$itu#(a# (a(al kare#a : F. )a i e#(a# me#((u#aka# baris except +a#( berbe a *# a apat me#a#(a#i error +a#( berbe a sesuai kebutu$a# *# a.

@0

NN (ambar 8.B $asil eksekusi eC3eptio#HB.p+ OO

+enggunakan +ultiple 'xception


"erbe a se ikit pa a 3o#to$ sebelum#+a. :ika pa a setiap e)ception ita#(a#i ole$ setiap baris except. Eaka pa a kai a$ mu tip e e)ception i satu except me#a#(a#i beberapa e)ception. "e a#+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

Ao e 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 ko e ko# isio#al atau perula#(a# i alam#+a. (ry/e)cept pu# mempu#+ai kai a$ +a#( sama ima#a try/e)cept apat isimpa# i alam try/e)cept +a#( lai##+a. Prioritas#+a a ala$ ta#(a#i +a#( luar terlebi$ a$ulu. )ika ter:a i i try/e)cept terluar maka blok ko e i alam#+a +a#( ter apat try/e)cept ti ak aka# ieksekusi. )ika i blok luar ti ak ter apat 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 pa a 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 pa a 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# pa a kasus +a#( aka# *# a ta#(a#i. Eisal kita i#(i# membuat sebua$ e)ception :ika a#(ka +a#( imasukka# a ala$ 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 pa a 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 S8i ak 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# pa a 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 ti ak. Eisal saat me#(ambil ata ari database. kita ti ak aka# ta$u a a ke(a(ala# apa +a#( aka# ter:a i. *(ar pro(ram kita tetap ama# a# ata ti ak rusak. Eaka baik ter:a i ke(a(ala# atau ti ak ko#eksi ke database $arus itutup. Hal tersebut :u(a bisa ter:a i saat pemba3aa# fi e. U#tuk me#3e(a$ kerusaka# fi e. baik aka# ter:a i error atau ti ak. fi e $arus itutup. 2i blok inally i#i pe#a#(a#a# +a#( ter:a i ketika e)ception mu#3ul atau ti ak 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

Ao e 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 ti ak me#((u#aka# fi e. $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#( su a$ iproses sebelum#+a b. U#tuk me#+impa# ata a(ar bisa iproses i kesempata# sela#:ut#+a. misal komputer imatika# kemu ia# i#+alaka# la(i $ari esok#+a. Aita butu$ sebua$ pe#+impa#a# +a#( bersi6at resi e#t a# isimpa# i secondary storage seperti harddis+. P+t$o# se# iri me#+e iaka# beberapa me ia pe#+impa#a# +a#( bisa i(u#aka# ole$ programmer P+t$o#. a a fi e. shel&e. !arshal. pickle. a# sFlite7. Pa a bab i#i kita aka# ba$as me#(e#ai fi e berupat tCt. Fi e i P+t$o# bisa berupa tCt. 3s,. atau :e#is lai##+a. 8Ct merupaka# 3o#to$ fi e +a#( seri#( i(u#aka#. Fi e :e#is i#i berisi p ain te)t. Fi e :e#is i#i me#+impa# karakter as3ii standard +a#( iterima ari user. Pa a pembuata# fi e ter apat beberapa mo e alam ma#ipulasi fi e. "erikut a6tar mo e ma#ipulasi fi e tersebut : Go 1 +ode r Keterangan Eembuka fi e a# $a#+a u#tuk pemba3aa# sa:a. Pointer fi e aka# itempatka# i a&al fi e. )ika pa a saat pembukaa# fi e ti ak isertaka# mo e ma#ipulasi fi e. maka mo e

@B i#i se3ara defau t fi e ipakai u#tuk ma#ipulasi

&

Eembuka fi e a# $a#+a u#tuk pe#ulisa# sa:a. )ika fi e +a#( ibuka su a$ a a a# me#((u#aka# mo e U&U. maka fi e tersebut aka# itimpa. )ika fi e ti ak a a maka aka# ibuatka# fi e baru. Eembuka fi e u#tuk pe#amba$a# isi fi e. Pointer fi e isimpa# i ba(ia# ak$ir fi e :ika fi e tersebut a a. )ika fi e ti ak a a maka aka# ibuatka# fi e baru. Eo e i#i itamba$ka# masi#( masi#( pa a mo e r. &.a me#:a i rb. &b. ab. 2e#(a# me#amba$ka# mo e b pa a setiap mo e ma#ipulasi sta# ar. Eaka pemba fi e 3aa# fi e aka# ilakuka# alam 6ormat bi#er Eo e i#i itamba$ka# ke alam mo e 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$ fi e 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:a i error kelak. kita bisa me#a#(a#i#+a e#(a# lebi$ mu a$. Aemu ia# i alam blok try/e)cept tersebut buat sebua$ ob:ek fi e e#(a# me#((u#aka# bui t/in function ope#(!. Pa a function tersebut ter apat ua parameter +a#( biasa i(u#aka# +aitu. #ama fi e serta mo e ma#ipulasi fi e/#+a. Aare#a kita i#(i# membuat fi e baru. maka mo e F&G i(u#aka# pa a kasus pertama berikut : isting 1 fi e21.py tr+: sebua$H6ile K ope#(Sabse#.tCtS. U&U! pri#t S#ama 6ile +a#( ta i ibuat : S. sebua$H6ile.#ame pri#t Smo e pemba3aa# 6ile : S. sebua$H6ile.mo e pri#t Sapaka$ 6ile#+a u a$ itutup b : S. sebua$H6ile.3lose sebua$H6ile.3lose(! pri#t Sapaka$ 6ile#+a u a$ itutup b : S. sebua$H6ile.3lose eC3ept IO;rror. e: pri#t Sproses (a(al kare#a : S. e

Aetika kita su a$ membuka sebua$ fi e a# terbe#tuk ob:ek fi e. Aita apat me#(akses method a#

@> atribut pa a ob:ek fi e tersebut. *tribut +a#( seri#( iakses u#tuk pemrosesa# fi e a#tara lai# : #ame. mo e. 3lose . *tribut #ame a ala$ #ama fi e tersebut. mo e a ala$ mo e ma#ipulasi fi e tersebut. a# 3lose me#+ataka# apaka$ fi e tersebut su a$ itutup atau belum. Se a#(ka# method +a#( iakses iatas a ala$ 3lose(!. +a#( i(u#aka# u#tuk me#utup fi e setela$ pe#((u#aa# fi e selesai. 2e#(a# me#utup fi e. pe#((u#aa# memori utama aka# i$emat. )ika ti ak per#a$ me#utup fi e alam :umla$ +a#( ba#+ak bisa me#+ebabka# memory ea+. )a i ber$ati $atila$ :2.

NN (ambar =.1 $asil eksekusi 6ileH1.p+ OO

+engisi -ile
Pa a 3o#to$ pertama. fi e +a#( kita buat masi$ koso#(. belum berisi. Sesuai #ama#+a kita se a#( membuat fi e ber#ama Uabse#.tCtU. +a#( i alam#+a aka# ter apat a6tar $a ir perkulia$a#. 2e#(a# me#((u#aka# method &rite(!. kita bisa me#amba$ka# isi pa a fi e Uabse#.tCtU. a# +a#( aka# kita isika# a ala$ teks. 6ethod i#i memerluka# parameter sebua$ string +a#( aka# itulis i lokasi terte#tu pa a fi e ber asarka# posisi pointer fi e bera a. isting 1 fi e23.py

tr+: sebua$H6ile K ope#(Sabse#.tCtS. U&U! pri#t S#ama 6ile +a#( ta i ibuat : S. sebua$H6ile.#ame pri#t Smo e pemba3aa# 6ile : S. sebua$H6ile.mo e pri#t Sapaka$ 6ile#+a u a$ 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 u a$ 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 pa a fi e teks +a#( kita buat. kita apat membuka fi e +a#( tela$ ibuat e#(a# teks editor a# apat meli$at isi ari fi e tersebut.

NN (ambar =.2 $asil eksekusi 6ileH2.p+ OO

+e!)aca Isi -ile


Setela$ me#(isi fi e e#(a# method &rite(!. Sekara#( kita aka# me#((u#aka# method rea (! u#tuk memba3a fi e. Pastika#. fi e +a#( aka# iba3a $arus alam mo e UrU. :ika ti ak alam mo e tersebut. misal alam mo e U&U. maka aka# mu#3ul error : GO;rror: 1ile #ot ope# 6or rea i#(G. Aemu ia# u#tuk me#(eta$ui posisi pointer fi e bera a. kita (u#aka# method tell(!. isting 1 fi e24.py

tr+: sebua$H6ile K ope#(Sabse#.tCtS. UrU! pri#t S#ama 6ile +a#( ta i ibuat : S. sebua$H6ile.#ame pri#t Smo e pemba3aa# 6ile : S. sebua$H6ile.mo e pri#t Sapaka$ 6ile#+a u a$ itutup b : S. sebua$H6ile.3lose pri#t Sisi 6ile : M#S. sebua$H6ile.rea (! pri#t Sposisi poi#ter pa a 6ile : S. sebua$H6ile.tell(! sebua$H6ile.3lose(! pri#t Sapaka$ 6ile#+a u a$ 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 fi e tersebut. 8api method i#i memba3a sekali(us isi fi e +a#( iba3a. ti ak perbaris. )ika pemba3aa# ilakuka# sekali(us. rua#( memori +a#( ibutu$ka# :au$ lebi$ besar aripa a fi e +a#( iba3a perbaris. Aemu ia# e#(a# a a#+a method tell(!. kita bisa me#(eta$ui posisi pointer fi e bera a ima#a. a(ar mempermu a$ saat ma#ipulasi fi e.

NN (ambar =.3 $asil eksekusi 6ileH3.p+ OO

+e!)aca Isi -ile dengan Cara Baris Per Baris


)ika pa a 3o#to$ sebelum#+a pemba3aa# fi e ilakuka# sekali(us. pa a 3o#to$ kali i#i pemba3aa# fi e aka# ilakuka# baris perbaris. Pemba3aa# fi e teks e#(a# memba3a perbaris i#i bisa ilakuka# e#(a# me#((u#aka# pe#(ula#(a# or. Fi e i#i iperlakuka# la+ak#+a list +a#( i(u#aka# i pe#(ula#(a# or. 2isi#i fi e ia#((ap seba(ai list +a#( berisi eleme# string. isting 1 fi e28.py

tr+: sebua$H6ile K ope#(Sabse#.tCtS. UrU! pri#t S#ama 6ile +a#( ta i ibuat : S. sebua$H6ile.#ame pri#t Smo e pemba3aa# 6ile : S. sebua$H6ile.mo e pri#t Sapaka$ 6ile#+a u a$ 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 pa a 6ile : S. sebua$H6ile.tell(! sebua$H6ile.3lose(! pri#t Sapaka$ 6ile#+a u a$ 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 se ikit berbe a. )ika fi e berukura# besar. aka# lebi$ bi:ak :ika kita memba3a#+a perbaris a(ar rua#( memori +a#( i(u#aka# ti ak ba#+ak terpakai.

NN (ambar =.? $asil eksekusi 6ileH?.p+ OO

+engatur Posisi Pointer -ile


Suatu saat kita i#(i# me#(isi fi e i lokasi terte#tu i sebua$ fi e. "iasa#+a kita me#amba$ka# fi e i ba(ia# ak$ir fi e. atau memba3a fi e selalu iba(ia# a&al fi e. * a saat#+a kita i#(i# memba3a i posisi ke 1B ari a&al fi e. atau posisi '1B karakter ari pointer fi e. 2i ob:ek fi e ter apat method +a#( i#amaka# seek(!. 6ethod tersebut memiliki ua bua$ paramater +aitu :arak +a#( ii#(i#ka# a# patoka# :arak tersebut. )ika parameter ke ua iisi ole$ a#(ka 0. berarti patoka# bera a i a&al 6ile. )ika parameter ke ua iisi ole$ a#(ka 1. berarti patoka# bera a i tempat poi#ter fi e bera a. )ika parameter ke ua iisi ole$ a#(ka 2. maka patoka# bera a i ba(ia# ak$ir fi e. )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 fi e29.py tr+: sebua$H6ile K ope#(Sabse#.tCtS. UrbU! pri#t S#ama 6ile +a#( ta i ibuat : S. sebua$H6ile.#ame pri#t Smo e pemba3aa# 6ile : S. sebua$H6ile.mo e

80 pri#t Sapaka$ 6ile#+a u a$ 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 pa a 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 pa a 6ile : S. sebua$H6ile.tell(! sebua$H6ile.3lose(! pri#t Sapaka$ 6ile#+a u a$ itutup b : S. sebua$H6ile.3lose eC3ept IO;rror. e: pri#t Sproses (a(al kare#a : S. e

Pa a 3o#to$ iatas. pointer fi e ipi# a$ka# kembali ke posisi a&al. 2e#(a# memberika# :arak 0. a# me#e#tuka# patoka# i a&al fi e. maka posisi pointer fi e pi# a$ ke ba(ia# a&al fi e. 2e#(a# emikia# fi e bisa iba3a ula#( u#tuk ke ua kali#+a.

NN (ambar =.B $asil eksekusi 6ileHB.p+ OO

81

+engganti Ga!a -ile


2alam ma#ipulasi fi e. ter apat operasi seperti pe#(uba$a# #ama fi e. memi# a$ka# fi e. ataupu# me#($apus fi e. P+t$o# se# iri me#+e iaka# mo ule os +a#( i alam#+a ter apat 6itur' 6itur tersebut. Seba(ai 3o#to$ pertama kita aka# me#((a#ti #ama fi e ari Fabse#.tCtG ke F a6tar' $a ir.tCtG. Pertama kita $arus me#('import mo ul os. Aemu ia# kita (u#aka# method re#ame(!. 6ethod tersebut memiliki ua parameter +aitu #ama fi e +a#( aka# iuba$ #ama#+a. a# #ama baru +a#( ii#(i#ka#. isting 1 fi e2:.py

import os tr+: os.re#ame(Uabse#.tCtU. U a6tar'$a ir.tCtU! pri#t S0ama 6ile su a$ iuba$..S eC3ept (IO;rror. OS;rror!. e: pri#t Sproses error kare#a : S. e

Setela$ ko e iatas i:ala#ka#. 3oba li$at fi e +a#( sebelum#+a Fabse#.tCtG aka# beruba$ me#:a i F a6tar'$a ir.tCtG.

NN (ambar =.> $asil eksekusi 6ileH>.p+ OO

+enghapus -ile
Co#to$ lai##+a a ala$ me#($apus fi e. Aita bisa (u#aka# method remo,e(! u#tuk me#($apus fi e +a#( ii#(i#ka#. Parameter +a#( ibutu$ka# a ala$ #ama fi e +a#( aka# i$apus. isting 1 fi e2;.py

82 import os tr+: os.remo,e(U a6tar'$a ir.tCtU! pri#t S1ile su a$ i$apus..S eC3ept (IO;rror. OS;rror!. e: pri#t Sproses error kare#a : S. e Aemu ia# :ika fi e su a$ i$apus. kita ti ak apat membuka fi e tersebut. Aare#a fi e tersebut su a$ $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#( a a 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$ para i(ma pemro(rama# ima#a kita memo elka# 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. Aemu ia# 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 temp ate +a#( iistila$ka# e#(a# kelas atau c ass. Sebua$ kelas merupaka# temp ate 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 ko e kelas tersebut itulis setela$ ta# a titik ua tersebut. a# seperti biasa iperluka# i# e#tasi a(ar blok ko e +a#( kita tulis masuk ke alam blok ko e kelas. Ae ua a ala$ 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 be a istila$ pa a para i(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 pa a atribut atribut +a#( imiliki ob:ek. Aeti(a a ala$ +ey#ord sel 2 +ey#ord tersebut i(u#aka# pa a 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 ti ak isertaka# sel pa a method +a#( imiliki kelas tersebut. aka# mu#3ul error : F8+pe;rror: na!a1 unction34 takes eCa3tl+ n ar(ume#ts (1 (i,e#! G +a#( arti#+a method tersebut ti ak 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#( ter iri 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 c ass21.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# kemu ia# pa#((il #ama kelas +a#( aka# ii#(i#ka# a# masuka# parameter a&al +a#( ibutu$ka#. Aemu ia# saat ob:ek ber$asil ibuat. kita bisa me#(akses atribut a# method ari ob:ek tersebut. Seperti +a#( kita lakuka# pa a ma#ipulasi fi e. kita bisa me#(akses method 3lose(!. &rite(!. a# rea (! serta me#(akses atribut close. na!e. a# !ode. 2e#(a# parameter berbe a #amu# karakterisitik sama. perse(i pa#:a#( +a#( i$asilka# :a i bera(am. 8u:ua# ari OOP i#i se# iri. me#($emat pe#ulisa# ko e pro(ram +a#( kita buat. 8a#pa OOP kita $arus membuat atribut u#tuk setiap ob:ek. 2a# pe#ulisa# ko e pro(ram pu# me#:a i 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 bui t/in c ass attribute +a#( aka# bisa i(u#aka# saat kita membuat kelas apapu#. *ui t/in c ass 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 : HH o3HH. i(u#aka# u#tuk me#(akses okume#tasi +a#( ter apat pa a kelas HH#ameHH. i(u#aka# u#tuk me#(akses #ama kelas HH i3tHH. i(u#aka# u#tuk me# apatka# #amespa3e ari kelas tersebut. Aalau pa a ob:ek +a#( su a$ ii#sta#siasi met$o i#i aka# me#(eluarka# i#6ormasi te#ta#( atribut +a#( su a$ terisi #ilai HHmo uleHH. i(u#aka# u#tuk me# apatka# i#6ormasi ima#a lokasi mo ul +a#( me# e6i#isika# kelas tersebut HHbasesHH. i(u#aka# u#tuk meli$at arima#a kelas tersebut i&ariska#. Pe&arisa# pa a OOP a ala$ me#((u#aka# karakteristik suatu kelas pa a kelas +a#( i#(i# me#((u#aka# karakteristik kelas +a#( me&ariska##+a. iakses kelas a# ob:ek $asil

Seba(ai 3o#to$ a a beberapa bui t/in c ass attribute +a#( bisa i#sta#siasi a# a a +a#( $a#+a bisa iakeses kelas.

8@ isting 1 c ass23.py

3lass Perse(iPa#:a#(: UUU Sebua$ kelas +a#( memo elka# 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#(.HH o3HH pri#t Perse(iPa#:a#(.HH#ameHH pri#t Perse(iPa#:a#(.HH i3tHH pri#t Perse(iPa#:a#(.HHmo uleHH pri#t Perse(iPa#:a#(.HHbasesHH

88 pri#t Perse(iPa#:a#(*.HH o3HH pri#t Perse(iPa#:a#(*.HH i3tHH pri#t Perse(iPa#:a#(*.HHmo uleHH

Pa a 3o#to$ iatas. atribut HH#ameHH a# HHbasesHH $a#+a bisa iakses ole$ kelas. Se a#(ka# ob:ek $asil i#sta#siasi ti ak bisa me#(akses#+a.

NN (ambar 10.3 $asil 3lassH2.p+ OO Pemba$asa# me#(e#ai OOP i#i ti ak bisa iba$as se3ara keseluru$a# alam satu bab. * a ba#+ak $al +a#( $arus iulas seperi inheritance, po ymorphism, abstract, o!erriding, o!er oad, a# lai# lai#.

11. Pengenalan +odule

8=

+odule dan Packages


6odu e a ala$ istila$ fi e +a#( berisi +ode P+t$o#. )a i ari a&al sebe#ar#+a kita su a$ membuat modu e P+t$o#. Ha#+a sa:a pa a ko#sep modu e i#i. ko e P+t$o# +a#( aka# i(u#aka# berula#( aka# ipisa$ka# ari fi e utama ke alam fi e lai# +a#( k$usus me#ampu#( ko e P+t$o# tersebut. 2i alam modu e kita bisa me#+impa# c ass. function. ,ariabel. a# struktur ata +a#( bisa i(u#aka# ole$ pro(ram. Eisal kita i#(i# membuat sebua$ ko e +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 ti ak i3ampur sa:a e#(a# :e#is bi a#( +a#( lai# b Hal i#i ilakuka# a(ar kita mu a$ alam me#(elola ko e P+t$o# +a#( kita tulis. Co#to$ lai##+a misal kita me#ulis ko e +a#( beri#teraksi e#(a# atabase a# ko e u#tuk melakuka# proses pe#ulisa# lapora# se3ara terpisa$. 2alam $al i#i modu e mempu#+ai ko e P+t$o# +a#( reusab e a(ar ko e +a#( itulis pa a pro(ram kita ter uplikasi. Se a#(ka# fi e P+t$o# +a#( aka# i:ala#ka# a# mema#((il function. c ass. atau ,ariabel ari kumpula# modu e +a#( ibuat berisi runnab e code. Ao e +a#( ieksekusi ole$ interpreter P+t$o# u#tuk me#ampilka# &u:u ari pro(ram +a#( ibuat. Aemu ia# modu e ? modu e +a#( su a$ itulis bisa ikelompoka# ke alam sebua$ pac+age. Pac+age i#i se# iri berupa fo der +a#( memiliki 6ile HHi#itHH.p+. a(ar fo der tersebut ike#ali seba(ai modu e. 2i alam pac+age i#i modu e ? modu e memiliki tu:ua# a# 6u#(sio#al +a#( sera(am. Eisal pa a 3o#to$ +a#( aka# kita 3oba. ter apat sebua$ pac+age bi a#(. +a#( berisi mo ule bi a#( se(iti(a a# perse(i. 2i alam#+a ter apat fi e HHi#itHH.p+ +a#( bertu(as u#tuk me' oad semua modu e +a#( a a i alam pac+age. se(iti(a.p+ +a#( berisi c ass se(iti(a. a# perse(i.p+ +a#( berisi c ass perse(i. 2i alam fi e se(iti(a.p+ a# perse(i.p+ masi#( masi#( bisa iisi berba(ai :e#is bi a#( +a#( sesuai #ama modu e tersebut. Ha#+a sa:a u#tuk 3o#to$ kali i#i ibatasi kepa a satu :e#is bi a#( sa:a

+e!)uat +odule 8 +odule di dala! Packages


Setela$ mema$ami ko#sep mo ule. 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$ 6ol er baru ber#ama bi a#(. 1ol er 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 Ao e perse(i.p+ iatas $a#+a berse(i c ass Perse(i +a#( mempu#+ai atribut sisi a# method method/#+a. 2i alam modu e i#i kita bisa sa:a me#ulis kelas Perse(iPa#:a#(. Hal tersebut memu a$ka# kita a(ar bi a#( +a#( :e#is#+a perse(i ti ak ter3ampur e#(a# bi a#( +a#( :e#is#+a se(iti(a. Pastika# *# a me#+impa# fi e perse(i.p+ i alam fo der bi a#(. 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 modu e perse(i.p+. $a#+a sa:a modu e se(iti(a.p+ aka# iisi berba(ai :e#is se(iti(a. Selai# itu pa a ko e iatas kita mema#((il modu e !ath kare#a saat #a#ti mo ule se(iti(a.p+ i#i iloa . ko e +a#( me#((u#aka# met$o met$o pa a mat$ $arus i loa :u(a ari mo ule !ath. Pastika# mo ule i#i tersimpa# i 6ol er bi a#(.

=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 Aemu ia# fi e +a#( mesti a a i alam sebua$ pac+age a ala$ HHi#itHH.p+. Fi e tersebut ber6u#(si u#tuk me' oad isi mo ule ke alam memori a(ar isi modu e bisa i(u#aka# i fi e +a#( berisi runnab e code. Pa a ko e iatas. ter apat si#taks : ro! se(iti(a i!port Se(iti(a. 7ey#ord ro! a ala$ +ey#ord +a#( i(u#aka# u#tuk me#e#tuka# pac+age atau modu e ma#a +a#( aka# kita ru:uk. se a#(ka# import i(u#aka# u#tuk me#(ambil c ass. function atau ,ariabel +a#( i e6i#isika# i alam modu e. 2isa#a kita me#('import ua bua$ kelas +aitu Se(iti(a a# Perse(i ari ua modu e berbe a +aitu se(iti(a.p+ a# perse(i.p+. Se a#(ka# ko e iba&a$#+a i(u#aka# :ika fi e HHi#itHH.p+ i#(i# me#:ala#ka# peri#ta$ terte#tu. Pastika# fi e i#i isimpa# i fo der bi a#(.

+enggunakan +odule di -ile Ita!a


Sampai ak$ir#+a kita tiba u#tuk me#ulis ko e utama. Ao e utama i#i merupaka# ko e +a#( berisi runnab e code. a# me#((u#aka# c ass +a#( su a$ i e6i#isika# i modu e ? modu e sebelum#+a. 2e#(a# emikia# ko e pro(ram ti ak aka# me#umpuk i fi e utama. )ika *# a ber$asil me#(ikuti petu#:uk pa a bab i#i. modu e, pac+ages mempu#+ai sususa# seperti berikut : a# fi e utama $arus

NN (ambar 12.1 struktur mo ule pa3ka(es bi a#( OO isting 1 main.py

=2 6rom bi a#( 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#((!

Pa a ko e iatas kita me#('import kelas ari pac+age bi a#(. Aemu ia# melakuka# i#sta#siasi a# memberika# #ilai sesuai +a#( kita i#(i#ka#. Aemu ia# kita akses method ? method +a#( ter apat pa a kelas tersebut u#tuk me# apatka# i#6ormasi luas. a# kelili#( pa a masi#( masi#( bi a#(. )ika ber$asil maka ko e +a#( aka# i:ala#ka# seperti berikut :

NN (ambar 12.2 eksekusi mai#.p+ OO

=3

0a tar 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$ 2ea li#eG. 2:a#(o merupaka# sala$ satu me(a6rame&ork +a#( su a$ 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 $ttp:%%&&&. :a#(opro:e3t.3om li#k berikut :

P+/ame a ala$ #rapper u#tuk Simple 2ire3t Ee ia 4ibrar+. sebua$ ibrary u#tuk mema#ipulasi (ra6is a# me ia berupa au io a# ,i eo. 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 i apatka# ari mo ule mo ule P+/ame : P+/ame 3 rom. me#(elola 3 rom a# pemutar suara 3ursors. me'loa (ambar kursor. a# me#+ertaka# kursor sta# ar ispla+. me#(e# alika# la+ar ra&. me#((ambar (ra6is se er$a#a pa a 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 a ala$ 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# a 32 Pa# a32 mempu#+ai uku#(a# seperti : 8$e S3e#e /rap$. Eo el a# *3tor.8eCturi#(. S$a ers. 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 $ttp:%%&&&.pa# a3 .or( li#k berikut i#i :

SimpleC5 merupaka# si#(kata# ari Simple Computer 5isio#. merupaka# 6rame&ork p+t$o# +a#( mu a$ i(u#aka# a# membu#(kus librar+ 3omputer ,isio# ope# sour3e a# al(oritma terkait u#tuk peme3a$a# masala$. "eberapa 6itur +a#( i uku#( 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 $ttp:%%&&&.simple3,.or( berikut i#i :

SimpleC5

8ek#olo(i 0atural 4a#(ua(e Pro3essi#( semaki# $ari semaki# ma:u. Seba(ai 3o#to$. ba#+ak smartp$o#es. +a#( su a$ me# uku#( pe#(e#ala# tulisa#. kemu ia# ba#+ak mesi# pe#3ari +a#( me# uku#( pe#ulisa# teks ta struktur. a a :u(a pe#er:ema$a# ba$asa. 048A 048A $a ir 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#( i uku#( ole$ 048A a#tara lai# : 4a#(ua(e Pro3essi#(. 8eCt Corpora. Pro3essi#( 9a& 8eCt. Cate(ori-i#( a# 8a((i#( Dor s. Parsi#( teCt. Sema#ti3 *#al+sis. a# lai# lai#. 4ebi$ la#:ut 3obe $ttp:%%&&&.#ltk.or( 1lask ku#:u#(i li#k berikut :

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 $ttp:%%&&&.6lask.or( li#k berikut :

=@

La!piran * A Bahan Bela=ar Online


8utorial : )a,a2s P+t$o# 8utorial : )a,a2s P+t$o# ;Cample : 8utorialsPoi#t P+t$o# : <et3o e P+t$o# : 4ear# P+t$o# 8$e Har &a+ : P+t$o# Eo ule o6 8$e Deek : 1orum 2iskusi i 1a3ebook: P+t$o# P+t$o# I# o#esia P+t$o# 2e,elopers P+t$o# Pro(rammer Commu#it+ P+t$o# Pro(rammi#( P+t$o# User /roup Eala+sia 4ear# P+t$o# : : : : : : : $ttps:%%&&&.6a3ebook.3om%(roups%(p+t$o# $ttps:%%&&&.6a3ebook.3om%(roups%?@311?==2@2=831% $ttps:%%&&&.6a3ebook.3om%(roups%22?=?=8?1> $ttps:%%&&&.6a3ebook.3om%(roups%p+t$o##eres% $ttps:%%&&&.6a3ebook.3om%(roups%p+t$o# e,% $ttps:%%&&&.6a3ebook.3om%(roups%p+t$o#.mala+sia% $ttps:%%&&&.6a3ebook.3om%(roups%lear#p+t$o#.or(% $ttp:%%&&&.:a,a2s.3om%8utorial%P+t$o# $ttp:%%&&&.:a,a2s.3om%Co e%P+t$o# $ttp:%%&&&.tutorialspoi#t.3om%p+t$o# $ttp:%%&&&.-et3o e.3om%p+t$o# $ttp:%%lear#p+t$o#t$e$ar &a+.or(% $ttp:%%p+mot&.3om

=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 pa a buku i#i i apatka# 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!. Ao e pro(ram itulis e#(a# me#((u#aka# /ea#+ 8eCt ; itor. Semua ko e 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 i apatka# 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 6ree om: to assure e,er+o#e t$e e66e3ti,e 6ree om to 3op+ a# re istribute it. &it$ or &it$out mo i6+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 3re it 6or t$eir &ork. &$ile #ot bei#( 3o#si ere respo#sible 6or mo i6i3atio#s ma e 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# or er to use it 6or ma#uals 6or 6ree so6t&are. be3ause 6ree so6t&are #ee s 6ree o3ume#tatio#: a 6ree pro(ram s$oul 3ome &it$ ma#uals pro,i i#( t$e same 6ree oms 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(ar less 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 0e initions


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 $ol er 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 a resse as S+ouS. * SEo i6ie 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$ mo i6i3atio#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(ar i#( 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#ecrea able 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# e ite ire3tl+ a# strai($t6or&ar l+ &it$ (e#eri3 teCt e itors or (6or ima(es 3ompose o6 piCels! (e#eri3 pai#t pro(rams or (6or ra&i#(s! some &i el+ a,ailable ra&i#( e itor. 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+ ma e 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 mo i6i3atio# b+ rea ers 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#3lu e 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# ar c3o#6ormi#( simple H8E4 esi(#e 6or $uma# mo i6i3atio#. Opa\ue 6ormats i#3lu e PostS3ript. P21. proprietar+ 6ormats t$at 3a# be rea a# e ite 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 pro u3e 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 #ee e 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. pre3e i#( 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#+ me ium. eit$er 3ommer3iall+ or #o#3ommer3iall+. pro,i e 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 repro u3e 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 rea i#( 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+ i e#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 &or s o6 t$e title e\uall+ promi#e#t a# ,isible. dou ma+ a ot$er material o# t$e 3o,ers i# a itio#. 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#3lu e a ma3$i#ecrea able 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 a e 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+ pru e#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 e itio# 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 re istributi#( a#+ lar(e #umber o6 3opies. to (i,e t$em a 3$a#3e to pro,i e +ou &it$ a# up ate ,ersio# o6 t$e 2o3ume#t.

+odi ication
dou ma+ 3op+ a# istribute a Eo i6ie 5ersio# o6 t$e 2o3ume#t u# er t$e 3o# itio#s o6 se3tio#s 2 a# 3 abo,e. pro,i e t$at +ou release t$e Eo i6ie 5ersio# u# er pre3isel+ t$is 4i3e#se. &it$ t$e Eo i6ie 5ersio# 6illi#( t$e role o6 t$e 2o3ume#t. t$us li3e#si#( istributio# a# mo i6i3atio# o6 t$e Eo i6ie 5ersio# to &$oe,er possesses a 3op+ o6 it. I# a itio#. +ou must o t$ese t$i#(s i# t$e Eo i6ie 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 mo i6i3atio#s i# t$e Eo i6ie 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 Eo i6ie 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 mo i6i3atio#s a :a3e#t to t$e ot$er 3op+ri($t #oti3es. 1. I#3lu e. imme iatel+ a6ter t$e 3op+ri($t #oti3es. a li3e#se #oti3e (i,i#( t$e publi3 permissio# to use t$e Eo i6ie 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#+ Eo i6ie 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#3lu e 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 Eo i6ie 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 state i# t$e pre,ious se#te#3e. a# item es3ribi#( t$e Eo i6ie 5ersio# as

). 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 S2e i3atio#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 e i3atio#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#si ere part o6 t$e se3tio# titles. E. 2elete a#+ se3tio# e#title S;# orseme#tsS. Su3$ a se3tio# ma+ #ot be i#3lu e i# t$e Eo i6ie 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 Eo i6ie 5ersio# i#3lu es #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 Eo i6ie 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,i e it 3o#tai#s #ot$i#( but e# orseme#ts o6 +our Eo i6ie 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 &or s as a 1ro#tcCo,er 8eCt. a# a passa(e o6 up to 2B &or s as a "a3kcCo,er 8eCt. to t$e e# o6 t$e list o6 Co,er 8eCts i# t$e Eo i6ie 5ersio#. O#l+ o#e passa(e o6 1ro#tcCo,er 8eCt a# o#e o6 "a3kcCo,er 8eCt ma+ be a e b+ (or t$rou($ arra#(eme#ts ma e b+! a#+ o#e e#tit+. I6 t$e 2o3ume#t alrea + i#3lu es a 3o,er teCt 6or t$e same 3o,er. pre,iousl+ a e b+ +ou or b+ arra#(eme#t ma e 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#+ Eo i6ie 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 mo i6ie ,ersio#s. pro,i e t$at +ou i#3lu e 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#mo i6ie . 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 i e#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+ a i#( 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 S2e i3atio#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,i ual 3opies o6 t$is 4i3e#se i# t$e ,arious o3ume#ts &it$ a si#(le 3op+ t$at is i#3lu e i# t$e 3olle3tio#. pro,i e 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,i uall+ u# er t$is 4i3e#se. pro,i e +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(ar i#( ,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# me ium. oes #ot as a &$ole 3ou#t as a Eo i6ie 5ersio# o6 t$e 2o3ume#t. pro,i e #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#si ere a ki# o6 mo i6i3atio#. 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 $ol ers. but +ou ma+ i#3lu e tra#slatio#s o6 some or all I#,aria#t Se3tio#s i# a itio# to t$e ori(i#al ,ersio#s o6 t$ese I#,aria#t Se3tio#s. dou ma+ i#3lu e a tra#slatio# o6 t$is 4i3e#se pro,i e t$at +ou also i#3lu e 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+. mo i6+. subli3e#se. or istribute t$e 2o3ume#t eC3ept as eCpressl+ pro,i e 6or u# er t$is 4i3e#se. *#+ ot$er attempt to 3op+. mo i6+. 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 a ress #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#3lu e 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 mo i6+ 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#3lu e 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 3o e. &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 So t#are
P+t$o# &as 3reate i# t$e earl+ 1==0s b+ /ui o ,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. /ui o remai#s P+t$o#es pri#3ipal aut$or. alt$ou($ it i#3lu es ma#+ 3o#tributio#s 6rom ot$ers. I# 1==B. /ui o 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. /ui o 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,i ual 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 '&i e li3e#se to repro u3e. 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,i e . $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,e G 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,i e $erei#. t$e# 4i3e#see $ereb+ a(rees to i#3lu e i# a#+ su3$ &ork a brie6 summar+ o6 t$e 3$a#(es ma e 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 tra emarks or tra e #ame i# a tra emark se#se to e# orse or promote pro u3ts 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,i ual 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 '&i e li3e#se to repro u3e. 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,i e . $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. eC3lu i#( 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# tra emarks or tra e #ames i# a tra emark se#se to e# orse or promote pro u3ts 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 a33or i#( 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,i ual 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 '&i e li3e#se to repro u3e. 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,i e . $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,e G 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 ma e 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 i e#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,i e $erei#. t$e# 4i3e#see $ereb+ a(rees to i#3lu e i# a#+ su3$ &ork a brie6 summar+ o6 t$e 3$a#(es ma e 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 6e eral i#telle3tual propert+ la& o6 t$e U#ite States. i#3lu i#( &it$out limitatio# t$e 6e eral 3op+ri($t la&. a# . to t$e eCte#t su3$ U.S. 6e eral la& oes #ot appl+. b+ t$e la& o6 t$e Commo#&ealt$ o6 5ir(i#ia. eC3lu i#( 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 tra emarks or tra e #ame i# a tra emark se#se to e# orse or promote pro u3ts 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 *mster am. 8$e 0et$erla# s. *ll ri($ts reser,e . Permissio# to use. 3op+. mo i6+. a# istribute t$is so6t&are a# its o3ume#tatio# 6or a#+ purpose

108 a# &it$out 6ee is $ereb+ (ra#te . pro,i e 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