Python (bahasa pemrograman): Perbedaan antara revisi
k Membatalkan 1 suntingan by AmandaAmandaJoan (bicara): Iklan Tag: Pembatalan halaman dengan galat kutipan |
|||
(182 revisi perantara oleh 65 pengguna tidak ditampilkan) | |||
Baris 1: | Baris 1: | ||
{{rapikan}} |
|||
{{Infobox programming language |
{{Infobox programming language |
||
| logo = Python logo and wordmark.svg |
|||
| name = Python |
|||
| logo |
| logo size = 250px |
||
| paradigm |
| paradigm = [[Bahasa pemrograman multi-paradigma|Multi-paradigma]]: [[pemrograman fungsional|fungsional]], [[pemrograman imperatif|imperatif]], [[pemrograman berorientasi objek|berorientasi objek]], [[pemrograman terstruktur|terstruktur]], [[pemrograman reflektif|reflektif]] |
||
| released = {{start date and age|1990}}<ref name=guttag /> |
|||
| year = 1991 |
|||
| designer |
| designer = [[Guido van Rossum]] |
||
| developer |
| developer = [[Python Software Foundation]] |
||
| latest release version = {{wikidata|property|edit|reference|P548=Q2804309|P348}} |
|||
| latest_release_version = 3.4.2 /<br />{{release date|df=yes|2014|10|13}}<br />2.7.8/<br />{{release date|df=yes|2014|10|13}} |
|||
| latest release date = {{start date|{{wikidata|qualifier|single|P548=Q2804309|P348|P577}}}} |
|||
| typing = [[duck typing|duck]], [[dynamic typing|dynamic]], [[strong typing|strong]] |
|||
| latest preview version = {{wikidata|property|edit|reference|P548=Q51930650|P348}} |
|||
| implementations = '''[[CPython]]''', [[IronPython]], [[Jython]], [[Python for S60]], [[PyPy]] |
|||
| latest preview date = {{start date|{{wikidata|qualifier|single|P548=Q51930650|P348|P577}}}} |
|||
| dialects = [[Cython]], [[RPython]], [[Stackless Python]] |
|||
| typing = [[duck typing|Duck]], [[dynamic typing|dynamic]], [[gradual typing|gradual]] (sejak 3.5)<ref>{{cite web|url=https://www.python.org/dev/peps/pep-0483/|title=PEP 483 -- The Theory of Type Hints|website=Python.org}}</ref> |
|||
| influenced_by = [[ABC (programming language)|ABC]],<ref name="faq-created">{{cite journal|last=van Rossum|first=Guido|year=1993|title=An Introduction to Python for UNIX/C Programmers|journal=Proceedings of the NLUUG najaarsconferentie (Dutch UNIX users group)|quote=even though the design of C is far from ideal, its influence on Python is considerable.|url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.2023}}</ref> [[ALGOL 68]],<ref name="98-interview">{{cite web |url=http://www.amk.ca/python/writing/gvr-interview |title=Interview with Guido van Rossum (July 1998) |last=Kuchling |first=Andrew M. |work=amk.ca |date=22 December 2006 |accessdate=12 March 2012}}</ref> [[C (programming language)|C]],<ref>{{cite journal|last=van Rossum|first=Guido|year=1993|title=An Introduction to Python for UNIX/C Programmers|journal=Proceedings of the NLUUG najaarsconferentie (Dutch UNIX users group)|quote=even though the design of C is far from ideal, its influence on Python is considerable.|url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.2023}}</ref> [[C++]],<ref name="classmix">{{cite web |url=http://docs.python.org/tutorial/classes.html |title=Classes |work=The Python Tutorial |publisher=Python Software Foundation |accessdate=20 February 2012 |quote=It is a mixture of the class mechanisms found in C++ and Modula-3}}</ref> [[Dylan (programming language)|Dylan]],<ref>{{cite web |url=http://www.python.org/download/releases/2.3/mro/ |title=The Python 2.3 Method Resolution Order |last=Simionato |first=Michele |publisher=Python Software Foundation |quote=The C3 method itself has nothing to do with Python, since it was invented by people working on Dylan and it is described in a paper intended for lispers}}</ref> [[Haskell (programming language)|Haskell]],<ref>{{cite web|url=http://docs.python.org/howto/functional.html|title=Functional Programming HOWTO|last=Kuchling|first=A. M.|work=Python v2.7.2 documentation|publisher=Python Software Foundation|accessdate=9 February 2012}}</ref> [[Icon (programming language)|Icon]],<ref>{{cite web |url=http://www.python.org/dev/peps/pep-0255/ |title=PEP 255 – Simple Generators |first1=Neil |last1=Schemenauer |first2=Tim |last2=Peters |first3=Magnus Lie |last3=Hetland |date=18 May 2001 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=9 February 2012}}</ref> [[Java (programming language)|Java]],<ref>{{cite web |url=http://www.python.org/dev/peps/pep-0318/#why |title=PEP 318 – Decorators for Functions and Methods |first1=Kevin D. |last1=Smith |first2=Jim J. |last2=Jewett |first3=Skip |last3=Montanaro |first4=Anthony |last4=Baxter |date=2 September 2004 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=24 February 2012}}</ref> [[Lisp (programming language)|Lisp]],{{Citation needed|date=February 2012}} [[Modula-3]],<ref name="classmix" /> [[Perl]] |
|||
| implementations = [[CPython]], [[PyPy]], [[Stackless Python]], [[MicroPython]], [[CircuitPython]], [[IronPython]], [[Jython]], RustPython |
|||
| influenced = [[Boo (programming language)|Boo]], [[Cobra (programming language)|Cobra]], [[D (programming language)|D]], [[Falcon (programming language)|Falcon]], [[Groovy (programming language)|Groovy]], [[JavaScript]], [[Ruby (programming language)|Ruby]]<ref name="bini">{{cite book |last=Bini |first=Ola |title=Practical JRuby on Rails Web 2.0 Projects: bringing Ruby on Rails to the Java platform |year=2007 |publisher=APress |location=Berkeley |isbn=978-1-59059-881-8 |page=3}}</ref> |
|||
| dialects = [[Cython]], [[PyPy#RPython|RPython]], [[Bazel (perangkat lunak)|Starlark]]<ref>{{cite web|title=Starlark Language|url=https://docs.bazel.build/versions/master/skylark/language.html|accessdate=25 May 2019}}</ref> |
|||
| operating_system = [[Cross-platform]] |
|||
| influenced = [[Apache Groovy]], [[Boo (bahasa pemrograman)|Boo]], [[Cobra (bahasa pemrograman)|Cobra]], [[CoffeeScript]],<ref>{{Cite web|url=https://coffeescript.org/|title=CoffeeScript|website=coffeescript.org}}</ref> [[D (bahasa pemrograman)|D]], [[F Sharp (programming language)|F#]], [[Genie (bahasa pemrograman)|Genie]],<ref>{{cite web |
|||
| license = [[Python Software Foundation License]] |
|||
|url=https://wiki.gnome.org/action/show/Projects/Genie |
|||
| website = [http://www.python.org/ python.org] |
|||
|title=The Genie Programming Language Tutorial |
|||
| file_ext = .py, .pyw, .pyc, .pyo, .pyd |
|||
|accessdate=28 February 2020}}</ref> [[Go (programming language)|Go]], [[JavaScript]],<ref>{{cite web |
|||
| wikibooks = Python Programming |
|||
|title=Perl and Python influences in JavaScript |
|||
|date=24 February 2013 |
|||
|website= www.2ality.com |
|||
|url=http://www.2ality.com/2013/02/javascript-influences.html |
|||
|accessdate= 15 May 2015}}</ref><ref>{{cite web |
|||
|title=Chapter 3: The Nature of JavaScript; Influences |
|||
|last=Rauschmayer |
|||
|first=Axel |
|||
|website=O'Reilly, Speaking JavaScript |
|||
|url=http://speakingjs.com/es5/ch03.html |
|||
|accessdate=15 May 2015 |
|||
|archive-date=2018-12-26 |
|||
|archive-url=https://web.archive.org/web/20181226141123/http://speakingjs.com/es5/ch03.html%0A |
|||
|dead-url=yes |
|||
}}</ref> [[Julia (programming language)|Julia]],<ref name=Julia/> [[Nim (bahasa pemrograman)|Nim]], Ring,<ref name="The Ring programming language and other languages">{{cite web |url=http://ring-lang.sourceforge.net/doc1.6/introduction.html#ring-and-other-languages |title=Ring and other languages |author=Ring Team |date=4 December 2017 |work=ring-lang.net |publisher=[[ring-lang]]}}</ref> [[Ruby (bahasa pemrograman)|Ruby]],<ref name="bini"/> [[Swift (bahasa pemrograman)|Swift]]<ref name="lattner2014">{{cite web |url=http://nondot.org/sabre/ |title=Chris Lattner's Homepage |last=Lattner |first=Chris |date=3 June 2014 |accessdate=3 June 2014 |publisher=Chris Lattner|quote=The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.}}</ref> |
|||
| license = [[Python Software Foundation License]] |
|||
| website = {{URL|https://www.python.org/}} |
|||
| wikibooks = Python Programming |
|||
| influenced_by = [[ABC (programming language)|ABC]],<ref name="faq-created"/> [[Ada (bahasa pemrograman)|Ada]],<ref>{{cite web | url=http://archive.adaic.com/standards/83lrm/html/lrm-11-03.html#11.3 | title=Ada 83 Reference Manual (raise statement)}}</ref> [[ALGOL 68]],<ref name="98-interview"/> [[APL (bahasa pemrograman)|APL]],<ref name="python.org">{{cite web|url=https://docs.python.org/3/library/itertools.html|title=itertools — Functions creating iterators for efficient looping — Python 3.7.1 documentation|website=docs.python.org}}</ref> [[C (bahasa pemrograman)|C]],<ref name="AutoNT-1"/> [[C++]],<ref name="classmix"/> [[CLU (bahasa pemrograman)|CLU]],<ref name="effbot-call-by-object"/> [[Dylan (bahasa pemrograman)|Dylan]],<ref name="AutoNT-2"/> [[Haskell (bahasa pemrograman)|Haskell]],<ref name="AutoNT-3"/> [[Icon (bahasa pemrograman)|Icon]],<ref name="AutoNT-4"/> [[Java (bahasa pemrograman)|Java]],<ref name="AutoNT-5"/> [[Lisp (bahasa pemrograman)|Lisp]],<ref name="AutoNT-6"/> [[Modula-3]],<ref name="classmix" /> [[Perl]], [[Standard ML]]<ref name="python.org"/> |
|||
| operating system = [[Linux]], [[macOS]], [[Microsoft Windows|Windows]] [[Windows Vista|Vista]]<!-- dropped in Python 3.7, but older still supported. Add Java here because of "Version interface for Jython"? --> (dan yang terbaru) dan banyak lagi |
|||
<!-- not put in as also Java implementation (Jython):| programming language = [[C (bahasa pemrograman)|C]] -->| file ext = .py, .pyi, .pyc, .pyd, .pyo (sebelum 3.5),<ref>File extension .pyo was removed in Python 3.5. See [https://www.python.org/dev/peps/pep-0488/ PEP 0488]</ref> {{Not a typo|.pyw}}, .pyz (sejak 3.5)<ref>{{cite web |url=https://www.python.org/dev/peps/pep-0441/ |last=Holth |first=Moore |date=30 March 2014 |accessdate=12 November 2015 |title=PEP 0441 -- Improving Python ZIP Application Support}}</ref> |
|||
}} |
}} |
||
'''Python''' adalah [[bahasa pemrograman]] [[Bahasa pemrograman tujuan umum|tujuan umum]] yang [[Bahasa yang ditafsirkan|ditafsirkan]], [[Bahasa pemrograman tingkat tinggi|tingkat tinggi.]] Dibuat oleh [[Guido van Rossum]] dan pertama kali dirilis pada tahun 1991, filosofi desain Python menekankan [[Pemrograman komputer#Keterbacaan kode sumber|keterbacaan kode]] dengan penggunaan [[Aturan off-side|spasi putih yang signifikan]]. [[Konstruksi bahasa]]<nowiki/>nya dan pendekatan berorientasi objek bertujuan untuk membantu [[pemrogram]] menulis kode yang jelas dan logis untuk proyek skala kecil dan besar.<ref>{{Cite web|date=2012-06-23|title=A Python Book: Beginning Python, Advanced Python, and Python Exercises|url=http://cutter.rexx.com/~dkuhlman/python_book_01.html|website=web.archive.org|access-date=2020-08-11|archive-date=2012-06-23|archive-url=https://web.archive.org/web/20120623165941/http://cutter.rexx.com/~dkuhlman/python_book_01.html|dead-url=unfit}}</ref> |
|||
'''Python''' adalah bahasa pemrograman [[interpreter|interpretatif]] multiguna<ref>{{cite web |url= http://docs.python.org/faq/general.html#what-is-python-good-for|title= What is Python Good For?|accessdate=2008-09-05 |work= General Python FAQ|publisher= Python Software Foundation}}</ref> dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode.<ref>{{cite web | url = http://www.python.org/doc/essays/blurb/ | title = What is Python? Executive Summary | publisher = Python Software Foundation | work = Python documentation | accessdate = 2007-03-21 }}</ref> Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas,<ref>{{cite web|url=http://www.python.org/doc/faq/general/#what-is-python|title=General Python FAQ|work=python.org|publisher=Python Software Foundation|accessdate=2009-06-27}}</ref> dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif. |
|||
Python [[Bahasa pemrograman dinamis|diketik secara dinamis]] dan [[Pengumpulan sampah (ilmu komputer)|pengumpulan sampah]]. Ini mendukung beberapa [[paradigma pemrograman]], termasuk pemrograman [[Pemrograman terstruktur|terstruktur]] (terutama, prosedural), [[Pemrograman berorientasi objek|berorientasi objek]], dan [[Pemrograman fungsional|fungsional]]. Python sering dideskripsikan sebagai bahasa "termasuk baterai" karena perpustakaan standarnya yang komprehensif.<ref>{{Cite web|title=Welcome to Python.org|url=https://www.python.org/about/|website=Python.org|language=en|access-date=2020-08-11}}</ref> |
|||
Python mendukung multi paradigma pemrograman, utamanya; namun tidak dibatasi; pada [[pemrograman berorientasi objek]], pemrograman imperatif, dan pemrograman fungsional. Salah satu fitur yang tersedia pada python adalah sebagai [[bahasa pemrograman dinamis]] yang dilengkapi dengan manajemen memori otomatis. Seperti halnya pada bahasa pemrograman dinamis lainnya, python umumnya digunakan sebagai [[bahasa skrip]] meski pada praktiknya penggunaan bahasa ini lebih luas mencakup konteks pemanfaatan yang umumnya tidak dilakukan dengan menggunakan bahasa skrip. Python dapat digunakan untuk berbagai keperluan pengembangan perangkat lunak dan dapat berjalan di berbagai platform [[sistem operasi]]. |
|||
Python dibuat pada akhir 1980-an sebagai penerus [[ABC (bahasa pemrograman)|bahasa ABC]]. Python 2.0, dirilis pada tahun 2000, memperkenalkan fitur-fitur seperti [[pemahaman daftar]] dan sistem pengumpulan sampah dengan [[penghitungan referensi]]. |
|||
Saat ini kode python dapat dijalankan di berbagai platform [[sistem operasi]], beberapa diantaranya dalah: |
|||
* [[Linux]]/[[Unix]] |
|||
* [[Windows]] |
|||
* [[Mac OS X]] |
|||
* [[Java Virtual Machine]] |
|||
* [[OS/2]] |
|||
* [[Amiga]] |
|||
* [[Palm]] |
|||
* [[Symbian]] (untuk produk-produk Nokia) |
|||
Python 3.0, dirilis pada tahun 2008, adalah revisi utama dari bahasa yang tidak sepenuhnya [[Kompatibilitas mundur|kompatibel]] dengan versi sebelumnya, dan banyak kode Python 2 yang tidak berjalan tanpa modifikasi pada Python 3. |
|||
Python didistribusikan dengan beberapa lisensi yang berbeda dari beberapa versi. Lihat sejarahnya di [http://www.python.org/doc/Copyright.html/ Python Copyright]. Namun pada prinsipnya Python dapat diperoleh dan dipergunakan secara '''bebas''', bahkan untuk kepentingan komersial. Lisensi Python tidak bertentangan baik menurut definisi [http://www.opensource.org/docs/osd/ Open Source] maupun [http://www.gnu.org/copyleft/gpl.html General Public License (GPL)] |
|||
[[Penerjemah (komputasi)|Penerjemah]] Python tersedia untuk banyak [[sistem operasi]]. Komunitas pemrogram global mengembangkan dan memelihara CPython, implementasi referensi<ref>{{Cite web|title=History and License — Python 3.8.5 documentation|url=https://docs.python.org/3/license.html|website=docs.python.org|access-date=2020-08-11}}</ref> yang [[Perangkat lunak bebas dan sumber terbuka|bebas dan sumber terbuka]]. Sebuah organisasi nirlaba, [[Python Software Foundation]], mengelola dan mengarahkan sumber daya untuk pengembangan Python dan CPython. |
|||
Python secara konsisten menempati peringkat sebagai salah satu bahasa pemrograman paling populer.<ref>{{Cite web|title=Stack Overflow Developer Survey 2020|url=https://insights.stackoverflow.com/survey/2020/|website=Stack Overflow|archive-url=https://web.archive.org/web/20210302140729/https://insights.stackoverflow.com/survey/2020|archive-date=2 March 2021|access-date=2021-03-05|url-status=live}}</ref><ref>{{Cite web|title=The State of Developer Ecosystem in 2020 Infographic|url=https://www.jetbrains.com/lp/devecosystem-2020/|website=JetBrains: Developer Tools for Professionals and Teams|language=en|archive-url=https://web.archive.org/web/20210301062411/https://www.jetbrains.com/lp/devecosystem-2020/|archive-date=1 March 2021|access-date=2021-03-05|url-status=live}}</ref><ref>{{Cite web|title=index {{!}} TIOBE - The Software Quality Company|url=https://www.tiobe.com/tiobe-index/|website=www.tiobe.com|archive-url=https://web.archive.org/web/20180225101948/https://www.tiobe.com/tiobe-index/|archive-date=25 February 2018|access-date=2021-02-02|quote=Python has won the TIOBE programming language of the year award! This is for the fourth time in the history, which is a record! The title is awarded to the programming language that has gained most popularity in one year.|url-status=live}}</ref><ref>{{Cite web|title=PYPL PopularitY of Programming Language index|url=https://pypl.github.io/PYPL.html|website=pypl.github.io|language=en|archive-url=https://web.archive.org/web/20170314232030/https://pypl.github.io/PYPL.html|archive-date=14 March 2017|access-date=2021-03-26|url-status=live}}</ref> |
|||
== Sejarah == |
== Sejarah == |
||
[[Berkas:Guido_van_Rossum_OSCON_2006_cropped.png|jmpl|225x225px|Perancang Python, [[Guido van Rossum]] di OSCON 2006]] |
|||
Python dikembangkan oleh [[Guido van Rossum]] pada tahun [[1990]] di CWI, Amsterdam sebagai kelanjutan dari [[bahasa pemrograman ABC]]. Versi terakhir yang dikeluarkan CWI adalah 1.2. |
|||
Python dibuat pada akhir 1980-an<ref name=":0">{{Cite web|title=The Making of Python|url=https://www.artima.com/intv/python.html|website=www.artima.com|access-date=2020-08-11}}</ref> oleh [[Guido van Rossum]] di [[Centrum Wiskunde & Informatica]] (CWI) di [[Belanda]] sebagai penerus [[ABC (bahasa pemrograman)|bahasa ABC]] (sendiri terinspirasi oleh [[SETL]]),<ref>{{Cite web|last=Rossum|first=Guido van|date=2000-08-29|title=[Python-Dev] SETL (was: Lukewarm about range literals)|url=https://mail.python.org/pipermail/python-dev/2000-August/008881.html|access-date=2020-08-11}}</ref> mampu [[Penanganan pengecualian|menangani pengecualian]] dan berinteraksi dengan sistem operasi [[Amoeba (sistem operasi)|Amoeba]].<ref>{{Cite web|title=General Python FAQ — Python 3.8.5 documentation|url=https://docs.python.org/3/faq/general.html|website=docs.python.org|access-date=2020-08-11}}</ref> Implementasinya dimulai pada bulan Desember 1989. Van Rossum memikul tanggung jawab penuh atas proyek tersebut, sebagai pengembang utama, hingga 12 Juli 2018, ketika ia mengumumkan "liburan permanen" dari tanggung jawabnya sebagai ''[[Benevolent dictator for life|Benevolent Dictator For Life]]'' Python, sebuah gelar yang diberikan komunitas Python kepadanya untuk mencerminkan komitmen jangka panjangnya sebagai pengambil keputusan utama proyek. |
|||
Python 2.0 dirilis pada 16 Oktober 2000 dengan banyak fitur utama baru, termasuk [[Pengumpulan sampah (ilmu komputer)|pengumpul sampah]] [[pendeteksian siklus]] dan dukungan untuk [[Unicode]]. |
|||
Tahun 1995, Guido pindah ke [[CNRI]] sambil terus melanjutkan pengembangan Python. Versi terakhir yang dikeluarkan adalah 1.6. Tahun 2000, Guido dan para pengembang inti Python pindah ke [[BeOpen.com]] yang merupakan sebuah perusahaan komersial dan membentuk BeOpen PythonLabs. Python 2.0 dikeluarkan oleh BeOpen. Setelah mengeluarkan Python 2.0, Guido dan beberapa anggota tim PythonLabs pindah ke DigitalCreations. |
|||
Tanggal [[Akhir masa pakai (produk)|akhir masa pakai]] Python 2.7 yang awalnya ditetapkan pada tahun 2015 kemudian ditunda hingga tahun 2020 karena sejumlah besar kode yang tidak dapat dengan mudah dilanjutkan ke Python 3. |
|||
Saat ini pengembangan Python terus dilakukan oleh sekumpulan pemrogram yang dikoordinir Guido dan [[Python Software Foundation]]. [[Python Software Foundation]] adalah sebuah organisasi non-profit yang dibentuk sebagai pemegang hak cipta intelektual Python sejak versi 2.1 dan dengan demikian mencegah Python ''dimiliki'' oleh perusahaan komersial. Saat ini distribusi Python sudah mencapai versi 2.6.1 dan versi 3.0. |
|||
Python 3.6 (dan setiap perilisan lama), tidak lagi didukung per 2021. |
|||
Nama Python dipilih oleh Guido sebagai nama bahasa ciptaannya karena kecintaan Guido pada acara televisi [[Monty Python's Flying Circus]]. Oleh karena itu seringkali ungkapan-ungkapan khas dari acara tersebut seringkali muncul dalam korespondensi antar pengguna Python. |
|||
Pada 2022, Python 3.10.4 dan 3.9.12 dipercepat dan begitu juga perilisan yang lebih lama termasuk 3.8.13, dan 3.7.13 dikarenakan banyak masalah keamanan pada 2022. Python 3.9.13 adalah versi 3.9 terbaru, dan mulai sekarang 3.9 (dan yang terlama; 3.8 dan 3.7) hanya akan mendapatkan pembaruan keamanan.<ref>{{Cite web|last=Langa|first=Łukasz|date=2022-05-17|title=Python Insider: Python 3.9.13 is now available|url=https://pythoninsider.blogspot.com/2022/05/python-3913-is-now-available.html|website=Python Insider|access-date=2022-05-21}}</ref> |
|||
== Fitur == |
|||
Beberapa fitur yang dimiliki Python adalah: |
|||
* memiliki kepustakaan yang luas; dalam distribusi Python telah disediakan modul-modul 'siap pakai' untuk berbagai keperluan. |
|||
* memiliki tata bahasa yang jernih dan mudah dipelajari. |
|||
* memiliki aturan ''layout'' kode sumber yang memudahkan pengecekan, pembacaan kembali dan penulisan ulang kode sumber. |
|||
* berorientasi obyek. |
|||
* memiliki sistem pengelolaan memori otomatis (garbage collection, seperti [[java]]) |
|||
* modular, mudah dikembangkan dengan menciptakan modul-modul baru; modul-modul tersebut dapat dibangun dengan bahasa Python maupun [[bahasa pemrograman C|C]]/[[C++]]. |
|||
* memiliki fasilitas [[pengumpulan sampah]] otomatis, seperti halnya pada bahasa pemrograman [[Java]], python memiliki fasilitas pengaturan penggunaan ingatan komputer sehingga para pemrogram tidak perlu melakukan pengaturan ingatan komputer secara langsung. |
|||
* memiliki banyak faslitas pendukung sehingga mudah dalam pengoprasiannya. |
|||
== |
== Desain fitur dan filosofi == |
||
Python adalah [[bahasa pemrograman multi-paradigma]]. [[Pemrograman berorientasi objek]] dan [[pemrograman terstruktur]] juga didukung penuh, dan banyak fiturnya mendukung [[pemrograman fungsional]] dan [[pemrograman berorientasi aspek]] (termasuk dengan [[metaprogramming]] dan [[metaobjects]] (metode ajaib)). Banyak paradigma lain yang didukung melalui ekstensi, termasuk [[desain berdasarkan kontrak]] dan [[pemrograman logika]]. |
|||
Contoh masukan : |
|||
nama = raw_input("Masukkan nama Anda: ") |
|||
Desain Python menawarkan beberapa dukungan untuk [[pemrograman fungsional]] dalam tradisi [[Lisp (bahasa pemrograman)|Lisp]]. Memiliki fungsi <code>filter</code>, <code>map</code>, dan <code>reduce</code>;[[daftar pemahaman]], [[Associative array|kamus]], set, dan ekspresi [[Generator (pemrograman komputer)|generator]].<ref name="AutoNT-59" /> Pustaka standar memiliki dua modul (itertools dan functools) yang mengimplementasikan alat fungsional yang dipinjam dari [[Haskell]] dan [[Standard ML]].<ref name="AutoNT-18" /> |
|||
Contoh keluaran : |
|||
print "Halo", nama, ":)" |
|||
Filosofi inti bahasa diringkas dalam dokumen ''The [[Zen of Python]]'' (''PEP'' 20), yang mencakup [[kata-kata mutiara]] seperti:<ref>{{Cite web|title=PEP 20 -- The Zen of Python|url=https://www.python.org/dev/peps/pep-0020/|website=Python.org|language=en|access-date=2020-09-24}}</ref> |
|||
== Halo Dunia == |
|||
Perintah ini biasanya digunakan untuk menguji keberhasilan pemasangan Python dalam komputer. |
|||
* Cantik itu lebih baik dari pada jelek. |
|||
print ("Halo dunia!") |
|||
* Eksplisit lebih baik daripada implisit. |
|||
* Sederhana lebih baik daripada kompleks. |
|||
* Kompleks lebih baik daripada rumit. |
|||
* Keterbacaan itu penting. |
|||
Daripada memiliki semua fungsionalitas yang dibangun ke dalam intinya, Python dirancang untuk menjadi sangat dapat [[dikembangkan]]. Modularitas yang ringkas ini membuatnya sangat populer sebagai sarana untuk menambahkan antarmuka yang dapat diprogram ke aplikasi yang ada. Visi Van Rossum tentang bahasa inti kecil dengan perpustakaan standar yang besar dan penerjemah yang mudah diperluas berasal dari rasa frustrasinya dengan [[ABC (bahasa pemrograman)|ABC]], yang mendukung pendekatan yang berlawanan.<ref name=":0" /> |
|||
Pengembang Python menargetkan ini dapat menyenangkan untuk digunakan. Ini tercermin dalam namanya—sebuah penghargaan untuk grup komedi Inggris [[Monty Python]]—dan terkadang dengan pendekatan yang menyenangkan untuk tutorial dan materi referensi, seperti contoh yang merujuk pada spam dan telur (sebuah referensi ke [[Spam (Monty Python)|sketsa Monty Python]]) alih-alih [[Foobar|foo dan bar standar]]. |
|||
Pengguna dan peminat Python, terutama mereka yang dianggap berpengetahuan atau berpengalaman, sering disebut sebagai ''Pythonistas''. |
|||
== Sintaks dan semantik == |
|||
Python dimaksudkan sebagai bahasa yang mudah dibaca. Pemformatannya tidak berantakan secara visual, dan sering kali menggunakan kata kunci bahasa Inggris di mana bahasa lain menggunakan tanda baca. Tidak seperti banyak bahasa lain, ia tidak menggunakan tanda [[Daftar bahasa pemrograman menurut jenisnya#Bahasa kurung awal|kurung awal]] untuk membatasi blok, dan pernyataan titik koma setelahnya bersifat opsional. Ini memiliki lebih sedikit pengecualian sintaksis dan kasus khusus daripada [[C (bahasa pemrograman)|C]] atau [[Pascal (bahasa pemrograman)|Pascal]]. |
|||
=== Indentasi === |
|||
Python menggunakan indentasi [[Karakter spasi|spasi]], daripada [[Daftar bahasa pemrograman menurut jenisnya#Bahasa kurung awal|tanda kurung kurawal]] atau kata kunci, untuk membatasi blok. Peningkatan indentasi muncul setelah pernyataan tertentu; penurunan indentasi menandakan akhir dari blok saat ini. Dengan demikian, struktur visual program secara akurat mewakili struktur semantik program. Fitur ini terkadang disebut [[aturan off-side]], yang dimiliki beberapa bahasa lain, tetapi di sebagian besar bahasa indentasi tidak memiliki arti semantik. |
|||
=== Pernyataan dan aliran kontrol === |
|||
Penetapan nilai yang sama secara berurutan ke beberapa nama, misalnya, <code>x=2</code>; <code>y=2</code>; <code>z=2</code> menghasilkan pengalokasian penyimpanan ke (paling banyak) tiga nama dan satu objek numerik, yang ketiganya terikat. Karena nama adalah pemegang referensi umum, tidak masuk akal untuk mengasosiasikan [[Jenis sistem|tipe data]] tetap dengannya. Namun pada waktu tertentu sebuah nama akan terikat ke ''suatu'' objek, yang '''akan''' memiliki tipe; jadi ada [[Tipe sistem#Pengecekan tipe dinamis dan informasi tipe runtime|pengetikan dinamis]]. |
|||
* Pernyataan <code>[[If-then-else|if]]</code>, yang secara kondisional mengeksekusi blok kode, bersama dengan <code>else</code> dan <code>elif</code> (sebuah kontraksi dari else-if). |
|||
* Pernyataan <code>[[Foreach#Python|for]]</code> yang melakukan iterasi pada objek yang dapat diulang, menangkap setiap elemen ke variabel lokal untuk digunakan oleh blok terlampir. |
|||
* Pernyataan <code>[[While loop#Python|while]]</code> yang mengeksekusi sebuah blok kode selama kondisinya benar. |
|||
* Pernyataan <code>[[Penanganan pengecualian sintaks#Python|try]]</code> yang memungkinkan pengecualian yang dimunculkan dalam blok kode terlampir untuk ditangkap dan ditangani oleh <code>except</code> klausul; itu juga memastikan bahwa kode-pembersihan dalam file blok <code>finally</code> akan selalu berjalan terlepas dari bagaimana blok keluar. |
|||
* Pernyataan <code>raise</code> digunakan untuk memunculkan pengecualian tertentu atau memunculkan kembali pengecualian yang tertangkap. |
|||
* Pernyataan <code>class</code> yang mengeksekusi blok kode dan menempelkan namespace lokalnya ke [[Class (pemrograman komputer)|class]], untuk digunakan dalam [[pemrograman berorientasi objek]]. |
|||
* Pernyataan <code>def</code> yang mendefinisikan [[Subrutin|fungsi]] atau [[Metode (pemrograman komputer)|metode]]. |
|||
* Pernyataan <code>with</code> dari Python 2.5 dirilis pada September 2006, yang membungkus blok kode dalam manajer konteks (misalnya, memperoleh kunci sebelum blok kode dijalankan dan melepaskan kunci setelahnya, atau membuka [[file]] dan kemudian menutupnya), memungkinkan perilaku seperti [[Resource Acquisition Is Initialization]] (RAII) dan menggantikan idiom percobaan / akhirnya yang umum.<ref>{{cite web|title=Highlights: Python 2.5|url=https://www.python.org/download/releases/2.5/highlights/|website=Python.org}}</ref> |
|||
* Pernyataan <code>[[Pernyataan break|break]]</code> keluar dari loop. |
|||
* Pernyataan <code>continue</code> melewati iterasi ini dan melanjutkan dengan item berikutnya. |
|||
* Pernyataan <code>pass</code> yang berfungsi sebagai [[NOP (kode)|NOP]]. Ini secara sintaksis diperlukan untuk membuat blok kode kosong. |
|||
* Pernyataan <code>[[Assertion (programming)|assert]]</code> digunakan selama debugging untuk memeriksa kondisi yang seharusnya diterapkan. |
|||
* Pernyataan <code>yield</code> yang mengembalikan nilai dari fungsi [[Generator (pemrograman komputer)#Python|generator]]. Dari Python 2.5, <code>yield</code> juga seorang operator. Formulir ini digunakan untuk mengimplementasikan coroutine. |
|||
* Pernyataan <code>import</code> , yang digunakan untuk mengimpor modul yang fungsi atau variabelnya dapat digunakan dalam program saat ini. Ada tiga cara menggunakan import: <code>import <nama modul> [sebagai <alias>]</code> atau <code>from <nama modul> import *</code> atau <code>from <nama modul> import <definisi 1> [sebagai <alias 1>], <definisi 2> [sebagai <alias 2>], ...</code>. |
|||
* Pernyataan <code>print</code> diubah menjadi fungsi <code>print()</code> dengan Python 3. |
|||
=== Metode === |
|||
[[Metode (pemrograman komputer)|Metode]] pada objek adalah [[Subrutin|fungsi]] yang dilampirkan ke kelas objek; sintaks <code>instance.method(argument)</code> adalah, untuk metode dan fungsi normal, [[gula sintaksis]] untuk <code>Class.method(instance, argument)</code>. Metode Python memiliki explisit <code>[[This (pemrograman komputer)|self]]</code> parameter untuk mengakses data instance, berbeda dengan yang tersirat <code>self</code> (atau <code>this</code>) dalam beberapa bahasa pemrograman berorientasi objek lainnya (mis., [[C++]], [[Java (programming language)|Java]], [[Objective-C]], atau [[Ruby (bahasa pemrograman)|Ruby]]). Python juga menyediakan metode, sering dipanggil ''dunder methods'' (karena nama mereka dimulai dan diakhiri dengan garis bawah ganda), untuk mengizinkan kelas yang ditentukan pengguna untuk mengubah cara mereka ditangani oleh operasi asli termasuk panjang, perbandingan, dalam [[Operasi aritmetika|operasi aritmatika]] dan konversi penulisan. |
|||
=== Penulisan === |
|||
[[Berkas:Python_3._The_standard_type_hierarchy.png|jmpl|Hierarki tipe standar di Python 3]] |
|||
Python menggunakan [[duck typing]] dan memiliki objek yang diketik tetapi nama variabel yang tidak diketik. Batasan jenis tidak diperiksa pada [[waktu kompilasi]]; sebaliknya, operasi pada suatu objek mungkin gagal, menandakan bahwa objek yang diberikan bukan tipe yang sesuai. Meskipun [[Pengetikan sistem|diketik secara dinamis]], Python [[Pengetikan yang kuat dan lemah|diketik dengan kuat]], melarang operasi yang tidak terdefinisi dengan baik (misalnya, menambahkan angka ke string) daripada secara diam-diam mencoba memahaminya. |
|||
Python memungkinkan pemrogram untuk menentukan tipe mereka sendiri menggunakan kelas, yang paling sering digunakan untuk [[pemrograman berorientasi objek]]. Contoh [[Objek (ilmu komputer)|instance]] baru dibangun dengan memanggil kelas (misalnya, <code>SpamClass()</code> atau<code>EggsClass()</code>), dan kelas-kelasnya adalah instance dari [[metaclass]] <code>type</code> (itu sendiri merupakan contoh dari dirinya sendiri), memungkinkan [[metaprogramming]] dan [[Refleksi (pemrograman komputer)|refleksi]]. |
|||
=== Operasi arimatika === |
|||
Python memiliki simbol biasa untuk operator aritmatika (<code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>), operator divisi lantai <code>//</code> dan [[operasi modulus]] <code>%</code> (dimana sisanya bisa negatif, <!--tidak seperti dalam bahasa C tergantung pada kompiler,<ref>{{Cite web|url=https://stackoverflow.com/questions/11720656/modulo-operation-with-negative-numbers/42131603|title=c - Modulo operation with negative numbers|quote=Note that, in C89, whether the result round upward or downward is implementation-defined.|website=Stack Overflow|access-date=25 September 2019}}</ref>--> misalnya, <code>4 % -3 == -2</code>). Ini juga memiliki <code>**</code> untuk [[Eksponensiasi|eksponensial]], misalnya, <code>5**3 == 125</code> dan <code>9**0.5 == 3.0</code>, dan sebuah matriks operator perkalian <code>@</code> .<ref>{{cite web|title=PEP 465 -- A dedicated infix operator for matrix multiplication|url=https://legacy.python.org/dev/peps/pep-0465/|work=python.org|archive-url=https://web.archive.org/web/20200529200310/https://legacy.python.org/dev/peps/pep-0465/|archive-date=29 May 2020|access-date=3 July 2018|url-status=live}}</ref> Operator ini bekerja seperti dalam matematika tradisional; dengan [[Urutan operasi|aturan operasi]] yang sama, [[Notasi Infiks|infiks]] operator (<code>+</code> dan <code>-</code> juga bisa [[Operasi uner|unary]] untuk masing-masing mewakili bilangan positif dan negatif). |
|||
== Contoh pemrograman Python == |
|||
Program [[Halo dunia|Halo Dunia]]: |
|||
<syntaxhighlight lang="python"> |
|||
print('Hello, world!') |
|||
</syntaxhighlight> |
|||
Program untuk menghitung [[faktorial]] dari bilangan bulat positif: |
|||
<syntaxhighlight lang="python" line="1"> |
|||
n = int(input('Ketik sebuah angka, dan faktorialnya akan diprinted: ')) |
|||
if n < 0: |
|||
raise ValueError('Anda harus memasukkan bilangan bulat bukan negatif') |
|||
faktorial = 1 |
|||
for i in range(2, n + 1): |
|||
faktorial *= i |
|||
print(faktorial) |
|||
</syntaxhighlight> |
|||
Contoh [[Kelas (ilmu komputer)|kelas]] dalam bahasa pemrograman Python: |
|||
<syntaxhighlight lang="python"> |
|||
class Orang: |
|||
def __init__(self, nama): |
|||
self.nama = nama |
|||
def tampilkan_nama(self): |
|||
return self.nama |
|||
orang = Orang("Wikipedia") # Initialisasi object |
|||
print(orang.tampilkan_nama()) # Output: Wikipedia |
|||
</syntaxhighlight> |
|||
== Pustaka == |
|||
[[Perpustakaan standar|Pustaka standar]] Python yang besar, biasanya disebut sebagai salah satu kekuatan terbesarnya,<ref name="AutoNT-86" /> menyediakan alat yang cocok untuk banyak tugas. Untuk aplikasi yang terhubung ke Internet, banyak format dan protokol standar seperti [[MIME]] dan [[HTTP]] didukung. Ini mencakup modul untuk membuat [[antarmuka pengguna grafis]], menghubungkan ke [[database relasional]], [[Generator nomor pseudorandom|menghasilkan nomor pseudorandom]], aritmatika dengan desimal presisi sewenang-wenang,<ref>{{Cite web|title=PEP 327 -- Decimal Data Type|url=https://www.python.org/dev/peps/pep-0327/|website=Python.org|language=en|access-date=2020-08-11}}</ref> memanipulasi [[ekspresi reguler]], dan [[pengujian unit]]. |
|||
Beberapa bagian dari pustaka standar dicakup oleh spesifikasi (misalnya, implementasi [[Web Server Gateway Interface]] (WSGI) <code>wsgiref</code> mengikuti PEP 333<ref>{{Cite web|title=PEP 333 -- Python Web Server Gateway Interface v1.0|url=https://www.python.org/dev/peps/pep-0333/|website=Python.org|language=en|access-date=2021-01-22}}</ref>), tetapi kebanyakan modul tidak. Mereka ditentukan oleh kode, dokumentasi internal, dan [[test suites]] mereka. Namun, karena sebagian besar pustaka standar adalah kode Python lintas platform, hanya beberapa modul yang perlu diubah atau ditulis ulang untuk implementasi varian. |
|||
Mulai Juni 2022, [[Python Package Index]] (PyPI), repositori resmi untuk perangkat lunak Python pihak ketiga, berisi lebih dari 380,000<ref>{{Cite web|title=Modulecounts|url=http://www.modulecounts.com/|website=www.modulecounts.com|access-date=2020-08-19}}</ref> paket dengan berbagai fungsi, termasuk: |
|||
{{columns-list|colwidth=30em| |
|||
* [[Teknik otomasi|Otomatisasi]] |
|||
* [[Analisis data]] |
|||
* [[Database]] |
|||
* [[Dokumentasi]] |
|||
* [[Antarmuka pengguna grafis]] |
|||
* [[Pengolahan citra]] |
|||
* [[Machine learning]] |
|||
* [[Aplikasi seluler|Aplikasi Seluler]] |
|||
* [[Multimedia]] |
|||
* [[Jaringan komputer]] |
|||
* [[Komputasi|Komputasi ilmiah]] |
|||
* [[Sistem administrasi]] |
|||
* [[Kerangka uji]] |
|||
* [[Pemrosesan teks]] |
|||
* [[Kerangka web]] |
|||
* [[Web scraping]]<ref>{{Cite web|last=Ebrahim|first=Mokhtar|date=2017-12-05|title=Python web scraping tutorial (with examples)|url=https://likegeeks.com/python-web-scraping/|website=Like Geeks|language=en-US|access-date=2020-08-19}}</ref> |
|||
}} |
|||
== Lingkungan pengembangan == |
|||
Sebagian besar implementasi Python (termasuk CPython) menyertakan [[read–eval–print loop]] (REPL), yang memungkinkan mereka berfungsi sebagai [[Antarmuka baris perintah#Penerjemah baris perintah|penerjemah baris perintah]] di mana pengguna memasukkan pernyataan secara berurutan dan menerima hasil dengan segera. |
|||
Shell lain, termasuk [[IDLE]] dan [[IPython]], menambahkan kemampuan lebih lanjut seperti penyelesaian otomatis yang ditingkatkan, retensi status sesi, dan [[Syntax highlighting]]. |
|||
Selain [[integrated development environments]] desktop standar, ada IDE berbasis [[Peramban web|peramban Web]]; [[SageMath]] (dimaksudkan untuk mengembangkan program Python yang berhubungan dengan sains dan matematika); [[PythonAnywhere]], IDE berbasis browser dan lingkungan hosting; dan Canopy IDE, IDE Python komersial yang menekankan [[komputasi ilmiah]].<ref>{{cite web|last1=Enthought|first1=Canopy|title=Canopy|url=https://www.enthought.com/products/canopy/|website=www.enthought.com|accessdate=20 August 2016|archive-date=2017-07-15|archive-url=https://web.archive.org/web/20170715151703/https://www.enthought.com/products/canopy/|dead-url=yes}}</ref> |
|||
== Konferensi Pengembang == |
|||
Konferensi pengembang Python di Indonesia ([[PyCon Indonesia]]<ref>{{cite web|title=PyCon Indonesia 2019|url=https://pycon.id/|accessdate=2019-10-17}}</ref>) dilaksanakan sejak tahun 2017, berlangsung setiap tahun. |
|||
Berikut tema dan lokasi konferensi pengembang Python Indonesia: |
|||
# Tahun 2017 di Surabaya dengan tema "A New Beginning" |
|||
# Tahun 2018 di Jakarta dengan tema "Python for Everyone" |
|||
# Tahun 2019 di Surabaya dengan tema "The Beauty of Python" |
|||
# Tahun 2020 secara daring dengan tema "Connect - Collab - Contribute" |
|||
Ini adalah kegiatan yang dilaksanakan oleh komunitas Python Indonesia. |
|||
== Generator dokumentasi API == |
|||
Alat yang dapat digunakan untuk membuat dokumentasi API Python termasuk [[pydoc]] (tersedia sebagai bagian dari pustaka standar), [[Sphinx (documentation generator)|Sphinx]], [[Pdoc]] dan forknya, [[Doxygen]] dan [[Graphviz]], diantara yang lain.<ref>{{Cite web|title=Documentation Tools|url=https://wiki.python.org/moin/DocumentationTools|website=Python.org|language=en|archive-url=https://web.archive.org/web/20201111173635/https://wiki.python.org/moin/DocumentationTools|archive-date=11 November 2020|access-date=2021-03-22|url-status=live}}</ref> |
|||
== Bahasa yang dipengaruhi oleh Python == |
|||
Desain dan filosofi Python telah memengaruhi banyak bahasa pemrograman lainnya: |
|||
* [[Boo (bahasa pemrograman)|Boo]] menggunakan indentasi, sebuah sintaks yang serupa, dan model objek yang serupa.<ref name="AutoNT-90" /> |
|||
* [[Cobra (bahasa pemrograman)|Cobra]] menggunakan indentasi dan sebuah sintaks yang serupa, dan dokumen ''Pengakuannya'' mencantumkan Python pertama di antara bahasa yang memengaruhinya<ref name="AutoNT-91" /> |
|||
* [[CoffeeScript]], sebuah bahasa pemrograman yang dikompilasi silang ke JavaScript, memiliki sintaks yang terinspirasi Python. |
|||
* [[ECMAScript]]/[[JavaScript]] meminjam iterator dan generator dari Python.<ref name="AutoNT-93" /> |
|||
* [[GDScript]], bahasa scripting yang sangat mirip dengan Python, built-in ke mesin permainan [[Godot (mesin permainan)|Godot]].<ref>{{Cite web|title=Frequently asked questions|url=https://docs.godotengine.org/en/stable/about/faq.html|website=Godot Engine documentation|archive-url=https://web.archive.org/web/20210428053339/https://docs.godotengine.org/en/stable/about/faq.html|archive-date=28 April 2021|access-date=10 May 2021|url-status=live}}</ref> |
|||
* [[Go (bahasa pemrograman)|Go]] didesain untuk "kecepatan bekerja dalam bahasa dinamis seperti Python"<ref name="AutoNT-94" /> dan berbagi sintaks yang sama untuk mengiris array. |
|||
* [[Swift (bahasa pemrograman)|Swift]], sebuah bahasa pemrograman yang dikembangkan oleh Apple, memiliki beberapa sintaks yang terinspirasi Python.<ref>{{cite web|last=Lattner|first=Chris|author-link=Chris Lattner|date=3 June 2014|title=Chris Lattner's Homepage|url=http://nondot.org/sabre|publisher=Chris Lattner|archive-url=https://web.archive.org/web/20151222150510/http://nondot.org/sabre/|archive-date=22 December 2015|access-date=3 June 2014|quote=I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.|url-status=live}}</ref> |
|||
== Sertifikasi Python == |
|||
Python Institute adalah lembaga yang kredibel yang menawarkan sertifikasi Python. Python Institute didirikan pada tahun 2003 oleh Guido van Rossum, pencipta bahasa pemrograman Python. Python Institute memiliki misi untuk mempromosikan penggunaan Python dan meningkatkan keterampilan pengembang Python. Python Institute telah menetapkan jalur sertifikasi global independen untuk bahasa pemrograman Python. Jalur tersebut terdiri dari enam track sertifikasi<ref>{{Cite web|title=Certification Overview|url=https://pythoninstitute.org/certification-tracks|website=pythoninstitute.org|access-date=2024-06-05}}</ref>: |
|||
* General-Purpose Programming (PCEP™, PCAP™, PCPP1™, and PCPP2™ exams) |
|||
* Data Science (PCED™ and PCAD™ exams) |
|||
* Testing (PCET™, PCAT™, and PCPT™ exams) |
|||
* Security (PCES™, and PCAS™ exams) |
|||
* Network Programming (PCEN™, and PCAN™ exams) |
|||
* Web Development (PCEW™, and PCAW™ exams) |
|||
== Lihat pula == |
== Lihat pula == |
||
* [[Jython]] |
* [[Jython]] (java) |
||
* [[PyPy]] |
* [[PyPy]] |
||
* [[JavaScript]] |
|||
== |
== Referensi == |
||
{{reflist}} |
{{reflist}} |
||
== Bacaan lanjutan == |
|||
<!-- THIS IS *NOT* A LIST OF ALL PYTHON BOOKS |
|||
According to [[Wikipedia:Further reading]], criteria for inclusion includes: |
|||
1. Should clearly qualify as WP:RS, as indicated by reviews and citations to it. |
|||
... |
|||
5. There should be guidelines on limiting the number of sources. |
|||
6. To avoid spam, any book included should have received more than one good review in RS: newspapers and scholarly journals being the norm, and the clear balance of RS reviews should be positive. This would avoid self-publish spamming, POV pushing, and attempts by publishers to get books promoted through inclusion on Wikipedia. At the moment "editorial recommendations" as described in the manual smacks of OR. |
|||
7. Neutrality on the part of editors is essential. In terms of major debates, items representing all major positions should be included, with annotations indicating the specific POV of each. We may have to work out rules where topic disputes are irreconcilable. |
|||
--> |
|||
* {{cite book |last=Downey |first=Allen B. |title=Think Python: How to Think Like a Computer Scientist |edition=Version 1.6.6 |date=May 2012 |isbn=978-0-521-72596-5 }} |
|||
* {{cite news |url=http://www.computerworld.com.au/index.php/id;66665771 |title=The A-Z of Programming Languages: Python |last=Hamilton |first=Naomi |date=5 August 2008 |work=Computerworld |access-date=31 March 2010 |url-status=dead |archive-url=https://web.archive.org/web/20081229095320/http://www.computerworld.com.au/index.php/id%3B66665771 |archive-date=29 December 2008}} |
|||
* {{cite book |last=Lutz |first=Mark |title=Learning Python |publisher=O'Reilly Media |year=2013 |edition=5th |isbn=978-0-596-15806-4 }} |
|||
* {{cite book |last=Pilgrim |first=Mark |title=Dive into Python |publisher=Apress |year=2004 |isbn=978-1-59059-356-1 |url-access=registration |url=https://archive.org/details/diveintopython0000pilg }} |
|||
* {{cite book |last=Pilgrim |first=Mark |title=Dive into Python 3 |url=https://archive.org/details/diveintopython30000pilg |publisher=Apress |year=2009 |isbn=978-1-4302-2415-0 }} |
|||
* {{cite book |last=Summerfield |first=Mark |title=Programming in Python 3 |publisher=Addison-Wesley Professional|year=2009|edition=2nd|isbn=978-0-321-68056-3 }} |
|||
== Pranala luar == |
== Pranala luar == |
||
<!-- ===================== {{No more links}} ========================= |
|||
* {{en}} [http://www.python.org/ Situs resmi bahasa pemrograman Python] |
|||
| PLEASE BE CAUTIOUS IN ADDING MORE LINKS TO THIS ARTICLE. Wikipedia | |
|||
* {{en}} [http://pypi.python.org/pypi/ Kumpulan modul/paket Python] |
|||
| is not a collection of links nor should it be used for advertising. | |
|||
* {{en}} [http://www.linuxjournal.com/article/3882 ''Why Python?'' oleh Eric Raymond] |
|||
| | |
|||
* {{en}} [http://planet.python.org Situs Agregasi Blog Planet Python] |
|||
| Excessive or inappropriate links WILL BE DELETED. | |
|||
* {{id}} [http://python.or.id Situs komunitas Python Indonesia] |
|||
| See [[Wikipedia:Pranala luar]] & [[Wikipedia:Spam]] for details. | |
|||
* {{id}} [http://tech.groups.yahoo.com/group/id-python/ Milis komunitas Python Indonesia] |
|||
| | |
|||
{{Daftar bahasa pemrograman}} |
|||
| If there are already plentiful links, please propose additions or | |
|||
| replacements on this article's discussion page, or submit your link | |
|||
| to the relevant category at the Open Directory Project (dmoz.org) | |
|||
| and link back to that category using the {{Dmoz}} template. | |
|||
========================== {{No more links}} ====================== --> |
|||
{{Sister project links |wikt=no |display=Python |commons=Category:Python (programming language) |b=Python Programming |n=no |s=no |voy=no |species=no |d=Q28865}} |
|||
* {{Official website}} |
|||
{{Daftar bahasa pemrograman}}{{Authority control}} |
|||
[[Kategori:Bahasa pemrograman]] |
[[Kategori:Bahasa pemrograman]] |
||
[[Kategori:Keluarga bahasa pemrograman Python]] |
|||
[[Kategori:Perangkat lunak bebas]] |
[[Kategori:Perangkat lunak bebas]] |
||
[[Kategori:Python (bahasa pemrograman)]] |
|||
{{Link GA|de}} |
|||
[[Kategori:Bahasa skrip]] |
|||
{{Link GA|en}} |
|||
[[Kategori:Perangkat lunak lintas platform]] |
|||
{{Link FA|ru}} |
|||
[[Kategori:Bahasa pemrograman dibuat pada tahun 1991]] |
|||
[[Kategori:Pendidikan bahasa pemrograman]] |
|||
[[eu:Python]] |
|||
[[Kategori:Penemuan Belanda]] |
|||
[[mk:Питон (програмски јазик)]] |
Revisi terkini sejak 11 Juli 2024 10.02
artikel ini perlu dirapikan agar memenuhi standar Wikipedia. |
Python | |
---|---|
Paradigma | Multi-paradigma: fungsional, imperatif, berorientasi objek, terstruktur, reflektif |
Dirancang oleh | Guido van Rossum |
Pengembang | Python Software Foundation |
Rilis perdana | 1990[1] |
Rilis stabil | 3.13.0[2]
/ 7 Oktober 2024 |
Tipe sistem | Duck, dynamic, gradual (sejak 3.5)[3] |
Sistem operasi | Linux, macOS, Windows Vista (dan yang terbaru) dan banyak lagi |
Lisensi | Python Software Foundation License |
Ekstensi nama berkas | .py, .pyi, .pyc, .pyd, .pyo (sebelum 3.5),[4] .pyw, .pyz (sejak 3.5)[5] |
Situs web | www |
Repositori | www |
Implementasi utama | |
Dialek | |
Cython, RPython, Starlark[6] | |
Terpengaruh oleh | |
ABC,[7] Ada,[8] ALGOL 68,[9] APL,[10] C,[11] C++,[12] CLU,[13] Dylan,[14] Haskell,[15] Icon,[16] Java,[17] Lisp,[18] Modula-3,[12] Perl, Standard ML[10] | |
Mempengaruhi | |
Apache Groovy, Boo, Cobra, CoffeeScript,[19] D, F#, Genie,[20] Go, JavaScript,[21][22] Julia,[23] Nim, Ring,[24] Ruby,[25] Swift[26] | |
Sunting kotak info • L • B |
Python adalah bahasa pemrograman tujuan umum yang ditafsirkan, tingkat tinggi. Dibuat oleh Guido van Rossum dan pertama kali dirilis pada tahun 1991, filosofi desain Python menekankan keterbacaan kode dengan penggunaan spasi putih yang signifikan. Konstruksi bahasanya dan pendekatan berorientasi objek bertujuan untuk membantu pemrogram menulis kode yang jelas dan logis untuk proyek skala kecil dan besar.[27]
Python diketik secara dinamis dan pengumpulan sampah. Ini mendukung beberapa paradigma pemrograman, termasuk pemrograman terstruktur (terutama, prosedural), berorientasi objek, dan fungsional. Python sering dideskripsikan sebagai bahasa "termasuk baterai" karena perpustakaan standarnya yang komprehensif.[28]
Python dibuat pada akhir 1980-an sebagai penerus bahasa ABC. Python 2.0, dirilis pada tahun 2000, memperkenalkan fitur-fitur seperti pemahaman daftar dan sistem pengumpulan sampah dengan penghitungan referensi.
Python 3.0, dirilis pada tahun 2008, adalah revisi utama dari bahasa yang tidak sepenuhnya kompatibel dengan versi sebelumnya, dan banyak kode Python 2 yang tidak berjalan tanpa modifikasi pada Python 3.
Penerjemah Python tersedia untuk banyak sistem operasi. Komunitas pemrogram global mengembangkan dan memelihara CPython, implementasi referensi[29] yang bebas dan sumber terbuka. Sebuah organisasi nirlaba, Python Software Foundation, mengelola dan mengarahkan sumber daya untuk pengembangan Python dan CPython.
Python secara konsisten menempati peringkat sebagai salah satu bahasa pemrograman paling populer.[30][31][32][33]
Sejarah
[sunting | sunting sumber]Python dibuat pada akhir 1980-an[34] oleh Guido van Rossum di Centrum Wiskunde & Informatica (CWI) di Belanda sebagai penerus bahasa ABC (sendiri terinspirasi oleh SETL),[35] mampu menangani pengecualian dan berinteraksi dengan sistem operasi Amoeba.[36] Implementasinya dimulai pada bulan Desember 1989. Van Rossum memikul tanggung jawab penuh atas proyek tersebut, sebagai pengembang utama, hingga 12 Juli 2018, ketika ia mengumumkan "liburan permanen" dari tanggung jawabnya sebagai Benevolent Dictator For Life Python, sebuah gelar yang diberikan komunitas Python kepadanya untuk mencerminkan komitmen jangka panjangnya sebagai pengambil keputusan utama proyek.
Python 2.0 dirilis pada 16 Oktober 2000 dengan banyak fitur utama baru, termasuk pengumpul sampah pendeteksian siklus dan dukungan untuk Unicode.
Tanggal akhir masa pakai Python 2.7 yang awalnya ditetapkan pada tahun 2015 kemudian ditunda hingga tahun 2020 karena sejumlah besar kode yang tidak dapat dengan mudah dilanjutkan ke Python 3.
Python 3.6 (dan setiap perilisan lama), tidak lagi didukung per 2021.
Pada 2022, Python 3.10.4 dan 3.9.12 dipercepat dan begitu juga perilisan yang lebih lama termasuk 3.8.13, dan 3.7.13 dikarenakan banyak masalah keamanan pada 2022. Python 3.9.13 adalah versi 3.9 terbaru, dan mulai sekarang 3.9 (dan yang terlama; 3.8 dan 3.7) hanya akan mendapatkan pembaruan keamanan.[37]
Desain fitur dan filosofi
[sunting | sunting sumber]Python adalah bahasa pemrograman multi-paradigma. Pemrograman berorientasi objek dan pemrograman terstruktur juga didukung penuh, dan banyak fiturnya mendukung pemrograman fungsional dan pemrograman berorientasi aspek (termasuk dengan metaprogramming dan metaobjects (metode ajaib)). Banyak paradigma lain yang didukung melalui ekstensi, termasuk desain berdasarkan kontrak dan pemrograman logika.
Desain Python menawarkan beberapa dukungan untuk pemrograman fungsional dalam tradisi Lisp. Memiliki fungsi filter
, map
, dan reduce
;daftar pemahaman, kamus, set, dan ekspresi generator.[38] Pustaka standar memiliki dua modul (itertools dan functools) yang mengimplementasikan alat fungsional yang dipinjam dari Haskell dan Standard ML.[39]
Filosofi inti bahasa diringkas dalam dokumen The Zen of Python (PEP 20), yang mencakup kata-kata mutiara seperti:[40]
- Cantik itu lebih baik dari pada jelek.
- Eksplisit lebih baik daripada implisit.
- Sederhana lebih baik daripada kompleks.
- Kompleks lebih baik daripada rumit.
- Keterbacaan itu penting.
Daripada memiliki semua fungsionalitas yang dibangun ke dalam intinya, Python dirancang untuk menjadi sangat dapat dikembangkan. Modularitas yang ringkas ini membuatnya sangat populer sebagai sarana untuk menambahkan antarmuka yang dapat diprogram ke aplikasi yang ada. Visi Van Rossum tentang bahasa inti kecil dengan perpustakaan standar yang besar dan penerjemah yang mudah diperluas berasal dari rasa frustrasinya dengan ABC, yang mendukung pendekatan yang berlawanan.[34]
Pengembang Python menargetkan ini dapat menyenangkan untuk digunakan. Ini tercermin dalam namanya—sebuah penghargaan untuk grup komedi Inggris Monty Python—dan terkadang dengan pendekatan yang menyenangkan untuk tutorial dan materi referensi, seperti contoh yang merujuk pada spam dan telur (sebuah referensi ke sketsa Monty Python) alih-alih foo dan bar standar.
Pengguna dan peminat Python, terutama mereka yang dianggap berpengetahuan atau berpengalaman, sering disebut sebagai Pythonistas.
Sintaks dan semantik
[sunting | sunting sumber]Python dimaksudkan sebagai bahasa yang mudah dibaca. Pemformatannya tidak berantakan secara visual, dan sering kali menggunakan kata kunci bahasa Inggris di mana bahasa lain menggunakan tanda baca. Tidak seperti banyak bahasa lain, ia tidak menggunakan tanda kurung awal untuk membatasi blok, dan pernyataan titik koma setelahnya bersifat opsional. Ini memiliki lebih sedikit pengecualian sintaksis dan kasus khusus daripada C atau Pascal.
Indentasi
[sunting | sunting sumber]Python menggunakan indentasi spasi, daripada tanda kurung kurawal atau kata kunci, untuk membatasi blok. Peningkatan indentasi muncul setelah pernyataan tertentu; penurunan indentasi menandakan akhir dari blok saat ini. Dengan demikian, struktur visual program secara akurat mewakili struktur semantik program. Fitur ini terkadang disebut aturan off-side, yang dimiliki beberapa bahasa lain, tetapi di sebagian besar bahasa indentasi tidak memiliki arti semantik.
Pernyataan dan aliran kontrol
[sunting | sunting sumber]Penetapan nilai yang sama secara berurutan ke beberapa nama, misalnya, x=2
; y=2
; z=2
menghasilkan pengalokasian penyimpanan ke (paling banyak) tiga nama dan satu objek numerik, yang ketiganya terikat. Karena nama adalah pemegang referensi umum, tidak masuk akal untuk mengasosiasikan tipe data tetap dengannya. Namun pada waktu tertentu sebuah nama akan terikat ke suatu objek, yang akan memiliki tipe; jadi ada pengetikan dinamis.
- Pernyataan
if
, yang secara kondisional mengeksekusi blok kode, bersama denganelse
danelif
(sebuah kontraksi dari else-if). - Pernyataan
for
yang melakukan iterasi pada objek yang dapat diulang, menangkap setiap elemen ke variabel lokal untuk digunakan oleh blok terlampir. - Pernyataan
while
yang mengeksekusi sebuah blok kode selama kondisinya benar. - Pernyataan
try
yang memungkinkan pengecualian yang dimunculkan dalam blok kode terlampir untuk ditangkap dan ditangani olehexcept
klausul; itu juga memastikan bahwa kode-pembersihan dalam file blokfinally
akan selalu berjalan terlepas dari bagaimana blok keluar. - Pernyataan
raise
digunakan untuk memunculkan pengecualian tertentu atau memunculkan kembali pengecualian yang tertangkap. - Pernyataan
class
yang mengeksekusi blok kode dan menempelkan namespace lokalnya ke class, untuk digunakan dalam pemrograman berorientasi objek. - Pernyataan
def
yang mendefinisikan fungsi atau metode. - Pernyataan
with
dari Python 2.5 dirilis pada September 2006, yang membungkus blok kode dalam manajer konteks (misalnya, memperoleh kunci sebelum blok kode dijalankan dan melepaskan kunci setelahnya, atau membuka file dan kemudian menutupnya), memungkinkan perilaku seperti Resource Acquisition Is Initialization (RAII) dan menggantikan idiom percobaan / akhirnya yang umum.[41] - Pernyataan
break
keluar dari loop. - Pernyataan
continue
melewati iterasi ini dan melanjutkan dengan item berikutnya. - Pernyataan
pass
yang berfungsi sebagai NOP. Ini secara sintaksis diperlukan untuk membuat blok kode kosong. - Pernyataan
assert
digunakan selama debugging untuk memeriksa kondisi yang seharusnya diterapkan. - Pernyataan
yield
yang mengembalikan nilai dari fungsi generator. Dari Python 2.5,yield
juga seorang operator. Formulir ini digunakan untuk mengimplementasikan coroutine. - Pernyataan
import
, yang digunakan untuk mengimpor modul yang fungsi atau variabelnya dapat digunakan dalam program saat ini. Ada tiga cara menggunakan import:import <nama modul> [sebagai <alias>]
ataufrom <nama modul> import *
ataufrom <nama modul> import <definisi 1> [sebagai <alias 1>], <definisi 2> [sebagai <alias 2>], ...
. - Pernyataan
print
diubah menjadi fungsiprint()
dengan Python 3.
Metode
[sunting | sunting sumber]Metode pada objek adalah fungsi yang dilampirkan ke kelas objek; sintaks instance.method(argument)
adalah, untuk metode dan fungsi normal, gula sintaksis untuk Class.method(instance, argument)
. Metode Python memiliki explisit self
parameter untuk mengakses data instance, berbeda dengan yang tersirat self
(atau this
) dalam beberapa bahasa pemrograman berorientasi objek lainnya (mis., C++, Java, Objective-C, atau Ruby). Python juga menyediakan metode, sering dipanggil dunder methods (karena nama mereka dimulai dan diakhiri dengan garis bawah ganda), untuk mengizinkan kelas yang ditentukan pengguna untuk mengubah cara mereka ditangani oleh operasi asli termasuk panjang, perbandingan, dalam operasi aritmatika dan konversi penulisan.
Penulisan
[sunting | sunting sumber]Python menggunakan duck typing dan memiliki objek yang diketik tetapi nama variabel yang tidak diketik. Batasan jenis tidak diperiksa pada waktu kompilasi; sebaliknya, operasi pada suatu objek mungkin gagal, menandakan bahwa objek yang diberikan bukan tipe yang sesuai. Meskipun diketik secara dinamis, Python diketik dengan kuat, melarang operasi yang tidak terdefinisi dengan baik (misalnya, menambahkan angka ke string) daripada secara diam-diam mencoba memahaminya.
Python memungkinkan pemrogram untuk menentukan tipe mereka sendiri menggunakan kelas, yang paling sering digunakan untuk pemrograman berorientasi objek. Contoh instance baru dibangun dengan memanggil kelas (misalnya, SpamClass()
atauEggsClass()
), dan kelas-kelasnya adalah instance dari metaclass type
(itu sendiri merupakan contoh dari dirinya sendiri), memungkinkan metaprogramming dan refleksi.
Operasi arimatika
[sunting | sunting sumber]Python memiliki simbol biasa untuk operator aritmatika (+
, -
, *
, /
), operator divisi lantai //
dan operasi modulus %
(dimana sisanya bisa negatif, misalnya, 4 % -3 == -2
). Ini juga memiliki **
untuk eksponensial, misalnya, 5**3 == 125
dan 9**0.5 == 3.0
, dan sebuah matriks operator perkalian @
.[42] Operator ini bekerja seperti dalam matematika tradisional; dengan aturan operasi yang sama, infiks operator (+
dan -
juga bisa unary untuk masing-masing mewakili bilangan positif dan negatif).
Contoh pemrograman Python
[sunting | sunting sumber]Program Halo Dunia:
print('Hello, world!')
Program untuk menghitung faktorial dari bilangan bulat positif:
n = int(input('Ketik sebuah angka, dan faktorialnya akan diprinted: '))
if n < 0:
raise ValueError('Anda harus memasukkan bilangan bulat bukan negatif')
faktorial = 1
for i in range(2, n + 1):
faktorial *= i
print(faktorial)
Contoh kelas dalam bahasa pemrograman Python:
class Orang:
def __init__(self, nama):
self.nama = nama
def tampilkan_nama(self):
return self.nama
orang = Orang("Wikipedia") # Initialisasi object
print(orang.tampilkan_nama()) # Output: Wikipedia
Pustaka
[sunting | sunting sumber]Pustaka standar Python yang besar, biasanya disebut sebagai salah satu kekuatan terbesarnya,[43] menyediakan alat yang cocok untuk banyak tugas. Untuk aplikasi yang terhubung ke Internet, banyak format dan protokol standar seperti MIME dan HTTP didukung. Ini mencakup modul untuk membuat antarmuka pengguna grafis, menghubungkan ke database relasional, menghasilkan nomor pseudorandom, aritmatika dengan desimal presisi sewenang-wenang,[44] memanipulasi ekspresi reguler, dan pengujian unit.
Beberapa bagian dari pustaka standar dicakup oleh spesifikasi (misalnya, implementasi Web Server Gateway Interface (WSGI) wsgiref
mengikuti PEP 333[45]), tetapi kebanyakan modul tidak. Mereka ditentukan oleh kode, dokumentasi internal, dan test suites mereka. Namun, karena sebagian besar pustaka standar adalah kode Python lintas platform, hanya beberapa modul yang perlu diubah atau ditulis ulang untuk implementasi varian.
Mulai Juni 2022, Python Package Index (PyPI), repositori resmi untuk perangkat lunak Python pihak ketiga, berisi lebih dari 380,000[46] paket dengan berbagai fungsi, termasuk:
Lingkungan pengembangan
[sunting | sunting sumber]Sebagian besar implementasi Python (termasuk CPython) menyertakan read–eval–print loop (REPL), yang memungkinkan mereka berfungsi sebagai penerjemah baris perintah di mana pengguna memasukkan pernyataan secara berurutan dan menerima hasil dengan segera.
Shell lain, termasuk IDLE dan IPython, menambahkan kemampuan lebih lanjut seperti penyelesaian otomatis yang ditingkatkan, retensi status sesi, dan Syntax highlighting.
Selain integrated development environments desktop standar, ada IDE berbasis peramban Web; SageMath (dimaksudkan untuk mengembangkan program Python yang berhubungan dengan sains dan matematika); PythonAnywhere, IDE berbasis browser dan lingkungan hosting; dan Canopy IDE, IDE Python komersial yang menekankan komputasi ilmiah.[48]
Konferensi Pengembang
[sunting | sunting sumber]Konferensi pengembang Python di Indonesia (PyCon Indonesia[49]) dilaksanakan sejak tahun 2017, berlangsung setiap tahun.
Berikut tema dan lokasi konferensi pengembang Python Indonesia:
- Tahun 2017 di Surabaya dengan tema "A New Beginning"
- Tahun 2018 di Jakarta dengan tema "Python for Everyone"
- Tahun 2019 di Surabaya dengan tema "The Beauty of Python"
- Tahun 2020 secara daring dengan tema "Connect - Collab - Contribute"
Ini adalah kegiatan yang dilaksanakan oleh komunitas Python Indonesia.
Generator dokumentasi API
[sunting | sunting sumber]Alat yang dapat digunakan untuk membuat dokumentasi API Python termasuk pydoc (tersedia sebagai bagian dari pustaka standar), Sphinx, Pdoc dan forknya, Doxygen dan Graphviz, diantara yang lain.[50]
Bahasa yang dipengaruhi oleh Python
[sunting | sunting sumber]Desain dan filosofi Python telah memengaruhi banyak bahasa pemrograman lainnya:
- Boo menggunakan indentasi, sebuah sintaks yang serupa, dan model objek yang serupa.[51]
- Cobra menggunakan indentasi dan sebuah sintaks yang serupa, dan dokumen Pengakuannya mencantumkan Python pertama di antara bahasa yang memengaruhinya[52]
- CoffeeScript, sebuah bahasa pemrograman yang dikompilasi silang ke JavaScript, memiliki sintaks yang terinspirasi Python.
- ECMAScript/JavaScript meminjam iterator dan generator dari Python.[53]
- GDScript, bahasa scripting yang sangat mirip dengan Python, built-in ke mesin permainan Godot.[54]
- Go didesain untuk "kecepatan bekerja dalam bahasa dinamis seperti Python"[55] dan berbagi sintaks yang sama untuk mengiris array.
- Swift, sebuah bahasa pemrograman yang dikembangkan oleh Apple, memiliki beberapa sintaks yang terinspirasi Python.[56]
Sertifikasi Python
[sunting | sunting sumber]Python Institute adalah lembaga yang kredibel yang menawarkan sertifikasi Python. Python Institute didirikan pada tahun 2003 oleh Guido van Rossum, pencipta bahasa pemrograman Python. Python Institute memiliki misi untuk mempromosikan penggunaan Python dan meningkatkan keterampilan pengembang Python. Python Institute telah menetapkan jalur sertifikasi global independen untuk bahasa pemrograman Python. Jalur tersebut terdiri dari enam track sertifikasi[57]:
- General-Purpose Programming (PCEP™, PCAP™, PCPP1™, and PCPP2™ exams)
- Data Science (PCED™ and PCAD™ exams)
- Testing (PCET™, PCAT™, and PCPT™ exams)
- Security (PCES™, and PCAS™ exams)
- Network Programming (PCEN™, and PCAN™ exams)
- Web Development (PCEW™, and PCAW™ exams)
Lihat pula
[sunting | sunting sumber]- Jython (java)
- PyPy
- JavaScript
Referensi
[sunting | sunting sumber]- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaguttag
- ^ "Python 3.13 released"; diakses pada: 7 Oktober 2024; bahasa yang digunakan: bahasa Inggris; tanggal terbit: 7 Oktober 2024.
- ^ "PEP 483 -- The Theory of Type Hints". Python.org.
- ^ File extension .pyo was removed in Python 3.5. See PEP 0488
- ^ Holth, Moore (30 March 2014). "PEP 0441 -- Improving Python ZIP Application Support". Diakses tanggal 12 November 2015.
- ^ "Starlark Language". Diakses tanggal 25 May 2019.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamafaq-created
- ^ "Ada 83 Reference Manual (raise statement)".
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernama98-interview
- ^ a b "itertools — Functions creating iterators for efficient looping — Python 3.7.1 documentation". docs.python.org.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-1
- ^ a b Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaclassmix
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaeffbot-call-by-object
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-2
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-3
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-4
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-5
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-6
- ^ "CoffeeScript". coffeescript.org.
- ^ "The Genie Programming Language Tutorial". Diakses tanggal 28 February 2020.
- ^ "Perl and Python influences in JavaScript". www.2ality.com. 24 February 2013. Diakses tanggal 15 May 2015.
- ^ Rauschmayer, Axel. "Chapter 3: The Nature of JavaScript; Influences". O'Reilly, Speaking JavaScript. Diarsipkan dari versi asli tanggal 2018-12-26. Diakses tanggal 15 May 2015.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaJulia
- ^ Ring Team (4 December 2017). "Ring and other languages". ring-lang.net. ring-lang.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamabini
- ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. Diakses tanggal 3 June 2014.
The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
- ^ "A Python Book: Beginning Python, Advanced Python, and Python Exercises". web.archive.org. 2012-06-23. Archived from the original on 2012-06-23. Diakses tanggal 2020-08-11.
- ^ "Welcome to Python.org". Python.org (dalam bahasa Inggris). Diakses tanggal 2020-08-11.
- ^ "History and License — Python 3.8.5 documentation". docs.python.org. Diakses tanggal 2020-08-11.
- ^ "Stack Overflow Developer Survey 2020". Stack Overflow. Diarsipkan dari versi asli tanggal 2 March 2021. Diakses tanggal 2021-03-05.
- ^ "The State of Developer Ecosystem in 2020 Infographic". JetBrains: Developer Tools for Professionals and Teams (dalam bahasa Inggris). Diarsipkan dari versi asli tanggal 1 March 2021. Diakses tanggal 2021-03-05.
- ^ "index | TIOBE - The Software Quality Company". www.tiobe.com. Diarsipkan dari versi asli tanggal 25 February 2018. Diakses tanggal 2021-02-02.
Python has won the TIOBE programming language of the year award! This is for the fourth time in the history, which is a record! The title is awarded to the programming language that has gained most popularity in one year.
- ^ "PYPL PopularitY of Programming Language index". pypl.github.io (dalam bahasa Inggris). Diarsipkan dari versi asli tanggal 14 March 2017. Diakses tanggal 2021-03-26.
- ^ a b "The Making of Python". www.artima.com. Diakses tanggal 2020-08-11.
- ^ Rossum, Guido van (2000-08-29). "[Python-Dev] SETL (was: Lukewarm about range literals)". Diakses tanggal 2020-08-11.
- ^ "General Python FAQ — Python 3.8.5 documentation". docs.python.org. Diakses tanggal 2020-08-11.
- ^ Langa, Łukasz (2022-05-17). "Python Insider: Python 3.9.13 is now available". Python Insider. Diakses tanggal 2022-05-21.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-59
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-18
- ^ "PEP 20 -- The Zen of Python". Python.org (dalam bahasa Inggris). Diakses tanggal 2020-09-24.
- ^ "Highlights: Python 2.5". Python.org.
- ^ "PEP 465 -- A dedicated infix operator for matrix multiplication". python.org. Diarsipkan dari versi asli tanggal 29 May 2020. Diakses tanggal 3 July 2018.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-86
- ^ "PEP 327 -- Decimal Data Type". Python.org (dalam bahasa Inggris). Diakses tanggal 2020-08-11.
- ^ "PEP 333 -- Python Web Server Gateway Interface v1.0". Python.org (dalam bahasa Inggris). Diakses tanggal 2021-01-22.
- ^ "Modulecounts". www.modulecounts.com. Diakses tanggal 2020-08-19.
- ^ Ebrahim, Mokhtar (2017-12-05). "Python web scraping tutorial (with examples)". Like Geeks (dalam bahasa Inggris). Diakses tanggal 2020-08-19.
- ^ Enthought, Canopy. "Canopy". www.enthought.com. Diarsipkan dari versi asli tanggal 2017-07-15. Diakses tanggal 20 August 2016.
- ^ "PyCon Indonesia 2019". Diakses tanggal 2019-10-17.
- ^ "Documentation Tools". Python.org (dalam bahasa Inggris). Diarsipkan dari versi asli tanggal 11 November 2020. Diakses tanggal 2021-03-22.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-90
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-91
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-93
- ^ "Frequently asked questions". Godot Engine documentation. Diarsipkan dari versi asli tanggal 28 April 2021. Diakses tanggal 10 May 2021.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaAutoNT-94
- ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. Diarsipkan dari versi asli tanggal 22 December 2015. Diakses tanggal 3 June 2014.
I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
- ^ "Certification Overview". pythoninstitute.org. Diakses tanggal 2024-06-05.
Bacaan lanjutan
[sunting | sunting sumber]- Downey, Allen B. (May 2012). Think Python: How to Think Like a Computer Scientist (edisi ke-Version 1.6.6). ISBN 978-0-521-72596-5.
- Hamilton, Naomi (5 August 2008). "The A-Z of Programming Languages: Python". Computerworld. Diarsipkan dari versi asli tanggal 29 December 2008. Diakses tanggal 31 March 2010.
- Lutz, Mark (2013). Learning Python (edisi ke-5th). O'Reilly Media. ISBN 978-0-596-15806-4.
- Pilgrim, Mark (2004). Dive into Python. Apress. ISBN 978-1-59059-356-1.
- Pilgrim, Mark (2009). Dive into Python 3. Apress. ISBN 978-1-4302-2415-0.
- Summerfield, Mark (2009). Programming in Python 3 (edisi ke-2nd). Addison-Wesley Professional. ISBN 978-0-321-68056-3.
Pranala luar
[sunting | sunting sumber]Cari tahu mengenai Python (bahasa pemrograman) pada proyek-proyek Wikimedia lainnya: | |
Gambar dan media dari Commons | |
Kutipan dari Wikiquote | |
Buku dari Wikibuku | |
Entri basisdata #Q28865 di Wikidata |