Perbedaan Python 2 dan Python 3 Serta Perkembangannya - Open Source Lab -->

Perbedaan Python 2 dan Python 3 Serta Perkembangannya

Python 2 vs Python 3 perbedaan antara Python 2 dan Python 3

Artikel kali ini akan lanjut membahas mengenai perkembangan dan perbedaan antara Python 2 dan Python 3. Beberapa pembahasan mengenai Python sudah saya tulis di artikel sebelumnya yaitu Pemerograman Pyhton di Linux dan Pemerograman Python di Windows.

Python merupakan bahasa pemrograman yang sangat sederhana, mudah dibaca (human readable), dan dapat dipakai untuk berbagai macam keperluan. Python sendiri kini banyak dipakai mulai dari web, IoT, keperluan Big Data dan Machine Learning. Python dinamai oleh penemunya – Guido Van Rossum – dari nama grup komedi dari tanah Inggris Raya yaitu Monty Python. Hal ini selaras dengan misi utama Python untuk membuat pemula belajar bahasa pemrograman dengan hati senang (fun), maka dari itu, dibandingkan bahasa pemrograman lain, Python sangat ramah untuk pemula.

Bahasa pemrograman Python dapat digunakan dengan berbagai paradigma. Mulai dari scripting sederhana hingga object oriented sehingga sangat cocok untuk penggunaan sehari – hari. Python dipakai diberbagai industri, seperti misalnya industri aeronautica, bahkan studio besar seperti Industrial Light & Magic yang notabene subsidiari dari Lucasfilm (Disney) – penggarap VFX film besar seperti Avenger dan sekuel Star Wars. Sebagian besar industri animasi terlebih pengguna Autodesk Maya memang menggunakan Python untuk membantu pekerjaan.

Python dikembangkan pertama kali oleh Guido van Rossum pada akhir tahun 1980 dan dipublikasikan pertama kali pada 1991. Disebut sebagai penerus pemrograman ABC, Python pada awal rilis sudah disertai dengan fungsi seperti exception, function bahkan class dengan inheritance. Ketika itu sebuah Usernet newsgroup bernama comp.lang.python dibuat di 1994, grup ini membentuk langkah awal untuk Python sebagai salah satu bahasa pemrograman yang sangat populer untuk pengembangan Open Source Software.

Sebelum kita membahas perbedaan dari Python 2 dan Pyhton 3, mari kita lihat latar belakang rilis major Python.

Python 2

Dipublikasikan pada akhir tahun 2000, Python 2 dinilai lebih transparan dan inklusif untuk pengembangan software ketimbang versi sebelumnya. Hal ini didukung dengan adanya PEP (Python Enhancement Proposal) sebuah spesifikasi teknis yang menjadi tuntunan informasi untuk penggunanya dan menggambarkan fitur baru pada Python itu sendiri.

Sebagai tambahan, Python 2 dilengkapi dengan berbagai fitur programatikal seperti cycle-detecting garbage collector untuk mengotomasi manajemen memori, peningkatan dukungan untuk Unicode, list comprehension untuk membuat sebuah list berdasarkan list yang sudah ada. Unifikasi pada tipe data Python dan class ke satu hirarki terjadi pada rilis Python 2.2

Python 3

Python 3 diharapkan sebagai masa depan Python dan merupakan versi yang saat tulisan ini dibuat masih aktif dikembangkan. Python 3 sendiri adalah versi dengan banyak perubahan yang dirilis akhir tahun 2008. Fokus dari Python 3 adalah untuk melakukan perapian pada codebase dan menghapuskan duplikasi (redundancy). Perubahan terbesar pada Python 3 termasuk memasukkan statemen print ke dalam built-in function.

Awalnya, Python 3 mengalami hambatan pada pengadopsiannya. Itu akibat dari tidak adanya backwards compatibility dengan Python 2. Hal ini membuat pengguna Python sangat berat hati untuk pindah ke versi 3 ini. Tambahannya, banyak sekali library yang hanya tersedia untuk Python 2., tapi setelah tim pengembangan di balik Python 3 telah berulang kali menjelaskan bahwa dukungan terhadap Python 2 akan segera dihentikan, dan semakin banyak libary disalin ke Python 3, maka penerapan Python 3 semakin lama semakin meningkat.

Python 2.7

Dengan dirilisnya Python 3 pada tahun 2008, Python 2.7 dirilis pada Juli 2010 dan direncanakan sebagai rilis 2.x terakhir. Misi dibalik Python 2.7 adalah untuk membuat pengguna Python 2 dengan mudah berpindah ke Python 3 dengan mempersiapkan beberapa kompatibilitas diantara keduanya. Kompatibilitas termasuk peningkatan modul untuk 2.7 seperti unittest untuk mendukung otomasi tes, argparse untuk parsing opsi command-line dan tidak lupa collection dengan class yang lebih baik.

Karena Python 2.7 berada pada posisi yang unik, di antara iterasi Python 2 dan Python 3, maka versi ini menjadi versi yang terbanyak dipergunakan, bahkan jadi versi yang cukup populer untuk dipergunakan dikalangan pengembang. Python 2.7 akan segera dihentikan dukungannya pada tahun 2020.

