# Versi Python: Python 2 dan 3, yang baru di 3.10–3.15 dan versi mana yang sebaiknya dipasang

URL: https://skillaria.top/id/guides/python/versi-python

Cabang Python yang masih aktif adalah Python 3; versi stabil terbaru adalah Python 3.15 (rilis 9 Oktober 2026). Python 2 tidak didukung sejak 2020. Versi baru keluar setiap Oktober dan mendapat pembaruan sekitar lima tahun, jadi untuk proyek baru pasang 3.x terbaru, dan cek versi Anda dengan perintah python3 --version.

Saat ini cabang bahasa yang aktif hanya satu — Python 3. Versi stabil terbarunya adalah Python 3.15, dirilis 9 Oktober 2026, sedangkan Python 2 resmi berakhir sejak 2020. Di bawah ini dijelaskan perbedaan versi Python, apa yang baru di masing-masing versi 3.10–3.15, mana yang sebaiknya dipasang, dan cara mengecek versi yang sudah ada di komputer Anda.

## Cara penomoran versi Python

Nomor versi terdiri dari tiga angka: `3.15.0`. Angka pertama adalah versi mayor (cabang bahasa), angka kedua adalah versi minor, di mana fitur baru muncul, dan angka ketiga adalah nomor perbaikan yang hanya berisi bugfix. Ketika orang berbicara tentang «versi Python», biasanya yang dimaksud adalah versi minor: 3.10, 3.11, 3.12, dan seterusnya.

Sejak 2019 berlaku siklus tahunan (PEP 602): versi minor baru keluar setiap Oktober. Sekitar enam bulan sebelum rilis, muncul alpha, lalu beta dan release candidate, dan setelah rilis muncul perbaikan seperti 3.15.1, 3.15.2. Memperbarui di antara patch ini aman: perilaku bahasa tidak berubah di versi patch.

Dari sini juga muncul kebingungan saat mencari: «python 311» dan «python 3.11» adalah hal yang sama, yaitu versi 3.11. Nomor ini bukan pecahan desimal, sehingga 3.10 lebih baru daripada 3.9, dan 3.15 lebih baru daripada 3.2.

## Python 2 dan Python 3: apa bedanya

Python 3 dirilis pada 2008 dan sengaja memutus kompatibilitas mundur untuk memperbaiki keputusan lama dalam bahasa. Karena itu kode untuk Python 2 sering tidak berjalan di Python 3 tanpa perubahan. Versi terakhir cabang kedua adalah 2.7; dukungannya berakhir 1 Januari 2020, dan rilis final 2.7.18 keluar pada April 2020.

| Hal | Python 2 | Python 3 |
| --- | --- | --- |

| Cetak | `print "hi"` — pernyataan | `print("hi")` — fungsi |

| String | byte secara default, Unicode — `u"..."` | `str` — selalu Unicode, byte — `bytes` |

| Pembagian | `7 / 2` menghasilkan 3 | `7 / 2` menghasilkan 3.5, bulat — `7 // 2` |

| Input | `raw_input()` | `input()` |

| Rentang | `range` membuat list, `xrange` — lazy | `range` lazy |

| Dukungan | tidak ada sejak 2020 | versi baru setiap tahun |

Jika Anda menemukan tutorial atau jawaban dengan `print` tanpa tanda kurung, itu Python 2 — materinya sudah usang. Tidak ada gunanya mempelajari cabang kedua sekarang: tidak lagi dipasang di sistem baru, pustaka sudah lama berhenti mendukungnya, dan pengetahuannya hanya berguna untuk memindahkan kode lama.

## Yang baru di Python 3.10–3.15

Berikut hal terpenting di setiap versi, yaitu yang mengubah kode sehari-hari. Daftar perubahan lengkap ada di bagian What's New dalam dokumentasi resmi.

### Python 3.10 (Oktober 2021)

- Pencocokan pola `match`/`case` (PEP 634) — membaca struktur data tanpa rangkaian `if`/`elif`.
- Gabungan tipe dengan garis tegak: `int | None` alih-alih `Optional[int]` (PEP 604).
- Beberapa context manager dalam satu `with` dengan tanda kurung.
- Pesan error sintaksis yang jauh lebih jelas.

```
def describe(point):
    match point:
        case (0, 0):
            return "titik asal"
        case (x, 0):
            return f"pada sumbu X: {x}"
        case _:
            return "di tempat lain"

print(describe((3, 0)))  # pada sumbu X: 3
```

### Python 3.11 (Oktober 2022)

- Kecepatan: proyek Faster CPython mempercepat interpreter rata-rata sekitar seperempat, dan pada sebagian tugas lebih besar lagi.
- Penunjuk traceback yang presisi: panah `^^^^` menunjukkan ekspresi mana di baris itu yang gagal (PEP 657).
- Grup exception dan `except*` (PEP 654), catatan pada exception lewat `add_note()`.
- Modul `tomllib` untuk membaca TOML — misalnya `pyproject.toml`.

