Tutorial Dasar Python

Penulis amati, kebanyakan developer OpenERP awalnya tidak memahami bahasa python sebelumnya alias mengenal dan belajar python ketika ingin mendevelop OpenERP. Olehkarna itu penulis ingin mencoba membuat tutorial dasar yang merupakan ringkasan coding python dasar sebagai ‘pembuka jalan’ untuk mengarungi luasnya samudra python -lebay mode ON- yang nantinya bisa dilanjutkan dengan mempelajari ebook-ebook python yang berserakan di google πŸ™‚

Memahami bahasa python sangat penting mengingat OpenERP dikembangkan dengan bahasa python. Beberapa kasus membuktikan banyak dari developer yang kurang memahami python dengan baik yang mengakibatkan akhirnya OpenERP yang dikembangkan mengalami ‘jalan buntu’ minimal tidak efisien dalam penulisan code. Padahal penulis menjamin -In syaa Allah- jika kita telah mahir dengan pythonnya, OpenERP -secara technical- akan kita kuasai maksimal selama 3 bulan.

Sebenarnya penulis telah membuat beberapa tutorial khusus mengenai python ini seperti struktur lexical, tipe data, looping sampai OOP dalam python. Akan tetapi disana mungkin masih membutuhkan lagi tutorial python yang lebih ‘instan’, olehkarna itu penulis mencoba dalam tutorial ini membuat ringkasan tutorial python yang sangat dasar sekali dan langsung praktek menggunakan interpreter dari python. Untuk mengetahui dan mempelajari lebih lanjut mengenai interpreter python mungkin bisa dibaca disini.

Baiklah untuk mempersingkat waktu silahkan untuk membuka interpreter python anda dan silahkan mencoba coding dibawah ini.

NUMBER

Jika kita membuat kondisi seperti dibawah, maka baris selanjutnya akan terus berlanjut sampai akhir statement


>>> radio_rodja = True
>>> if radio_rodja:
...     print 'Motto Radio Rodja adalah Menebar Cahaya Sunnah'
... 
Motto Radio Rodja adalah Menebar Cahaya Sunnah

Kita juga bisa mencoba berbagai jenis perhitungan matematika seperti calculator sederhana


>>> 2+8
10
>>> # Ini adalah komentar
... 2+2
4
>>> 2+3 # Ini adalah komentar yang sebaris dengan code
5
>>> # Pembagian bilangan integer (bulat), hasilnya akan pembulatan ke bawah
... 7/3
2
>>> 7/-3
-3
>>> (50-5*6)/4
5

Kita juga bisa membuat variabel berserta nilainya tanpa mendeklarisakan tipe datanya diawal


>>> panjang = 25
>>> lebar = 4*2
>>> panjang * lebar
200

Kita juga dapat memberikan nilai pada beberapa variabel sekaligus


>>> x = y = z = 1
>>> x
1
>>> y
1
>>> z
1
>>> a = 5; b = 7; c = 9
>>> a
5
>>> b
7
>>> c
9

Variabel harus kita definisikan terlebih dahulu sebelum dipanggil atau digunakan dan bersifat case sensitive


>>> rodja
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'rodja' is not defined

Kita juga dapat melakukan perhitungan antar bilangan bulat dan decimal, yang hasilnya adalah bilangan decimal (floating point). Untuk mengconvert antar bilangan seperti integer (bulat) ke float (decimal) cukup menggunakan float(bilangan_bulat). Begitu juga sebaliknya cukup menggunakan int(bilangan_decimal)


>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5

STRING

Selain number kita juga dapat melakukan manipulasi string dengan berbagai cara baik menggunakan single quotes atau double quotes


>>> 'Salam'
'Salam'
>>> 'Assalamu\'alaikum'
"Assalamu'alaikum"
>>> "Assalamu'alaikum"
"Assalamu'alaikum"
>>> '"Benar", Radio Rodja difrekuensi 756 AM'
'"Benar", Radio Rodja difrekuensi 756 AM'
>>> "\"Benar\", Radio Rodja difrekuensi 756 AM"
'"Benar", Radio Rodja difrekuensi 756 AM'
>>> '"Assalamu\'alaikum", dia mengucapkan salam'
'"Assalamu\'alaikum", dia mengucapkan salam'

