目次
- 1 1. Apa itu docstring di Python?
- 2 2. Cara Dasar Menulis docstring
- 3 3. Gaya docstring (Google Style, NumPy Style, reStructuredText Style)
- 4 4. PEP 257 dan Best Practice
- 5 5. Pengujian dengan docstring (doctest)
- 6 6. Contoh Praktis: Dokumentasi Kode dengan docstring
- 7 7. Kesalahan Umum dan Cara Menghindarinya
- 8 8. Ringkasan: Dokumentasi Efektif dengan docstring
1. Apa itu docstring di Python?
docstring dalam Python adalah string khusus yang digunakan untuk menambahkan deskripsi pada fungsi, kelas, atau modul. docstring sangat penting karena meningkatkan keterbacaan serta pemeliharaan kode, dan memudahkan pengembang lain untuk memahami fungsionalitasnya. Selain itu, dengan menggunakan alat pembuat dokumentasi otomatis (misalnya: Sphinx), docstring dapat dimanfaatkan untuk menghasilkan dokumentasi yang rapi.Posisi dan Format docstring
docstring ditempatkan tepat setelah definisi fungsi, kelas, atau modul, dan biasanya ditulis dengan tiga tanda kutip ganda. Contoh sintaks umumnya seperti berikut:def nama_fungsi(argumen):
"""
Tulis deskripsi singkat fungsi di sini.
Argumen:
nama_argumen (tipe): Penjelasan detail tentang argumen
Return:
tipe: Penjelasan tentang nilai kembalian
"""
passdocstring digunakan oleh fungsi bawaan Python help() maupun fitur bantuan di editor, sehingga memainkan peran penting sebagai dokumentasi kode.Ad
2. Cara Dasar Menulis docstring
docstring pada Python digunakan untuk menjelaskan spesifikasi fungsi atau kelas secara ringkas dan jelas. Format umumnya dimulai dengan tujuan fungsi, lalu diikuti penjelasan tentang parameter, nilai kembali, atau error yang mungkin muncul. Dengan mengikuti panduan resmi PEP 257, kode menjadi konsisten dan lebih mudah dipahami oleh pengembang lain.Struktur Dasar docstring
docstring satu baris digunakan untuk memberikan deskripsi singkat. Biasanya dipakai untuk menjelaskan fungsi hanya dalam satu kalimat, contohnya:def add(a, b):
"""Mengembalikan hasil penjumlahan dua angka."""
return a + bUntuk penjelasan lebih detail, digunakan docstring multi-baris. Hal ini memuat deskripsi fungsi, parameter, serta nilai kembali dengan struktur yang lebih jelas:def add(a, b):
"""
Menjumlahkan dua angka dan mengembalikan hasilnya.
Argumen:
a (int): Angka pertama
b (int): Angka kedua
Return:
int: Hasil penjumlahan
"""
return a + b
3. Gaya docstring (Google Style, NumPy Style, reStructuredText Style)
Berbagai gayadocstring digunakan sesuai proyek atau alat yang dipakai. Tiga gaya yang paling populer adalah Google Style, NumPy Style, dan reStructuredText Style.Google Style
Google Style menekankan penulisan yang ringkas dan mudah dibaca. Parameter dan nilai kembali ditulis di bawah bagianArgs dan Returns, sehingga fungsi Python dapat dipahami dengan cepat.def add(a, b):
"""
Menjumlahkan dua angka.
Args:
a (int): Angka pertama
b (int): Angka kedua
Returns:
int: Hasil penjumlahan
"""
return a + bNumPy Style
NumPy Style menyediakan format lebih detail, sangat umum dipakai dalam dokumentasi pustaka sains dan analisis data. BagianParameters dan Returns digunakan untuk penjelasan rinci.def add(a, b):
"""
Menjumlahkan dua angka.
Parameters
----------
a : int
Angka pertama
b : int
Angka kedua
Returns
-------
int
Hasil penjumlahan
"""
return a + breStructuredText Style
reStructuredText Style digunakan oleh alat pembuat dokumentasi Sphinx, sering dipakai dalam proyek besar. Dengan gaya ini, Sphinx bisa menghasilkan dokumentasi HTML atau PDF secara otomatis.def add(a, b):
"""
Menjumlahkan dua angka.
:param a: Angka pertama
:type a: int
:param b: Angka kedua
:type b: int
:return: Hasil penjumlahan
:rtype: int
"""
return a + b
Ad
4. PEP 257 dan Best Practice
PEP 257 adalah panduan resmi gaya penulisandocstring di Python. Dengan mengikutinya, keterbacaan kode meningkat dan lebih mudah dipahami baik oleh pengembang lain maupun diri sendiri.Poin Penting dari PEP 257
- docstring satu baris → Untuk fungsi sederhana, gunakan satu baris penjelasan ringkas.
- docstring multi-baris → Untuk deskripsi detail, baris pertama berisi ringkasan singkat, lalu kosong satu baris, baru lanjutkan dengan penjelasan lengkap.
- Indentasi dan spasi → Gunakan indentasi serta baris kosong agar lebih mudah dibaca, dan pisahkan informasi parameter serta return secara jelas.
Best Practice
- Deskripsi singkat dan jelas →
docstringharus ringkas, tapi cukup informatif untuk menjelaskan fungsi/kegunaan. - Konsistensi gaya → Gunakan gaya
docstringyang konsisten di seluruh proyek, misalnya Google Style atau NumPy Style, agar mudah dibaca.
5. Pengujian dengan docstring (doctest)
Python memiliki moduldoctest yang memungkinkan pengujian otomatis terhadap contoh kode dalam docstring. Dengan ini, Anda bisa memastikan contoh yang ditulis benar-benar berjalan sesuai harapan, sehingga meningkatkan keandalan kode.Cara Dasar Menggunakan doctest
doctest akan mendeteksi contoh kode di dalam docstring dan membandingkan output-nya. Tambahkan blok berikut untuk menjalankan pengujian:def add(a, b):
"""
Menjumlahkan dua angka dan mengembalikan hasilnya.
Args:
a (int): Angka pertama
b (int): Angka kedua
Returns:
int: Hasil penjumlahan
Example:
>>> add(2, 3)
5
>>> add(0, 0)
0
"""
return a + b
if __name__ == "__main__":
import doctest
doctest.testmod()Jika berhasil, tidak ada output yang muncul. Jika gagal, pesan error akan ditampilkan. Dengan demikian, docstring tetap selaras dengan kode nyata.Keuntungan Menggunakan doctest
- Konsistensi kode → memastikan contoh dalam dokumentasi sesuai dengan implementasi nyata.
- Otomatisasi pengujian → cukup jalankan
doctest, semua contoh dalamdocstringlangsung diuji, sehingga meminimalkan kesalahan.

