SlideShare a Scribd company logo
Pemrograman dengan 
Python untuk Pemula 
oon arfiandwi 
http://oo.or.id/py
Material ini digunakan untuk kelas teknologi pengenalan pemrograman 
dengan bahasa pengantar Python http://oo.or.id/py 
Dipublikasikan dengan lisensi Atribusi-Berbagi Serupa 
Creative Commons (CC BY-SA) oleh oon@oo.or.id
Tools to Install 
Download Python 2.7 from http://python.org/download 
or you can easly use online Python interpreter 
For Google Cloud Platform topic: 
Google App Engine SDK for Python from https: 
//cloud.google.com/appengine/downloads 
Pip Python Package Manager from http://pip.pypa. 
io/en/latest/installing.html
Outline 
Python intro 
Type, Variable, Value 
Functions 
Conditional 
Iteration 
String processing 
Intro to Google Cloud Platform with Python
Reference 
http://www.greenteapress.com/thinkpython/ 
http://www.pythonlearn.com/ 
http://www.diveintopython.net/ 
https://www.python.org/download/ 
http://pythoncentral.org/comparison-of-python-ides- 
development/
Software/Program/App 
compiled or interpreted (or both) 
input-process-output (decide input & output, think about the process) 
syntax and semantic 
>>> 1 + 2 = 3 
>>> panjang = 3 
>>> lebar = 4 
>>> luas = panjang + lebar
Python 
➔ High-level language 
➔ Interactive mode & Scripting mode 
➔ Online interpreter 
◆ http://www.skulpt.org/ 
◆ http://pythontutor.com/ 
➔ case sensitive
Python Brochure | http://getpython.info
Introduction to Python with Jessica McKellar
Hello Python 
>>> print ‘Hello, World!’ 
Hello, World! 
>>> type(‘Hello, World!’) 
<type ‘str’> 
>>> print 1+2 
3 
>>> type(3) 
<type ‘int’> 
>>> type(‘1’)
Type, Variable, Value 
>>> i = 1 
(i adalah variable, dengan type int, memiliki value 1, diberi nilai dengan operator =) 
>>> kata = ‘nilai’ 
(kata adalah variable, dengan type str, memiliki value nilai) 
some of basic data type: 
Integer: int 
String: str 
Boolean: bool
Variable Assignment 
>>> message=’message in the bottle’ 
>>> print message 
>>> type(message) 
>>> x=1 
>>> x=x+2 
>>> x+=3 
>>> y=4 
>>> print x*y
Operator & Operand 
1+2 
(1 adalah operand, + adalah operator, 2 adalah operand) 
x < xx and z > y 
(operand? operator?) 
Order of operations: PEMDAS
Indentation 
4-space indents and no hard tab character
Interactive Mode & Scripting Mode 
give sample of interactive mode on console 
give sample of scripting mode count_down.py
List 
List is a sequence, of elements or items 
[1, 2, 3] 
['ab', 'bc', 'cd', 'de'] 
['ab', 'bc', 1, 2, 1.1, [True, False]]
Array 
array.array is a wrapper of C arrays. can 
handle only homogeneous C array of data. 
so for common use, simply use List 
http://stackoverflow. 
com/questions/176011/python-list-vs-array-when- 
to-use
Tuple 
>>> t = (1, 2, 3) 
>>> type(t) 
<type ‘tuple’> 
>>> print t 
>>> t = (‘hello’) 
>>> print t
String 
String as sequence 
String slice 
String methods (intro OO first) 
String comparison 
in Operator
String 
>>> kata = ‘pemrograman’ 
>>> print kata[4] 
>>> lenkata = len(kata) 
>>> print lenkata 
>>> print kata[lenkata-1] 
>>> for char in kata: 
… print char 
>>> print kata.upper()
String Operations 
Concatenation 
>>> print ‘pemrograman’ + ‘python’
Formatted Printing 
print 'formatting %s %d' % ('text', 7) 
http://forums.udacity. 
com/questions/2019688/python-101-unit-2- 
formatted-printing-and-function-documentation
Conditional 
if 
if .. else .. 
if .. elif .. else ..
Conditional sample 
>>> hari = ‘minggu’ 
>>> if hari == ‘sabtu’ or hari == ‘minggu’: 
… print ‘akhir pekan!’ 
… 
akhir pekan!
boolean, and, or 
x and y 
akan bernilai True, jika keduanya True 
selain itu bernilai False 
x or y 
akan bernilai False, jika keduanya False 
selain itu bernilai True
Conditional samples (2) 
>>> x = 4 
>>> if x%2 == 0: 
… print ‘even’ 
… else: 
… print ‘odd’
assignments 
buat kode program untuk mengecek apakah 
variable x itu positif atau negatif 
>>> x = -1 
buat kode program untuk mengecek apakah 
variable x itu positif, negatif, atau nol 
>>> x = 0
Conditional samples (3) 
>>> x = 7 
>>> if x > 8: 
… print ‘A’ 
… elif x>6 and x<8: 
… print ‘B’ 
… else: 
… print ‘C’
Functions 
Function call 
Add new functions 
Fruitful function, void function 
import 
importing with from
function call and create function 
>>> type(True) 
>>> def apakah_genap(angka): 
… if angka%2 == 0: 
… print ‘benar, genap’ 
… else: 
… print ‘salah, ganjil’ 
>>> apakah_genap(7) 
>>> apakah_genap(100)
function call and create function 
>>> def luas_persegi(panjang, lebar): 
… luas = panjang * lebar 
… return luas 
… 
>>> luasnya = luas_persegi(20, 30) 
>>> print luasnya
import function 
>>> import math 
>>> print math 
>>> akar9 = math.sqrt(9) 
>>> print akar9
assignment 
buat sebuah fungsi luas_lingkaran 
>>> luas_lingkaran(10) 
note: 
pi: math.pi 
input: jari-jari 
process: pi * jari-jari * jari-jari
Iteration with while 
>>> x = 7 
>>> while x>0: 
… print ‘data-%i’ % x 
… x = x -1
assignment 
buat iteration menggunakan while, dalam 
sebuah fungsi, yang akan menampilkan hanya 
angka yang genap saja. 
>>> count_down_genap(4) 
4 
2
Iteration while with break 
>>> while not ketemu: 
... databerikut = cari_data() 
... if databerikut == yangdicari: 
... break 
...
Iteration with for 
>>> for i in range(3) 
… print ‘ulang’ 
>>> for i in range(5,10) 
… print i
comments & docstring 
>>> xxx = 3 # var name xxx 
>>> print xxx
Variable Scope 
local
Google Cloud Platform with Python 
let’s start by making a website using python 
Google Cloud Platform have a free tier of 
Google App Engine 
we’ll develop using Google App Engine SDK for 
Python 
https://developers.google.com/appengine/docs/python/gettingstartedpython27/introduction
Google App Engine SDK for Python 
create 2 files on directory 
app.yaml 
main.py 
dev_appserver.py projectdir 
open http://localhost:8080/
app.yaml 
application: waktusaatini 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 
handlers: 
- url: .* 
script: main.application 
libraries: 
- name: webapp2 
version: latest
main.py 
import datetime 
import webapp2 
class MainPage(webapp2.RequestHandler): 
def get(self): 
message = ‘<p>waktu %s</p>’ % datetime.datetime.now() 
self.response.out.write(message); 
application = webapp2.WSGIApplication([(‘/’, MainPage)], debug=True)
Template Engine Jinja2 
install Jinja2 
# pip install jinja2 
3 Files: 
● app.yaml 
● main.py 
● home.html 
Upload to appspot: 
# appcfg.py update kelas-teknologi/ 
Sample: http://kelas-teknologi.appspot.com
app.yaml 
application: kelas-teknologi 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 
handlers: 
- url: .* 
script: main.application 
libraries: 
- name: webapp2 
version: latest 
- name: jinja2 
version: latest 
- name: markupsafe 
version: latest
main.py 
import datetime 
import webapp2 
import jinja2 
import os 
from google.appengine.api import users 
template_env = jinja2.Environment( 
loader=jinja2.FileSystemLoader(os.getcwd()))
main.py (cont’d) 
class MainPage(webapp2.RequestHandler): 
def get(self): 
current_time = datetime.datetime.now() 
user = users.get_current_user() 
login_url = users.create_login_url(self.request.path) 
logout_url = users.create_logout_url(self.request.path) 
template = template_env.get_template('home.html') 
context = { 
'current_time': current_time, 
'user': user, 
'login_url': login_url, 
'logout_url': logout_url, 
} 
self.response.out.write(template.render(context)) 
application = webapp2.WSGIApplication([('/', MainPage)], debug=True)
home.html 
<html><head><title>The Time Is...</title></head> 
<body> 
{% if user %} 
<p> 
Welcome, <strong>{{ user.email() }}</strong>! 
You can <a href="{{ logout_url }}">sign out</a>. 
</p> 
{% else %} 
<p> Welcome! 
<a href="{{ login_url }}">Sign in or register</a> to customize. </p> 
{% endif %} 
<p>The time is: {{ current_time }}</p> 
</body></html>
Web Form & Datastore 
5 Files: 
● app.yaml 
● models.py 
● main.py 
● prefs.py 
● home.html 
Upload to appspot: 
# appcfg.py update kelas-teknologi/ 
Sample: http://kelas-teknologi.appspot.com
app.yaml 
application: kelas-teknologi 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 
handlers: 
- url: /prefs 
script: prefs.application 
login: required 
- url: .* 
script: main.application 
libraries: 
- name: webapp2 
version: latest 
- name: jinja2 
version: latest 
- name: markupsafe 
version: latest
models.py from google.appengine.api import users 
from google.appengine.ext import db 
class UserPrefs(db.Model): 
tz_offset = db.IntegerProperty(default=0) 
user = db.UserProperty(auto_current_user_add=True) 
def get_userprefs(user_id=None): 
if not user_id: 
user = users.get_current_user() 
if not user: 
return None 
user_id = user.user_id() 
key = db.Key.from_path('UserPrefs', user_id) 
userprefs = db.get(key) 
if not userprefs: 
userprefs = UserPrefs(key_name=user_id) 
return userprefs
main.py ...snip... 
import models 
...snip... 
class MainPage(webapp2.RequestHandler): 
def get(self): 
current_time = datetime.datetime.now() 
user = users.get_current_user() 
userprefs = models.get_userprefs() 
if userprefs: 
current_time += datetime.timedelta(0, 0, 0, 0, 0, userprefs.tz_offset) 
...snip... 
context = { 
'current_time': current_time, 
'user': user, 
'login_url': login_url, 
'logout_url': logout_url, 
'userprefs': userprefs, 
} 
self.response.out.write(template.render(context)) 
application = webapp2.WSGIApplication([('/', MainPage)], debug=True)
home.html <html><head><title>The Time Is...</title></head> 
<body> 
{% if user %} 
<p> 
Welcome, <strong>{{ user.email() }}</strong>! 
You can <a href="{{ logout_url }}">sign out</a>. 
</p> 
{% else %} 
<p> Welcome! 
<a href="{{ login_url }}">Sign in or register</a> to customize. </p> 
{% endif %} 
{% if user %} 
<form action="/prefs" method="post"> 
<label for="tz_offset"> 
Timezone offset from UTC (can be negative): 
</label> 
<input name="tz_offset" id="tz_offset" type="text" 
size="4" value="{{ userprefs.tz_offset }}" /> <input type="submit" value="Set" /> 
</form> 
{% endif %} 
<p>The time is: {{ current_time }}</p> 
</body></html>
prefs.py import webapp2 
import models 
class PrefsPage(webapp2.RequestHandler): 
def post(self): 
userprefs = models.get_userprefs() 
try: 
tz_offset = int(self.request.get('tz_offset')) 
userprefs.tz_offset = tz_offset 
userprefs.put() 
except ValueError: 
# User entered a value that wasn't an integer. Ignore for now. 
pass 
self.redirect('/') 
application = webapp2.WSGIApplication([('/prefs', PrefsPage)], 
debug=True)
OO: Type - Class 
None
Sample with Flask 
None
Oon Arfiandwi 
Co-founder of 7Langit mobile agency 
http://oo.or.id/py 
http://google.com/+oonarfiandwi 
http://twitter.com/oonid 
http://about.me/oon