String juga bisa kita gabungkan dengan operator + dan *


>>> salam = 'Ahlan' + 'WaSahlan'
>>> '(' + salam * 3 + ')'
'(AhlanWaSahlanAhlanWaSahlanAhlanWaSahlan)'

Jika kita dapat menyambungkan 2 string yang berdekatan secara otomatis dan kita juga bisa menggunakan method yang dimiliki string contohnya strip()


>>> 'str' 'ing'
'string'
>>> 'str'.strip() + 'ing' # Benar
'string'
>>> 'str'.strip() 'ing' # Salah
>>> 'str00'.strip('0')
'str'

String dalam python dapat kita akses berdasarkan indexnya seperti bahasa C, bahkan dengan bilangan negatif (hasilnya diambil dari kanan)


>>> kata = 'salam'
>>> kata[3]
'a'
>>> kata[0]
's'
>>> kata[0:2]
'sa'
>>> kata[2:4]
'la'
>>> kata[-1]
'm'
>>> kata[-2]
'a'
>>> kata[-2:]
'am'
>>> kata[:-2]
'sal'

Kita juga dapat menyisipkan angka / bilangan kedalam string menggunakan % (modulo)


>>> 'ahlan %s' % 'bika'
'ahlan bika'
>>> 'Radio Rodja %d AM' % 756
'Radio Rodja 756 AM'
>>> '%f adalah bilangan decimal' % 2.5
'2.500000 adalah bilangan decimal'
>>> '%.2f adalah bilangan decimal' % 2.5
'2.50 adalah bilangan decimal'
>>> '%.3f adalah bilangan decimal' % 2.5
'2.500 adalah bilangan decimal'

LIST

List dalam python digunakan untuk mengelompokan berbagai tipe data menjadi satu. Cara membuat list dengan menggunakan kurung siku ([]) dan elemen list dipisahkan dengan comma (,). List bisa terdiri dari string, integer, float, tuple, dictionary, bahkan list itu sendiri


>>> lis = [100, 13, 'radio', 'rodja', [45, 'elemen'], (1,2,'a'), {'key':'value'}]
>>> lis
[100, 13, 'radio', 'rodja', [45, 'elemen'], (1, 2, 'a'), {'key': 'value'}]

Seperti string, element list dapat kita akses menggunakan index


>>> lis[0]
100
>>> lis[3]
'rodja'
>>> lis[-2]
(1, 2, 'a')
>>> lis[1:-1]
[13, 'radio', 'rodja', [45, 'elemen'], (1, 2, 'a')]
>>> lis[0] + lis[1]
113
>>> lis[:2] + ['salam', 2*3]
[100, 13, 'salam', 6]
>>> 3*lis[:3] + ['testing']
[100, 13, 'radio', 100, 13, 'radio', 100, 13, 'radio', 'testing']

Jika string elementnya tidak dapat dirubah (immutable), sedangkan list dapat kita manipulasi


>>> lis
[100, 13, 'radio', 'rodja', [45, 'elemen'], (1, 2, 'a'), {'key': 'value'}]
>>> lis[2] = 'televisi'
>>> lis
[100, 13, 'televisi', 'rodja', [45, 'elemen'], (1, 2, 'a'), {'key': 'value'}]

Bahkan kita juga dapat memanipulasi banyak element sekaligus bahkan menghapusnya


>>> lis = ['radio', 'rodja', 100, 13]
>>> lis[0:2] = [1, 27]
>>> lis
[1, 27, 100, 13]
>>> lis[0:2] = []
>>> lis
[100, 13]
>>> lis[1:1] = ['radio', 'rodja']
>>> lis
[100, 'radio', 'rodja', 13]
>>> lis[:0] = lis
>>> lis
[100, 'radio', 'rodja', 13, 100, 'radio', 'rodja', 13]
>>> lis[:] = []
>>> lis
[]

