EBook ini merupakan proyek open source, bagi siapapun yang ingin berkontribusi silahkan kunjungi github.com/novalagung/. EBook Dasar-Dasar Pemrograman Python dapat didistribusikan secara bebas, baik secara komersial maupun non-komersial, dengan syarat mencantumkan sumber aslinya (yaitu Dasar-Dasar Pemrograman Python atau novalagung) dan tidak mengubah lisensi aslinya (yaitu CC BY-SA 4.0).
Penjelasan program
Source code praktik
Run Python di VSCode
- Cara run program Python di VSCode
Menggunakan command python
Menggunakan tombol run ▶
Menggunakan jupyter code cells
Chapter relevan lainnya
Python Komentar
- Komentar satu baris
- Komentar multi-baris
Biasanya digunakan untuk menambah informasi atau menonaktifkan pernyataan agar tidak dieksekusi saat program dijalankan.
Komentar menggunakan # dituliskan
Python Variabel
- Deklarasi variabel
Mendeklarasikan variabel dengan Python cukup sederhana: cukup tulis nama variabel, diikuti dengan operator penugasan, beserta nilai awal yang ingin Anda masukkan ke dalamnya. Kemudian coba tampilkan nilai keempat variabel di atas pada layar menggunakan fungsi print().
String formatting print
- Naming convention variabel
- Operasi assignment
- Deklarasi variabel beserta tipe data
- Deklarasi banyak variabel sebaris
- Python Konstanta
- Konstanta di Python
Merujuk pada dokumentasi PEP 8 – Style Guide for Python Code, disarankan agar nama variabel ditulis menggunakan Snake_case.
Module import
Naming convention konstanta
Python Tipe Data
- Tipe data numerik
- Tipe data string / str
- Tipe data bool
- Tipe data list
- Tipe data tuple
- Tipe data dictionary
- Tipe data set
- Tipe data lainnya
Nilai literal untuk tipe data boolean di Python adalah True untuk nilai benar dan False untuk nilai salah. List merupakan tipe data pada Python yang berisi nilai-nilai kolektif yang disimpan secara berurutan, dengan isi yang dapat terdiri dari banyak varian tipe data (tidak harus sama).
Python Operator
- Operator aritmatika
- Operator assignment
- Operator perbandingan
- Operator logika
- Operator bitwise
- Operator identity ( is )
Operator is mirip dengan operator logika ==, bedanya operator is yang dibandingkan bukan nilainya, melainkan identitas atau ID. Di Python, ada kasus khusus yang perlu kita ketahui terkait penerapan operator untuk operasi perbandingan identitas, khususnya untuk tipe data numerik.
Fungsi print() tanpa string formatting
Fungsi id()
Operator membership ( in )
Operator in digunakan untuk memeriksa apakah suatu nilai merupakan bagian dari data kolektif atau tidak. Ketika operator in diterapkan ke tipe kamus, kuncinya yang diperiksa, bukan nilainya.
Seleksi kondisi Python ➜ if, elif, else
- Keyword if
- Keyword elif
Bila nilai masukannya 86 maka muncul pesan bagus karena syarat blok pemilihan terpenuhi nilai elif >= 85. Bila nilai masukannya 100 maka muncul pesan sempurna karena syarat blok pemilihan terpenuhi nilai == 100.
Fungsi type()
Type conversion / konversi tipe data
- Keyword else
- Seleksi kondisi bercabang / nested
- Seleksi kondisi dengan operasi logika
- Seleksi kondisi sebaris & ternary
Pada kode di atas, pada pemilihan state terluar, di bawah blok if dan elif, penulis sengaja menambahkan baris baru agar lebih mudah dibaca. Perhatikan kode sederhana berikut ini, isinya adalah syarat seleksi sederhana untuk mengecek nilai nilai >= 65 atau tidak.
One-line / sebaris
Ternary dengan nilai balik
Pattern matching
Perulangan Python ➜ for & range
- Keyword for dan fungsi range()
Pernyataan print("index:", i) muncul 5 kali karena loop dieksekusi dengan kontrol range(5), dimana pernyataan tersebut membuat objek range yang berisi array 5 angka, dimulai dengan angka 0 sampai 4. Cetak pernyataan ( "index:", i) harus spasi kanan karena isi for i berada di blok loop range(5):.
Fungsi list()
Penerapan fungsi range()
Iterasi element data kolektif
Iterasi data list
Iterasi data tuple
Iterasi data string
Iterasi data dictionary
Iterasi data set
Perulangan bercabang / nested for
Parameter opsional end pada fungsi print()
Fungsi print() tanpa parameter
Perulangan Python
- Keyword while
- Perulangan while vs for
- Perulangan bercabang / nested while
- Kombinasi while dan for
Pada Python selain kata kunci for juga terdapat kata kunci while yang fungsinya kurang lebih sama yaitu untuk perulangan. Operasi while cocok untuk perulangan yang kontrolnya berupa operasi logis atau nilai Boolean yang tidak ada hubungannya dengan urutan.
Perulangan Python
- Keyword break
- Keyword continue
- Label perulangan
Program berisi loop yang kontrolnya berupa rentang data 10 (yang isinya berupa angka numerik dari 0 hingga 9. Teknik penamaan loop label umumnya digunakan untuk mengontrol aliran pada loop bercabang/bersarang, seperti for. Bila nilai j ( yang merupakan variabel penghitung loop paling dalam) lebih besar atau sama dengan 7, maka variabel loop luar disetel ke False dan loop dalam terpaksa diputus.
Python List
- Pengenalan list
- Perulangan list
Dengan menggabungkan nilai kembalian fungsi ini dan fungsi array(), array data dapat dibentuk dengan lebar yang sama dengan lebar daftar.
Fungsi enumerate()
Nested list
Fungsi list()
Konversi range ke list
Konversi string ke list
Konversi tuple ke list
Operasi pada list
Mengakses element via index
Mengecek apakah element ada
Slicing list
Mengubah nilai element
Append element
Extend/concat/union element
Menyisipkan element pada index i
Menghapus element
Menghapus element pada index i
Menghapus element pada range index
Dengan menggabungkan kata kunci ini dan operasi pemotongan, kita dapat dengan mudah menghapus elemen dalam rentang tertentu.
Menghitung jumlah element
Mencari index element list
Mengosongkan list
Membalik urutan element list
Copy list
Sorting
Python List Comprehension
- Pengenalan list comprehension
Cara penulisan list pemahaman membuat kode menjadi sangat ringkas sehingga agak membingungkan bagi yang belum terbiasa.
Contoh #1
Contoh #2
Contoh #3
Contoh #4
Contoh #5
Python Tuple
- Tuple vs. List
- Pengenalan Tuple
- Mengakses element tuple via index
- Perulangan tuple
- Mengecek apakah element ada
- Nested tuple
- List dan tuple
- Fungsi tuple()
Tuple adalah tipe data sekuensial yang ideal untuk menyimpan nilai agregat yang isinya tidak akan berubah (tidak dapat diubah), dibandingkan dengan daftar, yang lebih cocok untuk data yang nilai elemennya dapat berubah (dapat diubah). Misalnya data tuple_1 di atas diakses oleh indeks ke-4, misalnya ( tuple_1[4] ), maka hasilnya adalah error. Tuple adalah tipe data yang dapat digunakan langsung dalam loop dengan kata kunci for.
Fungsi enumerate() digunakan untuk mengubah data sekuensial menjadi data enumerasi, yang ketika dimasukkan ke dalam loop pada setiap iterasi, dapat mengakses indeks dan elemen-elemennya. Kombinasi kata kunci if dan dan dapat digunakan untuk mengidentifikasi apakah suatu elemen merupakan bagian dari tupel atau tidak. Keduanya sangat mirip, namun memiliki perbedaan yang jelas, yaitu nilai tuple tidak dapat diubah, sedangkan list dapat diubah.
Konversi string ke tuple
Konversi list ke tuple
Konversi range ke tuple
- Tuple packing dan unpacking
- Tuple kosong ()
- Python Set
- Pengenalan Set
- Mengakses elemen set
- Operasi pada set
- Fungsi set()
- Set comprehension
- frozenset
- Python Dictionary
- Pengenalan Dictionary
Himpunan adalah tipe data yang digunakan untuk menyimpan nilai agregat unik sehingga tidak terjadi duplikasi elemen. Tipe data set sekilas terlihat mirip jika dibandingkan dengan tuple dan list, namun sebenarnya terdapat banyak perbedaan. Mengimplementasikan tipe data himpunan cukup mudah, cukup tulis nilai elemen langsung dengan pembatas dan diapit dengan kurung kurawal.
Tipe data set dirancang untuk menyimpan data unik, duplikasi elemen tidak mungkin dilakukan meskipun diterapkan. Variabel data diisi dengan kumpulan data dengan banyak elemen duplikat jika elemen yang dicetak unik. Selain contoh di atas, set juga dapat digunakan untuk memeriksa keanggotaan dengan menggunakan kombinasi kata kunci if dan dan.
Urutan item dictionary
Pretty print dictionary
- Inisialisasi dictionary
- Perulangan item dictionary
- Nested dictionary
- Dictionary mutability
- Operasi data dictionary
Sedangkan untuk menampilkan nilai suatu elemen tertentu berdasarkan kuncinya dapat dilakukan dengan menggunakan notasi dict["key"]. Misal variabel profile diatas diakses oleh elemen dengan key age misalnya ( profile["age"] ), maka hasilnya adalah error. Pertama, impor modul json, lalu gunakan fungsi dumps() untuk memformat kamus menjadi bentuk string yang mudah dibaca.
Kamus bercabang atau kamus bersarang dapat digunakan untuk menyimpan data dengan struktur yang kompleks, misalnya kamus yang salah satu item nilainya adalah daftar.
Pengaksesan item
Mengubah isi dictionary
Menambah item dictionary
Menghapus item dictionary
Pengaksesan dictionary keys
Pengaksesan dictionary
Method items() dictionary
Copy dictionary
Mengosongkan isi dictionary
Python String
- Pengenalan String
Multiline string
Untuk membuat string, lampirkan teks yang diinginkan dalam tanda kutip tunggal atau ganda. Selain digunakan untuk membuat string multibaris, teknik penulisan string dengan menggunakan karakter atau ''' dapat digunakan untuk hal lain yaitu membuat string dokumen.
Escape character
String special characters
Di atas kami menunjukkan cara menulis karakter baris baru dengan \n dan tanda kutip ganda dengan \".
String formatting
Semua metode pemformatan string yang telah diselidiki menghasilkan nilai yang sama yaitu Hai, Saya Aiden Pearce, Saya IT Support.
Penggabungan string & split string
Penggabungan string (concatenation)
Dalam penerapannya, delimiter atau pembatas ditulis terlebih dahulu, kemudian digabungkan dengan metode join, dimana isi argumennya adalah daftar yang ingin digabungkan.
Split string
Operasi sequence pada string
Mengecek lebar karakter string
Mengakses element string
Slicing string
Operasi character & case
Pengecekan karakter alfabet dan angka
Operasi pencarian string &
Pengecekan string menggunakan keyword in
Pengecekan substring
Pencarian index substring
Operasi string lainnya
Replace substring
Trim / strip
Anda dapat melihat bahwa ketika Anda mencetaknya, Anda dapat melihat baris baru atau baris baru di awal string dan juga di akhir string.
Join string
Konversi data ke string
Python Unicode String
- Pengenalan Unicode String
Cara penulisan karakter unicodenya sendiri bisa dengan menuliskan karakternya secara langsung, atau bisa juga dengan menuliskan titik-titik kodenya dalam notasi tertentu. Menampilkan emoji menggunakan pengkodean 16-bit memerlukan usaha ekstra karena titik kode emoji saja tidak cukup jika diwakili oleh titik kode yang lebarnya hanya 16-bit. Atau gunakan notasi karakter khusus \N{NAME} , dimana NAME diisi dengan nama karakter unicode huruf besar.
Dari program di atas terlihat bahwa titik kode unicode dari karakter ⯑ adalah c548 heksadesimal. Fungsi chr() adalah kebalikan dari fungsi ord(), fungsi ini digunakan untuk menampilkan string berdasarkan titik kode. Pada contoh dibawah ini fungsi chr() digunakan untuk menampilkan karakter dengan kode desimal titik 50504 dan juga dengan kode heksadesimal C548 yang keduanya mewakili karakter yang sama yaitu.
Number/Bilangan di Python
- Integer
- Hexadecimal, Octal, Binary
- Floating point (float)
- Bilangan complex
Contohnya dapat dilihat pada program berikut, nilai oktal 214 dicetak dalam 4 basis berbeda, menggunakan akhiran untuk masing-masing basis. Panggil fungsinya, masukkan data float yang ingin Anda bulatkan sebagai argumen pertama fungsi tersebut, dan jumlah digit setelah koma desimal sebagai argumen kedua. Untuk melakukannya, tulis variabel dalam string pemformatan lalu tambahkan akhiran :.{n}f, di mana n diisi dengan jumlah digit setelah koma desimal.
Di hampir semua bahasa pemrograman yang ada, tipe data float (atau serupa) memiliki properti unik di mana angka setelah koma desimal tidak menyimpan informasi numerik yang tepat. Di balik layar, komputer selalu menyimpan informasi angka setelah koma dengan cara yang tidak pasti (tidak tetap). Informasi bilangan real pada bilangan kompleks dapat ditampilkan dengan menggunakan sifat real, sedangkan informasi bilangan imajiner menggunakan sifat gambar.
Python Slice (Data Sequence Slicing)
- Pengenalan slice
Perlu diperhatikan bagian bawah diisi dengan nilai indeks-1, jadi jika ingin mendapatkan elemen hingga indeks kedua, maka nilai terakhir. Jika nilai terakhir tidak diisi, maka defaultnya adalah nilai jumlah elemen data (setara dengan notasi data_str[4:len(data_str)). Pemotongan elemen dimulai dari indeks ke-3 hingga ke-6 dengan elemen yang dikembalikan yaitu setiap 1 elemen, jadi notasinya adalah.
Pemotongan elemen dimulai dari indeks ke-2 hingga ke-8 dengan ketentuan elemen yang dikembalikan adalah setiap 2 elemen, notasi: data_str[2:9:2]. Memotong semua elemen elemen demi elemen dengan ketentuan elemen yang dikembalikan adalah setiap 2 elemen yang tertulis dalam catatan.
Tentang slicing seluruh element
Fungsi slice()
Python Object ID &
- Object ID
- Reference / alamat memori data
- Operasi logika via keyword is
Cara menggunakannya cukup sederhana, tulis suatu fungsi lalu masukkan data yang ID-nya ingin Anda periksa sebagai parameter pemanggilan fungsi. Jika data yang sama ditetapkan ke beberapa variabel, memeriksa ID pada semua variabel ini akan mengembalikan ID yang sama. Apa yang terjadi di balik layar adalah kedua variabel menyimpan nilai yang disimpan di alamat memori yang sama.
Hasil dari ketiga pernyataan perbandingan tersebut adalah True karena isi datanya sama yaitu string hello world. Pernyataan message1 is message2 menghasilkan True karena kedua variabel mewakili data yang sama (disimpan di alamat memori yang sama). Pernyataan perbandingan lainnya menghasilkan False karena ID datanya berbeda meskipun isi datanya sama.
Lebih dalam mengenai korelasi operasi assignment dan object ID
Dari perspektif manajemen memori, data urutan (baik daftar, string, atau lainnya) berbeda dari cara pengelolaan data dalam array dalam bahasa lain. Perhatikan kode berikut, variabel angka1 berikut ditugaskan ke variabel bernama angka2, sehingga pengidentifikasi kedua variabel tersebut sama karena menunjuk ke data yang sama. Perlu diketahui bahwa data string bukanlah data atomik seperti int yang isinya sangat spesifik yaitu nilai numerik.
Data urutan yang berisi konten elemen dapat diubah atau dimodifikasi tanpa menyebabkan alamat memori baru ditetapkan (pengidentifikasinya tetap). Dari output eksekusi program terlihat bahwa jumlah data1 juga mengalami perubahan setelah dilakukan perubahan angka2 dengan menambahkan elemen baru (melalui metode.
Fungsi sys.getsizeof()
Catatan tambahan tentang object ID
Object ID data numerik
Python Function / Fungsi
- Pengenalan Fungsi
- Parameter dan argument fungsi
- Naming convention fungsi &
Pembuatan suatu fungsi dilakukan dengan kata kunci def diikuti dengan nama fungsi, kemudian isi/isi fungsi dituliskan di bawahnya. Pada contoh diatas, selain say_hello(), sebenarnya ada fungsi lain yang digunakan pada contoh tersebut yaitu print(). Parameter sendiri adalah istilah untuk variabel yang melekat pada suatu fungsi, yang mengharuskan kita untuk memberikan nilai ke parameter ketika kita memanggil fungsi tersebut.
Tugas dari fungsi hitung_lingkaran_area() adalah menghitung luas lingkaran dengan nilai jari-jari yang diperoleh dari parameter r. Fungsi hitung_lingkaran_area() di atas telah diubah menjadi fungsi dengan 2 parameter yaitu pesan bertipe string dan r bertipe int. Fungsi tidak boleh memiliki parameter, satu parameter, atau lebih dari satu, tidak ada batasan.
Nilai balik fungsi (return value)
Fungsi 'kalkulasi keliling lingkaran()' mirip dengan fungsi sebelumnya, namun fungsi ini mempunyai tugas yang berbeda yaitu menghitung keliling lingkaran.
Tipe data nilai balik fungsi (return type)