Tipe Data

Dasar dari mempelajari Bahasa Pemrograman yang baru adalah pemahaman terhadap tipe data. Di sini Anda akan diajarkan tentang tipe data bawaan yang ada di Python 3 beserta contoh penggunaannya.

Numbers

Tipe numerik pada Python dibagi menjadi 3: int, float, complex


  1. a = 5

  2. print(a, "is of type", type(a))

  3. a = 2.0

  4. print(a, "is of type", type(a))

  5. a = 1+2j

  6. print(a, "is complex number?", isinstance(1+2j,complex))


Output:
5 is of type <class 'int'>
2.0 is of type <class 'float'>
(1+2j) is complex number? True
Integer tidak dibatasi oleh angka atau panjang tertentu, namun dibatasi oleh memori yang tersedia. Sehingga Anda tidak perlu menggunakan variabel yang menampung big number misalnya long long (C/C++), biginteger, atau sejenisnya. Contoh kode untuk menunjukkan bahwa Python tidak membatasi output integer adalah pencarian bilangan ke-10.000 pada deret fibonacci (catatan: bilangan ke-10.000 pada deret fibonacci memiliki panjang 2.090 digit) sebagai berikut:


  1. x=[0]*10005;              #inisialisasi array 0 sebanyak 10005; x[0]=0

  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. 33644764876431783266621612005107543310302148460680063906564769974680081442166662368155595513633734025582065332680836159373734790483865268263040892463056431887354544369559827491606602099884183933864652731300088830269235673613135117579297437854413752130520504347701602264758318906527890855154366159582987279682987510631200575428783453215515103870818298969791613127856265033195487140214287532698187962046936097879900350962302291026368131493195275630227837628441540360584402572114334961180023091208287046088923962328835461505776583271252546093591128203925285393434620904245248929403901706233888991085841065183173360437470737908552631764325733993712871937587746897479926305837065742830161637408969178426378624212835258112820516370298089332099905707920064367426202389783111470054074998459250360633560933883831923386783056136435351892133279732908133732642652633989763922723407882928177953580570993691049175470808931841056146322338217465637321248226383092103297701648054726243842374862411453093812206564914032751086643394517512161526545361333111314042436854805106765843493523836959653428071768775328348234345557366719731392746273629108210679280784718035329131176778924659089938635459327894523777674406192240337638674004021330343297496902028328145933418826817683893072003634795623117103101291953169794607632737589253530772552375943788434504067715555779056450443016640119462580972216729758615026968443146952034614932291105970676243268515992834709891284706740862008587135016260312071903172086094081298321581077282076353186624611278245537208532365305775956430072517744315051539600905168603220349163222640885248852433158051534849622434848299380905070483482449327453732624567755879089187190803662058009594743150052402532709746995318770724376825907419939632265984147498193609285223945039707165443156421328157688908058783183404917434556270520223564846495196112460268313970975069382648706613264507665074611512677522748621598642530711298441182622661057163515069260029861704945425047491378115154139941550671256271197133252763631939606902895650288268608362241082050562430701794976171121233066073310059947366875



Perhatikan bagaimana Python melakukan pemotongan pada digit ke 16 pada variabel float b.
Float atau bilangan pecahan dibatasi akurasinya pada 15 desimal. Yang membedakan Integer dan Float adalah titik (decimal points). Misalnya dalam penulisan angka 1 jenisnya Integer, tapi jika dituliskan sebagai 1.0 artinya berjenis Float atau pecahan.


  1. b = 0.1234567890123456789

  2. b


Output:
0.12345678901234568
Karena Python banyak digunakan juga oleh matematikawan, tipe bilangan di Python juga mendukung bilangan imajiner dan bilangan kompleks. Nilai bilangan kompleks (complex) dituliskan dalam formulasi x + yj, yakni bagian x adalah bilangan real, dan y adalah bilangan imajiner. Contohnya adalah sebagai berikut:


  1. a = 1234567890123456789

  2. print(a)


Output:
1234567890123456789


  1. c = 1+2j

  2. print(c)


Output:
(1+2j)

Strings