More Related Content

PPTX
#1 PENGENALAN PYTHON
PDF
Algoritma dan Struktur Data (Python) - Perulangan
PPT
1. pengenalan python
PDF
Pemrograman Python Dasar
PDF
Algoritma dan Struktur Data (Python) - Struktur I/O
PPT
Python Kelas XI.ppt
PPTX
Dasar algoritma
PPTX
BLACK BOX DAN WHITE BOX.pptx
#1 PENGENALAN PYTHON
Algoritma dan Struktur Data (Python) - Perulangan
1. pengenalan python
Pemrograman Python Dasar
Algoritma dan Struktur Data (Python) - Struktur I/O
Python Kelas XI.ppt
Dasar algoritma
BLACK BOX DAN WHITE BOX.pptx

What's hot (20)

PPTX
Analisis ERD Database Rumah Sakit
PPT
Algoritma penjadwalan proses
PDF
20731 21 visualisasi data
PDF
[RPL2] Class Diagram dan Konsep Object Oriented (1)
PDF
Data Mining - Naive Bayes
PPT
Array dan Contoh
PDF
Laporan Project Pemrograman Berbasis Web
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
PDF
Presentasi Analytic Hierarchy Process (AHP)
PPTX
DOCX
Proposal pembuatan aplikasi
PPTX
4. metode transportasi
PDF
Pertemuan 1 Data dan Struktur Data
PPT
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSI
PPT
Strategi pemasaran.ppt
PDF
3 . analisis regresi linier berganda dua peubah
PPT
Software Requirements
PPTX
Uji normalitas dan homogenitas
PPT
Modul 10 Influence Diagram
PDF
VARIABEL RANDOM & DISTRIBUSI PELUANG
Analisis ERD Database Rumah Sakit
Algoritma penjadwalan proses
20731 21 visualisasi data
[RPL2] Class Diagram dan Konsep Object Oriented (1)
Data Mining - Naive Bayes
Array dan Contoh
Laporan Project Pemrograman Berbasis Web
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Presentasi Analytic Hierarchy Process (AHP)
Proposal pembuatan aplikasi
4. metode transportasi
Pertemuan 1 Data dan Struktur Data
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSI
Strategi pemasaran.ppt
3 . analisis regresi linier berganda dua peubah
Software Requirements
Uji normalitas dan homogenitas
Modul 10 Influence Diagram
VARIABEL RANDOM & DISTRIBUSI PELUANG
Ad

