Langsung ke konten

Best Practice Python (PEP 8): Menulis Kode yang Rapi

PEP 8 adalah pedoman gaya menulis kode Python. Artikel ini membahas penamaan, indentasi, spasi, urutan import, docstring, serta tools black, flake8, dan ruff.

Belajar Python Level Basic
Belajar Python Level Basic
Advertisement

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:

JenisGayaContoh
Variabelsnake_casetotal_harga
Functionsnake_casehitung_total()
ClassPascalCaseDataSiswa
KonstantaUPPER_CASEMAKSIMAL_DATA
Modulesnake_case pendekformat_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, temp membuat 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_case untuk variabel dan function, PascalCase untuk class, UPPER_CASE untuk 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, dan ruff membantu 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.