This document is for an old version of Python that is no longer supported. You should upgrade and read the Dokumentasi Python untuk rilis stabil saat ini.

# FAQ Umum Python

Konten

- FAQ Umum Python

  - Informasi Umum

    - Apa itu Python?

    - Apa itu Python Software Foundation?

    - Apakah ada batasan hak cipta atas penggunaan Python?

    - Pada mulanya kenapa Python dibuat?

    - Apa gunanya Python?

    - Bagaimana cara kerja skema penomoran versi Python?

    - Bagaimana saya mendapatkan salinan kode sumber Python?

    - Bagaimana saya mendapatkan dokumentasi tentang Python?

    - Saya belum pernah memrogram sebelumnya. Apakah ada tutorial tentang Python?

    - Apakah ada newsgroup atau milis yang ditujukan untuk Python?

    - Bagaimana saya mendapatkan versi uji beta dari Python?

    - Bagaimana saya mengirimkan laporan bug dan patch untuk Python?

    - Apakah ada publikasi artikel tentang Python yang bisa saya gunakan sebagai referensi?

    - Apakah ada buku-buku tentang Python?

    - Dimana di dunia lokasi www.python.org?

    - Kenapa disebut Python?

    - Apakah saya harus menyukai "Monty Python's Flying Circus"?

  - Python di dunia nyata

    - Seberapa stabil Python?

    - Berapa banyak orang menggunakan Python?

    - Apakah ada proyek-proyek penting yang dibuat dengan Python?

    - Apa pengembangan baru yang diharapkan dari Python di masa depan?

    - Apakah beralasan untuk mengusulkan perubahan yang tidak kompatibel terhadap Python?

    - Apakah Python bahasa yang baik untuk pemrogram pemula?

  - Upgrading Python

    - What is this bsddb185 module my application keeps complaining about?

## Informasi Umum

### Apa itu Python?

Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many Unix variants, on the Mac, and on PCs under MS-DOS, Windows, Windows NT, and OS/2.

Untuk mengetahui lebih lanjut, mulai dengan Tutorial Python. Panduan Pemula Python tautan ke tutorial pengantar dan sumber lain untuk belajar Python.

### Apa itu Python Software Foundation?

The Python Software Foundation adalah organisasi nirlaba independen yang memegang hak cipta pada Python versi 2.1 dan yang lebih baru. Misi PSF adalah untuk memajukan teknologi open source yang terkait dengan bahasa pemrograman Python dan untuk mempublikasikan penggunaan Python. Halaman utama PSF ada di https://www.python.org/psf/.

Sumbangan untuk PSF bebas pajak di AS. Jika Anda menggunakan Python dan merasa terbantu, silakan berkontribusi melalui halaman donasi PSF.

### Apakah ada batasan hak cipta atas penggunaan Python?

Anda dapat melakukan apa pun yang Anda inginkan dengan sumbernya, selama Anda meninggalkan hak cipta dan menampilkan hak cipta itu dalam dokumentasi apa pun tentang Python yang Anda hasilkan. Jika Anda menghormati aturan hak cipta, boleh saja menggunakan Python untuk penggunaan komersial, menjual salinan Python dalam bentuk sumber atau biner (dimodifikasi atau tidak dimodifikasi), atau untuk menjual produk yang memasukkan Python dalam beberapa bentuk. Kami masih ingin tahu tentang semua penggunaan komersial Python, tentu saja.

Lihat halaman lisensi PSF untuk tahu lebih lanjut penjelasan dan tautan ke teks lisensi seluruhnya.

Logo Python terdaftar merek dagang, dan dalam kasus tertentu diperlukan izin untuk menggunakannya. Lihat Kebijakan Penggunaan Merek Dagang untuk info lebih lanjut.

### Pada mulanya kenapa Python dibuat?

Berikut adalah ringkasan singkat dari sejak awal dimulai, ditulis oleh Guido van Rossum:

> Saya memiliki pengalaman luas dalam mengimplementasikan bahasa yang ditafsirkan interpreted dalam kelompok ABC di CWI, dan dari bekerja dengan kelompok ini saya telah belajar banyak tentang desain bahasa. Ini adalah asal dari banyak fitur Python, termasuk penggunaan indentasi untuk pengelompokan pernyataan dan penyertaan tipe data tingkat-sangat-tinggi (walaupun detailnya semua berbeda dalam Python).

> Saya memiliki sejumlah keluhan tentang bahasa ABC, tetapi juga menyukai banyak fitur-fiturnya. Tidak mungkin untuk memperluas bahasa ABC (atau implementasinya) untuk memperbaiki keluhan saya -- pada kenyataannya kurangnya ekstensibilitas adalah salah satu masalah terbesarnya. Saya punya pengalaman menggunakan Modula-2+ dan berbicara dengan desainer Modula-3 dan membaca laporan Modula-3. Modula-3 adalah asal dari sintaks dan semantik yang digunakan untuk pengecualian, dan beberapa fitur Python lainnya.

> Saya bekerja di grup sistem operasi terdistribusi Amoeba di CWI. Kami membutuhkan cara yang lebih baik untuk melakukan administrasi sistem daripada dengan menulis baik program C atau skrip Bourne shell, karena Amuba memiliki antarmuka sistem panggilan sendiri yang tidak mudah diakses dari Bourne shell. Pengalaman saya dengan penanganan kesalahan di Amuba membuat saya sangat sadar akan pentingnya pengecualian sebagai fitur bahasa pemrograman.

> Terpikir oleh saya bahwa bahasa scripting dengan sintaksis seperti ABC tetapi dengan akses ke panggilan sistem Amuba akan memenuhi kebutuhan. Saya menyadari bahwa bodoh untuk menulis bahasa khusus Amuba, jadi saya memutuskan bahwa saya membutuhkan bahasa yang pada umumnya dapat diperluas.

> Selama liburan Natal 1989, saya punya banyak waktu, jadi saya memutuskan untuk mencobanya. Selama tahun berikutnya, sementara sebagian besar masih mengerjakannya di waktu saya sendiri, Python digunakan dalam proyek Amoeba dengan keberhasilan yang semakin meningkat, dan umpan balik dari kolega membuat saya menambahkan banyak perbaikan awal.

> Pada Februari 1991, setelah setahun pengembangan, saya memutuskan untuk mengirim ke USENET. Sisanya ada di berkas``Misc/HISTORY``.

### Apa gunanya Python?

Python adalah bahasa pemrograman umum tingkat atas yang dapat diterapkan untuk berbagai jenis permasalahan.

Bahasa ini dilengkapi dengan pustaka standar berukuran besar yang mencakup bidang-bidang seperti pemrosesan string (ekspresi reguler, Unicode, penghitungan perbedaan antara file), protokol Internet (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, pemrograman CGI), rekayasa perangkat lunak (pengujian unit, pencatatan, pembuatan profil, penguraian kode Python), dan antarmuka sistem operasi (panggilan sistem, sistem berkas, soket TCP/IP). Lihatlah daftar isi untuk Pustaka Standar Python untuk mendapatkan gambaran tentang apa yang tersedia. Berbagai ekstensi pihak ketiga juga tersedia. Periksa the Python Package Index untuk menemukan paket yang menarik bagi Anda.

### Bagaimana cara kerja skema penomoran versi Python?

Versi python diberi nomor A.B.C atau A.B. A adalah nomor versi utama -- hanya bertambah untuk perubahan besar dalam bahasa. B adalah nomor versi minor, ditambahkan untuk mengurangi perubahan yang menggoncang dunia. C adalah level mikro -- ia bertambah untuk setiap rilis bugfix. Lihat PEP 6 untuk informasi lebih lanjut tentang rilis perbaikan bug.