String adalah urutan dari karakter unicode. Dideklarasikan dengan petik tunggal atau ganda. String >1baris dapat ditandai dengan tiga petik tunggal atau ganda ''' atau """.


  1. s = "This is a string"




  1. s = '''this is a multiline

  2. next new line (1)

  3. another new line (2)'''


Seperti list dan tuple, slicing operator [ ] dapat digunakan pada string. Sebuah string utuh bersifat mutable, namun elemennya bersifat immutable.


  1. s = "Hello World!"

  2. print(s[4])

  3. print(s[6:11])

  4. s[5]="d"


Output:
'o'
'World'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment


  1. s = "Hello World!"

  2. print(s)

  3. s= "Try Python!"

  4. print(s)


Output:
'Hello World!'
'Try Python!'

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:
  • Konstanta yang sudah didefinisikan bernilai salah: None dan False
  • Angka nol dari semua tipe numeric: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • Urutan (sequence) dan koleksi (collection) yang kosong: '', (), {}, set(), range(0)
Untuk objek yang didefinisikan sendiri, representasi nilai Boolean akan bergantung dari definisi metode (method) khusus bernama __bool__(self). Jika metode ini mengembalikan True maka interpretasi nilai dari objeknya akan True, demikian juga sebaliknya.

Operasi Boolean

Operasi dan fungsi bawaan yang memiliki hasil Boolean akan selalu mengembalikan 0 atau False untuk yang bernilai salah, serta 1 atau True untuk yang bernilai benar, kecuali dinyatakan berbeda dalam dokumentasi.
Operasi untuk tipe Boolean akan dijelaskan lebih lanjut di modul Operator, Operands, dan Expressions.

List

List adalah jenis kumpulan data terurut (ordered sequence), dan merupakan salah satu variabel yang sering digunakan pada Python. Serupa, namun tak sama dengan array pada bahasa pemrograman lainnya. Bedanya, elemen List pada Python tidak harus memiliki tipe data yang sama. Mendeklarasikan List cukup mudah dengan kurung siku dan elemen yang dipisahkan dengan koma. Setiap data didalamnya dapat diakses dengan indeks yang dimulai dari 0.


  1. a = [1, 2.2, 'python']


Python mengenal slicing operator [] yang dapat melakukan ekstraksi sebuah item atau beberapa item yang berada dalam range tertentu pada tipe data urutan (sequences), misalnya list, string dan tuple. Beberapa tipe urutan juga mendukung "extended slicing" dengan parameter ketiga berupa "step".
x[0] artinya mengambil elemen paling awal, dengan index 0 dari List x
x[5] artinya mengambil elemen dengan index 5 dari List x
x[-1] artinya mengambil elemen dengan index paling belakang ke-1 dari List x
x[3:5] artinya membuat list dari anggota elemen List x dengan index 3 hingga sebelum index 5 (tidak termasuk elemen dengan index 5, dalam hal ini hanya index 3-4)
x[:5] artinya membuat list dari anggota elemen List x paling awal hingga sebelum index 5 (tidak termasuk elemen dengan index 5, dalam hal ini hanya index 0-4)
x[-3:] artinya membuat list dari anggota elemen List x mulai index ke-3 dari belakang hingga paling belakang
x[1:7:2] artinya membuat list dari anggota elemen List x dengan index 1 hingga sebelum index 7, dengan "step" 2 (dalam hal ini hanya index 1, 3, 5)


  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]
Elemen pada list dapat diubah atau ditambahkan. Misalnya untuk melakukan perubahan kemudian penambahan:


  1. x = [1,2,3]

  2. x[2]=4

  3. x


Output:
[1, 2, 4]


  1. x.append(5)

  2. x


Output:
[1, 2, 4, 5]
Untuk menghapus, gunakan fungsi del


  1. spam = ['cat', 'bat', 'rat', 'elephant']

  2. del spam[2]

  3. print(spam)


Output:
['cat', 'bat', 'elephant']


  1. del spam[2]

  2. print(spam)


Output:
['cat', 'bat']

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. t[1]

  3. t[0:3]

  4. 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

Set adalah kumpulan item bersifat unik dan tanpa urutan (unordered collection). Didefinisikan dengan kurawal dan elemennya dipisahkan dengan koma. Pada Set kita dapat melakukan union dan intersection, sekaligus otomatis melakukan penghapusan data duplikat.

  1. a = {1,2,2,3,3,3}

  2. a


Output:
{1, 2, 3}
Karena set bersifat unordered, maka kita tidak bisa mengambil sebagian data / elemen datanya menggunakan proses slicing.

  1. a = {1,2,3}

  2. 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

Dictionary pada Python adalah kumpulan pasangan kunci-nilai (pair of key-value) yang bersifat tidak berurutan. Dictionary dapat digunakan untuk menyimpan data kecil hingga besar. Untuk mengakses datanya, kita harus mengetahui kuncinya (key). Pada Python, dictionary didefinisikan dengan kurawal dan tambahan definisi berikut:
  1. Setiap elemen pair key-value dipisahkan dengan koma (,)
  2. Key dan Value dipisahkan dengan titik dua (:)
  3. Key dan Value dapat berupa tipe variabel/obyek apapun

  1. d = {1:'value','key':2}

  2. print(type(d))


Output:
<class 'dict'>

  1. d = {1:'value','key':2}

  2. print(type(d))

  3. print("d[1] = ", d[1]);

  4. print("d['key'] = ", d['key']);


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))

  3. print("d[1] = ", d[1]);

  4. print("d['key'] = ", d['key']);

  5.  

  6. # Generates error

  7. print("d[2] = ", d[2]);


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


Konversi (conversion, cast) antar tipe data

Kita dapat melakukan konversi tipe data bawaan dengan menggunakan fungsi konversi tipe bawaan (standard type) misalnya: int(), float(), str(), dll.

  1. float(5)


Output:
5.0
Konversi float ke int akan bersifat floor/truncating, menghilangkan nilai di belakang koma.

  1. int(10.6)


Output:
10

  1. int(-10.6)


Output:
-10
Konversi dari-dan-ke string akan melalui pengujian dan dipastikan validitasnya.

  1. float('2.5')


Output:
2.5

  1. str(25)


Output:
'25'

  1. 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'

Anda juga dapat melakukan konversi kumpulan data (set, list, tuple).

  1. set([1,2,3])


Output:
{1, 2, 3}

  1. tuple({5,6,7})


Output:
(5, 6, 7)

  1. list('hello')


Output:
['h', 'e', 'l', 'l', 'o']
Untuk konversi ke dictionary, data harus memenuhi persyaratan key-value. Berikut adalah dua contoh konversi:
List dari beberapa List yang isinya pasangan nilai menjadi Dictionary. 
Serta konversi List dari beberapa Tuple yang isinya pasangan nilai menjadi Dictionary.

  1. dict([[1,2],[3,4]])


Output:
{1: 2, 3: 4}

  1. dict([(3,26),(4,44)])


Output:
{3: 26, 4: 44}


Tipe data adalah suatu media atau memori pada komputer yang digunakan untuk menampung informasi.


Python sendiri mempunyai tipe data yang cukup unik bila kita bandingkan dengan bahasa pemrograman yang lain.

Berikut adalah tipe data dari bahasa pemrograman Python :

Tipe Data Contoh Penjelasan
Boolean True atau False Menyatakan benar True yang bernilai 1, atau salah False yang bernilai 0
String "Ayo belajar Python" Menyatakan karakter/kalimat bisa berupa huruf angka, dll (diapit tanda " atau ')
Integer 25 atau 1209 Menyatakan bilangan bulat
Float 3.14 atau 0.99 Menyatakan bilangan yang mempunyai koma
Hexadecimal 9a atau 1d3 Menyatakan bilangan dalam format heksa (bilangan berbasis 16)
Complex 1 + 5j Menyatakan pasangan angka real dan imajiner
List ['xyz', 786, 2.23] Data untaian yang menyimpan berbagai tipe data dan isinya bisa diubah-ubah
Tuple ('xyz', 768, 2.23) Data untaian yang menyimpan berbagai tipe data tapi isinya tidak bisa diubah
Dictionary {'nama': 'adi','id':2} Data untaian yang menyimpan berbagai tipe data berupa pasangan penunjuk dan nilai

Untuk mencoba berbagai macam tipe data, silahkan coba script Python dibawah ini.

#tipe data Boolean
print(True)

#tipe data String
print("Ayo belajar Python")
print('Belajar Python Sangat Mudah')

#tipe data Integer
print(20)

#tipe data Float
print(3.14)

#tipe data Hexadecimal
print(9a)

#tipe data Complex
print(5j)

#tipe data List
print([1,2,3,4,5])
print(["satu", "dua", "tiga"])

#tipe data Tuple
print((1,2,3,4,5))
print(("satu", "dua", "tiga"))

#tipe data Dictionary
print({"nama":"Budi", 'umur':20})
#tipe data Dictionary dimasukan ke dalam variabel biodata
biodata = {"nama":"Andi", 'umur':21} #proses inisialisasi variabel biodata
print(biodata) #proses pencetakan variabel biodata yang berisi tipe data Dictionary
type(biodata) #fungsi untuk mengecek jenis tipe data. akan tampil <class 'dict'> yang b


Bagi anda yang sedang belajar python, perlu diketahui untuk membuat syntax dasar yang baik dan benar akan saya bahas disini

1. Penulisan Statement Python

Statement adalah sebuah intruksi atau kalimat perintah yang akan dieksekusi oleh komputer.
Contoh:
print("Hello World!")
print("Belajar Python dari Nol")
nama = "petani kode"
Penulisan satu statement tidak diakhiri dengan tanda titik-koma.
Sedangkan, bila kita ingin menulis lebih dari satu statement dalam satu baris, maka kita harus memisahnya dengan titik-koma.
Contoh:
print("Hello"); print("World"); print("Tutorial Python untuk Pemula")
nama_depan = "petani"; nama_belakang = "kode"
Tapi…
Menurut beberapa style guide python, tidak dianjurkan menulis lebih dari satu statement dalam satu baris. Karena akan sulit dibaca.

2. Penulisan String pada Python

String adalah teks atau kumpulan dari karakter.
String dalam pemrograman biasanya ditulis dengan dibungkus menggunakan tanda petik.
Bisa menggunakan tanda petik tunggal maupun ganda.
Contoh:
judul = "Belajar Pemrograman Python sampai Bisa"
penulis = 'Petani Kode'
Atau kita juga bisa menggunakan triple tanda petik.

Contoh:
judul = """Belajar Python dengan Cepat"""
penulis = '''Petani Kode''' 
 


3. Penuilsan Case pada Python

Sintak Python bersifat case sensitive, artinya teksini dengna TeksIni dibedakan.
Contoh:
judul = "Belajar Dasa-dasar Python"
Judul = "Belajar Membuat Program Python"
Antara variabel judul dengan Judul itu dibedakan…

Case Style

Menurut rekomendasi style guide Google, berikut ini contoh penulisan case yang disarankan:
## Snake Case digunakan pada:
module_name, package_name, method_name, function_name, , global_var_name, instance_var_name, function_parameter_name, local_var_name.

## CamelCase digunakan Pada:
ClassName, ExceptionName

## ALL CAPS digunakan Pada:
GLOBAL_CONSTANT_NAME
Baca juga: 4 Macam Gaya Penulisan Case dalam Pemrograman

4. Penulisan Blok Program Python

Blok program adalah kumpulan dari beberpaa statement yang digabungkan dalam satu blok.
Penulisan blok program harus ditambahkan indentasi (tab atau spasi 2x/4x).
Blok Program
✔ Contoh yang benar:
# blok percabangan if
if username == 'petanikode':
print("Selamat Datang Admin")
print("Silahkan ambil tempat duduk")

# blok percabangan for
for i in range(10):
print i
❌ Contoh yang salah:
# blok percabangan if
if username == 'petanikode':
print("Selamat Datang Admin")
print("Silahkan ambil tempat duduk")

# blok percabangan for
for i in range(10):
print i
Ada beberapa macam blok program:

5. Cara Penulisan Komentar pada Python

Komentar merupakan baris kode yang tidak akan dieksekusi.
Komentar digunakan untuk memberikan informasi tambahan dan untuk menonaktifkan kode.
Ada beberapa cara menulis komentar pada pemrograman Python.

Menggunakan Tanda Pagar (#)

Cara pertama menggunakan tanda pagar (#).
Cara ini paling sering digunakan.
Contohnya:
# ini adalah komentar
# Ini juga komentar

Menggunakan Tanda Petik

Selain untuk mengapit teks (string), tanda petik juga dapat digunakan untuk membuat komentar.
Contoh:
"Ini adalah komentar dengan tanda petik ganda"
'Ini juga komentar, tapi dengan tanda petik tunggal'
Penulisan komentar dengan tanda petik jarang digunakan, kebanyakan orang lebih memilih untuk menggunakan tanda pagar. Jadi…tidak direkomendasikan.

Menggunakan Triple Tanda Petik

Sedangkan triple tanda petik, sering digunakan untuk menuliskan dokumentasi.
Contohnya:
class Pagar:
"""kelas pagar untuk membuat objek pagar. Dibuat oleh Petani Kode sebagai contoh saja."""
def __init__(self, warna, tinggi, bahan):
self.warna = warna
self.tinggi = tinggi
self.bahan = bahan

# Mengakses dokumentasi kelas
print Pagar.__doc__
input('\ntekan [enter] untuk melihat bantuan (dokumentasi) kelas: ')
help(Pagar) # untuk melihat dokumentasi kelas
Hasilnya:
$ python kelas_pagar.py
kelas pagar untuk membuat objek pagar.
dibuat oleh Petani Kode
sebagai contoh saja.

tekan [enter] untuk melihat bantuan (dokumentasi) kelas:
Setelah Enter ditekan
Help on class Pagar in module main:
class Pagar
| kelas pagar untuk membuat objek pagar.
| dibuat oleh Petani Kode
| sebagai contoh saja.
|
| Methods defined here:
|
| __init__(self, warna, tinggi, bahan)
(END)

Semoga bermanfaat dan terima kasih :)

 

Style Guide pada Python Code

Berikut adalah beberapa style guide menulis kode Python dengan baik dan benar. Panduan gaya penulisan kode ini mengacu pada PEP-008. Beberapa proyek mungkin memiliki style guide tersendiri.


Sejumlah contoh kode yang ditulis di halaman ini berupa pseudocode, bertujuan hanya untuk memberikan gambaran tentang panduan gaya penulisan kode saja.

Guido, pembuat bahasa Python, merasakan bahwa kode lebih sering dibaca dibandingkan ditulis. Oleh sebab itu, panduan ini lebih ditekankan untuk kemudahan membaca kode dan membuatnya konsisten pada (hampir) setiap proyek Python yang ada.

Namun demikian pada kasus-kasus tertentu, keputusan adanya modifikasi tetap pada penulis kodenya. Mungkin sebuah kode dapat terbaca lebih jelas walaupun tidak mengikuti satu atau lebih panduan dalam modul ini.

Indentasi

Gunakan 4 spasi pada setiap tingkatan indentasi.

Python menggunakan indentasi untuk menulis kode bertingkat. Bahasa lain mungkin menggunakan statement tertentu (Begin, end - pascal), perbedaan baris atau kurung kurawal.

Statement yang memiliki indentasi yang sama dan diletakkan secara berurutan dikenali sebagai blok statement oleh Python dan akan dijalankan secara berurutan.


  1. Statement tingkat 1:

  2.     Statement tingkat 2()

  3.     Statement tingkat 2 yang kedua()


Baris Lanjutan

Seringkali, saat menulis kode, kita harus menggunakan baris lanjutan karena kode tidak cukup dituliskan dalam satu baris. Umumnya, kita dapat menggunakan tanda hubung, kurung, kurawal, atau seperti disarankan pada PEP-008, gunakan hanging indent.

Beberapa panduan dalam menggunakan hanging indent dalam penulisan kode python adalah sebagai berikut:

Disarankan:


  1. # Opsi 1

  2. # Rata kiri dengan kurung atau pemisah dengan argumen utama

  3. foo = long_function_name(var_one, var_two,

  4.                          var_three, var_four)

  5.  

  6. # Opsi 2

  7. # Tambahkan indentasi ekstra - (level indentasi baru) untuk memisahkan parameter/argument dari bagian lainnya

  8. def long_function_name(

  9.         var_one, var_two, var_three,

  10.         var_four):

  11.     print(var_one)

  12.  

  13. # Opsi 3

  14. # Hanging indents dengan penambahan level indentasi saja

  15. foo = long_function_name(

  16.     var_one, var_two,

  17.     var_three, var_four)



Tidak Disarankan:


  1. # Contoh kesalahan 1

  2. # Tidak rata kiri dengan bagian yang relevan

  3. foo = long_function_name(var_one, var_two,

  4.     var_three, var_four)

  5.  

  6. # Contoh kesalahan 2

  7. # Sulit dibedakan antara baris lanjutan atau fungsi baru

  8. def long_function_name(

  9.     var_one, var_two, var_three,

  10.     var_four):

  11.     print(var_one)


Catatan: 4 spasi bersifat opsional pada baris lanjutan, utamakan keterbacaan kode. 
Anda juga dapat menggunakan jumlah spasi yang lain (misalnya 2) untuk baris lanjutan ini. Contohnya sepert ini:

  1. # Hanging indents *boleh* menggunakan selain 4 spasi

  2. foo = long_function_name(

  3.   var_one, var_two,

  4.   var_three, var_four)


Kondisional (If)

Bagian ini hanya memberikan gambaran mengenai standar penulisan, pembahasan mengenai kondisional ada di modul Percabangan.
Saat menulis pernyataan kondisional, misalnya IF, kita juga menemukan penulisan yang terkadang tidak cukup dituliskan dalam satu baris, atau menggunakan beberapa operand yang akan menyulitkan apabila digabung berturut-turut.
Dalam kondisi ini, Python tidak memberikan panduan spesifik, mengingat kondisi yang dihadapi programmer mungkin berbeda. Contoh-contoh yang disarankan adalah sebagai berikut (meskipun dimungkinkan versi-versi lain selama keterbacaan kode tetap tinggi):

  1. # Contoh kondisi visual yang tidak diubah/tanpa indentasi

  2. if (sebuah kondisi dan

  3.     kondisi yang lain):

  4.     lakukanSesuatu()

  5.  

  6. # Tambahkan komentar

  7. if (sebuah kondisi dan

  8.     kondisi yang lain):

  9.     #Mengingat Keduanya Benar, lakukan hal berikut

  10.     lakukanSesuatu()

  11.  

  12. # Tambahkan ekstra indentasi pada baris lanjutan

  13. if (sebuah kondisi dan

  14.         kondisi yang lain):

  15.     lakukanSesuatu()


Kurung/siku penutup

Penempatan kurung atau siku penutup juga dapat diletakkan pada baris lanjutan, dengan mengikuti posisi karakter pertama yang bukan whitespace (non-whitespace character) pada baris sebelumnya:

  1. my_list = [

  2.     1, 2, 3,

  3.     4, 5, 6,

  4.     ]

  5.  

  6. result = some_function_that_takes_arguments(

  7.     'a', 'b', 'c',

  8.     'd', 'e', 'f',

  9.     )


Atau dapat diletakkan sejajar dengan statemen utama, contoh:

  1. my_list = [

  2.     1, 2, 3,

  3.     4, 5, 6,

  4. ]

  5.  

  6. result = some_function_that_takes_arguments(

  7.     'a', 'b', 'c',

  8.     'd', 'e', 'f',

  9. )



Tab atau spasi

Spasi adalah model yang disarankan PEP-008. Pengecualian pada kode yang sudah menggunakan tab/tabulasi sebelumnya. Python sejak versi 3 tidak memperbolehkan pencampuran antara Tab dan Spasi untuk indentasi. Anda disarankan untuk melakukan konversi kode untuk menggunakan spasi sepenuhnya.
Anda dapat menggunakan find-replace untuk mengganti tab, atau memanggil kode Anda yang berbasis Python 2 dengan opsi -t (warning) atau -tt (error) untuk mengetahui titik penggunaan tab dan spasi yang bercampur.

Panjang baris maksimum

Batasi panjang kode setiap baris hingga 79 karakter. Untuk komentar atau dokumentasi, usahakan untuk tidak melebihi 72 karakter.
Dengan membatasi panjang baris maksimum, Anda akan memudahkan pengguna lain membuka >1 window editor secara berdampingan, misalnya untuk melakukan review atau perbandingan.

Panjang kode setiap baris yang dibatasi akan memudahkan Anda jika menggunakan code review tools yang menunjukkan dua versi berbeda secara berdampingan.

Mengapa 79? Hal ini dicontohkan pada editor-editor dengan window-width yang terset pada 80 karakter.

1 karakter tersisa bisa berupa marker glyph atau whitespace. Pembatasan 79 karakter ini membuat editor terkecil sekalipun tidak akan merusak struktur dan keterbacaan kode Anda. Jika Anda atau tim mengalami kesulitan (misalnya karena struktur penamaan variabel) yang telah disepakati, cenderung melebihi batasan panjang karakter, Anda dapat melakukan kesepakatan atau konvensi yang berlaku pada kode Anda sendiri.

Umumnya hingga 99 karakter per baris.
Catatan: Python Standard Library selalu dikembangkan secara konservatif dan mempertahankan standar 79 karakter pada kode, dan 72 pada komentar/dokumentasi.
Seperti telah dibahas sebelumnya, Anda direkomendasikan untuk menggunakan baris lanjutan dengan kurung, kurawal, siku, maupun hanging indents.

Baris yang cukup panjang dapat dipisahkan menjadi beberapa baris. Beberapa dari Anda mungkin mengenal pemisahan menggunakan backslash (\), namun tidak disarankan untuk digunakan, kecuali memang diharuskan. Contohnya adalah penggunaan backslash pada statement with atau assert yang tidak dapat menggunakan implicit continuation.

  1. with open('/path/to/some/file/you/want/to/read') as file_1, \

  2.      open('/path/to/some/file/being/written', 'w') as file_2:

  3.     file_2.write(file_1.read())


Pastikan untuk memberikan indentasi yang sesuai pada baris-baris lanjutannya.

Mengganti baris: sebelum atau sesudah operator binary?

Bagian ini hanya memberikan gambaran mengenai standar penulisan, pembahasan mengenai kondisional dibahas di modul Operator, Operands, dan Expressions.
Penggantian baris setelah operator binary memang pernah menjadi rekomendasi. Namun ternyata penggunaan metode ini membuat mata cepat lelah dan Anda perlu melakukan kroscek pada baris berbeda. Contohnya:

  1. income = (gross_wages +

  2.           taxable_interest +

  3.           (dividends - qualified_dividends) -

  4.           ira_deduction -

  5.           student_loan_interest)


Untuk menyelesaikan masalah ini, dipilih pendekatan baris baru sebelum operator binary. Hal ini untuk mempermudah pembaca kode mengerti operasi yang dilakukan terhadap variabel berikutnya.

  1. income = (gross_wages

  2.           + taxable_interest

  3.           + (dividends - qualified_dividends)

  4.           - ira_deduction

  5.           - student_loan_interest)


Kedua pendekatan ini dimungkinkan di Python. Anda direkomendasikan untuk menggunakan pendekatan kedua (baris baru sebelum operator) untuk menulis kode baru.

Baris kosong

Anda disarankan untuk menambahkan dua baris kosong pada top level function dan class definitions. Kemudian untuk setiap deklarasi method, dipisahkan dengan satu baris kosong.
Anda juga dapat menambahkan baris kosong ini apabila dibutuhkan, misalnya untuk memisahkan gabungan beberapa fungsi yang memiliki fungsi terkait atau untuk meningkatkan keterbacaan kode. Pemisahan baris kosong tidak diperlukan jika deklarasi fungsi/method Anda bersifat satu baris (one-liner), umumnya untuk fungsi/method yang belum diimplementasikan secara penuh.

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

Saat melakukan import library, lakukan import setiap library pada baris berbeda.

  1. Yes: import os

  2.      import sys

  3.  

  4. No:  import sys, os


Kecuali, jika anda memerlukan lebih dari satu sub-library dari library yang sama.

  1. from subprocess import Popen, PIPE


Import umumnya diletakkan pada bagian awal berkas. Setelah komentar dan dokumentasi tentang berkas tersebut (misalnya definisi kelas, dll), sebelum variabel global dan konstanta. Jika memungkinkan, kelompokkan import dalam urutan berikut:
  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

  2. from mypkg import sibling

  3. from mypkg.sibling import example


Kode pada Standard library umumnya dapat menggunakan absolute import. Anda juga dapat mengimpor kelas/sub-library, Anda tentu saja dapat menggunakan pemanggilan berikut:

  1. from myclass import MyClass

  2. from foo.bar.yourclass import YourClass


Jika ada penamaan kelas yang sama, gunakan pemanggilan secara eksplisit:

  1. import myclass

  2. import foo.bar.yourclass


saat memanggil, gunakan "myclass.MyClass" dan "foo.bar.yourclass.YourClass".

  1. from <module> import *


Wildcard imports seperti tertulis, sedapat mungkin dihindari untuk mengatasi ambiguitas dan ketidaktahuan tentang modul apa yang di-import.

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

Wajib dihindari: penambahan whitespace yang tidak perlu


  1. Antara kurung, kurawal, kurung siku

  2. Yes: spam(ham[1], {eggs: 2})

  3. No:  spam( ham[ 1 ], { eggs: 2 } )


Setelah koma, tanpa argumen lain setelahnya

  1. Yes: foo = (0,)

  2. No:  bar = (0, )


Sebelum koma, titik dua, atau titik koma

  1. Yes: if x == 4: print x, y; x, y = y, x

  2. No:  if x == 4 : print x , y ; x , y = y , x


Namun, jika Anda menggunakan titik dua/colon sebagai slice (sub-list), pastikan ia memiliki spasi/whitespace yang sama pada kedua sisinya.

  1. Yes:

  2. ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]

  3. ham[lower:upper], ham[lower:upper:], ham[lower::step]

  4. ham[lower+offset : upper+offset]

  5. ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]

  6. ham[lower + offset : upper + offset]

  7.  

  8. No:

  9. ham[lower + offset:upper + offset]

  10. ham[1: 9], ham[1 :9], ham[1:9 :3]

  11. ham[lower : : upper]

  12. ham[ : upper]


Saat memberikan parameter pada fungsi, sebelum kurung tidak boleh ada spasi

  1. Yes: spam(1)

  2. No:  spam (1)


Saat memberikan parameter/index pada list, sebelum kurung siku tidak boleh ada spasi

  1. Yes: dct['key'] = lst[index]

  2. No:  dct ['key'] = lst [index]



  1. Saat membuat assignment pada variabel, sebaiknya tidak menambahkan whitespace yang tidak perlu

  2. Yes:

  3. x = 1

  4. y = 2

  5. long_variable = 3

  6.  

  7. No:

  8. x             = 1

  9. y             = 2

  10. 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).
Jika operator dengan berbagai tingkatan prioritas digunakan, letakkan whitespace pada operator-operator dengan prioritas terendah. Namun Anda juga dapat menyesuaikannya sendiri.
Catatan: jangan pernah menggunakan >1 spasi dan gunakan spasi yang sama baik di sebelah kiri maupun kanan dari operator-operator binary Anda.

  1. Yes:

  2. i = i + 1

  3. submitted += 1

  4. x = x*2 - 1

  5. hypot2 = x*x + y*y

  6. c = (a+b) * (a-b)

  7.  

  8. No:

  9. i=i+1

  10. submitted +=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):

  1. x = x + 1                 # Mengakomodasi layar ukuran Z



Dokumentasi

Guideline untuk menuliskan dokumentasi (docstring) yang baik tersedia di PEP 257. Kuncinya:
  • Buatlah dokumentasi untuk semua modul, fungsi, kelas, dan method yang bersifat public atau akan diakses publik.
  • Docstring tidak diwajibkan pada method yang tidak bersifat public, namun Anda disarankan menambahkan komentar tentang Apa saja yang dilakukan fungsi/modul ini beserta informasi lainnya yang mungkin diperlukan. Komentar ini diletakkan setelah baris def.
PEP 257 memberikan panduan detil yang dapat digunakan. Seperti yang sudah-sudah, Anda disarankan untuk menutup sebuah docstring yang lebih dari satu baris, pada baris baru berikutnya:

  1. """Return a foobang

  2. Optional plotz says to frobnicate the bizbaz first.

  3. """


Untuk docstring satu baris, Anda disarankan untuk meletakkan penutup """ - nya pada baris yang sama.

Meskipun secara sintaksis Anda dapat menggantikan 3-tanda-kutip-dua """ dengan 3-tanda-kutip-satu ''', untuk penulisan komentar multi-baris, tetapi PEP 257 memberikan panduan gunakan 3-tanda-kutip-dua untuk dokumentasi (docstring)
Pada Python dikenal beberapa mode operasi: Interactive, Script (scripting), dan Notebook.

