0% menganggap dokumen ini bermanfaat (0 suara)
35 tayangan20 halaman

Rangkuman Control Flow

Diunggah oleh

candra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
35 tayangan20 halaman

Rangkuman Control Flow

Diunggah oleh

candra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 20

Rangkuman Control Flow

Kita sudah berada di penghujung materi Control Flow. Sampai sejauh ini, Anda telah memiliki
pemahaman mengenai berbagai jenis kontrol dalam pemrograman, seperti percabangan,
perulangan, hingga penanganan kesalahan. Mari kita rangkum secara saksama.

Percabangan dan Ternary Operators

Percabangan

Dalam pemrograman, sebuah kode program dapat berjalan berdasarkan kondisi tertentu. Maknanya,
Anda dapat memberikan instruksi berdasarkan "Jika-maka".

1. Jika Anda tidak menyelesaikan kelas Memulai Pemrograman dengan Python, maka Anda
tidak lulus dari kelas Memulai Pemrograman dengan Python.

2. Jika variabel nama kurang dari dua, maka variabel tersebut tidak memenuhi kriteria kondisi.

Statement atau sintaks untuk melakukan percabangan sebagai berikut.

1. If
If adalah statement Python yang akan mengecek nilai variabel di dalamnya memenuhi
kriteria suatu kondisi atau tidak. Jika memenuhi kriteria, kondisi tersebut bernilai true. Jika
tidak memenuhi kriteria, kondisi akan bernilai false. Jika kondisi if bernilai true, kode yang
berada dalam blok kode if akan dieksekusi.

Struktur dari IF statement sebagai berikut.

Sebagai informasi tambahan, kita juga dapat menambahkan 'and' atau 'or' operator dalam
kondisi percabangan.

2. Else
Else adalah statement yang menjadi jalan keluar saat kondisi atau hasil evaluasi if statement
bernilai false. Ini maksudnya, program akan menjalani blok kode if terlebih dahulu dan jika
hasilnya adalah false, program akan menjalankan else statement sebagai jalan keluar atau
kondisi terakhir.
Jika kita gabungkan if dan else, struktur berikut dihasilkan.

3. ELIF
Elif merupakan kependekan dari else if dan alternatif untuk if bertingkat atau switch case. Elif
statement berada di posisi setelah if. Anda dapat menambahkan elif statement lebih dari
satu karena tidak dibatasi dan opsional.

Struktur keseluruhan percabangan jika kita gabungkan antara if, elif, dan else sebagai berikut.

Ternary Operators

Ternary operators termasuk conditional expressions pada Python. Conditional expressions adalah
bentuk ekspresi yang bertujuan untuk mengevaluasi kondisi dan mengembalikan nilai berdasarkan
hasil evaluasinya. Anda bisa asumsikan bahwa ternary operators ini merupakan versi one-liner dari if
dan else.

Ada 2 tipe ternary sebagai berikut.

1. Ternary Operators
Ternary jenis ini adalah jenis expression yang umum digunakan. Struktur dari ternary
operators sebagai berikut.

2. Ternary Tuples
Jenis ternary kedua adalah jenis ternary yang menggunakan tipe data tuples.

Perulangan

Perulangan adalah jenis kode program yang bertujuan untuk meningkatkan efektivitas program
dalam membuat kode program berulang. Ada beberapa jenis perulangan dalam Python, yakni for,
while, dan for bersarang.

For

For adalah sintaks dalam Python yang bersifat definite iteration. Definite iteration adalah sebuah
proses iterasi atau perulangan yang jumlah pengulangannya ditentukan secara eksplisit sebelumnya.

Format dari perulangan for sebagai berikut.


<iterable> merupakan segala object dalam Python yang dapat diiterasi seperti list, tuple, hingga
string. Ada pula <var> merupakan variabel yang akan mengambil elemen berikutnya dari <iterable>
setiap kali iterasi berjalan.

While

While adalah sintaks dalam Python yang bersifat indefinite iteration. Indefinite iteration adalah
sebuah proses iterasi yang akan berhenti ketika memenuhi kondisi tertentu.

Format dari perulangan while sebagai berikut.

Kondisi merupakan ekspresi yang akan dievaluasi dan menghasilkan nilai true atau false. Selama hasil
evaluasi bernilai true, program akan terus berjalan hingga menghasilkan nilai false.