### Python 3.12 (Oktober 2023)

- Sintaks generik baru: `def first[T](items: list[T]) -> T` dan kata kunci `type` untuk alias tipe (PEP 695).
- f-string dengan tata bahasa penuh (PEP 701): di dalamnya boleh memakai tanda kutip yang sama, baris baru, dan komentar.
- Modul `distutils` yang usang dihapus dari pustaka standar.
- Saran yang lebih rinci pada error, misalnya «lupa mengimpor modul?».

```
type Pair = tuple[int, int]

def first[T](items: list[T]) -> T:
    return items[0]

songs = ["a", "b"]
print(f"Pertama: {first(songs)!r}, total {len(songs)}")
print(f"{"di dalam tanda kutip"}")  # berfungsi mulai 3.12
```

Omong-omong, pertanyaan yang sering muncul «f-string sejak versi berapa»: f-string sudah ada sejak Python 3.6, sedangkan kebebasan memakai tanda kutip dan baris baru di dalam kurung kurawal ditambahkan di 3.12.

### Python 3.13 (Oktober 2024)

- Konsol interaktif baru: warna, pengeditan multibaris, riwayat, serta perintah `exit` dan `help` tanpa tanda kurung.
- Build eksperimental tanpa GIL (free-threaded, PEP 703) dan JIT compiler eksperimental (PEP 744).
- Modul lama yang tidak lagi dipakai, seperti `cgi` dan `telnetlib`, dihapus (PEP 594).
- Masa perbaikan bug untuk versi baru diperpanjang menjadi dua tahun.

### Python 3.14 (Oktober 2025)

- Template string, t-string: `t"Halo, {name}"` mengembalikan objek template, bukan string jadi, sehingga bisa diproses dengan aman (PEP 750).
- Evaluasi anotasi yang ditunda (PEP 649) — lebih sedikit masalah dengan tipe yang dideklarasikan di bawah dalam file.
- Build tanpa GIL tidak lagi eksperimental dan mendapat dukungan resmi.
- Modul `compression.zstd`, penyorotan sintaksis di konsol, dan `except A, B:` tanpa tanda kurung.

### Python 3.15 (9 Oktober 2026)

- Lazy import `lazy import` (PEP 810): modul dimuat saat pertama kali diakses, bukan saat start. Pada pengukuran di kursus, skrip dengan `lazy import pandas` start dalam 14 ms, bukan 280 ms.
- Dictionary tidak dapat diubah bawaan `frozendict` (PEP 814).
- Unpacking dalam list comprehension: `[*g for g in groups]` (PEP 798).
- Profiler sampling Tachyon di pustaka standar (PEP 799).
- UTF-8 secara default saat bekerja dengan file (PEP 686) — tidak ada lagi kejutan encoding di Windows.
- Saran «Did you mean» baru pada pesan error.

```
lazy import json                    # PEP 810
cfg = frozendict(limit=500)         # PEP 814
flat = [*g for g in [[1, 2], [3]]]  # PEP 798 -> [1, 2, 3]
print(flat, cfg["limit"])
# python -m profiling.sampling run app.py   # PEP 799, Tachyon
```

Kode ini hanya berjalan di 3.15: di versi lebih lama, `lazy import` dan unpacking di comprehension menghasilkan `SyntaxError`, dan `frozendict` menghasilkan `NameError`.

## Masa dukungan versi Python

Setiap versi hidup sekitar lima tahun. Pertama ia mendapat perbaikan bug biasa dan rilis patch rutin (sejak 3.13 selama dua tahun), kemudian hanya perbaikan keamanan sampai akhir masa dukungan. Setelah itu versi dianggap end-of-life: kerentanan tidak lagi diperbaiki oleh siapa pun.

| Versi | Rilis | Akhir dukungan | Status Oktober 2026 |
| --- | --- | --- | --- |

| 2.7 | 2010 | Januari 2020 | tidak didukung |

| 3.9 | Oktober 2020 | Oktober 2025 | tidak didukung |

| 3.10 | Oktober 2021 | Oktober 2026 | masa dukungan berakhir |

| 3.11 | Oktober 2022 | Oktober 2027 | hanya keamanan |

| 3.12 | Oktober 2023 | Oktober 2028 | hanya keamanan |

| 3.13 | Oktober 2024 | Oktober 2029 | perbaikan bug |

| 3.14 | Oktober 2025 | Oktober 2030 | perbaikan bug |

| 3.15 | Oktober 2026 | Oktober 2031 | terbaru |

Status terkini setiap cabang dipublikasikan di halaman Status of Python versions pada Python Developer's Guide. Sebelum memilih versi untuk proyek jangka panjang, ada baiknya memeriksanya di sana.

## Versi Python mana yang sebaiknya dipasang