Interactive

Berbeda dengan bahasa pemrograman lainnya, bahasa Python yang berbasis interpreter memungkinkan kita untuk menjalankan perintah secara interaktif. Mode ini dapat diakses di bagian bawah PyCharm atau dengan memanggil perintah python di command prompt/terminal.
201907120850148bceaf3a891f44d7cfefab1e019f9841.png2019071208500281567b2bb14e81fa3db8269326f6fb2d.png
20190712085101a49144ac1995e5d41e6a7f4f350c28aa.png
Catatan: pastikan Anda menjalankan versi yang tepat apabila tersedia >1 instalasi python di komputer Anda.

Apa saja yang dapat Anda lakukan pada python interactive ini?

Seluruh kode python dapat Anda jalankan secara berurutan pada sesi interaktif ini. Variabel juga akan tetap disimpan. Anda juga dapat memanggil (import) library. Sehingga salah satu penggunaan utama pada sesi interaktif ini adalah untuk rapid-prototyping.
  • InteractiveExample: Calculator
    2019071208514336182f1efded11f3bf9f451f74862296.pngAnda dapat menggunakan python pada sesi interaktif ini menjadi kalkulator untuk perhitungan matematika.
  • InteractiveExample: Print
    2019071208515347e3b4314248d2fc18b0b6d9da4007ab.png
  • InteractiveExample:  import library dan mendapatkan Current working directory
    20190712085202482be2613ce81959dad5aababd92d001.png


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
    201907120853358c41a6f6c9512fcdd9389afe777c662b.png20190712085344bc132d754bf0637860710fceb53c3dd4.png
  • RunnableExample: Print
    2019071208540989bd976e3a742e00ba1e8abd681438ec.png20190712085430ea374c2a9eb5bd3345b87e8fbd541506.png
  • RunnableExample: import library dan mendapatkan Current working directory
    20190712085501b71369effa2c6f388c4125801acbeb50.png201907120855094a96a666bde8cb67ae82563add899387.png
  