Ad
6. Contoh Praktis: Dokumentasi Kode dengan docstring
Menggunakandocstring membuat kode Python lebih mudah dipahami. Berikut contoh penerapan pada kelas dan metode, lalu didokumentasikan otomatis dengan Sphinx.Contoh docstring pada Kelas
class Calculator:
"""
Kelas kalkulator sederhana.
Menyediakan operasi dasar: tambah, kurang, kali, bagi.
Attributes:
result (int): variabel untuk menyimpan hasil perhitungan
"""
def __init__(self):
"""
Konstruktor Calculator.
Hasil awal diatur ke 0.
"""
self.result = 0
def add(self, a, b):
"""
Menjumlahkan dua angka dan mengembalikan hasilnya.
Args:
a (int): Angka pertama
b (int): Angka kedua
Returns:
int: Hasil penjumlahan
"""
self.result = a + b
return self.resultGenerasi Dokumentasi dengan Sphinx
Dengan Sphinx,docstring bisa diubah menjadi dokumentasi HTML atau PDF secara otomatis. Instalasi:pip install sphinxInisialisasi proyek:sphinx-quickstartKemudian jalankan:make htmlHasilnya, docstring dari kode Python akan terkonversi menjadi dokumentasi siap pakai.
Ad
7. Kesalahan Umum dan Cara Menghindarinya
Saat menulisdocstring, pemula sering membuat kesalahan. Berikut beberapa contoh dan cara memperbaikinya.1. Deskripsi yang terlalu umum
docstring harus jelas dan ringkas. Deskripsi yang terlalu samar tidak membantu pembaca memahami maksud fungsi.def add(a, b):
"""Menambahkan dua angka."""
return a + bMasalah: tidak menjelaskan tipe data parameter atau nilai kembali. Perbaikan:def add(a, b):
"""
Menjumlahkan dua bilangan bulat dan mengembalikan hasilnya.
Args:
a (int): Angka pertama
b (int): Angka kedua
Returns:
int: Hasil penjumlahan
"""
return a + b2. Penjelasan parameter dan return yang tidak lengkap
Jika parameter atau nilai kembali tidak dijelaskan dengan detail, pengguna bisa salah dalam menggunakan fungsi.def divide(a, b):
"""Membagi dua angka."""
return a / bMasalah: tidak menyebutkan tipe data dan kemungkinan error. Perbaikan:def divide(a, b):
"""
Membagi dua angka dan mengembalikan hasilnya. Jika pembagi bernilai 0, akan muncul ZeroDivisionError.
Args:
a (float): Angka yang dibagi
b (float): Angka pembagi
Returns:
float: Hasil pembagian
Raises:
ZeroDivisionError: Jika b = 0
"""
if b == 0:
raise ZeroDivisionError("Tidak dapat membagi dengan nol")
return a / bDengan memberikan informasi lengkap di docstring, fungsi lebih mudah dipahami dan digunakan dengan benar.
Ad
8. Ringkasan: Dokumentasi Efektif dengan docstring
Artikel ini menjelaskan pentingnya docstring, cara penulisan, gaya umum, best practice, serta integrasi dengan alat seperti doctest dan Sphinx.Konsistensi dengan PEP 257
Dengan mengikuti PEP 257, Anda bisa membuat dokumentasi yang konsisten, baik berupadocstring satu baris maupun multi-baris.Pengujian dengan doctest
Menggunakandoctest membantu memastikan contoh kode dalam dokumentasi selalu valid dan sesuai implementasi nyata.Dokumentasi Otomatis dengan Sphinx
Dengan Sphinx,docstring bisa langsung diubah menjadi dokumentasi HTML/PDF yang selalu mengikuti perubahan kode, sehingga mempermudah pemeliharaan proyek.