Namun, ada kondisi yang akan menyebabkan perulangan terus berjalan tanpa henti. Kondisi ini
disebut dengan infinite loop, kebalikan dari indefinite loop. Kondisi infinite loop berarti kita
melakukan perulangan yang tidak pernah memenuhi kondisi yang diinginkan. Contohnya ketika kita
melakukan perulangan, tetapi tidak menambahkan increment di akhir kode.

1. counter = 1

2. while counter <= 5:

3. print(counter)
For Bersarang

Ketika Anda membuat perulangan, sering kali menemukan perulangan dalam perulangan atau
disebut sebagai nested loop.

Format dari nested loop sebagai berikut.

Anda dapat asumsikan bahwa terdapat dua perulangan, yakni "perulangan luar" dan "perulangan
dalam". Program akan melakukan "perulangan luar" terlebih dahulu, lalu akan melakukan
"perulangan dalam". "variabel_luar" akan mengambil nilai dari "iterable_luar" sedangkan
"variabel_dalam" akan mengambil nilai dari "iterable_dalam".

Kontrol Perulangan

1. Break
Break statement adalah pernyataan untuk menghentikan perulangan dan kemudian program
akan otomatis keluar dari perulangan tersebut, lalu dilanjutkan dengan mengeksekusi blok
perulangan selanjutnya.

Jika Anda memiliki perulangan yang bertingkat seperti for bersarang, break akan
menghentikan perulangan sesuai dengan tingkatan atau letak perulangannya berada.

2. Continue
Continue statement adalah pernyataan untuk membuat iterasi berhenti, kemudian
melanjutkan ke iterasi berikutnya. Continue seolah mengabaikan pernyataan (statement)
yang berada antara continue hingga akhir blok.

3. Else setelah For


Pada Python juga dikenal else setelah for dengan fungsinya untuk perulangan yang bersifat
pencarian. Else setelah for ini bisa dikatakan sebagai memberikan jalan keluar program saat
pencarian tidak ditemukan.

Perlu diperhatikan oleh Anda, if dan else berkaitan walaupun berbeda blok. Pada else
setelah for, statement else tidak akan dieksekusi saat if pernah sekali saja benar. Dengan
kata lain, break dalam if harus tidak terjadi untuk memicu else setelah for.
4. Else setelah While
Berbeda dengan else setelah for, pada statement else setelah while, blok statement else
akan selalu dieksekusi saat kondisi pada while menjadi salah.

5. Pass
Pass statement adalah pernyataan yang digunakan jika Anda menginginkan sebuah
pernyataan atau blok pernyataan (statement), tetapi tidak ada tindakan atau program tidak
melakukan apa pun.

Statement pass digunakan dalam situasi-situasi ketika Python memerlukan adanya


pernyataan, tetapi tidak memiliki tindakan yang perlu dilakukan pada saat itu. Biasanya itu
adalah kondisi ketika Anda membutuhkan placeholder untuk menunjukkan bahwa tidak ada
operasi yang perlu dilakukan. Hal ini dapat membantu kita mengatur struktur kode secara
rapi dan memungkinkan penambahan implementasi di kemudian hari.

6. List Comprehension
List comprehension adalah cara untuk menghasilkan list baru berdasarkan list
atau iterables yang telah ada sebelumnya. Sintaks dasarnya sebagai berikut.

Catatan:

a. new_list merupakan variabel yang dideklarasikan oleh Anda.

b. expression merupakan ekspresi yang akan dijalankan seiring perulangan bernilai


benar.

c. for_loop_one_or_more_conditions merupakan perulangan for yang Anda


definisikan. Contohnya adalah "for n in angka" yang ada pada contoh sebelumnya.

Penanganan Kesalahan (Error Handling and Exception Handling)

Saat Anda membuat program, sering kali menemukan setidaknya dua jenis kesalahan berdasarkan
kejadiannya.

1. Kesalahan sintaks (syntax errors) atau sering disebut juga sebagai kesalahan penguraian
(parsing errors).

2. Pengecualian (exceptions) atau sering disebut juga sebagai kesalahan saat beroperasi
(runtime errors).
Kesalahan Sintaks (Syntax Errors)