Tidak semua rilis adalah rilis perbaikan bug. Menjelang rilis besar baru, serangkaian rilis pengembangan dibuat, dilambangkan sebagai alpha, beta, atau kandidat rilis. Alpha adalah rilis awal di mana antarmuka belum difinalisasi; itu tidak terduga untuk melihat perubahan antarmuka antara dua rilis alpha. Beta lebih stabil, menjaga antarmuka yang ada tetapi mungkin menambahkan modul baru, dan rilis kandidat yang dibekukan, tidak membuat perubahan kecuali jika diperlukan untuk memperbaiki bug kritis.

Versi kandidat alfa, beta, dan rilis memiliki akhiran tambahan. Akhiran untuk versi alfa adalah "aN" untuk sejumlah N kecil, akhiran untuk versi beta adalah "bN" untuk sejumlah kecil N, dan akhiran untuk versi kandidat rilis adalah "cN" untuk sejumlah kecil N. Dengan kata lain, semua versi berlabel 2.0aN mendahului versi berlabel 2.0bN, yang mendahului versi berlabel 2.0cN, dan yang mendahului those 2.0.

Anda juga dapat menemukan nomor versi dengan akhiran "+", mis. "2.2+". Ini adalah versi yang belum dirilis, dibangun langsung dari repositori pengembangan CPython. Dalam praktiknya, setelah rilis minor final dibuat, versi tersebut bertambah menjadi versi minor berikutnya, yang menjadi versi "a0", mis. "2.4a0".

Lihat juga dokumentasi untuk `sys.version`, `sys.hexversion`, dan `sys.version_info`.

### Bagaimana saya mendapatkan salinan kode sumber Python?

Distribusi kode sumber Python terbaru selalu bisa didapatkan dari python.org, di https://www.python.org/downloads/. Kode sumber pengembangan terbaru bisa didapatkan di https://github.com/python/cpython/.

Distribusi sumber adalah file tar gzip yang berisi sumber C lengkap, dokumentasi berformat Sphinx, modul pustaka Python, program contoh, dan beberapa perangkat lunak berguna yang dapat didistribusikan secara bebas. Sumber akan mengkompilasi dan langsung dapat digunakan pada sebagian besar platform UNIX.

Consult the Getting Started section of the Python Developer's Guide for more information on getting the source code and compiling it.

### Bagaimana saya mendapatkan dokumentasi tentang Python?

Dokumentasi standar untuk Python versi stabil saat ini tersedia di https://docs.python.org/3/. PDF, teks biasa, dan versi HTML yang dapat diunduh juga tersedia di https://docs.python.org/3/download.html.

Dokumentasi ditulis dalam reStructuredText dan diproses dengan Alat dokumentasi Sphinx. Sumber reStructuredText untuk dokumentasi merupakan bagian dari distribusi kode sumber Python.

### Saya belum pernah memrogram sebelumnya. Apakah ada tutorial tentang Python?

Ada sejumlah tutorial dan buku yang tersedia. Dokumentasi standar menyertakan Tutorial Python.

Lihat Panduan Memulai untuk menemukan informasi tentang menjadi pemrogram Python pemula, termasuk daftar tutorial.

### Apakah ada newsgroup atau milis yang ditujukan untuk Python?

Ada newsgroup, comp.lang.python, dan milis, python-list. Newsgroup dan milis saling berhubungan satu sama lain -- jika Anda dapat membaca berita, tidak perlu berlangganan ke milis. comp.lang.python memiliki lalu lintas tinggi, menerima ratusan posting setiap hari, dan pembaca Usenet seringkali lebih mampu mengatasi volume ini.

Pengumuman tentang rilis perangkat lunak dan acara baru dapat ditemukan di comp.lang.python.announce, daftar yang moderasi dengan lalu lintas rendah dimana menerima sekitar lima posting per hari. Ini tersedia sebagai the python-announce mailing list.

