{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Struktur Perulangan (For & While Loop)\n",
        "\n",
        "Perulangan (*looping*) digunakan untuk mengeksekusi blok kode berulang kali selama kondisi terpenuhi atau melintasi elemen-elemen dalam sebuah koleksi (*iterasi*)."
      ],
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 1. Perulangan `for` dengan Fungsi `range()`\n",
        "Fungsi `range(start, stop, step)` menghasilkan deret angka urut."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "# Melakukan perulangan 5 kali (dari 1 hingga 5)\n",
        "print(\"Deret angka kuadrat:\")\n",
        "for i in range(1, 6):\n",
        "    print(f\"{i} kuadrat = {i**2}\")"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 2. Iterasi pada Elemen Koleksi (List & Dictionary)"
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "bahasa_pemrograman = [\"Python\", \"SQL\", \"JavaScript\", \"R\", \"Go\"]\n",
        "\n",
        "print(\"Daftar Bahasa:\")\n",
        "for idx, bahasa in enumerate(bahasa_pemrograman, start=1):\n",
        "    print(f\"{idx}. {bahasa}\")"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 3. Perulangan `while`\n",
        "Perulangan `while` akan terus berjalan selama kondisi logika bernilai `True`. Pastikan selalu memperbarui variabel penghitung (*counter*) agar tidak terjadi perulangan tanpa henti (*infinite loop*)."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "hitung_mundur = 5\n",
        "\n",
        "print(\"Memulai hitung mundur:\")\n",
        "while hitung_mundur > 0:\n",
        "    print(f\"{hitung_mundur}...\")\n",
        "    hitung_mundur -= 1\n",
        "\n",
        "print(\"Peluncuran Sukses!\")"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 4. Kontrol Perulangan: `break`, `continue`, dan `pass`\n",
        "- **`break`**: Menghentikan perulangan secara paksa.\n",
        "- **`continue`**: Melewati iterasi saat ini dan langsung melanjutkan ke iterasi berikutnya.\n",
        "- **`pass`**: Pernyataan kosong sebagai penampung (*placeholder*)."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "# Contoh continue: Hanya mencetak bilangan ganjil\n",
        "print(\"Bilangan ganjil antara 1 s.d. 10:\")\n",
        "for num in range(1, 11):\n",
        "    if num % 2 == 0:\n",
        "        continue  # Lewati bilangan genap\n",
        "    print(num, end=\" \")\n",
        "print()"
      ],
      "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
}