Tutorial Python Dasar

Panduan lengkap mempelajari Python dari nol untuk pemula

1. Pengenalan Python

1

Apa itu Python

Python adalah bahasa pemrograman tingkat tinggi yang mudah dipelajari dan versatile untuk berbagai aplikasi.

Karakteristik Python:

  • Simple dan readability tinggi (kode mudah dibaca)
  • Interpreted language (tidak perlu compile)
  • Dynamically typed (tipe data otomatis)
  • Open source dan gratis
  • Cross-platform (Windows, Mac, Linux)
  • Banyak library untuk berbagai keperluan
  • Digunakan di data science, AI, web development, automation
2

Keuntungan Belajar Python

  • Syntax mirip bahasa Inggris, mudah dipahami pemula
  • Permintaan kerja tinggi di industry
  • Cocok untuk berbagai bidang (data science, web, AI)
  • Komunitas besar dengan resources lengkap
  • Library ecosystem yang sangat kaya
  • Prototipe cepat dan development time singkat
  • Performa baik untuk kebanyakan aplikasi
3

Aplikasi Python di Dunia Nyata

Contoh Penggunaan
WEB DEVELOPMENT:
- Django, Flask, FastAPI
- Instagram, Spotify, Dropbox

DATA SCIENCE & AI:
- Pandas, NumPy, TensorFlow
- Google, Facebook, Netflix

AUTOMATION:
- Web scraping, task automation
- Robot process automation

GAME DEVELOPMENT:
- Pygame framework
- Game prototyping

DESKTOP APPLICATION:
- Tkinter, PyQt
- Aplikasi desktop cross-platform

2. Requirements dan Setup

1

Install Python

Langkah Instalasi
LANGKAH 1: Download
1. Buka https://www.python.org/downloads/
2. Download Python 3.10+ (versi terbaru)
3. Jalankan installer

LANGKAH 2: Setup Installer (Windows)
1. Centang "Add Python to PATH" (PENTING!)
2. Pilih "Install Now" atau "Customize Installation"
3. Tunggu hingga selesai

LANGKAH 3: Verifikasi
Buka Command Prompt/PowerShell dan ketik:
python --version
# Harusnya muncul: Python 3.x.x
Pastikan "Add Python to PATH" dicentang saat instalasi
2

Setup Text Editor (VS Code)

Setup VS Code
LANGKAH 1: Download dan Install
1. Buka https://code.visualstudio.com/
2. Download untuk Windows
3. Jalankan installer

LANGKAH 2: Install Extensions
1. Buka VS Code
2. Klik Extensions (Ctrl+Shift+X)
3. Install extensions:
   - Python
   - Pylance
   - Code Runner

LANGKAH 3: Verifikasi Setup
1. Buat file: hello.py
2. Ketik: print("Halo")
3. Klik run atau Ctrl+Alt+N
3

Interactive Python (REPL)

Command Prompt
LANGKAH 1: Buka Python Interactive
python
# Atau
python3

LANGKAH 2: Ketik Kode Python
>>> print("Halo, Dunia!")
Halo, Dunia!

>>> 5 + 3
8

LANGKAH 3: Keluar dari Interactive
>>> exit()
# Atau tekan Ctrl+Z kemudian Enter
Python REPL bagus untuk testing kode kecil dan learning
4

Membuat File Python Pertama

Langkah
LANGKAH 1: Buat file
1. Buat folder: C:\Users\YourName\belajar-python
2. Buat file: hello.py

LANGKAH 2: Tulis kode
print("Halo, Python!")

LANGKAH 3: Run file
python hello.py
# Output: Halo, Python!

3. Syntax dan Pengenalan

1

Program Python Pertama

hello.py
print("Halo, Dunia!")
print("Selamat belajar Python")
print(123)
print(45.67)

Output:

Result
Halo, Dunia!
Selamat belajar Python
123
45.67
2

Comment

Comment
# Ini adalah single line comment
print("Program dimulai")

# Comment bisa di akhir statement
x = 5  # Nilai x adalah 5

