Python (Bahasa Pemrograman)
Python (Bahasa Pemrograman)
Bahasa pemrograman tujuan umum tingkat tinggi yang ditafsirkan. Dibuat oleh Guido van Rossum dan pertama
kali dirilis pada tahun 1991, filosofi desain Python menekankan keterbacaan kode dengan penggunaan spasi putih
yang signifikan.
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 Python
Python 3.6 (dan setiap perilisan lama), tidak Repositori www.python.org (http
s://www.python.or
lagi didukung per 2021. g/)
Mempengaruhi
Desain fitur dan filosofi Apache Groovy, Boo, Cobra, CoffeeScript,[19] D,
F#, Genie,[20] Go, JavaScript,[21][22] Julia,[23]
Python adalah bahasa pemrograman multi- Nim, Ring,[24] Ruby,[25] Swift[26]
Sunting kotak info (https://id.wikipedia.org/w/index.ph
paradigma. Pemrograman berorientasi objek p?title=Python_(bahasa_pemrograman)&action=edit&s
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]
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.
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
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.
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 dengan else
dan elif (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 oleh except klausul; itu juga memastikan bahwa
kode-pembersihan dalam file blok finally akan selalu berjalan terlepas dari bagaimana
blok keluar.
Pernyataan class yang mengeksekusi blok kode dan menempelkan namespace lokalnya ke
class, untuk digunakan dalam pemrograman berorientasi objek.
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 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 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>] atau from <nama modul> import * atau
from <nama modul> import <definisi 1> [sebagai <alias 1>], <definisi
2> [sebagai <alias 2>], ... .
Pernyataan print diubah menjadi fungsi print() dengan Python 3.
Metode
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
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() atau EggsClass() ), dan kelas-
kelasnya adalah instance dari metaclass type (itu sendiri merupakan contoh dari dirinya
sendiri), memungkinkan metaprogramming dan refleksi.
Operasi arimatika
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).
print('Hello, world!')
class Orang:
def __init__(self, nama):
self.nama = nama
def tampilkan_nama(self):
return self.nama
Pustaka
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:
Otomatisasi
Analisis data
Database
Dokumentasi
Pengolahan citra
Machine learning
Aplikasi Seluler
Multimedia
Jaringan komputer
Komputasi ilmiah
Sistem administrasi
Kerangka uji
Pemrosesan teks
Kerangka web
Web scraping[47]
Lingkungan pengembangan
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
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
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]
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
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]:
Lihat pula
Jython (java)
PyPy
JavaScript
Referensi
1. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama guttag
4. File extension .pyo was removed in Python 3.5. See PEP 0488 (https://www.python.org/dev/peps/pep-
0488/)
5. Holth, Moore (30 March 2014). "PEP 0441 -- Improving Python ZIP Application Support" (https://www.p
ython.org/dev/peps/pep-0441/) . Diakses tanggal 12 November 2015.
7. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama faq-
created
9. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama 98-
interview
10. "itertools — Functions creating iterators for efficient looping — Python 3.7.1 documentation" (https://do
cs.python.org/3/library/itertools.html) . docs.python.org.
11. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-1
12. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama classmix
13. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama effbot-
call-by-object
14. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-2
15. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-3
16. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-4
17. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-5
18. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-6
23. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama Julia
24. Ring Team (4 December 2017). "Ring and other languages" (http://ring-lang.sourceforge.net/doc1.6/int
roduction.html#ring-and-other-languages) . ring-lang.net. ring-lang.
25. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama bini
26. Lattner, Chris (3 June 2014). "Chris Lattner's Homepage" (http://nondot.org/sabre/) . 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."
27. "A Python Book: Beginning Python, Advanced Python, and Python Exercises" (https://web.archive.org/
web/20120623165941/http://cutter.rexx.com/~dkuhlman/python_book_01.html) . web.archive.org.
2012-06-23. Archived from the original on 2012-06-23. Diakses tanggal 2020-08-11.
35. Rossum, Guido van (2000-08-29). "[Python-Dev] SETL (was: Lukewarm about range literals)" (https://m
ail.python.org/pipermail/python-dev/2000-August/008881.html) . Diakses tanggal 2020-08-11.
37. Langa, Łukasz (2022-05-17). "Python Insider: Python 3.9.13 is now available" (https://pythoninsider.blo
gspot.com/2022/05/python-3913-is-now-available.html) . Python Insider. Diakses tanggal
2022-05-21.
38. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-59
39. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-18
42. "PEP 465 -- A dedicated infix operator for matrix multiplication" (https://web.archive.org/web/2020052
9200310/https://legacy.python.org/dev/peps/pep-0465/) . python.org. Diarsipkan dari versi asli (http
s://legacy.python.org/dev/peps/pep-0465/) tanggal 29 May 2020. Diakses tanggal 3 July 2018.
43. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-86
45. "PEP 333 -- Python Web Server Gateway Interface v1.0" (https://www.python.org/dev/peps/pep-033
3/) . Python.org (dalam bahasa Inggris). Diakses tanggal 2021-01-22.
47. Ebrahim, Mokhtar (2017-12-05). "Python web scraping tutorial (with examples)" (https://likegeeks.co
m/python-web-scraping/) . Like Geeks (dalam bahasa Inggris). Diakses tanggal 2020-08-19.
52. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-91
53. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-93
55. Kesalahan pengutipan: Tag <ref> tidak sah; tidak ditemukan teks untuk ref bernama AutoNT-94
Bacaan lanjutan
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" (https://web.
archive.org/web/20081229095320/http://www.computerworld.com.au/index.php/id%3B6666
5771) . Computerworld. Diarsipkan dari versi asli (http://www.computerworld.com.au/index.p
hp/id;66665771) 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.
Cari tahu mengenai Python (bahasa pemrograman) pada proyek-proyek Wikimedia lainnya: