Fungsi print() di Python 3.0.1

Di Python versi 3.0.1 program sederhana untuk menulis deret Fibonacci hingga batas n misalnya :

>>> def fibonacci(n):
… … … a, b = 0, 1
… … … while b < n:
… … … … print(b, end=’ ‘)

… … … … a, b = b, a+b
… … … print()

>>> fibonacci(2000)

Hasilnya bila dijalankan :

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

Program di atas ditulis menggunakan print(), yang di versi 2.5, misalnya, print lebih dapat dikatakan sebagai procedure dengan statement print alih-alih menyebutnya sebagai function yang benar-benar fungsi. Alasannya, karena fibonacci() didefiniskan tidak me-return value. Pada kenyataannya ia me-return value, yaitu none (nama builtin) yang baru bisa disadari setelah menggunakan print().

Oleh karena itu, bila program di atas dijalankan di versi 2.5.1 akan muncul pesan error sebab di versi ini tidak mengenal karakter standard output end=’\n’. Di versi 2.6.2 program di atas masih bisa berjalan sebagimana di versi 3.0.1. Karena statement print telah dihilangkan dan diganti menjadi fungsi builtin print() :

print([object, …][, sep=’ ‘][, end=’\n’][, file=sys.stdout])

Artinya menulis objek (value) ke stream file, dipisahkan oleh sep, dan diikuti dengan end. sep dan end harus dalam bentuk string, bisa juga none, yang artinya menggunakan nilai default. Bila tidak diberikan objek, print() hanya menulis end saja.

Di Python, kadang-kadang suka pusing membedakan antara procedure dan function. Kenyataanya, function juga bisa dibangun melalui abstraksi procedure. Pada dasarnya, procedure dan function adalah dua hal yang berbeda, tapi keduanya disebut sebagai functions di Python. Perbedaanya, function bisa me-return value, sedangkan procedure tidak me-return value. Abstraksi lain (yang mungkin diilhami dari bahasa lain) menyatakan, print juga sebenarnya me-return value, cuma value-nya none. Membingungkan, bukan?

Karena itu di Python 2.6 sampai 3.0 sekarang ini, statement print termasuk salah satu stumbling block yang harus dibenahi dari versi 2.5 sebelumnya. Karena itu di Python 3.0, statement print dihilangkan dan diganti dengan fungsi print(). Jadi, print() Is a function di Python 3.0.1.

Contoh lainnya, program sederhana berikut :

>>> def kegiatanku(ngapain):
… … … print “saya sedang”, ngapain

>>> kegiatanku(“belajar”)
saya sedang belajar

Bila dijalankan di Python 2.5.1, hasil print out-nya jalan sesuai dengan yang diharapkan. Tetapi bila dijalankan di Python 2.6 atau 3.0 akan muncul pesan : SyntaxError: invalid syntax. Untuk itu, di Python 3.0 program di atas harus ditulis menjadi :

>>> def kegiatanku(ngapain):
… … … print(“saya sedang”, ngapain)

>>> kegiatanku(“belajar”)
saya sedang belajar

Untuk melihat hal baru lainnya di Python 3.0, silahkan kunjungi situs web Python, atau klik di sini.

Alternatif lain untuk menulis program deret Fibonacci, bila tidak mau menggunakan print() bisa juga menggunakan fungsi yang me-return value :

>>> def fibo(n):
… … … hasil = []
… … … a, b = 0, 1
… … … while b < n:
… … … … hasil.append(b)
… … … … a, b = b, a+b
… … … return hasil

>>> f2000 = fibo(2000)
>>> f2000
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]

hasil.append() di atas maksudnya adalah memangggil sebuah method dari objek list hasil, yang equivalen dengan hasil = hasil + [b], artinya menambah b di akhir objek list hasil.

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