Professional Documents
Culture Documents
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.
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
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.
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.
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.? 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.
> 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#(!
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!
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
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.
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#:
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:
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?
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
'
%%
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
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
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
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
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
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
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
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
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!
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
21
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
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 :
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 :
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>
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 :
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.
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
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
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 :
32
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
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
3?
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
3@
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#(.
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
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
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
?B
?> 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
?@
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
?=
+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.
B2
B. +e!)uat -unction
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#.
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#.
BB
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!
B>
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.
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.
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.
>0
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
>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$.
>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
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.
>=
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
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
@1
,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
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:
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.
@? 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
?. +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
&
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
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.
+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
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.
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.
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.
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.
81
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.
+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
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#(.
8>
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
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#.
8=
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#(.
=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 :
=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
=?
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 :
=@
=8
==
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.
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.
,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.
10B
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+
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;.