Fungsi vs Prosedur di Python: Kapan dan Mengapa Memakainya?

Smallest Font
Largest Font

Ketika belajar Python, terutama untuk pemula, seringkali muncul pertanyaan mengenai perbedaan antara fungsi dan prosedur. Sekilas, keduanya tampak mirip, namun terdapat perbedaan mendasar yang memengaruhi bagaimana kode kita terstruktur dan berfungsi. Artikel ini akan mengupas tuntas persamaan dan perbedaan antara keduanya, dilengkapi dengan contoh kode yang mudah dipahami.

Dalam Python, fungsi adalah blok kode yang terorganisir dan dapat digunakan kembali untuk melakukan tugas tertentu. Fungsi menerima input (disebut argumen atau parameter), memprosesnya, dan mengembalikan output (nilai kembalian). Fungsi sangat penting untuk modularitas dan reusabilitas kode.

Karakteristik Utama Fungsi:

  • Mengembalikan Nilai: Fungsi harus mengembalikan nilai setelah menyelesaikan tugasnya. Nilai ini dapat berupa angka, string, list, atau tipe data lainnya. Jika tidak ada `return` statement eksplisit, fungsi akan mengembalikan `None`.
  • Menerima Argumen: Fungsi dapat menerima nol atau lebih argumen sebagai input. Argumen ini digunakan untuk menyesuaikan perilaku fungsi.
  • Reusable: Fungsi dapat dipanggil berkali-kali dari berbagai bagian kode.
Diagram fungsi Python dengan input dan output
Diagram yang menggambarkan bagaimana fungsi menerima input, memprosesnya, dan menghasilkan output.

Contoh Fungsi:

Berikut adalah contoh fungsi sederhana yang menghitung luas persegi panjang:

def hitung_luas_persegi_panjang(panjang, lebar):
 luas = panjang * lebar
 return luas

# Contoh penggunaan
lp = hitung_luas_persegi_panjang(5, 10)
print(lp) # Output: 50

Apa itu Prosedur dalam Python?

Secara teknis, Python tidak memiliki konsep "prosedur" yang terpisah dari fungsi seperti pada bahasa pemrograman lain (misalnya Pascal atau C). Di Python, semua "prosedur" sebenarnya adalah fungsi yang tidak mengembalikan nilai secara eksplisit (atau mengembalikan `None`). Seringkali, prosedur digunakan untuk melakukan tindakan (misalnya, mencetak ke layar) daripada menghasilkan nilai.

Karakteristik Utama Prosedur (di Python):

  • Tidak Mengembalikan Nilai (atau Mengembalikan `None`): Prosedur melakukan tindakan tetapi tidak menghasilkan nilai balik yang bermakna.
  • Efek Samping: Prosedur seringkali memiliki efek samping, seperti mengubah state global atau melakukan operasi I/O.
  • Fokus pada Tindakan: Prosedur berfokus pada melakukan serangkaian tindakan daripada menghasilkan nilai.
Contoh prosedur Python yang mencetak ke layar
Contoh prosedur yang mencetak pesan ke konsol.

Contoh Prosedur:

Berikut adalah contoh "prosedur" yang mencetak pesan ke layar:

def sapa(nama):
 print("Halo, " + nama + "!")

# Contoh penggunaan
sapa("Andi") # Output: Halo, Andi!

Perhatikan bahwa fungsi `sapa` tidak memiliki `return` statement. Secara implisit, ia mengembalikan `None`, sehingga secara teknis ia tetaplah sebuah fungsi dalam Python, tetapi berfungsi sebagai prosedur.

Persamaan dan Perbedaan Utama

Persamaan:

  • Keduanya adalah blok kode yang terorganisir.
  • Keduanya dapat menerima argumen.
  • Keduanya membantu memecah kode menjadi bagian yang lebih kecil dan mudah dikelola.

Perbedaan:

Fitur Fungsi Prosedur (di Python)
Nilai Kembalian Mengembalikan nilai (selain `None`) Mengembalikan `None` (secara implisit atau eksplisit)
Fokus Menghasilkan nilai berdasarkan input Melakukan tindakan (efek samping)
Penggunaan Perhitungan, transformasi data Operasi I/O, mengubah state global
Diagram yang memvisualisasikan perbedaan fungsi dan prosedur
Visualisasi perbedaan utama antara fungsi dan prosedur dalam Python.

Kapan Menggunakan Fungsi dan Prosedur?

  • Gunakan fungsi ketika Anda perlu menghitung nilai atau melakukan transformasi data dan mengembalikan hasilnya. Contoh: perhitungan matematika, validasi data, manipulasi string.
  • Gunakan prosedur (fungsi yang mengembalikan `None`) ketika Anda perlu melakukan tindakan, seperti mencetak output, menulis ke file, atau mengubah state objek. Contoh: menampilkan pesan kesalahan, memperbarui database, mengirim email.

Jadi, Kapan Harus Repot Memikirkan Istilah Prosedur?

Meskipun secara teknis semua prosedur di Python adalah fungsi, memikirkan perbedaan ini tetap berguna untuk memahami bagaimana kode Anda terstruktur. Dengan membedakan antara fungsi (yang menghasilkan nilai) dan prosedur (yang melakukan tindakan), Anda dapat menulis kode yang lebih jelas, mudah dibaca, dan mudah dipelihara. Penting diperhatikan bahwa dalam Python, penekanan lebih pada *apa* yang dilakukan kode daripada *bagaimana* kode itu dikategorikan.

Editors Team
Daisy Floren

What's Your Reaction?

  • Like
    0
    Like
  • Dislike
    0
    Dislike
  • Funny
    0
    Funny
  • Angry
    0
    Angry
  • Sad
    0
    Sad
  • Wow
    0
    Wow