Kesalahan sintaks (syntax errors) adalah jenis kesalahan yang terjadi ketika Python tidak mengerti
perintah Anda. Ini mengakibatkan pesan kesalahan muncul sebelum program tersebut berjalan.

Secara umum struktur kesalahan sintaks sebagai berikut.

Berikut adalah penjelasan detail satu per satu terkait poin di atas.

1. "<nama file>" merupakan file Python yang Anda eksekusi. Jika Anda menggunakan mode
script melalui lokal komputer dan program Anda menghasilkan Error, pesan ini akan
memunculkan nama script atau file Python Anda.

2. <nomor baris> merupakan nomor baris kode dalam file Anda yang mengalami kesalahan.

3. <baris kode> merupakan kode yang mengalami kesalahan dalam file Anda.

4. <tipe kesalahan> merupakan kelompok atau tipe kesalahan yang Anda alami, contohnya
SyntaxError dan IndentationError.

5. <pesan kesalahan> merupakan pesan detail kesalahan atau keterangan yang diberikan oleh
program. Contohnya “invalid syntax” dan “expected an indented block”.

Pengecualian (Exceptions)

Pengecualian adalah kesalahan yang terjadi ketika Python mengerti perintah Anda, tetapi
mendapatkan masalah saat mengikutinya. Umumnya, pengecualian bisa terjadi ketika aplikasi sudah
mulai beroperasi.

Jenis kesalahan ini adalah kesalahan yang paling sering ditemui ketika Anda membuat kode program
yang kompleks. Meskipun kode atau ekspresi dari Python yang Anda tulis sudah benar, ada
kemungkinan terjadi kesalahan ketika perintah tersebut dieksekusi.

Secara umum, struktur pengecualian sama seperti kesalahan sintaksis. Namun, hal yang menjadi
pembeda adalah pada struktur pengecualian memberikan pesan "traceback (most recent call last)".
Pesan ini mengacu pada informasi yang ditampilkan ketika terjadi kesalahan atau pengecualian
(exception). Pesan traceback ini menyediakan "jejak" dari kode yang dieksekusi sehingga Anda dapat
melacak kembali jalur eksekusi program sebelum mencapai titik error.

Penanganan Pengecualian

Untuk menyelesaikan setiap masalah pengecualian, kita dapat membangun kode program dalam
menangani hal tersebut.

Program Python yang Anda bangun dapat dilengkapi penanganan terhadap pengecualian dari tipe
kesalahan yang Anda tentukan. Konsep ini dikenal dengan exceptions handling yang menggunakan
pernyataan try-except untuk menangani pengecualian tersebut.

Secara keseluruhan, struktur lengkap dari penanganan pengecualian sebagai berikut.

Pada try statement, program akan menjalankan blok kode yang mungkin terjadi pengecualian. Pada
except statement, program akan mengeksekusi statement ini jika terjadi pengecualian. Pada else
statement, program akan mengeksekusi statement ini jika tidak terjadi pengecualian. Pada finally
statement, program akan mengeksekusi statement ini setelah semua pernyataan di atas terjadi.

Raise Exception

Jika sebelumnya kita menangani kesalahan yang TIDAK DISENGAJA, kali ini kita akan mempelajari
cara menangani kesalahan yang DISENGAJA. Umumnya, ketika membuat kode program kita ingin
membatasi program tersebut dengan kondisi tertentu.

Perlu diingat bahwa umumnya, raise digunakan bersamaan dengan if-else statement.

Berikut adalah contoh penerapan raise statement untuk menangani kesalahan atau pengecualian
yang disengaja.

1. var = -1

2. if var < 0:

3. raise ValueError("Bilangan negatif tidak diperbolehkan")

4. else:

5. for i in range(var):

6. print(i+1)

7.

8.

