Artikel ini bagian dari seri Belajar Python Level Basic di hanifmu.com. Di artikel sebelumnya kita sudah membahas pip dan Virtual Environment. Sekarang kita rapikan cara menulis kodenya.
Kode lebih banyak dibaca daripada ditulis. Kamu akan membuka kembali kode ini bulan depan dan mungkin lupa isinya. Gaya penulisan yang konsisten membuat kode lebih cepat dipahami, baik oleh orang lain maupun oleh dirimu sendiri.
Apa itu PEP 8?
PEP 8 adalah pedoman gaya penulisan kode Python. PEP sendiri singkatan dari Python Enhancement Proposal, dokumen yang berisi usulan dan standar untuk Python. PEP 8 khusus membahas kerapian kode.
Isinya bukan aturan wajib. Python tetap berjalan meski gayamu berbeda. Tapi mengikutinya membuat kode kamu mirip kode Python lain di seluruh dunia, sehingga lebih mudah dibaca dan dipelajari bersama. Dokumen aslinya bisa dibaca di peps.python.org/pep-0008.
Penamaan
Nama yang baik menjelaskan isinya. Selain itu, setiap jenis nama punya gaya tersendiri:
| Jenis | Gaya | Contoh |
|---|---|---|
| Variabel | snake_case | total_harga |
| Function | snake_case | hitung_total() |
| Class | PascalCase | DataSiswa |
| Konstanta | UPPER_CASE | MAKSIMAL_DATA |
| Module | snake_case pendek | format_teks |
# Kurang baik
totalHarga = 50000
MAXDATA = 100
def HitungTotal():
pass
# Lebih baik
total_harga = 50000
MAKS_DATA = 100
def hitung_total():
pass
Hindari nama satu huruf kecuali untuk penghitung singkat seperti i di dalam loop. Hindari juga nama yang membingungkan seperti data, data2, atau data_baru.
Indentasi dan Panjang Baris
Python memakai indentasi untuk menandai blok, jadi kerapiannya bukan sekadar soal selera. Gunakan 4 spasi per tingkat dan jangan mencampur spasi dengan tab.
def cek_nilai(nilai):
if nilai >= 75:
print("Lulus")
else:
print("Belum lulus")
Usahakan panjang baris tidak lebih dari 79 karakter untuk kode. Kalau sebuah baris terlalu panjang, pecah dengan tanda kurung:
# Terlalu panjang
total = hitung_harga(jumlah=10, harga_satuan=15000, diskon=0.1, pajak=0.11)
# Lebih baik
total = hitung_harga(
jumlah=10,
harga_satuan=15000,
diskon=0.1,
pajak=0.11,
)
Spasi dan Operator
Aturan spasi sederhana: beri satu spasi di kiri dan kanan operator, tapi jangan berlebihan.
# Kurang baik
total=harga*jumlah
nilai = 5+3
# Lebih baik
total = harga * jumlah
nilai = 5 + 3
Untuk operator yang punya prioritas berbeda, spasi boleh disesuaikan agar lebih mudah dibaca:
hasil = 2 * x + 3 * y
Hindari spasi di dalam tanda kurung dan sebelum tanda koma:
# Kurang baik
print( nama , umur )
angka = [ 1, 2, 3 ]
# Lebih baik
print(nama, umur)
angka = [1, 2, 3]
Import yang Rapi
Import diletakkan di bagian atas file dan dikelompokkan menurut asalnya, dengan urutan: standard library, package pihak ketiga, lalu module buatan sendiri.
# Standard library
import os
import sys
# Package pihak ketiga
import requests
# Module sendiri
import format_teks
Satu import per baris lebih mudah dibaca dan diperiksa:
# Kurang baik
import os, sys
# Lebih baik
import os
import sys
Hindari juga from module import * karena menyamarkan asal nama.
Komentar dan Docstring
Komentar menjelaskan mengapa, bukan mengulang apa yang sudah terlihat dari kodenya.
# Kurang baik: mengulang kode
total = total + 1 # tambah satu ke total
# Lebih baik: menjelaskan alasan
total = total + 1 # hitung juga halaman sampul
Untuk function, gunakan docstring, yaitu string di baris pertama function yang menjelaskan fungsinya:
def hitung_diskon(harga, persen):
"""Menghitung harga setelah diskon.
harga: harga awal dalam rupiah
persen: persentase diskon, misalnya 10 untuk 10 persen
"""
return harga - (harga * persen / 100)
Docstring bisa dilihat dengan help(hitung_diskon).
Tools: black, flake8, dan ruff
Merapikan kode secara manual melelahkan. Ada tools yang bisa melakukannya otomatis.
- black memformat kode secara otomatis mengikuti satu gaya tetap.
- flake8 memeriksa pelanggaran gaya dan potensi bug.
- ruff adalah pemeriksa yang sangat cepat dan kini menangani sebagian besar peran flake8.
Pasang salah satunya lewat pip, misalnya:
python -m pip install ruff
Lalu jalankan:
ruff check .
Untuk memperbaiki otomatis:
ruff check --fix .
Dengan tools seperti ini, kamu bisa fokus pada logika dan membiarkan kerapian ditangani mesin.
Contoh: Sebelum dan Sesudah
Perhatikan perbedaan gaya berikut:
import os,sys
def hitungTotal(harga, jumlah):
total=harga*jumlah
if total>100000:
diskon = total*0.1
total=total-diskon
return total
Setelah dirapikan:
import os
import sys
def hitung_total(harga, jumlah):
"""Menghitung total harga dengan diskon bila melebihi batas."""
total = harga * jumlah
if total > 100000:
diskon = total * 0.1
total = total - diskon
return total
Fungsinya sama persis, tapi versi kedua jauh lebih mudah dibaca.
Kesalahan Umum Pemula
- Mencampur spasi dan tab — memicu
TabError; pakai 4 spasi konsisten. - Nama tidak menjelaskan isi —
data,x1,tempmembuat kode sulit dilacak. - Komentar mengulang kode — tidak menambah informasi apa pun.
- Import di tengah file — sulit dilihat ketergantungannya; letakkan di atas.
- Mengabaikan panjang baris — baris panjang memaksa penggulungan ke samping.
Ringkasan
- PEP 8 adalah pedoman gaya penulisan kode Python
- Gunakan
snake_caseuntuk variabel dan function,PascalCaseuntuk class,UPPER_CASEuntuk konstanta - Indentasi 4 spasi, jangan campur dengan tab, jaga panjang baris
- Beri spasi di sekitar operator, tapi tidak di dalam tanda kurung
- Kelompokkan import di atas file menurut asalnya
- Docstring menjelaskan function, komentar menjelaskan alasan
black,flake8, danruffmembantu merapikan dan memeriksa kode otomatis
Langkah Selanjutnya
Kode kamu sekarang lebih rapi dan mudah dibaca. Tapi kerapian tidak menghilangkan bug. Suatu saat program tetap berperilaku tidak seperti yang kamu harapkan.
Artikel selanjutnya membahas Debugging Dasar di Python, cara melacak penyebab masalah secara sistematis alih-alih menebak.