"""
Ini adalah multi-line comment
Bisa lebih dari satu baris
Berguna untuk dokumentasi panjang
"""

'''
Alternatif untuk multi-line comment
Menggunakan single quote
'''

print("Program selesai")  # Ini tidak akan diprint
3

Print dan Input

Print dan Input
# Print dengan string
print("Halo Dunia")

# Print multiple argument
print("Nama", "saya", "Ahmad")
# Output: Nama saya Ahmad

# Print dengan separator
print("a", "b", "c", sep="-")
# Output: a-b-c

# Print tanpa newline
print("Baris 1", end="")
print("Baris 1 lanjutan")
# Output: Baris 1Baris 1 lanjutan

# Input dari user
nama = input("Masukkan nama: ")
print("Nama Anda:", nama)

# Input angka
umur = int(input("Masukkan umur: "))
print("Umur Anda:", umur)

# Input multiple dengan split
x, y = input("Masukkan dua angka: ").split()
print("x =", x, "y =", y)
4

Indentation (Sangat Penting!)

Indentation
# Python menggunakan indentation untuk block code
# BENAR:
if 5 > 3:
    print("5 lebih besar dari 3")
    print("Ini juga di dalam if")

print("Ini di luar if")

# SALAH (akan error):
if 5 > 3:
print("Error - indentation required!")

# Gunakan 4 spaces atau 1 tab untuk indentation
def greet():
    nama = "Ahmad"
    print("Halo", nama)
    
greet()
Indentation bukan hanya style di Python, tapi requirement syntax

4. Variabel dan Naming

1

Pengenalan Variabel

Variabel Dasar
# Deklarasi dan inisialisasi variabel
nama = "Ahmad"
umur = 20
tinggi = 170.5
aktif = True

# Menggunakan variabel
print("Nama:", nama)
print("Umur:", umur)

# Update nilai variabel
umur = 21
print("Umur terbaru:", umur)

# Multiple assignment
x = y = z = 10
print(x, y, z)  # 10 10 10

# Unpacking
a, b, c = 1, 2, 3
print(a, b, c)  # 1 2 3

# Swap nilai
x = 5
y = 10
x, y = y, x
print(x, y)  # 10 5
2

Aturan Naming Variabel

Aturan
BENAR:
nama = "Ahmad"
nama_lengkap = "Ahmad Hidayat"
namaLengkap = "Ahmad Hidayat"
nama123 = "Ahmad"
_private = "Nilai private"
__dunder__ = "Dunder attribute"

SALAH:
123nama = "Ahmad"  # Tidak boleh mulai angka
nama-lengkap = "Ahmad"  # Tidak boleh dash
nama lengkap = "Ahmad"  # Tidak boleh spasi
nama@email = "Ahmad"  # Tidak boleh simbol khusus

CASE SENSITIVE:
nama = "Ahmad"
Nama = "Budi"
NAMA = "Citra"
# Ketiga variabel di atas BERBEDA

KONVENSI:
- Gunakan snake_case untuk nama variabel
- Hindari single letter kecuali untuk loop
- Gunakan UPPERCASE untuk konstanta
MAX_SIZE = 100
3

Konstanta

Konstanta
# Konstanta di Python adalah convention (bukan enforce)
# Gunakan UPPERCASE untuk konstanta
PI = 3.14159
MAX_USERS = 1000
DATABASE_HOST = "localhost"

# Perhitungan menggunakan konstanta
radius = 5
area = PI * radius * radius
print("Area lingkaran:", area)

# Python tidak strictly enforce konstanta
# Tapi programmer harus mengerti bahwa itu konstanta
PI = 3.14  # Bisa diubah, tapi jangan!

5. Tipe Data

1

String

String
# String dengan double quote
nama = "Ahmad"

# String dengan single quote
kota = 'Jakarta'

# String dengan triple quote (multi-line)
alamat = """
Jalan Merpati No. 123
Jakarta Timur
Indonesia
"""

# String concatenation
kata1 = "Selamat"
kata2 = "Pagi"
greeting = kata1 + " " + kata2
print(greeting)  # Selamat Pagi