9. """

10. Traceback (most recent call last):

11. File "/home/glot/main.py", line 3, in <module>

12. raise ValueError("Bilangan negatif tidak diperbolehkan")

13. ValueError: Bilangan negatif tidak diperbolehkan

Rangkuman Array dan Pemrosesannya

Kita sudah berada di penghujung materi Array dan Pemrosesannya. Sampai sini, Anda telah
mempelajari salah satu struktur data, yakni array. Mari kita rangkum secara saksama.

Fundamental Array

Array adalah salah satu jenis dari struktur data linear dan terdiri dari kumpulan elemen bertipe data
sama dengan indeks yang berurutan atau linear. Struktur array adalah berikut.
Berikut adalah penjelasan dari struktur tersebut.

1. Indeks-indeks (indices): Kumpulan indeks yang keseluruhan dari kumpulan indeks tersebut
disebut sebagai array.

2. Indeks pertama: Indeks pertama array yang selalu dimulai dari 0.

3. Element: Nilai yang berada dalam suatu indeks, contohnya jika nilai dari indeks 8 adalah
string "Dicoding", kita bisa sebut sebagai "elemen ke-9 adalah string 'Dicoding'".

4. Array length: Panjang dari suatu array. Dalam gambar tersebut, panjang array adalah 10.

Dalam Python terdapat dua cara untuk menggunakan array, yakni berikut.

1. Menggunakan List

1. x = [1, 2, 3, 4, 5]

2. print(x)

3.

4. """

5. Output:

6. [1, 2, 3, 4, 5]

7. """

2. Menggunakan Library Array

1. import array

2.

3. x = array.array("i",[1, 2, 3, 4, 5])

4. print(x)

5. print(type(x))

6.

7. """
8. Output:

9. array('i', [1, 2, 3, 4, 5])

10. <class 'array.array'>

