Nama yang jelas membantu pembaca memahami tujuan code tanpa menebak-nebak. Lampiran ini merangkum konvensi penamaan dan memperlihatkan perbedaan antara kata kunci, nama bawaan, serta nama khusus pada kelas.

Tujuan Penggunaan

Gunakan panduan ini ketika membuat fungsi, modul, atau merapikan proyek. Kamu dapat memilih nama yang konsisten dan mengenali benturan nama sebelum benturan itu menyulitkan pembacaan atau proses import.

Persiapan

Pelajari variabel, fungsi, serta modul pada Bab 5, 11, dan 17. Bagian kelas adalah pengenalan tambahan; kamu boleh melewatinya sampai mempelajari OOP. Semua contoh bernomor berjalan tanpa library tambahan.

Panduan dan Contoh

Peta penamaan

Jenis Bentuk Contoh
Variabel, fungsi, parameter snake_case jumlah_barang
Kelas CapWords / PascalCase DataPengguna
Konstanta UPPER_CASE BATAS_PESANAN
Modul Huruf kecil; underscore bila perlu hitung_diskon.py
Paket Nama pendek, huruf kecil penjualan
Nama internal Satu underscore di depan _data_cache
Benturan kata kunci Underscore di belakang class_

Python tidak mengunci nilai konstanta; huruf kapital menyampaikan maksud kepada pembaca. Hindari nama file yang menutupi modul lain, seperti json.py atau math.py. Pilih nama yang menjelaskan makna dalam konteksnya.

Contoh L02-01 – Nama yang menjelaskan perhitungan

BATAS_PESANAN = 10


def hitung_total(harga_satuan, jumlah_barang):
    return harga_satuan * jumlah_barang


jumlah_barang = 3
total_bayar = hitung_total(12000, jumlah_barang)
print(total_bayar)
print(jumlah_barang <= BATAS_PESANAN)

Coba di IDE

Unduh Sumber

Hasil yang diharapkan:

36000
True

Penjelasan: Nama variabel dan parameter menjelaskan perannya. BATAS_PESANAN menyatakan nilai acuan proyek.

Coba ubah: Ganti jumlah_barang menjadi 12 dan periksa kedua hasil.

Kata kunci berbeda dari nama bawaan

class, def, dan for merupakan kata kunci. type, id, list, serta str adalah nama bawaan yang tetap dapat dipakai ulang sebagai variabel, tetapi akan menutupi objek bawaannya dalam lingkup tersebut.

Gunakan nama bermakna seperti jenis_data atau daftar_nilai. Bentuk class_ berguna jika nama perlu dekat dengan istilah eksternal class. lampiran bukan kata kunci dan tidak memerlukan underscore tambahan hanya karena dipakai pada fungsi lain. Beberapa nama, misalnya match, merupakan soft keyword: makna khususnya bergantung pada konteks sintaks.

Contoh L02-02 – Memeriksa nama kata kunci

import keyword

print(keyword.iskeyword("class"))
print(keyword.iskeyword("type"))
print(keyword.issoftkeyword("match"))


def buat_label(class_):
    return f"Kelas: {class_}"


print(buat_label("Python Dasar"))

Coba di IDE

Unduh Sumber

Hasil yang diharapkan:

True
False
True
Kelas: Python Dasar

Penjelasan: keyword memeriksa kategori nama; hasil False untuk type tidak berarti nama itu pilihan variabel yang baik.

Coba ubah: Coba periksa nama for, nilai, dan list.

Nama pada kelas: materi tambahan

Awalan _nama menandai penggunaan internal secara konvensi; aksesnya tetap mungkin. Pada import bintang, nama berawalan underscore biasanya tidak diimpor, tetapi modul dapat mengatur ekspor melalui __all__.

Awalan __nama memicu name mangling untuk membantu menghindari benturan atribut saat pewarisan. Mekanisme itu tidak menjaga kerahasiaan data. Nama __nama__ memiliki arti khusus yang ditetapkan Python; jangan menciptakan pola dunder sendiri untuk nama biasa.

