{"id":56906,"date":"2025-08-26T08:40:00","date_gmt":"2025-08-26T01:40:00","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=56906"},"modified":"2026-02-16T10:18:34","modified_gmt":"2026-02-16T03:18:34","slug":"belajar-python-part-4","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-4\/","title":{"rendered":"Belajar Python Part 4: Membuat dan Menggunakan Fungsi"},"content":{"rendered":"\n<p>Setelah pada <a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-3\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Part 3<\/a> kita sudah belajar tentang struktur kontrol seperti <em>if<\/em>, <em>for<\/em>, dan <em>while<\/em>. 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.<\/p>\n\n\n\n<p>Fungsi merupakan salah satu elemen penting dalam pemrograman karena membantu kita menulis kode yang lebih rapi, terorganisir, dan dapat digunakan kembali (<em>reusable<\/em>). Alih-alih menuliskan baris kode yang sama berulang kali, kita cukup membungkusnya dalam sebuah fungsi, lalu memanggilnya kapanpun dibutuhkan.<\/p>\n\n\n\n<p>Selain itu, dengan modularisasi, kode kita bisa dipisahkan ke dalam file atau modul terpisah sehingga lebih mudah dikembangkan, terutama untuk aplikasi berskala besar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Mengenal Fungsi dalam Python<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Definisi dan Sintaks Dasar<\/strong><\/h3>\n\n\n\n<p>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:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mengurangi duplikasi kode sehingga tidak perlu menulis kode yang sama berulang kali<\/li>\n\n\n\n<li>Membuat program lebih terorganisir maka kode dibagi menjadi bagian-bagian logis<\/li>\n\n\n\n<li>Memudahkan <em>debugging&nbsp;<\/em><\/li>\n\n\n\n<li>Meningkatkan <em>reusability <\/em>dengan fungsi bisa digunakan di berbagai bagian program<\/li>\n<\/ul>\n\n\n\n<p>Pada pemanggilannya fungsi menggunakan def, lalu diikuti nama fungsi yang akan dibuat dan dapat ditambah parameter. Contoh <em>syntax<\/em> nya sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def function_name():\n\n&nbsp;&nbsp;&nbsp;&nbsp;# code block\n\n&nbsp;&nbsp;&nbsp;&nbsp;return result<\/code><\/pre>\n\n\n\n<p>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 <em>syntax<\/em>-nya sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def function_name(parameter1, parameter2):\n\n&nbsp;&nbsp;&nbsp;&nbsp;# code block using parameter1 and parameter2\n\n&nbsp;&nbsp;&nbsp;&nbsp;return result<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Aturan Penamaan Fungsi<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gunakan huruf kecil dengan <em>underscore (snake_case),<\/em> misalnya hitung_luas.<\/li>\n\n\n\n<li>Nama harus deskriptif sesuai dengan peran fungsi.<\/li>\n\n\n\n<li>Hindari penggunaan nama bawaan Python seperti list, print, atau sum.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contoh Implementasi<\/strong> Fungsi dalam Python<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Fungsi Tanpa Parameter<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>def sapa():\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"Halo, selamat belajar Python!\")\n\nsapa()<\/code><\/pre>\n\n\n\n<p>Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Halo, selamat belajar Python!<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Fungsi dengan Parameter<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>def sapa(nama):\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(f\"Halo, {nama}! Selamat belajar Python!\")\n\nsapa(\"Alya\")\n\nsapa(\"Raka\")<\/code><\/pre>\n\n\n\n<p>Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Halo, Alya! Selamat belajar Python!\nHalo, Raka! Selamat belajar Python!<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Fungsi dengan Pengembalian Nilai (return)<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>def kuadrat(x):\n\n&nbsp;&nbsp;&nbsp;&nbsp;return x * x\n\nhasil = kuadrat(6)\n\nprint(\"Hasil:\", hasil)<\/code><\/pre>\n\n\n\n<p>Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hasil: 36<\/code><\/pre>\n\n\n\n<p><em>Keyword return <\/em>membuat fungsi lebih fleksibel karena nilainya bisa disimpan atau dipakai untuk perhitungan lain.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Jenis-jenis Parameter<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Parameter Default<\/strong><\/h3>\n\n\n\n<p>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:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def sambut(nama, ucapan=\"Selamat datang\"):\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(f\"{ucapan}, {nama}!\")\n\nsambut(\"Dina\")\n\nsambut(\"Budi\", \"Halo selamat pagi\")<\/code><\/pre>\n\n\n\n<p>Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Selamat datang, Dina!\nHalo selamat pagi, Budi!<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Keyword Argument<\/strong><\/h3>\n\n\n\n<p>Parameter <em>keyword <\/em>argument adalah cara memanggil fungsi dengan menyebutkan nama parameter secara eksplisit saat memberikan nilai, sehingga urutan parameter tidak lagi penting. Contohnya sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def hitung_persegi_panjang(panjang, lebar):\n\n&nbsp;&nbsp;&nbsp;&nbsp;return panjang * lebar\n\nprint(hitung_persegi_panjang(lebar=5, panjang=10))<\/code><\/pre>\n\n\n\n<p><strong>Penjelasan<\/strong>:<\/p>\n\n\n\n<p>Urutan tidak penting karena menggunakan <em>keyword arguments.<\/em> Meski lebar disebutkan lebih dahulu, Python tetap mengetahui bahwa panjang adalah 10 dan lebar sama dengan 5.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. *args dan *<em>kwargs<\/em><\/strong><\/h3>\n\n\n\n<p>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 <em>tuple<\/em>. <\/p>\n\n\n\n<p>Sedangkan **kwargs digunakan untuk menerima sejumlah <em>keyword arguments <\/em>yang tidak terbatas dalam bentuk <em>dictionary<\/em>. Contohnya sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def demo(*args, **kwargs):&nbsp; # *args=tuple, **kwargs=dict\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"args:\", args)&nbsp; &nbsp; # cetak argumen tuple\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"kwargs:\", kwargs)&nbsp; # cetak argumen dict\n\ndemo(1, 2, 3, nama=\"Dita\", umur=22, kota=\"Yogyakarta\")&nbsp; # panggil fungsi<\/code><\/pre>\n\n\n\n<p>Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>args: (1, 2, 3)\nkwargs: {'nama': 'Dita', 'umur': 22, 'kota': 'Yogyakarta'}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Dokumentasi Fungsi dengan Docstring<\/strong><\/h2>\n\n\n\n<p>Docstring (<em>documentation string<\/em>) adalah string khusus di dalam fungsi, kelas, atau modul Python yang berfungsi sebagai dokumentasi internal. Ditulis dengan tanda kutip tiga (&#8220;&#8221;&#8221; &#8230; &#8220;&#8221;&#8221;) dan bisa diakses saat program berjalan menggunakan help() atau atribut .__doc__.<\/p>\n\n\n\n<p>Perbedaannya dengan komentar biasa adalah <em>docstring <\/em>bisa dibaca oleh Python saat <em>runtime<\/em>, sehingga berguna untuk dokumentasi otomatis dan memudahkan programmer memahami fungsi tanpa harus membaca isi kodenya. Contohnya sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def hitung_diskon(harga, diskon):\n\n&nbsp;&nbsp;&nbsp;&nbsp;\"\"\"\n\n&nbsp;&nbsp;&nbsp;&nbsp;Menghitung harga akhir setelah diberikan diskon.\n\n&nbsp;&nbsp;&nbsp;&nbsp;:param harga: Harga awal dalam bentuk numerik\n\n&nbsp;&nbsp;&nbsp;&nbsp;:param diskon: Persentase diskon (contoh: 0.1 = 10%)\n\n&nbsp;&nbsp;&nbsp;&nbsp;:return: Harga akhir setelah diskon\n\n&nbsp;&nbsp;&nbsp;&nbsp;\"\"\"\n\n&nbsp;&nbsp;&nbsp;&nbsp;return harga - (harga * diskon)\n\n# Akses docstring dengan help()\n\nhelp(hitung_diskon)\n\n# Atau dengan atribut __doc__\n\nprint(hitung_diskon.__doc__)<\/code><\/pre>\n\n\n\n<p>Kelebihan <code>docstring<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mudah diakses dengan help(nama_fungsi)<\/li>\n\n\n\n<li>Membantu kolaborasi dalam tim<\/li>\n\n\n\n<li>Bisa digunakan untuk membuat dokumentasi otomatis dengan <em>tools<\/em>.<\/li>\n<\/ul>\n\n\n\n<p>Dalam pengembangan aplikasi atau website, docstring sudah menjadi sebuah hal yang sering dilakukan. Misalnya, dalam <em>framework <\/em>Flask atau FastAPI, <em>docstring <\/em>digunakan untuk mendokumentasikan <em>endpoint <\/em>API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Modularisasi Kode<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Mengapa Modularisasi Penting?<\/strong><\/h3>\n\n\n\n<p>Saat proyek kecil, semua fungsi dapat  ditulis dalam satu file. Namun, seiring bertambahnya fitur, kode menjadi panjang dan sulit dipelihara. Dengan modularisasi, kita bisa:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Memisahkan kode ke dalam beberapa file (modul)<\/li>\n\n\n\n<li>Mengorganisir fungsi sesuai kategori<\/li>\n\n\n\n<li>Memudahkan <em>debugging <\/em>dan pengembangan dalam&nbsp;tim.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Implementasi Modul Sederhana<\/strong><\/h3>\n\n\n\n<p>Contoh implementasi modul secara sederhana sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># transaksi.py\n\nfrom diskon import hitung_diskon&nbsp; # import fungsi dari modul diskon\n\ndef total_belanja(harga_list, diskon=0):\n\n&nbsp;&nbsp;&nbsp;&nbsp;\"\"\"\n\n&nbsp;&nbsp;&nbsp;&nbsp;Menghitung total belanja setelah diskon.\n\n&nbsp;&nbsp;&nbsp;&nbsp;:param harga_list: Daftar harga barang (list of int\/float)\n\n&nbsp;&nbsp;&nbsp;&nbsp;:param diskon: Persentase diskon (0.1 = 10%)\n\n&nbsp;&nbsp;&nbsp;&nbsp;:return: Total harga akhir\n\n&nbsp;&nbsp;&nbsp;&nbsp;\"\"\"\n\n&nbsp;&nbsp;&nbsp;&nbsp;total = sum(harga_list)&nbsp; # jumlahkan semua harga barang\n\n&nbsp;&nbsp;&nbsp;&nbsp;if diskon &gt; 0:\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;total = hitung_diskon(total, diskon)&nbsp; # panggil fungsi dari diskon.py\n\n&nbsp;&nbsp;&nbsp;&nbsp;return total\n\n# Contoh penggunaan\n\nif __name__ == \"__main__\":\n\n&nbsp;&nbsp;&nbsp;&nbsp;barang = &#91;50000, 30000, 20000]&nbsp; # daftar harga barang\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"Total sebelum diskon:\", sum(barang))\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(\"Total setelah diskon 10%:\", total_belanja(barang, 0.1))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Contoh Implementasi&nbsp;<\/strong><\/h3>\n\n\n\n<p>Implementasi yaitu misalnya sedang membuat aplikasi kasir sederhana. Daripada menulis semua kode dalam satu file, kita bisa pisahkan modul:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>diskon.py<\/strong>: berisi fungsi hitung diskon<\/li>\n\n\n\n<li><strong>transaksi.py<\/strong>:&nbsp; berisi fungsi total belanja<\/li>\n<\/ul>\n\n\n\n<p>Dengan pemisahan ini, setiap bagian dapat dikerjakan, diuji, dan diperbaiki secara terpisah.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Penggunaan if __name__ == &#8220;__main__&#8221;<\/strong><\/h2>\n\n\n\n<p><code>if __name__ == \"__main__\"<\/code> digunakan untuk mengecek apakah sebuah file Python dijalankan langsung atau di-import sebagai modul. Jika dijalankan langsung, nilai <code>__name__<\/code> adalah <code>\"__main__\"<\/code> sehingga kode di dalam blok tersebut akan dieksekusi.<\/p>\n\n\n\n<p>Jika hanya di-import, nilai <code>__name__<\/code> berubah menjadi nama modul sehingga kode di dalam blok tidak dijalankan, membuat program lebih modular dan rapi. Contoh sederhananya sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ef sapa(nama):\n\n&nbsp;&nbsp;&nbsp;&nbsp;return f\"Halo, {nama}!\"\n\nif __name__ == \"__main__\":\n\n&nbsp;&nbsp;&nbsp;&nbsp;# Hanya tampil jika file ini dieksekusi langsung\n\n&nbsp;&nbsp;&nbsp;&nbsp;print(sapa(\"Dita\"))<\/code><\/pre>\n\n\n\n<p>Maka, saat python nama.py dijalankan pada terminal dapat menampilkan output berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Halo, Dita!<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Penutup<\/strong><\/h2>\n\n\n\n<p>Pada Part 4 ini kita telah mempelajari bahwa fungsi sangat penting untuk membuat kode lebih rapi, terstruktur, dan <em>reusable<\/em>. Kita juga mengenal berbagai fitur fungsi mulai dari parameter dasar, default, *args, *<em>kwargs<\/em>, hingga dokumentasi menggunakan docstring.<\/p>\n\n\n\n<p>Di belajar Python <a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-5\/\" target=\"_blank\" rel=\"noopener\" title=\"belajar python part 5\">part 5<\/a>, 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.<\/p>\n\n\n\n<p>Demikian tutorial belajar python part 4 untuk pemula. Ikuti terus series belajar Python di Rumahweb yang kami publikasi tiap satu bulan sekali. Semoga bermanfaat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":354,"featured_media":56994,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[2483,1176,2485],"class_list":{"0":"post-56906","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-programming","8":"tag-belajar-python","9":"tag-python","10":"tag-python-dasar"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/56906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/354"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=56906"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/56906\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/56994"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=56906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=56906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=56906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}