{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Pembuatan & Pemanggilan Fungsi (Function)\n",
        "\n",
        "**Fungsi** adalah blok kode terorganisir dan dapat digunakan kembali (*reusable*) untuk melakukan satu tugas spesifik."
      ],
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 1. Fungsi Bawaan (Built-in Functions)\n",
        "Python menyediakan banyak fungsi siap pakai seperti `len()`, `max()`, `min()`, `sum()`, `abs()`, dan `round()`."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "angka_list = [14, 28, 5, 92, 47, 63]\n",
        "\n",
        "print(\"Jumlah Elemen :\", len(angka_list))\n",
        "print(\"Nilai Maksimum:\", max(angka_list))\n",
        "print(\"Nilai Minimum :\", min(angka_list))\n",
        "print(\"Total Jumlah  :\", sum(angka_list))\n",
        "print(\"Rata-rata     :\", round(sum(angka_list) / len(angka_list), 2))"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 2. Membuat Fungsi Kustom (User-Defined Functions)\n",
        "Fungsi didefinisikan menggunakan kata kunci `def`, diikuti nama fungsi dan tanda kurung parameter."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "def sapa_pengguna(nama, peran=\"Pelajar\"):\n",
        "    \"\"\"Fungsi untuk menampilkan salam sambutan.\"\"\"\n",
        "    return f\"Halo {nama}, selamat belajar sebagai {peran} di Awd Course!\"\n",
        "\n",
        "# Memanggil fungsi\n",
        "pesan_1 = sapa_pengguna(\"Agus\", \"Data Engineer\")\n",
        "pesan_2 = sapa_pengguna(\"Budi\")  # Menggunakan default parameter\n",
        "\n",
        "print(pesan_1)\n",
        "print(pesan_2)"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 3. Fungsi dengan Nilai Balik Multi (Multiple Return Values)"
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "def hitung_statistik_sederhana(data):\n",
        "    \"\"\"Menghitung total, rata-rata, dan jangkauan (range).\"\"\"\n",
        "    total = sum(data)\n",
        "    rata_rata = total / len(data)\n",
        "    jangkauan = max(data) - min(data)\n",
        "    return total, rata_rata, jangkauan\n",
        "\n",
        "# Mengambil beberapa nilai balik sekaligus\n",
        "data_nilai = [80, 85, 90, 75, 95]\n",
        "tot, avg, rng = hitung_statistik_sederhana(data_nilai)\n",
        "\n",
        "print(f\"Total: {tot} | Rata-rata: {avg:.2f} | Jangkauan: {rng}\")"
      ],
      "outputs": [],
      "execution_count": null
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "name": "python",
      "version": "3.11.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 2
}