Anda di halaman 1dari 52

[tutup]

Python Selayang Pandang

Dari Wikibuku bahasa Indonesia, sumber buku teks bebas


Bagian ini perlu dirapikan agar memenuhi standar Wikibuku
Merapikan artikel bisa berupa membagi artikel ke dalam paragraf atau wikifikasi
artikel. Setelah dirapikan, tolong hapus pesan ini.

Python Selayang Pandang

Pengantar

Artikel ini merupakan rangkuman praktis bahasa pemprograman Python, materi yang
disampaikan ditujukan terutama sekali bagi Pembaca yang telah memahami bahasa
pemprograman lain seperti C, Java atau Perl dan ingin mengenal Python. Pembaca diharapkan
telah meng-install Python pada sistem yang digunakan dan telah dapat menjalankan interpreter
Python. Khusus untuk artikel ini, hanya akan dibahas penggunaan Python dalam sistem operasi
Linux. Distro yang saya gunakan adalah OpenSUSE 10.3. Penggunaan distro yang lain
seharusnya tidak mengalami kendala berarti. Jika Pembaca menggunakan sistem operasi
Windows, silahkan menyesuaikan.

Memulai Python

Python merupakan Bahasa Interpreter, Anda tidak diharuskan melakukan kompilasi code sumber
yang telah Anda buat, interpreter python-lah yang akan melakukannya. Sama halnya dengan
bahasa pemprograman yang lain, pertama sekali Anda akan membutuhkan sebuah teks editor.
Saya menggunakan vi dan 'sesuai tradisi', kita akan segera membuat program Hello World.

hello.py

#!/usr/bin/python

#hello.py
print "Hello World"

#eof

