# FAQ Umum Python

## Informasi Umum

### Apa itu Python?

Python adalah bahasa pemrograman yang diinterpretasi, interaktif, dan berorientasi objek. Itu menggabungkan modul-modul, exception, pengetikan yang dinamis, tipe data dinamis yang bersifat tingkat tinggi, dan kelas-kelas. Python menggabungkan kekuatan yang luar biasa dengan sintaks yang sangat jelas. Memiliki antar muka ke banyak pemanggilan sistem dan pustaka, serta sejumlah sistem di windows, serta dapat diperluas ke dalam bahasa C atau C++. Juga dapat digunakan sebagai bahasa tambahan untuk aplikasi yang membutuhkan antar muka yang dapat diprogram. Terakhir, Python bersifat portabel: berjalan di banyak varian Unix, di Mac, dan pada Windows 2000 dan yang lebih baru

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.

See the license page to find further explanations and the full text of the PSF License.

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.

The language comes with a large standard library that covers areas such as string processing (regular expressions, Unicode, calculating differences between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), software engineering (unit testing, logging, profiling, parsing Python code), and operating system interfaces (system calls, filesystems, TCP/IP sockets). Look at the table of contents for Pustaka Standar Python to get an idea of what's available. A wide variety of third-party extensions are also available. Consult the Python Package Index to find packages of interest to you.

### Bagaimana cara kerja skema penomoran versi Python?

Python versions are numbered "A.B.C" or "A.B":

- A is the major version number -- it is only incremented for really major changes in the language.

- B is the minor version number -- it is incremented for less earth-shattering changes.

- C is the micro version number -- it is incremented for each bugfix release.

Not all releases are bugfix releases. In the run-up to a new feature release, a series of development releases are made, denoted as alpha, beta, or release candidate. Alphas are early releases in which interfaces aren't yet finalized; it's not unexpected to see an interface change between two alpha releases. Betas are more stable, preserving existing interfaces but possibly adding new modules, and release candidates are frozen, making no changes except as needed to fix critical bugs.

Alpha, beta and release candidate versions have an additional suffix:

- The suffix for an alpha version is "aN" for some small number N.

- The suffix for a beta version is "bN" for some small number N.

- The suffix for a release candidate version is "rcN" for some small number N.

In other words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which precede versions labeled 2.0rcN, and those precede 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".

See the Developer's Guide for more information about the development cycle, and PEP 387 to learn more about Python's backward compatibility policy. See also the documentation for `sys.version`, `sys.hexversion`, and `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.

Lihat Bagian Memulai dari Panduan Pengembang Python untuk informasi lebih lanjut tentang mendapatkan kode sumber dan melakukan kompilasi.

### Bagaimana saya mendapatkan dokumentasi tentang Python?

The standard documentation for the current stable version of Python is available at https://docs.python.org/3/. PDF, plain text, and downloadable HTML versions are also available at https://docs.python.org/3/download.html.

The documentation is written in reStructuredText and processed by the Sphinx documentation tool. The reStructuredText source for the documentation is part of the Python source distribution.

### 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.

Announcements of new software releases and events can be found in comp.lang.python.announce, a low-traffic moderated list that receives about five postings per day. It's available as 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.

Anda juga dapat mengakses versi pengembangan dari Python melalui Git. Lihat Panduan Pengembang Python untuk lebih jelasnya.

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

To report a bug or submit a patch, use the issue tracker at https://github.com/python/cpython/issues.

Untuk informasi lebih lanjut mengenai bagaimana Python dikembangkan, lihat Panduan Pengembang Python.

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

Mungkin sebaiknya mengutip buku favorit Anda tentang Python.

The very first article about Python was written in 1991 and is now quite outdated.

> 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?

The Python project's infrastructure is located all over the world and is managed by the Python Infrastructure Team. Details here.

### Kenapa disebut Python?

Ketika mulai mengimplementasikan Python, Guido van Rossum juga membaca skrip yang diterbitkan dari "Sirkus Terbang 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?

Very stable. New, stable releases have been coming out roughly every 6 to 18 months since 1991, and this seems likely to continue. As of version 3.9, Python will have a new feature release every 12 months (PEP 602).

The developers issue bugfix releases of older versions, so the stability of existing releases gradually improves. Bugfix releases, indicated by a third component of the version number (e.g. 3.5.3, 3.6.2), are managed for stability; only fixes for known problems are included in a bugfix release, and it's guaranteed that interfaces will remain the same throughout a series of bugfix releases.

The latest stable releases can always be found on the Python download page. There are two production-ready versions of Python: 2.x and 3.x. The recommended version is 3.x, which is supported by most widely used libraries. Although 2.x is still widely used, it is not maintained anymore.

### Berapa banyak orang menggunakan Python?

Mungkin ada jutaan pengguna, meskipun sulit untuk mendapatkan jumlah pastinya.

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.

High-profile Python projects include the Mailman mailing list manager and the Zope application server. Several Linux distributions, most notably Red Hat, have written part or all of their installer and system administration software in Python. Companies that use Python internally include Google, Yahoo, and Lucasfilm Ltd.

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

See https://peps.python.org/ for the Python Enhancement Proposals (PEPs). PEPs are design documents describing a suggested new feature for Python, providing a concise technical specification and a rationale. Look for a PEP titled "Python X.Y Release Schedule", where X.Y is a version that hasn't been publicly released yet.

New development is discussed on the python-dev mailing list.

### 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__',
    '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
    '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__',
    '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__',
    '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
    '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__',
    '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear',
    'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove',
    'reverse', 'sort']
    >>> [d for d in dir(L) if '__' not in d]
    ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

    >>> help(L.append)
    Help on built-in function append:

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

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

Dengan interpreter, dokumentasi tidak pernah jauh dari pelajar saat mereka melakukan pemrograman.

There are also good IDEs for Python. IDLE is a cross-platform IDE for Python that is written in Python using Tkinter. Emacs users will be happy to know that there is a very good Python mode for Emacs. All of these programming environments provide syntax highlighting, auto-indenting, and access to the interactive interpreter while coding. Consult the Python wiki for a full list of Python editing environments.

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