Viewers also liked (8)

DOCX
My sql dari pemula hingga mahir
PDF
Hendri python
PPTX
Oracle SQL Developer Tips & Tricks
PDF
Tutorial Migrasi Database dari Microsoft SQL Server ke Oracle Database
PPTX
Dimensional modeling in oracle sql developer
PDF
Belajar netbeans java pemula dari 0 sampai mahir
ODP
ORACLE Di Virtual Box : Ringkasan Penggunaan
DOCX
Laporan praktikum modul 6 pemrogrman database dengan jdbc
My sql dari pemula hingga mahir
Hendri python
Oracle SQL Developer Tips & Tricks
Tutorial Migrasi Database dari Microsoft SQL Server ke Oracle Database
Dimensional modeling in oracle sql developer
Belajar netbeans java pemula dari 0 sampai mahir
ORACLE Di Virtual Box : Ringkasan Penggunaan
Laporan praktikum modul 6 pemrogrman database dengan jdbc
Ad

Similar to Pemrograman Python untuk Pemula (20)

PPTX
Basic Python Programming: Part 01 and Part 02
PPTX
4. Tools Proyek Data Science DTS-TA v.3.pptx
KEY
Gae icc fall2011
PDF
Google app-engine-with-python
PPTX
IoT-Week1-Day1-Lab.pptx
PDF
Pythonintro
PPTX
#Code2Create: Python Basics
PPTX
Python chapter presentation details.pptx
PPTX
Dr.C S Prasanth-Physics ppt.pptx computer
PDF
Class 2: Welcome part 2
PPTX
Learning python
PPTX
Learning python
PPTX
Learning python
PPTX
Learning python
PPTX
Learning python
PPTX
Learning python
PPTX
Learning python
PPT
Master Python Basics Easily – From Zero to Real-World Applications for UG Stu...
PDF
Python于Web 2.0网站的应用 - QCon Beijing 2010
PPTX
PYTHON PROGRAMMING
Basic Python Programming: Part 01 and Part 02
4. Tools Proyek Data Science DTS-TA v.3.pptx
Gae icc fall2011
Google app-engine-with-python
IoT-Week1-Day1-Lab.pptx
Pythonintro
#Code2Create: Python Basics
Python chapter presentation details.pptx
Dr.C S Prasanth-Physics ppt.pptx computer
Class 2: Welcome part 2
Learning python
Learning python
Learning python
Learning python
Learning python
Learning python
Learning python
Master Python Basics Easily – From Zero to Real-World Applications for UG Stu...
Python于Web 2.0网站的应用 - QCon Beijing 2010
PYTHON PROGRAMMING