Ketik penggalan kode diatas dalam teks editor Anda dan simpan sebagai hello.py . Perlu
diingat tanda # (pagar) merupakan baris komentar dan tidak akan dieksekusi oleh interpreter,
jika Anda pernah menggunakan Perl tentu Anda sudah familiar dengan ini. Sedangkan statement
print Hello World adalah statement utama pada program ini dimana fungsi print
digunakan untuk mencetak string Hello World pada layar. Tanda kutip digunakan untuk
merepresentasikan string. Dalam kasus ini, tidak masalah apakah menggunakan baik kutip
tunggal ( ' ) maupun kutip ganda ( )

Jika Anda sudah membuat file hello.py seperti diatas, maka Anda sudah dapat langsung
menjalankannya. Silahkan ketik:

hello.py

Hello World

Selamat, program pertama Anda sudah berhasil dijalankan dengan sukses!

Baris paling pertama kode diatas dikenal sebagai shebang . Walaupun diawali dengan #
(tanda pagar), namun dengan adanya ! (tanda seru) setelah tanda pagar, baris ini
menginstruksikan bahwa lokasi interpreter python yang digunakan berada di: /usr/bin/python .
Bagi yang pernah menggunakan bahasa pemprograman Perl, hal ini tentu sudah merupakan
keseharian Anda. Untuk mengetahui lokasi interpreter python pada sistem linux Anda, gunakan
perintah:

haddad@moria:~> which python

/usr/bin/python
Sesuai dengan contoh diatas, lokasi interpreter python pada sistem saya berada di:
/usr/bin/python.

Sebagaimana bahasa scripting lainnya dalam lingkungan unix, script python juga dapat
dieksekusi langsung seperti layaknya file executable. Yang perlu kita lakukan adalah mengubah
mode file menjadi execute :

haddad@moria:~> chmod +x hello.py

Setelah itu, program hello.py dapat langsung dijalankan melalui shell.

haddad@moria:~> ./hello.py

Hello World

Sekadar percobaan, coba Anda hilangkan baris paling pertama program hello.py diatas, dan
jalankan seperti contoh diatas.

Ganti kode hello.py menjadi:

1. hello.py

print "Hello World"

1. eof

Lalu jalankan:

haddad@moria:~> ./hello.py

./hello.py: line 2: print: command not found

Setelah menjalankan program hello.py seperti contoh diatas, kita mendapatkan error:
./hello.py: line 2: print: command not found . Hal ini terjadi karena kita tidak memberi tahu
komputer lokasi interpreter python. Kurang lebih, seperti inilah fungsi shebang (
#!/usr/bin/python ) yang telah disampaikan diatas. Sekarang, silahkan perbaiki program Anda.
Python Interactive Interpreter

Salah satu kelebihan python adalah tersedianya Interactive Interpreter . Interactive Interpreter
akan otomatis muncul jika kita memanggil interpreter python tanpa argumen.

haddad@moria:~> python

Python 2.5.1 (r251:54863, Sep 22 2007, 01:43:31)

[GCC 4.2.1 (SUSE Linux)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

Setelah tanda promt >>> Anda dapat langsung mengetikkan kode python baris per-baris dan
akan langsung dieksekusi oleh interpreter. Jika kode yang kita gunakan memiliki kelanjutan,
misalnya kode for yang dapat memiliki beberapa baris lanjutan (statement for seperti
halnya pada bahasa pemprograman lain merupakan sebuah blok statement) maka interactive
interpreter akan memberikan promt ... (titik tiga kali) sebagai tempat kita mengetikkan kode
lanjutan. Setelah kode lanjutan selesai, cukup tekan enter untuk menyudahi blok statement
yang telah kita buat.

Hasil eksekusi akan ditampilkan pada baris di bawah kode yang kita ketik tanpa promt (tanda
>>> atau ... ). Untuk beberapa jenis kode, misalnya fungsi / method / class, hasil eksekusi
akan ditampilkan setelah fungsi, method atau class tersebut dipanggil.

Contoh kode satu baris:

>>> print "Saya sedang belajar PYTHON !"

Saya sedang belajar PYTHON !

Contoh jika kode kita memiliki kelanjutan:


>>> for number in range (10):

... print number

...

Interactive interpreter memungkinkan kita menjalankan kode python secara baris per baris.
Semua variabel yang didefenisikan juga tersimpan dalam memori sehingga dapat dipanggil
kembali dalam sesi yang sama . Perhatikan contoh dibawah:

>>> a = 2

>>> b = 3

>>> c = 4

>>> print a + b + c
9

Baris pertama, kedua dan ketiga contoh kode diatas mendefenisiskan nilai variabel a dengan
nilai 2 , b dengan nilai 3 dan c dengan nilai 4 . Baris ke empat kita memanggil
fungsi print untuk menampilkan nilai variabel a ditambah variabel b ditambah variabel
c . Dalam contoh diatas 2 + 3 + 4 adalah 9.

Hal yang serupa juga berlaku untuk fungsi , method atau class . Sebagai contoh, fungsi
yang kita buat dapat dipanggil dimana saja dalam sesi yang sama.

Contoh pembuatan fungsi pangkat :

>>> def pangkat():

... print "a = 2 dan b = 3, maka a + b adalah 5"

...

Pemanggilan fungsi pangkat

>>> pangkat()

a = 2 dan b = 3, maka a + b adalah 5

Lebih tradisional lagi, karena interactive interpreter python mampu menjalankan kode python
secara baris-per-baris, maka secara tidak langsung interactive interpreter juga bisa berfungsi
sebagai kalkulator. Perhatikan contoh dibawah:

>>> 7 + 3

10

>>> 8 - 5

3
>>> 9 / 3

>>> 9 * 2

18

>>> 9 % 3

>>> 2 ** 3

>>>

Banyak sekali nilai tambah interactive interpreter python, Anda dapat menggunakannya sesuai
kebutuhan. Dan untuk saya pribadi, saya menggunakan interactive interpreter ini sebagai uji coba
penggunaan fungsi / method yang terdapat dalam modul-modul tambahan untuk python, sebelum
saya menggunakannya secara nyata dalam bentuk aplikasi siap pakai.

Saya menggunakan interactive interpreter untuk mencoba modul bluetooth pada python:

>>> import bluetooth

>>> device = bluetooth.discover_devices()

>>> for dev in device:

... alamat = dev

... nama = bluetooth.lookup_name(dev)

... print "Perangkat yang ditemukan: " + str(nama) + " dengan alamat: " + str(alamat)
...

Perangkat yang ditemukan: hax0r dengan alamat: 00:16:B8:82:00:87

Dengan adanya interactive interpreter, proses pengembangan aplikasi menjadi lebih efisien.
Contoh-contoh kode program dalam artikel ini dibuat dalam interactive interpreter. Jika Anda
ingin mencoba, jalankan interactive interpreter python dalam sistem Anda dan mulailah
mengetik !.

Analisa Leksikal

Setelah mengikuti contoh-contoh yang diberikan sebelumnya, mungkin Anda melihat perbedaan
mendasar penggunaan sintak-sintak python dibandingkan dengan bahasa pemprograman lainnya.
Pada python, di setiap akhir statement tidak diharuskan memiliki titik koma ( ; ). Boleh saja
Anda memberikan titik koma pada akhir kode anda, namun hal ini tidak diperlukan dan jika tidak
hati-hati, penggunaan titik koma bahkan bisa menghasilkan error.

Contoh penggunaan titik koma dalam python:

>>> print "Statement ini menggunakan titik koma";

Statement ini menggunakan titik koma

>>> print "Sedangkan yang ini tidak!"

Sedangkan yang ini tidak!

Menurut Language Reference dari dokumentasi python, bahasa pemprograman python dibagi
menjadi sekumpulan Logical Line atau garis / baris logika. Akhir sebuah logical lines
ditandai dengan token NEWLINE sedangkan logical lines itu sendiri dibangun dari satu atau
lebih Phisical Lines .

Phisical lines merupakan sekumpulan urutan karakter, yang diakhiri dengan end-of-line .
Dalam Unix end-of-line ditandai dengan karakter ASCII LF (Line Feed). Pada Windows, end-of-
line ditandai dengan karakter ASCII CR LF (Cariage Return diikuti dengan Line Feed). Lain
halnya dengan Machintosh, menggunakan ASCII CR (Cariage Return) sebagai end-of-line. Hal
ini tidak menjadi masalah dalam source code, karena python akan mengikuti bentuk yang
digunakan oleh platform dimana ia berjalan.

Sederhananya, interpreter python memisahkan statement python dengan baris baru. Tidak seperti
bahasa pemprograman lain yang menggunakan semicolon ; untuk memisahkan statement.

>>> print "statement ini salah" print "karena tidak dipisahkan dengan baris bari \(NEWLINE\)"

File "<stdin>", line 1

print "statement ini salah" print "karena tidak dipisahkan dengan baris bari \(NEWLINE\)"

SyntaxError: invalid syntax

Cara yang benar menuliskan statement python adalah memisahkannya dengan baris baru!.

print Ini adalah penulisan statement yang benar

print Begitu juga dengan ini

Untuk menandakan baris komentar, seperti yang telah disampaikan diatas, python menggunakan
tanda pagar ( # ). Setiap baris / statement yang diawali dengan tanda pagar tidak akan
dieksekusi oleh interpreter python.

>>> # ini adalah komentar

...

>>> print "Hello ..." # ini adalah komentar

Hello ...
Dalam operasi tertentu, misalnya perulangan dan percabangan, kita menggunakan sekelompok
statement yang bekerja sebagai sebuah kesatuan. Sekelompok statement tersebut haruslah berada
dalam sebuah blok. Sebagai contoh menggunakan perulangan for dalam bahasa
pemprograman C, kita menggunakan kurung kurawal { } sebagai penanda blok statement.

Lain halnya dengan python. Penanda sebuah blok program menggunakan identation . Dengan
memberikan white space (spasi) dengan jumlah tertentu dan konsisten sebelum statement, akan
memberi tahu interpreter bahwa statement yang berada setelah jumlah spasi tertentu tersebut
merupakan sebuah blok program.

Perhatikan contoh dibawah:

>>> gender = "Pria"

>>> umur = 22

>>> if gender is "Pria":

... if umur >= 21:

... print "Sudah boleh menikah"

... else:

... print "Belum boleh menikah"

... else:

... if umur >= 16:

... print "Sudah boleh menikah"

... else:

... print "Belum boleh menikah"


...

Sudah boleh menikah

Contoh diatas merupakan contoh pemakaian if bersarang (nested if). Sengaja saya pilihkan
agar pembaca lebih mudah memahami konsep identasi.

Dua baris pertama contoh diatas merupakan pemberian nilai untuk variabel gender dan
umur . Masing-masing diberi nilai Pria (diberi tanda kutip karena merupakan string) dan 22
(bertipe integer). Pada baris ke tiga, kita memulai sebuah blok if . Perhatikan baris
statement yang menjorok ke dalam. Saya menggunakan tiga buah spasi untuk memberi identasi
dan memberi tahu interpreter bahwa statement tersebut merupakan sebuah blok statement. Pada
baris ke empat saya memulai lagi pemakaian if yang juga memiliki blok tersendiri, maka
statement di bawahnya yaitu pada baris ke lima diberi identasi relatif terhadap statement
pembuka di atasnya. Saya memberi tiga spasi relatif terhadap statement if diatasnya.

Statement else pada baris ke enam, merupakan statement yang setingkat dengan if pada
baris ke empat karena merupakan kelanjutan logikanya. Oleh karena itu, statement else
tersebut ditulis sejajar dengan if pada baris ke empat. Begitu pula halnya dengan else yang
berada pada baris ke delapan. Dibuat sejajar dengan if pada baris ketiga karena merupakan
satu kesatuan logika.

Ilustrasi di bawah akan menjelaskan penggunaan blok statement dalam pseudo code. Statement
yang memiliki background dengan warna yang sama, merupakan satu kelompok statement.

blok statement 1:

statement 1

statement 1

statement 1

blok statement 2 dalam blok statement 1:


statement 2

statement 2

statement 2

blok statement 3 dalam blok statement 2:

statement 3

statement 3

kelanjutan blok statement 3:

statement 3

kelanjutan blok statement 2:

statement 2

kelanjutan blok statement 1:

statement 1

statement 1

Jumlah spasi yang Anda berikan pada identasi boleh berapa saja, selama Anda menggunakannya
secara konsisten. Anda bisa juga menggunakan TAB untuk memberi identasi. Bahkan untuk
beberapa IDE (Integrated Development Environment) misalnya Komodo Edit , akan
memberikan identasi secara otomatis.

Dalam bahasa pemprograman kita mengenal adanya Keywords yang tidak boleh dijadikan
identifier dalam penulisan program. Python memiliki sejumlah keywords yaitu:

and
del

from

not

while

as

elif

global

or

with

assert

else

if

pass

yield

break

except

import

print

class
exec

in

raise

continue

finally

is

return

def

for

lambda

try

Keywords diatas harus diketik apa adanya. Misalkan keyword print yang digunakan untuk
menampilkan string di console, tidak boleh diketik Print (dengan huruf P besar). Jika
dilakukan hal itu akan menimbulkan error.

>>> Print "Hello World"

File "<stdin>", line 1

Print "Hello World"

SyntaxError: invalid syntax

Python memiliki operator berikut yang digunakan untuk operasi aritmatika dan logika:
+ - * ** / // %

<< >> & | ^ ~

< > <= >= == != <>

Tidak hanya operator, python juga memiliki delimiter:

()[]{}@

,:.`=;

+= -= *= /= //= %=

&= |= ^= >>= <<= **=

Penggunaan delimiter adalah untuk memisahkan atau mengelompokkan identifier. Sebagai


contoh delimiter ( yang digunakan bersamaan dengan ) digunakan untuk
mengelompokkan integer dalam operasi aritmatika seperti pada contoh berikut:

>>> a = 2

>>> b = 3

>>> c = 4

>>> print (a + b) * c

20

>>> print a * (b + c)

14

>>> print a * b + c

10
Python merupakan bahasa pemprograman yang bersifat dinamic typing yang berarti Anda
tidak perlu mendeklarasikan setiap variabel. Interpreter python akan memilihkan tipe data yang
cocok sesuai dengan konteks pemberian nilai variabel.

>>> integer = 3

>>> string = "3"

>>> float = 3.0

>>> print integer + 2

>>> print string + "2"

32

>>> print float / 2.0

1.5

Adakalanya kita ingin mencetak string lalu menggabungkannya dengan nilai variabel. Hal ini
disebut concatenation . Yang perlu diperhatikan jika Anda hendak melakukan concatenation
adalah setiap variabel yang bukan bertipe string, harus diubah terlebih dahulu menjadi string
sebelum digabungkan. Hal ini bisa dilakukan dengan menjadikan identifier variabel tersebut
sebagai argumen fungsi str() . Perhatikan contoh dibawah:

>>> x = 3

>>> y = 2

>>> z = 3 * 2

>>> print "Jika " + str(x) + " dikali dengan " + str(y) + " maka hasilnya adalah: " + str(z)
Jika 3 dikali dengan 2 maka hasilnya adalah: 6

Pada contoh diatas, statement pada baris ke empat dan ke lima ( print jika .... + str(z)) diketik
dalam satu baris. Dikarenakan keterbatasan kolom dari lembar kerja OpenOffice Writer yang
saya gunakan dalam penulisan artikel ini, maka baris keempat harus dilanjutkan pada baris
kelima. Dalam penulisan statement python, tidak dibenarkan menyambung statement yang
terlalu panjang ke baris dibawah. Setiap statement harus berada dalam satu logical line. Jika
suatu saat Anda menulis kode pada satu baris yang terlalu panjang, lakukanlah explicit line
joining .

Explicit line joining dilakukan dengan menggunakan karakter back slash \ . Perhatikan contoh
di bawah!

>>> print "Belajar \

... python"

Belajar python

Ada banyak sekali perbedaan penggunaan sintak python dibandingkan bahasa pemprograman
lain. Namun menurut pandangan saya, python memiliki konsep leksikal yang sangat unik.
Pendekatan leksikal yang dilakukan python mengarahkan bahasa pemprograman yang lebih
mendekati bahasa manusia. Ini adalah masa depan !

Variabel

Sebagai bahasa pemprograman yang bersifat dinamic typing, python tidak membutuhkan
deklarasi tipe data variabel. Yang perlu diperhatikan, pemberian nama variabel boleh apa saja
asalkan tidak sama dengan keyword.

Contoh penggunaan variabel yang salah:

>>> in = 3

File "<stdin>", line 1


in = 3

SyntaxError: invalid syntax

>>> print = "Hello"

File "<stdin>", line 1

print = "Hello"

SyntaxError: invalid syntax

Penggunaan variabel yang benar:

>>> integer = 3

>>> string = "Belajar Python" # diberi kutip

>>> float = 2.5 #menggunakan delimiter " . "

Dalam python, sebuah variabel merupakan sebuah objek. Tentu saja setiap variabel memiliki
method yang sesuai dengan tipe datanya.

>>> angka = 3

>>> angka.__ [tab][tab]

angka.__abs__ angka.__hash__ angka.__or__ angka.__ror__

angka.__add__ angka.__hex__ angka.__pos__ angka.__rpow__

angka.__and__ angka. angka.__pow__ angka.__rrshift__


angka.__class__ angka.__init__ angka.__radd__ angka.__rshift__

angka.__cmp__ angka.__int__ angka.__rand__ angka.__rsub__

angka.__coerce__ angka.__invert__ angka.__rdiv__ angka.__rtruediv__

angka.__delattr__ angka.__long__ angka.__rdivmod__ angka.__rxor__

angka.__div__ angka.__lshift__ angka.__reduce__ angka.__setattr__

angka.__divmod__ angka.__mod__ angka.__reduce_ex__ angka.__str__

angka.__doc__ angka.__mul__ angka.__repr__ angka.__sub__

angka.__float__ angka.__neg__ angka.__rfloordiv__ angka.__truediv__

angka.__floordiv__ angka.__new__ angka.__rlshift__ angka.__xor__

angka.__getattribute__ angka.__nonzero__ angka.__rmod__

angka.__getnewargs__ angka.__oct__ angka.__rmul__

Diatas merupakan daftar method yang dimiliki oleh variabel angka . Pengaksesan method
tersebut dapat dilakukan dengan cara:

>>> angka.__mod__(2)

Dengan menggunakan delimiter . (titik) lalu diikuti nama method yang akan dipanggil beserta
argumen yang dibutuhkan, kita dapat menngakses method yang dimiliki sebuah variabel. Dalam
contoh diatas kita memanggil method __mod__() dengan argumen 2 yang akan
mengembalikan modulus 3 % 2 (ingat, variabel angka bernilai 3) yaitu 1 . Hal ini juga berlaku
untuk tipe data yang lain seperti float dan string.
Sehubungan dengan sifat dinamic typing dalam python, python menyediakan build in function
untuk mengetahui tipe data sebuah variabel yaitu type() . Penggunaan type adalah dengan
memanggil fungsi type dengan argumen berupa identifier sebuah variabel. Perhatikan contoh
dibawah:

>>> angka = 3

>>> kalimat = "Belajar python"

>>> berkoma = 2.3

>>>

>>> type(angka)

<type 'int'>

>>> type(kalimat)

<type 'str'>

>>> type(berkoma)

<type 'float'>

List

List adalah variabel yang menghimpun sekumpulan. Nilai-nilai dalam sebuah list dipisahkan
menggunakan delimiter koma , dan dihimpun didalam delimiter kurung siku [ ] . Nilai-
nilai dalam sebuah list tidak harus memiliki tipe yang sama.

Pemakaian List:

>>> a = ['belajar','python',1,'kali','sehari']

>>> print a
['belajar', 'python', 1, 'kali', 'sehari']

Nilai-nilai yang tersimpan dalam list dapat dipanggil satu-per-satu dengan menggunakan index
yang dimulai dari 0.

>>> myList = ["python",100,2.0]

>>> print myList[0]

python

>>> print myList[1]

100

>>> print myList[2]

2.0

Dengan mengacu kepada index, kita juga dapat mengganti nilai element list yang ditunjuk oleh
index-nya.

>>> print myList

['python', 100, 2.0]

>>> myList[1] = 555

>>> print myList

['python', 555, 2.0]

Multi dimensional list dalam python dapat dibuat dengan cara:

>>> mdList = [[2,'palado'],[200,2,6]]

>>> mdList
[[2, 'palado'], [200, 2, 6]]

Dan dapat diakses menggunakan indeks:

>>> mdList[1]

[200, 2, 6]

>>> mdList[1][2]

>>> mdList[0][1]

'palado'

Python memiliki build in function untuk mendapatkan jumlah elemen yang dimiliki sebuah
list. Yaitu fungsi len() yang mengembalikan nilai berupa jumlah elemen di dalam sebuah list.
Penggunaannya seperti contoh dibawah:

>>> len(mdList)

>>> len(mdList[0])

>>> len(mdList[1])

Fungsi len() dengan memberi argumen berupa objek list (dalam contoh mdList ) akan
mengembalikan nilai berupa jumlah elemen list tersebut. Namun jika elemen sebuah list,
memiliki elemen didalamnya (multi dimensional list), argumen berupa object list disertai nomor
indeks elemen yang memiliki elemen didalamnya, akan mengembalikan nilai berupa jumlah
elemen yang terdapat di dalam elemen tersebut. Perhatikan kembali contoh diatas.

Tidak hanya itu, sebagai sebuah objek. List juga memiliki built in method yang dapat diakses
menggunakan delimiter . (titik). Daftar panjang method yang dimiliki sebuah objek dapat
dilihat dengan mengetikkan nama objek diikuti dengan delimiter . lalu tekan TAB dua kali,
maka interactive interpreter akan menampilkan daftar method yang dimiliki objek tersebut.

Contoh mengakses method dari objek list:

>>> mdList. # tekan TAB dua kali

mdList.__add__ mdList.__getslice__ mdList.__ne__ mdList.append

mdList.__class__ mdList.__gt__ mdList.__new__ mdList.count

mdList.__contains__ mdList.__hash__ mdList.__reduce__ mdList.extend

mdList.__delattr__ mdList.__iadd__ mdList.__reduce_ex__ mdList.index

mdList.__delitem__ mdList.__imul__ mdList.__repr__ mdList.insert

mdList.__delslice__ mdList.__init__ mdList.__reversed__ mdList.pop

mdList.__doc__ mdList.__iter__ mdList.__rmul__ mdList.remove

mdList.__eq__ mdList.__le__ mdList.__setattr__ mdList.reverse

mdList.__ge__ mdList.__len__ mdList.__setitem__ mdList.sort

mdList.__getattribute__ mdList.__lt__ mdList.__setslice__

mdList.__getitem__ mdList.__mul__ mdList.__str__

Contoh mengakses method __len__() dari objek myList:


>>> mdList.__len__()

Menggunakan method yang dimiliki list , kita dapat menambah dan mengurangi elemen-
elemen list tersebut.

Method append digunakan untuk menambah elemen list:

>>> myList = ['a','b',3,'python']

>>> myList

['a', 'b', 3, 'python']

>>> myList.append('boa')

>>> myList

['a', 'b', 3, 'python', 'boa']

Method pop digunakan untuk mengurangi / menghapus elemen sebuah list dengan argumen
berupa nomor indeks elemen tersbut:

>>> myList

['a', 'b', 3, 'python', 'boa']

>>> myList.pop(2)

>>> myList

['a', 'b', 'python', 'boa']

Dictionaries
Pada bahasa pemprograman yang lain, dictionaries dikenal juga sebagai associative array atau
hash . Dictionaries mirip seperti list, namun tidak di-indeks berdasarkan yrytan angka, namun
bersasarkan pasangan key:value . Key yang digunakan sebagai indeks menunjuk ke value
pasangannya. Key dapat berupa string atau numbers.

Contoh membuat dictionaries:

>>> myDict = {'nama':'haddad','umur':22}

>>> myDict

{'nama': 'haddad', 'umur': 22}

Memanggil value berdasarkan key:

>>> myDict['nama']

'haddad'

>>> myDict['umur']

22

>>> print "Data mahasiswa: "+myDict['nama']+" umur: "+str(myDict['umur'])

Data mahasiswa: haddad umur: 22

Sebagai sebuah object, dictionaries juga memiliki method. Pemanggilan method yang dimiliki
dictionaries sama seperti pemanggilan method yang dimiliki list . Melalui interactive
interpreter kita juga dapat mengetahui method-method apa saja yang dimiliki dictionaries. Cara
mengetahuinya sama seperti mengetahuinya sama seperti list.

Contoh penggunaan method yang dimiliki dictionaries:

>>> myDict.keys()
['nama', 'umur']

>>> myDict.values()

['haddad', 22]

Method keys() digunakan untuk menampilkan keys yang miliki sebuah dictionaries,
sedangkan values() digunakan untuk menampilkan values.

Aritmatika

Dalam python operasi matematika dapat dilakukan dengan cara yang cukup sederhana. Cara
yang paling umum dilakukan adalah dengan menggunakan operator.

Aritmatika dalam python:

>>> a = 2

>>> b = 3

>>> c = 4

>>> a + b # penjumlahan

>>> a - c # pengurangan

-2

>>> a * b # perkalian

>>> c / a # pembagian

2
>>> b % a # modulus

Python juga memiliki fungsi-fungsi yang memudahkan operasi aritmatika:

>>> z = -2

>>> abs(z) # absolute value

Untuk menggunakan fungsi aritmatika yang lebih kompleks gunakan method-method yang
dimiliki class math :

>>> import math

>>> math.

math.__class__ math.__reduce_ex__ math.degrees math.modf

math.__delattr__ math.__repr__ math.e math.pi

math.__dict__ math.__setattr__ math.exp math.pow

math.__doc__ math.__str__ math.fabs math.radians

math.__file__ math.acos math.floor math.sin

math.__getattribute__ math.asin math.fmod math.sinh

math.__hash__ math.atan math.frexp math.sqrt

math.__init__ math.atan2 math.hypot math.tan

math.__name__ math.ceil math.ldexp math.tanh


math.__new__ math.cos math.log

math.__reduce__ math.cosh math.log10

>>> math.sqrt(9)# akar 9

3.0

>>> math.pi# PI

3.1415926535897931

>>> math.sin(30)# sin 30

-0.98803162409286183

>>> math.pow(2,8)# 2 pangkat 8

256.0

Perulangan

Perulangan dalam python sedikit berbeda dengan bahasa pemprograman lainnya. Python tidak
hanya melakukan perulangan berdasarkan perubahan urutan artimatika, namun python juga
mampu mengurut berdasarkan item-item ber-urut (sequence) seperti string dan list.

Untuk melakukan perulangan pada python, kita menggunakan keyword for yang dipasangkan
dengan in . Perlu diingat, perulangan merupakan sebuah blok statement yang dalam python
ditandai dengan identasi.

Contoh perulangan berdasarkan item dalam string:

>>> kata = 'python'

>>> for i in kata:


... print i

...

Contoh perulangan berdasarkan item dalam list:

>>> keluarga = ['Ayah','Ibu','Anak','Kakek', 'Nenek']

>>> for n in keluarga:

... print 'Selamat ulang tahun '+n

...

Selamat ulang tahun Ayah

Selamat ulang tahun Ibu

Selamat ulang tahun Anak

Selamat ulang tahun Kakek

Selamat ulang tahun Nenek

>>> z = 0 # inisialisasi nilai variabel z


>>> kalimat = 'Belajar Python'

>>> kalimat.__len__() # jumlah item

14

>>> for y in kalimat:

... print z

... z += 1

...

10

11
12

13

Contoh diatas mencoba menggambarkan perulangan yang menggunakan urutan item, dalam
contoh diatas kita menggunakan string. Python juga mendukung perulangan dengan cara yang
lebih tradisional dengan menggunakan perubahan urutan aritmatika. Untuk melakukan ini, kita
menggunakan built in function range() .

Perulangan menggunakan range():

>>> for i in range(10):

... print i

...

9
Pada contoh diatas, kita melakukan perulangan sebanyak sepuluh kali. Fungsi range() dapat
digunakan dalam beberapa bentuk, perhatkan contoh dibawah!

>>> for i in range(1,10,2):

... print i

...

Fungsi range() pada contoh diatas, menggunakan tiga argumen ( 1 , 10 , 2 ). Argumen


pertama merupakan awal mulai perulangan, yang kedua akhir perulangan, sedangkan yang ketiga
adalah jumlah penambahan.

Perulangan dimulai dari 1, lalu diikuti dengan 1 + 2 yaitu 3, diikuti lagi dengan 3 + 2 yaitu 5 dan
begitu seterusnya.

Fungsi range() juga dapat mengurut kebawah dengan melakukan pengurangan. Misalkan awal
perulangan adalah 10 dan akan dikurangi 1 untuk setiap perulangan hingga medapatkan nilai 0,
kode kita harus diubah menjadi:

>>> for i in range(10,0,-1):

... print i

...
10

Selain menggunakan for , kita juga dapat melakukan perulangan dengan menggunakan
while . Perulangan akan dilakukan selama acuan bernilai True. Dalam python untuk setiap
number selain nol ( 0 ) bernilai true.

Perulangan menggunakan while:

>>> x = 3

>>> while x:

... print x

... x -= 1

...

3
2

Percabangan

Sama seperti bahasa pemprograman lain, python juga menggunakan if sebagai keyword.
Pemakaian if lebih kurang mirip dengan for , hal ini dikarenakan keyword if merupakan
sebuah blok statement.

Keyword yang umum digunakan bersama if adalah: else (selain itu) dan elif (selain itu,
jika).

Perhatikan contoh dibawah:

>>> x = True

>>> if x:

... print "X bernilai benar"

... else:

... print "X bernilai salah"

...

X bernilai benar

>>> x = False

>>> if x:

... print "X bernilai benar"

... else:
... print "X bernilai salah"

...

X bernilai salah

Untuk kasus yang lebih konvensional perhatikan contoh dibawah:

>>> nilai_angka = 87

>>> if (nilai_angka > 0) and (nilai_angka <= 35):

... print "Nilai angka = " + str(nilai_angka) + " sedangkan nilai huruf = C"

... elif (nilai_angka >=36) and (nilai_angka <=70):

... print "Nilai angka = " + str(nilai_angka) + " sedangkan nilai huruf = B"

... else:

... print "Nilai angka = " + str(nilai_angka) + " sedangkan nilai huruf = A"

...

Nilai angka = 87 sedangkan nilai huruf = A

Contoh diatas mendemonstrasikan percabangan yang melibatkan operator logika and . Kasus
yang diselesaikan adalah konversi nilai angka menjadi nilai huruf. Jika nilai angka besar dari nol
dan kecil sama dengan 35, maka nilai huruf adalah C. Jika nilai angka besar sama dengan 36 dan
kecil sama dengan 70 maka nilai huruf adalah B, selain itu (jika besar sama dari 71) maka nilai
huruf adalah A. Pada prinsipnya tidak jauh berbeda dengan bahasa pemprograman yang lain.

Sesuai kebutuhan, operator logika or juga bisa digunakan dalam percabangan. Perhatikan
contoh dibawah:

>>> login = False


>>> password = 'python'

>>> if (login) or (password == 'python'):

... print 'Selamat datang'

... else:

... print 'Silahkan login dahulu'

...

Selamat datang

>>> login = False

>>> password = 'sython'

>>> if (login) or (password == 'python'):

... print 'Selamat datang'

... else:

... print 'Silahkan login dahulu'

...

Silahkan login dahulu

Contoh penggunaan if di dalam if (Nested IF):

>>> gender = "Pria"

>>> umur = 22

>>> if gender is "Pria":


... if umur >= 21:

... print "Sudah boleh menikah"

... else:

... print "Belum boleh menikah"

... else:

... if umur >= 16:

... print "Sudah boleh menikah"

... else:

... print "Belum boleh menikah"

...

Sudah boleh menikah

Berikut operator yang umumnya digunakan dalam percabangan:

==Sama dengan

!=Tidak sama dengan

>Besar dari

<Kecil dari

>=Besar sama

<=Kecil sama

Fungsi
Fungsi adalah salah satu cara mengelompokkan statement. Dengan fungsi, kode yang kita buat
akan lebih mudah dibaca.

Pembuatan fungsi dalam python:

>>> def fungsi1(a,b):

... return a + b

...

Contoh diatas mendemonstrasikan pembuatan sebuah fungsi dengan nama fungsi1 . Fungsi ini
menerima dua buah argumen yang diberi nama a dan b . Sifat dinamic typing python
memungkinkan kita untuk tidak mendefenisikan tipe data argumen-argumen tersebut. Lalu pada
baris kedua, keyword return akan mengembalikan nilai argumen a ditambah argumen b .

Menjalankan fungsi:

>>> fungsi1(1,3)

>>> fungsi1('Hello','World')

'HelloWorld'

Dua contoh diatas adalah hasil yang ditampilkan interactive interpreter python yang pada conoth
diatas masing-masing diberi argumen yang berbeda tipe (number dan string). Dinamic typing
memungkinkan melakukan hal ini.

>>> type(fungsi1(1,3))

<type 'int'>

>>> type(fungsi1('Hello','World'))
<type 'str'>

Built in function type() dapat digunakan untuk mengetahui tipe data nilai balik (return)
fungsi1() jika menggunakan argumen berbeda.

Sehubungan dengan tipe data, nilai balik sebuah fungsi dapat langsung dikombinasikan /
digunakan bersama statement lain.

>>> for i in range(fungsi1(1,3)):

... print i

...

>>> for i in fungsi1('Hello','World'):

... print i

...

o
W

Tidak hanya itu, nilai balik sebuah fungsi adalah objek, sehingga kita dapat menggunakan
method yang sesuai dengan tipe data nilai balik fungsi tersebut.

>>> fungsi1(1,3)

>>> type(fungsi1(1,3))

<type 'int'>

>>> fungsi1(1,3).__str__()

'4'

>>> type(fungsi1(1,3).__str__())

<type 'str'>

Fungsi fungsi(1,3) mengembalikan nilai integer 4, sedangkan method __str__() akan


mengubah nilai balik fungsi1(1,3) menjadi string.

Input Console

Python memiliki dua fungsi sederhana umtuk mengambil input dari console. Fungsi-fungsi
tersebut, pada prinsipnya sangat sederhana, sehingga pada implementasinya, kita butuh metoda
pemprosesan input yang lebih canggih agar program berjalan dengan baik tanpa mengalami
kesalahan akibat input data yang tidak diharapkan.

Fungsi pertama adalah raw_input() .

>>> raw_input('Masukkan Input Anda: ')

Masukkan Input Anda: saya belajar python

'saya belajar python'

Fungsi raw_input menerima input sebagai string:

>>> type(raw_input('Input anda: '))

Input anda: 2

<type 'str'>

Untuk itu, kita perlu mengkonversikan tipe data input yang diambil melalui raw_input():

>>> kode = int(raw_input('Masukkan angka: '))

Masukkan angka: 2

>>> type(kode)

<type 'int'>

>>> kode = float(raw_input('Masukkan pecahan: '))

Masukkan pecahan: 2.3

>>> type(kode)

<type 'float'>
Fungsi kedua adalah input() .

Fungsi input() mengambil input dari console, lalu mengaplikasikan string input tersebut ke
fungsi eval() . Fungsi ini nantinya akan mengevaluasi input menjadi nilai yang kita harapkan
seperti misalnya integer atau float. Misalnya kita meng-inputkan nilai 2 , maka fungsi
input() akan memberikan nilai balik berupa integer 2 . Perhatikan contoh dibawah:

>>> type(input('Input: '))

Input: 23

<type 'int'>

>>> type(input('Input: '))

Input: 2.3

<type 'float'>

>>> type(input('Input: '))

Input: python

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

File "<string>", line 1, in <module>

NameError: name 'python' is not defined

Fungsi input akan membaca input kita sebagai sebuah expresi dan memberikan tipe data yang
cocok. Namun jika memberikan nilai string pada fungsi input(), maka akan tampil pesan
kesalahan karena string python bukanlah sebuah ekspresi.

Beberapa contoh penggunaan fungsi input():


>>> input('Input: ')

Input: 2+3/4

>>> input('Input: ')

Input: 2+3/4.0

2.75

Operasi File

Python memiliki prosedur sederhana dalam operasi input/output. Ada tiga langkah yang harus
dilakukan yaitu:

Buka file / dapatkan objek file tersebut dengan fungsi open() dan sesuaikan mode
pembukaan file (apakah Read r, Append a atau Write w).

Lakukan operasi pada objek file tersebut sesuai dengan mode yang diinginkan diatas
(read, append atau write)

Tutup file / objek file.

Fungsi open() membutuhkan dua parameter yaitu lokasi file bersangkutan dan mode
pembukaan file serta mengembalikan objek file.

>>> type(open("/home/haddad/pyfile", "r"))

<type 'file'>

Operasi file nantinya akan dilakukan melalui objek file ini. Perhatikan contoh dibawah:

>>> objek_file = open("/home/haddad/pyfile", "w")


>>> objek_file.write("Python selayang pandang")

>>> objek_file.close()

objek_file merupakan identifier terhadap objek file yaitu file pyfile yang terdapat dalam
direktori /home/haddad . File tersebut dibuka dengan mode write (w), berarti operasi yang
dapat kita lakukan terhadap file tersebut adalah menulis.

Method write() yang dimiliki objek_file digunakan untuk menulis string ke dalam file pyfile.
Sesuai contoh diatas, kita menulis baris Python selayang pandang ke pyfile. Lalu prosedur ini
diakhiri dengan method close()

haddad@moria:~> less pyfile

Python selayang pandang

pyfile lines 1-1/1 (END)

Sampai saat ini, kita telah memiliki sebuah file bernama pyfile pada direktori /home/haddad.

Untuk menampilkan isi file tersebut, kita cukup mengubah mode operasi file menjadi read dan
menggunakan method read() dari objek file. Perhatikan contoh dibawah:

>>> objek_file = open("/home/haddad/pyfile", "r")

>>> print objek_file.read()

Python selayang pandang

>>> objek_file.close()

Untuk menambah isi sebuah file, mode yang kita gunakan adalah Append a.

>>> objek_file = open("/home/haddad/pyfile", "a")

>>> objek_file.write("\nBaris baru yang ditambahkan kedalam file")


>>> objek_file.close()

Perhatikan \n , escape character ini digunakan untuk memberikan baris baru pada file.

Python OOP

Pada prinsipnya, paradigma Object Oriented pada python tidak jauh berbeda dengan bahasa
lainnya. Python mengenal konsep class , inheritance , method dan lain-lain.

Pembuatan class dapat dilakukan dengan cara yang cukup sederhana:

>>> class manusia:

... nama = "Yosero"

... umur = 18

...

Diawali dengan keyword class , defenisi sebuah class dapat dibuat dalam identasi yang
menadakan kelompok statement. Pada contoh diatas, field class terdiri dari nama yang
bernilai string Yosero dan umur yang bernilai integer 18.

Untuk melakukan instantiation dilakukan dengan cara:

>>> m = manusia()

Setelah itu, field dapat diakses dengan cara:

>>> print m.nama

Yosero

>>> print m.umur

18
Delimiter titik . digunakan untuk menunjuk baik itu field maupun method dari class yang
telah di-instantiasi-kan.

Pembuatan method mirip dengan pembuatan fungsi. Namun dalam mendefenisikan method,
diharuskan memasukkan self sebagai salah satu argumen. Menurut dokumentasi python, hal
ini hanya konvensi penggunaan saja.

>>> class manusia:

... nama = "Yosero"

... umur = 18

... def getNama(self):

... return self.nama

... def getUmur(self):

... return self.umur

...

>>> m = manusia()

>>> m.getNama()

'Yosero'

>>> m.getUmur()

18

Perhatikan contoh diatas, defenisi method getNama() pada dasarnya tidak memiliki argumen,
namun dalam konvensi penulisannya, kita memasukkan argumen self . Jika Anda membuat
method yang memiliki argumen, Anda tetap harus memasukkan argumen ini.
Lain kasus pada baris yang terdapat return self.nama dan return self.umur . Self disini
berperan menunjukkan lingkup field nama dan umur bahwa field-field tersebut berada
dalam lingkup class manusia . Analoginya seperti keyword this dalam Java.

Method juga diperlakukan dengan cara yang sama, jika Anda ingin mengakses sebuah method
dalam method yang lain pada class yang sama. Anda juga diharuskan mengunakan varibel self
ini.

Lebih jelasnya, coba perhatikan contoh dibawah:

>>> class aritmatika:

... def tambah(self, a, b):

... return a + b

... def tambahlagidengantiga(self, a, b):

... return self.tambah(a, b)+3

...

>>> a = aritmatika()

>>> a.tambah(2,3)

>>> a.tambahlagidengantiga(2,3)

Method tambahlagidengantiga() pada contoh diatas memanggil method tambah() untuk


dieksekusi terlebih dahulu sebelum hasilnya ditambahkan dengan tiga. Untuk itu, kita
menggunakan variabel self selelum method tambah() .
Sebuah class dapat melakukan inisialisasi, yaitu satu atau sekumpulan kode yang langsung
berjalan ketika class tersebut di-instantiasi-kan. Dalam Java kita mengenalnya dengan
constructor .

Untuk melakukannya, Python mengharuskan kita untuk mendefenisikan method spesial


__init__() . Perhatikan dua buah underscore (baris bawah) sebelum dan sesudah kata init .
Melalui method spesial ini, class yang kita buat dapat menerima parameter.

>>> class mahasiswa:

... def __init__(self, nama, no_bp):

... self.nama = nama

... self.no_bp = no_bp

... def getInfo(self):

... return "Nama mahasiswa = " + str(self.nama) + " dan nomor bp = " + str(self.no_bp)

...

>>> m = mahasiswa("Haddad", "080989997")

>>> m.getInfo()

'Nama mahasiswa = Haddad dan nomor bp = 080989997'

Salah satu fitur OOP adalah inheritance. Dalam Python, inheritance atau pewarisan dapat
dilakukan dengan cara memberikan argumen berupa class yang hendak diturunkan dalam
defenisi class. Contoh dibawah akan menggambarkan pewarisan class manusia yang
memiliki field nama dan umur serta method getInfo() terhadap class mahasiswa
yang memiliki field no_bp dan melakukan overriden method getInfo() .

>>> class manusia:


... nama = None # None = tidak terdefenisi (dapat didefenisikan kemudian)

... umur = None

... def getInfo(self):

... return (self.nama, self.umur)

...

>>> class mahasiswa(manusia): # inheritance class manusia - class manusia sebagai argumen

... no_bp = None

... def getInfo(self): # overriden method getInfo()

... return (self.nama, self.umur, self.no_bp)

...

>>> man = manusia() # instantiation class manusia

>>> man.nama = "Yosero Institute"

>>> man.umur = 1

>>> man.getInfo()

('Yosero Institute', 1)

>>>

>>> mah = mahasiswa() # instantiation class mahasiswa

>>> mah.nama = "Rindu Prada"

>>> mah.umur = 23
>>> mah.no_bp = "0405111"

>>> mah.getInfo()

('Rindu Prada', 23, '0405111')

Cukup sederhana bukan ?

Saat program mengalami kesalahan (error) pada saat dijalankan, Python memiliki mekanisme
untuk menangani kesalahan tersebut tanpa harus berhenti dieksekusi. Mekanisme ini mirip
dengan Java disebut exeception .

Tipe-tipe exception:

>>> 1/0

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ZeroDivisionError: integer division or modulo by zero

>>> "Hello" + 2

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: cannot concatenate 'str' and 'int' objects

>>> apasih + lo

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'apasih' is not defined


Ada sekumpulan built in exception yang dimiliki Python, seperti contoh diatas:
ZeroDivisionError, TypeError, NameError. Untuk daftar yang lebih lengkap silahkan mengacu ke
Python Library Reference.

Sebelum masuk pada penjelasan, coba perhatikan contoh dibawah:

>>> def testInput():

... try:

... myinput = int(raw_input("Entrikan nilai integer: "))

... print "Nilai yang Anda entrikan adalah: " + str(myinput)

... except ValueError:

... print "Nilai yang Anda entrikan salah ! Harap entrikan nilai integer"

...

>>> testInput()

Entrikan nilai integer: 4

Nilai yang Anda entrikan adalah: 4

>>> testInput()

Entrikan nilai integer: t

Nilai yang Anda entrikan salah ! Harap entrikan nilai integer

Menurut dokumentasi Python, exception bekerja dengan langkah-langkah sebagai berikut:

Gunakan keyword try . Blok statement yang berada didalam klausa try, akan
dieksekusi.
Jika tidak ada exception terjadi, blok excep dilewatkan.

Jika exception terjadi selama eksekusi statement yang berada dalam blok try , sisa
statement akan dilewatkan. Jika tipe exception sesuai dengan tipe yang didefenisikan
pada keyword except (dalam contoh diatas ValueError), maka blok except
dieksekusi dan eksekusi program dilanjutkan kepada kode yang terletak setelah blok try
.

Jika exception terjadi dan tipenya tidak sesuai dengan tipe yang didefenisikan pada blok
except , exception dilanjutkan keluar blok try . Jika tidak ditemukan juga kode yang
akan menanganinya (except dengan tipe yang sesuai), maka terjadi unhandled exception
. Eksekusi dihentikan dan pesan error ditampilkan pada terminal.

Quo Vadis

Kode-kode yang ada dalam artikel ini, dibuat langsung mengunakan interactive interpreter. Agar
dapat tersimpan dalam sebuah file, Anda harus mengetiknya pada teks editor dan jangan lupa
menggunakan she-bang . Ketiklah kode-kode Python dalam teks editor sebagaimana Anda
mengetiknya pada interactive interpreter. Perhatikan identasi sesuai dengan yang telah dijelaskan
pada bagian Analisa Leksikal Sebagai konvensi pemberian suffix, kode-kode python diberi
ekstensi .py .

Anda bisa menemukan banyak sekali sumber-sumber di Internet yang membahas pemprograman
python. Untuk hal ini, google akan sangat membantu Anda.

Jangan lupa untuk membaca dokumentasi Python. Sebagian besar referensi yang saya gunakan
dalam pembuatan artikel ini adalah dokumentasi Python yang bisa Anda dapatkan di:

Anda mungkin juga menyukai