Perbedaan mendasar antara Python 2 dan Python 3

Terdapat beberapa perbedaan antara Python 2 dan Python 3 yaitu pada fungsi print, modul __future__ , unicode, dan pembagian pada integer.

Fungsi Print

Pada Python2, perintah print dapat dijalankan tanpa harus menggunakan tanda kurung. Bisa dikatakan print diperlakukan seperti statemen. Terdapat beberapa printah print pada Python 2:

print 'Python', python_version()
print 'Hello World'
print ('Hello World')
print "My Name",; print 'Print my name'

Sedangkan pada Python 3, print diperlakukan sebagai function

print("Hello World")

Kalian bisa mencoba langsung menggunan IDLE Python dan coba perintah diatas menggunakan Python 2 maupun Python 3. Hal yang perlu diingat, penggunaan print()  juga kompatibel dengan Python 2.7.

Modul __future__

Penggunaan modul __future__ ini agar memungkinkan pengguna Python 2 bisa menjalankan program Python 3. Caranya yaitu cukup menambahkan modul Python 3 di Python 2.

from __future__ import division

Selain division masih ada beberapa modul Python 3 yang bisa digunakan untuk Pyhton 2, diantaranya :

nested_scopes    # statically Nested Scopes
generators       # simple generators
division         # changing the division operator
absolute_import  # imports: multi-line and absolute/relative
with_statement   # the "with" statement
print_function   # make print function
unicode_literals # Byte literals in python 3000

Untuk lebih jelasnya bisa dilihat di sumber artikel :

1. https://docs.python.org/2/library/__future__.html
2. https://docs.python.org/2/library/__future__.html#module-__future__

Pembagian pada Integer

Pada Python 2, semua tipe data angka yang tidak mengandung desimal akan diperlakukan sebagai integer. Terlihat mudah pada awalnya, ketika mencoba untuk membagi kedua integer akan didapatkan tipe data float.

3 / 2 = 1.5

Python 2 menggunakan floor division atau dibulatkan ke nilai paling rendah misalnya 1.5 jadi 1, 2.6 jadi 2 dan seterusnya. Pada Python 2.7 akan menjadi seperti ini

x = 3 / 2
print a
#Output
1

Untuk desimal maka tambahkan jadi seperti ini 3.0 / 2.0  untuk mendapatkan hasil 1.5. Namun pada Python 3, pembagian pada bilangan integer lebih intuitif :

b = 3 / 2
print(b)
#Output
1.5

Kita juga masih bisa melakukan 3.0 / 2.0  untuk mendapatkan 1.5 namun untuk mendapatkan floor division maka pada Python 3 gunakan //  :

b = 3 // 2
print(b)
#Output
1

Jadi fitur pada Python 3 tidak kompatibel dengan Python 2.7

Dukungan Unicode

Ketika bahasa pemrograman menangani tipe data string (yang mana merupakan sekumpulan karakter), mereka bisa melakukan beberapa cara berbeda sehingga komputer dapat mengubah angka ke huruf dan simbol lain. Python 2 menggunakan alfabet ASCII secara default, sehingga ketika kita mengetik "Halo!"  maka Python 2 menangani string sebagai ASCII. Terbatas pada beberapa ratus karakter, ASCII mungkin bukan pilihan yang fleksibel untuk menangani proses encoding terutama yang non English.

Untuk menggunakan unicode yang lebih luwes, mendukung lebih dari 128,000 karakter maka kita harus mengetik u"Halo!" , dengan tambahan u  di depannya yang mana berarti Unicode.

Python 3 menggunakan Unicode secara default, yang mana menyelamatkan programmer dari tambahan kode lagi, lebih hemat waktu dan mudah untuk diisikan dan ditampilkan. Karena Unicode mendukung berbagai karakter linguistik yang beragam termasuk menampilkan emoji, penggunaan karakter secara default dengan encoding memastikan perangkat mobile didukung oleh program yang kita buat.

Jika kita ingin kode Python 3 kita mendukung Python 2, tambahkan u di depan string.

Kelanjutan Pengembangan

Selain perbedaan mendasar antara Python 2 dan Python 3 secara sintatikal, fakta lain adalah Python 2.7 akan dihentikan dukungannya per tahun 2020 dan Python 3 akan terus dikembangkan dengan fitur yang lebih banyak lagi, dan tentu saja yang lebih penting adalah perbaikan dari bug dan performa. Pengembangan saat ini telah mendukung format string secara literal, kustomisasi pembuatan class secara sederhana dan sintaksis yang lebih bersih dan rapi untuk menangani perkalian matriks.

Pengembangan Python 3 akan terus berlangsung, hal ini berarti pengembang software akan dengan nyaman menggunakan Python 3 karena terus didukung oleh komunitas dengan jangka panjang. Tentu saja hal ini meningkatkan kinerja programmer dan kualitas program yang lebih baik.

0 Response to "Perbedaan Python 2 dan Python 3 Serta Perkembangannya"

Post a Comment