Selain itu, list juga memiliki beberapa method built-in, seperti append(), len(), sort(), dll


>>> lis = [5, 2, 18, 15, 5]
>>> len(lis)
5
>>> lis.count(5)
2
>>> lis.sort()
>>> lis
[2, 5, 5, 15, 18]
>>> lis.append(100)
>>> lis
[2, 5, 5, 15, 18, 100]

Salah satu cara ‘advanced’ dalam membuat list adalah dengan menggunakan looping for


>>> angka = [3, 6, 9]
>>> [2*a for a in angka]
[6, 12, 18]
>>> [3*a for a in angka if a > 4]
[18, 27]
>>> [3*a for a in angka if a < 5]
[9]
>>> [(a, 5*a) for a in angka]
[(3, 15), (6, 30), (9, 45)]
>>> nilai = [2, 4, 8]
>>> [x*y for x in angka for y in nilai]
[6, 12, 24, 12, 24, 48, 18, 36, 72]
>>> [x+y for x in angka for y in nilai]
[5, 7, 11, 8, 10, 14, 11, 13, 17]
>>> [angka[i]*nilai[i] for i in range(len(nilai))]
[6, 24, 72]

Selain itu kita juga dapat memberikan function didalam pembuatan list dengan looping for


>>> radiomuslim = [' rodja', ' hang ', 'muslim '] 
>>> [r.strip() for r in radiomuslim]
['rodja', 'hang', 'muslim']
>>> [str(round(355/113.0, i)) for i in range(1,6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']

IF STATEMENT

Kondisi yang sering digunakan dalam kebanyakan bahasa pemrograman yaitu if else


>>> x = int(raw_input("Silahkan masukan angka : "))
Silahkan masukan angka : 41
>>> if x:
...     print "variabel x ada nilainya"
... 
variabel x ada nilainya
>>> if x < 0:
...    print 'bilangan negatif'
... elif x == 0:
...    print 'angka 0'
... elif x <= 15:
...     print 'bilangan dibawah atau sama dengan 15'
... else:
...     print 'bilangan di atas 15'
... 
bilangan di atas 15

FOR STATEMENT

Looping yang sering digunakan pada OpenERP adalah for loop


>>> i = ['radio', 'masjid', 'universitas']
>>> for x in i:
...     print x, len(x)
... 
radio 5
masjid 6
universitas 11

METHOD

Semua bisa kita lakukan didalam interpreter, diantaranya adalah dengan membuat sebuah method


>>> def fibo(n):
...     a, b = 0, 1
...     while a < n:
...         print a,
...         a, b = b, a+b
... 
>>> fibo(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
>>> def fibonaci(n):
...     hasil = []
...     a, b = 0, 1
...     while a < n:
...         hasil.append(a)
...         a, b = b, a+b
...     return hasil
... 
>>> val = fibonaci(100)
>>> val
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

Parameter pada method bisa juga kita tentukan nilai defaultnya


>>> def tanya(jawab, kesempatan = 3, hasil = "Ya atau No !"):
...     while True:
...         ya = raw_input(jawab)
...         if ya in ('ya', 'y', 'Ya', 'YA'):
...             print 'Barokallahu laka ....'
...         if ya in ('no', 'n', 'No', 'NO'):
...             print 'Semoga mendapat jodoh yang shaleh / shalehah'
...         kesempatan = kesempatan - 1
...         if kesempatan < 0:
...             raise IOError('Orang ANeh :P')
...         print hasil
... 
>>> tanya('Apakah anda sudah menikah ? ')
Apakah anda sudah menikah ? y
Barokallahu laka ....
>>> tanya('Apakah anda sudah menikah ? ')
Apakah anda sudah menikah ? n
Semoga mendapat jodoh yang shaleh / shalehah
>>> tanya('Apakah anda sudah menikah ? ')
Apakah anda sudah menikah ? tidak
Ya atau No !
Apakah anda sudah menikah ? terlalu
Ya atau No !
Apakah anda sudah menikah ? belum
Ya atau No !
Apakah anda sudah menikah ? ga
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 10, in tanya
IOError: Orang ANeh πŸ˜›

Salah satu keyword yang sering digunakan dalam OpenERP adalah lambda. Keyword lambda digunakan untuk membuat method sederhana


>>> def penambahan(n):
...     return lambda x: x + n
... 
>>> f = penambahan(3)
>>> f(2)
5
>>> f(25)
28
>>> f(7)
10

TUPLE

Sama seperti list, bedanya tuple memiliki element yang immutable (tidak dapat dirubah) dan dibuat menggunakan kurung sabit ()


>>> tup1 = ('syirik', 'tauhid', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5, 6, 7)
>>> print "tup1[0]: ", tup1[0]
tup1[0]:  syirik
>>> print "tup2[1:5]: ", tup2[1:5]
tup2[1:5]:  (2, 3, 4, 5)

Untuk membuat data menjadi uniqe gunakan perintah set()


>>> set('assalamualaikum')
set(['a', 'i', 'k', 'm', 'l', 's', 'u'])
>>> set([1,2,3,4,6,7,2,3,1])
set([1, 2, 3, 4, 6, 7])

Tipe data kelompok selain list dan tuple adalah dictionary. Yang memiliki perbedaan dan karakteristik seperti dibawah ini


>>> kamus = {'ali': 150, 'umar': 37}
>>> kamus['ali']
150
>>> kamus
{'umar': 37, 'ali': 150}
>>> del kamus['ali']
>>> kamus
{'umar': 37}
>>> kamus['ustman'] = 47
>>> kamus
{'ustman': 47, 'umar': 37}
>>> kamus.keys()
['ustman', 'umar']
>>> 'umar' in kamus
True

Sebagaimana list dan tuple, dictionary juga bisa kita lakukan looping


>>> kamus = {'ustman': 47, 'umar': 37}
>>> for k, v in kamus.iteritems():
...     print k, v
... 
ustman 47
umar 37

Apa yang telah kita ketik pada interpreter dan ketika kita keluar dari interpreter atau menutup terminal kita, maka semua code tersebut akan hilang. Olehkarna itu untuk mencoba baris code yang panjang simpan file tersebut ke dalam text editor dan save dalam format .py

Lalu kita bisa jalankan langsung menggunakan printah python nama_file.py atau melalui interpreter dengan mengimport file yang telah kita bikin sebelumnya dengan keyword import nama_file


def fibo1(n):
    a, b = 0, 1
    while a < n:
        print a,
        a, b = b, a+b
 
def fibo2(n):
    hasil = []
    a, b = 0, 1
    while a < n:
        hasil.append(a)
        a, b = b, a+b
    return hasil

### SIMPAN CODE DIATAS DALAM TEXT EDITOR LALU SAVE DAN BERI NAMA fibonaci.py
### MASUK KE INTERPRETER LALU JALANKAN CODE DIBAWAH INI

>>> import fibonaci
>>> fibonaci.fibo1(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
>>> fibonaci.fibo2(100)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

CLASS

Class dalam python sangat simple pembuatannya, contohnya seperti dibawah ini


>>> class MyClass:
...     def tes(self):
...         return "Assalamu'alaikum"
... 
>>> x = MyClass()
>>> x.tes()
"Assalamu'alaikum"

Alhamdulillah, akhirnya kita telah menyelesaikan materi dasar pemrograman python. Semoga yang sedikit ini bisa menjadi ‘pintu gerbang’ untuk memasuki luasnya dunia python. Teman-teman bisa melanjutkan dengan membaca tutorial dalam bentuk ebook sehingga mendapatkan predikat ‘pawang ular’ πŸ˜› hihihihihi

Barokallohu fiikum ….

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s