Mengenal Dynamic Typing di Python

Python dikenal sebagai bahasa yang menggunakan dynamic typing, di mana tipe variabel hanya diketahui saat program sedang berjalan dan menetapkan nilai ke dalam variabel tersebut.

Pada Python, seringkali tidak perlu melakukan deklarasi variabel sebelum menggunakannya. Cukup dengan menetapkan nilai ke dalam variabel melalui assignment statement. Ini merupakan salah satu cara yang memudahkan dalam mengelola memori di Python.

Kamu dapat mengecek tipe variabel yang sedang digunakan dengan menggunakan fungsi type(), dan memastikan bahwa tipe variabel yang digunakan sesuai dengan yang diharapkan dengan menggunakan metode isinstance(). Kamu akan mempelajari lebih lanjut tentang fungsi-fungsi di Python pada artikel yang membahas tentang fungsi, dan tentang class pada artikel yang membahas pemrograman berorientasi objek.

Contoh :

# Ketika kita memberikan nilai 6 pada variabel x

x = 6  

print(type(x))

# Kemudian Berikan string “hello” pada variabel x di baris selanjutnya

x = 'hello'

print(type(x))

Hasilnya :

<class 'int'>
<class 'str'>

Dynamic Typing pada Python

Setiap bahasa pemrograman memiliki beragam tipe atau kategori obyek dan variabel yang dapat digunakan, serta cara kategori tersebut diperlakukan (sifat, fungsi, dll). Sebagai contoh, sebuah kategori bertipe "numerik" dengan nilai "86" merupakan obyek dari tipe numerik tersebut. Di Python, interpreter hanya menafsirkan baris kode saat program sedang dijalankan, sehingga tipe atau kategori variabel dapat berubah selama siklus program berlangsung. Ini hanya memberikan gambaran tentang dinamisme tipe di Python, kamu akan mempelajari lebih lanjut tentang percabangan pada artikel yang membahas tentang percabangan. Contoh dinamisme tipe di Python dapat dilihat pada contoh berikut :

if False:

    1 + "two"  # This line never runs, so no TypeError is raised

else:

    1 + 2

Hasilnya :

3

Namun jika kamu mencoba menjalankan perintah 1 + "two" :

1 + "two" 

Hasilnya :

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

Pada contoh pertama, pernyataan 1 + "two" tidak pernah dioperasikan sehingga tidak akan menghasilkan error. Namun pada contoh kedua, pernyataan tersebut menghasilkan TypeError karena tidak dapat menggabungkan bilangan integer dan string. Ini hanya memberikan gambaran tentang bagaimana operasi di antara tipe yang berbeda dapat menghasilkan error di Python, kamu akan mempelajari lebih lanjut tentang penanganan kesalahan di artikel yang membahas tentang penanganan kesalahan.

Berikut ini adalah contoh assignment :

thing = "Hello"

type(thing)

Hasilnya :

<class 'str'>
thing = 28.1

type(thing)

Hasilnya :

<class 'float'>

Seperti yang telah dijelaskan sebelumnya, fungsi type() dapat digunakan untuk mengetahui tipe variabel saat ini. Contoh di atas menunjukkan bahwa tipe dari variabel thing dapat berubah-ubah dan Python dapat menerima perubahan tersebut saat program dijalankan.

Python secara default menggunakan dynamic typing, tetapi sejak versi 3.6 Python juga mendukung static typing. PEP 484 menambahkan fitur type hints yang memungkinkan kamu melakukan pemeriksaan tipe secara statis di Python.

Static typing seperti yang dijelaskan dalam PEP 484, 526, 544, 560, dan 563 dibangun secara bertahap di atas runtime Python yang ada, tetapi terbatas oleh sintaksis dan perilaku runtime yang sudah ada. Berbeda dengan bahasa pemrograman lain, type hints di Python tidak menjadikan sebuah variabel menjadi statis, tetapi hanya memberikan saran tipe. Untuk informasi lebih lanjut tentang static type hints, kamu dapat membaca PEP 484.

Duck Typing

Python juga sering dikaitkan dengan metode duck typing, yang merujuk pada prinsip :

"Jika suatu objek bisa mengerjakan sesuatu yang kamu harapkan, maka tidak peduli apa tipe aslinya, itu dapat digunakan"

Duck typing adalah sebuah konsep di mana tipe atau kelas dari sebuah obyek tidak lebih penting daripada metode atau perilaku yang dimilikinya. Duck typing ini tidak terkait langsung dengan dynamic typing atau static typing, hanya memberikan fleksibilitas bagi developer untuk tidak perlu memperhatikan tipe atau kelas dari sebuah obyek, yang lebih penting adalah kemampuannya untuk melakukan operasi yang diinginkan. Sehingga untuk memeriksa tipe sebuah obyek, kamu cukup memastikan metode atau perilaku yang dimilikinya. Sebagai contoh, fungsi len() digunakan untuk mengetahui panjang string, tetapi tidak berlaku untuk variabel numerik seperti integer.

x=333

len(x)

Hasilnya :

Traceback (most recent call last):
  File “”, line 1, in
TypeError: object of type ‘int’ has no len()

Dengan mengenal dynamic typing di Python, kamu dapat memahami bagaimana cara kerja tipe data di Python. Dynamic typing memungkinkan kamu untuk mengubah tipe data dari suatu variabel sesuai dengan kebutuhan program kamu, dan ini merupakan fitur yang bermanfaat dalam mempermudah pemrograman dengan Python. Namun, perlu diingat bahwa dynamic typing juga dapat menyebabkan error di program jika tidak diperhatikan dengan baik. Selain itu, Python juga mendukung static typing sejak versi 3.6 melalui fitur type hints, yang memungkinkan kamu melakukan pemeriksaan tipe statis di Python. Dengan demikian, dynamic typing merupakan fitur yang harus dipahami oleh setiap programmer Python agar dapat memanfaatkan kelebihannya secara efektif.

Next Post Previous Post
No Comment
Add Comment
comment url