Lewati ke isi

Berita TeknologiBerita

Python 3.15 Rilis, Fitur Baru yang Perlu Diketahui

Python 3.15 rilis 9 Oktober 2026 dengan lazy import, frozendict, UTF-8 sebagai bawaan, dan profiler baru. Ini yang penting untuk developer dan server.

Terbit 5 menit baca

Jawaban singkat

Python 3.15 dirilis 9 Oktober 2026 dan didukung sampai Oktober 2031. Fitur utamanya lazy import eksplisit, tipe bawaan frozendict, UTF-8 sebagai encoding bawaan, paket profiling baru, dan JIT eksperimental yang diperbarui. Beberapa API lama ikut dihapus.

Daftar isi
  1. Apa fitur terbesar di Python 3.15?
  2. Lazy import eksplisit (PEP 810)
  3. frozendict sebagai tipe bawaan (PEP 814)
  4. Unpacking di dalam comprehension (PEP 798)
  5. Paket profiling baru (PEP 799)
  6. JIT dan pesan error
  7. Perubahan bawaan yang bisa mengejutkan
  8. Adakah perubahan yang menyentuh keamanan?
  9. Versi Python mana yang masih didukung?
  10. Apakah server produksi perlu langsung pindah?
  11. Pertanyaan yang sering diajukan

Python 3.15 resmi dirilis pada 9 Oktober 2026 dan membawa beberapa perubahan yang terasa langsung dalam pekerjaan sehari-hari: import yang bisa ditunda, tipe kamus yang tidak bisa diubah, dan UTF-8 sebagai encoding bawaan.

Kenapa ini penting? Sebagian perubahan bersifat opsional dan tinggal dipakai bila perlu. Tapi ada juga yang mengubah perilaku bawaan dan menghapus API lama, sehingga skrip atau aplikasi yang sudah berjalan bertahun-tahun bisa berperilaku berbeda. Rangkuman ini disusun dari dokumen resmi "What's New in Python 3.15", per 11 November 2026.

Apa fitur terbesar di Python 3.15?

Lazy import eksplisit (PEP 810)

Python 3.15 menambahkan kata kunci lunak lazy. Modul yang diimpor dengan cara ini baru benar-benar dimuat saat pertama kali dipakai:

lazy import json
lazy from decimal import Decimal

Manfaatnya paling terasa pada aplikasi baris perintah dan layanan yang mengimpor banyak pustaka besar padahal tidak semuanya dipakai di setiap eksekusi. Waktu mulai bisa lebih singkat. Perilaku ini juga bisa diaktifkan global lewat opsi -X lazy_imports=all atau variabel lingkungan PYTHON_LAZY_IMPORTS=all (import di dalam blok try dan import wildcard tetap dimuat biasa), tapi untuk aplikasi produksi sebaiknya diuji dulu karena urutan efek samping saat import bisa berubah.

frozendict sebagai tipe bawaan (PEP 814)

Kini ada frozendict, pemetaan yang tidak bisa diubah dan bisa di-hash. Ia bukan turunan dict. Cocok untuk konfigurasi yang tidak boleh berubah, kunci cache, atau nilai bawaan yang dibagikan ke banyak fungsi tanpa risiko diubah tidak sengaja.

Unpacking di dalam comprehension (PEP 798)

Penulisan seperti [*L for L in lists] sekarang sah, sehingga meratakan daftar bertingkat tidak lagi butuh dua lapis for.

Paket profiling baru (PEP 799)

Ada paket standar baru bernama profiling dengan dua bagian: profiling.tracing dan profiling.sampling. Profiler sampling ini bisa menempel ke proses yang sedang berjalan berdasarkan PID. Bagi pengelola server, ini berarti mencari bagian kode yang lambat di aplikasi produksi bisa dilakukan tanpa memulai ulang aplikasi dengan opsi khusus. cProfile tetap tersedia sebagai alias.

JIT dan pesan error

Kompiler JIT eksperimental diperbarui, dan pesan error dibuat lebih membantu, misalnya memberi petunjuk saat salah ketik nama atribut atau saat memakai nama metode dari bahasa pemrograman lain.

Perubahan bawaan yang bisa mengejutkan

Bagian ini yang paling perlu diperhatikan sebelum upgrade.

