Python
Python
Argument
Bilangan Kompleks
Class
Class Variable
Dictionary
Duck Typing
Sebuah konsep, tipe atau kelas dari sebuah objek tidak lebih
penting daripada metode yang menjadi perilakunya.
Dynamic Typing
E
Expression
Function
Immutable
Inheritance
List
List atau urutan adalah tipe data bawaan pada Python yang
digunakan untuk menyimpan kumpulan data atau item. List ditulis
menggunakan kurung siku.
Method
Mutable
Parameter
Set
Pengenalan Python
Python adalah bahasa pemrograman multifungsi yang dibuat oleh
Guido van Rossum dan dirilis pada tahun 1991. GvR, begitu ia biasa
disebut di komunitas Python, menciptakan Python untuk menjadi
interpreter yang memiliki kemampuan penanganan kesalahan
(exception handling) dan mengutamakan sintaksis yang mudah
dibaca serta dimengerti (readability). Didesain untuk
memudahkan dalam prototyping, Python menjadi bahasa yang
sangat mudah dipahami dan fleksibel.
Python juga memilih untuk menggunakan indentasi untuk
mengelompokkan blok kode, berbeda dengan beberapa bahasa lain
yang menggunakan simbol tertentu, misalnya kurung kurawal, atau
sintaksis begin-end. Sehingga secara visual pun, blok kode Python
didesain untuk mudah dipahami. Salah satu yang paling dikenal
adalah, penggunaan titik koma atau semicolon (;) tidak wajib di
Python dan penggunaan semicolon cenderung dianggap bukan cara
khas Python (non-pythonic way), meskipun ia tetap dapat
digunakan, misalnya untuk memisahkan dua statement dalam baris
yang sama.
Saat ini, Python juga menjadi salah satu bahasa pilihan untuk
masuk ke dunia Data Science. Tiga hal utama pada Data Science -
machine learning, data analysis, dan data visualization banyak
disediakan berbasis Python. Sejumlah pustaka paling banyak
digunakan dalam machine learning berbasis Python, misalnya:
Scikit-Learn, Tensorflow, dan PyTorch.
Instalasi Python pada Operating System
Pada Linux dan Mac, umumnya Python sudah terinstal secara
otomatis. Untuk memastikan python sudah terinstal atau
memeriksa versi python yang terinstal, silakan panggil perintah
berikut di konsol atau command prompt:
1. python --version
atau
1. python3 --version
Jika telah terinstal, maka akan tampil versi Python yang terinstal
sebagai berikut (Klik tab pada tabel untuk melihat tampilan di
masing-masing sistem operasi).
Ubuntu (18.04.1) - Python 2
Ubuntu (18.04.1) - Python 3
MacOS Mojave (10.14.4)
Windows (kondisi terinstal)
Berikut tampilan saat Python versi 2 terinstal pada Ubuntu
(18.04.1).
Semua contoh dan tutorial pada kelas ini akan menggunakan versi
3.7.3 atau lebih tinggi. Python versi terbaru dapat diakses
di https://www.python.org/downloads/. Apabila pada komputer anda
terinstal Python 2.x, Anda umumnya dapat menginstal versi 3.x
secara berdampingan tanpa mengubah konfigurasi apapun. Untuk
konfigurasi lanjut yang memungkinkan Anda menggunakan lebih
dari satu versi python secara bergantian, silakan merujuk
ke https://docs.python.org/id/3.8/library/venv.html.
Untuk meng-update atau menginstal, silakan mengikuti panduan
berikut (Klik tab pada tabel untuk melihat tampilan di masing-
masing sistem operasi).
Windows
Ubuntu (Update)
Mac (Update)
Berikut langkah-langkah meng-update atau menginstal Python pada
sistem operasi Windows:
Link Penting
Google Colab
Untuk mulai menggunakan Google Colab, Anda dapat langsung
mengunjungi tautan
berikut: https://colab.research.google.com/notebooks/
analis data dan Data Scientist. Anda juga dapat menjalankan kode secara online
pada layanan seperti IBM Watson Studio tanpa perlu meng-install perangkat lunak
Notebook pada Watson Studio untuk menulis dan menjalankan kode Python.
Sebelum menggunakan IBM Watson Studio, buatlah akun IBM Cloud terlebih
dahulu. Akun IBM Cloud dapat dipakai untuk mengakses IBM Watson Studio, IBM
Watson Machine Learning, dan IBM Cloud. Untuk mendaftar akun IBM Cloud,
1. Pertama Anda akan dihadapkan pada halaman registrasi. Isi email dan
password Anda lalu lanjutkan proses yang diminta hingga akun berhasil
dibuat.
2. Setelah akun Anda jadi, login ke IBM cloud dengan mengunjungi
5. Kemudian pada halaman Object Storage pilih Lite pada bagan Plan.
Storage bertipe Lite. Jika Anda telah membuat object storage bertipe Lite
bisa membuat object storage lite baru. Untuk Service Name dan Resource
Group Anda tidak perlu merubah isinya. Setelah itu klik tombol Create yang
dilakukan oleh website. Setelah pengaturan login selesai, Anda dapat klik
Website IBM Cloud Pak memuat layanan Watson Studios, Watson Machine
proyek ML Anda di Watson Studio, klik tombol New Project seperti yang
10.Pada halaman New project, isi nama proyek Anda beserta deskripsinya.
Storage akan secara otomatis memilih storage yang Anda buat di IBM Cloud.
Setelah seluruh kolom Anda isi, klik tombol Create.
13.Di halaman New notebook isi nama notebook yang Anda inginkan lalu
klik Create.
14.Sekarang Anda sudah bisa menulis kode python seperti Anda menulis kode di
Jupyter Notebook.
15.Untuk menyimpan pekerjaan Anda, klik tombol File dan pilih Save.
16.Pekerjaan yang telah Anda simpan dapat Anda lihat pada menu Assets di
bagian Notebooks.
Interactive
InteractiveExample: Print
Script
Mode yang lain dan sering dipergunakan pada python adalah script
(scripting). Pada mode ini kita menggunakan sebuah berkas teks
(umumnya berekstensi .py) dan kemudian akan dieksekusi oleh
compiler/interpreter. Contoh yang sama untuk ketiga hal yang kita
coba pada mode interactive adalah sebagai berikut:
RunnableExample: Calculator
RunnableExample: Print
Notebook
Alternatif
Repl.it
Anda dapat menggunakan yang mana saja dalam proses
pembelajaran ini. Di industri, teknik yang dipilih adalah yang paling
efisien (misalnya untuk research, kebanyakan menggunakan
notebook), sementara untuk backend atau infrastructure
management, dipilih script.
Indentasi
1. Statement tingkat 1:
2. Statement tingkat 2()
Baris Lanjutan
1. # Opsi 1
4. var_three, var_four)
5.
6. # Opsi 2
8. def long_function_name(
10. var_four):
11. print(var_one)
12.
13. # Opsi 3
Tidak Disarankan:
1. # Contoh kesalahan 1
4. var_three, var_four)
5.
6. # Contoh kesalahan 2
8. def long_function_name(
10. var_four):
11. print(var_one)
2. foo = long_function_name(
3. var_one, var_two,
4. var_three, var_four)
Kondisional (If)
4. lakukanSesuatu()
5.
6. # Tambahkan komentar
10. lakukanSesuatu()
11.
Kurung/Siku Penutup
1. my_list = [
2. 1, 2, 3,
3. 4, 5, 6,
4. ]
5.
6. result = some_function_that_takes_arguments(
9. )
1. my_list = [
2. 1, 2, 3,
3. 4, 5, 6,
4. ]
5.
6. result = some_function_that_takes_arguments(
3. file_2.write(file_1.read())
1. income = (gross_wages +
2. taxable_interest +
3. (dividends - qualified_dividends) -
4. ira_deduction -
5. student_loan_interest)
1. income = (gross_wages
2. + taxable_interest
3. + (dividends - qualified_dividends)
4. - ira_deduction
5. - student_loan_interest)
Baris Kosong
File Encoding
Kode dalam inti Python, selalu menggunakan encoding UTF-8
(Python 3) atau ASCII (Python 2). Dalam hal ini, apabila dalam
sebuah berkas tidak ditulis deklarasi encoding, maka berkas
tersebut menggunakan encoding ASCII (Python 2) atau UTF-8
(Python 3). Dalam standard library, non-default encoding hanya
digunakan untuk pengujian atau memberikan
komentar/dokumentasi, misalnya nama penulis yang tidak
menggunakan karakter ASCII.
Untuk Python 3 dan seterusnya, pada standard library hanya
menggunakan karakter ASCII dan sebisa mungkin menggunakan
kata-kata dalam Bahasa Inggris. Proyek yang menggunakan python
3 didorong untuk menggunakan standar yang sama. Lihat PEP
3131.
Import
1. Yes: import os
2. import sys
3.
1. Standard Library
2. Library Pihak Ketiga
3. Local/Library spesifik
Setiap grup baiknya dipisahkan oleh sebuah baris kosong.
Pada Python 2, dikenal explicit relative import, yakni proses import
yang menggunakan path relatif yang digunakan. Pada Python 3,
seluruh import yang dilakukan bersifat absolute (beserta seluruh
path secara penuh).
1. import mypkg.sibling
1. import myclass
2. import foo.bar.yourclass
Tanda Petik
Petik tunggal (‘) dan petik ganda (“) dianggap sama oleh Python,
dan tidak memiliki preferensi khusus untuk penggunaannya. Hal ini
dikarenakan ada kemungkinan string yang memuat salah satunya.
Anda disarankan untuk menggunakan salah satunya secara
konsisten.
Docstring (dokumentasi kode/fungsi/method) pada Python
didefinisikan dengan tiga tanda petik, disarankan tanda petik ganda
(”””) pada awal dan akhir statement docstring.
Whitespace pada Expressions dan Statements
1. Yes: if x == 4: print x, y; x, y = y, x
2. No: if x == 4 : print x , y ; x , y = y , x
1. Yes:
4. ham[lower+offset : upper+offset]
7.
8. No:
1. Yes: spam(1)
1. Yes:
2. x = 1
3. y = 2
4. long_variable = 3
5.
6. No:
7. x = 1
8. y = 2
9. long_variable = 3
Rekomendasi Lainnya
Hindari menambahkan whitespace di belakang statement apapun,
utamanya di statement akhir dalam sebuah baris, karena
whitespace tersebut tidak mudah dilihat.
Biasakan untuk menambahkan satu spasi baik di kiri maupun kanan
untuk operasi berikut:
1. Assignment (=),
2. Augmented assignment (+=, -=etc.),
3. Comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not),
4. Booleans (and, or, not).
1. Yes:
2. i = i + 1
3. submitted += 1
4. x = x*2 - 1
6. c = (a+b) * (a-b)
7.
8. No:
9. i=i+1
11. x = x * 2 - 1
12. hypot2 = x * x + y * y
13. c = (a + b) * (a - b)
Komentar
Dalam sebuah kode Python, Anda diajak untuk memastikan kode
Anda terbaca oleh programmer lain. Salah satu caranya adalah
dengan menggunakan fitur komentar untuk memberitahu fungsi
atau informasi lain terkait kode Anda. Pastikan komentar Anda ter-
update dan tidak mengalami kontradiksi dengan kode yang ada.
Umumnya, komentar dituliskan dalam kalimat utuh dengan
memperhatikan penulisan (huruf besar di awal kalimat, huruf kecil
saat diawali dengan identifier atau variabel, dan diakhiri titik di
akhir kalimat). Anda juga bisa menggabungkan beberapa kalimat
menjadi blok komentar dengan menambah dua spasi saat berganti
kalimat dalam satu paragraf, kecuali pada kalimat terakhir.
Jika memungkinkan, tuliskan komentar dalam bahasa Inggris,
kecuali Anda yakin bahwa pembaca komentar ini dipastikan
mengerti bahasa Anda.
Blok Komentar
Blok komentar umumnya digunakan untuk menjelaskan fungsi utuh
atau sub-fungsi yang mengikuti/berada di bawahnya. Blok komentar
diindentasi setara dengan kode yang dijelaskan. Setiap barisnya
diawali dengan # dan sebuah spasi serta setiap paragrafnya
dimulai pada baris baru.
Komentar Inline
Komentar Inline pada Python umumnya diletakkan pada baris yang
sama dengan kode. Umumnya dipisahkan dan dirapikan dengan
jarak dua spasi dari kode yang dimaksud, diawali # dan sebuah
spasi. Komentar inline dapat juga digunakan di atas baris yang
ingin diberikan komentar, agar tidak mengurangi jumlah karakter
yang dapat dituliskan dalam sebuah baris. Untuk semua jenis
komentar, jangan menuliskan komentar untuk hal yang sudah
langsung dapat dibaca dari kodenya, seperti contoh berikut:
Tidak disarankan:
1. x = x + 1 # Tambahkan x
Disarankan (kontekstual):
Dokumentasi
1. """Return a foobang
3. """
Numbers
1. a = 10
3. b = 1.7
5. c = 1+3j
Output seharusnya:
10 bertipe <class 'int'>
1.7 bertipe <class 'float'>
(1+2j) Bertipe bilangan kompleks? True
2. x[1]=1; #x[1]=1
3.
4. for j in range(2,10001):
5. x[j]=x[j-1]+x[j-2] # Fibonacci
6. print(x[10000])
Output:
1. 3364476487643178326662161200510754331030214846068006390656476997
4680081442166662368155595513633734025582065332680836159373734790
4838652682630408924630564318873545443695598274916066020998841839
3386465273130008883026923567361313511757929743785441375213052050
4347701602264758318906527890855154366159582987279682987510631200
5754287834532155151038708182989697916131278562650331954871402142
8753269818796204693609787990035096230229102636813149319527563022
7837628441540360584402572114334961180023091208287046088923962328
8354615057765832712525460935911282039252853934346209042452489294
0390170623388899108584106518317336043747073790855263176432573399
3712871937587746897479926305837065742830161637408969178426378624
2128352581128205163702980893320999057079200643674262023897831114
7005407499845925036063356093388383192338678305613643535189213327
9732908133732642652633989763922723407882928177953580570993691049
1754708089318410561463223382174656373212482263830921032977016480
5472624384237486241145309381220656491403275108664339451751216152
6545361333111314042436854805106765843493523836959653428071768775
3283482343455573667197313927462736291082106792807847180353291311
7677892465908993863545932789452377767440619224033763867400402133
0343297496902028328145933418826817683893072003634795623117103101
2919531697946076327375892535307725523759437884345040677155557790
5645044301664011946258097221672975861502696844314695203461493229
1105970676243268515992834709891284706740862008587135016260312071
9031720860940812983215810772820763531866246112782455372085323653
0577595643007251774431505153960090516860322034916322264088524885
2433158051534849622434848299380905070483482449327453732624567755
8790891871908036620580095947431500524025327097469953187707243768
2590741993963226598414749819360928522394503970716544315642132815
7688908058783183404917434556270520223564846495196112460268313970
9750693826487066132645076650746115126775227486215986425307112984
4118262266105716351506926002986170494542504749137811515413994155
0671256271197133252763631939606902895650288268608362241082050562
430701794976171121233066073310059947366875
1. b = 0.1234567890123456789
2. print(b)
Output:
0.12345678901234568
1. a = 1234567890123456789
2. print(a)
Output:
1234567890123456789
1. c = 1+5j
2. print(c)
Output:
(1+5j)
Strings
Bool/Boolean
Tipe data bool atau Boolean merupakan turunan dari bilangan bulat
(integer atau int) yang hanya punya dua nilai konstanta: True dan
False.
Nilai Boolean
Nilai konstanta False dan True merepresentasikan nilai kebenaran
(truth values), meskipun ada nilai-nilai lain yang juga dianggap
benar atau salah. Di dalam konteks angka, misalnya digunakan
sebagai argumen dari operator matematika aritmatika, kedua nilai
ini berlaku seperti halnya bilangan bulat 0 dan 1, sesuai False dan
True.
Ada fungsi bawaan bool() yang dapat mengubah nilai menjadi nilai
Boolean, apabila nilai tersebut dapat direpresentasikan sebagai
nilai kebenaran (truth values).
Nilai kebenaran adalah sebuah nilai yang dapat diuji sebagai benar
atau salah, untuk digunakan di sintaksis kondisi if atau while atau
sebagai operan dari operasi Boolean.
Berikut adalah objek bawaan yang didefinisikan bernilai salah
dalam pengujian nilai kebenaran:
List
1. x = [5,10,15,20,25,30,35,40]
2. print(x[5])
3. print(x[-1])
4. print(x[3:5])
5. print(x[:5])
6. print(x[-3:])
7. print(x[1:7:2])
Output:
30
40
[20, 25]
[5, 10, 15, 20, 25]
[30, 35, 40]
[10, 20, 30]
1. x = [1,2,3]
2. x[2]=4
3. print (x)
Output:
[1, 2, 4]
1. x = [1,2,3]
2. x[2]=4
3. x.append(5)
4. print(x)
Output:
[1, 2, 4, 5]
2. del binatang[2]
3. print(binatang)
Output:
['kucing', 'rusa', 'gajah']
2. print(binatang)
1. s = "Hello World!"
6. print (s)
Output:
'o'
'World'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
'Halo Dunia!'
Tuple
Tuple adalah jenis dari list yang tidak dapat diubah elemennya.
Umumnya tuple digunakan untuk data yang bersifat sekali tulis, dan
dapat dieksekusi lebih cepat. Tuple didefinisikan dengan kurung
dan elemen yang dipisahkan dengan koma.
1. t = (5,'program', 1+3j)
Seperti list, kita dapat melakukan slicing, namun pada tuple kita
tidak dapat melakukan perubahan:
1. t = (5,'program', 1+3j)
2. print(t[1])
3. print(t[0:3])
4. print(t[0]=10)
Output:
'program'
(5, 'program', (1+3j))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Set
1. a = {1,2,2,3,3,3}
2. print(a)
Output:
{1, 2, 3}
1. a = {1,2,3}
2. print(a[1])
Output:
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
TypeError: 'set' object does not support indexing
Dictionary
1. d = {1:'value','key':2}
2. print(type(d))
Output:
<class 'dict'>
1. d = {1:'value','key':2}
2. print(type(d))
Output:
<class 'dict'>
d[1] = value
d['key'] = 2
Dictionary bukan termasuk dalam implementasi urutan
(sequences), sehingga tidak bisa dipanggil dengan urutan indeks.
Misalnya dalam contoh berikut dicoba dengan indeks 2, tetapi
menghasilkan error (KeyError) karena tidak ada kunci (key) 2:
1. d = {1:'value','key':2}
2. print(type(d))
5.
6. # Generates error
Output:
<class 'dict'>
d[1] = value
d['key'] = 2
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-7-4b566e677ca2> in <module>()
1 d = {1:'value','key':2}
----> 2 print("d[2] = ", d[2]);
KeyError: 2
1. print(float(5))
Output:
5.0
1. print(int(10.6))
Output:
10
1. print(int(-10.6))
Output:
-10
1. print(float('2.5'))
Output:
2.5
1. print(str(25))
Output:
'25'
1. print(int('1p'))
Output:
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1p'
1. print(set([1,2,3]))
Output:
{1, 2, 3}
1. print(tuple({5,6,7}))
Output:
(5, 6, 7)
1. print(list('hello'))
Output:
['h', 'e', 'l', 'l', 'o']
1. print(dict([[1,2],[3,4]]))
Output:
{1: 2, 3: 4}
1. print(dict([(3,26),(4,44)]))
Output:
{3: 26, 4: 44}
Output
Print
1. print("Hello, World!")
Output:
Hello, World!
1. x = 100
2. print('Nilai x adalah', x)
Output:
Nilai x adalah 100
1. print('hai {}'.format('bro'))
1. nama = "Dicoding"
Output:
Halo, Dicoding!
1. nama = "Dicoding"
2. umur = 5
Output:
Umur Dicoding adalah 5 tahun.
Contoh menambahkan objek selain string (otomatis dikonversi):
Output:
Angka saya: [7, 9, 11, 13]
1. %s - String
2. %d - Integers
3. %f - Bilangan Desimal
1. a, b = 10, 11
2. a, b
Output:
(10, 11)
a: a and b: B
Output:
Masukkan angka : 90
1. print(nilai)
Output:
'90'
Secara default, input dari user adalah string (walaupun pada contoh
di atas, 90 sebenarnya dimaksudkan sebagai integer) yang ditandai
dengan petik. Untuk itu diperlukan fungsi konversi yang akan
dibahas pada modul-modul selanjutnya, misalnya int() dan float().
1. print(int(nilai))
Output:
90
1. print(float(nilai))
Output:
90.0
Jika input merupakan string berisi ekspresi matematika, maka
konversi dengan int() atau float() akan menghasilkan error. Anda
dapat menggunakan fungsi eval() yang sekaligus juga berfungsi
menyelesaikan ekspresi matematika. Anda akan mempelajari lebih
jauh mengenai fungsi pada modul Fungsi.
1. print(int('90+10'))
Output:
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '90+10'
1. print(eval('90+10'))
Output:
100
Command-line arguments
Python memungkinkan Anda untuk membuat sebuah "skrip" berupa
deretan kode program kemudian disimpan dalam sebuah berkas
dengan nama akhiran .py (misal: skrip.py).
Berkas ini dapat dipanggil sebagai skrip di konsol atau command
prompt, serta dapat ditambahkan parameter tambahan saat
memanggil skrip tersebut.
Hal ini difasilitasi oleh module sys yang telah dibawa secara default
pada Python. Untuk menggunakannya, jangan lupa lakukan import
terlebih dahulu:
1. import sys
Utamanya fungsi yang akan digunakan adalah sys.argv yang
memuat seluruh argumen yang diterima. Anda juga dapat
menggunakan len(sys.argv) untuk mengetahui banyaknya argumen
yang ditampung.
Contoh, sebuah berkas test.py yang akan menambahkan tiga
argumen:
1. import sys
4. print(sys.argv[1])
Output:
Jumlah arguments: 4 arguments.
Argument List: ['test.py', 'arg1', 'arg2', 'arg3']
arg1
2. x = 6
3. print(type(x))
5. x = 'hello'
6. print(type(x))
Output:
<class 'int'>
<class 'str'>
1. if False:
3. else:
4. 9 + 1
Output:
10
Padahal jika kita jalankan 9 + "satu":
1. 9 + "satu"
Output:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
2. print(type(contoh))
Output:
<class 'str'>
1. contoh = 19.7
2. print(type(contoh))
Output:
<class 'float'>
Duck Typing
1. x=546
2. print(len(x))
Output:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()
upper()
Pembahasan pertama kita mulai dari upper().
Metode upper() dapat digunakan untuk mengonversi karakter atau
string dari huruf kecil ke huruf besar. Namun, jika huruf asalnya
adalah huruf besar, maka huruf tersebut tidak berubah. Perhatikan
contoh kode di bawah ini:
1. kata = 'dicoding'
2. kata = kata.upper()
3. print(kata)
Output:
DICODING
lower()
Selanjutnya kita akan membahas lower(). Metode ini kebalikan
dari upper() yang dapat mengonversi karakter atau string dari
huruf besar ke huruf kecil. Namun jika huruf asalnya adalah huruf
kecil, maka huruf tersebut tidak berubah.
1. kata = ‘DICODING’
2. kata = kata.lower()
3. print(kata)
Output:
dicoding
1. print('Dicoding '.rstrip())
Output:
Dicoding
lstrip()
Selanjutnya kita bahas tentang lstrip() yang bertugas untuk
menghapus whitespace pada sebelah kiri atau awal string. Berikut
contoh penerapan kodenya:
1. print(' Dicoding'.lstrip())
Output:
Dicoding
strip()
Metode strip() akan menghapus whitespace pada bagian awal atau
akhir string.
Output:
Dicoding
Anda juga bisa menentukan mana karakter atau bagian yang ingin
dihilangkan, misalnya:
1. kata = 'CodeCodeDicodingCodeCode'
2. print(kata.strip('Code'))
Output:
Dicoding
startswith()
Metode startswith() akan mengembalikan nilai True jika string
diawali dengan kata awalan tertentu yang kita inginkan, jika tidak
maka akan mengembalikan nilai False.
1. print('Dicoding Indonesia'.startswith('Dicoding'))
Output:
True
endswith()
Metode endswith() ini kebalikannya dari metode startswith(),
metode ini akan mengembalikan nilai True jika string diakhiri
dengan kata akhiran tertentu yang kita inginkan, jika tidak maka
akan mengembalikan nilai False.
1. print('Dicoding Indonesia'.endswith('Indonesia'))
Output:
True
join()
Metode join() adalah metode yang dipakai untuk menggabungkan
sejumlah string.
Output:
Dicoding Indonesia !
Contoh lain:
Output:
'Dicoding123Indonesia123!'
split()
Sebaliknya, metode split() adalah metode yang memisahkan
substring berdasarkan delimiter tertentu (defaultnya
adalah whitespace, tab, atau newline).
Output:
['Dicoding', 'Indonesia', '!']
Anda dapat mengubah parameter split (delimiter), perhatikan
contoh berikut:
1. print('Dicoding123Indonesia123!'.split('123'))
Output:
['Dicoding', 'Indonesia', '!']
1. print('''Halo,
2. aku ikan,
Output:
['Halo,', 'aku ikan,', 'aku suka sekali menyelam', 'aku tinggal di perairan.', 'Badanku licin dan renangku cepat.', 'Senang
berkenalan denganmu.']
Kali ini kita masuk dalam kategori mengganti elemen string yang di
dalamnya terdapat metode replace(). Seperti apakah contoh kode
dari metode replace()? Yuk, simak penjelasannya di bawah ini.
replace()
Metode replace() dapat mengembalikan string baru dalam kondisi
substring telah tergantikan dengan parameter yang dimasukkan.
Berikut contoh kodenya.
Output:
Ayo belajar Pemrograman di Dicoding
Output:
Ayo belajar Pemrograman di Dicoding karena Coding adalah bahasa masa depan
Pengecekan String
isupper()
Metode isupper() akan mengembalikan nilai True jika semua huruf
dalam string adalah huruf besar, dan akan mengembalikan
nilai False jika terdapat satu saja huruf kecil di dalam string
tersebut.
Contoh yang akan mengembalikan nilai True:
1. kata = ‘DICODING’
2. kata.isupper()
Output:
True
1. kata = ‘Dicoding’
2. kata.isupper()
Output:
False
islower()
Metode islower() adalah kebalikan dari metode isupper(), metode
ini akan mengembalikan nilai True jika semua huruf dalam string
adalah huruf kecil, dan akan mengembalikan nilai False jika
terdapat satu saja huruf besar di dalam string tersebut.
Contoh yang akan mengembalikan nilai True:
1. kata = ‘dicoding’
2. kata.islower()
Output:
True
1. kata = ‘Dicoding’
2. kata.islower()
Output:
False
Bahkan Anda bisa melakukan operasi pada hasil operasinya (chain
of method). Seperti contoh berikut:
Contoh:
1. print('Dicoding'.upper().lower())
2. print('Dicoding'.lower().upper())
3. print('DICODING'.upper().lower().islower())
4. print('DICODING'.upper().lower().isupper())
Output:
‘dicoding’
‘DICODING’
True
False
isalpha()
Metode ini akan mengembalikan nilai True jika semua karakter
dalam string adalah huruf alfabet, jika tidak maka akan
mengembalikan nilai False.
1. ‘dicoding’.isalpha()
Output :
True
isalnum()
Metode ini akan mengembalikan nilai True jika karakter dalam
string adalah alfanumerik yaitu hanya huruf atau hanya angka atau
berisi keduanya, jika tidak maka akan mengembalikan nilai False.
1. ‘dicoding123’.isalnum()
Output :
True
isdecimal()
Metode ini akan mengembalikan nilai True jika karakter dalam
string berisi hanya angka/numerik, jika tidak maka akan
mengembalikan nilai False.
1. ‘12345’.isdecimal()
Output :
True
isspace()
Metode ini akan mengembalikan nilai True jika string berisi hanya
karakter whitespace, seperti spasi, tab, newline, atau
karakter whitespaces lainnya, jika tidak maka akan
mengembalikan nilai False.
1. ‘ ’.isspace()
Output :
True
istitle()
Metode ini akan mengembalikan True jika string berisi huruf kapital
di setiap kata dan dilanjutkan dengan huruf kecil seterusnya, jika
tidak maka akan mengembalikan nilai False.
1. ‘Dicoding Indonesia’.istitle()
Output :
True
1. while True:
3. name = input()
4. if name.isalpha():
5. print("Halo", name)
6. break
dicoding123
dicoding
Halo dicoding
Dengan cara ini, Anda dapat melakukan validasi input user. Anda
bisa bereksplorasi lebih lanjut dengan menambahkan
metode isdecimal(), isalnum(), istitle(), dan lain lain.
zfill()
Selain metode-metode yang telah kita pelajari di atas, ada juga
metode yang dapat menambahkan nilai numerik berupa 0 di
sebelah kiri sebuah angka atau string menggunakan metode zfill().
Penggunaan metode zfill() ini bisa diterapkan untuk nomor nota
atau nomor antrian. Anda akan menemui kebutuhan untuk
menambahkan awalan 0 misalnya seperti, 0001 untuk angka
awalan 1, 0101 untuk angka awalan 101, dan sebagainya.
Nilai kembalian yang dihasilkan oleh zfill jumlah karakternya kurang
dari atau sama dengan value yang kita masukkan pada
metode zfill. Misalnya jika kita memberi value 10, maka nanti akan
ditulis zfill(10) yang berarti nilai numerik berupa 0 dan angka atau
string yang ada, jumlah karakternya harus kurang dari atau sama
dengan value zfill tersebut.
Bingung bagaimana maksud pernyataan di atas? Mari kita langsung
praktikkan seperti di bawah ini:
2. angka = 5
3. print (str(angka).zfill(5));
5. angka = 300
6. print (str(angka).zfill(5));
8. angka = -0.45
9. print (str(angka).zfill(5));
00300
-0.45
-000.45
1. # Contoh 1
2. kata = 'aku'
3. print (kata.zfill(5));
4. # Contoh 2
5. kata = 'kamu'
6. print (kata.zfill(5));
7. # Contoh 3
8. kata = 'dirinya'
9. print (kata.zfill(5));
0kamu
dirinya
Masing-masing contoh di atas menghasilkan output yang berbeda-
beda. Kita akan membahasnya satu per satu.
Pada contoh pertama menghasilkan output 00aku. Hal tersebut
dikarenakan kita menggunakan nilai zfill(5) yang di mana
karakternya hanya ada 3 yaitu a, k, dan u. Sehingga nilai ‘nol’ yang
berjumlah 2 akan ditambahkan sebelum kata “aku”.
Sama halnya seperti sebelumnya, pada contoh kedua ini kurang
lebih menghasilkan output yang sama. Namun, bedanya adalah
jumlah karakter yang ada pada contoh kedua ini berjumlah 4 yaitu
k,a,m, dan u. Sehingga dengan nilai zfill(5) menghasilkan output
0kamu.
Kemudian pada contoh ketiga menghasilkan output string yang
sama dengan aslinya yaitu string “dirinya” menghasilkan output
“dirinya” juga. Mengapa bisa demikian? Hal tersebut karena jumlah
karakter pada kata “dirinya” lebih dari nilai zfill(5). Sehingga nilai
string yang dikembalikan utuh seperti aslinya (tanpa dikurangi atau
ditambahkan 0).
rjust()
Berikut penerapan rjust() dan contoh kodenya. Pembahasan
lengkap akan dijelaskan di bawah setelah uraian kodenya ya.
Contoh metode rjust():
1. 'Dicoding'.rjust(20)
Output:
' Dicoding'
1. 'Dicoding'.ljust(20)
Output:
'Dicoding '
1. 'Dicoding'.ljust(20, '!')
Output:
'Dicoding!!!!!!!!!!!!'
center()
Metode center() seperti namanya akan membuat teks menjadi rata
tengah.
1. 'Dicoding'.center(20)
Output:
' Dicoding '
Contoh lain:
1. 'Dicoding'.center(20, '-')
Output:
'------Dicoding------'
String Literals
Umumnya, string ditulis dengan mudah di Python, diapit oleh tanda
petik tunggal. Tetapi, dalam kondisi tertentu, dibutuhkan petik
tunggal di tengah string (misalnya struktur kepemilikan dalam
Bahasa Inggris - Dicoding’s Cat atau penyebutan Jum’at pada hari
dalam bahasa Indonesia).
Apabila kita menuliskannya sebagai berikut,
1. st1 = ‘Jum’at’
1. st1 = "Jum’at"
1. st1 = 'Jum\'at'
Output:
Halo!
multi_line = """Halo!
Kapan terakhir kali kita bertemu?
Kita bertemu hari Jum’at yang lalu."""
print(multi_line)
Output:
Halo!
Raw Strings
Python juga menyediakan cara untuk mencetak string sesuai
dengan apa pun input atau teks yang diberikan. Metode ini
dinamakan Raw Strings. Umumnya digunakan untuk regex atau
beberapa implementasi lain yang sangat bergantung pada
keberadaan backslash. Untuk mengimplementasikan raw strings,
sisipkan huruf r sebelum pembuka string:
1. print(r'Dicoding\tIndonesia')
Output:
Dicoding\tIndonesia
Seharusnya, perintah \t akan membuat tab dan menghasilkan
Dicoding Indonesia, tapi karena kita menggunakan raw strings,
maka kalimat tersebut secara mentah tercetak apa adanya.
len()
Sebelumnya, Anda sudah mengetahui bahwa slicing digunakan
untuk urutan. Salah satu fungsi yang paling bermanfaat untuk List
atau String adalah len() yang akan menghitung panjang atau
banyaknya elemen dari List (untuk String menjadi menghitung
jumlah karakternya).
1. contoh_list = [1, 3, 3, 5, 5, 5, 7, 7, 9]
2. print(contoh_list)
3. print(len(contoh_list))
4.
5. contoh_set = set([1, 3, 3, 5, 5, 5, 7, 7, 9])
6. print(contoh_set)
7. print(len(contoh_set))
8.
9. contoh_string = "Belajar Python"
10. print(contoh_string)
11. print(len(contoh_string))
1. Output:
[1, 3, 3, 5, 5, 5, 7, 7, 9]
{1, 3, 5, 7, 9}
Belajar Python
14
Output:
5
96
Count
Untuk mengetahui berapa kali suatu objek muncul dalam list, Anda
dapat menggunakan fungsi count().
Output:
1. angka = [2, 4, 6, 8]
2. huruf = ['P', 'Y', 'T', 'H', 'O', 'N']
3. gabung = angka + huruf
4. print(gabung)
Output:
Contoh replikasi:
['P', 'Y', 'T', 'H', 'O', 'N', 'P', 'Y', 'T', 'H', 'O', 'N']
1. tujuh = [7]*7
2. print(len(tujuh))
3. print(tujuh)
Output:
[7, 7, 7, 7, 7, 7, 7]
Range
Output:
4
2. Range dengan 2 parameter n,p: membuat deret bilangan yang
dimulai dari n, hingga sebelum p (bilangan p tidak ikut). Sering
disebut sebagai inklusif n (deret dimulai bilangan n) dan
eksklusif p (deret tidak menyertakan bilangan p).
1. for i in range(1, 11):
2. print(i)
Output:
10
Output:
in dan not in
Untuk mengetahui sebuah nilai atau objek ada dalam list, Anda
dapat menggunakan operator in dan not in. Fungsi ini akan
mengembalikan nilai boolean True atau False. Contohnya adalah
sebagai berikut:
Output:
True
False
False
True
Tentu saja, jumlah variabel dan jumlah item pada List/Tuple harus
sama. Jika tidak, Python akan memberikan ValueError. Bagian ini
hanya memberikan gambaran tentang operasi pada List/Tuple,
Anda akan mempelajari lebih jauh tentang kesalahan (Error) di
modul Penanganan Kesalahan.
Output:
<ipython-input-60-de8a162c18fd> in <module>
Output:
white
shirt
Sort
Jika Anda ingin mengurutkan angka atau urutan huruf, maka Anda
bisa menggunakan metode sort(). Metode sort() ini bisa
mengurutkan List. Perhatikan contoh di bawah:
Contoh:
Contoh lain:
Output:
Output:
Output:
Anda akan mengalami eror seperti berikut:
Output:
Contoh:
Output:
1. print(2 + 3)
Output:
1. print(3 * 5)
Output:
15
Jenis-jenis operator
Simak di bawah ini beberapa operator yang ada di Python.
+ (tambah)
o Menambahkan dua objek.
o 3 + 5 menghasilkan 8
o 'a' + 'b' menghasilkan 'ab'.
- (kurang)
o Mengurangkan operand kedua dari operand pertama. Jika
hanya satu operand, diasumsikan nilai operand pertama
adalah 0.
o -5.2 adalah expression yang sama dengan 0 - 5.2
menghasilkan -5.2.
o 50 - 24 menghasilkan 26.
o Tidak berlaku untuk string, akan menghasilkan
error unsupported operand.
* (perkalian)
o Mengembalikan hasil perkalian angka atau
mengembalikan string yang diulang sejumlah tertentu.
o 2 * 3 menghasilkan 6.
o 'la' * 3 menghasilkan 'lalala'.
** (pangkat)
o Mengembalikan operand pertama pangkat operand
kedua.
o 3 ** 4 menghasilkan 81 (sama dengan 3 * 3 * 3 * 3).
/ (pembagian)
o Mengembalikan hasil pembagian operand pertama
dengan operand kedua (float).
o 13 / 3 menghasilkan 4.333333333333333.
// (pembagian habis dibagi / div)
o Mengembalikan hasil pembagian operand pertama
dengan operand kedua (bilangan bulat), kecuali jika
salah satu operand adalah float, akan menghasilkan
float.
o 13 // 3 menghasilkan 4.
o -13 // 3 menghasilkan -5.
o 9//1.81 menghasilkan 4.0.
% (modulo)
o Mengembalikan sisa bagi.
o 13 % 3 menghasilkan 1.
o -25.5 % 2.25 menghasilkan 1.5.
Operasi Bit
2. hijau = 5
3. kuning = 10
Output:
Kelereng Hijau = 5
Kelereng Kuning = 10
lt(hijau, kuning): True
le(hijau, kuning): True
eq(hijau, kuning): False
ne(hijau, kuning): True
ge(hijau, kuning): False
gt(hijau, kuning): False
Boolean Operator
1. a = 2
2. a = a * 3
1. a = 2
2. a *= 3
Operator Description
or Boolean OR
in, not in, is, is not, <, <=, >, >=, !=, == Comparisons, including membership tests and identity tests
| Bitwise OR
^ Bitwise XOR
** Exponentiation
(expressions...), [expressions...], {key: Binding or tuple display, list display, dictionary display, set display
value...},{expressions...}
Lint
Lint adalah proses pengecekan kode atas kemungkinan terjadi
kesalahan (error), termasuk dalam proses ini adalah mengecek
kesesuaian terhadap arahan gaya penulisan kode (style guide)
PEP8. Aplikasi yang digunakan untuk proses ini disebut linter.
Integrasi linter dengan editor kode Anda akan membuat efisien
dalam menulis kode Python. Pertimbangan ini karena keluaran dari
aplikasi linter hanya berupa teks singkat berupa keterangan dan
kode Error atau Warning atau Kesalahan Konvensi Penamaan
(Naming Conventions), akan dicontohkan selanjutnya.
Pylint
Flake8
1. pycodestyle kal.py
1. pylint kal.py
1. flake8 kal.py
1. """kalkulator"""
2.
3. class Kalkulator:
6. self.i = _i
7.
9.
Memformat Kode
Jika proses lint atau linting hanya melakukan pengecekan, terkait
arahan gaya penulisan kode Anda bisa menggunakan aplikasi
tambahan untuk memformat kode agar sesuai PEP8. Sehingga
untuk Anda yang menggunakan editor kode yang sangat ringan dan
ringkas fitur sekalipun, misalnya tanpa fasilitas lint, tetap bisa
menghasilkan kode sesuai konvensi PEP8.
Proses memformat kode dengan menggunakan aplikasi, cukup
sederhana, setelah melakukan instalasi, akan muncul perintah
dengan nama yang sama dengan nama aplikasinya. Kemudian
perintah itu dapat dieksekusi untuk memformat satu file ataupun
satu direktori kode Python.
Black
Autopep8
4. self.i = _i
7. return self.i - _i
1. class Kalkulator:
3.
5. self.i = _i
6.
8. return self.i + _i
9.
1. class Kalkulator:
4. self.i = _i
5.
7. return self.i + _i
8.
1. class Kalkulator:
3.
5. self.i = _i
6.
8.
1. if foo == 'blah':
2. do_blah_thing()
3. do_one()
4. do_two()
5. do_three()
Tidak disarankan:
Tidak disarankan:
2. else: do_non_blah_thing()
3. try: something()
4. finally: cleanup()
Disarankan:
1. FILES = ('setup.cfg',)
Tidak disarankan:
1. FILES = 'setup.cfg',
Disarankan:
1. FILES = [
2. 'setup.cfg',
3. 'tox.ini',
4. ]
5. initialize(FILES,
6. error=True,
7. )
Tidak disarankan:
2. initialize(FILES, error=True,)
Anotasi Fungsi
1. Yes:
2. def munge(input: AnyStr): ...
4.
5. No:
7. def munge()->PosInt: …
1. Yes:
4.
5. No:
1. Yes:
4.
5. No:
Prinsip Overriding
1. cariJalan()
1. aStarSearch()
Penamaan Deskriptif
Penggunaan frase atau huruf pada awal fungsi ini tidak disarankan
pada Python, atau lebih tepatnya tidak dibutuhkan, karena struktur
pada Python:
ASCII
Identifiers yang digunakan pada library standar harus ASCII-
Compatible - lihat PEP 3131.
Nama Kelas
Gunakan CamelCase atau CapWords convention. Pastikan semua
akronim (misal HTTP) ditulis keseluruhan dengan huruf besar.
Penulisan Tipe Variable
Umumnya menggunakan CamelCase atau CapWords, lebih pendek
lebih baik:
1. T, AnyStr, Num
Nama Exception
Karena exception seharusnya bertipe kelas, Anda juga menerapkan
konvensi penamaan kelas pada exception. Bedanya, tambahkan
“Error” atau nama deskriptif lain pada nama exception Anda.
Konstanta
Konstanta umumnya didefinisikan pada bagian atas modul dengan
huruf besar, misalnya MAX_OVERFLOW dan TOTAL.
Interface
Umumnya, garansi backward compatibility hanya diaplikasikan
pada interface publik. Untuk itu pengguna harus dapat
membedakan dengan jelas, interface publik dan internal/non-publik.
Interface yang didokumentasikan umumnya dianggap sebagai
interface publik, kecuali dijelaskan secara eksplisit. Sebaliknya,
setiap interface yang tidak terdokumentasi, umumnya dianggap
bersifat internal.
If
Seperti bahasa pemrograman lainnya, Python juga memiliki
statemen percabangan IF. Di Python, expression diletakkan setelah
if, dan keputusan ditentukan berdasarkan nilai kebenaran dari
expression tersebut.
1. kelerengku = 10
2. if kelerengku:
3. print ("Cetak ini jika benar")
4. print (kelerengku)
Output:
1. if kerelengku: hitung()
Else
Statement Else dapat dikombinasikan dengan IF Statement, sebagai
jalan keluar saat kondisi / hasil evaluasi bernilai False. Else bersifat
opsional dan tunggal. Mari kita implementasikan dalam kasus
pengecekan tinggi badan pengunjung di suatu wahana.
Output 1:
1. bilangan = 4
2. if bilangan % 2 == 0:
3. print('Bilangan {} adalah genap'.format(bilangan))
4. else:
5. print('Bilangan {} adalah ganjil'.format(bilangan))
Output:
Output 1:
1. bilangan = -3
2. if bilangan > 0:
3. print('Bilangan {} adalah positif'.format(bilangan))
4. elif bilangan < 0:
5. print('Bilangan {} adalah negatif'.format(bilangan))
6. else:
7. print('Bilangan {} adalah nol'.format(bilangan))
Output:
Ternary Operators
Ternary operator lebih dikenal sebagai conditional expressions pada
Python. Operator menentukan sesuatu berdasarkan kondisi True
atau False. Jika statement atau klausa if Anda cukup sederhana,
maka ternary Operators akan sangat membantu.
IF Ternary
if (condition): condition_if_true if condition else condition_if_false
condition_if_true
else:
condition_if_false
lulus = True lulus = True
if (lulus): kata = "selamat" if lulus else "perbaiki"
kata = ”selamat”
else:
kata = “perbaiki”
Opsi lain dari ternary operators melibatkan tuples. Contoh kodenya
berikut:
IF Ternary_Tuples
if (condition): (condition_if_false, condition_if_true)[condition]
condition_if_true
else:
condition_if_false
lulus = True nice = True
if (lulus): kata= ("perbaiki", "selamat")[lulus]
kata=”selamat”
else:
kata=“perbaiki”
Pada tuple ini, dimanfaatkan nilai [0] sebagai False dan [1] sebagai
True.
1. kondisi = True
2. print(2 if kondisi else 1/0)
3. #Output is 2
4.
5. print((1/0, 2)[kondisi])
6. #Eror Pembagian Nol akan muncul
ShortHand Ternary
Selain Ternary Operators, dikenal juga shorthand ternary tag yang
mungkin membantu Anda untuk memeriksa kode/hasil dari sebuah
fungsi dan memastikan outputnya tidak menyebabkan error (atau
minimal memberikan informasi relevan saat error):
1. hasil = None
2. pesan = hasil or "Tidak ada data"
3. print(pesan)
Output:
Output:
Huruf : D
Huruf : i
Huruf : c
Huruf : o
Huruf : d
Huruf : i
Huruf : n
Huruf : g
Flower: mawar
Flower: melati
Flower: anggrek
Flower : mawar
Flower : melati
Flower : anggrek
While
Contoh:
1. count = 0
2. while (count < 7):
3. print('Hitungannya adalah: {}'.format(count))
4. count = count + 1
Output:
Hitungannya adalah: 0
Hitungannya adalah: 1
Hitungannya adalah: 2
Hitungannya adalah: 3
Hitungannya adalah: 4
Hitungannya adalah: 5
Hitungannya adalah: 6
1. var = 1
2. while var == 1: # This constructs an infinite loop
3. num = input('Masukkan angka: ')
4. print('Anda memasukkan angka: {}'.format(num))
5.
6.
7. while True: # This constructs an infinite loop
8. num = input('Masukkan angka: ')
9. print('Anda memasukkan angka: {}'.format(num))
Potongan kode di atas tidak akan pernah bernilai False karena nilai
var tidak pernah berubah. Untuk menghentikan infinite loop,
gunakan CTRL (atau CMD⌘) - C untuk menghentikannya dan keluar
dari program.
Perulangan Bertingkat
******
*****
****
***
**
*
Anda dapat melakukannya dengan kode berikut:
Kontrol Perulangan
Break
Pernyataan break menghentikan perulangan kemudian keluar,
dilanjutkan dengan mengeksekusi pernyataan (statement) setelah
blok perulangan. Salah satu penggunaannya yang paling sering
adalah sebuah kondisi eksternal yang membutuhkan program untuk
keluar dari perulangan. Jika Anda memiliki perulangan bertingkat,
break akan menghentikan perulangan sesuai dengan tingkatan atau
di perulangan mana ia berada. Namun jika ia diletakkan di
perulangan dengan kedalaman kedua misalnya, hanya perulangan
itu saja yang berhenti, tidak dengan perulangan utama.
Contoh 1:
Output contoh 1:
Output contoh 2:
*
**
***
****
*****
******
*******
********
*********
**********
Continue
Contoh 1:
Output contoh 1:
1. jumlahbaris = 10
2. baris = 0
3. bintang = 0
4. while baris < jumlahbaris:
5. if (bintang) >= (baris+1):
6. print()
7. baris = baris+1
8. bintang=0
9. continue ##saat masuk ke if, maka bagian print *
diluar if tidak akan dijalankan, langsung ulang ke while
10. print("*",end="")
11. bintang= bintang+1
*
**
***
****
*****
******
*******
********
*********
**********
1. n = 10
2. while n > 0:
3. n = n - 1
4. if n == 7:
5. break
6. print(n)
7. else:
8. print("Loop selesai")
Output:
9
8
Pada contoh diatas, loop akan di break saat nilai n == 7, saat
keluar dari perulangan, maka python tidak akan memunculkan
tulisan Loop selesai, namun jika tidak dilakukan break (perulangan
berakhir dengan normal):
1. n = 10
2. while n > 0:
3. n = n - 1
4. print(n)
5. else:
6. print("Loop selesai")
Output:
9
8
7
6
5
4
3
2
1
0
Loop selesai
Pass
1. def sebuahfungsi():
2. pass
Output:
#tidak ada
Jika Anda mendeklarasi sebuah fungsi tanpa kode apapun, justru
akan terjadi error:
1. def sebuahfungsi():
Output:
1. var1=""
2. while(var1!="exit"):
3. var1=input("Please enter an integer (type exit to exit): ")
4. print(int(var1))
Output:
1. import sys
2. data=''
3. while(data!='exit'):
4. try:
5. data=input('Please enter an integer (type exit to exit):
')
6. print('got integer: {}'.format(int(data)))
7. except:
8. if data == 'exit':
9. pass # exit gracefully without prompt any error
10. else:
11. print('error: {}'.format(sys.exc_info()[0]))
Ada kalanya Anda perlu untuk membuat sebuah list baru dari
dengan sebuah operasi dari list sebelumnya. Misalnya membuat
nilai kuadrat dari semua item dalam list:
1. #Cara 1
2. angka = [1, 2, 3, 4]
3. pangkat = []
4. for n in angka:
5. pangkat.append(n**2)
6. print(pangkat)
Output:
[1, 4, 9, 16]
Bandingkan dengan:
Output:
1. print('salah indentasi')
3. print('salah indentasi')
4. ^
4. ^
1. python contoh_salah_sintaksis.py
4. ^
Pengecualian
Meski pernyataan atau ekspresi dari Python sudah Anda tulis
dengan benar, ada kemungkinan terjadi kesalahan ketika perintah
tersebut dieksekusi. Kesalahan yang terjadi saat proses sedang
berlangsung disebut pengecualian (exceptions) dan akan berakibat
fatal jika tidak ditangani. Kebanyakan pengecualian di Python tidak
ditangani oleh aplikasi, sehingga aplikasi terhenti kemudian muncul
pesan kesalahan seperti contoh berikut.
1. print(angka)
1. bukan_angka = '1'
2. bukan_angka + 2