Notebook

20190712085539674cdd262ac9b518587d38851d4721d2.png

Alternatif

Alternatif yang lain, Anda dapat menggunakan tools online untuk menjalankan kode-kode Python Anda. beberapa yang umum digunakan di industri antara lain glot.io, REPL.it, ideone.com, dan Google Colab.
Repl.it
201907120857366758ce06b97549d36feaf38b923160fd.png
Glot.io
20190712085703d341614742c8eab31267068b217f8a8d.png
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
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:
Ubuntu (18.04.1) - Python 2
20190711154937402b2c1fc1fb6e74e0d292883e46fe6f.png
Ubuntu (18.04.1) - Python 3
201907111551102466364a76413038f1928c972e904e11.png
MacOS Mojave (10.14.4)
201907111551500945839a2fd5e5a6a033e2497ac5744b.png
Windows (kondisi terinstal)
20190711155231c848a3918cb728c94401414357ab64ee.png
201907111551591c804902d0adae891dab15766e34b4af.png

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 mengupdate atau menginstal, silakan mengikuti panduan berikut:
Windows
  1. Unduh dari https://www.python.org/downloads/windows/, pilih Windows X86-64 (64 Bit) atau Windows X86 (32 Bit). Pemilihan 32 dan 64 bit ini akan juga mempengaruhi jumlah memori yang dapat digunakan. Umumnya, komputer saat ini mendukung 64 bit.
  2. Untuk Anda yang memiliki koneksi internet relatif baik, Anda dapat menggunakan web installer yang relatif kecil, namun akan melakukan pengunduhan di belakang layar. Jika Anda menggunakan komputer lain untuk mengunduh installer, silakan unduh executable installer (+- 25 Mb).
  3. Lakukan instalasi, pastikan mencentang Add Python 3.7 to PATH untuk menambahkan Python dalam Environment Variables.
    2019071115534386560912d8f25626deddb1ad1b4b53bb.png
    | Catatan: sebaiknya klik disable path length limit untuk mengatasi problem path yang melebihi 255 karakter (nama folder yang terlalu panjang).
    20190711155322e8d2557faddad03bdf088d144187f24f.png
