Electronic currency exchanger list Belajar Bersama: Python
Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Friday, 16 May 2014

Usage: python ./sqlmap [options]

18:27
    Usage: python ./sqlmap [options]
     
    Options:
     -h, --help Show basic help message and exit
     -hh Show advanced help message and exit
     --version Show program's version number and exit
     -v VERBOSE Verbosity level: 0-6 (default 1)
     
    Target:
     At least one of these options has to be provided to set the target(s)
     
    -d DIRECT Direct connection to the database
     -u URL, --url=URL Target URL (e.g. "www.target.com/vuln.php?id=1")
     -l LOGFILE Parse targets from Burp or WebScarab proxy logs
     -m BULKFILE Scan multiple targets enlisted in a given textual file
     -r REQUESTFILE Load HTTP request from a file
     -g GOOGLEDORK Process Google dork results as target URLs
     -c CONFIGFILE Load options from a configuration INI file
     
    Request:
     These options can be used to specify how to connect to the target URL
     
    --data=DATA Data string to be sent through POST
     --param-del=PDEL Character used for splitting parameter values
     --cookie=COOKIE HTTP Cookie header
     --cookie-del=CDEL Character used for splitting cookie values
     --load-cookies=L.. File containing cookies in Netscape/wget format
     --drop-set-cookie Ignore Set-Cookie header from response
     --user-agent=AGENT HTTP User-Agent header
     --random-agent Use randomly selected HTTP User-Agent header
     --host=HOST HTTP Host header
     --referer=REFERER HTTP Referer header
     --headers=HEADERS Extra headers (e.g. "Accept-Language: fr\nETag: 123")
     --auth-type=AUTH.. HTTP authentication type (Basic, Digest, NTLM or Cert)
     --auth-cred=AUTH.. HTTP authentication credentials (name:password)
     --auth-cert=AUTH.. HTTP authentication certificate (key_file,cert_file)
     --proxy=PROXY Use a proxy to connect to the target URL
     --proxy-cred=PRO.. Proxy authentication credentials (name:password)
     --proxy-file=PRO.. Load proxy list from a file
     --ignore-proxy Ignore system default proxy settings
     --tor Use Tor anonymity network
     --tor-port=TORPORT Set Tor proxy port other than default
     --tor-type=TORTYPE Set Tor proxy type (HTTP (default), SOCKS4 or SOCKS5)
     --check-tor Check to see if Tor is used properly
     --delay=DELAY Delay in seconds between each HTTP request
     --timeout=TIMEOUT Seconds to wait before timeout connection (default 30)
     --retries=RETRIES Retries when the connection timeouts (default 3)
     --randomize=RPARAM Randomly change value for given parameter(s)
     --safe-url=SAFURL URL address to visit frequently during testing
     --safe-freq=SAFREQ Test requests between two visits to a given safe URL
     --skip-urlencode Skip URL encoding of payload data
     --force-ssl Force usage of SSL/HTTPS
     --hpp Use HTTP parameter pollution
     --eval=EVALCODE Evaluate provided Python code before the request (e.g.
     "import hashlib;id2=hashlib.md5(id).hexdigest()")
     
    Optimization:
     These options can be used to optimize the performance of sqlmap
     
    -o Turn on all optimization switches
     --predict-output Predict common queries output
     --keep-alive Use persistent HTTP(s) connections
     --null-connection Retrieve page length without actual HTTP response body
     --threads=THREADS Max number of concurrent HTTP(s) requests (default 1)
     
    Injection:
     These options can be used to specify which parameters to test for,
     provide custom injection payloads and optional tampering scripts
     
    -p TESTPARAMETER Testable parameter(s)
     --skip=SKIP Skip testing for given parameter(s)
     --dbms=DBMS Force back-end DBMS to this value
     --dbms-cred=DBMS.. DBMS authentication credentials (user:password)
     --os=OS Force back-end DBMS operating system to this value
     --invalid-bignum Use big numbers for invalidating values
     --invalid-logical Use logical operations for invalidating values
     --no-cast Turn off payload casting mechanism
     --no-escape Turn off string escaping mechanism
     --prefix=PREFIX Injection payload prefix string
     --suffix=SUFFIX Injection payload suffix string
     --tamper=TAMPER Use given script(s) for tampering injection data
     
    Detection:
     These options can be used to customize the detection phase
     
    --level=LEVEL Level of tests to perform (1-5, default 1)
     --risk=RISK Risk of tests to perform (0-3, default 1)
     --string=STRING String to match when query is evaluated to True
     --not-string=NOT.. String to match when query is evaluated to False
     --regexp=REGEXP Regexp to match when query is evaluated to True
     --code=CODE HTTP code to match when query is evaluated to True
     --text-only Compare pages based only on the textual content
     --titles Compare pages based only on their titles
     
    Techniques:
     These options can be used to tweak testing of specific SQL injection
     techniques
     
    --technique=TECH SQL injection techniques to use (default "BEUSTQ")
     --time-sec=TIMESEC Seconds to delay the DBMS response (default 5)
     --union-cols=UCOLS Range of columns to test for UNION query SQL injection
     --union-char=UCHAR Character to use for bruteforcing number of columns
     --union-from=UFROM Table to use in FROM part of UNION query SQL injection
     --dns-domain=DNS.. Domain name used for DNS exfiltration attack
     --second-order=S.. Resulting page URL searched for second-order response
     
    Fingerprint:
     -f, --fingerprint Perform an extensive DBMS version fingerprint
     
    Enumeration:
     These options can be used to enumerate the back-end database
     management system information, structure and data contained in the
     tables. Moreover you can run your own SQL statements
     
    -a, --all Retrieve everything
     -b, --banner Retrieve DBMS banner
     --current-user Retrieve DBMS current user
     --current-db Retrieve DBMS current database
     --hostname Retrieve DBMS server hostname
     --is-dba Detect if the DBMS current user is DBA
     --users Enumerate DBMS users
     --passwords Enumerate DBMS users password hashes
     --privileges Enumerate DBMS users privileges
     --roles Enumerate DBMS users roles
     --dbs Enumerate DBMS databases
     --tables Enumerate DBMS database tables
     --columns Enumerate DBMS database table columns
     --schema Enumerate DBMS schema
     --count Retrieve number of entries for table(s)
     --dump Dump DBMS database table entries
     --dump-all Dump all DBMS databases tables entries
     --search Search column(s), table(s) and/or database name(s)
     --comments Retrieve DBMS comments
     -D DB DBMS database to enumerate
     -T TBL DBMS database table to enumerate
     -C COL DBMS database table column to enumerate
     -U USER DBMS user to enumerate
     --exclude-sysdbs Exclude DBMS system databases when enumerating tables
     --start=LIMITSTART First query output entry to retrieve
     --stop=LIMITSTOP Last query output entry to retrieve
     --first=FIRSTCHAR First query output word character to retrieve
     --last=LASTCHAR Last query output word character to retrieve
     --sql-query=QUERY SQL statement to be executed
     --sql-shell Prompt for an interactive SQL shell
     --sql-file=SQLFILE Execute SQL statements from given file(s)
     
    Brute force:
     These options can be used to run brute force checks
     
    --common-tables Check existence of common tables
     --common-columns Check existence of common columns
     
    User-defined function injection:
     These options can be used to create custom user-defined functions
     
    --udf-inject Inject custom user-defined functions
     --shared-lib=SHLIB Local path of the shared library
     
    File system access:
     These options can be used to access the back-end database management
     system underlying file system
     
    --file-read=RFILE Read a file from the back-end DBMS file system
     --file-write=WFILE Write a local file on the back-end DBMS file system
     --file-dest=DFILE Back-end DBMS absolute filepath to write to
     
    Operating system access:
     These options can be used to access the back-end database management
     system underlying operating system
     
    --os-cmd=OSCMD Execute an operating system command
     --os-shell Prompt for an interactive operating system shell
     --os-pwn Prompt for an OOB shell, meterpreter or VNC
     --os-smbrelay One click prompt for an OOB shell, meterpreter or VNC
     --os-bof Stored procedure buffer overflow exploitation
     --priv-esc Database process user privilege escalation
     --msf-path=MSFPATH Local path where Metasploit Framework is installed
     --tmp-path=TMPPATH Remote absolute path of temporary files directory
     
    Windows registry access:
     These options can be used to access the back-end database management
     system Windows registry
     
    --reg-read Read a Windows registry key value
     --reg-add Write a Windows registry key value data
     --reg-del Delete a Windows registry key value
     --reg-key=REGKEY Windows registry key
     --reg-value=REGVAL Windows registry key value
     --reg-data=REGDATA Windows registry key value data
     --reg-type=REGTYPE Windows registry key value type
     
    General:
     These options can be used to set some general working parameters
     
    -s SESSIONFILE Load session from a stored (.sqlite) file
     -t TRAFFICFILE Log all HTTP traffic into a textual file
     --batch Never ask for user input, use the default behaviour
     --charset=CHARSET Force character encoding used for data retrieval
     --crawl=CRAWLDEPTH Crawl the website starting from the target URL
     --csv-del=CSVDEL Delimiting character used in CSV output (default ",")
     --dump-format=DU.. Format of dumped data (CSV (default), HTML or SQLITE)
     --eta Display for each output the estimated time of arrival
     --flush-session Flush session files for current target
     --forms Parse and test forms on target URL
     --fresh-queries Ignore query results stored in session file
     --hex Use DBMS hex function(s) for data retrieval
     --output-dir=ODIR Custom output directory path
     --parse-errors Parse and display DBMS error messages from responses
     --pivot-column=P.. Pivot column name
     --save Save options to a configuration INI file
     --scope=SCOPE Regexp to filter targets from provided proxy log
     --test-filter=TE.. Select tests by payloads and/or titles (e.g. ROW)
     --update Update sqlmap
     
    Miscellaneous:
     -z MNEMONICS Use short mnemonics (e.g. "flu,bat,ban,tec=EU")
     --alert=ALERT Run shell command(s) when SQL injection is found
     --answers=ANSWERS Set question answers (e.g. "quit=N,follow=N")
     --beep Make a beep sound when SQL injection is found
     --check-waf Heuristically check for WAF/IPS/IDS protection
     --cleanup Clean up the DBMS from sqlmap specific UDF and tables
     --dependencies Check for missing (non-core) sqlmap dependencies
     --disable-coloring Disable console output coloring
     --gpage=GOOGLEPAGE Use Google dork results from specified page number
     --identify-waf Make a through testing for a WAF/IPS/IDS protection
     --mobile Imitate smartphone through HTTP User-Agent header
     --page-rank Display page rank (PR) for Google dork results
     --purge-output Safely remove all content from output directory
     --smart Conduct through tests only if positive heuristic(s)
     --wizard Simple wizard interface for beginner users