Info lebih lanjut tentang milis dan newsgroup lainnya dapat ditemukan di https://www.python.org/community/lists/.

### Bagaimana saya mendapatkan versi uji beta dari Python?

Rilis alfa dan beta tersedia dari https://www.python.org/downloads/. Semua rilis diumumkan melalui newsgroup comp.lang.python dan comp.lang.python.announce dan di halaman utama Python di https://www.python.org/; tersedia juga umpan RSS dari berita.

You can also access the development version of Python through Git. See The Python Developer's Guide for details.

### Bagaimana saya mengirimkan laporan bug dan patch untuk Python?

Untuk melaporkan bug atau mengirimkan patch, silakan gunakan instalasi Roundup di https://bugs.python.org/.

Anda harus memiliki akun Roundup untuk melaporkan bug; ini memungkinkan kami untuk menghubungi Anda jika kami memiliki pertanyaan tindak lanjut. Ini juga akan memungkinkan Roundup untuk mengirimi Anda pembaruan saat kami bertindak atas bug Anda. Jika sebelumnya Anda menggunakan SourceForge untuk melaporkan bug ke Python, Anda dapat memperoleh kata sandi Roundup Anda melalui password reset procedure dari Roundup.

For more information on how Python is developed, consult the Python Developer's Guide.

### Apakah ada publikasi artikel tentang Python yang bisa saya gunakan sebagai referensi?

Mungkin sebaiknya mengutip buku favorit Anda tentang Python.

Artikel pertama tentang Python ditulis tahun 1991 dan sekarang sudah cukup usang.

> Guido van Rossum dan Jelke de Boer, "Interactively Testing Remote Servers Using the Python Programming Language", CWI Quarterly, Volume 4, Issue 4 (December 1991), Amsterdam, pp 283--303.

### Apakah ada buku-buku tentang Python?

Ya, ada banyak, dan banyak juga yang sedang diterbitkan. Untuk daftarnya lihat wiki python.org di https://wiki.python.org/moin/PythonBooks .

Anda juga dapat mencari "Python" di toko buku online dan menyaring referensi Monty Python; atau mungkin cari "Python" dan "bahasa".

### Dimana di dunia lokasi www.python.org?

Infrastruktur proyek Python terletak di seluruh dunia dan dikelola oleh Tim Infrastruktur Python. Detail di sini.

### Kenapa disebut Python?

Ketika mulai mengimplementasikan Python, Guido van Rossum juga membaca skrip yang diterbitkan dari `"Sirkus Terbang Monty Python "<https://en.wikipedia.org/wiki/Monty_Python>`__, sebuah serial komedi BBC dari tahun 1970-an. Van Rossum berpikir dia membutuhkan nama yang pendek, unik, dan sedikit misterius, jadi dia memutuskan untuk memanggil bahasa Python.

### Apakah saya harus menyukai "Monty Python's Flying Circus"?

Tidak, tapi itu membantu. :)

## Python di dunia nyata

### Seberapa stabil Python?

Sangat stabil. Rilis baru dan stabil telah keluar sekitar setiap 6 sampai 18 bulan sejak 1991, dan ini sepertinya akan berlanjut. Saat ini biasanya sekitar 18 bulan jarak antara rilis utama.

Pengembang mengeluarkan rilis "bugfix" dari versi yang lebih lama, sehingga stabilitas rilis yang ada secara bertahap membaik. Rilis perbaikan bug, ditunjukkan oleh komponen ketiga dari nomor versi (mis. 3.5.3, 3.6.2), dikelola untuk stabilitas; hanya perbaikan untuk masalah yang diketahui yang termasuk dalam rilis perbaikan bug, dan dijamin antarmuka akan tetap sama di sepanjang serangkaian rilis perbaikan bug.