# String formatting - f-string (Python 3.6+)
nama = "Ahmad"
umur = 20
print(f"Nama: {nama}, Umur: {umur}")

# String formatting - format()
print("Nama: {}, Umur: {}".format(nama, umur))

# String methods
print(nama.upper())  # AHMAD
print(nama.lower())  # ahmad
print(len(nama))  # 5
print(nama.replace("Ahmad", "Budi"))  # Budi
print(nama.split("h"))  # ['A', 'mad']

# String indexing
nama = "Ahmad"
print(nama[0])  # A
print(nama[-1])  # d
print(nama[1:3])  # hm (slicing)

# String repetition
print("abc" * 3)  # abcabcabc
2

Integer dan Float

Angka
# Integer - bilangan bulat
umur = 20
tahun = 2025
suhu = -5

# Float - bilangan desimal
tinggi = 170.5
berat = 65.75
pi = 3.14159

# Operasi matematika
a = 10
b = 3
print(a + b)  # 13
print(a - b)  # 7
print(a * b)  # 30
print(a / b)  # 3.333... (float division)
print(a // b)  # 3 (integer division)
print(a % b)  # 1 (modulo)
print(a ** b)  # 1000 (pangkat)

# Math functions
import math
print(abs(-5))  # 5
print(round(3.6))  # 4
print(math.floor(3.9))  # 3
print(math.ceil(3.1))  # 4
print(max(10, 20, 5))  # 20
print(min(10, 20, 5))  # 5

# Cek tipe
print(type(20))  # 
print(type(20.5))  # 
3

Boolean

Boolean
# Boolean - True atau False
aktif = True
admin = False

# Hasil perbandingan adalah boolean
umur = 20
print(umur > 18)  # True
print(umur < 18)  # False
print(umur == 20)  # True
print(umur != 20)  # False

# Boolean operations
print(True and False)  # False
print(True or False)  # True
print(not True)  # False

# Truthiness
print(bool(1))  # True
print(bool(0))  # False
print(bool(""))  # False
print(bool("Ahmad"))  # True
print(bool([]))  # False
print(bool([1, 2]))  # True
print(bool(None))  # False

# Menggunakan boolean di kondisi
if True:
    print("Ini dijalankan")
    
if False:
    print("Ini tidak dijalankan")
4

None

None
# None - nilai kosong/null
data = None
print(data)  # None

# Cek apakah None
if data is None:
    print("Data kosong")

# Default parameter
def greeting(nama=None):
    if nama is None:
        nama = "Teman"
    print(f"Halo, {nama}")

greeting()  # Halo, Teman
greeting("Ahmad")  # Halo, Ahmad

# Return None
def no_return():
    print("Ini fungsi")
    # Tidak return apa-apa

result = no_return()
print(result)  # None
5

Type Conversion

Konversi Tipe
# Convert ke integer
print(int("20"))  # 20
print(int(20.9))  # 20
print(int(True))  # 1
print(int(False))  # 0

# Convert ke float
print(float("20.5"))  # 20.5
print(float(20))  # 20.0
print(float(True))  # 1.0

# Convert ke string
print(str(20))  # "20"
print(str(20.5))  # "20.5"
print(str(True))  # "True"

# Convert ke boolean
print(bool(0))  # False
print(bool(1))  # True
print(bool(""))  # False
print(bool("text"))  # True

# Convert list (dijelaskan di bagian list)

6. Operator

Aritmatika

+, -, *, /, //, %, ** untuk operasi matematika

Perbandingan

==, !=, <, >, <=, >= untuk membandingkan

Logika

and, or, not untuk operasi boolean

Assignment

=, +=, -=, *=, /= untuk assign nilai

1

Operator Aritmatika

Aritmatika
a = 10
b = 3

print(a + b)  # 13 - Penjumlahan
print(a - b)  # 7 - Pengurangan
print(a * b)  # 30 - Perkalian
print(a / b)  # 3.333... - Pembagian (float)
print(a // b)  # 3 - Floor division (integer)
print(a % b)  # 1 - Modulo (sisa bagi)
print(a ** b)  # 1000 - Pangkat
print(-a)  # -10 - Negasi

# Increment dan Decrement
x = 5
x += 1  # x = 6
x -= 1  # x = 5
x *= 2  # x = 10
x //= 3  # x = 3

# Operator precedence
print(2 + 3 * 4)  # 14 (multiplication dulu)
print((2 + 3) * 4)  # 20 (parenthesis dulu)
2

Operator Perbandingan

Perbandingan
a = 10
b = 20

print(a == b)  # False - sama dengan
print(a != b)  # True - tidak sama dengan
print(a < b)  # True - kurang dari
print(a > b)  # False - lebih dari
print(a <= b)  # True - kurang dari sama dengan
print(a >= b)  # False - lebih dari sama dengan

# Comparison chaining
x = 5
print(0 < x < 10)  # True
print(0 < x < 3)  # False

# Membandingkan string
print("Ahmad" == "Ahmad")  # True
print("Ahmad" < "Budi")  # True (lexicographic)

# Membandingkan tipe
print(10 == "10")  # False (tipe berbeda)
print(10 == 10.0)  # True (value sama)
3

Operator Logika

Logika
# AND operator
print(True and True)  # True
print(True and False)  # False
print(False and False)  # False

# OR operator
print(True or False)  # True
print(False or False)  # False

# NOT operator
print(not True)  # False
print(not False)  # True

# Kombinasi
x = 10
print(x > 5 and x < 20)  # True
print(x > 5 and x < 8)  # False

# Contoh real
umur = 20
punya_sim = True

if umur > 18 and punya_sim:
    print("Boleh naik mobil")

if umur < 18 or not punya_sim:
    print("Belum boleh naik mobil")
4

Operator Assignment

Assignment
x = 10  # Assignment
x += 5  # x = x + 5 = 15
x -= 3  # x = x - 3 = 12
x *= 2  # x = x * 2 = 24
x /= 4  # x = x / 4 = 6.0
x //= 2  # x = x // 2 = 3
x %= 2  # x = x % 2 = 1

# String concatenation assignment
nama = "Ahmad"
nama += " Hidayat"
print(nama)  # Ahmad Hidayat

# Ternary operator
umur = 20
status = "Dewasa" if umur > 18 else "Anak-anak"
print(status)  # Dewasa

# Membership operator
buah = ["Apel", "Pisang", "Jeruk"]
print("Apel" in buah)  # True
print("Mangga" in buah)  # False
print("Mangga" not in buah)  # True

7. List, Tuple, Dictionary

1

List

List
# Membuat list
buah = ["Apel", "Pisang", "Jeruk"]
angka = [1, 2, 3, 4, 5]
campuran = [1, "Ahmad", 3.14, True]
kosong = []

# Akses elemen
print(buah[0])  # Apel
print(buah[-1])  # Jeruk
print(buah[1:3])  # ["Pisang", "Jeruk"]

# Tambah elemen
buah.append("Mangga")
buah.insert(1, "Duku")  # Insert di index 1
buah.extend(["Nanas", "Papaya"])  # Gabung dengan list lain

# Hapus elemen
buah.remove("Apel")  # Hapus berdasarkan value
del buah[0]  # Hapus berdasarkan index
popped = buah.pop()  # Hapus dan return element terakhir

# List operations
print(len(buah))  # Panjang list
print("Apel" in buah)  # Cek keberadaan
print(buah.count("Pisang"))  # Hitung kemunculan
print(buah.index("Jeruk"))  # Cari index

# List methods
angka = [3, 1, 4, 1, 5, 9]
angka.sort()  # Sort ascending
angka.reverse()  # Balik urutan
angka2 = angka.copy()  # Copy list
angka.clear()  # Kosongkan list

# List comprehension
kuadrat = [x**2 for x in range(1, 6)]
print(kuadrat)  # [1, 4, 9, 16, 25]

genap = [x for x in range(1, 11) if x % 2 == 0]
print(genap)  # [2, 4, 6, 8, 10]
2

Tuple

Tuple (Immutable List)
# Membuat tuple
point = (10, 20)
warna = ("merah", "hijau", "biru")
single = (5,)  # PENTING: comma untuk single element
kosong = ()

# Akses elemen (sama seperti list)
print(point[0])  # 10
print(warna[-1])  # biru

# Tuple tidak bisa diubah
# warna[0] = "kuning"  # Error!

# Tapi bisa operasi
combined = point + warna
repeated = (1, 2) * 3  # (1, 2, 1, 2, 1, 2)

# Unpacking
x, y = point
print(x, y)  # 10 20

a, b, c = warna
print(a, b, c)  # merah hijau biru

# Tuple methods
print(warna.count("merah"))  # 1
print(warna.index("hijau"))  # 1
3

Dictionary

Dictionary (Key-Value)
# Membuat dictionary
siswa = {
    "nama": "Ahmad",
    "umur": 20,
    "kelas": "XII RPL"
}

biodata = {"nama": "Ahmad", "umur": 20}
kosong = {}
kosong = dict()

# Akses elemen
print(siswa["nama"])  # Ahmad
print(siswa.get("umur"))  # 20
print(siswa.get("email", "Tidak ada"))  # Tidak ada

# Tambah elemen
siswa["email"] = "ahmad@sekolah.id"
siswa.update({"alamat": "Jakarta"})

# Ubah nilai
siswa["umur"] = 21

# Hapus elemen
del siswa["email"]
popped = siswa.pop("alamat")

# Dictionary methods
print(siswa.keys())  # dict_keys(['nama', 'umur', 'kelas'])
print(siswa.values())  # dict_values(['Ahmad', 20, 'XII RPL'])
print(siswa.items())  # Pasang key-value

# Loop dictionary
for key, value in siswa.items():
    print(f"{key}: {value}")

# Nested dictionary
db = {
    "siswa1": {"nama": "Ahmad", "nilai": 90},
    "siswa2": {"nama": "Budi", "nilai": 85}
}

print(db["siswa1"]["nama"])  # Ahmad
4

Set

Set (Unordered, Unique)
# Membuat set
warna = {"merah", "hijau", "biru"}
angka = {1, 2, 3, 4, 5}
dari_list = set([1, 2, 2, 3, 3, 3])  # {1, 2, 3}

# Set tidak punya order dan tidak ada duplicate
print(dari_list)  # {1, 2, 3}

# Tambah element
warna.add("kuning")

# Hapus element
warna.remove("merah")  # Error jika tidak ada
warna.discard("hijau")  # Tidak error

# Set operations
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

print(a | b)  # Union {1, 2, 3, 4, 5, 6}
print(a & b)  # Intersection {3, 4}
print(a - b)  # Difference {1, 2}
print(a ^ b)  # Symmetric difference {1, 2, 5, 6}

8. Kontrol Alur Program

1

If, Elif, Else

Percabangan If
umur = 20

# If sederhana
if umur > 18:
    print("Anda dewasa")

# If-else
if umur > 18:
    print("Anda dewasa")
else:
    print("Anda masih anak-anak")

# If-elif-else
if umur < 13:
    print("Anak-anak")
elif umur < 18:
    print("Remaja")
elif umur < 60:
    print("Dewasa")
else:
    print("Lansia")

# Multiple conditions
umur = 20
punya_sim = True

if umur > 18 and punya_sim:
    print("Boleh naik mobil")

if umur > 18 or punya_sim:
    print("Boleh menggunakan kendaraan")

# Nested if
if umur > 18:
    if punya_sim:
        print("Boleh naik mobil pribadi")
    else:
        print("Boleh naik kendaraan umum")
2

For Loop

For Loop
# For loop dengan range
for i in range(1, 6):
    print(i)  # Output: 1 2 3 4 5

# Range dengan step
for i in range(0, 10, 2):
    print(i)  # Output: 0 2 4 6 8

# For loop dengan list
buah = ["Apel", "Pisang", "Jeruk"]
for item in buah:
    print(item)

# For loop dengan index
for index, item in enumerate(buah):
    print(f"{index}: {item}")

# For loop dengan dictionary
siswa = {"Ahmad": 90, "Budi": 85, "Citra": 92}
for nama, nilai in siswa.items():
    print(f"{nama}: {nilai}")

# Break dan continue
for i in range(1, 11):
    if i == 5:
        break  # Keluar dari loop
    if i % 2 == 0:
        continue  # Skip
    print(i)  # Output: 1 3

# Nested loop
for i in range(1, 4):
    for j in range(1, 4):
        print(f"{i},{j}", end=" ")
3

While Loop

While Loop
# While loop
i = 1
while i <= 5:
    print(i)
    i += 1
# Output: 1 2 3 4 5

# While dengan break
i = 1
while True:
    print(i)
    if i == 5:
        break
    i += 1

# While dengan continue
i = 0
while i < 10:
    i += 1
    if i % 2 == 0:
        continue
    print(i)  # Output: 1 3 5 7 9

# While dengan else
count = 0
while count < 3:
    print(count)
    count += 1
else:
    print("Loop selesai")  # Dijalankan jika loop normal selesai
4

Pass, Break, Continue

Control Statements
# Pass - placeholder (tidak melakukan apa-apa)
for i in range(5):
    pass  # Diisi nanti

# Pass di if
if True:
    pass

# Break - keluar dari loop
for i in range(10):
    if i == 5:
        break
print("Loop terhenti")

# Continue - skip ke iterasi berikutnya
for i in range(5):
    if i == 2:
        continue
    print(i)  # Output: 0 1 3 4

# Break dengan else
for i in range(5):
    if i == 10:
        break
else:
    print("Tidak ada break")  # Dijalankan

for i in range(5):
    if i == 2:
        break
else:
    print("Ada break")  # Tidak dijalankan

9. Fungsi

1

Pengenalan Fungsi

Fungsi Dasar
# Fungsi sederhana (tidak return)
def greeting():
    print("Halo, dunia!")

greeting()  # Output: Halo, dunia!

# Fungsi dengan parameter
def greet(nama):
    print(f"Halo, {nama}")

greet("Ahmad")  # Output: Halo, Ahmad

# Fungsi dengan return
def add(a, b):
    return a + b

result = add(5, 3)
print(result)  # 8

# Fungsi dengan multiple parameter
def bio(nama, umur, kelas):
    print(f"Nama: {nama}, Umur: {umur}, Kelas: {kelas}")

bio("Ahmad", 20, "XII RPL")

# Fungsi dengan default parameter
def sapa(nama="Teman"):
    print(f"Halo, {nama}")

sapa()  # Halo, Teman
sapa("Ahmad")  # Halo, Ahmad

# Fungsi dengan keyword argument
def display(x, y, z):
    print(x, y, z)

display(z=3, x=1, y=2)  # 1 2 3
2

Return Value

Return
# Return nilai tunggal
def multiply(a, b):
    return a * b

print(multiply(5, 3))  # 15

# Return string
def greet_user(nama):
    return f"Selamat datang, {nama}"

print(greet_user("Ahmad"))  # Selamat datang, Ahmad

# Return multiple nilai
def get_user():
    return "Ahmad", 20, "XII RPL"

nama, umur, kelas = get_user()
print(nama, umur, kelas)

# Return list
def get_numbers():
    return [1, 2, 3, 4, 5]

numbers = get_numbers()
print(numbers)  # [1, 2, 3, 4, 5]

# Return dictionary
def get_user_data():
    return {"nama": "Ahmad", "umur": 20}

data = get_user_data()
print(data["nama"])  # Ahmad

# Early return
def validate_age(umur):
    if umur < 0:
        return False
    if umur > 150:
        return False
    return True

print(validate_age(20))  # True
3

Type Hinting

Type Declaration
# Type hinting untuk parameter
def add(a: int, b: int) -> int:
    return a + b

print(add(5, 3))  # 8

# Type hinting dengan string
def greet(nama: str) -> str:
    return f"Halo, {nama}"

print(greet("Ahmad"))  # Halo, Ahmad

# Type hinting list
def process_list(items: list) -> int:
    return len(items)

print(process_list([1, 2, 3]))  # 3

# Optional type
from typing import Optional

def find_user(user_id: int) -> Optional[str]:
    if user_id == 1:
        return "Ahmad"
    return None

print(find_user(1))  # Ahmad

# Multiple return types (Union)
from typing import Union

def get_value() -> Union[int, str]:
    return 42

# Type hinting dictionary
from typing import Dict

def process_data(data: Dict[str, int]) -> int:
    return sum(data.values())

print(process_data({"a": 10, "b": 20}))  # 30
4

Variadic dan Lambda Functions

Advanced Functions
# *args - jumlah parameter unlimited
def sum_all(*numbers):
    total = 0
    for num in numbers:
        total += num
    return total

print(sum_all(1, 2, 3))  # 6
print(sum_all(1, 2, 3, 4, 5))  # 15

# **kwargs - keyword argument unlimited
def print_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

print_info(nama="Ahmad", umur=20, kelas="XII RPL")

# Mix *args dan **kwargs
def describe(positional, *args, **kwargs):
    print(f"Positional: {positional}")
    print(f"Args: {args}")
    print(f"Kwargs: {kwargs}")

# Lambda function
add = lambda x, y: x + y
print(add(5, 3))  # 8

# Lambda dengan map
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # [1, 4, 9, 16, 25]

# Lambda dengan filter
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # [2, 4]
5

Decorator dan Scope

Advanced Concepts
# Variabel scope
x = 10  # Global scope

def func():
    y = 20  # Local scope
    print(x)  # Bisa akses global
    print(y)

func()

# Nested function
def outer():
    x = 10
    
    def inner():
        print(x)  # Bisa akses outer scope
    
    inner()

outer()

# Closure
def make_adder(n):
    def adder(x):
        return x + n
    return adder

add_5 = make_adder(5)
print(add_5(10))  # 15

# Simple decorator
def my_decorator(func):
    def wrapper():
        print("Sebelum fungsi")
        func()
        print("Sesudah fungsi")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()
# Output:
# Sebelum fungsi
# Hello!
# Sesudah fungsi

Kesimpulan dan Langkah Berikutnya

1

Ringkasan Materi

  • Pengenalan Python dan setup awal
  • Syntax dasar dan indentation
  • Variabel dan naming convention
  • Tipe data: String, Integer, Float, Boolean, None
  • Type conversion dan type hinting
  • Operator aritmatika, perbandingan, logika, assignment
  • List, Tuple, Dictionary, Set
  • Kontrol alur: if-elif-else, for, while
  • Fungsi, return, parameter, lambda
2

Langkah Selanjutnya

Topik lanjutan untuk memperdalam kemampuan Python:

  1. File I/O - Membaca dan menulis file
  2. Exception Handling - Try-except-finally
  3. Object Oriented Programming - Class dan Object
  4. Module dan Package - Mengorganisir kode
  5. Regular Expression - Pattern matching
  6. Database - SQLite, MySQL dengan Python
  7. Web Framework - Flask, Django
  8. Data Science - Pandas, NumPy, Matplotlib
  9. API Development - RESTful API dengan Flask
  10. Automation - Web scraping, task automation
3

Tips Belajar

  • Praktik dengan membuat mini project setiap hari
  • Gunakan Python REPL untuk testing cepat
  • Jangan hanya membaca, tapi ketik ulang kode
  • Eksperimen dengan mengubah-ubah nilai
  • Gunakan print() untuk debug
  • Baca error message dengan teliti
  • Join komunitas Python untuk berbagi
  • Buat project dari nol dan share di GitHub
4

Resources Berguna

Link Dokumentasi
Official Python Documentation:
https://docs.python.org/3/

Python Tutorial:
https://docs.python.org/3/tutorial/

W3Schools Python:
https://www.w3schools.com/python/

Real Python:
https://realpython.com/

Stack Overflow (Q&A):
https://stackoverflow.com (tag: python)