Wednesday, 24 April 2013

Dasar-Dasar Python

09:05
Tulisan ini dimaksudkan untuk memberikan pengetahuan awal pemrograman dengan bahasa Python. Di sini tidak akan dibahas secara ditel kemampuan-kemampuan yang dipunyai Python. Karena biasanya pembahasan ditel akan membawa kita pada uraian yang panjang lebar dan tidak langsung pada inti permasalahan. Silakan merujuk pada dokumentasi-dokumentasi tentang Python, yang bisa didapatkan dari situs resmi Python di www.python.orgjika ingin mendapatkan dokumentasi lengkap. Beberapa tulisan yang membahas perbandingan Python dengan bahasa pemrograman yang lain juga banyak bertebaran di Internet, silakan mulai dari Google atau Yahoo!
Penjelasan yang mengikuti pendahuluan ini akan memberi pengetahuan pada pembaca bagaimana membuat program —yang terkadang disebut dengan skrip—dalam bahasa pemrograman Python. Pembaca akan mampu membuat program dalam bahasa Python yang sederhana setelah membaca tulisan ini secara lengkap. Mampu di sini berarti mengetahui dan bisa menggunakan sintaks-sintaks dasar yang dipakai dalam Python.
Tutorial ini dibuat sederhana dengan sebisa mungkin menghindari istilah-istilah yang sulit kecuali kalau memang tidak bisa dihindari lagi. Ini karena penulis mengharapkan pembaca yang tidak mempunyai latar belakang pemrograman pun bisa mengikuti tulisan ini.
Asumsi yang diambil oleh penulis adalah interpreter Python sudah terinstal dengan benar pada komputer Anda.