Rilis stabil terbaru selalu dapat ditemukan di halaman pengunduhan Python. Ada dua versi Python yang siap-produksi: 2.x dan 3.x. Versi yang direkomendasikan adalah 3.x, yang didukung oleh pustaka yang paling banyak digunakan. Meskipun 2.x masih banyak digunakan, itu tidak akan dipertahankan setelah 1 Januari 2020.

### Berapa banyak orang menggunakan Python?

Mungkin ada puluhan ribu pengguna, meski sulit untuk menghitung secara tepat.

Python tersedia untuk diunduh gratis, jadi tidak ada angka penjualan, dan itu tersedia dari banyak situs yang berbeda dan dikemas dengan banyak distribusi Linux, jadi statistik unduhan juga tidak menceritakan keseluruhan cerita.

newsgroup comp.lang.python sangat aktif, tetapi tidak semua pengguna Python mengirim ke grup atau bahkan membacanya.

### Apakah ada proyek-proyek penting yang dibuat dengan Python?

Lihat https://www.python.org/about/success untuk daftar proyek yang menggunakan Python. Konsultasi proses untuk konferensi Python masa lalu akan mengungkapkan kontribusi dari banyak perusahaan dan organisasi yang berbeda.

Profil terkenal proyek Python termasuk manajer milis Mailman dan server aplikasi Zope. Beberapa distribusi Linux, terutama Red Hat, telah menulis sebagian atau semua installer dan perangkat lunak sistem administrasi mereka dengan Python. Perusahaan yang menggunakan Python secara internal termasuk Google, Yahoo, dan Lucasfilm Ltd.

### Apa pengembangan baru yang diharapkan dari Python di masa depan?

Lihat https://www.python.org/dev/peps/ untuk Python Enchancement Proposal (PEPs). PEP adalah dokumen desain yang menggambarkan fitur baru yang disarankan untuk Python, memberikan spesifikasi teknis yang ringkas dan alasannya. Cari PEP berjudul "Jadwal Rilis Python X.Y", di mana X.Y adalah versi yang belum dirilis secara publik.

Pengembangan baru didiskusikan di milis python-dev.

### Apakah beralasan untuk mengusulkan perubahan yang tidak kompatibel terhadap Python?

Secara umum, tidak. Sudah ada jutaan baris kode Python di seluruh dunia, sehingga setiap perubahan dalam bahasa yang membatalkan lebih dari sebagian kecil dari program yang ada harus dihapuskan. Bahkan jika Anda dapat menyediakan program konversi, masih ada masalah memperbarui semua dokumentasi; banyak buku telah ditulis tentang Python, dan kami tidak ingin membatalkan semuanya dengan satu goresan.

Diperlukan jalur peningkatan bertahap jika fitur harus diubah. PEP 5 menjelaskan prosedur yang diikuti untuk memperkenalkan perubahan yang tidak kompatibel ke belakang sambil meminimalkan gangguan bagi pengguna.

### Apakah Python bahasa yang baik untuk pemrogram pemula?

Ya.

Masih umum untuk memulai siswa belajar dengan bahasa prosedural dan tipe statis seperti Pascal, C, atau subset dari C++ atau Java. Siswa mungkin lebih baik dididik dengan mempelajari Python sebagai bahasa pertama mereka. Python memiliki sintaksis yang sangat sederhana dan konsisten serta pustaka standar yang besar dan, yang paling penting, menggunakan Python dalam kursus pemrograman awal memungkinkan siswa berkonsentrasi pada keterampilan penting pemrograman seperti dekomposisi masalah dan desain tipe data. Dengan Python, siswa dapat dengan cepat diperkenalkan dengan konsep-konsep dasar seperti loop dan prosedur. Mereka bahkan dapat bekerja dengan objek yang ditentukan pengguna dalam kursus pertama mereka.