11. """

Implementasi Array dengan Python

Dalam kelas ini, kita telah mempelajari array menggunakan list Python. Secara detail, ada dua cara
untuk melakukan deklarasi array menggunakan list Python, yakni berikut.

1. Mendefinisikan Isi Array


Cara pertama adalah dengan mendeklarasikan variabel array sekaligus mendefinisikan isi
array. Cara ini dilakukan jika kita sudah tahu nilai yang perlu diberikan.

Berikut adalah struktur mendeklarasikan variabel array dengan mendefinisikan isi array
secara langsung.

Dari struktur tersebut, <nama-var> merupakan nama variabel array yang dideklarasikan
sebanyak n dengan elemen-elemennya adalah <val0>, <val1>, <val2>, … , <valn-1>. Perlu
diingat bahwa elemen tersebut terurut berdasarkan indeks dari 0 hingga n-1.

2. Mendefinisikan Nilai Default


Cara kedua adalah mendeklarasikan array dengan mendefinisikan nilai default. Cara ini
dilakukan jika kita tidak mengetahui nilai yang diberikan. Kita dapat memberikan nilai default
terlebih dahulu sebagai upaya untuk memberikan nilai awal.

Nilai default ditentukan oleh kesepakatan bersama sesuai kebutuhan yang nilainya di luar
dari rentang yang ditentukan. Misalnya tim Anda menentukan nilai dalam list harus berkisar
dari 1 hingga 10. Kita bisa menyepakati "0" sebagai nilai default karena di luar jangkauan
yang disepakati (1-10).

Berikut adalah struktur mendeklarasikan variabel array dengan mendefinisikan nilai default.
Berikut adalah penjelasan lebih detail terkait struktur tersebut.

a. <nama-var> merupakan variabel yang Anda deklarasikan.

b. <default-val> merupakan nilai default yang Anda definisikan. Umumnya, programmer


akan menggunakan nilai di luar range yang telah disepakati sebagai nilai default.
Misalnya jika range nilai yang disepakati seharusnya 1 hingga 10, nilai default bisa
kita definisikan dengan 0.

c. <n> merupakan ukuran panjangnya array.

Pemrosesan Sekuensial pada Array

Pemrosesan array merujuk pada operasi-operasi yang dilakukan pada elemen-elemen suatu array.
Operasi ini melibatkan manipulasi hingga pengolahan elemen yang ada pada array. Adapun
pemrosesan sekuensial adalah sebuah pemrosesan setiap elemen array yang dimulai dari elemen
pada indeks terkecil hingga terbesar. Pemrosesan sekuensial lebih sering menggunakan pengulangan
(loop/iterasi) dalam setiap prosesnya.

Sebab pemrosesan sekuensial melibatkan semua elemen di dalamnya, ada beberapa hal yang perlu
diperhatikan.

1. Setiap elemen array diakses secara langsung melalui indeksnya (metode indexing).

2. Elemen pertama (first element) adalah elemen array dengan indeks terkecil yang selalu
dimulai dari 0.

3. Elemen selanjutnya (next element) dicapai melalui suksesor indeks.

4. Kondisi berhenti dicapai jika indeks yang diproses adalah indeks terbesar yang sudah
terdefinisi.

5. Suatu array tidak boleh kosong, minimal memiliki satu elemen di dalamnya.

Banyak sekali contoh penerapan pemrosesan sekuensial pada array, beberapa di antaranya sebagai
berikut.

1. Mengisi array secara sekuensial.

2. Menghitung nilai rata-rata elemen array.

3. Mengalikan elemen array dengan suatu nilai.

4. Mencari nilai terbesar atau terkecil pada array.


5. Mencari indeks letak suatu nilai ditemukan pertama kali dalam array, dan sebagainya.

Rangkuman Style Guide pada Python

Kita sudah berada di penghujung materi style guide pada Python. Sampai sejauh ini, Anda
diharapkan paham untuk memahami cara membangun kode Python yang lebih baik dan benar sesuai
panduan yang telah diberikan oleh Python melalui PEP8. Mari kita rangkum secara saksama.

Pengecekan Style Guide PEP8

Saat membangun program pada Python, seringkali kode yang dibuat 'cukup berantakan' sehingga
kita perlu mengecek bahwa kode tersebut sudah rapi dan benar dengan mengacu pada panduan
yang telah diberikan oleh Python, yaitu PEP 8.

PEP atau Python Enhancement Proposals adalah panduan yang telah menjadi acuan untuk
perkembangan Python. Salah satu panduan tersebut membahas mengenai arahan gaya penulisan
(style guide) yang baik dan benar ketika Anda ingin membangun kode menggunakan Python.
Panduan tersebut adalah PEP8 yang berjudul "Style Guide for Python Code".

Tujuan dari panduan ini agar kode Anda lebih mudah dibaca dan dipahami oleh programmer lain
serta menghindari kemungkinan kesalahan yang akan muncul.

Lint

Lint atau linting 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
atau output dari aplikasi linter hanya berupa teks singkat berupa keterangan dan kode Error atau
Warning atau Kesalahan Konvensi Penamaan (Naming Conventions).

Dengan lint atau linting akan meminimalkan kode Anda mengalami error, salah satunya karena
kesalahan indentasi di Python. Sebelum kode Anda diproses oleh interpreter Python dengan
IndentationError, lint akan memberitahukannya lebih dahulu ke Anda. Berikut adalah tiga jenis
aplikasi linter.

1. Pycodestyle (sebelumnya bernama pep8)


Pycodestyle adalah aplikasi open source (berlisensi MIT/Expat) untuk membantu mengecek
kode terkait gaya penulisan kode dengan konvensi PEP8.

2. Pylint
Pylint adalah aplikasi open source (berlisensi GPL v2) untuk melakukan analisis kode Python,
mengecek untuk kesalahan (error) pemrograman, memaksakan standar penulisan kode
dengan mengecek penulisan kode yang tidak baik, serta memberikan saran untuk refactoring
sederhana.
3. Flake8
Flake8 adalah aplikasi open source (berlisensi MIT) yang membungkus sejumlah kemampuan
aplikasi lain, seperti pycodestyle, pyflakes, dan sejumlah (skrip/fitur) lainnya.

Memformat Kode

Jika proses lint atau linting hanya melakukan pengecekan, kali ini adalah arahan gaya penulisan kode
agar bisa sesuai dengan PEP8. Kita akan kembali menggunakan beberapa aplikasi yang nantinya akan
diinstal.

Proses memformat kode akan sama dengan cara melakukan proses linting, yaitu kita akan
mengeksekusi script. Perbedaannya adalah output yang dihasilkan. Jika proses linting menghasilkan
pesan dengan menunjukkan baris dan kode yang mengalami kesalahan, proses memformat kode
akan memberikan pesan berupa kode yang telah diperbaiki. Ini artinya Anda tidak perlu mengubah
kode secara manual. Berikut adalah tiga jenis aplikasi untuk memformat kode.

1. black
black adalah proyek open source yang dikembangkan di repository Python Software
Foundation (PSF) dengan lisensi MIT. Untuk mendapatkan gambaran, versi online (tidak
resmi) ada di https://black.now.sh.

2. YAPF (Yet Another Python Formatter)


YAPF adalah proyek open source yang dikembangkan di repository Google dengan lisensi
Apache.

3. autopep8
autopep8 adalah proyek open source (berlisensi MIT) yang termasuk paling awal untuk
memformat kode dengan bantuan lint pycodestyle.

Style Guide Statement Gabungan

Setelah mengetahui aplikasi untuk pengecekan dan memformat kode, kali ini kita akan belajar cara
membuat kode yang baik dan benar.

Statement Gabungan

Saat Anda membuat program dengan banyak statement, usahakan untuk tidak menggabungkan >1
statement pada baris yang sama.

Disarankan seperti ini.

1. if foo == 'blah':

2. do_blah_thing()

3. do_one()

4. do_two()

5. do_three()
Tidak disarankan seperti ini.

1. if foo == 'blah': do_blah_thing()

2. do_one(); do_two(); do_three()

Anda diperbolehkan untuk membuat sebuah konten/isi dari if/for/while yang cukup pendek untuk
diletakkan dalam satu baris (program tetap berjalan). Namun, pastikan tidak melakukannya jika
if/for/while Anda bertingkat atau bersifat multi clause, misalnya if-else, try-finally, dan sebagainya.

Tidak disarankan seperti ini.

1. if foo == 'blah': do_blah_thing()

2. for x in lst: total += x

3. while t < 10: t = delay()

Sangat tidak disarankan seperti ini.

1. if foo == 'blah': do_blah_thing()

2. else: do_non_blah_thing()

3. try: something()

4. finally: cleanup()

5. do_one(); do_two(); do_three(long, argument,

6. list, like, this)

7. if foo == 'blah': one(); two(); three()

Penggunaan Trailing Commas

Koma di bagian akhir (trailing commas) umumnya bersifat opsional, satu statement ketika ia bersifat
wajib adalah saat kita membuat variabel menggunakan tipe tuple dengan satu elemen. Hal ini
umumnya diperjelas dengan kurung untuk menghindari penghapusan atau pembersihan.

Disarankan seperti ini.

1. FILES = ('setup.cfg',)

Tidak disarankan seperti ini.

1. FILES = 'setup.cfg',

Tidak umum jika Anda meletakkan trailing comma pada baris tempat Anda menutup
kurung/kurawal/siku seperti di bawah ini, kecuali dalam tuple dengan satu elemen seperti yang
dijelaskan di atas.

Disarankan seperti ini.

1. FILES = [

2. 'setup.cfg',
3. 'tox.ini',

4. ]

5. initialize(FILES,

6. error=True,

7. )

Tidak disarankan seperti ini.

1. FILES = ['setup.cfg', 'tox.ini',]

2. initialize(FILES, error=True,)

Anotasi Fungsi

Anotasi fungsi adalah fitur yang memungkinkan kita untuk menambahkan informasi tambahan
tentang parameter dan return value dari sebuah fungsi. Jika sebelumnya kita belajar menambahkan
informasi terkait fungsi dengan menambahkan docstring, anotasi fungsi lebih spesifik untuk
menjelaskan parameter dan return value.

Penggunaan anotasi fungsi sebaiknya menggunakan aturan baku untuk titik dua (:) dan
menggunakan spasi untuk penggunaan arah panah atau arrow (->). Hal ini disebut sebagai type hints
yang merujuk pada PEP 484.

1. Yes:

2. def munge(input: str): # Menambahkan informasi parameter bertipe string

3. pass

4. def munge() -> str: # Menambahkan informasi return value bertipe string

5. pass

6.

7. No:

8. def munge(input:str): # Menambahkan informasi parameter bertipe string

9. pass

10. def munge()->str: # Menambahkan informasi return value bertipe string

11. pass

Jika kita membuat fungsi yang menggabungkan anotasi dengan nilai parameter, sebaiknya tetap
menggunakan spasi sebelum dan sesudah tanda sama dengan (=). Namun, ketika membuat fungsi
biasa tanpa adanya anotasi, sebaiknya tidak menggunakan spasi sebelum dan sesudah tanda sama
dengan (=).

1. Yes:

2. def LuasPersegiPanjang(panjang:int = 2, lebar=None):


3. pass

4.

5. No:

6. def LuasPersegiPanjang(panjang: int=2, lebar = None):

7. pass

Style Guide Prinsip Penamaan pada Python

Penamaan pada Python mencakup banyak hal, seperti penamaan fungsi, kelas, dan sebagainya.
Berikut adalah beberapa rekomendasi untuk penamaan yang meliputi overriding, penamaan
deskriptif, fungsi, method, dan sebagainya. Namun, Anda juga dapat memilih mempertahankan
styling yang sudah digunakan sebelumnya untuk menjaga konsistensi internal tim atau perusahaan.
Ini karena konsistensi internal lebih diutamakan.

Prinsip Overriding

Nama yang dilihat oleh user publik sebaiknya merefleksikan penggunaan/fungsinya dan bukan
implementasinya.

Penamaan Deskriptif

Penamaan deskriptif adalah cara untuk memberikan nama yang informatif, jelas, dan sesuai dengan
tujuan dari elemen kode. Penamaan deskriptif ini meliputi variabel, fungsi, kelas, hingga konstanta.

Ada berbagai cara penamaan yang umum digunakan dalam Python. Pemilihan cara penamaan ini
penting untuk menjaga konsistensi dan kejelasan kode. Penamaan ini juga merujuk pada PEP8
mengenai Naming Conventions dan Naming Styles.

Berikut adalah beberapa cara penamaan yang umum:

1. Satu karakter huruf kecil: b

2. Satu karakter huruf besar: B

3. Huruf kecil: hurufkecil

4. Huruf kecil dengan pemisah kata garis bawah:


huruf_kecil_dengan_pemisah_kata_garis_bawah

5. HURUF BESAR: HURUFBESAR

6. HURUF BESAR dengan pemisah garis bawah:


HURUF_BESAR_DENGAN_PEMISAH_GARIS_BAWAH

7. Huruf Besar di Awal Kata (CapWords, CamelCase): HurufBesarDiAwalKata (pastikan semua


singkatan/akronim dituliskan dengan huruf besar, misalnya HTTPServerError, bukan
HttpServerError)

8. Huruf Campuran: hurufCampuran (mirip dengan CapWords, hanya berbeda di karakter paling
awal)
9. Huruf Besar di Awal Kata dengan Garis Bawah:
Huruf_Besar_Di_Awal_Kata_Dengan_Garis_Bawah

Python tidak menyarankan atau lebih tepatnya tidak dibutuhkan jika Anda membuat sebuah fungsi
yang diawali huruf atau frasa, seperti 'f' jika fungsinya 'f_mean()', 'r' jika fungsinya 'r_name()', dan
sebagainya.

Selain penggunaan huruf atau frasa yang tidak direkomendasikan, berikut adalah beberapa bentuk
penamaan khusus yang umum ditemukan dalam penamaan fungsi. Ini juga bisa Anda terapkan pada
penamaan variabel dan kelas.

1. _diawali_sebuah_garis_bawah: penamaan ini dapat digunakan untuk penggunaan internal


lemah yang merujuk pada penggunaannya dengan lingkup tertentu.

2. diakhiri_sebuah_garis bawah_: penamaan ini digunakan untuk mengatasi redundan


dengan keyword/reserved words di Python.

3. __diawali_dua_garis bawah: menegaskan bahwa sebuah objek adalah bagian dari kelas
tertentu.

4. __diawali_dan_diakhiri_dua_garis bawah__: Objek atau atribut tertentu yang diciptakan


Python untuk digunakan dalam program. Contohnya adalah __init__, __import__ or
__file__.

Hal-Hal yang Harus Diperhatikan dalam Penamaan

Berikut adalah hal-hal yang harus diperhatikan dalam penamaan fungsi, method, hingga penamaan
kelas.

1. Nama yang Dihindari


Hindari karakter l (huruf L kecil), O (huruf o besar) atau I (huruf i besar) sebagai nama
variabel satu karakter karena mereka sulit dibedakan dengan angka satu dan nol.

2. ASCII Compatibility
Merujuk pada PEP 3131, suatu identifiers yang digunakan dalam Python Standard Library
harus kompatibel dengan kode ASCII.

3. Nama Paket dan Nama Modul


Penamaan modul sebaiknya pendek atau singkat, menggunakan huruf kecil, dan opsional
garis bawah (_) untuk meningkatkan keterbacaan. Nama paket juga sebaiknya singkat,
menggunakan huruf kecil, dan hindari garis bawah(_).

4. Nama Kelas
Saat menamai kelas, gunakan CamelCase atau CapWords. Pastikan semua akronim (misal
HTTP) ditulis keseluruhan dengan huruf besar.

5. Penulisan Tipe Variabel


Untuk penamaan variabel, umumnya menggunakan CamelCase atau CapWords.

6. Nama Exception
Untuk pengecualian (exception), Anda juga menerapkan konvensi penamaan kelas pada
exception karena ia seharusnya bertipe kelas. Bedanya, tambahkan "Error" atau nama
deskriptif lain pada nama exception Anda.

7. Nama Variabel Global


Dalam variabel global, penamaannya bisa mengikuti fungsi/modul yang bersifat publik. Anda
bisa menggunakan garis bawah untuk menghindari variabel tersebut diimpor jika ia termasuk
modul non-publik.

8. Nama Fungsi, Parameter, dan Variabel


Nama fungsi, parameter, dan variabel sebaiknya menggunakan huruf kecil dengan
pemisahan menggunakan garis bawah untuk meningkatkan keterbacaan. mixedCase dapat
digunakan jika ada dependensi dengan pustaka menggunakan style tertentu.

9. Argumen Fungsi dan Method


Dalam pembuatan fungsi dan method pada suatu kelas, ada beberapa hal yang perlu
dipertimbangkan..

a. Gunakan self sebagai argumen pertama jika Anda membuat instance method.

b. Gunakan cls sebagai argumen pertama ketika Anda membuat class method.

10. Nama Method dan Variabel Instance


Saat membuat method dan variabel dalam suatu kelas, gunakan standar penamaan fungsi,
yaitu gunakan huruf kecil dengan pemisah kata garis bawah untuk meningkatkan
keterbacaan. Tambahkan garis bawah sebagai awalan untuk method non-publik dan variabel
internal pada fungsi.

11. Konstanta
Dalam memberikan nama variabel bertipe konstanta, umumnya didefinisikan pada bagian
atas modul dengan huruf besar, misalnya 'PI = 3,14' atau 'TOTAL = 4.14213'.

12. Selalu Persiapkan untuk Inheritance


Saat membangun metode dan variabel dalam sebuah kelas, sebaiknya Anda dapat langsung
mengetahui atribut pada metode dan variabel tersebut, publik atau non-publik. Jika Anda
ragu, jadikan atributnya non-publik. Sebab, lebih mudah menjadikan sebuah
variabel/method bersifat non-publik menjadi publik, dibandingkan sebaliknya.

Variabel atau method yang bersifat non-publik adalah suatu variabel atau method yang
hanya digunakan untuk lingkup tertentu dan tidak diakses secara langsung di luar.

Method/Variabel publik dipersiapkan untuk pihak eksternal menggunakan kelas Anda. Anda
juga otomatis berkomitmen untuk menghindari adanya incompatible backward changes atau
suatu kode yang tidak dapat berjalan kembali setelah adanya perubahan.

Sebaliknya, method/variabel dengan atribut non-publik hanya digunakan oleh Anda sebagai
developer. Itu juga tidak memberikan garansi kepada siapa pun bahwa Anda takkan
mengubah atau menghapusnya. Di sini kita tidak menggunakan atribut private karena dalam
Python tidak ada atribut yang benar-benar private.

Saat mendeklarasikan variabel/method tersebut, ikuti panduan Pythonic berikut.

a. Atribut publik tidak menggunakan awalan garis bawah.


b. Jika nama sebuah method/variabel publik sama dengan reserved keyword,
tambahkan akhiran garis bawah. Hindari menyingkat atau mengurangi huruf.

c. Pada data publik bersifat simpel, hindari nama yang terlalu panjang. Cukup dengan
nama atribut sependek mungkin. Ingatlah bahwa pada masa depan Anda akan
mungkin mengembangkan skema atau data ini sehingga nama sependek apa pun
mungkin akan menguntungkan Anda.

d. Jika Anda berniat untuk mewariskan atau membuat subclass dari kelas dan
menginginkan sebuah variabel hanya digunakan di kelas utama saja, tambahkan
awalan dua garis bawah. Ini akan memudahkan Anda karena Python mengenalinya
sebagai konvensi kelas, untuk menghindari kemungkinan kesamaan nama atau
implementasi.

Anda mungkin juga menyukai