Rabu, 31 Desember 2008

Mengubah .py Menjadi .exe

Script yang Anda buat di python tidak bisa dijalankan pada komputer yang tidak mempunyai python interpreter. Nah, untuk menjalankannya, perlu diubah menjadi file .exe.
Saya menggunakan program py2exe untuk melakukannya dan Anda dapat men-downloadnya di sini.

Nah, untuk mengubah file .py menjadi .exe, kita perlu membuat script setup.py.
Isi dari script tersebut adalah sebagai berikut:

from distutils.core import setup

import py2exe

setup(console=['mypyscript.py'])


Kemudian jalankan command prompt. Ketik seperti di bawah:

C:\Python26> python setup.py install

Setelah itu, ketik lagi:

C:\Python26> python setup.py py2exe

Dan biarkan command prompt melakukan tugasnya..
Setelah itu selesai, maka file .exe Anda telah selesai dibuat.
File Anda disimpan di sebuah folder baru "dist".

Untuk lebih jelasnya, bisa dilihat di halaman tutorial py2exe.

Senin, 29 Desember 2008

Nantikan! Program Penyetaraan Reaksi Online!

Karena sesuatu dan lain hal, saya berinisiatif untuk membuat program penyetaraan reaksi kimia (seperti blog di bawah) secara online.
Untuk itu, program tersebut perlu diterjemahkan dari bahasa python ke javascript.
Target saya adalah selesai sebelum tanggal 3 Januari 2009.

Nantikan tanggal mainnya!

Menyetarakan Reaksi Kimia dengan Python

Sekarang coba kita lihat fungsi python yang lebih applicable, menyetarakan reaksi kimia.
Misalkan kita diberikan sebuah reaksi kimia yang panjang seperti ini:

As2S3 + KMnO4 + H2SO4 => H3AsO4 + MnSO4 + K2SO4 + H2O

dan kemudian kita disuruh untuk menentukan koefisien masing-masing molekul. Persamaan di atas mempunyai 6 atom yang berbeda, jadi akan menghasilkan 6 variabel dan 6 persamaan.
Hal yang sangat melelahkan untuk menyelesaikan persamaannya...

Kenapa tidak coba buat programnya saja? Dengan membuat program, kita tidak butuh waktu lebih dari setengah menit untuk menyelesaikan reaksi tersebut (tinggal diinput saja).

Maka dari itu, penulis sudah membuat sebuah program yang ditulis dengan python. Inilah sekilas dari program tersebut.

Jika Anda menginginkannya, Anda dapat men-download-nya:
Source Code (py file)
Executable Zip file (compiled by py2exe)

Sabtu, 27 Desember 2008

Trik "and-or"

Salah satu keunggulan python adalah operasi boolean tidak hanya mengembalikan nilai True atau False saja, tapi bisa juga mengembalikan sebuah nilai.
Dalam python, semua objek yang mempunyai nilai dianggap True, dan yang tidak mempunyai nilai dianggap False (contoh: 0, string kosong, list kosong, dictionary kosong, dll). Perhatikan contoh di bawah.

>>> "String" and 0 # T and F => F
0

>>> "" or [1,2,3] # F or T => T

[1, 2, 3]


Akan tetapi, bagaimana jika kedua operan tersebut sama-sama True atau sama-sama False?
*Untuk operasi and, akan mengembalikan nilai yang berada di kanan jika kedua operan True.
*Untuk operasi or, akan mengembalikan nilai yang berada di kiri jika kedua operan True.
*Untuk kedua operasi, akan mengembalikan nilai yang sebaliknya jika kedua operan False.

>>> "String" and 123 # T and T => T
123

>>> 23 or [1, 5, 3] # T and T => T

23

>>> "" or 0 # F or F => F

0


Trik yang sebenarnya dimulai di sini. Dengan menggunakan sifat di atas, kita dapat membuat operasi if-else menjadi satu baris. Perhatikan contoh berikut.

>>> 1 > 0 and "T" or "F"
'T'

>>> 9 < 0 and "Right" or "Wrong"
'Wrong'


Mungkin Anda sudah bisa mengerti, bentuk umumnya adalah seperti ini condition and ifTrue or ifFalse. Akan tetapi, ini hanya berlaku jika ifTrue atau ifFalse mempunyai nilai (bukan 0, bukan string kosong, dll).
Bagaimana jika kita menginginkan nilai ifTrue atau ifFalse bernilai 0? Mudah, cukup dengan membuatkannya sebuah list, [0] . Sehingga list tersebut bukan lagi sebuah list kosong.

Selamat mencoba!

Operasi pada String