Pada contoh ini, __init__ menginisialisasi objek setelah dibuat. __str__ menyediakan tampilan ketika objek dicetak.

Contoh L02-03 – Nama publik, internal, dan khusus

class DataPengguna:
    def __init__(self, nama_lengkap):
        self.nama_lengkap = nama_lengkap
        self._jumlah_login = 0

    def catat_login(self):
        self._jumlah_login += 1

    def __str__(self):
        return f"{self.nama_lengkap}: {self._jumlah_login} login"


pengguna = DataPengguna("Rina")
pengguna.catat_login()
print(pengguna)

Coba di IDE

Unduh Sumber

Hasil yang diharapkan:

Rina: 1 login

Penjelasan: Metode publik mengubah keadaan objek. Awalan underscore menyampaikan maksud internal, sedangkan __str__ menghubungkan objek dengan print().

Coba ubah: Panggil catat_login() dua kali lagi dan periksa hasilnya.

Contoh L02-04 – Mengamati name mangling

class Mesin:
    def __init__(self):
        self.__tegangan = 220

    def baca_tegangan(self):
        return self.__tegangan


class MesinTambahan(Mesin):
    def __init__(self):
        super().__init__()
        self.__tegangan = 12

    def baca_tambahan(self):
        return self.__tegangan


mesin = MesinTambahan()
print(mesin.baca_tegangan())
print(mesin.baca_tambahan())

Coba di IDE

Unduh Sumber

Hasil yang diharapkan:

220
12

Penjelasan: Kedua atribut mendapat nama internal berbeda menurut kelas tempat didefinisikan. Nilainya tidak saling menimpa.

Coba ubah: Ganti tegangan pada MesinTambahan; nilai yang dibaca metode induk tetap 220.

Menjaga konsistensi proyek

Hindari nama satu huruf yang membingungkan seperti l, I, dan O. Gunakan nama singkat yang maknanya jelas; x dan y tetap wajar untuk koordinat. Saat merapikan code lama, pertahankan kompatibilitas antarmuka yang digunakan orang lain.

PEP 8 memberi batas umum 79 karakter untuk code dan 72 untuk komentar atau docstring. Buku ini memakai batas editorial 69 agar code nyaman dicetak. Formatter merapikan bentuk; ia tidak otomatis memilih nama yang bermakna atau membuktikan program benar. Linter dapat membantu menemukan masalah, sedangkan pengujian tetap diperlukan untuk memeriksa perilaku.

Praktik Mandiri

L02-P01 – Rapikan nama tanpa mengubah hasil

Buat fungsi hitung_total(harga_satuan, jumlah_barang). Pakai nama konstanta PAJAK_PERSEN bernilai 10. Hitung jumlah akhir untuk harga 5000 dan jumlah 2.

Kriteria selesai: Program mencetak 11000.0; semua nama mengikuti pola yang sesuai.

Lihat Petunjuk

Hitung subtotal terlebih dahulu, lalu kalikan dengan 1 + PAJAK_PERSEN / 100.

Lihat Solusi

Nama menunjukkan peran nilai; rumus tetap dapat diperiksa terpisah dari gaya penamaan.

PAJAK_PERSEN = 10


def hitung_total(harga_satuan, jumlah_barang):
    subtotal = harga_satuan * jumlah_barang
    return subtotal * (1 + PAJAK_PERSEN / 100)


print(hitung_total(5000, 2))
Coba Solusi di IDEUnduh Solusi

Rangkuman

Pola penamaan membantu menyampaikan peran, sedangkan nama yang deskriptif menyampaikan makna. Kata kunci dan fungsi bawaan merupakan kategori berbeda. Underscore adalah konvensi atau mekanisme bahasa, bukan perlindungan rahasia.

Referensi dan Materi Pendamping

Edisi September 2026. Contoh dan nomor praktik sesuai dengan buku.

FAQ | Lampiran 1 | Lampiran 2 | Lampiran 3 | Lampiran 4 | Lampiran 5 | Lampiran 6 | Lampiran 7