Untuk siswa yang belum pernah memprogram sebelumnya, menggunakan bahasa yang memiliki tipe statis tampaknya tidak wajar atau tidak biasa. Ini menyajikan kompleksitas tambahan bahwa siswa harus menguasai dan memperlambat laju kursus. Para siswa berusaha belajar berpikir seperti komputer, menguraikan masalah, mendesain antarmuka yang konsisten, dan merangkum data. Sementara belajar untuk menggunakan bahasa yang memiliki tipe statis itu penting dalam jangka panjang, itu tidak selalu merupakan topik terbaik untuk dibahas dalam kursus pemrograman pertama siswa.

Banyak aspek lain dari Python menjadikannya bahasa pertama yang baik. Seperti Java, Python memiliki pustaka standar yang besar sehingga siswa dapat ditugaskan proyek pemrograman sangat awal dalam kursus yang do sesuatu. Tugas tidak terbatas pada kalkulator empat fungsi standar dan periksa program keseimbangan. Dengan menggunakan perpustakaan standar, siswa dapat memperoleh kepuasan bekerja pada aplikasi dunia nyata saat mereka mempelajari dasar-dasar pemrograman. Menggunakan perpustakaan standar juga mengajarkan siswa tentang penggunaan kembali reuse kode. Modul pihak ketiga seperti PyGame juga membantu dalam memperluas jangkauan siswa.

interpreter interaktif Python memungkinkan siswa untuk menguji fitur bahasa saat mereka sedang melakukan pemrograman. Mereka dapat menjaga jendela dengan interpreter berjalan saat mereka memasukkan sumber program mereka di jendela lain. Jika mereka tidak dapat mengingat metode untuk list, mereka dapat melakukan sesuatu seperti ini:

    >>> L = []
    >>> dir(L)
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
    '__delslice__', '__doc__', '__eq__', '__format__', '__ge__',
    '__getattribute__', '__getitem__', '__getslice__', '__gt__',
    '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__',
    '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__',
    '__reduce_ex__', '__repr__', '__reversed__', '__rmul__',
    '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__',
    '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert',
    'pop', 'remove', 'reverse', 'sort']
    >>> help(L.append)
    Help on built-in function append:

    append(...)
        L.append(object) -- append object to end

    >>> L.append(1)
    >>> L
    [1]

With the interpreter, documentation is never far from the student as he's programming.

Ada juga IDE yang bagus untuk Python. IDLE adalah IDE lintas-platform untuk Python yang ditulis dalam Python menggunakan Tkinter. PythonWin adalah IDE khusus Windows. Pengguna Emacs akan senang mengetahui bahwa ada mode Python yang sangat bagus untuk Emacs. Semua lingkungan pemrograman ini menyediakan penyorotan sintaksis, indentasi otomatis, dan akses ke interpreter interaktif saat pengkodean. Konsultasikan wiki Python untuk daftar lengkap lingkungan penyuntingan Python.

Jika ingin mendiskusikan penggunaan Python di bidang pendidikan, Anda mungkin tertarik untuk bergabung di milis edu-sig.

## Upgrading Python

### What is this bsddb185 module my application keeps complaining about?

Starting with Python2.3, the distribution includes the PyBSDDB package <http://pybsddb.sf.net/> as a replacement for the old bsddb module. It includes functions which provide backward compatibility at the API level, but requires a newer version of the underlying Berkeley DB library. Files created with the older bsddb module can't be opened directly using the new module.

Using your old version of Python and a pair of scripts which are part of Python 2.3 (db2pickle.py and pickle2db.py, in the Tools/scripts directory) you can convert your old database files to the new format. Using your old Python version, run the db2pickle.py script to convert it to a pickle, e.g.:

    python2.2 <pathto>/db2pickley.py database.db database.pck

Rename your database file:

    mv database.db olddatabase.db

Now convert the pickle file to a new format database:

    python <pathto>/pickle2db.py database.db database.pck

The precise commands you use will vary depending on the particulars of your installation. For full details about operation of these two scripts check the doc string at the start of each one.