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:
- File I/O - Membaca dan menulis file
- Exception Handling - Try-except-finally
- Object Oriented Programming - Class dan Object
- Module dan Package - Mengorganisir kode
- Regular Expression - Pattern matching
- Database - SQLite, MySQL dengan Python
- Web Framework - Flask, Django
- Data Science - Pandas, NumPy, Matplotlib
- API Development - RESTful API dengan Flask
- 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)