UTF-8 menjadi encoding bawaan (PEP 686). Saat membuka file tanpa argumen encoding, Python 3.15 memakai UTF-8. Di server Linux dengan locale UTF-8, dampaknya biasanya kecil. Di Windows, atau di server dengan locale lama, skrip yang selama ini membaca file berencoding lain tanpa menyebut encoding bisa tiba-tiba gagal atau salah membaca karakter. Perilaku lama bisa dikembalikan dengan PYTHONUTF8=0 atau -X utf8=0, tapi solusi yang lebih rapi adalah menulis encoding= secara eksplisit.

API lama dihapus. Beberapa yang relevan untuk server dan aplikasi:

  • CGIHTTPRequestHandler dan opsi --cgi pada python -m http.server dihapus.
  • Metode load_module() pada loader import dihapus, ganti dengan exec_module().
  • Modul internal sre_compile, sre_constants, dan sre_parse dihapus.
  • datetime.strptime() kini menolak format berisi %d tanpa penanda tahun.
  • Modul profile berstatus usang dan dijadwalkan dihapus di 3.17.

Adakah perubahan yang menyentuh keamanan?

Ada beberapa, dan sebagian besar bersifat pengetatan. Modul tarfile mendapat sejumlah penguatan untuk proses ekstraksi arsip, termasuk perbaikan untuk beberapa CVE. Modul ssl mendapat API baru untuk mengatur grup pertukaran kunci, cipher suite TLS 1.3, dan algoritma tanda tangan. Sementara itu, http.client mendapat parameter max_response_headers untuk membatasi jumlah header respons yang diterima.

Bagi aplikasi yang mengekstrak arsip kiriman pengguna atau memanggil API luar, perubahan ini layak diuji karena perilaku yang lebih ketat bisa menolak masukan yang sebelumnya diterima begitu saja.

Versi Python mana yang masih didukung?

Python kini punya siklus rilis tahunan setiap Oktober, dan tiap versi didukung sekitar lima tahun. Data berikut dari halaman status versi resmi Python per 11 November 2026.

VersiRilis pertamaStatusAkhir dukungan
3.159 Oktober 2026BugfixOktober 2031
3.147 Oktober 2025BugfixOktober 2030
3.137 Oktober 2024Hanya keamananOktober 2029
3.122 Oktober 2023Hanya keamananOktober 2028
3.1124 Oktober 2022Hanya keamananOktober 2027
3.102021Sudah berakhirOktober 2026

Kalau aplikasimu masih di Python 3.10, dukungannya sudah habis. Ini saat yang tepat untuk merencanakan pindah, setidaknya ke versi yang masih menerima perbaikan keamanan.

Apakah server produksi perlu langsung pindah?

Belum tentu. Rilis x.0 biasanya disusul beberapa rilis perbaikan dalam bulan-bulan pertama, dan pustaka pihak ketiga, terutama yang punya ekstensi C, butuh waktu untuk menyediakan paket yang kompatibel. Langkah yang masuk akal:

  1. Jalankan tes aplikasi di Python 3.15 dalam lingkungan terpisah, misalnya container atau virtual environment baru.
  2. Cari pemakaian API yang dihapus dan pembacaan file tanpa encoding.
  3. Cek apakah semua dependensi sudah menyediakan wheel untuk 3.15.
  4. Pindahkan produksi setelah tes lolos, idealnya setelah rilis perbaikan pertama atau kedua keluar.

Untuk aplikasi web yang dijalankan dengan Gunicorn, panduan deploy Flask dengan Gunicorn tetap berlaku. Cukup buat virtual environment baru dengan interpreter 3.15. Bila sekaligus memperbarui runtime lain, lihat juga perubahan di Node.js 26 LTS, dan masukkan semuanya ke jadwal patch management agar tidak tertinggal.

Pertanyaan yang sering diajukan

Kapan Python 3.15 dirilis dan sampai kapan didukung?

Python 3.15 dirilis 9 Oktober 2026. Menurut halaman status versi resmi, dukungannya berakhir Oktober 2031.

Apakah kode Python 3.14 langsung jalan di 3.15?

Sebagian besar jalan, tapi perhatikan API yang dihapus dan perubahan UTF-8 sebagai encoding bawaan. Uji dulu sebelum memindahkan produksi.

Apakah lazy import aktif otomatis?

Tidak. Kamu perlu menulis lazy import secara eksplisit, atau mengaktifkannya global lewat -X lazy_imports=all atau PYTHON_LAZY_IMPORTS=all. Kata kunci lazy hanya boleh dipakai di tingkat modul, tidak di dalam fungsi.

Sumber & referensi

Baca juga