Untuk belajar dan proyek baru, pasang versi stabil terbaru, saat ini Python 3.15. Alasan «saya pakai 3.10 saja karena sudah teruji» tidak tepat: pada Oktober 2026 versi itu tidak lagi menerima bahkan perbaikan keamanan, dan belajar dengan versi yang sudah ditinggalkan berarti harus belajar ulang nanti. Dalam Python 3 kompatibilitasnya baik: kode untuk versi lama hampir selalu berjalan di versi baru, tetapi tidak sebaliknya.

Ada pengecualian. Jika pustaka yang Anda butuhkan belum merilis wheel untuk versi terbaru (ini sering terjadi beberapa minggu setelah rilis Oktober untuk paket dengan ekstensi C), pakai versi sebelumnya — 3.14. Untuk server yang akan hidup lama, ikuti versi dari repositori distribusi atau pasang versi yang diinginkan lewat uv. Aturan utamanya: jangan pilih versi yang masa dukungannya tersisa kurang dari setahun.

| Situasi | Yang dipasang |
| --- | --- |

| Belajar dari nol | versi stabil terbaru (3.15) |

| Proyek baru | terbaru atau satu sebelumnya |

| Pustaka belum mendukung versi terbaru | versi minor sebelumnya |

| Proyek lama di 3.10 atau lebih rendah | rencanakan migrasi ke versi yang didukung |

| Kode Python 2 | pindahkan ke Python 3 |

## Cara mengecek versi Python

Di terminal cukup satu perintah. Di macOS dan Linux biasanya dipakai `python3`, di Windows `python` atau launcher `py`.

```
$ python3 --version
Python 3.12.3        # versi lama — saatnya memperbarui

$ python3 -V
Python 3.15.0
```

Di Windows, launcher menampilkan semua versi yang terpasang sekaligus, sedangkan uv menampilkan versi yang ia lihat dan bisa pasang:

```
py --list
uv python list
```

Dari dalam program, versi diambil lewat modul `sys`. Tuple `sys.version_info` mudah dibandingkan, sehingga skrip bisa memeriksa sendiri apakah interpreter-nya cocok:

```
import sys

print(sys.version)            # string lengkap dengan tanggal build
print(sys.version_info[:3])   # misalnya (3, 15, 0)

if sys.version_info < (3, 10):
    raise SystemExit("Diperlukan Python 3.10 atau yang lebih baru")
```

Jika `python3 --version` menampilkan versi yang berbeda dari yang Anda pasang, berarti di PATH ditemukan interpreter lain lebih dulu. Untuk memeriksa yang mana, gunakan `which python3` di macOS dan Linux atau `where python` di Windows.

## Beberapa versi Python dalam satu komputer

Menyimpan 3.13 dan 3.15 berdampingan itu wajar: masing-masing dipasang di folder sendiri. Paling mudah mengelolanya dengan uv: `uv python install 3.15` mengunduh versi tersebut, dan `uv python pin 3.15` menetapkannya untuk proyek lewat file `.python-version`. Python sistem di Linux sebaiknya tidak disentuh dan tidak diperbarui manual — utilitas sistem operasi bergantung padanya.

Versi minimal proyek ditulis di `pyproject.toml` pada kolom `requires-python`. Dengan begitu, pengelola paket tidak akan memasang proyek ke interpreter yang tidak sesuai.

```
[project]
name = "expenses"
version = "0.1.0"
requires-python = ">=3.15"
```

## Kesimpulan

Versi Python yang aktif adalah cabang 3, dan yang terbaru adalah 3.15 dengan lazy import, `frozendict`, dan UTF-8 secara default. Python 2 berakhir pada 2020, 3.10 kehilangan dukungan pada Oktober 2026, sehingga belajar dan memulai proyek sebaiknya memakai versi yang baru. Untuk mengecek versi Anda, jalankan `python3 --version`. Di kursus, setiap topik diakhiri dengan blok «Yang baru di 3.10–3.15», sehingga perubahan antarversi dibahas langsung dengan contoh.

## FAQ

**Apa itu IDLE Python 3.10 64-bit di menu Start?**

Itu lingkungan pengembangan sederhana yang ikut terpasang dari installer python.org; nama tersebut menunjukkan versi interpreter dan arsitekturnya. Jika tertulis 3.10, berarti Anda memakai versi yang masa dukungannya berakhir — sebaiknya pasang yang baru.

**Bisakah memperbarui Python 3.12 ke 3.15 dengan menimpanya?**

Versi minor dipasang berdampingan, bukan menimpa: setelah 3.15 terpasang, versi lama tetap ada dan bisa dihapus terpisah. Pustaka untuk versi baru perlu dipasang ulang, atau virtual environment dibuat ulang.

**Apa bedanya versi 64-bit dan 32-bit?**

Versi 64-bit bisa memakai lebih banyak memori dan cocok untuk semua komputer modern; versi 32-bit hanya dipilih untuk sistem yang sangat lama.

**Untuk apa versi alpha dan beta?**

Itu rilis awal dari versi berikutnya untuk menguji pustaka dan proyek; untuk belajar dan bekerja, pakai hanya rilis final.


---
Source: Skillaria.Top (https://skillaria.top)