More from Oon Arfiandwi (6)

PDF
Create HTML5 Mobile Apps for WordPress Site
PDF
Mobile Apps Business
PDF
Google+ API (2012)
PPTX
Android App Development using HTML5 Technology
KEY
7Langit present Marketing and Monetizing on BlackBerry Platform
PDF
7Langit present Mobile Ad on BlackBerry
Create HTML5 Mobile Apps for WordPress Site
Mobile Apps Business
Google+ API (2012)
Android App Development using HTML5 Technology
7Langit present Marketing and Monetizing on BlackBerry Platform
7Langit present Mobile Ad on BlackBerry

Recently uploaded (20)

PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPT
Introduction Database Management System for Course Database
PPTX
Introduction to Artificial Intelligence
PPTX
Online Work Permit System for Fast Permit Processing
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
Transform Your Business with a Software ERP System
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
AI in Product Development-omnex systems
PDF
System and Network Administraation Chapter 3
PPTX
Operating system designcfffgfgggggggvggggggggg
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Design an Analysis of Algorithms II-SECS-1021-03
Navsoft: AI-Powered Business Solutions & Custom Software Development
Introduction Database Management System for Course Database
Introduction to Artificial Intelligence
Online Work Permit System for Fast Permit Processing
How to Migrate SBCGlobal Email to Yahoo Easily
ISO 45001 Occupational Health and Safety Management System
Transform Your Business with a Software ERP System
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
VVF-Customer-Presentation2025-Ver1.9.pptx
Design an Analysis of Algorithms I-SECS-1021-03
Softaken Excel to vCard Converter Software.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Adobe Illustrator 28.6 Crack My Vision of Vector Design
CHAPTER 2 - PM Management and IT Context
AI in Product Development-omnex systems
System and Network Administraation Chapter 3
Operating system designcfffgfgggggggvggggggggg

