Rumahweb Journal
Banner - Belajar Python part 4

Belajar Python Part 4: Membuat dan Menggunakan Fungsi

Setelah pada Part 3 kita sudah belajar tentang struktur kontrol seperti if, for, dan while. Nah, di belajar Python Part 4 ini kita akan mempelajari cara membuat dan menggunakan fungsi di Python, sekaligus mengenal konsep modularisasi kode agar pengembangan aplikasi lebih rapi, terstruktur, dan mudah dikelola.

Fungsi merupakan salah satu elemen penting dalam pemrograman karena membantu kita menulis kode yang lebih rapi, terorganisir, dan dapat digunakan kembali (reusable). Alih-alih menuliskan baris kode yang sama berulang kali, kita cukup membungkusnya dalam sebuah fungsi, lalu memanggilnya kapanpun dibutuhkan.

Selain itu, dengan modularisasi, kode kita bisa dipisahkan ke dalam file atau modul terpisah sehingga lebih mudah dikembangkan, terutama untuk aplikasi berskala besar.

Mengenal Fungsi dalam Python

Definisi dan Sintaks Dasar

Fungsi dalam bahasa pemrograman Python adalah blok kode yang dapat digunakan kembali, diberi nama, dan dapat dipanggil kapan saja dalam program. Manfaat dari fungsi yaitu antara lain:

  • Mengurangi duplikasi kode sehingga tidak perlu menulis kode yang sama berulang kali
  • Membuat program lebih terorganisir maka kode dibagi menjadi bagian-bagian logis
  • Memudahkan debugging 
  • Meningkatkan reusability dengan fungsi bisa digunakan di berbagai bagian program

Pada pemanggilannya fungsi menggunakan def, lalu diikuti nama fungsi yang akan dibuat dan dapat ditambah parameter. Contoh syntax nya sebagai berikut:

def function_name():

    # code block

    return result

Pada fungsi, kita dapat menggunakan parameter. Parameter merupakan variabel yang digunakan untuk menerima nilai atau data yang dikirim saat fungsi dipanggil, sehingga nilai tersebut bisa diproses di dalam fungsi. Contoh syntax-nya sebagai berikut:

Promo Hosting Murah Rumahweb

def function_name(parameter1, parameter2):

    # code block using parameter1 and parameter2

    return result

Aturan Penamaan Fungsi

  • Gunakan huruf kecil dengan underscore (snake_case), misalnya hitung_luas.
  • Nama harus deskriptif sesuai dengan peran fungsi.
  • Hindari penggunaan nama bawaan Python seperti list, print, atau sum.

Contoh Implementasi Fungsi dalam Python

1. Fungsi Tanpa Parameter

def sapa():

    print("Halo, selamat belajar Python!")

sapa()

Output:

Halo, selamat belajar Python!

2. Fungsi dengan Parameter

def sapa(nama):

    print(f"Halo, {nama}! Selamat belajar Python!")

sapa("Alya")

sapa("Raka")

Output:

Halo, Alya! Selamat belajar Python!
Halo, Raka! Selamat belajar Python!

3. Fungsi dengan Pengembalian Nilai (return)

def kuadrat(x):

    return x * x

hasil = kuadrat(6)

print("Hasil:", hasil)

Output:

Hasil: 36

Keyword return membuat fungsi lebih fleksibel karena nilainya bisa disimpan atau dipakai untuk perhitungan lain.

Jenis-jenis Parameter

1. Parameter Default

Parameter default adalah parameter fungsi yang memiliki nilai yang sudah ditentukan sebelumnya. Jika saat memanggil fungsi parameter tersebut tidak diberikan nilai, maka nilai default akan digunakan secara otomatis. Contohnya sebagai berikut:

def sambut(nama, ucapan="Selamat datang"):

    print(f"{ucapan}, {nama}!")

sambut("Dina")

sambut("Budi", "Halo selamat pagi")

Output:

Selamat datang, Dina!
Halo selamat pagi, Budi!

2. Keyword Argument

Parameter keyword argument adalah cara memanggil fungsi dengan menyebutkan nama parameter secara eksplisit saat memberikan nilai, sehingga urutan parameter tidak lagi penting. Contohnya sebagai berikut:

def hitung_persegi_panjang(panjang, lebar):

    return panjang * lebar

print(hitung_persegi_panjang(lebar=5, panjang=10))

Penjelasan:

Urutan tidak penting karena menggunakan keyword arguments. Meski lebar disebutkan lebih dahulu, Python tetap mengetahui bahwa panjang adalah 10 dan lebar sama dengan 5.

3. *args dan *kwargs

Parameter *args dan *kwargs adalah cara untuk membuat fungsi yang dapat menerima jumlah argumen yang tidak terbatas (variable-length arguments). *args (Arguments) digunakan untuk menerima sejumlah positional arguments yang tidak terbatas dalam bentuk tuple.

Sedangkan **kwargs digunakan untuk menerima sejumlah keyword arguments yang tidak terbatas dalam bentuk dictionary. Contohnya sebagai berikut:

def demo(*args, **kwargs):  # *args=tuple, **kwargs=dict

    print("args:", args)    # cetak argumen tuple

    print("kwargs:", kwargs)  # cetak argumen dict

demo(1, 2, 3, nama="Dita", umur=22, kota="Yogyakarta")  # panggil fungsi

Output:

