Python (bahasa pemrograman): Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tag: halaman dengan galat kutipan VisualEditor
k Membatalkan 1 suntingan by AmandaAmandaJoan (bicara): Iklan
Tag: Pembatalan halaman dengan galat kutipan
 
(30 revisi perantara oleh 16 pengguna tidak ditampilkan)
Baris 1:
{{rapikan}}
{{Infobox programming language
| logo = Python logo and wordmark.svg
Baris 22 ⟶ 23:
|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
|accessdate= 15 May 2015}}</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>
|archive-date=2018-12-26
|archive-url=https://web.archive.org/web/20181226141123/http://speakingjs.com/es5/ch03.html%0A
|dead-url=yes
|accessdate= 15 May 2015}}</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/}}
Baris 36 ⟶ 41:
}}
 
'''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=https://web.archive.org/web/20120623165941/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 [[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>
Baris 45 ⟶ 50:
 
[[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 ==
[[Berkas:Guido_van_Rossum_OSCON_2006_cropped.png|jmpl|225x225px|Perancang Python, [[Guido van Rossum]] di OSCON 2006]]
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.<ref>{{Cite web|last=Rossum|first=Guido Van|date=2009-01-20|title=The History of Python: A Brief Timeline of Python|url=https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html|website=The History of Python|access-date=2020-08-11}}</ref> 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.<ref>{{Cite web|title=Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life {{!}} Linux Journal|url=https://www.linuxjournal.com/content/guido-van-rossum-stepping-down-role-pythons-benevolent-dictator-life|website=www.linuxjournal.com|access-date=2020-08-11}}</ref>
 
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]].<ref>{{Cite web|title=What’s New in Python 2.0 — Python 3.8.5 documentation|url=https://docs.python.org/3/whatsnew/2.0.html|website=docs.python.org|access-date=2020-08-11}}</ref>
 
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.<ref>{{Cite web|title=PEP 466 -- Network Security Enhancements for Python 2.7.x|url=https://www.python.org/dev/peps/pep-0466/|website=Python.org|language=en|access-date=2020-08-11}}</ref>
 
Python 3.6 (dan setiap perilisan lama), tidak lagi didukung per 2021.
 
Pada 2022, Python&nbsp;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>
 
== 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]]<ref>{{Cite web|last=|first=|date=2009-05-30|title=The Cain Gang Ltd. "Python Metaclasses: Who? Why? When?" (PDF).|url=https://web.archive.org/web/20090530030205/http://www.python.org/community/pycon/dc2004/papers/24/metaclasses-pycon.pdf|website=web.archive.org|access-date=2020-08-12}}</ref> dan [[metaobjects]] (metode ajaib)).<ref>{{Cite web|title=Data model — Python v3.0.1 documentation|url=https://docs.python.org/3.0/reference/datamodel.html#special-method-names|website=docs.python.org|access-date=2020-08-12}}</ref> Banyak paradigma lain yang didukung melalui ekstensi, termasuk [[desain berdasarkan kontrak]]<ref>{{Cite web|title=Contracts for Python|url=http://www.nongnu.org/pydbc/|website=www.nongnu.org|access-date=2020-08-12}}</ref> dan [[pemrograman logika]].<ref>{{Cite web|last=|first=|date=|title="PyDatalog".|url=https://accounts.google.com/ServiceLogin?passive=1209600&continue=https://sites.google.com/site/pydatalog/&followup=https://sites.google.com/site/pydatalog/|website=accounts.google.com|access-date=2020-08-12}}</ref>
 
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" />
Baris 70 ⟶ 79:
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]]<ref name="AutoNT-24" />—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]].<ref>{{Cite web|title=15 Ways Python Is a Powerful Force on the Web|url=https://insidetech.monster.com/training/articles/8114-15-ways-python-is-a-powerful-force-on-the-web|archive-url=https://web.archive.org/web/20190511065650/http://insidetech.monster.com/training/articles/8114-15-ways-python-is-a-powerful-force-on-the-web|archive-date=11 May 2019|access-date=3 July 2018|url-status=dead}}</ref><ref>{{Cite web|title=8.18. pprint — Data pretty printer — Python 3.8.3 documentation|url=https://docs.python.org/3/library/pprint.html|website=docs.python.org|archive-url=https://web.archive.org/web/20210122224848/https://docs.python.org/3/library/pprint.html|archive-date=22 January 2021|access-date=4 June 2020|url-status=live}}</ref>
 
Pengguna dan peminat Python, terutama mereka yang dianggap berpengetahuan atau berpengalaman, sering disebut sebagai ''Pythonistas''.<ref name="AutoNT-27" /><ref name="AutoNT-25" />
 
== 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]].<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-12}}</ref>
 
=== indentasiIndentasi ===
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.<ref name="AutoNT-53" /> Dengan demikian, struktur visual program secara akurat mewakili struktur semantik program.<ref name="guttag">{{Cite book|last=Guttag|first=John V.|date=2016-08-12|title=Introduction to Computation and Programming Using Python: With Application to Understanding Data|publisher=MIT Press|isbn=978-0-262-52962-4}}</ref> 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 ===
Baris 89 ⟶ 98:
* 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 [[SubroutineSubrutin|fungsi]] atau [[Metode (pemrograman komputer)|metode]].
* Pernyataan <code>with</code> dari Python 2.5 dirilis pada September 2006,<ref>{{cite web|title=Python 2.5 Release|url=https://www.python.org/download/releases/2.5/|website=Python.org}}</ref> 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.
Baris 100 ⟶ 109:
 
=== 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]]).<ref name="AutoNT-61"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 ===
Baris 154 ⟶ 163:
 
{{columns-list|colwidth=30em|
* [[Teknik otomasi|Otomatisasi]]
* [[Analisis data]]
* [[Database]]
Baris 203 ⟶ 212:
* [[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 ==
* [[Jython]] (java)
* [[PyPy]]
* [[JavaScript]]
* [http://ironpython.net/ IronPython] (dotnet)
 
== Referensi ==
Baris 225 ⟶ 244:
* {{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 }}
 
Baris 246 ⟶ 265:
 
{{Daftar bahasa pemrograman}}{{Authority control}}
 
[[Kategori:Bahasa pemrograman]]
[[Kategori:Perangkat lunak bebas]]