Pemrograman Python untuk Pemula

  • 1. Pemrograman dengan Python untuk Pemula oon arfiandwi http://oo.or.id/py
  • 2. Material ini digunakan untuk kelas teknologi pengenalan pemrograman dengan bahasa pengantar Python http://oo.or.id/py Dipublikasikan dengan lisensi Atribusi-Berbagi Serupa Creative Commons (CC BY-SA) oleh oon@oo.or.id
  • 3. Tools to Install Download Python 2.7 from http://python.org/download or you can easly use online Python interpreter For Google Cloud Platform topic: Google App Engine SDK for Python from https: //cloud.google.com/appengine/downloads Pip Python Package Manager from http://pip.pypa. io/en/latest/installing.html
  • 4. Outline Python intro Type, Variable, Value Functions Conditional Iteration String processing Intro to Google Cloud Platform with Python
  • 5. Reference http://www.greenteapress.com/thinkpython/ http://www.pythonlearn.com/ http://www.diveintopython.net/ https://www.python.org/download/ http://pythoncentral.org/comparison-of-python-ides- development/
  • 6. Software/Program/App compiled or interpreted (or both) input-process-output (decide input & output, think about the process) syntax and semantic >>> 1 + 2 = 3 >>> panjang = 3 >>> lebar = 4 >>> luas = panjang + lebar
  • 7. Python ➔ High-level language ➔ Interactive mode & Scripting mode ➔ Online interpreter ◆ http://www.skulpt.org/ ◆ http://pythontutor.com/ ➔ case sensitive
  • 8. Python Brochure | http://getpython.info
  • 9. Introduction to Python with Jessica McKellar
  • 10. Hello Python >>> print ‘Hello, World!’ Hello, World! >>> type(‘Hello, World!’) <type ‘str’> >>> print 1+2 3 >>> type(3) <type ‘int’> >>> type(‘1’)
  • 11. Type, Variable, Value >>> i = 1 (i adalah variable, dengan type int, memiliki value 1, diberi nilai dengan operator =) >>> kata = ‘nilai’ (kata adalah variable, dengan type str, memiliki value nilai) some of basic data type: Integer: int String: str Boolean: bool
  • 12. Variable Assignment >>> message=’message in the bottle’ >>> print message >>> type(message) >>> x=1 >>> x=x+2 >>> x+=3 >>> y=4 >>> print x*y
  • 13. Operator & Operand 1+2 (1 adalah operand, + adalah operator, 2 adalah operand) x < xx and z > y (operand? operator?) Order of operations: PEMDAS
  • 14. Indentation 4-space indents and no hard tab character
  • 15. Interactive Mode & Scripting Mode give sample of interactive mode on console give sample of scripting mode count_down.py
  • 16. List List is a sequence, of elements or items [1, 2, 3] ['ab', 'bc', 'cd', 'de'] ['ab', 'bc', 1, 2, 1.1, [True, False]]
  • 17. Array array.array is a wrapper of C arrays. can handle only homogeneous C array of data. so for common use, simply use List http://stackoverflow. com/questions/176011/python-list-vs-array-when- to-use
  • 18. Tuple >>> t = (1, 2, 3) >>> type(t) <type ‘tuple’> >>> print t >>> t = (‘hello’) >>> print t
  • 19. String String as sequence String slice String methods (intro OO first) String comparison in Operator
  • 20. String >>> kata = ‘pemrograman’ >>> print kata[4] >>> lenkata = len(kata) >>> print lenkata >>> print kata[lenkata-1] >>> for char in kata: … print char >>> print kata.upper()
  • 21. String Operations Concatenation >>> print ‘pemrograman’ + ‘python’
  • 22. Formatted Printing print 'formatting %s %d' % ('text', 7) http://forums.udacity. com/questions/2019688/python-101-unit-2- formatted-printing-and-function-documentation
  • 23. Conditional if if .. else .. if .. elif .. else ..
  • 24. Conditional sample >>> hari = ‘minggu’ >>> if hari == ‘sabtu’ or hari == ‘minggu’: … print ‘akhir pekan!’ … akhir pekan!
  • 25. boolean, and, or x and y akan bernilai True, jika keduanya True selain itu bernilai False x or y akan bernilai False, jika keduanya False selain itu bernilai True
  • 26. Conditional samples (2) >>> x = 4 >>> if x%2 == 0: … print ‘even’ … else: … print ‘odd’
  • 27. assignments buat kode program untuk mengecek apakah variable x itu positif atau negatif >>> x = -1 buat kode program untuk mengecek apakah variable x itu positif, negatif, atau nol >>> x = 0
  • 28. Conditional samples (3) >>> x = 7 >>> if x > 8: … print ‘A’ … elif x>6 and x<8: … print ‘B’ … else: … print ‘C’
  • 29. Functions Function call Add new functions Fruitful function, void function import importing with from
  • 30. function call and create function >>> type(True) >>> def apakah_genap(angka): … if angka%2 == 0: … print ‘benar, genap’ … else: … print ‘salah, ganjil’ >>> apakah_genap(7) >>> apakah_genap(100)
  • 31. function call and create function >>> def luas_persegi(panjang, lebar): … luas = panjang * lebar … return luas … >>> luasnya = luas_persegi(20, 30) >>> print luasnya
  • 32. import function >>> import math >>> print math >>> akar9 = math.sqrt(9) >>> print akar9
  • 33. assignment buat sebuah fungsi luas_lingkaran >>> luas_lingkaran(10) note: pi: math.pi input: jari-jari process: pi * jari-jari * jari-jari
  • 34. Iteration with while >>> x = 7 >>> while x>0: … print ‘data-%i’ % x … x = x -1
  • 35. assignment buat iteration menggunakan while, dalam sebuah fungsi, yang akan menampilkan hanya angka yang genap saja. >>> count_down_genap(4) 4 2
  • 36. Iteration while with break >>> while not ketemu: ... databerikut = cari_data() ... if databerikut == yangdicari: ... break ...
  • 37. Iteration with for >>> for i in range(3) … print ‘ulang’ >>> for i in range(5,10) … print i
  • 38. comments & docstring >>> xxx = 3 # var name xxx >>> print xxx
  • 40. Google Cloud Platform with Python let’s start by making a website using python Google Cloud Platform have a free tier of Google App Engine we’ll develop using Google App Engine SDK for Python https://developers.google.com/appengine/docs/python/gettingstartedpython27/introduction
  • 41. Google App Engine SDK for Python create 2 files on directory app.yaml main.py dev_appserver.py projectdir open http://localhost:8080/
  • 42. app.yaml application: waktusaatini version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: - url: .* script: main.application libraries: - name: webapp2 version: latest
  • 43. main.py import datetime import webapp2 class MainPage(webapp2.RequestHandler): def get(self): message = ‘<p>waktu %s</p>’ % datetime.datetime.now() self.response.out.write(message); application = webapp2.WSGIApplication([(‘/’, MainPage)], debug=True)
  • 44. Template Engine Jinja2 install Jinja2 # pip install jinja2 3 Files: ● app.yaml ● main.py ● home.html Upload to appspot: # appcfg.py update kelas-teknologi/ Sample: http://kelas-teknologi.appspot.com
  • 45. app.yaml application: kelas-teknologi version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: - url: .* script: main.application libraries: - name: webapp2 version: latest - name: jinja2 version: latest - name: markupsafe version: latest
  • 46. main.py import datetime import webapp2 import jinja2 import os from google.appengine.api import users template_env = jinja2.Environment( loader=jinja2.FileSystemLoader(os.getcwd()))
  • 47. main.py (cont’d) class MainPage(webapp2.RequestHandler): def get(self): current_time = datetime.datetime.now() user = users.get_current_user() login_url = users.create_login_url(self.request.path) logout_url = users.create_logout_url(self.request.path) template = template_env.get_template('home.html') context = { 'current_time': current_time, 'user': user, 'login_url': login_url, 'logout_url': logout_url, } self.response.out.write(template.render(context)) application = webapp2.WSGIApplication([('/', MainPage)], debug=True)
  • 48. home.html <html><head><title>The Time Is...</title></head> <body> {% if user %} <p> Welcome, <strong>{{ user.email() }}</strong>! You can <a href="{{ logout_url }}">sign out</a>. </p> {% else %} <p> Welcome! <a href="{{ login_url }}">Sign in or register</a> to customize. </p> {% endif %} <p>The time is: {{ current_time }}</p> </body></html>
  • 49. Web Form & Datastore 5 Files: ● app.yaml ● models.py ● main.py ● prefs.py ● home.html Upload to appspot: # appcfg.py update kelas-teknologi/ Sample: http://kelas-teknologi.appspot.com
  • 50. app.yaml application: kelas-teknologi version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: - url: /prefs script: prefs.application login: required - url: .* script: main.application libraries: - name: webapp2 version: latest - name: jinja2 version: latest - name: markupsafe version: latest
  • 51. models.py from google.appengine.api import users from google.appengine.ext import db class UserPrefs(db.Model): tz_offset = db.IntegerProperty(default=0) user = db.UserProperty(auto_current_user_add=True) def get_userprefs(user_id=None): if not user_id: user = users.get_current_user() if not user: return None user_id = user.user_id() key = db.Key.from_path('UserPrefs', user_id) userprefs = db.get(key) if not userprefs: userprefs = UserPrefs(key_name=user_id) return userprefs
  • 52. main.py ...snip... import models ...snip... class MainPage(webapp2.RequestHandler): def get(self): current_time = datetime.datetime.now() user = users.get_current_user() userprefs = models.get_userprefs() if userprefs: current_time += datetime.timedelta(0, 0, 0, 0, 0, userprefs.tz_offset) ...snip... context = { 'current_time': current_time, 'user': user, 'login_url': login_url, 'logout_url': logout_url, 'userprefs': userprefs, } self.response.out.write(template.render(context)) application = webapp2.WSGIApplication([('/', MainPage)], debug=True)
  • 53. home.html <html><head><title>The Time Is...</title></head> <body> {% if user %} <p> Welcome, <strong>{{ user.email() }}</strong>! You can <a href="{{ logout_url }}">sign out</a>. </p> {% else %} <p> Welcome! <a href="{{ login_url }}">Sign in or register</a> to customize. </p> {% endif %} {% if user %} <form action="/prefs" method="post"> <label for="tz_offset"> Timezone offset from UTC (can be negative): </label> <input name="tz_offset" id="tz_offset" type="text" size="4" value="{{ userprefs.tz_offset }}" /> <input type="submit" value="Set" /> </form> {% endif %} <p>The time is: {{ current_time }}</p> </body></html>
  • 54. prefs.py import webapp2 import models class PrefsPage(webapp2.RequestHandler): def post(self): userprefs = models.get_userprefs() try: tz_offset = int(self.request.get('tz_offset')) userprefs.tz_offset = tz_offset userprefs.put() except ValueError: # User entered a value that wasn't an integer. Ignore for now. pass self.redirect('/') application = webapp2.WSGIApplication([('/prefs', PrefsPage)], debug=True)
  • 55. OO: Type - Class None
  • 57. Oon Arfiandwi Co-founder of 7Langit mobile agency http://oo.or.id/py http://google.com/+oonarfiandwi http://twitter.com/oonid http://about.me/oon