Kita telah membahas string secara dasar, mulai dari membuat string, indexing, hingga slicing string. Sekarang kita akan membahas lebih dalam tentang string, yaitu metode-metode dan operasi-operasi yang dapat dilakukan string. Metode-metode tersebut dapat Anda lihat dengan mengetikkan help(str)pada interpreter.

Dalam python, kita dapat melakukan operasi penggabungan/concatenate string, yaitu dengan menggunakan operasi tambah (+). Perlu diperhatikan bahwa dalam string, s1+s2 tidak sama dengan s2+s1. Perhatikan contoh di bawah.

>>> s1 = "This is "
>>> s2 = "concatenated string"
>>> s1 + s2
'This is concatenated string'
>>> s2 + s1
'concatenated stringThis is '

Selain itu, kita juga dapat menggunakan operasi kali (*) untuk mengulangi sebuah string s sebanyak n kali, yaitu dengan mengetikkan n*s atau s*n. Ini sama saja dengan s+s+s+...+s sebanyak n kali.

>>> s = 'ku'
>>> s*2
'kuku'
>>>3*s
'kukuku'

Selain operasi-operasi di atas, kita juga dapat melakukan beberapa metode pada string. Di antaranya adalah count, find, index, dan split.
Metode s.count(sub) menghitung berapa banyak kemunculan substring sub dalam suatu string s.
Metode s.find(sub) mencari index terendah substring sub dalam string s. Jika tidak ada, akan mengembalikan -1.
Metode s.index(sub) sama dengan metode find, akan tetapi metode ini menghasilkan ValueError jika tidak menemukan substring sub tersebut.
Dan metode s.split(sep) adalah memisahkan suatu string s menjadi list beberapa string yang lebih kecil yang awalnya terpisahkan oleh sep. Jika argumen sep tidak diberikan, maka nilai sep akan diset sebagai spasi (' ').

>>> s = "This is an example string"
>>> s.count("is")
2
>>> s.index("s")
3
>>> s.find("z")
-1
>>> s.split()
['This', 'is', 'an', 'example', 'string']

Masih banyak lagi metode-metode string yang dapat Anda gunakan, Anda dapat melihatnya dengan mengetik help(str) pada interpreter dan mencoba-cobanya sendiri.

Jumat, 26 Desember 2008

String pada Python

Untuk membuat string pada python, cukup dengan menggunakan tanda kutip ' atau ". Kedua tanda kutip ' atau " dapat dipakai, asalkan tanda kutip pada awal dan akhir string sama. Pemakaian tanda kutip yang berbeda pada awal dan akhir string dapat menyebabkan SyntaxError pada interpreter. End of Line pada string menggunakan simbol "\n", sedangkan tab menggunakan "\t". Berikut adalah contoh-contoh string yang benar.

>>> a = "This uses double-quote"
>>> b = 'This uses single-quote'

>>> c = "Don't go anywhere!"


Untuk membuat string yang terdiri dari beberapa baris, Anda dapat menggunakan tanda kutip sebanyak tiga kali, baik itu single-quote ataupun double-quote.

>>> d = """This is
... multiple-lines
... string"""


Karakter-karakter pada string dapat dipanggil dengan melakukan indexing string. Yaitu dengan menggunakan tanda kurung siku '[' dan ']', seperti berikut varName[index]. Perlu diingat bahwa indeks dalam python selalu dimulai dari 0.

>>> c[0] # lihat variabel c di atas
'D'


Selain itu, dapat pula dilakukan slicing pada string. Yaitu dengan mengetik sesuai pola berikut varName[beginIndex : endIndex]. String yang dikembalikan adalah substring dari index beginIndex hingga endIndex-1. Atau dengan kata lain, karakter yang berada di endIndex tidak termasuk dalam slicing tersebut.
Jika kita tidak menuliskan endIndex-nya, maka yang dikembalikan adalah substring dari beginIndex hingga akhir dari string tersebut. Begitu juga jika kita hanya menuliskan endIndex-nya, yang dikembalikan adalah substring dari awal string hingga endIndex-1.

>>> b[2:6] # mengambil dari 2 hingga 5
'is u'
>>> b[5:] # mengambil dari 5 hingga akhir string
'uses single-quote'
>>> b[:7] # mengambil dari awal string hingga 6
'This us'


Anda juga dapat menuliskan index yang bernilai negatif. Jika -1, maka yang terpanggil adalah karakter pada akhir string. Untuk lebih jelasnya, lihat penentuan index untuk string "String" di bawah ini.

 S  t  r  i  n  g  S  t  r  i  n  g
-6 -5 -4 -3 -2 -1  0  1  2  3  4  5


Semua yang Anda telah dapatkan di atas, tentunya akan lebih baik jika Anda mencobanya sendiri. Akhir kata, selamat mencoba!

Rabu, 24 Desember 2008

List dalam Python

