{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Tipe Data dan Variabel Python\n",
        "\n",
        "**Variabel** adalah lokasi memori yang diberi nama untuk menyimpan data. Python bersifat *dynamically typed*, yang artinya Anda tidak perlu mendeklarasikan tipe data secara eksplisit saat membuat variabel."
      ],
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 1. Tipe Data Primitif Dasar\n",
        "Python memiliki 4 tipe data primitif utama:\n",
        "- **Integer (`int`)**: Bilangan bulat positif atau negatif tanpa desimal.\n",
        "- **Float (`float`)**: Bilangan riil dengan pecahan desimal.\n",
        "- **String (`str`)**: Teks atau deretan karakter yang diapit tanda kutip.\n",
        "- **Boolean (`bool`)**: Nilai kebenaran logika (`True` atau `False`)."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "# Deklarasi berbagai tipe data dasar\n",
        "umur = 25                   # int\n",
        "tinggi_badan = 175.5        # float\n",
        "nama_lengkap = \"Budi Santoso\" # str\n",
        "is_active = True            # bool\n",
        "\n",
        "# Memeriksa tipe data dengan fungsi type()\n",
        "print(\"Tipe umur:\", type(umur))\n",
        "print(\"Tipe tinggi_badan:\", type(tinggi_badan))\n",
        "print(\"Tipe nama_lengkap:\", type(nama_lengkap))\n",
        "print(\"Tipe is_active:\", type(is_active))"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 2. Struktur Data Koleksi (Collections)\n",
        "Python menyediakan struktur data koleksi bawaan yang sangat fleksibel:\n",
        "1. **List**: Terurut (*ordered*), dapat diubah (*mutable*), mengizinkan duplikasi. Ditulis dengan `[ ]`.\n",
        "2. **Tuple**: Terurut (*ordered*), tidak dapat diubah (*immutable*). Ditulis dengan `( )`.\n",
        "3. **Dictionary**: Pasangan kunci-nilai (*key-value pairs*), kunci harus unik. Ditulis dengan `{ }`.\n",
        "4. **Set**: Kumpulan elemen unik tanpa urutan (*unordered*). Ditulis dengan `{ }`."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "# 1. List (Daftar)\n",
        "hobi = [\"Membaca\", \"Koding\", \"Berenang\"]\n",
        "hobi.append(\"Musik\")\n",
        "print(\"List Hobi:\", hobi)\n",
        "\n",
        "# 2. Tuple (Pasangan data koordinat/tetap)\n",
        "koordinat = (-7.250445, 112.768845)  # Latitude, Longitude Surabaya\n",
        "print(\"Koordinat:\", koordinat)\n",
        "\n",
        "# 3. Dictionary (Struktur Data Objek/Profil)\n",
        "profil_pengguna = {\n",
        "    \"id\": 101,\n",
        "    \"nama\": \"Siti Rahma\",\n",
        "    \"pekerjaan\": \"Data Analyst\",\n",
        "    \"keahlian\": [\"Python\", \"SQL\", \"Tableau\"]\n",
        "}\n",
        "print(\"Profil Pengguna:\", profil_pengguna[\"nama\"], \"-\", profil_pengguna[\"pekerjaan\"])\n",
        "\n",
        "# 4. Set (Himpunan Unik)\n",
        "angka_unik = {1, 2, 2, 3, 4, 4, 5}\n",
        "print(\"Set angka unik:\", angka_unik)"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 3. Konversi Tipe Data (Type Casting)\n",
        "Anda dapat mengubah satu tipe data ke tipe data lain menggunakan fungsi bawaan seperti `int()`, `float()`, dan `str()`."
      ],
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "# Konversi dari string ke numerik\n",
        "string_angka = \"150\"\n",
        "angka_integer = int(string_angka)\n",
        "angka_float = float(string_angka)\n",
        "\n",
        "print(\"Hasil int:\", angka_integer + 50)\n",
        "print(\"Hasil float:\", angka_float)"
      ],
      "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
}