Memulai Python

Menggunakan Mode Interaktif

Anda dapat bekerja dengan Python secara interaktif dengan interpreter Python. Dalam mode interaktif kita dapat bekerja seperti saat kita bekerja dalam prompt sistem operasi. Interpreter Python bisa Anda aktifkan dengan memberi perintah pada prompt sistem operasi:
$ python 
Interpreter Python akan menampilkan
Python 1.5.2 (#1, Feb 1 2000, 16:32:16) [GCC egcs-2.91.66 19990314
+/Linux (egcs-on linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>>
Tiga tanda lebih besar (>>>) adalah prompt utama Python. Untuk perintah yang masih berlanjut Python akan memberikan respon dengan tanda tiga titik (...).
>>> if 1:
...
Untuk keluar dari prompt Python menuju prompt sistem operasi Anda bisa menekan tombol yang menghasilkan karakter akhir file, Ctrl-Z(di DOS/Windows) atau Ctrl-D (di Unix).
Mode interaktif sangat bermanfaat untuk mencoba perintah-perintah Python sebelum membuat skrip. Dalam tulisan ini kita akan lebih banyak bekerja menggunakan skrip.

Menggunakan Skrip

Kalau Anda memakai mode interaktif saat membuat program, Anda tidak bisa menyimpannya ke dalam media penyimpanan. Untuk mengatasi ini Anda bisa membuat skrip dengan editor teks yang menghasilkan teks murni, misalnya Notepad atau vi. Aktifkan editor teks Anda dan ketikkan baris-baris perintah ini:
#! /usr/bin/python
print "Belajar Python..."
# akhir file
Beri nama skrip ini belajar.py. Skrip ini hanya akan mencetak string Belajar Python... ke layar. Untuk menjalankan skrip ini kita hanya perlu mengetikkan:
$ python belajar.py
pada prompt sistem operasi.
Baris pertama adalah khas untuk lingkungan Unix/Linux, yaitu diberikan jika skrip ini ingin dijalankan tanpa mengetikkan interpreter yang akan menerjemahkan skrip yang bersangkutan, tentu saja setelah mengubah hak akses dari skrip tersebut menjadi executable. Baris ini tidak akan berpengaruh di sistem operasi Windows. Di contoh-contoh skrip selanjutnya baris pertama akan dihapuskan untuk menghemat tempat.
Baris kedua berfungsi untuk mencetak string yang diapit tanda petik.
Baris ketiga adalah keterangan, atau komentar, yang tidak akan mempengaruhi jalannya program. Keterangan selalu diawali dengan tanda #. Jika interpreter menemukan tanda ini maka mulai tanda ini sampai akhir baris akan dianggap sebagai keterangan.

Variabel dan Operator

Membuat variabel dalam Python sangat sederhana. Anda hanya perlu mengisikan nilai pada sebuah variabel dengan tipe data yang Anda inginkan. Operator pengisian adalah tanda sama-dengan (=).
Variabel dalam Python sangat dinamis. Artinya:
  • variabel tidak perlu dideklarasikan mempunyai jenis data tertentu;
  • jenis data variabel dapat berubah saat program berjalan.

Bilangan

Python mengenal beberapa jenis bilangan yaitu bilangan bulat (integer), bilangan pecahan (floating point), dan bilangan kompleks. Bilangan kompleks bisa dituliskan dengan format (real+imajinerj) atau menggunakan fungsi complex(real, imajiner). Untuk jenis data bilangan yang lain tanpa dijelaskan sudah bisa dimengerti dari contoh berikut:
variabel_integer = 10
variabel_floating = 24.5
variabel_kompleks = 3+4j

print variabel_integer
print variabel_floating
print variabel_kompleks
Operator matematik berfungsi dengan normal di Python seperti dalam bahasa pemrograman yang lain. Ada beberapa catatan yang harus diperhatikan.
  • Operasi pengisian beberapa variabel dengan nilai yang sama dapat dilakukan sekali jalan.
  • Tanda () dipakai untuk mengelompokkan operasi yang harus dilakukan terlebih dahulu.
  • Pembagian bilangan integer dengan bilangan integer akan dibulatkan ke bawah.
  • Bilangan integer akan dikonversikan menjadi bilangan floating point dalam operasi yang melibatkan bilangan integer dan bilangan floating point.
  • Kita tidak dapat mengkonversikan bilangan kompleks ke bilangan real (floating point atau integer); hanya bilangan mutlaknya yang bisa kita dapatkan.
Contoh-contoh berikut akan memberikan gambaran pernyataan di atas.
a = b = c = d = 0
print 'a=>',a,'b=>',b,'c=>',c,'d=>',d

x = 30 - 10 / 2
print 'x=>',x

y = (30 - 10) / 2
print 'y=>',y

print '10 / 3 =',10 / 3
print '10 / 3.5 =',10 / 3.5
print '8 * 12.4 =',8 * 12.4
print 'abs(1+9j) =',abs(1+9j)

String

String dapat ditulis dengan tiga cara:
  1. diapit tanda petik tunggal;
  2. diapit tanda petik ganda;
  3. diapit tiga tanda petik tunggal atau tiga tanda petik ganda.
Cara yang dipakai harus disesuaikan dengan kebutuhan. Perhatikan contoh berikut:
print 'dibatasi tanda petik tunggal'
print "dibatasi tanda petik ganda"
print
print '"petik ganda" dalam petik tunggal'
print "'petik tunggal' dalam petik ganda"
print
print '\'petik tunggal\' dalam petik tunggal harus menggunakan karakter
+escape'
print "begitu juga \"petik ganda\" dalam petik ganda"
Dari contoh ini bisa dilihat bahwa kita tidak dapat mencetak tanda petik tunggal dalam string yang diapit dengan tanda petik tunggal juga. Begitu pula untuk tanda petik ganda. Tetapi kita dapat memakai apa yang disebut dengan karakter escape. Tanda ini memberitahukan pada interpreter bahwa karakter yang mengikutinya tidak diartikan sebagaimana lazimnya. Dalam contoh ini, tanda petik tidak diartikan sebagai batas string jika didahului dengan karakter escape.
Perhatikan juga contoh berikut:
print 'Baris kalimat ini akan nampak terlalu panjang jika \
dituliskan memanjang secara lengkap.'
print 'karakter escape diperlukan jika ingin mencetak dibaris\n baru'
print
print """String terformat dapat dicetak dengan diapit
"tiga" tanda petik tunggal maupun 'tiga' tanda petik ganda.
Dengan tanda ini string akan dicetak seperti saat ia ditulis."""
Sehubungan dengan jenis data string ini terdapat operator khusus untuk string yaitu operator penggabungan (concatenation operator), yaitu +, dan operator perulangan, yaitu *.
stringA = "String A"
stringB = "String B"
print 'stringA+stringB =',stringA+stringB
print "'-'*20 =",'-'*20
Sifat lain yang dimiliki oleh string adalah bisa diambil sebagian dari karakter pembentuknya, karena string ini adalah array, atau deretan, karakter. Kita dapat mengambil sebagian karakter dari string ini dengan notasi slice. Namun karakter-karakter yang membentuk string ini tidak dapat diubah.
stringA = "String A"
print 'stringA[4] =',stringA[4]
print 'stringA[2:6] =',stringA[2:6]

List

List disebut array dalam bahasa pemrograman yang lain. List adalah jenis data campuran yang bisa memiliki komponen penyusun yang berbeda-beda. Sebuah list dapat dibuat dengan dengan menggunakan tanda kurung siku, [ ]. Anggota list didaftar dalam kurung siku tersebut dan masing-masing dipisahkan oleh tanda koma. Sifat-sifat list bisa didaftar seperti ini:
  • Komponen penyusunnya bisa diganti.
  • Komponen penyusunya dapat dibaca dan dimanipulasi secara langsung.
  • Komponen penyusunnya bisa ditambah.
  • Komponen penyusunnya dapat diambil dengan menunjukkan indeksnya atau dengan notasi slice.
  • Komponen penyusun sebuah list dapat juga berupa list yang lain.
Untuk lebih jelasnya bisa dicoba skrip berikut:
x = [1,2, 'tiga', 'empat']
print x

x[1] = x[1] + 2
print x

x[1] = 'dua'
print x

x = x + ['tambahan', 1]
print x

print 'x[2] =',x[2]
print 'x[1:4] =',x[1:4]

y = ['Salman', 'AS']
x[0] = y
print x

Dictionary

Berbeda dengan list yang memakai indeks angka untuk merujuk pada isi variabel, dictionary memakai key untuk merujuk pada isi variabelnya. Sifat kedua jenis data ini hanya berbeda dalam beberapa hal saja.
Untuk mendeklarasikan sebuah dictionary, Python memakai tanda { }.
d = {'nama':'Salman AS', 'nilai':3}
print d
print d['nama']
Untuk mengakses anggota suatu dictionary kita memakai lambang [ ]sebagaimana halnya list.
Dictionary bisa mempunyai anggota sebuah list, atau dictionary lagi.
d = {'nama':'Salman AS', 'nilai':3}
print d

nama_detail = {'depan':'Salman','tengah':'Agus','belakang':'Supriadi'}
print nama_detail

d['nama'] = nama_detail
print d

print d['nama']['depan']

nilai_detail = [3,4,2]
d['nilai'] = nilai_detail
print d

Tuple, Antara List dan String

Terdapat satu jenis data yang khas milik Python, yaitu tuple. Jenis data ini dideklarasikan dengan tanda ( ). Anggota-anggota tuple tidak bisa diganti dan dapat berupa bilangan atau string. Tuple dapat juga berisi tuple yang lain, dictionary, maupun list.
menu_file = ('New', 'Open')
print menu_file

menu_edit = ('Save', 'Save AS')

menu = (menu_file, menu_edit, 'exit', ['help'])
print menu
print menu[3][0]

menu_lain = (menu_file, menu_edit, 'exit', {'faq':'faq.html', 'manual':'man.html'})
print menu_lain

Perintah Kendali

Seleksi

Satu-satunya perintah seleksi dalam Python adalah if. Format umum perintah ini adalah:
if kondisi:
perintah_jika_kondisi_benar
elif kondisi_lain:
perintah_jika_kondisi_lain_benar
else:
perintah_jika_tak_ada_kondisi_yang_benar
Kita dapat mencoba seleksi dengan if ini dalam modus interaktif Python. Aktifkan interpreter Python Anda dan ketikkan baris-baris perintah ini pada prompt Python.
>>> x = 4 
>>> if x<5:
... print "%d lebih kecil dari 5" % x
... elif x==5:
... print "%d sama dengan 5" % x
... else:
... print "%d lebih besar dari 5"
4 lebih kecil dari 5
Untuk menguji kondisi kita dapat menggunakan operator ==, <, <=, >, >=, dan !=.
Sesuatu yang baru dan kita bisa perhatikan pada contoh di atas adalah cara penulisan blok-blok program. Dalam Python blok-blok perintah ditandai dengan penulisan kode program yang menjorok ke dalam. Setiap perintah yang mempunyai batas kiri yang sama dianggap sebagai satu blok. Sebisa mungkin Anda harus konsisten menggunakan karakter spasi atau karakter tabulasi untuk membuat indentasi. Jangan mencampur antara spasi dan tabulasi. Kesalahan yang sering terjadi dengan indentasi ini adalah terlihat dalam penampilan editor kita sudah lurus pada batas kiri tapi ada perbedaan dalam jumlah karakter tabulasi atau spasi.
Dalam perintah pencetakan ini kita menggunakan kode pemformatan %d. Kode ini akan diganti dengan variabel yang mengikuti string, yaitu x. Antara string dan variabel dipisahkan oleh tanda %. Jika ada beberapa variabel yang akan dicetak, seluruh variabel harus dimasukkan ke dalam tanda () dan antara satu variabel dengan yang lain dipisahkan dengan tanda koma (,). Mari kita coba dengan interpreter Python.
>>> x=4
>>> y=2
>>> print "x berisi %d, dan y sama dengan %d" % x,y
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: not enough arguments for format string
>>> print "x berisi %d, dan y sama dengan %d" % (x,y)x berisi 4, dan y sama dengan 4
Sekarang kita terapkan seleksi ini dalam skrip yang akan memeriksa apakah suatu bilangan adalah bilangan bulat atau bukan.
x = input("Masukkan bilangan bulat:")
if x%2:
print "%d adalah bilangan ganjil" % x
else:
print "%d adalah bilangan genap" % x
Jika dijalankan, skrip ini akan menampilkan:
$ python ganjil.py
Masukkan bilangan bulat:13
13 adalah bilangan ganjil
$ python ganjil.py
Masukkan bilangan bulat:24
24 adalah bilangan genap
Kata kunci input() berfungsi untuk meminta input berupa bilangan. Bilangan ini disimpan dalam variabel x. Ekspresi x%2 akan menghasilkan 1 jika x ganjil dan 0 jika xbilangan genap. Oleh Python, 1 akan diartikan sebagai benar dan 0 akan diartikan salah.

Perulangan

Perulangan dengan kata kunci while mempunyai format umum sebagai berikut:
while kondisi:
perintah_jika_kondisi_benar
else:
perintah_lain
Perintah-perintah antara while dan else akan selalu dijalankan jika kondisi benar. Perintah-perintah di bawah elseakan dijalankan jika perulangan selesai dengan normal. Yang dimaksud dengan normal di sini adalah proses perulangan tidak berhenti karena bertemu kata kunci break.
x = 1
while x<5:
print x
x = x + 1
else:
print 'Loop sudah selesai dikerjakan!'
Jika skrip di atas ditambahkan suatu kondisi yang diikuti perintah break, maka blok perintah di bawah else tidak akan pernah dijalankan. Perhatikan perbedaannya dengan skrip berikut:
x = 1
while x<5:
if x==3:
break
print x
x = x + 1
else:
print 'Loop sudah selesai dikerjakan!'
Perintah break menyebabkan dijalankannya perintah-perintah setelah blok whiledan else ini.
Perintah perulangan selain while adalah for. Format dasar perulangan for adalah:
for variabel in objek:
perintah-perintah
else:
perintah_jika_tidak_bertemu_break
Langsung saja ke contoh penggunaan pernyataan for ini.
for x in range(1,5):
print x
else:
print 'Perulangan selesai'
Fungsi builtin range() dalam skrip ini menghasilkan bilangan 1 sampai 4. Hasilnya skrip akan mencetak bilangan dari 1 sampai 4 dan string Perulangan selesai.
Keistimewaan perulangan dengan for di Python adalah dapat memroses array. Seperti contoh di bawah ini:
y = [10,20,30,40,50,60,70,80,90]
for x in y:
if x==50:
continue
if x>70:
break
print x
else:
print 'Perulangan selesai'
Hasil yang akan didapat jika skrip ini dijalankan:
10 20 30 40 60 70
Pernyataan continue akan menyebabkan proses berlanjut ke awal perulangan dan melewatkan perintah-perintah yang ada di antara continuedan akhir blok perulangan.
Demikian akhir bagian pertama. Untuk mempelajari lebih jauh lagi tunggu bagian tutorial berikutnya.