Mengingat banyaknya pembaca yang mungkin belum mengetahui betul tentang python, maka lebih baik saya membuat sebuah tutorial singkat python. Dalam tulisan ini, saya akan membahas tentang list dalam python.
List adalah kumpulan objek-objek yang tersusun teratur (ordered). Cara membuat list adalah cukup dengan menggunakan tanda kurung siku '[' dan ']'. Perhatikan contoh di bawah.

>>> li = [2, 3, 1, 5] # membuat sebuah list
>>> li # memanggil nilai dari sebuah list
[2, 3, 1, 5]

Objek-objek yang berada dalam satu list tidak harus mempunyai tipe yang sama. Sehingga dalam satu list bisa saja terdapat integer, string, function, atau list sendiri dalam satu list utama sekaligus.
Untuk memanggil objek dari sebuah list, dapat dilakukan dengan cara mengindeks dalam list menggunakan tanda kurung siku, seperti contoh di bawah.

>>> li = [23, 'A', 'abc', [1, 3, 9]]
>>> li[0] # memanggil objek yang berindeks 0

23

>>> li[2] # memanggil objek yang berindeks 2

'abc'

>>> li[3] # and so on...

[1, 3, 9]


Perhitungan indeks dalam python selalu diawali dengan nol, bukan satu. Jadi jika kita memanggil li[0], yang terpanggil adalah objek pertama dari list tersebut. Begitu juga jika kita memanggil li[2], yang terpanggil adalah objek ketiga dari list tersebut.

Operasi yang dapat dilakukan pada list ada banyak. Di antaranya adalah append, remove, pop, sort, reverse.
Append adalah menambahkan objek baru pada sebuah list.
Remove adalah menghapus sebuah objek pada sebuah list.
Pop adalah menghapus sebuah objek yang mempunyai indeks yang sesuai dan mengembalikan nilainya.
Sort adalah mengurutkan list sesuai dengan fungsi cmp yang diberikan. Jika tidak diberikan, maka list akan diurutkan dari yang kecil ke yang besar.
Reverse adalah membalikkan urutan list.

>>> li = [12, 35, 44, 35] # membuat sebuah list
>>> li.append(21) # [12,35,44,35,21]

>>> li.remove(35) # [12,44,35,21]

>>> li.pop(0)
# meng-pop anggota yang berindeks 0
12

>>> li.sort()
# [21,35,44]
>>> li.reverse()
# [44,35,21]

Sebenarnya operasi-operasi dan fitur-fitur dari list masih sangat banyak yang belum dijelaskan pada tulisan ini. Akan tetapi, Anda dapat mencoba-cobanya sendiri, membaca dari berbagai sumber, atau menggunakan fungsi help dengan mengetik help(list) pada interpreter.

Akhir kata, selamat belajar!

Kamis, 18 Desember 2008

Python - Scripting Language

Python adalah salah satu bahasa program yang terkenal. Python termasuk interpreter, sebuah program yang dapat mengerti bahasa pengguna.

Banyak keunggulan yang dimiliki python, salah satunya adalah mempunyai sintaks yang singkat. Tidak perlu berbasa-basi dalam menuliskan program. Sebagai contoh, untuk membuat program yang menampilkan segitiga dapat dilakukan hanya dalam beberapa baris seperti di bawah.
>>> for i in range(3):
...     print "#" * (i+1)

Bandingkanlah dengan program yang ditulis menggunakan bahasa pascal:
var i, j : byte ;
begin
    for i:=1 to 3 do begin
        for j:=1 to i do write('#');
    end;

end.
Kedua program di atas sama-sama menghasilkan output:
#
##

###
Akan tetapi, seperti yang dapat Anda lihat, dengan python Anda dapat menulis dengan lebih singkat. Python tidak memerlukan introduction variabel-variabel yang akan dipakai (seperti var pada pascal). Sehingga Anda dapat meng-assign suatu variabel tanpa introduction terlebih dahulu.

Keunggulan lain yang dimiliki python adalah Anda dapat mencoba ide-ide Anda langsung pada Python Shell, tanpa harus di-compile terlebih dahulu. Hal ini sangat menghemat waktu yang digunakan.

Untuk melakukan pengkodean python, Anda tidak harus menulis pada suatu program khusus. Anda dapat melakukannya dengan menggunakan text editor apapun. Cukup dengan menuliskan kode-kodenya dan kemudian di-save dengan menggunakan ekstensi .py. Anda juga dapat melakukan pengkodean pada suatu IDE (Integrated Development Environment) khusus python agar pengkodean jadi lebih mudah.

Terakhir, jika Anda tertarik untuk menggunakan python, Anda dapat men-download secara gratis di sini. Dan Anda juga dapat melihat dokumentasi python di sini.

Selamat mencoba!