Tipe dalam Python

Tipe dalam Python

Artikel ini menjelaskan tipe dalam Python.

YouTube Video

Tipe dalam Python

Modul typing dalam Python digunakan untuk memperkenalkan petunjuk tipe ke dalam Python. Modul ini pertama kali diperkenalkan di Python 3.5 dan digunakan untuk meningkatkan keterbacaan dan pemeliharaan kode. Petunjuk tipe tidak memengaruhi runtime kode tetapi memungkinkan pemeriksaan tipe dengan IDE dan alat analisis statis.

Dasar-Dasar Petunjuk Tipe

Petunjuk tipe memperjelas maksud kode dengan secara eksplisit menentukan tipe fungsi dan variabel. Dalam contoh di bawah ini, tipe ditentukan untuk argumen dan nilai yang dikembalikan.

1def add_numbers(a: int, b: int) -> int:
2    return a + b
3
4result: int = add_numbers(5, 10)
5print(result)  # 15

Dalam kode di atas, a dan b adalah tipe integer (int), dan nilai pengembalian fungsi juga secara eksplisit dinyatakan sebagai integer. Meskipun menggunakan petunjuk tipe, tipe tidak diterapkan secara ketat, tetapi peringatan dapat ditampilkan selama pengembangan jika ada ketidaksesuaian tipe.

Petunjuk Tipe Utama

Modul typing dalam Python menyediakan berbagai kelas dan fungsi untuk mendefinisikan petunjuk tipe. Berikut adalah daftar petunjuk tipe yang umum.

  • int: bilangan bulat
  • str: string
  • float: bilangan pecahan
  • bool: boolean
  • List: daftar
  • Dict: kamus
  • Tuple: tuple
  • Set: set

Tipe List

Tipe daftar ditentukan menggunakan kelas List. Anda juga dapat secara eksplisit menentukan tipe elemen dalam sebuah daftar.

1from typing import List
2
3def sum_list(numbers: List[int]) -> int:
4    return sum(numbers)
5
6print(sum_list([1, 2, 3]))  # 6

Dalam contoh ini, semua elemen dalam daftar diharapkan memiliki tipe int.

Tipe Dict

Tipe kamus didefinisikan menggunakan Dict. Tipe kunci dan nilai dapat ditentukan.

1from typing import Dict
2
3def get_student_age(students: Dict[str, int], name: str) -> int:
4    return students.get(name, 0)
5
6students = {"Alice": 23, "Bob": 19}
7print(get_student_age(students, "Alice"))  # 23

Dalam contoh ini, kamus menggunakan str sebagai tipe kunci dan int sebagai tipe nilai.

Tipe Tuple

Tuple ditentukan menggunakan tipe Tuple. Anda dapat menentukan tipe setiap elemen dalam tuple secara individu.

1from typing import Tuple
2
3def get_person() -> Tuple[str, int]:
4    return "Alice", 30
5
6name, age = get_person()
7print(name, age)  # Alice 30

Di sini, fungsi get_person ditunjukkan mengembalikan sebuah tuple yang berisi sebuah string dan sebuah integer.

Tipe Union

Tipe Union digunakan untuk secara eksplisit menunjukkan bahwa beberapa tipe dapat diterima.

1from typing import Union
2
3def process_value(value: Union[int, float]) -> float:
4    return value * 2.0
5
6print(process_value(10))  # 20.0
7print(process_value(3.5))  # 7.0

Dalam contoh ini, fungsi process_value menerima argumen berupa int atau float dan mengembalikan hasil bertipe float.

Tipe Optional

Tipe Optional digunakan ketika sebuah variabel mungkin bernilai None. Ini disediakan sebagai singkatan untuk Union[Type, None].

1from typing import Optional
2
3def greet(name: Optional[str] = None) -> str:
4    if name is None:
5        return "Hello, Guest!"
6    return f"Hello, {name}!"
7
8print(greet())  # Hello, Guest!
9print(greet("Alice"))  # Hello, Alice!

Di sini, ditunjukkan bahwa ketika name tidak ditentukan, itu dianggap sebagai None.

Tipe Generik

Tipe generik adalah cara untuk secara abstrak merepresentasikan tipe elemen yang dimiliki oleh sebuah struktur data. Dalam modul typing, Anda dapat mendefinisikan tipe generik menggunakan TypeVar.

1from typing import TypeVar, List
2
3T = TypeVar('T')
4
5def get_first_element(elements: List[T]) -> T:
6    return elements[0]
7
8print(get_first_element([1, 2, 3]))  # 1
9print(get_first_element(["a", "b", "c"]))  # a

Dalam contoh ini, get_first_element adalah sebuah fungsi yang mengembalikan elemen pertama dari sebuah daftar, dan berfungsi terlepas dari tipe daftar tersebut.

Alias Tipe

Alias tipe adalah cara untuk menyederhanakan definisi tipe yang kompleks dengan memberikan nama yang jelas.

1from typing import List, Tuple
2
3Coordinates = List[Tuple[int, int]]
4
5def get_coordinates() -> Coordinates:
6    return [(0, 0), (1, 1), (2, 2)]
7
8print(get_coordinates())  # [(0, 0), (1, 1), (2, 2)]

Dalam contoh ini, alias tipe Coordinates didefinisikan untuk merepresentasikan tipe dengan tuple di dalam sebuah daftar.

Ringkasan

typing module dalam Python sangat berguna untuk meningkatkan keterbacaan dan pemeliharaan kode. Dengan menggunakan type hints secara tepat, Anda dapat membantu mencegah ketidaksesuaian tipe dan bug, terutama dalam proyek skala besar atau pengembangan tim. Tipe hanya merupakan alat pendukung pengembangan dan tidak memengaruhi perilaku runtime, sehingga fleksibilitas kode tetap terjaga.

Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.

YouTube Video