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)
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"))
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)
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())
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 SolusiRangkuman
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
- PEP 8: konvensi penamaan
- Modul keyword
- Python: variabel internal dan name mangling
- Python: model data dan metode khusus
- Pendamping Bab 17
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