args: (1, 2, 3)
kwargs: {'nama': 'Dita', 'umur': 22, 'kota': 'Yogyakarta'}

Dokumentasi Fungsi dengan Docstring

Docstring (documentation string) adalah string khusus di dalam fungsi, kelas, atau modul Python yang berfungsi sebagai dokumentasi internal. Ditulis dengan tanda kutip tiga (“”” … “””) dan bisa diakses saat program berjalan menggunakan help() atau atribut .__doc__.

Perbedaannya dengan komentar biasa adalah docstring bisa dibaca oleh Python saat runtime, sehingga berguna untuk dokumentasi otomatis dan memudahkan programmer memahami fungsi tanpa harus membaca isi kodenya. Contohnya sebagai berikut:

def hitung_diskon(harga, diskon):

    """

    Menghitung harga akhir setelah diberikan diskon.

    :param harga: Harga awal dalam bentuk numerik

    :param diskon: Persentase diskon (contoh: 0.1 = 10%)

    :return: Harga akhir setelah diskon

    """

    return harga - (harga * diskon)

# Akses docstring dengan help()

help(hitung_diskon)

# Atau dengan atribut __doc__

print(hitung_diskon.__doc__)

Kelebihan docstring:

  • Mudah diakses dengan help(nama_fungsi)
  • Membantu kolaborasi dalam tim
  • Bisa digunakan untuk membuat dokumentasi otomatis dengan tools.

Dalam pengembangan aplikasi atau website, docstring sudah menjadi sebuah hal yang sering dilakukan. Misalnya, dalam framework Flask atau FastAPI, docstring digunakan untuk mendokumentasikan endpoint API.

Modularisasi Kode

1. Mengapa Modularisasi Penting?

Saat proyek kecil, semua fungsi dapat ditulis dalam satu file. Namun, seiring bertambahnya fitur, kode menjadi panjang dan sulit dipelihara. Dengan modularisasi, kita bisa:

  • Memisahkan kode ke dalam beberapa file (modul)
  • Mengorganisir fungsi sesuai kategori
  • Memudahkan debugging dan pengembangan dalam tim.

2. Implementasi Modul Sederhana

Contoh implementasi modul secara sederhana sebagai berikut:

# transaksi.py

from diskon import hitung_diskon  # import fungsi dari modul diskon

def total_belanja(harga_list, diskon=0):

    """

    Menghitung total belanja setelah diskon.

    :param harga_list: Daftar harga barang (list of int/float)

    :param diskon: Persentase diskon (0.1 = 10%)

    :return: Total harga akhir

    """

    total = sum(harga_list)  # jumlahkan semua harga barang

    if diskon > 0:

        total = hitung_diskon(total, diskon)  # panggil fungsi dari diskon.py

    return total

# Contoh penggunaan

if __name__ == "__main__":

    barang = [50000, 30000, 20000]  # daftar harga barang

    print("Total sebelum diskon:", sum(barang))

    print("Total setelah diskon 10%:", total_belanja(barang, 0.1))

3. Contoh Implementasi 

Implementasi yaitu misalnya sedang membuat aplikasi kasir sederhana. Daripada menulis semua kode dalam satu file, kita bisa pisahkan modul:

  • diskon.py: berisi fungsi hitung diskon
  • transaksi.py:  berisi fungsi total belanja

Dengan pemisahan ini, setiap bagian dapat dikerjakan, diuji, dan diperbaiki secara terpisah.

Penggunaan if __name__ == “__main__”

if __name__ == "__main__" digunakan untuk mengecek apakah sebuah file Python dijalankan langsung atau di-import sebagai modul. Jika dijalankan langsung, nilai __name__ adalah "__main__" sehingga kode di dalam blok tersebut akan dieksekusi.

Jika hanya di-import, nilai __name__ berubah menjadi nama modul sehingga kode di dalam blok tidak dijalankan, membuat program lebih modular dan rapi. Contoh sederhananya sebagai berikut:

ef sapa(nama):

    return f"Halo, {nama}!"

if __name__ == "__main__":

    # Hanya tampil jika file ini dieksekusi langsung

    print(sapa("Dita"))

Maka, saat python nama.py dijalankan pada terminal dapat menampilkan output berikut:

Halo, Dita!

Penutup

Pada Part 4 ini kita telah mempelajari bahwa fungsi sangat penting untuk membuat kode lebih rapi, terstruktur, dan reusable. Kita juga mengenal berbagai fitur fungsi mulai dari parameter dasar, default, *args, *kwargs, hingga dokumentasi menggunakan docstring.

Di belajar Python part 5, kita akan melanjutkan pembahasan tentang modul dan paket bawaan Python, serta cara membuat paket sendiri agar aplikasi lebih profesional dan siap digunakan di berbagai proyek.

Demikian tutorial belajar python part 4 untuk pemula. Ikuti terus series belajar Python di Rumahweb yang kami publikasi tiap satu bulan sekali. Semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 5 / 5. Vote count: 1

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Amiratur Rafifah

Amiratur Rafifah, atau yang akrab dipanggil Fifah, adalah seorang staf technical support di Rumahweb Indonesia dengan passion besar di dunia pendidikan, teknologi, dan kreativitas. Melalui Journal Rumahweb, Fifah ingin berbagi insight dan solusi teknis, dengan fokus pada penggunaan dan pengembangan Python di lingkungan hosting.

banner pop up - Pindah Hosting ke Rumahweb