Ubuntu (Update)
  1. Tambahkan PPA Deadsnakes untuk mengupdate ke python terbaru.

    1. sudo add-apt-repository ppa:deadsnakes/ppa

    2. sudo apt-get update


    Panduan untuk menambahkan PPA Deadsnakes secara lebih terinci dapat dilihat di https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
  1. Instal Python 3.7 atau lebih baru (ganti 3.7 dengan 3.8 atau versi yang dikehendaki)

    1. sudo apt-get install python3.7


  1. Set Default untuk menggunakan python3.7: https://unix.stackexchange.com/questions/410579/change-the-python3-default-version-in-ubuntu
    201907111550156a572cd36f68622a3836c6c5de71b58a.png

MacOS (Update)
Referensi:

Link Penting
Apabila Anda mengalami kesulitan, silakan merujuk ke halaman https://docs.python.org/id/3.8/installing/index.html atau gunakan mesin pencarian untuk mencari solusi apabila Anda mengalami kendala dalam instalasi. Anda juga dapat memanfaatkan forum diskusi apabila diperlukan.

IDE
Integrated Development Environment (IDE) lebih dari sekedar text editor untuk membuat kode, di dalamnya tergabung juga berbagai fasilitas development misalnya Code Versioning, Interpreter, Visualization dls.
Untuk menulis program pada bahasa Python, Anda dapat menggunakan teks editor apapun, misalnya Notepad++ atau sejenisnya (Windows), Nano, Vim, Gedit (Linux), atau Visual Studio Code/Atom/Sublime (semua platform). Anda juga bisa menggunakan IDLE dalam bundel package python atau IDE lain yang khusus dibuat untuk Python, misal PyCharm dari JetBrains. Pastikan menyimpan file menggunakan ekstensi yang tepat (umumnya .py untuk kode Python atau .pyc untuk kode yang sudah dikompilasi).
  1. Unduh PyCharm Community - Free (opsional): https://www.jetbrains.com/pycharm/
  2. Tampilan PyCharm pada Project Baru.20190711155735bbc74204f703637ec1e6aa24aa3a5c9c.png
  3.  Create new Python file.201907111558160d2f3134305280e404eb7bda8e6c4b4b.png201907111558434eeeac415e58795774ed8e2207b0d55f.png
Tutorial instalasi Notebook:
Anda juga dapat memanfaatkan notebook misalnya jupyter atau sejenisnya. Instalasi Jupyter Notebook dapat dilakukan dengan beberapa cara. Silakan ikuti panduan di https://jupyter.readthedocs.io/en/latest/install.html untuk lebih detailnya. Instalasi notebook ini tidak wajib. Anda juga dapat menggunakan notebook yang bersifat gratis misalnya Google Colab - https://colab.research.google.com/notebooks/
20190711160119101b2208a6498665e731f61ffad5f0bf